SINAMICS S120 Torque Control: Telegram and Parameter Setup

David Krause19 min read
SiemensTechnical ReferenceVFD / 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 S120 Torque Control: Telegram and Parameter Setup

Torque-controlled operation on a SINAMICS S120 drive is fundamentally different from speed-controlled operation and cannot be approached as a "drop-in" replacement for a VFD that was previously running a tightening cycle in a different vendor's product line. The S120 exposes torque as the primary closed-loop variable through specific telegrams (notably 136, 138, and the supplementary telegram 750) and through a dedicated set of closed-loop parameters (p1300, p1500, p1501, p1513, p1520-p1525). For a tightening process that must ramp up at high speed, hit a defined torque window of 90-140 Nm, and stop within a small angular window (for example 25° referenced to the output shaft of an i=16 gearbox), the cleanest implementation is not a pure torque-controlled axis. It is speed control with torque limiting (telegram 2 or 4) combined with a downstream position-handling logic on the S7-1500 controller.

Engineering judgement: Pure torque control (p1300 = 22 or 23, telegram 136) drives the motor as a torque source. With no inherent speed feedback loop, the drive will accelerate the load to whatever speed is mechanically possible at the demanded torque. In a tightening application this produces an uncontrolled "runaway to mechanical stop." Speed-controlled mode with torque limiting (telegram 2 or 4) gives the speed ramp during approach, the natural speed collapse when torque limit is reached, and a controllable hold at the endstop.

Application Overview: Tightening with Torque Window

The reference application is a part-tightening station with the following constraints:

  • Torque acceptance window: 90 Nm to 140 Nm (a part tightened below 90 Nm is rejected, above 140 Nm is a reworked/failed condition).
  • Initial approach speed: high (clamped to a safe maximum, e.g. 1500 rpm at the motor shaft, which after a 1:16 gearbox equals 93.75 rpm at the output).
  • Final stop position: an angular reference of 25° measured at the output shaft, with a search routine that drives to the closest 25° position once the torque window is satisfied.
  • Mechanical load: external encoder + 1.1 kW induction motor + planetary gearbox i=16.

Replacing an Altivar 31 plus a third-party axis controller with a Siemens stack (CU320-2 PN + PM240-2 + CPU 1515) is feasible, but the application logic must be re-implemented because the Altivar's analog torque-reach logic does not map 1:1 to S120 status words.

Hardware Configuration and Firmware Prerequisite

The hardware stack referenced in this configuration is:

Component Catalog Number Role Firmware Floor
Control Unit CU320-2 PN (6SL3040-1MA01-0AA0) Central drive control + PROFINET I/O SINAMICS V5.2 SP3 (HF17 or newer recommended for telegram 136 stability)
Power Module PM240-2 (6SL3210-1PE18-0UL1) 3 kW, 200 V class, blocksize FW ≥ 5.2
Control Unit Adapter CUA32 (6SL3040-0PA01-0AA0) Adapter for blocksize PM to CU320-2 n/a
Sensor Module SMC30 (6SL3055-0AA00-5CA2) Incremental encoder evaluation (HTL/TTL) FW ≥ 5.2
Motor Lenze 1.1 kW induction, external encoder mounted Drive load with gear ratio 16:1 n/a
Controller S7-1500 CPU 1515-2 PN (6ES7515-2AM02-0AB0) PROFINET IO controller, runs SINA_SPEED FB285 / SINA_POS FB286 TIA Portal V17 or V18; library "SINAMICS Blocks" V2.x

The PM240-2 catalog number ends with -0UL1 (3 kW blocksize); the 1.1 kW motor is undersized relative to the PM240-2, which is normal because the Power Module must be sized to the peak motor current, not the continuous rating. Verify motor module current rating in r0207 against the motor nameplate p0305 value during commissioning.

Telegram Selection Strategy

The S120 standard telegrams relevant to torque-handling applications are summarized below. Telegrams are configured in p0922 on the drive and mirrored in the IO device configuration in TIA Portal (or STEP 7 Classic with the GSD file GSDML-V2.3x-Siemens-SINAMICS_S120-...).

