eclipse-aaspe / package-explorer

AASX Package Explorer
Other
54 stars 20 forks source link

"Export OPC UA Nodeset2.xml", "Export AAS as i4aas-nodeset" and "Serve AAS as REST" do not work properly. #187

Open MartinAlejandroBaer opened 6 months ago

MartinAlejandroBaer commented 6 months ago

Describe the bug Since version "AASX Package Explorer V3 2023-09-12.alpha" I have detected several bugs:

Export OPC UA Nodeset2 To Reproduce Steps to reproduce the behavior:

  1. Go to 'File' - > 'Export'
  2. Click on 'Export OPC UA Nodeset2.xml (via UA server plug-in)'
  3. Save the .xml file.
  4. Create an OPC UA server instance with the generated .xml file.

Expected behavior The file should be importable without errors using the Python library for OPC UA "opcua-asyncio" to mount an OPC UA server. Export AAS as i4aas-nodeset To Reproduce Steps to reproduce the behavior:

  1. Go to 'File' - > 'Export'
  2. Click on 'Export AAS as i4aas-nodeset ..'
  3. Save the .xml file

Expected behavior The file should be generated with corresponding node structure.

Serve AAS as REST To Reproduce Steps to reproduce the behavior:

  1. Go to 'File' - > 'Server'
  2. Click on 'Serve AAS as REST ...'

Expected behavior The server should be created and display the traditional blue screen indicating all events.

I have checked these issues on two different computers with the same results.

Desktop 1

Desktop 2

MichaelHoffmeisterFesto commented 4 months ago

Hello,

let me state the current state.

"Export OPC UA Nodeset2 ..":

Over the course of multiple years, I put severe efforts into this, trying to keep the idea of I4AAS at live, which was discontinued from the OPC foundation. By some migration for the meta model V2 to V3, it is in some intermediate state. It is too painfull to delete and too outdated to be useful ;-)

And yes, I've never tested it with Python; I've only used the UA Expert to demenstrate it.

If there is a specific need from your side, I could try to do a quick fix on this node issue. But this would not imply that I would again spend hours over hours to guess what to do on the OPC library to get something working. It is a tainted miracle.

Elsewise I would propose to put a "do not use" warning on it.

"Export AAS as i4aas-nodeset .."

This function was maintained by some other collaborators and is, as far as I knonw, not longer maintained.

I would propose to put a "do not use" warning on it or even delete it, as I have no hope, that it will function again.

"Serve AAS as REST .."

Due to the course of reworking the aasx-server classes, this was shut down. I would have the hope that at some point in time, this would get up again.

MartinAlejandroBaer commented 4 months ago

Dear Michael Hoffmeister,

thank you very much for your reply.

Perfect. Understood with “Export AAS as i4aas-nodeset ..” and “Serve AAS as REST ..” functionalities. I've just reported the issue because the options were there. But I was not aware about the history and plans behind it.

Nevertheless, I would suggest to fix the feature "Export OPC UA Nodeset2 .." or release some new similar feature, because it is extremely useful to populate the nodes of an OPC UA server with the information model generated based on the definitions of the AAS. We even had the opportunity to make several practical implementations that allowed us to deploy the AAS as a service (which from my perspective, is one of the most important points to cover with the AAS). I believe this feature will be useful for future practical implementations of the industrial environment (allowing a bidirectional connection from OT to IT levels)

I also assumed that there was some inconvenience with the migration from version v2 to v3, due to the internal changes that I have observed. However, I could send you one very basic Python script to reproduce the issue and check if it is possible to fix it. I believe that the major inconvenience must be due to the new hierarchical position of the Asset, some elements of Submodels and the new Submodel Elements that have been incorporated.

In case that it is not possible to continue with this feature, I would like to ask you if there is any other possibility to expose the AAS using OPC UA that you find appropriate. Using an instance with a manual mapping process from other services such as REST or MQTT would be a bit impractical and non-interoperable.

Thank you very much in advance.

MichaelHoffmeisterFesto commented 4 months ago

Hi,

can you provide me with the Python script?

Best

Michael

Von: MartinAlejandroBaer @.> Gesendet: Sonntag, 12. Mai 2024 22:34 An: eclipse-aaspe/aaspe @.> Cc: MichaelHoffmeisterFesto @.>; Comment @.> Betreff: Re: [eclipse-aaspe/aaspe] "Export OPC UA Nodeset2.xml", "Export AAS as i4aas-nodeset" and "Serve AAS as REST" do not work properly. (Issue #187)

Dear Michael Hoffmeister,

thank you very much for your reply.

Perfect. Understood with “Export AAS as i4aas-nodeset ..” and “Serve AAS as REST ..” functionalities. I've just reported the issue because the options were there. But I was not aware about the history and plans behind it.

Nevertheless, I would suggest to fix the feature "Export OPC UA Nodeset2 .." or release some new similar feature, because it is extremely useful to populate the nodes of an OPC UA server with the information model generated based on the definitions of the AAS. We even had the opportunity to make several practical implementations that allowed us to deploy the AAS as a service (which from my perspective, is one of the most important points to cover with the AAS). I believe this feature will be useful for future practical implementations of the industrial environment (allowing a bidirectional connection from OT to IT levels)

I also assumed that there was some inconvenience with the migration from version v2 to v3, due to the internal changes that I have observed. However, I could send you one very basic Python script to reproduce the issue and check if it is possible to fix it. I believe that the major inconvenience must be due to the new hierarchical position of the Asset, some elements of Submodels and the new Submodel Elements that have been incorporated.

In case that it is not possible to continue with this feature, I would like to ask you if there is any other possibility to expose the AAS using OPC UA that you find appropriate. Using an instance with a manual mapping process from other services such as REST or MQTT would be a bit impractical and non-interoperable.

Thank you very much in advance.

— Reply to this email directly, view it on GitHub https://github.com/eclipse-aaspe/aaspe/issues/187#issuecomment-2106367090 , or unsubscribe https://github.com/notifications/unsubscribe-auth/APUNMR4VCBR6D47XTUO4RWDZB7G4DAVCNFSM6AAAAABE3GQYXKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBWGM3DOMBZGA . You are receiving this because you commented. https://github.com/notifications/beacon/APUNMR75TTIO3W7MTAGFYCDZB7G4DA5CNFSM6AAAAABE3GQYXKWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTT5RSOHE.gif Message ID: @. @.> >

MartinAlejandroBaer commented 4 months ago

Hello,

of course.

Here I prepared a repository with a basic example of the OPC UA server Link

Only the library asyncua needs to be installed

I've also attached three files that contains the following:

Let me know of any other way I can help or contribute.

Regards.

Martin Bär