What is an OPC Server and an OPC Client?
All of the OPC Specifications are based on the OPC
Client/Server model. Client/Server describes the relationship between two computer applications in
which one application, the OPC client, makes a service request from another application, the OPC Server,
which fulfills the request. Although the OPC Client/Server model can be used within a single computer,
when used in a network it provides a versatile and modular infrastructure that offers flexibility,
interoperability, and scalability. This model is different from other common distributed architectures
such as Master/Slave (or Primary/Secondary) and peer-to-peer networks.
In the Master/Slave (or Primary/Secondary) model. The Master application controls one or more other
applications, the Slaves. Once the Master/Slave relationship is established, the direction of control
is always from the master to the Slave(s). Peer-to-peer is a communication model in which each party
has the same capabilities and either party can initiate a communication session.
So, what is an OPC Server and what does it do? An OPC Server is a software application, that has
been written to one of the
OPC Specifications. An OPC Server will
respond to requests, and provide data to one or more OPC Clients in a standard, consistent manner.
Any compliant OPC Client can interface with, and request data from any compliant OPC Server,
regardless of the vendor, or the underlying system providing the data. The original audience
for OPC Clients/Servers was the Process Automation industry, to provide a standard interface to
industrial devices, such as a PLC, DCS, HMI, SCADA, RTU or DAS. Since requiring a standard interface
to obtain data from a system is not unique to this industry, OPC Servers are now available for
countless other systems including historians, relational databases, RFID scanners, file systems,
enterprise applications, custom devices, building control systems, IT networks, robots, even road signs.
The primary OPC Specifications,
OPC Data Access (OPC DA),
OPC Historical Data Access (OPC HDA)
and OPC Alarms & Events (OPC A&E)
are based on Microsoft COM (and DCOM), which is also based on the Client/Server model. From a
programmatic point of view, the terms OPC Client and COM Client, and OPC Server and COM Server
can be used interchangeably. Every OPC Client/Server is also a COM Client/Server. In sort,
an OPC Server provides a set of standard interfaces, properties and methods, such than any OPC
Client can connect/disconnect, obtain information on what data is available, and read/write
data in a standard manner.