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.
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:
- Open HW Config and place the CBP2 from the Masterdrive GSD at the desired Profibus address (default 3..126).
- 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).
- 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.
- Download the HW Config to the CPU and confirm in the diagnostic buffer that the slave is in cyclic data exchange (DX).
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
- Write the desired speed setpoint to PQW538 (e.g.
L W#16#4000; T PQW 538). - Write
W#16#047Eto PQW536 (OFF2=1, OFF3=1, no ON, no enable — "ready, not running"). - On a rising edge of bit 0, write
W#16#047Fto 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
- 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).
- Write
W#16#047Eto PQW536 to put the drive in the "ready" state. - Write
W#16#447Fto PQW536 (bit 10=1, bit 11=1, bit 0=1, bit 3=1) to start in reverse.
7.3 Normal Stop (OFF1, ramp stop)
- Write
W#16#047Eto 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)
- Write
W#16#043Eto PQW536 (clear bit 1 = OFF2 active). The inverter pulses are inhibited and the motor coasts to a stop.
7.5 Fast Stop (OFF3)
- Write
W#16#047Bto PQW536 (clear bit 2 = OFF3 active). The drive decelerates along the OFF3 ramp (P464).
7.6 Fault Reset
- Once ZSW1 bit 3 = 1 (fault present), write
W#16#047Eto clear all command bits, then writeW#16#04FEto 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
- 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.
- 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.
- 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.
- 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).
- Set setpoint source — parameter P443 selects the main setpoint. For Profibus, P443 = 4 selects the CBP2 main setpoint.
- Load the default parameters with P970 = 0 (factory reset) and re-apply motor data from P100..P110.
- 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.
- 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.
- 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.
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.