This plugin intends at converting PIVOT data into OPCUA north plugin.
The filter implements the Fledge Filter plugin interface (see filter_plugins).
Filter configuration
See Plugins configuration design for examples and details
The "config
" parameter of "plugin_init
" call shall include :
- A "
exchanged_data
" category with the same content as provided to the OPCUA north plugin. This section is mandatory so that the filter plugin can convert the PIVOT type to OPCUA type. - A "
protocol_translation
" category including all mapping rules from PIVOT. This section shall contain in the "mapping_rules
" array the following entries:
input_type | output_type | mapping_rule | note |
---|---|---|---|
SpsTyp | opcua_sps | PtoOPcua_sps1 | |
DpsTyp | opcua_dps | PtoOPcua_dps1 | |
MvTyp | opcua_mvi | PtoOPcua_mvi1 | |
MvTyp | opcua_mvf | PtoOPcua_mvf1 |
Notes :
- All types not listed in this table are not supported in current version.
- The current implemention only provides one mapping rule for each known types, but some new rules migth be added in the future. and configured using this parameters.
Filter interface
The "plugin_ingest
" call will convert each "reading
" of "reading_set
" as follow:
The <Root> key of PIVOT object can be:
Reading key | Content |
---|---|
PIVOTTS.GTIS | Tele Signal |
PIVOTTM.GTIM | Tele Measurement |
PIVOTTC.GTIC | Not supported |
In the following table: <type>
is equal to
- "SpsTyp" or "DpsTyp" (for PIVOTTS)
- "MvTyp" (for PIVOTTM)
The content under <Root> will convert the pivot to a opcua object as follow:
Key | Type | Default Value | opcua.data_object.<...> | Note |
---|---|---|---|---|
<Root>.Cause.stVal | Integer | Mandatory | do_cot | See Cause of Transmission |
<Root>.Confirmation | Boolean | false | do_confirmation | |
<Root>.ComingFrom.stVal | String | Mandatory | do_comingfrom | Any protocol name ("iec104" ,"opcua", ...) |
<Root>.Identifier | String | Mandatory | do_id do_type | do_id = PIVOT ID do_type = "opcua_sps" | "opcua_dps" | "opcua_mvi" | "opcua_mvf". Other types not supported in current version. |
| PIVOT : Object | 0 | do_detail | OR-Mask of following values:
|
| Boolean | false | do_test | |
<Root>.<type>.q.operatorBlocked | Boolean | false | do_operator_blocked | |
<Root>.<type>.q.Source | String | "process" | do_source | "process" | "substituted" |
<Root>.<type>.t.SecondSinceEpoch | Integer | 0 | do_ts | |
<Root>.TmOrg | String | Mandatory | do_ts_org | "genuine" | "substituted" |
<Root>.TmValidity | String | Mandatory | do_ts_validity | "good" | "invalid" | "reserved" | "questionable" |
<Root>.TimeAccuracy | Integer | 0 | do_ts_accuracy | OR-Mask of following values:
|
<Root>.SpsTyp.stVal | Boolean | Mandatory | do_value | |
<Root>.DpsTyp.stVal | Integer | Mandatory | do_value | |
<Root>.MvTyp.stVal.mag.f | Float | Mandatory | do_value | |
<Root>.MvTyp.stVal.mag.i | Integer | Mandatory | do_value |