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 |