1. Problem Overview and Field Symptoms
This article resolves a recurring commissioning fault on a SINAMICS G120 PM250 power module (MLFB 6SL3224-0XE42-0UA0) paired with a CU240E-2 DP Control Unit and tied back to a SIMATIC S7-300 over PROFIBus DP. The drive is rated 250 kW (frame size GX for PM250 at the 200-250 kW step) and is being brought up in STARTER for the first time. Once the PROFIdrive telegram is loaded, two symptom chains are reported from the field:
- HMI-driven ON via PQW354 commands the drive to magnetise and pull current (~140 A in this installation), but the motor does not rotate. The received PZD2 main setpoint
r2050[1]reads 0.000 even though the S7-300 is cycling a non-zero value on PQW356. - BOP-2 Hand mode becomes inert. The motor did rotate off the BOP-2 before PROFIBus was enabled; after enabling, the BOP-2 itself is ignored.
The combination of "current flowing but no rotation" plus "BOP-2 dead after commissioning" is the canonical field signature of STW1 bit 10 (Control by PLC) being inverted, de-bounced, or simply left floating in the BICO map of the SINAMICS drive. The parameter p2037 and the BICO interconnect of p854 (or its 4-digit form p0854) on CU240E-2 are the levers that return the system to normal.
p2037 = 2. When STW1 is transferred (PZD1 in use), BICO p854 must be driven by r2090.10 so the PLC bit takes effect.2. Hardware and Software Stack Identification
The fault is reproduced with the following stack. Use this table to validate that you are reading the right parameter manual before applying the corrections.
| Component | Order code / version | Role in the fault chain |
|---|---|---|
| SINAMICS G120 PM250 power module | 6SL3224-0XE42-0UA0 (250 kW, FSA GX) | Inverter section with integrated braking chopper and built-in line filter |
| SINAMICS Control Unit | CU240E-2 DP (6SL3244-0BB12-1PAx family) | Hosts PROFIBus DP slave interface, BICO and parameter storage |
| Operator panel | BOP-2 (Basic Operator Panel 2) | Local Hand/Auto, setpoint source switching |
| Controller | SIMATIC S7-300 (e.g. CPU 315-2 DP) | Cyclic PROFIBus DP master writing PQW354/356 and reading PIW354/356 |
| Engineering / commissioning | STARTER / Startdrive V5.x or later | Online scope, control panel, BICO editor |
| PROFIBus telegram | Standard telegram 1 (PZD-2/2) or free telegram 999 | STW1/ZSW1 (PZD1) + NSOLL/A (PZD2) + command/status extensions |
| Cabling | PROFIBus DP, 1.5 Mbit/s typical, shielded twisted pair | Slave address and bus termination per G120 manual |
3. Root Cause Analysis: Why the Motor Draws Current but Will Not Rotate
On a SINAMICS G120, the path from "ON command" to "shaft rotation" runs through three cascaded gates:
- Control word path. STW1 bit 0 (ON/OFF1), bit 1 (OFF2), bit 2 (OFF3), bit 3 (Enable/inhibit pulses), and bit 10 (Control by PLC) gate the gating unit. The drive releases pulses only when each of these bits acknowledges "permissive."
-
Setpoint path. A valid main setpoint must arrive at the speed controller input. The default wiring is
p1070 = r2050[1](PROFIdrive PZD2 → main setpoint). Trace this with STARTER's commissioning trace from source top1155→r0062→r0021(n-set smoothed). -
Limits path. Torque and speed limits in
p1520 / p1521 / p1530 / p1531and the ramp generatorp1120 / p1121 / p1135must be permissive. A clamped limit will hide a valid setpoint.
Field observed: current is flowing (~140 A on a 250 kW drive) even though n-set = 0. This is the magnetisation current while the drive is waiting on the gating unit or on an internal enable that holds the inverter in a pre-excited state. The shaft does not turn because either pulses are not enabled (gating unit latched off) or the ramp is being held at zero by an internal interlock.
The most common cause, and the one confirmed in the field report, is that the PLC has not actually placed STW1 in PZD1 of the cyclic frame (or it has placed it, but the BICO of "Control by PLC" has not been routed to the gating unit). The drive therefore enters the state where it "is told to run" via DI0 + ramp, but it never grants the gating unit.
r2090 = 0x0000 AND the drive is still pulling >0 magnetisation current after an ON, then look at p2037 and the BICO of the Control-by-PLC bit before chasing a setpoint issue.4. PROFIdrive Control Word (STW1) Reference for Telegrams 1 and 20
The PROFIdrive control word STW1 is the 16-bit supervisor signal that the master places at the top of every PROFIBus cyclic frame. The mapping below is taken directly from the PROFIdrive profile (PNO Order No. 3.072) and reproduced in the SINAMICS G120 List Manual:
| Bit | Meaning (PNO 3.072 standard telegram 1) | Effect on gating unit / setpoint |
|---|---|---|
| 0 | ON / OFF1 | Rising edge issues ON; 0 = ramp stop then OFF1 |
| 1 | OFF2 (coast stop) | 0 = immediate pulse inhibit, coast-down |
| 2 | OFF3 (quick stop) | 0 = quick-stop ramp with p1135, then pulse inhibit |
| 3 | Enable / inhibit pulses | 0 = inverter pulses locked, no torque |
| 4 | Ramp-function generator enable (RFG) | 0 = RFG hold; ramp output frozen |
| 5 | RFG start (unfreeze ramp) | 0 = RFG stopped; output stays at last value |
| 6 | Setpoint enable (release setpoint) | 0 = setpoint held at 0; ramp output held |
| 7 | Acknowledge fault | Rising edge clears fault state (F-class) |
| 8 | Reserved / jog bit (telegram specific) | Use per PNO mapping |
| 9 | Reserved | — |
| 10 | Control by PLC (PLC master control) | 0 → drive ignores PLC-issued setpoints and commands; PLC has no priority |
| 11 | Reverse direction (invert setpoint sign) | 1 → setpoint negated before ramp |
| 12, 13 | Reserved / drive-specific | Refer to CU-specific list manual |
| 14, 15 | Reserved | — |
STW1 bit 10 is the single bit that decides whether the PLC or the local source (BOP-2, terminal strip, fixed setpoints) is in charge. The drive refuses to honour the PLC speed setpoint and ON command when "Control by PLC = 0," regardless of how much current is being drawn on the line.
5. Parameter Reference: p2037, p854 / p0854, p2050, p2051, r2090
The BICO map of a SINAMICS G120 carries dozens of interconnect parameters. The five that fix the present fault are summarised below. Always cross-check values with STARTER's online view, because bit indices differ slightly between Control Unit firmware generations.
| Parameter | Direction | Functional meaning | Drive-side default | Recommended value |
|---|---|---|---|---|
| p2037 | Setting | PROFIdrive telegram-mode selector. Value = 2 tells the drive "STW1 is not transported via PROFIdrive PZD1; treat PLC control words as a local hand-off and accept local sources such as the BOP-2." | 0 / 1 (telegram-driven) | 2 only when PZD1 cannot transport STW1; otherwise leave at 1 |
| p854 / p0854 | BICO input (BI) | Source for "Control by PLC" signal. On CU240E-2 firmware, the source is exposed as an indexed array p854[0] / p854[1]; in older G120 firmware the same function lives under p0854. |
Unconnected or r2090.10 | r2090.10 (so PLC STW1 bit 10 controls gating) |
| p2050 / r2050 | Cyclic I/O (received) | PZD word received from PROFIBus. r2050[0] = STW1, r2050[1] = NSOLL (main setpoint), r2050[2..] = extensions. | Mapped per telegram | Verify r2050[0] updates each bus cycle (must NOT remain 0x0000 if PLC is transmitting) |
| p2051 / r2051 | Cyclic I/O (sent) | PZD word transmitted back to PLC. r2051[0] = ZSW1 (status word), r2051[1] = NIST (actual speed). | Mapped per telegram | Verify r2051[0] reports ZSW1 bits 0..10 are reasonable |
| r2090 | Display | Bit-image of the four received PZD words. r2090 is the bit view of received word 0 (STW1). |
0x0000 until first telegram arrives | Must update to 0x04xx or 0x0Cxx once PLC transmits |
p2037 at its default value of 1 (PROFIdrive telegrams with STW1 in PZD1). Changing p2037 is a last resort when you cannot place STW1 in the cyclic frame.6. Step-by-Step Resolution Procedure
Apply the procedure below in the order written. Each block ends with a check you must satisfy before moving on.
6.1 Confirm the PROFIdrive telegram and slave address
- Open STARTER → drive project → Communication → confirm the PROFIBus slave address and baud rate match the SIMATIC hardware configuration (HW Config).
- Confirm the same telegram is selected on both sides. For 250 kW drives with PZD-2/2 the standard is telegram 1. If the project uses free telegram 999, hand-write the PZD mapping.
- Switch the drive online. In Diagnostics → Telegram view, watch the four received PZD words and the four transmitted PZD words byte by byte.
6.2 Verify whether the PLC is actually putting STW1 in PZD1
- In STARTER, write
r2090to the watch list. - Toggle an ON command from S7-300 (forward pattern: STW1 = 0x047F; reverse: 0x0C7F; OFF1 stop: 0x047E).
- If
r2090stays at0x0000, the PLC is not transmitting STW1 in PZD1. You now have two paths:- Path A (preferred): fix the S7-300 side so STW1 is placed in PQW. This is the recommended solution and avoids re-architecting the drive.
-
Path B (workaround): set
p2037 = 2. The drive now treats local control sources as authoritative and ignores the absence of PZD1.
6.3 Wire "Control by PLC" in BICO
- In STARTER → Drive → Configuration → BICO interconnects, place the cursor on
p854[0](orp0854per your firmware) and select "Interconnect". - Drive-type the source as
r2090.10(the value of STW1 bit 10 received from PROFIBus). - Repeat for
p854[1]if your firmware exposes an index 1 source. - Click RAM to ROM to persist the change.
6.4 Place STW1 in PZD1 of the cyclic frame (PLC side)
- Open SIMATIC HW Config → SINAMICS G120 slave → tab PROFIBus DP interface.
- Confirm PZD-2/2 (or your chosen telegram) is selected.
- In OB1 (or your cyclic OB), copy a word into PQW354 containing the STW1 bit pattern you build from M-bits or DB bits:
// STW1 template (no reverse) L W#16#047F // ON + OFF2 + OFF3 + Enable + RFG-EN + RFG-START + Setpoint-EN + Ctrl-by-PLC T PQW 354 // first PZD word (STW1) // NSOLL/A (rpm or normalised value depending on telegram scaling) L DB100.DBD200 // signed REAL scaled by telegram mapping T PQW 356 // second PZD word (NSOLL) - Re-activate the drive in HW Config and run the PLC in RUN.
6.5 Verify the gating unit is now permissive
- Look at STARTER's Control Unit status read-out:
-
r0899.0= 1 → Ready to switch on (no fault, healthy bus). -
r0899.1= 1 → Ready (operating conditions ok). -
r0899.2= 1 → Operation enabled (pulses released, motor turning). -
r0899.9= 1 → Control requested (PLC asserts master control).
-
- Watch current rise to its expected level above r0068 (current limit) and the shaft starts to turn.
7. Restoring BOP-2 Local Control After PROFIBus Commissioning
The BOP-2 Hand key on a SINAMICS G120 hands the drive to "Local" mode. Local mode is a master, like the PLC: the BOP-2 setpoint and commands supersede PROFIdrive while the drive is in Local. As soon as you press Auto, the drive returns to the parameterised remote source (your PLC). The "Hand" master is the setpoint and control master, just like when you use the STARTER control panel.
The reason BOP-2 stopped working after the field commish is one of the following:
- PLC holds Control-by-PLC = 0. Even if the BOP-2 is in Hand, the gating unit still evaluates the BICO of Control-by-PLC. With that signal = 0 the inverter will not pulse. The fix is to either force BOP-2 Hand (which forces the local master internally and locally overrides Ctrl-by-PLC) OR ensure STW1 bit 10 = 1 in PZD1.
-
BOP-2 source selection bit was changed. On CU240E-2 the BOP-2 setpoint is tied through
p1075(BI: supplementary setpoint),p1070(main setpoint), and the motor potentiometer bitsp1035/p1036; verify these are not pinned to the PLC source if you want local operation. -
Drive in fault state. A pending F-fault that was never acknowledged blocks both the BOP-2 and the PLC. Check
r0947and acknowledge via STW1 bit 7 or the BOP-2 fault reset.
8. PLC Configuration Reference (S7-300, PQW/PIW 354-358)
The following map is the canonical PROFIdrive PZD-2/2 layout for a G120 over PROFIBus with a SIMATIC S7-300 master. Use it to cross-reference the field report (PQW354 carrying the command value, PIW354 carrying the status word).
| I/O address | Direction | PZD slot | Contents | Units / scale |
|---|---|---|---|---|
| PQW 354 | PLC → drive (output) | PZD1 / word 0 | STW1 (control word 1) | 16-bit, 1 = true |
| PQW 356 | PLC → drive (output) | PZD2 / word 1 | NSOLL (main setpoint) | 16-bit normalised (4000hex = rated); N2 telegram scales this to rpm |
| PIW 354 | drive → PLC (input) | PZD1 / word 0 | ZSW1 (status word 1) | 16-bit, 1 = true |
| PIW 356 | drive → PLC (input) | PZD2 / word 1 | NIST (main actual) | 16-bit normalised, scaled by telegram |
If you use a free telegram (e.g. 999) you must wire each PZD by hand on both the SIMATIC and SINAMICS sides. The eight-byte form (PZD-4/4) extends NSOLL into two 16-bit words for 32-bit precision at low speeds; this is common on 250 kW drives where motor shaft speed precision matters.
9. Verification and Acceptance Test (Static and Dynamic)
9.1 Static acceptance
- Drive in "Ready" status.
r0899.0 = 1, no faults pending (r0947 = 0). - PLC transmits STW1 =
0x047F(no reverse). The drive readsr0899.0-1-2as "Ready → Ready → Operation enabled" once the ramp finishes. - PLC ramps NSOLL from 0 → 10 % rated.
r0021tracksr0062after the ramp generatorp1120.r0899.10("f or n reached") becomes 1.
9.2 Dynamic acceptance
- Command 10 / 50 / 100 % rated in three steps.
r0021should settle within the ramp time settingp1120for each step. - Command STW1 bit 11 = 1 to enable reverse. Confirm
r0021becomes negative. - Drop STW1 bit 0 = 0 (OFF1). The drive should ramp down per
p1121. - Drop STW1 bit 1 = 0 (OFF2). The inverter pulses should inhibit immediately and
r0021falls as a coast-down. - Drop STW1 bit 10 = 0 (Control-by-PLC = 0). The drive should refuse further setpoints, signal "Control requested" clearing in ZSW1 bit 9, and the BOP-2 setpoint should now drive the motor. This is the inverse of the failure mode you came in with.
9.3 STARTER control-panel diagnostic
If a fault returns after the above procedure, open STARTER → Control Panel, assume control, and jog the drive locally. From there use the trace function to plot:
-
r0062(setpoint before RFG) -
r0021(setpoint after RFG, smoothed) -
r0022(actual speed, smoothed) -
r0023(output voltage, smoothed) -
r0031(actual torque) -
r0068(actual current, absolute)
This trace captures the exact moment a setpoint goes to zero and shows whether it is being clamped at RFG input, ramp rate, or RFG output.
10. Field-Proven Troubleshooting Matrix
| Observation | Likely cause | First parameter(s) to verify | Corrective action |
|---|---|---|---|
| Current flows (~magnetising) but motor does not turn | Gating unit latched off (missing Control-by-PLC or OFF2/3) | r2090, p854 / p0854, r0899.2 | Force STW1 bit 10 = 1 via PLC or set p2037 = 2 if PZD1 cannot transport STW1 |
| Drive runs after STARTER control panel but not via PLC | PLC not writing to PQD or wrong telegram | r2090, HW Config, PQW354 | Re-check S7-300 HW Config and OB1 cyclic write |
| r2050[1] (NSOLL) reads 0 even with PLC writing PQW356 | Source mapping broken: PLC writes but BICO is not pointing at the right PZD slot | p1070, p2050, p922 | Re-map NSOLL slot; check BICO source of main setpoint |
| BOP-2 in Hand is dead | Control-by-PLC held at 0 by PLC even when drive commands OFF | p854 source, p2037, r2090.10 | Disconnect PLC from Control-by-PLC path or use p2037 = 2 |
| Drive faults F07900, F07902 | Motor speed / torque limit violated | r0947, p1520, p1521, p1530, p1531 | Re-rate limits or set up a torque-limit BICO |
| Drive faults F08xxx (bus time-out) | PROFIBus interruption during run, defective connector, or terminated spur | PROFIBus diagnostics, r0947 | Check connections; configure bus monitoring time on CU240E-2 to allow line-break rundown |
| r2090 always 0x0000 with PLC active | Wrong telegram or wrong slave address mapping | p0922, p2040, HW Config | Verify telegram and slave address on master side |
| ZSW1 bit 9 (r0899.9) holds 0 even when bit 10 in STW1 is set | Mismatch between telegram mapping and BICO; PLC STW1 in PZD2 instead of PZD1 | p2051 mapping table | Re-pair telegram in HW Config and STARTER |
11. Documentation, Firmware, and Standards Cross-References
The diagnostic and corrections above reference the following authoritative Siemens and PNO materials. Use the editions appropriate to the CU240E-2 firmware that your project carries on the unit; parameter numbers are stable from V4.5 onwards and re-occurrences on firmware V5.x have been kept for backward compatibility.
- SINAMICS G120 / G120C List Manual (LH1) parameter list
- SINAMICS G120 Operating Instructions (PM250)
- CU240B-2 / CU240E-2 Control Unit Operating Instructions
- PROFIdrive Profile (PNO Order No. 3.072)
- STARTER / Startdrive Commissioning Tool help system
p2037, p854, p0854) against the running firmware revision in r0014 = 525xxx (xx = SP) before declaring a fix stable.12. Frequently Asked Questions
Why does my G120 drive magnetise (~140 A) but not rotate when turned on from PROFIBus?
Most likely the inverter is in a "Ready, pulses disabled" state: the gating unit is waiting on bit 10 (Control by PLC) of STW1, or the BICO for that bit is not yet wired. Verify r2090 non-zero, then wire p854[0] = r2090.10. If the PLC cannot transport PZD1, set p2037 = 2 as a workaround.
What does BOP-2 "Hand" mode actually override on a G120?
Hand makes the BOP-2 both the command source and the setpoint source. It takes priority over the configured remote source as long as the inverter is "Ready" or running. Hand does not, however, override the safety-side signals (STO via terminals, PROFIsafe) nor an OFF2/OFF3 hard-wired to a low-edge input.
When should I set p2037 = 2 on a SINAMICS G120?
Use p2037 = 2 only when STW1 cannot be transported in PZD1 of your cyclic frame (e.g. master transmits only setpoint, not control word). Per the parameter manual and the STARTER help, prefer leaving p2037 = 1 and instead ensure PZD1 is transmitted and BICO p854 = r2090.10 is wired.
How do I wire the "Control by PLC" bit in BICO?
On a CU240E-2 DP the standard interconnect is p854[0] = r2090.10. The index 1 form is exposed on firmware that offers dual gating paths. In STARTER, drag the source onto the BICO entry of p854 (or the equivalent p0854 on older firmware) and save to ROM.
Why is r2090 = 0x0000 even though my S7-300 is transmitting?
Three usual causes: (1) wrong slave address or wrong telegram selected in HW Config; (2) the OB1 writes to PQW offsets that do not match the address in the slave module list (verify in the slave dialog "PROFIBus DP I/O Mapping"); (3) the drive telegram selection in p0922 differs from the master. Diagnose with STARTER's cyclic-frame live view.