0
votes

I read a lot more about OPC UA which is standard for IIoT. I understand the OPC UA concepts like client-server communication. I install a few OPC nuggets (as I am .net guy) and played with it. Still, I am confused about actual implementation.

Can anyone help me with the start-up guide? Mostly answer the following questions,

  • Is there any device dependency/pre-requisite to implement OPC? If yes, how to run this check?
  • How exactly the end-to-end communication happens? device->client->server?
  • Methods to connect with Azure IoT Hub while using OPC UA?

In summary, I would like to understand a real technical implementation picture.

1

1 Answers

4
votes

Your question is quite generic, but I will try to answer it anyway.


Is there any device dependency/pre-requisite to implement OPC? If yes, how to run this check?

In general there is no specific pre-requisite for the device. The only thing you need is some network connection (LAN, Wifi) and some memory. The rest really depends on your specific use-case. There are examples, where an OPC UA server is started on a small microcontroller, like the ESP32 (see https://github.com/pro/open62541-arduino) or STM32 with LwIP (https://github.com/open62541/open62541/pull/2511)


How exactly the end-to-end communication happens? device->client->server?

In OPC UA you have Clients and Servers. A device normally offers its data through an OPC UA server. If it needs data from other devices, it has to instantiate a Client and get this data.

If you look into the OPC UA specification, Part 1 (can be accessed for free after registration, https://opcfoundation.org/developer-tools/specifications-unified-architecture/) it states in chapter 6.1:

The OPC UA systems architecture models Clients and Servers as interacting partners. Each system may contain multiple Clients and Servers. Each Client may interact concurrently with one or more Servers, and each Server may interact concurrently with one or more Clients. An application may combine Server and Client components to allow interaction with other Servers and Clients...

With the newly (as of 2018) released Part 14, the OPC Foundation added the specification for Publish/Subscribe. This allows devices to publish data as multicast UDP messages, and clients can subscribe to this data.


Methods to connect with Azure IoT Hub while using OPC UA?

This is a specific question for the Microsoft Azure cloud. There is the concept of an Azure IOT Edge, more specifically OPC Publisher and OPC Proxy.

https://github.com/Azure/iot-edge-opc-publisher
The OPC Publisher is basically mirroring local OPC UA servers in the cloud and creating an "OPC Twin".

https://github.com/Azure/iot-edge-opc-proxy
The OPC Proxy allows you to call methods, write variable values and interact with local OPC UA Servers from the cloud.