OPC

OPC was founded by a few companies in the mid 90s in order to ease the exchange of process data [25]. OPC has been, and still is, developed by the OPC Foundation[26]. OPC is serverclient based, where the server is vendor-specific and the client general.

OPC consists of several specifications [25]–[27]. These specifications contain information about how the server and the client should exchange data. OPC DA (Data Access) was the first specification [28] that made it possible for any OPC DA client to access data from an OPC DA server that fulfils the same specification. OPC DA is used for moving real-time data from devices to Microsoft Windows applications, where real-time here means current data in the device, not historical. Nothing is said about how the data is transferred from the device to the application, and real-time is not defined either.

OPC DA is based on COM/DCOM, which is a Microsoft technology. This choice leads to platform dependency, and there is, for instance, no standard solution for using OPC on Linux, even though such solutions exist. Another issue with OPC is the problem with firewalls when the OPC client and server are located on different machines. This is due to DCOM, a problem that can, however, be overcome by a tunneller [29].

A first attempt to select another platform than COM/DCOM was presented within the OPC XML-DA specification, where COM/DCOM was replaced by web services. However, the performance was very poor compared to OPC DA [30].To overcome this weakness, a new specification was introduced; this specification is called OPC Unified Architecture (OPC UA) [31]. OPC UA uses two different transport protocols; SOAP over HTTP and TCP [32]. Compared to OPC XML-DA, OPC UA also supports binary encoding of the data instead of the XML encoding that produces a large amount of overhead data. The performance of OPC UA compared to OPC DA is somewhat slower, between 1.1 and 1.6 times when reading values [32].

According to Matrikon [33], the plan is not to replace OPC DA with OPC UA, instead both specifications should coexist and complement each other. OPC DA is still the most common specification, 99% of all OPC products today are implementations based on OPC DA [32]. Since this paper deals with CAPE tools, and to the authors’ knowledge there is no commercial CAPE tool available today that supports OPC UA, only OPC DA is considered. OPC UA is, however, very interesting. PLCOpen [34], a worldwide organization that works for resolving topics related to control programming, has chosen OPC UA as its technology for data exchange. An alternative to OPC DA is the OMG [35] specification Data Acquisition from Industrial Systems (DAIS) [36]. DAIS is based on real-time CORBA [37]. However, this specification is not used in the type of application covered in this paper. CAPE tools and PLCs of today generally utilize OPC for intercommunication.

~

CARLSSON, Henrik, SVENSSON, Bo, DANIELSSON, Fredrik and LENNARTSON, Bengt, 2012. Methods for Reliable Simulation-Based PLC Code Verification. IEEE Transactions on Industrial Informatics. May 2012. Vol. 8, no. 2, p. 267–278. DOI 10.1109/TII.2011.2182653. page