rs485-lpc/docs/modbus-illuminance-packet-formats.md

2.6 KiB
Raw Permalink Blame History

光照度读取数据包格式(仁科 / 耘农,2026-07-14 实测核对)

两个传感器均在 ESP32-P4(UART2 = GPIO54/19,9600 8N1)上实测,请求/应答帧 CRC 全部独立复算通过。排查细节见 docs/modbus-rs485-sensors-2026-07-13.md。

通用说明

  • 协议:Modbus RTU,功能码 FC03(读保持寄存器),单寄存器。
  • CRC16-Modbus:多项式 0xA001、初值 0xFFFF,线上字节序低字节在前 (参考实现:src/modbus/rtu.rs 的 crc16 / build_read_holding_registers)。
  • 应答合法性判据:地址匹配 + 功能码 0x03 + 数据长度 0x02 + CRC 通过 (ram-app/src/bin/modbus_bench.rs 的 transact)。

仁科铝壳光照度变送器(地址 1)

光照度寄存器:0x0006(FC03)

请求(8 字节):

01 03 00 06 00 01 64 0B
└┬┘ └┬┘ └──┬──┘ └──┬──┘ └─┬─┘
地址  功能码 起始寄存器 寄存器数  CRC16(lo,hi)

应答(7 字节):

01 03 02 <Hi> <Lo> <CRClo> <CRChi>
         └──┬──┘
        光照度(大端 u16)

实测真实帧(2026-07-14 晚,室内弱光):

01 03 02 00 11 78 48    → 0x0011 = 17 Lux
01 03 02 00 21 78 5C    → 0x0021 = 33 Lux

换算:0~65535 量程型 1 count = 1 Lux;0~200000 量程型 1 count = 100 Lux (手册示例 0x0530=1328 → 1328 Lux 或 132800 Lux)。

性能:100% 应答,首字节 ~4.3~4.6ms(含 3.5 字符 turnaround 4ms), 完整事务 ~10.6ms,最快轮询 ~50Hz(背靠背)。

邯郸耘农 RY-G/W/485(站号 0xFF)

光照度寄存器:0x0000(FC03,站号作地址)

请求(8 字节,与手册示例逐字一致):

FF 03 00 00 00 01 91 D4
└┬┘ └┬┘ └──┬──┘ └──┬──┘ └─┬─┘
站号  功能码 起始寄存器 寄存器数  CRC16(lo,hi)=0xD491

应答(7 字节):

FF 03 02 <Hi> <Lo> <CRClo> <CRChi>

实测 + 手册帧:

FF 03 02 00 AA 11 EF    → 0x00AA = 170(实测唯一成功应答,2026-07-14)
FF 03 02 05 DC 93 59    → 0x05DC = 1500(手册示例,CRC 复算一致)

换算:0~2000/0~20K 量程 1 count = 1 Lux;0~200K 量程 ÷100(15 KLux)。

注意:该传感器光照度寄存器应答率仅 ~1%(慢事务单发 120 笔仅 1 成功; FC03/FC04 × reg 0x0000~0x0008 探针 36 笔全超时),应答时延迟很短(~11ms)。 帧格式无误,属传感器固件行为(手册标称响应时间 1 秒)。对照组读站号 (FC03 reg 0x0001 @ 地址 0x00)100% 可靠:

请求: 00 03 00 01 00 01 D4 1B
应答: 00 03 02 00 FF C5 C4    → 站号 = 0xFF