Telegram PZD Count Setpoint Direction (PLC → Drive) Actual Direction (Drive → PLC) Best Fit
1 2 / 2 STW1 + NSOLL ZSW1 + NIST Pure speed control
2 4 / 4 STW1 + NSOLL + M_LIM_HI + M_LIM_LO ZSW1 + NIST + IAIST + MIST Speed control with torque limiting - tightening without encoder on PLC side
4 6 / 6 STW1 + NSOLL + M_LIM_HI + M_LIM_LO + STW2 + G1_STW ZSW1 + NIST + IAIST + MIST + ZSW2 + G1_ZSW Speed control with torque limiting + encoder word - recommended for tightening
5 / 6 6 / 10 STW1 + NSOLL + M_LIM_HI + M_LIM_LO + STW2 + G1_STW + additional ZSW1 + NIST + IAIST + MIST + ZSW2 + G1_ZSW + additional DSC (Dynamic Servo Control) - typically with SIMOTION, not required here
7 / 9 7 / 7 EPOS control words + position setpoints EPOS status + position actual Basic positioner with fixed endstop - alternative path for the 25° stop
136 2 / 2 STW1 + M_SOLL (torque setpoint) ZSW1 + MAIST (torque actual) Pure torque control - NOT recommended for tightening (no speed ramp)
138 4 / 4 STW1 + M_SOLL + N_MAX + STW2 ZSW1 + MAIST + NIST + ZSW2 Torque control with speed/acceleration limiting - closer fit if a torque source is mandatory
750 (supplementary) +3 PZD M_SOLL supplementary + status words Torque actual, status bits Add-on to telegrams 1, 2, 3, 4, 5, 6 for supplementary torque setpoint

Recommendation for the tightening application: telegram 2 (or 4 if the encoder is wired to SMC30 and the controller needs position actual). Telegram 136 is designed for winder/unwinder applications where torque is the controlled variable and web tension is the feedback. Using telegram 136 for a tightening process that must ramp up at a defined speed and then collapse to a stop at a known angle will require additional outer control logic to clamp speed and to handle the position stop, which is what telegram 2 + the PLC logic already does naturally.

Why the PLC-side encoder is not the same as the drive-side encoder: Telegram 4 includes the drive-side encoder evaluation in G1_ZSW / G1_XIST (encoder 1 actual position). If the PLC needs the position in load units (degrees at the gearbox output), the PLC must apply the gear ratio (16:1) to the raw encoder increments and convert from increments to degrees. The formula is: load_angle_deg = (raw_increments / p0408) * 360 / 16, where p0408 is the encoder resolution in increments per revolution set on the drive.

Control Modes: p1300 Configuration

The closed-loop control mode is selected via p1300. The torque-relevant values are:

p1300 Mode Speed Limiter Application Fit
0 V/f open loop n/a Not applicable for closed-loop tightening
20 Speed control without encoder Via torque limits Limited torque accuracy at low speed
21 Speed control with encoder Via torque limits Default for tightening when encoder is mounted
22 Torque control without speed limiting None - drive accelerates to mechanical limit Winders only - DO NOT use for tightening
23 Torque control with speed limiting Via p1082 (max speed) and p1532 / p1533 Acceptable for torque-controlled tightening if telegram 138 is used

For the recommended telegram 2 path, set p1300 = 21 (speed control with encoder). The encoder on the motor shaft (read by SMC30) closes the speed loop inside the drive; the torque limits delivered over PZD3/PZD4 of telegram 2 then cap the current reference, which produces the natural speed collapse when the joint closes.

If the design truly requires p1300 = 23 (torque control with speed limiting), the speed clamp must be implemented via:

  • p1082 — maximum speed reference for normal operation
  • p1532 — torque limit for forward speed clamp (motoring side)
  • p1533 — torque limit for reverse speed clamp (regenerative side)

Torque Setpoint Path: p1500, p1501, p1513, p1520-p1525

The torque setpoint source chain on the S120 is:

p1500 (Torque setpoint source selection)
  ↓
