상품
EtherNet/IP 포트로 메시지 통신을 하고 싶습니다. CIP 메시지 통신에 대해 알려주세요.
- 등록일
- 2025. 12. 17.
EtherNet/IP 포트로 메시지 통신을 하고 싶습니다. CIP 메시지 통신에 대해 알려주세요.
■EtherNet/IP란
※1 CS/CJ 시리즈 PLC에서는 CIP 메시지 통신이 FINS 명령어를 통해 발행됩니다.
■CIP 통신에 관하여
※2
형 NJ/NX 시리즈 컨트롤러에서는 프로그램으로 발행 가능합니다 .
FINS의 경우와 달리 CIP에서는 라우팅을 위한 모든 경로 정보(루트 경로 등)를 전송 메시지에 포함시켜 중계 노드에서 중계(호핑)함으로써 라우팅을 실현합니다.
경로 경로는 "포트 번호"와 "링크 주소"를 지정하여 기술하지만, 여기서는 CJ2 내장 EtherNet/IP 포트에서 EtherNet/IP 네트워크 상의 IP 주소로 전송하는 것을 가정하므로,
「포트 세그먼트(000 + 확장 링크 주소 크기:1비트 + 포트 식별자:4비트) + 링크 주소 크기 + 링크 주소」가 됩니다. 링크 주소는 IP 주소이므로 1바이트를 초과하므로 확장 링크 주소 크기는 「1」이 되고, 포트 식별자(포트 번호)는 이더넷에서 「2」이므로, 「12 헥스 + IP 주소 크기(도트 포함) + IP 주소」가 됩니다.
또한, IP 주소 지정 방법은 ASCII 코드로 지정합니다.
각 명령의 발행 방법에 대해서는 SYSMAC CS/CJ 시리즈 EtherNet/IP 유닛 사용자 매뉴얼(SBCD-342) 의 제9장 「9-1-1 CMND 명령에 의한 Explicit 메시지 발행 방법」 및 「부록-4 CIP 메시지 통신」을 참조하십시오.
매뉴얼 다운로드에는 무료 회원 가입 및 로그인이 필요합니다.
여기에서는 매뉴얼에 기재된 Get_Attribute_All 서비스의 예에서는 정의되지 않는 속성 ID의 지정 방법 등을, 오므론제 스위칭 파워 서플라이 형식 S8VK-X에 대한 CIP 메시지 Get_Attribute_Single 서비스와 Set_Attribute_Single 서비스를 예로 들어 아래에서 설명합니다.
매뉴얼과 함께 확인하시기 바랍니다.

CMND 명령의 오퍼랜드 사양
■CMND 명령 실행 방법
< 실행 조건 예시 (매뉴얼과 일부 다름) >
송신원: 형식 CJ2 내장 EtherNet/IP 포트 IP 주소: 192.168.250.1
송신처: 아래 설정의 EtherNet/IP 상 노드
IP 주소:192.168.250.20
FINS 주소(네트워크 주소: 0 노드 주소: 1 호기 주소: 10 Hex)
각 오퍼랜드 값을 S = D01000 , D = D02000 , C = D00000 으로 할 경우, C는 아래 표, S,D는 후술하는 표와 같습니다.
EtherNet/IP란, 이더넷 위에 애플리케이션 계층으로 CIP(Common Industrial Protocol)를 부가하여, 이더넷 표준 통신 기능(FTP, HTTP 등)과 산업용 메시지 통신(이벤트 통신) 기능, 데이터 링크 통신(사이클릭 통신) 기능을 양립시킨 프로토콜입니다.
형 NJ/NX 시리즈 컨트롤러에서는 CIP 메시지 구조를 의식하지 않고 전용 명령어로 쉽게 메시지 통신이 가능하지만, 형 CS/CJ 시리즈 컨트롤러에서 메시지 통신을 수행하려면 FINS 명령에 CIP 메시지를 포함시켜 발행해야 하므로 CIP 메시지 구조를 깊이 있게 프로그래밍해야 합니다.
따라서 CIP 메시지 통신을 수행할 경우 NJ/NX 시리즈 컨트롤러 사용을 권장하지만, 여기서는 CS/CJ 시리즈 컨트롤러에서 부득이하게 CIP 메시지 통신이 필요한 경우를 가정하여 그 방법을 소개합니다.

