SINAMICS Telegram 20 Customizing Signals & Adding Encoder

David Krause17 min read
SiemensTutorial / How-toVFD / Drives
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

Overview: What Telegram 20 Is and Why Engineers Modify It

Siemens SINAMICS Telegram 20 is a six-word receive / two-word send PROFIdrive profile telegram widely used on G120, G120C, G120D, G130, G150, S110, S120, S210, and V90 drives. It is the smallest Siemens-specific speed-controlled telegram that exposes the full NAMUR status word, which is why it is preferred on process skids, packaging machinery, and retrofit projects that need detailed drive diagnostics over a single PROFIBUS or PROFINET cable.

The default word layout is fixed and cannot be edited as long as the drive is locked to a "Standard Telegram" selection. To insert an encoder feedback word, swap a signal such as the torque actual value, or extend the frame beyond eight PZD words, the drive must be switched to free telegram configuration by writing parameter p0922 = 999 (PROFIdrive convention) or the parameter number used by Startdrive for the receive/transmit telegram (often p2079 for the transmit side). The free configuration then exposes the interconnect list of every individual PZD word so the engineer can re-route the status word, actual speed, current, torque, power, NAMUR message word, or any optional signal such as encoder actual position (G1_XIST1, G1_XIST2) into the desired slot.

Important: Telegram 20 is a Siemens-specific telegram, not a PROFIdrive standard telegram. Standard PROFIdrive telegrams 1, 2, 3, 5, 6, 7, 9, 110, and 111 are locked by the PROFIdrive profile and may reject free PZD re-mapping on some firmware versions. Telegrams 20, 220, 350, 352, 370-376, 390, 391, 392, 393, 394, 395, and 396 are Siemens-specific and always support free configuration through p0922 = 999.

Default Word Structure of Telegram 20

Telegram 20 ships with the following hard-wired assignment. This layout is documented in the Siemens support attachment A6V10663221 and in the SINAMICS S120/S150 List Manual.

Direction Word Abbrev. Signal Name Function
Receive (PLC → Drive) PZD 1 STW1 Control Word 1 On/off, coast stop, enable, ramp enable, fault acknowledge, etc.
Receive (PLC → Drive) PZD 2 NIST_A Speed Setpoint A 16-bit normalized speed (4000hex = rated speed)
Transmit (Drive → PLC) PZD 1 ZSW1 Status Word 1 Ready, run, fault, speed reached, etc.
Transmit (Drive → PLC) PZD 2 NIST_GLATT Smoothed Speed Actual 16-bit smoothed actual speed feedback
Transmit (Drive → PLC) PZD 3 IAIST_GLATT Smoothed Current Actual Unsigned current actual in % of rated current
Transmit (Drive → PLC) PZD 4 MIST_GLATT Smoothed Torque Actual Unsigned torque actual in % of rated torque
Transmit (Drive → PLC) PZD 5 WIST_GLATT Smoothed Power Actual Unsigned power actual in % of rated power
Transmit (Drive → PLC) PZD 6 MELD_NAMUR NAMUR Message Word Bit-mapped NAMUR VDI/NAMUR fault and warning bits

The 16-bit speed feedback is a smoothed value. The original (unsmoothed) NIST is also available on the drive side through r0021; the smoothed variant (r0021 smoothed via p0045) is what is mapped to Telegram 20 by default. The same convention applies to IAIST (r0027), MIST (r0031), and WIST (r0032).

Why Standard Telegram 20 Cannot Be Edited Directly

When Telegram 20 is selected, the SINAMICS firmware writes its own BICO interconnects to parameters p2051[0..7] (transmit word assignments) and p2061[0..1] (receive word assignments) and locks the relevant BICO sources. The values of these parameters are internally protected and can be displayed but not written. Attempting to write to p2051[3] while p0922 = 20 returns alarm A08550 (PZD interconnect: invalid signal) or is silently rejected depending on firmware version.

The supported workflow is to:

  1. Select a Standard Telegram (e.g. p0922 = 20) so the firmware creates the default BICO interconnects.
  2. Switch to free configuration (p0922 = 999 for the receive side, or the equivalent transmit-side parameter for the drive in use).
  3. Edit p2051 and p2061 manually to re-route or add words.
  4. Optionally extend the frame by raising p0922[0] beyond the original word count using "Telegram extension" on PROFINET.
