Automation GmbH Leibnizstr. 15 88250 Weingarten Germany http://www.ixxat.de EtherNet/IP 기본원리 ( 주 ) 임베디드시스템코리아 Page 1
Automation GmbH Leibnizstr. 15 88250 Weingarten Germany http://www.ixxat.de EtherNet/IP 기본원리 CIP 입문 Page 2
CIP 란무슨뜻입니까? CIP 는 Common Industrial Protocol 을말합니다 DeviceNet (ODVA) ControlNet (CI) EtherNet/IP (ODVA/CI) 이러한모든 3가지기술들은공통적인다음을공유합니다 객체 (Object) 모델 통신모델 7 Device Profiles Page 3
CIP 란무슨뜻입니까? ( 보충설명 ) DeviceNet 은가장오래되고널리알려진프로토콜입니다. 이것은 CAN (Controller Area Network) 에바탕을두고있습니다. DeviceNet 은 1994 년에소개되었습니다. DeviceNet 을지원하는모든공급업체들을위한조직이 ODVA (Open DeviceNet Vendor Organisation) 입니다. ControlNet 은 CIP- 패밀리의두번째멤버이며독점적인물리계층과데이터연결계층에기반을두고 1996 년에소개되었습니다. 업체들은 CI (ControlNet International) 로조직되었습니다. EtherNet/IP 는 CIP- 패밀리의가장나중멤버이며 2000 년에소개되었습니다. EtherNet/IP 는산업용이더넷에기반을두고있으며 ODVA 와 CI 의협력결과입니다. 이세가지기술들에대해과거에는세개의별도규격들이있었습니다 : DeviceNet, Volumes I und II ControlNet, Volumes I und II EtherNet/IP, Volumes I und II ODVA 는현재규격의새로운구조를공개했습니다. DeviceNet, ControlNet 과 EtherNet/IP 의예전규격의공통적인 CIP 파트가수정되었으며이를기초로새로운규격이만들어졌습니다. CIP 기술의각각에대해별도의규격이생성되었습니다. 현재 4 개의규격들을이용할수있습니다. Volume 1: The Common Industrial Protocol (CIP) Volume 2: EtherNet/IP Adaptation of CIP Volume 3: DeviceNet Adaptation of CIP Volume 4: ControlNet Adaptation of CIP Page 4
CIP 계층모델 User Device Profiles Application Presentation Session I/O Encoder Valves Drives SEMI Others CIP Application Layer Application Object Library CIP Data Management Services Explicit Messages, I/O Messages CIP Message Routing, Connection Management Transport Network Data Link Physical Link DeviceNet Transport CAN CSMA/NBA DeviceNet Physical Layer ControlNet Transport ControlNet CTDMA ControlNet Physical Layer Encapsulation TCP IP Ethernet CSMA/CD UDP Ethernet Physical Layer? Future ATM, USB, FireWire, Wireless...? Page 5
CIP 계층모델 ( 보충설명 ) 공통산업용프로토콜 (Common Industrial Protocol) 은 ISO/OSI- 계층모델에따라다음계층들을사용합니다 : Application (Layer 7) Application Layer 은디바이스의기능을만드는데사용되는 Object 라이브러리를정의합니다. Presentation (Layer 6) Presentation Layer 는 CIP 에사용되는메시지와데이터관리를정의합니다. Session (Layer 5) CIP 는연결 - 기반프로토콜입니다. message routing 과연결관리는 Session Layer 에서실현됩니다. Device Profiles 은공장자동화에서의사용을위한다양한제품들을만들도록명시됩니다.. 다음을위한기본계층들은 Transport (Layer 4) Network (Layer 3) Data Link (Layer 2) Physical Link (Layer 1) CIP 의세가지구현들에대해명확히한정됩니다 : DeviceNet ControlNet EtherNet/IP Page 6
CIP 구현 DeviceNet DeviceNet 은 Data Link 계층과물리계층으로서 CAN 을사용합니다 CAN 을이용할수있는표준구성요소 모든데이터는 CAN 메시지의 8 바이트 payload data 에맞춰져야합니다 - 더큰데이터패킷들의경우단편화 (Fragmentation) 효율적인메시지필터링과간단한연결설치를위한 Predefined Messages 애플리케이션영역은공장자동화입니다 : - I/O-Modules, Encoders, Drivers, Valves, HMI, Machine Control (PLC),... Page 7
CIP 구현 DeviceNet ( 보충설명 ) DeviceNet 은 Rockwell Automation 과 Open DeviceNet Vendor Association 에의해개발되었습니다. 이것은 EN 50325 에서표준화되었으며 CAN- 프로토콜 (Controller Area Network) 을바탕으로합니다. 이것은 CAN 에최적화되었으므로 CAN 과동작하며추가노력없이는다른데이터연결계층에맞출수없습니다. CAN 의물리계층은네트워크에서메시지의오류없는전송에매우중요합니다. DeviceNet 의규격은데이터속도, 케이블종류, 케이블길이와물리계층에대한인터페이스를정의합니다. 일치여부 (compliance) 는인증과정에서 Physical Layer Test 로검사됩니다. CAN 의표준요소들이 DeviceNet 제품들에서사용됩니다 (CAN-Controller, uc with integrated CAN, CAN-Transceiver). 순수 CAN 메시지의 payload 데이터는 8 바이트로제한됩니다. DeviceNet 의전송계층에서의단편화프로토콜을이용하여, 네트워크에서 8 바이트이상의 payload 데이터를보내는것이가능합니다. CIP 를이용해서데이터의최대길이는 64 kbyte 입니다. Common Industrial Protocol 은 CAN 에서사용된것과동일한원리로, 네트워크에서데이터를교환하는데 Producer-Consumer-Model 을사용합니다. CAN 은모든하드웨어핸드쉐이크를지원하지않으므로, 네트워크에있는모든노드들은실시간에서소비메시지들을여과시킬수있어야합니다. 이것은하드웨어 -filtering (CAN 컨트롤러에서 ) 또는소프트웨어 - filtering ( 마이크로컨트롤러에서 ) 을통해실행될수있습니다. 후자는고성능의마이크로컨트롤러를필요로합니다. 느린 8 비트마이크로컨트롤러기능을가진소형제품들을위해, DeviceNet 은매우효과적인메시지코딩을명시해서하드웨어 - 필터링이단한개의수신버퍼와 Mask-And-Match 성능을지원하는 CAN- 컨트롤러들 ( 예전 Philips 82C200 같은 ) 과사용될수있습니다. 이러한종류의메시지는 DeviceNet 에서 Predefined Master/Slave Connection Set 으로알려져있습니다. 이것들은 PLC (master) 가네트워크에서여러개의노드들 (slaves) 과데이터를교환하는 Master/Slave 시스템에서사용됩니다. Page 8
CIP 구현 DeviceNet 특징 네트워크에서의노드수 데이터속도 네트워크위상 케이블종류 커넥터 케이블길이 24 V 전원장치 Page 9
CIP 구현 DeviceNet ( 보충설명 ) DeviceNet 네트워크는최대 64 개의노드를지원합니다. 이제약은 CAN 식별자에서선택된어드레싱코드의결과입니다 (6 비트가 MAC-ID 에사용됩니다 ). 3 Data Rate 가정의됩니다 : 125 kbps, 250 bps 와 500 kbps. 네트워크위상은 trunk line, tees, taps 과 drop 라인이포함된 line 구조를따릅니다. Star 와 tree 같은다른위상들도가능하지만제약이있습니다. 케이블은 CAN 신호와전원공급을위한별도쌍이있는차폐연선 (shielded twisted pair ) 입니다. 다양한케이블종류들이정의됩니다. 예. 두꺼운케이블, 가는케이블, 편평한케이블. 커넥터들은다양한애플리케이션들을지원하며 Open Style, Micro Style oder Mini Style 로이용할수있습니다. 또한클램프를이용한매체부착도가능합니다. 네트워크에서사용되는케이블길이는데이터속도와케이블종류에따라달라집니다. 두꺼운케이블의경우다음값들이지정됩니다 : 125 kbps 에서 500m, 250 kbps 에서 250m, 500 kbps 에서 100m. 가는케이블을사용할때는, 최대케이블길이가데이터속도와상관없이항상 100m 입니다. 드롭라인의최대길이또한지정됩니다. DeviceNet 노드는네트워크를거쳐 24 볼트가공급될수있습니다. 케이블종류와케이블길이에따라최대 8A 가공급될수있습니다. 구성과진단이 DeviceNet 네트워크를거쳐실행되며, 추가인터페이스는필요하지않습니다. Page 10
CIP 구현 ControlNet ControlNet 은독자적인 Data Link 계층과물리계층을사용합니다 특수하드웨어필요 I/O 데이터크기최대 510 byte 높은결정력 (deterministic) 과반복가능 애플리케이션영역은빠른실시간제어입니다 - Drives, Welding Control, Motion Control, complex I/O-Systems,... Page 11
CIP 구현 ControlNet ( 보충설명 ) ControlNet 은 Rockwell Automation und ControlNet International 에의해개발되었습니다. 이것은 EN 50170 에서표준화됩니다. ControlNet 은자체의특정한 Data Link 계층과물리계층을사용합니다. 네트워크접속은 Concurrent Time Domain Multiple Access (CTDMA) 로불리는시간 - 분할알고리즘에의해제어되는데, 각네트워크간격에서전송하는노드의기회를규제합니다. 구성가능한가장빠른 NUT 는 2 ms 입니다. 정보가 Time-critical 인것은 NUT 의예정된부분동안에전송됩니다. 시간제약없이전달될수있는정보 (configuration data 같은 ) 는 NUT 의예정되지않은부분동안에전송됩니다. I/O 데이터의최대 510 바이트가 ControlNet 과교환될수있습니다. ControlNet 은높은결정력과반복이가능하므로, 선호되는애플리케이션영역은빠른실시간제어입니다. Page 12
CIP 구현 ControlNet 특징 네트워크에서의노드수 데이터속도 네트워크위상 중복 (Redundancy) 케이블종류 커넥터 케이블길이 구성과진단인터페이스 Page 13
CIP 구현 ControlNet ( 보충설명 ) ControlNet 네트워크는최대 99 개의노드를지원합니다. 데이터속도는 5 Mbps 입니다. 네트워크위상은 trunk 라인, tees, taps 과 drop 라인들의라인구조를따릅니다. Star 와 tree 같은다른위상들은 repeater 를사용하여쉽게실현될수있으므로 ControlNet 네트워크는최대 25 km 까지의큰범위에도달할수있습니다. ControlNet 은여분의케이블설치를지원합니다. 케이블로는쿼드차폐 RG-6 동축케이블 (quad shielded RG-6 coaxial cables) 들이일반 BNC 커넥터와사용됩니다. 광섬유전송또한제공됩니다. ControlNet 네트워크에서의케이블길이는연결된노드수에따라달라집니다. 48 개의노드들이있을때는 250m 로제한되며 2 개의노드에서는최대 1km 까지증가될수있습니다. 네트워크를끊지않고도추가인터페이스 ControlNet NAP (Network Access Port) 를통해구성과진단이실행될수있습니다. NAP 은이를위해 RS422 interface (RJ45 jack) 을제공합니다. Page 14
CIP 구현 EtherNet/IP EtherNet/IP 는 Ethernet (IEEE 802.3) 에기초를두고있습니다 - 판매용기성품 (COTS) - 산업용이더넷 전송계층으로 TCP/IP 와 UDP/IP 를사용합니다. I/O 데이터크기최대 64 kbyte HTTP, FTP, SMTP 같은다른프로토콜들은, 한네트워크에서동시에사용될수있습니다 애플리케이션영역은공장작업장에서부터기업네트워크에이르는자동화네트워킹입니다 Page 15
CIP 구현 EtherNet/IP ( 보충설명 ) EtherNet/IP 는 ODVA 와 CI 에의해공동으로개발되었습니다. 이것은 IEEE 802.3 에따라 Ethernet 에기반을두고있습니다. 이것은상업용오프더쉘프와산업용이더넷요소를사용합니다. EtherNet/IP 는 CIP 메시지를기본프로토콜 TCP/IP 와 UDP/IP 에대응시키는캡슐화 (encapsulation) 프로토콜을제공합니다. HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol) 또는 SMTP (Simple Mail Transfer Protocol) 같은다른잘알려진인터넷 - 프로토콜들은하나의네트워크에서 EtherNet/IP 와병렬로사용될수있습니다. Page 16
CIP 구현 EtherNet/IP 특징 네트워크에서의노드수 데이터속도 네트워크위상 중복 (Redundancy) 케이블종류 커넥터 케이블길이 Page 17
CIP 구현 EtherNet/IP ( 보충설명 ) EtherNet/IP 네트워크에연결된노드들의수는단지내재하는이더넷프로토콜 (MAC-Address) 과인터넷프로토콜 (IP-Address) 의주소배정공간에의해제한됩니다. 두개의데이터속도들이정의됩니다 : 10 Mbps 와 100 Mbps. 네트워크위상은허브, 스위치와라우터를사용하여 star 와 tree 위상을따릅니다. 케이블설치는차폐된꼬임상 (shielded twisted pair ) 케이블또는비차폐된꼬임쌍 (unshielded twisted pair) 케이블들이사용됩니다. 커넥터로는 RJ-45 또는 M12-4 Type D 가지정됩니다. 두말단사이의케이블길이는내재된이더넷계층에의해 100m 까지제한됩니다. 이것은매우큰네트워크를계획할때고려되어야합니다. Page 18
객체모델 Application Specific Object(s) Identity Object Parameter Object Message Router Object Assembly Object UCMM Explicit Messages I/O Messages Connection Manager Object Link Specific Object(s) Network Link Network Page 19
객체모델 ( 보충설명 ) CIP 는디바이스의통신과애플리케이션을서술하기위해추상적인 Object Model 을사용합니다. 디바이스내부데이터, 기능, 상태들은오브젝트에의해기술됩니다. 각 CIP 디바이스들은오브젝트의컴파일 (compilation) 을제공하며, 선택은 Device profile 에명기되어있습니다. 공급업체들은 CIP common object 를사용할수있으며, 그들은자신들의필요에맞게 CIP common object 를확장하거나새로운오브젝트를생성할수있습니다. 오브젝트모델링목표는정보처리상호운용성 (Interoperability) 과상호교환성 (Interchangeability) 을얻기위함입니다. Page 20
객체모델 Data Attributes typedef struct { int status; char value; } InputData; Object Services Functions Read(input); Write(output); Behavior States Idle Fault Run Page 21
객체모델 ( 보충설명 ) 전통적인소프트웨어설계는데이터구조 (data structures), 기능 (functions), 상태 (states) 를사용합니다. CIP 오브젝트모델유닛들이러한것들은, 용어를일치시켜서이것을 object 라부릅니다 : data 와 structure 들은 attributes 로명명됩니다 function 들은 services 로명명됩니다 state 들은 behaviour 로명명됩니다 Page 22
객체모델의예 오브젝트종류 : 인간 오브젝트예 : Paul 오브젝트예 : Mary 속성몸무게 : 65 kg 몸무게 : 55 kg 키 : 1.8 m 키 : 1.7 m 나이 : 28 years 나이 : 35 years Page 23
객체모델의예 ( 보충설명 ) 앞페이지의예는두사람에게서오브젝트모델의구현을보여줍니다. 여기서우리는오브젝트클래스를 human 으로정의합니다. 각사람에대해오브젝트클래스의사본 (copy) 이생성됩니다. 이사본을 object instance 라부릅니다. 각 instance 는그사람을서술하는속성들의집합을포함합니다. 여기우리의예에서는세가지속성들이구현되었습니다. Page 24
CIP 메시지유형 CIP는연결기반프로토콜입니다 CIP는 Messaging Connections을바탕으로합니다 명시적 Messaging Connections - 공통데이터교환 - 지점대지점 (Point-to-Point) 연결 - 타겟오브젝트에서 Service 수행 - 클라이언트 / 서버 = 요청 / 응답 I/O Messaging Connections - I/O 데이터교환 - Producer/Consumer Model Page 25
CIP 메시지유형 ( 보충설명 ) CIP 는연결기반프로토콜이며, 네트워크에서데이터를교환하기위한두가지다른방법들을제공합니다 : 명시적메시징연결 (Explicit Messaging Connections) Explicit Messaging Connections 은네트워크에서구성데이터, 진단데이터또는관리데이터를교환하기위한두장치들간의공통적인통신경로로사용됩니다. 이데이터의의미는전송된메시지를해석하여결정되어야하며, 이것은메시지에명시적으로포함됩니다. 명시적메시징은항상지점대지점 (Point to Point) 연결을사용하며클라이언트가서버에있는타겟오브젝트에서서비스를요청합니다. 서버에있는오브젝트는그서비스를실행하며클라이언트로응답을되돌려보냅니다. I/O 메시징연결 I/O 메시징연결들은 Producer/Consumer 모델에따라한개의생산오브젝트와하나또는그이상의소비오브젝트들사이에서 I/O 데이터또는애플리케이션데이터를교환하는데사용됩니다. 이데이터의의미는통신경로의일부이며, 따라서 I/O 연결들은암시적 (implicit) 연결이라명명됩니다. 데이터를사용하는모든말단 (endpoint ) 들은이것이메시지의일부가아니므로데이터의의미에대한지식을갖고있어야만합니다. Page 26
명시적메시지 (Explicit Messages) Producer/Consumer 모델 지점대지점 클라이언트 / 서버관계 클라이언트는서버에서서비스를요청 연결또는비연결 Client CIP Network Node Request P C Response Node C P Server Node Page 27
명시적메시지 ( 보충설명 ) 명시적메시지 (Explicit messages ) 들은 Producer/Consumer Model 을사용합니다. 이것들은항상두말단사이에서는지점대지점 (Point-to-Point ) 연결입니다. 한말단은클라이언트이며다른하나의말단은이메시지를위한서버입니다. 클라이언트는서버에서서비스를요청합니다. Explicit Message Client 는서버로요청메시지를전송 ( 생산 ) 하고그응답메시지를수신 ( 소비 ) 합니다. Explicit Message Server 는클라이언트로부터요청메시지를수신 ( 소비 ) 하고응답메시지를전송 ( 생산 ) 합니다. 생산과소비말단들은오브젝트에연결됩니다. 서버에서소비말단은항상메시지라우터에연결됩니다. 명시적메시징을이용해서클라이언트는서버에서서비스를실행합니다. 예를들면, 데이터읽기 (service Get_Attribute_Single). 서비스의의미와서버에서그서비스를실행하는오브젝트의주소는메시지의일부입니다. CIP 디바이스는명시적메시지클라이언트와명시적메시지서버가동시에될수있습니다. 또한하나의디바이스에서다중의명시적메시징연결들도가능합니다. 명시적메시지들은연결을통해 (connected) 그리고무 - 연결 (unconnected) 로도전송될수있습니다. 메시지를전송하기위한내재된계층들에대한 CIP 명시적메시지의적용은, 예를들어 CAN 또는 TCP/IP 를사용하여, CIP 구현의일부이며 DeviceNet, ControlNet 과 EtherNet/IP 에따라달라집니다. Page 28
I/O 메시지 Producer/Consumer 모델 연결이필요합니다 Connection ID (CID) 연결은애플리케이션데이터의교환을제어합니다 (Cyclic, 상태변경등.) Multicast Producer Node Multicast Consumer Point to Point Consumer CIP Network CID #1 CID #2 Node Multicast Consumer Point to Point Producer Multicast Consumer Page 29
I/O 메시지 ( 보충설명 ) I/O messages 역시 Producer/Consumer Model 을사용합니다. I/O 메시지들은항상 connected 입니다. I/O Client 는 I/O Server 에대한 I/O 연결을개시합니다. 특별한식별자 (Connection ID) 가 I/O 연결에할당됩니다. 네트워크에있는소비노드들은그들에게관련된메시지들을여과시키는데이식별자를사용합니다. I/O 연결에있는말단은생산자또는소비자가될수있습니다. client 와 server 용어는네트워크에서의두개말단사이의관계를설명하는데사용됩니다. producer 와 consumer 용어는그것들과상관이없습니다. CIP 를이용하여네트워크에서클라이언트는소비자로서버는데이터의생산자로 I/O 연결을설정할수있습니다. 생산과소비말단들은오브젝트에연결됩니다. 이러한오브젝트들에대한경로를 Connection Path 라고부릅니다. 이연결들은그들이묶여있는오브젝트들과는상관없이네트워크에서데이터를생산하는것을책임집니다. CIP 로애플리케이션과통신간의명확한분리가실현됩니다. I/O 연결들은어떠한프로토콜오버헤드없이데이터를전송합니다. 연결의말단은데이터의의미에대한지식을갖고있어야합니다. 데이터의형식은 Device profile 에서기술됩니다. CIP 디바이스는 I/O 클라이언트와 I/O 서버가동시에될수있습니다. 하나의디바이스에서다중 I/O 연결들도가능합니다. 메시지를전송하기위한내재된계층들에대한 CIP I/O 메시지의적용은, 예를들어 CAN 또는 UDP/IP 를사용하여, CIP 구현의일부이며 DeviceNet, ControlNet 과 EtherNet/IP 에따라달라집니다. Page 30
명시적메시지보내기의예 (1) 당신의키는 얼마입니까? CIP Service: Get_Attribute_Single 1.8 [m] CIP 성공응답 + 값 (1.8 [m]) 명시적메시징은 Request/Response 관계를사용합니다. 여기우리의예에서메리는폴에게데이터를요청합니다. 그녀는그의키를알고싶어합니다. 이를위해그녀는 CIP 서비스 Get_Attribute_Single 을사용합니다. 폴은이예에서 1.8m 인그의속성값 height 를성공적으로응답합니다. Page 31
명시적메시지보내기의예 (2) 당신의립스틱은 무슨색깔입니까? CIP Service: Get_Attribute_Single 나는립스틱을 사용하지않습니다! CIP 오류응답 속성지원안됨 위의예에서메리는폴에게그가립스틱을사용하는지묻습니다. 폴은이속성을지원하지않으므로 CIP 오류응답메시지 Attribute not supported 로응답합니다. Page 32
명시적메시지보내기의예 (3) CIP Service: Get_Attribute_Single 당신은 몇살입니까? 말하지않겠습니다! CIP 오류응답 서비스지원안됨 명시적메시징을위한마지막예에서, 폴은메리의나이를알고싶어합니다. 메리는이속성을지원하지만폴에게그값을말하려하지않습니다. 그러므로그녀는 CIP 오류응답메시지 Service not supported 로응답합니다. 이것은명시적메시징의매우간단한예였습니다. CIP 공통규격에서는더욱많은 CIP 서비스들이정의됩니다. CIP 서비스들이디바이스에서데이터를읽고쓰는데만사용될수없으며, 그들은더욱강력합니다, 왜냐하면사용자는그것들을사용하여 (Reset-Service 처럼 ) 디바이스의내부상태를변경할수있기때문입니다. 또한 I/O 연결의설립과구성은명시적메시징연결을거쳐 CIP 서비스를사용하여관리됩니다. Page 33
I/O 메시지보내기의예 CIP: Cyclic I/O Message CIP: Ack Message 1,8 (m) 2,4 (m) 2,1 (m) 1,5 (m) (ok) (ok) (ok) (ok) Page 34
I/O 메시지보내기의예 ( 보충설명 ) CIP 에서정의된두번째메시지유형은 I/O 메시지입니다. 다음예에서우리는 I/O 연결을위한두개의말단 ( point-to-point 연결 ) 을가정합니다 : 선장 ( 그는네트워크에서클라이언트와창시자가될수있다고가정 ) 과조타수는대양항로의깊이를측정합니다. 선장과조타수와의관계가설정된후에, 조타수는주기적으로깊이를측정하고선장에게결과를소리칩니다. 선장자신은그데이터를받았는지확인합니다. 명시적메시징과비교했을때큰차이점은 : - 양쪽말단들이데이터의포맷과데이터에관한지식을알고있어야합니다. 여기우리예에서깊이는미터로측정됩니다. - 여기서는어떤 CIP 서비스도사용되지않습니다. 따라서어떤프로토콜오버헤드도없으며, 단지 raw I/O 데이터가네트워크를통해전송됩니다. Page 35
Automation GmbH Leibnizstr. 15 88250 Weingarten Germany http://www.ixxat.de EtherNet/IP 기본원리 Ethernet & TCP/IP 입문 Page 36
중간계층 (Middle Layers) Application Presentation Session CIP Explicit Messaging CIP I/O Messaging CIP DHCP SMTP HTTP FTP SNMP BOOTP DNS Encap Transport TCP UDP ICMP IGMP Network ARP IP RARP Data Link Physical Link Ethernet Data Link Layer Ethernet Physical Layer Page 37
중간계층 ( 보충설명 ) EtherNet/IP 의주요혜택중의하나는 CIP 메시징을위한일반 TCP/IP 프로토콜의사용입니다. EtherNet/IP 는웹서버 (HTTP 사용 ) 또는 mail-alerter (SMTP 사용 ) 같은디바이스에서다른프로토콜들과병렬로실행될수있습니다. CIP Explicit Messaging 은 TCP/IP 네트워킹을사용하는반면 CIP I/O Messaging 은 UDP/IP 네트워킹을사용합니다. 이것들모두 EtherNet/IP 규격의일부인일반 Encapsulation Protocol 을사용합니다. Page 38
Ethernet (1) EtherNet/IP 은 Data Link 계층과물리계층으로서 IEEE 802.3 (Ethernet) 을사용합니다 Star 위상 / Tree 위상 10 Base-T (10 Mbps) 100 Base-T (100 Mbps) 충돌검사를사용하는반송파감지다중액세스 (CSMA/CD) 충돌을피하기위해스위치가권장됩니다 Page 39
Ethernet (1) ( 보충설명 ) EtherNet/IP 는 IEEE 802.3 표준에따라이더넷을사용합니다. 주요특성들중의하나는네트워크에서허브나스위치같은기반요소들을필요로하는 Star 또는 Tree Topology 의사용입니다. 예를들어 DeviceNet 과구분하는편리한 Line Topology 는 EtherNet/IP 네트워크에서사용될수없습니다. EtherNet/IP 에서사용되는물리계층에대한두가지표준은 10 Base-T 와 100 Base-T 입니다. 이더넷에서물리계층에연결된디바이스의동시액세스는충돌을야기합니다. 이러한것들은이더넷컨트롤러에의해해결됩니다. 충돌은네트워크에서메시지의지연을증가시키며따라서네트워크의실시간행동과결정력을저하시킵니다. Page 40
Ethernet (2) EtherNet/IP 는 Data Link 계층과물리계층으로서 IEEE 802.3 (Ethernet) 을사용합니다 Eth.Header Payload Data (46 1500 Octets) Eth.Trailer 31 16 15 8 7 0 Preamble Preamble Start Frame Delimiter Destination MAC Address Destination MAC Address Source MAC Address Length / Frame Type Source MAC Address Page 41
Ethernet (2) ( 보충설명 ) 모든 EtherNet/IP 디바이스들최소지원 : RFC 894 에서정의된대로 IEEE 802.3 (Ethernet) IEEE 802.3 이더넷프레임은 Header, Payload Data 와 Trailer 로구성됩니다. 이더넷헤더는수신노드들의동기화를돕기위해 Preamble 과 Start Frame Delimiter 와같이시작합니다 ( 이러한 8 octets 들은우리가프레임길이를얘기할때대개제외됩니다 ). 헤더의다른요소는 Destination MAC Address, Source MAC Address 와 Length/Frame Type 입니다. 이더넷트레일러는 4 옥테트의 Frame Check Sequence 를포함합니다. IEEE 802.3 이더넷프레임의최소길이는 64 옥테트입니다. 실제 payload 데이터가 46 옥테트미만이라면, 46 옥테트를얻기위해 0 으로된패딩바이트가채워집니다. IEEE 802.3 이더넷프레임의최대길이는 1518 옥테트입니다. 프로토콜오버헤드가없다고가정하면 100 Mbps 의네트워크에서이론적인데이터처리량은 12.5 MByte/s 입니다. 충돌이없다고가정하면 100 Mbps 의 IEEE 802.3 네트워크에서이론적순수데이터처리량은다음과같습니다 ; 1 byte payload data (+ 45 padding bytes) 164 kbyte/s 46 byte payload data (minimum IEEE 802.3 frame) 7.5 MByte/s 1500 byte payload data (maximum IEEE 802.3 frame) 12.2 MByte/s Page 42
인터넷프로토콜 (IP) EtherNet/IP 는인터넷프로토콜 (IPv4) 을사용합니다 IP-Header Payload Data 31 28 27 24 23 16 15 8 7 0 Version IHL Type of Service Total Length Identification Flags Fragment Offset Time To Live Protocol Source Address Header Checksum Options (if any) Destination Address Padding Page 43
인터넷프로토콜 (IP) ( 보충설명 ) 모든 EtherNet/IP 디바이스최소지원 : Internet Protocol (IP version 4) (RFC 791) IP 프레임은 Header 와 Payload Data 로구성됩니다. 최소헤더길이는 20 octets 입니다. 사용되는옵션에따라, 그크기는최대 24 octets 가될수있습니다. 헤더의몇가지중요요소들은다음과같습니다 : 전체길이 - payload 데이터를위한최대크기는 65535 octets 입니다 Source Address 와 Destination Address - 192.168.1.100 와같은 IP 주소가있습니다 IP 프로토콜은단편화 (fragmentation) 를지원합니다. 따라서최대 65535 octets 의 payload 데이터가이더넷과같은하위계층을통해전송될수있으며, 이때 payload 데이터는 1500 octets 로제한됩니다. Page 44
사용자데이터그램프로토콜 (UDP) Datagram 기반, 비 - 신뢰, 비연결형패킷전달서비스 UDP-Header Payload Data 31 16 15 0 UDP Source Port UDP Message Length UDP Destination Port UDP Checksum EtherNet/IP 은 I/O 메시지전송에 UDP 를사용합니다 Page 45
사용자데이터그램프로토콜 ( 보충설명 ) 모든 EtherNet/IP 디바이스최소지원 : User Datagram Protocol (UDP) (RFC 768) UDP 프레임은 Header 와 Payload Data로구성됩니다. 이헤더는항상 8 octets를포함합니다. 헤더와 UDP를이용해전송된 payload 데이터의크기는 65535 octets로제한됩니다. 그러면순순 payload 데이터는 65527 octets가됩니다. 이계층에서는단편화프로토콜이없습니다. User Datagram Protocol 은 Ports 를사용하여노드에서실행하는다양한애플리케이션들에대한 datagrams 을 demultiplex 합니다. 몇가지 잘알려진포트들 의예입니다. 53 Domain Name Server (DNS Server) 67 Bootstrap Protocol (BOOTP Server) 68 Bootstrap Protocol (BOOTP Client) 161Simple Network Management Protocol (SNMP) EtherNet/IP 의경우 UDP-Port 2222 (0x08AE) 가 CIP I/O Messaging 에사용됩니다. Page 46
전송제어프로토콜 (TCP) Stream 기반, 신뢰성있는연결지향프로토콜 TCP-Header Payload Data 31 16 15 0 Source Port Destination Port Sequence Number Acknowledgment Number Data Offset reserved Code Bits Window Checksum Urgent Pointer Options (if any) Padding EtherNet/IP 는명시적메시지전송에 TCP 를사용합니다 Page 47
전송제어프로토콜 ( 보충설명 ) 모든 EtherNet/IP 디바이스최소지원 : Transmission Control Protocol (TCP) (RFC 793) TCP 세그먼트는 Header 와 Payload Data 로구성됩니다. 최소헤더길이는 20 octets 입니다. 사용된옵션에따라, 그크기는최대 24 octets 가될수있습니다. TCP 를사용하여전송된 payload 데이터의크기는무제한입니다 이것은우리가 Stream 으로알고있는것입니다. TCP 또한 Ports 를사용합니다, 몇가지 잘알려진포트들 의예입니다. 20 File Transfer Protocol (FTP Data) 21 File Transfer Protocol (FTP Control) 23 Telnet 25 Simple Mail Transfer Protocol (SMTP) 80 Webserver (HTTP) EtherNet/IP 은 TCP-Port 44818(0xAF12) 가 Encapsulation 프로토콜과이를통한 CIP Explicit Messaging 에사용됩니다 Page 48
종합...... 이것이우리가 캡슐화 (Encapsulation) 로알고있는것입니다 Encap Encap-Header CIP TCP or UDP TCP or UDP Header Application Data TCP Segment or UDP Datagram IP IP Header TCP or UDP Header Application Data IP Datagram Ethernet Eth. Header IP Header TCP or UDP Header Application Data Ethernet Frame Eth. Trailer Page 49
종합... ( 보충설명 ) 프로토콜들은하나에서다른것으로캡슐화됩니다. IP Datagram 은이더넷프레임의 payload data 에서캡슐화됩니다. TCP Segments 또는 UDP Datagrams 은 IP Datagrams 의 payload data 에서캡슐화됩니다. 끝으로, CIP 프로토콜은캡슐화프로토콜을사용하여 TCP Segment /UDP Datagram 의 payload data 에서캡슐화됩니다. 우리는이교육의후반부에서 CIP Encapsulation 프로토콜에대해더자세히배울것입니다. 이그림은스택 (stack) 같아보이며, 그것이 TCP/IP 프로토콜소프트웨어가또한 TCP/IP 프로토콜스택으로알려진이유입니다. Page 50
그외요구되는프로토콜들 ARP Address Resolution Protocol ICMP Internet Control Messaging Protocol IGMP Internet Group Management Protocol Page 51
그외요구되는프로토콜들 ( 보충설명 ) 모든 EtherNet/IP 디바이스최소지원 : Address Resolution Protocol (ARP) (RFC 826) - ARP 는이더넷계층에서 IP 계층에서부터 MAC 주소까지 IP 주소들을전송합니다. Internet Control Messaging Protocol (ICMP) (RFC 792) - ICMP 는 IP 프로토콜의필수부분이며예를들어데이터그램처리에서오류를보고할때사용됩니다. Internet Group Management Protocol (IGMP) (RFC 1112 & 2236) - IGMP 또한 IP Multicasting 을관리하기위한 IP 프로토콜의필수부분입니다. EtherNet/IP 의경우이프로토콜은매우중요합니다, 왜냐하면 I/O 메시지들이 IP Multicast 를이용할수있습니다. - 주의 : 비록 IGMP 가 IP 의필수부분이라하더라도모든 TCP/IP 프로토콜스택들에의해제공되지는않습니다. 여러분이선택한 TCP/IP 프로토콜스택이 IGMP 를지원하는지확인하시기바랍니다! Page 52
선택프로토콜들 BOOTP Bootstrap Protocol DHCP Dynamic Host Configuration Protocol DNS Domain Name System Page 53
선택프로토콜들 ( 보충설명 ) EtherNet/IP 디바이스들은다음의프로토콜들을지원합니다 : Bootstrap Protocol (BOOTP) (RFC 951) - BOOTP 는 IP 주소를포함하여서버로부터 startup 정보를얻기위해호스트에의해사용됩니다. 이프로토콜은 boot-up 시간동안에디바이스로유효한 IP 주소를배정하기위해 EtherNet/IP 네트워크에서사용되는한가지수단입니다. 또다른방법은 Dynamic Host Configuration Protocol (DHCP) (RFC2131) - DHCP 는 BOOTP ( RFC 1534 참고 ) 에바탕을두며이정보를더욱편리하게얻을수있도록개선되었습니다. Domain Name System (DNS) (RFC 1034 and 1035) - DNS 서버는 DNS 클라이언트들을위해컴퓨터이름을 IP 주소로변환하는데사용됩니다. Page 54
Automation GmbH Leibnizstr. 15 88250 Weingarten Germany http://www.ixxat.de EtherNet/IP 기본원리 이더넷에대한 CIP 의적용으로서의 EtherNet/IP Page 55
EtherNet/IP 용어 클라이언트 / 서버 application view Client 는 Server에메시지요청을개시합니다디바이스기능의네가지분류 메시지서버 - 이것은 CIP 디바이스의최소요건입니다 I/O 서버와메시지서버 - better known as Adapter Class 메시지서버와메시지클라이언트 메시지서버와메시지클라이언트, I/O 서버와 I/O 클라이언트 - Scanner Class 로더잘알려짐 Page 56
EtherNet/IP 용어 ( 보충설명 ) 애플리케이션의관점에서우리는클라이언트와서버를구분합니다. 클라이언트는서버에메시지를요청하는연결의종점 (endpoint) 입니다 EtherNet/IP 의경우우리는이제 4 가지디바이스레벨을정의할수있습니다 그것들이클라이언트또는서버인지그리고그들이 Explicit Messaging 또는 I/O Messaging 을지원하는가에따라. EtherNet/IP 에서는대개다음의생략형을사용합니다 : Message Server 용어는 Explicit Messaging Server 에대한단축형태이며 I/O Server 용어는 I/O Messaging Server 에대한단축형태입니다. Page 57
EtherNet/IP 용어 Originator/Target network view Originator 는 Target 에대한연결을개시합니다 - O->T: originator 는타겟에의해소비되는데이터를만듭니다 - T->O: 타겟은 originator 에의해소비되는데이터를만듭니다 한디바이스가동시에서로다른연결에대해 originator 와 target 이될수있습니다 O T Adapter Scanner O T T O O Scanner Page 58
EtherNet/IP 용어 ( 보충설명 ) 우리가네트워크관점에서볼때, 한디바이스는다른디바이스들에대해열려진여러개의연결들을가질수있습니다. 각연결은 originator, 이것은연결을개시하는디바이스입니다, 그리고한개또는그이상의타겟들, 연결의말단 (endpoints) 를갖고있어야합니다. EtherNet/IP 에서데이터는일반적으로 Originator 에서 Target 으로그리고 Target 에서 Originator 로양쪽방향들로교환됩니다. O -> T 와 T -> O 용어가여기서는일반적인약자입니다. Page 59
객체모델 Application Specific Object(s) Identity Object Parameter Object Message Router Object Assembly Object UCMM Explicit Messages I/O Messages Connection Manager Object TCP/IP Ethernet 802.3 TCP/IP Interface Object Ethernet Link Object Network Page 60
객체모델 ( 보충설명 ) 적어도다음오브젝트들중의한가지 instance 는디바이스에서구현되어야합니다 CIP 공통오브젝트 Identity Object (Class Code 0x01) Message Router Object (Class Code 0x02) Connection Manager Object (Class Code 0x06) EtherNet/IP 특정오브젝트 TCP/IP Interface Object (Class Code 0xF5) Ethernet Link Object (Class Code 0xF6) Unconnected Message Manager (UCMM) EtherNet/IP 디바이스는 CIP common 오브젝트라이브러리를공유합니다 Reference: Volume 1: CIP Specification, Chapter 5 Object Library EtherNet/IP 디바이스는 CIP common device profiles 을공유합니다 Reference: Volume 1: CIP Specification, Chapter 6 Device Profiles Page 61
TCP/IP 인터페이스오브젝트 TCP/IP 인터페이스오브젝트는디바이스의 TCP/IP 네트워크인터페이스를구성하는메커니즘을제공합니다 각각의 instance 는 TCP/IP 네트워크인터페이스를구성하기위한 6 개의 instance 속성들을제공합니다 - Status - Configuration Capability - Configuration Control - Physical Link Object - Interface Configuration - Host Name Page 62
TCP/IP 인터페이스오브젝트 ( 보충설명 ) EtherNet/IP 의경우디바이스는최소한으로이오브젝트의하나의 instance 를지원할것입니다. TCP/IP Interface Object 의각 instance 는정확히하나의 TCP/IP 네트워크인터페이스에일치합니다. Scanners 와 Adapters 는대개이오브젝트의한 instance 를지원합니다. Bridges, Gateways 와 CIP Routers 는이오브젝트의두개또는그이상의 instances 를지원할수있습니다. TCP/IP Interface Object instance 속성들은디바이스에서내재된 TCP/IP 프로토콜스택의데이터구조에연결됩니다. Page 63
Ethernet 연결오브젝트 Ethernet Link Object 는 Ethernet 802.3 통신인터페이스를위한 link 특수카운터와상태정보를보유합니다 Ethernet Link Object 의각 instance 는하나의 Ethernet 802.3 통신인터페이스에정확히부합합니다 - Interface Speed - Interface Flags - Physical Address (MAC) - Interface Counters - Media Counters - Interface Control Page 64
Ethernet 연결오브젝트 ( 보충설명 ) EtherNet/IP 의경우 Ethernet 802.3 이사용된다고가정할때최소한이오브젝트의 instance 한개가지원될것입니다. Ethernet Link Object 의각 instance 는정확히하나의 Ethernet 802.3 통신인터페이스에일치합니다. Scanners 와 Adapters 는대개이오브젝트의 instance 하나를지원합니다. Bridges, Gateways 와 CIP Routers 는이오브젝트의두개또는그이상의 instances 를지원할수있습니다. Ethernet Link Object instance 속성들은디바이스에서내재된 Ethernet 드라이버의데이터구조에연결됩니다. 이것은이더넷드라이버가이러한데이터를제공하고그데이터가 CIP 서비스를이용하여정확히액세스되는지를확인하기위한이오브젝트구현의일부입니다. Page 65
물리계층 - Indicators Indicators 는선택사양입니다 Indicator 가제품에서구현되면, 이것은규격에충실해야합니다 목표 : 모든 3 개 CIP 기술들의모습과느낌공통 : DeviceNet, ControlNet 과 EtherNet/IP 2 색의빨강 / 초록 indicator ( 일반적인 LED) Power-Up 동안의자체 - 테스트 Flash 속도초당 1, Duty Cycle 50 % Page 66
물리계층 Indicators ( 보충설명 ) 여러분이다른 CIP 기반기술들 DeviceNet 과 ControlNet 에익숙해지면 indicator 에대해알게됩니다. 이것들은네트워크에서결함디바이스들을찾아내기위한서비스와유지보수담당자를도와줍니다. 이를위해전원공급시 indicator 가작동되는것을보여주기위한셀프테스트는필수입니다. 이것은디바이스의내부상태를보여주고오류가발생한경우그것들을보여줄수있는가능한간단한 indicators 의 coding 을유지하기위함이였습니다. Indicators 의구현이해석 (interpretation) 을위한여지를남겨두지않는다는것이중요합니다. Indicator 가구현될때이것은엄격하게규격에충실합니다. Indicators 의정확한작동을확인하는것은 ODVA Conformance Test 의일부입니다. DeviceNet 에서이것은물리계층테스트를통해실행되며, EtherNet/IP 의경우앞으로그절차가정의되어야합니다. 규격을준수하는모든 indicators 는디바이스의하우징의어떤부분도제거하지않고볼수있습니다. 또한 Indicator 의뜻을명확하게보여주는 label 도있습니다. Page 67
물리계층 Performance Levels EtherNet/IP 는두가지레벨을지정합니다 판매용기성품 (Commercial Off The Shelf; COTS) - 사무용네트워크로유명 - ANSI/TIA/EIA-568 B.2 standard - IEEE 802.3u / TP-PMD standard - COTS 컴포넌트들은사용자시스템의성능을저하시킬수있습니다 산업용 - COTS 와비교했을때필수요건증가 두개의레벨들은다음을위한요건들을서로다르게정의합니다 - Cabling 과 Connectors - 위상제약조건 Page 68
물리계층 Performance Levels ( 보충설명 ) EtherNet/IP 규격은디바이스들의두가지 Performance Levels 을정의합니다 : Commercial of the Shelf 와 Industrial. Commercial off the Shelf (COTS) 레벨은온도또는밀봉 (sealing) 에대한요건이매우낮거나지정되지않은사무환경을위해정의된저표준을사용합니다. Industrial 레벨은매우높은표준을설정하는데, 온도, 밀봉, voltage isolation, 등에관한강화된요건들이정의됩니다. EtherNet/IP 의제품들은 Industrial 표준을따를것을권장합니다. Page 69
Automation GmbH Leibnizstr. 15 88250 Weingarten Germany http://www.ixxat.de EtherNet/IP 기본원리 적합성검사 (Conformance Testing) Page 70
적합성검사 EtherNet/IP 제품들은반드시적합성이검사되어야합니다 ODVA Protocol Conformance Test Software ODVA 검사서비스제공 ODVA Training and Technology Center 앤아버, 미시건 미국 CVS@IAF Otto-von-Guericke-University 마그데부르크, 독일 Page 71