Configuring Simovert Masterdrive PPO3 Control and Status Words

David Krause17 min read
ProfibusSiemensTechnical 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

Configuring Simovert Masterdrive PPO3 Control and Status Words over Profibus

This technical reference documents the Profibus PPO3 (Parameter Process Data Object type 3) cyclic data exchange between a Siemens SIMATIC S7-400 PLC and a Simovert Masterdrive 6ES7087-6JK60 family drive using the CBP2 communications board (6SE7090-0XX84-0FF5). It explains the I/O addressing scheme, the structure of the control word (STW) and status word (ZSW), the speed setpoint and actual-value encoding, the byte-order rule for PROFIBUS words, and the start/stop command sequences required to operate the drive from an S7 program without using a vendor-supplied FC/FB.

Target system: Simovert Masterdrive VC/MC (compact plus) drive 6ES77032-1EG60-Z, CBP2 Profibus-DP option 6SE7090-0XX84-0FF5, S7-400 CPU with Profibus-DP master interface, STEP 7 V5.x. Reference documents: MASTERDRIVES Compendium 6SE7087-6BX70, Control Word and Status Word manual 6SE7087-6JK60, parameter list 6SE7087-6BP70.

1. PPO3 Telegram Layout and Data Mapping

PPO3 is the smallest of the PROFIdrive-compatible parameter/process-data telegrams supported by Masterdrive. PPO3 has no PKW (parameter channel) and a 2-word PZD (process data) region, giving 4 words of cyclic I/O. With CBP2 in the S7-400 hardware configuration the input and output ranges are placed in the process image as shown below.

Logical Word Direction S7 Address (example) Function
PZD1 OUT PLC → Drive PQW536 / PQB536..PQB537 Control word 1 (STW1)
PZD2 OUT PLC → Drive PQW538 / PQB538..PQB539 Main setpoint (speed reference, NSOLL)
PZD1 IN Drive → PLC PIW712 / PIB712..PIB713 Status word 1 (ZSW1)
PZD2 IN Drive → PLC PIW714 / PIB714..PIB715 Main actual value (speed feedback, NIST)

The PZD region always follows the same rule: first word = control/status, second word = reference/actual. This is fixed by the PROFIdrive profile and is not a per-vendor convention. For an overview of how alternative PPO types extend this layout with a parameter channel (PKW) and additional PZD words, refer to the Profibus International PROFIdrive profile documentation and the generic Profibus option-board manual for drives such as the Omron MX2/RX Profibus option board, which describes the same STW/ZSW structure in section B-2.

2. Hardware Configuration in STEP 7

The CBP2 is inserted into the Masterdrive option slot and must be parameterized for PPO3 in HW Config. The drive's GSD file (SIEM8041.GSD or equivalent Masterdrive GSD) supplies the PPO3 slot definition. After the slave is dragged onto the Profibus subnet the slot is configured to PPO3. STEP 7 then assigns the I/O addresses based on the position of the slave in the network:

  1. Open HW Config and place the CBP2 from the Masterdrive GSD at the desired Profibus address (default 3..126).
  2. Open DP slave properties → I/O addresses and accept or change the assigned addresses. The example in this article uses IB 712..IB 715 (4 bytes input = 2 words) and QB 536..QB 539 (4 bytes output = 2 words).
  3. Confirm that the slot is configured as PPO type 3 (0 PKW + 2 PZD). Other PPO types (PPO1, PPO5, PPO6) use additional PZD words for an extended status/control structure.
  4. Download the HW Config to the CPU and confirm in the diagnostic buffer that the slave is in cyclic data exchange (DX).
If the slave is shown with diagnostic LED "Bus fault" or "Slave not found", the Profibus address on the CBP2 (P722 in the drive parameter set) must be matched to the HW Config address. The baud rate (P721) must be set to Auto or to the configured bus rate.

3. Big-Endian Byte Order on Profibus

PROFIBUS-DP transports word values big-endian (high byte first). S7 peripheral words and the S7 CPU byte order are little-endian. When the program copies a 16-bit status word from PIW712 into a flag word, the high byte of PIW712 corresponds to the low byte of the flag word and the low byte of PIW712 corresponds to the high byte of the flag word. The same rule applies in reverse for PQW536.

Profibus Byte S7 Peripheral Byte Bit Range (Bit 0 = LSB) S7 MW high/low byte
PZD byte 1 (high) PIB 713 (ZSW)/PIB 537 (STW) Bits 0..7 Low byte of MW / low byte of STW when moved with ATT/MOVE
PZD byte 2 (low) PIB 712 (ZSW)/PIB 536 (STW) Bits 8..15 High byte of MW / high byte of STW when moved with ATT/MOVE

