EtherNET/IP协议基础知识

一、EtherNet/IP基础概念

1.ODVA组织简介

ODVA成立于1995年,是一个全球性协会,其成员包括世界领先的自动化公司。ODVA的使命是促进工业自动化中开放的,可互操作的信息和通信技术。ODVA将其独立于媒体的网络协议,通用工业协议或“CIPTM”以及CIP的网络改进版EtherNet/IPTM,DeviceNetTM , CompoNetTM和ControlNetTM视为其核心技术。其负责的主要内容有:

1.设备的一致性测试认证与互操作;
2.授权EtherNet/IP技术;
3.发放Vendor ID代表厂商设备信息;
4.其下的SIG小组负责各类规范、方针等内容的制定。

2.EtherNet/IP基础架构

2.1 EtherNet/IP OSI参考模型

图:EtherNet/IP的ISO/OSI参考模型

EtherNet/IP的ISO/OSI参考模型如上图所示,其物理层、链路层、网络层、传输层均与标准以太网相同,特点在于其在传输层之上增添了一个封装层,对来自应用层的数据进行报文格式的封装;而应用层采用的是CIP协议,满足其在工业自动化领域的一些功能和服务。

特点:

1.服务于各类工业自动化应用;
2.基于标准的IEEE802.3与TCP/IP Suite;
3.应用层采用通用工业协议CIP;
4.IT集成,包括Web、OPC等服务;
5.物理层实现基于标准的以太网控制器;
6.规定了特定的传输端口,UDP/IP(PORT 44818),TCP/IP(PORT 44818)。

2.2 EtherNet/IP 各层功能特点

2.2.1 物理层:

1)传输介质可选铜缆双绞线或光纤;

2)几乎可以容纳无限数量的点对点节点;

3)可以通过嵌入式交换机技术和设备级环网技术来实现线型、星型和环网拓扑;

4)可根据需求选择不同的物理接口:基本的以太网连接,支持COTS现成商用标准,适合IP 20应用;工业等级应用,需性能增强的RJ-45连接器,密封RJ-45连接器以及更紧凑的M12连接器,适合IP 67应用;

2.2.2 数据链路层与网络层:

图:EtherNet/IP的以太网帧格式

EtherNet/IP的链路层帧格式如上图所示,与标准以太网没有区别,遵循IEEE 802.3规范设计,并支持全双工传输。

图:EtherNet/IP的网络层与传输层

同时网络层与传输层也使用TCP/IP与UDP/IP进行传输,两种方式分别传输两种不同的消息:TCP/IP是面向连接的点对点传输,并且传输的是封装CIP explicit messages(显示消息),主要用于配置信息与诊断数据的传输;UDP/IP是单对多的广播传输,主要用于实时性要求较高的数据传输,并由Timeout机制检测是否传输出错。

2.2.3 Encapsulation封装协议

2.2.3.1 主要功能

图:EtherNet/IP封装层协议

实时性要求不同的数据会采用不同的封装形式与传输形式:实时性要求不高的数据会采用CPF(Common Packet Format通用包格式)+Encapsulation的封装,走TCP/IP传输通道;而实时性要求较高的数据仅采用CPF封装,并走UDP/IP传输通道。封装层主要功能如下:

1.解除IP网络的CIP消息封装;
2.将CIP消息包装为以太网消息;
3.会话管理;
4.与下层TCP/IP协议层以及TCP/IP堆栈进行交互。

2.2.3.2 封装结构

图:EtherNet/IP以太网包结构

图:封装部分的结构

EtherNet/IP的以太网包与其中的封装部分结构如上图所示,其中封装部分各细分部分功能如下:

Command:代表该包的功能和作用;

Length:指示后方数据域的长度;

Session Handle:会话句柄,表示会话建立或响应的请求;

Status:指示改包的命令有无正确执行,可比对状态码表进行确认;

Sender Context:包含描述发送者信息的内容;

Options:可选设置;

Command-specific Data:根据命令的不同有所区别

2.2.3.3 命令类型

表:部分命令类型

2.2.3.4 命令特定数据域(CPF)结构

图:数据域结构

数据域部分的结构如上图所示,其结构为1个1个的item的连接,其每种item的含义如下:

  • Item Count:指示该包数据域中item的总个数
  • Address Item:存放目的地地址信息:

Type ID:地址类型;

Length:地址长度;

Data:地址具体数值;

  • Data Item:存放数据信息:

Type ID:数据类型;

Length:数据长度;

Data:具体数据,封装了CIP报文包的内容,包含CIP命令、请求路径等内容;

2.2.4 传输层的消息类型

2.2.4.1 显式消息

应用:非周期性从端数据的读写

特点:

