Resolving MC_MoveJog Acceleration Override on S7-1500 Motion Control
When commissioning an S7-1500 or S7-1500T motion control axis with the MC_MoveJog technology instruction, a common field problem is that the operator-supplied acceleration and deceleration values from the HMI do not produce the expected ramp behavior on the drive. The instruction reads the HMI tag without raising a fault, but the actual acceleration profile on the motor does not match the value written. This article identifies the root cause, walks through the unit conversion between HMI ramp-time seconds and the technology object's acceleration units, and provides a verified configuration sequence for the S7-1517F-3PN controller and TP1200 Comfort HMI on TIA Portal V15.1 with Motion Control V4.0.
1. Problem Statement
The reported symptom occurs under the following conditions:
- Controller: SIMATIC S7-1517F-3PN (any S7-15xF or S7-15xT with Motion Control V4.0 or later is affected).
- HMI: SIMATIC TP1200 Comfort.
- Engineering: TIA Portal V15.1, Motion Control V4.0.
- Axis type: Speed axis (rotary, unit 1/min).
-
Instruction:
MC_MoveJogwithAccelerationandDecelerationinputs bound to HMI tags. - Velocity range: 0–1380 1/min written from HMI.
- Operator input: Ramp-up / ramp-down time in seconds (example: 1.0 s for full speed).
Computed acceleration in the program: 1380 1/min ÷ 1 s = 23.0 1/s². The user expects this value to be passed to the drive. Instead, the drive's ramp-up time remains pinned at the default 2 s and ignores the user value. The instruction itself returns no error code; Busy, CommandAborted, and Error are not asserted.
2. Root Cause Analysis
Three independent issues converge in the reported configuration. Each must be resolved for the jog motion to follow the HMI-defined ramp.
2.1 Acceleration is not a ramp-up time
The inputs Acceleration and Deceleration on MC_MoveJog are LREAL values expressed in the unit 1/s² (or the configured acceleration unit of the axis), not in seconds. Writing a ramp-up time of 1.0 from the HMI passes 1.0 1/s² to the instruction, not a 1-second ramp. With a velocity of 1380 1/min = 23 1/s and an acceleration of 1 1/s², the axis would theoretically take 23 s to reach full speed — which silently violates the technology object's limits and clamps to the configured maximum.
Per the official Siemens documentation, when Acceleration or Deceleration is set to a value greater than 0, the instruction uses that user-defined value. If the value is below the configured minimum or above the configured maximum, the instruction uses the corresponding limit value of the technology object. This clamping is silent — no diagnostic is raised unless the technology object's configuration window explicitly monitors the override. See the MC_MoveJog V4 manual for the complete behavior matrix.
2.2 Drive-side ramp generator is still active
When a Siemens drive (SINAMICS V90, G120, S120, etc.) is controlled via the technology object through PROFIdrive, the technology object manages acceleration and deceleration entirely on the PLC side. The drive-internal ramp-function generator (RFG) must be disabled — otherwise the final ramp observed at the motor is the maximum of the two ramp limits.
For PROFIdrive-compliant drives, the technology object automatically sends a control word (STW) bit that disables the drive-side RFG when the telegram contains the appropriate bits. If a non-PROFIdrive telegram is in use, or if the drive's p1120 (ramp-up) and p1121 (ramp-down) parameters are non-zero, the drive imposes its own ramp on top of the PLC command.
2.3 Unit mismatch between HMI and axis
The HMI displays ramp-up time in seconds (operator-friendly). The technology object expects acceleration in 1/s². The conversion logic in the PLC is missing or applied to the wrong tag. In the reported case, the user correctly computed 23.0 1/s² for 1380 1/min over 1 s, but this computed value is being written to the wrong input or the value is being clamped at the axis's default acceleration rather than accepted.
3. Affected Versions and Telegrams
| Component | Version Tested | Notes |
|---|---|---|
| TIA Portal | V15.1 | Behavior identical in V16, V17, V18, V19, V20 with matching MC library versions |
| Motion Control library | V4.0 | Same root cause in V5.0, V6.0, V7.0, V8.0 |
| MC_MoveJog instruction | V2 / V4 / V8 | See V2 manual and V8 manual |
| PROFIdrive telegram | Standard telegram 1, 2, 3, 5, 102, 105, 106 | All support STW1 bit 4 (RFG enable) toggling |
| Non-PROFIdrive telegram | Free telegram 999 / manufacturer-specific | Manual RFG disable required at drive |
4. Step-by-Step Resolution
4.1 Verify the technology object configuration
- Open the technology object (TO) configuration for the speed axis in TIA Portal.
- Navigate to Basic parameters > Dynamics.
- Record the values for:
-
Default acceleration(LR_DynamicsDefault Default deceleration-
Maximum acceleration(MaxAcceleration) Maximum decelerationMaximum velocity
-
- Set the maximum acceleration to a value higher than the maximum HMI ramp-derived acceleration. Example: for 1380 1/min in 0.1 s the acceleration is 230 1/s². Set maximum to 500 1/s² to allow headroom.
- Compile and download the TO configuration.
4.2 Implement the unit conversion in the PLC
The PLC must convert the HMI ramp-time input (seconds) into the technology object's acceleration unit (1/s²) before writing to MC_MoveJog.Acceleration and MC_MoveJog.Deceleration.
Formula for rotary speed axis (unit 1/min):
acceleration_1_per_s2 = (velocity_RPM / 60) / ramp_time_seconds
acceleration_1_per_s2 = velocity_RPS / ramp_time_seconds
Example ladder (FBD style) in TIA Portal:
// Inputs
// "HMI_Velocity_RPM" : REAL = 1380.0
// "HMI_RampTime_s" : REAL = 1.0
// "HMI_RampDown_s" : REAL = 1.0
// "Min_RampTime_s" : REAL = 0.05 (safety clamp to avoid div-by-zero)
// Calculate ramp-up acceleration in 1/s^2
#velocity_RPS := #HMI_Velocity_RPM / 60.0;
#safe_ramp_up := MAX(#HMI_RampTime_s, #Min_RampTime_s);
#safe_ramp_dn := MAX(#HMI_RampDown_s, #Min_RampTime_s);
"TO_MoveJog".Acceleration := #velocity_RPS / #safe_ramp_up; // unit 1/s^2
"TO_MoveJog".Deceleration := #velocity_RPS / #safe_ramp_dn; // unit 1/s^2
"TO_MoveJog".Velocity := #HMI_Velocity_RPM; // unit 1/min (axis unit)
4.3 Disable the drive-side ramp generator
For SINAMICS V90 with PROFINET (PROFIdrive telegram 1 or 2):
- Open the V90 web server or STARTER / Startdrive commissioning tool.
- Set
p1120(ramp-up time) = 0 andp1121(ramp-down time) = 0. - Alternatively, verify the telegram configuration on the drive matches what the TIA Portal device configuration expects. Telegram mismatches can leave the RFG enabled.
For SINAMICS G120 / S120 with PROFIdrive:
- Verify STW1 bit 4 ("Enable ramp-function generator") is being set correctly by the TO. The TO sends this bit as part of the cyclic control word.
- Set
p1120= 0 andp1121= 0 in the drive parameter list. - If using a free telegram 999, manually map the STW1 bit in the telegram configuration.
For third-party drives:
- Disable the drive's internal ramp generator via the drive's parameter list.
- Set the drive's acceleration/deceleration ramps to 0 or the minimum allowed value.
4.4 Verify the override is active
The technology object has a status word that indicates whether the user-defined dynamic values are active. In the online view of the TO:
- Go online with the PLC.
- Open the technology object monitoring panel.
- Force
MC_MoveJog.Velocityto 1380.0 andMC_MoveJog.Accelerationto 23.0. - Enable the jog command (set
JogForward= TRUE). - Read the actual ramp time on the drive's trace or via
r0020/r0021on SINAMICS drives.
5. Verification Checklist
| Check | Expected | Method |
|---|---|---|
| HMI tag value visible at instruction input | Matches HMI display | Online view of MC_MoveJog tag |
| Acceleration value passed to TO | 23.0 1/s² for 1380 1/min / 1 s | Watch table on MC_MoveJog.Acceleration |
| Drive ramp-up time | ~1.0 s at full velocity | SINAMICS trace or HMI scope |
| Drive p1120 / p1121 | 0 s | Drive parameter list |
| Axis StatusBits.UserDataActive | TRUE | TO status word online |
| No MC_MoveJog error | Error = FALSE, ErrorID = 0 | Watch table |
| Jog direction follows HMI | Forward / Reverse / Stop | Manual jog test |
6. Troubleshooting Matrix
| Symptom | Likely Cause | Corrective Action |
|---|---|---|
| Drive ramps at 2 s despite 1 s HMI input | Drive-side RFG still active | Set p1120 / p1121 to 0 |
| HMI value visible at tag but motion ignores it | Tag wired to wrong instruction input | Re-bind HMI tag to MC_MoveJog.Acceleration |
| Axis accelerates but at default rate | HMI writes ramp-time seconds instead of acceleration | Add PLC-side conversion to 1/s² |
| Axis faults during jog with F01901 / similar | Computed acceleration exceeds TO maximum | Increase MaxAcceleration in TO config |
| Deceleration differs from acceleration | Operator ramp-down tag not wired to MC_MoveJog.Deceleration | Wire both inputs independently |
| Jog motion starts immediately on tag change | JogForward / JogReverse not gated by HMI | Use HMI buttons with edge detection |
| Acceleration flickers between two values | HMI tag updates faster than PLC scan | Add smoothing filter or latch value |
| Velocity in 1/s instead of 1/min at axis | Axis unit incorrectly configured | Set axis unit to "1/min" in TO basic parameters |
7. Edge Cases and Field Notes
7.1 Acceleration = 0 behavior
If Acceleration is written with 0, the technology object uses the configured default acceleration from the TO dynamics. This is documented behavior across MC_MoveJog versions V2 through V8. Some versions of the help text state "if the value is > 0" — strictly greater than zero triggers the user override. A value of exactly 0 falls back to the default.
7.2 MC_Power abort behavior
The MC_MoveJog job is aborted when MC_Power.Enable transitions to FALSE. The override response depends on the axis configuration ("Behavior when disabling" set to "Cancel motion" or "Continue motion with ramp"). For jogging applications, the recommended setting is "Cancel motion" to prevent the axis from coasting.
7.3 Jerk-limited vs jerk-free acceleration
MC_MoveJog accepts a Jerk input as well. If jerk is left at 0, the motion is jerk-free (trapezoidal velocity profile). A non-zero jerk value applies an S-curve profile. For most manual jog operations, leave Jerk at 0 for the most responsive feel. See the MC_MoveJog V8 documentation for the complete Jerk parameter semantics.
7.4 Override during jog
The Override input on MC_MoveJog scales the dynamic values by a percentage (0–200%). If an override is active in parallel with the HMI acceleration tag, the effective acceleration is user_acceleration × override / 100. This can produce seemingly nonsensical results if the override is left at a non-100% value.
7.5 Reading current acceleration
The actual active acceleration can be monitored via the technology object's status data: <TO>.StatusWord.UserDataActive and the actual values via the cyclic I/O. Place the TO in an online watch table to verify the value being passed during the jog.
8. References to Official Siemens Documentation
- MC_MoveJog V4 manual (S7-1500 / S7-1500T)
- MC_MoveJog V2 manual (S7-1500)
- MC_MoveJog V8 manual (S7-1500 / S7-1500T)
- SIMATIC S7-1500 S7-1500T Motion Control function manual
9. FAQ
Why is the drive ignoring the acceleration value from MC_MoveJog on my S7-1500?
The most common reason is that the drive-internal ramp-function generator is still active. With a SINAMICS drive on PROFIdrive, set p1120 (ramp-up) and p1121 (ramp-down) to 0 so the technology object's PLC-side ramp is the only one applied to the motor.
What unit does the Acceleration input of MC_MoveJog use on a rotary speed axis?
Acceleration is an LREAL in 1/s² for a rotary axis with unit 1/min. For 1380 1/min over 1 s, the correct input value is 23.0 1/s², not 1.0. Convert in the PLC using accel = (velocity_RPM / 60) / ramp_time_seconds.
How do I make the HMI ramp-up time in seconds override the technology object's default acceleration?
Bind a real-valued HMI tag to a PLC variable, divide the axis velocity in 1/s by the HMI ramp-time in seconds, and write the result to MC_MoveJog.Acceleration. Make sure the value lies between the TO's configured minimum and maximum acceleration, otherwise the instruction silently clamps to the limit.
Does MC_MoveJog raise an error if the acceleration input is out of range?
No. Per the Siemens manual, when the value is greater than the configured maximum, the technology object uses the maximum. When less than the minimum, it uses the minimum. No error code is set on the instruction itself, so you must verify in an online watch table that the active value matches your intent.
Can I jog a speed axis with a linear unit instead of 1/min?
Yes. Change the axis unit in the technology object's Basic Parameters to 1/s or mm/s depending on the mechanics. The Acceleration input then becomes 1/s² or mm/s². The conversion formula is the same shape: accel = velocity_in_unit_per_second / ramp_time_seconds.