EtherNet/IP 프로토콜 계층 구조 이미지
형 NJ/NX 시리즈 컨트롤러에서는 CIP 메시지 구조를 의식하지 않고 전용 명령어로 쉽게 메시지 통신이 가능하지만, 형 CS/CJ 시리즈 컨트롤러에서 메시지 통신을 수행하려면 FINS 명령에 CIP 메시지를 포함시켜 발행해야 하므로 CIP 메시지 구조를 깊이 있게 프로그래밍해야 합니다.
따라서 CIP 메시지 통신을 수행할 경우 NJ/NX 시리즈 컨트롤러 사용을 권장하지만, 여기서는 CS/CJ 시리즈 컨트롤러에서 부득이하게 CIP 메시지 통신이 필요한 경우를 가정하여 그 방법을 소개합니다.
EtherNet/IP 프로토콜 계층 구조 이미지
※1 CS/CJ 시리즈 PLC에서는 CIP 메시지 통신이 FINS 명령어를 통해 발행됩니다.
■CIP 통신에 관하여
CIP 통신에서 메시지 통신을 Explicit 통신(명시적 통신)이라 하고, 태그 데이터 링크 등 다중 노드에 대한 일제 동시 전송 데이터 링크 통신을 Implicit 통신(암묵적 통신)이라 하여 구분하여 사용합니다.
명시적 통신에는 연결 기반 메시지 통신인 'Class3'와 연결 없는 메시지 통신인 'UCMM'이 있지만, CS/CJ 시리즈 컨트롤러의 래더 명령에서 다루는 것은 연결 없는 UCMM 메시지 통신뿐입니다.
CIP 메시지를 발행하려면, CS/CJ 시리즈 컨트롤러에서는 CMND 명령어로 명시적 통신을 위한 FINS 명령 「2810」과 「2801」 중 하나에 CIP 메시지를 포함시켜 발행해야 합니다.
「2810」은 CIP 네트워크 상에서 라우팅이 가능하며, 「2801」은 DeviceNet 호환이지만 라우팅이 불가능합니다.
명시적 통신에는 연결 기반 메시지 통신인 'Class3'와 연결 없는 메시지 통신인 'UCMM'이 있지만, CS/CJ 시리즈 컨트롤러의 래더 명령에서 다루는 것은 연결 없는 UCMM 메시지 통신뿐입니다.
CIP 메시지를 발행하려면, CS/CJ 시리즈 컨트롤러에서는 CMND 명령어로 명시적 통신을 위한 FINS 명령 「2810」과 「2801」 중 하나에 CIP 메시지를 포함시켜 발행해야 합니다.
「2810」은 CIP 네트워크 상에서 라우팅이 가능하며, 「2801」은 DeviceNet 호환이지만 라우팅이 불가능합니다.
| 통신 | 래더 프로그램에서의 접근 | 특징 | ||
| CIP 통신 | 명시적 통신 통신) | Class3 (연결 있음) | × ※2 래더 프로그램으로 발행 불가 | 메시지 통신용 상위 간 통신 등 |
| UCMM (연결 없음) | ○ CMND 명령으로 FINS「2801」에 내장하여 발행 | 메시지 통신용 라우팅 불가 DeviceNet 등과 호환성 있음 | ||
| ○ CMND 명령으로 FINS「2810」에 내장하여 발행 | 메시지 통신용 라우팅 가능 | |||
| 암시적 통신 (암묵적 통신) | 태그 데이터 링크 (연결 있음) | ○ 프로그램 불필요 | 데이터 링크 통신용 PLC 간 통신 등 | |
형 NJ/NX 시리즈 컨트롤러에서는 프로그램으로 발행 가능합니다 .
FINS의 경우와 달리 CIP에서는 라우팅을 위한 모든 경로 정보(루트 경로 등)를 전송 메시지에 포함시켜 중계 노드에서 중계(호핑)함으로써 라우팅을 실현합니다.
경로 경로는 "포트 번호"와 "링크 주소"를 지정하여 기술하지만, 여기서는 CJ2 내장 EtherNet/IP 포트에서 EtherNet/IP 네트워크 상의 IP 주소로 전송하는 것을 가정하므로,
「포트 세그먼트(000 + 확장 링크 주소 크기:1비트 + 포트 식별자:4비트) + 링크 주소 크기 + 링크 주소」가 됩니다. 링크 주소는 IP 주소이므로 1바이트를 초과하므로 확장 링크 주소 크기는 「1」이 되고, 포트 식별자(포트 번호)는 이더넷에서 「2」이므로, 「12 헥스 + IP 주소 크기(도트 포함) + IP 주소」가 됩니다.
또한, IP 주소 지정 방법은 ASCII 코드로 지정합니다.
각 명령의 발행 방법에 대해서는 SYSMAC CS/CJ 시리즈 EtherNet/IP 유닛 사용자 매뉴얼(SBCD-342) 의 제9장 「9-1-1 CMND 명령에 의한 Explicit 메시지 발행 방법」 및 「부록-4 CIP 메시지 통신」을 참조하십시오.
매뉴얼 다운로드에는 무료 회원 가입 및 로그인이 필요합니다.
여기에서는 매뉴얼에 기재된 Get_Attribute_All 서비스의 예에서는 정의되지 않는 속성 ID의 지정 방법 등을, 오므론제 스위칭 파워 서플라이 형식 S8VK-X에 대한 CIP 메시지 Get_Attribute_Single 서비스와 Set_Attribute_Single 서비스를 예로 들어 아래에서 설명합니다.
매뉴얼과 함께 확인하시기 바랍니다.
CMND 명령의 오퍼랜드 사양
■CMND 명령 실행 방법
< 실행 조건 예시 (매뉴얼과 일부 다름) >
송신원: 형식 CJ2 내장 EtherNet/IP 포트 IP 주소: 192.168.250.1
송신처: 아래 설정의 EtherNet/IP 상 노드
IP 주소:192.168.250.20
FINS 주소(네트워크 주소: 0 노드 주소: 1 호기 주소: 10 Hex)
각 오퍼랜드 값을 S = D01000 , D = D02000 , C = D00000 으로 할 경우, C는 아래 표, S,D는 후술하는 표와 같습니다.
| 주소 | 데이터 | 설명 |
| CD00000+0 | 후술하는 명령 데이터의 바이트 수 | 명령 데이터 바이트 수 |
| +1 | 후술하는 응답 데이터의 바이트 수 +α | 응답 데이터 바이트 수 |
| +2 | 0000 | 전송 대상 네트워크 주소:0 |
| +3 | 0110 | 전송 대상 노드 주소:01Hex 전송 대상 호기 주소:10Hex |
| +4 | 0700 | 응답 필요 내부 논리 포트 번호:7 재전송 횟수:0 |
| +5 | 00A0 | 응답 감시 시간 0.1초 × 160 = 16.0초 |
■CMND 명령을 통한 FINS "2810" 사용 Get_Attribute_Single 발행 예시
IP 주소 192.168.250.20의 S8VK-X 스위칭 전원 공급 장치 EtherNet/IP 노드에 대해 CMND 명령을 사용하여 Get_Attribute_Single(서비스 코드: 0E Hex)를 클래스 ID: 372 Hex, 인스턴스 ID: 01 Hex, 속성 ID: 65 Hex(출력 전압 측정)로 발행하는 경우의 예입니다.
빨간색으로 칠해진 부분은 매뉴얼에서 변경된 부분(IP 주소 변경 부분은 포함하지 않음)입니다.
<명령 데이터>
| 주소 | 1워드 (값은 16진수) | 설명 | |||
| 상위 | 하위 | ||||
| SD01000+0 | 28 | 10 | 명령 코드 FINS「2810」 | CMND 명령 매개변수 | |
| +1 | 00 | 00 | 전송 ID 0000 Hex (송수신 메시지를 식별하는 일련 번호이므로 임의의 값으로 설정 가능) | ||
| +2 | 05 | DC | 메시지 감시 타이머 15.00초 설정은 10ms 단위. 예: 1500ms=15초. | ||
| +3 | 52 | 02 | 서비스 코드 52 Hex (UCMM:Unconnected Send) 요청 경로 크기 2워드 | CIP 라우팅 서비스 데이터 | |
| +4 | 20 | 06 | 8비트 클래스 ID 지정: 20 Hex 클래스 ID: 06 Hex (연결 관리자) | ||
| +5 | 24 | 01 | 8비트 인스턴스 ID 지정: 24 Hex 인스턴스 ID: 01 Hex | ||
| +6 | 0A | 0C | 우선순위/시간 틱: 0A 16진수 타임 아웃 틱: 0C 16진수 | ||
| +7 | 0A | 00 | 메시지 요청 크기(10바이트) | ||
| +8 | 0E | 04 | 서비스 코드: 0E Hex (Get_Attribute_Single) 요청 경로 크기 4워드 | 메시지 요청 (CIP 라스트 홉 데이터) | |
| +9 | 21 | 00 | 16비트 클래스 ID 지정: 21 Hex 패딩 데이터: 00 Hex | 요청 경로 | |
| +10 | 72 | 03 | 클래스 ID: 0372 Hex | ||
| +11 | 24 | 01 | 8비트 인스턴스 ID 지정: 24 Hex 인스턴스 ID: 01 Hex | ||
| +12 | 30 | 65 | 8비트 속성 ID 지정: 30 Hex 속성 ID: 65 Hex (출력 전압 측정) | ||
| +13 | 08 | 00 | 루트 경로 크기 8워드 | CIP 라우팅 서비스 데이터 | |
| +14 | 12 | 0E | 이더넷 포트: 12 16진수 (확장 링크 주소 크기: 1 헥스, 이더넷 포트 번호: 2 헥스) 루트 경로 크기 14바이트(0E Hex) | ||
| +15 | 31 | 39 | IP 주소 "19" | 루트 경로 | |
| +16 | 32 | 2E | IP 주소 "2." | ||
| +17 | 31 | 36 | IP 주소 "16" | ||
| +18 | 38 | 2E | IP 주소 "8." | ||
| +19 | 32 | 35 | IP 주소 "25" | ||
| +20 | 30 | 2E | IP 주소 "0." | ||
| +21 | 32 | 30 | IP 주소 "20" | ||
<응답 데이터(정상 시)>
| 주소 | 1워드 (값은 16진수) | 설명 | ||
| 상위 | 하위 | |||
| DD02000+0 | 28 | 10 | 명령 코드 FINS「2810」 | CMND 명령 응답 |
| +1 | 00 | 00 | FINS 종료 코드 | |
| +2 | 00 | 00 | 전송 ID | |
| +3 | 00 | 06 | 수신 바이트 수 6바이트 | |
| +4 | 8E | 00 | 서비스 코드(15비트 ON) 예약 00 16진수 | CIP 응답 |