Trio Motion Home
    Home | Trio News | About Trio | Contact Trio   
Search for...
 User Log In...
 My Details
 Log In  
 Not Logged On  
   
  
 Quick Links...
  Forum
  Feature Enable Code
  Trio China
 Trio Ezine ...
 Subscribe to the Ezine...

  Previous Ezine's

Tangential Axis Control

print printer friendly

tangential knifeIn many X-Y cutting, measurement systems, there is a need to keep a thrid axis in alignment with the current travel direction. Each combination of speeds in X and Y results in a Vector value which needs to be fed to a third axis controlling the rotation of the stylus. Examples of machines that require such a control are; glass cutting, knife blades, powered jig-saws and “pizza wheels”.

System requirements:

Tangential control requires the use of a “Look-Ahead” version of Motion Coordinator system software. The feature is supported in version 1.65 or later. This version can be built for Euro205x, Euro209, MC206X, PCI208, MC224, MC464. It is not available for older generation products due to memory size limitations.

Command reference:

MOVETANG

Type: Motion Command

Syntax: MOVETANG(absolute_position)

Description: Moves the axis to the required position using the programmed SPEED, ACCEL and DECEL for the axis. The direction of movement is determined by a calculation of the shortest path to the position assuming that the axis is rotating and that REP_DIST has been set to Π radians (180 degrees) and that REP_OPTION=0.

If a MOVETANG command is running and another MOVETANG is executed for the same axis, the original command will not stop, but the endpoint will become the new absolute position.

Parameters: absolute_position: The absolute position to be set as the endpoint of the move. Value must be within the range –PI to +PI.

Example: An X-Y positioning system has a stylus which must be turned so that it is facing in the same direction as it is travelling at all times. A tangential control routine is run in a separate process:

BASE(0,1) 'set base to X/Y interpolated pair

WHILE TRUE

' get tangent direction and apply to axis 2

MOVETANG(TANG_DIRECTION) AXIS(2)

WA(1)

WEND

TANG_DIRECTION

Type: Axis Parameter

Description: When used with a 2 axis X-Y system, this parameter returns the angle in radians that represents the vector direction of the interpolated axes. The value returned is between –PI and +PI and is determined by the directions of the interpolated axes as follows:

X
Y
Value
 
0
1
0
 
1
0
PI/2
 
0
-1
PI
+PI or -PI
-1
0
-PI/2
 

Example1:

'Note scale_factor_x MUST be the same as scale_factor_y

UNITS AXIS(4)=scale_factor_x

UNITS AXIS(5)=scale_factor_y

BASE(4,5)

MOVE(100,50)

angle = TANG_DIRECTION

Example2:

BASE(0,1)

angle_deg = 180 * TANG_DIRECTION / PI

Example:

An X-Y cutting table has a “pizza wheel” cutter which must be steered so that it is always aligned with the direction of travel. The main X and Y axes are controlled by Motion Coordinator axes 0 and 1, and the pizza wheel is turned by axis 2. Control of the Pizza Wheel is done in a separate program from the main X-Y motion program. In this example the steering program also does the axis initialisation.

Program TC_SETUP.BAS:

' Set up 3 axes for Tangential Control

WDOG=OFF

BASE(0)

P_GAIN=0.9

VFF_GAIN=12.85

UNITS=50 'set units for mm

SERVO=ON

 

BASE(1)

P_GAIN=0.9

VFF_GAIN=12.30

UNITS=50 'units must be the same for both axes

SERVO=ON

 

BASE(2)

UNITS=1 'make units 1 for the setting of rep_dist

REP_DIST=2000 'encoder has 4000 edges per rev.

REP_OPTION=0

UNITS=4000/(2*PI) 'set units for Radians

SERVO=ON

 

WDOG=ON

' Home the 3rd axis to its Z mark

DATUM(1) AXIS(2)

WAIT IDLE

WA(10) 'start the tangential control routine

BASE(0,1) 'define the pair of axes which are for X and Y

WHILE TRUE

'get tangent direction and apply to axis 2

MOVETANG(TANG_DIRECTION) AXIS(2)

WA(1)

WEND

 

Program MOTION.BAS:

'program to cut a square shape with rounded corners

BASE(0,1)

MERGE=ON

SPEED=300

size=120 'size of each side of the square

c=30 'size (radius) of quarter circles on each corner

DEFPOS(0,0)

WAIT UNTIL OFFPOS=0

MOVEABS(10,10+c)

REPEAT

MOVE(0,size)

MOVECIRC(c,c,c,0,1)

MOVE(size,0)

MOVECIRC(c,-c,0,-c,1)

MOVE(0,-size)

MOVECIRC(-c,-c,-c,0,1)

MOVE(-size,0)

MOVECIRC(-c,c,0,c,1)

UNTIL FALSE

 

This is one of many new commands that has been added to the latest version of the manual. Click here to download the latest manual