Re-Programming SIMOVERT Masterdrives VC via SFC14/SFC15 PROFIBUS

David Krause19 min read
SiemensTutorial / How-toVFD / Drives
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

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).

Important: SIMOVERT Masterdrives VC is a legacy platform. DriveMonitor (DriveMonitor V5.x) is the only widely available PC tool for non-PROFIBUS parameterization. The DriveMonitor .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.

Length mismatch warning: STEP 7 will return SFC15 error code 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:

  1. 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.
  2. 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

  1. Apply 480 V three-phase to L1/L2/L3. The CUVC PMU should display 0.0 after the self-test. If it shows a fault, record F-code and consult the fault table in the V3.32 manual.
  2. Connect DriveMonitor, go online, and read r060 (firmware), r061 (firmware generation), P091 (PPO type), P918 (PROFIBUS address).
  3. Read all of the current Pxxx values and save them as factory_state.dnl to a known folder.

Step 2: Restore the drive parameters

  1. If an OEM-supplied .dnl file is available, use DriveMonitor Restore -> Parameter Set to load it.
  2. If no .dnl is 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.
  3. 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

  1. 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.
  2. Set P590..P599 (where supported) to the ZSW1 connector range 5100..5115 to route the first PZD input word to the status feedback.
  3. 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

  1. 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.
  2. 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

  1. Set P918 to the slave address configured in the STEP 7 hardware configuration (commonly 3, 4, or 5 on Masterdrives installations).
  2. Cycle control power to the drive so the CBP2 adopts the new address.

Step 6: Run the SFC14/SFC15 cyclic exchange

  1. Set DB16.DBW0 (STW1) to 0x047E (1150) initially - everything except bit 0 = ON.
  2. Set DB16.DBW2 (HSW) to 0x0000 (zero setpoint).
  3. Set DB16.DBW12 (ZSW1 readback) and DB16.DBW14 (HIW) will be updated by SFC14. Verify ZSW1 = 0x0631 (ready, not running).
  4. Toggle bit 0 of STW1 from 0 to 1. ZSW1 should transition to 0x0E37 within a few PROFIBUS cycles. The drive is now in operation with zero setpoint.
  5. Increment HSW to 0x2000 (50 % of reference). The motor should accelerate along the P462 ramp.

Step 7: Run an auto-tune pass

  1. 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.
  2. 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.

Back to blog