Using IEC 104
IEC 60870-5-104 is a protocol for power system monitoring and controlling. Mostly used to communicate between substations and control centers over Ethernet (Fiber optics, 2/3/4G, ...). IEC 60870-5-104 protocol is an extension of IEC 60870-5-101 protocol with the changes in transport, network, link and physical layer services to suit the complete network access.
Here you will find basic information about protocol parameters:
- APCI - Application Protocol Control Information
- APDU - Application Protocol Data Unit
- ASDU - Application Service Data Unit
Address[edit | edit source]
- IP address - every device in Ethernet have physical address
- ASDU address - every slave (client) device has a logical address, also one device could have more than one ASDU address
- IOA address - information object address
Type identification[edit | edit source]
|2||M_SP_TA_1||Single-point information with time tag||Monitor||Yes|
|4||M_DP_TA_1||Double-point information with time tag||Monitor||Yes|
|5||M_ST_NA_1||Step position information||Monitor||No|
|6||M_ST_TA_1||Step position information with time tag||Monitor||No|
|7||M_BO_NA_1||Bit string of 32 bit||Monitor||No|
|8||M_BO_TA_1||Bit string of 32 bit with time tag||Monitor||No|
|9||M_ME_NA_1||Measured value, normalized value||Monitor||Yes|
|10||M_ME_TA_1||Measured value, normalized value with time tag||Monitor||Yes|
|11||M_ME_NB_1||Measured value, scaled value||Monitor||Yes|
|12||M_ME_TB_1||Measured value, scaled value wit time tag||Monitor||Yes|
|13||M_ME_NC_1||Measured value, short floating point number||Monitor||Yes|
|14||M_ME_TC_1||Measured value, short floating point number with time tag||Monitor||Yes|
|16||M_IT_TA_1||Integrated totals with time tag||Monitor||No|
|17||M_EP_TA_1||Event of protection equipment with time tag||Monitor||No|
|18||M_EP_TB_1||Packed start events of protection equipment with time tag||Monitor||No|
|19||M_EP_TC_1||Packed output circuit information of protection equipment with time tag||Monitor||No|
|20||M_PS_NA_1||Packed single point information with status change detection||Monitor||No|
|21||M_ME_ND_1||Measured value, normalized value without quality descriptor||Monitor||No|
|30||M_SP_TB_1||Single-point information with time tag CP56Time2a||Monitor||Yes|
|31||M_DP_TB_1||Double-point information with time tag CP56Time2a||Monitor||Yes|
|32||M_ST_TB_1||Step position information with time tag CP56Time2a||Monitor||Yes|
|33||M_BO_TB_1||Bit string of 32 bit with time tag CP56Time2a||Monitor||No|
|34||M_ME_TD_1||Measured value, normalized value with time tag CP56Time2a||Monitor||Yes|
|35||M_ME_TE_1||Measured value, scaled value with time tag CP56Time2a||Monitor||Yes|
|36||M_ME_TF_1||Measured value, short floating point number with time tag CP56Time2a||Monitor||Yes|
|37||M_IT_TB_1||Integrated totals with time tag CP56Time2a||Monitor||No|
|38||M_EP_TD_1||Event of protection equipment with time tag CP56Time2a||Monitor||No|
|39||M_EP_TE_1||Packed start events of protection equipment with time tag CP56Time2a||Monitor||No|
|40||M_EP_TF_1||Packed output circuit information of protection equipment with time tag CP56Time2a||Monitor||No|
|47||C_RC_NA_1||Regulating step command||Control||No|
|48||C_SE_NA_1||Set-point Command, normalized value||Control||Yes|
|49||C_SE_NB_1||Set-point Command, scaled value||Control||Yes|
|50||C_SE_NC_1||Set-point Command, short floating point number||Control||Yes|
|51||C_BO_NA_1||Bit string 32 bit command||Control||No|
|58||C_SC_TA_1||Single command with time tag CP56Time2a||Control||Yes|
|59||C_DC_TA_1||Double command with time tag CP56Time2a||Control||Yes|
|60||C_RC_TA_1||Regulating step command with time tag CP56Time2a||Control||No|
|61||C_SE_TA_1||Measured value, normalized value command with time tag CP56Time2a||Control||Yes|
|62||C_SE_TB_1||Measured value, scaled value command with time tag CP56Time2a||Control||Yes|
|63||C_SE_TC_1||Measured value, short floating point number command with time tag CP56Time2a||Control||Yes|
|64||C_BO_TA_1||Bit string of 32 bit command with time tag CP56Time2a||Control||No|
|70||M_EI_NA_1||End of Initialization||Monitor||Yes|
|101||C_CI_NA_1||Counter interrogation command||Control||No|
|103||C_CS_NA_1||Clock synchronization command||Control||Yes|
|105||C_RP_NA_1||Reset process command||Control||No|
|106||C_CD_NA_1||Delay acquisition command||Control||No|
|107||C_TS_TA_1||Test command with time tag CP56Time2a||Control||No|
|110||P_ME_NA_1||Parameter of measured values, normalized value||Control||No|
|111||P_ME_NB_1||Parameter of measured values, scaled value||Control||No|
|112||P_ME_NC_1||Parameter of measured values, short floating point number||Control||No|
|120||F_FR_NA_1||File ready||File transfer||No|
|121||F_SR_NA_1||Section ready||File transfer||No|
|122||F_SC_NA_1||Call directory, select file, call file, call section||File transfer||No|
|123||F_LS_NA_1||Last section, last segment||File transfer||No|
|124||F_FA_NA_1||ACK file, ACK section||File transfer||No|
|127||F_SC_NB_1||Request archive file||File transfer||No|
Cause of transmission[edit | edit source]
|5||Interrogation or interrogated|
|11||Return information caused by a remote command|
|12||Return information caused by a local command|
|20||Interrogated by general interrogation|
|21||Interrogated by interrogation group 1|
|22||Interrogated by interrogation group 2|
|23||Interrogated by interrogation group 3|
|24||Interrogated by interrogation group 4|
|25||Interrogated by interrogation group 5|
|26||Interrogated by interrogation group 6|
|27||Interrogated by interrogation group 7|
|28||Interrogated by interrogation group 8|
|29||Interrogated by interrogation group 9|
|30||Interrogated by interrogation group 10|
|31||Interrogated by interrogation group 11|
|32||Interrogated by interrogation group 12|
|33||Interrogated by interrogation group 13|
|34||Interrogated by interrogation group 14|
|35||Interrogated by interrogation group 15|
|36||Interrogated by interrogation group 16|
|37||Interrogated by counter general interrogation|
|38||Interrogated by interrogation counter group 1|
|39||Interrogated by interrogation counter group 2|
|40||Interrogated by interrogation counter group 3|
|41||Interrogated by interrogation counter group 4|
|44||Type Identification unknown|
|46||ASDU address unknown|
|47||Information object address unknown|
Block Information[edit | edit source]
- By adding IEC104 slave block , IEC 104 will be activated on the RTU.
- TCP or Serialport block is connected to IEC104 block ser input.
- IEC 104 blocks must be added for each server to serve multiple servers.
- Asd input is used if IEC104 Asdu address is set from outside but not inside block.
- On the rising edge of the trigger, periodic transmission between IEC104 objects is activated and the selected objects are transmitted to the server periodically. Trigger input can be left blank.
Ser: TCP Socket Input. The TCP server socket block from which the IEC104 protocol will work is connected from this input
Trg: Trigger Input Trigger input for periodic sending. It works as a rising edge.
Asd: Asdu Address Input The ASDU address is used as input.
Q1: Link Status If the IEC104 connection between SCADA and RTU is installed, this output value is 1, otherwise 0.
Q2: SCADA write status, If SCADA requests select and execute, a pulse is generated at this output.
Custom Settings[edit | edit source]
AsduAddress: IEC104 slave station ASDU address is defined
T0: Timeout for the establishment of the connection with the server. (Not used Slave)
T1: This parameter defines the time in seconds that slave waits maximum for an acknowledge from the master.
T2: Timeout period for Ack (A S-format frame will be sent at the latest after this time starting from the last received telegram from the master)
T3: Test frame sending time (A Test frame will be sent at the latest after this time starting from the last received telegram from the master)
K: The maximum allowable difference between the sequence number in the received packet and the number in the send status variable.
W: ACK(acknowledge message) sending frequency(sends ACK after W packets)
Sample Application[edit | edit source]
Variable Mapping with Protocol[edit | edit source]
Variable Address Table[edit | edit source]
Defining Line Labels[edit | edit source]
Attaching a Line Label[edit | edit source]
Alias: A special name is given that defines this defined variable.
Start Address:The address allocated for this variable on SCADA is written here. It is written as a decimal value
Line Label:The block to be associated on the Mikrodiagram is selected with the line label.
Point Count:Calculated automatically. It makes sense on tables.
Protocol Type:Modbus, Dnp3, IEC101, IEC104 are selected. Object type will change according to protocol type.
Object Type:IEC104 object type information selected. look the protocol type information for detailed information.
Object Class:The class information to which the variable belongs is selected.
Send On Trigger:IEC104 Slave block is the selection to send to this SCADA as a periodic send when the test is detected from the trigger input.
Send Method: If the value of the defined variable is changed, the operation to be performed is selected. Level: When the quantity defined in "Change Value" is changed, the transmission is triggered. Percentage: The transmission is triggered when there is a change in the percentage defined in "Change Value". None: Value exchange does not trigger posting
Change Value: With the "Send method", it adjusts the percentage change in the level.