OPCF-Members / Opc2Aml

Command line utility to convert OPC UA Nodeset files to AutomationML Libraries for UAFX offline engineering.
MIT License
1 stars 3 forks source link

Split big FX Library into libraries for UA,DI,FX and safety #5

Open JimLuth opened 2 years ago

JimLuth commented 2 years ago

Split big FX Library into libraries for UA,DI,FX and safety using AML ExternalReferences.

(clone of Mantis #0007220)

JimLuth commented 2 years ago

Before attempting to implement this Mantis issue, I did some experiments with the AutomationML Editor and External References. Based on our Part 83 FX spec and the referenced CAEX spec I would expect all of the following External Reference Path syntaxes to work (i.e. clicking the black square in the editor will read the file indicated by "Path" and merge the content into the open AutomationML Document).

image

I tried the following valid, resolvable paths:

file:///C:/dev/FX.aml pack://file:,,,c:,dev,FX.amlx/FX.aml http://opc.freecluster.eu/TinyTest.aml Only #1 worked.

In reviewing the AutomationML Engine documentation, the "External Reference" implementation is based solely on CAEX and the CAEX explicitly allows the http:// scheme in #3, but nothing happens when I click the "merge" button in the editor. I would rate this as a bug in either the AutomationML Editor or the Engine or both.

The pack:// scheme in #2 comes from Open Packaging Conventions and is not specified by CAEX, but since AutomationML supports the amlx files, in my opinion this the Engine/Editor should also support the pack: scheme. I would classify this as a "missing critical feature" rather than a bug.

Given the current lack of support for #2 and #3, I question the value of implementing Mantis 0007220, as the resulting externally referenced files would not be usable by the current AutomationML Editor.

The following ZIP contains two AML files, junk.aml and split.aml. Junk.aml is the main AML file with an external reference to split.aml. junk_and_split.zip