...
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 |
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 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 (array) → only commands from authorized originator addresses are accepted. | default = empty | No |
filter_list.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 |
...
Warning |
---|
The current implementation does not use a json structure, so the order of parameters is mandatory. |
Order | Attribute JSON (not currently used) | Description | Expected values | Mandatory | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | co_type | Type of ASDU | YES | ||||||||||
1 | co_ca | Common Address of ASDU | YES | 1||||||||||
2 | co_ioa | Information object address | YES | 2||||||||||
3 | co_ | valuecot | ValueCause of Transmission | YES | 3|||||||||
4 | co_ | seSelect or Executenegative | is negative command ? | 0 or 1 = negative | YES | 4||||||||
5 | co_ | tsse | timestamp | YES | 5 | co_type | Type of ASDUSelect or Execute | 0 = Direct execute or 1 = Select before Execute | YES | ||||
6 | co_ | oaOriginator addresstest | is test command ? | 0 or 1 = test | YES | ||||||||
7 | co_ | cotCause of Transmission | See Cause of Transmissionts | timestamp | YES | ||||||||
8 | co_ | testis test command ? | 0 or 1value | Value | YES | ||||||||
9 | co_ | negativequ | is | negative commandpulse defined ? | 0 or 1 | YES | 10 | co_qu | is= pulse defined | ?0 or 1 | YES | NO |
The processing of FLEDGE commands should evolve. Below is an example of JSON format of an instance of an Operation object :
Code Block | ||
---|---|---|
| ||
operation: { type: "command_object":{ IEC104Command", nbParams=9, names=[ "co_type", "co_ca", "co_ioa", "co_cot", "co_negative", "co_se", "co_test", "co_ts", "co_type":"C_DC_TA_1", value" ], parameters=[ "co_ca":18325C_SC_TA_1", "co_oa21441":0, "co_cot74":7, "co_test7":0, "co_negative0":0, "co_ioa0":6438967, "co_value0":2, "co_qu1701426945586":0, "co_se":0, "co_ts":1653484330239 }1" ], cmdDest="hnzsouth_s1" } |