CIP (Common Industrial Protocol, 通用工业协议) 是由 ODVA 提出并维护的协议。CIP 适配 EhterNet/IP, DeviceNet, CompoNet 以及 ControlNet 等网络。这里仅叙述了基于EtherNet/IP 的 CIP 协议重点。
一:EtherNet/IP
EtherNet/IP 是基于标准以太网协议(IEEE 802.3)的技术,支持 TCP 与 UDP 传输协议,支持数种网络拓扑连接方式。
1. EtherNet/IP 通信类型
EtherNet/IP 定义了两种类型的通讯方式,显性(explicit)与隐形(implicit)。
CIP 消息类型 | CIP 通讯关系 | 传输协议 | 通讯类型 | 适用情形 | 举例 |
---|---|---|---|---|---|
显性 | 已连接或未连接 | TCP/IP | 请求/响应 交换 | 低时间相关性数据信息 | 读/写,配置字段 |
隐形 | 已连接 | UDP/IP | I/O 数据交换 | 实时 I/O 数据 | 实时控制数据 |
显性通信: 通过TCP传输数据,适合用于传递高准确性,低及时性的数据,例如配置设备信息,上传或下载程序。表格中CIP通讯关系中的 已连接与未连接 是CIP 协议的一个服务,完成该服务后,连接的双方各持一串号码,用该号码来完成后续的信息交流。
隐形通信: 通过UDP传输数据,适合用来传输高实时性的数据,例如马达控制,传感器数据。该通信方式需要提前建立CIP连接(详见后续)。
CIP 连接需要通过 Connection Manager(CM) 对象的ForwardOpen 服务来完成。客户端作为请求的发起方,请求中包含传输类,时间信息,电子密钥以及连接ID。当接收到ForwardClose请求或响应超时,清空连接信息。
对于隐形通信,其数据可以广播或发送给某特定地址。数据的发送必须包含对象的IP(单一IP或广播地址)以及 CIP 连接 ID。
二:CIP
ODVA 提供了七卷关于CIP网络库的指南,需要成为会员才能获取。
卷一:描述了CIP的通用对象库,设备信息库。
卷二:描述CIP与EtherNet/IP如何适配。
卷三:描述CIP与DeviceNet如何适配。
卷四:描述CIP与ControlNet如何适配。
卷五:描述CIP安全协议, CIP Safety Protocol。
卷六:描述CIP与CompoNet如何适配。
卷七:描述如何将 Modbus 设备接入 CIP 网络。
其总体格式如下:
CIP | 包含命令,具体执行对象信息 |
---|---|
EtherNet/IP | 包含通信对象,连接信息 |
TCP or UDP | 通信端口信息 |
IP | 双方IP地址信息 |
Ethernet | 双方物理地址信息 |
1. CIP 对象模型
每个CIP节点(node)都是一组对象(object)的集合。每个对象都代表了设备的某个特定组件,所有未被描述的对象,都无法通过CIP访问(没有定义当然没法访问)。CIP对象由 类(class),实例(instance),属性(attribute)构成。每个类可以有多个实例,每个实例可以有多个属性。(举例:一个类叫做 男人。这个 男人 类可以有实例 王二狗,李铁柱。王二狗 可以包含属性年龄,身高,体重。在读取或写入的数据的时候,协议中就要申明要操作的是哪个类的哪个实例的哪个属性。)
类(class)是一组代表相同系统组件的对象。实例(instance)是该类中的某个特定对象。每个实例可以有自己特有的属性。