Problem Summary
A SINAMICS PM240-2 Power Module (1PSL3210 1PE23-3ULO) controlled by a CU240E-2 DP Control Unit (6SL3244-0BB12-1PA) via PROFIBUS using standard Telegram 1 exhibits a deterministic shutdown: the drive starts and stops correctly while the setpoint remains at zero, but the moment the PLC increments the speed setpoint word (NSOLL_A), the drive decelerates on the configured ramp (or coasts) and remains in "OFF" state with no active alarm or fault bit set in ZSW1 (Status Word 1).
The replacement context is relevant: a MICROMASTER 440 (6SE6440-2UD27-5CA1) was previously in service. The MM440 used USS or PROFIBUS DP-V0 with a different control word structure and a fundamentally different speed setpoint scaling. A direct parameter-for-parameter copy of MM440 configuration into a SINAMICS PM240-2 + CU240E-2 is a frequent root cause of the observed behavior because the SINAMICS state machine interprets the same bit pattern differently.
Key observables in the field:
- Drive starts/stops cleanly with setpoint = 0 and ON command toggled in STW1 bit 0.
- Any non-zero setpoint causes the drive to leave "Operation Enabled" state immediately.
- No bit 3 (Fault) or bit 7 (Alarm) set in ZSW1.
- The Frequency Reached indicator (ZSW1 bit 10 / r2197.4 / r0026.4) appears active at the moment the drive is being told to stop.
- r63 (CO: Actual speed unsmoothed) momentarily mirrors the setpoint value, suggesting the feedback is being sourced from a pre-ramp / setpoint-summing location rather than the true encoder or back-EMF derived value.
- P1080 (Minimum speed) reads
1.3 rpm, an unusual non-zero value for a 4-pole induction motor rated near 3000 rpm. - Alarm history is mostly empty except for insignificant entries; motor identification was likely interrupted rather than completed.
Affected Hardware and Firmware Baseline
Verify the exact part numbers against the nameplate stickers on the Power Module and Control Unit. The PM240-2 Power Module has different frame sizes (FSA through FSG) and voltage classes (200 V / 400 V / 690 V), and the CU240E-2 family is split into the DP (PROFIBUS) and PN (PROFINET) variants. Mixing the variants is impossible because of mechanical keying, but verifying the article numbers prevents confusion when pulling documentation.
| Item | Article Number | Notes |
|---|---|---|
| MICROMASTER 440 (replaced) | 6SE6440-2UD27-5CA1 | Previous drive; for comparison only |
| SINAMICS PM240-2 Power Module | 1PSL3210 1PE23-3ULO (likely 6SL3210-1PE23-3UL0) | FSG, 3AC 200 V class; check rating label |
| CU240E-2 DP Control Unit | 6SL3244-0BB12-1PA | PROFIBUS DP-V1, FSD/FSG compatible |
| STARTER commissioning tool | STARTER V4.x / V5.x or TIA Portal (SINAMICS Startdrive V15+) | Both supported; prefer Startdrive for new projects |
| Firmware | CU240E-2 DP FW V4.7 (or later available) | Verify under r0014 / r0954 |
Always cross-check the firmware version against the official Siemens Product Support database before commissioning. A V4.4 SP3 to V4.7 upgrade has resolved several PROFIBUS-Telegram-related setpoint issues in the G120/G120C/CU240E-2 family.
PROFIBUS Telegram 1 — Bit-Exact Reference
Standard Telegram 1 (PZD-2/2) carries four process data words. The byte order on PROFIBUS DP is big-endian (Motorola word format). The PLC must be configured to swap words if it is little-endian (most S7 PLCs swap automatically when the slot is configured with Telegram 1).
| Direction | PZD Word | Name | Format | SINAMICS Parameter (Output → Input) |
|---|---|---|---|---|
| PLC → Drive | PZD1 | STW1 (Control Word 1) | UINT16, bits per PROFIdrive profile | r2090.0 (BI) |
| PLC → Drive | PZD2 | NSOLL_A (Speed setpoint A) | INT16, scaling 0x4000 = 100 % rated speed | p1150 / r2050 (depends on version) |
| Drive → PLC | PZD1 | ZSW1 (Status Word 1) | UINT16, bits per PROFIdrive profile | r2089[0] (BO) |
| Drive → PLC | PZD2 | NIST_A (Actual speed A) | INT16, scaling 0x4000 = 100 % rated speed | r0021 (CO) smoothed actual speed |
STW1 (Control Word 1) — Bits That Stop the Drive
| Bit | Meaning (per PROFIdrive / SINAMICS) | Effect When Cleared |
|---|---|---|
| 0 | ON / OFF1 | Drive ramps down to 0 (ramp time p1121 / p1135). Cleared → drive does not start. |
| 1 | OFF2 (Coast to stop) | Immediate pulse inhibit, no ramp. Cleared → drive stops instantly. |
| 2 | OFF3 (Fast stop) | Ramp to 0 with p1135. Cleared → drive stops via fast ramp. |
| 3 | Enable Operation | Drive executes command. Cleared → drive cannot run. |
| 4 | Enable Ramp Generator | 0 → ramp output frozen at current value. |
| 5 | Unfreeze Ramp Generator | 0 → ramp output held. |
| 6 | Enable Setpoint | 0 → setpoint = 0 regardless of PZD2. Drive decelerates to 0 with p1121. |
| 7 | Acknowledge Fault | 0-to-1 transition acknowledges pending faults. |
| 8 / 9 | Reserved / jog | Application dependent |
| 10 | Control by PLC (PZD valid) | 0 → PZD ignored, ramp and setpoint frozen. |
| 11 | Direction reversal | 1 → negative setpoint (NIST_A scaling). |
| 12 / 13 | Reserved / control bits | Use per project |
| 14 / 15 | Reserved / control bits | Use per project |
Root Cause Hypotheses Ranked by Probability
- STW1 Enable Setpoint (bit 6) is being cleared by the PLC program the moment the setpoint is written. This is the single most common field defect. The PLC engineer typically masks the upper 8 bits of the control word when writing the setpoint, inadvertently clearing bit 6 along with the setpoint word update.
- OFF2 (STW1 bit 1) is held low by the PLC safety logic. When the operator pushes a local jog button, the PLC may drop OFF2. As soon as the setpoint is non-zero, the safety circuit opens.
- Motor identification was never completed. The drive is running on the default nameplate motor data with a partially valid magnetic model. The actual flux is not established, current is unregulated, and the controller may command zero torque in response to any setpoint rise. The drive does not fault because there is no overcurrent event; it simply produces no torque and the load decelerates.
- P1080 = 1.3 rpm in combination with P1082 = rated rpm and normal ramp times forces the ramp to operate in a non-linear zone. The ramp output is not allowed to fall below 1.3 rpm, so the drive is "stuck" at 1.3 rpm. As soon as the setpoint is raised, the closed-loop speed controller saturates and the drive enters a follow-up mode that may interpret as "reached" and disables the controller.
- Reference / setpoint scaling mismatch. The MM440 used 0x4000 = 50 Hz (4000 hex) and 50.00 Hz = 16384 dec. The SINAMICS expects 0x4000 = p2000 (default p2000 = rated motor speed). If p2000 is left at 3000 rpm but the PLC writes the MM440 hex value, NSOLL_A reads 4000h = 3000 rpm. The drive ramps up and immediately slams into the current limit. Again, no alarm is raised if r0047.0 (Current limit reached) is not latched.
- BI/CO misconfiguration feeding r63 into NIST_A. A modified project can accidentally interconnect the setpoint (r1438) or the speed pre-control (p1160) into the connector that the drive maps to NIST_A. The result is that the feedback word echoes the setpoint word and the drive appears to be "at speed" with no motor motion.
- Encoder feedback (if present) is being processed incorrectly. The CU240E-2 DP can be wired with an HTL/TTL encoder for closed-loop speed control. If the encoder is mis-wired (A/B swapped), the controller interprets positive feedback as negative and commands zero output.
Diagnostic Procedure (STARTER / Startdrive)
Step 1 — Capture the Live PROFIBUS Trace
- Connect STARTER or Startdrive to the CU240E-2 DP online.
- Open Control Unit → Commissioning → PROFIBUS.
- Launch the Trace function (Trace V2.0) and record r2050[0] (PZD receive word 1, STW1), r2050[1] (PZD receive word 2, NSOLL_A), r2060[0] (PZD send word 1, ZSW1), r2060[1] (PZD send word 2, NIST_A), r0021 (actual speed smoothed), and r0026 (drive status bits).
- Trigger the setpoint change from the PLC while the trace is recording. Sample at 4 ms for 5 seconds.
- Export the trace as CSV and verify the bit pattern of STW1 at the moment NSOLL_A transitions from 0 to a non-zero value.
Step 2 — Verify r0014 (Drive Firmware) and r0954 (Last Alarm)
- Read r0014 = Control Unit firmware. Confirm the version. Known issues are listed on the Siemens Product Support page for the CU240E-2 DP family.
- Read r0954.0…r0954.7 (last 8 alarms). Check for F07900, F07901, F07902 (motor identification issues), F07800, F07801 (no motor connected), and F30002 (DC-link overvoltage).
- Read r0947[0…7] for fault history. Look for F01151, F01152 (CU link loss), F08501 (PROFIBUS failure), or F08502 (PROFIBUS life sign).
Step 3 — Read the Motor Identification Status
- In online mode, navigate to Drive Functions → Motor Identification.
- Read r0047 (status word of motor identification) and r3925 (motor identification progress indicator).
- Read r0345 (motor equivalent circuit diagram derived values) and compare to the motor nameplate. If r0345 shows the default 2.2 kW / 230 V / 50 Hz motor instead of the actual nameplate values, motor data has not been entered manually and the ID has not been run.
Step 4 — Audit Critical Parameters
| Parameter | Name | Expected Value / Range | Symptom if Wrong |
|---|---|---|---|
| p0010 | Drive commissioning parameter filter | 0 = Run, 1 = Quick commissioning, 30 = factory reset | p0010 ≠ 0 blocks parameter writes and may mask setpoint changes |
| p0015 | Macro drive configuration | 12 (standard PROFIdrive) or 15 (Siemens standard) | Wrong macro maps NSOLL_A to wrong connector |
| p0100 | 50 / 60 Hz motor selection | 0 = IEC (50 Hz), 1 = NEMA (60 Hz) | Wrong motor base frequency |
| p0304 / p0305 / p0307 / p0308 / p0310 / p0311 | Rated voltage / current / power / power factor / frequency / speed | From nameplate | If p0345 (derived) does not match, motor ID was not run |
| p0335 | Motor cooling | 0 = self-cooled, 1 = forced-cooled | Wrong I²t model |
| p0400 | Encoder type selection | 0 = no encoder, 1 = HTL, 2 = TTL | Wrong encoder configuration |
| p1080 | Minimum speed | 0 rpm typical; not 1.3 rpm | Setpoint below 1.3 rpm is clamped to 1.3 rpm; can confuse closed-loop controller |
| p1082 | Maximum speed | Rated speed or project limit | Limits speed reference |
| p1083 | Speed for positive direction limit | Leave at 0 (no limit) unless direction lock required | Can block positive rotation if mis-set |
| p1086 | Speed for negative direction limit | 0 default | Can block negative rotation |
| p1120 / p1121 | Ramp-up / ramp-down time | Project-specific (5–30 s typical) | Very short ramp masks real speed |
| p1135 | OFF3 ramp-down time | 0.0 s = use p1121 | Fast stop time |
| p1500 | Setpoint source selection | 0 (default), 6 (PROFIdrive Telegram 1), or 7 (PROFIdrive Telegram 1 + analog) | If p1500 = 0, setpoint comes from analog input 1, not from PROFIBUS |
| p2051[0] | ZSW1 source | r2089[0] | Default — verify not modified |
| p2051[1] | NIST_A source | r0021 (default) — verify not r63 / r1438 | Wrong source echoes setpoint |
| p2000 | Reference speed (100 %) | Rated motor speed, e.g. 3000 rpm | Setpoint scaling off |
| p0922 | PROFIBUS Telegram selection | 1 = Standard Telegram 1 | Wrong telegram — different word count |
| r063[0] | CO: Actual speed unsmoothed | Diagnostic only — should not be used for NIST_A | Using r63 can show raw inverter frequency, not motor speed |
Solution: Five-Point Repair Procedure
Fix 1 — Correct the PLC Control Word Sequencing
Establish a clean STW1 sequence in the PLC program before writing the setpoint. The minimum control word to run the drive is:
// S7-1500 / ET200S example using Telegram 1
// DB30.DBX0 = STW1
// DB30.DBX2 = NSOLL_A (INT)
// DB30.DBX4 = ZSW1 (read back)
// DB30.DBX6 = NIST_A (read back, INT)
// 1) Establish ON command with setpoint enable
"STW1" := 16#047E; // Bits 0,1,2 (ON, OFF2 neg, OFF3 neg) = 1
// Bit 3 (Enable Operation) = 1
// Bit 4 (Ramp enable) = 1
// Bit 5 (Unfreeze) = 1
// Bit 6 (Setpoint enable) = 1
// Bit 10 (Control by PLC) = 1
// 2) Wait for ZSW1 bits 0,1,2,3,4,5,6 all set (drive ready)
// 3) Write NSOLL_A in 0x4000 scaling (16384 dec = p2000 speed)
"NSOLL_A" := INT#16384; // 100 % of p2000
The "ON with ramp, setpoint enabled, control by PLC" pattern is the canonical "0x047E" preset used by Siemens. Any deviation must be documented and tested.
Fix 2 — Reset P1080 to a Project-Appropriate Value
- Open the drive online in STARTER / Startdrive.
- Set p1080 = 0 rpm (no minimum) for a standard V/f application.
- If a minimum speed is required (e.g., 1500 rpm = 25 Hz for a 4-pole motor), set p1080 = 1500 rpm and document it.
- Confirm p1082 = motor rated speed.
- Save and copy RAM to ROM (p0971 = 1).
Fix 3 — Run the Motor Identification (Static + Rotating)
- Disconnect the load if safety requires, or decouple the motor from the gearbox.
- Open the drive online and select Motor identification → Motor data identification.
- Select p1900 = 1 (motor data identification routine) or use p1910 = 1 (motor data identification, only) and p1960 = 1 (speed controller optimization, rotating). The rotating ID ramps the motor to a defined speed for several seconds.
- Issue the ON command in STARTER. The drive runs the ID. Do not interrupt the procedure. Wait until the drive returns to "Operation Enabled" and the alarm "Motor data identification active" (A07991) clears.
- After completion, p1900 is automatically reset to 0. The motor equivalent circuit diagram is written back to p0350–p0369.
- Compare r0345 (motor equivalent circuit) values to the motor nameplate. They should now match within 5 %.
Fix 4 — Correct the Setpoint Source (p1500)
Verify that p1500 (setpoint source selection) is set to 6 (PROFIdrive Telegram 1) or 7 (PROFIdrive Telegram 1 + analog) if you need to fall back to analog. If p1500 = 0 (no main setpoint), the setpoint is taken from analog input 0, not from PROFIBUS. NSOLL_A from the PLC will be discarded.
Fix 5 — Reconnect NIST_A to r0021 (default)
- In the project navigation, open PROFIBUS / PROFINET → Telegram configuration.
- For PZD2 in the receive direction (drive → PLC), ensure the connector source is r0021 (CO: Actual speed smoothed). Do not use r63, r1438, or r1445.
- Save the project and download to the drive.
Verification After Repair
- Power cycle the drive (OFF, wait 30 s, ON) to ensure all parameters are read from non-volatile storage.
- Connect STARTER / Startdrive and verify p0010 = 0 and p0971 has been executed (r3996 = 1).
- Re-run the Trace as in Step 1 of the diagnostic procedure. Confirm the following on a setpoint ramp from 0 to 50 % p2000:
| Check | Pass Condition |
|---|---|
| STW1 bit 6 (Enable Setpoint) | Stays 1 throughout the ramp |
| STW1 bit 10 (Control by PLC) | Stays 1 throughout the ramp |
| ZSW1 bit 10 (n_act = n_set, within r2197 tolerance) | Becomes 1 only when actual speed enters the tolerance band around setpoint |
| ZSW1 bit 3 (Fault active) | 0 throughout the ramp |
| r0021 actual speed | Ramps to setpoint and holds |
| r0026 bit 4 (Frequency Reached) | 1 only when n_act ≈ n_set |
| ZSW1 bit 11 (Current limit reached) | 0 during normal ramp; 1 acceptable only briefly during acceleration |
| Motor current r0027 | Within nameplate rating during acceleration; drops to load current at steady state |
- Run a 60-second steady-state test at 25 %, 50 %, and 100 % of p2000. Verify ZSW1 bit 10 (n_act = n_set) is stable.
- Disconnect the setpoint (set NSOLL_A = 0) and verify the drive ramps down to 0 with p1121 and stops cleanly.
- Re-issue ON command with setpoint still 0, then enable the setpoint in one step. Verify the drive ramps to setpoint, not to 0.
Related Symptoms and Edge Cases
MM440 → PM240-2 Migration Pitfalls
The MICROMASTER 440 uses a 16-bit control word with bits mapped to a different function set than the SINAMICS PROFIdrive profile. In particular:
- MM440 uses a "Current setpoint" and "Frequency setpoint" concept; the SINAMICS uses a normalized "Speed setpoint" scaled to p2000.
- MM440 does not separate "Enable Setpoint" (STW1 bit 6) from "Enable Operation" (STW1 bit 3). The SINAMICS does.
- MM440 ramps to the setpoint from 0 Hz minimum by default; the PM240-2 applies p1080 (which can be non-zero if an MM440 parameter was migrated).
- MM440 has a "Fixed setpoint" mode that can mask the PROFIBUS setpoint if bit configuration is wrong. The PM240-2 uses p1001…p1015 instead.
Re-using the MM440 master configuration without re-mapping the control word is the single most common cause of "the drive starts but won't speed up".
Open-Loop V/f vs. Closed-Loop Vector Control
The CU240E-2 DP supports both V/f (p1300 = 0, 1, 2) and sensorless vector control (p1300 = 20, 22). In V/f mode, the drive is less sensitive to motor model accuracy. In vector control, the motor model must be correct or the drive will not produce torque. If the motor identification was never run, the drive silently operates in the wrong regime:
- V/f → drive produces torque proportional to V/f ratio, motor runs at any setpoint
- Sensorless vector without ID → field-weakening model is wrong, drive current-limits at low speed
Setting p1300 = 0 (linear V/f) is a fast test: if the drive now ramps up to setpoint, the issue is in vector control + missing motor ID. If the drive still stops, the issue is in the control word sequencing.
Setpoint Echo and r63 vs. r0021
r63 (CO: Actual speed unsmoothed) is the speed value at the output of the speed filter, before the closed-loop controller. It can transiently match the setpoint during setpoint changes. r0021 (CO: Actual speed smoothed) is the speed value after the speed filter, which follows the actual motor speed.
Using r63 as NIST_A source is technically allowed (the value is correct in steady state) but it will appear to "follow" the setpoint closely during ramps. If the control is open-loop and the load is low, r63 can equal the setpoint even when the motor is dragging against the load. This is the source of the "feedback mirrors the setpoint" observation. Always source NIST_A from r0021 unless there is a documented reason to do otherwise.
Field-Commissioning Checklist
- Verify nameplate values of motor (V, A, Hz, rpm, kW, cos φ) match p0304–p0311 exactly.
- Run motor data identification (p1900 = 1) before any open-loop setpoint tests.
- Run speed controller optimization (p1960 = 1) for closed-loop applications.
- Verify p0922 = 1 (Telegram 1) and that the PLC slot configuration matches.
- Verify p1500 = 6 (PROFIdrive Telegram 1 setpoint).
- Verify p2000 = rated motor speed.
- Set p1080 = 0 (unless a minimum is project-required).
- Set p1120 / p1121 to project ramp times (e.g., 10 s up, 10 s down).
- Set STW1 to 0x047E before issuing the first setpoint. Keep bit 6 = 1 throughout operation.
- Capture a Trace during the first ramp-up and verify ZSW1 bit 10 transition timing.
- Save to ROM with p0971 = 1.
- Power cycle and repeat the test to ensure parameters persist.
FAQ
Why does my SINAMICS PM240-2 stop the moment the PLC increases the speed setpoint over PROFIBUS?
Most often the PLC is clearing STW1 bit 6 (Enable Setpoint) or bit 10 (Control by PLC) at the same time it writes a non-zero NSOLL_A. The drive interprets this as a setpoint-disable command and ramps to zero. Check the bit pattern of STW1 using a Trace or the online parameter r2050[0] and confirm that bits 0, 1, 2, 3, 6, and 10 all stay = 1 while the setpoint is non-zero.
What is the correct scaling for NSOLL_A and NIST_A on Telegram 1?
0x4000 hex (16384 decimal) = 100 % of p2000 (the reference speed, default = motor rated speed). To command 50 % of rated speed, write 0x2000 (8192 dec) into NSOLL_A. NIST_A returns actual speed in the same scaling. p2000 must be set to rated motor speed (e.g., 3000 rpm) for the scaling to be intuitive.
Why does NIST_A appear to equal the setpoint even when the motor is not spinning?
If the NIST_A source connector (default p2051[1]) has been re-wired to a setpoint-summing connector like r1438 or r1445, the feedback word will echo the setpoint rather than reporting actual speed. Restore p2051[1] = r0021 and verify r0021 (actual speed smoothed) tracks the actual motor speed measured at the shaft.
Does a non-zero P1080 (minimum speed) cause the drive to stop on setpoint rise?
Indirectly. With p1080 = 1.3 rpm and a low-load motor, the drive reaches the lower clamp and then the closed-loop speed controller saturates, which can trigger the "f_set reached prematurely" status (ZSW1 bit 10) and cause the upstream PLC to drop the enable. The standard fix is p1080 = 0 rpm for general-purpose V/f applications or a project-documented minimum such as 1500 rpm for a 4-pole motor at 50 Hz.
How do I complete motor identification on a PM240-2 + CU240E-2 DP?
With the drive in "Ready for Operation" state, set p1900 = 1 (or p1910 = 1 for static-only), then issue the ON command from STARTER / Startdrive. The drive runs the ID for 30–90 seconds and writes the motor equivalent circuit diagram to p0350–p0369. Do not interrupt the procedure. The alarm A07991 (Motor data identification active) clears when complete. For closed-loop vector control, also run p1960 = 1 with the motor decoupled from the load.