You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

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.

Notes :

  • All types not listed in this table are not supported in current version.
  • The current implementation provides a default mapping rule for each known type, but some new rules might be added in the future and configured using the "alternate_mapping_rule" option in its parameters.

Filter interface

The "plugin_ingest" call will convert each "reading" of "reading_set" as follow:

  • The Reading fields "id", "TimeStamp", "userTimestamp" and "asset_name" are unchanged.
  • The Reading field "reading" is updated with an JSON object {'data_object' : {...}} . The content of object under 'data_object' is given below.

The <Root> key of PIVOT object can be:

Reading keyContent
PIVOT.GTISTele Signal
PIVOT.GTIMTele Measurement
PIVOT.GTICNot supported

In the following table: <type> is equal to

  • "SpsTyp" or "DpsTyp" (for GTIS)
  • "MvTyp" (for GTIM)

The content under <Root> will convert the pivot to a opcua object as follow:

KeyTypeDefault Valueopcua.data_object.<...>Note
<Root>.Cause.stValIntegerMandatorydo_cotSee Cause of Transmission
<Root>.Confirmation.stValBooleanfalsedo_confirmation
<Root>.ComingFromStringMandatorydo_comingfromAny protocol name ("iec104" ,"opcua", ...)
<Root>.IdentifierStringMandatory

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.

<Root>.<type>.q.DetailsQuality

<Root>.<type>.q.test

<Root>.<type>.q.operatorBlocked


PIVOT : Object
OPCUA : Integer


0do_detail

OR-Mask of following values:

0x0001 = badReference 
0x0002 = failure
0x0004 = inconsistent
0x0008 = innaccurate
0x0010 = oldData
0x0020 = oscillatory
0x0040 = outOfRange
0x0080 = overflow
0x1000 = test
0x2000 = operator blocked

<Root>.<type>.t.TimeQualityInteger0do_ts_quality

OR-Mask of following values:

0x01 = clockFailure
0x02 = clockNotSynch
0x04 = leapSecondKnown

<Root>.<type>.q.SourceString"process" do_source"process" | "substituted"
<Root>.<type>.q.ValidityStringMandatorydo_value_quality"good" | "invalid" | "reserved" | "questionable"
<Root>.<type>.t.SecondSinceEpochInteger0do_tsUnit = seconds since Epoch (January, 1st 1970)
<Root>.TmOrg.stValString"genuine" do_ts_org"genuine" |  "substituted"
<Root>.TmValidity.stValString"good"do_ts_validity"good" | "invalid" | "reserved" | "questionable"
<Root>.SpsTyp.stValBooleanMandatory do_value
<Root>.DpsTyp.stValStringMandatory do_value

See CDC double point status (DPSTyp)

<Root>.MvTyp.mag.fFloatMandatory do_value
<Root>.MvTyp.mag.iIntegerMandatory do_value
  • No labels