①报文中包含地址项和服务请求(命令);

②通常用于两个站点之间的通用通信路径;

③面向逻辑连接的连接方式,点对点传输,请求对应响应;

图:显式消息封装部分的报文结构

上图中,Command的值为0x6F,指示该报文为SendRRData,其上半部分的结构为封装报文头结构,下半部分为命令特定数据域结构,与前文提到的报文结构基本无异。

2.2.4.2 隐式消息

应用:实时的IO应用数据交互

特点:

①报文中没有地址项,也没有服务请求(命令);

②通过Connection ID来确定任务目标;

③生产者与(一或多个)消费者之间的特殊通信路径;

④点对点或多播;

图:隐式消息封装部分的报文结构

上图的报文结构中,不含有封装协议报文头,且命令特定数据域中的地址项与数据均固定,通过Connection ID来标识访问的数据。

2.2.5 EtherNet/IP 应用层-CIP

图:CIP协议基本架构

基本原理:以是否存在实时性要求为依据,划分数据的优先级,区别对待不同优先级的数据。具体的协议内容,将单独成篇进行介绍。

2.3 EtherNet/IP 特点总结

①在标准以太网基础上建立,而不仅仅是与之兼容;

②多种数据传输速率:10、100、1000Mbit/s;

③可以使用标准基础架构来构建系统;

④可以使用IP路由器将网络构建为子网;

⑤使用IP寻址进行所有通信,完全支持跨子网的通信,因此网络中几乎没有节点数量限制;

⑥非实时通信和实时通信可以在同一子网中共存;

⑦支持协调驱动和运动控制;

⑧支持设备级环网(DLR),该环网通过介质冗余提供单容错能力;

⑨与其他上层协议(如HTTP,FTP,VOIP等)共存;

二、EtherNet/IP设备

1. EtherNet/IP 设备类型

图:EtherNet/IP设备类型与功能

为了方便设备厂商进行EtherNet/IP设备的开发,或是开发商选用合适的EtherNet/IP设备,ODVA为EtherNet/IP设备制定了一套明确的设备类型标准,每一个类型都界定了一个功能的范围:

Level 1:显示消息服务器

·仅用于显式消息;

·示例:程序上传、数据收集器、状态监视……

Level 2:I/O消息服务器

·类似于Level 1,但具有循环I/O消息;

·响应显式和隐式消息;

·示例:现场设备、旋转编码器、驱动器等;

Level 3:显式消息客户端/服务器

·类似于Level 1,但是有客户端用于显式消息;

·能发送、接收显式消息;

·示例:编码器、SCADA设备等;

Level 4:I/O消息客户端/服务器

·类似于Level 1、Level 2、Level 3,加上客户端用于隐式IO参考;

·可以发送和接收显式和隐式消息;

·示例:PLC、softPLC、I/O Scanner 路由器等;

2. EtherNet/IP 协议的实现方式

2.1硬件方式

①采用现有已经设计好的一些接口板卡。基本上无需关心硬件方面的内容,插入接口后使用厂商配备的软件即可进行EtherNet/IP通信;

②采用嵌入了EtherNet/IP协议栈的MCU。还需要对MCU的外围电路进行相应的设计,将MCU的功能从引脚中引出,即可进行EtherNet/IP通信;

③采用嵌入了EtherNet/IP协议栈的接口模块;与方案2)类似,需要设计相应的硬件电路,接口模块需要一个MCU对其进行主控才可进行EtherNet/IP通信;

④采用网关。类似于接口板卡,插入接口后使用厂商配备的软件即可进行通信,特点是其进行的是协议间的通信,并不单独针对EtherNet/IP协议。

2.2软件方式

集成EtherNet/IP协议栈到MCU中,即参考EtherNet/IP协议文档,自行编写代码至MCU中,或购买软件厂商相应的代码移植入MCU中。这样就可以进一步进行EtherNet/IP设备的开发。

2.3建议参考文档

①PUB00213R0_EtherNetIP_Developers_Guide.pdf

该文档并非是EtherNet/IP协议的详解,而是一个总结性的、概括性的、指导性的文档。文档概述了EtherNet/IP协议的基本内容,会给予开发者实现EtherNet/IP协议,或开发相应的EtherNet/IP设备时的各种建议。比如,从何处开始了解协议、协议的哪些条例需要注意、开发设备需要了解协议到何种程度、哪些步骤应该参考其它哪些文档等等等等。

图:文档目录

②PUB00070_Recommanded-Functionality-for-EIP-Devices-v10.pdf

该文档明确了各种不同EtherNet/IP设备所具备的具体功能细则,给EtherNet/IP设备开发者提供了一个重要的参考标准。

图:文档中的概述片段