02/24/2022
Hi,
At the moment we develop our own OPC-UA server using the following Python library:
https://github.com/FreeOpcUa/p.....thon-opcua
We now are thinking of switching to a commercial product.
The product we tried is KEPServerEX with the MQTT client driver on Microsoft Windows.
This works but we would like to have an implementation on Linux.
Any suggestions would be appreciated.
Thank you.
Regards,
Simon.
02/24/2022
Randy Armstrong said
What are you looking for in a commercial server?A kepware like product with drivers for almost everything?
Or do you have specific needs?
Hi Randy,
Sorry for the late response. I thought I would get notified of new comments but that is not the case.
The Python library that we now use to create an OPC-UA server has occasional quirks. This takes us a lot of time and effort to solve. That is why we thought it would be good to look at a commercial solution where we have maintenance and support. Building an OPC-UA server is not our core business.
Kepware's solution where we send JSON messages to our MQTT broker which are picked up by the Kepware MQTT client and transformed to OPC-UA format and made available to external systems (e.g. DCS) is what would work for us. The extra tooling (configuration, OPC-UA client, ...) surrounding it is a nice bonus, but not strictly necessary. Furthermore, the price for this Kepware setup with the MQTT client is also not based on the number of tags, which is also attractive to us.
But, we do prefer Linux instead of Microsoft Windows so that is why we are looking for alternatives.
Thanks for your response and hope you can help us further.
Regards,
Simon.
02/24/2022
But with a commercial SDK we still have to build the OPC-UA server itself right? And get the messages in using e.g. mqtt. The same as we do at this moment with the Python library.
We were thinking of buying a COTS solution for this that runs on Linux. Just run the software and do not bother with the details. Mqtt in, OPC-UA out. That's it.
Or am I mistaken? I'm not that familiar with OPC-UA to be honest.
And again, sorry for the late reply...
05/30/2017
You have to program the mapping between the MQTT messages and OPC UA. This requires a considerable amount of configuration even of you are using a product like KepServer and that is only of if the format of the messages conforms to what KepServer expects.
If you have existing messages that need to be mapped you need custom code.
02/24/2022
Well, I tried KepServer with their MQTT client and and it was surprisingly easy to get messages emitted from OPC-UA server.
MQTT broker --> Kepware MQTT client --> KepServer (--> OPC-UA server)
I just had to send the message in the correct format to our MQTT broker and let KepServer to detect the tags and data types and that's about it.
Looking at our own implementation of the OPC-UA server this was a breeze.
Okay, I had to actually create the devices in KepServer but that was about it (maybe this can be automated as well by a certain OPC-UA message format? Not sure...).
But maybe I misunderstood.
When you wrote SDK I assumed this is "just" a library with the OPC-UA implementation. Something that we can use to create our own OPC-UA server.
KepServer on the other hand is a complete product where I do not need to program myself. I prefer to have such a solution. The only drawback for us is that is only runs on Windows where we prefer Linux.
So that is why I was asking for a KepServer like product where we do need to program ourselves that runs on Linux.
Hope this makes sense.
05/30/2017
KepServer provides an automated way to convert the MQTT messages to an OPC UA address space.
This saves you a lot of effort if you can live with the format required by KepServer.
You may want to look at Java based products, such as Ignition.
02/24/2022
We evaluated the Ignition product on Linux/Docker and it looked very promising. We were able to create/read/update/delete folder/tags using REST API. But unfortunately their OPC server implementation could not emit any other status code than Good and Bad. And we need to have more control.
So we have to look for another OPC-UA solution. Any suggestions are appreciated.
We are also thinking about your suggestion for a commercial solution. Because we want to deploy on Linux I guess Java would be a good choice. Python would also be an option, but I could not find a commercial solution there.
https://www.unified-automation.....e-sdk.html
Any directions and input is appreciated.
BTW
Converting JSON to OPC-UA using MQTT gave us a problem with e.g. datetime fields that are processed as string. Data types are automatically derived from the JSON value which is not always what you want. There is no type hinting available. We found this to be an issue in most implementations and could not find a solution.
05/30/2017
Converting JSON to OPC-UA using MQTT gave us a problem with e.g. datetime fields that are processed as string.
Which is why the UA spec defines a datatime format to use:
02/24/2022
Randy Armstrong said
Sounds like a lot of work to do something that could be done easily with a commercial SDK.You have choices in Java, C# and C++ which would all be more reliable than the open source Python library.
We would like to investigate this path.
We see several SDKs available and find it difficult to choose one.
What we are looking for is the following rather basic functionality:
- Client
- Create/read/update/delete nodes
- Ability to set the status code of a node
- Server
- Full security / authentication features
- Internal storage of the nodes structure and values
Platform: Linux or agnostic
Language: Python, JavaScript, Java, C++, ...
Any suggestions or directions are appreciated.
1 Guest(s)