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

Compare with Current View Page History

Version 1 Next »

This plugin can be used to convert HNZ objects to FledgePower pivot model objects.

The filter implements the Fledge Filter plugin interface (see filter_plugins).

Common rules

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 HNZ south plugin. This section is mandatory so that the filter plugin can convert the PIVOT type from HNZ 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.

Converting monitoring data types

Filter interface

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

  • The Reading fields "id", "TimeStamp" and "userTimestamp" are unchanged.
  • The "asset_name" field shall be mapped with "exchanged_data.datapoints.label"
  • The Reading field "reading" is updated with a JSON object {'<Root> key' : {...}} . The content of object under '<Root> key' is given below.

The <Root> key of PIVOT object is:

Reading key

Content

PIVOT.GTIS

Tele Signalisation

PIVOT.GTIM

Tele Measurement

PIVOT.GTIC

Tele command

<type> conversion table:

CDC ClassHNZ Type ID

SpsTyp/DpsTyp

TS / TC (ACK) / TVC (ACK)

MvTyp

TM

SpcTyp/DpcTyp

TC

IncTyp

TVC

The content under <Root> will convert the IEC 104 data objet to a pivot object as follow:

Tele-Informations

Key

Type

Default Value

HNZ.data_object.<...>

Note

Mandatory

(of do field)

<Root>.<type>

{CDC}


do_type

exchanged_data.datapoints.pivot_type

(see <type> conversion table above)

YES

<Root>.Cause.stVal

Integer


do_cg

3 (TS on CE) | 20 (TS on CG) | 1 (TM cyclic)

YES

<Root>.ComingFrom

String

hnzip

do_comingfrom


NO

<Root>.SpsTyp.stVal

Boolean


do_value

[0..1] TS

YES

<Root>.MvTyp.mag.i

Integer


do_value

Int 32 (TM)

YES

<Root>.Identifier

String


do_id

exchanged_data.datapoints.pivot_id

YES

<Root>.<type>.q.Validity

String

good

do_valid

good (0) | invalid (1)

NO

<Root>.<type>.t.SecondSinceEpoch

<Root>.<type>.t.FractionOfSecond

Integer

Integer


do_ts

SecondSinceEpoch is the time in seconds since 1970-

01-01 00:00:00 UTC

FractionOfSecond is the fraction of second (Computation method described in 61850 protocol documentation).

YES

<Root>.TmValidity.stVal

String

good

do_ts_iv

good (0) | invalid (1)

NO

<Root>.<type>.q.Validity

<Root>.<type>.q.DetailQuality.oldData

String

Boolean

Validity = "good"

oldData = <undefined>

do_ts_c


0 => Validity = "good", oldData = <undefined>

1 => Validity = "questionable", oldData = "true"

NO

TC ACK and TVC ACK

Key

Type

Default Value

HNZ.data_object.<...>

Note

Mandatory

(of do field)

<Root>.<type>

{CDC}


do_type

SpcTyp (TC) | IncTyp (TVC)

YES

<Root>.ComingFrom

String

hnzip

do_comingfrom


NO

<Root>.SpcTyp.stVal

Boolean


do_value

[0..1]

YES (if TC)

<Root>.IncTyp.stVal

Int


do_value

Int 32

YES (if TVC)

<Root>.Identifier

String


do_id

exchanged_data.datapoints.pivot_id

YES

<Root>.<type>.q.Validity

String

good

do_valid

good (0) | invalid (1)

NO

Filter rules

STATION => (ASDU) HNZ SOUTH => (IEC104 DP) HNZTOPIVOT =>(PIVOT DP) PIVOTTOIEC104 => (IEC104 DP) IEC104 NORTH => (ASDU) CENTER

Rule 1: if the incoming HNZ data object has not the attribute or has the default value then we don't have to create the corresponding attribute in the pivot object.

Rule 2: If the received pivot object has not an expected attribute then we create the attribute of the protocol specific datapoint with default value.

Converting commands data types

TC and TVC

Key

Type

Default Value

HNZ.data_object.<...>

Note

Mandatory

(of co field)

<Root>.<type>

{CDC}


co_type

SpcTyp (TC) | IncTyp (TVC)

YES

<Root>.SpcTyp.stVal

Boolean


co_value

[0..1]

YES (if TC)

<Root>.IncTyp.stVal

Int


co_value

Int 32

YES (if TVC)

<Root>.Identifier

String


co_id

exchanged_data.datapoints.pivot_id

YES


  • No labels