西门子MODBUS TCP 通讯协议、自由格式通讯协议详解

01

一.MODBUS TCP 通讯概述

MODBUS TCP 结合了以太网物理网络和网络标准 TCP/IP 以及以 MODBUS 作为应用协议标准的数

据表示方法。MODBUS TCP 通信报文被封装于以太网 TCP/IP 数据包中,MODBUS 协议规范一帧数据的Zui大长度为 256 个字节。

MODBUS TCP/IP 的通信系统中有两种类型的设备:MODBUS TCP/IP 客户端和服务器设备。

MODBUS 客户端:

客户端(TCP Client)主动向服务器(TCP Server)发起连接请求,连接建立成功,仅允许客户端主动发起通讯请求。

以太网机型作为 MODBUS TCP 客户端时,通过 S_OPEN 指令建立 TCP 连接,通过 M_TCP 指令发起 MODBUS 请求。

MODBUS 服务器:

服务器主动监听 502 端口,等待客户端连接请求,连接建立成功,响应符合 Modbus TCP 协议规范的数据通讯请求。

以太网机型上电默认开启此服务,Zui大响应不超过 4 个 TCP 连接。



MODBUS 通讯功能码



以信捷PLC为例:以太网机型支持 Modbus 通讯功能码如下表所示:

02

自由格式通讯协议

基于以太网的自由通信分为两大类:TCP 和 UDP,以太网机型采用 TCP 方式通信时可以作为 TCP客户端(TCP 客户端),也可以作为 TCP 服务端(TCP 服务器)。

1、作为 TCP 客户端,主动与 TCP 服务器建立 TCP 连接,并绑定套接字 ID。

2、作为 TCP 服务器,等待 TCP 客户端与之建立 TCP 连接,并绑定套接字 ID。

3、使用 UDP,监听指定的本机端口,并绑定套接字 ID。

基于以上三种形式,可以实现以太网上的自由通信。自由格式通讯是以数据块的形式进行数据传送,受 PLC 缓存的限制,单次发送和接收的数据量Zui大为 1000 个字节。

自由格式通讯的关键参数:

数据缓冲方式:8 位、16 位

1、选择 8 位缓冲形式进行通讯时,通讯过程中寄存器的高字节是无效的,PLC 只利用寄存器的低字节进行发送和接收数据。

2、选择 16 位缓冲形式进行通讯时,PLC 将接收的数据,先低字节再高字节储存;PLC 发送数据时,先发送低字节再发送高字节。

3、接收数据包长度大于设定接收长度时,数据按 16 位存储方式存储。

商务达