Troubleshooting SINAMICS G120 Speed Fluctuation in Fan Drives
A five-fan installation driven by Siemens SINAMICS G120 inverters is reported with one unit showing a persistent actual-speed oscillation around the setpoint. Four inverters run cleanly; one unit fluctuates between 1490 and 1530 l/min against a 1500 l/min reference (a band of roughly ±1.3 to ±2 percent), and the BOP shows the motor current stepping from a 10 A baseline to transient peaks of 30 A and 90 A. The hardware, the configuration, and the resolution are reproduced below as a reusable troubleshooting guide for any PM240P-2 / CU230P-2 fan drive exhibiting similar behavior.
1. Problem Description and System Configuration
The reported system comprises:
- Controller: SIMATIC S7-1515F-2 PN (6ES7 515-2FM01-0AB0), firmware V2.6, programmed in TIA Portal V15.1.
- Power Module: SINAMICS PM240P-2 IP20-FSD-A-400V-22kW (6SL3210-1RE24-5AL0), 22 kW / 400 V three-phase, frame size FSD.
- Control Unit: SINAMICS G120 CU230P-2 PN (6SL3243-0BB30-1FA0).
- Operator Panel: SINAMICS G120 BOP (6SL3255-0AA00-4BA0).
- Load: Five centrifugal fans in parallel, each fed by an identical drive package.
- Communication: PROFINET between the S7-1515F-2 PN and the CU230P-2 PN.
The CU230P-2 PN is the HVAC/pump/fan-oriented Control Unit and supports the Standard Drive Control application class with a reduced parameter set, on-board PTC/KTY evaluation, and load monitoring tuned to the quadratic torque-versus-speed characteristic of a centrifugal fan. The full operating instructions are at SINAMICS G120 CU230P-2 Control Unit Operating Instructions; the parameter reference (List Manual) is at SINAMICS G120/S120 List Manual.
The PM240P-2 22 kW module is rated approximately as follows on a 400 V three-phase system:
- Rated output current:
45 A - Base-load current (IL):
45 A - Maximum output current for 3 s (overload):
67.5 A - Peak output current (peak load cycle):
90 A
The reported 90 A peak therefore reaches the inverter's hard hardware current limit. A centrifugal fan with a quadratic load curve does not, by itself, demand 200 percent of rated current during steady state; the observed 9× excursion is a control-loop artifact, not a process demand.
2. Symptom Analysis: Reading the Speed Excursion
Before any parameter change, the speed excursion must be characterized. The following read-only parameters are visible on the BOP or via the CU230P-2 webserver and should be recorded over a five-minute window at the field setpoint:
| Parameter | Quantity | Unit | What it tells you |
|---|---|---|---|
r0021 |
Actual speed | rpm or % | The actual mechanical speed at the motor shaft |
r0027 |
Output current (smoothed) | A | Real-time motor current demand |
r0031 |
Actual torque | Nm | Mechanical load torque |
r0063[0] |
Speed setpoint after ramp | rpm | The setpoint the speed controller is chasing |
r0079[0] |
Torque setpoint | Nm | The torque the speed controller is demanding |
r0080[0] |
Torque utilization | % | Approach to torque limit |
A 10 A baseline corresponds to roughly 22 percent of the 22 kW drive's rated current, which is consistent with a fan running at 50-70 percent of rated flow (centrifugal fan power scales with the cube of speed). The 90 A peak is 200 percent rated, which can only originate from one of:
- The current controller activating transiently to protect the IGBTs.
- A momentary stall, sudden load step, or mechanical jam.
- Acceleration energy injected by an unstable speed controller.
- V/f instability at low slip and low motor inductance.
The "every few seconds" periodicity rules out a single mechanical shock and points to a control-loop limit cycle. Fan mechanical load is non-oscillatory; therefore the oscillation source is inside the drive.
3. Root Cause Analysis: Three-Contributing-Factor Model
For a SINAMICS G120 driving a centrifugal fan, ±2 percent speed fluctuation with sub-second current spikes typically arises from a combination of three factors. Each factor alone can produce a borderline-acceptable drive; in combination they produce the symptom described.
Cause 1 — Un-tuned speed controller. A low proportional gain (p1450) combined with a long integral time (p1451) cannot damp disturbances fast enough; the controller oscillates around setpoint with a period dictated by the mechanical time constant of the load.
Cause 2 — Inadequate current/torque limit. If p0640 (current limit) is left at the drive's hardware maximum, the drive will not back off the torque demand before the IGBTs overheat. When the current limit engages, the speed controller is decoupled from the load — the integrator winds up, and when the clamp releases, the integrator unwinds with a kick that overshoots the setpoint.
Cause 3 — Loose power terminal. A loose or oxidized terminal at the drive output or motor junction box introduces a contact resistance that varies with temperature. The variable resistance disturbs the V/f output and creates a low-frequency ripple in the actual speed. This is the most common cause of single-drive instability in a multi-drive fleet; the others are usually set at commissioning and apply equally to all five units.
90 A peak equals the inverter's hard hardware limit, and lowering p0640 to the motor's rated current removed the windup. The third cause remains a probabilistic risk to verify mechanically.
4. Resolution Path 1 — Speed Controller Auto-Tuning
The CU230P-2 PN supports three levels of self-optimization through p1960:
| Value | Function | When to use |
|---|---|---|
p1960 = 1 |
Rotating measurement with full speed-controller optimization | Fan can rotate freely; cold motor; clean mechanical install |
p1960 = 2 |
Non-rotating measurement with controller optimization | Coupled load that cannot be turned; motor identification only |
p1960 = 4 |
Speed-controller optimization only (no motor ID) | Motor data already known and entered manually; duplicate drive |
p1960 = 5 |
Vector controller with torque pre-control (extended) | Vector control (p1300 ≥ 20); high dynamic response |
For a centrifugal fan that can rotate freely, start with p1960 = 1:
- Confirm the motor is uncoupled from any non-rotating load (or that the fan blades can turn freely with no obstruction).
- Verify the safety chain: drive enable, ON/OFF1, and absence of any active fault (alarm log cleared via
p3981 = 1if needed). - Set
p1960 = 1. - Issue the run command from the PLC or BOP. The drive accelerates to roughly 80 percent rated speed, performs a controlled slow ramp while measuring motor parameters, and then writes
p1450(proportional gain),p1451(integral time),p1470(pre-control gain), and updates thep0341-p0350motor model parameters. - Wait for alarm
A07991"Drive: motor data identification and speed controller optimization running" to clear. - Reset
p1960 = 0to prevent a re-trigger on the next run. - Read back the resulting values of
p1450,p1451, andp1470and document them in the commissioning sheet.
Expected ranges for a 22 kW fan with standard SI motor:
-
p1450(Kp) — between0.05and0.5Nm/rpm -
p1451(Tn) — between50and200ms -
p1470(pre-control) — between0.5and1.0
If the fan cannot rotate freely (e.g., a backward-curved impeller that the user does not want to spin with no load) or if the motor data is already known precisely, use p1960 = 2 for the non-rotating variant. The drive will inject short current pulses and measure rotor time constant, leakage inductance, and stator resistance without rotating the shaft.
For manual tuning when the wizard is not available, the iterative procedure is:
- Set
p1450 = 0.01,p1451 = 2000(effectively proportional only). - Run at 30 percent setpoint, monitor
r0021for steady oscillation. - Increase
p1450in steps of0.02–0.05until the response is critically damped to a small step disturbance. - Decrease
p1451in steps of100–200ms until disturbance rejection settles within 1–2 seconds. - Validate at
30 %,60 %, and100 %setpoints.
Reference the procedure in the CU230P-2 Operating Instructions, section "Self-optimization of the speed controller" for the canonical Siemens flow.
5. Resolution Path 2 — Current and Torque Limit Configuration
The current and torque limits must be configured to the motor, not the drive. The PM240P-2 22 kW module can deliver 200 percent rated current briefly, but the motor cannot. Limits are set on three layers, each of which must be reviewed:
| Parameter | Function | Default | Recommended for fan |
|---|---|---|---|
p0640[0] |
Current limit (motor) | Drive Imax | Motor rated current from nameplate (≈ 42 A for a 22 kW IE3 motor) |
p1520[0] |
Upper torque limit | 100 % | 100 % (default; do not increase) |
p1521[0] |
Lower torque limit | −100 % | 0 % (no regenerative mode on a fan) |
p1530[0] |
Upper power limit | Motor Pn | Motor Pn |
p1531[0] |
Lower power limit | −Motor Pn | 0 (no regenerative power) |
Setting p1521 = 0 % is a critical step for fans. A centrifugal fan has no regenerative mode in normal operation; allowing a negative torque limit causes the drive to attempt braking the moment the load drops (for example, when the inlet damper opens or the duct pressure equalizes), which decelerates the motor, which the speed controller then re-accelerates with overshoot. This is one of the most common hidden causes of fan speed hunting.
Setting p0640 equal to the motor nameplate current causes the current limit to engage before the drive reaches the 90 A hardware peak. The speed controller's torque demand is then bounded at a sensible value, integrator windup cannot accumulate, and the limit cycle is suppressed.
Verification of the current limit: trace r0027 and r0080 simultaneously. If r0027 reaches p0640 for more than 2 seconds, the drive is current-limiting and either the load is too high or the ramp is too steep; consider extending p1120 / p1121 or re-evaluating the motor nameplate data.
6. Resolution Path 3 — Mechanical and Power Connection Verification
Mechanical and electrical integrity checks must be performed even after a successful parameter change, because vibration-induced terminal loosening is the most common cause of recurrent drive instability in a fan installation. Each fan generates broadband vibration; over months, terminal screws back out. A drive whose parameters were set correctly at commissioning can still oscillate six months later because the motor terminal has loosened by half a turn.
Power terminal torque check. For the PM240P-2 FSD frame, the manual specifies an output terminal torque of 2.5 Nm. For a 22 kW motor junction box, the typical terminal block torque is 4–6 Nm. Both must be re-torqued to specification with a calibrated torque wrench.
Cable sizing verification. For 45 A continuous on a 400 V three-phase motor with PVC-insulated copper cable, installation method C (per IEC 60364-5-52), the minimum cross-section is 10 mm² for a 30 K temperature rise, or 16 mm² for 20 K. Smaller cables introduce a voltage drop that destabilizes the V/f output at low slip.
EMC and grounding.
- PE conductor bonded at both ends, loop impedance
< 0.1 Ω. - Shielded motor cable with 360° EMC glands at both ends.
- Built-in EMC filter on the PM240P-2 FSD frame verified to be installed and grounded to the cabinet backplate with low impedance.
Mechanical check.
- Shaft turns freely by hand with power locked out and tagged out (LOTO).
- Coupling alignment:
0.1 mmparallel offset maximum,0.05 mmangular. - Bearing condition: no play, no roughness on rotation, no audible rumble.
- Impeller balance verified per ISO 1940 G6.3 for fans in this size class.
For the FSD frame, the G120 PM240P-2 manual is at SINAMICS G120 PM240P-2 Power Module Operating Instructions.
7. Reference Parameter Table for Fan Tuning
The following parameters are the most commonly adjusted for SINAMICS G120 fan applications. Values are starting points; final values must be tuned to the specific motor and load combination.
| Parameter | Name | Default | Recommended for fan | Notes |
|---|---|---|---|---|
p1300 |
Open-loop/closed-loop control mode | 0 (V/f linear) | 0 or 1 (FCC) | FCC = flux-current control, better low-speed torque |
p1310 |
Voltage boost, continuous | 50 % | 0 % for self-cooled motor | Reduces motor heating at low speed |
p1311 |
Voltage boost, acceleration | 0 % | 0 % | Use longer ramp instead of boost |
p1312 |
Voltage boost, starting | 0 % | 0 % | Set only if torque is required at standstill |
p1335 |
Slip compensation | 0 % | 100 % | Compensates the natural droop of an induction motor on a fan load |
p1450 |
Speed controller Kp (gain) | 0.3 | 0.05–0.5 (after auto-tune) | Too high: oscillation. Too low: slow response. |
p1451 |
Speed controller Tn (integral time) | 100 ms | 50–200 ms (after auto-tune) | Higher Tn: more sluggish. Lower Tn: faster disturbance rejection, risk of instability. |
p1470 |
Speed pre-control gain | 0 | 0.5–1.0 | Set to 1.0 for fan applications with a quadratic load curve |
p1520 |
Upper torque limit | 100 % | 100 % | Do not exceed motor rated torque |
p1521 |
Lower torque limit | −100 % | 0 % | Critical: prevents regenerative mode on a fan |
p1530 |
Upper power limit | Motor Pn | Motor Pn | Default is correct |
p1531 |
Lower power limit | −Motor Pn | 0 | Critical: prevents regenerative power on a fan |
p1120 |
Ramp-up time | 10 s | 20–60 s | Soft start protects fan bearings and ducting |
p1121 |
Ramp-down time | 10 s | 20–60 s | Soft stop prevents hydraulic shock in ducting |
p0640 |
Current limit | Drive Imax | Motor nameplate In | Must equal motor nameplate; never exceed |
p1960 |
Auto-tuning mode | 0 | 1 (rotating) at commissioning | Reset to 0 after use |
p2193 |
Load monitoring threshold | 0 % | −10 % to +10 % | Detect broken belt or impeller damage |
p1215 |
Motor holding brake configuration | 0 | 0 | Fans do not use a holding brake |
8. TIA Portal v15.1 Integration and Diagnostic Tags
For PROFINET integration between the S7-1515F-2 PN and the CU230P-2 PN, the standard telegram assignment is Telegram 1 (output) and Telegram 1 (input), with optional Supplementary Telegram 350 for additional diagnostics. The word mapping is:
| Direction | Address (IW/QW) | Content | Scaling |
|---|---|---|---|
| Drive → PLC | IW 0 |
Status word 1 (ZSW1) | Bit field (see List Manual) |
| Drive → PLC | IW 2 |
Actual speed (Nist) | 4000 hex = p2000 reference speed |
| Drive → PLC | IW 4 |
Actual current | 4000 hex = p2002 reference current |
| Drive → PLC | IW 6 |
Actual torque | 4000 hex = p2003 reference torque |
| Drive → PLC | IW 8 |
Actual power | 4000 hex = p2004 reference power |
| Drive → PLC | IW 10 |
Status word 2 (ZSW2) | Bit field |
| PLC → Drive | QW 0 |
Control word 1 (STW1) | Bit field |
| PLC → Drive | QW 2 |
Speed setpoint (Nsoll) | 4000 hex = p2000 reference speed |
| PLC → Drive | QW 4 |
Supplementary setpoint | Used for PID output, etc. |
To enable the supplementary diagnostic telegram 350 in TIA Portal V15.1:
- Open the G120 device in the project tree.
- Switch to the Device View and click the CU230P-2 PN.
- Open Properties → PROFINET interface → IO cycle.
- Add Telegram 350 to the input slot.
- Recompile the device configuration and download to the CPU.
To read a parameter by index from the S7 program (for example, to read r0027 on demand), use the RDREC instruction (SFB52) with the following record structure:
// SCL example: read r0027 (output current, smoothed) on demand
#req := TRUE;
#index := 27; // parameter number
#ID := 16#0038; // PROFINET device ID (from device view)
#MLEN := 4; // expected length in bytes
#RECORD := P#DB1.DBX0.0 BYTE 4; // destination buffer
#busy := RDREC_DB.RDREC(REQ:=#req, ID:=#ID, INDEX:=#index,
MLEN:=#MLEN, RECORD:=#RECORD,
VALID=>#valid, ERROR=>#err, STATUS=>#status);
IF #valid THEN
// WORD at RECORD[0] is parameter value scaled to p2002
// Convert to amperes by multiplying by p2002 / 4000h
END_IF;
To write a parameter, use the WRREC instruction (SFB53). The same pattern is documented in the S7-1500 system manual at SIMATIC S7-1500 Automation System.
For real-time trace, the CU230P-2 PN has a built-in webserver (enabled with p8981 = 1) accessible at https://<drive-ip>/diagnostic. The webserver provides a two-channel scope function with sample times down to 4 ms — sufficient to capture the 10/30/90 A current step and the corresponding speed excursion simultaneously.
9. Verification Procedure
After applying the three resolution paths, verify the fix with the following steps:
9.1 Setpoint sweep test
- Run the fan at
25 %,50 %,75 %, and100 %of rated flow. - At each setpoint, record
r0021,r0027, andr0031for at least 5 minutes. - Acceptance: speed ripple
< ±1 %of setpoint, current ripple< ±5 %of average, no F-class or A-class alarms in the fault log.
9.2 Step response test
- Apply a 10 percent step change in setpoint (e.g.,
50 %→60 %). - Record the actual speed response via the webserver scope.
- Acceptance: overshoot
< 5 %, settling time< 5 s.
9.3 Long-term drift test
- Run at 100 percent setpoint for 24 hours.
- Record the actual speed trend in TIA Portal using the trace function of the S7-1500.
- Acceptance: no sustained drift, no alarms, no thermal shutdown (F30004, F30005, F30011 absent from the log).
9.4 Operator panel verification
- Display
r0021on the BOP by pressing the FN key until r0021 is shown. - Press FN again to toggle to
r0027; verify the current is steady at the expected baseline (no90 Apeaks). - Cycle through the menu and confirm no alarm code is active.
9.5 PROFINET diagnostic verification
- In TIA Portal, open Online & Diagnostics → PROFINET diagnostics.
- Confirm the cycle time is stable and the life sign counter is incrementing without gaps.
- Check for any PROFINET alarms (channel diagnostics, port diagnostics).
If any of these verifications fail, return to Section 4 and re-run auto-tuning with p1960 = 1. If the parameter values returned by p1960 differ significantly from the first run (e.g., p1450 changing by more than 2×), suspect a motor data problem: re-enter the motor nameplate data into p0301–p0311 and retry.
10. Preventive Tuning Template for Fan Fleets
For installations with multiple identical fans, a single successful parameter set should be propagated to all units to ensure consistent performance. The propagation procedure in TIA Portal V15.1 is:
- Connect to the working drive via PROFINET.
- Open Online → Upload from device to capture the live parameter set into the project.
- Save the project as the master template.
- For each additional drive, perform Online → Download to device to push the same parameter set.
- After each download, run
p1960 = 4(controller optimization only, no motor ID) to fine-tune the speed loop to that specific motor. The motor data is already identical, but the mechanical load may differ slightly.
Drive-to-drive parameter copy is also possible using a memory card. The procedure is:
- Insert a Siemens SD card (order number 6SL3054-4AG00-2AA0, or compatible) into the working CU230P-2 PN.
- Set
p0802 = 2to copy the drive's parameter set to the card. - Power down, remove the card, insert into the next drive.
- Set
p0802 = 3to copy from the card to the new drive. - After all drives are populated, run
p1960 = 4on each to optimize the controller individually.
For fleet consistency, document the resulting parameters in a commissioning sheet per drive. The minimum set to record is:
-
p0304(motor rated voltage),p0305(motor rated current),p0307(motor rated power) -
p0310(motor rated frequency),p0311(motor rated speed) -
p1450,p1451(speed controller) -
p1520,p1521(torque limits) -
p0640(current limit) -
p1120,p1121(ramp times) -
p1960(auto-tuning mode, set to 0 after use)
90 A transient indicates the drive was previously operating without an active current limit, which is a non-ideal configuration for any motor-driven load and would have produced a fault under more demanding conditions.
11. Frequently Asked Questions
Why does my SINAMICS G120 fan drive oscillate on only one of five identical units?
The most common cause is a single mechanical or electrical factor at that unit: a loose output terminal at the drive or motor junction box, a worn coupling, a damaged bearing, or a partial cable break. Auto-tuning and current-limit correction equalize the parameter set across the fleet, but the mechanical integrity of each unit must be verified individually. Re-torque all power terminals to the values in the PM240P-2 manual (2.5 Nm for FSD) and to the motor nameplate value (typically 4-6 Nm for a 22 kW motor).
What is the difference between p0640 and p1520 in SINAMICS G120?
p0640 is the current limit expressed in amperes (motor-side current); p1520 is the upper torque limit expressed in percent of rated torque. p0640 engages first because the current controller is the inner-most loop; p1520 is the outer-loop torque cap. For a fan, set p0640 to the motor nameplate current and leave p1520 at the default 100 percent unless a soft start is required.
Can I run p1960 = 1 (rotating auto-tuning) with the fan connected?
Yes, provided the fan can rotate freely. The CU230P-2 PN ramps the motor to approximately 80 percent of rated speed during identification; the fan impeller must not be obstructed. If the fan cannot turn (e.g., it is ducted to a closed system or has a non-rotation direction), use p1960 = 2 (non-rotating motor identification) or p1960 = 4 (controller optimization only with previously known motor data).
Why is the lower torque limit p1521 important for fans?
Setting p1521 = 0 % disables regenerative torque on a single-quadrant fan load. Without this, a momentary load drop (e.g., a duct pressure equalization or inlet damper movement) causes the drive to attempt braking, the speed controller to fight the brake with positive torque, and the system to oscillate. For centrifugal fans the regenerative mode is never desired; both p1521 and p1531 should be set to 0.
How do I monitor G120 speed oscillation remotely via PROFINET?
Add Telegram 350 to the PROFINET slot configuration in TIA Portal V15.1, or use the RDREC instruction (SFB52) to read r0021 (actual speed) and r0027 (output current) by parameter index. For real-time visualization, enable the CU230P-2 webserver with p8981 = 1 and access https://<drive-ip>/diagnostic for the integrated two-channel scope with 4 ms sample time.
Is the PM240P-2 22 kW module oversized for a fan with 30 A peak current?
The 22 kW rating is matched to the motor's continuous mechanical power. The 90 A peaks in the reported case were the drive hitting its hardware current limit, not the motor drawing that current in steady state. A correctly-tuned drive on a correctly-sized motor should show steady current in the 8-15 A range at 50-70 percent flow, well below both the drive's continuous and short-term ratings.