Modbus RTU (시리얼)
Modbus RTU 는 Modbus 의 시리얼 (RS-485 / RS-232) 방식입니다. 인버터, 전력량계, 환경 센서 등 시리얼 인터페이스만 있는 장비는 RTU 로만 통신합니다.
이 게이트웨이는 TCP/IP 기반 이므로 시리얼을 직접 다루지 않고, Modbus RTU-over-TCP 게이트웨이 (RS-485 → 이더넷 변환기) 를 거쳐 통신합니다.
TCP 게이트웨이가 필수
PlantPulse Edge 자체는 RS-485 포트를 가지지 않습니다. 시리얼 장비를 붙이려면 다음 중 하나가 필요합니다.
- Modbus 게이트웨이 (변환기) — Moxa MGate, Advantech EKI, USR-TCP232, ICP DAS tGW 등
- PLC 의 시리얼 모듈 — PLC 가 RTU 시리얼을 받아 Modbus TCP 로 재공개
RTU vs TCP 의 차이
| 항목 | Modbus TCP | Modbus RTU |
|---|---|---|
| 물리 계층 | 이더넷 | RS-485 / RS-232 |
| 전송 단위 | TCP segment | 시리얼 frame |
| 슬레이브 식별 | IP + (Unit ID) | Unit ID |
| 게이트웨이 통한 매핑 | 직접 | TCP IP 1개 + Unit ID 여러 개 |
| 응답 속도 | 빠름 | 보드레이트 한계 (보통 9600~115200 bps) |
→ 하나의 RS-485 라인 (= 하나의 변환기 IP) 에 여러 슬레이브가 묶여 있는 구조가 가장 흔합니다. 각 슬레이브를 Unit ID 다른 별도 연결 로 등록하세요.
등록 폼 입력값
| 입력 칸 | 무엇을 적나요 | 예시 |
|---|---|---|
| IP 주소 | RTU-over-TCP 게이트웨이 IP | 192.168.0.55 |
| 포트 | 게이트웨이의 TCP 포트 | 502 (또는 8899, 4001 등 변환기별) |
| Unit ID (slave-id) | 시리얼 슬레이브 주소 (1~247) | 1 |
| 응답 타임아웃 (request-timeout) | 응답 대기 (ms) | 5000 (시리얼은 TCP 보다 길게) |
Unit ID 가 핵심
Modbus TCP 와 달리 RTU 는 같은 IP 뒤에 여러 슬레이브 가 매달려 있습니다. Unit ID 가 틀리면 “다른 장비의 값” 이 들어옵니다. 각 슬레이브의 매뉴얼 / DIP 스위치 설정을 확인하세요.
변환기 측 설정 체크리스트
| 항목 | 추천값 |
|---|---|
| 모드 | Transparent / Modbus TCP-RTU gateway |
| 보드레이트 | 슬레이브와 동일 (9600 / 19200 / 38400 등) |
| 데이터 비트 / 정지 비트 / 패리티 | 슬레이브와 동일 (보통 8N1) |
| RTU response timeout | 1000~3000 ms |
| Inter-frame delay | 자동 또는 5~10 ms |
태그의 PLC 주소 표기
태그 주소 형식은 Modbus TCP 와 동일 합니다 (Modbus TCP 페이지 참고).
| 표기 | 의미 |
|---|---|
holding-register:1 | Holding Register 1 (16-bit) |
holding-register:1:REAL | Holding Register 1~2 (32-bit float) |
coil:1 | Coil 1 (1 비트) |
input-register:1 | Input Register 1 (16-bit, 읽기 전용) |
5자리 / 6자리 표기 (40001, 400001) 도 그대로 받습니다.
| 5자리 | 의미 |
|---|---|
1xxxx | Discrete Input |
0xxxx | Coil |
3xxxx | Input Register |
4xxxx | Holding Register |
데이터 형식 매칭
Modbus TCP 의 표를 그대로 적용하세요. RTU 라고 해서 별도의 형식이 필요하지는 않습니다.
흔한 문제와 해결
| 증상 | 가능한 원인 | 해결 |
|---|---|---|
| “Read timeout” | RTU 보드레이트 / 패리티 mismatch | 변환기와 슬레이브의 시리얼 파라미터 동일하게 |
| 한 슬레이브만 응답하고 나머지 “Slave not present” | RS-485 종단저항 / 배선 / Unit ID 충돌 | 라인 끝의 종단저항 (120Ω), Unit ID 중복 점검 |
| 모든 슬레이브 응답 없음 | 변환기 모드가 “TCP server” 가 아님 | 변환기 설정에서 Modbus TCP-RTU gateway 모드 |
| 간헐적 timeout | 시리얼 충돌 (multiple master) | RS-485 master 는 한 대만 |
| 32-bit 실수 깨짐 | byte/word 순서 (Modbus TCP 와 동일 이슈) | :UDINT_LSWORD_FIRST 등 변형 시도 |
다음 단계
- Modbus TCP 의 주소 / 형식 표 그대로 사용
- 고급 — REST API 의 Modbus 예제 (RTU 도 동일 호출)