GX Works2 로 래더를 코딩할 때 스테이트먼트(Statement) 를 어디까지 활용하고 계신가요?
스테이트먼트를 적극적으로 쓰면 가독성이 훨씬 좋은 프로그램을 설계할 수 있습니다.
이 글에서는 미쓰비시 Q PLC·GX Works2 환경에서 스테이트먼트를 제대로 활용하는 다섯 가지 방법을 정리합니다.
단축키 리스트 확인, 색상 지정, 세미콜론 작성, ;[Title] 폴더링까지 실전 팁 위주로 다룹니다.
1. 스테이트먼트는 래더와 함께 메모리에 저장된다
스테이트먼트는 Q PLC에 프로그램을 삽입할 때 래더와 함께 메모리에 저장됩니다.
즉 PC의 프로젝트 파일에만 남는 메모가 아니라, PLC 본체에 프로그램과 같이 들어가는 정식 주석입니다.
디바이스 코멘트가 "각 접점·코일이 무엇인지"를 설명한다면, 스테이트먼트는 "이 래더 묶음이 어떤 동작을 하는지"를 설명하는 블록 단위 주석입니다.
둘은 역할이 달라 함께 쓸 때 가독성이 가장 좋아집니다.
2. Ctrl+L: 사용한 스테이트먼트를 리스트로 확인
GX Works2 에서 Ctrl + L 을 누르면 현재 래더 프로그램에서 사용한 스테이트먼트를 리스트로 확인할 수 있습니다.
프로그램 전체 구조를 한눈에 훑거나, 원하는 블록으로 빠르게 이동할 때 유용합니다.

3. 색상 교체로 가독성 향상
스테이트먼트의 색상을 바꿔 가독성을 높일 수 있습니다.
기본 색상 그대로 두면 래더 본문과 묻혀 잘 안 보이는데, 눈에 띄는 색을 지정하면 블록 구분이 확연해집니다.


색상은 취향껏 고르면 되지만, 노란색이나 보라색처럼 래더 흑백 본문과 대비가 큰 색을 쓰면 스테이트먼트가 확실히 도드라집니다.
4. 세미콜론(;) 하나로 바로 작성
스테이트먼트는 래더 맨 앞에서 엔터를 친 뒤 ;(세미콜론)만 붙이면 바로 달 수 있습니다.
별도 메뉴를 열 필요 없이 입력 흐름 그대로 주석을 작성할 수 있어 편리합니다.

5. ;[Title] 로 래더를 폴더링하기
스테이트먼트에 ;[Title] 형식으로 (대소문자를 구분하여) 작성하면, 래더 프로그램을 폴더처럼 묶어 관리할 수 있습니다.
작성 형식은 다음과 같습니다.
대괄호 없이 ; 만 쓰면 일반 스테이트먼트(블록 설명), 대괄호 ;[ ] 를 쓰면 폴더 시작점이 되는 Title 스테이트먼트입니다.
; 투입 컨베이어 기동 시퀀스 ← 일반 스테이트먼트 (해당 래더 블록의 동작 설명)
;[1. 투입부] ← Title 스테이트먼트 (폴더 시작점)
(투입부 래더 …)
(투입부 래더 …)
;[2. 가공부] ← 다음 Title 전까지가 "1. 투입부" 폴더로 묶임
(가공부 래더 …)
;[3. 배출부]
(배출부 래더 …)
;[1. 투입부] 부터 ;[2. 가공부] 직전까지의 래더가 하나의 폴더로 묶이고, 그 다음 Title 부터 새 폴더가 시작되는 구조입니다.

Title 스테이트먼트로 폴더화한 래더군은 다음 Title 스테이트먼트가 나올 때까지 하나로 묶입니다.
묶인 블록은 마우스 드래그·복사·잘라내기·붙여넣기로 함께 이동하거나 삭제할 수 있어, 큰 프로그램을 구조 단위로 다루기 좋습니다.

Title 폴더링은 공정·유닛 단위로 래더를 구획할 때 특히 강력합니다. "투입부 / 가공부 / 배출부"처럼 Title 로 나눠 두면, 해당 공정 로직을 통째로 복사해 다른 프로젝트에 옮기는 작업이 단순해집니다.
마무리
각 입출력·내부릴레이 접점에 코멘트를 다는 것도 매우 중요하지만, 스테이트먼트를 작성한다는 것은 그 프로그램의 뿌리와 줄기, 가지를 치는 일이라고 볼 수 있습니다.
전체 구조를 설계하고 드러내는 작업인 셈입니다.
스테이트먼트로 프로그램 구조를 정리했다면, 반복되는 기능은 함수로 묶어 재사용성까지 높일 수 있습니다. 함수화 1편: 스케일 변환 을 시작으로 한 함수화 시리즈에서 CALL·XCALL 로 래더를 라이브러리화하는 방법을 다룹니다. 통신 데이터를 다룬다면 함수화 3편: 체크섬 생성 도 함께 보면 좋습니다.
'PLC 전기제어 기술자료 > 프로그램 기술자료' 카테고리의 다른 글
| [미립자팁] 원주율 파이(3.141592...) 를 구하는 방법 (0) | 2025.03.17 |
|---|---|
| [MELSEC] Q 시리즈 에서 PID 제어를 하는 두가지 예제 (2) | 2023.07.18 |
| [MELSEC] 다른 POU폴더에서 정의된 포인터(P) 서브루틴을 호출하는 방법 (0) | 2023.03.04 |
| [MELSEC] (미립자팁) 선택 영역의 접점 어드레스 일괄 변경 (0) | 2022.05.19 |
| [MELSEC] (미립자팁) CPU 용량이 부족할 때 급하게 응급조치할 만 한 방법 (4) | 2022.02.25 |
| [MELSEC] PLC에서 스톱워치를 구현하는 두가지 방법 (0) | 2022.02.24 |
| [MELSEC] (미립자팁) 랜덤값을 음수를 포함하여 얻는 방법 (-32768 ~ 32767) (0) | 2022.02.19 |
| 미쓰비시 PLC 문자열 분리: INSTR/MIDR로 콤마 데이터 파싱하기 (4) | 2022.01.22 |