IEC 104

Power Dispatch Communication Protocol

Definition

IEC 104 (IEC 60870-5-104) is the standard communication protocol between the power dispatch automation master station and substations and RTUs, based on TCP/IP and using ASDU data units. It supports telemetry, telecommand, remote control, remote regulation, and event sequence recording (SOE) with timestamps. The SCADA system of China power dispatch widely adopts IEC 104. SimtoLink RTU supports IEC 104 access to provincial and regional dispatch master stations.

Protocol Structure

IEC 104 extends IEC 101 (serial version) to TCP/IP transmission, with the default port 2404. The APDU is composed of a start character, length, control field, and ASDU. The ASDU contains type identification, variable structure, cause of transmission, common address, information object, etc. Common types: M_SP_NA_1 (single-point telemetry), M_ME_NC_1 (floating-point telemetry), C_SC_NA_1 (single-point remote control), C_DC_NA_1 (double-point remote control), etc. Supports general interrogation, clock synchronization, and spontaneous transmission.

Comparison with DNP3

DNP3 Is dominant in North America and parts of the Asia-Pacific region; IEC 104 is widely used in power dispatching in China and Europe. Both support the four remote functions and SOE, but the frame format, object model, and security mechanisms are different. The selection needs to be based on the master station system and regional standards. Some RTU Support both IEC 104 and DNP3, meeting the needs of different projects.

Use Cases

Substation RTU communicates with provincial/local dispatch master stations; distribution automation FTU and DTU communicate with the master station; monitoring of new energy power plants; water treatment, oil and gas pipelines SCADA. Industrial gateways can convert IEC 104 data to Modbus, OPC UA, and connect to third-party platforms. The power industry has high requirements for protocol compliance and security certification, and product certification and compatibility with the master station need to be confirmed when selecting equipment.

General interrogation and spontaneous reports

This protocol carries application service data units on TCP. After the start character and the length comes the control field, and only then the type identification, the cause of transmission, the common address, and the information objects. General interrogation gets the current snapshot. A spontaneous report announces a change. Clock synchronization lines up timestamps. Spontaneous reports with no interrogation leave a restarted master unaware of the current switch state. Periodic interrogation with no spontaneous report cannot keep a short change that happens between two interrogations. A command usually selects and then executes. The select has a validity time, and it should be cancelled if execute does not arrive in time. The two bits of a double-point status mean closed, open, and indeterminate. They cannot be translated directly as the zero and one of a single point.

The conditions are a common address, information-object addresses, and type identifications that match the master database, and the same port and link-confirmation parameters on both sides. Sequence numbers have to be consecutive. A bad sequence rebuilds the link. A type with a timestamp and a type without one must not be substituted. After a substitution the master may reject the message, or write the arrival time as the time it happened. Invalid, overflow, and substituted in the quality descriptor have to reach the master graphic. A gateway must not strip them. Which of two redundant masters may send a command has to be fixed in the design. Both sending execute at once repeats the operation.

Common address and command select

If every information-object address is off by one, the link test still passes and a measurement is displayed on the neighboring bay. A wrong common address makes the master discard the whole station, while the outstation sees a successful send. A type identification in a floating-point or scaled format the master was not configured for is rejected or scaled wrong. When the clock is not synchronized, every timestamp of a sequence of events is off by one fixed amount. The incident order is wrong. The offset is not random, so it does not look like lost frames.

If a link plate or the remote/local switch changes in the field after a successful select, execute should fail. A master that ignores a negative confirmation displays a successful command. A test frame only proves the transport is still alive. It does not prove the point map is correct. Copying another vendor's information-object address table is the hardest problem to find late in commissioning, because every point has a number and the physical meaning is wrong. When forwarding to another system, keep the cause of transmission. Periodic values and spontaneous values are handled differently. Writing both with the same quality disables the master's alarm logic. After a channel returns, run a general interrogation and a clock synchronization at once. Do not wait for the next planned cycle.

Negative confirmation and cause of transmission

A successful select is not a successful execute. If a link plate, the remote/local switch, or another interlock changes before execute, the outstation should return a negative confirmation. A master that displays that negative confirmation as a successful operation puts the dispatch graphic and the field position in opposite states. A test frame only proves transport is alive. General interrogation is what proves the point map has a current snapshot. The first thing after communication returns is general interrogation and clock synchronization, not a wait for the next planned cycle.

When an information-object address is off by one, every point has a number and it is the neighboring bay. A link test will not find that. Check it with a field operate. A wrong common address drops the whole station, and the outstation still sends successfully. When forwarding to another system, keep the cause of transmission and the quality. A periodic value and a spontaneous value must not be written as the same quality. Command rights of two masters are exclusive. Executing from both repeats the action. A fixed timestamp offset means the clocks are not aligned. It is not random the way lost frames are, and it mis-orders the incident.

A continuous run of information-object addresses is a common practice, not a guarantee of the protocol. After a gap or a spare point is inserted, a master that generates addresses in order shifts every later point. The type identification decides how the value is decoded. A scaled value and a floating-point value cannot be judged by looking close. Substituted, blocked, and invalid in the quality should be different icons. Folding them all into "bad" leaves the operator unable to tell maintenance from a fault. The select's validity time is counted on the outstation. A countdown on the master screen is only a hint. The outstation's refusal is what counts. The cause of transmission of clock synchronization is not the cause of general interrogation. If a gateway rewrites every cause as periodic, the master's incident review loses the spontaneous order. Until the general interrogation after the channel returns has finished, switch state on the graphic should be marked as stale.

Related Terms

Return to hardware knowledge base