0

我正在尝试使用Modbus RTU读取功率计,型号为 Shark200 。我已经能够阅读它,但我无法解释返回的数据。如何解释日期和值字段?

返回数据示例:

0; 2; 6144; 3840; 17239; -26413; 17267; -27130; 17250; 31448; 16765; 23237; 16612; -9774; 16571; -17050; 2; 6144; 7680; 17237; -1267; 17267; 2169; 17249; -21791; 16745; 27777; 16681; -27502; 16550; 23033; 2; 6144; 11520; 17240; -224; 17267; -919; 17250; -1291; 16771; 13918; 16607; 26412; 16547; 23206; 2; 6145; 11520; 17238; -28002; 17267; -16499; 17250; 14486; 16771; 1838; 16612; 22630; 16541; 28452; 2; 6146; 0; 17237; -15796; 17266; -2358; 17249; 26544; 16917; 963; 16889; 15450; 16858; -447; 2; 6146; 3840; 17238; 22871; 17267; -8911; 17250; 11932; 16710; -25045; 16676; 32575; 16489; 16235; 2; 6146; 7680; 17239; -7892; 17268; 25489; 17250; -5705; 16771; -15073; 16674; 7403; 16544; -6094; 2; 6146; 11520; 17241; 13096; 17268; -12353; 17251; 29292; 16774; -296; 16676; 18266; 16540; -14520; 2; 6147; 0; 0

在手册中它说:

历史日志记录 在手册中

4

3 回答 3

0

您可以阅读多个日志。要读取所需的日志,您需要将日志编号写入位置 0xC34F 或 DEC 49999。

我要写的代码:

c.WriteSingleRegister(49999, 640);

日志编号:

0 - System Events; 1 - Alarms; 2 - Historical Log 1; 3 - Historical Log 2; 4 - Historical Log 3

在此处输入图像描述

于 2021-11-09T15:32:22.730 回答
0

基本上每个字节都代表时间戳中的一个十六进制值

看例子

0x060717101600

旨在阅读:

YYMMDDHHMMSS 为 HEX 格式,所以

YY = 06h = 06dec or (2006)
MM = 07h = 07dec (July)
DD = 17h = 23dec 
HH = 10h = 16dec
MM = 16h = 22dec
SS = 00h = 00dec

Modbus 协议适用于 16 位寄存器,因此您将收到 6 个字节(3 个寄存器)的时间戳,因此您的寄存器将如下所示:

YYMM = 0607h
DDHH = 1710h
MMSS = 1600h

编辑:看起来时间以 24 小时格式表示

于 2021-11-09T14:08:06.257 回答
0

我相信我的阅读没有错误。因为即使在读取其他有时间戳的地址时,返回的数据也具有相同的格式。阅读手册,我发现了这一点,但我不知道这是什么意思:

在此处输入图像描述

于 2021-11-10T13:18:33.163 回答