Skip to content

Fix real-device IO FAT discovery and Siemens hierarchy binding - #138

Merged
masarray merged 10 commits into
mainfrom
fix/io-fat-real-device-discovery
Aug 12, 2026
Merged

Fix real-device IO FAT discovery and Siemens hierarchy binding#138
masarray merged 10 commits into
mainfrom
fix/io-fat-real-device-discovery

Conversation

@masarray

@masarray masarray commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Field failure

On AA1C1F13R4 (192.168.81.17), MMS association/discovery succeeds but IO FAT preflight reports all 30 imported signals as missing, including UCC-IEC-0698…0701 (ADD/GGIO1.*).

Root causes addressed

  1. ARIEC61850 Harden and simplify the ARSAS product website #54 fixes MMS GetNameList pagination when production IEDs omit the optional moreFollows field (DEFAULT TRUE).
  2. ARSAS supplemental discovery now preserves names already read successfully if later VAA/type-tree expansion times out, instead of throwing away the completed directory inventory.
  3. Siemens/DIGSI engineering exports may render an LN prefix as a folder (ADD/GGIO1, VI3p1_OperationalValues/RPRE_MMXU1) while live MMS/SCL exposes the same LN as a concatenated prefix (ADDGGIO1, VI3p1_OperationalValuesRPRE_MMXU1). FAT binding recognizes the deterministic equivalent only when the imported folder terminates at the exact workbook LN metadata boundary.

Safety

  • Exact reference matching remains first priority.
  • Hierarchy normalization is not fuzzy matching.
  • Only imported references may be hierarchy-collapsed; observed/live MMS references are never collapsed.
  • The final folder segment must exactly equal the imported workbook Logical Node before collapse is permitted.
  • A normalized candidate is accepted only when exactly one non-control signal matches.
  • Cross-boundary singleton collisions such as AB/GGIO1 versus A/BGGIO1 remain missing/blocked instead of being accepted.
  • The existing FAT safety gate is unchanged.

Regression coverage

  • AA1C1F13R4 / 192.168.81.17 synthetic field case for UCC-IEC-0698, 0699, 0700 and 0701.
  • Siemens operational-values hierarchy normalization using verified RPRE_MMXU1 metadata.
  • Cross-boundary singleton collision rejection.
  • Live-binding normalization after acquisition starts.
  • Importer verified to populate IoTestPointPlan.LogicalNode from the workbook LN column.

Engine

Pinned to merged ARIEC61850 commit 902fc828dcf976a705dc73b88f1e9c42e5bf6a93 from PR #54.

Validation

Latest head 779f54c200f7ea8fc433a3eec0f699edfcfafff8:

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bb687c9fa1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Services/IoTesting/IoTestLiveBindingService.cs
@masarray
masarray merged commit 775f8cc into main Aug 12, 2026
4 checks 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