Parameter naming difference: On S120, the receive telegram word count is p0922; on G120/G120C with Startdrive the receive side is often represented as HW Config > Telegram configuration > PZD length. The transmit side is p2079 on S120/G150. On V90 PN, the telegram is set in the device configuration and p0922 = 999 is not a free-telegram toggle the same way; the encoder is normally mapped through Telegram 3 or 5 instead. Always confirm parameter numbers against the Siemens Industry Online Support parameter list for the firmware version installed on the controller.

Prerequisites Before Customizing Telegram 20

  • Programming tool: TIA Portal V16 or later with Startdrive V16+, or SINAMICS Starter for legacy G120/G130 firmware (≤ V4.7).
  • Drive firmware that supports free configuration. SINAMICS V4.4 and higher on S120, V4.7 SP10 and higher on G120, and Startdrive-tied V14+ on V90 are recommended.
  • Drive project online connection via PROFINET or PROFIBUS. A serial RS232 connection with the SINAMICS commissioning cable (6SL3255-0AA00-2AA0) is also acceptable for parameter writes on older units.
  • PLC project with the SINAMICS drive inserted as a PROFINET IO device. The Telegram sub-module must be set to "Telegram 20" before starting.
  • Current project backup (drive parameter set *.par or TIA portal project archive) before any free-configuration write.

Step-by-Step: Convert Telegram 20 to a Free Configuration

Step 1 – Set the Standard Telegram First

  1. Open the drive device configuration in TIA Portal > Startdrive.
  2. Navigate to Device view > Drive > Telegram configuration.
  3. Select Standard Telegram 20 in the drop-down. The receive and transmit PZD lengths display 2/6.
  4. Compile and download. The drive now has the canonical BICO interconnects STW1, NIST_A, ZSW1, NIST_GLATT, IAIST_GLATT, MIST_GLATT, WIST_GLATT, MELD_NAMUR connected.

This is the same behavior the TIA Portal communication-telegrams documentation describes for failsafe modules: select the standard frame to create the baseline, then move to the flexible configuration.

Step 2 – Switch to Free Telegram (p0922 = 999)

The classic method, widely used on S120 and documented in the Siemens support attachment, is to write the free-telegram magic value 999. The location depends on the drive platform:

Drive Family Receive-side Parameter Transmit-side Parameter Notes
SINAMICS S110 / S120 / S150 p0922 = 999 p2079 = 999 Free word configuration; PZD length set by hardware config
SINAMICS G120 / G120C / G120D (CU2x0-2 PN) p0922 = 999 p2079 = 999 Firmware V4.7 SP10 or higher recommended
SINAMICS G130 / G150 p0922 = 999 p2079 = 999 Same convention as S120
SINAMICS V90 PN Not free-configurable; use Telegram 3, 5, or 7 V90 has fixed telegram set; V90 PN with absolute encoder requires Telegram 7
SINAMICS S210 Configured via Startdrive; p0922 = 999 accepted Same S210 ships with Telegram 105/106 by default

From the Startdrive parameter view, write 999 to p0922 (receive) and p2079 (transmit). The drive switches to free configuration and the previous interconnects remain active until you overwrite them. The firmware behavior is: when leaving a standard telegram, the previous signal mapping is preserved (as the A6V10663221 PDF states: "If you change over from another telegram to telegram 20, then the assignment of the previous telegram is kept."). The same preservation applies when leaving Telegram 20 to free configuration.

Step 3 – Edit the Transmit Word Interconnects (p2051)

Each PZD word on the transmit side is a BICO sink in p2051 indexed by word number. For Telegram 20 with two extra transmit words added (encoder feedback G1_XIST1 low word and high word), the parameter view looks like this:

Index Default Signal (Telegram 20) Connector / r-Number Re-mapped for Encoder Feedback
p2051[0] ZSW1 r0899 (default) ZSW1 (unchanged)
p2051[1] NIST_GLATT r0021 smoothed NIST_GLATT (unchanged)
p2051[2] IAIST_GLATT r0027 IAIST_GLATT (unchanged)
p2051[3] MIST_GLATT r0031 G1_XIST1 (low word)
p2051[4] WIST_GLATT r0032 G1_XIST2 (low word)
p2051[5] MELD_NAMUR r3113 MELD_NAMUR (unchanged)
p2051[6] G1_ZSW (encoder status word)
p2051[7] G1_XIST1 (high word)

To replace MIST_GLATT with the encoder low word, open the parameter view, navigate to p2051[3], and enter the connector number of the encoder signal. The standard connector for incremental encoder 1 position is r0479[0] (Gn_XIST1). For 32-bit position you also interconnect p2051[4] to r0479[1] (high word) so the PLC can combine the two words into a DWord. Adding an encoder status word requires r0481[0] (Gn_ZSW).

