equinor / iec63131

Other
9 stars 8 forks source link

What are the best practices for forking the provided library and/or import/export into 3rd party AML library? #40

Closed CocoDico78 closed 3 years ago

CocoDico78 commented 3 years ago

Third-party tools might want to serialize SCDs and sequences using the provided AML Norsok library. However,

How to document and share variants of the provided AML schema? How do we ensure compatibility between the different flavors of IEC63131 AML?

cdenisey commented 3 years ago

Point 1: this is a work in process, if you note features of IEC63131 not supported, please continue logging issues, they will be looking into and incorporated as necessary in the AML Library. Point 2: this repo is considered the official version of AML Library by the committee of IEC63131 standard. Other works will not be recognized by the committee and will be client/customer's decision to use an alternative AML Library file. Point 3: limitations to be defined and possibly discussed with the IEC63131 committee for standard improvements.

The "core" definition of the AML Library shall be identical. Variations of function blocks/templates can be defined by a project under the "VendorfunctionBlockClass" image

CocoDico78 commented 3 years ago

Thanks for clarifying. Regarding point 2

this repo is considered the official version of AML Library by the committee of IEC63131 standard

could you link to a publication of the committee to support that assertion?

Regarding point 3, is there a preferred channel of communication to discuss those points?

atlewee commented 3 years ago

@CocoDico78 Nice to see external participants wanting to join forces! :) The objective of this repository is to be the IEC63131 library, but I am certain that this version has room for improvements as it stands today. Do you already have a feature complete AML library at your end? It would be interesting to compare libraries and pick/merge best solutions. People from the IEC63131 committee is following this work/repo, but this repo is for the exchange format and computer tools for encode/decode/validation++. Not the standard itself. I would be happy to put you in contact with members of the committee if you have concrete proposals. ( This work with AML library has uncovered some needed changes already )

alexandrevandamme commented 3 years ago

Hi @atlewee , our team is joining the Github repository with enthousiam. @cdenisey encourages us to tag our request for changes or improvements of the AML definition. Those should be tagged as questions for now until we get invited to participate to the IEC63131 committe. To answer your question (above) , yes, we implemented an import feature of the current AML files inside our workflow to show our compliance with the current AML library. However, most of our use-cases which are customer-driven include sequences with Go-To and loop-back features which are currently not supported by the IEC63131. For those particular use-cases, we allow ourselves the necessary deviations warning the user that the AML export will not comply with the standard. We are eager to reconcile those files as soon as the standard should allow it. @CocoDico78 could share a sample export file with you via email to illustrate the deviation.

Erik0x42 commented 2 years ago

Hi, @CocoDico78, @alexandrevandamme, Branch 'krafla' now has a (project specific, but generalizable) mechanism for merging non-standard and partial AML library with the core standard part (from branch 'main'). See script in folder 'helper-scripts'.