首页 理论教育ModBus/TCP网络体系结构及通信

ModBus/TCP网络体系结构及通信

【摘要】:ModBus/TCP网络使用主/从网络结构进行工作,网络中的主节点负责控制网络的通信,并用轮询的方式对所有的从节点进行顺序“询问”。ModBus/TCP请求报文举例见表9-8。

1.ModBus/TCP网络的体系结构

ModBus/TCP的数据链路层仍然使用CSMA/CD媒质访问控制机制,到了应用层则采用Mod-Bus主/从式通信协议,该协议使数据通信具有了确定性。ModBus/TCP网络使用主/从网络结构进行工作,网络中的主节点负责控制网络的通信,并用轮询的方式对所有的从节点进行顺序“询问”。网络中的客户端发出的每个请求报文均有确定的应答,任意时刻网络上只有一个节点发送数据,于是避免了访问冲突,降低了在较大网络负荷时数据传输的通信延时。

服务器与现场设备之间的通信包括服务器端和客户端之间的通信、客户端和现场设备之间的通信。在进行通信的过程中,当服务器端发送请求报文时,可建立一个发送缓冲区,依次将从站地址、功能码、数据起始地址、数据、冗余校验等信息通过缓冲区构建一帧ModBus数据。再往后,将此帧数据发送至客户端,再由客户端通过ModBus协议转发至下位ModBus现场设备。服务器将数据帧发送到客户端的过程中使用TCP/IP通信协议进行工作。在服务器向客户端返回应答报文时,客户端要上行传送数据,则通过TCP/IP将数据传至服务器端,在服务器端也设置了接收缓冲区,进行数据帧的处理。

服务器和客户机的通信过程是通过客户端程序和服务器端程序基于TCP/IP通信协议进行的。ModBus/TCP网络通信采用TCP的可靠连接方式,通信发起和进行过程中的Socket套接字是基于TCP的流式套接字,服务器对每个客户的请求均用一个独立的线程来处理,这样可以提高通信效率,提高处理连接队列中待处理的服务请求的能力。

ModBus/TCP客户端与建立目标设备用Connect()命令建立目标设备TCP 502端口的连接数据通信的过程:准备ModBus报文,包括7B的MBAP在内的请求;使用send()命令发送;在同一连接等待应答;阅读报文,完成一次数据交换过程。当通信任务结束时,关闭TCP连接,使服务器可以为其他实体服务。

ModBus/TCP请求报文举例见表9-8。

表9-8 ModBus/TCP请求报文举例

978-7-111-38144-0-Chapter09-38.jpg

2.客户端/服务器通信模式

ModBus/TCP工业实时以太网采用客户端/服务器的模式交换实时数据信息。该模式下主要使用4种报文类型:ModBus Request(请求)、ModBus Confirmation(确认)、ModBus Indication(指示)和ModBus Response(响应)。

各种报文类型的功能是:

1)ModBus Request(请求):为客户端发起通信请求帧;

2)ModBus Confirmation(确认):客户端收到数据后的确认;

3)ModBus Indication(指示):服务器端收到客户端提出服务的请求确认;

4)ModBus Response(响应):服务器端对客户端服务请求做出响应,向客户端开始发送数据提供服务。