...
Key | Type | Default Value | iec104.data_object.<...> | Note |
---|---|---|---|---|
<Root>.Cause.stVal | Integer | co_cot | See Cause of Transmission | |
<Root>.Confirmation.stVal | Boolean | false | co_negative | |
<Root>.ComingFrom | String | "iec104" | iec104 | |
<Root>.Identifier | String | exchanged_data.datapoints.pivot_id | ||
<Root>.<type> | {CDC} | co_type | exchanged_data.datapoints.pivot_type (see | |
<Root>.<type>.q.test | Boolean | false | co_test | |
<Root>.<type>.t.SecondSinceEpoch | Integer | co_ts | ||
<Root>.SpcTyp.ctlVal | Boolean | do_value | 0 or 1 | |
<Root>.SpcTyp.stVal | Boolean | do_value | 0 or 1 (ACK) | |
<Root>.DpcTyp.ctlVal | String | do_value | intermediate-state | off | on | bad-state | |
<Root>.DpcTyp.stVal | String | do_value | intermediate-state | off | on | bad-state (ACK) | |
<Root>.IncTyp.ctlVal | Integer | do_value | Int 32 | |
<Root>.IncTyp.stVal | Integer | do_value | Int 32 (ACK) | |
<Root>.ApcTyp.ctlVal | Float | do_value | Float 32 | |
<Root>.ApcTyp.mxVal | Float | do_value | Float 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
...
IEC104 command object timestamp is not received for ASDU type with timestamp, then IEC104 command object is rejected with error message.
Rule 5: Case when IEC104 command object for ASDU type without timestamp is received then:
A the IEC104TOPIVOT step:
If the received ASDU is without timestamp Then
...
We create a pivot object With timestamp = current system time
...
On the PIVOTTOIEC104 step:
We create an IEC104 datapoint with timestamp and do_ts_sub = true
...