Function BlockMC_MoveSuperimpPLCopen motion icon

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.

Description

This function block provides the ability to cause additional axis motion superimposed upon a currently executing move. A superimposed move is executed like an MC_MoveRelative move using the specified Distance, Velocity (i.e. VelocityDiff), Acceleration, Deceleration, and JerkClosedIn physics, jerk is the rate of change of acceleration; more precisely, the derivative of acceleration with respect to time values. The interpolated command generated by a superimposed move is added to the command of the currently executing move. Subsequent calls to MC_MoveSuperimp can abort or blend to an executing MC_MoveSuperimp move.

This function block provides a way to smoothly apply a shift in axis position while it is executing a move.

MC_MoveSuperimp

Figure 8-141: MC_MoveSuperimp

Time Diagram

MC_MoveSuperimp: Timing Diagram


    1. The CommandAborted is not visible here, because the new command works on the same instance (see general rules)
    2. The end position is between 7000 and 8000, depending on the timing of the aborting of the second command set for the MC_MoveSuperimposed

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
  1. abort
  2. buffer
  3. blend to active
  4. blend to next
  5. blend to low velocity
  6. blend to high velocity
See table in Buffer Modes
  Data type SINT
  Range [0,5]
  Unit N/A
  Default

 

Output

Done Description

Indicates the move completed successfully.
The Command Position has reached the endpoint.

  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
See table in PLCopen Function Block ErrorID Output
  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

MC_MoveSuperimp: LD example

Go back to the top of the page [Top]