SINAMICS S120 Torque Control: Configuration via PLC and Starter

David Krause17 min read
SiemensTutorial / How-toVFD / 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

Overview of SINAMICS S120 Torque Control

The SINAMICS S120 drive family from Siemens is a modular high-performance drive system that supports multiple closed-loop control modes including speed, position, and torque regulation. Torque control is essential in applications such as winders, unwinders, load-sharing between motors, press control, extrusion, torque-limited start-up of large machinery, and test benches. The drive can be commanded in torque mode from a higher-level controller (typically a SIMATIC S7-1500 or S7-1200 PLC) over PROFINET or PROFIBUS using a PROFIdrive telegram, or it can run autonomously with a fixed control mode configured in the drive itself.

This article consolidates the three principal methods of implementing torque control on a SINAMICS S120, the relevant parameter set (p1300, p1501, p2038, p1082, p1520, p1521), the PLC-side function blocks (MC_TorqueLimiting, SINA_SPEED, SINA_PARA), and a step-by-step commissioning flow in Starter or Startdrive.

Control mode is set by parameter p1300, not by the telegram. The telegram only determines the setpoint word in which the torque is transmitted. Selecting the wrong p1300 value is the most common reason a torque command does not produce the expected response.

Method 1 - Fixed Torque Control Mode (p1300=22 / p1300=23)

Parameter p1300 (open-loop/closed-loop control mode) is the master selector for the control structure of a SINAMICS S120 axis. For torque control the two relevant values are:

Control mode selection for torque control (p1300)
p1300 Control mode Encoder required? Motor type
22 Torque control without encoder No Vector control (induction motors)
23 Torque control with encoder Yes Servo or vector control

When p1300 is set to 22 or 23 the drive interprets the torque setpoint coming from the active setpoint source as a closed-loop torque command. The speed controller is no longer active and the speed of the motor is the result of the load condition. This is the simplest method to use and is appropriate when the PLC continuously commands a torque reference.

For servo applications, p1300=23 is the typical choice. For induction motors in pump, fan, or winder applications without a feedback device on the load side, p1300=22 may be used; however, p1300=22 cannot be used with synchronous (servo) motors because rotor-flux orientation requires a position reference at low speeds.

Once p1300 is set, the active torque setpoint is taken from the torque setpoint channel, with p1503 acting as the main connector input for the setpoint. The torque setpoint is then limited by the upper and lower torque limits (p1520/p1521 or p1522/p1523 from a higher-level source) and the speed is internally clamped against p1082.

Method 2 - Runtime Switchover Between Speed and Torque Control

If the process requires alternating between speed-controlled operation and torque-controlled operation on the same axis, use the bit-controlled switchover:

  • p1501 - selects the speed/torque control mode (the parameter contains multiple bits; bit 0 is the standard switchover input from a control word or fixed source).
  • p2038 - if p2038 = 1, bit 14 of the cyclic control word (STW1) acts as the trigger for the torque control switchover. This means the PLC writes the torque setpoint into the same control word it would use for speed setpoint commands.

To use the STW1 bit-14 method:

  1. Set p2038 = 1 (control word bit 14 drives the speed/torque selection).
  2. Confirm that the active telegram contains STW1 (standard telegrams 1 through 6 all include STW1).
  3. Write the torque setpoint to the torque setpoint channel (see the setpoint section below).
  4. Toggle bit 14 in STW1 to switch the active control structure.
Source-of-truth check. The actual signal that selects torque control depends on the firmware version and telegram. Before commissioning, always cross-check with the SINAMICS S120/S150 List Manual and the function diagrams 4010/4015 for your firmware release. The behavior of p1501 is a sign-of-life input for a control word bit and is only used when the telegram contains that bit.

Method 3 - Speed-Controlled Drive with Torque Limits

In this configuration the drive remains in speed control (p1300=21 or 23), but the speed setpoint is intentionally set above the achievable speed, and the upper torque limit is restricted to the process value. The speed controller output (the torque demand) is therefore permanently in limit, and the motor follows the torque limit at the speed the load allows. This is the most common method in winder and load-sharing applications.

Advantages of this method:

  • Even if the material breaks (loss of load), the speed is internally clamped to the speed setpoint, so the motor cannot run away.
  • Control structure is identical to a standard speed-controlled drive, simplifying commissioning and spare-part handling.
  • Easy to add a speed override (e.g., for taper tension in winders).

