IF_MoveGapControl - Start (Method)

Overview

Type:

Method

Available as of:

V1.0.0.0

Task

Moving the carrier to a target position while maintaining the defined gaps to the carriers in front and behind.

Description

With the method IF_MoveGapControl - Start, the carrier is moved to a given target position while maintaining a defined gap to the carrier in front or behind. The carrier is moved to the target with the velocity, the acceleration and the jerk that have been defined with the method SetMotionParameter.

NOTE: When executing this move command, you override previous move commands.
For the movement of the carrier with the move command MoveGapControl, the minimum gap defined with the method SetRefMinGapToCarrierBehind and/or SetRefMinGapToCarrierInFront is taken into account. For more details, refer to:

When the carrier cannot move to the defined end target position because this position or the way to it is blocked, the carrier moves to the next possible temporary target position, which is a calculated position depending on the target gap. The carrier automatically continues its movement (to the next temporary target or to the end target position) as soon as the next carrier in the moving direction starts moving.

Every carrier has an internal target position. When the method IF_MoveGapControl - Start is executed or when the carrier in front or behind receives a new target command, the carrier is calculating its new internal target position depending on the target position of the carrier in front or behind.

For the movement of the carrier to the target position, a target gap can be defined to stop the movement of the carrier if another carrier is already present at the target position. If the value for the parameter i_lrTargetGap is lower than the minimum gap defined by the parameters SetRefMinGapToCarrierInFront and/or SetRefMinGapToCarrierBehind, the target gap is internally set to this minimum gap.

NOTE: If, in case of an open-track system (see open track example), the target position exceeds the start or end hardware limits of the track, the carrier moves to the maximum position within the hardware limits.
NOTE: If the move command MoveGapControl is used in addition to the synchronized movement of a master carrier with one or more connected carriers, ensure that in the moving direction, connected carrier(s) are behind the master carrier:
  • Forward movement: A master carrier with connected carrier(s) in front cannot be moved forward with the move command MoveGapControl.

  • Backward movement: A master carrier with connected carrier(s) behind cannot be moved backward with the move command MoveGapControl.

Principles

The method IF_MoveGapControl - Start is based on three principles:

Principle

Description

Temporary target

If the end target position i_IrTarget is blocked, the carrier moves to the next possible temporary target. The carrier automatically moves to the next possible temporary target until it reaches the end target. Additional calls are not necessary.

If in case of an open-track system (see open track example), the end target position exceeds the start or end hardware limits of the track, the carrier moves to the maximum position within the hardware limits (temporary target).

For a visual illustration, refer to the Temporary target video sequence.

Maintain gap distance

If the positioning of the carrier cannot be started (for example, if another carrier is inside the minimum gap), the command is stored internally and will be executed by the carrier as soon as the other carrier in the moving direction is outside the minimum gap.

Cruise control

When the next carrier in the moving direction is slower than the selected carrier, the selected carrier decelerates automatically to maintain the minimum gap. When the next carrier accelerates, the selected carrier accelerates accordingly, up to the maximum configured velocity.

For a visual illustration, refer to the Cruise control video sequence.

Feedbacks

Feedbacks are available in the interface IF_CarrierFeedbackMoveGapControl.

Inputs

Input

Data type

Value range

Unit

Description

i_lrTarget

LREAL

0.0 ≤ i_lrTargetlrTrackLength (1)

mm

Specifies the distance to the end target. The travel distance to the target depends on the positioning mode defined by the parameter i_etPosMode.

i_lrTargetGap

LREAL

0.0 ≤ i_lrTargetGaplrTrackLength (1)

mm

Specifies the minimum gap to the next carrier in target position.

If the value for the parameter i_lrTargetGap is lower than the minimum gap defined by the parameter SetRefMinGapToCarrierInFront and/or SetRefMinGapToCarrierBehind, the target gap is internally set to this minimum gap.

i_etPosMode

ET_PosMode

For the positioning modes available, refer to the enumeration ET_PosMode.

NOTE: The positioning modes Relative and Absolute are not allowed for the move command MoveGapControl.

(1) For more information on the track length, refer to the parameter lrTrackLength.

Outputs

Output

Data type

Description

q_xError

BOOL

Indicates TRUE if an error has been detected. For details, refer to q_etResult and q_sResultMsg.

q_etResult

ET_Result

Provides diagnostic and status information as a numeric value.
If q_xError = FALSE, q_etResult provides status information.
If q_xError = TRUE, q_etResult provides diagnostic/error information.

q_sResultMsg

STRING [255]

Provides additional diagnostic and status information as a text message.

Call Examples

Before executing the method IF_MoveGapControl - Start, the method SetMotionParameter must be called at least once.

To define a new minimum gap, the method SetRefMinGapToCarrierBehind and/or SetRefMinGapToCarrierInFront must be called at least once before calling IF_MoveGapControl - Start. The specified value for the minimum gap remains unchanged until the method SetRefMinGapToCarrierBehind and/or SetRefMinGapToCarrierInFront is called again.

Example 1:

...ifMotion.SetMotionParameter(...)
...ifMoveGapControl.Start(...)

Example 2:

...ifMotion.SetMotionParameter(...)
...ifMoveGapControl.Start(...)
...ifMoveGapControl.Start(...)

Example 3:

...ifMotion.SetMotionParameter(...)
...ifMotion.SetRefMinGapToCarrierBehind (...)
...ifMoveGapControl.Start(...)