We control our axes using the MpAxisBasic (mapp Motion) function block and generally use identical values for acceleration and deceleration.
We perform axis autotuning according to the procedure described in the following documentation:
For some mechanical systems with ball screw axes, the motor torque must be limited according to the manufacturer’s specifications. Since this torque limit is static and does not need to be adjusted during operation, we configured it in the motor settings under Gearbox, as described here:
The configured torque limitation works correctly during both acceleration and deceleration. However, we observed that the position controller and speed controller do not appear to take the reduced torque capability into account. As a result, the axis may generate following errors because the demanded acceleration or deceleration can no longer be achieved within the available torque limit.
Increasing the controller tolerances (for example by using Automatic 2) can reduce these errors, but this is not the solution we are looking for.
One option would be to use the MpAxisTorqueLimitType parameter of MpAxisBasic. However, this parameter does not support the direction setting mcDIR_BOTH.
For vertical axes, limiting torque in only one direction is often insufficient. During deceleration, gravity can cause the required motor torque to exceed the configured limit, so a bidirectional torque limitation is required.
What is the recommended approach for implementing a symmetric torque limit that is considered by the motion control loops and avoids unnecessary following errors?
Should MC_LimitLoad be used instead, since it supports mcDIR_BOTH, or is there a preferred solution that works together with the torque limit configured in the motor parameters?