The PLC implementation uses the MC_TorqueLimiting instruction from the SIMATIC S7-1500 Motion Control library to push the active torque limit into the drive. The relevant S120 parameters are:

Torque limit parameters on SINAMICS S120
Parameter Description
p1520 Upper torque limit, scaling of M_max
p1521 Lower torque limit, scaling of M_max
p1522 Upper torque limit, source (e.g., from telegram 102 word 1)
p1523 Lower torque limit, source (e.g., from telegram 102 word 2)
p1530 Motor-side power limit (positive)
p1531 Motor-side power limit (negative)

For complete implementation details on MC_TorqueLimiting and the S7-1500 integration, refer to the Siemens application example SIMATIC S7-1500 with SINAMICS S120: Torque limiting with MC_TorqueLimiting (Support entry ID 109795023).

Selecting the Standard Telegram

The telegram is configured with p0922 and determines the setpoint/actual-value structure on PROFINET/PROFIBUS. For torque-focused applications Siemens provides the following common telegrams:

Common PROFIdrive telegrams for torque control applications
Telegram Layout Typical use
1 STW1/ZSW1 + NSOLL_A/NIST_A (16-bit speed) Simple speed control, combined with torque limits via supplementary telegram 102
2 STW1/ZSW1 + NSOLL_B/NIST_B (32-bit speed) 32-bit speed resolution with ramp-function generator
3 Telegram 2 + encoder 1 actual value Closed-loop speed/torque with one position encoder
4 Telegram 2 + encoder 1 + encoder 2 Master-follower with two encoders
5 Telegram 3 with DSC (Dynamic Servo Control) Position control with high dynamics, often used for torque pre-control
6 Telegram 3 with DSC + 2 encoders High-dynamic master-follower
102 Torque reduction values M_LIM_POS / M_LIM_NEG Supplementary telegram appended to telegrams 1-6 for torque limits
103 Torque setpoint M_SOLL + torque limits Pure closed-loop torque control with limits
105 Telegram 3 + torque limits + 1 encoder Winder / load-sharing combination
Verify with current documentation. Telegram assignments are tied to firmware and drive object type. Confirm with the SINAMICS S120 List Manual for your firmware release. Telegrams 102 / 103 / 105 / 106 are part of the freely configurable telegrams in newer firmware; older firmware may not support them.

Torque Setpoint Source, Scaling, and Direction

In torque control mode (p1300=22 or 23) the active torque setpoint is the output of the torque setpoint chain. The relevant parameters are:

Torque setpoint chain on SINAMICS S120
Parameter Description
p1500 Torque setpoint source selection (CI)
p1503 Torque setpoint (CI), typically the connector from the telegram (e.g., r2050.x)
p1504 Torque setpoint source, additional input
p1511 Supplementary torque 1 (CI)
p1512 Supplementary torque 1 scaling
p1513 Supplementary torque 2 (CI)
p1514 Supplementary torque 2 scaling
p1155 / p1163 Torque setpoint 1 source / scaling (older parameterisation)

For closed-loop torque control the PLC writes the torque reference in the resolution defined by the telegram. In the standard Siemens telegrams the torque word is a 16-bit signed value normalised to 100.00 % of the rated motor torque (p2003). The PLC sends 0x4000 (= 16384 dec) for 100 % torque, 0x2000 (= 8192) for 50 %, and 0xC000 (= -16384) for -100 %. The drive then multiplies by the rated motor torque (p2003, in Nm) to obtain the demanded Newton-meter value.

The torque reduction word used in telegram 102 follows the same convention: 0x4000 = 100 % of p1520 (or of p2003, depending on the scaling in p1522/p1523). The active torque is therefore:

M_demand = (M_word / 0x4000) * p2003 [Nm]

Always verify the torque reference against the configured telegram. A 16-bit setpoint of 0x4000 typically means 100 % of p2003. Some telegrams use Q-word scaling where 0x4000 = 100 % of the rated motor torque, while others (e.g., torque reductions in telegram 102) may use 0x4000 = 100 % of a different reference. Read the function diagram for the telegram in use.

Speed Limiting Inside Torque Control Mode

When the drive operates in pure torque control (p1300=22 or 23), the speed is no longer regulated and is determined entirely by the load. If the load is suddenly removed (e.g., the strip breaks in a winder), the drive can accelerate to the maximum speed and trigger a fault.

SINAMICS S120 has an internal protective function that monitors the actual speed against the configured maximum speed p1082 (and the additional limits p1080, p1083, p1085, p1086). When the actual speed exceeds p1082, the drive internally reduces the torque command. This is described in the SINAMICS S120 Function Manual under "Torque control with speed limitation" and is implemented in the speed limitation function block of newer firmware.

Speed limit parameters relevant in torque control
Parameter Description
p1080 Minimum speed
p1082 Maximum speed (reference for torque limiting in torque control)
p1083 Positive speed limit
p1085 Positive speed limit source
p1086 Negative speed limit source

For most winders and unwinders, p1082 should be set slightly above the maximum process speed (typically 110-120 % of the normal operating speed) so that the drive does not trip on a low-level over-speed fault but does limit the torque before reaching dangerous speed. The internal torque limiting only takes effect once the actual speed reaches p1082; it does not provide a soft speed limit below p1082.

Direction of the speed limit. The internal torque limiting in torque control mode acts on both directions of rotation as defined by p1082 (magnitude) and p1080 (minimum speed). For a separately configurable positive and negative limit, use p1083 and p1085/p1086 (requires firmware support).

PLC Integration with SIMATIC S7-1500

The PLC sends and receives process data over the PROFINET/PROFIBUS telegram. The integration is identical for all three methods: a PROFIdrive telegram is configured in TIA Portal (or STEP 7 Classic) and mapped to the drive's HW identifier. The S7-1500 then exchanges the I/O addresses with the application program.

Two integration paths are used in practice:

Path A - Direct I/O access with MC_TorqueLimiting

For SIMATIC S7-1500 with SINAMICS S120, the SIMATIC Motion Control library exposes the MC_TorqueLimiting instruction. The instruction is bound to a TO (technology object) axis or to a PROFIdrive drive and pushes the active torque limit into the drive's torque limit channel (parameters p1520/p1521 or supplementary telegram word 2 of telegram 102). The S7-1500 internally formats the value into the telegram's torque reduction word and writes it to the drive.

Example block call in Structured Text:

// FB call
MC_TorqueLimiting(
  Axis := TO_S120_Axis,            // technology object / PROFIdrive drive
  Enable := TRUE,
  LimitMode := TO_TORQUE_LIMIT_MODE_BOTH, // limit both directions
  PositiveLimit := 50.0,           // % of rated torque
  NegativeLimit := 50.0,           // % of rated torque
  LimitActive => dbMC.torqueLimitActive,
  Error => dbMC.torqueLimitError
);

LimitMode accepts TO_TORQUE_LIMIT_MODE_BOTH, TO_TORQUE_LIMIT_MODE_POSITIVE, and TO_TORQUE_LIMIT_MODE_NEGATIVE. PositiveLimit and NegativeLimit are in per cent of the configured rated motor torque (p2003) and are internally mapped to the S120 torque limit word of the configured telegram.

Reference implementation. See the Siemens application example SIMATIC S7-1500 with SINAMICS S120: Torque limiting with MC_TorqueLimiting for a downloadable TIA Portal project including the technology object configuration and sample code.

Path B - Direct access with SINA_SPEED / SINA_PARA (DriveLib / LAcycCom)

For applications where the S7-1500 is a high-level controller without T-CPU technology objects, the Siemens DriveLib / LAcycCom library provides the function blocks SINA_SPEED (cyclic control word / speed setpoint / torque limits) and SINA_PARA (acyclic parameter read/write). With SINA_SPEED, the application sets the torque setpoint and torque limit words directly into the telegram.

// SINA_SPEED call (simplified)
SINA_SPEED(
  HWID := 270,                     // HW identifier of the drive in TIA Portal
  Enable := TRUE,
  SpeedSetpoint := 0.0,            // speed setpoint in rpm (not used in torque mode)
  TorqueSetpoint := 16384,         // 0x4000 = 100 % torque reference
  TorqueLimit := 8192,             // 0x2000 = 50 % torque limit
  ControlWord1 := dwSTW1,          // bit 14 may enable torque control (p2038=1)
  StatusWord1 => dwZSW1
);

With SINA_SPEED, the application is responsible for setting the correct bits in STW1 (e.g., bit 14 for torque control switchover when p2038=1) and for correctly formatting the setpoint to the 16-bit signed scale of the telegram. SINA_PARA can then be used in parallel to read/write any drive parameter cyclically (e.g., p1082 maximum speed, p1520 torque limit fallback).

Commissioning Flow in Starter / Startdrive

The drive is commissioned offline with Starter (TIA Portal add-on) or with the newer Startdrive inside TIA Portal. The minimum steps for a torque-control axis are:

  1. Create a project and detect the drive over PROFINET. Upload or offline-configure the device.
  2. Configure the drive object - set the motor type, the encoder (if any), and run the automatic motor identification (p1910 for induction, p1905 for servo).
  3. Set p1300 to 22 (sensorless) or 23 (with encoder) for fixed torque control. If using the switchover method, leave p1300=21 (speed) and configure p1501/p2038.
  4. Configure the telegram (p0922). For torque control applications, telegram 103 or 105 are typical choices. For speed control with torque limit, telegram 1 with supplementary telegram 102.
  5. Configure the speed limits (p1080, p1082, p1083) so that the internal torque limiting clamps the speed correctly.
  6. Configure the torque limits (p1520/p1521 as default, with PLC source via p1522/p1523 if MC_TorqueLimiting is used).
  7. Test the drive with the control panel in Starter: enable the drive, write a fixed torque setpoint (e.g., 10 % via p1503) and verify the motor produces the expected torque at low speed.
  8. Go online with the PLC, map the telegram to the S7-1500 I/O, and verify the cyclic exchange (ZSW1 bit 9 = 1, bit 10 = 1 for ramp-function generator active).
  9. Commission the MC_TorqueLimiting or SINA_SPEED block with realistic torque values (start at 10-20 % of rated motor torque) and verify the response.
  10. Fine-tune the speed controller, torque limits, and ramp-function generator (p1120, p1121) as required for the process.

Verification, Diagnostics, and Status Words

After commissioning, the following diagnostics are used to confirm correct behaviour:

Status and diagnostic parameters
Parameter Description
r0020 Smoothed speed setpoint
r0021 Smoothed actual speed
r0027 Smoothed actual current
r0031 Actual torque
r0047 Status word 1 (ZSW1)
r0048 Status word 2 (ZSW2)
r0080 Torque setpoint after limits
r1407 Status word of speed controller
r2050 PROFIdrive PZD receive word (PLC -> drive)
r2060 PROFIdrive PZD send word (drive -> PLC)

Useful status bits in ZSW1 (r0047):

  • Bit 0 - Ready to switch on
  • Bit 1 - Ready to operate
  • Bit 2 - Operation enabled
  • Bit 3 - Fault present
  • Bit 6 - Switch-on inhibited
  • Bit 9 - Control requested (PLC can move the drive)
  • Bit 10 - f or n reached setpoint (used as heartbeat by some PLC blocks)

For process acceptance, plot the following curves in the Starter trace:

  1. r0021 (actual speed) - must stay below p1082 under all operating conditions.
  2. r0080 (torque setpoint after limits) - must not exceed p1520/p1521.
  3. r0031 (actual torque) - must follow the command in the load range.
  4. The active control word bit 14 - must reflect the desired mode.

Winder / Load-Sharing Application Example

A typical unwind stand uses Method 3 (speed-controlled with torque limit). The drive is in speed control (p1300=21), the speed setpoint is given from the line speed, and the upper torque limit (p1520, set via MC_TorqueLimiting) is calculated by the PLC to maintain the web tension. When the web is intact, the motor produces the demanded torque and the speed matches the line. When the web breaks, the speed setpoint becomes the only limit and the unwind accelerates to the line speed (still below p1082), preventing a runaway.

Calculating the torque demand for a simple winder (Newton-meters, dimensional check):

M_demand = T * D / 2 * (1 / eta) + M_friction

where T is the web tension in newtons, D is the roll diameter in metres, eta is the gearbox efficiency, and M_friction is the Coulomb friction of the bearing in newton-meters. All quantities are SI; the result is in newton-meters, which matches p2003 (rated motor torque) and the torque limit scaling.

For a 1000 N web tension at 0.3 m diameter, 95 % gearbox, with 5 Nm bearing friction:

M_demand = 1000 * 0.3 / 2 * (1 / 0.95) + 5 = 150 / 0.95 + 5 = 158.0 + 5 = 163.0 Nm

Then the upper torque limit is set to:

p1520 [Nm] = M_demand / p2003 * 100 %

If p2003 = 200 Nm, then p1520 = 163 / 200 = 81.5 % (0x6819 in 0.01 % scaling of telegram 102, or 0x3413 in 0x4000 = 100 % scaling).

Sizing rule of thumb. Allow 10-20 % headroom above the calculated torque demand for transients (acceleration, web tension peaks). For a frequent re-start application, allow 30 %. Set p1520 below the motor's thermal limit (r0334, rated motor torque) so that the drive faults before the motor overheats.

Troubleshooting Matrix

Common issues and remedies
Symptom Likely cause Remedy
Drive runs at maximum speed under torque command p1300 is not 22/23 or p1501 is not active; PLC is sending speed setpoint Verify p1300, check STW1 bit 14 (p2038=1), and inspect r0047/r1407
Drive faults with F07902 (motor stalled) or F07900 (over-speed) Speed not limited in torque control, p1082 too high Reduce p1082, check p1080, ensure p1520/p1521 are realistic
Torque command has no effect, drive follows speed setpoint Telegram does not include torque word or connector wiring wrong Verify p0922 telegram selection, trace r2050 and r2060
Drift / oscillation in torque-controlled mode Speed controller not optimised for the load, p1470/p1472 not adjusted Run speed controller autotune (p1960), or manually tune Kp/Tn in torque-control with speed limit mode
MC_TorqueLimiting error "Axis not in cyclic communication" HW identifier missing or topology not compiled Recompile hardware, verify the drive is in PROFINET IO and the IO device is reachable
Torque limit set by PLC is ignored Source connector (p1522/p1523) wired to wrong input, or telegram 102 not added Verify p1522/p1523, ensure telegram 102 is appended to base telegram
Web tension oscillates in winder Torque limit update rate too slow or speed controller Kp too high Reduce p1470 (speed Kp), increase the cyclic update rate of the PLC torque limit

Safety Notes

  • Always configure the safe stop functions (STO/SS1/SBC) and connect them to the safety module of the SINAMICS S120 (TM54F, integrated F-DI on CU320-2, or PROFIsafe). Torque control alone does not provide a safe stop.
  • For applications where the load can move the motor in torque control (e.g., a winder when the web breaks), add a mechanical brake and a STO/SS1 that is triggered by a safety relay or by PROFIsafe.
  • For vertical loads (hoists, lifts), additional mechanical or electrical safety measures are mandatory; torque control without an encoder may lose the load on a power dip.
  • When the drive is in p1300=22 (sensorless torque control) and the load exceeds the motor's pull-out torque, the drive may stall without an F07902 fault. Always run a no-load torque test before commissioning.

FAQ

Can SINAMICS S120 be controlled in torque mode from a SIMATIC PLC?

Yes. Set p1300 to 22 (no encoder) or 23 (with encoder) for fixed torque control, or keep p1300=21 and use p1501 (or STW1 bit 14 with p2038=1) for runtime switchover. The PLC then writes the torque reference into the configured PROFIdrive telegram and optionally uses MC_TorqueLimiting to update p1520/p1521.

What is the difference between p1300=22 and p1300=23?

p1300=22 is torque control without an encoder and is allowed only for vector control of induction motors. p1300=23 is torque control with an encoder and is the recommended choice for servo drives and for high-dynamic applications where an encoder is present.

How is the speed limited in torque control mode?

SINAMICS S120 has an internal function that limits the torque command when the actual speed exceeds p1082 (or the related speed limit parameters p1080/p1083). The function is active in p1300=22/23 and prevents a runaway. It is documented in the SINAMICS S120 Function Manual under the speed limitation function diagrams.

Which PLC function block should I use to push a torque limit from S7-1500 to S120?

For SIMATIC Motion Control, use the MC_TorqueLimiting instruction on a TO axis or on a PROFIdrive drive. For non-T-CPU S7-1500, use the SINA_SPEED function block from DriveLib / LAcycCom. Both blocks format the value into the configured PROFIdrive telegram and write to the drive's torque limit channel (p1520/p1521 or telegram 102 word).

Why is my torque command ignored when the drive is controlled by a PLC?

Most often the issue is one of: (1) p1300 is not 22/23, (2) p1501 / p2038 are not configured for switchover, (3) the active telegram does not contain a torque word, or (4) the torque setpoint source (p1503) is not connected to the connector coming from the telegram (e.g., r2050.x). Check r1407 and r0047 to confirm the active control mode and the bit status, then inspect r2050 to confirm the cyclic setpoint is reaching the drive.

Back to blog