CODESYS에서 샘플 자동화 프로젝트를 구축하는 방법
DigiKey 북미 편집자 제공
2025-12-03
새로운 자동화 플랫폼을 도입하면 초기에 많은 시간과 노력의 투자가 필요하며 벤더 종속에 대한 우려가 커질 수 있습니다. CODESYS는 IEC 61131-3에 기반한, 하드웨어에 종속되지 않는 개발 환경으로 이러한 문제를 해결합니다. 여러 하드웨어 플랫폼에서 프로그래밍, I/O 매핑, 시각화 및 배포를 위한 통합 워크플로를 제공합니다.
이 기사에서는 초기 설정부터 런타임 테스트까지 CODESYS에서 완전한 자동화 프로젝트를 구축하는 방법을 설명합니다. 장치 트리 구성, I/O 채널 매핑, 구조화된 텍스트로 로직 프로그래밍, 시각화 설계, 런타임 환경 연결, 작동 검증을 위한 디버깅 전략을 적용하게 됩니다. 실용적인 지침과 함께 프로젝트 구성, 라이브러리 관리 및 안전한 배포를 위한 모범 사례를 중점적으로 알아봅니다.
이 튜토리얼에서는 접근성을 위해 CODESYS의 내장 시뮬레이터를 사용하지만, CODESYS 지원 PLC, 산업용 Raspberry Pi 컨트롤러(예: Seeed EdgeBox-RPI-200), 통합 런타임이 있는 HMI 등 DigiKey에서 제공하는 하드웨어 플랫폼에도 동일한 워크플로가 적용됩니다. 튜토리얼을 마치면, 산업 환경에서 확장성과 안정성을 지원하는 기술에 대한 통찰력과 함께 CODESYS에서 제대로 작동하는 자동화 애플리케이션을 구축하기 위한 명확한 프레임워크를 확립할 수 있을 것입니다.
프로젝트 설정
첫 번째 단계는 CODESYS 개발 시스템에서 새 프로젝트를 설정하는 것입니다. 템플릿 목록에서 표준 프로젝트를 선택하고 MotorControlDemo와 같이 설명이 포함된 이름을 지정합니다. 장치를 묻는 메시지가 표시되면 전용 하드웨어 없이도 시뮬레이션을 위한 Windows 기반 런타임을 제공하는 CODESYS Control Win V3를 선택합니다. 이를 통해 PLC 또는 산업용 Raspberry Pi 모듈과 같은 플랫폼에 배포하기 전에 전체 워크플로를 테스트할 수 있습니다.
컨트롤러, I/O 채널 및 통신 링크를 구성하는 장치 트리로 구성된 프로젝트가 열립니다. 이 예제에서는 트리에 컨트롤러 객체, 시작 및 중지 버튼의 디지털 입력, 모터 및 표시등에 대한 디지털 출력이 포함되어 있습니다. 이러한 신호를 제어 로직에 연결하려면 전역 변수 목록 또는 프로그램 편집기에서 StartButton, StopButton, MotorOn, LampOn과 같은 부울 변수를 선언하세요. 시뮬레이션에서 이러한 값을 토글하면 하드웨어 동작이 모방됩니다. 하드웨어에서는 물리적 I/O 포인트에 직접 바인딩합니다.
그림 1: 모터 제어 I/O를 위한 부울 변수 선언(이미지 출처: Author).
이 단계에서의 모범 사례는 명확하고 일관된 이름을 지정하는 것인데, 디버깅 작업을 최소화하고 새로운 기능이나 장치를 추가할 때 확장을 간소화할 수 있기 때문입니다.
로직 프로그래밍
프로젝트 구조가 완성되면 다음 단계는 CODESYS에서 지원하는 IEC 61131-3 언어 중 하나인 구조화된 텍스트(ST)로 제어 로직을 구현하는 것입니다. ST는 가독성과 표현력을 결합한 파스칼과 유사한 구문을 사용하여 순차적 루틴과 상태 기반 로직의 명확한 구현을 지원합니다.
시작 버튼을 누르면 모터와 램프에 전원이 공급되고, 정지 버튼을 누르면 둘 다 전원이 차단되는 간단한 시작/정지 래치가 필요한 시연 프로젝트입니다. 이는 그림 2와 같이 ST로 표현됩니다.
그림 2: 시작/중지 래치 로직의 ST 구현(이미지 출처: Author).
이 예는 조건문, 부울 로직, 변수 할당 등 ST의 기본을 설명합니다. 변수는 프로젝트 설정 중에 정의되었기 때문에 하드웨어 신호와 프로그램 실행을 연결하는 I/O 채널에 직접 매핑됩니다.
대규모 프로젝트의 경우 정리가 핵심입니다. 초기화 코드는 기본 상태를 설정하고 주기적 작업은 입력을 모니터링하고 출력을 구동할 수 있습니다. 함수 블록과 라이브러리는 로직을 캡슐화하고, 중복성을 줄이며, 가독성을 개선하는 데 도움이 됩니다. 시뮬레이션에서 개발된 동일한 ST 코드를 나중에 약간의 수정만으로 콤팩트 PLC 또는 PAC와 같은 DigiKey 지원 하드웨어에 배포할 수 있습니다. 이와 같이 이식성이 뛰어나 하드웨어에 종속되지 않는 강점으로 인해 CODESYS의 가치가 더해집니다. 특히 초기화, 주기적 모니터링 및 오류 처리를 분리하는 것이 모범 사례인데, 이로써 가독성을 높이고 프로젝트가 확장됨에 따라 예측 가능한 실행을 보장할 수 있습니다.
장치 및 I/O 매핑 구성
프로젝트 구조와 변수가 준비되면 다음 단계는 I/O 매핑을 통해 변수를 하드웨어 또는 시뮬레이션된 I/O에 연결하는 것입니다. CODESYS에서는 각 채널이 프로젝트 변수와 페어링되는 Device Editor의 I/O 매핑 탭에서 이 작업을 처리합니다.
먼저 장치 트리 아래에 컨트롤러와 해당 I/O 모듈을 삽입합니다. 예를 들어 두 개의 디지털 입력과 두 개의 디지털 출력으로 모듈을 추가할 수 있습니다. I/O 기능이 있는 장치가 있으면 I/O 매핑 탭이 활성화되어 변수 이름, 주소, 데이터 유형 열이 있는 입력 및 출력 채널 표가 표시됩니다. 장치 설명에는 일반적으로 기본 이름과 주소가 제공되지만, 시스템 배선이나 명명 규칙에 맞게 수정할 수 있습니다.
I/O 매핑 탭에서 변수를 채널에 매핑하는 방법은 기존 변수(예: 시작 버튼, 모터온)를 연결하거나 인터페이스 내에서 새로운 암시적 전역 변수를 생성하거나 프로젝트 요구 사항에 맞게 주소를 직접 편집하는 세 가지가 있습니다. 입력에 매핑된 변수는 정의상 읽기 전용이며, 각 변수는 하나의 채널에만 매핑할 수 있습니다.
프로덕션 환경에서는 매핑 시 신호 레벨, 모듈 등급, 접지 등 전기 인터페이스 사양에도 주의를 기울여야 합니다. 이러한 요소는 이 튜토리얼에서는 다루지 않지만 하드웨어 배포에 있어 여전히 중요합니다.
문서화 또는 대량 편집을 위해 매핑을 CSV 파일로 내보내거나 가져올 수 있습니다. 매핑 데이터를 CSV로 내보내는 것이 모범 사례인데, 감사를 위한 문서화 및 팀 협업을 위한 신뢰할 수 있는 참조를 제공하기 때문입니다.
시각화 및 HMI
로직이 준비되면 다음 단계는 시스템을 제어하고 모니터링하는 사용자 인터페이스를 만드는 것입니다. CODESYS는 웹 브라우저, 로컬 디스플레이 또는 전용 기기에서 시각화를 실행할 수 있도록 여러 배포 모드(WebVisu, TargetVisu 및 CODESYS HMI)를 지원하는 통합 시각화 툴셋을 제공합니다.
장치 트리의 애플리케이션 노드 아래에서 시각화 관리자 개체를 추가한 다음 MainVisu 같은 시각화 화면을 하나 이상 추가합니다. 각 화면에서 버튼, 램프/표시등, 추적 표시 또는 추세 그래프와 같은 UI 요소를 드래그합니다. 이러한 요소는 요소의 속성 대화 상자를 통해 프로그램 변수(예: 시작 버튼, 램프 켜기)에 연결됩니다.
예를 들어 모터 상태를 표시하려면 램프 요소를 배치하고 해당 변수 링크를 LampOn으로 설정합니다. 변수가 참이면 램프가 켜지고, 거짓이면 꺼진 상태로 유지됩니다. 변수와 요소 간의 직접적인 바인딩을 통해 직관적인 런타임 상호작용이 가능합니다.
배포 모드 옵션
인터페이스가 설계되면 다음 단계는 시각화를 운영자 또는 외부 시스템에 배포할 방법을 결정하는 것입니다. CODESYS는 각각 다른 성능 및 네트워크 요구 사항을 대상으로 하는 여러 가지 배포 모드를 지원합니다:
- WebVisu: 웹 브라우저에서 HTML5로 실행되며, 장치가 HTTP/HTTPS를 통해 웹 서버로 작동합니다. 전용 디스플레이 없이도 원격 액세스가 가능합니다.
- TargetVisu: 컨트롤러 또는 장치에 직접 연결된 디스플레이에서 실행됩니다. 제어와 HMI를 하나의 장치에 결합한 임베디드 시스템에 효율적입니다.
- CODESYS HMI: 시각화 전용 런타임 인스턴스로, 여러 컨트롤러에 연결할 수 있습니다.
배포 모드를 선택할 때는 성능, 디스플레이 요구 사항 및 네트워크 토폴로지를 고려하세요. WebVisu는 유연하지만 컨트롤러가 HTTP 서버와 추가 부하를 지원해야 할 수도 있습니다. TargetVisu는 네트워크 지연 시간을 줄이면서도 로컬 디스플레이 지원이 필요하며, HMI 모드는 다중 컨트롤러 시스템에 맞게 확장할 수 있습니다.
실제 하드웨어 예
하드웨어 레퍼런스로서 DigiKey에서 사용할 수 있는 Maple Systems cMT3072XHT 7" HMI는 통합 CODESYS 런타임 및 디스플레이를 갖추고 있어 프로젝트에서 생성된 시각화 화면을 직접 호스팅할 수 있습니다.
시각화 설계 모범 사례에는 라이브러리 화면과 매개변수 인터페이스를 사용하여 재사용 가능한 템플릿을 구축하는 것이 포함됩니다. 또한 설계자는 중요한 변수만 표시하도록 알람 및 추적 디스플레이를 구성하여 컨트롤러 부하를 최소화해야 합니다. 이를 통해 텍스트 목록과 가변 크기 조정으로 다국어 및 단위 변환을 지원할 수 있습니다. 또한 스냅라인 또는 컨테이너로 요소 위치를 고정하여 화면 크기에서 일관된 레이아웃을 유지할 수 있습니다.
시각화가 연결되면 이제 애플리케이션은 완전한 대화형 애플리케이션이 됩니다. 사용자는 HMI를 통해 모터를 시작 및 중지하고, 표시기를 모니터링하고, 실시간 상태를 확인할 수 있습니다. 이로써 시각화 단계가 완료되고 런타임 테스트를 위한 프로젝트가 준비됩니다.
배포 및 런타임 테스트
프로그래밍 및 시각화가 완료되면 프로젝트를 런타임 환경에 배포해야 합니다. CODESYS는 내장된 Control Win SL 시뮬레이터부터 산업용 하드웨어의 라이선스 런타임에 이르기까지 다양한 옵션을 지원합니다.
개발 시스템의 온라인 메뉴에서 대상 장치 또는 시뮬레이터를 선택하고 연결을 설정합니다. 컴파일된 프로젝트를 런타임에 다운로드하면 IDE에 전송 상태가 표시되고 구성이 일치하지 않는 부분이 강조 표시됩니다. 로딩이 끝나면 컨트롤러를 실행 모드로 전환하여 실행을 시작합니다.
내장된 Windows 런타임은 하드웨어 없이도 빠른 검증을 가능하게 하며, CODESYS 런타임은 DigiKey에서 제공하는 KUNBUS Revolution Pi(RevPi) Connect 4와 같은 임베디드 Linux 플랫폼에서도 실행할 수 있습니다. 이 오픈 소스 산업용 Raspberry Pi 모듈은 동일한 프로젝트가 시뮬레이션에서 현장 배포까지 원활하게 확장되는 방법을 보여줍니다.
디버깅 및 모범 사례
실시간 모니터링 외에도 CODESYS는 프로젝트를 개선하고 유지 관리할 수 있는 통합 디버깅 환경을 제공합니다. 중단점, 단일 단계 통과 로직, 실행 흐름 분석은 수동으로 설정하고 수행할 수 있습니다. 추적 도구는 나중에 분석할 수 있도록 변수 이력을 기록하여 진단을 확장하며, 이벤트 사후 검토에 자주 사용됩니다.
문제 해결을 위해 CODESYS는 매핑된 신호를 일시적으로 재정의하는 힘 변수(그림 3)를 생성할 수 있습니다.
그림 3: CODESYS의 강제 변수 명명 규칙 구문(이미지 출처: Author).
버튼 누름과 같은 조건을 시운전하거나 시뮬레이션할 때 특히 유용합니다. 강제 신호가 활성화되면 CODESYS는 매핑된 신호에 강제 값을 대체합니다. 강제 적용은 실시간 실행을 방해할 수 있으므로 이미 매핑된 채널에만 신중하게 적용해야 합니다.
장기적인 안정성은 체계적인 프로젝트 관리에 달려 있습니다. 라이브러리 관리자는 모듈식 설계와 중앙 집중식 버전 관리를 지원하며, 정의된 플레이스홀더를 통해 하드웨어 대상 전반에 걸쳐 일관된 빌드를 보장합니다. 안정적인 라이브러리 버전을 유지하면 배포 또는 업그레이드 시 호환성 위험이 줄어듭니다.
이러한 구조적 안전장치와 함께 일상적인 모범 사례도 마찬가지로 중요합니다. 여기에는 하드웨어로 이동하기 전에 시뮬레이터에서 프로젝트를 검증하고 중단점을 사용하거나 프로덕션에서 실시간 주기를 방해하지 않도록 신중하게 강제하는 것이 포함됩니다. 또한 빠른 롤백을 위해 알려진 좋은 빌드와 라이브러리 세트를 보관하고 변수 매핑을 문서화하고 시각화 링크를 제공하여 원활한 팀 인계인수를 지원하는 것도 좋은 방법입니다.
결론
CODESYS는 프로젝트 설정, I/O 매핑, 로직 프로그래밍, 시각화 및 디버깅을 하나의 환경에서 통합하여 설계부터 배포까지 빠르게 진행할 수 있도록 지원합니다. CODESYS 지원 PLC, 산업용 Raspberry Pi 컨트롤러 및 HMI를 포함한 DigiKey 플랫폼 전반으로 이러한 워크플로가 확장되어, 개념을 확장 가능한 자동화로 전환할 수 있는 실용적인 프레임워크를 제공합니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


