Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For TC, the filter receives OPCUA reading (from north) and creates a corresponding PIVOT reading. The created PIVOT reading format is given in FLEDGE WIKI.

The reading input is expected with the following JSON equivalent format:

Code Block
languagepy
{
   "control_object":{
      "co_type": <string>,
      "co_test": <int>,
      "co_ts": <int>,
      "co_se":  <int>,
      "co_negative":  <int>,
      "co_qu": <int>,
      "co_cot": <int>,
      "co_id": <string>,
      "co_value": <depends on data type...>
   }
}

TBC : Something does not work. The "do_value" (reply) will be sent by a south service, is it intended to be received as a full PIVOT value? What will be the reading sent from south to North in this case? Is it supposed to be a reading that is compatible with filter and opcua?.  And in that case, should we ignore all fields except "do_value" or create a full read-only variable set on the OPC server for each TC?

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

See Cause of TransmissionFor ApcTypFor DpcTyp<Root>.DpcTyp.mxValFor IncTypTBC!!  same as aboveFor SpcTypSpcTypstValBooleandoFor SpcTypTBC!!  same as above
KeyTypeDefault valueopcua.control_object.<...>Note
<Root>.IdentifierString
co_idPIVOT identifier.
<Root>.Select.stValBooleanfalseco_se

- 0 is mapped with false, for Execute

- 1 is mapped with true, for Select before Execute

<Root>.ComingFromString"opcua"N.A.This plugin should always use the value "opcua" when converting to pivot
<Root>.<type>String
co_type

(see <type> conversion table above)

<Root>.<type>.q.testBooleanfalseco_test
<Root>.<type>.t.SecondSinceEpochInteger
co_tsTBCBooleanfalseco_se<Root>.Confirmation.stValBooleanco_negativeTBCBooleanfalseco_qu<Root>.ComingFromString"opcua"N.A.<Root>.Cause.stValIntegerco_cot

<Root>.ApcTyp.ctlVal

Float
co_value<Root>.ApcTyp.mxValFloat do_value

For ApcTyp

TBC!! This cannot be part of the reading sent from north to south.
Instead the do_value should be a "normal" TS/TM PIIVT data

32

<Root>.DpcTyp.ctlVal

String
co_valueintermediate-state | off | on | bad-state
Stringdo_valueFor DpcTyp TBC!!  same as above<Root>.IncTyp.ctlValInteger
co_valueFor IncTyp<Root>.IncTyp.stValIntegerdo_valueInt 32
<Root>.SpcTyp.ctlValBoolean
co_value0 or 1
<Root>.BscTyp.ctlValString
co_valuestop | lower | higher | reserved