Sinamics G120C Reverse at Max RPM: P2000 Setpoint Scaling Fix

David Krause14 min read
SiemensTroubleshootingVFD / 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

Sinamics G120C Reverse Rotation at Maximum Speed: P2000 Setpoint Scaling and Reverse Lockout

Problem Description

A SINAMICS G120C drive controlled over PROFIBUS with P0922=999 (free BICO telegram configuration) starts rotating in the reverse direction the instant the speed setpoint exceeds the configured maximum. At 99.9 Hz (approximately 2997 RPM at the configured motor) the motor runs forward correctly. Incrementing the setpoint by one LSB beyond 0x7FFF produces a sudden negative ramp to approximately -3000 RPM. The same P1080 (minimum speed) = 0 RPM and P1082 (maximum speed) = 3200 RPM are still in effect, so the ceiling is configured correctly; the fault is in the setpoint scaling, not the limits.

The reported configuration:

  • P0922 = 999 (free BICO telegram configuration)
  • P1080 = 0 RPM (minimum speed)
  • P1082 = 3200 RPM (maximum speed)
  • P2000 = 1500 RPM (reference speed, factory default for many G120C firmware revisions)
  • PLC setpoint for full speed: 0x8000 (32768 decimal) loaded into PZD word 2

Observed behavior on a S7-300/ET200S master with PROFIBUS DP:

  • 0x1999 (20 Hz) → 600 RPM forward (correct)
  • 0x3333 (40 Hz) → 1200 RPM forward (correct)
  • 0x7F70 (99.9 Hz) → 2997 RPM forward (correct)
  • 0x8000 (next increment) → -3000 RPM (reverse, fault)

Root Cause

Two distinct configuration errors are simultaneously present in this case:

  1. P2000 / PLC scaling mismatch. The PROFIdrive profile encodes the speed setpoint NSOLL_A (in PZD2 of the receive telegram) as a 16-bit two's-complement normalized value where 0x4000 = +100%. The PLC is sending 0x8000 (32768 decimal) for the maximum command, but 0x8000 is two's-complement -32768, so the drive evaluates it as -200% of the reference. With P2000=1500 RPM the result is exactly -3000 RPM, matching the observed reading.
  2. No reverse lockout. The drive has not been configured to block negative setpoints. Even after the scaling is corrected, a single bit-flip in the PLC or an accidental toggle of STW1 bit 11 will produce reverse rotation. Applications that only require unidirectional rotation must apply an explicit block.

PROFIdrive Setpoint Encoding

The SINAMICS G120C implements the PROFIdrive V4 profile for cyclic communication. The speed setpoint word is a signed 16-bit normalized value as defined in PROFIdrive Profile 3.1 / 3.2:

PROFIdrive NSOLL_A normalization
Hex Decimal (signed) Normalized (% of P2000) Speed at P2000=1500 RPM Speed at P2000=3000 RPM
0x7FFF +32767 +199.99% +2999.85 RPM +5999.70 RPM
0x4001 +16385 +100.006% +1500.09 RPM +3000.18 RPM
0x4000 +16384 +100.000% +1500.00 RPM +3000.00 RPM
0x3FFF +16383 +99.994% +1499.91 RPM +2999.82 RPM
0x0001 +1 +0.006% +0.09 RPM +0.18 RPM
0x0000 0 0% 0 RPM 0 RPM
0xFFFF -1 -0.006% -0.09 RPM -0.18 RPM
0xC001 -16383 -100.006% -1500.09 RPM -3000.18 RPM
0xC000 -16384 -100.000% -1500.00 RPM -3000.00 RPM
0x8001 -32767 -199.99% -2999.85 RPM -5999.70 RPM
0x8000 -32768 -200.000% -3000.00 RPM -6000.00 RPM

The conversion is governed by:

n_setpoint_RPM = (NSOLL_hex / 0x4000) * P2000

where NSOLL_hex is treated as a signed 16-bit value in the range -32768 to +32767. The result is bounded by P1082 on the positive side and P1082 (with sign change) on the negative side.

Diagnostic Procedure

