OPC is a software interface standard that allows HMIs and other programs to communicate with industrial hardware devices.
The acronym "OPC" originally came from "OLE for Process Control". Since OLE (Object Linking and Embedding) is based on the Windows COM (Component Object Model) standard, under the hood OPC was essentially COM. Due to limitations of the COM standard related to networking, security, and reliance on the Windows operating system, the OPC Foundation introduced OPC UA (for "Universal Architecture"), and renamed the original OPC "OPC Classic." They changed the "OPC" acronym to now stand for "Open Platform Communication".
OPC Classic comprises several standards, the first and most important of which is OPC Data Access (DA). There are also standards for Alarms & Events (A&E), Historical Data Access (HDA), and others. OPC UA implements these types of functionality, while running on both Windows and non-Windows operating systems, and providing better networking support and a more sophisticated security model than OPC Classic. Nevertheless, OPC Classic has been highly successful for many years, is widely available, and has a very large installed user base. For these reasons, both OPC Classic and OPC UA are expected to be popular industrial data communications protocols for some time to come.

OPC is implemented in server/client pairs. The OPC server is a software program that converts the hardware communication protocol used by a PLC[3] into the OPC protocol. The OPC client software is any program that needs to connect to the hardware, such as an HMI[4] . The OPC client uses the OPC server to get data from or send commands to the hardware.
The value of OPC is that it is an open standard, which means lower costs for manufacturers and more options for users. Hardware manufacturers need only provide a single OPC server for their devices to communicate with any OPC client. Software vendors simply include OPC client capabilities in their products and they become instantly compatible with thousands of hardware devices. Users can choose any OPC client software they need, resting assured that it will communicate seamlessly with their OPC-enabled hardware, and vice-versa.
The typical OPC connection scenario is a single server-client connection on a single computer as illustrated above, but there are more possibilities. For example, you might need to:
Connect an OPC client to several OPC servers. This is called aggregation.
Connect an OPC Classic DA client to an OPC Classic DA server over a network. This can be done with tunnelling.
Connect an OPC server to another OPC server to share data. This is known as bridging.
The DataHub program is uniquely designed to do all of these tasks, and more. It combines OPC server and OPC client functionality (OPC Classic DA and A&E, as well as UA) to supports multiple connections. Thus it can connect to several OPC servers simultaneously, for aggregation and bridging. Two DataHub instances can mirror data across a TCP network to provide tunnelling, typically used for OPC Classic DA. And because it supports both OPC Classic and OPC UA, the DataHub program can be used as a protocol converter between these two.
In addition to enhancing OPC server and client connections, the DataHub program can connect any OPC server or client to other applications as well, such as Excel, a web browser, or any ODBC database.