p1501 (BI: torque setpoint selection, e.g. switch between setpoints)
  ↓
p1503 (CI: torque setpoint main) / p1513 (CI: additional torque setpoint)
  ↓
p1520/p1521 (CO/BI: torque limit upper, motoring)
p1522/p1523 (CI: torque limit upper, motoring)
p1524/p1525 (CI/CO: torque limit lower, regenerative)
  ↓
Current controller (torque produced by motor)

For a speed-controlled drive with torque limits arriving from the PLC over telegram 2 PZD3 and PZD4, the typical wiring is:

  • p1500 = 0 — main torque setpoint = 0 (the drive is speed-controlled; torque setpoint is generated internally from the speed error).
  • p1522[D] = r2050[2] — torque limit upper sourced from PZD3 of telegram 2 (the 3rd receive word).
  • p1524[D] = r2050[3] — torque limit lower sourced from PZD4 of telegram 2.
  • p1520, p1523 — left at defaults (typically +400 % / -400 % rated torque) to act as ceiling clamps in case the bus value is missing.
Source confusion in the original question: The original poster attempted to connect the torque setpoint via p1513 = r2050[1] with telegram 1. Telegram 1 has only two receive PZDs: r2050[0] = STW1, r2050[1] = NSOLL_B (speed setpoint). Wiring p1513 = r2050[1] on telegram 1 therefore does NOT inject a torque setpoint — it injects the speed setpoint value into the torque path, which produces unpredictable behavior. With telegram 1 the only correct way to influence torque is via p1522/p1524 limits, and that requires switching to telegram 2 or telegram 3+750.

For pure torque control on telegram 136:

  • p1300 = 23
  • p1500 = 1 (analog setpoint) is replaced with p1500 = 1000 (PROFINET/PROFIdrive) or wired via p1503 = r2050[1] on telegram 136.
  • p1501 = 0 (no selector switch).
  • p1532 and p1533 set to the rated motor torque for the speed clamp.

SINA_SPEED Block Integration on the S7-1500

FB 285 (SINA_SPEED) is the standard TIA Portal block for closed-loop speed control of an S120 from an S7-1500 over PROFINET. It assumes telegram 1, 2, 3, or 5 (the standard speed-control telegrams) and exposes a structured input/output that maps the relevant PZDs. Key inputs for the tightening application:

Block Parameter Meaning Tightening Mapping
SpeedSp Speed setpoint (REAL, rpm) Approach speed: 1500 rpm; creep speed near contact: 100 rpm
TorqueLimitUpper / TorqueLimitLower Torque limits as % of rated torque (REAL) Clamp to +140 Nm / -140 Nm. With a 1.1 kW motor (rated torque ~7 Nm) this clamps to a value far below the rated torque; the limit must therefore be computed from gearbox output torque converted via the gear ratio. See formula below.
Enable Drive enable bit (control word bit 0) From safety circuit and HMI start
Mode Operating mode selector 2 = speed control with torque limits (telegram 2 / 4)
AcknowledgeFault Acknowledge drive faults (control word bit 7) Rising edge on fault-clear HMI button

The torque limit is normalized to percent of rated motor torque (r0333), not the gearbox output torque. To set a gearbox-output limit of 140 Nm with a 16:1 gearbox on a motor with r0333 = 7.0 Nm:

T_motor_limit_Nm = T_load_limit_Nm / gear_ratio
                = 140 Nm / 16
                = 8.75 Nm

T_motor_limit_pct = (T_motor_limit_Nm / r0333) * 100
                  = (8.75 / 7.0) * 100
                  = 125 %

Therefore the input TorqueLimitUpper on FB 285 must be set to 125.0 %. If the calculation yields a value above 400 %, the motor is undersized relative to the demanded load torque and the application must be reviewed with the motor datasheet (overload capability per p0640 and thermal model p0611).

SINA_SPEED must be called in a cyclic OB (OB1 or OB30 at the configured send clock, typically 1-4 ms on PROFINET IRT). The associated hardware identifier for the S120 drive must be linked to the HardwareId input. For SINA_SPEED to expose torque limits, the drive's p0922 must be telegram 2, 4, 5, or 6.

Encoder Configuration for Torque Control

The external encoder mounted on the Lenze motor (typically an incremental encoder, HTL or TTL) must be configured on the SMC30 module attached to the CUA32 / CU320-2. The essential parameters are:

Parameter Meaning Recommended Value
p0400[0] Encoder type selection 2001 (HTL unipolar), 2002 (HTL bipolar), 3001 (TTL), or specific encoder catalog number if supported
p0408[0] Increments per revolution Set to encoder nameplate value (commonly 1024, 2048, or 4096)
p0420[0] Encoder inversion 0 or 1 depending on direction sense
p0430[0] Zero mark configuration 0 (none required for tightening)
p0431[0] Fault threshold for encoder difference (linear/angular) 0 (single-encoder system)
p0437[0] Module configuration for SMC30 Must match the actual signal level (HTL vs TTL)
p0450[0] Enable encoder interface (after commissioning reset) 1

For the answer to the specific question “do I need an encoder value if I use torque control?”: Yes. Even in torque control mode (p1300 = 22 / 23) the speed limiter and the speed actual reading require an encoder for accurate control at low speed. Without an encoder, the drive derives speed from the current/voltage model, which loses accuracy below ~10 % rated speed. For a tightening process that ends at near-zero output speed (after the gearbox), encoder feedback is mandatory. With telegram 4 the encoder position is also visible to the PLC as G1_XIST1 / G1_XIST2, which can be used directly for the 25° position handling.

Position Stop Strategy at 25°

The original requirement — stop the axis at 25° regardless of where the torque window is satisfied — cannot be implemented by the drive alone when running in speed-control-with-torque-limit mode. The drive does not natively know that the axis must rest at a specific angle. The position handling is therefore a PLC task.

Three implementation paths are valid on the S120 + S7-1500 stack:

Path A: PLC Position Correction via SINA_SPEED with Reference Search (Recommended)

  1. Use telegram 4 so the drive delivers the encoder actual position G1_XIST in PZD6.
  2. Reset the encoder to zero at the start of each tightening cycle (rising edge of Enable) via control word bit 11 (set reference point) or via p0480.
  3. On the PLC, integrate the incremental position into a load-side angle by dividing by the gear ratio and scaling to degrees: load_angle_deg = G1_XIST / p0408 * 360 / 16.
  4. When the torque-window-reached condition is detected (actual torque between 90 Nm and 140 Nm, monitored via MIST in PZD4 or via r0080), read the current load angle.
  5. Compute the delta to 25° (mod 360°) and the shortest direction (forward if delta ≤ 180°, reverse otherwise).
  6. Drive the axis to the target at a slow speed (e.g. 30 rpm) using SINA_SPEED with torque limits at the upper bound of the tightening window.
  7. On reaching the target, remove Enable to stop the drive; the drive enters standstill via the OFF1 ramp.

Path B: EPOS Fixed Endstop

Switch the drive to telegram 7 (or 9) and activate the basic positioner. Use the travel to fixed endstop function (activation via control word bit assignment on p2631/p2632). Configure:

  • p2614 = torque limit for fixed endstop detection (corresponds to the 140 Nm upper bound).
  • p2620 = positioning target (in LU).
  • p2621 = traversing profile (creep speed, approach distance).

This path is cleaner from the drive's perspective but requires the PLC to switch telegrams between approach and final position, which is awkward when the speed-control path is already running.

Path C: Drive-internal Stop on 25° via SINA_POS with Telegram 7

Use telegram 7 throughout, configure the basic positioner, and let the drive execute the positioning to a fixed modulo position. This requires careful startup of the EPOS function block (FB 286 SINA_POS), including the mechanical referencing / absolute-encoder setup. For an incremental encoder without an absolute reference, a homing run is required at first power-up.

