1 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个字节,如图1所示:
图1: 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) 保留功能代码,由某些公司使用某些传统设备代码,不可作为公共用途。
按照应用深浅,可分为3个类别
1) 类别0,客户机/服务器最小可用子集:读多个保持寄存器(fc.3);写多个保持寄存器(fc.16)。
2) 类别1,可实现基本互易操作常用代码:读线圈(fc.1);读开关量输入(fc.2);读输入寄存器(fc.4);写线圈(fc.5);写单一寄存器(fc.6)。
3) 类别2,用于人机界面、监控系统例行操作和数据传送功能:强制多个线圈(fc.15);读通用寄存器(fc.20);写通用寄存器(fc.21);屏蔽写寄存器(fc.22);读写寄存器(fc.23) 1.5 Modbus TCP通讯应用举例
在读寄存器的过程中,以Modbus TCP请求报文为例,具体的数据传输过程如下: 1) Modbus TCP客户端实况,用Connect()命令建立目标设备TCP 502端口连接
数据通信过程 2) 准备Modbus报文,包括7个字节MBAP内请求; 3) 使用send()命令发送; 4) 同一连接等待应答;
5) 同recv()读报文,完成一次数据交换过程
6) 当通信任务结束时,关闭TCP连接,使服务器可以为其他服务
2 SIMATIC S7-PN-H冗余系统CPU集成PN口 Modbus/TCP通讯概述 2.1 S7-400 PN-H冗余系统CPU集成PN口 Modbus/TCP通讯机理概述
S7-400 PN-H冗余系统控制器是西门子推出的基于Profinet系统冗余的解决方案,其中每个CPU上集成了两个Profinet接口,如下图2所示:
图2:集成PN接口的S7-400 PN-H冗余系统
现在可以通过S7-400 PN-H冗余系统CPU集成的PN接口进行冗余的Modbus TCP通信,该解决方案由基于S7-300/400单站系统CPU集成PN口的Modbus/TCP软件包“ModbusTCP PN-CPU V2.4”发展而来,其通信网络架构如下图3所示:
图3:S7-400 PN-H冗余系统CPU集成PN口的Modbus/TCP网络架构
由基于S7-300/400单站系统CPU集成PN口的Modbus/TCP软件包“ModbusTCP PN-CPU V2.4”发展而来的S7-400 PN-H的Modbus/TCP软件包通讯机理及特点如下:
1) 对于通讯伙伴为单通信网卡(单边)的设备,需要在程序中分别调用2次modbus/tcp通讯 块,对应于PN-H CPU的两个机架CPU的一个进程,对于通信伙伴为双通信网卡(双边)的设备,需要程序中分别调用4次modbus/tcp通信块,其中一个机架CPU调用2次以匹配对方的冗余通信
2) 如果S7-400 PN-H CPU做Modbus/TCP Server,该解决方案能够允许通信伙伴通过任意一个机架CPU的PN口通信链路(图3中单边的链路为0A、1A;双边链路为0A、1A/0B、1B)建立通信及数据的一致性,链路的选择完全由客户端自行根据链路的通信状况决定,当任一链路中断、PN-H CPU冗余模式的切换均不会对通信造成任何影响
3) 如果S7-400 PN-H CPU做Modbus/TCP client,解决方案能够保证通过任意一个机架CPU的PN口通信链路(图3中单边的链路为0A、1A;双边链路为0A、1A/0B、1B)与通信伙伴建立通信及数据的一致性,当任一链路中断、PN-H CPU冗余模式的切换均不会对通信造成任何影响
4) 解决方案中提供了完整的TCP层及Modbus应用层的诊断
2.2 “ModbusTCP PN-CPU V2.4”软件选项包使用概述 2.2.1“ModbusTCP PN-CPU V2.4”块库使用说明
相关推荐: