RS485 Modbus 통신 오류 완벽 진단 — 종단 저항·배선·주소 설정 총정리
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
통신 오류(RS485, Modbus) 진단과
종단 저항 처리 완벽 정리
PLC·인버터 Modbus 타임아웃 · CRC 에러 · 종단 저항 설치 · 실전 배선법까지
왜 Modbus 통신이 갑자기 안 될까?
현장에서 PLC와 인버터 간 Modbus RTU 통신을 구축했는데 운전 중 갑자기 "타임아웃(Timeout)"이나 "CRC 에러"가 반복되는 경험은 매우 흔합니다. 특히 배선 완료 후 초기 시운전 단계에서 데이터가 읽히지 않거나, 정상 운전 중 산발적으로 통신 이상이 발생하는 경우 원인을 신속히 찾지 못하면 설비 가동이 장시간 지연될 수 있습니다. 문제의 원인은 대부분 종단 저항 미설치, A/B선 극성 반전, 슬레이브 주소 중복 중 하나입니다.
RS485는 차동(Differential) 신호 방식으로 고속·장거리 통신에 강점이 있지만, 임피던스 정합이 맞지 않으면 신호 반사(Signal Reflection)가 발생해 데이터가 왜곡됩니다. Modbus RTU 프로토콜은 이 물리 계층 위에서 동작하므로 물리적 배선 문제를 먼저 해결하지 않으면 소프트웨어 설정만 아무리 바꿔도 오류가 반복됩니다. 이 글에서는 진단 순서부터 종단 저항 설치, 주소·보드레이트 설정, 실전 배선 검수까지 체계적으로 정리합니다.
Modbus RTU는 RS485/RS232 직렬 통신 위에서 동작하며 종단 저항이 필수입니다. Modbus TCP는 이더넷 위에서 동작하므로 종단 저항 개념 대신 네트워크 스위치 설정과 IP 주소 체계가 중요합니다. 이 글은 현장에서 가장 많이 쓰이는 RS485 기반 Modbus RTU를 중심으로 설명합니다.
RS485 차동 신호와 임피던스 정합 원리
RS485는 두 선(A, B)의 전압 차(Differential Voltage)로 "0"과 "1"을 구분합니다. A선이 B선보다 높으면 논리 "1"(Mark), 낮으면 논리 "0"(Space)입니다. 이 방식은 외부 노이즈가 두 선에 공통 모드(Common Mode)로 인가되어도 차동 증폭기가 노이즈를 제거하기 때문에 산업 현장 장거리 통신에서 높은 노이즈 내성을 발휘합니다. 최대 1.2km, 32개 노드까지 구성할 수 있으며 반이중(Half-Duplex) 방식으로 동작합니다.
임피던스 정합(Impedance Matching)은 전송 선로 끝에서 반사파가 생기는 것을 방지하기 위한 개념입니다. RS485 케이블의 특성 임피던스는 통상 120Ω(±10%)이므로 버스 양 끝에 동일한 120Ω 저항을 연결해야 신호 반사가 억제됩니다. 종단 저항이 없거나 중간에 연결되면 고속 데이터 전송 시 파형이 왜곡되어 CRC 오류 또는 프레임 오류가 발생합니다. 저속(9600 bps 이하)에서는 종단 저항 없이도 어느 정도 통신이 되는 경우가 있지만, 이는 안정적인 설치 방식이 아닙니다.
바이어스 저항(Bias Resistor)도 중요한 개념입니다. 모든 기기가 수신 대기 상태(Tristate)일 때 버스가 부동(Floating) 상태가 되어 잘못된 신호가 인식될 수 있습니다. 이를 방지하기 위해 마스터 포트 또는 전용 바이어스 모듈에서 A선은 Pull-Down, B선은 Pull-Up 저항(통상 560Ω~1kΩ)을 추가해 정의된 상태를 유지합니다. 일부 PLC 통신 모듈은 이 바이어스 저항을 내장하고 있으므로 사전에 사양서를 확인해야 합니다.
Modbus RTU 프레임 구조와 에러 코드 해석
Modbus RTU 메시지는 슬레이브 주소(1B) + 기능 코드(1B) + 데이터(N×2B) + CRC(2B)로 구성됩니다. 마스터가 요청(Request)을 전송하면 슬레이브가 응답(Response)하는 단방향 폴링 방식이며, 응답 시간이 일정 시간(타임아웃) 내에 없으면 마스터는 에러로 처리합니다. CRC(Cyclic Redundancy Check)는 수신 데이터의 무결성을 확인하는 체크섬으로, 신호 노이즈나 배선 불량으로 인해 비트가 뒤집히면 CRC 불일치 에러가 발생합니다.
기능 코드(Function Code)는 수행할 작업의 종류를 나타냅니다. 가장 많이 사용되는 FC03(Read Holding Registers)은 슬레이브의 보존 레지스터를 읽는 명령이고, FC06(Write Single Register)는 단일 레지스터에 값을 씁니다. 슬레이브가 요청을 처리할 수 없을 때는 기능 코드의 최상위 비트를 1로 설정한 예외 응답(Exception Response)을 반환하며, 이때 예외 코드(Exception Code)가 오류 원인을 나타냅니다.
예외 코드 0x01은 슬레이브가 해당 기능 코드를 지원하지 않음을, 0x02는 요청한 레지스터 주소가 존재하지 않음을 의미합니다. 0x03은 데이터 값이 허용 범위를 초과했음을 나타냅니다. 타임아웃 에러는 슬레이브 주소 불일치, 통신 속도 불일치, 또는 배선 단선·단락으로 슬레이브가 아예 응답하지 않을 때 발생합니다.
| 예외 코드 | 명칭 | 주요 원인 | 진단 포인트 | 조치 방법 |
|---|---|---|---|---|
| Timeout | 응답 없음 | 주소 불일치 / 배선 단선 / 보드레이트 불일치 | 슬레이브 주소 DIP SW 확인, 배선 저항 측정 | 주소 재설정, 단선 수정, 보드레이트 동일하게 |
| 0x01 | Illegal Function | 해당 기기가 요청 기능 코드 미지원 | 기기 사양서의 지원 FC 목록 확인 | 지원되는 FC로 변경 (FC03→FC04 등) |
| 0x02 | Illegal Data Address | 레지스터 주소 범위 초과 / 오프셋 계산 오류 | 사양서 레지스터 맵과 요청 주소 비교 | 올바른 레지스터 시작 주소로 수정 |
| 0x03 | Illegal Data Value | 쓰기 값이 기기 허용 범위 초과 | 허용 레지스터 값 범위 확인 | 유효 범위 내 값으로 제한 |
| CRC Error | CRC 불일치 | 종단 저항 미설치, 배선 노이즈, A/B 반전 | 오실로스코프 파형 확인, 종단 저항 측정 | 120Ω 설치, 실드 접지, 극성 수정 |
| Framing Error | 프레임 오류 | 데이터 비트/정지 비트 불일치 (8N1 vs 8E1) | 마스터·슬레이브 시리얼 파라미터 비교 | 양쪽 동일하게 (8N1 권장) |
| Overrun | 버퍼 오버런 | 전송 속도가 수신 버퍼 처리 속도 초과 | 보드레이트 낮추기 / 폴링 간격 늘리기 | 19200→9600 bps 낮춤, 인터 프레임 갭 확인 |
종단 저항 위치·용량 결정 및 설치 방법
종단 저항의 위치 원칙은 단순합니다. RS485 버스의 물리적 양 끝(First Node와 Last Node) 사이에 각 1개씩 총 2개를 설치합니다. 중간 노드에 설치하면 버스가 두 구간으로 분할되어 오히려 통신이 불안정해지므로 절대 금지입니다. 마스터(PLC) 포트 바로 옆이 한쪽 끝, 가장 멀리 위치한 슬레이브(예: 라인 끝 인버터 또는 계기)가 반대쪽 끝입니다. 버스가 T형 분기로 구성된 경우에는 각 분기 끝에도 종단 저항이 필요하지만, 이 경우 여러 저항이 병렬로 보여 임피던스가 낮아지므로 가급적 데이지체인 배선을 권장합니다.
저항 용량은 케이블 특성 임피던스와 일치해야 합니다. 산업용 RS485 케이블(STP 2P, AWG22~AWG24)의 특성 임피던스는 대부분 100Ω~120Ω 범위이므로 통상 120Ω 1/4W 탄소 피막 저항 또는 금속 피막 저항을 사용합니다. 정밀 측정이 필요한 경우 케이블 사양서를 확인하고 정확한 값을 선정합니다. 일부 PLC·인버터 제조사는 제품 내부에 종단 저항 활성화 DIP 스위치(SW)를 제공하므로, 이를 ON하면 외부 저항 없이도 종단 처리가 됩니다. 사전에 사양서에서 내장 종단 저항 여부를 반드시 확인해야 합니다.
실제 설치 전 테스트 방법은 다음과 같습니다. 멀티미터를 저항(Ω) 모드로 설정하고 버스 전원을 완전히 차단한 상태에서 A선과 B선 사이 저항을 측정합니다. 종단 저항 2개가 모두 올바르게 설치되면 버스의 A-B 간 합성 저항은 약 60Ω(120Ω 병렬 = 60Ω)으로 측정됩니다. 측정값이 매우 높거나(∞) 불규칙하면 종단 저항 미설치 또는 단선 가능성이 있고, 0Ω에 가까우면 단락(Short)을 의심해야 합니다.
전원 차단 후 멀티미터로 A-B 간 저항 측정 → 약 60Ω이면 정상 (120Ω 2개 병렬). 측정값이 100Ω 이상이면 한쪽 종단 저항 누락, 240Ω 이상이면 양쪽 모두 미설치입니다.
RS485 버스를 T자형으로 분기하면 신호 반사점이 여러 곳에 생겨 고속 통신(38400 bps 이상)에서 통신 오류가 급증합니다. 반드시 데이지체인(Daisy-chain, 직렬) 방식으로 배선하고, 분기가 불가피한 경우 스텁(Stub) 길이를 0.5m 이하로 제한합니다.
Modbus 통신 오류 단계별 진단 흐름도
통신 오류 발생 시 무작위로 설정을 건드리면 오히려 문제가 커집니다. 아래 흐름도는 현장에서 검증된 6단계 체계적 Modbus 통신 오류 진단 절차입니다. 물리 계층(배선·저항) → 데이터링크(보드레이트·주소) → 애플리케이션(레지스터·기능 코드) 순서로 점검하면 대부분의 문제를 30분 이내에 해결할 수 있습니다.
PLC 통신 모듈의 TX LED가 점멸하지 않으면 마스터 프로그램에서 통신 명령이 실행되지 않는 것입니다. 통신 명령 블록 활성화 조건(EN 비트 또는 트리거 신호)을 확인하고, 포트 번호가 올바르게 설정되었는지 확인합니다.
전원 차단 후 A-B 간 저항 측정(약 60Ω 목표). A/B 반전 여부를 단자 레이블로 확인합니다. 인버터 사양서에서 RS485 단자 명칭(+/−, RDA/RDB, SDA/SDB)과 PLC 포트 A/B를 정확히 매칭합니다.
마스터와 모든 슬레이브의 보드레이트(예: 9600 bps), 데이터 비트(8), 패리티(None), 정지 비트(1)가 동일해야 합니다. 슬레이브 주소가 1~247 범위 내에 있고 중복이 없는지 확인합니다. 주소 0은 브로드캐스트 전용이므로 슬레이브에 할당하면 안 됩니다.
PC에 USB-RS485 컨버터를 연결하고 ModScan32, Modscan64, 또는 오픈소스 ModBus Poll 소프트웨어로 슬레이브에 직접 요청을 보내 응답 여부를 확인합니다. 이 방법은 PLC 프로그램 오류인지 통신 계층 문제인지를 빠르게 분리하는 데 유용합니다.
오실로스코프 채널 1을 A선, 채널 2를 B선에 연결하여 차동 신호를 확인합니다. 정상 파형은 HIGH 구간에서 A가 B보다 명확히 높아야 합니다. 파형이 왜곡되거나 링잉(Ringing)이 심하면 종단 저항 불량, 케이블 임피던스 불일치, 또는 인버터 PWM 노이즈에 의한 간섭을 의심해야 합니다.
통신 케이블의 실드(SHD)는 반드시 한쪽(마스터 측) 한 지점에만 PE에 연결하고 반대쪽은 개방(플로팅)합니다. 양쪽 접지 시 지락 루프 전류가 흘러 오히려 노이즈가 증가합니다. 인버터 근처 배선 구간은 동력 케이블과 최소 150mm 이상 이격하거나 별도 금속 트레이에 포설합니다.
슬레이브 주소·보드레이트·시리얼 파라미터 설정 가이드
Modbus RTU 슬레이브 주소(Station ID)는 버스상에서 각 기기를 식별하는 고유 번호로 1부터 247까지 설정 가능합니다. 같은 버스에 동일 주소를 가진 기기가 2대 이상 있으면 두 기기가 동시에 응답하려다가 버스 충돌이 발생하여 CRC 오류가 연속으로 나타납니다. 인버터, HMI, 각종 계측기 모두 주소가 중복되지 않도록 설치 전 주소 할당표를 작성하고 관리합니다.
보드레이트 설정은 마스터·슬레이브 간 가장 빈번하게 불일치하는 파라미터입니다. 현장에서 권장하는 기본값은 9600 bps, 8N1(데이터 8비트, 패리티 없음, 정지비트 1)입니다. 응답 속도가 중요한 경우 19200 bps까지 올릴 수 있지만, 이 경우 케이블 품질과 종단 저항 설치 상태가 더욱 중요해집니다. 38400 bps 이상에서는 거리가 200m를 넘으면 신뢰성이 급격히 떨어집니다.
| 파라미터 | 권장값 | 설명 | 설정 위치(예: LS 인버터) | 주의사항 |
|---|---|---|---|---|
| 슬레이브 주소 | 1~247 (고유) | 버스 내 기기 식별 번호 | COM-02 (Station ID) | 중복 절대 금지, 0은 브로드캐스트 예약 |
| 보드레이트 | 9600 bps | 초당 전송 비트 수 | COM-03 (Baud Rate) | 마스터·슬레이브 동일해야 함 |
| 데이터 비트 | 8비트 | 한 프레임당 데이터 비트 수 | COM-04 | Modbus RTU는 항상 8비트 (7비트 금지) |
| 패리티 | None(N) | 오류 검출용 비트 | COM-05 | None / Even / Odd 중 마스터와 동일하게 |
| 정지 비트 | 1비트 | 프레임 종료 비트 | COM-06 | 패리티=None이면 정지비트 1 또는 2 가능 |
| 응답 타임아웃 | 500ms~1s | 슬레이브 응답 대기 시간 | PLC 통신 명령 블록 내 | 너무 짧으면 정상 통신도 타임아웃 처리됨 |
| 인터 프레임 갭 | 3.5문자 시간 | 프레임 간 최소 침묵 시간 | Modbus 규격 자동 적용 | 9600 bps 기준 약 3.6ms 이상 |
관련 KEC 및 전기설비기술기준 규정
한국전기설비규정(KEC) 제212조 및 전기설비기술기준 제21조는 제어·신호 배선의 전자기 적합성(EMC)과 시공 기준에 관한 사항을 규정합니다. 통신 배선은 동력 배선과 구분하여 별도 경로로 시공해야 하며, 이중 연피 케이블 또는 차폐 트위스트 페어(STP) 케이블 사용이 권장됩니다. 실드 접지는 단일 접지점 원칙을 적용하여 지락 루프를 방지해야 합니다.
RS485 종단 저항 필요성과 설치 위치, Modbus RTU 프레임 구조(Address + FC + Data + CRC), 바이어스 저항의 역할, 실드 접지 원칙(Single-point Ground), A/B 극성 정의는 전기기술사 실기 및 기술사 구술시험에서 빈출 항목입니다.
인버터 PWM 노이즈 간섭 방지와 실드 케이블 시공법
인버터는 수 kHz~수십 kHz의 PWM(펄스폭 변조) 스위칭 노이즈를 발생시키는 대표적인 전자기 간섭(EMI) 발생원입니다. 인버터와 RS485 통신 케이블이 같은 케이블 트레이를 공유하면 용량성 결합(Capacitive Coupling) 또는 자기 결합(Inductive Coupling)으로 통신 신호에 노이즈가 유입되어 산발적인 CRC 오류가 발생할 수 있습니다. 특히 모터 구동 중에만 통신 오류가 발생한다면 인버터 PWM 노이즈 간섭을 강하게 의심해야 합니다.
대책으로는 먼저 통신 케이블과 동력 케이블의 이격 거리를 최소 150mm 이상 확보하고, 교차 배선이 필요한 경우 직각(90°)으로 교차합니다. 통신 케이블은 반드시 차폐 트위스트 페어(STP) 케이블을 사용하고 실드는 한쪽 단에서만 PE에 접지합니다. 추가적으로 인버터 출력 측에 라인 노이즈 필터(AC 리액터)를 설치하거나, 통신 케이블 마스터 포트 근처에 페라이트 코어(클램프 필터)를 적용하면 고주파 노이즈를 효과적으로 감쇠할 수 있습니다.
차폐 트위스트 페어 케이블(STP AWG22~24, 2쌍)을 사용합니다. 통신 전용 케이블(예: Belden 9841)은 특성 임피던스 120Ω으로 최적화되어 있습니다.
동력 케이블(특히 인버터 출력)과 통신 케이블은 동일 트레이 사용 금지. 별도 트레이 사용 또는 금속 격벽으로 차폐합니다.
실드는 마스터(PLC) 측 한쪽만 PE에 연결합니다. 슬레이브 측 실드는 절연 처리(테이프 감기)하여 루프 전류를 차단합니다.
통신 케이블에 페라이트 클램프 필터를 마스터 포트 진입부에 설치합니다. 고주파 노이즈(수 MHz 대역) 감쇠에 효과적입니다.
현장에서 활용하는 Modbus 진단 도구 및 소프트웨어
Modbus 통신 진단에 사용되는 도구는 하드웨어와 소프트웨어로 나뉩니다. 하드웨어 도구로는 디지털 멀티미터(DMM)와 오실로스코프가 기본이며, USB-RS485 변환 컨버터는 PC를 간이 분석 도구로 활용할 수 있게 해줍니다. 전용 Modbus 통신 분석기(프로토콜 애널라이저)는 프레임 단위로 트래픽을 캡처·디코딩하여 어떤 요청에 어떤 응답이 오는지 시각적으로 확인할 수 있는 고가 장비입니다.
| 도구명 | 종류 | 주요 기능 | 활용 시점 | 비용 수준 |
|---|---|---|---|---|
| 디지털 멀티미터 | 하드웨어 | A-B 간 저항 측정 (60Ω 확인), 단선·단락 진단 | 1차 현장 진단, 종단 저항 설치 확인 | 저가 (2~10만원) |
| 오실로스코프 | 하드웨어 | 차동 파형 확인, 노이즈·링잉 측정, 비트레이트 실측 | 파형 이상 분석, 노이즈 원인 규명 | 중가 (50~300만원) |
| USB-RS485 컨버터 | 하드웨어 | PC를 Modbus 마스터로 사용 | 슬레이브 단독 동작 확인 | 저가 (1~5만원) |
| ModScan32/64 | 소프트웨어 | 레지스터 직접 읽기/쓰기, FC 선택 가능 | 파라미터 확인, 레지스터 맵 검증 | 무료/유료 |
| Modbus Poll | 소프트웨어 | 다중 슬레이브 동시 폴링, 에러율 통계 | 복수 슬레이브 성능 확인 | 유료 (시험판 무료) |
| Modbus Slave | 소프트웨어 | PC를 가상 슬레이브로 동작시켜 마스터 동작 검증 | PLC 마스터 동작 확인 | 유료 (시험판 무료) |
RS485 배선 작업 시 안전수칙 및 흔한 실수
통신 케이블 작업 중에도 제어 전원(DC24V)을 포함한 모든 전원을 차단하고 LOTO(잠금 태그) 후 작업합니다.
배선 작업 중 A선·B선이 PE에 단락되면 통신 모듈 또는 컨버터 IC가 손상될 수 있습니다. 심선 노출 최소화, 페룰 압착 처리합니다.
통신 케이블을 동력선과 같은 전선관·트레이에 포설하면 노이즈와 과전압 유도 위험이 있습니다. 반드시 분리 포설합니다.
인버터 RS485 단자는 기기 내부 회로와 연결되므로 운전 중 단자 접속·탈거는 인버터 CPU 손상 원인이 됩니다.
자주 묻는 질문
함께 읽으면 도움이 되는 글
- 공유 링크 만들기
- X
- 이메일
- 기타 앱