Repository navigation
Smart IEC 61850 interoperability: canonical convergence, type-safe RCB mutation, unified acquisition #144
Description
Activity
- added 5 commits that reference this issue
on Oct 7, 2026 masarray commented
on Oct 7, 2026 OwnerAuthorMore actionsImplementation started in draft PR #145 on branch
fix/144-smart-interop-p0.Current P0 slice:
- central typed RCB scalar semantic contract;
ResvTmsnow maps to MMS signed INTEGER / non-negative INT16 semantics;RptEna,Resv,GIscalar mutations routed through the same semantic boundary;- static-SCL, persistent-monitor and client-compatibility cleanup paths migrated;
- wire regression added for integer tag [5] vs unsigned [6];
- live TypeSpecification compatibility predicate added as the P1 foundation.
.NET CI #703 is running. No merge/production repin is implied until CI and later physical validation pass.
- added 9 commits that reference this issue
on Oct 7, 2026 107 remaining items
- added 8 commits that reference this issue
on Oct 7, 2026 masarray commented
on Oct 7, 2026 OwnerAuthorMore actionsP6 software gate is now green.
CI-only integration PR #148 exact head
51fa7092e83472a125aae9a29f033d31f59e6281passed .NET CI #758 end-to-end: provenance/source gate, restore, Release build, full tests, package, artifact and diagnostics upload.P6 / PR #150 now provides the engine-owned source-aware boundary:
MmsReportInventorycarries authority with the data;- live MMS discovery stamps
LiveMmsObserved; - SCL and canonical model projections remain structural, never operational live evidence;
MmsCanonicalReportInventoryProjectionpreserves exact configured DataSet/RCB identity with no indexed-name or live-state fabrication;- canonical static coverage -> exact live RCB target -> targeted availability is one engine contract;
- unresolved targets never broaden automatically;
- target budget overflow performs zero partial network work.
CI #754 correctly caught a test-only enum typo before this gate; it was fixed without altering runtime policy.
Next coordinated milestone is consumer adoption in ARSAS #446, but the engine lock/SCL-association files remain under active PR #425 ownership, so no competing repin or overwrite was made.
- added 4 commits that reference this issue
on Oct 7, 2026 masarray commented
on Oct 7, 2026 OwnerAuthorMore actionsP6.1 targeted live RCB reconciliation is now software-gated.
Stacked PR #151 adds the missing Open-SCL/Discovery-neutral bridge from canonical static coverage to actual live RCB evidence without full discovery. Combined exact head
9c5292570f55dd81be1b3a6b56f937e5ba1ed276passed .NET CI #759 end-to-end.The new smart path enumerates NamedVariable only for the exact MMS domains participating in selected static coverage, filters to required BRCB/URCB classes, reads whole-RCB/DatSet evidence only for those candidates, and then reuses #150 exact-target preflight + #147 targeted availability. Domain/candidate budget overflow fails closed rather than probing a partial arbitrary subset.
Next lane is ARSAS #446 consumer adoption, stacked on active ARSAS PR #425 so that thread ownership is preserved.
masarray commented
on Oct 8, 2026 OwnerAuthorMore actionsConsumer synchronization — P7.6A
Engine P6.2 PR #153 exact commit
352c81e6a798635c6addcee0683235ca87ad416dremains the pinned, CI-proven engine authority for ARSAS P7.5 #476 and new P7.6A #480. P7.6A code SHA1384185a1f42bcf2901e9be0f730863813420ba4passed 11/11 ARSAS workflows, 1359 tests. It modifies consumer-side SCD AP endpoint provenance only; no engine fork/repin and no changed RCB wire protocol.Shared cross-thread handoff. P7.6A AP J↔F physical tests and Discovery/SCL dual-ingress parity remain open. Both projects are still stacked draft, not merged or released. Engine PR #154 remains CI-only/DO NOT MERGE.
Problem
A physical SIPROTEC 7SX85 interoperability case exposed a concrete engine defect and a broader architectural gap.
Observed field evidence on ARSAS 1.6.40 / ARIEC61850 1.6.40:
type-inconsistent (7)onResvTms=60;ResvTmsusingMmsDataValue.Unsigned(...), while the IEC 61850 BRCB semantic type is signed integer / INT16;This must not be solved as a one-off Siemens/vendor patch.
Architectural invariant
IP Discovery and Open SCL are two bootstrap/evidence sources for the same IED, not two runtime systems.
Both paths must converge into the same canonical model, connection/session lifecycle, acquisition planner, reporting executor, control runtime and diagnostics.
The bootstrap cost may differ: Open SCL should use bounded live reconciliation instead of needlessly repeating full discovery, but downstream behavior must be the same.
Non-negotiable design rules
Target architecture
Introduce an evidence-driven interoperability layer that composes:
Planning and mutation execution must be separate:
Implementation phases
P-1 — Canonical convergence contract
P0 — Immediate RCB type correctness
ResvTmsas MMS signed integer, never unsigned;MmsDataValue.*choices from activation paths.P1 — Type-aware mutation
type-inconsistent, revalidate exact live type and retry only when one safe semantic conversion is proven;P2 — Evidence/confidence model
Track granular evidence independently, e.g.:
Differentiate:
P3 — Transactional RCB lifecycle
P4 — Unified acquisition planner
For every selected signal, regardless of UI entry path:
When one selected point belongs to a static DataSet, subscribe to the full ordered DataSet on the wire and project only the selected subset into the UI/runtime.
P5 — SCL/live convergence
Classify divergence explicitly:
Authority is contextual:
P6 — Stable capability fingerprint
Cache stable evidence such as type signatures/service support/model fingerprints, but never treat volatile state as durable:
P7 — Qualification
Regression dimensions, not vendor branches:
Qualification stages:
CodeVerified -> WireVerified -> PhysicalVerified.
First implementation slice
Start with P0/P1 foundation without changing production policy:
ResvTms,RptEna,Resv,GImutation sites to that encoder;ResvTms=60emits MMS INTEGER and cleanupResvTms=0emits MMS INTEGER;Acceptance criteria for the first slice
MmsDataValue.Unsigned(...)write remains forResvTms;Field regression target
For the reported 7SX85 class of behavior:
ResvTmsas unsigned;