Discovering OPC
No other industrial communications standard has achieved such widespread acceptance across so many different verticals, industries, and equipment manufacturers as OPC Classic. It is used to interconnect a large variety of industrial and business systems. SCADA, Safety Instrumented Systems (SISs), Programmable Logic Controllers (PLCs), and Distributed Control Systems (DCSs) use OPC to exchange data with each other and with Historian databases, MES, and ERP systems in the corporate world. The reason for the success of OPC Classic is very simple—it is the only truly universal interface that can be used to communicate with different industrial devices and applications, regardless of the manufacturer, software, or protocols used in the control system. This ability has become increasingly important, as the need to exchange information between the different devices of the industrial automation pyramid has increased constantly over the years.
A good example to understand OPC is to imagine it as a language translator. I am Italian, so if I need to talk with a Chinese person, I must learn Chinese or they must learn Italian. Similarly, if I need to communicate with people who speak French, German, Russian, Spanish, or Arabic, I am also obliged to learn these languages. A lot of effort would be required to learn a new language every time I meet someone from a new country, so this is not really a feasible option. However, if everyone decided to adopt and learn a common language, such as English, all I have to do is learn that common language and use that to talk to other people. OPC does exactly this: it provides a common interface that can be used to communicate with different industrial control products, regardless of the software or hardware used in the process. Before the development of OPC, application developers had to develop specific communications drivers for each control system with which they wished to interface. SCADA vendors, for example, had to develop tenth different drivers for the different DCS's and PLCs on the market.
While OPC doesn't eliminate the need for drivers altogether, application vendors no longer need to develop different drivers for each industrial network or processor. The effort required is considerably reduced, since each vendor only needs to implement the OPC interfaces. Typically, each manufacturer develops an OPC server for its specific product, using the native protocol for that device, and an OPC client, to interface the OPC servers of the other vendors. In this way, each OPC server will be implemented with full knowledge of the underlying native protocol. Once an OPC server exists for a piece of equipment or an application, it becomes much easier to integrate its data with other OPC-compliant software. There are software houses, such as Matrikon, that specialize in this specific area and offer a wide variety of OPC servers for a large number of products.
Initially, the OPC standard was based on the Windows OS and the Microsoft Object Linking and Embedding (OLE) for Process Control (OPC) technology. These specifications are now known as OPC Classic (http://opcfoundation.org/about/opc-technologies/opc-classic/). In 2006, the OPC Foundation developed the OPC UA (http://opcfoundation.org/about/opc-technologies/opc-ua/) specifications, which use a service-oriented architecture. These implemented the following actions:
- They overcome the limitations that were related to the architecture of OPC Classic
- They address the needs that come from new challenges in security and data modeling
- They provide a more scalable and flexible platform
- They build an independent and open platform that is not linked to a specific technology
Today, the acronym OPC stands for Open Platform Communications. One of the most important things to highlight about OPC is that it is an Application Programming Interface (API), rather than an on-the-wire protocol. It provides a higher level of abstraction than communication protocols such as Ethernet, TCP/IP, or fieldbus protocols such as EtherNet/IP or PROFINET. This is true both for OPC Classic and OPC UA. We will analyze both of these in detail in the following sections.