Important: 32-bit position values must be split into low and high 16-bit words. The PLC must read the pair and reassemble using the rotation direction bit in ZSW1 bit 14 or the encoder status word bit. The convention is low word first, high word second; otherwise the position will be corrupted on every cross-over of the high-word boundary.

Step 4 – Match the PZD Length on the PROFINET Side

Simply adding words to p2051 on the drive is not enough; the IO controller must agree on the length. In TIA Portal:

  1. Open the drive device view.
  2. Open the telegram sub-module properties.
  3. Change the transmit PZD length to match the new total (e.g. 8 for Telegram 20 with 2 extra encoder words).
  4. Click Activate extension word if the field is grayed out and the words are not editable. This is the same field mentioned in the TIA Portal communication-telegrams guide.

On PROFINET the system ensures isochronous consistency over the full PZD block. As long as the lengths agree between controller and device, no alarm is raised. If the controller expects 6 transmit words and the drive sends 8, the PLC raises a "PROFINET IO: PZD length mismatch" diagnostic.

Step 5 – Update the Receive Side if Needed

The two receive words in Telegram 20 (STW1, NIST_A) are normally sufficient. If you need an additional control word (e.g. STW2 for the torque limit selector on S120), free the receive telegram and add the word:

  • Set p0922 = 999 (already done in step 2).
  • Navigate to p2061[2] and set the BICO source to r0888 (STW2) or the connector of the desired control word.
  • Update the receive PZD length on the PROFINET side to 3 (or 4) words.

Free Telegram 20 Encoder Feedback — Practical Signal Map

PZD # Dir Signal BICO Source Content
1 Rx STW1 Internal interconnect Control word 1
2 Rx NIST_A Internal interconnect Speed setpoint
1 Tx ZSW1 r0899 Status word 1
2 Tx NIST_GLATT r0021 smoothed Smoothed speed actual
3 Tx IAIST_GLATT r0027 Smoothed current actual
4 Tx G1_XIST1 (low) r0479[0] Encoder 1 position low word
5 Tx G1_XIST2 (low) r0480[0] Encoder 1 position high word / 32-bit value
6 Tx MELD_NAMUR r3113 NAMUR message word

If your application needs the encoder status word as well, extend the frame to 7 transmit words. The encoder status word is used by the PLC to detect the home-position bit, the diagnostic bits, and the overflow / underflow flags of the encoder counter.

NAMUR Message Word Reference

Because the NAMUR word is the differentiating feature of Telegram 20 versus Telegram 1, the standard bit map is reproduced here for quick reference:

Bit Meaning (per VDI/NAMUR NE 37) Drives Reaction
0 Fault in drive electronics / power unit OFF1 / OFF2; replace CU or PM
1 Line-side fault (mains) Check mains voltage / phase rotation
2 DC-link overvoltage Check braking resistor; extend ramp
3 Drive motor overload (I²t) Reduce load; check p0640
4 Power unit over-temperature Check cooling; check fan
5 Motor over-temperature Check PTC / KTY; check ventilation
6 Communication fault (PROFIdrive / PLC) Check telegram, life-sign bit 15 of ZSW1
7 External fault (input via DI, terminal, F-DI) Check external wiring
8 Encoder fault Replace encoder; check cable screen
9 Drive-internal warning present Read r2122
10 Speed controller at limit (saturation) Tune Kp/Tn (p1460, p1470)
11 Current / torque limit reached Verify p0640, p1520, p1521
12 Setpoint / actual deviation Check encoder; check speed loop
13 System startup (parameter download in progress) Normal during commissioning
14 Internal message active Read r2122
15 Reserved / life-sign (mirror of ZSW1.15) PLC life-sign counter

ZSW1 and STW1 Bit Map

ZSW1 — Status Word 1

Bit Meaning
0 Ready to switch on
1 Ready to operate (DC-link charged, no fault)
2 Operation enabled (pulses released)
3 Fault present
4 Coast stop (OFF2) active
5 Quick stop (OFF3) active
6 Switch-on inhibit active
7 Warning present
8 Speed setpoint/actual within tolerance (p2161)
9 Control request — PLC must supply new setpoint
10 f or n comparison value reached/exceeded (p2142)
11 I, M, P limit reached
12 Open holding brake (MHB) released
13 Alarm motor overtemperature (PTC/KTY)
14 Motor rotates forward (speed ≥ 0)
15 Life-sign toggle bit (PROFIdrive)

