...
Each entry shall be mapped with the corresponding configuration function in the chosen implementation protocol library.
Parameters definition
Attribute | Description | Expected values | Mandatory |
---|---|---|---|
name | this identifies the protocol stack | iec104client, iec104server, tase2client, tase2server, 61850client, 61850server, etc... | Yes |
version | version number of the configuration file | 2 digits x.y => x = major change, y = minor change | Yes |
connection.path | array of connection paths | ||
connection.path.srv_ip | IP address to remote IEC 104 server | IP address | Yes |
connection.path.clt_ip | client IP in case of multiple network interfaces server access | IP address | No |
connection.path.port | port number to remote IEC 104 server | default = 2404 | Yes |
tls | activation of TLS | TRUE, FALSE, default = FALSE | No |
k_value | Maximum number of outstanding (unacknowledged) APDU's at a given time | default = 12 | Yes |
w_value | Acknowledge the reception latest after this number of APDU's | default = 8 | Yes |
t0_timeout | time out of connection establishment | default = 10 | Yes |
t1_timeout | time out for send or test APDU's | default = 15 | Yes |
t2_timeout | time out for acknowledges in case of no data messages (t2 < t1) | default = 10 | Yes |
t3_timeout | time out for sending test frames | default = 20 | Yes |
conn_all | establish all paths within one connection at the same time (=TRUE) or only one (=FALSE) | TRUE, FALSE, default = FALSE | Yes |
start_all | start communication on all established paths at the same time (=TRUE) or on only one (=FALSE) | TRUE, FALSE, default = FALSE | Yes |
conn_passv | establish connection even in passive mode (=TRUE) or not (=FALSE) | TRUE, FALSE, default = FALSE | Yes |
orig_size | size of "Originator Address" | 0, 1 (byte) | No |
orig_addr | Originator Address | default = 0 | No |
ca_asdu_size | size of "Common Address of ASDU" | default = 2 (byte) | Yes |
ioaddr_size | Size of 'Information Object Address' | default = 3 (byte) | Yes |
startup_time | time to wait for startup completion | default = 180 (seconds) | Yes |
asdu_size | |||
gi_time | |||
gi_cycle | |||
gi_all_ca | |||
gi_repeat_count | |||
disc_qual | |||
send_iv_time | |||
tsiv | |||
tz | |||
tz_source | |||
comm_wttag | |||
comm_parallel | |||
exec_cycl_test | |||
startup_state |
Configuration JSON file structure
Code Block | ||
---|---|---|
| ||
{ "protocol_stack":{ "name":"iec104masteriec104client", "version":"1.0", "transport_layer":{ "connection":{ "path":[ { "srv_ip":"192.168.0.10", "clt_ip":"", "port":2404 }, { "srv_ip":"192.168.0.11", "clt_ip":"", "port":2404 } ], "tls":"NONE" }, "k_value":12, "w_value":8, "t0_timeout":10, "t1_timeout":15, "t2_timeout":10, "t3_timeout":20, "conn_all_conn":true, "start_all_start":false, "passiveconn_connpassv":false }, "application_layer":{ "orig_size":1, "orig_addr":"", "ca_asdu_size":2, "ioaddr_size":3, "startup_time":180, "asdu_size":0, "gi_time":60, "gi_cycle":0, "gi_all_ca":false, "gi_repeat_count":2, "disc_qual":"NT", "send_iv_time":0, "tsiv":"REMOVE", "tz":"UTC", "tz_source":"system", "comm_wttag":false, "comm_parallel":0, "exec_cycl_test":false, "startup_state":"active" } } } |
...
- 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.
Configuration JSON file structure
Code Block | ||
---|---|---|
| ||
{ "exchanged_data_layer":{ "name":"iec104masteriec104client", "version":"1.0", "asdu_list":[ { "ca":"41025", "type_id":"M_ME_NA_1", "label":"TM-1", "ioa":"4202832" }, { "ca":"41025", "type_id":"M_ME_NA_1", "label":"TM-2", "ioa":"4202852" }, { "ca":"41025", "type_id":"M_SP_TB_1", "label":"TS-1", "ioa":"4206948" } ] } } |
...
IEC 104 Protocol stack configuration
Configuration JSON file structure
Code Block | ||
---|---|---|
| ||
{ "protocol_stack": { "name": "iec104slaveiec104server", "version": "1.0", "transport_layer": { "bind_on_ip": "FALSE", "port": 2404, "tsecurity": "NONE", "k_value": 12, "w_value": 8, "t1_timeout": 15, "t2_timeout": 10, "t3_timeout": 20, "open_new_path": "TRUE", "bind_on_active": "FALSE", "disc_on_iframe": "TRUE" }, "application_layer": { "orig_size": 1, "orig_addr": "0", "ca_asdu_size": 2, "ioaddr_size": 3, "struct_addr": "FALSE", "asdu_size": 0, "default_class": "CLASS1", "time_sync": "FALSE", "comm_exec_timeout": 20000, "comm_recv_timeout": 5000, "auto_comm_actcon": "FALSE", "auto_comm_actterm": "TRUE", "cmd_block_sel": "FALSE", "abs_time": "TRUE", "tzsource": "OS", "set_wday": "TRUE", "tsiv": "IGNORE", "spon_in_passive": "TRUE", "reset": "TRUE", "filter_orig": "FALSE", "lifeact": "TRUE", "startup": "FALSE", "active": "TRUE" } } } |
...