Repository navigation
F650 Open SCL: expose report-backed MMXU1 A/PhV/PPV phase measurements #493
Description
Activity
masarray commented
on Oct 9, 2026 OwnerAuthorMore actionsPrivate
BCU_GE.iidschema review completed; original source has not been uploaded to GitHub. Exact typed WYEA(phsA/B/C/neut/net/res), WYEPhV(phsA/B/C/neut), DELPPV(phsAB/BC/CA) and CMVAuxVconfirmed. Created draft PR #494 atop exact #492 head: #494 (commit3cf821428efd954e415e7455acbd2936ff0019cd). One atomic consumer-side patch for schema-safe phase-row materialization and report-only selection, plus synthetic regression tests. Engine remains the authority and pin unchanged. CI underway; no field acceptance or merge claimed.masarray commented
on Oct 9, 2026 OwnerAuthorMore actionsActual same-build F650 field comparison — Open SCL vs IP Discovery (2026-10-09)
Operator supplied two GUI screenshots and full local diagnostics using the same ARSAS binary
1.6.40+b6935e2f0481d568b03042fdf0d60af821f36031and pinned engine352c81e6a798635c6addcee0683235ca87ad416d. Logs remain in support conversation, not attached here (private machine/IP/association evidence).Measured parity gap:
Metric Open BCU_GE.iidIP smart Discovery LD/LN/DO/DA 1 / 153 / 2228 / 14668 1 / 65 / 653 / 4669 Static datasets / original members 8 / 124 8 / 124 Selector membership represented 124/124 124/124 Engine inventory primary unresolved 20 82 Static selection bindings 166 104 Unique report-backed monitor values 67 24 Configured static RCBs routing actual process reports 6/6 6/6 Cyclic process MMS polling 0 0 Device identity SCL BCUGEHostFallback (Low) Report continuity BufOvfl=3, findings=5 BufOvfl=2, findings=3 Exact selected-binding divergence by dataset: CSWI 35→20, EVEGGIO 30→2 (only Ind11.stVal and Ind13.stVal selected), MMXU_SOGI1 36→22, MMXU_SOGI2 20→20, MMXU_SOGI3 20→20, REPORT1 25→20. Differences total 62 binding rows; 43 fewer unique values. Control inventory still inspects all 16 CSWI controls in Discovery but only 2 report-backed CSWI position feedback points survive selector, while Open SCL selects 16. All six RCBs receive traffic; this is a model semantic resolution / selector admission gap, not failure to arm static RCBs.
Positive verification: #494 schema-safe WYE/DEL phase fix DID work on both ingress types. All 13 exact
MMXU1.A/PhV/PPVtyped magnitude leaves appear with static URCB acquisition and qualitygood. AuxV is present in semantic plan but its visibility should be checked beyond screenshot. No need to rerun the phase-code patch.Strong contributing mechanism: IP smart discovery ended at
NamedVariable=6400, pages=64, complete=Falseand reports initial reads deferred, with a smaller typed discovery model. The engine semantic binding resolver requires one unique primary candidate or preserves unresolved member, and consumer StaticDataSetAuthoritySelection only admits publishable exact signal rows. Open SCL has richer type templates and reports 82→20 unresolved. The exact omitted member reasons need exported typed schema/probe evidence before treating the name-page cap alone as proven cause.Additional acceptance concerns: Both sessions say semantic gate INCOMPLETE and cannot be stamped parity-success based on 6/6 traffic. Existing BRCB BufOvfl/SqNum anomaly means buffered event continuity not certified. Both screenshots show analog values zero with timestamps more than an hour older than screenshot capture: quality
good/ GI receipt alone does not prove sample freshness. Endpoint/local-network interface address overlap should be checked privately to distinguish local emulator vs real separate relay.Proposed minimal engineering plan (NO patch/CI in this comment):
- Engine-side selective on-demand ST and MX FCD typed attribute enrichment for exactly the 124 DataSet members, focusing on 28 EVEGGIO missing
stVal, 14 CSWI feedback, other unresolved scalar leaves. Bound reads/time/byte budget; not brute-force 6400+ or global discovery duplication. - Restore canonical physical IED identity from trusted MMS evidence if available; never fabricate from hostname/domain.
- Use same engine-normalized canonical static report projections and selection semantics for SCL and discovery; preserve original FCDA/FCD and per-member RCB identity, no dynamic dataset or cyclic MMS fallback.
- Regression using vendor-free synthetic ST/SDO paths, IED-specific offline SCL vs matching synthetic live model, exact six-DataSet parity, non-overwrite of in-flight control, and no duplicate per-RCB subscriptions.
- Qualification based on exact leaf equality (not only total counts), actual InformationReport, per-RCB events, q/t/units, BRCB continuity, and separate comparison of SCL vs discovery session fingerprints.
Keep #494 draft; phase fix is field-observed, overall Discovery/SCL parity is NOT verified.
- Engine-side selective on-demand ST and MX FCD typed attribute enrichment for exactly the 124 DataSet members, focusing on 28 EVEGGIO missing
Field evidence: GE F650 structured measurements missing in Live Values (2026-10-09)
Opened BCU_GE.iid with ARSAS 1.6.40+1ac41648549db92902190ae91ee6302da2d0afe0 and pinned engine 352c81e6a798635c6addcee0683235ca87ad416d.
Actual IID file has not been supplied: do not claim exact vendor phase-reference paths, and do not publish the private IID or machine/IP details.
Root-cause source review
Engine Iec61850DataSetSemanticBindingResolver.PrimaryValue returns a value only when exactly one primary attribute exists; a top-level three-phase FCD can have several valid phase primaries. Iec61850DataSetSignalInventoryProjection therefore preserves the FCD as unresolved rather than inventing a scalar. This is intentionally conservative.
Consumer Iec61850DataSetSignalInventoryService.ResolveRuntimeBinding only resolves an unresolved structured member if SchemaSafeAggregateProjectionService.TryResolveStaticDataSetPrimaryLeaf succeeds. That method rejects top-level DataObject references, only supports descendant FCDs (e.g. A.phsA). SignalDefinition.IsThreePhaseMeasurementAggregate handles THD types but not ordinary A/PhV/PPV. StaticDataSetAuthoritySelection chooses CanPublishToRuntime candidates and only one row per member; the result is current/voltage phase content not published. StaticDataSetReportProjectionAccumulator only handles supported THD/demand aggregate parents.
2026-10-09 exact private IID template review (user-provided, kept out of GitHub)
Acceptance / safe solution
Physical acceptance is a real GE F650 IID + captured reporting proof for current and phase/line voltage, without regression to existing control/reporting.
Related: draft PR #492 (F650 canonical control + native-dialog UX), issue #446. This is an ANALYSIS ticket only: no code modification/CI requested yet.