Top  | Previous | Next

What is OPC?

 

OPC is a specification for the transport and use of industrial data. It is published and maintained by the OPC Foundation, an organization comprised of hundreds of member companies that strives to ensure interoperability on the plant floor and beyond.

History

The OPC-UA specification is the latest specification in a line spanning back to the mid '90s. The original OPC specifications used Microsoft DCOM technology to provide a uniform way for industrial applications to share data. There were several separate specifications that provided functions such as Data Access (OPC-DA), Alarms and Events (A&E), Historical data (HDA) and more.

DCOM always proved difficult to work with, and by 2004 it was clear that a more modern solution was needed. Therefore, a new specification was developed that used common networking principals instead of DCOM, was platform independent, and combined the various separate specifications into one: OPC-UA.

 

Clients and Servers

When discussing OPC (as the specifications are often called collectively), it is common to hear about "OPC servers" and "OPC clients". An OPC Server is a piece of software that implements the OPC interface and provides data. An OPC Client is an application which connects to an OPC Server and uses the specification to retrieve and work with data.

 

The Ignition platform inherently offers OPC-UA client functionality. That is, even with no modules installed, the gateway can connect to any compliant OPC-UA server and work with data. With the addition of the OPC-UA Module, Ignition becomes an OPC server as well, hosting device drivers that read and publish data.

 

The OPC-COM module is available to provide client access to older, DCOM based, OPC-DA and OPC-HDA servers.

 

Technology

The OPC-UA specification offers a wide range of flexibility in choosing technologies, from the transport mechanism, to the way data is encoded, to the encryption used to secure the data.

 

Ignition supports the UA/TCP transport with the UA/Binary encoding scheme for maximum performance. Additionally, Ignition supports all of the common encryption schemes.

 

This means that Ignition connects to OPC-UA servers (and allows connections from clients) over TCP/IP, using encryption, and sends data by first encoding it into an efficient format defined by the OPC-UA specification. This is in contrast to other schemes outlined in the specification, which can use web services and XML encoding, and are not as efficient.

 

Using OPC in Ignition

OPC is the mechanism by which Ignition retrieves data from external sources. In other words, virtually all "realtime" data comes from OPC, even if the source is the OPC-UA server hosted inside of Ignition, using a specialized driver.

 

Realtime Data

Realtime OPC data is utilized by browsing the OPC servers and creating "OPC Tags" from the data points (either through drag and drop, or manually creating the tags). While you cannot subscribe to opc values in scripting, it is possible to perform limited read/write operations directly against OPC using the system.opc.* scripting functions.

 

Historical Data

The OPC-COM module provides support for OPC-HDA. History though OPC-UA is not currently supported. With that module installed, it is possible to create new Tag History Providers which connect to OPC-HDA servers and provide data through Ignition's general tag history mechanism, including through the tag history scripting functions (such as system.tag.queryTagHistory()). There are also scripting functions under system.opchda.* that allow you to perform most OPC-HDA functions.