Modulo positioning

The modulo positioning can be applied to closed linear axes as well as to rotary axes. TwinCAT does not distinguish between these types. A modulo axis has a consecutive absolute position in the range ±∞. The modulo position of the axis provides additional information about the absolute axis position. Modulo positioning represents the required target position in a different way.

Unlike absolute positioning, in which the user specifies the target unambiguously, in MC3 modulo positioning, the absolute target position is determined based on the following parameters:

Axis parameterization

Modulo support must be enabled on an MC3 axis using the “Is Modulo Axis” parameter. If this parameter is set, the other modulo parameters can be set.

Modulo positioning 1:

Position Modulus

The Position Modulus parameter defines the modulo factor used to calculate the modulo rotation and modulo position.

Position Modulo Tolerance Window

The Position Modulo Tolerance Window parameter defines a position window around the current modulo target position of the axis. The position window is equal to twice the specified value (target position ± position window).

The positioning of an axis is always referenced to its current actual position. Unintentional revolutions may be performed if the actual position and the target position are very close to each other. For example, if the actual position is slightly greater than the target position and MC_MoveModulo.Direction= EModuloDirection.PositiveDirection has been selected. This can occur, in particular, when the actual position is determined inaccurately. In order to avoid this, a tolerance window for modulo positioning can be set. If the distance between the start and target positions is less than or equal to the tolerance window, the target position is approached via the shortest path (as with MC_ MoveModulo.Direction = EModuloDirection.ShortestDistance), i.e. even if this is opposite to the specified direction.

Modulo positioning 2:

Cyclical interface

The target and actual modulo positions can be included in the cyclic interface.

Modulo positioning 3:
Modulo positioning 4:

PLC programming

An MC3 axis is moved to a modulo position using the MC_MoveModulo function block from the Tc3_Mc3Ptp library.

MC_MoveModulo.Position

With modulo positioning, the target position must be less than or equal to the axis's configured position modulus.

MC_MoveModulo.AdditionalTurns

If a defined number of revolutions is to be performed before reaching the target position, this number must be specified via the AdditionalTurns input.

MC_MoveModulo.Direction

The direction of motion is specified via the Direction input of the EModuloDirection type from the Tc3_Mc3Ptp library. The possible values are: