이전 글에서는 XG5000 온라인 수정이 미쓰비시 GX Works와 다르게 느껴지는 이유를 정리했다. 솔직히 말하면 XG5000은 래더를 온라인에서 수정할 때 줄 정렬이나 편집 손맛이 처음에는 꽤 어색하다. 미쓰비시 환경에 익숙한 상태라면 접점 삽입, 병렬 라인 추가, 화면 정렬 방식에서 답답함을 느끼기 쉽다.
그런데 XG5000을 쓰면서 불편했던 부분만 있었던 것은 아니다. 의외로 내장 통신이나 통신 모듈을 활용한 P2P(Peer-to-Peer) 통신 설정 쪽은 생각보다 꽤 깔끔하고 직관적이었다.
특히 외부 계측기나 바코드 리더기, 유량계 등과 엮이는 시리얼 통신을 구성할 때, 통신 프레임을 헤더(Header), 데이터(Data), 테일(Tail)처럼 구역별로 나눠서 볼 수 있고, 송수신 설정을 화면에서 비교적 명확하게 정리할 수 있는 점이 좋았다. 처음 통신을 잡을 때는 래더 안에서 모든 것을 억지로 해석하는 것보다, 전용 설정 화면에서 프레임 구조를 먼저 잡아두는 방식이 훨씬 편하게 느껴진다.
한 줄 직설: XG5000은 온라인 수정 손맛은 어색해도, P2P 통신 설정만큼은 프레임 구조를 눈으로 정리하고 관리하기가 꽤 직관적인 편이다.
1. XG5000에서 의외로 괜찮았던 부분, P2P 통신 설정
XG5000을 처음 쓰면 특유의 래더 편집 방식 때문에 답답한 순간이 분명히 존재한다. 래더 줄이 마음대로 맞지 않거나 온라인 수정 후 피드백이 한 박자 밀리는 느낌을 받으면 툴 전체에 대한 신뢰도가 떨어지기도 한다.
하지만 그렇다고 XG5000이 모든 기능에서 뒤처지는 것은 아니다. 현장에서 이 툴을 잡고 이리저리 부딪히다 보면, “어? 이 부분은 오히려 미쓰비시보다 직관적인데?” 싶은 구석이 나온다. 그 대표적인 영역이 바로 P2P 통신 설정이다.
미쓰비시에서 MOV 명령어나 전용 통신 함수를 래더에 수십 줄씩 깔아가며 버퍼 메모리를 일일이 쪼개던 경험이 있다면, XG5000의 파라미터 중심 설정 방식은 생각보다 신선하고 편리하게 다가온다.
2. 시리얼 통신은 프레임 구조를 먼저 잡아야 덜 꼬인다
시리얼 통신(RS-232C, RS-422/485)은 결국 문자열이나 바이트(Byte) 데이터 덩어리를 선로 위에 흘려보내고 받는 작업이다. 이 작업이 까다로운 이유는 데이터가 하나의 거대한 ‘문자열 덩어리’로 들어오기 때문에, 툴에서 시각적으로 걸러주지 않으면 해석하기가 매우 어렵다는 점에 있다.
예를 들어 현장에서 흔히 쓰는 어떤 장비가 데이터를 보낼 때 다음과 같은 프로토콜 구조를 가진다고 가정해 보자.
[STX] + [명령어] + [데이터] + [체크섬] + [ETX]
이 구조를 아무런 가이드 없이 래더 로직 안에서만 보고 있으면 처음에는 어디까지가 시작 문장(헤더)이고, 어디부터가 실제 유효 데이터이며, 어디가 종료 문자(테일)인지 헷갈려 눈이 피로해진다. 포인터(Pointer) 계산이나 인덱스 레지스터가 한 칸만 밀려도 데이터 전체가 깨지기 때문에, 시리얼 통신은 시작하기 전에 프레임 구조를 머릿속에서 먼저 명확하게 나눠두는 습관이 중요하다.
3. 헤더, 데이터, 테일을 눈으로 나눠보는 직관성
XG5000 P2P 설정에서 가장 만족스러웠던 점은, 통신 프레임을 래더 코딩이 아닌 전용 파라미터 설정 창에서 구역별로 명확하게 시각화할 수 있다는 점이었다.
XG5000은 래더 편집에서는 투박하게 느껴질 수 있지만, P2P 통신 설정에서는 오히려 구조가 눈에 잘 들어오는 편이다. 설정 화면에서 시작 프레임(헤더), 본문(데이터), 종료 프레임(테일)을 독립된 세그먼트로 등록할 수 있기 때문이다.
래더에서 수신 버퍼 레지스터를 열어놓고 바이트 하나하나를 숫자로 대조해가며 프레임을 직접 해석하는 방식은 생각보다 피곤하다. 전용 통신 명령어나 버퍼 메모리를 이용해 프레임을 직접 다뤄본 경험이 있다면, XG5000의 설정 가이드 인터페이스가 더 쉽게 느껴질 수 있다. 설정 화면에서 프레임 기준을 먼저 잡아두는 쪽이 접근하기 훨씬 편하기 때문이다.
프레임 구조가 한눈에 들어오면 내가 보낸 명령 데이터와 장비 매뉴얼의 프로토콜 구조를 비교하기 쉽다. 장비가 응답하지 않거나 수신 데이터가 맞지 않을 때도 헤더, 데이터, 종료 문자를 나눠서 보면 원인을 추적하기가 훨씬 수월하다.
4. 송신/수신 구분이 깔끔하면 현장 디버깅이 쉬워진다
시리얼 통신 디버깅을 할 때 가장 머리 아픈 상황은 보통 다음과 같다.
- PLC는 명령을 분명히 보냈다고 생각하는데 상대 장비는 묵묵부답이다.
- 상대 장비의 통신 LED는 깜빡이며 응답을 주는 것 같은데, PLC에서는 정상 데이터로 인식하지 못하고 통신 에러 플래그만 띄운다.
이때 XG5000처럼 송신 프레임 블록과 수신 프레임 블록이 트리 구조나 리스트 형태로 깔끔하게 정돈되어 있으면 문제의 원인을 좁히기가 매우 유리하다.
내가 실제로 날린 송신 명령 프레임의 바이트 수가 맞는지, 상대 장비가 요구하는 고유 헤더와 종료 문자가 규격대로 설정 창에 박혀 있는지 하나씩 체크리스트를 지워가듯 확인할 수 있기 때문이다. 래더 로직의 스캔 타임이나 인터록 꼬임 문제와 별개로, ‘통신 프로토콜 설정 자체의 무결성’을 한곳에서 검증할 수 있다는 것만으로도 디버깅의 피로도는 대폭 줄어든다.
5. 그래도 통신은 ‘설정 화면’만 믿으면 안 된다
다만 P2P 설정 인터페이스가 아무리 깔끔하게 잘 되어 있다고 해서 통신이 자동으로 해결되는 것은 아니다. 결국 마지막 확인은 실제 선로를 타고 들어온 데이터다.
시리얼 통신은 물리적인 결선 상태와 프로토콜 조건에 크게 영향을 받는 영역이다. 아무리 XG5000에서 프레임을 예쁘게 쪼개놓아도 아래 요소 중 단 하나라도 어긋나면 통신이 정상적으로 붙지 않을 수 있다.
- 통신 속도(Baud Rate), 데이터 비트, 패리티(Parity), 스톱 비트 일치 여부
- RS-232C의 TX/RX 교차 결선 및 RS-422/485의 +/- 종단 저항 처리
- 장비 고유의 ID 또는 국번 및 체크섬(BCC/CRC) 계산 방식의 일치 여부
따라서 XG5000의 P2P 설정 기능은 프레임을 직관적으로 정리하고 관리하도록 돕는 ‘훌륭한 도구’로 접근해야지, 모든 문제를 자동으로 해결해주는 기능으로 보면 안 된다. P2P 설정이 편하다고 해서 통신을 대충 봐도 된다는 뜻은 아니다. 설정 창에서 뼈대를 단단하게 잡았다면, 실제 시스템을 구동할 때는 XG5000의 통신 모니터링 기능(시스템 진단)을 켜고 수신 버퍼에 실제로 들어오는 원시 바이트(Raw Byte) 데이터를 직접 눈으로 검증하는 절차를 반드시 거쳐야 한다.
마무리
XG5000은 래더 편집이나 온라인 수정 시의 세련미는 조금 투박할지 몰라도, 적어도 P2P 통신 설정에서만큼은 작업자가 프로토콜의 구조를 오해하지 않도록 직관적인 가이드를 제공한다.
래더 내부에서 포인터 연산으로 문자열을 쪼개는 복잡한 수식을 짜는 대신, 설정 창에서 헤더와 테일을 명확히 구분해 주는 사상은 실무자의 실수를 줄여주는 고마운 요소다. 명령어보다 프레임 구조를 먼저 이해해야 덜 꼬이는 시리얼 통신의 특성을 툴 설계에 잘 녹여냈다고 볼 수饰다.
결국 중요한 것은 툴을 무조건 좋다, 나쁘다로 나누는 것이 아니다. 불편한 부분은 작업 습관으로 보완하고, 편한 기능은 적극적으로 활용해서 현장 셋업 시간을 줄이는 것이다.