🔥 요약
통신 | 방식 | 안정성 | 실시간 네트워크 부하 | 확장성 | MES 적합성 |
Polling 방식 | 중간 | 낮음 | 높음 | 낮음 | 소규모 MES 가능 |
Modbus RTU/TCP | 높음 | 낮음 | 높음 | 중간 | 중소규모 MES 가능 |
OPC DA | 중간 | 중간 | 중간 | 낮음 | 기존 시스템 유지 시 가능 |
OPC UA | 가장 높음 | 높음 | 낮음 | 높음 | 대규모 MES에 가장 적합 |
1️⃣ Polling 방식 (Polling 방식 자체)
📌 개념
- 일정한 주기마다 PLC의 특정 레지스터 값을 읽어서 이벤트를 처리하는 방식.
- 주기적인 데이터 요청이므로, 데이터를 놓치는 경우가 적지만 네트워크 부하가 발생할 수 있음.
✅ 장점
✔ 단순한 구조 → 구현이 쉬움
✔ 대부분의 PLC에서 지원
✔ 특정 시스템에서는 높은 신뢰성
❌ 단점
❌ 불필요한 폴링이 많을 경우 네트워크 부하 발생 (특히 다수의 PLC와 통신할 때 문제)
❌ 실시간성 부족 → PLC의 값이 변경되었을 때 바로 반영되지 않음 (Polling 주기마다 확인)
❌ 확장성이 낮음
📌 MES에서 적합한가?
→ 소규모 시스템에서는 안정적이지만, 대규모 MES에서는 비효율적임.
→ 네트워크 트래픽 부담이 문제될 수 있음.
2️⃣ Modbus (Modbus RTU / Modbus TCP)
📌 개념
- Modbus RTU: RS-232/RS-485 시리얼 기반
- Modbus TCP: 이더넷 기반
- Master-Slave 구조로, MES가 Master가 되어 PLC에서 데이터를 지속적으로 요청 (Polling 기반)
✅ 장점
✔ 산업 표준 프로토콜이라서 다양한 제조사의 PLC에서 지원
✔ 구조가 단순하고 안정적
✔ Modbus TCP는 네트워크 환경에서 상대적으로 빠른 속도 제공
❌ 단점
❌ Polling 방식이므로 불필요한 트래픽이 많음
❌ 실시간성 부족 (PLC가 이벤트를 발생시키지 않음)
❌ 대량의 PLC를 연결할 경우 네트워크 부하 발생
📌 MES에서 적합한가?
→ 소규모 MES 시스템에서 안정적이지만, 대규모 환경에서는 OPC UA가 더 나음.
→ Polling 방식과 유사한 문제(네트워크 부하, 실시간성 부족)가 있음.
→ 하지만, Modbus TCP는 OPC보다 구현이 쉬움.
3️⃣ OPC (OPC DA vs OPC UA)
📌 개념
- OPC DA (Data Access): 기존 COM/DCOM 기반, 보안 문제와 확장성 문제 있음
- OPC UA (Unified Architecture): TCP/IP 기반으로 보안과 확장성이 뛰어남
- Polling 대신 Event-Driven 방식 가능 → 불필요한 요청 최소화
✅ 장점
✔ Polling 없이 이벤트 기반 데이터 수집 가능 → 네트워크 부하 감소
✔ 보안이 뛰어남 (TLS 암호화 지원)
✔ MES 확장성과 유지보수성이 뛰어남
✔ 다양한 PLC, SCADA, MES 시스템과 호환 가능
❌ 단점
❌ 초기 설정이 복잡함
❌ 일부 구형 PLC는 OPC UA를 지원하지 않음
❌ 구현이 어렵고, OPC UA 서버 설정이 필요
📌 MES에서 적합한가?
→ 가장 안정적인 방식!
→ Polling 없이 이벤트 기반으로 데이터를 받을 수 있어 효율적
→ MES가 대량의 PLC와 연결될 때 가장 효과적인 선택
PLC to PC Communication Methods
1. TCP/IP 기반 통신
HSMS (High-Speed SECS Message Services)
사용 산업: 반도체 및 전자 제조
통신 구조:
- PC 측: MES(Manufacturing Execution System) 소프트웨어
- PLC 측: 반도체 장비의 SECS/GEM 인터페이스
- 프로토콜: HSMS는 TCP/IP를 통해 SECS-II 메시지를 전송합니다.
예시:
<L[3]
<U2 1> // Stream
<U2 13> // Function
<L[1] // List
<A "Ping"> // ASCII Data
>
>
설명: PC는 TCP/IP 소켓을 통해 장비에 상태 요청 메시지를 보냅니다.
사용 빈도: 반도체 산업에서 매우 높음
Ethernet/IP
사용 산업: 일반 산업 자동화
통신 구조:
- PC 측: HMI(Human-Machine Interface) 또는 SCADA 시스템
- PLC 측: 산업용 이더넷 포트
- 프로토콜: Ethernet/IP는 TCP/IP 및 UDP/IP를 사용하여 CIP(Common Industrial Protocol) 메시지를 전송합니다.
예시:
0x6f, 0x00, 0x04, 0x01, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x02, 0x01
설명: 각 바이트는 특정 명령이나 데이터를 나타내며, CIP(Common Industrial Protocol) 명령을 포함합니다.
사용 빈도: 광범위한 산업 자동화 분야에서 높음
2. OPC (OLE for Process Control)
OPC DA (Data Access)
사용 산업: 다양한 산업 자동화
통신 구조:
- PC 측: OPC 클라이언트 소프트웨어
- PLC 측: OPC 서버 소프트웨어
- 프로토콜: COM/DCOM을 사용하여 실시간 데이터 접근
예시:
ReadItemValue("Channel1.Device1.Tag1")
설명: 클라이언트가 서버에 특정 태그의 값을 요청합니다.
사용 빈도: 매우 높음
OPC UA (Unified Architecture)
사용 산업: 다양한 산업 자동화
통신 구조:
- PC 측: OPC UA 클라이언트 소프트웨어
- PLC 측: OPC UA 서버 소프트웨어
- 프로토콜: TCP/IP 기반 통신, 보안과 확장성을 제공
예시:
{
"requests": [
{
"nodeId": "ns=1;i=1234",
"attributeId": 13
}
]
}
설명: 클라이언트가 특정 노드의 속성을 읽기 위한 요청을 보냅니다.
사용 빈도: 매우 높음
3. Modbus
Modbus RTU
사용 산업: 다양한 산업 자동화
통신 구조:
- PC 측: Modbus RTU 클라이언트 (PC에 설치된 소프트웨어)
- PLC 측: Modbus RTU 서버 (PLC의 시리얼 포트)
- 프로토콜: RS-232 또는 RS-485를 통해 통신
예시:
[0x01, 0x03, 0x00, 0x00, 0x00, 0x10, 0x44, 0x06]
설명: 디바이스 주소(0x01), 함수 코드(0x03), 시작 주소(0x0000) 및 데이터 길이(0x0010), CRC 체크섬(0x4406).
사용 빈도: 높음
Modbus TCP/IP
사용 산업: 다양한 산업 자동화
통신 구조:
- PC 측: Modbus TCP 클라이언트 (PC에 설치된 소프트웨어)
- PLC 측: Modbus TCP 서버 (PLC의 이더넷 포트)
- 프로토콜: TCP/IP를 통해 통신
예시:
[0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x00, 0x00, 0x10]
설명: 트랜잭션 ID(0x0001), 프로토콜 ID(0x0000), 길이(0x0006), 유닛 ID(0x01), 함수 코드(0x03), 시작 주소(0x0000) 및 데이터 길이(0x0010).
사용 빈도: 높음
4. Profibus/Profinet
Profibus
사용 산업: 제조 및 공정 자동화
통신 구조:
- PC 측: Profibus 마스터 인터페이스
- PLC 측: Profibus 슬레이브 인터페이스
- 프로토콜: RS-485 기반의 필드버스 통신
예시:
SD1 DA SA FC DSAP SSAP DATA FCS ED
설명: 시작 델리미터(SD1), 목적지 주소(DA), 소스 주소(SA), 함수 코드(FC), 서비스 액세스 포인트(DSAP, SSAP), 데이터, 프레임 체크 시퀀스(FCS), 종료 델리미터(ED).
사용 빈도: 높음 (특히 Siemens 장비에서)
Profinet
사용 산업: 제조 및 공정 자동화
통신 구조:
- PC 측: Profinet IO 컨트롤러
- PLC 측: Profinet IO 디바이스
- 프로토콜: 이더넷 기반의 산업용 네트워크
예시:
[0x28, 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0x00]
설명: Profinet 프레임 헤더와 데이터 필드를 포함합니다.
사용 빈도: 높음
5. Serial Communication
RS-232/RS-485
사용 산업: 다양한 산업 자동화
통신 구조:
- PC 측: 시리얼 통신 포트 (COM 포트)
- PLC 측: 시리얼 통신 포트
- 프로토콜: Modbus RTU, ASCII, 또는 제조사별 프로토콜
예시:
[0x02, 0x10, 0xFF, 0xFF, 0x03]
설명: 시작 문자(0x02), 데이터(0x10, 0xFF, 0xFF), 종료 문자(0x03).
사용 빈도: 중간
6. Vendor-Specific Protocols
Siemens S7 Protocol
사용 산업: Siemens PLC 기반 시스템
통신 구조:
- PC 측: S7 통신 라이브러리 또는 소프트웨어 (예: Snap7)
- PLC 측: Siemens S7 PLC
- 프로토콜: S7 프로토콜
예시:
[0x03, 0x00, 0x00, 0x16, 0x11, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xC1, 0x02, 0x4D, 0x57, 0xC2, 0x02, 0x4D, 0x57]
설명: S7 프로토콜 헤더와 데이터 필드를 포함합니다.
사용 빈도: 중간에서 높음 (제조사에 따라 다름)
7. Industrial Ethernet
EtherCAT
사용 산업: 고속 자동화 시스템
통신 구조:
- PC 측: EtherCAT 마스터
- PLC 측: EtherCAT 슬레이브
- 프로토콜: Ethernet 기반의 실시간 통신
예시:
0x88A4, 0x0001, 0x00FF, 0x00000002, 0x0004
설명: EtherCAT 프레임 헤더와 데이터 필드를 포함합니다.
사용 빈도: 중간에서 높음