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.
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:
| 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:
- Set p2038 = 1 (control word bit 14 drives the speed/torque selection).
- Confirm that the active telegram contains STW1 (standard telegrams 1 through 6 all include STW1).
- Write the torque setpoint to the torque setpoint channel (see the setpoint section below).
- Toggle bit 14 in STW1 to switch the active control structure.
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:
| 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:
| 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 |
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:
| 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]
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.
| 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.
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.
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:
- Create a project and detect the drive over PROFINET. Upload or offline-configure the device.
- Configure the drive object - set the motor type, the encoder (if any), and run the automatic motor identification (p1910 for induction, p1905 for servo).
- 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.
- 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.
- Configure the speed limits (p1080, p1082, p1083) so that the internal torque limiting clamps the speed correctly.
- Configure the torque limits (p1520/p1521 as default, with PLC source via p1522/p1523 if MC_TorqueLimiting is used).
- 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.
- 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).
- Commission the MC_TorqueLimiting or SINA_SPEED block with realistic torque values (start at 10-20 % of rated motor torque) and verify the response.
- 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:
| 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:
- r0021 (actual speed) - must stay below p1082 under all operating conditions.
- r0080 (torque setpoint after limits) - must not exceed p1520/p1521.
- r0031 (actual torque) - must follow the command in the load range.
- 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).
Troubleshooting Matrix
| 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.