To confirm the diagnosis before changing parameters, capture the raw process data on the wire and the drive status words.

  1. Connect STARTER or SINAMICS Startdrive (V15 or later) to the drive online via PROFIBUS or Ethernet.
  2. Open the control panel and assume bus control: STW1 bit 10 = 1, STW1 bit 0 = 1, STW1 bit 3 = 1.
  3. Read r2050[0] and r2050[1] for the raw PZD receive words. Verify the value the PLC is writing.
  4. Read r0063 (closed-loop speed setpoint), r0021 (speed actual smoothed), and r0022 (speed actual unsmoothed).
  5. From the PLC side, monitor the data block where the PZD image is assembled. Confirm the application logic loads 0x4000 for full forward speed and never exceeds it without intent.
  6. Apply the scaling formula: (0x8000 / 0x4000) * 1500 = -3000 RPM. If the drive reads -3000 RPM at a raw PZD of 0x8000 with P2000=1500, the diagnosis is confirmed.

Solution 1: Recalibrate P2000

Set the reference speed parameter P2000 to the maximum mechanical speed that a 100% command (0x4000) should produce:

  1. Set P2000 = 3000 RPM, or the maximum mechanical speed, whichever is greater up to P1082.
  2. Verify the PLC writes 0x4000 (16384 decimal) for full forward, 0x0000 for zero, and never exceeds 0x4000 unless overspeed is intentional.
  3. Use P1082 to enforce the absolute ceiling. P1082 limits the ramp-function generator output regardless of NSOLL_A magnitude.
  4. If the application must run above rated speed with 0x7FFF, set P2000 so that 0x7FFF equals the absolute mechanical maximum, and clamp NSOLL_A in the PLC to 0x7FFF.
When P2000 is changed, the scaling of all P2000-derived parameters is re-evaluated (analog input scaling, fixed setpoints, the reference for torque and current display, and the slip compensation). Recommission every P2000-dependent parameter after the change.

Solution 2: Block Reverse Direction

For unidirectional applications, apply a reverse lockout so that no PLC glitch, sign bit, or control-word manipulation can produce reverse rotation.

Option A: P1110 (inhibit negative setpoint)

P1110 selects the signal source for "inhibit negative setpoint" (BI). When the source is logic 1, the ramp-function generator clamps any negative setpoint to zero. The default source is r722.3 (digital input 3 on the CU). For a permanent block:

P1110 = 1

This ties the inhibit permanently to a constant 1 signal. Reverse rotation is impossible regardless of PLC behavior.

Option B: STW1 bit 11 (direction reversal)

In the PROFIdrive profile, STW1 bit 11 is the direction reversal command. The drive negates the incoming setpoint when this bit is set. For unidirectional applications, ensure the PLC does not set bit 11. A defensive implementation hard-wires STW1 bit 11 to 0 in the PZD image and never sets it.

Option C: P1031 (phase sequence reversal)

Setting P1031 = 1 swaps the phase sequence at the inverter output (U, V, W to U, W, V), inverting rotation direction. This is the wrong approach for blocking reverse because it changes the hardware direction and does not address the setpoint sign. Leave P1031 = 0.

Option D: P1113 / P1114 (setpoint inversion)

P1113 sources the setpoint inversion and P1114 enables it. To map a negative NSOLL_A to positive rotation, set P1113 = 1 and P1114 = 1. Use only when the application must accept negative setpoints and produce forward rotation; this is not the same as a reverse lockout.

Reverse-block parameter summary
Parameter Description Unidirectional setting Behavior
P1110 BI: Inhibit negative setpoint P1110 = 1 Clamp negative NSOLL_A to 0 at ramp input
STW1 bit 11 Direction reversal Always 0 in PLC Software-side guard
P1113 BI: Setpoint inversion P1113 = 0 (or default) Avoid accidental sign flip
P1031 Phase sequence reversal P1031 = 0 Leave default; do not use to fix direction

Verification

