IEC 60870-5-104 telegram structure
APCI = Application Protocol Control Information
ASDU = Application Service Data Unit
APDU = Application Protocol Data Unit
Telegram format with variable length
This frame type is used to transmit user data between controlling and controlled station
byte\bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
0 |
Start byte (0x68) |
|
APCI |
|
APDU | |||||||
1 |
Length of the APDU (max. 253) |
| ||||||||||
2 |
Control field 1 |
| ||||||||||
3 |
Control field 2 |
| ||||||||||
4 |
Control field 3 |
| ||||||||||
5 |
Control field 4 |
| ||||||||||
6 |
|
ASDU |
| |||||||||
7 |
SQ |
Number of objects |
| |||||||||
8 |
T |
P/N |
| |||||||||
9 |
Originator address (ORG) |
| ||||||||||
10 |
ASDU address fields |
| ||||||||||
11 |
(2 octets) |
| ||||||||||
12 |
Information object address fields (IOA) |
| ||||||||||
13 |
(3 octets) |
| ||||||||||
14 |
|
| ||||||||||
15 |
Object information |
| ||||||||||
... |
|
| ||||||||||
... |
|
| ||||||||||
... |
|
| ||||||||||
n-1 |
|
| ||||||||||
n |
|
|
Telegram format with fixed length
byte\bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
0 |
Start byte (0x68) |
|
APCI | |||||||
1 |
4 (Length of the APDU) |
| ||||||||
2 |
Control field 1 |
| ||||||||
3 |
Control field 2 |
| ||||||||
4 |
Control field 3 |
| ||||||||
5 |
Control field 4 |
|
Control field formats
Two types of control field formats: I-Format, S-Format are used to perform numbered information transfer.
The third: U-Format control field is used to perform unnumbered link layer control functions.
I-Format
byte\bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
Send sequence number N(S) LSB |
0 | ||||||
1 |
Send sequence number N(S) MSB | |||||||
2 |
Receive sequence number N(R) LSB |
0 | ||||||
3 |
Receive sequence number N(R) MSB |
S-Format
byte\bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
0 |
0 |
1 | |||||
1 |
0 | |||||||
2 |
Receive sequence number N(R) LSB |
0 | ||||||
3 |
Receive sequence number N(R) MSB |
U-Format
byte\bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
TESTFR |
STOPDT |
STARTDT |
1 |
1 | |||
1 |
0 | |||||||
2 |
0 | |||||||
3 |
0 |
Simple samples and explanations
104 substation configuration: COT = 2 octets (includes originator address), ASDU address = 2 octets, IOA address = 3 octets
Sample 1
68 0E 4E 14 7C 00 65 01 0A 00 0C 00 00 00 00 05
LPDU bytes |
Explanation |
---|---|
68 |
Start byte |
0E |
Length of the APDU = 14 |
4E |
Send sequence number N(S) LSB, bit 0 = 0 => I-Format |
14 |
Send sequence number N(S) MSB |
7C |
Receive sequence number N(R) LSB |
00 |
Receive sequence number N(R) MSB |
65 |
Type identification: C_CI_NA_1 (counter interrogation command) |
01 |
Number of objects = 1 |
0A |
Cause of transmission = 10 (activation termination) |
00 |
Originator address = 0 |
0C 00 |
Common ASDU address (2 octets) = 12 dec. |
00 00 00 |
Object address (3 octets) |
05 |
Counter interrogation request qualifier = 5 (general counter interrogation) |
Sample 2
68 34 5A 14 7C 00 0B 07 03 00 0C 00 10 30 00 BE 09 00 11 30 00 90 09 00 0E 30 00 75 00 00 28 30 00 25 09 00 29 30 00 75 00 00 0F 30 00 0F 0A 00 2E 30 00 AE 05 00
LPDU bytes |
Explanation |
---|---|
68 |
Start byte |
34 |
Length of the APDU = 52 |
5A |
Send sequence number N(S) LSB, bit 0 = 0 => I-Format |
14 |
Send sequence number N(S) MSB |
7C |
Receive sequence number N(R) LSB |
00 |
Receive sequence number N(R) MSB |
0B |
Type identification: M_ME_NB_1(measured value, scaled value) |
07 |
Number of objects = 7 |
03 |
Cause of transmission = 3 (spontanous) |
00 |
Originator address = 0 |
0C 00 |
Common ASDU address (2 octets) = 12 dec. |
10 30 00 |
Object address (3 octets) of first information object |
BE 09 00 |
Scaled value + QDS (quality descriptor) of first information object |
11 30 00 |
Object address (3 octets) of second information object |
90 09 00 |
Scaled value + QDS (quality descriptor) of second information object |
0E 30 00 |
Object address (3 octets) of third information object |
75 00 00 |
Scaled value + QDS (quality descriptor) of third information object |
28 30 00 25 09 00 |
Object address + Scaled value + QDS (quality descriptor) of information object four to seven |
Sample 3
68 04 01 00 7E 14
LPDU bytes |
Explanation |
---|---|
68 |
Start byte |
04 |
Length of the APDU = 4 |
01 |
bits 2..7 reserved, bit 0 = 1 and bit 1 = 0 => S-Format |
00 |
reserved |
7E |
Receive sequence number N(R) LSB |
14 |
Receive sequence number N(R) MSB |