MC_MoveContinuousRelative

Function block MC_MoveContinuousRelative
Commands a controlled motion of a specified relative distance 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 Distance LREAL Relative distance for the motion. [unit]
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 BufferMode MC_BufferMode Defines how to blend the velocity of two function blocks.
VAR_OUTPUT
B InEndVelocity BOOL Commanded distance 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.
  • If the commanded position is reached and no new motion command is put into the buffer, the axis continues to run with the specified EndVelocity.
  • The Continuous Motion state means it won't stop by itself.
  • If EndVelocity is less than Velocity, the axis will use EndVelocity to run after the commanded distance has been reached; if EndVelocity is greater than Velocity, the axis will use Velocity to run.
  • This function block (FB) is for the systems that don't support BufferMode.
  • This FB can be replaced by the combination of MC_MoveRelative and MC_MoveVelocity if BufferMode is implemented on those FBs.
  • Currently MC_MoveContinuousRelative can't reverse the direction of the axis.

 

  MC_MoveContinuousRelative  
AXIS_REF   AxisIn   Axis   AXIS_REF
BOOL   Execute   InEndVelocity   BOOL
BOOL   ContinuousUpdate   Busy   BOOL
LREAL   Distance   Active   BOOL
LREAL   Velocity   CommandAborted   BOOL
LREAL   EndVelocity   Error   BOOL
LREAL   Acceleration   ErrorID   MC_Error
LREAL   Deceleration        
LREAL   Jerk        
MC_BufferMode   BufferMode        
             

 

These two sampling traces show the effect of the sign of the value of the input EndVelocity:

EndVelocity with positive direction

EndVelocity with negative direction

Example of MC_MoveContinuousRelative