快速复习
● 读取数据的功能码:
○ 01(读线圈):读取开关量状态。
○ 02(读离散输入):读取外部开关信号。
○ 03(读保持寄存器):读取设备的配置参数。
● 写入数据的功能码:
○ 05(写单个线圈):控制一个开关量的状态。
○ 06(写单个保持寄存器):调整单个参数值。
○ 15(写多个线圈):一次性控制多个开关量。
今天,我们重点深入介绍功能码07和08,了解它们在诊断和监控中的具体作用。
Modbus功能码人话版
功能码07 - 读异常状态
(Read Exception Status)
● 常见应用场景:
○ 检查设备是否存在过载、过热、通信错误等常见故障。
功能码08 - 诊断
(Diagnostics)
子功能码0x0000 - 回送测试
(Return Query Data)
子功能码0x0001 - 重置通信统计计数器
(Restart Communications Option)
子功能码0x0002 - 返回诊断寄存器
(Return Diagnostic Register)
它是一个设备内部的16位寄存器。设备制造商可以根据需求选择是否实现它。事实上很多Modbus设备由于功能单一或成本考量,并没有实现16位诊断寄存器,那么自然也就无法使用子功能码02了。
子功能码0x0004 - 强制监听模式
(Force Listen Only Mode)
它的作用有很多,例如维护人员可以在不关闭系统的情况下更换设备,将待更换的设备切换到监听模式,避免在更换过程中干扰系统运行。再例如进行故障诊断时,通过设置监听模式来排查和定位问题。
请注意
○ 使用功能码08时,必须确保子功能码与设备支持的功能一致,具体内容需参考设备手册。主站发送了从站不支持的报文,从站只能说臣妾做不到啊!
○ 回送测试(子功能码0x0000)是最常用的功能。
极简总结
● 功能码07(读异常状态):
○ 提供设备的简单异常状态信息,适用于快速监控。
● 功能码08(诊断):
○ 通过子功能码实现多种诊断操作,如通信测试、复位统计、强制监听模式等。
往期
回顾

