CODESYS 워크플로우 자동화 스크립트 모음
요약
본 문서는 CODESYS IDE 내부의 워크플로우를 자동화하기 위한 파이썬 기반 스크립트 모음을 소개합니다. 이 스크립트는 프로젝트 저장 및 PLC Open Xml/Codesys Native Xml로 내보내기 기능을 제공하며, JSON 데이터 구조를 활용하여 POU와 데이터 타입을 자동으로 생성할 수 있습니다.
핵심 포인트
- CODESYS IDE 내부 워크플로우 자동화에 초점을 맞춘 스크립트 모음입니다.
- 프로젝트를 PLC Open Xml 또는 Codesys Native Xml 형식으로 내보낼 수 있습니다.
- JSON 데이터를 이용해 POU 및 데이터 타입을 프로그래밍 방식으로 생성할 수 있습니다.
- 스크립트는 CODESYS의 스크립팅 엔진을 통해 실행되며, 설치 과정이 필요합니다.
CODESYS용 워크플로우 자동화 스크립트
Vanilla Codesys에서 IDE 내부의 워크플로우를 자동화하기 위해 제작된 스크립트 모음입니다. 이 워크플로우는 다른 codesys 파생 버전에서도 작동할 수 있습니다.
사용 가능한 스크립트
프로젝트 저장 및 XML로 내보내기
이 스크립트는 활성 프로젝트를 저장하고 모든 객체를 원하는 형식으로 내보냅니다. 지원되는 형식은 PLC Open Xml과 Codesys 네이티브 Xml입니다. 결과 파일은 현재 활성 프로젝트가 위치한 폴더에 내보내집니다. 이 스크립트는 CODESYS의 스크립트 엔진을 통해 실행되어야 합니다.
CODESYS 스크립트 매개변수(arguments)의 버그로 인해 UI에서 실행할 경우 스크립트에 인수를 전달할 수 없으므로, 인수를 전달하기 위해 두 개의 별도 스크립트가 생성되었습니다.
-
saveAndExport_plcopenxml.py: PLC Open Xml용
-
saveAndExport_native.py: Codesys Native Xml용

JSON 데이터에서 네임스페이스 POU 및 데이터 타입 생성하기
이 스크립트는 사전에 정의된 JSON 형식의 컴포넌트 설명을 받아 CODESYS 환경 내부에 소스 코드 컴포넌트를 구축합니다. src 폴더에서 JSON 데이터의 예시를 찾을 수 있습니다. JSON은 파이썬 딕셔너리와 매우 잘 매핑되기 때문에 사용되었습니다. XML, Csv 등 다른 형식도 가능합니다.
데이터.json 파일을 수동으로 생성하는 것은 권장하지 않습니다. 이 파일은 다른 프로그램에 의해 프로그래밍 방식으로 생성되도록 설계되었기 때문입니다. 이 스크립트는 비(非)Codesys 환경이 PlcOpenXml을 지원하지 않는 경우, 프로젝트를 Codesys 환경으로 변환(transpiling)하는 데 사용될 수 있습니다.
설치
수동 설치
-
저장 위치 중 하나에 Script Commands 폴더를 생성합니다.
C: extbackslash ProgramData extbackslash CODESYS extbackslash Script Commands를 권장합니다. -
Python, config.json 및 .ico 파일을 그곳에 복사합니다.
-
CODESYS를 시작합니다. 스크립트 파일, 설정 파일 및 심볼 파일은 Tools -> Customize 대화 상자의 Command Icons 탭, ScriptEngine Commands 카테고리에서 읽히고 제공됩니다. 원하는 바로가기에 스크립트를 추가하세요.
CODESYS 스크립팅에 대한 자세한 내용은 Codesys Online Help에서 확인할 수 있습니다.
자동 빌드 스크립트
제가 제공한 저장소에는 build.py 스크립트가 포함되어 있으며, 이 스크립트를 실행하면 필요한 모든 스크립트, 아이콘 및 config.json이 C: extbackslash ProgramData extbackslash CODESYS extbackslash Script Commands 폴더에 설치됩니다. 만약 해당 폴더가 이미 존재하는 경우, 스크립트는 config.json을 업데이트하고 새 config.json과 동일한 이름을 가진 스크립트들을 업데이트합니다. 사용자가 직접 작성하여 config.json에 매핑된 스크립트의 경우, 이름이 다르면 덮어쓰기되지 않습니다. 자동 빌드는 관리자 권한으로 실행해야 합니다. 만약 이 부분에서 문제가 발생한다면, 빌드 스크립트는 Python으로 되어 있어 내용을 확인할 수 있거나, 항상 수동으로 설치할 수도 있습니다.
경고: config.json이 손상되었거나 JSON 형식이 유효하지 않은 경우, 스크립트가 내용을 덮어쓸 것입니다.
라이선스
MIT
기여
프로젝트에 유용한 스크립트를 추가하고 싶다면, 수정된 config.json, 아이콘 및 스크립트를 포함하여 풀 리퀘스트(pull request)를 제출해 주세요.
CODESYS가 스크립팅을 위해 제공하는 모든 객체와 명령어는 Python 모듈인 “scriptengine”에도 있습니다. 스크립트가 시작될 때마다 암묵적으로 <code/>from scriptengine import *</code>가 실행됩니다. 이를 통해 CODESYS에 쉽게 접근할 수 있습니다. 하지만, 사용자의 스크립트가 CODESYS API에 대한 접근이 필요한 모듈을 가져오는 경우(import), 해당 모듈들이 스스로 scriptengine 모듈을 가져와야 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기