Skip to content

IEC 61850 Ed2: resolve prefixed LN class for Boolean DPC position controls - #189

Closed
masarray wants to merge 179 commits into
mainfrom
fix/ed2-prefixed-ln-dpc-control-20261022
Closed

masarray wants to merge 179 commits into
mainfrom
fix/ed2-prefixed-ln-dpc-control-20261022

Conversation

@masarray

@masarray masarray commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

IEC 61850 Ed2 vendor-neutral control discovery trial (NOT physically qualified)

Source evidence: SG7_BCU IID and 2026-10-22 MMS diagnostics show successful association/monitoring/reporting but 0/13 command targets admitted: Boolean Oper.ctlVal combined with two-bit Pos.stVal was treated as SPC against the declared DPC. This should never depend on a configured LN name.

Actual engine solution

  • Preserve IEC identity with optional LN prefix, but command semantics are proved by the exact live control DataObject: ctlModel, typed Oper/SBOw ctlVal, Cancel when required, CommandTermination support, and matching typed status read, not by CSWI/XCBR/XSWI naming.
  • Support Boolean Oper.ctlVal + verified same-object two-bit ST.stVal => DPC, distinguish a true Boolean SPC, refuse wrong bit widths, different-object status and incomplete enhanced descriptor.
  • Recover truncated/sparse MMS NameList with bounded read-only status probes only after valid typed control evidence: one ST.stVal for Boolean (renamed breaker/SPC), and at most two exact standard status leaves for step-shaped typed ctlVal, including TapChg BSC. A status read already typed by the bounded probe is reused, not read twice. Zero wildcard reads, zero MMS Write in synthetic tests.
  • Preserve SBO/SBOw sequencing, negative termination, 400 ms delayed LastApplError grace, explicit operator confirmation and fail-closed validation.

Baseline ancestry: qualified #184 9c7cb40364023a7b217e5ec31ab3105ba90142eb. Earlier trial 5744f302fb3ee949bb57eb84800c9ff68fbbd040 passed .NET CI. Current HEAD 24aae4698026f3a5cf7a35225c5d8000018af3e4 has additional sparse-NameList/DPC/BSC tests; exact-SHA .NET CI SUCCESS. Consumer #679 retains #184 in its production lock, with an explicit nonrelease FAST DEV engine override. No physical Select/Operate or relay switching claimed; must pass bench FAT before promotion.

Cross-consumer verification

ARSAS #679 exact-source Windows FAST DEV with engine HEAD 24aae4698026f3a5cf7a35225c5d8000018af3e4: build succeeded; 69/69 focused command/read regression tests passed. Independent run https://github.com/masarray/arsas/actions/runs/39767540537, with SHA/TRX manifest and unchanged production lock #184. No physical Operate proof, no merge/release authority.

SG7_BCU tested Windows EXE — engineering FAT candidate

Consumer ARSAS PR #679 produced real Windows x64 self-contained EXE against this exact engine commit 24aae4698026f3a5cf7a35225c5d8000018af3e4; Windows cross-repo focused 69/69 PASS; native ArdIrec bridge CTest, single-file publish, binary smoke exit 0 and SHA256 verified. Nonrelease artifact: https://github.com/masarray/arsas/actions/runs/39771165218/artifacts/12422956282. EXE SHA256 0b2050e5dd1abeacee31d82f92ebf2150e091f5fc1f03a497e2a1d00bf22c035. No physical relay Select/Operate/feedback pass claimed, no production engine lock promotion.

masarray added a commit that referenced this pull request Oct 22, 2026
… dropping baseline

Merge source HEADs: #189 24aae46, #186 d095b3a, #187 4ed76cc, #182 ded5036.

Eleven path updates: ten literal source/test file blobs verified unchanged against individual merge-bases, plus deliberate CI workflow integration instead of #182's historical limited-branch trigger. Synthetic-merge checkout and all stacked branch PR triggers. This is a draft integration candidate, NOT field-qualified, NOT ARSAS repin or release. No main modification.

Copy link
Copy Markdown
Owner Author

Repository consolidation audit, 2026-10-22: exact source HEAD 24aae4698026f3a5cf7a35225c5d8000018af3e4 was verified as a Git ancestor (0 missing commits) of canonical combined draft PR #190 HEAD 14b19d30466fd296ad1e6d0bddcdd574992bc464. PR #190 validated this exact integration via Windows merge-tree CI #39778971482: 1,262/1,262 tests pass, zero build errors or warnings.

Closing this original PR as CONSOLIDATED / SUPERSEDED BY #190, WITHOUT merging it directly to main. All branch refs, original commits, engineering discussion and FAT evidence remain preserved and recoverable. #190 remains DRAFT, not field/physical accepted, engine source not yet merged to main, ARSAS pin unchanged. Reopen if consolidation is withdrawn or its functionality becomes independently active.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant