AbCip: porting backlog from the stranded auto/driver-gaps branch (11 items, #607) #634

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

Porting backlog for the AbCip 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.

Note: native transport (Driver.Ab.Transport) is now the AbCip default, so ports land there; libplctag is the legacy path. L5K/L5X import (#229, #230) should be re-homed as a /raw import source (staged review like Commons/Csv), not driver Initialize code; #231, #234 and #241 depend on or only make sense with them. #242/#243 (HSBY) are hardware-only (redundant ControlLogix pair).

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

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

  • #229 L5K parser + ingest (effort L; branch 86407e6c). No L5K parser on master (grep L5K empty) / Port risk: High: branch import ran at driver Initialize via IL5kSource; v3 wants it as a /raw import source (Commons/Csv-style staged review), not driver code
  • #230 L5X (XML) parser + ingest (effort M; branch cfcaf5c1). No L5X parser on master / Port risk: High: same re-homing to /raw import; reuses L5K model from #229
  • #231 Tag descriptions surfaced as OPC UA Description (effort S; branch e5299cda). No Description plumbing on master (DriverAttributeInfo has none); only meaningful with L5K/L5X / Port risk: Medium: touches Core.Abstractions + node manager
  • #234 AOI input/output handling (effort S; branch e3c0750f). No AOI qualifier handling in ingest (AbCipDriver only has AOI alarm hidden-host handling) / Port risk: Low; dependent on #229/#230
  • #236 Symbolic vs logical (instance-ID) addressing toggle (effort M; branch 0c6a0d6e). No AddressingMode/logical instance-ID mode on master / Port risk: Medium: native transport (Ab.Transport) is the default now; must be implemented there, libplctag path legacy
  • #238 Per-tag scan rate / scan group bucketing (effort M; branch b4571362). No per-tag ScanRate/scan-group in AbCip / Port risk: Medium: v3 poll/subscription engine is driver-shared (PollGroupEngine); a per-tag bucket must fit it
  • #239 Write deadband / write-on-change (effort M; branch da9936f7). No AbCipWriteCoalescer / write deadband on master / Port risk: Medium: write-suppression semantics interact with v3 write-outcome self-correction; questionable value
  • #240 Diagnostic / system tags as browseable variables (effort M; branch 901a5b9b). AbCipSystemTagFilter.cs on master FILTERS system tags out; no AbCipSystemTagSource / Port risk: Medium: v3 raw tree requires explicit authoring; synthesize via DiscoverAsync only
  • #241 _RefreshTagDb writeable system tag (effort S; branch e0e5e04e). No _RefreshTagDb handling / Port risk: Low; depends on #240 and loses meaning (discovery injection deleted in v3)
  • #242 HSBY paired-IP probing (effort L; branch 561b0f9e). No HSBY role prober / Port risk: Medium: hardware-only (redundant ControlLogix pair); driver->host routing
  • #243 IPerCallHostResolver failover routing (effort M; branch 9e157fc8). AbCipDriver implements IPerCallHostResolver (:661) but no HSBY active-address routing (triage-E 'present' is for the interface only) / Port risk: Depends on #242

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

Porting backlog for the AbCip 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. Note: native transport (`Driver.Ab.Transport`) is now the AbCip default, so ports land there; libplctag is the legacy path. L5K/L5X import (#229, #230) should be re-homed as a `/raw` import source (staged review like `Commons/Csv`), not driver Initialize code; #231, #234 and #241 depend on or only make sense with them. #242/#243 (HSBY) are hardware-only (redundant ControlLogix pair). Source: #607; ledger rows for the original issue numbers below. Port-or-drop checklist (11 items; effort S/M/L from the ledger): - [ ] #229 L5K parser + ingest (effort L; branch 86407e6c). No L5K parser on master (grep L5K empty) / Port risk: High: branch import ran at driver Initialize via IL5kSource; v3 wants it as a /raw import source (Commons/Csv-style staged review), not driver code - [ ] #230 L5X (XML) parser + ingest (effort M; branch cfcaf5c1). No L5X parser on master / Port risk: High: same re-homing to /raw import; reuses L5K model from #229 - [ ] #231 Tag descriptions surfaced as OPC UA Description (effort S; branch e5299cda). No Description plumbing on master (DriverAttributeInfo has none); only meaningful with L5K/L5X / Port risk: Medium: touches Core.Abstractions + node manager - [ ] #234 AOI input/output handling (effort S; branch e3c0750f). No AOI qualifier handling in ingest (AbCipDriver only has AOI alarm hidden-host handling) / Port risk: Low; dependent on #229/#230 - [ ] #236 Symbolic vs logical (instance-ID) addressing toggle (effort M; branch 0c6a0d6e). No AddressingMode/logical instance-ID mode on master / Port risk: Medium: native transport (Ab.Transport) is the default now; must be implemented there, libplctag path legacy - [ ] #238 Per-tag scan rate / scan group bucketing (effort M; branch b4571362). No per-tag ScanRate/scan-group in AbCip / Port risk: Medium: v3 poll/subscription engine is driver-shared (PollGroupEngine); a per-tag bucket must fit it - [ ] #239 Write deadband / write-on-change (effort M; branch da9936f7). No AbCipWriteCoalescer / write deadband on master / Port risk: Medium: write-suppression semantics interact with v3 write-outcome self-correction; questionable value - [ ] #240 Diagnostic / system tags as browseable variables (effort M; branch 901a5b9b). AbCipSystemTagFilter.cs on master FILTERS system tags out; no AbCipSystemTagSource / Port risk: Medium: v3 raw tree requires explicit authoring; synthesize via DiscoverAsync only - [ ] #241 _RefreshTagDb writeable system tag (effort S; branch e0e5e04e). No _RefreshTagDb handling / Port risk: Low; depends on #240 and loses meaning (discovery injection deleted in v3) - [ ] #242 HSBY paired-IP probing (effort L; branch 561b0f9e). No HSBY role prober / Port risk: Medium: hardware-only (redundant ControlLogix pair); driver->host routing - [ ] #243 IPerCallHostResolver failover routing (effort M; branch 9e157fc8). AbCipDriver implements IPerCallHostResolver (:661) but no HSBY active-address routing (triage-E 'present' is for the interface only) / Port risk: Depends on #242 *Filed 2026-10-08 by the hardware-available issue sweep.*
Author
Owner

Per-item status:

Per-item status: - Dropped: #239 #240 #241 - Separate design (#644): #229 #230 #231 #234 (import sources), #238 (deadband/scan-group) - Hardware-deferred: #236 #242 #243 Left open for the user to decide closure.
Author
Owner

Tracker closed. AbCip: no remaining items are provable against the simulator. #236 moved to #611; #242/#243 moved to #592.

Tracker closed. AbCip: no remaining items are provable against the simulator. #236 moved to #611; #242/#243 moved to #592.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#634