Re-Programming a Siemens SIMOVERT Masterdrives VC Control Board via PROFIBUS SFC14/SFC15
This field reference covers the complete re-commissioning procedure for a Siemens SIMOVERT Masterdrives Vector Control drive that has lost its control board parameters and must be reloaded from a STEP 7 S7-300/S7-400 master using cyclic PROFIBUS DP communication. The drive model in scope is the compact unit 6SE7021-0EA61-Z (11.2 A, 480 V in / 480 V out), running software release V3.32. The same methodology applies to the wider 6SE70 series when the same control board (CUMC, CUVC) and PPO type are used.
The official Operating Instructions for the SIMOVERT MASTERDRIVES Vector Control (software release V3.32) is the primary documentation source for parameter numbers, ranges, and PPO types referenced throughout this article. SIMOVERT MASTERDRIVES Vector Control - Operating Instructions (V3.32).
.dnl parameter file is the canonical backup artifact. If the original .dnl cannot be obtained from the OEM, parameters must be re-entered manually or reconstructed from the S7 data block (DB) layout.1. Hardware Identification and Software Release
Before any parameter write is attempted, confirm the unit is the drive you think it is. The 6SE7021 ordering key decodes as follows:
| Field | Value | Meaning |
|---|---|---|
| 6SE70 | 21 | Compact series, frame size A, 11 A / 7.5 kW class |
| 0E | 0E | Vector Control firmware class (CUVC control board) |
| A61 | A61 | 480 V input, 480 V output, 3-phase |
| Z | Z | Customer-specific option suffix (variant code) |
Check the firmware version of the CUVC control board by reading parameter r060 (Software version) and r061 (Software generation) on the PMU panel or via DriveMonitor. The V3.32 release described in the official manual is the only release for which the parameter numbers and fieldbus mapping in this article are fully validated. Older V1.x, V2.x, or V3.1 firmware uses different parameter numbers and PPO types - do not cross-load a .dnl across major firmware boundaries without verifying each parameter.
The CUVC control board is the one that holds the PROFIBUS slave address, the PPO type, and the parameter set. The factory *.dnl file is normally written to non-volatile memory on this board. If the board was replaced, the file is lost. The rest of this article walks through the recovery path.
2. PROFIBUS PPO Architecture
SIMOVERT Masterdrives use the Variable-Speed Drive (VSD) profile and a fixed Parameter Process Data Object (PPO) telegram between the SIMATIC S7 master and the drive. There are five PPO types. The drive must be told which one to expect via parameter P091 (CB parameter, PPO type) on the PROFIBUS option board (CBP/CBP2).
| PPO Type | PKW Words (in/out) | PZD Words (out / in) | Total Words | Typical Use |
|---|---|---|---|---|
| PPO 1 | 4 / 4 | 2 / 2 | 12 | Parameter access + 2 process words |
| PPO 2 | 4 / 4 | 6 / 6 | 20 | Parameter access + 6 process words |
| PPO 3 | 0 / 0 | 2 / 2 | 4 | Process data only |
| PPO 4 | 0 / 0 | 6 / 6 | 12 | Process data only |
| PPO 5 | 4 / 4 | 10 / 10 | 28 | Parameter access + 10 process words |
The SFC15 call in the source uses LADDR = W#16#140 and a 20-byte record (P#DB16.DBX20.0 BYTE 20). 20 bytes = 10 words, which matches PPO Type 1 (4 PKW + 2 PZD each direction -> 12 words / 24 bytes total round-trip) ONLY if the SFC15 is writing only the PZD portion of a PPO1 frame; however, the byte count of 20 in the call corresponds more closely to a PPO1 PZD-only write (2 words = 4 bytes) being too small, so the layout is more consistent with the PZD portion of PPO 4 (6 PZD words = 12 bytes output, 12 bytes input -> 24 bytes). The most common configuration for the 6SE7021-0EA61 with a CBP2 board and S7-300 master is PPO 4, which provides 6 PZD words each direction and no PKW. Confirm by reading P091 via DriveMonitor or PMU. If P091 reports 4, you are using PPO 4; if it reports 1, the byte count in the SFC15 call must be re-examined because the SFC call length must exactly match the configured PPO word count.
W#16#8090 (logical base address invalid) or W#16#8092 (length field error) if the RECORD length does not match the PPO type. The byte count must be 4 * (PKW + PZD) per direction. For PPO 4, SFC14 reads 12 bytes and SFC15 writes 12 bytes. Adjust the source DB16 record length to match before the drive will accept data.3. SFC14 and SFC15 Configuration
The S7 master uses the standard PROFIBUS DP read/write system function blocks to exchange data with the drive's CBP2 module. The example in the source uses LADDR W#16#140 = 320 decimal, which is the diagnostic base address of the slave. The SFC call signatures are:
SFC14 - DPRAM Read (DP-Slave -> S7)
CALL SFC 14 // "DPRD_DAT"
LADDR := W#16#140 // DP slave diagnostic address
RET_VAL := MW100 // SFC return code (0 = OK)
RECORD := P#DB16.DBX 0.0 BYTE 12 // 12-byte target buffer (PPO4 input)
SFC15 - DPRAM Write (S7 -> DP-Slave)
CALL SFC 15 // "DPWR_DAT"
LADDR := W#16#140 // DP slave diagnostic address
RECORD := P#DB16.DBX20.0 BYTE 12 // 12-byte source buffer (PPO4 output)
RET_VAL := MW102 // SFC return code (0 = OK)
The SFC15 call in the source data uses P#DB16.DBX20.0 BYTE 20. This 20-byte length does not match any standard PPO exactly. Two interpretations are possible and must be resolved by inspecting the HW Config of the source project:
- The HW Config slot is configured as a combined PZD area, and the 20-byte figure is a residual from a PPO 2 or PPO 5 setup that was simplified during rebuild. In that case, reset the SFC15 length to 12 (PPO 4) or 20 (PPO 2) and re-verify.
- The SFC call originally wrote a 20-byte block that includes 4 PKW header words (8 bytes) plus 6 PZD words (12 bytes), matching PPO 2. In that case the PPO type is 2, not 4.
Resolve this ambiguity by reading P091 on the drive with DriveMonitor. The PKW area can be left as zeros for PPO 2 if the master does not need parameter access at runtime.
4. Process Data (PZD) Layout in DB16
For PPO 4 with 6 PZD words each direction, the 12-byte input and 12-byte output records map into the STEP 7 data block as follows. The exact starting offset depends on whether PKW is present; the example below assumes PPO 4 (no PKW):
| DB16 Byte Offset | Word | Direction | Content |
|---|---|---|---|
| 0.0 - 1.0 | DBW0 | S7 -> Drive (PZD OUT 1) | Control Word 1 (STW1) |
| 2.0 - 3.0 | DBW2 | S7 -> Drive (PZD OUT 2) | Main setpoint (HSW) |
| 4.0 - 5.0 | DBW4 | S7 -> Drive (PZD OUT 3) | Control Word 2 (STW2) - optional |
| 6.0 - 7.0 | DBW6 | S7 -> Drive (PZD OUT 4) | Supplementary setpoint |
| 8.0 - 9.0 | DBW8 | S7 -> Drive (PZD OUT 5) | Free / unused |
| 10.0 - 11.0 | DBW10 | S7 -> Drive (PZD OUT 6) | Free / unused |
| 12.0 - 13.0 | DBW12 | Drive -> S7 (PZD IN 1) | Status Word 1 (ZSW1) |
| 14.0 - 15.0 | DBW14 | Drive -> S7 (PZD IN 2) | Main actual value (HIW) |
| 16.0 - 17.0 | DBW16 | Drive -> S7 (PZD IN 3) | Status Word 2 (ZSW2) - optional |
| 18.0 - 19.0 | DBW18 | Drive -> S7 (PZD IN 4) | Supplementary actual value |
| 20.0 - 21.0 | DBW20 | Drive -> S7 (PZD IN 5) | Free / unused |
| 22.0 - 23.0 | DBW22 | Drive -> S7 (PZD IN 6) | Free / unused |
For PPO 1 (4 PKW + 2 PZD), the offset shifts: PKW occupies bytes 0..7, PZD OUT 1 starts at byte 8, PZD IN 1 starts at byte 8 of the read area. The 20-byte write of SFC15 in the source can be a PPO 1 PZD write (2 PZD words = 4 bytes output only, with 4 PKW words = 8 bytes in front) and a 12-byte read (2 PZD words = 4 bytes + 4 PKW words = 8 bytes), giving a 20/12 asymmetric SFC call - this is also a possibility and should be ruled out by reading P091.
5. Control Word 1 (STW1) Bit Assignments
STW1 is the primary on/off and operating-mode selector. The bit numbering below is the Siemens PNO profile (bit 0 = LSB). Default source is P554 (bit 0), P555 (bit 1), etc., when the control source is fieldbus.
| Bit | Mnemonic | Function | Parameter Source |
|---|---|---|---|
| 0 | ON / OFF1 | Rising edge closes output stage (with bit 3 = 1 and bit 10 = 0) | P554 |
| 1 | OFF2 (coast stop) | 0 = immediate pulse inhibit, 1 = enable | P555 |
| 2 | OFF3 (fast stop) | 0 = fast stop on ramp, 1 = enable | P556 |
| 3 | Enable (pulse enable) | 0 = inhibit, 1 = enable | P557 |
| 4 | Ramp enable | 0 = ramp freeze, 1 = ramp active | P558 |
| 5 | Ramp hold | 0 = ramp continues, 1 = ramp setpoint frozen | P559 |
| 6 | Setpoint enable | 0 = setpoint zero, 1 = setpoint released | P560 |
| 7 | Acknowledge fault | Rising edge resets fault (0 -> 1) | P561 |
| 8 | Jog 1 | Jog via fixed setpoint 1 | P562 |
| 9 | Jog 2 | Jog via fixed setpoint 2 | P563 |
| 10 | Control by PLC | 1 = control words valid, 0 = control by PMU/terminals | P564 |
| 11 | Direction reversal | 1 = reverse (setpoint sign inverted) | P565 |
| 12 | Reserved | - | - |
| 13 | Motor potentiometer raise | 1 = ramp up internal MOP | P566 |
| 14 | Motor potentiometer lower | 1 = ramp down internal MOP | P567 |
| 15 | Reserved | - | - |
The minimum STW1 sequence to run the drive from PLC is STW1 = 16#047E then transition bit 0 from 0 to 1: bit 10 = 1 (PLC control), bit 7 = 1 (no fault), bit 6 = 1 (setpoint enabled), bit 5 = 1 (ramp active), bit 4 = 1 (ramp enabled), bit 3 = 1 (pulse enable), bits 1, 2 = 1 (no OFF2/OFF3). That is decimal 1150 -> hex 0x047E. Setting bit 0 brings it to 0x047F = 1151 and the drive runs the setpoint sent in HSW.
6. Status Word 1 (ZSW1) Bit Assignments
ZSW1 is the drive's reply. The bit meanings in PPO word 1 are:
| Bit | Mnemonic | Function when = 1 |
|---|---|---|
| 0 | Ready to switch on | Main contactor close enabled |
| 1 | Ready to operate | DC bus OK, no inhibit |
| 2 | Operation enabled | Output stage firing, motor fluxed |
| 3 | Fault present | See r947 / r949 fault buffer |
| 4 | OFF2 active | Coast stop commanded |
| 5 | OFF3 active | Fast stop commanded |
| 6 | Switch-on inhibit | Restart requires STW bit 0 edge |
| 7 | Warning present | See r931 / r932 warning buffer |
| 8 | Setpoint/actual deviation | Speed outside tolerance window (P452/P453) |
| 9 | Control requested | PLC has control (STW bit 10) |
| 10 | f or n reached reference | Within reference window |
| 11 | Current limit reached | Drive in current limit |
| 12 | Motor holding brake | Brake released / applied state |
| 13 | Motor overload | Thermal warning |
| 14 | Motor direction | 1 = reverse, 0 = forward |
| 15 | Power section active | Inverter pulses on |
A drive that is healthy and idle reports ZSW1 = 0x0631 = 1585 (bits 0, 1, 4, 5, 8, 9 set, with the run bit 2 = 0 because it has not yet received the ON command). When the run bit is on, ZSW1 transitions to 0x0E37 = 3639. These are the expected baseline values for verification.
7. Setpoint and Actual Value Encoding (HSW / HIW)
HSW (Hauptsollwert, main setpoint) and HIW (Hauptistwert, main actual value) are normalized to 4000 hex = 100 % of the reference speed defined by P351 (reference speed) or P357 (reference frequency) depending on operating mode. The drive's PROFIBUS scaling must be matched to the S7 engineering:
- 4000 hex = 100 % of reference
- 7FFF hex = +199.99 % of reference
- 8000 hex = -200.00 % of reference (sign-magnitude: -100 % = C000 hex)
- Resolution: 0.0061 % per LSB
If the PLC sends raw RPM in 1/100 RPM units, you must add a scaling FC between DB16 and the SFC15 call:
// Example: convert RPM (REAL) to normalized HSW (INT)
// Reference speed P351 = 1500 RPM, scaling 4000h = 100 % = 1500 RPM
L DB16.DBD 4 // raw setpoint as REAL, e.g. 750.0 RPM
L 1.6384e+04 // 4000h = 16384 decimal
/R // = 0.5
RND // 8192 = 2000h = 50 %
T DB16.DBW 2 // write to HSW slot
8. Parameter Mapping From DB16 to Drive Pxxx
The 20-byte / 12-byte process image in DB16 carries the control path, not the parameter path. Drive parameters (P001..r398, U950..) are configured via DriveMonitor and persist on the CUVC. The PLC only writes the STW and HSW during operation. To recreate the parameter set, you must know the source values of every Pxxx the original commissioning engineer entered.
The most important parameters to recover, in the order the V3.32 manual recommends for a re-commissioning, are:
| Parameter | Function | Typical Value (11.2 A / 480 V) |
|---|---|---|
| P060 | Parameter set selection (0=basic, 1=fixed, 2=modular, 3=funct. spare) | 3 (restore functional parameters) |
| P070 | CUVC application macro | Standard V/f = 0; Vector = 5 |
| P071 | Line voltage (rms, V) | 480 |
| P095 | Motor type (1=induction, 2=synchronous) | 1 |
| P100 | Open/closed loop control mode | 3 (closed-loop speed, vector) |
| P101 | Rated motor voltage (V) | 460 / 480 |
| P102 | Rated motor current (A) | Nameplate |
| P104 | Rated motor power factor cos phi | 0.85 - 0.90 |
| P107 | Rated motor frequency (Hz) | 50 / 60 |
| P108 | Rated motor speed (RPM) | Nameplate |
| P109 | Number of motor pole pairs | 2 (for 4-pole 60 Hz) |
| P351 | Reference speed (RPM, 100 % scaling) | Match motor rated speed |
| P452 | n/f tolerance window upper (%) | 5.0 |
| P453 | n/f tolerance window lower (%) | 5.0 |
| P462 | Ramp-up time (s) | 10.0 |
| P464 | Ramp-down time (s) | 10.0 |
| P554..P567 | STW1 bit source selection | Set to 2000 series: P554=2000, P555=2001, ... (STW1 fieldbus) |
| P590..P599 | BICO source for ZSW bits | 5100 series: P590=5100 (ZSW1 bit source) |
| P091 | PPO type on CBP2 | 1, 2, 3, 4 or 5 (must match HW Config) |
| P918 | CBP2 PROFIBUS node address | Match HW Config slave address |
To make the STW bits sourced from the PROFIBUS PZD word, the parameters P554 through P567 must be set to the BICO connectors 2000 (STW1 bit 0) through 2015 (STW1 bit 15). The default factory value of these parameters is a terminal or PMU source, which is why a recovered drive with stock parameters will not respond to the PLC until the BICO connectors are re-routed.
9. Step-by-Step Re-Commissioning Procedure
Prerequisites
- DriveMonitor V5.x installed on a Windows PC with an RS232 serial cable to the CUVC X500 service port (use a Siemens 6SE7090-0XX84 cable or pin-compatible null-modem cable; DriveMonitor baud default 9600 8N1 on CUVC, optionally switched to 19200 / 38400 via DriveMonitor settings).
- STEP 7 project with the original HW Config and the original DB16 layout loaded on the programming device.
- The V3.32 Operating Instructions open in parallel for parameter reference.
- Motor nameplate data available.
- PROFIBUS cable installed and terminated.
Step 1: Power up the drive and read identification
- Apply 480 V three-phase to L1/L2/L3. The CUVC PMU should display
0.0after the self-test. If it shows a fault, record F-code and consult the fault table in the V3.32 manual. - Connect DriveMonitor, go online, and read
r060(firmware),r061(firmware generation),P091(PPO type),P918(PROFIBUS address). - Read all of the current Pxxx values and save them as
factory_state.dnlto a known folder.
Step 2: Restore the drive parameters
- If an OEM-supplied
.dnlfile is available, use DriveMonitor Restore -> Parameter Set to load it. - If no
.dnlis available, enter the parameters from the table in section 8 and from any documentation on the motor and application. Always click Save to EEPROM after each parameter block in DriveMonitor, otherwise changes are lost on the next power-down. - Set P060 to 0 (basic parameters) first, then to 3 (functional parameters) when you are ready to write application-specific BICO and process data routing.
Step 3: Configure the BICO routing for STW and ZSW
- Set P554..P567 to the STW1 connector range 2000..2015. This connects the first PZD word output from the CBP2 to the drive's control logic.
- Set P590..P599 (where supported) to the ZSW1 connector range 5100..5115 to route the first PZD input word to the status feedback.
- If the original code uses setpoint selection from PZD, set the setpoint source parameter (typically P443 or P444) to the HSW connector
2002(PZD word 2).
Step 4: Match the PPO type to HW Config
- Set P091 to the PPO type that matches the STEP 7 HW Config slot configuration. The HW Config slot's input/output length (configured bytes) must equal
4 * (PKW + PZD)per direction. - If P091 is changed, the drive must be power-cycled before the CBP2 will accept the new telegram length.
Step 5: Match the PROFIBUS address
- Set P918 to the slave address configured in the STEP 7 hardware configuration (commonly 3, 4, or 5 on Masterdrives installations).
- Cycle control power to the drive so the CBP2 adopts the new address.
Step 6: Run the SFC14/SFC15 cyclic exchange
- Set DB16.DBW0 (STW1) to
0x047E(1150) initially - everything except bit 0 = ON. - Set DB16.DBW2 (HSW) to
0x0000(zero setpoint). - Set DB16.DBW12 (ZSW1 readback) and DB16.DBW14 (HIW) will be updated by SFC14. Verify ZSW1 =
0x0631(ready, not running). - Toggle bit 0 of STW1 from 0 to 1. ZSW1 should transition to
0x0E37within a few PROFIBUS cycles. The drive is now in operation with zero setpoint. - Increment HSW to
0x2000(50 % of reference). The motor should accelerate along the P462 ramp.
Step 7: Run an auto-tune pass
- Trigger the motor identification routine from DriveMonitor (typically P115 = 1 to start stationary measurement, or P115 = 2 for rotating measurement). The motor must be free to rotate without load for the rotating pass.
- Save the new parameters to EEPROM when the routine completes.
10. Verification Checklist
After the re-commissioning, verify each item before returning the line to production:
| Check | Method | Expected Result |
|---|---|---|
| PROFIBUS communication | STEP 7 online -> Monitor/Modify -> module status | No SF/DP fault on slave |
| STW1 acceptance | Read ZSW1 after PLC sets STW1 = 0x047F | ZSW1 = 0x0E37 (operation enabled) |
| Setpoint acceptance | Set HSW = 0x2000, read HIW after ramp | HIW settles at 0x2000 (or proportional to actual speed) |
| Direction | Set STW1 bit 11 = 1, verify ZSW1 bit 14 = 1 | Direction bit toggles |
| Fault free | Read r947/r949 in DriveMonitor | Empty fault buffer |
| EEPROM save | DriveMonitor File -> Save to EEPROM | No errors reported |
| Ramp times | Step HSW from 0 to 0x4000, time the speed | Matches P462 and P464 |
| Current limit | Read r019 (line current) under load | Below P110 / motor rated |
| Thermal | Read r013 (motor temperature) and r012 (heat sink) | Within ratings |
11. Common Errors and Recovery
| Symptom | Probable Cause | Remedy |
|---|---|---|
| Drive does not start, ZSW1 stuck at 0x0631 | STW1 bit 10 not set, BICO connectors P554..P567 not pointed to 20xx range | Set STW1 bit 10 = 1, re-route P554..P567 to 2000..2015 |
| SFC15 returns 0x8090 | LADDR does not match HW Config diagnostic address | Cross-check W#16#140 against the slave's configured diagnostic address in HW Config |
| SFC15 returns 0x8092 | Record length mismatch | Match RECORD length to PPO type (4 bytes / 12 bytes / 20 bytes / 28 bytes) |
| Drive runs, but speed is wrong by 1/2 | HSW scaling set to 50 Hz reference but P351 = 60 Hz | Set P351 (reference speed) to match the PLC's 100 % scaling |
| Drive trips F015 (PROFIBUS failure) | PPO type changed at drive but not in STEP 7 | Match P091 to HW Config, power cycle drive |
| Drive trips F023 (output phase missing) | Motor not connected, or current sensor failure | Verify motor wiring U2/V2/W2; check r011 for current |
| Drive trips F029 (encoder failure) | Encoder parameter P130 set but no encoder wired, or wrong PPR | Set P130 = 0 (no encoder) or correct P151 PPR |
| ZSW1 bit 7 (warning) sticks on | Motor overload, motor thermal model tripped | Check r013 motor temperature, check P101/P102 against nameplate |
| STW1 toggles but motor does not move | Setpoint source still on terminal/PMU, not PZD | Set P443 (setpoint source) to 2002 (PZD word 2) |
12. When to Call the OEM
If the original .dnl cannot be reconstructed from project documentation and the motor/process parameters are unknown, the original machine builder should be the first call. Most OEMs retain a parameter backup for ten or more years. The CUVC control board's EEPROM is physically small; if the original board is still accessible, DriveMonitor can read it and produce a .dnl directly. This is the lowest-risk recovery path.
Re-creating the parameter file from a print-out, the S7 DB, and the motor nameplate is feasible but time-consuming. Allow half a day for a moderately complex BICO setup, plus a controlled ramp test before returning the line to production.
Frequently Asked Questions
Which PPO type should I use with a 6SE7021-0EA61-Z and SFC14/SFC15?
PPO 4 is the most common for the 6SE7021-0EA61-Z with a CBP2 board and no runtime parameter access: 6 PZD words each direction, no PKW. Read P091 on the drive to confirm; set the STEP 7 HW Config slot length to 12 bytes each direction to match. If the SFC15 RECORD length in your code is 20 bytes, the slave is configured for PPO 2 or PPO 5 and you must harmonize P091 and the HW Config before data will be accepted.
The SFC15 RECORD is P#DB16.DBX20.0 BYTE 20 - what does that length mean?
20 bytes = 10 words, which only matches PPO 5 (4 PKW + 10 PZD = 14 words = 28 bytes round-trip) on the output half - 20 is the output PZD portion (10 PZD words) WITHOUT the PKW header. More likely the original code was written for a PPO 1 or PPO 4 frame and the length was an off-by-one error. Verify P091 with DriveMonitor, then set the RECORD length to exactly match the PPO type (4, 12, 20, or 28 bytes).
How do I make the drive accept control commands from the PLC over PROFIBUS?
Set STW1 bit 10 = 1 in the first PZD output word (DBW0 in DB16), and re-route parameters P554 through P567 to the BICO connectors 2000 through 2015. By default the drive looks for ON/OFF1 on a digital input; without re-routing P554..P567, the PLC's STW1 will be ignored even though PROFIBUS data is being exchanged.
Can I use DriveMonitor to talk to the CUVC at the same time the S7 is writing via SFC15?
Yes, but be careful. DriveMonitor uses the CUVC service port X500, which is independent of the CBP2 PROFIBUS channel. DriveMonitor can read all parameters, but writing parameters through DriveMonitor while the S7 is updating PZD can cause race conditions. Pause the S7 (STW1 bit 10 = 0) before changing application parameters via DriveMonitor, then resume.
What is the difference between P060 parameter sets 0, 1, 2 and 3?
P060 = 0 reveals only the basic commissioning parameters (P060..P009 range). P060 = 1 is a user-fixed subset. P060 = 2 is modular and shows functional blocks. P060 = 3 is the "functional spares" level and is the one to use for full re-commissioning from DriveMonitor. After re-commissioning, return P060 to 0 to lock the drive against accidental parameter changes by an operator on the PMU.
How do I save the new parameters permanently after re-commissioning?
After every parameter change in DriveMonitor, click Save -> To EEPROM. A power cycle without a save will revert the drive to the previously stored values. The Save to EEPROM command takes 1-3 seconds per parameter block; wait for the confirmation before removing power.