因此,我尝试从Modbus设备(Wetspec200)中提取日期和时间。 我正在使用SimplyModbus软件查看寄存器中写入的内容。设备手册说,时间戳记写在寄存器1013和1014中。
当我查看这些寄存器中的值时,寄存器1013的值为 3 ,而寄存器1014的值为 17961 。
如何准确地获得时间戳记?我试图将两个寄存器放在一起。低位寄存器代表前16位,高位寄存器代表后16位。因此值3是二进制的00000000 00000011,而17961是01000110 00101001。 因此合并在一起将变成00000000 00000011 0100011000101001。但这对我来说没有任何意义。您是否知道如何从这两个寄存器中获取日期/时间?
关于相同问题,也有类似的帖子,但答案不适合我的情况。
答案 0 :(得分:0)
您可以共享手册吗?只要modbus没有为时间戳格式指定任何要求,每个人都会按照自己的方式行事。
如果不是手动编写的,则尝试使用其自己的软件从设备中提取数据,然后查看(或共享)软件中显示的时间戳,并尝试查找它与二进制值的对应关系(通常是简单)。
就我们只有18个非零位而言,我猜它仅存储以秒为单位(或分钟)的某个设定值的增量,该增量分别存储在另一个寄存器中。这是计量设备的常见做法
答案 1 :(得分:0)
可能是Unix时间戳吗? 将这两个寄存器放在一起并根据Unix格式进行转换可以得到:2007年4月20日下午6:01(UTC)。