Phase 3 PR 42 — ModbusPal simulator profiles for Standard + DL205/DL260 #41
Reference in New Issue
Block a user
Delete Branch "phase-3-pr42-modbuspal-profiles"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two hand-authored
.xmppprofiles drop into ModbusPal's GUI to drive the integration suite without a real PLC. Both well-formed XML; both copy to test-output asPreserveNewestcontent per the existing csproj rule.Standard.xmppGeneric Modbus TCP server, slave id 1, port 502.
LinearGeneratorbinding — drives subscribe-and-receive tests so they have a register that changes without a write.DL205.xmppAutomationDirect DirectLOGIC DL205/DL260 quirk simulator, modeling each behavior in
docs/v2/dl205.mdas concrete register values:0(V0)0xCAFE1024(V2000 octal)0x20008448(V40400 octal)0x40401040..104225928, 27756, 111"Hello"1056..10570, 163201.5f10720x1234(4660)12341280..1407Coils: Y0 marker at coil 2048, C0 marker at coil 3072 (DL260 layout), scratch C-coils at 4000..4007.
The headline string-byte-order quirk you flagged: HR[0x410] holds
0x6548('H' in low byte, 'e' in high byte). A textbook decoder reads"eHll \0o"; an AutomationDirect-aware decoder reads"Hello".ModbusPal 1.6b limitations called out
holding_registers+coilsin the official build. Noinput_registers, nodiscrete_inputs. DL260 X-input markers can't be encoded faithfully here — FC02/FC04 tests wait for a fork or pymodbus.SCADA-LTS/ModbusPal,ControlThings-io/modbuspal,mrhenrike/ModbusPalEnhanced.pymodbus.server.ModbusSimulatorServerwhen CI needs simulator coverage..xmppimport — only matters if you import untrusted files. In-repo profiles are author-controlled.README
Fully rewritten with per-profile reference tables, getting-started,
MODBUS_SIM_ENDPOINTdoc, alternatives comparison, and a quick-reference XML format table for hand-authoring more profiles.What's NOT in this PR
The integration tests that consume these profiles (the actual
DL205_<behavior>facts). One PR per quirk lands in PR 43+ as you validate each on the bench. Pure documentation + test-asset PR; no code changes.