What is OPC UA
Industry 4.0 context:
Before we see what OPC UA is, it is important to understand its relevance in Industry 4.0 context. There may be many definitions for what Industry 4.0 is. Some say it’s about improving productivity; some say it’s about mass customization, our opinion is that Industry 4.0 is all about new business models.
Why do we say that “Industry 4.0 is all about new business models”? In our experience interacting with customers across the globe we have come to realize that while ideas about improving productivity might get you a meeting with a customer, no customer is going to start a project merely for incremental improvement of existing process. Also, technologies like IIoT, AI, AR and Block-chain have reached a stage where they can be combined in ways where we can have disruptive improvement to a business model and customers are waiting to start such project.
One of the biggest challenges faced by organizations when exploring new business models is Interoperability.
OPC UA for Industry 4.0 Interoperability
The infrastructure and systems used for delivering essentials such as food, utilities, oil and gas have been developed over the last 100 years. These systems have been semi-automated in the last 30 years and cannot be replaced in one day. Enterprise systems are sophisticated like Enterprise Resource Planning (ERP) and Manufacturing Execution Systems (MES). The challenge is how to connect the factory floor architectures with the enterprise systems.
Having said that, the solution to Interoperability problem is around the corner. There is a customer pull as people who are used to smartphones and just-in-time services begin to expect more such experiences from the products and services they use. In line with these expectations, several large companies are coming together to find new ways to satisfy their customers.
As part of these initiatives there is effort to converge Information Technologies such as ERP, CRM, etc., and Operational Technologies such as PLCs, SCADA, etc. There is broad consensus that Open Platform Communication Unified Architecture (OPC UA) can be the important glue to deliver this convergence and address the Interoperability challenges that block the take-off of Industry 4.0.
No Industry 4.0 without OPC UA
Industrie 4.0 was one of the future projects adopted in the “Action Plan High-tech strategy 2020” by the German Federal Government in 2010. This encouraged the business associations BITKOM, VDMA and ZVEI to establish the Platform Industrie 4.0 in 2013  .
In the year 2015, the Platform Industrie 4.0 created the Reference Architecture Model Industrie 4.0 or RAMI 4.0 for standardizing the model that would be used to realize Industry 4.0 applications. As part of the overall architecture of RAMI 4.0, OPC UA is recommended as the one and only standard for realizing the communication layer and this made it clear that there will be no Industry 4.0 without OPC UA.
History – from OPC to OPC UA
As the information technology wave took over in the 90s, the need for data from the machine world also rose. Automation vendors, like Fisher-Rosemount, Intellution, Opto 22 and Rockwell software formed a task group to develop standards for data access. This led to the formation of OPC Foundation in 1996 as a formal organization to handle the key aspects of interoperability, compliance, validation and certification of OPC technology.
OPC classic provided separate specifications for exchanging process data, alarms and historical data. OPC classic was operating at higher layers and not at the field level machine-to-machine communication layer. Some limitations with OPC classic were its platform dependence (Microsoft DCOM), vulnerability to attacks, data inconsistencies and inadequate data models.
In 2008, OPC Foundation integrated all the functionality of OPC classic into one extensible framework which is platform independent and brought in a Service Oriented Architecture, that is now known as OPC UA. OPC UA has emerged as the next generation of OPC classic and can exist both in the factory floor and the enterprise. OPC UA provides an easier way for modeling of objects available around the factory floor and making them available to enterprise systems. OPC UA is a more secure and reliable mechanism for information exchange between enterprise systems. OPC UA operates on different hardware platforms and operating systems which provides interoperability among devices from multiple vendors.
OPC UA architecture for IT/OT convergence
At the SPS IPC Drives fair 2018 in Nuremberg/ Germany the OPC Foundation officially launched the Field Level Communications (FLC) initiative that aims for an open, unified, standards-based Industrial Internet of Things (IIoT) communication solution addressing all requirements of industrial automation in discrete manufacturing and process industry. This initiative will enable vendor independent end-to-end interoperability of field level devices for all relevant industry automation use-cases requiring safe, secure and deterministic information exchange. This includes horizontal integration for controller-to-controller (machine-to-machine M2M) communication and vertical integration from sensors/actuators and controllers in the field to IT systems or the cloud and vice versa  .
OPC UA Features
OPC UA is based on an extensible framework with a multilayered architecture to accomplish these design goals:
OPC UA Information Model
Industry 4.0 applications will require modeling of complex multi-layer structures (needed to present information and not merely data) which is possible with the object-oriented capabilities of OPC UA and its information modeling framework. The rules and building blocks that are required to model and expose an information model using OPC UA are defined in this information modeling framework. OPC UA already defines several generic core models that can be applied in many industries. For the scenarios where generic models are insufficient, OPC UA also allows customer/industry specific information models to be built on top and exposed via standard mechanisms  .
- Browse model instances and their references
- Read/write current and historical data
- Notify data change and events
- Execute methods
OPC UA Client Server
All the above types of information model access are possible when using Client/Server communication mechanism via services supported by the OPC UA Server. In this case, the OPC UA Server receives requests from the OPC UA Client, processes those requests and sends the response with the results back to the OPC UA Client. It is to be noted that Client/Server communication (which is for a single client with guaranteed delivery) is resource intensive and better suited for one-to-one configuration, diagnostics or low frequency access requirements.
OPC UA PubSub
On the other hand, for applications that require many-to-many and/or high frequency access requirements, Publish-Subscribe (PubSub) provides an alternative and optimized communication mechanism for data and event notification. In this case, requests and responses are not exchanged between Clients and Servers. Rather, OPC UA Publishers send messages to a message broker and OPC UA Subscribers subscribe to and receive messages of interest from the message broker  .
OPC UA Transport
OPC UA supports two transport protocols – one of them being the binary protocol over TCP and the other one using web services. The binary protocol offers the best performance and requires the least resources to implement (is important for embedded devices) and offers best interoperability. The Web Service (SOAP) protocol is best supported with Java or .NET environments, and is firewall-friendly, using standard HTTP(S) ports.  .
OPC UA Security
OPC UA has security built in from the ground up and supports session encryption at various encryption levels, message signing to verify origin and integrity of messages along with sequencing of packets to protect from message replay attacks. OPC UA also supports authentication at the UA client and server (application/system level) and granular access control at the user level. Furthermore, all user/application/system activities can be logged for audit requirements  .
OPC UA Certification
Use of certified OPC UA products ensures that end-users can reduce their system integration costs when deploying OPC-based systems. Certification ensures that the products meet OPC Foundation requirements for interoperability, reliability and minimum performance. Based on the level of implemented functionality, there are four profiles according to which OPC UA servers can be tested for certification:
- Nano Embedded Device Server (suitable for smallest of sensors)
- Micro Embedded Device Server (suitable for lower cost PLCs)
- Embedded UA Server (suitable for more powerful PLCs and edge gateways)
- Standard UA Server (full-fledged implementation supporting all features)
OPC UA SDK
OPC UA SDK or software development kit is a toolset that can make it easier to implement an OPC UA server or client without having to know all the internals of OPC UA technology. OPC UA SDKs are available in various languages – C, C++, Java, .Net, etc.
Embedded OPC UA
Embedded OPC UA SDKs are focused on enabling OPC UA implementations that consume the least memory and CPU resources. This is especially important when developing an implementation on a resource constrained embedded target such as an ARM Cortex M4. One such example of an Embedded OPC UA SDK can be found here https://www.kalycito.com/opc-ua-sdk/
OPC UA Demo
Looking for a step by step quick start to setup an OPC UA demo? Checkout this demo setup guide https://www.kalycito.com/running-opcua-on-raspberry-pi