There’s a lot of talk today about the integration of the “Enterprise” and the “Factory Floor.” I’ve enjoyed a lot of this discussion. Rockwell has a great picture of something they call the “Convergence Man.” It’s a guy split in two with a hardhat and factory smock on his right side and the more formal shirt and pants of an IT guy on his left side.
There’s also a bunch of new terms being thrown around like “Digital Factory” and “Integrated Intelligence.” But however you look at it, there’s more and more talk (and action) toward linking the factory floor with systems not directly involved in factory floor control. The Enterprise systems can be big and sophisticated like ERP and MES systems or they could be as simple as a recipe manager on your server that downloads 20 tags once a day.
No matter what you’re doing, there’s a key distinction between the systems on the factory floor and in the Enterprise that not many people understand. This difference is between what I call “loosely-coupled” systems and “tightly-coupled” systems. I don’t think these are new concepts but I’m not sure they’ve been examined in the light of the current trend toward the integration of factory floor and Enterprise systems.
I would argue that factory floor systems should be labeled tightly-coupled. Systems that use Profibus, Profinet IO, DeviceNet, EtherNet/IP or any Modbus version have a very strict architecture. These are really I/O systems, as much as the folks at the ODVA and PI (Profinet International) would have you believe otherwise.
Let’s look at the main characteristics of these Tightly Coupled Systems:
A Strictly Defined Communication Model - The communication between these systems is inflexible, tightly regulated and as deterministic as the communication platforms allow.
A Strictly Defined Data Model – The data (really I/O for most of these systems) model is predefined, limited and inflexible.
Strictly Defined Data Types – The data types transported by these systems are limited, predefined and supported by both sides. There is no ability to send data in an open and universal format.
We could look at any of the factory floor protocols but let’s take EtherNet/IP as an example. EtherNet/IP has a very strictly defined communication model. A Scanner uses a very precise communications model in communicating with its Adapters. The Adapters are preconfigured, all data exchanged is predefined and nothing changes without human intervention. The Data exchanged is part of the Adapters predefined Object Model and the data is formatted in a way supported by both the Scanner and the Adapter.
Tightly coupled systems provide much needed, well-defined functionality in a highly specific domain. Expanding operation to other domains or trying to provide more general operation is difficult. Making more generic data and functionality available requires significant programming resources that results in a very inflexible interface.
That’s why tightly coupled systems are wrong for Enterprise communications. That is why I continue to be amused by the proponents of EtherNet/IP and Profinet IO as ways to exchange data with Enterprise systems. Can they be made to work for a specific application? Yes. But to get there requires a whole lot of effort and results in a difficult to maintain, inflexible system that is extremely fragile.
Loosely coupled systems, on the other hand, provide exactly the right kind of interface for enterprise communications. Loosely coupled systems decouple the platform from the data, the data from the data model, and provide a much more dynamic mechanism for moving data.
Loosely coupled systems have these kinds of characteristics:
A Widely Used, Standards Based Transport Layer - Messages are transported in loosely coupled systems with open, widely implemented, highly flexible transports layers; TCP and HTTP.
An Open, Platform Independent Data Encoding – Data is encoded using an open standard data encoding like eXtensible Markup Language (XML) that can be processed by any computer platform.
A Highly Extensible Operating Interface – The interface between loosely-coupled systems is flexible and extensible. SOAP (Simple Object Access Protocol) is the main interface and it provides a highly flexible mechanism for messaging between loosely-couple systems.
Essentially what I’ve described here is web services. Web Services is the backbone of everything we do on the internet. It is extensible, flexible, platform independent – all required for the ever expanding internet.
The challenge is how to best connect the tightly coupled factory floor architectures with the loosely coupled web services architecture of the Internet. Rockwell has its Factory Talk product line. The ODVA promotes EtherNet/IP. PI promotes Profinet IO.
Any of these can be made to work as I have described earlier but the EtherNet/IP and Profinet IO type protocols result in that dreaded brittleness that costs too much time and money over time. These approaches take massive amounts of human and computing resources to get anything done. And in the process we lose lots of important meta-data, we lose resolution and we create fragile systems that are nightmares to support.
And don’t even ask about the security holes they create. These systems were not designed to be highly secure.
These systems are a fragile house of cards; they need to be knocked down.
Because of the discontinuity between the factory floor and the Enterprise, opportunities to mine the factory floor for quality data, interrogate and build databases of maintenance data, feed dashboard reporting systems, gather historical data and feed enterprise analytic systems are lost. Opportunities to improve maintenance procedures, reduce downtime, compare performance at various plants, lines and cells across the enterprise are all lost.
The solution? I’ve thought a lot about it and I think it’s OPC UA because UA can live in both the world of the factory floor and the Enterprise.
OPC UA is about reliably, security, and most of all, easily, modeling “Objects” and making those Objects available around the plant floor, to Enterprise applications and throughout the corporation. The idea behind it is infinitely broader than anything most of us have ever thought about before.
It all starts with an Object. An Object that could be as simple as a single piece of data or as sophisticated as a process, a system or an entire plant.
It might be a combination of data values, meta-data and relationships. Take a Dual Loop Controller. The Dual Loop Controller object would relate variables for the setpoints and actual values for each loop. Those variables would reference other variables that contain meta-data like the temperature units, high and low setpoints and text descriptions. The Object might also make available subscriptions to get notifications on changes to the data values or the meta-data for that data value. A Client accessing that one object can get as little data as it wants (single data value) or an extremely rich set of information that describes that controller and its operation in great detail.
OPC UA is, like its factory floor cousins, composed of a Client and a Server. The Client device requests information. The Server device provides it. But as we see from the Loop Controller example, what the UA Server does is much more sophisticated than what an EtherNet/IP, Modbus TCP or Profinet IO Server does.
An OPC UA Server models data, information, processes and systems as objects and presents those objects to Clients in ways that are useful to vastly different types of Client applications. And better yet, the UA Server provides sophisticated services that the Client can use like the Discovery Service.
I think that UA is the future and the perfect technology to bridge the chasm between loosely and tightly coupled systems.