ROBOT COMMUNICATION SERIES · 9

실제 로봇 없이 PC 한 대로, 산업용 로봇 통신 9편.

I/O 핸드셰이크 → Ethernet TCP/IP → RS-232 → MODBUS 기초·Server(로봇=슬레이브)· Client(로봇=마스터) → 모니터링 → 비전·로봇·그리퍼 자동화 셀까지 한 단원씩 따라가는 9편 실습 트랙. HIWIN 로봇 통신 매뉴얼을 기반으로, 실제 로봇·PLC· 그리퍼 없이 Python(pymodbus·pyserial) 시뮬레이터로 전 과정을 손에 익힙니다. 각 편은 `python main.py` 자동 실행으로 검증하고, 실장비(HRSS) 코드와 1:1 대응을 표로 확인합니다. 자동화·로봇·PLC 연동이 필요한 엔지니어를 위한 트랙입니다.

원본 GitHub 저장소 ↗
🛠️

기초

1단원 · 실습 환경 준비 (Python·pymodbus·시뮬레이터)

🔗

통신 기초

3단원 · I/O 핸드셰이크 · Ethernet TCP/IP · RS-232

🤖
#02

02. I/O 통신

통신 기초 · 선수: 01강

I/O 통신은 전선 한 가닥을 ON/OFF 시켜 로봇과 상대 장비(PLC·머신·센서)가 신호를 주고받는 가장 기본적인 통신입니다. 로봇이 출력($DO)을 켜면 상대가 입력으로 읽고, 상대가 응답을 켜면 로봇이 입력($DI)으로 읽는 핸드셰이크가 모든 자동화의 기초 패턴입니다. HIWIN 로봇 I/O 5종을 정리하고, 픽앤플레이스 한 사이클의 그립/언그립 핸드셰이크를 순수 Python 상태기계로 재현합니다.

I/O핸드셰이크$DO
🤖
#03

03. Ethernet TCP/IP

통신 기초 · 선수: 01강

로봇과 비전(상위) 시스템을 LAN 케이블 하나로 연결하고, 로봇이 "촬영해줘"({TRIG})를 보내면 비전이 "여기 좌표"({X,Y,R})로 답하는 흐름을 만듭니다. 실장비 HRSS의 COPEN/CWRITE/CREAD/CCLEAR 명령이 PC 표준 socket 코드와 1:1로 대응됨을 손으로 확인합니다. PC에서 비전 서버를 띄우고, 직접 작성한 로봇 Client 로 실제 송수신·파싱에 성공합니다.

TCP/IPsocketCOPEN
🤖
#04

04. RS-232 직렬 통신

통신 기초 · 선수: 03강

RS-232는 로봇과 호스트(PC·PLC)를 케이블 한 가닥으로 1:1 연결하는 가장 오래된 직렬 통신입니다. 03편의 CWRITE/CREAD와 { }·, 패킷 포맷이 시리얼에서도 그대로 쓰이고, 바뀌는 것은 물리 계층과 COPEN 첫 인자(ETH→SER)뿐임을 확인합니다. 패킷 프레이밍은 포트 없이 순수 Python으로 검증하고, 실제 시리얼 송수신은 com0com 가상 COM 포트로 실습합니다.

RS-232시리얼COPEN(SER)
🗂️

MODBUS

3단원 · 기초 · Server(로봇=슬레이브) · Client(로봇=마스터)

🤖
#05

05. MODBUS 기초

MODBUS · 선수: 01강

RS-232가 두 장치를 1:1로 잇는 점대점이었다면, MODBUS는 한 대의 마스터가 여러 슬레이브를 레지스터 단위로 읽고 쓰는 산업 표준 프로토콜입니다. PC만으로 가상 슬레이브를 띄우고, 마스터로 4종 레지스터(Discrete Input·Coil·Input Register·Holding Register)와 Function Code(01~06,15,16)를 직접 읽고/씁니다. 읽기 전용 레지스터에는 쓸 수 없음을 확인합니다.

MODBUS레지스터Function Code
🤖
#06

06. MODBUS SERVER (로봇 = 슬레이브)

MODBUS · 선수: 05강

05편에서 4종 레지스터를 개별적으로 다뤘다면, 이번 편은 그 레지스터들을 엮어 로봇을 제어합니다. 로봇을 Slave(Server)로 두고 상위 PLC·PC를 Master(Client)로 삼아 "명령 번호 → 파라미터 → 트리거 → 동작 → 응답 확인 → 리셋" 명령 사이클을 돌립니다. 현장에서 PLC가 HIWIN 로봇을 움직이는 실제 방식이며, 32bit 좌표·각도를 Low/High word로 분할하는 법까지 익힙니다.

MODBUS Server명령 사이클Holding Register
🤖
#07

07. MODBUS CLIENT (로봇 = 마스터)

MODBUS · 선수: 05강

06편에서 로봇은 제어받는 입장(Slave Server)이었습니다. 이번 편은 입장을 뒤집어 로봇이 Master Client가 되어 전동 그리퍼·다른 로봇·PLC를 능동 제어합니다. MBC_* 명령으로 한 로봇이 최대 4개 Server와 동시 연결해 4종 데이터를 읽고 씁니다. Modbus는 실수를 직접 못 보내므로 IEEE754 변환과 SWAP_WORD(byte order 보정)가 왜 필요한지 익힙니다.

MODBUS ClientMBC_*그리퍼
🏭

응용

2단원 · 모니터링·디버깅 · 비전·로봇·그리퍼 자동화 셀