MC_MoveContinuousAbsolute
Function block | MC_MoveContinuousAbsolute | ||
---|---|---|---|
Commands a controlled motion to a specified absolute position ending with the specified velocity. | |||
VAR_IN_OUT | |||
B | AxisIn | AXIS_REF | Reference to an axis. |
VAR_INPUT | |||
B | Execute | BOOL | Starts the motion at rising edge. |
E | ContinuousUpdate | BOOL | If TRUE, when the function block (FB) is running and the values of the parameters are updated, the FB will use the new value. If FALSE, the FB won't use the new value. |
B | Position | LREAL | Commanded position for the motion [second] (negative or positive). |
B | Velocity | LREAL | Value of the maximum velocity. [unit/second] |
B | EndVelocity | LREAL | Value of the end velocity. Signed value. [second]. |
E | Acceleration | LREAL | Value of the acceleration. The unit is determined by MC_ProfileType. [unit/second2] or [second] |
E | Deceleration | LREAL | Value of the deceleration. The unit is determined by MC_ProfileType. [unit/second2] or [second] |
E | Jerk | LREAL | Value of the jerk. The unit is determined by MC_ProfileType. [unit/second3] or [second] |
E | Direction | MC_Direction | The moving direction of an axis. |
E | BufferMode | MC_BufferMode | Defines how to blend the velocity of two function blocks. |
VAR_OUTPUT | |||
B | InEndVelocity | BOOL | Commanded position reached and running at requested end velocity. |
E | Busy | BOOL | The function block is not finished and new output values are to be expected. |
E | Active | BOOL | The function block is controlling the axis. |
E | CommandAborted | BOOL | The command is aborted by another command. |
B | Error | BOOL | Signals that an error has occurred within the function block. |
B | ErrorID | MC_Error | Error identification. |
|
MC_MoveContinuousAbsolute | ||||||
---|---|---|---|---|---|---|
AXIS_REF | AxisIn | Axis | AXIS_REF | |||
BOOL | Execute | InEndVelocity | BOOL | |||
BOOL | ContinuousUpdate | Busy | BOOL | |||
LREAL | Position | Active | BOOL | |||
LREAL | Velocity | CommandAborted | BOOL | |||
LREAL | EndVelocity | Error | BOOL | |||
LREAL | Acceleration | ErrorID | MC_Error | |||
LREAL | Deceleration | |||||
LREAL | Jerk | |||||
MC_Direction | Direction | |||||
MC_BufferMode | BufferMode | |||||
One use case for MC_MoveContinuousAbsolute is a linear cutter:
One linear axis that is carrying a laser device that is used to cut a workpiece.
During the cutting process the laser must be moved with a fix velocity, no acceleration or deceleration phase can be tolerated. The laser must be moved to its waiting position after the cutting was done.
This can be achieved with the FB MC_MoveContinuousAbsolute in the following way:
Started with a rising edge of xStartCuttingCycle, the instance "mca" of MC_MoveContinuousAbsolute will move the axis with lrFastVelocity to lrStartCutPos, turn back and have the speed lrCutVelocity when reaching lrStartCutPos again in negative direction. In this point in time, InEndVelocity is set, and the laser is switched on. As no other motion FB interrupts this movement, MC_MoveContinuousAbsolute will keep travelling in negative direction with the current speed. After the axis has overstepped the position lrEndPos, where the laser is switched off, the MC_MoveAbsolute instance "ma" moves the axis with high speed to its idle position: