...
(7) OPCUA exposition using the opcua north plugin, the output is a OPCUA object.
Code Block | ||
---|---|---|
| ||
{
"data_object":{
"do_type":"type_id",
"do_ca":"ca",
"do_oa":"oa",
"do_cot":"cot",
"do_test":"istest",
"do_negative":"isnegative",
"do_ioa":"ioa",
"do_value":"value",
"do_quality":"quality_desc",
"do_ts":"time_marker",
"do_ts_qual":"isinvalid",
"do_ts_sum_time":"isSummerTime"
}
} |
Pivot object model
The pivot object model is based on 61850 semantic.
...
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, machine's default IP for a given interface | No |
connection.path.port | port number to remote IEC 104 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 | No |
w_value | Acknowledge the reception latest after this number of APDU's | default = 8 | No |
t0_timeout | time out of connection establishment | default = 10 | No |
t1_timeout | time out for send or test APDU's | default = 15 | No |
t2_timeout | time out for acknowledges in case of no data messages (t2 < t1) | default = 10 | No |
t3_timeout | time out for sending test frames | default = 20 | No |
conn_all | establish all paths within one connection at the same time (=TRUE) or only one (=FALSE) | TRUE, FALSE, default = FALSE | No |
start_all | start communication on all established paths at the same time (=TRUE) or on only one (=FALSE) | TRUE, FALSE, default = FALSE | No |
conn_passv | establish connection even in passive mode (=TRUE) or not (=FALSE) | TRUE, FALSE, default = FALSE | No |
orig_addr | Originator Address | default = 0 | No |
ca_asdu_size | size of "Common Address of ASDU" | default = 2 (byte) | No |
ioaddr_size | size of 'Information Object Address' | default = 3 (byte) | No |
startup_time | time to wait for startup completion | default = 180 (seconds) | No |
asdu_size | maximum ASDU size in transmission direction, if set to "0" => maximum possible value is automatically used. | default = 0 (byte) | No |
gi_time | time to wait for General Interrogation (GI) completion | default = 0 (seconds) | No |
gi_cycle | send General Interrogation (GI) cyclically | TRUE, FALSE, default = FALSE | No |
gi_all_ca | send a separate GI request to every CA; otherwise a broadcast GI request is used | TRUE, FALSE, default = FALSE | No |
gi_repeat_count | repeat GI for this number of times in case it is incomplete | default = 2 | No |
disc_qual | information object quality in case of interrupted connection | IV = Invalid, NT = Not Topical, default = NT | No |
send_iv_time | time delay before infos are sent as invalid (0 = deactivated) | default = 0 | No |
tsiv | specifies what to do with a time stamp marked as 'invalid' | remove, process, default = remove remove: the time stamp will be removed from the information object process: the time stamp will be processed on regular basis and additionally marked as 'not synchronized' | No |
utc_time | UTC timezone (=TRUE) or local timezone (=FALSE) for time conversion | TRUE, FALSE, default = FALSE | No |
comm_wttag | use commands with time tag (=TRUE) or without time tag (=FALSE) | TRUE, FALSE, default = FALSE | No |
comm_parallel | maximum number of commands to be executed at in parallel (0 = unlimited) | default = 0 | No |
exec_cycl_test | execute cyclical test requests (C_TS_NA_1/C_TS_TA_1) in monitoring direction (=TRUE) or not (=FALSE) | TRUE, FALSE, default = FALSE | No |
startup_state | startup in active mode (=TRUE) or in passive mode (=FALSE) | TRUE, FALSE, default = TRUE | No |
reverse | allow transmission of information objects in reverse direction (=TRUE) or only in standard direction (=FALSE) | TRUE, FALSE, default = FALSE | No |
time_sync | perform time synchronization (=TRUE) | TRUE, FALSE, default = FALSE | No |
Configuration JSON file structure
, default = FALSE | No |
Configuration JSON file structure
Code Block | ||
---|---|---|
| ||
{
"protocol_stack":{
"name":"iec104client",
"version":"1.0",
"transport_layer":{
| ||
Code Block | ||
| ||
{ "protocol_stack":{ "nameconnection":"iec104client", { "path":[ { "versionsrv_ip":"1192.168.0.10", "transport_layer":{ "clt_ip":"", "connectionport":{2404 "path":[}, { "srv_ip":"192.168.0.1011", "clt_ip":"", "port":2404 }, ], { "tls":false }, "srvk_ipvalue":"192.168.0.11"12, "w_value":8, "t0_timeout":10, "cltt1_iptimeout":""15, "t2_timeout":10, "portt3_timeout":240420, "conn_all":true, } "start_all":false, ],"conn_passv":false }, "tlsapplication_layer":false{ }"orig_addr":0, "kca_asdu_valuesize":122, "wioaddr_valuesize":83, "t0startup_timeouttime":10180, "t1asdu_timeoutsize":150, "t2gi_timeouttime":1060, "t3gi_timeoutcycle":20false, "conngi_all_ca":truefalse, "startgi_repeat_allcount":false2, "conndisc_passvqual":false "NT", }"send_iv_time":0, "application_layer "tsiv":{"REMOVE", "origutc_addrtime":0false, "cacomm_asdu_sizewttag":2false, "ioaddrcomm_sizeparallel":30, "startupexec_cycl_timetest":180false, "asdustartup_sizestate":0true, "gi_timereverse":60false, "gitime_cyclesync":false, } } } |
IEC 104 datapoint representation
This is the Datapoint representation of an IEC 104 ASDU.
Code Block | ||
---|---|---|
| ||
{ "gidata_all_caobject":false,{ "gi_repeat_count":2do_type":"type_id", "discdo_qualca":"NTca", "senddo_iv_timeoa":0"oa", "tsivdo_cot":"REMOVEcot", "utcdo_timetest":false"istest", "commdo_wttagnegative":false"isnegative", "commdo_parallelioa":0"ioa", "execdo_cycl_testvalue":false"value", "startupdo_statequality":true"quality_desc", "reversedo_ts":false"time_marker", "time_sync":false"do_ts_qual":"isinvalid", }"do_ts_sum_time":"isSummerTime" } } |
...
Path exploration
draw.io Diagram | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...