...
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 | ||
redundancy_groups | array of redundancy groups | Yes | |||
redundancy_groups.connections | array of connections of a given redundancy group | Yes | |||
redundancy_groups.connections.clt_ip | IEC 104 client address | IP address | Yes | ||
redundancy_groups.rg_name | this identifies the redundancy group | Any non empty string | Yes | ||
srv_ip | Server IP address | IP address, machine's default IP for a given interface, default = 0.0.0.0 | No | ||
port | This defines the TCP/IP port to be used by the server. | default = 2404 | No | ||
tls | activation of TLS (see tls configuration chapter for details) | TRUE, FALSE, default = FALSE | No | ||
k_value | Maximum number of outstanding (unacknowledged) APDU's at a given time | default = 12, range : 1 to 32767 | No | ||
w_value | Acknowledge the reception latest after this number of APDU's | default = 8, range : 1 to 32767 | No | ||
t0_timeout | time out of connection establishment | default = 30 seconds, range : 1 to 255 | No | ||
t1_timeout | time out for send or test APDU's | default = 15 seconds, range : 1 to 255 | No | ||
t2_timeout | time out for acknowledges in case of no data messages (t2 < t1) | default = 10 seconds, range : 1 to 255 | No | ||
t3_timeout | time out for sending test frames | default = 20 seconds, range : 1 to 172800 | No | ||
ca_asdu_size | size of "Common Address of ASDU" | default = 2 (byte), enum: 1 or 2 | No | ||
ioaddr_size | size of 'Information Object Address' | default = 3 (byte), enum: 1, 2 or 3 | No | ||
mode | "accept_always": accept connection or maintain connection with center independently from the south asset connection status "accept_if_south_connx_started": accept connection or maintain connection with center only if south asset connection is established and running | default = "accept_always", enum: "accept_always" or "accept_if_south_connx_started" | |||
ca_asdu_size | size of "Common Address of ASDU" | default = 2 (byte), enum: 1 or 2 | No | ||
ioaddr_size | size of 'Information Object Address' | default = 3 (byte), enum: 1, 2 or 3 | No | ||
asdu_size | maximum ASDU size in | asdu_size | maximum ASDU size in transmission direction, if set to "0" => maximum possible value is automatically used. | default = 0 (byte), range : 0 to 255 | No |
asdu_queue_size | minimum number of ASDUs that can be stored in the asdu buffer | default = 100 | No | ||
time_sync | If set on "TRUE" this parameter allows to synchronize the clock of the local computer by the server. If set on "FALSE", the clock is not synchronized. | TRUE, FALSE, default = FALSE | No | ||
cmd_exec_timeout | Defines the command execution monitoring timeout in seconds. | default = 20 seconds, range : 1 to 3 600 | No | ||
cmd_recv_timeout | This parameter defines the highest allowable deviation of received command time tag and local clock in seconds. If the difference is too big, command is ignored. | default = 0 (disabled), range : 0 to 3 600 | No | ||
accept_cmd_with_time | If set to 0, then accept no commands with timestamp, if set to 1 accept only commands with timestamp, if set to 2, then accept both | default =1, enum: 0, 1 or 2 | No | ||
filter_list | List of Authorized Originators | default = empty | No | ||
orig_addr | Originator address | enum: 0, 1, ..., N | |||
cmd_dest | Defines the destination service on which to execute the command | default = broadcast | No | ||
south_monitoring | connection loss and gi failure handling feature | Yes | |||
south_monitoring.assets | array of assets name used to monitor the connection and gi status information from the south | default = [CONSTAT-1, CONSTAT-2] | No |
Configuration JSON structure
Code Block | ||
---|---|---|
| ||
{ "protocol_stack":{ "name":"iec104server", "version":"1.0", "transport_layer":{ "redundancy_groups":[ { "connections":[ { "protocolclt_stackip":{ "192.168.0.10" "name":"iec104server", }, "version":"1.0", "transport_layer":{ "redundancy_groups":[ {"clt_ip":"192.168.0.11" "connections":[ }, { "clt_ip":"19210.168152.01.10" }, { "clt_ip":"19210.168152.01.11" }, ], {"rg_name":"red-group-1" }, "clt_ip":"10.152.1.10" { },"connections":[ { "clt_ip":"10192.152168.10.1110" }, ], { "rg_name":"red-group-1" }, "clt_ip":"192.168.0.11" { "connections":[}, { "clt_ip":"192.168.0.1012" }, { "clt_ip":"192.168.0.1114" }, { "clt_ip":"19210.168152.01.1210" }, { "clt_ip":"19210.168152.01.1411" }, { "clt_ip":"10.152.1.1012" }, { "clt_ip":"10.152.1.1113" }, ], "rg_name":"red-group-2" { } ], "cltsrv_ip":"100.1520.10.120", "port":2404, }"tls":false, { "k_value":12, "w_value":8, "cltt0_iptimeout":"10.152.1.13"30, "t1_timeout":15, } "t2_timeout":10, ]"t3_timeout":20, "rg_namemode":"red-group-2accept_always" }, }"application_layer":{ ]"ca_asdu_size":2, "srv_ip":"0.0.0.0""ioaddr_size":3, "portasdu_size":24040, "tlsasdu_queue_size":false100, "ktime_valuesync":12false, "wcmd_exec_valuetimeout":820, "t0cmd_recv_timeout":300, "t1cmd_timeoutdest":15"broadcast", "t2_timeoutaccept_cmd_with_time":101, "t3filter_timeoutlist":20[ }, "application_layer":{ "ca_asdu_size":2, "ioaddrorig_sizeaddr":3,1 "asdu_size":0, "asdu_queue_size":100}, "time_sync":false, { "cmd_exec_timeout":20, "cmdorig_recv_timeoutaddr":0,2 "cmd_dest":"broadcast",} "accept_cmd_with_time":1, ] }, "filtersouth_listmonitoring":[ { "orig_addrasset":"CONSTAT-1" }, { "orig_addrasset":"CONSTAT-2" } ] } } } |
TLS configuration
The CS 104 standard can also be used with TLS to realize secure and authenticated connections.
...