After applying the corrective actions, run the following sequence:

  1. With the drive enabled and the PLC in control, command 0x4000 and confirm r0021 reads the expected positive RPM (3000 RPM if P2000=3000).
  2. Command 0x7FFF and confirm the speed is clamped to P1082 (3200 RPM) and the drive does not overspeed.
  3. Command 0x8000 and confirm the speed remains 0 RPM with P1110=1 active; the ramp generator will clamp the negative setpoint to zero before the output stage.
  4. Command 0xC000 and confirm the speed is 0 RPM with P1110=1.
  5. Capture a STARTER trace of r0063, r0061 (sensorless speed), and the IGBT firing commands. Verify the sign of the output frequency is positive for the entire range of valid setpoints.
  6. Toggle the PLC direction bit and confirm no change in rotation.
If the drive trips with F07900 (motor blocked) or A07901 (motor overspeed warning) after the parameter change, the motor data identification may need to be re-run. Use P1900=2 for standstill identification or P1900=1 for full identification with rotation, before resuming production. Refer to the SINAMICS G120C operating instructions for the procedure.

Extended Parameter Reference

Key SINAMICS G120C parameters for PROFIdrive speed control
Parameter Description Typical value Notes
P0922 PROFIdrive telegram selection 1, 2, 20, 350, 352, 999 999 = free BICO configuration
P1000 Setpoint source selection 6 6 = PROFIdrive NSOLL_A
P1080 Minimum speed 0 RPM Clamps lower bound
P1082 Maximum speed 3200 RPM Clamps upper bound (positive and negative)
P2000 Reference speed 3000 RPM Defines 100% for NSOLL_A scaling
P1110 BI: Inhibit negative setpoint 1 Set to 1 to permanently block reverse
P1113 BI: Setpoint inversion 0 Default unconnected
P1114 BI: Enable inversion 0 Default unconnected
P1031 Phase sequence reversal 0 Default forward sequence
P1120 Ramp-up time Application-specific Seconds from 0 to P1082
P1121 Ramp-down time Application-specific Seconds from P1082 to 0
P1130 Ramp-up initial rounding 0 s Optional smoothing
P1131 Ramp-up final rounding 0 s Optional smoothing
P1132 Ramp-down initial rounding 0 s Optional smoothing
P1133 Ramp-down final rounding 0 s Optional smoothing
P1140 BI: Enable ramp-function generator r722.0 (DI0) Disables ramps for quick stop
P1141 BI: Ramp-function generator start r722.0 (DI0) Starts ramp output
P1142 BI: Ramp-function generator enable setpoint r722.0 (DI0) Releases setpoint
P2051[0..7] CI: PZD receive word Depends on P0922 BICO interconnect for PZD
P2080[0..15] BI: Status word bit Application-specific For free ZSW configuration
r0020 Speed setpoint unsmoothed Read-only Output of ramp generator
r0021 Speed actual smoothed Read-only Use for verification
r0022 Speed actual unsmoothed Read-only Raw actual
r0060 CO: Speed setpoint before filter Read-only Before ramp
r0062 CO: Speed setpoint after filter Read-only After ramp
r0063 CO: Speed actual Read-only Closed-loop output
r2050[0..7] CO: PZD receive word Read-only Raw bus values

For complete parameter descriptions, fault codes, and telegram maps refer to the SINAMICS G120/G120C List Manual.

PROFIdrive Control Word Bit Map (STW1)

The first receive word of the PROFIdrive telegram is the control word STW1. The following bits are relevant to direction control and enable logic:

STW1 bit map per PROFIdrive profile
Bit Name Function Comment
0 ON/OFF1 Ramp stop 1 = ON, 0 = ramp to 0
1 OFF2 Coast to stop 0 = coast, 1 = enable
2 OFF3 Quick stop 0 = quick stop, 1 = enable
3 Enable operation Enable pulses 1 = enable
4 Enable ramp generator Release ramp 1 = ramp active
5 Unfreeze ramp Resume ramp 1 = ramp runs
6 Setpoint enable Release setpoint 1 = setpoint active
7 Acknowledge fault Reset faults 0 to 1 edge resets
8 Jog 1 Jog source 1 Optional
9 Jog 2 Jog source 2 Optional
10 Control by PLC Bus control 1 = PLC has control
11 Direction reversal Invert setpoint sign 1 = reverse, 0 = forward
12, 13 Reserved / motor switch Application-specific —
14, 15 Reserved / CDS bit 0, 1 Command data set For multi-CDS
Some SINAMICS firmware revisions implement additional vendor-specific bits in STW2. Refer to the parameter list for the exact build. As a defensive practice, mask all reserved bits to 0 in the PLC before the value is written to the PZD image.

