At HashStudioz we have finished the third project on OPC-UA for different customers across the globe. So I thought why not write a blog on OPC-UA to share my practical knowledge? Since we are discussing OPC-UA as the future of IIOT, we need to first understand the definition of IIOT.
As per Wikipedia, IIOT is the interconnected sensors, instruments, and other devices networked together with computers’ industrial applications, including manufacturing and energy management.
In a nutshell, the Industrial Internet of Things is getting all the data in digital format within the manufacturing facility /unit/ Enterprise. Any consumer of data can get access to the data when they need it.
The IIoT is enabled by technologies like cloud computing, cybersecurity, edge computing, mobile technologies, machine-to-machine, 3D printing, advanced robotics, the Internet of Things, RFID technology, and cognitive computing.
Table of Contents
What is OPC UA?
Now we need to understand what OPC-UA is so that we can better understand how it is related to IIOT. Let’s see the definition of OPC-UA by Wikipedia,
OPC Unified Architecture (OPC UA) is a machine-to-machine communication protocol for industrial automation developed by the OPC(Open Platform Communications) Foundation.
It is an industrial standard for packaging the data from the edge, Edge is machined in industrial units, PLCs, and Pneumatic controls. OPC-UA is standard for how you communicate between servers and the devices placed in industrial units, and how data should be packaged in its payload.
OPC-UA is the grandchild of OPC-DA( Data Acquisition). OPC is all about data exchange. While OPC-DA is based on D-COM and can work only with Windows products. It is not compatible with Linux or MAC. OPC-UA is the advancement of OPC-DA, and OPC-UA is technology agnostic. One can run on Linux, Windows, or MAC.
Both standards are written by the OPC Foundation. The OPC Foundation is an industry association that creates and maintains standards for the open connectivity of industrial automation devices and systems.
Hashstudioz have developed OPC-UA adapter on top of the rest API using the open source node OPC-UA server and the client.
Are You having similar project requirements? We help you build the solution.
Let’s DiscussOPC UA – Future of IIOT
Let’s focus on the question under discussion “Is the OPC-UA Future of IIOT”?, In my opinion, any IIOT protocol should have the following three qualities:
- OPEN – It should be an open protocol and should be open to communication with other products. There are multiple open sources for connectivity available, so it should have the option to integrate.
- Reports by Exception – It should be edge-driven and should send updates to the server which is saving the data that clients will consume. There is no point in publishing the data that has not been changed.
- Lightweight and stable – It should be lightweight and stable, It can not consume tons of bandwidth on the network.
OPC-UA satisfies all the features that IIOT protocols should have. OPC UA could deliver an architecture appropriate for the Internet age, delivering modern transports, security technologies, data, and transaction specifications. The last two items are the key to a complete solution and were the defining criteria for its selection as an IIoT (Industrial Internet of Things) ready Dream Report interface.
There are multiple alternate IoT Protocols such as MQTT, AMQP, and CoAP among others, but many only define transports and not data structures. As a communication protocol for industrial automation, the OPC Unified Architecture (OPC-UA) has quickly become the protocol of choice as the number of Industrial Internet of Things (IIoT) deployments continues to grow.
To let you provide some practical knowledge I would like to share some details of the based project delivered by our HashStudioz team
OPC UA-based project delivered by HashStudioz
1. Production Dashboard:
HashStudioz Technologies delivered this project for Canadian customers. The customer is using WinCC -RT which is a Siemens automation/monitoring platform. WinCC-Rt is used to manage communications with PLC. It has a built-in OPC-UA server. Customers will enable OPC-UA on WinCC-RT and share the connection endpoint. The Hashstudioz team developed and deployed an OPC-UA client that connects to the PC-UA server and fetches the required tags. Customers are now able to supply the list of tags that need to be read from WinCC-RT. The component that will be developed and designed by HashStudioz development team is the following:
We used an open-source OPC-UA Python client and saved the data in the database. We used the Django framework to create the JSON API which is consumed by the frontend to create a dashboard.
2. Kepware OPC-UA Integration:
This project was similar to the previous project wherein the WinCC customer was using kepware. We created an OPC-UA client in node.js In contrast to permanently reading information (polling), OPC UA provides a more elegant functionality, a so-called Subscription. A UA client can subscribe to a selection of Nodes of interest and let the server monitor these items. Only in case of changes, e.g. to their values, the server alerts the client about such changes. This mechanism reduces the amount of transferred data immensely. In addition to the reduction of bandwidth, this mechanism introduces further advantages and is the recommended mechanism to “read” information from a UA Server. This feature is mentioned in the basic requirement for IIOT protocols. The client and server should work on a change of data and should not send all the data.
3. Adapter between API and OPC-UA :
This is an interesting project HashStudioz developed for a German customer. The customer has an indoor asset tracking platform that can receive the data through API. The Client’s end client was not technical enough to consume API and send the data but was good at publishing the data as OPC-UA Client. We achieved this by setting up an open-source node. js-based OPC-UA server.
OPC-UA Future of IIoT server creates a function named APICALL, This function will have two parameters 1) API name and 2) Argument list, OPC-UA client can call this function, and pass the API and parameters, The System will call the API and will return the response to Client.