IEC 61850 Protocol stack configuration
...
Attributes | Definition | Example | Required |
---|---|---|---|
polling_interval | defines the polling interval in ms (0 = no polling) | 100 | Yes |
datasets | Array of datasets | No | |
datasets.dataset_ref | Dataset reference | Yes | |
datasets.entries | Array of dataset entries, each entry is build using this pattern: iedName+ldInst/prefix+lnClass+lnInst+doName NB: prefix is optional | "entries": [
"simpleIOGenericIO/GGIO1.AnIn1[MX]",
"simpleIOGenericIO/GGIO1.AnIn2[MX]",
"simpleIOGenericIO/GGIO1.AnIn3[MX]"
] This entry in the CID file code: <FCDA ldInst="GenericIO" lnClass="GGIO" fc="MX" lnInst="1" doName="AnIn1" daName="mag.f" /> should be translated to: simpleIOGenericIO/GGIO1.AnIn1[MX] | Yes |
datasets.dynamic | If dataset is set to dynamic = true then the client would try to create the dataset on the server, default is false (Static) | No | |
report_subscriptions | Array of report subscriptions | No | |
report_subscriptions.rcb_ref | Report Control Block Reference | Yes | |
report_subscriptions.dataset_ref | RCB dataset reference | NoYes | |
report_subscription.trgops | RCB trigger options | ["dchg": data_changed ",qchg": quality_changed", "integrity", ...]changed "dupd": data updated "period": data sent periodically "gi": general interrogation | : No |
report_subscription.buftm | RCB buffer time in ms, time to wait before sending value after event occured | No | |
report_subscription.intgpd | RCB integrity period in ms, report is periodically send for the period defined (this requires the trgops to be set to "integrity") | No | |
report_subscription.gi | Force GI (General Interrogation) when the RCB is enabled | No |
...
<Root>.<type> | {CDC} | ||
<Root>.<type>.q.operatorBlocked | Boolean | false | |
<Root>.<type>.q.Source = "substituted" | String | "process" | "process" | "substituted" |
<Root>.<type>.q.test | Boolean | false | |
<Root>.<type>.q.Validity = "invalid" | String | "good" | "good" | "invalid" | "reserved" | "questionable" |
<Root>.<type>.q.Validity = "questionable" <Root>.<type>.q.DetailQuality.oldData = true | String | "good" | "good" | "invalid" | "reserved" | "questionable" |
<Root>.<type>.q.Validity = "questionable" <Root>.<type>.q.DetailQuality.overflow = true | Boolean | false | |
<Root>.<type>.t.SecondSinceEpoch | Integer | ||
<Root>.BscTyp.valWTr.posVal | Integer | Int 8 | |
<Root>.BscTyp.valWTr.transInd | Boolean | Boolean | |
<Root>.Cause.stVal | Integer | ||
<Root>.ComingFrom | String | ||
<Root>.Confirmation.stVal | Boolean | false | |
<Root>.DpsTyp.stVal | String | intermediate-state | off | on | bad-state | |
<Root>.Identifier | String | exchanged_data.datapoints.pivot_id | |
<Root>.MvTyp.mag.f | Float | Float 32 | |
<Root>.MvTyp.mag.i | Integer | Int 32 | |
<Root>.SpsTyp.stVal | Boolean | ||
<Root>.TmOrg.stVal | String | "genuine" | "substituted" | |
<Root>.TmValidity.stVal = "invalid" | String | "good" | "good" | "invalid" | "reserved" | "questionable" |
...
Key | Type | Default Value | Notes |
---|---|---|---|
<Root>.Cause.stVal | Integer | ||
<Root>.ComingFrom | String | This plugin should always use the value "iec104" when converting to pivot | |
<Root>.Identifier | String | exchanged_data.datapoints.pivot_id | |
<Root>.Select.stVal | Boolean | false |
|
<Root>.<type> | {CDC} | exchanged_data.datapoints.pivot_type (see <type> conversion table above) | |
<Root>.<type>.q.test | Boolean | false | |
<Root>.<type>.t.SecondSinceEpoch | Integer | ||
<Root>.SpcTyp.ctlVal | Boolean | 0 or 1 | |
<Root>.DpcTyp.ctlVal | String | intermediate-state | off | on | bad-state | |
<Root>.IncTyp.ctlVal | Integer | Int 32 | |
<Root>.ApcTyp.ctlVal | Float | Float 32 | |
<Root>.BscTyp.ctlVal | String | stop | lower | higher | reserved |
...