Versions Compared

Key

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

...

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

Key

Type

Default Value

iec104.data_object.<...>

Note

<Root>.Cause.stValInteger
co_cotSee Cause of Transmission
<Root>.Confirmation.stValBooleanfalseco_negative
<Root>.ComingFromString"iec104"
iec104
<Root>.IdentifierString


exchanged_data.datapoints.pivot_id


<Root>.<type>{CDC}
co_type

exchanged_data.datapoints.pivot_type

(see <type> conversion table above)

<Root>.<type>.q.testBooleanfalseco_test
<Root>.<type>.t.SecondSinceEpochInteger
co_ts
<Root>.SpcTyp.ctlValBoolean
do_value0 or 1
<Root>.SpcTyp.stValBoolean
do_value0 or 1 (ACK)
<Root>.DpcTyp.ctlValString
do_valueintermediate-state | off | on | bad-state
<Root>.DpcTyp.stValString
do_valueintermediate-state | off | on | bad-state (ACK)
<Root>.IncTyp.ctlValInteger
do_valueInt 32
<Root>.IncTyp.stValInteger
do_valueInt 32 (ACK)
<Root>.ApcTyp.ctlValFloat
do_valueFloat 32
<Root>.ApcTyp.mxValFloat
do_valueFloat 32 (ACK)


Filter rules

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

Rule 1: if the incoming IEC104 command 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 command with default value.

Rule 3: the timestamp of the original command issued by the Center must be transmitted as is to the Station.

Rule 4: Case when ASDU timestamp is not received:

A the IEC104TOPIVOT step:
If the received ASDU is without timestamp Then
    We create a pivot object With timestamp = current system time
    And <>.TmOrg.stVal = substituted

On the PIVOTTOIEC104 step:
We create an IEC104 datapoint with timestamp and do_ts_sub = true

IEC104 NORTH step:
If the Datapoint configured in the exchanged data has not IEC104 timestamp typeid
Then we create an ASDU with a typeid with no timestamp
If the Datapoint configured in the exchanged data has IEC104 timestamp typeid
Then we create an ASDU with a timestamp typeid, ASDU timestamp = do_ts And subtituted = do_ts_sub