MC_MoveSuperimp
Usage
This function block:
- performs a single-axis move which is superimposed upon the active move.
- provides a way to smoothly apply a shift in axis position while it is executing a move.
- is commonly used along with MC_TouchProbe for performing position corrections on the slave axis in a Mark to Machine registration application.
-
- MC_MoveSuperimp performs a similar function to the SlaveOffset input to the MC_CamIn function block but has the additional feature of setting the velocity, acceleration, deceleration, and jerkIn physics, jerk is the rate of change of acceleration; more precisely, the derivative of acceleration with respect to time motion parameters
Description
This function block provides a way to smoothly apply a shift in axis position while it is executing a move.
Time Diagram
-
-
- The CommandAborted is not visible here, because the new command works on the same instance (see general rules)
- The end position is between 7000 and 8000, depending on the timing of the aborting of the second command set for the MC_MoveSuperimposed
- The CommandAborted is not visible here, because the new command works on the same instance (see general rules)
-
- 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
For more detail on how inputs and outputs work, refer to PLCopen Function Blocks - General Rules
Input
Execute | Description | Requests to queue the superimposed 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 | AXIS_REF | |
Range | [1,256] | |
Unit | N/A | |
Default | — | |
Distance | Description | Distance |
Data type | LREAL | |
Range | — | |
Unit | User unit | |
Default | — | |
VelocityDiff | Description | Velocity rate |
Data type | LREAL | |
Range | — | |
Unit | User unit/sec | |
Default | — | |
Acceleration | Description | Trapezoidal: Acceleration rate S-curve: Maximum acceleration |
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 jerk |
Data type | LREAL | |
Range | — | |
Unit | User unit/sec3 | |
Default | — | |
BufferMode | Description |
|
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 superimposed 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_MoveSuperimp ST example *)
Inst_MC_MoveSuperimp( MovSupReq, Axis1, 123.555, 10.0, 100.0, 100.0, 0, 0 );
MovSupDone := Inst_MC_MoveSuperimp.Done; //store Done output into user defined variable
See also how this function is used in the Hole punch project here
Ladder Diagram