PLC RS485 Modbus RTU 통신 설정 완전 가이드 | 배선·데이터 교환 실전 정리
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
PLC 통신(RS485·이더넷) 프로토콜 설정과
데이터 교환 완벽 정리
인버터·HMI와 PLC를 안정적으로 연결하는 RS485 Modbus RTU / Modbus TCP 설정법부터 D레지스터 매핑, 오류 진단까지 현장 실전 가이드
현장에서 가장 많이 발생하는 통신 장애 패턴
PLC와 인버터를 RS485로 연결한 뒤 "통신 에러 0x02"만 반복하는 상황은 현장에서 흔히 발생하는 문제입니다. 대부분의 경우 원인은 단순하지만 프로토콜 구조와 배선 규칙을 동시에 이해해야만 빠르게 해결할 수 있습니다. 이 글은 RS485 기반의 Modbus RTU 프로토콜 설정 전 과정과 이더넷 기반의 Modbus TCP 설정을 단계별로 정리합니다.
PLC 통신은 크게 두 계층으로 나뉩니다. 물리적 배선(RS485 2선식·4선식, RJ-45 등)과 프로토콜 계층(Modbus, PROFIBUS, EtherNet/IP 등)입니다. 이 두 계층을 혼동하면 설정이 맞아도 통신이 안 되는 현상이 발생합니다. 국내 제조현장에서 가장 많이 사용되는 Modbus RTU / Modbus TCP 프로토콜을 중심으로 배선부터 데이터 교환까지 실전 순서로 설명합니다.
① 종단 저항 미설치 — 반사 신호로 데이터 손상 (특히 50m 이상 배선 시)
② 보드레이트 불일치 — 마스터 9600 bps, 슬레이브 19200 bps로 다르게 설정
③ 중복 스테이션 번호 — 같은 버스에 슬레이브 ID가 겹치면 응답 충돌 발생
RS485 Modbus RTU vs 이더넷 Modbus TCP 핵심 비교
RS485와 이더넷 통신은 물리적 매체뿐 아니라 프로토콜 구조도 다릅니다. Modbus RTU는 직렬 비동기 통신으로 CRC 오류 검출을 포함하며, 마스터-슬레이브 구조에서 마스터만 요청을 시작합니다. Modbus TCP는 기존 Modbus RTU 프레임에서 CRC를 제거하고 TCP/IP 헤더(MBAP Header)를 추가한 방식으로 이더넷 인프라를 그대로 활용합니다.
현장 환경에 따라 선택 기준이 달라집니다. 기존 인버터나 구형 장비는 대부분 RS485 9600 bps Modbus RTU를 지원하며, 신규 HMI·스마트 공장 설비는 기가비트 이더넷 기반 Modbus TCP를 지원합니다. 두 방식을 하나의 PLC에서 동시에 운용하려면 통신 모듈을 별도로 추가하거나 게이트웨이(RS485↔이더넷 변환기)를 사용해야 합니다.
| 항목 | Modbus RTU (RS485) | Modbus TCP (이더넷) | 비고 |
|---|---|---|---|
| 물리 매체 | 2선식(A+, B−) 또는 4선식 + GND | UTP Cat.5e 이상, RJ-45 | RS485는 GND 필수 연결 |
| 최대 거리 | 1,200m (9600 bps 기준) | 100m(기본)/광섬유 무제한 | RS485 중계기로 연장 가능 |
| 속도 | 1,200 ~ 115,200 bps | 10Mbps / 100Mbps / 1Gbps | 일반 현장: 9600 or 19200 |
| 슬레이브 수 | 최대 247개 (ID 1~247) | 동시 64개 연결(포트 502) | RS485 실제 권장 32개 이하 |
| 오류 검출 | CRC-16 (2바이트) | TCP 체크섬 (하드웨어) | RTU가 오류 감지 더 명확 |
| 표준 포트 | 없음 (시리얼) | TCP Port 502 | 방화벽 포트 오픈 필요 |
| 주요 적용 | 인버터, 온도 조절기, 전력량계 | HMI, SCADA, 상위 컴퓨터 | 혼용 시 게이트웨이 사용 |
RS485 Modbus RTU 배선도 및 종단 저항 위치
RS485 배선은 버스 토폴로지(Bus Topology) 구조입니다. 마스터(PLC)에서 시작하여 슬레이브 기기를 순차적으로 연결하고, 마지막 슬레이브에서 배선이 끝나야 합니다. T분기(Star 분기)는 반사파가 발생하여 통신 오류를 일으키므로 절대 사용하지 않아야 합니다. 배선 양 끝단—PLC 측과 마지막 슬레이브 측—에 각각 120Ω 종단 저항을 설치하여 신호 반사를 흡수합니다.
A+는 적색, B−는 청색(또는 흑색) 전선으로 통일하여 극성 혼선을 방지합니다. GND(Shield)는 한쪽 끝에서만 접지하여 루프 전류 발생을 차단합니다. 케이블은 반드시 차폐 연선(Shielded Twisted Pair)을 사용하며, 동력 케이블과 최소 30cm 이격 포설해야 노이즈 영향을 최소화할 수 있습니다.
Modbus TCP 네트워크 구성 블록도 및 IP 설정
Modbus TCP는 TCP/IP Port 502번을 사용하며, PLC가 클라이언트(마스터) 역할을 하고 인버터·HMI가 서버(슬레이브) 역할을 합니다. 이더넷 통신은 RS485와 달리 스위치 허브를 통해 스타 토폴로지로 구성하며 최대 동시 접속 수는 PLC 모델에 따라 다르지만 일반적으로 64개 세션을 지원합니다. IP 충돌 방지를 위해 반드시 고정 IP 주소(Static IP)를 할당해야 합니다.
이더넷 Modbus TCP의 MBAP 헤더는 7바이트로 구성됩니다. 트랜잭션 ID(2B), 프로토콜 ID(2B, 항상 0x0000), 데이터 길이(2B), Unit ID(1B, 슬레이브 주소)로 이루어집니다. RTU의 CRC 2바이트가 없는 대신 TCP 계층에서 오류 검출을 처리합니다.
MBAP 헤더 구조 (7바이트)
D레지스터 매핑과 인버터 주파수 읽기·쓰기 실전
Modbus 프로토콜의 데이터 오브젝트는 4가지 유형으로 구분됩니다. Holding Register(FC 03/06/16)는 읽기·쓰기가 모두 가능하여 인버터 주파수 명령이나 운전/정지 제어에 사용합니다. Input Register(FC 04)는 읽기 전용으로 현재 출력 전류, 전압 모니터링에 사용합니다. PLC 내부에서는 D(데이터) 레지스터에 수신 데이터를 저장하고 프로그램에서 처리합니다.
인버터마다 Modbus Register Map(레지스터 맵)이 다르므로 반드시 해당 인버터 매뉴얼의 통신 파라미터 표를 확인해야 합니다. 예를 들어 LS 산전 L100 인버터의 경우 운전/정지 명령은 레지스터 주소 0x0001, 주파수 설정은 0x0002에 해당합니다. 미쓰비시 A800 인버터는 주파수 설정이 레지스터 40009(0x0008)에 위치합니다. 주소 체계에서 Modbus 0-based와 1-based 주소 차이를 반드시 확인해야 오작동을 방지할 수 있습니다.
FC03 읽기 / FC06 쓰기 프레임 구조 예시
| Function Code | 기능 | 대상 | 최대 처리 수 | PLC 래더 명령 예 |
|---|---|---|---|---|
| FC 01 | Read Coil | 디지털 출력 상태 읽기 | 2000 bit | MODRD / MRRD |
| FC 02 | Read Discrete Input | 디지털 입력 상태 읽기 | 2000 bit | MODRD |
| FC 03 | Read Holding Register | 읽기/쓰기 레지스터 읽기 | 125 word | MODRD / FROM |
| FC 04 | Read Input Register | 읽기 전용 레지스터 | 125 word | MODRD |
| FC 06 | Write Single Register | 단일 레지스터 쓰기 | 1 word | MODWR / TO |
| FC 10 (16) | Write Multiple Registers | 복수 레지스터 쓰기 | 123 word | MODWR |
| FC 17 (11) | Read Exception Status | 오류 상태 읽기 | 1 byte | 진단 전용 |
PLC 통신 파라미터 설정 단계별 실전 가이드
PLC 통신 모듈(예: 미쓰비시 QJ71C24N, LS iG5A 내장 RS485)의 파라미터를 설정합니다. 보드레이트 9600 bps, 데이터 비트 8, 패리티 None, 스톱 비트 1(9600-N-8-1)이 가장 일반적인 설정입니다. 모드는 Modbus RTU Master로 선택하고, 통신 타임아웃은 500ms ~ 1000ms로 설정합니다. 타임아웃이 너무 짧으면 슬레이브 응답 전에 에러가 발생합니다.
인버터 프론트 패널이나 파라미터 도구로 통신 설정을 입력합니다. 스테이션 번호(슬레이브 ID)는 1~247 사이에서 중복 없이 설정하고, 마스터와 동일한 보드레이트·패리티·스톱 비트를 사용해야 합니다. LS 산전 SV055 시리즈는 파라미터 P09-01로 통신 속도, P09-02로 스테이션 번호를 설정합니다. 설정 변경 후 반드시 인버터를 재기동해야 반영됩니다.
미쓰비시 GX Works2 기준으로 MODRD 명령(FC03 읽기)과 MODWR 명령(FC06 쓰기)을 구성합니다. 통신 명령은 반드시 스캔 타임 내에서 1회만 실행되도록 Pulse(상승 에지) 접점으로 트리거합니다. 수신 데이터는 지정한 D레지스터에 자동으로 저장되며, 통신 완료 플래그(M코일)를 확인 후 다음 처리를 진행하는 것이 안전합니다.
통신 오류 코드를 특정 D레지스터에 저장하고, 오류 발생 시 경보를 출력하는 루틴을 반드시 구성해야 합니다. 오류 코드 0x01(불법 기능 코드), 0x02(불법 데이터 주소), 0x03(불법 데이터 값), 0x04(슬레이브 장치 고장)를 구분하여 처리합니다. 통신 에러가 5회 연속 발생하면 비상정지 루틴으로 이어지도록 안전 로직을 추가합니다.
래더 모니터 모드에서 D레지스터 값 변화를 실시간으로 확인하며 통신 사이클 시간을 측정합니다. 슬레이브 기기 3개 이상에서는 폴링 주기가 길어지므로 통신 스캔 인터벌을 전체 슬레이브 응답 시간 합계의 1.5배 이상으로 여유를 두는 것이 안정적입니다. 최종 검증 시에는 전산 노이즈 환경(인버터 ON 상태)에서 1시간 이상 연속 통신 안정성을 확인합니다.
통신 오류 진단 흐름도 및 CRC 오류 처리
Modbus RTU 통신 오류 진단은 물리 계층 → 프로토콜 계층 → 데이터 계층의 순서로 단계적으로 접근해야 합니다. 먼저 RS485 A+/B− 전압을 테스터로 측정하여 물리 신호가 정상인지 확인합니다. 신호 전압은 A−B 간 +1.5V ~ +6V(마크, 논리 1) 또는 −1.5V ~ −6V(스페이스, 논리 0)이어야 합니다. 전압이 정상이면 프로토콜 분석기나 PC용 Modbus Poll 프로그램으로 프레임을 캡처하여 CRC 불일치나 타임아웃 여부를 확인합니다.
| 오류 유형 | 증상 | 주요 원인 | 해결 방법 |
|---|---|---|---|
| No Response | 슬레이브 응답 없음, 타임아웃 | 배선 단선, ID 불일치, 종단저항 미설치 | 배선 점검, ID 일치 확인, 120Ω 설치 |
| CRC Error | 부분 응답, 데이터 손상 | 노이즈, T분기 배선, 보드레이트 불일치 | STP 케이블 교체, 버스 토폴로지 수정 |
| Exception 0x01 | 슬레이브 오류 응답 | 지원하지 않는 Function Code 요청 | 슬레이브 매뉴얼로 지원 FC 확인 |
| Exception 0x02 | 슬레이브 오류 응답 | 잘못된 레지스터 주소 요청 | Modbus Map 재확인, 주소 오프셋 검토 |
| Exception 0x03 | 슬레이브 오류 응답 | 허용 범위 외 데이터 값 쓰기 | 값 범위 제한 로직 추가 (클램핑) |
| Ghost Data | 랜덤 데이터 변동 | GND 루프 전류, 차폐 미접지 | 차폐선 단측 접지, 격리형 RS485 사용 |
KEC 및 전기설비기술기준 — PLC 통신 배선 관련 조항
PLC 통신 배선은 신호(약전) 배선이지만, 전력 케이블과의 이격 및 노이즈 방지 배선에 관하여 한국전기설비규정(KEC) 제212조와 전기설비기술기준 제21조의 기준을 준수해야 합니다. 특히 RS485 통신 케이블은 인버터 동력 케이블(고조파 발생원)과 이격 포설 의무가 있으며, 공동 트레이 포설 시에는 금속 격벽 또는 차폐 케이블을 사용해야 합니다.
전기기술사 실기 시험에서 RS485 Modbus 통신 설정과 종단 저항 원리는 출제 빈도가 높습니다. 특히 "마스터-슬레이브 구조와 CRC 오류 검출 원리", "Modbus RTU 프레임 구조 설명"은 기술 서술형 문제로 자주 출제됩니다. 이더넷 기반 Modbus TCP에서 MBAP 헤더와 Unit ID의 역할도 정리해 두어야 합니다.
현장 시공·운영 핵심 팁과 흔한 실수 방지
배선 길이가 50m 미만이면 종단 저항 없이도 안정적으로 통신되는 경우가 많습니다. 그러나 노이즈 환경(인버터 주변)에서는 10m에서도 종단 저항이 필요할 수 있습니다. 시운전 초기에는 양 끝단에 설치하고, 이후 통신 품질을 보며 한쪽을 제거해 보는 방식으로 최적화합니다.
배선 길이 100m 이하이고 슬레이브 5개 미만이라면 19200 bps 사용을 권장합니다. 응답 속도가 빠르고 타임아웃 설정 여유가 생깁니다. 200m 이상이거나 구형 기기는 9600 bps로 낮춰야 안정성이 확보됩니다. 모든 기기는 반드시 동일한 속도로 설정해야 합니다.
공장 네트워크와 PLC 제어 네트워크를 물리적으로 분리된 서브넷으로 구성하는 것이 원칙입니다. 제어 네트워크는 192.168.1.x 서브넷을 전용으로 사용하고, 사무망(192.168.0.x)과 분리하여 업무 트래픽으로 인한 통신 지연을 방지합니다.
PLC 래더 프로그램의 스캔 타임이 통신 응답 시간보다 짧으면 데이터 갱신이 누락될 수 있습니다. 통신 완료 플래그를 이용한 핸드셰이크 방식 또는 인터럽트 기반 통신 프로그램을 사용하면 스캔 타임에 무관하게 안정적으로 데이터를 처리할 수 있습니다.
RS485 통신 모듈 커넥터를 연결·분리할 때는 PLC 전원 차단 후 작업합니다. 통전 상태에서 RS485 커넥터를 분리하면 정전기 또는 유도 전압으로 통신 모듈 IC가 파손될 수 있습니다.
Modbus TCP로 운전 중인 인버터 이더넷 케이블을 갑자기 분리하면 통신 타임아웃으로 인버터가 비상정지(E.Err) 할 수 있습니다. 유지보수 전 반드시 인버터를 수동 운전 모드로 전환한 후 배선 작업을 수행합니다.
자주 묻는 질문
- 공유 링크 만들기
- X
- 이메일
- 기타 앱