Industry 4.0 is about smart manufacturing, big data analysis, machine learning, artificial intelligence and automation. The core to a successful industry 4.0 adoption is communication. An efficient and effective communication needs to be established between machines, within the individual machines, between machines and people, between machines and other application systems. So, what defines efficient and effective communication? First, a common language needs to be established. Imagine one talks in English and the other speaks in Chinese. Will they be able to communicate? Secondly, a secured communication environment needs to be established. Imagine there is no privacy in communication, everything you say or do is exposed to a third party. Not only is the information exposed, but the third party is also able to inject false information into the communication. Isn’t it scary? Lastly, the capability for proactive communication. Imagine a chef and a server working together to run the dining operation. The server can ask the chef every 5 minutes for the food to see if it is ready. Sometimes the food will be ready and sometimes it won’t. When the food is not ready, it is an extra communication effort that doesn’t push the service forward. This type of communication is inefficient and ineffective. A better way of communication is for the chef to proactively tell the server when the food is ready so that no extra efforts are wasted. To achieve the efficient and effective communication described above, a standard communication protocol is developed: UPC-UA (open platform communication – unified architecture). In this article, let’s look into the attributes, composition, and communication methods of OPC-UA.
Before we dive into OPC-UA, let's first talk about what does efficient and effective communication in the production line has to do with you? Maybe this is something that is pursued by the big corporations and you’re just a SME. To ponder upon its relevancy, let’s go through a few questions and see if you would care? If these questions are indifferent to you, then this topic will be irrelevant to you at this point in time. However, if you do care for it, then it is a topic that deserves your attention.
- Would you like machines to malfunction in the middle of a production leading to multiple days of downtime or would you like to maintain and replace the machine parts on the verge of breaking beforehand?
- During each maintenance, would you prefer to change the parts according to the schedule regardless of its condition or would you rather change the parts according to their usage condition and save tons of costs?
- In order to get a grasp of what’s happening at the production floor, such as what is the progress of each job? How is each machine doing? Are we ahead of schedule or behind? You would have to personally run down to the production floor every time. When there is an issue with the production, you always lag behind in finding out causing you to lose more than needed.
- Whenever your customers ask you about the delivery time, you are only able to provide a guestimate. Each job order often requires going through multiple processes, making job scheduling a complex task. Not to say when an issue arises or a last-minute expedite order is requested, the job scheduling task will turn into chaos in no time. Much time and effort are needed to adjust the job schedule back to its correctness. Just when you think everything is under control, you get another adjustment request. Just like that, you are drawn into an infinite loop of chaos.
To sum up, what were we talking about above? We were talking about preventive maintenance, condition-based maintenance, real-time production dashboard, and automatic production scheduling. All these are based upon the capability to perform efficient and effective communication
OPC-UA has integrated the OPC-DA, OPC-A&E and OPC-HDA communicated protocol together. To integrate the capability for data access, alarm & event, and historical data access. Together, formulating an OPC-UA structure. Some of the OPC-UA attributes include:
- OPC-UA supports cross-platform installation, development, and execution. Such as Windows, Linux, macOS, Android…etc.
- An open source to download and develop
- Built-in security module for secured communication
- Built-in data model where data is structured into nodes. nodeID is used to describe, organized, and execute data.
- Support the subscription functionalities between clients and servers
- Support data monitoring, where the alarm can be sent out automatically under predefined conditions.
The OPC-UA system consists of the server and the client. The server is responsible for the connection to the machine, gathering the data from the sensors, actuator, drivers…etc. The client is responsible for retrieving and writing information from and to the server. To present the information to users. Servers can be installed on various hardware devices including computers, IIOT devices, PLC, Raspberry PI…etc. This is the same for the client.
OPC-UA Communication Method
The first step to communication is to establish a connection. Below states the information that is needed to establish a connection.
- Endpoint URL: indicating the protocol and the server location
- Security Policy: the server certification that includes information such as organization, certificate issuer, valid period…etc.
- User Token: Managed on the server and distributed to the client as user account and user password
After establishing a connection, the client needs to be able to find the information on the server. OPC-UA uses nodeID to describe the location of the information. An nodeID will consist of NameSpaceIndex(unique ID), Identifier Type(data type) and the identifier(location on the server). Furthermore, each node holds information on its relevancy to other nodes in the system for reference.
Finally, the last step is to execute an action on the information. OPC-UA has an object-oriented structure. The execution objects include variables, methods, and events. Variables indicate the information that needs to be processed. The method defines how the information should be processed. For instance, read, write or subscribe. Event controls the settings to proactively fire alarms under predefined conditions.