Control center / master
The master initiates communication, polls data, sends commands, and expects proof. In IEC-101 and IEC-103 this often means controlled serial polling. In IEC-104 it means TCP session control plus ASDU exchange.
IEC 60870 Engineering Wiki
This is a practical learning center for engineers working with IEC 60870-5-101, IEC 60870-5-103, and IEC 60870-5-104. It explains the protocol family, how frames are shaped, what healthy sessions look like, what usually breaks in the field, and how to turn raw TX/RX traffic into defensible evidence.
Source and legal scope
IEC standards are licensed publications. This wiki uses public descriptions, the ARIEC60870 implementation model, and practical engineering explanations. It intentionally does not reproduce protected normative tables. For formal conformance work, buy and use the official IEC publications.
Beginner primer
IEC 60870 is not a screen protocol. It is a field communication family used so control centers, gateways, RTUs, and relays can exchange status, measurements, events, and control commands in a predictable way.
The master initiates communication, polls data, sends commands, and expects proof. In IEC-101 and IEC-103 this often means controlled serial polling. In IEC-104 it means TCP session control plus ASDU exchange.
The RTU or outstation exposes field points: breaker status, alarms, analog values, counters, and command targets. It may answer only when polled, or it may advertise pending high-priority data.
A relay is not just another RTU. It can provide protection events, disturbance-related data, relay timestamps, and relay-specific FUN/INF addressing that must be mapped carefully.
The protocol tells you addresses and raw values. The project point list tells you what those points mean in the substation. Friendly signal names must come from user-owned mapping data, not guesses.
Plain-language flow
Protocol map
IEC 60870 is a telecontrol standards family. In daily SCADA and protection work, the names engineers meet most often are 101, 103, and 104.
| Protocol | Typical job | Transport shape | Evidence you inspect | Common field failure |
|---|---|---|---|---|
| IEC 60870-5-101IEC-101 | RTU/outstation telecontrol for serial links. | Asynchronous serial, FT1.2 style link framing, balanced or unbalanced procedures depending on profile. | Link control bits, Class 1/Class 2 polling, ASDU Type/COT/CA/IOA, GI and commands. | Wrong CA/IOA, bad polling policy, endless Class 1 requests, missing ACTCON, incomplete GI. |
| IEC 60870-5-103IEC-103 | Protection relay communication and event/measurand exchange. | Serial relay link using IEC-103 ASDUs and relay-oriented FUN/INF addressing. | Reset/link state, relay event timestamps, Type/COT, FUN/INF, generic service evidence. | Mapped names guessed from vendor behavior, relay timestamp ignored, event drain confused with polling. |
| IEC 60870-5-104IEC-104 | Network access to IEC-101-style application data over TCP/IP. | TCP session with APCI control, U-frames, I-frames, S-frames, and ASDUs. | STARTDT/STOPDT/TESTFR, send/receive sequence counters, ASDU CA/IOA, GI and command lifecycle. | TCP connected but STARTDT not confirmed, sequence counter mismatch, CA mismatch, idle TESTFR symptoms. |
Mental model
Do not start by interpreting one hex byte in isolation. Establish the session, link, address, ASDU, object, quality, and timing evidence in order.
Serial parameters, RS-485 direction, modem behavior, TCP port, firewall, latency, and idle disconnects.
IEC-101/103 link control and FCB/FCV behavior; IEC-104 STARTDT, STOPDT, TESTFR, and sequence counters.
Type identifier, Cause of Transmission, Common Address, IOA or FUN/INF, and profile-specific address lengths.
Single or double indications, measurands, commands, protection events, timestamps, quality, and project mapping.
What changed, what failed, what proof supports it, and what the next engineering action should be.
Frame anatomy
Exact field sizes depend on protocol mode and profile settings. The learning goal is to know which layer a field belongs to and what question it answers.
Normal sequences
When the rhythm breaks, ARIEC60870 should show the missing step and keep the raw frame proof beside the explanation.
Open serial link, optionally reset link, establish FCB state, optionally synchronize time, activate GI, receive confirmation and data, then return to controlled Class 2 polling.
Study GI startupPoll Class 2 normally. When a response advertises ACD=1, request Class 1 in a bounded drain until no data, GI completion, ACD clear, DFC busy, timeout, or configured max drain.
Study Class 1/Class 2Open TCP, receive or send STARTDT activation, confirm data transfer, exchange I-frames/S-frames, use TESTFR for liveness, and close intentionally with STOPDT or TCP close.
Study IEC-104 sessionReset link/state, read identification or measurands as needed, drain Class 1 relay events, preserve relay timestamps, and map FUN/INF only through user-owned profile files.
Study IEC-103 eventsLearning path
The order below avoids the usual trap: memorizing type numbers before understanding session state, addressing, polling, and evidence.
Learn the difference between link address, Common Address, IOA, and IEC-103 FUN/INF before debugging values.
Read addressing guideGI is the clearest first proof that the outstation can deliver a usable process snapshot.
Read GI guideUnderstand Class 2 background polling, ACD-driven Class 1 drain, DFC busy, and why uncontrolled Class 1 loops are bad evidence.
Read polling guideDo not call a command successful until confirmations, feedback, termination, and quality/timing evidence make sense.
Read command guideTCP connect is only the first layer. STARTDT, TESTFR, sequence counters, and I/S/U frame roles decide protocol health.
Read IEC-104 guideUse relay timestamp when available, preserve raw FUN/INF, and avoid inventing vendor semantics without a mapping profile.
Read relay guideTroubleshooting matrix
A good report does not say only "communication failed." It states the symptom, the evidence, likely cause, and next action.
| Symptom | Proof to capture | Likely layer | Start here |
|---|---|---|---|
| Port/TCP is open but no values arrive. | Startup frames, GI activation/confirmation, returned ASDUs, timeout evidence. | Session, polling, or addressing. | GI incomplete |
| Device answers but values look wrong or empty. | ASDU Common Address, IOA/FUN/INF, Type/COT, selected-frame decode. | Application addressing or mapping. | CA mismatch |
| Master repeats Class 1 requests with no useful data. | ACD/DFC bits, request class, no-data responses, drain limit. | Polling policy. | Class 1/Class 2 |
| Command was transmitted but not accepted. | Command ASDU, ACTCON/ACTTERM, select/execute state, timeout, feedback event. | Command lifecycle. | ACTCON missing |
| IEC-104 connects but data transfer does not start. | STARTDT activation, STARTDT confirmation, TESTFR, I/S/U frame sequence. | APCI session control. | STARTDT/TESTFR |
| Relay events appear at wrong time. | Relay ASDU timestamp, PC arrival time, raw event frame, mapping profile. | Event semantics or reporting. | IEC-103 relay events |
Glossary for frame reading
Use these terms as a practical decoder when reading frame trace, Smart Findings, and PDF evidence.
How ARIEC60870 helps
ARIEC60870 is built around an operator-first evidence hierarchy: readable meaning, current values, relay events, frame trace, findings, and report output. Raw hex stays available, but it is not the only language the engineer sees.