03-EtherNet IP配置
本章节下载: 03-EtherNet IP配置 (267.37 KB)
EtherNet/IP(Ethernet/Industrial Protocol,以太网工业协议)是一种基于以太网和TCP/IP技术的工业网络控制技术,由ODVA组织定义并维护。EtherNet/IP网络在物理层和数据链路层使用以太网协议,网络层和传输层使用TCP/IP协议族,应用层使用CIP(Common Industrial Protocol,通用工业协议)。EtherNet/IP技术在高负载的工业网络通信中能够满足实时性和确定性的需求,目前在工业以太网络中被广泛应用。
EtherNet/IP具有如下技术优势:
· 开放性:EtherNet/IP使用TCP/IP协议栈,因此它可以使用现有的标准以太网硬件,无缝集成到现有的工业以太网络中。
· 标准化:EtherNet/IP存在由ODVA组织定义的公认标准,为不同的工业设备和系统提供了统一的通信标准,不同厂商之间的设备仍可以实现EtherNet/IP通信。
· 可扩展性:EtherNet/IP的应用层CIP协议是一个可扩展的协议,可以根据不同的应用场景和需求进行扩展和定制。
如图1-1所示,EtherNet/IP的物理层、数据链路层、传输层均与标准以太网相同,特点在与其在传输层之上添加了一个封装层,用于对来自应用层的CIP数据进行统一格式的封装。
图1-1 EtherNet/IP网络模型
EtherNet/IP定义了两种通信类型:显式(explicit)和隐式(implicit)。
· 显式通信:通过TCP传输数据,适用于传递对准确性要求高,但对及时性要求低的数据。例如配置设备信息、上传或下载程序等场景。
· 隐式通信:通过UDP传输数据,适用于对及时性要求高的数据,例如I/O数据交互等场景。隐式通信需要提前建立CIP连接,CIP连接是CIP协议的一个服务,完成该服务后,连接的双方各持一个Connection ID,用该ID来完成后续的信息交流。
EtherNet/IP显式通信使用客户机/服务器模型,在EtherNet/IP网络中工业控制设备(上位机)作为客户机,外围的I/O传感器、阀门、工业交换机或其他测量设备等(下位机)作为服务器,只有客户机发送请求,服务器对请求进行响应,如图1-2所示。
图1-2 EtherNet/IP显式通信模型
EtherNet/IP隐式通信使用生产者/消费者模型,通过Input和Output报文来进行通信,上位机通过Output报文请求想要获取的数据,下位机收到上位机的请求后通过Input报文回应数据,如图1-3所示。隐式通信的报文相对于显式报文更简单,减少了报文中数据以外的额外开销,拥有更高的通信效率,但是无法提供数据可靠性。
图1-3 EtherNet/IP隐式通信模型
显式通信方式下,EtherNet/IP在CIP协议数据上封装的报文格式如图1-4所示。
显式通信的EtherNet/IP封装包含封装头以及封装数据两部分,封装头各字段的解释如下:
· Command:EtherNet/IP命令,描述报文的功能和作用,长2字节。
· Length:封装头中后续数据的长度,单位为字节,本字段长2字节。
· Session Handle:TCP会话句柄,长4字节。
· Status:EtherNet/IP命令执行状态,长4字节。
· Sender Context:描述发送者信息的上下文,长8字节。
· Options:可选字段,最长4字节。
封装数据各字段的解释如下:
· Item Count:封装数据中item的总个数。
· Address Item:目的地址信息,包含地址类型、地址长度以及地址具体数值。
· Data Item:CIP协议数据信息,包含数据类型、数据长度以及具体数据。
隐式通信方式下,EtherNet/IP在CIP协议数据上封装的报文格式如图1-5所示。
隐式通信的EtherNet/IP封装仅包含封装数据,各字段的解释如下:
· Item Count:封装数据中item的总个数。
· Address Item:目的地址信息,包含地址类型、地址长度、CIP连接ID以及地址具体数值。EtherNet/IP在隐式通信方式下通过连接ID来确定通信的目标。
· Data Item:CIP协议数据信息,包含数据类型、数据长度以及具体数据。CIP协议的具体数据包括CIP命令、请求路径等内容。
每个CIP协议的节点都是一组对象(object)的集合,CIP协议的通信目标都是一个个具体的对象。而设备可以将本身的一些特定组件定义为不同的对象,以此实现EtherNet/IP通信。
对象分为三个维度,类(class)、实例(instance)和属性(attribute),每个节点上可以存在多个类,每个类可以包含多个实例,每个实例可以包含多个属性,其逻辑关系如图1-6所示。
图1-6 CIP对象模型示意图
目前,H3C工业交换机仅支持作为下位机进行EtherNet/IP通信。
配置本功能后,H3C设备可以与上位机建立TCP或UDP连接,并在此连接基础上承载EtherNet/IP通信。上位机通过EtherNet/IP通信可以对H3C设备的数据或状态进行读写控制。H3C设备建立TCP连接使用的端口号为44818,建立UDP连接使用的端口号为2222。
如果网络中存在误操作或恶意攻击时,随意修改H3C设备的状态将会对整个网络造成严重的安全隐患,此时可以将设备上EtherNet/IP的工作模式切换为只读模式,使得控制设备只能通过EtherNet/IP通信读取设备上的信息。
H3C设备使用VLAN 1作为EtherNet/IP的管理VLAN来与上位机通信,所以在开启设备的EtherNet/IP通信功能之前,请先设置VLAN接口1的IP地址。
上位机需要读/写H3C设备端口的数据时,可以执行display ethernet-ip information命令,根据端口的ID来在H3C设备发送的数据中区分那些数据属于上位机需要获得的端口信息数据。
目前仅支持上位机同时对单台H3C设备的128个端口的信息进行读取和修改。
某些CIP命令要求EtherNet/IP通信建立特定的传输层连接,具体的对应关系请参考表1-1。
表1-1 CIP命令代码与需求的连接方式对应表
|
命令代码 |
名称 |
使用的连接方式 |
|
0x0000 |
NOP |
TCP |
|
0x0004 |
ListServices(列表服务) |
TCP或UDP |
|
0x0063 |
ListIdentity(列表标识) |
TCP或UDP |
|
0x0064 |
ListInterfaces(列表接口) |
TCP或UDP |
|
0x0065 |
RegisterSession (注册会话) |
TCP |
|
0x0066 |
UnRegisterSession (非注册会话) |
TCP |
|
0x006F |
SendRRData (发送数据) |
TCP |
|
0x0070 |
SendUnitData (发送单元数据) |
TCP |
|
0x0072 |
IndicateStatus (指示状态) |
TCP |
|
0x0073 |
Cancel (取消) |
TCP |
(1) 进入系统视图。
system-view
(2) 开启设备的EtherNet/IP通信功能。
ethernet-ip enable
缺省情况下,设备的EtherNet/IP通信功能处于关闭状态。
(3) (可选)配置EtherNet/IP的工作模式为只读。
ethernet-ip working-mode read-only
缺省情况下,EtherNet/IP的工作模式为读写模式,即通过EtherNet/IP协议,设备支持对自身状态进行读(读取设备信息)写(修改设备状态)。
在完成上述配置后,在任意视图下执行display命令可以显示配置后EtherNet/IP的相关信息。
表1-2 EtherNet/IP显示和维护
|
操作 |
命令 |
|
显示端口对应的Port ID |
display ethernet-ip information interface interface-type interface-number |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
