PLC

[PLC] PLC - PC 간 여러 통신 방법들

최 재호 2024. 6. 9. 14:59

🔥 요약

통신 방식 안정성 실시간 네트워크 부하 확장성 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 프레임 헤더와 데이터 필드를 포함합니다.

사용 빈도: 중간에서 높음

728x90
반응형