# 光照度读取数据包格式(仁科 / 耘农,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 └──┬──┘ 光照度(大端 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 ``` 实测 + 手册帧: ``` 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 ```