OPC-DA transport handler to access measurements using the OPC industry standard. The implementation is based on the Utgard library from the OpenSCADA project.
...
domain:
The domain namehost
:
The host nameusername
:
The usernamepassword
:
The passwordid: The program identifierpath:
Collection of path to different OPC items separated by ";"clsid:
The class identifierprogid:
The program identifierperiod:
Period for synchronization
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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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=[ ['value'item1', 'OPCValue'], ['item2', 'DoubleOPCValue'] ] }) |
CQL
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
CREATE STREAM source (value Doubleitem1 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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
output = MAP({
expressions = [
['quality(item)','quality'],
['error(item)','error'],
['value(item)','value'],
['timestamp(item)','timestampe']
]
}, input) |