Hacker News new | ask | show | jobs
by jpfr 1620 days ago
There's quite a bit of OPC UA bashing across this project. So let me chime in to keep the "balance in the universe".

OPC UA is a protocol to interact with an object-oriented information model. Basically CORBA done right to use object-oriented principles and reuse software components in industrial automation.

Since OPC UA is a protocol, its performance depends mostly on the implementation. Some PLCs may be crappy. But that doesn't translate into bad performance overall. My experience goes to the exact contrary.

Full disclosure, I lead-develop and maintain an open source OPC UA implementation that sees quite a bit of use by the big guys in the automation domain. We use C for performance. And we do have funding from the industry.

https://github.com/open62541/open62541

But yes, it is hard to break into this world. Especially since solutions have to be maintained for 20+ years. A solo developer usually cannot ensure that this will still be usable some years down the line.

1 comments

First, a bit of off-topic, but do you know we keep #open62541 open for you on Libera.Chat? :D

I think the biggest issue I encountered with OPC-UA is the rather random nature of implementations from vendors.

For example, I had S7-1500 PLC deployed on a project, and we used OPC-UA to talk to it as well as to expose internals of the program that was talking to it.

We also had WinCC HMI, and while it could do basic read-write access to OPC-UA, we couldn't attempt to go for Method Calls, which would have considerably simplified a bunch of things for us.

Meanwhile, FreeOPC-UA (python) turned out to be a bit buggy ;)

It's a quite nice system, and I really like the object-oriented nature of it and support for modeling instead of random soup of PLC tags that appears to be the norm. Standard industry models for various components help extra there.

Currently I'm looking into implementing a wrapper around open62541 for Common Lisp and Ada, and possibly a CORBA & DDS translator for it. Originally I missed PLC4X completely, and we needed to talk to S7-1500 as soon as possible and kinda got stuck with Python, now I wish I could do it in Lisp or Ada and get it done probably much faster :)

> First, a bit of off-topic, but do you know we keep #open62541 open for you on Libera.Chat? :D

Ahh, that's you! I came in to say hi on the channel whn you announced. But the channel was rather unresponsive. Will do that again with a bouncer to keep the connection open over night.

Ada and Lisp are both really nice languages. Much success with that!