暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

全网最通俗易懂的Modbus功能码详解(三)

紫金桥软件 2025-04-01
13

快速复习

前两篇文章,我们用“人话”分别聊了Modbus协议中用于读取和写入的主要功能码:

● 读取数据的功能码:

○ 01(读线圈):读取开关量状态。

○ 02(读离散输入):读取外部开关信号。

○ 03(读保持寄存器):读取设备的配置参数。

○ 04(读输入寄存器):读取设备实时测量数据。

● 写入数据的功能码:

○ 05(写单个线圈):控制一个开关量的状态。

○ 06(写单个保持寄存器):调整单个参数值。

○ 15(写多个线圈):一次性控制多个开关量。

○ 16(写多个保持寄存器):同时修改多个参数值。

今天,我们重点深入介绍功能码07和08,了解它们在诊断和监控中的具体作用。


Modbus功能码人话版

功能码07 - 读异常状态

(Read Exception Status)

功能码07主要用于诊断设备的异常状态,是一种快速获取设备健康状况的方法。
● 功能说明: 设备返回一个单字节(8位)的数据,每一位表示一种异常状态,一般0代表无异常,1代表有异常。具体每个位的定义需要查阅设备手册。

● 常见应用场景:

○ 检查设备是否存在过载、过热、通信错误等常见故障。

○ 快速监控多个报警状态,适合对状态简单的设备进行高效检查。
● 示例: 假设返回的字节是0b00000101,表示第0位和第2位异常状态为“1”,即对应的两种故障存在。秉承着说人话的宗旨,这里插播一个小说明,0b00000101的前缀0b代表这是一个二进制数,位数是从右向左编号为第0位至第7位。
● 限制:功能码07仅能提供简单的状态信息,无法提供具体的故障详情。

功能码08 - 诊断

(Diagnostics)

功能码08是一个强大的诊断工具,帮助用户测试设备通信、复位统计数据以及其他诊断操作。
功能码08的实际操作依赖于子功能码,每个子功能码代表一个特定的诊断操作,长度两个字节。
08的子功能码众多,且由于长度是两个字节,能够表示2的16次方即65536种可能,这赋予了设备厂商极大的可拓展性,这里我们介绍几个常用的子功能码:

子功能码0x0000 - 回送测试

(Return Query Data)

这个子功能码用于通信测试,就是看主从设备之间是否成功连接。从站会将接收到的数据原样返回,就好像对着山谷喊话得到的回声。

子功能码0x0001 - 重置通信统计计数器

(Restart Communications Option)

另一个叫法是重启通信,对从机的串行线端口进行初始化和重启,并清除通信事件计数器,还可选择是否清除诊断寄存器。一般当需要重新开始统计通信错误次数时使用。

子功能码0x0002 - 返回诊断寄存器

(Return Diagnostic Register)

返回设备的诊断寄存器内容,用于检查当前设备的诊断状态。具体返回内容由设备厂商制定。
那么诊断寄存器又是什么呢?

它是一个设备内部的16位寄存器。设备制造商可以根据需求选择是否实现它。事实上很多Modbus设备由于功能单一或成本考量,并没有实现16位诊断寄存器,那么自然也就无法使用子功能码02了。

子功能码0x0004 - 强制监听模式

(Force Listen Only Mode)

将从站设备置于仅监听模式,停止正常通信,直到设备重启。

它的作用有很多,例如维护人员可以在不关闭系统的情况下更换设备,将待更换的设备切换到监听模式,避免在更换过程中干扰系统运行。再例如进行故障诊断时,通过设置监听模式来排查和定位问题。

同样的,这个功能比较进阶,许多设备完全不支持子功能码04。

请注意

○ 使用功能码08时,必须确保子功能码与设备支持的功能一致,具体内容需参考设备手册。主站发送了从站不支持的报文,从站只能说臣妾做不到啊!

○ 回送测试(子功能码0x0000)是最常用的功能。


极简总结

● 功能码07(读异常状态):

○ 提供设备的简单异常状态信息,适用于快速监控。

○ 返回单字节数据,每个位表示一种状态。

● 功能码08(诊断):

○ 通过子功能码实现多种诊断操作,如通信测试、复位统计、强制监听模式等。

○ 最常用的子功能码是00(回送测试),用于验证通信。
通过三篇文章,我们尽力用真正的人话介绍了Modbus协议中最常用的功能码01~08、15、16。除了这些之外,Modbus协议还定义了一些其它的标准功能码,多用于特定场景如文件传输、事件日志分析等。如果实际使用中用到了这些不常用的功能码,设备手册中都会有相应的说明。
下一期我们会来聊一聊Modbus的报文,敬请期待~

往期

回顾





文章转载自紫金桥软件,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论