Next Gen Industrial Automation Interoperability

How Do We Get There From Here?

Posted by dave on June 11, 2024

The emergence of generative AI along with the convergence of information and operational technologies (IT/OT) are helping to drive the next wave of industrial innovation. Automation is taking over the plant floor and moving up the corporate ladder. This wave of innovation has deep roots in the plant but expands beyond the industrial facility to embrace assets, small and large, that are integral to the enterprise supply chain, no matter where they happen to be located. Industrial processes that consist of continuous, batch, discreet, and robotics need to be seamlessly stitched together and managed within an integrated enterprise. As the evolution of closed-loop automation systems continues, newer technologies will supersede existing technologies. But, as in evolution, the plant must survive while it adapts. The organs that make the plant function must not be compromised. Many exciting opportunities are on the horizon that will grease the wheels of global industrial manufacturing.

Generative AI has reached a tipping point and is poised to raise the productivity and efficiency of many domains, including industrial manufacturing. Once AI attains a level of trust and reliability, automation will not be far behind.

Secure, scalable gigabit networking has penetrated into every nook and cranny thanks largely to entertainment. Video streaming pushed bandwidth and online gaming drove low latency. The flow of data is essentially at full throttle. The stage is almost set but…

Interoperability: Systems Working with Systems

No single vendor can provide all components needed for automating an industrial manufacturing enterprise. (Marketing brochures don't count!) Multi-vendor interoperability is critical but vendors are in fierce competition. This tug of war continues today. When vendors realize that a rising tide floats all boats and that the market is not a zero sum game, standards start to look pretty good.

But interoperability is hard! Interoperability is far more than moving bits. It's about moving information. Bits blossom into characters and words, that turn into sentences, that convey concepts about the world. Technology moves fast, the world not so much. The meaning and context of the information, the metadata, the semantics, the "data about the data" changes slower than the data itself. This semantic information can be reflected in a structured set of information models that provide the scaffolding for enterprise information. It's the bedrock for plant and enterprise information. The stronger the foundation, the more effective the automation.

For more information: https://gridwiseac.org/pdfs/GridWise_Interoperability_Context_Setting_Framework.pdf

OPC: Industrial Interoperability

Back in the day, as industrial automation was rapidly evolving in the 1990's, there arose a need for standard interfaces that enabled moving plant data between systems from different manufacturers.

OPC was formed to enable Windows PC's to browse and access plant data in a standard way. In those days, plant data was a "bag of tags". Tags had a tag name, value, timestamp, units, and quality, but not much else. Tags were historized, alarmed, displayed, and reported. Soon the "bag" grew into a "mountain of tags"! To be fair, we got a lot of mileage from that bag of tags as systems integration became easier and cheaper. It even became possible to propagate changes at the sensor level up the enterprise food chain. I'd love to get a byte count of the data that has passed through an OPC interface.

We should all be familiar with the "2nd law" of increasing entropy. It takes work to create order from chaos. As tags began to infiltrate apps throughout the enterprise, it became clear that industries are complex and dynamic and that operational systems had to deal with complexity and be dynamic. Entropy was increasing.

OPCUA: Information Models and More

Taming entropy meant that models were needed to help understand what data means, where it comes from, how it fits into the organization, and much more. It also became clear that technology would bring more ways to move bits. As a result, OPC built upon its success with interoperability and created OPCUA (OPC Unified Architecture). OPCUA was built from the ground up to evolve and adapt. The specifications are available at https://reference.opcfoundation.org/. Data is decorated with metadata that enables discovery inside a flexible information model that exposes data at the interface while using different transports to move the bits. The core information model has been extended with a large number of "companions" that cover specific industries with specific types of equipment and processes. (https://reference.opcfoundation.org/) Along with these models is a marketplace for compliance-tested products (https://opcfoundation.org/products/) and an open-source toolkit (https://github.com/OPCFoundation/UA-.NETStandard). The ability to navigate through this broad but structured information held within systems from different manufacturers down to the lowliest sensor is more than a "nice to have"! It's a requirement in the unforgiving world of industrial automation and closed-loop control. OPCUA has grown to fill this need.

Industrial Information Models: A Forest Full of Trees

Trees have roots, a trunk, branches with leaves and flowers. Trees are a natural way of organizing and structuring hierarchical information. Hierarchies are everywhere. With few exceptions, they live inside every web server and file system. As a tree grows, branches can relate to other branches in a mesh-like structure. The tree containment hierarchy can be viewed as a root node containing many layers of branch nodes finally terminating at leaf objects. The first challenge is to define the type of nodes allowed along with object variables, events and methods that are relevant to a specific industrial domain. The second challenge is then to organize those nodes into a browse space that maps onto the specific real-world facility.

Moving Bits: The Rise of Publish/Subscribe and Data Streaming

Client server request-response is the baseline pattern for pulling data. The requestor client connects to a physical server and is in control of the flow of data. Ask for it and receive it. If the client doesn't receive it, then something went wrong. Pulled data is reliable and used everywhere a web page is requested.

A message bus provides a transport mechanism that enables clients to be separated from servers. The client subscribes to a logical data feed and data is automatically published to that client. The client and server are decoupled. Publish/subscribe streaming is ubiquitous and can efficiently move large amounts of data. I can enjoy a flicker-free Netflix movie thanks to streaming bits. This is not a new concept. OPCUA has supported publish/subscribe over different transports for many years and is ready for a coming out party thanks to MQTT and JSON.

It should be noted that these two patterns, request-response and pub/sub, are very different. Both have advantages and disadvantages. Request-response is possible with pub/sub but it's not straight forward. There are reasons OPCUA treats them separately.

The Rise of MQTT

MQTT (Message Queuing Telemetry Transport) is a standard publish/subscribe transport protocol. Mosquitto (https://mosquitto.org/) is an open source broker and many cloud providers support MQTT, such as HiveMQ (https://www.hivemq.com/). MQTT is fast, lightweight and widely-used for Internet of Things (IoT) data streaming. It's also very handy for decoupling a suite of clustered applications.

For more information: https://blog.isa.org/what-is-mqtt-and-how-can-industrial-automation-companies-use-it

MQTT publishes data to a "topic". Topics are strings that filter messages for a subscriber and consist of one or more levels separated by a forward slash such as "myplant/southarea/alkyunit/furnace1/temperature". Payloads are usually JSON encoded strings.

For more information: https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/

OPCUA has an open source starter kit for pub/sub over MQTT. The code is written in C# and runs on Windows and Linux. It can stream JSON data over MQTT from an existing OPCUA server, or run in a Raspberry PI with just a few data points. OPCUA products that support MQTT are available.

For more information and code: https://github.com/OPCFoundation/UA-IIoT-StarterKit

The Rise of JSON

JSON (JavaScript Object Notation) is the defacto standard object encoding widely used on the Internet. It defines a concise notation for packaging data into structured text objects. These objects can be easily created and consumed with a few lines of Python code and efficiently moved around the network with any protocol that can transport text, including MQTT.

Here is an example of an OPCUA Pub/Sub JSON message from the starter kit:

{
  "DataSetWriterId": 102,
  "PublisherId": "Site_Riverdale:ProcessCell_West",
  "SequenceNumber": 59315,
  "MinorVersion": 1717656341,
  "Timestamp": "2024-06-09T16:38:29.227931Z",
  "MessageType": "ua-deltaframe",
  "Payload": {
    "DrumX001/LIX001/Output": 198.89,
    "FCX001/ControlOut": 6.65,
    "PipeX001/FTX001/Output": 13.3,
    "PipeX002/FTX002/Output": 6654.14
  }
}

MQTT Unified Name Space

MQTT topics form a tree-based information model similar to an OPCUA information model. Organizing information involves creating a tree structure that maps onto the relevant industrial domain. This can be referred to as a "Unified Name Space" or UNS. It needs to be well thought-out upfront in the context of a specific facility because changes can break the topic tree as it grows. The good news is that leaves and branches can be added as needed. Here's a simple example:

For more information and a demo about UNS With OPCUA: https://www.youtube.com/watch?v=msHuYyUA5xs

Conclusion

OPCUA with MQTT is a win-win combination. Data streams from edge devices that support ad-hoc MQTT can be integrated with OPCUA streams through a well-designed UNS topic tree while OPCUA brings significant industrial functionality along with vetted information models to the party. OPCUA is not bound to a particular transport de jour but can adapt and move into an unknown future while not letting go of the past. Survival is all about adapting to change.

OPCUA is a mature industrial protocol supported by many certified industrial products in a competitive marketplace. For those willing to move up the learning curve, there's a lot of built-in functionality ready to be uncovered. The core concepts are simple, and there are many resources on the web, and videos on YouTube, especially TheOpcFoundation channel.

There's an old saying that rings true today. "If the only tool you have is a hammer, everything looks like a nail." My Dad would say, "Get the right tool for the job." He was a wise man.

Dave Hardin