【曹俊义专栏】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个模拟量数据。

缺点:

实时性较差