工控机力控与MCGS以太网通讯方法 一、MODBUS/TCP通讯协议介绍 MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的 MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如 PLC’s,I/O模块,以及连接其它简单域 总线或 I/O模块的网关服务的. MODBUS/TCP 使 MODBUS_RTU协议运行于以太网,MODBUS TCP使用 TCP/IP和以太网在站点间传送 MODBUS报文,MODBUS TCP结合了以太网物理网络和网络标准 TCP/IP以及以 MODBUS作为应用协议标准的数据表示方法。MODBUS TCP通信报文被封装于以太网 TCP/IP数据包中。与传统的串口方式,MODBUS TCP插入一个标准的MODBUS报文到 TCP报文中,不再带有数据校验和地址。 1.1通讯所使用的以太网参考模型 Modbus TCP传输过程中使用了 TCP/IP以太网参考模型的 5层: 第一层:物理层,提供设备物理接口,与市售介质/网络适配器相兼容 第二层:数据链路层,格式化信号到源/目硬件址数据帧 第三层:网络层,实现带有 32位 IP址 IP报文包 第四层:传输层,实现可靠性连接、传输、查错、重发、端口服务、传输调度 第五层:应用层,Modbus协议报文. 1.2 Modbus TCP数据帧 Modbus数据在 TCP/IP以太网上传输,支持 Ethernet II和 802.3两种帧格式,Modbus TCP 数据帧包含报文头、功能代码和数据 3部分,MBAP报文头(MBAP、Modbus Application Protocol、Modbus应用协议)分 4个域,共 7个字节,如下图所示: 图 : MODBUS TCP报文 由于使用以太网 TCP/IP数据链路层的校验机制而保证了数据的完整性,MODBUS TCP 报文中不再带有数据校验”CHECKSUM”,原有报文中的“ADDRESS”也被“UNIT ID”替代而加在 MODBUS应用协议报文头中 1.3 Modbus TCP使用的通讯资源端口号 在 Moodbus服务器中按缺省协议使用 Port 502 通信端口,在 Modus客户器程序中设置任意通信端口,为避免与其他通讯协议的冲突一般建议 2000开始可以使用. 1.4 Modbus TCP使用的功能代码 按照使用的通途区分,共有 3种类型分别为: 1) 公共功能代码:已定义好功能码,保证其唯一性,由 Modbus.org认可; 2) 用户自定义功能代码有两组,分别为 65~72和 100~110,无需认可,但不保证代码使用唯一性,如变为公共代码,需交 RFC认可; 3) 保留功能代码,由某些公司使用某些传统设备代码,不可作为公...