마스터가 요청을 보냈는데 아무것도 오지 않으면 화면에는 «타임아웃» 한 줄만 남습니다. 원인은 배선부터 장비 설정까지 여러 층에 있으므로, 통신 기록을 보고 범위부터 좁히는 것이 빠릅니다. 아래 순서는 PortDock Modbus Master 도움말의 문제 해결 항목과, 이 사이트의 장비 레지스터 맵을 만들며 매뉴얼에서 확인한 사례를 묶은 것입니다.
0. 먼저: 무엇이라도 돌아오는가
| 통신 기록 | 뜻 | 볼 곳 |
|---|---|---|
| TX 만 있고 RX 가 전혀 없음 | 장비가 요청을 못 알아들었거나, 자기 것이 아니라고 봄 | 1 ~ 5 |
| RX 는 오는데 CRC 오류 | 바이트는 오가지만 깨짐 | 2(속도·패리티), RS-485 배선 |
| 보낸 바이트가 그대로 돌아옴 | 2선식 RS-485 변환기의 에코 | 변환기 설정(PortDock Modbus Master 는 에코를 알아서 건너뜀) |
| 예외 응답(함수 + 0x80) | 통신은 정상, 요청 내용이 장비와 안 맞음 | 6 |
| 가끔만 타임아웃 | 타이밍·잡음 | 7 |
1. 국번(슬레이브 ID)
요청의 첫 바이트가 장비 국번과 다르면 장비는 오류도 없이 조용히 무시합니다. 장비 설정 메뉴의 국번을 확인하고, 모르면 국번을 차례로 물어봅니다(PortDock Modbus Master «찾기… → 국번 찾기», 국번마다 기다림 기본 200 ms — 예외로 답해도 «장비 있음» 으로 봅니다). 국번 0 은 브로드캐스트라서 장비가 받아도 답하지 않습니다.
2. 속도·데이터 비트·패리티·정지 비트
하나라도 다르면 장비가 바이트를 제대로 읽지 못해 답하지 않거나, 답이 와도 CRC 가 틀립니다. 출하값은 장비마다 다릅니다. 이 사이트의 장비 10종만 봐도 9600 bps 가 많지만 LS ELECTRIC GIMAC1000 은 38400 bps, 루텍 Accura 3300E·2300 은 짝수 패리티, 오토닉스 TK·TX·MT4W 는 정지 비트 2 가 출하값입니다.
Modbus 시리얼 규격은 짝수 패리티를 기본으로 하고 패리티를 쓰지 않으면 정지 비트 2 를 쓰도록 정하지만, 8N1 로 출하되는 장비도 많습니다. 규격이 아니라 장비 매뉴얼 값을 따르세요. 장비 페이지 맨 위 «통신 기본값» 표에 매뉴얼 쪽 번호와 함께 정리해 두었습니다.
3. 배선과 변환기 (RTU)
- A/B 극성을 바꿔 꽂아 봅니다. 극성이 반대여도 장비는 망가지지 않습니다. 종단·바이어스·접지는 RS-485 배선 점검 글을 보세요.
- 2선식 변환기의 방향 제어(자동 또는 RTS)가 맞는지 봅니다. 응답의 앞부분이 잘리면 이쪽입니다.
- 다른 프로그램(다른 마스터·터미널)이 같은 COM 포트를 열고 있으면 포트를 열 수 없습니다.
- 같은 선에 다른 마스터(PLC·HMI)가 붙어 있으면 요청이 섞여 CRC 오류나 «모양 틀림» 이 생깁니다. 시험하는 동안에는 떼어 둡니다.
4. 장비 쪽 Modbus 설정
통신 포트가 있어도 출하 때 Modbus 가 아닌 프로토콜로 맞춰진 장비가 있습니다. 예를 들어 한영넉스 VX 는 공장 초기값이 PC Link 이고, Modbus RTU 로 쓰려면 프로토콜 설정(PRS)을 3 으로 바꿔야 합니다(매뉴얼 p.103~104). LS ELECTRIC LSLV-S100 은 통신 그룹 CM.01~CM.04 에 국번·프로토콜·속도·데이터 형식이 있고 출하값은 국번 1, Modbus-RTU, 9600 bps, 8N1 입니다(매뉴얼 p.281). 설정 메뉴의 이름과 위치는 장비 페이지의 «통신 기본값» 아래 메모에 쪽 번호와 함께 있습니다.
5. Modbus TCP 라면
- IP·포트(보통 502)와 대역: PC 와 장비가 같은 대역에 있어야 합니다. PortDock Net Scan 은 대역을 훑어 502 가 열린 장비를 보여 주고 «IP:502» 를 복사해 줍니다.
- 접속은 되는데 답이 없으면 Unit ID(국번): 게이트웨이 뒤의 RTU 장비라면 그 장비의 국번을 넣습니다. 장비가 직접 Modbus TCP 를 말할 때 어떤 Unit ID 를 받는지는 장비마다 다릅니다 — PortDock Net Scan 의 장비 정보 읽기는 1 로 묻고 안 되면 255 로 묻습니다.
- 접속 수 제한: 장비가 이미 HMI·SCADA 같은 다른 마스터와 연결돼 있으면 새 접속을 받지 않거나 포트가 닫힌 것처럼 보일 수 있습니다.
- 게이트웨이가 예외 0A(경로 없음)·0B(대상 응답 없음)를 돌려주면 TCP 구간은 정상이고 게이트웨이 뒤 시리얼 쪽 문제입니다 — 1~3 으로 돌아갑니다.
- PC 가 서버(슬레이브 흉내) 쪽이면 처음 열 때 윈도우 방화벽 허용 창이 뜰 수 있습니다. 허용하지 않으면 다른 장비가 접속하지 못합니다.
6. 예외 응답이 온다면
| 예외 | 뜻 | 흔한 원인 |
|---|---|---|
| 01 | 지원하지 않는 함수 | 장비에 없는 함수 코드. 예: 루텍 Accura 3300E 는 03·06·16 만 지원 |
| 02 | 없는 주소 | 0 기준과 1 기준·40001 표기 혼동, 개수가 범위를 넘음, 사이에 빈 주소 |
| 03 | 잘못된 값 | 개수가 한도를 넘음(규격상 레지스터 읽기 125개, 장비가 더 적은 경우도 있음), 쓴 값이 범위 밖 |
| 04 | 장비 내부 오류 | 장비 상태·매뉴얼의 오류 항목 확인 |
| 06 | 장비 바쁨 | 요청 간격을 늘림 |
읽기는 되는데 쓰기만 예외가 난다면 장비의 쓰기 잠금을 봅니다. 한영넉스 LC 는 통신 쓰기 금지(CWP)가 출하 때 ON 이라, 앞판에서 OFF 로 바꾸기 전까지 쓰기 요청에 예외로 답합니다(매뉴얼 p.31·p.34). 한 번에 읽는 개수도 장비마다 한도가 따로 있습니다 — LS ELECTRIC GIMAC1000 은 124개, 한영넉스 VX 는 FC03 으로 31개까지입니다.
7. 가끔만 타임아웃이 난다면
- 응답 기다림(타임아웃)을 넉넉히: 9600 bps 에서 125 레지스터 응답은 전송에만 약 270 ms 가 걸립니다. 게이트웨이·무선 구간은 더 깁니다.
- 요청 간격: 장비가 연달아 오는 요청을 놓치면 앞 응답과 다음 요청 사이를 띄웁니다. RS-485 에 여러 장비가 있으면 20~50 ms 가 무난합니다.
- USB-시리얼 변환기는 데이터를 몇 ms 단위로 묶어 넘겨 응답이 늦게 도착할 수 있습니다 — 변환기 지연 글을 보세요.
- 재시도 1~2 회. 예외 응답은 다시 보내도 같으므로 재시도 대상이 아닙니다.
장비 없이 마스터부터 확인하기
마스터 프로그램 쪽이 의심되면 실제 장비 대신 PortDock Modbus Slave 를 상대로 붙여 봅니다. 같은 PC 라면 Slave 를 Modbus TCP 서버(포트 502 또는 1502)로 켜고 마스터를 127.0.0.1 로 연결합니다. Slave 의 장애 주입(응답 지연·무응답·예외·CRC 틀림)으로 마스터가 타임아웃·재시도를 어떻게 처리하는지도 미리 볼 수 있습니다.
작성 2026-10-19