你的位置:首页 > 新闻动态 > 公司新闻

Modbus协议的解析格式

Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus特点

Modbus具有以下几个特点:

(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。

(2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。

(3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。

modbus rtu功能码

1 功能码“02”:读1路或多路开关量状态输入

例如:主机要读取地址为01,开关量DI1—DI4的输入状态。

从机(PDM)数据寄存器的地址和数据为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

modbus rtu六种功能码详细解析

2 功能码“01”:读1路或多路开关量输出状态

例如:主机要读取地址为01,开关量DO1,DO2的输出状态。

从机(PDM)数据寄存器的地址和数据为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

modbus rtu六种功能码详细解析

3 功能码“03”:读多路寄存器输入

例如:主机要读取地址为01,起始地址为0116的3个从机寄存器数据。

从机(PDM)数据寄存器的地址和数据为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

modbus rtu六种功能码详细解析

4 功能码“05”:写1路开关量输出(“遥控”)

例1:开关量输出点DO1,其当前状态为“分”,主机要控制该路继电器“合”。

控制命令为:

“FF00”为控制继电器“合”;

“0000”为控制继电器“分”;

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

例2:开关量输出点DO2,其当前状态为“合”,主机要控制该路继电器“分”。

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

5 功能码“06”:写单路寄存器

例如:主机要把数据07D0,保存到地址为002C的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为002C的PDM表原存储信息为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

6功能码“10”:写多路寄存器

主机利用这个功能码把多个数据保存到PDM表的数据存储器中去。Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。这样PDM的存储器都是二个字节。由于Modbus通讯规约允许每次最多保存60个寄存器,因此PDM一次也最多允许保存60个数据寄存器。

例如:主机要把0064,0010保存到地址为002C,002D的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为002C/002D的PDM表内存储信息为:

modbus rtu六种功能码详细解析

主机发送的报文格式:

modbus rtu六种功能码详细解析

从机(PDM)响应返回的报文格式:

modbus rtu六种功能码详细解析