Operates from equipment compatible with the industrial network protocol OPC-UA, which is attracting attention from the perspective of Industry 4.0 / IIoT in the field of industrial automation. I have created a Java client rainy-opcua to get information. It should be noted that OPC-UA is only for simply acquiring operation information from the device.
The Eclipse project Milo is used for the Java implementation of the OPC-UA protocol stack and SDK. There seem to be several languages for implementing OPC-UA, but Milo is recommended for the Java version. If you ask a question on the mailing list about any questions, you will get a fairly good response.
rainy-opcua is a [sample code] for various OPC-UA clients included in Milo (https://github.com/eclipse/milo/tree/master/milo-examples/client-examples/src/main) / java / org / eclipse / milo / examples / client), and created specifically for the data acquisition function by the communication method of UA Binary Encoding. In that sense, it's an orthodox code that isn't strange at all. Data is acquired from the device by the general method of OPC-UA called Subscription & Monitored Item.
When creating it, I mainly read OPC Unified Architecture Specification Part 4: Services. .. Explains the RPC called from the OPC-UA client comprehensively for the services provided by the OPC-UA server. So, to create a client, you should read mainly Part 4. To access the OPC-UA documentation, you need to register as a user with the OPC Foundation.
For more information on implementing rainy-opcua, see Github Code Please refer. Milo supports the mechanism of "Part 4-6.5 Re-establishing connections", and rainy-opcua implements the interface prepared for this purpose. As a result, even if the OPC-UA server (device or protocol conversion server) goes down and the connection is lost, in many cases the session is restored (createSubscription & createMonitoredItems) when it is restarted. In the actual factory, it does not matter for the convenience of the OPC-UA client, and it is a response assuming that the device will stop.
As an aside, developing an OPC-UA server (not a client) with Milo can be a daunting task. The client sample code is good, but I don't think so about the server. In the first place, Milo doesn't have any documentation yet. Personally, it doesn't matter if the sample code is substantial ...
Generally speaking, I think that there are still a small number of devices currently in operation that are compatible with OPC-UA. In this case, the industrial network protocol of the existing device (eg EtherNet / IP (CIP) or [Modbus](https://ja. wikipedia.org/wiki/Modbus) etc.) needs a mechanism to convert to OPC-UA. In fact, there are commercial products for such protocol conversion. (I haven't seen it in open source yet)
In general, the life cycle of equipment is relatively long, such as a dozen years, so I think it will take some time to migrate. In addition, there may be some fields that do not have to be OPC-UA in the first place.
This series consists of the following articles:
[2019.11.16] For the latest information on simple tools, please refer to here.
Recommended Posts