IEC 104 Protocol stack configuration
...
Code Block | ||
---|---|---|
| ||
{
"protocol_stack":{
"name":"iec104client",
"version":"1.0",
"transport_layer":{
"redundancy_groups":[
{
"connections":[
{
"srv_ip":"192.168.0.10",
"port":2404,
"conn":true,
"start":true
},
{
"srv_ip":"192.168.0.11",
"port":2404,
"conn":true,
"start":false
}
],
"rg_name":"red-group-1",
"tls":false,
"k_value":12,
"w_value":8,
"t0_timeout":10,
"t1_timeout":15,
"t2_timeout":10,
"t3_timeout":20
},
{
"connections":[
{
"srv_ip":"192.168.0.12",
"port":2404,
"conn":false,
"start":false
},
{
"srv_ip":"192.168.0.13",
"port":2404,
"conn":false,
"start":false
}
],
"rg_name":"red-group-2",
"tls":false,
"k_value":12,
"w_value":8,
"t0_timeout":10,
"t1_timeout":15,
"t2_timeout":10,
"t3_timeout":20
}
]
},
"application_layer":{
"orig_addr":0,
"ca_asdu_size":2,
"ioaddr_size":3,
"startup_time":180,
"asdu_size":0,
"gi_cycle":0,
"gi_all_ca":true,
"time_sync":false
}
}
} |
...
Any check against type ids should be considering the following combinations table:
Type ID | Type ID with timetag | Alternative format type id |
M_SP_NA_1 | M_SP_TA_1,M_SP_TB_1 | M_PS_NA_1 |
M_DP_NA_1 | M_DP_TA_1,M_DP_TB_1 | M_EP_TA_1,M_EP_TD_1 |
M_ST_NA_1 | M_ST_TA_1,M_ST_TB_1 | |
M_BO_NA_1 | M_BO_TA_1,M_BO_TB_1 | |
M_ME_NA_1 | M_ME_TA_1,M_ME_TD_1 | M_ME_ND_1 |
M_ME_NB_1 | M_ME_TB_1,M_ME_TE_1 | |
M_ME_NC_1 | M_ME_TC_1,M_ME_TF_1 | |
M_IT_NA_1 | M_IT_TA_1,M_IT_TB_1 |
Example: any transmitted ASDU with type id M_SP_* type id is considered as valid if the exchange data configuration of a given datapoint specifies one the type id: M_SP_NA_1, M_SP_TA_1, M_SP_TB_1 and M_PS_NA_1
Path exploration
Drawio | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
In redundant network configuration or generally in cases where several communication paths exist between one client and one server, the path checking exploration mechanism allows the client to try all the paths one by one without making any difference between them. The client uses the first available path. On disconnection this procedure starts again from the beginning.
TLS configuration
The CS 104 standard can also be used with TLS to realize secure and authenticated connections.
3 parameters are needed to set up the TLS secured connection:
- private key file
- server certificate
- root certificate (CA)
Fledge's certificate store allows certificates to be stored and used by the south plugins.
Code Block | ||
---|---|---|
| ||
{ "tls_conf:": { "private_key": "server-key.pem", "server_cert": "server.cer", "ca_cert": "root.cer" } } |
...