McCircMode

When you use PLCopen MoveCircular APIs, you need to understand how the axes work in different circular modes. The following tables show how to define your circular move.

mcBorder

The user defines the end point and a border point (= input "AuxPoint") on the arc of the circle that the machine will travel.

Advantages:

+ The border point usually can be reached by the machine. That is, it can be taught: you record the target positions manually, use these positions in the command and machine will move in the same way you manually moved it.

Disadvantages:

− Restriction to angles < 2π in one single command.

MoveCircularAbsolute

MoveCircularRelative

 

mcCenter

2D

The user defines the end point and the center point (= input "AuxPoint") of the circle.

When using this mode, the input McCircPathChoice decides whether the machine takes the short or long path.

 

3D

In a 3-axis system (3D space) the circle plane can be viewed from both sides, but it's hard to know the direction the plane faces. In KINGSTAR, there are two rules to identify it:

  • The positive direction of the x-axis is from the starting point to the circle center.
  • The end point's y-axis points in the positive direction.

Once the direction in which the circle plane faces is known, we use McCircPathChoice to decide whether the machine takes the short or long path.

Disadvantages:

− Restriction to angles < 2π and ≠ π in one single command.

− Overdetermination of circle equation.

− The center point usually can't be taught due to collisions with obstacles.

MoveCircularAbsolute

MoveCircularRelative

 

mcRadius

3D

mcRadius can only be used in a 3-axis system. The user defines the end point and the perpendicular vector of the circle plane according to right-hand rule (see the figure below). The length of the vector corresponds to the radius of the circle. The spearhead point of the vector is the input signal "AuxPoint" in absolute coordinates. That is, the origin of the coordinate system specified in "CoordSystem."

After defining the radius and the end point, we get a circle plane in the 3D space. The direction the plane faces is decided by the z-axis. The plane is facing in the direction where the z-axis is positive.

Next, we need to determine the path. Between the starting and end point, the radius forms two circles, which provides four paths for the machine to travel: short clockwise, long clockwise, short counterclockwise, long counterclockwise.

Because the motion adopts the right-hand rule, the direction is always positive (counterclockwise). That leaves us two options: short or long path in the positive direction. We can use McCircPathChoice to choose the path. If you want the short, choose mcShortPath, otherwise choose mcLongPath.

2D

If you are using a 2-axis system but want to use mcRadius, you need to define the z-axis point by yourself. In 2D space, mcRadius automatically adds the third dimension so the space becomes 3D. For example, if your starting point is {3, 5}, it changes to {3, 5, 0}. Your end point can be something like {4, 9, 0}. Note that the z-axis is always zero.

The AuxPoint in 2D must be {0, 0, X}. X is a positive or negative number. It is the length of the vector, which is the radius of the circle. After defining the AuxPoint, use McCircPathChoice to choose between the short and long path. mcShortPath is for short and mcLongPath is for long.

Disadvantages:

− Restriction to angles < 2π in one single command.

− The perpendicular vector has to be computed.

− Overdetermination of circle equation.

Example:

AuxPoint = (50,0,0) → Circle in plane parallel to yz plane with radius 50 and the axis of rotation parallel to x-axis according to the rule of right thumb (CoordSystem = ACS).

MoveCircularAbsolute

MoveCircularRelative