OPC or OLE for Process Control is an open standardized software communication interface specification launched in 1996 by a task force of different automation companies, later forming the OPC Foundation. OPC is an adaption of Microsoft’ Object Linking and Embedding OLE to the process control business which used to be proprietary highly at hat point of time. It was almost impossible to efficiently combine products of different vendors. By providing OPC servers with their devices, software, and buses, vendors open their products to any OPC compliant client able to connect to the server for data exchange. An OPC server can handle several clients at once, while these clients, e.g. visualization or calculation applications can connect to different servers in order to obtain needed information.
The OPC Foundation has been adding eight additional specifications to the original one, therefore the name OPC was freed from its original meaning and is used as an umbrella term. Some important specifications are quickly explained in the below:
• Data Access (DA) is the original and most used widely standard of OPC. Its purpose is the cyclic polling of real time data, for instance for visualization purposes.
• Historical Data Access (HDA) specifies the access to already stored data.
• Alarms and Events (AE) describes the non cyclic, event based exchange of events and alarms.
• Data eXchange is a specification since 2002 which regulates the direct communication between two OPC servers.
It was made use both of the DA specification for the main purpose of communication as well as the AE specification in order to display and log round trip times. Unfortunately, the promising Data eXchange specification is almost inexistent in practice.
The underlying technique to exchange data is the component object model COM of Microsoft Windows, therefore OPC can run on Windows Operating system only. A new generation of OPC specification currently published is called OPC UA (OPC United Architecture and is independent of COM, thus being able to run on more operating systems as well as embedded devices.