|
|
本帖最后由 vas_teplocom 于 2026-7-15 17:10 编辑
Model: DWIN DMG10600C070_03WTC
OS kernel: DWINOS_DWIN_T5L_115200__UART4_ModBus.bin (downloaded from the "DWIN_T5L_115200_UART4_MODBUS_Master" package)
DGUS Tool project: 4 Data Variable Display icons, VP 0x5000-0x5003, type int (2 bytes, signed)
Issue: In Modbus RTU master mode, WRITE instructions work correctly (master writes VP value to slave register, confirmed on slave side), but READ instructions never update the on-screen display, even though the RTU bus traffic confirms the slave is answering correctly.
22_config.bin content (offset 0x1C000):
5A 01 03 01 30 00 00 00 50 00 00 02 00 00 00 00 (read slave reg 0x0002 -> VP 0x5000, unconditional)
5A 01 03 01 30 01 00 00 50 01 00 04 00 00 00 00 (read slave reg 0x0004 -> VP 0x5001, on page 0)
5A 01 06 01 30 04 00 00 50 02 00 01 00 00 00 00 (write VP 0x5002 -> slave reg 0x0001, on VP change)
5A 01 06 01 30 00 00 00 50 03 00 00 00 00 00 00 (write VP 0x5003 -> slave reg 0x0000, unconditional)
RTU sniffer log confirms correct bus traffic for the read instructions, including the slave register value actually changing (0x05 -> 0x0A) when I changed it on the slave side:
Rx: 01 03 00 02 00 01 25 CA
Tx: 01 03 02 00 05 78 47
... (repeats)
Rx: 01 03 00 02 00 01 25 CA
Tx: 01 03 02 00 0A 38 43 <- value updated correctly on the wire after changing it on the slave
So the Modbus RTU exchange itself is 100% correct (verified with an RTU sniffer and by intentionally changing the slave register value mid-test), but the value never appears in the Data Variable Display icon bound to VP 0x5000 on the panel screen.
I also tried:
- Moving the VP addresses to 0xE000-0xE003 instead of 0x5000-0x5003 (icons + 22_config both updated) - no change, read still doesn't show, write still works.
- Add the 5A A5 enable header and starting the 4 instructions directly at 0x1C010 instead of 0x1C000 - no change.
- Reading VP 0x5000 directly via DGUS Tool's Debug/VP monitor tool (5A A5 04 83 50 00 01) while the master polling loop was running - got no response at all from the panel to this debug read request, while the RTU master polling continued normally in the background.
Questions:
1. Is there a known issue with READ instructions (function 0x03) not updating the display VP correctly on this OS kernel, while WRITE instructions (function 0x06) work fine?
2. Could the continuous/unconditional Modbus master polling loop (no configurable interval, instructions run back-to-back nonstop) be blocking or delaying the panel's internal VP-write-to-display refresh step, or blocking response to DGUS debug commands (5A A5) sent over the same UART?
3. Is there a different/updated OS kernel version needed for correct READ instruction handling on this panel model?
Any help identifying why READ instructions don't reach the display, while WRITE instructions work correctly with the same file/instruction format, would be greatly appreciated.
|
|