Overview
Siemens variable-frequency drive families — SINAMICS G/S/V, the legacy SIMOREG DC-MASTER (now SINAMICS DCM), and the MICROMASTER 4 line — expose a closed-loop controller that already implements the speed, current, and (where applicable) flux regulators internally. When an S7-1200 PLC issues a speed setpoint over PROFIBUS DP or PROFINET, the drive performs all of the inner-loop mathematics; the PLC does not need to re-implement the drive transfer function. This article documents the underlying mathematical models of these three drive families for engineers who must (a) size an outer supervisory loop on the PLC, (b) verify stability analytically before commissioning, or (c) simulate the mechatronic system in MATLAB/Simulink ahead of building hardware.
Why You Generally Do Not Program the Drive Transfer Function in the PLC
The PLC↔drive boundary is a standardized cyclic data channel. Once a telegram (Standard Telegram 1, 3, 5, 9 for SINAMICS; PPO types 1–5 for SIMOREG 6RA70; USS/DP for MICROMASTER) is configured, every control word, status word, setpoint, and actual value is mapped to fixed bits/words. The drive's internal PI controllers (current, speed, flux, EMF) close their loops in microseconds inside the Control Unit. The PLC closes only the outer supervisory loop — typically a process PID whose output is the speed setpoint NSOLL. Re-deriving the inner drive dynamics inside the PLC adds CPU load, introduces aliasing between the PLC cycle (1–10 ms) and the drive cycle (125 µs–1 ms), and provides no commissioning benefit because the drive's autotuning routine already identifies motor parameters.
Drive Control Architecture: From Setpoint to Motor Shaft
The classical cascaded structure used by every Siemens drive from the MICROMASTER 4 up to the SINAMICS S120 is:
- Speed controller — PI; bandwidth typically 30–100 Hz. Output = torque setpoint (M_SOLL).
- Current/torque controller — PI; bandwidth typically 500–2000 Hz. Output = voltage/flux setpoint.
- Modulator / firing unit — PWM (AC drives) or thyristor bridge (DC drives).
- Power stage + motor — integrator between voltage and speed, first-order lag between voltage and current.
Each loop is at least a decade faster than the loop it feeds, which is why engineers model the inner loops as a unity-gain block when sizing the outer (PLC-side) controller.
SINAMICS G120/S120 Speed Control Transfer Function
The SINAMICS speed controller with active moment of inertia compensation (p1496 / p1498) is documented in the SINAMICS S120/S150 List Manual. The small-signal block diagram from speed setpoint n* to actual speed n is:
Plant (motor + load):
G_motor(s) = 1 / (J·s + b) [rad/s per Nm]
PI speed controller:
G_speed(s) = K_p · (1 + 1 / (T_n·s))
Default scaling on SINAMICS G120 (CU240E-2 / CU250S-2):
- K_p (p1460) normalized to motor rated torque; default 0.3 Nm/(rad/s) for a 1LE1 induction motor of equivalent rating.
- T_n (p1461) default = 400 ms.
- Speed controller cycle (r2064) = p0115[1]; typically 1 ms for CU240E-2, 125 µs for CU320-2.
- Current controller cycle 250 µs (CU240E-2) or 125 µs (CU320-2).
Closed-loop transfer function (linear approximation, no friction, no load disturbance):
T(s) = n(s)/n*(s) = K_p·(1 + T_n·s) / [J·T_n·s² + (b·T_n + K_p)·s]
For symmetric-optimum tuning, set:
K_p = J / (2 · T_n · K_current) ; T_n = a · T_Σ
where K_current ≈ M_max / I_max (drive-side current-loop gain), T_Σ is the sum of all small time constants in the inner loop (current sample + PWM + IGBT dead time ≈ 0.5–1 ms), and a = 2 (Krause classic) or 3 (broader stability margin). This yields a phase margin near 65° and a closed-loop bandwidth ≈ 1/(2·T_n).
SINAMICS DCM (DC Master / SIMOREG 6RA70) Transfer Function
Because the SINAMICS DCM controls the armature of a DC shunt or separately excited motor, the architecture is single-quadrant-friendly and the math reduces to two cascaded PI loops over a first-order plant. See the SINAMICS DCM product page for the catalog range (6RM80 chassis series, 6RM90 adaptive) and the SINAMICS DCM DC Converter manual for the parameter list.
Armature current loop
Plant: armature inductance L_a and resistance R_a form a first-order lag; back-EMF e = k·Φ·ω enters as a disturbance:
G_ia(s) = 1 / (L_a·s + R_a) [A per V]
PI current controller (P155 = K_p,I; P156 = T_n,I):
G_ci(s) = K_p,I · (1 + 1 / (T_n,I·s))
For symmetric optimum: K_p,I = L_a / (2·T_Σ) and T_n,I = L_a / R_a, where T_Σ sums the thyristor firing delay (≈ 1.67 ms at 50 Hz, 6-pulse) and the current measurement filter (0.5–1 ms). Resulting closed-loop bandwidth ≈ 1/(2·T_Σ) ≈ 250 Hz.
Speed loop
Plant: J·s + b. Speed PI (P225 = K_p,n; P226 = T_n,n) closes over the already-tuned current loop:
T_n,closed(s) ≈ 1 / (2·T_n,n·s + 1) for T_n,n ≫ T_Σ
Default SIMOREG 6RA70 / SINAMICS DCM parameters:
- P155 (armature current Kp) ≈ 0.5–1.5 on a 6RA70 200 A unit; 1.0–3.0 on a 6RA70 600 A unit.
- P225 (speed Kp) ≈ 3–10; normalized to rated speed / rated torque.
- P226 (speed Tn) ≈ 50–200 ms.
MICROMASTER 4 Transfer Function
MICROMASTER 4 (MM4 — 6SE6400-2 series; MM420, MM430, MM440) uses a fixed-structure V/f or sensorless vector (SLVC) controller on a C166-core Control Unit. The transfer function is intentionally simplified for fast commissioning without autotuning:
G_speed,MM4(s) ≈ K_p_MM4 · (1 + 1 / (T_n_MM4·s)) / (J·s + b)
- K_p_MM4 mapped to P1460 (analogous to SINAMICS).
- T_n_MM4 default ≈ 400 ms (P1461).
- PWM carrier P1800 default 4 kHz (MM420/430) or 4–16 kHz (MM440).
- Current controller cycle 1 ms; speed controller cycle 4 ms.
- SLVC mode (P1300 = 1) requires a stable motor model with motor data identification (P1910).
The MM4 is intentionally slower than SINAMICS G120 (current loop ≈ 1 kHz vs. 2–4 kHz). When porting a model from MM4 to G120/S120, scale the inner-loop bandwidth by 2× and the speed-loop Kp accordingly.
PROFIBUS / PROFINET Telegram Mapping with S7-1200
Standard Telegram 1 (STW1/ZSW1 + NSOLL/NIST) is the typical choice for speed control on SINAMICS G120. S7-1200 supports SINAMICS drives via the SINA_SPEED block or via a generic PROFIdrive profile block library. Reference: SINAMICS G120 + S7-1200 Startdrive example.
| Telegram | PZD1 out | PZD2 out | PZD1 in | PZD2 in | Typical use |
|---|---|---|---|---|---|
| 1 | STW1 | NSOLL | ZSW1 | NIST | Speed mode, single encoder |
| 2 | STW1 | NSOLL | ZSW1 | NIST + NIST_GL | Speed with two encoders |
| 3 | STW1 + STW2 | NSOLL | ZSW1 + ZSW2 | NIST | Speed with extended control word |
| 5 | STW1 + STW2 | NSOLL + torque limit | ZSW1 + ZSW2 | NIST + actual torque | Speed + torque limiting |
| 9 | STW1 + STW2 + M_LIM | NSOLL | ZSW1 + ZSW2 | NIST + M_IST + fault code | Speed + torque with diagnostic word |
| SIMOREG PPO 5 | CTW1 | NSOLL | STW1 | NIST | DC Master legacy PROFIBUS |
Bit fields (Standard Telegram 1)
- STW1.0 = ON/OFF1; STW1.1 = OFF2 (coast stop); STW1.2 = OFF3 (fast stop); STW1.3 = enable operation; STW1.4 = ramp-function generator enable; STW1.6 = setpoint enable; STW1.10 = control by PLC.
- NSOLL = speed setpoint, normalized 0x4000 = rated speed (p2000).
- ZSW1.2 = operation enabled; ZSW1.3 = fault present; ZSW1.7 = no OFF2 active; ZSW1.10 = control requested from PLC.
State diagram sequence (S7-1200 startup)
Per PROFIdrive, the drive must traverse S0 → S1 → S2 → S3 → S4 in order. The PLC issues:
- STW1 = 0x047E (S2 — Ready-to-switch-on, OFF1 high, OFF2 low, OFF3 low, enable low).
- Wait for ZSW1 = 0x0631 (S2 acknowledged).
- STW1 = 0x047F (S3 — Ready, ON/OFF1 high).
- STW1 = 0x047F + setpoint enable STW1.6 → S4 (Operation enabled).
- Apply NSOLL ramps.
Parameter Reference Tables
| Parameter | SINAMICS G120 | SINAMICS DCM | MICROMASTER 4 | Function |
|---|---|---|---|---|
| Speed Kp | p1460 | P225 | P1460 | Proportional gain of speed PI |
| Speed Tn | p1461 | P226 | P1461 | Integral time of speed PI |
| Current Kp | p1715 (auto) | P155 | p1715 (auto) | Proportional gain of current PI |
| Current Tn | p1717 (auto) | P156 | p1717 (auto) | Integral time of current PI |
| Acceleration ramp | p1120 | P303 | P1120 | Ramp-up time in seconds |
| Deceleration ramp | p1121 | P304 | P1121 | Ramp-down time in seconds |
| Rated speed reference | p2000 | P741 | P2000 | Normalization for NSOLL/NIST |
| Control mode | p1300 | P100 | P1300 | 0 = V/f, 1 = SLVC, 20 = torque |
| Motor identification | p1900 | P051 = 27 | P1910 | Static + rotating ID |
Practical Tuning Procedure on S7-1200 + SINAMICS G120
- Wire the drive per the Startdrive G120 example; bring up the drive in JOG from Starter/Startdrive to verify direction.
- Enter motor nameplate data (p0304, p0305, p0307, p0310, p0311, p0335).
- Run motor identification (p1900 = 2) — measures stator resistance, leakage reactance, magnetizing curve. Motor must be unloaded for rotating measurement.
- Activate the speed controller autotune (p1960 = 1, or p1959 = 4 for SINAMICS V90). Drive measures moment of inertia and computes Kp/Tn automatically.
- Configure Standard Telegram 1 in the S7-1200 device configuration; map PZD to a global DB (e.g., DB100: WORD 0 = STW1, WORD 2 = NSOLL, WORD 4 = ZSW1, WORD 6 = NIST).
- Verify direction: write NSOLL = 0x1000 (25% of p2000) only after ZSW1.2 = 1. Confirm ZSW1.2 goes high and NIST rises.
- Step-test: pulse 0x1000 → 0x2000 → 0x1000 with 200 ms hold; observe NIST response in Starter trace.
- If overshoot > 10%, increase p1461 (longer Tn) by 20%; if sluggish, reduce p1461 by 20%.
Verification and Commissioning Checks
- Trace r0060 (speed setpoint before filter) and r0061 (actual speed, unsmoothed) in Starter trace; verify r0061 follows r0060 with < 50 ms lag and no ringing.
- Trace r0078 (torque actual) during step load — verify current loop bandwidth > 500 Hz by step-loading and reading r0075 (current actual) response.
- Confirm F07900 (motor blocked) does not trigger during normal ramp by checking r0080 (torque) stays below p2177 (motor blocked threshold).
- Confirm F07901 (motor overspeed) does not trigger; default threshold is p2162 = 1.2 × p2000.
- If a process PID runs on the S7-1200, log PID_Compact output and process variable at 100 ms; verify the process loop has phase margin > 30° before enabling the drive run signal.
- Verify PROFIBUS watchdog (p2040) > 2 × OB1 cycle to avoid spurious F01910 communication faults.
Troubleshooting Matrix
| Symptom | Likely cause | Drive parameter to inspect | PLC-side action |
|---|---|---|---|
| ZSW1.3 = 1 immediately on startup | STW1.0–STW1.6 not all set per PROFIdrive state graph | r0002 drive state | Sequence OFF → Ready → Switching-on → Operation-enabled per Siemens state diagram |
| Motor runs but NIST = 0 in PLC | p2000 normalization mismatch | p2000, r0020 | Scale NSOLL = target_rpm / p2000 · 0x4000; cross-check r0020 against NIST |
| Oscillation at low speed | p1460 too high or encoder feedback missing in SLVC | p1460, p0400 | Reduce p1460 by 30%; switch control mode (p1300) from 0 (V/f) to 1 (SLVC) only if encoder present |
| F07901 motor overspeed | Mechanical resonance or wrong p2000 | p2162 overspeed threshold | Verify motor nameplate rpm vs. p0311; tune speed filter p1656 |
| F30002 DC-link undervoltage on ramp-down | Regenerative energy exceeds brake chopper rating | p1240 brake chopper config | Extend p1121 deceleration ramp to > 3 × J/b |
| Field-weakening oscillation (DCM) | Speed Kp not scheduled against flux | r521, r522, P225 | Enable gain scheduling via FFB; reduce P225 above base speed |
| PROFIBUS timeout F01910 | Watchdog too short for PLC scan time | p2040 PROFIBUS monitoring | Extend p2040 to > 2 × OB1 cycle; confirm DP slave is alive in HW Config |
| F07902 motor stalled | Mechanical jam or shaft torque > p2177 | p2177 stall threshold, r0080 | Reduce load; raise p2177 if benign overload expected during start |
| Drive trips on enable but no fault code | STW1.10 (control by PLC) not set | r0002 = 35 | Set STW1.10 = 1 in the S7-1200 before releasing the run bit |
Notes on Simulation vs. Real Commissioning
If the engineering goal is to verify stability before the motor is installed (e.g., for a tender, FMEA, or HAZOP), the transfer functions above are sufficient for a MATLAB/Simulink model using the symmetric-optimum rule:
T_n = a · T_Σ ; K_p = J / (2 · a · T_Σ · K_inner)
with a = 2 (classic Krause) or a = 3 (broader stability margin). Cross-check against the SINAMICS autotune output and accept the autotune value if it lies within ±30% of the calculated Kp/Tn pair. For multi-mass systems (gearbox, belt, elastic coupling), insert a second-order torsional resonance between motor and load and re-tune using Ziegler–Nichols closed-loop (Pn, Tn) or the Bode-plot method (target phase margin 45–65°, gain margin > 8 dB).
Field-Proven Caveats
- Encoderless (SLVC) SINAMICS G120 speed control is reliable above 5% of rated speed; below that, the back-EMF model breaks down and the loop behaves open-loop. Use an encoder (p0400) if the process demands speed below 5% rated.
- Sinusoidal filter output (VFD) requires either derated PWM (p1800 reduced to 4 kHz) or firmware support for the filter capacitance compensation; otherwise the current loop will overshoot and trip F30001 overcurrent.
- When two S7-1200 CPUs share the same drive via PROFIBUS, only one may own STW1.10; the second must use Telegram 3 (read-only status) for HMI mirroring.
- On SINAMICS DCM with 50 Hz mains, the thyristor firing delay 1.67 ms is dominant. At 60 Hz mains it falls to 1.39 ms and the optimal P155 must be increased by 1.67/1.39 ≈ 20% to maintain symmetric optimum.
- Regenerative SINAMICS G120 (frame sizes FS E and above with active line module) requires the firmware version > 4.7 SP3 for the line-side controller; check r0018 if F30002 persists on no-load ramp-down.
FAQ
Do I need to implement the drive transfer function in the S7-1200 program?
No. The drive's internal current, speed, and flux PI controllers already close all inner loops. The PLC only sends a normalized speed setpoint (NSOLL) over PROFIBUS/PROFINET and reads back the actual speed (NIST). Re-implementing the motor model on the PLC side adds CPU load, introduces aliasing between the 1–10 ms PLC cycle and the 125 µs–1 ms drive cycle, and provides no commissioning benefit.
Which telegram should I select for a basic speed-control application with a G120 and S7-1200?
Standard Telegram 1 (STW1, NSOLL, ZSW1, NIST) is sufficient for 90% of speed-control applications. Switch to Telegram 5 if you also need torque limiting, or Telegram 9 if you require the active fault-code word for diagnostic purposes.
What is the default speed-controller integral time on a SINAMICS G120 with vector control?
p1461 (Tn) defaults to 400 ms and p1460 (Kp) defaults to 0.3 for the typical 1LE1 induction motor. After running the speed-controller autotune (p1960 = 1), Siemens Starter/Startdrive writes optimized values back into p1460/p1461 — always record these as the commissioning baseline before further manual tuning.
How do I derive the transfer function of a SIMOREG DC-MASTER armature loop?
Plant is 1/(L_a·s + R_a) and the PI controller is K_p,I·(1 + 1/(T_n,I·s)). For symmetric optimum, set T_n,I = L_a/R_a and K_p,I = L_a/(2·T_Σ), where T_Σ includes the 1.67 ms thyristor firing delay at 50 Hz six-pulse plus the current measurement filter delay of 0.5–1 ms.
Why does my drive trip F07901 (motor overspeed) during ramp-down even though the encoder is correct?
F07901 is triggered when the actual speed exceeds p2162 (default 1.2 × p2000). During fast ramp-down, regenerative energy raises the DC-link voltage and can overshoot. Extend p1121 (ramp-down time) to at least three times the mechanical time constant J/b, or enable the brake chopper (p1240 = 1) and verify the brake resistor is sized for the cycle.