PROFIdrive PPO, PZD and PKW Telegram Structure and Parameter

David Krause10 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

Overview: PROFIdrive and the Three Data Abstractions

PROFIdrive is the standard drive profile of PROFIBUS International (PI) and has been carried forward into PROFINET. It defines a uniform communication interface between a controller (PLC / motion controller) and an electrical drive (frequency converter, servo, motor starter). The profile organizes the on-the-wire payload into three conceptually distinct objects that engineers encounter when configuring cyclic and acyclic data exchange with SINAMICS, MICROMASTER 4, SIMOVERT Masterdrives and third-party drives that implement PROFIdrive V3.x through V6.x.

Abbreviation German Origin English Meaning Communication Class
PPO Parameter-Prozessdaten-Objekt Parameter Process Data Object Telegram type (container)
PKW Parameter-Kennung-Wert Parameter Values (parameter channel) Acyclic (read/write parameters)
PZD Prozessdaten Process Data Cyclic (setpoints/actuals)

A PPO is therefore the telegram container that bundles a PKW area (optional) and a PZD area (always present). It is the unit selected when you wire a drive to a PROFIBUS DP slave or PROFINET I/O device in HW Config (STEP 7 V5.x) or in the device configuration of TIA Portal.

Note: PKW and PZD are used in PROFIdrive on both PROFIBUS and PROFINET. The PROFINET I/O protocol uses PPOs in cyclic communication in exactly the same way as PROFIBUS DP-V0/DP-V1; only the transport layer changes. See the ABB PROFINET basic guide for a vendor-neutral confirmation of this mapping.

PPO Telegram Types (PPO 1 through PPO 5)

The PROFIdrive profile defines five standard PPO types. Each PPO is identified by a number in the drive's GSD or GSDML file. The number determines the word count, the presence (or absence) of the PKW area, and the size of the PZD area.

PPO Type PKW Words PZD Output Words PZD Input Words Typical Use
PPO 1 4 (PKW: 4 words) 2 2 Speed control with parameter access
PPO 2 4 4 4 Positioning or extended control/status
PPO 3 0 2 2 Speed control only (no PKW)
PPO 4 0 4 4 Positioning only (no PKW)
PPO 5 4 10 10 High-performance drives, torque + speed + status

Total telegram length is therefore 4 + 2*PZD words per direction for PPO 1/2/5, or 2*PZD words only for PPO 3/4. When configuring in TIA Portal, you select the PPO type from the device catalog; the I/O addresses assigned to the drive reflect this layout exactly.

PKW: The Parameter Channel (Acyclic Read/Write)

The PKW area is always operated acyclically, even when it is embedded inside a cyclic PPO. The PROFIdrive profile uses four 16-bit words to transport one parameter request or response per cycle. The PKW area is structured as:

Word Offset Name Direction Contents
PKW 1 PKE Request/Response Parameter number (PNU) + AK/SPM bits
PKW 2 IND Request/Response Index (array sub-index, text selection)
PKW 3 PWE 1 Request/Response Parameter value high word
PKW 4 PWE 2 Request/Response Parameter value low word

The PKE word encodes the request type in the upper nibble (AK = Auftrags-Kennung / task identifier) and the parameter number (PNU) in the remaining 12 bits. Common task IDs include:

  • 0x01 — Read parameter value (word)
  • 0x02 — Write parameter value (word), 16-bit
  • 0x03 — Write parameter value (double word), 32-bit
  • 0x06 — Read parameter value (array)
  • 0x07 — Write parameter value (array)
  • 0x0B — Read text (for enumerations)

Because PKW is acyclic at the application layer, the PLC program must use dedicated system functions to send and receive the four words. On S7-300/S7-400 with PROFIBUS DP, the standard pair is SFC14 "DPRD_DAT" (read consistent data from a DP slave) and SFC15 "DPWR_DAT" (write consistent data). On newer controllers and PROFINET, the standard pair is SFB52 "RDREC" and SFB53 "WRREC", which access the drive's parameter record objects directly.

PZD: The Cyclic Process Data

PZD carries time-critical I/O such as control word, status word, speed setpoint, speed actual value, torque, current, and encoder feedback. PZD is exchanged every bus cycle and is therefore the right place for closed-loop control data. The mapping between PZD word positions and drive parameters is drive-specific and defined in the parameter manual of the converter.

For a SINAMICS G120 with a CU240S DP control unit running Standard Telegram 1 (STW1/ZSW1 + NSOLL_A/NIST_A), the PZD layout is:

PZD Position Output (PLC → Drive) Input (Drive → PLC)
PZD 1 STW1 (control word 1) ZSW1 (status word 1)
PZD 2 NSOLL_A (speed setpoint, 0x4000 = 100 %) NIST_A (speed actual)

