【曹俊义专栏】Modbus 在TCP/IP网络上的实现
Modbus协议是一个开发性协议
IANA(Internet Assigned Numbers Authority 互联网编号分配机构)已为 Modbus协议指配TCP / UDP 知名端口502
Modbus协议是一个标准协议
IETF(The Internet Engineering Task Force)国际互联网工程任务组织提议将Modbus协议作为因特网标准
协议是自动化领域中广泛使用“实事”标准
以太网(快速以太网)
是目前最流行的LAN技术
IEEE802.3中定义的以太网和以太网II
TCP\IP模型
描述因特网协议的组合
Modbus TCP/IP通信结构:
Modbus TCP/IP通信设备:
TCP/IP网络的Modbus TCP/IP客户机和服务器设备互连设备,如:在TCP/IP网络和串行链路子网之间互连的网桥、路由器或网关等设备。
即Modbus TCP/IP基本设备包括:Modbus TCP/IP Server、Modbus TCP/IP Client、以及其他相关以太网设备,如路由器和交换机等。
Modbus TCP/IP的数据帧:
l 通过TCP/IP栈进行传输
l 支持以太网II和IEEE 802.3帧,默认帧为以太网II帧
l 以太网II是默认的 TCP/IP 网络帧格式
l Modbus RTU基础上增加一个MBAP报文头,但是取消了Modbus 节点地址和CRC16校验。
MBAP报文头:
整个Modbus TCP/IP MBAP报文头包含有7个字节的数据,分别说明如下:
1、 事务处理标识符,如果ADU由Client发出,则标识符为Modbus请求事务处理的识别;Server从请求中重新复制;占用2个字节。
2、 协议标识符:0为Modbus协议,该标识符由Client发起,Server从请求中重新复制;占用2个字节。
3、 长度:如报文由Client发起则长度为整个请求报文的长度。若由Server发出,则为Server响应的报文长度;占用2个字节
4、 单元标识符:占用一个字节,该标识符用于识别串行链路上的远程从站。
Modbus TCP/IP报文传输的服务结构:
Modbus TCP/IP通讯应用层:
Modbus客户机
允许用户应用控制与远程设备的信息交换。Modbus客户机根据用户应用向Modbus客户机接口发送要求中所包含的参数来建立一个Modbus请求。
Modbus客户机接口
Modbus客户机接口提供一个接口,使得用户应用能够生成各类Modbus服务的请求,该服务包括对Modbus应用对象的访问
Modbus服务器
在收到一个Modbus请求以后,模块激活一个本地操作进行读、写、或完成其他操作。
TCP管理层:
管理通信的建立和结束以及管理在所建立的TCP连接上的数据流。
连接管理:在客户机和服务器的Modbus模块之间的通信需要使用TCP连接管理模块,负责全面管理报文传输TCP连接。
访问控制:在某些至关重要的场合,必须禁止无关的主机对设备内部数据的访问。
TCP/IP栈层:
可以对TCP/IP的栈进行参数配置,以适用于不同的产品或系统特定的约束条件,来进行数据流控制,地址管理和连接管理,使用BSD套接字接口来管理TCP连接。
TCP连接管理:
Modbus通信需要建立客户机和服务器之间的TCP连接
连接的建立可以由用户应用模块直接实现,也可以由TCP连接管理模块自动完成。
在第一种情况下,用户应用模块必须提供应用程序接口,以使完全管理连接。这种方式为应用开发人员提供了灵活性,但需要TCP/IP机制方面的专长。
在第二种情况下,TCP连接管理完全不出现,用户应用仅需要发送和接收Modbus 报文,TCP连接管理模块负责在需要时建立新的TCP连接。
Modbus TCP/IP通讯的建立:
Modbus报文传输服务必须在502端口上提供一个监听套接字,允许接收新的连接和与其他设备交换数据
当报文传输服务需要与远程服务器交换数据时,它必须与远程502端口建立一个新的客户机连接,以便于远距离地交换数据。本地端口必须高于1024,并且对每个客户机的连接各不相同
完整的Modbus TCP/IP通信过程:
客户机建立一个连接,向服务器发送3个Modbus请求,而不等待第一个请求是否有响应。在收到所有的应答后,客户机正常的关闭连接。
Client的通讯过程如下:
(1) 用Connect命令建立与目标设备的连接
(2) 准备Modbus报文包括7个字节的MBAP在内的请求
(3) 使用Send命令发送报文
(4) 在同一连接下等待应答响应
(5) 用Rec命令读取报文,完成一次数据交换过程。当通信任务结束时,关闭TCP连接。使Modbus TCP服务器可为其他客户机服务。
Modbus TCP/IP优缺点:
优点:
(1) 用户可以免费获得协议及样板程序
(2) 网络实施价格低廉,通用网络部件均可使用
(3) 易于集成不同的设备,几乎可以找到任何现场总线连接到Modbus TCP的网关。
(4) 网络的传输能力,每秒可传输4000个报文,每个报文125个字,故相当于每秒可传输500000个模拟量数据。
缺点:
实时性较差