IAxisMoveInterpolatedVelocity
- Namespace
- ZEquipment
This interface is meant for drives, which support a mode, where the master cyclically sends a target velocity with a PDO. The drive closes the control loops with velocity and current loops. In this mode the drive usually checks if the sent value(s) exceeds the maximum current, maximum motor speed, is moving beyond software limits, and so on. This mode can be used to move an axes with a profile generator that runs in the PLC, which may be needed for synchronous movement of multiple axes and other advanced axes features. The interface comes with two methods,
- Use MoveInterpolatedVelocityAsync to enter the drive mode, then
- call SetInterpolatedVelocity every PLC cycle to send a command value. Usually this value comes from a profile generator like OnlineTrajectoryGeneratorUM.
Note that the term interpolated comes from the fact that drives usually run with a higher cyclic time than the PLC, missing points between missing timeframes are usually interpolated by the drive.
INTERFACE IAxisMoveInterpolatedVelocity
Methods
MoveInterpolatedVelocityAsync
This method is used to enter the drives interpolated velocity mode, i.e. CiA402 this mode is usually called cyclic-synchronous-velocity (CSV) mode. After the mode has been successfully switched to, SetInterpolatedVelocity has to be called every PLC cycle, with a command value, which should not exceed any drive or physicial limit. The Async method is done if the object is not in its Busy state anymore.
Note
This method is used to start a specific operation mode of the drive. Calling any other Async method of the axes interfaces, will finish this mode. This includes methods like StopAsync and HaltAsync.
Executing this method while the drive is still Busy with another Async command will cause this method to fail. This can
be checked by submitting an StartToken as a startToken
. Simply pass such an object and Assert it
or check for startToken.Error
after calling this method.
METHOD MoveInterpolatedVelocityAsync (
startToken : ZCore.IStartToken)
Inputs
startToken
IStartToken(optional) object to check if the method was executed successfully - may be 0
SetInterpolatedVelocity
This method has to be used together with MoveInterpolatedVelocityAsync to send a command value to the drive. The latter should not exceed any drive or physicial limit.
If this method is called when MoveInterpolatedVelocityAsync
has not started before, the method will fail. Use startToken
for testing if the method was executed correctly.
METHOD SetInterpolatedVelocity (
startToken : ZCore.IStartToken,
velocity : LREAL)
Inputs
startToken
IStartTokenpass an StartToken instance here to check if the call was successfully executed
velocity
LREALcommand velocity send cyclically in the drive's speed units