MC_MoveAbsolute
Description
Time Diagram
The following figure shows two examples of the combination of two absolute move FunctionA function calculates a result according to the current value of its inputs. A function has no internal data and is not linked to declared instances. Blocks:
- The left part of timing diagram illustrates the case if the Second Function BlockA function block groups an algorithm and a set of private data. It has inputs and outputs. is called after the First one. If First reaches the commanded position of 6000 (and the velocity is 0) then the output Done causes the Second FB to move to the position 10000
- The right part of the timing diagram illustrates the case if the Second move Function Block starts the execution while the First FB is still executing. In this case the First motion is interrupted and aborted by the Test signal during the constant velocity of the First FB. The Second FB moves directly to the position 10000 although the position of 6000 is not yet reached
-
- This function block starts a motion-related action and therefore stores data for calculations and error checking. Please see Calling Function Blocks Multiple Times in the Same Cycle if you are using a dual-core controller.
Arguments
Input
Execute |
Description |
Requests to queue the move |
||||||||||||
Data type |
BOOL |
|||||||||||||
Range |
0, 1 |
|||||||||||||
Unit |
N/A |
|||||||||||||
Default |
— |
|||||||||||||
Axis |
Description |
Name of a declared instance of the AXIS_REF library function (for more details,About Axis Name and Number) |
||||||||||||
Data type |
||||||||||||||
Range |
[1,256] |
|||||||||||||
Unit |
N/A |
|||||||||||||
Default |
— |
|||||||||||||
Position |
Description |
Endpoint position. If Rollover Position is nonzero, this value must be in the range 0 <= Position < Rollover Position When not in Rollover mode, the input accepts a 64-bit floating point value. |
||||||||||||
Data type |
LREAL |
|||||||||||||
Range |
[see Description] |
|||||||||||||
Unit |
User unit |
|||||||||||||
Default |
— |
|||||||||||||
Velocity |
Description |
|||||||||||||
Data type |
LREAL |
|||||||||||||
Range |
— |
|||||||||||||
Unit |
User unit/sec |
|||||||||||||
Default |
— |
|||||||||||||
Acceleration |
Description |
Trapezoidal: Acceleration rate S-curve: Maximum acceleration If Acceleration is not valid, ErrorID is set to 21 Selection of Acceleration and Jerk Parameters for Function Blocks |
||||||||||||
Data type |
LREAL |
|||||||||||||
Range |
— |
|||||||||||||
Unit |
User unit/sec2 |
|||||||||||||
Default |
— |
|||||||||||||
Deceleration |
Description |
Trapezoidal: Deceleration rate S-curve: Unused |
||||||||||||
Data type |
LREAL |
|||||||||||||
Range |
— |
|||||||||||||
Unit |
User unit/sec2 |
|||||||||||||
Default |
— |
|||||||||||||
Jerk |
Description |
Trapezoidal: 0 S-curve: Constant jerkIn physics, jerk is the rate of change of acceleration; more precisely, the derivative of acceleration with respect to time If Jerk is not valid, ErrorID is set to 21 Selection of Acceleration and Jerk Parameters for Function Blocks |
||||||||||||
Data type |
LREAL |
|||||||||||||
Range |
— |
|||||||||||||
Unit |
User unit/sec3 |
|||||||||||||
Default |
— |
|||||||||||||
Direction |
Description |
When Rollover Position is zero, a value of 0 must be specified. When Rollover Position is nonzero, a value of 1, 2, 3, or 4 must be specified.
If the Position input is the same as the axis's current position, then:
|
||||||||||||
Data type |
SINT |
|||||||||||||
Range |
[0,4] |
|||||||||||||
Unit |
N/A |
|||||||||||||
Default |
— |
|||||||||||||
BufferMode |
Description |
0 = abort 1 = buffer 2 = blend to active 3 = blend to next 4 = blend to low velocity 5 = blend to high velocity
|
||||||||||||
Data type |
SINT |
|||||||||||||
Range |
[0,5] |
|||||||||||||
Unit |
N/A |
|||||||||||||
Default |
— |
Output
Done |
Description |
Indicates the move completed successfully. |
Data type |
BOOL |
|
Busy |
Description |
High from the moment the Execute input is one-shot to the time the move is ended |
Data type |
BOOL |
|
Active |
Description |
Indicates this move is the active move |
Data type |
BOOL |
|
CommandAborted |
Description |
Indicates the move was aborted |
Data type |
BOOL |
|
Error |
Description |
Indicates an invalid input was specified or the move was terminated due to an error |
Data type |
BOOL |
|
ErrorID |
Description |
Indicates the error if Error output is set to TRUE
|
Data type |
INT |
Example
Structured Text
(* MC_MoveAbsolute S T example *) Inst_MC_MoveAbsolute( MovAbsReq, Axis1, 1234.567, 100.0, 100.0, 100.0, 0, 0, 0 ); //instance of MC_MoveAbsolute MovAbsDone := Inst_MC_MoveAbsolute.Done; //store done output into user defined variable MovAbsBusy := Inst_MC_MoveAbsolute.Busy; MovAbsActive := Inst_MC_MoveAbsolute.Active; MovAbsAborted := Inst_MC_MoveAbsolute.CommandAborted; MovAbsError := Inst_MC_MoveAbsolute.Error; MovAbsErrID := Inst_MC_MoveAbsolute.ErrorID;
See also how this function is used in the Hole punch project here
Ladder Diagram