温度采集模块modbus rtu协议中,如果不知道采集的温度放在哪个寄存器里了。怎么解决?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了温度采集模块modbus rtu协议中,如果不知道采集的温度放在哪个寄存器里了。怎么解决?相关的知识,希望对你有一定的参考价值。
这个最好是找到手册,查到是哪个寄存器,否则只能是挨个试了,那工作量可就大了,运气好前几个寄存器,运气不好可能是从几千开始的。温度是个采集到的数据,因此一般是只读的,也就是3区的,但是也有和其它设置用的寄存器放一个区,也就是4区的,要是不知道的话,这个查找的范围很大呀。找找模块的厂家、销售,最好是弄到手册。
望采纳。。。。。。追问
厂家电话空号,应该是不做了,关键现在设备地址也不知道,怎么怎么找?
参考技术A MODBUS 中寄存器的功能定义,是没有统一规定的,你这个问题需要和产品厂家联系,要产品说明书才能解决了。 参考技术B 输入寄存器指的是读写寄存器,输出寄存器指的是只读寄存器,又叫保持寄存器,分属于不同的寄存器区域,MODBUS的读写指令也不同。
每个寄存器包含两个字节数据长度,也就是相当于一个“字”,一个字等于两个字节,每个字节8位二进制位。
MODBUS读写指令码如下:
01 (0x01) 读线圈
02 (0x02) 读离散量输入
03 (0x03) 读保持寄存器
04(0x04) 读输入寄存器
05 (0x05) 写单个线圈
06 (0x06) 写单个寄存器
15 (0x0F) 写多个线圈
16 (0x10) 写多个寄存器
读写输入寄存器,使用0x04,0x06,0x10三个指令进行读写,0x03用于读连续多个输出寄存器。
例如: 01 03 00 00 00 05 CL CH(8字节十六进制指令码),这个指令用于读取输出寄存器的值,指令的第一个字节 01 是设备ID,这个字节值根据前端设备的ID的不同而变化,这里举例为1 ;第二个字节 03 就是指令码,读取连续多个输出寄存器,后面两个字节 00 00 是寄存器起始地址,这里为0, 也就是从第一个寄存器开始读;再后面两个字节 00 05 ,是读取的寄存器数量,这里为5; 最后两个字节CL CH 是CRC16校验码,要根据前面六个字节算出,CRC16包含两个字节的校验码,低字节CL在前,高字节CH在后。追问
如果我现在不知道我要的数据在哪个寄存器里,我是不是一个个去读出来呢?还是有别的办法
以上是关于温度采集模块modbus rtu协议中,如果不知道采集的温度放在哪个寄存器里了。怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章
物联网RTU(Modbus TCP协议)Java接口开发及Modbus Slave仿真使用