Skip to content

Use engine-owned SCL workspace API - #20

Merged
masarray merged 21 commits into
mainfrom
agent/use-engine-scl-workspace
Jul 14, 2026
Merged

Use engine-owned SCL workspace API#20
masarray merged 21 commits into
mainfrom
agent/use-engine-scl-workspace

Conversation

@masarray

@masarray masarray commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • replace the application-owned SCL endpoint parser with ARIEC61850.SclWorkspaceService
  • load one offline design workspace per IED and AccessPoint
  • expose LD/LN/DO/DA, DataSet, ReportControl, GOOSE, and SV engineering data without sending MMS traffic
  • keep ICD/template files browseable when no Communication endpoint exists
  • fast-connect from the SCL design model on Play and reserve full live discovery for Re-scan
  • evaluate the Re-scan runtime projection with the engine-owned SclLiveModelComparer
  • persist SCL source path, SHA-256, IED, and AccessPoint provenance in project schema v3
  • disable dynamic DataSet writes by default for SCL workspaces
  • remove Services/SclImportService.cs
  • align application and portable package metadata at version 1.6.6

Application behavior

Open SCL

Opening ICD/CID/IID/SCD/SSD/XML is offline. ArIED receives typed workspaces from the engine and maps the monitorable portion of the engine discovery model into its existing signal-selection explorer. The complete typed workspace remains attached to the IED card. Files without a Communication section remain browseable and request endpoint binding only when Play or Re-scan is used.

Play

When an SCL design model is present, Play uses the existing cached-model association path. It does not repeat full GetNameList discovery. Selected points and acquisition services are still verified through the existing live MMS runtime.

Re-scan

Re-scan performs full live discovery, converts the application-visible runtime inventory into a bounded LiveIedModelDiscoveryDocument, and evaluates it with the engine comparer. Blocking differences are surfaced as SCL configuration drift in Diagnostics.

Control safety

SCL control candidates never become authoritative by file content alone. Existing live ctlModel, exact MMS type, Oper/SBOw/Cancel, command termination, and process-feedback checks remain required before operation.

Engine dependency

This integration temporarily pins ARIEC61850 to agent/scl-workspace-api, implemented in engine PR #25. Change ARIEC61850_REF to main after that PR is merged.

Validation

GitHub Actions Build ArIED 61850 #120 completed successfully:

  • clean-room/external-IP/current-license verification
  • ARIEC61850 Workspace API dependency gate
  • .NET restore
  • Release build
  • portable Windows x64 publish
  • portable ZIP artifact upload

Final portable artifact: ArIED61850-win-x64, SHA-256 fc4ebd01178ed8d11985c879db077ae2abd57abcd63b5439ca81e0c174b1ebc2.

The focused compile gate also passed and was removed from the final diff.

@masarray
masarray marked this pull request as ready for review July 14, 2026 05:44
@masarray
masarray merged commit 23ad894 into main Jul 14, 2026
1 check passed
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