User Manual
www.moxa.com info@moxa.com 64
2009 Industrial Wireless Guidebook
Cellular Networks
3
General OPC Architecture and Components
The architecture of OPC leverages the advantages of the COM interface, which provides a convenient
mechanism to extend the functionality of OPC. OPC specifications always contain two sets of interfaces;
Custom Interfaces and Automation interfaces.
The OPC Specification specifies the COM interfaces but not the implementation. It specifies the behavior
that the interfaces are expected to provide to the client applications that use them. Like all COM
implementations, the architecture of OPC is a client-server model where the OPC Server component
provides an interface to the OPC objects and manages them. There are several unique considerations
in implementing an OPC Server. The main issue is the frequency of data transfer over non-sharable
communications paths to physical devices or other databases. Thus, we expect that OPC Servers will either
be a local or remote EXE which includes code that is responsible for efficient data collection from a physical
device or a database. An OPC client application communicates to an OPC server through the specified
custom and automation interfaces. OPC servers must implement the custom interface, and optionally may
implement the automation interface. In some cases the OPC Foundation provides a standard automation
interface wrapper. This “wrapperDLL” can be used for any vendor-specific custom-server.
OPC Servers now register with the system via Component Categories. This allows the Microsoft
ICatInformation (IID_ICatInformation) Interface on the StdComponentCatagoriesMgr (CLSID_
StdComponentCategoriesMgr) to be used to determine which OPC servers are installed on the local
machine. The problem is that this does not work for remote machines because the Component Categories
Manager is a DLL and the ICatInformation interface only works in-process. As a result, there is no easy
way for a Client (including the Foundation supplied Automation Wrappers) to obtain a list of OPC Servers
installed on a remote machine. The OPC Foundation supplied Server Browser OPCENUM.EXE can reside
on any machine, will access the local Component Categories Manager, and provide a new interface
IOPCServerList that can be marshaled and used by remote clients. This server has a published classid
(see below) and can be installed once on any machine which hosts OPC servers. The client still needs to
know the nodename of the target machine however he can now create this object remotely and use its
IOPCServerList interface to determine what types and brands of servers are available on that machine.