waa123456
和各位大佬请教一下:
我这和制冷机modbus RUT通讯,能读到开关量,却读不到模拟量
各种数据类型试了都读不到
读到的通讯故障指示没问题
modbus poll 是可以读到的。
回复本条
发表回复
ozoner
换个读法试试看,读取31055整数值,如果可以正常读到,然后用脚本测试每个位再赋给相应的变量。
再有,你试试读31056, 通常是上位机读取时用的地址
waa1234567楼主
基本解决了,协议用RTU地址从0开始读写1、3、4区,RTU地址从1开始读写0区,猜测可能和设备的数据转发有关!
2024-12-02 12:53:45回复
懂一点点
选择4区,数据选只读,不要选3区
江湖再见-余辉
只要通讯上了,咋都好说。开关量能读出来,模拟量也就能读出来。
31055不是寄存器编号,这里寄存器编号是31055,3开头的寄存器是输入寄存器,用04功能码来读
JSdanzi
检查一下是不是有地址偏移,另外HMI 有个校验字节序的 高低字节转一个再试试,有可能高低不同
请叫我王老湿
Modbus RTU通信时无法读取模拟量是一个常见问题,这通常是因为Modbus协议设计上不支持直接读取模拟量。Modbus协议主要是针对数字量设备设计的,如开关量和计数器等,而模拟量通常需要通过一定的转换才能以数字形式读取。