A telegram is the fixed block of process data a Siemens PLC and a SINAMICS G120 exchange every bus cycle. You select it in two places that must agree: parameter p0922 on the drive, and the telegram slot in the drive's device view in TIA Portal. Once they match, TIA Portal assigns an output address range (QW) and an input address range (IW) — and those addresses are your entire control interface. Standard Telegram 1 (p0922 = 1) reserves 4 bytes each way. A mismatch between p0922 and the project is the single most common reason a drive goes online, shows no fault, and still will not run.
- Select the telegram in TIA Portal and confirm p0922 on the drive. Checking only one side is how commissioning stalls.
- The assigned QW/IW addresses are allocated by TIA Portal, not fixed by the drive — read them from the device view, never assume them.
- Install the GSDML version that matches the drive firmware, or newer submodules will not appear in the catalogue.
- Telegram length decides whether you can use direct symbolic access or need DPRD_DAT / DPWR_DAT.
What a Telegram Actually Is
There is no instruction in TIA Portal called "start drive". A SINAMICS G120 on PROFINET or PROFIBUS is controlled purely by a block of words that the controller and drive swap on every cycle — typically every 1 to 4 ms. The PLC writes some words into the drive's input area, the drive writes some back, and both ends agree in advance on what each word means.
That agreement is the telegram, and it comes from the PROFIdrive profile rather than from Siemens alone. This is why the same structure appears across G120, G120C, G120X and S120: they all implement the same profile. Learn one telegram and the rest are variations on it.
The practical consequence is that telegram selection is a configuration decision made before any program is written. Change it later and the I/O addresses shift, the word meanings change, and every line of drive code has to be revisited. Choose deliberately at the start.
Setting p0922 on the Drive
Parameter p0922 holds the drive's telegram selection. You can set it from the drive keypad, from STARTER, or from Startdrive inside TIA Portal.
| p0922 | Telegram | Process data | Choose when |
|---|---|---|---|
| 1 | Standard Telegram 1 | 2 words out / 2 words in | Speed control — pumps, fans, conveyors. The default starting point. |
| 20 | Standard Telegram 20 | 2 words out / 6 words in | You need current, torque, power and warning data returned |
| 352 | SIEMENS Telegram 352 | 6 words out / 6 words in | PCS 7 or process library integration with free process data words |
| 999 | Free telegram | Defined by p0915 / p0916 | A specific parameter must be carried cyclically that no standard telegram includes |
Two points that save time. First, changing p0922 resets the underlying BICO interconnections to the defaults for that telegram — so set it before doing any custom parameter wiring, not after. Second, after changing it, save to non-volatile memory with p0971 = 1, or the setting is lost at the next power cycle and the drive silently reverts.
Configure real drives on real PLCs
Hands-on PROFINET and drive integration sessions with S7-1200/1500 and SINAMICS G120 hardware — Pune classroom or live online.
Matching the Telegram in TIA Portal
On the project side, the drive first has to exist in the hardware catalogue. Siemens control units are built in; if yours is missing or shows an older firmware, install the GSDML file through Options → Manage general station description files.
Match the GSDML to the drive's actual firmware version. A GSDML written for an older firmware will not expose newer submodules, and the mismatch shows up as a device that connects but reports a configuration error rather than as an obvious version warning.
With the device placed in the network view and connected to the PLC's PROFINET interface, open its device view. The telegram is added as a submodule into slot 1. Selecting "Standard telegram 1, PZD-2/2" here is the project-side half of the decision that p0922 = 1 makes on the drive side.
The notation in the catalogue is worth decoding, because it tells you the sizes at a glance: PZD-2/2 means two process-data words out and two in, PZD-2/6 means two out and six in, PZD-6/6 means six each way.
Reading the Assigned I/O Addresses
Once the telegram submodule is placed, TIA Portal allocates address ranges automatically from the CPU's free I/O space. Read them from the device overview — do not assume them, and do not copy them from another project.
| Telegram | Output bytes (Q) | Input bytes (I) | Example allocation |
|---|---|---|---|
| Standard Telegram 1 | 4 | 4 | QW256, QW258 / IW256, IW258 |
| Standard Telegram 20 | 4 | 12 | QW256, QW258 / IW256 to IW266 |
| SIEMENS Telegram 352 | 12 | 12 | QW256 to QW266 / IW256 to IW266 |
Build PLC tags against these addresses immediately, with names that say what each word is rather than where it lives: G120_Conv1_STW1, G120_Conv1_NSOLL, G120_Conv1_ZSW1, G120_Conv1_NIST. Absolute addresses in program logic become unreadable the moment a second drive is added.
Better still, define a PLC data type with those four members and declare one tag of that type per drive. The addressing then lives in exactly one place, and a reusable function block can take the whole structure as a single in/out parameter.
Hardware Identifier and Consistent Access
Alongside the I/O addresses, every submodule has a hardware identifier — a system constant TIA Portal generates, visible in the device properties and available in the program under the System constants tab.
You need it when you move beyond direct address access. For telegrams longer than four bytes, use DPRD_DAT to read and DPWR_DAT to write, passing the hardware identifier as the LADDR parameter. These instructions guarantee that every word in the telegram comes from the same bus cycle.
| Access method | Use for | Why |
|---|---|---|
| Direct symbolic QW / IW | Standard Telegram 1 on S7-1200 or S7-1500 | Four bytes or fewer are read consistently by the CPU anyway; simplest and clearest |
| DPRD_DAT / DPWR_DAT with hardware ID | Telegram 20, 352 or free telegrams | Guarantees all words come from one cycle — essential when reading speed alongside current and torque |
Using the hardware identifier instead of a hard-coded address also survives re-addressing. If the drive is moved or the address range shifts, the system constant updates with it and the program still compiles.
When the Two Sides Disagree
| Symptom | Cause | Fix |
|---|---|---|
| Drive online, no fault, ignores every command | p0922 does not match the telegram in the project | Read p0922 on the drive and compare with the device view submodule |
| Configuration error on the drive submodule | Telegram length in the project differs from the drive's | Compare set and actual configuration in online diagnostics |
| Telegram reverts after power cycle | p0922 changed but never saved | Set p0971 = 1, power-cycle and verify |
| Telegram option missing from the catalogue | GSDML version older than the drive firmware | Install the matching GSDML and re-add the device |
| Program compiles but reads garbage from the drive | Tags built on assumed addresses rather than the assigned ones | Re-read the address range from the device overview |
| Custom BICO wiring lost | p0922 changed after the wiring was done | Set the telegram first, then do any custom interconnection |
Step-by-Step Lab: Assign and Verify a Telegram
Hands-on- TIA Portal V17 or later, an S7-1200 or S7-1500 CPU and a G120 with a PROFINET control unit on the same subnet.
- The drive already basic-commissioned with motor data entered and direction confirmed.
- Estimated time: 25 minutes.
Confirm the GSDML and add the drive
Check the drive's firmware version on its display, then confirm the catalogue entry matches. Add the control unit to the network view and connect it to the CPU's PROFINET port.
Place Standard Telegram 1 and note the addresses
In the device view, drag "Standard telegram 1, PZD-2/2" into slot 1. Open the device overview and write down the exact I and Q address ranges assigned.
Verify p0922 on the drive itself
Using the keypad or Startdrive, read p0922. If it is not 1, set it, then set p0971 = 1 to save.
Create a data type and one tag per drive
Add a PLC data type with members STW1 (Word), NSOLL (Int), ZSW1 (Word), NIST (Int). Create one tag of that type and assign it to the recorded address range.
Prove the link before writing any logic
Download the hardware configuration, go online, and watch ZSW1 in a watch table with hexadecimal display.
Find the hardware identifier
Open the drive submodule properties and locate its hardware identifier, then find the same constant under System constants in the PLC tag table.
The configuration is sound if ZSW1 shows live data before you have written a single line of logic. That one observation proves the GSDML, the telegram match, the addressing and the network are all correct — and it separates a configuration problem from a programming problem for the rest of the project.
Frequently asked questions
Where do I select the telegram for a SINAMICS G120?
In two places that must agree: parameter p0922 on the drive, and the telegram submodule in the drive's device view in TIA Portal. Setting only one side produces a drive that connects with no fault and ignores every command.
What does PZD-2/2 mean in the hardware catalogue?
It states the process data size: two words from controller to drive and two words back. PZD-2/6 means two out and six in, and PZD-6/6 means six each way. The notation tells you the telegram's I/O footprint before you place it.
Which I/O addresses will the drive use?
Whichever ones TIA Portal allocates from the CPU's free address space when you place the telegram submodule. They are not fixed by the drive, so read them from the device overview rather than copying addresses from a manual or another project.
Do I need DPRD_DAT and DPWR_DAT?
Not for Standard Telegram 1 on an S7-1200 or S7-1500 — four bytes are read consistently anyway, so direct symbolic access to the assigned QW and IW addresses is simpler. Use the consistent-access instructions with the hardware identifier for Telegram 20, 352 or free telegrams.
My telegram setting keeps reverting after power off. Why?
The parameter change was never written to non-volatile memory. Set p0971 = 1 after changing p0922, then power-cycle and confirm the value survived before continuing.
Can I change the telegram after the program is written?
You can, but expect rework. Changing p0922 reallocates the I/O addresses, changes what each word means and resets BICO interconnections to that telegram's defaults. Decide the telegram during configuration, before any drive logic is written.
