IAxisMoveInterpolatedCurrent
- Namespace
- ZEquipment
This interface is meant for drives, which support a mode, where the master cyclically sends a target current with a PDO. The drive closes the current control loop without consideration for the actual velocity or position. In this mode the drive usually only checks if the sent value(s) exceeds the maximum current and observes the actual maximum motor speed (this can vary between different drive manufacturers). This mode can be used to move an axes with a PLC controlled force or torque. The interface comes with two methods,
- Use MoveInterpolatedCurrentAsync to enter the drive mode, then
- call SetInterpolatedCurrent every PLC cycle to send a command value. Usually this value comes from a PID controller or 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 IAxisMoveInterpolatedCurrent
Methods
MoveInterpolatedCurrentAsync
This method is used to enter the drives interpolated current mode, i.e. CiA402 this mode is usually called cyclic-synchronous-torque (CST) mode. After the mode has been successfully switched to, SetInterpolatedCurrent 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 MoveInterpolatedCurrentAsync (
startToken : ZCore.IStartToken)
Inputs
startToken
IStartToken(optional) object to check if the method was executed successfully - may be 0
SetInterpolatedCurrent
This method has to be used together with MoveInterpolatedCurrentAsync to send a command value to the drive. The latter should not exceed any drive or motors physicial limit.
If this method is called when MoveInterpolatedCurrentAsync
has not started before, the method will fail. Use startToken
for testing if the method was executed correctly.
METHOD SetInterpolatedCurrent (
startToken : ZCore.IStartToken,
current : LREAL)
Inputs
startToken
IStartTokenpass an StartToken instance here to check if the call was successfully executed
current
LREAL%, target current in percent of the drive's nominal current