STW1 — Control Word 1

Bit Meaning
0 OFF1 (ramp stop) — 0 = ramp stop, 1 = ready
1 OFF2 (coast stop) — 0 = immediate pulse inhibit
2 OFF3 (quick stop) — 0 = quick stop ramp
3 Pulse enable — 1 = enable
4 Ramp-function generator enable
5 Unfreeze ramp-function generator (start ramp)
6 Setpoint enable
7 Fault acknowledge (0→1 edge)
8 Jog 1
9 Jog 2
10 Master control by PLC (1 = PLC has control)
11 Setpoint inversion
12 Unconditionally open holding brake
13 Motorized potentiometer raise
14 Motorized potentiometer lower
15 Reserved / clock synchronism

Verification: Confirm the Custom Telegram Works

  1. Drive-side online check: In Startdrive, open the watch table for the drive. Read p0922 (= 999) and p2079 (= 999). Read p2051[0..7] to confirm the interconnects match the intended signal map. All values must be in the SINAMICS BICO source range, not zero.
  2. Trace recording: Use Startdrive > Drive Trace to record r0899 (ZSW1), r0021 (NIST_GLATT), and r0479[0] (encoder 1 actual position low). Run the motor at a small reference speed; the trace must show coherent encoder counts incrementing with direction changes.
  3. PLC-side functional check: In the S7-1x00 / S7-1500 project, add a watch table on the drive's input data block (e.g. IDB > telegram input area). Confirm ZSW1 bit 2 (operation enabled) transitions when STW1 bit 3 is set. Confirm the encoder position DWord updates when the motor rotates. Toggle STW1 bit 7 to acknowledge faults and verify ZSW1 bit 3 clears.
  4. Diagnostic buffer: Read r0945 (fault code) and r2122 (alarm code) on the drive. No F08501 (PZD configuration error) or A08550 (PZD interconnect invalid) should be present after the changes are downloaded.
  5. PROFINET diagnostics: In the PLC's online > Diagnostics, confirm the drive's PROFINET module "Telegram 20 ext 8/2" is in data exchange state and no channel diagnosis is pending.

Troubleshooting: Common Telegram 20 Customization Issues

Symptom Likely Cause Resolution
F08501: PZD configuration fault after writing p0922 = 999 Free PZD length does not match PLC project telegram length Set PLC project telegram length to 6/2 (or new custom length) and recompile
A08550: PZD interconnect: invalid signal BICO source number in p2051 is reserved or does not exist Use only valid r-numbers; consult the SINAMICS List Manual parameter list for the drive firmware version
Encoder position word always zero on PLC Encoder is configured for pulse-counting mode but the connector is r0480 instead of r0479 (or vice versa) Verify the encoder signal source in p2051; use the trace to confirm r0479 is non-zero on the drive
Position word increments but value is corrupted on every 65536 boundary Low/high words are swapped in p2051 Reconnect p2051[3] to r0479[0] (low) and p2051[4] to r0479[1] (high). The PLC SWAP-bytes may also need to be disabled for unsigned position
Drive trips F08501 after PLC restart Free telegram was downloaded with wrong p0922 ordering (drive downloaded before PLC) Always download PLC telegram configuration first, then drive parameter set
Life-sign error F08502 STW1 bit 15 or ZSW1 bit 15 toggling is not active; PLC not sending correct life-sign Activate life-sign: p2042 = 0.05 s, ensure PLC toggles bit 10 of STW1 in the configured interval
MELD_NAMUR bit 8 (encoder fault) set after re-mapping The new encoder signal is not the same physical encoder the drive uses for speed control; an internal consistency check is triggered Use the same encoder for both the standard and the re-mapped position word (Gn_XIST1 = r0479[0])
Telegram sub-module grayed out in TIA Portal Drive object version mismatch with Startdrive version Update Startdrive to the version shipped with the active TIA Portal; reinstall GSDML if required

