codesys-modifier-skill은(는) 무엇을 하나요?
Claude Skill — 터미널에서 CODESYS 3.5 SP17+ 프로젝트 수정을 자동화합니다: PLCopen XML로 내보내기, ST/VAR/FBD 편집, 다시 가져오기, GUI 없이 PLC에 빌드 및 배포합니다.
개요
이 스킬은 CODESYS 3.5 SP17+ 프로젝트를 수정하는 과정을 완전히 자동화하여, 개발자가 IDE를 열지 않고도 명령줄에서 직접 PLC 프로젝트를 편집하고 배포할 수 있게 해줍니다. 주로 다음과 같은 작업 흐름을 지원합니다:
- CODESYS 프로젝트를 PLCopen XML로 내보냅니다.
- XML 파일을 편집하여 ST 코드, 변수 선언, FBD 로직을 수정합니다.
- 수정된 XML을 다시 CODESYS 프로젝트로 가져옵니다.
- 프로젝트를 빌드하고 PLC에 배포합니다.
주요 기능
- 프로젝트 내보내기:
.project파일을 PLCopen XML 형식으로 내보냅니다. - XML 편집: 텍스트 편집기 또는 스크립트를 사용하여 ST 코드, 변수, FBD를 수정합니다.
- 프로젝트 가져오기: 수정된 XML을 CODESYS 프로젝트로 가져와 병합합니다.
- 빌드 및 배포: 명령줄에서 프로젝트를 빌드하고 PLC에 배포합니다.
- 자동화 지원: CI/CD 파이프라인에 통합하거나 스크립트로 반복 작업을 자동화합니다.
사용 방법
사전 요구 사항
- CODESYS 3.5 SP17 이상이 설치되어 있어야 합니다.
- CODESYS 명령줄 도구가 경로에 추가되어 있어야 합니다.
- PLC 연결이 설정되어 있어야 합니다.
기본 명령어
# 프로젝트 내보내기
codesys --export "path/to/project.project" --output "exported.xml"
# XML 편집 (예: ST 코드 수정)
sed -i 's/oldCode/newCode/g' exported.xml
# 수정된 프로젝트 가져오기
codesys --import "path/to/project.project" --input "exported.xml"
# 프로젝트 빌드
codesys --build "path/to/project.project"
# PLC에 배포
codesys --deploy "path/to/project.project" --target "192.168.1.10"
예제 워크플로우
다음은 완전한 자동화 워크플로우 예제입니다:
#!/bin/bash
PROJECT="example.project"
PLC_IP="192.168.1.10"
# 1단계: 프로젝트 내보내기
echo "프로젝트 내보내는 중..."
codesys --export "$PROJECT" --output "temp.xml"
# 2단계: 변수 추가
echo "변수 추가하는 중..."
sed -i '/<variables>/a <variable name="newVar" type="INT"/>' temp.xml
# 3단계: ST 코드 수정
echo "ST 코드 수정하는 중..."
sed -i 's/oldFunction/newFunction/g' temp.xml
# 4단계: 프로젝트 가져오기
echo "수정된 프로젝트 가져오는 중..."
codesys --import "$PROJECT" --input "temp.xml"
# 5단계: 빌드
echo "프로젝트 빌드하는 중..."
codesys --build "$PROJECT"
# 6단계: 배포
echo "PLC에 배포하는 중..."
codesys --deploy "$PROJECT" --target "$PLC_IP"
echo "완료!"
참고 사항
- 버전 호환성: 이 스킬은 CODESYS 3.5 SP17 이상에서 테스트되었습니다. 이전 버전에서는 일부 기능이 작동하지 않을 수 있습니다.
- XML 구조: PLCopen XML 형식은 복잡할 수 있으므로, 편집 전에 XML 구조를 충분히 이해하는 것이 좋습니다.
- 백업: 중요 프로젝트를 수정하기 전에 항상 백업을 수행하세요.
- 에러 처리: 스크립트에 적절한 에러 처리를 포함시켜 예상치 못한 상황에 대비하세요.
관련 리소스
라이선스
이 스킬은 MIT 라이선스 하에 제공됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.