Free BICO Telegram Configuration (P0922=999)

When P0922=999, the drive does not auto-wire the receive and transmit process data. The integrator must connect the desired setpoint and actual value words using the BICO matrix:

  1. Connect the receive PZD words to the appropriate connectors using P2051[0..7]. For speed control via PROFIdrive, set P2051[0] = r2050[0] (control word STW1) and P2051[1] = r2050[1] (setpoint NSOLL_A).
  2. Set the setpoint source: P1000 = 6 to select PROFIdrive NSOLL_A as the main setpoint.
  3. If the application uses a motor potentiometer in addition to the bus, connect P2051[2] = r2050[2] and configure P1000[1] (supplementary setpoint) accordingly.
  4. For status feedback, configure the transmit PZD range and populate the ZSW-related connectors in P2080/P2081.

Common errors when P0922=999 is used:

  • P2051[1] left at factory default, so the bus writes have no effect on the ramp generator.
  • P1000 not set to 6, so the drive uses the analog input or motor potentiometer instead of the bus.
  • STW1 not honored: P0840 (ON/OFF1), P0844 (OFF2), P0845 (OFF3) still sourced from digital inputs instead of the bus. The drive starts and stops from the local panel rather than the PLC.

Verify the wiring using STARTER's BICO view, or in SINAMICS Startdrive the "Signal interconnection" editor. The SINAMICS G120 Getting Started guide covers BICO for cyclic PROFIdrive telegrams.

Drive Behavior in Sensorless Closed-Loop vs V/f Mode

The discussion assumes V/f control (P1300=0) or sensorless vector control (P1300=20). The setpoint pipeline is:

  1. PLC writes NSOLL_A in PZD2 (PROFIdrive receive word 2).
  2. Drive reads r2050[1] and scales by P2000 to produce the speed setpoint at the ramp generator input.
  3. Ramp generator applies P1120/P1121 with P1130 through P1133 rounding.
  4. Speed controller (vector control) or V/f controller drives the IGBTs.
  5. Actual speed feedback from encoder (if present) or estimated speed (sensorless) closes the loop.

For a unidirectional application, a sensorless vector loop with P1110=1 and P2000 matched to the application maximum will never produce negative rotation as long as the PLC never sets STW1 bit 11.

Fault and Warning Code Reference

Relevant SINAMICS G120C faults and warnings
Code Type Description Likely cause Action
F07800 Fault Drive: No power unit detected Hardware mismatch Check power module type
F07801 Fault Drive: Overcurrent Short circuit / ramp too fast Extend P1120/P1121
F07802 Fault Drive: Inverter overload Excessive I²t Reduce load or extend ramp
F07900 Fault Drive: Motor blocked Mechanical stall Check mechanical load
F07901 Fault Drive: Motor overspeed Speed above 1.2 × P1082 Reduce setpoint or raise P1082
F08501 Fault PROFIBUS: Sign-of-life failure Bus interruption Check cabling, watchdog time
F08502 Fault PROFIBUS: Watchdog timeout PLC stopped or DP fault Check CPU, DP master
A08502 Warning PROFIBUS: Watchdog Bus quality marginal Check bus termination
A07901 Warning Drive: Motor overspeed warning Speed above warning threshold Check setpoint scaling
A07910 Warning Drive: Motor overtemperature Thermal model Check load duty cycle
Fault numbers and descriptions vary by SINAMICS firmware version. Always confirm the active fault against the list manual for the firmware version installed. The active drive firmware version is available in r0018.

PLC-Side Defensive Scaling

Even with P1110=1 active, the PLC should clamp and sanity-check every setpoint that is written to the PZD image. Recommended practice in Structured Control Language (SCL) for a S7-300/S7-400/ET200S master:

// Defensive NSOLL_A clamp in SCL (16-bit signed)
#iRawSpeed := WORD_TO_INT(#wSetpointRaw);   // raw PZD word
IF #iRawSpeed < 0 THEN
    #iRawSpeed := 0;                        // block negative
