...
Key | Type | Default Value | iec104.data_object.<...> | Note |
---|---|---|---|---|
<Root>.Cause.stVal | Integer | do_cot | See Cause of Transmission | |
<Root>.Confirmation.stVal | Boolean | false | do_negative | |
<Root>.ComingFrom | String | "iec104" | do_comingfrom | iec104 |
<Root>.Identifier | String | do_id | exchanged_data.datapoints.pivot_id | |
<Root>.<type> | {CDC} | do_type | exchanged_data.datapoints.pivot_type (see | |
| Boolean | false | do_quality_ov = true | |
<Root>.<type>.q.test | Boolean | false | do_test | |
<Root>.<type>.q.operatorBlocked | Boolean | false | do_quality_bl | |
<Root>.<type>.q.Source = "substituted" | String | "process" | do_quality_sb = true | "process" | "substituted" |
<Root>.<type>.q.Validity = "invalid" | String | "good" | do_quality_iv = true | "good" | "invalid" | "reserved" | "questionable" |
<Root>.<type>.t.SecondSinceEpoch | Integer | do_ts | ||
<Root>.TmOrg | String | do_ts_org | "genuine" | "substituted" | |
<Root>.TmValidity = "invalid" | String | "good" | do_ts_iv = true | "good" | "invalid" | "reserved" | "questionable" |
| String | "good" | do_quality_nt = true | "good" | "invalid" | "reserved" | "questionable" |
<Root>.SpsTyp.stVal | Boolean | do_value | ||
<Root>.DpsTyp.stVal | String | do_value | intermediate-state | off | on | bad-state | |
<Root>.MvTyp.mag.f | Float | do_value | Float 32 | |
<Root>.MvTyp.mag.i | Integer | do_value | Int 32 |
Filter rules
STATION => (ASDU) IEC104 SOUTH => (IEC104 DP) IEC104TOPIVOT =>(PIVOT DP) PIVOTTOIEC104 => (IEC104 DP) IEC104 NORTH => (ASDU) CENTER
Rule 1: if the incoming IEC104 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 3: Case when ASDU timestamp is not received:STATION => (ASDU) IEC104 SOUTH => (IEC104 DP) IEC104TOPIVOT =>(PIVOT DP) PIVOTTOIEC104 => (IEC104 DP) IEC104 NORTH => (ASDU) CENTER
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
...