PROFIdrive Telegram Reference: Standard Telegrams Explained

David Krause14 min read
Motion ControlSiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

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) or F08501 (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.

Why there is no public "master list": The official PROFIdrive profile document is distributed by PI and is normally available only to PI members or through a paid download. The publicly accessible summary lives in the PROFIdrive technology page at profinet.com, the PI specification order portal, and within the list manual of every compliant drive.

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
PZD scaling reference: NSOLL_A and NIST_A are normalized on 0x4000 hex = 100% of reference speed p2000. NSOLL_B and NIST_B are 0x4000 0000 = 100% of p2000 (32-bit). MOMRED = 0x4000 = 100% rated torque. Always cross-check p2000 and p2003 (torque reference) when commissioning.

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

  1. 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).
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. Save (copy RAM to ROM) and power-cycle, or execute p0977 = 1 in Startdrive to copy parameters.
  3. 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.
  4. 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.
  5. 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.
Important: After changing p0922 the drive briefly reports warning 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).

  1. Open the AKD2G WorkBench project, connect to the drive, and switch to Expert View.
  2. Set FB1.PROFIdrive.TEL to the desired telegram number (e.g., 1, 102, or a Kollmorgen-specific number).
  3. Save to NV memory and power-cycle. The drive reinitializes its PROFINET module and now offers the new PZD layout.
  4. 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.

  1. 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.
  2. 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.
  3. Edit the drive GSD in the controller project. Switch the telegram number; recompile; verify slot length.
  4. 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.
  5. 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.
  6. 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"
Library rule of thumb: the library, the drive firmware, and the controller configuration must all agree on the telegram number. If any one of the three disagrees, expect an F-code (drive side) or a station/configuration fault (controller side). Always check the library release notes for the supported telegram list.

10. Verification and Commissioning

After every telegram change, run the following checks before releasing the machine to production.

  1. 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.
  2. Online telegram dump — In Startdrive, drive into the drive object and read r2050 and r2051 to dump the BICO PZD interconnections. Verify that the first two words are STW1 and NSOLL_A (Telegram 1).
  3. Sign-of-life test — In isochronous mode (Telegram 5, 6, 105, 106), verify the master's sign-of-life in STW2 bits 12-15 is incremented and matches the slave's expected counter. SINAMICS logs F08501 if sign-of-life is missing.
  4. Diagnostic buffer — In TIA, open the drive's online diagnostics and confirm no entry for F01910 or F08501 after a 5-minute soak.
  5. 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 r2060 reports the actual cycle time.
  6. Encoder cross-check — With Telegram 4 / 6 / 106, move the motor at 100 rpm, then compare NIST_B against G1_XIST increments. 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 = 0 is "free BICO" and the most common source of F08501 on 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.

Back to blog