PROFIdrive Telegram Reference: Standard Telegrams Explained
PROFIdrive is the application profile for variable-speed drives on PROFINET and PROFIBUS. The most frequently asked question when integrating a SINAMICS S120/S150, AKD2G, IndraDrive, or any PI-certified drive is: what is a telegram, who defines the numbers, and where is the official list? This reference consolidates the answer, the standardized telegram set, the PZD word structure, and the field-proven configuration procedure for Siemens and non-Siemens drives.
1. Overview: What a PROFIdrive Telegram Is
A PROFIdrive telegram is a fixed, pre-defined data container exchanged cyclically between a controller (PLC) and a drive (PROFIdrive slave). Each telegram carries a set of process data words (PZD) in a defined order, with each word assigned a specific signal name such as STW1 (control word 1), NSOLL_A (speed setpoint A), ZSW1 (status word 1), or NIST_A (actual speed value A).
Key principles:
- Telegrams are bidirectional. The PLC-to-drive half carries setpoints (setpoint telegram); the drive-to-PLC half carries actual values (actual-value telegram).
- Telegrams are indexed by a 16-bit integer (1, 2, 3, 5, 102, 110, 220, etc.). Vendor-specific extensions exist alongside the standardized numbers.
- The number of PZD in a telegram is fixed by the profile and must match between controller and drive. Mismatches produce error
F01910(PROFIBUS/PROFINET setpoint timeout) orF08501(PZD configuration error) on SINAMICS. - A drive object can be assigned a primary telegram plus an optional extension telegram (PZD extension) for additional words.
2. Who Defines the Telegram Numbers
PROFIdrive is maintained by PI (PROFIBUS & PROFINET International, PROFIBUS Nutzerorganisation e.V.). The current profile document is the PROFIdrive Profile Drive Technology, version 4.2 (released 2015, with 4.3 updates). The profile is the single source of truth for:
- Telegram numbers and PZD layouts
- Signal names and scaling (e.g., NSOLL_A is 0x4000 = 100% of p2000)
- State machines (e.g., the OFF1/OFF2/OFF3 bits inside STW1)
- Encoder, parameter, and diagnostics channel mappings (PKW)
Drive vendors (Siemens, Kollmorgen, Bosch Rexroth, ABB, SEW-Eurodrive, etc.) implement the standardized telegrams as defined by PI and add their own vendor-specific telegrams (often numbered in the 200+ range or with a vendor prefix). The standardized list is the same for every vendor; the vendor-specific numbers are not.
3. Standard Telegram Types and PZD Structure
The standardized telegram set is split into three families: Standard telegrams (1-9), Manufacturer-specific telegrams (numbered 100+ in some drives), and SIEMENS telegrams (the 20, 220, 352, 370, 371 series that originated in Siemens MASTERDRIVES and survive in SINAMICS).
3.1 Standard telegrams (PI-defined)
| Telegram | Direction | PZD count | Setpoint words (PLC → drive) | Actual-value words (drive → PLC) |
|---|---|---|---|---|
| 1 | Speed setpoint | 2/2 | STW1, NSOLL_A | ZSW1, NIST_A |
| 2 | Speed setpoint + 1 encoder | 4/4 | STW1, NSOLL_B, STW2 | ZSW1, NIST_B, ZSW2 |
| 3 | Speed setpoint, 8 PZD | 8/8 | STW1, NSOLL_B, STW2, … (free) | ZSW1, NIST_B, ZSW2, … (free) |
| 4 | Speed setpoint, 1 encoder, 6 PZD | 6/6 | STW1, NSOLL_B, STW2 + 3 free | ZSW1, NIST_B, ZSW2 + 3 free |
| 5 | Speed setpoint with DSC (Dynamic Servo Control) | 10/10 | STW1, NSOLL_B, STW2 + DSC additions | ZSW1, NIST_B, ZSW2 + DSC additions |
| 6 | Speed setpoint with DSC and 2 encoders | 14/14 | STW1, NSOLL_B, STW2 + DSC + encoders | ZSW1, NIST_B, ZSW2 + DSC + encoders |
| 7 | Positioning, single-encoder | 10/10 | STW1, NSOLL_B, STW2, POS_STW1, POS_STW2, … | ZSW1, NIST_B, ZSW2, POS_ZSW1, POS_ZSW2, … |
| 9 | Positioning with 32-bit position | 12/12 | STW1 + position + velocity | ZSW1 + position + velocity |
3.2 Siemens-specific telegrams
| Telegram | Use case | PZD | Notes |
|---|---|---|---|
| 20 | 16-bit speed setpoint (legacy) | 2/2 | Siemens-specific, narrow NSOLL |
| 81 | Standardized encoder channel | 4/4 | Encoder-only, no drive control |
| 82 | Standardized encoder speed | 6/6 | Speed + encoder |
| 83 | Standardized encoder position | 6/6 | Position + encoder |
| 102 | Speed setpoint + torque limit | 6/6 | Includes MOMRED torque reduction |
| 103 | Speed + torque limit + 1 encoder | 7/7 | Adds encoder actual |
| 105 | Speed with DSC + 1 encoder | 10/10 | DSC compact form |
| 106 | Speed with DSC + 2 encoders | 14/14 | DSC + dual encoder |
| 110 | Universal position, 32-bit | 12/12 | Common in S120 with Active Line Module + drive |
| 111 | Universal position with DSC | 12/12 | DSC positioning |
| 116 | 5 PZD speed (Siemens S210 servo) | 5/5 | Compact safety-capable |
| 118 | 6 PZD positioning | 6/6 | Compact positioning |
| 125 | 6 PZD torque | 6/6 | MOMRED + diagnostics |
| 126 | 7 PZD torque | 7/7 | Adds encoder |
| 127 | 16 PZD positioning + torque | 16/16 | Extended S120 position |
| 130 | Following error / cam | 8/8 | Electronic cam profile |
| 136 | 8 PZD position with torque | 8/8 | Compact cam |
| 138 | 6 PZD fast | 6/6 | Reduced cycle time |
| 139 | Clock-synchronous 16-bit | 10/10 | Isochronous, PROFIBUS |
| 146 | 16 PZD extended | 16/16 | Multi-encoder large |
| 148 | 4 PZD compact | 4/4 | Entry-level positioning |
| 149 | 24 PZD extended | 24/24 | Max extension |
| 166 | 4 PZD hydraulic | 4/4 | Hydraulic drive profile |
| 220 | Position controller (Basic Pos) | 10/10 | Basic positioner S120 |
| 352 | 4 PZD speed (PCS 7) | 4/4 | Process-control standardized |
| 370 | 6 PZD infeed (ALM) | 6/6 | Active Line Module only |
| 371 | 10 PZD infeed (ALM) | 10/10 | ALM with full diagnostics |
4. Signal Map for the Most Common Words
| Signal | Width | Direction | Meaning |
|---|---|---|---|
| STW1 | 16-bit | PLC → drive | Control word 1 (OFF1, OFF2, OFF3, ENABLE, JOG, fault ack, …) |
| STW2 | 16-bit | PLC → drive | Control word 2 (drive-specific, e.g., DSC on, master sign-of-life) |
| NSOLL_A / NSOLL_B | 16/32-bit | PLC → drive | Speed setpoint, normalized to p2000 |
| MOMRED | 16-bit | PLC → drive | Torque reduction, 0x4000 = 100% |
| POS_STW1, POS_STW2 | 16-bit | PLC → drive | Positioning control words |
| ZSW1 | 16-bit | drive → PLC | Status word 1 (ready, enabled, fault, …) |
| ZSW2 | 16-bit | drive → PLC | Status word 2 (speed within setpoint, torque limit, …) |
| NIST_A / NIST_B | 16/32-bit | drive → PLC | Actual speed value |
| IAIST / MIST | 16-bit | drive → PLC | Actual current / torque |
| POS_ZSW1, POS_ZSW2 | 16-bit | drive → PLC | Positioning status words |
| G1_XIST, G2_XIST, G3_XIST | 32-bit | drive → PLC | Encoder 1/2/3 actual position |
| NIST_A_GLATT | 16-bit | drive → PLC | Smoothed actual speed |
5. Where to Find the Official List
- PROFIdrive profile document (PI): The "Profile Drive Technology" specification lists every standard telegram. Available at the PI PROFIdrive page and through the PI download portal (membership required for the full PDF).
- SINAMICS S120/S150 List Manual: Section 3.9 ("Standard telegrams and signal interconnection") reproduces the PI table in a drive-centric format with all BICO connectors pre-mapped. Available via the Siemens Industry Online Support.
-
Drive-specific manuals:
- Bosch Rexroth IndraDrive parameter description lists the same telegrams and adds Rexroth-specific extensions.
- Kollmorgen AKD2G documentation lists supported standard and manufacturer-specific telegrams in the PROFINET fieldbus manual.
- ABB ACS drives expose a "telegram mapping" parameter group (e.g., 51.x on ACS880) that mirrors PROFIdrive telegrams.
- PI membership / conference papers: PI hosts the annual PI Conference and PROFIdrive plug-fests, where the latest telegram additions are previewed.
6. Configuring a Telegram on SINAMICS S120 / S150
The relevant SINAMICS parameters are summarized below. All are accessed via the expert list in Starter, Startdrive, or Webserver (S120 webserver from FW 5.2 SP1).
| Parameter | Meaning | Typical range |
|---|---|---|
| p0922 | IF1 PROFIdrive PZD telegram selection | 1, 2, 3, 4, 5, 6, 7, 9, 20, 81–83, 102–148, 220, 352, 999 (free) |
| p2070 | PROFIdrive PZD format (free / Siemens / standard) | 0 = free, 1 = Siemens PZD format, 2 = PROFIdrive PZD format |
| p2071 | BICO PZD telegram extension (add extra PZD) | 0, 1, 2 (number of extension words) |
| p2050, p2051 | BICO interconnect outputs / inputs to PZD | Index = PZD word number |
| p2079 | IF2 PROFIdrive PZD telegram selection | Same options as p0922 (second bus interface) |
| p8810, p8811 | IF2 inbox/outbox (PnD, internal) | SIEMENS S120 multi-CPU mode |
6.1 Step-by-step: select Telegram 1, then upgrade to Telegram 3
- Set p0922 = 1 on the drive object. Result: drive expects 2 PZD in / 2 PZD out. PLC must map the same 2/2 layout or the controller reports a slot mismatch.
- Save (copy RAM to ROM) and power-cycle, or execute
p0977 = 1in Startdrive to copy parameters. - In TIA Portal / STEP 7, install the SINAMICS GSD (GSDML-V*-Siemens-SinamicsS-*.xml) and drag the drive into PROFINET topology. The PLC now sees the telegram 1 IO image.
- To upgrade to Telegram 3 (8/8 PZD), set p0922 = 3, copy RAM to ROM, and re-download the drive device in TIA Portal. The IO image auto-expands to 8/8.
- If your PLC code was written against Telegram 1 using fixed bit positions, you must re-map the symbolic names because additional PZD appear at the end of the IO area, not the beginning.
A08502 ("PROFIdrive PZD configuration changed; save required"). Re-upload to the PG and re-download the project so the PLC telegram matches the new drive telegram. A persistent mismatch raises fault F01915 (setpoint timeout) or F08501 (PZD length error).
7. Configuring a Telegram on Kollmorgen AKD2G
The AKD2G PROFINET drive implements the standardized PROFIdrive telegrams alongside Kollmorgen-specific ones. Telegram 1 is the default for "profiDRIVE" mode and is selected with parameter PROFIdrive.TEL in the AKD2G WorkBench (the parameter is mapped under Feedback / PROFINET > Telegram). The supported list, including the Kollmorgen-specific telegram that contains the auxiliary words MOMRED, IAIST, and M_LIM, is published in the AKD2G PROFINET fieldbus manual (see Kollmorgen documentation portal).
- Open the AKD2G WorkBench project, connect to the drive, and switch to Expert View.
- Set
FB1.PROFIdrive.TELto the desired telegram number (e.g., 1, 102, or a Kollmorgen-specific number). - Save to NV memory and power-cycle. The drive reinitializes its PROFINET module and now offers the new PZD layout.
- In TIA Portal, update the GSDML for the AKD2G, re-include the device, and recompile. The PLC slot mapping auto-updates.
8. Migrating from One Telegram to Another (Field Procedure)
Migrating Telegram 1 → Telegram 3 (or 102, 105, 220) is the most common change request. The procedure below is field-proven for SINAMICS and applies to other PROFIdrive drives by analogy.
-
Catalog what consumes the current PZD layout. List every DB, FB, function block, and HMI tag that reads/writes
STW1,ZSW1,NIST_A. Static offsets in the IO image will change. - Confirm library support. Siemens SINAMICS S120 Comm FB libraries are telegram-aware and will refuse to compile if the configured telegram does not match the FB's expected layout. Other vendors' libraries (e.g., SIMOTION technology objects, IndraMotion) have similar constraints.
- Edit the drive GSD in the controller project. Switch the telegram number; recompile; verify slot length.
- Download the new drive parameter set. In Startdrive, set p0922 to the new telegram, then upload the change to the project so PG and drive agree.
- Re-link symbolic IO names. In TIA, right-click the new PZD, rename the symbolic tag, and update the user program to reference the new tags.
- Commission with safety stop. Run with the drive in "no setpoint" mode (STW1 bit 0 = 0) to confirm the IO handshake works, then re-enable.
9. PLC and Library Compatibility Constraints
| Library / FW version | Expected telegram | Failure mode if mismatched |
|---|---|---|
| SINAMICS S120 Comm FB v1.x (TIA V13) | 1, 2, 3, 4, 5 | Compile error: "telegram not supported" |
| SINAMICS S120 Comm FB v2.x (TIA V15.1+) | 1-9, 20, 102-148, 220, 352 | Online diagnostic buffer 0xFE26 |
| SIMOTION SCOUT V4.x axis FB | 5, 6, 105, 106, 110, 111 | Axis refuses to go to "ready" |
| IndraMotion MLC L_DriveAxis | 1, 2, 102, 105 | Online error 0xE-2003 |
| S7-1500 Motion Control TO | 1, 2, 3, 5, 102, 105 | Tech object commissioning error 7001 |
| ABB ACS880 drive profile | 1, 2, 102 | Fault 0xFF60 "telegram mismatch" |
10. Verification and Commissioning
After every telegram change, run the following checks before releasing the machine to production.
- IO consistency check — In TIA Portal, go to Devices & Networks > Device view; verify the slot count on the drive device matches the number of PZD in the telegram. The PLC reports 0x0001 "module missing" if it disagrees.
-
Online telegram dump — In Startdrive, drive into the drive object and read
r2050andr2051to dump the BICO PZD interconnections. Verify that the first two words areSTW1andNSOLL_A(Telegram 1). -
Sign-of-life test — In isochronous mode (Telegram 5, 6, 105, 106), verify the master's sign-of-life in
STW2bits 12-15 is incremented and matches the slave's expected counter. SINAMICS logsF08501if sign-of-life is missing. -
Diagnostic buffer — In TIA, open the drive's online diagnostics and confirm no entry for
F01910orF08501after a 5-minute soak. -
Cycle-time test — Use the PN IRT configuration in TIA to lock the bus cycle to 1 ms. Watch the bus update time in the topology editor; the drive's
r2060reports the actual cycle time. -
Encoder cross-check — With Telegram 4 / 6 / 106, move the motor at 100 rpm, then compare
NIST_BagainstG1_XISTincrements. They must match within one encoder increment.
11. Troubleshooting Matrix
| Symptom | Most likely cause | Check | Fix |
|---|---|---|---|
Drive reports F01910 after telegram change |
PLC slot length still on old telegram | Compare GSD slot length with drive p0922 | Re-download drive in TIA, restart IO |
Drive reports F08501 (PZD length error) |
Free PZD format (p2070=0) set but BICO not wired | Inspect r2050/r2051 | Switch p2070=2 (PROFIdrive) or wire p2050/p2051 |
| PLC station fault "module mismatch" | Drive telegram number differs from PG | Compare PLC device view slot count with drive p0922 | Re-assign telegram in TIA, recompile |
| Motor never enables (ZSW1 bit 2 = 0) | STW1 bit 0 not toggled to 1, or OFF2/OFF3 path stuck | Watchdog the IO trace; check ZSW1 bits 4-7 | Force STW1 = 0x047E then 0x047F, see SINAMICS S120 Function Manual |
| Speed setpoint scaled wrong (× 2 or × 0.5) | p2000 not 1500 rpm or NSOLL normalization wrong | Check p2000 vs application setpoint | Match p2000 to mechanical reference |
| Sign-of-life violation in IRT | PLC cycle time > configured cycle | PN diagnostics → IRT cycle time | Reduce IO cycle to match drive; check OB91 (servo) is configured |
| Encoder actual value drifts by 1 count per second | Telegram 1 only carries NIST_A; G1_XIST not selected | Verify p0922 = 4 / 6 / 106 / 116 / 118 | Switch to a telegram with G1_XIST |
| Drive A08502 after every restart | p0922 changed but not saved | Read p0977 | Run "copy RAM to ROM" (p0977=1) and re-upload |
12. Field-Proven Tips
-
Lock p2070 = 2 (PROFIdrive PZD format) for every standard telegram.
p2070 = 0is "free BICO" and the most common source ofF08501on a new installation. - Use Telegram 5 (not Telegram 1) on every positioning application. The DSC channel inside Telegram 5 reduces position lag in the PLC scan; it is a 2-line change in the PLC code and pays for itself in dynamic response.
- Avoid Telegram 9 unless you need it. Telegram 9 is the only standard telegram that carries a 32-bit position, but the bit packing makes the 1-bit status flags awkward. Telegram 110 (Siemens) is the cleaner alternative.
- Save a "golden" project file per drive. Once you have a working p0922 / p2070 / BICO / setpoint scaling, back it up. Telegram changes are trivial when you have a known-good baseline.
- Document the cross-reference between telegram number and library FB. In a multi-engineer team, the most common regression is a code commit that uses Telegram 5 while the drive is still on Telegram 1.
Who defines the PROFIdrive telegram numbers?
PI (PROFIBUS & PROFINET International) defines the standardized telegram numbers (1, 2, 3, 4, 5, 6, 7, 9, 81, 82, 83, etc.) inside the PROFIdrive Profile Drive Technology specification, currently v4.2. Drive vendors may add manufacturer-specific telegrams (e.g., Siemens 20, 102-148, 220, 352, 370, 371) that follow the same conventions.
Where is the official PROFIdrive telegram list?
The full table is in the PROFIdrive Profile Drive Technology document, available from the PI PROFIdrive page. The same table is reproduced in section 3.9 of the SINAMICS S120/S150 List Manual and in the fieldbus manual of every compliant drive (IndraDrive, AKD2G, ACS880, etc.).
Why does my drive report F01910 or F08501 after a telegram change?
Both faults mean the controller and drive disagree on the PZD length. Set p0922 on the drive, recompile the TIA / STEP 7 project with the matching slot length, re-download to the drive, and re-download the controller. The drive will clear the fault after the next parameter save (p0977 = 1) and the next IO cycle.
Can I use Telegram 1 with a positioning application?
Technically yes, but Telegram 1 only carries 16-bit NSOLL_A and NIST_A and no encoder actual value. For positioning, switch to Telegram 3 (8/8 PZD, 32-bit speed), Telegram 5 (DSC), Telegram 7 (positioning), or Telegram 110 (Siemens universal 32-bit position). The PLC library and the drive firmware must both be configured for the new number.
What is the difference between Telegram 5 and Telegram 6?
Telegram 5 has DSC (Dynamic Servo Control) plus one encoder; Telegram 6 adds a second encoder (G2_XIST). Both are 14 PZD in / 14 PZD out, but Telegram 6 doubles the encoder-channel bandwidth. For a single-encoder servo axis, use Telegram 5. For a gantry or dual-encoder safety application, use Telegram 6.
How do I switch from a vendor-specific telegram to a standard one?
Set p0922 to the standard number, set p2070 = 2 to force PROFIdrive PZD format, save to ROM (p0977 = 1), power-cycle, and re-download the controller project with the matching GSD slot. The PLC FB / library may need to be re-pointed to the standard telegram; consult the library release notes first.