END_IF;
IF #iRawSpeed > 16#4000 THEN
    #iRawSpeed := 16#4000;                  // cap at 100%
END_IF;
#wPZD2 := INT_TO_WORD(#iRawSpeed);          // write to PZD

For S7-1200/S7-1500 with SINAMICS Startdrive libraries, use the SINAMICS_Control block and clamp at the application layer. Always mask STW1 bit 11 to 0 in the assembled control word.

Common Pitfalls in Multi-Drive Systems

When the same SINAMICS G120C fleet is shared across multiple machines with different maximum speeds, the P2000 default of 1500 RPM (the legacy value from G110/G120 firmware) is often left untouched. A complete commissioning checklist for a G120C with PROFIdrive should include:

  1. P2000 set to the maximum mechanical speed of the application, not the motor nameplate RPM.
  2. P1080 and P1082 validated against the mechanical limit switches and the gearbox ratio.
  3. P1110 set to 1 or a digital input for any unidirectional application.
  4. STW1 bit 11 masked to 0 in the PLC code with a code review sign-off.
  5. Motor identification (P1900) executed at first commissioning.
  6. One-step verification at +0x4000, -0x4000, +0x7FFF, -0x7FFF, and +0x8000 with a trace capture saved to the project archive.

Related Configuration: Speed Setpoint Sources

SINAMICS supports the following main setpoint sources, selectable via P1000:

P1000 main setpoint source selection
P1000 value Source Typical use
0 No main setpoint Setup only
1 Motor potentiometer (MOP) Local analog control
2 Analog setpoint 4–20 mA / 0–10 V input
3 Fixed setpoint (P1001..P1015) Preset speeds
5 USS on RS485 Legacy serial
6 PROFIdrive NSOLL_A PROFIBUS / PROFINET setpoint
7 Analog setpoint 2 (combined) Sum of analog sources
12 PROFIdrive + analog PROFIdrive main, analog supplementary

For the reported case (PROFIdrive cyclic), P1000 must be 6. If P1000 is left at the default (often 2 for analog), the bus writes are ignored and the drive responds to the analog input. Always confirm P1000 in the online parameter view.

Frequently Asked Questions

Why does the SINAMICS G120C run in reverse when I send the maximum value (0x7FFF or 0x8000) from the PLC?

The PROFIdrive speed setpoint is a signed 16-bit value. 0x7FFF is +199.99% and 0x8000 is -200% of P2000. If P2000 is not matched to your maximum speed, the 0x8000 value will be interpreted as full reverse. Set P2000 equal to the maximum mechanical speed (for example 3000 RPM) so 0x4000 = full forward and 0x8000 = full reverse. P1082 still clamps the absolute ceiling.

How do I permanently block the SINAMICS G120C from running in reverse?

Set P1110 = 1 to tie "inhibit negative setpoint" to a constant logic-1 source. The ramp-function generator will clamp any negative setpoint to zero. Also mask STW1 bit 11 to 0 in the PLC code, and leave P1031 at 0 (do not use phase reversal to fix the direction).

What is the correct PROFIdrive speed setpoint scaling on the SINAMICS G120C?

The receive PZD word 2 (NSOLL_A) is a 16-bit two's-complement value normalized so that 0x4000 = +100% of the reference parameter P2000. The conversion is n = (NSOLL_hex / 0x4000) × P2000. The valid range is -200% to +200% (-0x8000 to +0x7FFF), bounded by P1082 on the positive side and P1082 with sign change on the negative side.

Can I use the analog input and the PROFIdrive setpoint at the same time?

Yes. Use P1000 = 12 to combine the PROFIdrive main setpoint with an analog supplementary setpoint. The supplementary setpoint is added to the main setpoint at the ramp generator input. This is useful for trim corrections or a local override.

Do I have to redo motor identification after changing P2000?

Not necessarily. P2000 only affects the setpoint normalization; the motor equivalent circuit data (P0350..P0369) are independent. However, if the new P2000 changes the operating range (for example, the field-weakening threshold), re-run motor data identification at P1900 = 2 (standstill) or P1900 = 1 (with rotation) to ensure accurate torque and current loop tuning at the new operating range.

Back to blog