What is OPC
The OPC Client Framework C++ from AG Software for Linux provides a complete C++ application framework which includes class libraries and tools for fast and easy development of OPC Data Access and OPC Alarms&Events clients.
OPC is acronym of OLE for Process Control. OLE (Object Linking and Embedding) based on Microsoft
Windows COM (Component Object Model) standart. Technology widely used in industry as communication facilities.
Over network used DCOM (Distributed COM).
In present day used several OPC-standartd
- OPC UA (unified architecture) new standard (consist in several parts and specifications)
- OPC Common Definitions and Interfaces main interface standard
- Data Access Custom Interface Standard COM-interface specification for active data change, C++.
- Data Access Automation Interface Standard COM-interface specification for active data change, VB.
- OPC Batch Custom Interface Specification COM-interface specification for equipment configuration, C++.
- OPC Batch Automation Interface Specification COM-interface specification for equipment configuration, VB.
- OPC Alarms and Events Interface Specification
OPC uses the Microsoft protocols COM (local access) and DCOM (remote access) for the communication which makes it difficult to access OPC Servers from other operating systems like Linux.
And because Linux does not have COM/DCOM, then if you wish to access OPC data with a client on an LINUX system then you must do one of the following:
1) Build an XML/DA client and purchase a XML/DA to COM gateway product
2) Build Java client with a Java COM bridge product
3) License a DCOM implementation (some products exist)
4) Build your own protocol to communicate with an intermediary on a Windows machine
5) Develop an UA client that uses the UA-COM wrappers (c)Randy(opcfoundation.com)
You may use ready toolkits and tools such as the Technosoftware's OPC Toolkits (Technosoftware was the first company to offer an OPC toolkit for Linux).
Adopters of Technosoftware's OPC (Windows) toolkits will find it easier than most to add Linux support if/when the market demands it.
Technosoftware's OPC on Linux is implemented using Software AG's EntireX DCOM on Linux, which is available separately as a free download.
OPC Client Toolkit for Linux from Kassl for Linux.
dOPC DA is a Kylix 100% CLX component to create OPC XML Data Access Clients, that enables the user to control, browse, read and write data from any installed OPC XML Data Access Servers.
A further option for non-Microsoft platforms is to use OPC XML-DA, which is not reliant on Microsoft COM. dOPC Kylix Client Toolkit for XML-DA client development on Linux. See page in links for more, on Kassl's dOPC Client Toolkits.
Finally you must answer on very important question: "do you really want OPC on Linux?". I don't know anyone that loves OPC.
It`s very hard to learn, coding, finding problems. You may choose some alternatives for your software development, described here.
CORBA is the acronym for Common Object Request Broker Architecture, OMG's open, vendor-independent architecture and infrastructure that computer applications use to work together over networks.
Using the standard protocol IIOP, a CORBA-based program from any vendor, on almost any computer, operating system, programming language, and network, can interoperate with a CORBA-based program from the same or another vendor, on almost any other computer, operating system, programming language, and network.
CORBA widely used for building process control SW such as free SCADA-like system under Linux platform.
DCE is acronym of the Distributed Computing Environment. This is a technology that is a bit older than CORBA,
but a more stable and scalable. Not only does it offer the basic RPC mechanisms and IDL stub compilers needed to create distributed applications,
but it also offers security & authentication through Kerberos.
Unlike CORBA, it is not a ground-up redesign of the principles of distributed computing, is rather a tightly integrated package of existing technologies.
RPC's, PVM, Java-RMI
RPC's (Remote Procedure Calls) are the intellectual grand-daddy of CORBA and DCE,
and are a standard part of the GNU C library.
Because RPC facilities are installed be default everywhere, RPC's may well be ideal for the task.
XML/DA client |
Java clients |
DCOM implement |
OPC UA |
Intermediate SW/HW solution |
UA-COM wrappers |
Links and tools