The control word STW1 follows the PROFIdrive state machine: bit 0 = ON/OFF1, bit 1 = OFF2, bit 2 = OFF3, bit 3 = enable/inhibit, bit 4 = ramp enable, bit 5 = ramp freeze, bit 6 = setpoint enable, bit 7 = fault acknowledge (rising edge), bit 8 = JOG 1, bit 9 = JOG 2, bit 10 = control by PLC, bit 15 = acknowledge fault. The same state machine applies across G120, G130, G150, S120 and SIMOTION.

Cyclic vs Acyclic — Two Separate Paths

PROFIdrive uses two communication classes that engineers must keep separated in their PLC code:

  • Cyclic PZD — exchanged every PROFIBUS/PROFINET cycle. Read and written via direct I/O access (L PEW / T PAW on classic S7, or the process image in TIA Portal). Latency is one bus cycle.
  • Acyclic PKW — transported over DP-V1 (PROFIBUS) or the record-data channel (PROFINET). Latency is several bus cycles; throughput is much lower. Used for commissioning, diagnostics, parameter backup and rarely-changed configuration.
Field-proven caveat: The PKW area is embedded inside a cyclic PPO but its semantics are acyclic. Updating PKW every cycle is wasted bandwidth; a parameter read or write should be triggered only when a new request is needed (e.g. on HMI button press, recipe change, or commissioning download).

Siemens Implementation: SFCs, SFBs and Library Blocks

On S7-300/S7-400, use the following pattern to read a drive parameter via PKW:

// Call SFC14 to read PKW+PZD consistently from the drive
CALL  "DPRD_DAT"
  LADDR  := W#16#100        // I/O start address of the drive
  RET_VAL:= MW100            // Return code (0 = OK)
  RECORD := P#DB1.DBX0.0 BYTE 12  // 12 bytes = 6 words (PKW 4 + PZD 2)

To write a parameter request, build the four PKW words in a data block and call:

CALL  "DPWR_DAT"
  LADDR  := W#16#100
  RECORD := P#DB2.DBX0.0 BYTE 12
  RET_VAL:= MW102

On S7-1200/S7-1500 with PROFINET, use RDREC and WRREC against record numbers 47 (DO1.0, parameter request) and 48 (DO1.1, parameter response) on SINAMICS. The drive returns STATUS = 16#DF80_Bxxy on success, where xx encodes the number of valid parameter values. A reference to the official Siemens FAQ and the MICROMASTER 4 PROFINET manual is given at the end of this article.

The SINAMICS Startdrive / DriveLib libraries provide higher-level blocks: "SINA_PARA_S" (read/write parameter by number), "SINA_SPEED" (control word + speed setpoint), "SINA_POS" (positioning). These wrap the PKW mechanism into a single FB and handle retry on busy responses.

Configuration in HW Config and TIA Portal

The PPO type is selected in the device configuration:

  1. Open the device or DP slave properties in HW Config (STEP 7 V5.x) or in the device view of TIA Portal.
  2. Navigate to PROFIBUS / PROFINET interface → Telegram configuration (TIA) or DP slave properties → Operating mode → PROFIdrive profile (classic).
  3. Insert the desired PPO type or Standard Telegram from the catalog (e.g. Standard Telegram 1, 2, 3, 4, 5, 6, 7, 9, 102, 103, 105, 106).
  4. For SINAMICS G120 / S120, the I/O addresses of the PZD words and the slot for PKW/parameter access are set automatically from the GSDML.
  5. Compile and download. The bus configuration is now consistent; the PLC program can read PZD directly from PI/PQ and read/write parameters through the acyclic services.

For PROFIBUS DP, the PPO type is fixed at configuration time. To change the number of PZD words at runtime, you must use the so-called free telegram configuration (Siemens-specific) or, on PROFINET, the symbolic I/O slots available in TIA Portal V15 and later.

Examples from MICROMASTER 4 and SINAMICS G120

The MICROMASTER 4 (MM4) PROFIBUS option board implements PROFIdrive V3 with PPO 1 as the default. According to the operating instructions referenced below, parameter read/write uses PKW words as follows for parameter P0700 (selection of command source):

// Build PKW request to read P0700
DB_PKW.PKE := W#16#0100 + 16#BC   // AK = 0x01 (read word), PNU = 700
DB_PKW.IND := W#16#0000            // Index = 0
DB_PKW.PWE1 := W#16#0000
DB_PKW.PWE2 := W#16#0000

// Send with SFC15; receive response with SFC14
// The response returns parameter value in PWE1/PWE2 (e.g. 2 = USS on COM link)

The SINAMICS G120 with CU240S/D/PN and a STARTER or Startdrive project uses Standard Telegram 1 by default but also exposes the full PKW/parameter record layer for non-cyclic access via RDREC/WRREC. Drive parameter p0922 selects the PROFIdrive telegram, while p2051 and p2061 define the PZD send/receive word mapping. Configuring these parameters incorrectly is the most common cause of PZD mismatches in field commissioning.

Diagnostics and Troubleshooting Matrix

Symptom Likely Cause Diagnostic Step Remedy
PKW response returns 0x07 (task cannot be executed) Parameter not available in current drive state, or access level too low Check parameter manual; verify p0003 access level Set expert access (p0003 = 3) or wait for correct drive state
PKW response returns 0x08 (write access violation) Parameter is read-only or motor running Read parameter r0002 (drive state) and the parameter attribute bit Stop drive (OFF1) before writing, or use the proper commissioning tool
PZD setpoint is ignored by drive STW1 bit 10 not set (control by PLC) Monitor ZSW1 and the PROFIdrive state machine Set STW1 = 0x047E → 0x047F sequence to hand control to PLC
SFC14 returns error W#16#80A1 I/O address mismatch with HW Config Compare PLC hardware configuration to LADDR parameter Correct LADDR or recompile HW Config
Cyclic PZD works, acyclic PKW returns timeout DP master class 2 not enabled; PROFINET AR missing record-data rights Check AR properties and acyclic RW rights on the controller Enable record-data access on the PROFINET device
Wrong PZD word mapping after firmware update p2051/p2061 default reset Compare parameter list before/after update Re-load commissioning archive or re-wire telegram

Field-Proven Best Practices

  • Use PPO 3 or 4 (no PKW) when the PLC never needs to read/write parameters online; the bus payload is smaller and the cycle time drops.
  • Use PPO 1 or 2 only when you require acyclic PKW embedded in a single PPO. On PROFINET, prefer RDREC/WRREC or SINA_PARA_S instead — it is cleaner and supports multiple simultaneous clients (HMI, second PLC, TIA Portal).
  • Always handle bus failure in the PLC program: monitor ZSW1 bit 3 (fault present) and ZSW1 bit 11 (drive follows setpoint). If the cyclic PZD goes into the OB82/OB86 diagnostic state, the drive must be re-enabled through the PROFIdrive state machine before resuming control.
  • Document the PPO type in the project header. A mismatched PPO is the number one source of "drive spins in reverse" or "STW1 has no effect" commissioning errors.
  • Verify parameter consistency: when loading a STARTER or Startdrive archive, the drive's p0922 (telegram selection) must match the PLC's HW Config, otherwise the GSDML-defined PZD mapping will be silently ignored.
Reference: For the complete PROFIdrive state machine, control word and status word bit definitions, see the Siemens application description PROFIdrive profile for SIMATIC S7. For the MM4 PROFIBUS option board and SINAMICS G120 PKW/PZD examples, see MicroMaster 4 PROFIBUS option board manual and MICROMASTER 4 / SINAMICS G120 PROFIBUS essentials. For PROFINET-specific PPO usage on ABB drives (which implement the same PROFIdrive profile), see the ABB PROFINET basic guide.

What does PPO stand for in PROFIdrive?

PPO stands for Parameter Process Data Object (German: Parameter-Prozessdaten-Objekt). It is the telegram type that bundles the PKW parameter channel and the PZD process data into a single PROFIBUS or PROFINET frame. Five standard types (PPO 1–5) are defined with different combinations of PKW words and PZD words.

Is PKW used for PROFINET communication?

Yes. PKW is part of the PROFIdrive profile and is identical in syntax on PROFIBUS DP and PROFINET IO. The only difference is the transport: PROFIBUS carries PKW inside a cyclic PPO and also via DP-V1 read/write services, while PROFINET carries it inside cyclic PPOs and via record-data (RDREC/WRREC). On SINAMICS drives the parameter records are typically slot 0, record 47 (request) and 48 (response).

What is the difference between PZD and PKW?

PZD (Process Data) is exchanged cyclically every bus cycle and carries time-critical signals such as control word, status word, speed setpoint and speed actual. PKW (Parameter Values) is acyclic and carries one parameter read or write request per transaction, used for commissioning, diagnostics and recipe download.

When should I use PPO 1 versus PPO 3?

Use PPO 1 (4 PKW + 2 PZD words) when the PLC must read or write drive parameters online through the embedded PKW channel. Use PPO 3 (2 PZD words only, no PKW) when only speed control is needed and parameter access is performed separately over DP-V1 or PROFINET record-data, or through a higher-level library such as SINA_PARA_S.

Which SFCs or FBs handle PKW in STEP 7?

On S7-300/S7-400 use SFC14 "DPRD_DAT" and SFC15 "DPWR_DAT" for consistent read/write of the PKW+PZD area. On S7-1200/S7-1500 with PROFINET use RDREC (SFB52 / FB52) and WRREC (SFB53 / FB53) against the drive's parameter record objects. For a higher-level wrapper, use the SINAMICS library block SINA_PARA_S, which handles request IDs, retries and busy responses automatically.

Back to blog