Best Practices for Production Deployments

  • Always select the standard Telegram 20 first, do a full commissioning run, then switch to free configuration. The order is documented in the Siemens support attachment and is also a best practice for firmware downgrade protection.
  • Do not delete MELD_NAMUR from the transmit frame unless the receiving PLC replaces it with another diagnostic word. Losing the NAMUR word defeats the main reason Telegram 20 is selected over Telegram 1.
  • If the application needs the absolute position of a 32-bit encoder, reserve two consecutive transmit PZD words for the position and the next word for the encoder status word. The PLC program must reassemble the 32-bit value using SWAP-DWORD or direct DWord load.
  • Document the new signal map on the drive nameplate and in the PLC hardware configuration notes. Future firmware upgrades that touch the telegram mapping are easier to validate with documented intent.
  • For S210 drives, prefer the pre-defined Telegram 105/106 instead of free configuration. The S210 uses PROFINET IRT and isochronous mode, where free PZD re-mapping may interfere with the integrated safety channel.
  • When extending the telegram on a Safety Integrated drive (e.g. G120 with F-IO), keep the safety telegram separate from the standard telegram. Safety telegrams 30, 31, 701-706 are always independent and are not modified by free configuration.

When to Use a Different Telegram Instead

Free configuration of Telegram 20 is the right tool when the user wants to swap one of the existing signals for another, or to add a small number of additional words. If the project needs more than 8 transmit words, or needs signals not on the SINAMICS BICO source list, Siemens offers purpose-built telegrams that should be used instead:

  • Telegram 105 — 12/12, used on S210 and on S120 with extended setpoint channel.
  • Telegram 106 — 12/12, S210 with second encoder.
  • Telegram 220 — 10/10, S120 torque control with extended diagnosis.
  • Telegram 350 — 4/4, S120 with a current setpoint interface and reduced I/O.
  • Telegram 352 — 6/6, S120 in speed control with reduced cycle.
  • Telegram 390–396 — Siemens-specific for closed-loop position control on S120 with the SIMOTION / SINUMERIK control system.

On SINAMICS V90 PN, Telegram 20 is not present. The available PROFINET telegrams are 1, 2, 3, 5, 7, 9, and 110. Use Telegram 7 for the V90 with absolute encoder (encoders 1 and 2 feedback included). Telegram 20 customization is therefore a S120 / G120 / G150 / S110 / S210 exercise, not a V90 exercise.

Quick Reference: Procedure Summary

  1. Configure Telegram 20 in the PLC project first.
  2. Download the drive base configuration and start Standard Telegram 20.
  3. Switch to free telegram: p0922 = 999, p2079 = 999.
  4. Edit p2051[0..7] for transmit words; p2061[0..1] for receive words.
  5. Replace torque actual (r0031) with encoder low word (r0479[0]) on PZD 4 to free a slot, or add the encoder low/high/status on PZD 7/8/9 after extending the telegram.
  6. Update the PLC project telegram length to match the new word count.
  7. Download drive parameters, then PLC hardware configuration.
  8. Verify with the watch table, trace, and the drive's diagnostic buffer.

Can I extend Telegram 20 with more than 8 transmit words?

Yes. After switching to free configuration with p0922 = 999 and p2079 = 999, edit p2051[index] for each additional word, and raise the transmit PZD length on the PROFINET sub-module to match. Many projects use 10-12 transmit words successfully on S120 and S210.

What is the difference between p0922 and p2079 in Telegram 20 customization?

p0922 defines the receive-telegram (PLC → drive) word count and type. p2079 defines the transmit-telegram (drive → PLC) word count and type. Both are set to 999 to enable free configuration, and the actual word count is then taken from the PROFINET configuration in the PLC project.

Why does my drive reject edits to p2051 after I selected Telegram 20?

Standard Telegram 20 is internally locked because the firmware manages the BICO interconnects. You must first switch to free configuration by writing p0922 = 999 (receive) and p2079 = 999 (transmit). Once the drive is in free mode, p2051 and p2061 become writable.

Can I keep the MIST_GLATT torque actual value and add encoder feedback at the same time?

Yes. Keep p2051[3] at the torque connector r0031 and add the encoder low word to p2051[6] (PZD 7) and the encoder high word to p2051[7] (PZD 8). Update the transmit PZD length in the PLC project from 6 to 8 words. This is the recommended approach whenever the application needs both signals.

Does Telegram 20 work on SINAMICS V90 PN drives?

No. Telegram 20 is a Siemens-specific telegram available on S110, S120, S150, S210, G120, G120C, G120D, G130, and G150. The V90 PN uses a smaller set of fixed telegrams (1, 2, 3, 5, 7, 9, 110). For V90 with absolute encoder feedback, use Telegram 7.

What does "Activate extension word" in TIA Portal do?

The extension word is a flexible PZD area appended to a standard telegram that lets the engineer add additional transmit and receive words beyond the default frame without switching the drive to free configuration. The PLC writes a fixed p0922/p2079 = 999 automatically when the extension word is used. This is the same field referenced in the TIA Portal communication-telegrams documentation.

Back to blog