PROFIBUS Telegram Decoder
Decode PROFIBUS FDL telegrams from hexadecimal bytes. Identify SD1, SD2, SD3, SD4 and short-acknowledgement frames, inspect station addresses, function control, SAP extensions, payload length, Frame Check Sequence and end delimiter.
—
—
What Is a PROFIBUS Telegram?
PROFIBUS uses defined telegram formats at its Fieldbus Data Link layer to move control information and application data between bus stations. Different start delimiters identify different frame structures, allowing a receiver to determine whether a telegram has fixed length, variable length, data bytes, token information or only a short acknowledgement.
This decoder works from the hexadecimal telegram bytes themselves and exposes the framing information without requiring a GSD file or particular PLC configuration.
Main PROFIBUS Start Delimiters
| Delimiter | Name | Structure |
|---|---|---|
| 0x10 | SD1 | Fixed-length telegram without user data |
| 0x68 | SD2 | Variable-length telegram |
| 0xA2 | SD3 | Fixed-length telegram with 8 data bytes |
| 0xDC | SD4 | Token telegram |
| 0xE5 | SC | Short acknowledgement |
PROFIBUS SD1 Telegram
SD1 begins with hexadecimal 0x10 and contains no user-data field.
A normal SD1 telegram contains destination address, source address, Function
Control, Frame Check Sequence and the end delimiter.
SD1:
10
DA
SA
FC
FCS
16The FCS is calculated over the bytes from DA through FC.
PROFIBUS SD2 Variable-Length Telegram
SD2 is the variable-length PROFIBUS frame and begins with
0x68. It contains two identical length bytes and then repeats
the SD2 delimiter before the address and control fields.
SD2:
68
LE
LEr
68
DA
SA
FC
DATA...
FCS
16The two length fields must match. The repeated start delimiter must also equal 0x68.
How PROFIBUS SD2 Length Is Calculated
The SD2 length field counts the bytes beginning with Destination Address and ending with the final data byte.
LE includes:
DA
SA
FC
DATA bytes
Therefore:
Data Length =
LE - 3
FCS and the final 0x16 delimiter are not included in LE.
PROFIBUS SD3 Telegram
SD3 uses start delimiter 0xA2 and has a fixed eight-byte
user-data field.
SD3:
A2
DA
SA
FC
DATA1
DATA2
DATA3
DATA4
DATA5
DATA6
DATA7
DATA8
FCS
16The complete SD3 telegram therefore contains 14 bytes.
PROFIBUS SD4 Token Telegram
The SD4 token telegram is identified by hexadecimal
0xDC. It carries the destination and source station address used
during token passing.
SD4:
DC
DA
SAIt does not use the normal FCS and 0x16 ending structure of SD1, SD2 and SD3.
PROFIBUS Short Acknowledgement
A single hexadecimal byte 0xE5 represents the short confirmation
or acknowledgement telegram.
E5
Total length:
1 byteDestination and Source Address
PROFIBUS telegrams contain DA and SA address bytes. The lower seven bits provide the station-address portion while the high bit can indicate that an address extension is being used.
Address byte:
bit 7
Address-extension indication
bits 0–6
Station address portionThis calculator therefore displays both the raw address byte and the lower seven-bit station value rather than silently discarding the extension flag.
DSAP and SSAP
When PROFIBUS address-extension mechanisms are in use, additional destination and source Service Access Point bytes can occur at the beginning of the data portion.
The decoder separates DSAP and SSAP only when the corresponding DA and SA extension bits indicate their presence and enough payload bytes are available. The remaining bytes are then displayed as user/application data.
PROFIBUS Function Control Byte
The Function Control, or FC, byte contains control bits and a lower four-bit function code. Some upper control-bit meanings depend on whether the telegram is a primary request or secondary response and on the particular FDL service.
FC lower nibble:
FC & 0x0F
= Function CodeThe calculator exposes the complete hexadecimal FC value, individual upper bits and the four-bit function code without assigning a higher-layer service that cannot be proven from the frame alone.
PROFIBUS Frame Check Sequence
The PROFIBUS FCS is an eight-bit arithmetic checksum. Each protected byte is added and only the low eight bits of the result are retained.
FCS =
sum(protected bytes) mod 256For SD1 the protected bytes are DA, SA and FC. For SD2 and SD3, user-data bytes are included as well.
PROFIBUS End Delimiter
SD1, SD2 and SD3 telegrams normally terminate with hexadecimal
0x16. The decoder verifies that this byte is present at the
expected position after the FCS.
... FCS 16
16 = End DelimiterPROFIBUS DP and the FDL Telegram
PROFIBUS-DP services are carried using these underlying telegram structures, but an FDL frame alone does not necessarily describe the engineering meaning of each user byte. Cyclic input/output data, diagnostics, parameterization, configuration and acyclic services use additional protocol conventions.
For that reason, this decoder concentrates on the telegram framing and preserves application data in hexadecimal form rather than applying an unrelated device layout.
PROFIBUS Telegram Decoder FAQs
What does PROFIBUS start delimiter 0x10 mean?
What does PROFIBUS start delimiter 0x68 mean?
What is SD3?
What is SD4?
What does 0xE5 mean in PROFIBUS?
How is the SD2 data length calculated?
Does SD2 contain two length bytes?
How is the PROFIBUS FCS calculated?
What is the PROFIBUS end delimiter?
Can this decoder interpret PLC I/O values?
Decode PROFIBUS FDL Telegrams
Inspect PROFIBUS start delimiters, station addresses, Function Control, SAP extensions, payload boundaries, FCS checksums and end delimiters directly from raw hexadecimal telegrams.