권기백
(Gi-Baek Kwon)
†iD
Copyright © The Korean Institute of Electrical Engineers(KIEE)
Key words
EtherNet/IP, ControlLogix(PLC), Raspberry Pi, EIPScan, adapter, I/O server, messaging server
1. 서 론
최근 스마트공장, 인더스트리4.0 이슈가 부각되면서 이종 디바이스 간 상호 연동이 전 공정의 데이터 통합에 매우 중요하며, 어떻게 공장의 디바이스
레벨에서 클라우드 레벨까지 통일된 정보 수집 체계를 저비용으로 빠르게 구축하는가에 주목하게 되었다(1).
EtherNet/IP(Ethernet Industrial Protocol)는 산업용 이더넷 프로토콜을 통해 산업 자동화 현장에 존재하는 메이커가 서로
다른 각종 센서 액추에이터 등의 필드 기기로부터 디바이스, 컨트롤러에 이르기까지의 각종 생산 정보들을 통합하고, 이를 다시 상위의 ERP(Enterprise
Resource Planning)시스템과 통합함으로써 언제 어디서나 끊김 없는(Seamless)통신이 가능하다. 국내에서는 처음으로 시도된 이 기종
기기 간 통합 네트워크 구현은 전 세계적인 자동화 회사로 구성된 글로벌 협회인 ODVA(Open DeviceNet Vendors Association)가
제공하는 EtherNet/IP, DeviceNet, ControlNet 등의 통신망을 공통 산업 프로토콜이라 할 수 있는 CIP(Common Industrial
Protocol) 기술을 통해 가능했고, 이는 개방성과 확장성에서 선도적이라 할 수 있다(2,3).
이러한 개방성과 확장성은 많은 기업들의 호응을 받으며 시장 성장을 견인하고 있다. 시장조사기관인 Technavio에 따르면, 2016년부터 2020년까지
세계 산업용 이더넷 시장이 연평균 15% 성장할 것으로 전망하고 있다. 해외뿐만 아니라 국내 공장의 스마트팩토리화가 가속화되는 현 시점에서 국내 시장도
성장이 지속될 것으로 보인다(1).
본 논문에서는 EtherNet/IP 프로토콜을 기반으로 하여 산업용 제어기기인 컨트롤로직스(ControlLogix)와 라즈베리파이 간 데이터통신을
구현하기 위해, 우선적으로, 컨트롤로직스와 EIPScan(EtherNet/IP Scanner Simulator) 소프트웨어가 구동되는 노트북 사이의
입출력과 메시지 통신으로 데이터통신을 확인하고, 둘째, EIPScan 소프트웨어가 탑재된 노트북과 어뎁터의 기능을 하는 라즈베리파이 간 입출력 및
메시지 통신을 확인한다. 마지막으로 컨트롤로직스와 라즈베리파이(어뎁터) 간 입출력과 메시지 통신을 통해 라즈베리파이의 EtherNet/IP 프로토콜을
기반으로 어뎁터의 기능을 갖춘 하드웨어와 소프트웨어의 구현을 확인한다. 여기서, 어뎁터(Adapter)는 입출력 서버 혹은 메시지 서버 기능을 할
수 있으며, 스캐너(Scanner)는 메시지 서버와 클라이언트, 입출력 서버와 클라이언트 기능을 할 수 있다.
EtherNet/IP로 연결된 장치를 테스트하고 디버깅하기 위해 EtherNet/IP 스캐너와 어뎁터 클래스 장치를 시뮬레이션 할 수 있는 Pyramid
솔루션사의 PC버젼 EIPScan 소프트웨어를 사용하였다(13).
2. EtherNet/IP 프로토콜
EtherNet/IP는 개방형 산업용 네트워크의 표준이다. 로크웰오토메이션사에 의해 개방되었고, ODVA에 의해 관리되고 있으며, 프로세서 제어,
하드타임 시스템, 산업용 자동화 적용에 있어서 활용하기 위해 이용되고 있다. 또한, 2001년에 도입하여, 오늘날 생산자동화에 활용할 수 있는 개발된,
입증된, 완전한 산업용 이더넷 네트워크 솔루션이다. 특히, 제어응용에 대해 이더넷 네트워크의 높은 수요로 나타나게 되었고, 이더넷 기술의 폭넓은
수용과 이더넷 스위치와 물리적인 미디어의 노드당 가장 경쟁력에 있다.
EtherNet/IP는 전송제어프로토콜(TCP), 인터넷프로토콜(IP) 혹은 사용자데이터 프로토콜(UDP)과 같은 전통적인 이더넷의 방법과 기술을
사용한다. EtherNet/IP는 표준 이더넷 TCP/IP를 사용하며 IEC 61 784-2에 따라 클래스1의 실시간 이더넷으로 분류된다. TCP/UDP/IP
프로토콜 스택을 그대로 사용한 클래스 1은 이더넷 TCP/IP 표준에 가장 잘 따르는 계층이며, 표준 하드웨어와 소프트웨어 구성을 사용한다. CIPsync
확장을 통해 클래스 2 적용을 만족시키는 동기통신을 가능케 하며, IEEE 1588 시간 동기화를 통해 100Mbit/s를 사용한다. Ethernet/IP는
CIP를 통해 디바이스넷과 컨트롤넷과 함께 두 개의 장치 간 데이터를 전송하기 위해 사용되었으며, 그 중에서도 가장 폭넓게 구현된 표준으로 발전된다(2-8).
그림.1. EtherNet/IP, 디바스넷과 컨트롤넷의 비교(2)
Fig.1. Comparison of EtherNet/IP, between DeviceNet and ControlNet OSI
그림1에서 7개 계층의 오픈시스템 기준모델(OSI)의 관점에서 EtherNet/IP와 디바이스넷, 컨트롤넷을 비교하였다. 모든 CIP 네트워크와 더불어
EtherNet/IP는 세션층과 그 이상 계층을 CIP로 구현한다. 그리고 트랜스포트층에서 특정한 EtherNet/IP 기술로 공통 산업용 프로토콜(CIP)에
맞추도록 한다. TCP/IP 캡슐화는 네트워크상의 노드를 이더넷 메세지로 데이터 일부의 메시지를 포함하도록 허용한다. 캡슐화 기술은 TCP/IP 층의
TCP와 UDP 양쪽계층에 사용하고, CIP로 하여 이더넷의 최정상과 TCP/IP를 명료화하여 구현되도록 방법을 제공한다. 바람직한 수준의 서비스
질을 얻기 위해, EtherNet/IP는 적절한 하드웨어 구성에 의해 지원되는 계층3(IP)와 이더넷의 계층2(e.g. 802.1D/Q)에서 정의된
표준 메카니즘을 사용한다(2-8).
2.1 물리계층(The Physical Layer)
EtherNet/IP는 물리계층과 데이터링크 계층에서 표준 IEEE 802.3 모델을 사용한다. 물리계층은 주로 매체에 연결된 하나의 장치의 상호연결과
관련된다. 물리계층은 네트워크 노드간, 비트수준 전송에 대해 책임이 있다. 그리고 전기적인 신호에 대한 사양 혹은 빛신호(광섬유네트워크)의 특성을
정의한다. 물리계층은 또한 코넥터 형태, 케이블 형태, 전압 그리고 핀배열과 같은 항목들을 정의한다.
2.2 데이터링크 계층
IEEE 802.3 사양은 EtherNet/IP 데이터 링크 계층에 있는 장치에서부터 장치까지 데이터로 구성된 패킷을 전송하기 위해 사용된다. 데이터
링크 계층은 공유 매체와 더불어 다수의 장치들과의 상호연동에 관계한다. EtherNet/IP는 네트워크 된 장치가 공통 버스(혹은 케이블)를 어떻게
공유하는지, 패킷사이 충돌을 감지하고 반응하는지, CSMA/CD 매체 접속 제어 모델을 사용한다.
2.3 네크워크와 전송 계층
네트워크와 전송 계층은 TCP/IP 묶음(Suite)을 하나이상의 장치 간 메시지를 보내기 위해 사용한다. TCP/IP 캡슐화는 네트워크상의 하나의
노드를 이더넷 메시지로 구성된 데이터 일부로서 메시지를 포함시키도록 허용한다. 캡슐화 기술은 TCP/IP 묶음의 TCP와 UDP를 사용한다. CIP로
하여, 이더넷의 정상위에 TCP/IP를 명확하게 구현되도록 방법을 제시한다.
EtherNet/IP는 두 가지 형태의 메시지와 노트에서 적합한 리소스를 CIP 표준에 의해 정의된 것처럼(그림2.2) 사용한다(2-8).
• 비연결 메시지(Unconnected messaging) 전송은 연결이 수립되는 프로세서에서 저빈도이면서, 낮은 우선순위 메시지 처리를 위해 사용된다.
장치에서 비연결 리소스는 비연결 메시지 관리(UCMM)로 참조된다. EtherNet/IP에서 비연결 메시지는 이더넷에서 메시지를 전송하기 위해, UCMM으로부터
매번 연결리소스를 요청하면서, TCP/IP 리소스를 활용한다.
• 연결 메시지(Connected messaging) 전송의 EtherNet/IP는 빈번한 명시적 메시지 처리 혹은 실시간 I/O 데이터 전달 같은
특정한 목적을 위해 미리 할당된 각 노드에서 리소스를 활용한다. 연결리소스는 CMM을 경유하여 이용하는 통신서비스를 사용하여 예약되고 설정된다.
EtherNet/IP는 명시적(Explicit)과 암시적(Implicit) 연결의 2가지 형태의 네트워크 연결이 있다. TCP/IP를 사용하면서 EtherNet/IP는
노드 간 클라이언트-서버 형태(point-to-point)의 처리과정을 수행하기 위해 사용하는 명시적 메시지를 보낼 수 있다. 실시간 메시지를 전송하기
위해, 목적지는 네트워크에서 많은 노드를 의미하며, 그룹에 속한 호스트/목적지 주소를 통해, EtherNet/IP는 멀티캐스트를 허용하는 TCP/UDP
모델을 사용한다. 암시적 메시지 연결에서는, 데이터 영역은 단지 실시간 입력/출력 데이터, 어떤 프로토콜 정보를 담고 있지 않다. 데이터의 의미는
연결이 확정된 시점에서 미리 정의되었기 때문에 처리시간은 실시간 동안에 최소화된다.
UDP는 연결이 없으며, 한쪽 장치에서 다른 쪽으로 전송을 보장할 수 없다. 그러나 UDP 메시지는 TCP/IP 보다 작고 조금 더 빠르게 처리될
수 있다. 결과적으로 EtherNet/IP는 전형적인 임계시간을 제어하는 데이터를 담고 있는 I/O 메시지를 전송하기 위해 UDP/IP를 사용한다.
표 1은 EtherNet/IP 네트워크로 사용된 3개지 전송 형태가 있다. 즉 정보인 비적시(Non-time critical) 데이터 전송은 전형적으로
큰 패키지 크기이며, 데이터 교환은 근원에서 목적지 장치 사이에 짧은 명지적인 연결을 한다. 정보 데이터 패키지는 TCP/IP 프로토콜을 사용하고
TCP 데이터 처리 특성의 이점을 활용한다. 입/출력데이터 인 적시데이터(Time-critical) 전달은 전형적인 보다 작은 패키지 크기이며 입출력
데이터 교환은 근원에서 목적지 장치간의 오랜 기간 암시적 연결이다. 입출력 데이터 패키지는 UDP/IP 프로토콜을 사용하고 고속의 처리능력을 가진
UDP의 이점을 활용한다. 실시간 상호잠금(Interlocking)은 생산자 프로세서와 소비자 프로세서 간 주기적인 데이터를 동기화 하는 것으로써
보다 빠른 UDP/IP 프로토콜을 사용하고, UDP의 고속처리능력의 이점을 활용한다(2-8).
표 1. Ethernet/IP 메시지 형태
Table 1. Ethernet/IP message types
ETHERNET/IP
전송 형태
|
메시지 형태
|
설명
|
예제
|
정보
|
명시적
|
비적시 정보데이터
|
메시지 명령어에 의해 데이터 읽기와 쓰기
|
I/O 데이터
|
암시적
|
실시간 입출력
데이터
|
원격입출력장치로부터 제어실시간 데이터
|
실시간 상호연동
|
암시적
|
실시간 장치 상호연동
|
두 개 프로세서 간 실시간 데이터 교환하기
|
2.4 세션, 프리젠테이션과 응용계층
그림.2. CIP 프로토콜의 상위층(5)
Fig.2. Upper Layers with CIP protocol
그림2에서 EtherNet/IP 1, 2계층은 IEEE 802.3 이더넷, 3계층은 IP, 4계층은 TCP/UDP, 상위계층에는 CIP를 사용하고, 엄격한
객체지형 프로토콜을 사용한다. 3계층의 클래스 1은 생산자/소비자의 개념으로 일반 입·출력과 같이 항상 정해진 주기를 기준으로 데이터 송수신 하는
방식과 클래스 3인 사용자의 요구가 있을 때만 데이터를 읽기 혹은 쓰기를 하는 방식으로 나뉜다. 상위층의 CIP 객체는 특성(데이터), 서비스(명령어)
그리고 동작(사건에 반응)을 가진다. CIP와 데이터 모델에 대해서는 다음 절에서 설명하도록 한다(2-8).
3. CIP와 데이터 교환 모델
3.1 CIP와 데이터 교환 모델
그림3에서 CIP 프로토콜 스택은, 모든 네트워크 장치를 그 자체 일련의 객체로 표현된다. 각 객체는 단순한 장치에서의 관련된 데이터 값의 집합이다. 데이터
표현을 위해 CIP 프로토콜에 의해 정의되고 Ethernet/IP에 의해 사용된 3가지 형태의 객체가 있다(2-8).
그림.3. EtherNet/IP 프로코톨 스택(5)
Fig.3. EtherNet/IP protocol stack
첫째, 필요한 객체(Required Objects)는 모든 CIP 장치를 명시(specification)할 필요가 있다. 예를 들어 정체성 객체(Identity
object)는 소위 특성이라고 하는 identity를 담고 있고(업체명 ID, 생산날짜, 장치 시리얼 넘버와 다른 장치확인 데이터), 메시지 라우터
객체(Message Router object)는 장치에서 구성된 객체 간 명시적 요구 메시지를 전송한다. 그리고 네트워크 객체(Network object)는
장치에 대해 이더넷 포트에 대한 인터페이스를 형성하는 IP 주소와 다른 데이터와 같은 객체에 대해 물리적인 연결데이터를 가지고 있다.
둘째, 응용 객체(Application Objects)를 사용하여 특별한 종류의 장치로 특정하도록 사용자로 하여금 데이터를 구조화할 필요가 있다.
이러한 객체는 장치에 의해 갭슐화된 데이터를 정의한다. 이것은 장치의 형태와 기능으로 구체화 한다. 예를 들어 아날로그 장치는 형태, 해상도, 입력과
출력값 등 특성에 의해 객체 용어로 설명될 수 있다. 이러한 응용층 객체는 많은 공통장치 형태에 대해 미리 정의된다. 동일한 형태의 CIP 장치는
일련의 동일한 응용객체를 담고 있어야 한다. 특별한 장치형태에 대해 일련의 응용객체는 장치프로파일로 알 수 있다.
마지막으로 산업체 지정된 객체(Vendor Specific Objects)로써 디바이스 클래스에 대해 프로파일에서 찾을 수 없는 객체이다. 이러한
객체는 첨가적인 장치의 특성으로 업체에 의해 포함시켜야 한다. CIP 프로토콜은 응용 혹은 필요한 객체처럼 동일한 방식으로 이러한 업체 확장 객체에
접근할 수 있게 한다. 예를 들어 객체 숫자(Object Number), 인스턴스 숫자(Instance는 동일한 종류의 데이터를 조직화하는 방법),
특성 숫자(Attribute Number)이다.
그림.4. 전형적인 CIP 장치(2)
Fig.4. A typical CIP device representation
Ethernet/IP는 데이터가 장치에서 동작하는 응용프로그램 간 어떻게 교환하는지에 대한 규칙을 설명하는 생산자-소비자 데이터 교환 모델을 사용한다.
CIP 생산자/소비자(producer/comsumer) 네트워크 모델은 오래된 소스/목적지(매스터/슬레이브) 모델을 대체한다. 전통적인 입출력 시스템에서
컨트롤러는 입력상태를 얻기 위해 입력모듈에 상태를 조사한다. CIP 시스템에서는 입력모듈은 컨트롤러에 의해 데이터를 취득하지 않으며, 대신에 상태의
변화 혹은 주기적으로 데이터를 생산한다(멀티캐스터). 암시적인 연결에서는 메시지를 주기적으로 보낸다. 업데이트 주기는 구성에서 선택된 옵션 설정에
따라 달려 있다. 그래서 입력 모듈은 입력데이터에 대한 생산자이다. 그리고 컨트롤러는 데이터에 대한 소비자가 된다. 컨트롤러는 다른 컨트롤라에 대해
데이터를 소비(수신)하기 위해 데이터를 생산(송신)할 수도 있다. 하나의 장치에 의해 발생된 정보는 EtherNet/IP 네트워크에 대해 그룹에 속해있는
장치에 의해 소비될 수 있다.
메시지가 네트워크로 들어왔을 때 목적지 주소에 의해가 아니라 연결ID에 의해 확인된다. 다중 노드는 연결 ID가 참조하게 된 데이터를 소비한다. 결과적으로
노드가 데이터를 수신 받고 싶을 때 생산되어지는 매순간 데이터를 소비하기 위해 요구할 필요가 있다. 연속적인 노드는 동일한 데이터를 동시에 받기를
원한다면 연결 ID를 알 필요가 있다. 결과적으로 대역폭을 훨씬 더 효율적으로 사용할 수 있다. 컨트롤러의 입출력 구성에서 모듈을 추가할 때, 요구패키지간격(RPI)은
파라미터로서 입력되어야 한다. 이 값은 얼마나 자주 그 장치에 대해 데이터를 생산할지를 구체화 한다. 예를 들어 RPI를 50ms로 한정한다면, 매
50ms 마다 장치는 데이터를 컨트롤러에게 혹은 컨트롤러는 그 데이터를 장치에 보낸다. 아래의 표 2는 EtherNet/IP에 의해 지원되는 메시지 전송 객체를 분류하였다.
표 2. 메시지전송에 따른 분류
Table 2. Traffic classes
메시지
형식
|
명시적 메시지
비스케쥴 TCP/IP
|
암시적 데이터
스케쥴 UDP/IP
|
비연결
|
UCMM
(비연결메시지관리)
|
-
|
연결
|
Class 3 (T3)
|
Class 1 (T1)
|
4. EtherNet/IP 프로토콜 데이터 통신을 위한 하드웨어 플랫폼 구성
본 논문에서는 표 3의 라즈베리파이 4B 모델과 표 4의 하드웨어 및 소프트웨어를 활용하여 그림5.1처럼 전체 하드웨어를 구성하였다. Ethernet/IP 스캐너(혹은 어뎁터: 스캐너 또는 브리지와 같은 마스터와 데이터 교환)클래스 장치를 시뮬레이션하기
위한 소프트웨어인 EIPScan 소프트웨어와 RSLogix 5000, RSLinx 프로그램이 탑재된 PC, AB사의 PLC인 컨트롤로직스 장비, 이더넷
허브장치, 라즈베리파이로 구성되어 있다. 특히, 디지털 입출력 및 아날로그 입력을 스캐너에게 전달하는 어뎁터 기능을 확인하기 위해 그림5.2에서 입출력장치(LED, 스위치), 아날로그 입력 장치(MCP3208, 가변저항기)로 구성되어 있다(9-12).
표 3. 라즈베리파이 4B 사양
Table 3. Raspberry pi specification
프로세서, Soc
|
1.5GHz ARM Cotex-A72 MP4, Broadcom BCM2711 Soc
|
메모리
|
Micron LPDDR4 4GB RAM
|
USB 제어기
|
VIA VL805-Q6 Chip USB 3.0 Host
|
이더넷 제어기
|
Broadcom BCM54213PE - Gigabit 이더넷
|
전원
|
MXL7704-P4
|
와이파이 및 블루투스
|
Dual Band (2.4GHz & 5GHz) IEEE 802.11 b/g/n/ac & Bluetooth5.0 모듈
|
입력과 출력
|
USB 2.0 x2 포트 / USB 3.0 x2 포트 / Gigabit 이더넷 포트 / USB-C 전원입력포트 / micro-HDMI ports x2
CSI 카메라 포트 / DSI 디스플레이 포트 / Micro SD 포트 (뒷면)
|
OS
|
Raspbian GNU/Linux 10.0
|
표 4. 소프트웨어 및 하드웨어
Table 4. Software and hardware of the proposed system
PC
|
RSLinx/RSLogix5000 소프트웨어, 218.53.183.44
컨트롤로직스 원격제어용
|
라즈베리파이
|
VNC Viewer 6.20/WinSCP 5.13.2
MCP3208, 가변저항기 및 LED, 스위치. 기타, 218.53.183.40
어뎁터: 입출력서버 혹은 메시지 서버 기능 보유
|
노트북
|
EIPScan Test Tool 1.23.1 소프트웨어, 218.53.183.32
스캐너: 메시지 서버와 클라이언트, 입출력 서버와 클라이언트
|
컨트롤로직스
|
제어기:Logix5563/이더넷모듈(EtherNet/IP)
/디지털입력모듈/디지털출력모듈 218.53.183.212
스캐너와 어뎁터 기능 보유
|
허브
|
N-TRON 24포트(524TX)
|
그림.5.1. 전체 하드웨어의 구성
Fig.5.1. The configuration of total hardware
그림.5.2. 라즈베리파이의 제어부
Fig.5.2. Raspberry pi control parts
5. 하드웨어 플랫폼을 통한 데이터통신 시험
본 논문에서는 Ethernet/IP 프로토콜 기반 컨트롤로직스와 라즈베리파이 간 통신을 구현하기 위해, 그림6과 같이 3가지 경우에 대해 입출력과 메시지 통신에 대해 시험하면서 단계적으로 데이터 교환 기능을 확인한다(13).
그림.6. 테스트 플랫폼 구성
Fig.6. Test platform configuration
첫째, 컨트롤로직스(어뎁터)와 EIPScan(스캐너) 간 데이터 통신인 경우
case 1. 컨트롤로직스와 EIPScan 간의 I/O 교환
case 2. 비연결 메세지를 사용하여 컨트롤로직스 태그를 읽기와 쓰기
case 3. 컨트롤로직스 생산자 데이터 태그로부터 읽기
둘째, 라즈베리파이4B인 어뎁터와 EIPScan(스캐너) 모듈간의 데이터 통신인 경우
case 1. 어뎁터와 EIPScan I/O 데이터 교환
case 2. 비연결 메시지를 사용하여 어뎁터의 태그를 읽기
셋째, 컨트롤로직스와 라즈베리파이4B(어뎁터) 모듈간의 데이터 통신인 경우
case 1. 컨트롤로직스와 어뎁터간의 I/O 교환
case 2. 비연결 메시지를 사용하여 어뎁터의 태그를 읽기
5.1 컨트롤로직스(어뎁터)와 EIPScan(스캐너) 간 데이터 통신인 경우
5.1.1 컨트롤로직스와 EIPScan 간의 I/O 교환
가. 컨트롤로직스에서 아래의 그림7.1처럼 입출력을 구성에서 로컬 및 원격 이더넷 모듈을 추가한다.
나. EIPScan 프로그램이 탑재되어 있는 노트북에서 아래의 그림7.2처럼 메뉴 I/O에서 Browse Network를 클릭하고, 동작모드(Run mode)로 전환한다.
다. 컨트롤로직스에 프로그램을 다운로드하면 아래의 그림7.2처럼 비트 데이터 상태를 확인 할 수 있도록 나타난다.
라. RSLogix5000과 RSLinx가 동작하는 컴퓨터와 컨트롤로직스 간 온라인 상태에서 컨트롤러 태그 (Controller Tag)에 0x1234
데이터를 입력하면(그림7.3), EIPScan 상에서 1번째 라인에 입력된 데이터가 표시되며, 두 번째 라인에 데이터를 입력하면, 컨트롤로직스의 입력태그에서 그 값을 확인할
수 있다(그림7.4).
그림.7.1. 컨트롤로직스 구성
Fig.7.1. ControlLogix configuration
그림.7.2. EIPScan 프로그램을 수행하는 노트북
Fig.7.2. EIPScan Software Tool
그림.7.3. 컨트롤로직스에 컨트롤러 태그 입력화면
Fig.7.3. Controller tag of CotnrolLogix
그림.7.4. IPScan상에서 송수신 데이터
Fig.7.4. Transmit and receiving data on EIPScan
5.1.2 비연결 메시지를 사용하여 컨트롤로직스 태그를 읽기와 쓰기
가. 컨트롤로직스에서 아래의 그림8.1처럼 컨트롤러 태그(int MydataTag(2))를 생성한다.
나. EIPScan 프로그램이 탑재되어 있는 노트북에서 아래의 그림8.2 처럼 설정하고 메뉴 Send Explicit Request 실행하면(C3 00 02 00 01 02 03 04), 컨트롤로직스에서 데이터가 변경됨을
알 수 있다.
다. 그림8.3처럼 데이터 읽기 크기를 설정하고(02 00), Send Explicit Request 실행하면, 길이만큼 데이터를 읽을 수 있다.(C3 00 01
02 03 04)
그림.8.1. 컨트롤로직스에 태그생성(int MyDataTag(2))
Fig.8.1. Tag generation of ControlLogix
그림.8.2. EIPScan에서 컨트롤로직스로 데이터 쓰기
Fig.8.2. Writing data from EIPScan to ControlLogix
그림.8.3. EIPScan에서 컨트롤로직스로 부터 데이터 읽기
Fig.8.3. Reading data from EIPScan to ControlLogix
라. 비연결 자동 시험(Unconnected Auto Test)
비연결 자동 시험은 긴 시간동안에 비연결 메시지를 교환하는데 있어 정확성을 시험하는 기능이다. 비연결 자동 시험은 사용자가 시험을 수동적으로 정지할
때까지 혹은 누적 오류가 설정제한을 초과할 때 까지 동작한다. 시험 통계는 아래와 같이 오류가 없으며, 전체 패키지는 112859이며, 평균전송비율은
212.54 [pkts/sec], 최대 지연시간은 9[ms]로 나타내었다.
5.1.3 컨트롤로직스 생산자 데이터 태그로부터 읽기
가. 컨트롤로직스에서 아래의 그림9.1 처럼 생산자 태그(Produced Tag)인 MyProducedTag를 생성한다.
나. EIPScan 프로그램이 탑재되어 있는 노트북에서 아래의 그림9.2처럼 Device/IO Module 메뉴 중에서 add Class1 Connection을 아래와 같이 설정하고, 컨트롤로직스에서 변경된 데이터를 읽어서
확인할 수 있다(그림9.3).
그림.9.1. 컨트롤로직스에서 생산자태그(Produced Tag) 생성
Fig.9.1. Produced Tag generation of ControlLogix
그림.9.2. EIPScan 상의 add Class1 Connection 메뉴에서 설정
Fig.9.2. Add Class1 Connection menu setting on EIPScan
그림.9.3. EIPScan에서 컨트롤로직스로 부터 데이터 읽기
Fig.9.3. Reading data from ControlLogix on EIPScan
5.2 라즈베리파이4B인 어뎁터와 EIPScan(스캔너) 모듈간의 데이터 통신인 경우
5.2.1 어뎁터와 EIPScan I/O 데이터 교환
가. Ethernet/IP를 탑재한 라즈베리파이4B(어뎁터)를 실행시킨다.
나. EIPScan에서 메뉴 I/O로 클릭한 후, 팝업메뉴에서 "Add Class1 Connection" 실행하면 그림10.1처럼 나타나고, 설정을 변경하여 OK를 실행시킨다.
다. 그림10.2 같은 데이터를 모니터링 및 설정할 수 있는 상태가 되며, I/O 메뉴에서 Run Mode로 변경하면 I/O에 연결된 하드웨어를 제어할 수 있다.
라. EIPScan 프로그램상의 입출력을 제어할 때마다, 어뎁터 모듈에서 그림10.3과 같은 메시지를 표시한다.
그림.10.1. EIPScan 상의 add Class1 Connection 설정메뉴
Fig.10.1. Add Class1 Connection menu setting on EIPScan
그림.10.2. EIPScan 상의 실행화면
Fig.10.2. Execution on EIPScan
그림.10.3. 어뎁터 모듈에서 실행화면
Fig.10.3. The debugging message in adapter module
5.2.2 비연결 메시지를 사용하여 어뎁터의 태그를 읽기
가. Ethernet/IP를 탑재한 라즈베리파이4B(어뎁터)를 실행시킨다.
나. EIPScan 프로그램이 탑재되어 있는 노트북에서 아래의 그림11처럼 설정하고 메뉴 Send Explicit Request 실행하면(Request Type : General CIP Message, Service
: 4C, Symbol : DataTableEntrySampleTag3, Request Data : 02 00), 아래 그림처럼 응답을 확인할 수
있다. 요청데이터 설정영역에서, 데이터 읽기 크기를 설정하고(02 00), Send Explicit Request 실행하면, 수신된 데이터 크기는
10바이트 길이만큼 데이터를 읽을 수 있다.(C4 00 01 02 00 00 00 00 00 00), 여기서 C4는 데이터 타입이 DINT(4바이트),
C3(INT, 2바이트), C2(SINT, 1바이트), CA(REAL, 4바이트)를 의미한다.
그림.11. EIPScan 상의 송신 및 수신데이터
Fig.11. Transmit and Receiving Data on EIPScan
다. 비연결 자동 시험
비연결 자동 시험에 대한 시험 통계는 아래와 같이 오류가 없으며, 전체 패키지는 71983이며, 평균전송비율은 399.91 [pkts/sec], 최대
지연시간은 946[ms]로 나타내었다.
5.3 컨트롤로직스와 라즈베리파이4B(어뎁터) 모듈간의 데이터 통신인 경우
5.3.1 컨트롤로직스와 어뎁터간의 I/O 교환
가. Ethernet/IP를 탑재한 라즈베리파이4B(어뎁터)에서 프로그램을 실행시킨다.
나. 컨트롤로직스에서 아래의 그림12.1 처럼 입출력 구성에서 로컬 및 원격 이더넷 모듈을 추가한다. (Input : Assembly Instance(101), 2byte, Output
: Assembly Instance(100), 2byte, Configuration : Assembly Instance(3), 0byte)
다. 컨트롤로직스를 실행하여 온라인 상태에서 출력태그의 제어((그림12.3)를 통해 라즈베리파이와의 LED 점멸을 확인할 수 있다. 혹은 그림12.2처럼 래더 프로그램을 작성하여 일정한 간격으로 라즈베리파이의 LED 출력을 제어한다.
라. 라즈베리파이에서 키입력 변화를 컨트롤로직스에서 입력태그를 통해 변화를 확인 할 수 있다.(그림12.3)
그림.12.1. 컨트롤로직스 구성
Fig.12.1. ControlLogix configuration
그림.12.2. 컨트롤로직스에서 래더 프로그램을 통해 출력제어
Fig.12.2. The ladder program of ControlLogix
그림.12.3. 컨트롤로직스에서 입출력 컨트롤러 태그
Fig.12.3. I/O Controller tag of ControlLogix
5.3.2 비연결메시지를 사용하여 어뎁터의 태그를 읽기
가. Ethernet/IP를 탑재한 라즈베리파이4B(어뎁터)에서 프로
나. 컨트롤로직스에서 아래의 그림13.1 처럼 로컬 이더넷 모듈을 추가하여 입출력을 구성한다.
다. 컨트롤로직스에서 메시지 명령어(MSG)를 활용하여 래더프로그램을 완성한다(그림13.1).
라. 라즈베리파이의 아날로그 입력변화(0∼5V)에 따라 컨트롤로직스에서 입력 컨트롤러 태그 DataTable(0)의 변화를 확인 할 수 있다(그림13.2). 그리고 최종적으로 PLC의 명령어(BTD, OR)를 통해 수신 받은 데이터를 만들면 0에서 4096까지 변화하는 것을 확인하였다(그림13.1).
그림.13.1. 컨트롤로직스에서 프로그램
Fig.13.1. The configuration and ladder program of ControlLogix
그림.13.2. 컨트롤로직스에서 태그 정보
Fig.13.2. Tag including analog data of ControlLogix
6. 결 론
본 논문에서는 라즈베리파이를 통해 EtherNet/IP 프로토콜을 기반으로 하여 입출력 서버와 메시지 서버 기능을 갖춘 산업용제어장치의 어뎁터 기능을
구현하였으며, 아래와 같은 절차로 통신기능을 확인하였다.
첫째, 컨트롤로직스와 EIPScan 소프트웨어가 구동되는 노트북 사이의 입출력, 메시지 통신으로 데이터통신을 확인하였고, 이를 토대로 EIPScan
소프트웨어가 탑재된 노트북과 어뎁터의 기능을 하는 라즈베리파이 간 입출력, 메시지 통신을 확인하였다. 즉 라즈베리파이의 키입력 변화를 EIPScan
탑재 노트북에서 감지하고, 출력변환은 라즈베리파이에 연결된 램프를 온오프함을 확인하였다. 마지막으로 컨트롤로직스와 라즈베리파이(어뎁터) 간 입출력과
메시지 통신을 통해 라즈베리파이의 EtherNet/IP 프로토콜을 기반으로 어뎁터의 기능을 갖춘 하드웨어와 소프트웨어의 구현을 확인하였다.
따라서 EtherNet/IP 프로토콜을 기반으로 다양한 통신테스트를 통해 라즈베리파이는 컨트롤로직스와의 입출력서버 혹은 메시지 서버 기능을 충분히
할 수 있음을 확인하였다.
추후에는 다수의 라즈베리파이와 컨트롤로직스 간의 입출력 및 메시지 전송을 통해 산업용 제어기기로서 적용여부와 효율성을 확인하고자 한다.
References
May 29, 2020, Industrial network market shares 2020 according to HMS Networks

November, 2007, ODVA & ControlNet International Ltd, Common Industrial Protocol (CIPTM)
Edition 3.3, The CIP Networks Library, Vol. 1

November, 2007, ODVA & ControlNet International Ltd, EtherNet/IP Adaptation of CIP
Edition 1.4, The CIP Networks Library, Vol. 2

CHEN Zaiping, SHAO Xia, JIA Chao, NI Jianyun, 2010, Implementation of Embedded System
for Ethernet/IP Protocol, Institute of Control, Robotics and Systems, International
Conference on Control Automation and Systems

Wojciech Modzelewski, W. Grega, 2017, Introduction to Ethernet/IP Technology

John S. Rinaldi, 2003, An Overview of EtherNet/IP™ —— An Application Layer Protocol
for Industrial Automation, Real Time Automation

John S. Rinaldi, Jamin Wendorf, November 2018, Ethernet/IP, ISBN:978-1726662567

Networks Build on a Common Industrial Protocol, http://www.odva.org

Allen Bradley, 2015, RSLogix5000. Programming Software, Version 19.0

Allen Bradley, September 2010, RSLinx Classic, Getting Results Guide, Publication
LINX-GR001G-EN-E

Allen Bradley, July 2007, Logix5000 Controllers I/O and Tag Data. Programming Manual,
Publication 1756-PM004A-EN-P

Raspberrypi hompage, https://www.raspberrypi.org

Ethernet/IP Scanner Simulation Test Tool(EIPScan) user manual, PYRAMID SOLUTIONS,
Inc. 2008

저자소개
1991년 성균관대학교 전기공학과 졸업.
2003년 동 대학원 전기공학과 졸업(공박).
1992~1999년 (주)엘지산전 연구소 주임연구원.
2001년~현재 대덕대학교 반도체자동화과 교수