This is why the example program uses the pair PIB712 → MB251 and PIB713 → MB250 when assembling the status word into MW252, and the reverse order for the control word. If the program uses MOVE PIW712, MW252 directly, the high/low byte of MW252 is automatically swapped by the STEP 7 compiler; if the program assembles the word byte-by-byte with PIB 712 → MB 251 and PIB 713 → MB 250, the bytes are deliberately placed to match the natural reading of the Siemens control word (Bit 0 in the low byte of the user's flag word).

4. Control Word 1 (STW1) Bit Definitions

The 16-bit control word is structured exactly as defined in the Masterdrive Compendium. Bits 0..7 carry the digital commands (on/off, enable, fault acknowledge, direction), bits 10..13 carry the setpoint enable and the ramp-function-generator control, and bit 15 carries the field-bus release.

Bit Mnemonic Function Reset State
0 ON / OFF1 Rising edge = ON command (1 = drive enabled if prerequisites met) 0
1 OFF2 0 = coast to stop (coast stop), 1 = OFF2 inactive 1
2 OFF3 0 = fast stop along the OFF3 ramp, 1 = OFF3 inactive 1
3 ENABLE (Inverter enable) 1 = enable inverter pulses, 0 = pulse inhibit 0
4 RFG enable (ramp-function generator) 1 = ramp enable, 0 = ramp output frozen 0
5 RFG start 1 = accelerate to setpoint, 0 = hold output of RFG 0
6 Setpoint enable 1 = apply setpoint at RFG input, 0 = RFG input = 0 0
7 Acknowledge (fault reset) 0→1 rising edge = reset active faults 0
8 Reserved / jog 1 Application-specific (see P583 in drive) 0
9 Reserved / jog 2 Application-specific 0
10 Control by PLC 1 = setpoints and commands come from Profibus, 0 = drive takes commands from local terminals/PMU 0
11 Reverse (direction) 0 = CW, 1 = CCW (with positive setpoint) 0
12 Reserved - 0
13 Reserved - 0
14 Reserved - 0
15 Fieldbus release (BICO) 1 = CBP2 has control of the command source, 0 = CBP2 ignored 0

The safe reset state of the control word (no command) is W#16#047E. This sets OFF2 = 1, OFF3 = 1, all other command bits to 0, and bit 10 (control by PLC) to 1. Writing this word to PQW536 places the drive in the "ready, no run command, PLC control" state.

5. Status Word 1 (ZSW1) Bit Definitions

The status word reports the drive's actual operating state. Bits 0..3 and bit 6 indicate the run state, bit 5 indicates that OFF2/OFF3 are inactive, bit 7 indicates an active warning, and bit 15 returns a general "ready to operate" indication.

Bit Mnemonic Function
0 Ready to switch on 1 = main contactor may close, all prerequisites met
1 Ready to operate 1 = DC bus charged, no fault, ready to receive ON
2 Operation enabled 1 = pulses enabled, motor follows setpoint
3 Fault present 1 = drive is in fault state
4 OFF2 active 0 = coast stop commanded or in progress
5 OFF3 active 0 = fast stop commanded or in progress
6 Switch-on inhibit 1 = drive must be reset before a new ON command
7 Warning active 1 = a non-fatal warning is present (see r953)
8 Speed deviation 1 = setpoint/actual difference outside P236 window
9 Control request 1 = PLC has control of the drive (echo of STW bit 10)
10 f / n reached 1 = actual speed within tolerance band of setpoint
11 Current / torque limit 1 = drive operating at torque or current limit
12 Brake release 1 = holding brake released (when configured)
13 Motor overload 1 = I²t warning
14 Motor CW rotation 1 = motor rotating clockwise
15 Fieldbus OK 1 = CBP2 in cyclic exchange with PLC

6. Speed Setpoint and Actual Speed Encoding

The setpoint (PZD2 OUT) and actual value (PZD2 IN) use the Masterdrive 16-bit normalized representation:

  • 0x4000 (16384 dec) = 100 % of the reference speed (P352 — default motor rated speed).
  • 0x2000 (8192 dec) = 50 % of reference speed.
  • 0x1000 (4096 dec) = 25 % of reference speed.
  • 0x0000 = 0 % (zero speed reference).
  • 0xC000 (-16384 dec two's complement) = -100 % (full reverse).

The actual speed is read back in the same normalization. The 16-bit value is a signed two's-complement integer. The sign bit is bit 15 (high bit); values 0x0000..0x7FFF are positive, 0x8000..0xFFFF are negative.

Hex (PZD2) Decimal (signed) % of ref. speed Notes
0x4000 +16384 +100 % Max forward speed (full-scale positive)
0x2000 +8192 +50 % Half forward speed
0x0000 0 0 % Zero speed reference
0xE000 -8192 -50 % Half reverse speed
0xC000 -16384 -100 % Max reverse speed

The reference value is computed as:

f_motor [Hz] = (PZD2 / 16384) × f_max [Hz]

where f_max is the maximum frequency set in drive parameter P352 (reference frequency) and PZD2 is interpreted as signed 16-bit. The actual speed returned in PZD2 IN uses the same formula in reverse:

PZD2 = round((f_actual [Hz] / f_max [Hz]) × 16384)

7. Start, Stop, and Direction Command Sequences

The Masterdrive uses a state-machine-based command sequence identical to the PROFIdrive application class 1 profile. The PLC must drive the control word through a defined sequence of states to start or stop the drive. The state transitions are governed by the state machine defined in the Compendium chapter on the control word.

7.1 Clockwise (Forward) Start

  1. Write the desired speed setpoint to PQW538 (e.g. L W#16#4000; T PQW 538).
  2. Write W#16#047E to PQW536 (OFF2=1, OFF3=1, no ON, no enable — "ready, not running").
  3. On a rising edge of bit 0, write W#16#047F to PQW536 (bit 0=1, bit 3=enable, bit 10=PLC control). The drive accelerates along the ramp (P462/P463) to the setpoint.

7.2 Counter-Clockwise (Reverse) Start

  1. Write the speed setpoint to PQW538. For pure reverse, use a positive setpoint plus the direction bit. For negative setpoint, set the setpoint to 0xC000 (or any negative value).
  2. Write W#16#047E to PQW536 to put the drive in the "ready" state.
  3. Write W#16#447F to PQW536 (bit 10=1, bit 11=1, bit 0=1, bit 3=1) to start in reverse.

7.3 Normal Stop (OFF1, ramp stop)

  1. Write W#16#047E to PQW536 (clear bit 0 only; keep bit 3, bit 10 set). The drive ramps down to zero on the configured deceleration ramp and then enters "ready" state.

7.4 Coast Stop (OFF2)

  1. Write W#16#043E to PQW536 (clear bit 1 = OFF2 active). The inverter pulses are inhibited and the motor coasts to a stop.

7.5 Fast Stop (OFF3)

  1. Write W#16#047B to PQW536 (clear bit 2 = OFF3 active). The drive decelerates along the OFF3 ramp (P464).

7.6 Fault Reset

  1. Once ZSW1 bit 3 = 1 (fault present), write W#16#047E to clear all command bits, then write W#16#04FE to set bit 7 (acknowledge) for one cycle. The drive clears the fault buffer and returns to "switch-on inhibit" state, then to "ready" after the next 0→1 transition on bit 0.
Action Control Word (STW1) Conditions
Ready (no run) 0x047E OFF2=1, OFF3=1, ON=0, ENABLE=0, PLC=1
Start CW 0x047F Add ON=1 and ENABLE=1
Start CCW 0x447F Add reverse (bit 11) and ON, ENABLE
Stop (OFF1) 0x047E Clear ON bit (bit 0 = 0)
Coast stop (OFF2) 0x043E Clear OFF2 (bit 1 = 0)
Fast stop (OFF3) 0x047B Clear OFF3 (bit 2 = 0)
Fault reset 0x04FE Set bit 7 (ack) for one cycle

8. S7 Program Implementation Without a Vendor FC

The following code snippets show the minimum S7 ladder required to drive a Masterdrive with PPO3, using only the MOVE instruction. No FC, FB, SFC, or SFB is required.

OB1 — Read actual speed into MW3056 and status word into MW252:

NETWORK 1   // Status word assembly
      L     PIB 713          // ZSW low byte (bits 0..7) → MB250
      T     MB 250
      L     PIB 712          // ZSW high byte (bits 8..15) → MB251
      T     MB 251

NETWORK 2   // Actual speed
      L     PIW 714          // NIST (actual speed) 16-bit signed
      T     MW 3056          // Process value

NETWORK 3   // Control word → drive (STW1, big-endian output)
      L     MW 252           // MB252 holds bits 0..7, MB253 holds bits 8..15
      T     PQW 536          // PQB536..PQB537 carry STW1

NETWORK 4   // Speed setpoint → drive
      L     MW 1540          // Setpoint word (0x4000 = 100%)
      T     PQW 538          // PQB538..PQB539 carry NSOLL

OB100 / OB1 — Initialize to safe state on startup:

NETWORK 1   // Initial control word = 0x047E (ready, no run)
      L     W#16#047E
      T     MW 252
NETWORK 2   // Initial setpoint = 0
      L     0
      T     MW 1540

Start pushbutton (I 0.0) and stop pushbutton (I 0.1):

NETWORK 1   // Start sequence (rising edge on start button)
      A     I 0.0            // Start button (NO)
      FP    M 100.0          // Edge flag
      JCN   NOST
      L     W#16#047F        // ON, ENABLE, PLC, OFF2/3
      T     MW 252
NOST: NOP 0

NETWORK 2   // Stop sequence
      A     I 0.1            // Stop button (NC)
      JCN   NOSTP
      L     W#16#047E        // Clear ON bit
      T     MW 252
NOSTP: NOP 0

Direction toggle (I 0.2) — selects CW or CCW:

NETWORK 1   // Direction bit (bit 11 of STW1 = 0x0800)
      A     I 0.2
      JCN   NOCCW
      L     W#16#447F        // CCW start pattern
      T     MW 252
      JU    CONT
NOCCW: L    W#16#047F        // CW start pattern
      T     MW 252
CONT:  NOP 0

9. Commissioning Procedure

  1. Wire the drive — confirm motor U/V/W, line input L1/L2/L3, brake resistor if used, and PE. Apply control voltage to the CBP2 slot.
  2. Set the Profibus address on the CBP2 using the PMU (parameter P722). Default = 3. Set the baud rate (P721) to Auto or to a fixed value matching the Profibus configuration.
  3. Configure HW Config with the correct PPO3 slot and download to the CPU. The slave must reach the cyclic data exchange state (DX). If the slave shows slave not found, check the address and the GSD file version.
  4. Set control source — parameter P368 must be set to the source of the control word. For PPO3 with CBP2, P368 = 4 selects the CBP2 as the command source (this is the typical PROFIdrive setting).
  5. Set setpoint source — parameter P443 selects the main setpoint. For Profibus, P443 = 4 selects the CBP2 main setpoint.
  6. Load the default parameters with P970 = 0 (factory reset) and re-apply motor data from P100..P110.
  7. Run the no-load test from the S7 program: write 0x047E (ready), then 0x047F (start) with setpoint 0x1000 (25 %). Confirm in the VAT table that PIW714 returns a non-zero value and that the motor turns at the correct speed.
  8. Verify the status word: after start, ZSW1 bit 2 (Operation enabled) must be 1; after stop, bit 2 must be 0 and bit 1 (Ready to operate) must be 1.
  9. Check the byte order in a VAT: if PIW712 reads 0x0231 but MW252 reads 0x3102, the byte order is consistent with big-endian Profibus — this is normal and correct. If MW252 reads 0x0231 instead, the program is inverting the bytes and a correction is required.
Safety: Always confirm that the drive's STO (safe torque off) and any external emergency stop are wired independently of the Profibus control word. Do not rely on a Profibus-controlled OFF2/OFF3 as a safety function. EN 60204-1 and EN ISO 13849-1 require the safety stop to be hard-wired.

10. Troubleshooting Matrix

Symptom ZSW1 Reading Likely Root Cause Remediation
Drive does not start with 0x047F Bit 1 = 0 (not ready) Main contactor not closed, DC bus not charged, line voltage missing Check line, check pre-charge, check P600 line monitoring
Drive does not start with 0x047F Bit 0 = 0, Bit 6 = 1 (switch-on inhibit) Previous OFF2 or fault not cleared Send 0x047E first, then 0x047F on a rising edge
Motor runs at full speed regardless of setpoint Any P443 (setpoint source) not set to CBP2 (value 4) Change P443 = 4 and re-commission
Drive does not start with 0x047F Bit 15 = 0 (fieldbus not OK) Profibus cyclic exchange not established Check CBP2 LED, check GSD, check address match
Drive does not start with 0x047F Bit 3 = 1 (fault present) Active fault, e.g. F002 pre-charge, F006 line undervoltage, F011 overcurrent Read r947 fault number, clear with P951, send fault acknowledge (bit 7) on 0x047E
Setpoint scaling is wrong (motor at 2x setpoint) ZSW1 = 0x0231, ZSW1.bit 10 = 1 (f reached) Wrong reference parameter, P352 set to half of expected speed Set P352 to motor rated speed, recalculate setpoint scaling
Motor does not reverse with 0x447F Bit 11 = 1 in STW but motor still CW Direction reverse BICO not wired, or setpoint already positive 0x4000 Use negative setpoint 0xC000 OR keep positive setpoint and check P571 (setpoint inversion)
Setpoint writes but actual speed = 0 ZSW1.bit 2 = 1 but PIW714 = 0 Encoder not connected, or feedback not configured (P130/P140) Check encoder wiring, check P130 encoder type, check P140 slip compensation
Diagnostic LED on CBP2 = red ZSW1.bit 15 = 0 Profibus slave diagnostic — configuration mismatch Compare PPO type in drive to HW Config slot, check vendor ID

11. Differences from PPO5 / PPO6 and PPO1

PPO3 is the minimum PPO size; PPO1 adds a 4-word PKW parameter channel (8 words total), PPO5 adds 2 PKW + 6 PZD, and PPO6 adds 4 PKW + 6 PZD. For applications that need extra status (e.g. actual torque, DC-bus voltage, motor current) without using PKW, switch to PPO4 (no PKW, 6 PZD) or PPO6 with a 4-word PKW plus 6 PZD. The control word (STW1) and status word (ZSW1) always remain the first PZD word in each direction regardless of the PPO type, so the code in section 8 continues to work in PPO4/PPO5/PPO6 without change.

12. Verification Checklist

  • ✓ CBP2 LED is green (cyclic exchange)
  • ✓ HW Config shows the PPO3 slot at the expected I/O addresses
  • ✓ Drive parameter P368 = 4 (command source = CBP2)
  • ✓ Drive parameter P443 = 4 (setpoint source = CBP2)
  • ✓ OB100 initializes MW252 = 0x047E and MW1540 = 0x0000
  • ✓ Rising edge on STW1 bit 0 transitions the drive from Ready to Operation enabled
  • ✓ PIW714 returns the correct actual speed in 0x4000 = 100% normalization
  • ✓ ZSW1 bit 3 = 0 during normal operation, bit 3 = 1 only on a fault
  • ✓ STO and emergency stop are wired independently of the Profibus

What does PPO3 mean on a Simovert Masterdrive?

PPO3 (Parameter Process Data Object type 3) is the smallest PROFIdrive-compatible cyclic telegram supported by Masterdrive. It carries 0 PKW words and 2 PZD words per direction, giving 4 words of I/O. PZD1 is always the control or status word, PZD2 is always the main setpoint or actual value.

Why are PIB 712 and PIB 713 swapped in the S7 program?

PROFIBUS transmits words big-endian: the high byte of a 16-bit value appears at the lower byte address. To assemble the status word into a flag word in the natural Siemens bit-numbering convention (bit 0 in the LSB), the program reads PIB 713 (low Profibus byte, low eight bits) into MB 250 and PIB 712 (high Profibus byte, high eight bits) into MB 251. The control word output reverses the order to compensate.

What hex value starts the drive clockwise?

Write 0x047E to PQW536 first to put the drive in the Ready state, then 0x047F on a rising edge to start clockwise. 0x047F sets ON (bit 0), ENABLE (bit 3), PLC control (bit 10), and keeps OFF2/OFF3 inactive. For counter-clockwise operation, use 0x447F (adds bit 11, the reverse bit).

How is the speed setpoint encoded?

The setpoint and actual-value words use 16-bit signed two's-complement normalization with 0x4000 (= +100 % of P352 reference frequency) as full-scale positive, 0x0000 as zero, and 0xC000 (= -100 %) as full-scale reverse. Actual motor speed in Hz is (PZD2 / 16384) × P352.

Why does the drive not start even with the correct control word?

Check that ZSW1 bit 1 (Ready to operate) is 1 and bit 6 (Switch-on inhibit) is 0. If bit 6 is 1, send 0x047E first to leave the inhibit state. If bit 3 (Fault) is 1, read r947 to identify the fault, clear it with P951, and send a fault-acknowledge sequence (0x047E then 0x04FE for one cycle). Also confirm that P368 = 4 and P443 = 4 in the drive so that the CBP2 is selected as the source of commands and setpoints.

Back to blog