Step-by-Step Commissioning Procedure

  1. Hardware check. Verify CUA32 ribbon cable connection to CU320-2 PN; verify SMC30 wiring of the external encoder (HTL/TTL levels, A/B tracks, optional Z). LED status on SMC30 must show green READY.
  2. Drive first commissioning (Starter / Startdrive). Use TIA Portal V17+ with the Startdrive add-in. Drive wizard detects PM240-2 via CUA32, prompts for encoder type, motor data (Lenze 1.1 kW), and fieldbus configuration.
  3. Configure telegram. Set p0922 = 2 on the drive object. In the TIA Portal device configuration for the S120 IO device, set the assigned telegram to Standard Telegram 2 (4 PZD in / 4 PZD out). Compile hardware.
  4. Configure encoder. Set p0400, p0408, p0420, p0430, p0437 per the table above. Acknowledge faults and verify r0061[0] shows the encoder speed matching the actual motor speed (with r0061 ~ 0 rpm at standstill).
  5. Configure control mode. p1300 = 21. p1500 = 0. p1522[D] = r2050[2], p1524[D] = r2050[3]. Save with RAM to ROM and Copy RAM to startup.
  6. Configure SINA_SPEED instance on the S7-1500. Drop FB285 from the SINAMICS Blocks library onto a cyclic OB. Wire HardwareId, Mode = 2, SpeedSp, and the two torque-limit inputs to data block values.
  7. No-load test. Disable the application mechanics (decouple gearbox if possible). Run a slow jog (e.g. 50 rpm) and verify direction, encoder feedback, and torque-zero reading. r0031 must be near 0.
  8. Load test. Engage the application, jog in forward direction, monitor r0031 (actual torque) and the torque-limit status bits in ZSW1. Increase torque limits from 0 in 10 % steps up to the calculated 125 % to verify the drive can sustain the load.
  9. Tightening sequence test. Implement the PLC logic per Path A above. Run 10-20 cycles and verify torque-window detection and the 25° final position.
  10. Fault injection test. Block the output shaft mechanically. Verify the drive enters torque limit, draws the configured current, reports F07902 only if p2177 time-out is exceeded, and trips cleanly via the OFF2 / OFF3 path from the PLC.

Verification and Diagnostics

After commissioning, verify the following trace points during a single tightening cycle:

Trace / Parameter Expected Behavior
r0021 (speed actual, smoothed) Rises to approach setpoint, collapses toward 0 as torque limit engages
r0031 (torque actual, smoothed) Near 0 during free run, climbs to the 90-140 Nm window at contact, clamped by p1522
r0032 (active current) Spikes to the limit during torque-limited phase
r0052.3 (status word 1 bit, "torque limit reached") True during the torque-limited phase; use this for the PLC's "window reached" detection
r2050[0..3] (PZD received from PLC) STW1, NSOLL_B, M_LIM_HI, M_LIM_LO must match the values written by FB 285
r0080 (torque actual unsmoothed) Raw torque for window comparison if higher bandwidth is required
r0063[0] (speed actual, unsmoothed) Encoder-derived speed for diagnostic of ramp quality

For long-term diagnostics, configure the trace recorder with a 4-second window around the torque-window-reached edge and capture r0021, r0031, r0052, and the digital input from the contact sensor. Save as a re-usable trace configuration for production-floor diagnostics.

Troubleshooting Matrix

