When a control centre loses data from a substation, a gateway shows points as invalid or a Modbus meter stops updating, the capture holds the answer — but reading hundreds of frames by hand is slow, and the meaning of a sequence-number jump, a cause of transmission 47 or an IIN bit is not obvious. The analyser decodes the frames, checks them against the protocol rules and the configured parameters, and lists the problems with the frame numbers to look at in Wireshark.
Standards followed
IEC 60870-5-104 (APCI, k, w, t1–t3) and IEC 60870-5-101 (ASDU types, causes of transmission, CP56Time2a)Modbus Application Protocol V1.1b3 and Modbus Messaging on TCP/IP V1.0bIEEE 1815 (DNP3): data link layer with CRC, transport function, application layer, IINpcap and pcapng capture file formats
What it can do
- Reads pcap and pcapng (Ethernet, VLAN, Linux cooked, raw IP) and reassembles each TCP connection in both directions, dropping retransmissions and noting gaps.
- IEC 104: I/S/U frames, STARTDT, send/receive sequence numbers, k and w limits, unconfirmed TESTFR/STARTDT within t1, idle t3, 40 ASDU types decoded with value, quality (IV, NT, SB, BL, OV) and time tag, general interrogation and command select/execute sequences, causes 44–47, time-tag offset against the capture clock, and a point list (CSV).
- Modbus TCP: request/response matching by transaction id, exceptions explained, unanswered requests, response times, byte-count and limit checks, polling blocks with their cycle, writes, and a register map of every address read or written (CSV).
- DNP3 over TCP or UDP: link frames with CRC check of every block, transport reassembly, application function codes, IIN bits (restart, need time, event buffer overflow, trouble …), object headers and values for the common groups, unanswered requests, SELECT without OPERATE, unconfirmed unsolicited responses.
Example problem
The sample IEC 104 capture between the control centre and gateway GW1.
- The general interrogation is confirmed after 12 ms and terminated after 0.06 s; IOA 3003 comes with IV quality.
- The controlled station's send sequence number jumps from 16 to 18 and the controlling station lets 9 I-frames go unacknowledged (w = 8).
- A single command to IOA 5099 is answered with cause 47 (unknown IOA); a TESTFR is never confirmed; all time tags are 4 h ahead of the capture clock — local time instead of UTC.
Each finding with its frame number, ready to raise with the gateway or SCADA team.
Capture at the point that matters (a mirror port next to the gateway or RTU) and long enough to include a general interrogation or integrity poll. TLS-protected links (IEC 104 on 19998, DNP3 over TLS) cannot be decoded. Files are read in your browser and not uploaded.