EtherNet/IP是一个工业以太网协议,它结合标准协议TCP和UDP,在以太网上基础上的通用工业协议(CIP)。
该协议由ODVA维护。ODVA还管理其他CIP实现,如DeviceNet。
协议栈和源代码下载 www.jngbus.com
在开发Ethernet/Ip,我们只需要懂得socket通讯即可。
只要是PC平台没问题,移植到arm(如STM32F407)和linux那都是小意思。因为这里面就是对char* 二进制的操作,跟编程语言无关。
把协议结构体处理。
读取欧姆龙PLC数据
欧姆龙PLC
把数据写入char*当中
按照标准一点一点完善,我们将会支持功能:
- Class 3类服务器(连接的显式消息)
- Class 1 类 I/O(已连接)服务器(隐式消息)
- UCMM(未连接)服务器(未连接的显式消息)
- 可扩展用于应用程序和配置文件对象
- 显式连接数量:可配置(受 RAM 限制)
- 隐式连接数量:可配置(受 RAM 限制)
- 支持的连接类型:Exclusive Owner, Input Only, Listen Only
- 通过 DHCP 或静态 IP 地址进行 IP 分配
- 支持单端口设备或多端口设备
- 支持的链路速度 :10 Mbit/s、100 Mbit/s、1000 Mbit/s
- 支持LargeForwardOpen服务(数据大小>511字节的连接)
- 支持 DLR 信标(DLR Beacon-based)的环形节点,但需要特殊硬件和额外的 DLR 协议栈
- 具有至少具有两个外部端口的以太网交换机的设备支持基于 DLR 通知(DLR Announce-based)的环网节点
- 单端口和多端口设备支持地址冲突检测 (ACD)
CIP提供了一系列标准的服务,提供“隐式”和“显示”方式对网络设备中的数据进行访问和控制。 CIP数据包必须在通过以太网发送前经过封装,并根据请求服务类型而赋予一个报文头。这个报文头指示了发送数据到响应服务的重要性。通过以太网传输的CIP数据包具有特殊的以太网报文头,一个IP头、一个TCP头和封装头。封装头包括了控制命令、格式和状态信息、同步信息等。这允许CIP数据包通过TCP或UDP传输并能够由接收方解包。相对于DeviceNet或ControlNet,这种封装的缺点是协议的效率比较低。以太网的报文头可能比数据本身还要长,从而造成网络负担过重。因此,EtherNet/IP更适用于发送大块的数据 ( 如程序 ) ,而不是DeviceNet和ControlNet更擅长的模拟或数字的I/O数据。
在传输协议之上有加密协议,经过它,通用工业协议(CIP)可以在TCP/IP和UDP/IP上变换。CIP作为大型的独立于网络的标准,已经与ControlNet和DeviceNet一起使用了很多年。 所以ControlNet, DeviceNet和EtherNet/IP具有相同的应用协议,因而使用通用的设备规范和目标库。这就使得不同厂商的复杂设备间能够即插即用地进行操作。EtherNet/IP倾向用于网络实时控制应用。借助CIP,以太网可以集成到设备级,能给用户提供诸多优势。通用配置、跨越几个网络及收集和控制数据、TCP/IP 连到全球互联网或公司内部网,在所有工作级上提供连续的信息流。