Table of Contents |
---|
...
Drawio | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Protocol translation configuration
Code Block | ||
---|---|---|
| ||
{
"protocol_translation":{
"name":"SAMPLE",
"version":"1.0",
"mapping_rules":[
{
"input_type":"M_SP_TB_1",
"output_type":"SpsTyp",
"mapping_rule":"104toP_1"
},
{
"input_type":"M_DP_TB_1",
"output_type":"DpsTyp",
"mapping_rule":"104toP_2"
},
{
"input_type":"M_ME_NA_1",
"output_type":"MvTyp",
"mapping_rule":"104toP_3"
},
{
"input_type":"M_ME_NC_1",
"output_type":"MvTyp",
"mapping_rule":"104toP_4"
},
{
"input_type":"SpsTyp",
"output_type":"M_SP_TB_1",
"mapping_rule":"Pto104_1"
},
{
"input_type":"DpsTyp",
"output_type":"M_DP_TB_1",
"mapping_rule":"Pto104_2"
},
{
"input_type":"MvTyp",
"output_type":"M_ME_NA_1",
"mapping_rule":"Pto104_3"
},
{
"input_type":"MvTyp",
"output_type":"M_ME_NC_1",
"mapping_rule":"Pto104_4"
},
{
"input_type":"SpsTyp",
"output_type":"Data_StateQTimeTagExtended",
"mapping_rule":"PtoT2_1"
},
{
"input_type":"DpsTyp",
"output_type":"Data_DiscreteQTimeTagExtended",
"mapping_rule":"PtoT2_2"
},
{
"input_type":"MvTyp",
"output_type":"Data_RealQ",
"mapping_rule":"PtoT2_3"
}
]
}
} |
Exchanged data configuration
In this chapter we will describe the configuration of the exchanged data. This configuration allow to specify a list of supported data objects. The protocol plugin is expected to make some controls against each entry of the configuration to check:
...
Exchanged data configuration
In this chapter we will describe the configuration of the exchanged data. This configuration allow to specify a list of supported data objects. The protocol plugin is expected to make some controls against each entry of the configuration to check:
- if CA of ASDU is known otherwise throw an error message.
- if IOA is known otherwise throw an error message.
- if type of ASDU is known otherwise an error message.
- The label attribute shall be used to populate the Fledge's DataPoint Asset Name attribute.
...
Attribute | Description | Expected values | Mandatory |
---|---|---|---|
name | this identifies the exchanged data configuration | Yes | |
version | this is the version number of the configuration | x.y where x represents a major version and y a minor change | Yes |
datapoints | array of datapoints that needs to be managed by the instance of the gateway | Yes | |
datapoints.label | label of the datapoint | any non empty string | Yes |
datapoints.pivot_id | unique identifier of the datapoint, this is used to create a pivot object | any non empty string | Yes |
datapoints.pivot_type | type of Common Data Class (CDC), this is used to create a pivot object | enum SpsTyp | DpsTyp | MvTyp | SpcTyp | DpcTyp | ... | Yes |
datapoints.pivot_subtypes | array of additional types of the pivot object | [transient, ...] | No |
datapoints.tfid | identifies the math function to transform the input value | enum "normal" | "square_root" | "quadratic" | "transparent" | No |
datapoints.params | array of parameters for the math function | array of float 32 [a, b, c, ...] | No |
datapoints.deadband | band of input values where the output is zero | array of 2 float 32 [min, max] | No |
datapoints.protocols | array of protocols that needs to be managed for a datapoint | Yes | |
datapoints.protocols.name | name of the protocol | enum "iec104" | "iec103" | "tase2" | "hnz" | "61850" | "opcua" | ... | Yes |
datapoints.protocols.address | address of the datapoint in the given protocol | any non empty string | Yes |
datapoints.protocols.typeid | type id of the datapoint in the given protocol | any non empty string representing a valid protocol type id | Yes |
datapoints.protocols.gi_groups | GI request status for north plugins, if "station" then datapoint is send | enum station | 1 | 2 | ... | No |
datapoints.protocols.alternate_mapping_rule | Alternate mapping rule to convert datapoint from protocol model to pivot or pivot to protocol model | any non empty string representing a function name | No |
Configuration JSON structure
Code Block | ||
---|---|---|
| ||
{
"exchanged_data":{
"name":"SAMPLE",
"version":"1.0",
"datapoints":[
{
"label":"TS1",
"pivot_id":"ID114562",
"pivot_type":"SpsTyp",
"pivot_subtypes":[
"transient"
],
"protocols":[
{
"name":"iec104",
"address":"45-672",
"typeid":"M_SP_TB_1",
"gi_groups":"station",
"alternate_mapping_rule":"func_name_1"
},
{
"name":"tase2",
"address":"S_114562",
"typeid":"Data_StateQTimeTagExtended",
"gi_groups":"station"
},
{
"name":"opcua",
"address":"ID114562",
"typeid":"opcua_sps"
}
]
},
{
"label":"TM1",
"pivot_id":"ID99876",
"pivot_type":"DpsTyp",
"tfid":"square_root",
"params":[
2.0,
49.5
],
"deadband":[
-0.02,
0.02
],
"protocols":[
{
"name":"iec104",
"address":"45-984",
"typeid":"M_ME_NA_1"
},
{
"name":"tase2",
"address":"S_114562",
"typeid":"Data_RealQ"
},
{
"name":"opcua",
"address":"ID99876",
"typeid":"opcua_mvf"
}
]
}
]
}
} |
...