【发布时间】:2021-12-23 06:20:19
【问题描述】:
我正在尝试使用 Modbus RTU 读取设备。这些字段的类型是 TSTAMP。当我读取这些字段时,它会为每个字段返回一个整数。手册中有一个表格,其中包含地址和类型。
每个日期由读取 2 个地址组成。例如:我想读取“Volts”字段,所以我需要读取地址 8400-8402。读取这些字段会返回值 4622 和 9483。
如何将这 2 个整数转换为日期和时间格式?
手册:
阅读:
【问题讨论】:
我正在尝试使用 Modbus RTU 读取设备。这些字段的类型是 TSTAMP。当我读取这些字段时,它会为每个字段返回一个整数。手册中有一个表格,其中包含地址和类型。
每个日期由读取 2 个地址组成。例如:我想读取“Volts”字段,所以我需要读取地址 8400-8402。读取这些字段会返回值 4622 和 9483。
如何将这 2 个整数转换为日期和时间格式?
手册:
阅读:
【问题讨论】:
TSTAMP 的格式应该在您手册的其他地方,可能在最后。
如果我咨询this manual,格式是
TSTAMP:3 个相邻的寄存器,每个 2 个字节。第一个(最低寻址)寄存器高字节是年(0-99),低字节是月(1-12)。
中间寄存器的高字节是天(1-31),低字节是小时(0-23加上DST位)。 DST(夏令时)位是位 6 (0x40)。
第三个寄存器高字节是分钟(0-59),低字节是秒(0-59)。例如,假设 DST 生效,2049 年 10 月 12 日上午 9:35:07 将是 0x310A、0x0C49、0x2307
【讨论】: