OPC-DA transport handler to access measurements using the OPC industry standard. The implementation is based on the Utgard library from the OpenSCADA project.

Options

The OPC transport handler returns attribute values of type OPCValue. An OPCValue is a complex type that holds the quality, the error code, the timestamp, and the current value of an OPC item. To access the single values the functions value(OPCValue), quality(OPCValue), error(OPCValue), and timestamp(OPCValue) exist. When defining the schema, only the items defined in the path parameter are available in the order they are defined.

Example

PQL

output = ACCESS({Source='source',
wrapper='GenericPush',
transport='OPC-DA',
protocol='None',
dataHandler='Tuple',
options=[
 ['host', 'example.com'],
 ['domain', 'Domain'],
 ['username', 'admin'],
 ['password', '12345'],
 ['progid', 'National Instrum.'],
 ['path','\\.\Some Item1;\\.\Some Item2']
],
schema=[
 ['item1', 'OPCValue'],
 ['item2', 'OPCValue']
]
})

CQL

CREATE STREAM source (item1 OPCValue, item2 OPCValue)
    WRAPPER 'GenericPush'
    PROTOCOL 'None'
    TRANSPORT 'OPC-DA'
    DATAHANDLER 'Tuple'
    OPTIONS ( 'host' 'example.com', 'domain' 'Domain', 'username' 'admin', 'password' '12345', 'progid' 'National Instrum.', 'path' '\\.\Some Item1;\\.\Some Item2')

 

Functions

To access the different parts of an OPC item the following functions exist:

value(OPCValue)

Returns the value of the OPC item

quality(OPCValue)

Returns the quality of the OPC item

error(OPCValue)

Returns the error code of the OPC item

timestamp(OPCValue)

Returns the timestamp of the OPC item

 

output = MAP({
              expressions = [
                                ['quality(item)','quality'],
                                ['error(item)','error'],
                                ['value(item)','value'],
                                ['timestamp(item)','timestampe']
                            ]
             }, input)