Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

HNZ connexion initialization

When the HNZ south plugin establishes a new connection wit ha with a HNZ device, it will automatically send the following messages to the device:

...

AttributeDescriptionExpected valuesMandatory
namethis identifies the protocol stackiec104client, iec104server, tase2client, tase2server, 61850client, 61850server, etc...Yes
versionversion number of the configuration file2 digits x.y => x = major change, y = minor changeYes
connectionsarray of connections
Yes
connections.srv_ipIP address to remote HNZ serverIP addressYes
connections.port

port number to remote HNZ server

default = 6001No
remote_station_addrremote server station address6 bitsYes
Inacc_timeouttimeout before declaring the remote server unreachable (DF.GLOB.TS)default = 180 (seconds)No
max_sarmmax number of SARM messages before handing over to the passive path (A/B)default = 30No
repeat_path_Amax number of authorized repeats for path Adefault = 3No
repeat_path_Bmax number of authorized repeats for path Bdefault = 3No
repeat_timeouttime allowed for the receiver to acknowledge a frame, after this time, the sender repeats the frame.default = 3000No
anticipation_rationumber of frames allowed to be received without acknowledgement default = 3No
test_msg_sendtest message code in sending directiondefault = 1304No
test_msg_receivetest message code in receiving directiondefault = 1304No
gi_schedulescheduled time for General Interrogation sendingdefault = 99:99 (disabled)No
gi_repeat_countrepeat GI for this number of times in case it is incompletedefault = 3No
gi_timetime to wait for General Interrogation (GI) completiondefault = 255 (seconds)No
c_ack_timetime to wait before receving a acknowledgement for a control commanddefault = 10 (seconds)No

cmd_recv_timeout

time to wait for bytes when receiving data from the HNZ devicedefault = 100000 (microseconds)No
bulle_timetime to wait before sending a BULLE message after the previous message sentdefault = 10 (seconds)No
south_monitoring.asset

asset name used to send the connection and gi status information to the north

default = "CONNECTION-1"No

Configuration JSON structure

Code Block
languagepy
{
   "protocol_stack":{
      "name":"hnzclient",
      "version":"1.0",
      "transport_layer":{
         "connections":[
            {
               "srv_ip":"192.168.0.10",
               "port":6001
            },
            {
               "srv_ip":"192.168.0.11",
               "port":6002
            }
         ]
      },
      "application_layer":{
         "remote_station_addr":12,
         "inacc_timeout":180,
         "max_sarm":30,
         "repeat_path_A":3,
         "repeat_path_B":3,
         "repeat_timeout":3000,
         "anticipation_ratio":3,
         "test_msg_send":"1304",
         "test_msg_receive":"1304",
         "gi_schedule":"99:99",
         "gi_repeat_count":3,
         "gi_time":255,
         "c_ack_time":10,
         "cmd_recv_timeout":100000,
         "bulle_time": 10
      },
      "south_monitoring":{
         "asset":"CONNECTION-1"
      }
   }
}

...

AttributeDescriptionExpected valuesMandatory
do_typemessage typeTS, TM, TC, TVCYES
do_stationstation address
YES
do_addressmessage address
YES
do_valuevalue

TM (do_an = TMA): [-127..127]

TM (do_an = TM8): [0..255]

TM (do_an = TM16): [-32768..32767]

TS: [0..1]

TC: [1..2] (01b = offon, 10b = onoff)

TVC: [-255..255]

YES except in quality update readings
do_validvalidityvalid = 0 or invalid = 1YES
do_anTM type (analogic / numeric)"TMA", "TM8", "TM16"TM only
do_cgTS sourceCG = 1 or CE = 0TS only
do_outdatedOutdated message (after connection loss)up to date =0, outdated = 1TM and TS only
do_tstimestampepoch timestamp in millisecondsTS CE only
do_ts_ivtimestamp invalidvalid = 0 or invalid = 1 (from bit HNV)TS CE only
do_ts_closs of chronologylost = 1 else = 0 (from bit CV)TS CE only
do_ts_sts not synchronizedsynchronized = 0 else = 1  (from bit S)TS CE only

...

Code Block
languagepy
{
    "data_object":{
        "do_type":"TC",
        "do_station":12,
        "do_addr":71,
        "do_valuevalid":1,
        "do_valid":0
     }
 }

Example for a TVC (after receiving ACK):

Code Block
languagepy
{
    "data_object":{
        "do_type":"TVC",
        "do_station":12,
        "do_addr":31,
        "do_value":42,
        "do_valid":0
     }
 }

NB: if an attribute is not required, then it is not put in the output data object, which means that the output object structure always fits the protocol model object type.

...

OrderAttributeDescriptionExpected valuesMandatory
0co_typemessage typeTC, TVCYES
1co_addrmessage address

[0..255][0..7] (ADO + ADB) for a TC, [0..31] for a TVC

YES
2co_valuevalue[1..2] (01b = on, 10b = off)YES

The processing of FLEDGE commands should evolve. Below is an example of JSON format :

...

Code Block
languagepy
{
    "co_type":"TVC",
    "co_addr":31,
    "co_value":142
}

NB: if an attribute is not required, then it is not put in the output data object, which means that the output object structure always fits the protocol model object type.

...