mardi 6 février 2007

OPC Data eXchange Specification: Enabling horizontally data exchange between OPC based systems

OPC DX is acronym of OPC Data eXchange.

By March 2003, OPC Foundation released the new specification OPC Data eXchange version 1.0.

Unlike OPC DA, HDA and AE standard that were defined to manage a specific sector in the automation world: OPC DA for real time data that represents the current state of connected devices, OPC HAD for historical data stored in archiving systems and OPC AE for alarms and events generated in the industry,
OPC DX does not target a new domain in the industry. It rather constitutes a complimentary standard for the following reasons:
- OPC DX specification is not coming with a new type of data to manage. It is designed for communication with OPC DA servers. Consequently, it manages real time data.
- OPC DX ensures horizontal communication between OPC servers. Whereas other standards specify vertical data transfer from/to OPC Server/OPC Client.

This standard is based on the OPC DA specification with a thin layer acting as an OPC DA Client for specific goals. Imagine you are in a factory where you have a set of equipments that need to exchange their I/O data. Let us focus on two specific equipments belonging to this set. With an OPC architecture, an OPC DA server (DA1) is installed to supervise sensor 1. A second OPC Server (DA2) is installed to supervise sensor 2. If the pressure of sensor 1 exceeds x, then the temperature of sensor 2 should be multiplied by 1.5. Instead of developing a specific gateway to collect the current pressure of sensor 1 and updates the temperature of sensor 2 through DA2 at the appropriate moment,
An OPC DX server can be installed on sensor 2 to collect directly last pressure value from DA1 and updates the temperature of sensor 2 in the most efficient way.
That’s why an OPC DX server is the combination of an OPC DA Server and OPC Client layer.
Giving this architecture, we can distinguish:
- An OPC source server from which data is collect
- An OPC target server that collect the data for its own processing. The target server must be OPC DX.
To allow this horizontal data exchange between OPC servers, following are the general configuration steps to respect:
- DX configuration by using an OPC DX client to define: source servers and DX connections. OPC DX permits data transfer through a logical container of data exchange called DX connection. It defines the source item, the target item and other parameters.
- After that, data transfer is controlled from any OPC DA client connecting to the DX server

Above is just a brief presentation of OPC DX standard. I guess you have a lot of questions that may include the following:

1- How much data transfers it is allowed?
This means how many DX connections can be configured in the OPC DX server. The OPC DX specification defines a DX Server status flag called MaxDxConnections. This flag determines the maximum number of supported DXConnections by the DX server.

2- How OPC DX standardize the data transfer between OPC servers?
OPC DX specification defines a new OPC interface called IOPCConfiguration to manage DX connections and source servers (add, remove, query and update).
DXConnections and source servers’ management is performed by any OPC DX Client.
This step is called DX configuration.

3- Where the DX configuration is stored?
The current DX Server configuration is stored in the server DX DataBase. The DX DataBase can be saved in any media such as XML file.

4- What is the DX DataBase?
In addition to collected DA tags, the OPC DX Server maintains a reserved subtree named “DX” under the root of its address space for DX items. This subtree is called DX DataBase. It contains 3 braches at the top level:
- ServerStatus: provides information about the DX Server status such as DXConnectionCount, MaxDXConnections and SourceServersTypes (the supported DA versions for source servers).
- DXConnectionRoot: contains all configured DX connections
- SourceServers: contains all configured source servers

5- What is the role of the DA Client communicating with the DX Server?
The DA Client can monitor and control the DX Server through runtime attributes of DXConnections such as:
- DXConnectionState
- WriteValue, WriteQuality, WriteTimestamp
- WriteErrorID, WriteErrorDiagnostic
- Etc.
A DXConnection is represented as a read-only OPC DA item.

6- When the data transfer is started?
Once the DX configuration step is performed successfully, the DX Server opens a DXConnection under the following conditions:
- the attribute “SourceServerConnected” of the requested source server is TRUE
- At least one DXConnection among the configured ones whose source server is this server and its SourceItemConnected attribute is TRUE
Under the conditions above, the data exchange is automatically started even though there is no OPC DA/DX client connected to the DX server.

7- What are the types of data transfer defined by OPC DX?
The OPC DX specification does not have any restrictions on this matter. In fact, this can be a simple copy of data, any mathematic operation (sin, cos, arithmetic, etc). OPC DX unifies the way to collect data from source servers; and it is up to the target server to perform any processing on the received data values.

8- What are the OPC DA versions supported by OPC DX?
The supported versions are DA2, DA3 and XML-DA.

Although benefits of OPC DX standard since it enables data exchange between heterogeneous systems from various vendors, this standard was not very welcomed by industrials. Unfortunately, this standard is dying!!

If you have questions not shown in the list above, please do not hesitate to send them to my email: hassen.kouki@gmail.com. I will be more than happy to answer you within hours.

Aucun commentaire: