1. Problem Description
On a SINAMICS S210 demo case (red/blue wheel demonstration) driving a 1FK2 low-inertia servo motor, an engineer activates the MC_TorqueAdditive V8 Motion Control instruction in the SIMATIC S7-1500 / S7-1500T program. The block reports Busy = TRUE and AdditiveTorque is written, but the motor shaft produces no observable supplemental torque. The issue persists across jog, relative positioning, and speed-controlled motion profiles, and is independent of whether DSC (Dynamic Servo Control) is enabled in the Technology Object (TO).
The behavior is not a firmware bug. It is the expected interaction between an overlaid closed-loop speed controller and a freewheeling low-inertia load. This article documents the control-theoretic root cause, the diagnostic signals that prove the additive setpoint is being received, and the application scenarios in which MC_TorqueAdditive produces a measurable shaft reaction.
2. MC_TorqueAdditive V8 Instruction Specification
The MC_TorqueAdditive instruction is part of the SIMATIC S7-1500 Motion Control V8 library. It superimposes an additive torque value on the active drive torque setpoint. Per the official Siemens TIA Portal help, the instruction is defined as follows:
- Function: Specify additive torque (specify an additional torque that is added to the torque setpoint of the drive).
- Target hardware: S7-1500 and S7-1500T CPUs with a connected SINAMICS drive assigned via PROFINET telegram 750 / 751 / 752 / 753 / 105 / 106 / 116 / 125 / 126.
-
Input
EnableAdditiveTorque(BOOL): TRUE enables the additive torque path; FALSE holds the last value or resets to zero per TO configuration. -
Input
AdditiveTorque(LREAL, Nm): Torque offset value in the unit configured on the TO (Nm by default for SI units). -
Input
VelocityMode: Selects the drive's operating mode for which the additive torque is applied (speed-controlled, position-controlled with/without DSC). - Output
Busy,Done,CommandAborted,Error: -
Output
ErrorId/ErrorInfo: Standard Motion Control error codes (e.g., 16#8001 axis not enabled, 16#8002 invalid AdditiveTorque range, 16#8003 wrong axis state).
The instruction does not switch the drive into torque-controlled mode. It overlays a value on the existing control structure. The internal summation point is documented in the SIMATIC S7-1500 Motion Control V8 manual and is located after the speed controller pre-control summation and before the current/torque setpoint limit chain.
3. SINAMICS S210 Control Architecture
The SINAMICS S210 is a single-axis servo drive for the 0.1 kW to 7 kW power range, controlled exclusively over PROFINET IRT from a SIMATIC controller. The standard control structure is documented in the SINAMICS S210 Function Manual and consists of the following cascade (innermost to outermost):
- Current controller (Iq / Id): Field-oriented, field-weakening aware, cycle time 31.25 µs.
- Speed controller: PI controller with auto-tuning, feedforward (precontrol) input, output limited by torque setpoint limits (p1520, p1521, p1522, p1523, p1530, p1531).
- Position controller (in DSC mode only): P-controller active in the drive, receives position error via PROFINET IRT with sub-sample time precision.
The drive's default operating mode is speed-controlled with DSC when telegrams 105/106 or 750 are used. The position loop is closed either:
- Closed in the TO (no DSC): Position controller runs in the S7-1500 at the IPO/MC servo cycle; speed setpoint is sent to the drive.
- Closed in the drive (DSC): Position controller runs in the drive; KV factor, following error, and precontrol are transferred via the PROFINET telegram with the position controller cycle of 62.5 µs to 250 µs.
In both modes, the speed controller inside the drive is always active. Its job is to drive the speed error to zero. This is the architectural fact that determines whether MC_TorqueAdditive can produce a visible shaft reaction.
4. Telegram 750 Configuration
Telegram 750 is the Siemens-specific PPO-equivalent extension that transports torque data alongside the standard positioning telegrams. The structure used on the S210 is:
| Word | Direction | Signal | Source / Sink |
|---|---|---|---|
| 1..5 | Controller → Drive | STW1, NSOLL_B, position controller gains, torque limits, DSC scaling | TO → Drive |
| 6..10 | Drive → Controller | ZSW1, NIST_B, actual position, following error, load torque | Drive → TO |
| 11..12 | Controller → Drive | MOMRED / torque additive setpoint slot | TO → Drive |
| 13..14 | Drive → Controller | Actual torque (smoothed), torque utilization | Drive → TO |
The additive torque from MC_TorqueAdditive is mapped to the MOMRED / additive torque word (word 11..12) and is summed inside the drive. Verify in TIA Portal under Devices & Networks → S210 → Telegram configuration that the I/O addresses of words 11..12 are correctly assigned and that the cycle time matches the servo cycle of the TO (default 1 ms; permitted values 250 µs, 500 µs, 1 ms, 2 ms, 4 ms).
Error = TRUE with ErrorId = 16#8004 (telegram does not support torque data). Confirm the active telegram in TIA Portal → Device view → S210 → Properties → Telegram configuration.5. Root Cause: Speed Controller Override on a Freewheeling Load
The technical reason no supplemental torque is visible at the shaft is straightforward control theory:
- The TO issues a speed setpoint (or, with DSC, a position setpoint that the inner speed controller follows).
- The drive's speed controller continuously computes the torque required to make actual speed = setpoint speed.
- The
MC_TorqueAdditivevalue is summed into the torque setpoint, so the drive briefly commands an extraAdditiveTorqueon top of what the speed controller is requesting. - That extra torque accelerates the load (or decelerates it) by
Δω = (T_additive × Δt) / J_total. - The speed controller observes the resulting speed deviation and immediately counteracts it by reducing its own torque component so the speed returns to the setpoint.
On the S210 red/blue wheel demo case the shaft carries a very lightweight wheel (effective inertia J_total ≈ 1.3 × J_motor of a 1FK2102-1AG01, i.e. on the order of 0.18 kg·cm²). The drive accelerates this load from 0 to 6000 rpm in roughly 5 ms, which means the speed controller's response time is shorter than a single MC servo cycle. By the time the next PROFINET IRT frame arrives, the speed error has been driven back to zero and the additive torque has produced no lasting mechanical effect.
Mathematically, in the steady state of a speed-controlled axis with a freewheeling load:
T_total(s) = T_speed_controller(s) + T_additive
= J_total · s · ω(s) + T_load(s) + T_additive
ω(s) = (1 / (J_total · s)) · T_speed_controller(s)
The speed controller adapts its output so that T_speed_controller + T_additive - T_load = J·dω/dt and ω → ω_setpoint. With T_load ≈ 0 and constant ω_setpoint, the speed controller subtracts exactly the additive torque from its own output. The shaft torque is unchanged, but the drive's torque utilization display does reflect the additive setpoint before the speed controller cancellation.
6. Diagnostic Parameters and Trace Recording
To prove that the additive torque is being received by the drive but cancelled by the speed controller, record the following SINAMICS S210 parameters in the S210 web server (or via STARTER / Startdrive trace) at a sample time of 250 µs or 500 µs:
| Parameter | Name | Unit | Expected behavior with active MC_TorqueAdditive |
|---|---|---|---|
| r79 | Total torque setpoint (speed controller output + precontrol) | Nm | Increases by the value of AdditiveTorque for the duration of the instruction, then returns to baseline |
| r1515 | Additional torque setpoint (the actual summed input from MC_TorqueAdditive) | Nm | Equals the commanded AdditiveTorque when EnableAdditiveTorque = TRUE
|
| r1516 | Total torque setpoint after precontrol and additive (input to torque limiting) | Nm | Shows combined speed-controller + precontrol + additive torque |
| r0080 | Actual torque utilization | % | Briefly increases proportionally to T_additive / T_rated |
| r0063 | Actual speed smoothed | rpm | Remains at setpoint (does NOT deviate) on a freewheeling load |
| r0031 | Actual torque smoothed | Nm | Remains approximately zero on a freewheeling load |
The decisive diagnostic is the comparison of r1515 and r79 with r0063:
- If r1515 = AdditiveTorque and r79 briefly increases but r0063 stays at setpoint speed: the path is intact; the speed controller is canceling the effect. This is the expected freewheeling behavior described in Section 5.
- If r1515 = 0 while Busy = TRUE on the instruction: telegram mapping is incorrect, or the TO has not been configured for telegram 750. Inspect Drive → Telegram configuration.
- If r1515 follows AdditiveTorque and r0063 deviates proportionally: a load is present; the additive torque is doing real work.
7. Application Scenarios Where Additive Torque Applies
The MC_TorqueAdditive function is engineered for cases where the speed controller cannot fully cancel an external torque, or where the speed controller is intentionally turned off. The standard use cases are:
- Winder / unwinder axes with a constant material tension. The winder speed controller maintains line speed; the additive torque compensates static friction and material tension without disturbing the speed loop.
- Fixed stop / clamping axis: Once the axis reaches a mechanical stop, the speed controller saturates against the position error. An additional positive torque pushes the part harder against the stop with a defined, time-bounded clamping force.
- Press-fit and joining applications: A controlled additional torque is superimposed on a slow positioning motion to generate a defined joining force.
-
Inertia compensation during heavy acceleration: When accelerating a high-inertia load (gear, flywheel, large gear rack),
MC_TorqueAdditivepre-charges the torque before the speed controller's integral part would otherwise have to ramp up. - Gravity / vertical axis compensation: A constant additive torque equal to the gravitational load on a vertical axis reduces the speed controller's steady-state effort and prevents sag on power loss.
None of these are representable on a freewheeling wheel. The red/blue demo case is a kinematics demonstrator, not a load demonstration. To verify the instruction, use any of the above configurations, or temporarily couple a flywheel of at least 10× the motor inertia to the shaft.
8. Configuring the Technology Object Correctly
Confirm the following TO configuration in TIA Portal under TIA Portal → PLC → Technology objects → <Axis> → Configuration:
| Setting | Required value | Purpose |
|---|---|---|
| Drive connection | PROFINET telegram 750 (alternative: 105 with limitation) | Enables the additive torque word |
| Servo cycle / IPO cycle | Servo = 1 ms (minimum 250 µs with S210); IPO ≥ 1 ms | Defines update rate of additive torque |
| Control loop structure | Position control with DSC recommended | Reduces following error; additive torque becomes meaningful in the cascade |
| Torque limiting | Set p1520 = +T_max, p1521 = -T_max, p1522/p1523 fixed torque limits | Defines the ceiling for the additive torque |
| Additive torque scaling | Default (16384 = T_rated of the 1FK2 motor) | Matches the LREAL Nm value to the drive's internal representation |
| Enable additional torque interface | Activated (checkbox under Drive connection → Extended settings) | Releases the M_AddTorque path on the drive |
If the Enable additional torque interface option is unchecked, MC_TorqueAdditive returns Error = TRUE with ErrorId = 16#8005 (additive torque interface disabled).
9. DSC (Dynamic Servo Control) Considerations
Enabling DSC shifts the position controller from the S7-150T into the drive. This tightens the position loop dramatically but does not change the speed controller's behavior. With or without DSC, the speed controller will still cancel the additive torque on a freewheeling load. DSC's only effect on the diagnostic is that the following error is reported by the drive and is therefore visible at sub-millisecond resolution in the trace.
If you are operating a horizontal axis with substantial load and want to verify that MC_TorqueAdditive is doing work:
- Disable all friction compensation and pre-control on the TO.
- Bring the axis to a constant setpoint speed under
MC_MoveVelocity. - Apply a step change in
AdditiveTorque(e.g., 0 → +1.0 Nm) and record r1515, r1516, r79, r0031, and r0063 simultaneously. - On a real load you will see r0031 follow r1515 and a measurable speed transient in r0063 that decays within a few speed-controller cycles.
10. Commissioning and Verification Procedure
- Verify the telegram. In TIA Portal device view of the S210, confirm telegram 750 (or 105) is selected. Compile and download the HW config.
- Enable the additive torque interface. In the TO configuration under Drive connection → Extended settings, check Enable additional torque interface. Recompile and download the TO DB.
- Apply a defined test load. Couple a flywheel, an external brake, or a winder spool. Do not use the bare red/blue wheel for verification.
- Start a trace. Open Startdrive or the S210 web server, configure a trace with r1515, r1516, r79, r0031, r0063, and the AdditiveTorque tag from the TO. Sample time 250 µs, recording time 4 s.
-
Execute the program. Jog the axis to a constant speed. Trigger
MC_TorqueAdditivewith AdditiveTorque = +1.0 Nm and EnableAdditiveTorque = TRUE. - Read the trace. Confirm r1515 steps to 1.0 Nm, r79 shows a transient, and r0031 shows a measurable torque on the shaft (e.g., 0.6..1.0 Nm depending on load and speed-controller dynamics). If all three signals move together, the function is verified.
- Document the result. Save the trace as a commissioning record and attach to the machine documentation.
11. Alternative Torque Compensation Methods
If your application does not fit the use cases in Section 7, prefer one of the following instead of MC_TorqueAdditive:
| Method | Mechanism | Best for |
|---|---|---|
MC_TorqueLimiting (V8) |
Dynamic torque limit override, not additive | Safety-relevant force limits during a motion |
| Speed controller pre-control (Kv + inertia) | Adds a feed-forward torque proportional to desired acceleration | Reducing following error on high-acceleration moves |
| Torque setpoint from PLC (MELDW / supplementary setpoint) | Drive parameter p1511 / p1512 used as additional torque input | Legacy or non-SIMATIC controllers interfacing the S210 |
| Friction compensation table | Function-block generated torque-vs-speed curve | Static and viscous friction in linear axes |
Direct torque control via MC_MoveSuperimposed pattern |
Use MC_TorqueRange with low speed setpoint |
Press-fit and joining |
For most SIMATIC applications, the speed controller pre-control parameter (TO setting: Activate precontrol with Precontrol source = Speed controller output) is the correct, supported tool for inertia compensation. MC_TorqueAdditive is reserved for the overlaid cases in Section 7.
MC_TorqueAdditive is used as a clamping torque against a fixed stop, the value of AdditiveTorque becomes a safety-related quantity. Verify that the maximum additive torque combined with p1520/p1521 cannot exceed the mechanical limit of the machine, and integrate the application's STO / SS1 / SLS functions as required by EN ISO 13849-1 and EN 62061.12. Field-Proven Checklist
- ☐ Telegram 750 active in the S210 device view and the TO.
- ☐ Enable additional torque interface checked on the TO.
- ☐ Servo cycle ≤ 1 ms; IPO cycle ≥ 1 ms.
- ☐ DSC enabled (recommended) for tightest position loop and best transient response.
- ☐ A defined mechanical load coupled to the shaft (flywheel, brake, or process load).
- ☐ Trace recording r1515, r1516, r79, r0031, r0063 at 250 µs sample time.
- ☐ Safety torque limits (p1520, p1521) configured so AdditiveTorque + speed-controller output cannot exceed the mechanical limit.
- ☐ Firmware compatibility verified: S7-1500(T) firmware ≥ V2.5, S210 firmware ≥ V5.2.
For the full S210 product family and configuration tools, see the SINAMICS S210 product page. For the canonical instruction definition, see the MC_TorqueAdditive V8 help in the TIA Portal documentation.
Why does MC_TorqueAdditive show no effect on the S210 demo wheel?
The shaft is essentially freewheeling (very low inertia). The drive's inner speed controller cancels the additive torque within a few hundred microseconds to keep actual speed at the setpoint. Connect a mechanical load, friction source, or fixed stop, and the additive torque will produce a measurable reaction.
How can I prove the additive torque is actually reaching the drive?
Trace SINAMICS parameter r1515 (additional torque setpoint) on the S210 at 250 µs sample time. With MC_TorqueAdditive active, r1515 must equal the commanded AdditiveTorque value (e.g., 1.0 Nm). If r1515 = 0, the telegram mapping or the TO's "Enable additional torque interface" is misconfigured.
Which PROFINET telegram is required for MC_TorqueAdditive on S210?
Telegram 750 is recommended. Telegram 105 also supports the torque interface if the additive torque interface is enabled in the TO. Telegrams 1-3 (basic positioning) do not carry the additive torque word and will return ErrorId 16#8004.
Does enabling DSC change the behavior of MC_TorqueAdditive?
No. DSC moves the position controller into the drive but leaves the speed controller in place. On a freewheeling load the speed controller will still cancel the additive torque regardless of whether DSC is active. DSC only improves the diagnostic resolution of following error and the tightness of the position loop.
What is the difference between MC_TorqueAdditive and the speed controller precontrol?
MC_TorqueAdditive is a manual, time-varying torque offset driven from the PLC program. Speed controller precontrol is an automatic feed-forward torque computed inside the TO from the desired acceleration, configured via the inertia and Kv settings. Use precontrol for inertia compensation; use MC_TorqueAdditive for superimposed winder tension, fixed-stop clamping, or one-shot joining forces.