docs(abcip): #611 live member-write gate on Z35162 (native DINT/BIT/REAL members, restored)
v2-ci / build (push) Successful in 4m47s
v2-ci / unit-tests (push) Failing after 23m3s

Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
Joseph Doherty
2026-10-09 04:49:19 -04:00
parent 6c6800e513
commit 12aa293cdc
3 changed files with 30 additions and 11 deletions
@@ -559,3 +559,20 @@ bit 5, clears bit 3, asserts the whole word each time so neighbour bits are prov
writes are refused before the wire (#571, `NativeAbLegacyTagRuntime.WriteRefusal`). The test pins it. It is not the original
observation.
- No fix, so no revert-to-red proof; the test would fail if the word RMW clobbered neighbour bits.
## #611 UDT member-write gate — 2026-10-09 (user-approved, native transport)
Target: Z-35162, controller tag `_EmptyTemperatureSegment` (`UDT_TemperatureProfile_Segment`; no routine, alias or
trend references it in the 2026-09-11 L5X export; not in the Galaxy map). Tool: AbCip CLI from master `6c6800e5`,
`ab://10.209.70.160/1,0`, family CompactLogix, default (native) transport. Each leg: write, snapshot all ten members,
restore, snapshot again.
| Member | Type | Before | Wrote | Read back | Restored | Other 9 members |
|---|---|---|---|---|---|---|
| `ID` | DINT | 0 | 4242 | 4242 | 0 | unchanged (0/false) |
| `Enable` | BIT (BOOL member) | false | true | true | false | unchanged |
| `HoldTime` | REAL | 0 | 42.5 | 42.5 | 0 | unchanged |
Every write and read returned Good (`0x00000000`); the final snapshot equals the pre-gate snapshot. Not covered:
sibling-bit preservation inside one hidden host SINT (this UDT has a single BIT member) and the libplctag
member-write path. Raw output: the session scratchpad `hw4/gate611.txt`.