Modbus 요청 프레임에 실리는 주소는 언제나 0~65535 의 0 기준 수입니다. 이 글에서는 이것을 «통신 주소» 라고 부릅니다. 그런데 장비 매뉴얼과 PLC·HMI 프로그램은 같은 주소를 여러 방식으로 적습니다. 표기를 잘못 읽으면 값이 한 칸씩 밀리거나 예외 02(없는 주소)가 납니다.
표기 세 가지
| 표기 | 첫 보유 레지스터 | 통신 주소 구하기 |
|---|---|---|
| 0 기준 | 0 (0x0000) | 그대로 |
| 1 기준(레지스터 번호) | 1 | 번호 − 1 |
| PLC 표기 5자리 | 40001 | 뒤 네 자리 − 1 (앞자리는 표) |
| PLC 표기 6자리 | 400001 | 뒤 다섯 자리 − 1 (앞자리는 표) |
앞자리는 «어느 표» 라는 뜻
| 앞자리 | 표 | 읽기 함수 | 쓰기 함수 |
|---|---|---|---|
| 0xxxx | 코일 | 01 | 05 · 0F |
| 1xxxx | 입력 접점 | 02 | — (읽기 전용) |
| 3xxxx | 입력 레지스터 | 04 | — (읽기 전용) |
| 4xxxx | 보유 레지스터 | 03 | 06 · 10 |
앞자리는 프레임에 실리지 않습니다. 함수 코드가 표를 정하고, 주소는 그 표 안의 0 기준 번호입니다. 그래서 30001 과 40001 은 둘 다 통신 주소 0 이지만 보내는 함수가 다릅니다(04 와 03). 5자리 표기는 9999 번째까지만 적을 수 있어 그 뒤는 6자리로 씁니다 — 410000 은 보유 레지스터 통신 주소 9999 입니다.
실제 매뉴얼은 이렇게 적습니다
이 사이트에 정리한 국산 장비의 매뉴얼에서 확인한 첫 항목들입니다. 각 장비 페이지의 레지스터 표에 «매뉴얼 주소» 와 «통신 주소» 가 나란히 있습니다.
| 장비 | 매뉴얼 표기 | 통신 주소 | 읽는 법 |
|---|---|---|---|
| LS ELECTRIC GIMAC1000 | 30001 | 0 | PLC 표기. 맵에 0 기준 ADDRESS 칸도 함께 있음 |
| 한영넉스 LC | 30104 (0067) | 103 | PLC 번호 + 괄호 속 16진 통신 주소 |
| 오토닉스 TK | 301001 (03E8) | 1000 | 6자리 참조 번호 + 괄호 속 16진 통신 주소 |
| 루텍 Accura 3300E | 10000 | 9999 | 1 기준 레지스터 번호(번호 − 1) |
| LS ELECTRIC LSLV-S100 | 0h0001 | 0 | 16진 번호. 매뉴얼 통신 예에서 시작 주소를 «주소 − 1» 로 보냄 |
| 한영넉스 VX | D-register 0 / Address 1 | 0 | D-register 열이 0 기준, Address 열은 1 기준 |
16진으로 적혀 있다고 0 기준이라는 보장은 없습니다(위의 0h0001). 매뉴얼에 프레임 예가 있으면 예의 시작 주소 바이트와 맵의 숫자를 비교하는 것이 가장 확실합니다. 위 장비들 대부분도 그렇게 확인했고, 근거 쪽 번호는 장비 페이지의 메모에 있습니다.
값이 한 칸 밀려 보일 때
- 읽은 값이 기대한 값의 바로 옆 칸이면 0 기준과 1 기준이 섞인 것입니다. 시작 주소를 1 줄이거나 늘려 봅니다.
- 예외 02(없는 주소)는 표기 혼동이나 범위 초과입니다. 맵 사이에 빈 주소가 있으면 예외 02 를 돌려주는 장비가 많으므로, 이어진 칸끼리만 묶어 읽습니다.
- 0 기준 칸에 40001 을 그대로 넣으면 통신 주소 40001 을 읽습니다 — 대개 예외 02 가 납니다.
- 32비트 값(U32·F32)만 엉뚱하면 주소보다 워드 순서(ABCD·CDAB)를 먼저 의심합니다.
PortDock 에서는
- Modbus Master: «주소 표기» 를 0 기준·1 기준·PLC(40001) 중에서 고르면 칸·시작 칸·통신 기록 풀이가 모두 그 표기로 나옵니다. 실제로 보내는 주소는 같습니다.
- 0 기준·1 기준인데 시작 칸에 40001·30001 같은 수를 넣으면 넣은 그대로 읽되, «PLC 표기라면 주소 0(FC03)» 알림과 [PLC 표기로 바꾸기] 버튼이 나옵니다.
- PLC 표기에서 30001 처럼 앞자리가 다른 주소를 넣으면 함수도 그 표(04)로 바뀝니다.
- 웹 도구 «Modbus RTU 요청 만들기» 는 0 기준과 PLC 표기를 받아 CRC 까지 붙은 요청 바이트를 만듭니다. 설치 없이 바로 확인할 수 있습니다.
작성 2026-10-19