S7: porting backlog from the stranded auto/driver-gaps branch (13 items, #607) #632

Closed
opened 2026-10-08 09:22:01 -04:00 by dohertj2 · 2 comments
Owner

Porting backlog for the S7 driver, from the #607 branch ledger (docs/plans/2026-10-08-driver-gaps-branch-ledger.md). These issues were auto-closed against PRs merged into auto/driver-gaps, which never reached master (and predates v3). Each item below was classified STRANDED: no equivalent on master (symbol/file grep plus docs), so the work needs a port-or-drop decision. The branch commit is listed per item (git show <sha> on origin/auto/driver-gaps); the branch is a design reference, not a cherry-pick, because the driver and the address-space model were rewritten since.

Recommendation: DROP #304 (docs-only Optimized-DB/S7Plus decision PR); cherry-pick its docs if wanted. #299/#301 should be re-homed as /raw import sources; #300 UDT fan-out belongs at author time (v3 raw tree needs explicit tags per member). #302 synthetic diagnostic tags are not authorable in the v3 raw tree. S7.md still lists WString/DTL deferred.

Source: #607; ledger rows for the original issue numbers below.

Port-or-drop checklist (13 items; effort S/M/L from the ledger):

  • #288 STRING / WSTRING / CHAR / WCHAR (effort M; branch 316f820e). No WString/WChar/Char in S7DataType (String only); docs/drivers/S7.md lists deferred / Port risk: Low-medium; pure codec, ab-style fixture (snap7)
  • #289 DTL / DT / S5TIME / TIME / TOD / DATE (effort M; branch 2b66cec5). No DTL/S5TIME/TIME/TOD/DATE codecs (S7DataType.DateTime only; S5TIME only as Timer area word) / Port risk: Low; pure codec
  • #291 LOGO! 8 + S7-200 V-memory (effort S; branch e5122c54). No LOGO!/S7-200 V-memory parser / Port risk: Low; niche, verify hardware
  • #294 PDU size negotiation surfaced (effort S; branch 6540bbe1). No negotiated-PDU surfaced via DriverHealth.Diagnostics (only AssertPduSizeForRead) / Port risk: Low
  • #295 TSAP / Connection Type selector (effort M; branch 3b98e4d3). Only slot-derived TSAP; no LocalTsap/RemoteTsap/ConnectionType override / Port risk: Low
  • #296 Per-tag scan group / publish rate (effort M; branch 162c82b8). No S7 scan-group intervals / Port risk: Medium: shared poll engine
  • #297 Deadband / on-change with thresholds (effort M; branch 06b39a28). No S7 deadband / Port risk: Low-medium
  • #299 Symbol-table / TIA Portal export browse (effort L; branch a908dff7). No TIA CSV / AWL symbol importers / Port risk: Medium: re-home as /raw import source rather than CLI ImportSymbolsCommand
  • #300 UDT / STRUCT / nested-DB handling (effort L; branch 5f8d84db). No UDT/STRUCT fan-out / Port risk: Medium: v3 raw tree needs explicit tags per member; fan-out at author time
  • #301 Instance-DB / FB parameter access (effort M; branch baf1d658). No instance-DB/FB resolver / Port risk: Depends on #299
  • #302 CPU diagnostic buffer / SZL reads (effort L; branch 108f69d1). No SZL reads / system tags / Port risk: High: S7.Net SZL via reflection; synthetic tags not authorable in v3 raw tree; hardware
  • #303 PLC password / protection-level handling (effort M; branch 30c3b10c). No PLC password/protection-level handling / Port risk: Medium; hardware
  • #304 Optimized DB / S7Plus (decision PR) (effort S; branch b217ca61). Docs-only decision (docs/v2/s7.md, featuregaps.md, S7-Test-Fixture.md) not on master / Port risk: Low: cherry-pick docs or drop

Filed 2026-10-08 by the hardware-available issue sweep.

Porting backlog for the S7 driver, from the #607 branch ledger (`docs/plans/2026-10-08-driver-gaps-branch-ledger.md`). These issues were auto-closed against PRs merged into `auto/driver-gaps`, which never reached master (and predates v3). Each item below was classified STRANDED: no equivalent on master (symbol/file grep plus docs), so the work needs a port-or-drop decision. The branch commit is listed per item (`git show <sha>` on `origin/auto/driver-gaps`); the branch is a design reference, not a cherry-pick, because the driver and the address-space model were rewritten since. Recommendation: DROP #304 (docs-only Optimized-DB/S7Plus decision PR); cherry-pick its docs if wanted. #299/#301 should be re-homed as `/raw` import sources; #300 UDT fan-out belongs at author time (v3 raw tree needs explicit tags per member). #302 synthetic diagnostic tags are not authorable in the v3 raw tree. S7.md still lists WString/DTL deferred. Source: #607; ledger rows for the original issue numbers below. Port-or-drop checklist (13 items; effort S/M/L from the ledger): - [ ] #288 STRING / WSTRING / CHAR / WCHAR (effort M; branch 316f820e). No WString/WChar/Char in S7DataType (String only); docs/drivers/S7.md lists deferred / Port risk: Low-medium; pure codec, ab-style fixture (snap7) - [ ] #289 DTL / DT / S5TIME / TIME / TOD / DATE (effort M; branch 2b66cec5). No DTL/S5TIME/TIME/TOD/DATE codecs (S7DataType.DateTime only; S5TIME only as Timer area word) / Port risk: Low; pure codec - [ ] #291 LOGO! 8 + S7-200 V-memory (effort S; branch e5122c54). No LOGO!/S7-200 V-memory parser / Port risk: Low; niche, verify hardware - [ ] #294 PDU size negotiation surfaced (effort S; branch 6540bbe1). No negotiated-PDU surfaced via DriverHealth.Diagnostics (only AssertPduSizeForRead) / Port risk: Low - [ ] #295 TSAP / Connection Type selector (effort M; branch 3b98e4d3). Only slot-derived TSAP; no LocalTsap/RemoteTsap/ConnectionType override / Port risk: Low - [ ] #296 Per-tag scan group / publish rate (effort M; branch 162c82b8). No S7 scan-group intervals / Port risk: Medium: shared poll engine - [ ] #297 Deadband / on-change with thresholds (effort M; branch 06b39a28). No S7 deadband / Port risk: Low-medium - [ ] #299 Symbol-table / TIA Portal export browse (effort L; branch a908dff7). No TIA CSV / AWL symbol importers / Port risk: Medium: re-home as /raw import source rather than CLI ImportSymbolsCommand - [ ] #300 UDT / STRUCT / nested-DB handling (effort L; branch 5f8d84db). No UDT/STRUCT fan-out / Port risk: Medium: v3 raw tree needs explicit tags per member; fan-out at author time - [ ] #301 Instance-DB / FB parameter access (effort M; branch baf1d658). No instance-DB/FB resolver / Port risk: Depends on #299 - [ ] #302 CPU diagnostic buffer / SZL reads (effort L; branch 108f69d1). No SZL reads / system tags / Port risk: High: S7.Net SZL via reflection; synthetic tags not authorable in v3 raw tree; hardware - [ ] #303 PLC password / protection-level handling (effort M; branch 30c3b10c). No PLC password/protection-level handling / Port risk: Medium; hardware - [ ] #304 Optimized DB / S7Plus (decision PR) (effort S; branch b217ca61). Docs-only decision (docs/v2/s7.md, featuregaps.md, S7-Test-Fixture.md) not on master / Port risk: Low: cherry-pick docs or drop *Filed 2026-10-08 by the hardware-available issue sweep.*
Author
Owner

Per-item status (merge 2a41b46b b626-s7):

Per-item status (merge 2a41b46b b626-s7): - Ported: #288 #289 #295 (string/char/date-time codecs, TSAP/connectionType overrides); #294 driver-side (PDU size logged + S7Driver.GetDiagnostics; /hosts surface -> #640) - Dropped: #302 #291; #304 docs only - Separate design (#644): #296 #297 (shared deadband/scan-group), #299 #301 (import sources), #300 (S7 UDT) - Hardware-deferred: #303 Left open for the user to decide closure.
Author
Owner

Tracker closed. Landed in b640: live snap7 codec + TSAP tests (merge 73e54656, S7 fixture live 18 pass / 3 pre-existing skips), and the STRING/DT BadOutOfRange fix. Item #303 (PLC password/protection) moved to #616.

Tracker closed. Landed in b640: live snap7 codec + TSAP tests (merge 73e54656, S7 fixture live 18 pass / 3 pre-existing skips), and the STRING/DT BadOutOfRange fix. Item #303 (PLC password/protection) moved to #616.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#632