Function BlockMC_MoveCircRelPLCopen motion iconPipe Network motion icon

Description

MC_MoveCircRel commands interpolated circular movement on an axes group to the specified relative positions in the coordinate system as specified by the 'CoordSystem' argument. See Circular Moves Diagrams for detailed information on the movement options.


  • An error is returned if the group is in the GroupDisabled state.

When all motion has completed successfully, the state of the axes group goes to GroupStandby.

Figure 8-181: MC_MoveCircRel

Related Functions

MC_MoveCircAbs, MC_ErrorDescription

Coordinated Motion, the top-level topic for Coordinated Motion.

Arguments

Input

Execute Description On the rising edgeClosedA rising edge is the transition of a digital signal from low to high. It is also called positive edge request to perform a circular relative move.
  Data type BOOL
  Range 0, 1
  Unit N/A
  Default
AxesGroup Description The axis group that will perform the circular relative move
  Data type AXIS_GROUP_REF
  Range N/A
  Unit N/A
  Default
CircMode Description Specifies the meaning of the AuxPoint[ ] input (see AuxPoint[ ] below).
  Data type

SINT

One of the following enumeration values:

  • MC_CIRC_MODE_BORDER = 0
  • MC_CIRC_MODE_CENTER = 1
  Range N/A
  Unit N/A
  Default
AuxPoint[] Description

Array of relative positions for each axis in the group. The meaning depends on the value of the CircMode input:

  • MC_CIRC_MODE_BORDER: AuxPoint defines a point on the circle which is crossed on the path from the starting to the end point.
  • MC_CIRC_MODE_CENTER: AuxPoint defines the center point of the circle.

In all cases the points are relative to the starting point.

  Data type LREAL
  Range [0, Number of axes in group - 1]
  Unit N/A
  Default
  Required Precision 1 part in 100,000. See Precision Requirements for Circular Move Input Parameters.
EndPoint[] Description Array of relative end positions for each axis in the group.
  Data type LREAL
  Range [0, Number of axes in group - 1]
  Unit N/A
  Default
  Required Precision 1 part in 100,000. See Precision Requirements for Circular Move Input Parameters.
PathChoice Description Specifies the direction of the path. This argument is only relevant when CircMode is MC_CIRC_MODE_CENTER.
  Data type

SINT

One of the following enumeration values:

  • MC_CIRC_PATHCHOICE_CLOCKWISE = 0 = Clockwise
  • MC_CIRC_PATHCHOICE_COUNTERCLOCKWISE = 1 = Counterclockwise
  Range N/A
  Unit N/A
  Default
Velocity Description Maximum velocity of the defined path
  Data type LREAL
  Range

0 < Velocity < ( 20 * Acceleration ) and 0 < Velocity < ( 20 * Deceleration)

See Limitations on Acceleration and Jerk for more information.

  Unit user units per second
  Default
Acceleration Description Maximum acceleration
  Data type LREAL
  Range

0 < Velocity < ( 20 * Acceleration )

See Limitations on Acceleration and Jerk for more information.

  Unit user units per second2
  Default
Deceleration Description Maximum Deceleration
  Data type LREAL
  Range

0 < Velocity < ( 20 * Deceleration )

See Limitations on Acceleration and Jerk for more information.

  Unit user units per second2
  Default
Jerk Description Maximum jerkClosedIn physics, jerk is the rate of change of acceleration; more precisely, the derivative of acceleration with respect to time
  Data type LREAL
  Range

For trapezoidal velocity profiles: 0

For S-Curve velocity profiles: ( Velocity / 20 ) < Acceleration < ( 2 * Jerk ) and ( Velocity / 20 ) < Deceleration < ( 2 * Jerk )

See Limitations on Acceleration and Jerk for more information.


  • S-Curve motion is currently not supported and the Jerk input is currently ignored. S-Curve motion and the Jerk argument will be supported in a future release.
  Unit user units per second3
  Default
CoordSystem Description

The coordinate system used when commanding the circular relative move

Currently, only the ACS coordinate system is supported. See Coordinate Systems to learn more.

  Data type SINT
  Range

One of the following enumeration values:

  • MC_COORDINATE_SYSTEM_ACS = 0
  • MC_COORDINATE_SYSTEM_MCS = 1
  • MC_COORDINATE_SYSTEM_PCS = 2
  Unit N/A
  Default
BufferMode Description

Defines the chronological sequence of the function block relative to the previous block.

The blending modes (2, 3, 4, & 5) match the path velocity at the active move's endpoint. Some individual axis velocities may make an abrupt change if the path of the next move travels in a different direction. A transition move may be programmed at the TransitionMode input to avoid this.

See the table in Buffer Modes.

  Data type

SINT

One of the following enumeration values:

  • MC_BUFFER_MODE_ABORTING = 0 = Abort
  • MC_BUFFER_MODE_BUFFERED = 1 = Buffered
  • MC_BUFFER_MODE_BLENDING_PREVIOUS = 2 = Blending Previous
  • MC_BUFFER_MODE_BLENDING_NEXT = 3 = Blending Next
  • MC_BUFFER_MODE_BLENDING_LOW = 4 = Blending Low
  • MC_BUFFER_MODE_BLENDING_HIGH = 5 = Blending High
  Range
  Unit N/A
  Default
TransitionMode Description

Coupled with the TransitionParameter[ ], this input defines the shape and dynamics of the inserted contour to connect the current motion with the next motion in the queue.

See Transition Between Moves for additional information.

  Data type SINT
  Range

The value is limited to the following: 

  • MC_TRANSITION_MODE_NONE = 0
  • MC_TRANSITION_MODE_CORNER_DISTANCE = 3
  Unit N/A
  Default
TransitionParameter[ ] Description

This array is dependent on the TransitionMode specified. The transition parameter values are applied to the axis group. See Transition Mode Parameters for details.

  Data type LREAL
  Range

[1, N ]

N values are supplier specified dependent on the TransitionMode selected.

  Unit N/A
  Default

Output

Done Description

If True, then the command completed successfully.

  Data type BOOL
Busy Description

If True, then the function block is executing.

  Data type BOOL
Active Description

If True, then the function block is controlling motion.

  Data type BOOL
CommandAborted Description

If True, command was aborted by another function block.

  Data type BOOL
Error Description

If True, an error has occurred.

  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

ST

Inst_MC_MoveCircRel( ExecuteMove, Group1_Ref, MC_CIRC_MODE_BORDER, AuxPoints, EndPoints, MC_CIRC_PATHCHOICE_CLOCKWISE, Velocity, Acceleration, Deceleration, Jerk, MC_COORDINATE_SYSTEM_ACS, MC_BUFFER_MODE_ABORTING, MC_TRANSITION_MODE_NONE, TransitionParams );

IL

      BEGIN_ILClosed"Instruction list"
This is a low-level language and resembles assembly    
CAL Inst_MC_MoveCircRel( ExecuteMove, Group1_Ref, MC_CIRC_MODE_BORDER, AuxPoints, EndPoints, MC_CIRC_PATHCHOICE_CLOCKWISE, Velocity, Acceleration, Deceleration, Jerk, MC_COORDINATE_SYSTEM_ACS, MC_BUFFER_MODE_ABORTING, MC_TRANSITION_MODE_NONE, TransitionParams )
END_IL

FBD

FFLD

Go back to the top of the page [Top]