专业知识  Professional knowledge
ModbusRTU的几种常用功能码介绍及使用
2022-05-04

Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。

目前,在RS232/RS485通讯过程中, 更是广泛采用这种规约。

常用的MODBUS 通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUS RTU规约。

在实际的应用过程中,为了解决某一个特殊问题,人们喜欢自己修改MODBUS规约来满足自己的需要(事实上,人们经常使用自己定义的规约来通讯,这样能解决问题,但不太规范)。更为普通的用法是,少量修改规约,但将规约格式附在软件说明书一起,或直接放在帮助中,这样就方便了用户的通讯。


ACRXXXE系列仪表使用的是MODBUS-RTU通讯协议,MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。MODBUS协议在一根通讯线上 使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。

MODBUS协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。

Modbus具有以下几个特点:

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

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

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


ModbusRTU的功能码使用(以下数据均使用16进制)

1、功能码01:读1路或多路开关量线圈输出状态

例如:主机要读取地址为01,开关量DO1,DO2的输出状态。
从机(PDM)数据寄存器的地址和数据为:


主机发送的报文格式:


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



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

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

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


主机发送的报文格式:

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


3、功能码03:读多路寄存器

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


主机发送的报文格式:



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



4、功能码05:写1路开关量输出

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

控制命令为:

“FF00”为控制继电器“合”;
“0000”为控制继电器“分”;
主机发送的报文格式:



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

与主机发送的报文格式及数据内容完全相同。
例2:开关量输出点DO2,其当前状态为“合”,主机要控制该路继电器“分”。


主机发送的报文格式:


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

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


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

例如:主机要把数据1E34保存到地址为000B的从机寄存器中(从机设备地址为01),此数据将覆盖寄存器地址里原来的存储信息。

主机发送的报文格式:




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

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


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

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

例如:主机要把数据2D7A、42B1、15E8保存到地址为002A、002B、002C的从机寄存器中去(从机设备地址为01)。


主机发送的报文格式:


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


附:ModbusCRC16校验算法


为客户服务是格芬存在的唯一理由
客户需求是格芬发展的原动力
:广州市番禺区市莲路240号百众创意园3栋
:18520481137,18688118080微信同号
:020-34702140转808
地址:广州市番禺区市莲路新桥段百众创意园三栋 电话:020-34702140
广州格芬电子科技有限公司 All Rights Reserved 粤ICP备2021023507号