EtherNet/IP网络模型
一、常识入门
0.为什么需要CIP协议
- CIP协议(Common Industrial Protocol)是一种工业通信协议,旨在实现不同设备、控制器和系统之间的数据交换和控制。CIP协议的使用有以下几个原因:
- 统一标准:CIP协议是一个公认的标准,它为不同的工业设备和系统提供了一致的通信标准,这样不同设备之间的通信就可以更加方便和高效。
- 数据交换:在工业环境中,设备和系统需要共享数据,以便实现更高效的生产流程。CIP协议提供了一种可靠的数据交换方式,使设备和系统之间可以实时地交换数据。
- 控制和监测:CIP协议不仅可以用于数据交换,还可以用于控制和监测工业设备和系统。使用CIP协议,工业系统可以实现远程控制和监测,提高生产效率和可靠性。
- 安全性:CIP协议提供了一些安全功能,包括身份验证和数据加密等。这些功能可以保护工业设备和系统的安全性,避免因未经授权的访问或攻击而导致的损失。
因此,CIP协议在工业自动化和控制系统中得到了广泛的应用,它提供了一种可靠的通信和控制方式,帮助工业系统实现更高效、更安全和更可靠的运行。
1.CIP协议是什么
- CIP协议是“Common Industrial Protocol”的缩写,它是一个由罗克韦尔自动化公司(Rockwell Automation)开发的用于工业自动化控制系统(如PLC,工业网络等)通信的开放性协议。
- CIP协议是一种基于以太网技术的协议,它提供了一种标准的方式来管理工业设备之间的通信和数据交换。它可以处理不同类型的数据和消息,如控制数据、状态数据、诊断数据、设备标识和配置数据等。CIP协议还提供了一种简单的方法来配置和管理工业网络,包括以太网、控制网和设备网等。
- CIP协议是一个非常灵活和可扩展的协议,它支持多种不同的数据传输方式,如广播、多播和单播等。CIP协议还可以扩展到不同的物理层和传输层协议,如TCP/IP、UDP、DeviceNet、ControlNet和EtherNet/IP等。
总的来说,CIP协议是一个非常重要的工业自动化控制协议,它提供了一个标准的方式来实现设备之间的通信和数据交换,使得工业自动化控制系统更加可靠、高效和灵活。
2.CIP协议有以下几个特点:
- 开放性:CIP协议是一种开放性协议,可以在不同的硬件和软件平台上实现,并且可以扩展到不同的物理层和传输层协议。
- 灵活性:CIP协议可以处理不同类型的数据和消息,如控制数据、状态数据、诊断数据、设备标识和配置数据等,同时也支持多种不同的数据传输方式,如广播、多播和单播等。
- 可靠性:CIP协议提供了一种可靠的数据传输机制,确保了数据的完整性和可靠性。
- 安全性:CIP协议提供了一种安全的数据传输机制,通过认证和加密等措施保护了数据的机密性和安全性。
- 易用性:CIP协议提供了一种简单易用的方法来配置和管理工业网络,包括以太网、控制网和设备网等。
- 可扩展性:CIP协议是一个可扩展的协议,可以根据不同的应用场景和需求进行扩展和定制。
综上所述,CIP协议是一个非常重要的工业自动化控制协议,它具有开放性、灵活性、可靠性、安全性、易用性和可扩展性等特点,为工业自动化控制系统的通信和数据交换提供了一种标准的方式。
3.CIP协议报文通信
- CIP协议(Common Industrial Protocol)是用于工业控制系统的通信协议。在CIP协议中,有两种主要类型的报文:显性报文和I/O报文。
- 显性报文是一个数据结构,它包含了要发送或接收的数据的详细描述,以及用于标识这些数据的特定地址。显性报文允许控制器和设备之间进行更复杂的通信,例如读取或写入特定的寄存器或内存地址。
- I/O报文则是一个更简单的数据结构,用于直接传输输入或输出数据。这种报文不需要特定的地址或描述信息,因为数据的含义已经预定义。I/O报文通常用于在控制器和设备之间传输实时的控制数据,例如传感器读数或控制指令。
总的来说,显性报文提供了更高级别的通信功能,而I/O报文则提供了更快速、更直接的数据传输方式。具体使用哪种报文类型取决于特定的应用需求。
4.CIP Extension
- CIP协议,之外还有CIP Safety, CIP security, CIP Sync 和CIP Motion等协议。
- CIP Safety用于检测CIP网络是否出现网络错误,用于报警提示,提供密码机制限制用户配置设备。
- CIP Security使用TLS加密协议来传输数据。
- CIP Sync的一个典型应用是时间戳传感器输入,分布式时间触发输出和分布式运动。
- CIP Motion是一个专门针对电机驱动的协议,该协议提供了几种不同的电机控制方式.
5.CIP协议与EtherNet/IP关系
- CIP(通用工业协议)是EtherNet/IP网络中的应用层协议,它提供了一种标准化的通信机制,用于在工业自动化系统中交换数据和控制信息。CIP定义了一组对象模型和服务,这些对象和服务可以用于配置和控制EtherNet/IP设备。
- CIP协议是在ODVA(开放型工业自动化联盟)标准下开发的,该联盟致力于促进工业自动化技术的标准化和互操作性。CIP协议支持面向对象的通信,使用基于TCP/IP的EtherNet/IP网络进行通信,并能够与其他工业控制网络集成,例如ControlNet和DeviceNet。
- 在EtherNet/IP网络中,CIP协议使用TCP/IP协议栈进行通信,可以通过IP地址和MAC地址进行设备标识,并支持多播和广播通信。CIP协议还提供了一组服务,例如数据传输、设备识别、连接管理和安全性等,以满足工业自动化应用的需求。
- 因此,CIP协议是EtherNet/IP网络中的重要组成部分,它提供了一种通用的、标准化的通信机制,可以用于在工业自动化系统中实现数据交换和控制。
6.EtherNet/IP网络模型
- EtherNet/IP是一种基于以太网的工业控制网络协议,它支持面向对象的通信,可以与其他工业控制网络集成,例如ControlNet和DeviceNet。EtherNet/IP协议使用TCP/IP协议栈进行通信,因此它可以使用标准以太网硬件,并能够在互联网上进行广域网通信。
- EtherNet/IP网络模型包括三层:应用层、传输层和网络层。在应用层,EtherNet/IP使用CIP(通用工业协议)作为其通信协议。CIP提供了一组对象模型和服务,这些对象和服务可以用于配置和控制EtherNet/IP设备。传输层使用TCP协议提供可靠的通信服务,确保数据的正确传输。网络层使用IP协议将数据包从源设备传输到目标设备。
- 在EtherNet/IP网络模型中,设备可以通过TCP/IP网络地址进行标识。设备可以使用IP地址和MAC地址进行识别,并且可以使用DHCP进行自动配置。EtherNet/IP还支持多播和广播通信,以及对数据的QoS(服务质量)控制。
- 总之,EtherNet/IP网络模型提供了一种可靠和高效的通信方式,可以用于工业自动化和控制应用中。
在这里插入图片描述
二、EtherNet/IP网络模型
EtherNet/IP 是基于标准以太网协议(IEEE 802.3)的技术,支持 TCP 与 UDP 传输协议,支持数种网络拓扑连接方式。
1. EtherNet/IP 通信类型
EtherNet/IP 定义了两种类型的通讯方式,显性(explicit)与隐形(implicit)。
- 显性通信: 通过TCP传输数据,适合用于传递高准确性,低及时性的数据,例如配置设备信息,上传或下载程序。表格中CIP通讯关系中的 已连接与未连接 是CIP 协议的一个服务,完成该服务后,连接的双方各持一串号码,用该号码来完成后续的信息交流。
- 隐形通信: 通过UDP传输数据,适合用来传输高实时性的数据,例如马达控制,传感器数据。该通信方式需要提前建立CIP连接(详见后续)。
CIP 连接需要通过 Connection Manager(CM) 对象的ForwardOpen 服务来完成。客户端作为请求的发起方,请求中包含传输类,时间信息,电子密钥以及连接ID。当接收到ForwardClose请求或响应超时,清空连接信息。
对于隐形通信,其数据可以广播或发送给某特定地址。数据的发送必须包含对象的IP(单一IP或广播地址)以及 CIP 连接 ID。
其总体格式如下:
2. EtherNet/IP 格式
下图为EtherNet/IP的一般结构,EtherNet/IP 为 传输层中的内容。EtherNet/IP 可分为两个部分:封装头部,以及封装数据。CIP指令包含于封装数据中。
下图为EtherNet/IP的头部格式,其中包括指令,长度信息,会话句柄,状态,等
3. EtherNet/IP 主要指令
设备发现 (ListIdentity Command),该指令通过UDP 广播发送给所有网络中的设备,接收到消息并且支持EtherNet/IP的设备会返回自身的身份信息。
注册会话 (RegisterSession/UnRegisterSession Commands),该指令用于注册或注销会话。会话注册之后,设备才能够进行数据交换,两台设备之间同时存在一组会话。发起请求后,服务器会返回一个Session Handle,后续交流需要使用该Session Handle 的值方可交流。
SendRRData/SendUnitData Commands,SendRRData 用于发送未建立CIP连接的显性数据,SendUnitData用于发送连接了的显性数据。发送RRdata时需要使用Sender Context,发送UnitData时则不需要。
4. EtherNet/IP 封装数据一般格式
一般都是两个Item,一个地址项,一个数据项,随后是具体CIP命令。每个项的前2bytes用于申明该项的类型,后2bytes用于申明该项值的长度。
5. 封装数据的使用
5.1 显性信息传输 (explicit Messaging)
显性传输分为 已连接与未连接传输。其区别在于,建立了连接之后,设备会保留管理连接所需要的资源,可以提高设备响应效率。隐藏未连接的显性传输通常仅在应用程序要求不规则且不频繁的情况下使用。
下图为WireShark 实例
在下图中,CIP 协议由服务请求,请求对象类型,对象实例构成,最后是请求的数据,这里Wireshark自动识别出了数据格式符合CIP connection manager的格式。在其它环境下,数据值可能是厂家自行设定的,Wireshark不一定能识别出来,就会显示一串十六进制值。
5.2 隐性信息传输 (implicit / I/O Messaging)
I/O 信息基于UDP/IP 发送,强调高实时性,该传输方式不需要封装头部,其格式如下所示。
下图时WireShark 实例,请对照上图。
其中CIP Sequence Count,在一般情况不影响设备的交流,该项是用于CIP Safety 使用的。