Moving the carrier to a target position while maintaining the defined gaps to the carriers in front and behind.
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.
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.
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.
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. |
Input |
Data type |
Value range |
Unit |
Description |
---|---|---|---|---|
i_lrTarget |
LREAL |
0.0 ≤ i_lrTarget ≤ lrTrackLength (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_lrTargetGap ≤ lrTrackLength (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. |
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 |
Provides diagnostic and status information as a numeric value. |
|
q_sResultMsg |
STRING [255] |
Provides additional diagnostic and status information as a text message. |
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(...)