Skip to content

scl: isolate semantic repair to export only - #343

Closed
masarray wants to merge 13 commits into
feature/discovery-static-workflow-parity-p0from
feature/scl-export-only-semantic-parity-p0
Closed

masarray wants to merge 13 commits into
feature/discovery-static-workflow-parity-p0from
feature/scl-export-only-semantic-parity-p0

Conversation

@masarray

Copy link
Copy Markdown
Owner

Physical regression response

The previous semantic candidate (ARSAS #342 / engine #139) is rejected. Physical AA1E1F06R4 evidence showed:

  • slow discovery;
  • repeated Boolean/BIT STRING report rejection;
  • only 23 report-backed points instead of the accepted 58.

Replacement architecture

This PR starts from the locked good ARSAS baseline #339.

Engine replacement: ARIEC61850 #140.

Engine base remains the exact physical-proven commit:
648124097621046f5f127ceb1cf853fea54db730.

Executable semantic change is isolated to:
src/AR.Iec61850/Scl/Export/LiveIedSclExporter.cs

The only other engine source delta is two comment-only source-clean wording changes in Iec61850StandardModelRegistry.cs, verified by CI to contain no executable line delta. MMS/Osi/Acse source is unchanged.

Hard rule

Live discovery CDC, Static DataSet inventory, report schema, report decoding, RCB planning and runtime point typing remain the physical baseline behavior.

The live model may remain conservatively CBClsCounter=SPS.

Only when Save SCL serializes the model may exact live stVal TypeSpecification refine generic status metadata:

  • integer -> INS
  • enum -> ENS
  • boolean -> SPS

The exporter does not mutate the live model.

Acceptance

Before promotion the relay must again prove:

  • discovery path/speed returns to the accepted baseline;
  • 58/58 static rows;
  • 22 Analog / 36 Digital;
  • 58 report-backed;
  • actual InformationReport;
  • cyclic MMS process polling = 0;
  • no Boolean/BIT STRING rejection regression;
  • Save SCL is non-disruptive;
  • reopened SCL has 58 rows;
  • CBClsCounter in saved/reopened SCL = INS / INT32.

Dedicated candidate CI rejects any engine diff outside the exporter, one export regression test, and the verified comment-only registry cleanup.

Copy link
Copy Markdown
Owner Author

Export-only replacement candidate is green

Physical-regression replacement is now fully built and isolated.

The engine diff gate proved there is no executable live-discovery/runtime/reporting change. The only executable engine delta is LiveIedSclExporter.cs; the StandardModelRegistry delta is comment-only and CI verifies that fact.

Physical relay retest remains the authority. First acceptance is runtime restoration (fast/proven discovery behavior and 58 report-backed rows); only after that should Save SCL semantic parity be evaluated.

Copy link
Copy Markdown
Owner Author

Rejected/superseded by exact 0d0b baseline candidate

Physical test of this PR still showed the old regression signature: slow discovery, repeated Boolean/BIT STRING report rejection, and only 23 report-backed points.

The replacement is ARSAS PR #344, based directly on exact physically accepted commit 0d0b9204d6637e3d62e2eee94000386ae43cd0e9 and retaining engine lock 648124097621046f5f127ceb1cf853fea54db730 unchanged.

PR #344 patches the saved SCL XML only after canonical serialization and before reload validation. No engine candidate is used.

@masarray masarray closed this Sep 20, 2026
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