EtherNet/IP Explicit·Implicit Messaging 차이|산업용 Ethernet 통신 해석
EtherNet/IP 장비의 매뉴얼이나 PLC 통신설정을 보면 Explicit Messaging, Implicit Messaging이라는 표현을 자주 볼 수 있습니다.
둘 다 EtherNet/IP의 상위 프로토콜인 **CIP(Common Industrial Protocol)**를 이용하지만 목적은 다릅니다.
가장 간단하게 구분하면
Explicit Messaging = 파라미터 설정·조회·진단용 통신
Implicit Messaging = 실시간 I/O 데이터 교환용 통신
입니다.
예를 들어 PLC가 인버터의 설정값을 한 번 읽는 것은 Explicit Messaging에 가깝고, 운전 중 속도명령과 상태값을 계속 주고받는 것은 Implicit Messaging에 해당합니다.
Explicit·Implicit Messaging 핵심 차이
| 구분 | Explicit Messaging | Implicit Messaging |
|---|---|---|
| 주요 목적 | 설정·조회·진단 | 실시간 I/O 제어 |
| 통신형태 | Request / Reply | 주기적 Data Transfer |
| EtherNet/IP 전송 | TCP/IP | UDP/IP |
| 연결 | Connected 또는 Unconnected | Connected |
| 데이터 의미 | 메시지 안에 Service·Object 정보 포함 | 미리 약속된 데이터 형식 |
| 대표 예 | 파라미터 Read/Write | 센서값·출력값·속도명령 |
즉 Explicit는 무엇을 할 것인지 메시지 안에 명확하게 표현하고, Implicit는 통신을 시작하기 전에 데이터의 의미를 서로 알고 있기 때문에 매번 설명정보를 보낼 필요가 없습니다.
Explicit Messaging이란?
Explicit Messaging은 장비에 특정 요청을 보내고 그 결과를 응답받는 방식입니다.
예를 들어 PLC가 인버터에
현재 최대 주파수 설정값을 읽어줘
라고 요청한다고 가정해보겠습니다.
구조를 단순화하면
PLC
↓
Read Request
↓
Inverter Parameter
↓
Response
형태입니다.
즉 어떤 Object에 어떤 Service를 수행할지 명확하게 지정합니다.
그래서 Configuration, Diagnostic, Parameter Read/Write 같은 작업에 적합합니다.
왜 Explicit라는 이름을 사용할까?
CIP는 Object-oriented Protocol입니다.
장비 내부 기능을
Object
Instance
Attribute
Service
개념으로 관리합니다.
Explicit Message에는
어떤 Object에 접근할지
어떤 Instance인지
어떤 Attribute인지
읽기인지 쓰기인지
등의 정보가 포함됩니다.
즉 메시지 자체에 데이터의 의미가 명시적으로 Explicit하게 포함되어 있어 Explicit Messaging이라고 부릅니다.
실제 Parameter Read 예제
인버터에 특정 Parameter가 있다고 가정하겠습니다.
Object Class = 0x93
Instance = 1
Attribute = 10
PLC에서 이 값을 읽고 싶다면 Explicit Message로 해당 Object에 Read Service를 보냅니다.
개념적으로
Get Attribute
↓
Class 0x93
↓
Instance 1
↓
Attribute 10
↓
Response = 1500
형태입니다.
실제 Class·Instance·Attribute 값은 장비 제조사의 EtherNet/IP Manual을 확인해야 합니다.
Explicit는 TCP를 사용하는 이유
EtherNet/IP에서 Explicit Messaging은 일반적으로 TCP/IP를 사용합니다.
TCP는
연결지향형
순서보장
재전송
수신확인
기능을 제공합니다.
설정값 하나를 읽는데 Packet이 하나 빠져서 잘못된 값을 받는 것은 문제가 되기 때문에 정확성과 신뢰성이 중요합니다.
따라서 Parameter 설정이나 진단데이터처럼
속도보다 정확한 전달이 더 중요한 데이터
에 적합합니다.
Explicit는 항상 연결을 만드는가?
아닙니다.
EtherNet/IP의 Explicit Messaging은
Unconnected Explicit Messaging
또는
Connected Explicit Messaging
두 방식으로 사용할 수 있습니다.
Unconnected Messaging
필요할 때 Request를 보내고 Response를 받는 방식입니다.
가끔 Parameter를 읽거나 설정할 때 적합합니다.
Connected Explicit Messaging
먼저 CIP Connection을 만들어 통신자원을 확보한 뒤 반복적으로 Explicit Message를 주고받습니다.
두 장치 사이에서 Explicit 요청이 자주 발생하는 경우 사용할 수 있습니다.
따라서
Explicit = 무조건 비연결 통신
이라고 생각하면 안 됩니다.
Implicit Messaging이란?
Implicit Messaging은 실시간 I/O 데이터를 빠르게 주고받기 위한 방식입니다.
예를 들어 PLC와 Remote I/O가 있다고 가정하겠습니다.
PLC가 계속
Input 1 값을 읽어줘
Input 2 값을 읽어줘
라고 요청하는 대신,
연결을 만들 때 어떤 데이터가 어떤 순서로 전달되는지 미리 약속합니다.
그 후에는
00110110
같은 실제 Process Data만 반복해서 전달합니다.
데이터 안에 매번 Object·Attribute 설명을 넣을 필요가 없습니다.
그래서 데이터 의미가 Implicit, 즉 암묵적으로 이미 정해져 있다고 표현합니다.
Assembly Object가 중요한 이유
EtherNet/IP의 Implicit I/O 통신에서는 Assembly Object가 자주 등장합니다.
Assembly는 여러 Process Data를 하나의 데이터 구조로 묶어 놓은 것입니다.
예를 들어 인버터의 Output Assembly가 다음처럼 정의될 수 있습니다.
Control Word = 2Byte
Speed Reference = 4Byte
Reserved = 2Byte
총
8Byte
입니다.
PLC와 인버터가 이미 이 구조를 알고 있다면 통신할 때 매번
앞의 2Byte는 Control Word다
라고 설명할 필요가 없습니다.
8Byte 데이터만 주기적으로 보내면 됩니다.
이 때문에 Implicit Messaging의 Protocol Overhead가 줄어들고 실시간 제어에 유리해집니다.
Implicit는 왜 UDP를 사용할까?
Implicit Messaging은 EtherNet/IP에서 일반적으로 UDP/IP를 사용합니다.
UDP는 TCP처럼 Packet마다
ACK
재전송
순서확인
과정을 수행하지 않습니다.
그래서 실시간 I/O 데이터를 빠르게 반복해서 전송하는 데 적합합니다.
예를 들어 10ms마다 센서 데이터가 새로 전송된다면 이전 Packet 하나가 늦게 재전송되는 것보다 다음 최신 데이터를 바로 받는 것이 더 중요할 수 있습니다.
따라서
Explicit → TCP
Implicit → UDP
라는 기본 구분을 기억하면 좋습니다.
UDP라면 데이터가 사라져도 아무 문제가 없을까?
그렇지는 않습니다.
Implicit Messaging은 CIP Connection 기반으로 동작하며 연결상태를 감시하는 메커니즘이 존재합니다.
정해진 시간 동안 상대방의 데이터가 들어오지 않으면 Controller는 Connection Timeout 또는 Fault로 판단할 수 있습니다.
즉 TCP처럼 각각의 Packet을 재전송하는 구조는 아니지만 통신 자체가 끊어진 것을 감지하지 못하는 것은 아닙니다.
RPI란 무엇일까?
Implicit Messaging에서 매우 중요한 값이 **RPI(Requested Packet Interval)**입니다.
RPI는 Controller와 Device 사이에서 데이터를 어느 정도 주기로 교환할지를 지정합니다.
예를 들어
RPI = 10ms
라고 설정했다면 약 10ms 주기를 기준으로 I/O 데이터가 생산됩니다.
이를 주파수로 단순 환산하면
1 ÷ 0.01초 = 100Hz
입니다.
즉 초당 약 100회의 데이터 갱신에 해당하는 주기입니다.
RPI가 짧을수록 무조건 좋을까?
아닙니다.
예를 들어 Remote I/O 100개를 모두
RPI = 1ms
로 설정하면 매우 많은 Packet이 네트워크를 통해 전송됩니다.
RPI가 짧아질수록
Network Traffic 증가
Controller 부하 증가
Device 처리부하 증가
가능성이 있습니다.
반대로 너무 길게 설정하면 I/O 응답이 느려질 수 있습니다.
따라서 실제 시스템에서는 장비가 필요한 응답속도를 기준으로 적절한 RPI를 선택해야 합니다.
10ms와 100ms RPI를 비교해보자
한 I/O 장치가 있다고 가정하겠습니다.
RPI = 10ms
1초 ÷ 0.01초
= 약 100회/초
RPI = 100ms
1초 ÷ 0.1초
= 약 10회/초
입니다.
온도처럼 천천히 변화하는 Process Data에는 100ms가 충분할 수도 있지만 빠른 Motion이나 고속 I/O에서는 100ms가 너무 느릴 수 있습니다.
따라서
RPI가 작다 = 무조건 좋다
가 아니라
Application에 맞는 주기를 선택한다
가 핵심입니다.
Unicast와 Multicast도 선택할 수 있다
Implicit Messaging은 Unicast 또는 Multicast 방식으로 사용할 수 있습니다.
Unicast
하나의 Producer가 특정 Consumer에게 데이터를 전송합니다.
예를 들어
Remote I/O → PLC A
처럼 특정 Controller만 데이터를 받는 방식입니다.
Multicast
하나의 Producer가 만든 데이터를 여러 Consumer가 받을 수 있습니다.
예를 들어
Sensor
↓
PLC A
PLC B
Monitoring System
처럼 하나의 데이터 생산자가 여러 장치에 동일한 정보를 제공할 수 있습니다.
CIP는 이러한 Producer-Consumer 모델을 중요한 특징으로 사용합니다.
Multicast면 네트워크에 항상 좋은 걸까?
그렇지는 않습니다.
Multicast는 같은 데이터를 여러 장치가 받아야 할 때 효율적일 수 있습니다.
하지만 네트워크 Switch가 Multicast Traffic을 적절하게 관리하지 못하면 필요하지 않은 Port까지 Packet이 전달될 수 있습니다.
따라서 실제 EtherNet/IP 네트워크에서는
IGMP Snooping
Managed Switch
Network Segmentation
등을 함께 고려할 수 있습니다.
장치 하나와 PLC 하나만 통신하는 환경이라면 Unicast가 더 단순할 수 있습니다.
Explicit와 Implicit를 인버터에서 비교해보자
EtherNet/IP 인버터 하나를 예로 들어보겠습니다.
장비 설정 단계
PLC가 인버터의
Motor Rated Current
Acceleration Time
Maximum Frequency
등을 설정합니다.
이런 작업에는 Explicit Messaging을 사용할 수 있습니다.
정상 운전 단계
PLC와 인버터가 계속
Run Command
Speed Reference
Actual Speed
Drive Status
등을 주고받습니다.
이런 데이터는 Implicit Messaging으로 처리하는 것이 일반적입니다.
즉 실제 시스템에서는 둘 중 하나만 쓰는 것이 아니라 두 방식이 서로 다른 역할을 담당합니다.
Explicit Messaging으로 실시간 제어를 하면 안 될까?
기술적으로 일부 데이터를 반복해서 읽고 쓸 수는 있습니다.
하지만 실시간 I/O 제어가 목적이라면 일반적으로 Implicit Messaging이 더 적합합니다.
Explicit Message에는
Service 정보
Object 주소
Request
Response
등이 필요하기 때문에 반복적인 I/O 전송에서는 Overhead가 커집니다.
반면 Implicit Message는 미리 정해진 데이터 구조를 사용하므로 효율적으로 반복전송할 수 있습니다.
따라서
Configuration·Diagnostic → Explicit
Real-Time I/O → Implicit
으로 역할을 나누는 것이 기본입니다.
Class 1·Class 3 Connection은 무엇일까?
EtherNet/IP 문서에서는 Class 1, Class 3 Connection이라는 표현도 볼 수 있습니다.
일반적으로
Class 1
실시간 I/O 데이터와 관련된 연결
Class 3
Connected Explicit Messaging에 사용되는 연결
과 관련됩니다.
따라서 문서에서 Class 1 Connection을 본다면 Implicit I/O Communication과 연결해 이해할 수 있습니다.
다만 Class 1이 Class 3보다 높은 등급이라는 의미는 아닙니다.
서로 목적이 다른 CIP Connection 종류입니다.
Scanner와 Adapter는 어떤 역할일까?
EtherNet/IP I/O 시스템에서는 흔히
Scanner
Adapter
라는 표현을 사용합니다.
Scanner
I/O Connection을 시작하는 Controller 역할입니다.
대표적으로
PLC
Industrial Controller
등입니다.
Adapter
Scanner의 I/O Connection 요청을 받아 실제 데이터를 생산·소비하는 장치입니다.
대표적으로
Remote I/O
Drive
Robot
Weigh Scale
등이 있습니다.
예를 들어
PLC Scanner ↔ Remote I/O Adapter
사이에 Implicit I/O Connection이 만들어질 수 있습니다.
실제 데이터시트를 읽어보자
EtherNet/IP Remote I/O에 다음과 같이 표시되어 있다고 가정하겠습니다.
Protocol: EtherNet/IP
Explicit Messaging: Supported
Implicit I/O: Supported
RPI: 2~1000ms
I/O Connection: Unicast / Multicast
이를 해석하면
Explicit Messaging을 이용해 장치 설정이나 진단 Parameter에 접근할 수 있고,
Implicit Messaging을 이용해 Process I/O 데이터를 반복적으로 교환할 수 있으며,
Application에 맞게 RPI를 설정하고,
I/O Connection 방식을 Unicast 또는 Multicast로 구성할 수 있다는 의미입니다.
흔히 잘못 해석하는 부분
첫 번째는
“Explicit는 느리고 Implicit는 빠른 프로토콜 이름이다.”
라고만 이해하는 것입니다.
속도 차이도 있지만 핵심은 통신 목적과 데이터 구조가 다르다는 것입니다.
두 번째는
“Implicit는 연결 없이 UDP Packet을 그냥 뿌리는 방식이다.”
라는 생각입니다.
Implicit I/O는 UDP를 사용하지만 CIP Connection을 먼저 설정한 Connected Communication입니다.
세 번째는
“Explicit는 TCP니까 항상 연결형 CIP Messaging이다.”
라는 생각입니다.
Explicit Messaging은 CIP 관점에서 Connected 또는 Unconnected 방식 모두 사용할 수 있습니다.
네 번째는
“RPI가 낮을수록 장비 성능이 무조건 좋아진다.”
라는 생각입니다.
네트워크와 Controller, Device 부하를 함께 고려해야 합니다.
정리
EtherNet/IP의 Explicit와 Implicit Messaging을 구분하는 가장 쉬운 방법은 데이터가 어떤 목적으로 사용되는지를 보는 것입니다.
Explicit Messaging
파라미터 설정
장비 진단
Object Attribute Read/Write
Request / Reply
TCP/IP
Implicit Messaging
실시간 I/O
주기적 Process Data
RPI 기반 전송
UDP/IP
Unicast·Multicast
으로 정리할 수 있습니다.
실제 EtherNet/IP 시스템에서는
장비 연결 및 설정 → Explicit
↓
I/O Connection 생성
↓
RPI 설정
↓
정상 운전 → Implicit
구조로 이해하면 쉽습니다.
특히 EtherNet/IP 장비를 선택할 때는 단순히 EtherNet/IP 지원만 확인하지 말고 Explicit·Implicit 지원 여부, Assembly Instance, RPI 범위, Unicast·Multicast 지원과 I/O Connection 수까지 확인하는 것이 중요합니다.
참고자료
- ODVA – EtherNet/IP Technology Overview: EtherNet/IP가 CIP를 상위계층에서 사용하며 Explicit Message는 주로 TCP/IP 기반의 Client/Server Request-Response 방식, Implicit I/O Message는 UDP/IP를 이용한 실시간 데이터 전송에 사용된다고 설명합니다. 또한 Implicit Connection은 Unicast 또는 Producer-Consumer Multicast 구조로 구성할 수 있습니다. ODVA
- ODVA – EtherNet/IP Quick Start for Vendors: Explicit Messaging은 Connected 또는 Unconnected 방식으로 사용할 수 있으며 Parameter Read/Write 같은 비실시간 정보에 적합하고, Implicit Messaging은 Connected Communication으로 구성해 실시간 I/O 데이터를 UDP로 전달한다고 정리합니다. ODVA
- ODVA – Common Industrial Protocol(CIP): CIP가 Object-oriented Protocol이며 Producer-Consumer Communication Model을 사용하는 EtherNet/IP의 핵심 상위 프로토콜임을 설명합니다. ODVA
- Rockwell Automation – EtherNet/IP Network Devices User Manual: Implicit Message는 UDP 기반의 Connected I/O 통신으로 RPI와 같은 주기설정을 사용하며 Unicast 또는 Multicast로 구성할 수 있고, Explicit Message는 비시간민감 Request/Reply Communication에 사용된다고 설명합니다. Rockwell Automation
- Rockwell Automation – Requested Packet Interval: RPI는 Controller와 EtherNet/IP Device가 데이터를 교환하는 속도를 결정하는 설정값이며 실제 허용범위는 장치에 따라 달라집니다. 록웰 오토메이션




댓글 0
첫 댓글을 남겨보세요.