IAxisMoveSequence
- Namespace
- ZEquipment
INTERFACE IAxisMoveSequence
Axes implementing this sequence over access to advance movement behavior. It gives access to
- Chaining movement commands
- Advanced overriding of ongoing movements
- Movements modes, which are not supported in standard axis interfaces (e.g. moving to a position and continue moving with constant velocity)
To gain access to the advanced movement commands
- Enter the sequential mode by calling EnterSequenceAsync
- Use Sequence property to queue up commands or overwrite ongoing commands
- Use ExitSequenceAsync to exit the sequential mode
Properties
Sequence
PROPERTY Sequence : ZCore.IAxisSequencer
After the drive has been put into the sequencer mode using EnterSequenceAsync, this property can be used to chain movement or abort/blend running motions, which have been started by the Sequencer.
See ZCore.IAxisSequencer for details.
Property Value
Methods
EnterSequenceAsync
METHOD EnterSequenceAsync (
[input] startToken : ZCore.IStartToken)
Calling this method puts the axis into a "sequential movement" mode. Here it is possible to movement commands and control how ongoing movements are overwritten.
Example Usage
_taskToken1 : ZCore.TaskToken; // task tokens can be used to track already processed commands
// Start sequential movement modus, axis becomes busy.
_axis.Axis1.EnterSequenceAsync(THIS^);
// Chain movement commands
_axis.Axis1.Sequence.MoveAbsoluteAsync(token:=0, position:=5, speed:=5);
_axis.Axis1.Sequence.MoveRelativeAsync(token:=0,distance:=3, speed:=10);
_axis.Axis1.Sequence.MoveVelocityAsync(token:=_taskToken1, velocity:=5, mode:=AxisSequencerMode.Buffered, duration:=3);
_axis.Axis1.Sequence.MoveAbsoluteAsync(token:=0,-position:=10, speed:=3);
_axis.Axis1.Sequence.MoveCurrentAsync(token:=0, current:=5, currentRamp:=5, velocityLimitHigh := 10, velocityLimitLow := -10,
relative:=FALSE, mode:=AxisSequencerMode.Buffered, duration:=2);
_axis.Axis1.Sequence.MoveContinousAbsoluteAsync(token:=0,position:=30, speed:=5, mode:=AxisSequencerMode.Buffered, endVelocity:=6, duration:=3);
_axis.Axis1.Sequence.MoveContinousRelativeAsync(token:=0,distance:=-10, speed:=20, mode:=AxisSequencerMode.Buffered, endVelocity:= 6, duration:=3);
// Exit sequential mode, axis stays busy if the mode is not exited
_axis.Axis1.ExitSequenceAsync(token:=0);
When using the NativeMode all MoveXXXAsync operations will internal use this mode.
See AxisSequencer for details on individual commands and how mode can be used to either buffer a new move operation
or interrupt an ongoing command.
Inputs
startTokenIStartToken(optional) object to check if the method was executed successfully - may be 0
ExitSequenceAsync
METHOD ExitSequenceAsync (
[input] startToken : ZCore.IStartToken)
Exits the sequential mode, see EnterSequenceAsync.
Inputs
startTokenIStartToken(optional) object to check if the method was executed successfully - may be 0