Symptom Likely Root Cause Corrective Action
Drive accelerates past mechanical stop p1300 = 22 without speed limiter, or telegram 1 in use without torque limits Set p1300 = 21 and switch to telegram 2; verify p1522 / p1524 are wired
Torque window never reached, drive stalls Torque limits set too high; PLC scaling wrong Re-verify the 140 Nm / 16 = 8.75 Nm motor-torque calculation; check r0333 value
Encoder position drifts Encoder missing Z-mark referencing, or p0420 direction wrong Verify direction by jogging forward and checking r0061[0] sign; set p0420 accordingly
F07902 "Motor stalled" Speed < p2175 for > p2177 with torque at limit Increase p2177 delay for the tightening cycle; OR reduce p2175 threshold to match creep speed
F30021 / F30027 (encoder fault) Encoder wiring, signal level, or p0437 mismatch Check SMC30 LED; verify p0437 HTL/TTL matches the encoder output stage
F08501 / F08502 (PROFINET comm loss) Watchdog timeout, send clock mismatch Match TIA Portal send clock to p0922 configuration; verify cable length < 100 m
25° final position off by full revolution No modulo handling, or zero-set missing Implement modulo 360° arithmetic in the PLC; reset encoder to 0 at start of each cycle via bit 11
Position oscillates around 25° Drive remains enabled with non-zero setpoint after target Clear Enable after position is reached; use a hysteresis band of ~0.5°
Safety reminder: Any torque-limited tightening process is a safeguarding concern. The drive's safe torque off (STO) inputs on the CU320-2 PN must be wired to the safety circuit (typically a Sirius 3SK1 safety relay or an F-CPU). The drive parameter p9601 enables the safety functions; commissioning requires the Safety Integrated password (default 0, must be changed per p9761). Refer to the SINAMICS S120 Safety Integrated Function Manual for the full STO / SS1 / SLS configuration.

FAQ

What telegram should I use for torque control on a SINAMICS S120?

For pure torque control use telegram 136 (PZD: STW1 + torque setpoint / ZSW1 + torque actual) with p1300 = 23. For tightening, winder, or any application where the drive must ramp at a defined speed and then collapse against a torque limit, use telegram 2 (speed control with torque limits) or telegram 4 (adds encoder words). Telegram 1 does NOT carry torque limits and cannot be used for torque-controlled applications without the supplementary telegram 750.

Do I need an encoder for torque control on the S120?

Yes for any application that operates below ~10 % of rated speed or that requires a defined stop position. The encoder closes the speed loop inside the drive and provides the actual position for the 25° target. Configure the encoder on the SMC30 module attached to the CUA32 / CU320-2 using p0400, p0408, and p0420.

How do I set a torque limit of 140 Nm at the gearbox output with SINA_SPEED?

SINA_SPEED accepts torque limits as a percentage of r0333 (rated motor torque). With a 16:1 gearbox and 140 Nm output limit, the motor-side torque is 140 / 16 = 8.75 Nm. Divide by r0333 (e.g. 7.0 Nm for a 1.1 kW motor) and multiply by 100, giving 125 %. Enter 125.0 % on the FB285 input TorqueLimitUpper.

Why does my drive accelerate to maximum speed when I enable torque control with telegram 1?

Telegram 1 only carries the speed setpoint and the control word. Wiring p1513 = r2050[1] on telegram 1 injects the speed setpoint value into the torque path, not a torque setpoint. With p1300 = 22 (torque control without speed limiting), the drive produces torque at the demand until the load reaches its mechanical speed limit. Switch to telegram 2 (4 PZD) so PZD3/PZD4 carry the torque limits, or to telegram 136 if pure torque control is mandatory, with p1300 = 23 and the speed limiter wired to p1532 / p1533.

What is the difference between telegram 2, telegram 4, and telegram 136?

Telegram 2 is speed control with torque limits (4 PZD in / 4 PZD out, includes the actual current IAIST and actual torque MIST). Telegram 4 adds the encoder words G1_STW and G1_ZSW plus the second control / status word (6 PZD in / 6 PZD out) for closed-loop speed with encoder and torque limits. Telegram 136 is pure torque control with a torque setpoint as the second PZD (2 / 2). Telegram 4 is the recommended choice when the PLC needs encoder position for a 25° final stop on a tightening process.

How do I implement the 25° final stop on a tightening cycle with a 16:1 gearbox?

Use telegram 4 and read the encoder actual G1_XIST on the PLC. Convert to load-side degrees with load_angle_deg = G1_XIST / p0408 * 360 / 16. Reset the encoder to zero at the start of each cycle via control word bit 11. When the torque-window-reached condition is detected (status word bit r0052.3), compute the delta to 25° modulo 360°, choose the shortest direction, and drive to the target with SINA_SPEED at a creep speed (~30 rpm) and torque limits at the upper bound of the tightening window. Clear Enable on target reached.

Back to blog