Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 24

Demonstration Program, be used.

The height of the gripper in its lowered


position will need to be physically adjusted, however,
Serpent-1 ~ SVERTP&P.se3 with a combination of the height of the robot on its
column and the end stops for the wrist prismatic axis, Z.
Equipment : Serpent I EC robot Otherwise the gripper may not reach or, alternatively,
damage could result if it can travel too far.
This is a program to demonstrate the simplest robotic
manoeuvre which may be used in a workcell, to pickup Referring to the program sequence, the start position for
an object using a vertical movement and then place it at Pickup is with the gripper held above the workcell
some other point in the workcell, repeating the vertical surface at the upper position and with the fixed robot
movement and possibly with the same spatial waist axis aligned with the spatial Y axis by rotating the
orientation. With Serpent this is assured since the clamp about the column. From here, the gripper is
prismatic axis at the wrist is vertical, and it only moves moved at height above the part on the conveyor surface,
between end stops, but the co-incident rotational axis is with the wrist prismatic axis and the part vertically
co-ordinated with rotation about the effective shoulder, or aligned. The gripper is then lowered, closed and then
main axis. A placement in the horizontal sense is not raised before being returned to the initial position.
possible, however, since the wrist does not have
elevation. This same initial position starts the Place sequence, in
which the main and fore axes are used to move the
gripper at height, safe from obstructions, to above the
placement point, in this case on the right hand side of
the Y axis. From here the gripper is lowered using the
vertical prismatic wrist axis, Z, before the gripper is
opened to release the part into a bin, say The gripper is
then lifted clear before the arm rotates to return to the
initial rest position.

The program may be obeyed as a single sequence,


which will contain two lines with the same code, or it
may be obeyed as part of a larger program under the
control of a workcell program, using the separate pickup
and place sequences.

The object or part is assumed to be at a height above


the workcell surface, corresponding to that of a
conveyor. The typical use of such a manoeuvre is to
take parts off the conveyor and place them in a
component bin, say, or perhaps onto the Mill table. In
the program the conveyor pickup point is assumed to be
ahead of the robot and to the left of the Y axis, with the
conveyor typically aligned and parallel to the X axis.

Either the two finger gripper or the suction gripper may

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 26


Demonstration Program, predictable way.
Serpent-2 ~ SER_GRID.wal
To create a similar program for the robot that has been
Equipment : Serpent I EC robot supplied it is necessary firstly, to record a basic grid
pattern of robot position within the horizontal plane, and
This demonstration explores the capabilities of the robot around this the printing program may be written.
to make placements within a different spatial reference Secondly, it is necessary to make a suitable printing
system the one within which it operates, i.e. to place block which can be held by the gripper jaws, and to
within a rectangular or Cartesian reference, while it acquire an ink pad, the least messy way of transferring
moves within a cylindrical co-ordinate system. It has the block pattern to paper.
direct application to a familiar industrial requirement, for
placing components into a grid system as defined by Although the two finger gripper jaws on Serpent is the
positions on a palette, which would be located near a same as that used for Gryphon and will open wider than
conveyor somewhere along a production line. 40 mm , the most obvious format for the block and
printing grid is to use a 40 by 40mm square since the 5
The problem of the maintaining the orientation of the by 5 grid which is suggested, will fit within the placement
object within the grid reference is eased on Serpent cardeoid. The block should be some 45mm long, so that
since rotation of the wrist axis in its vertical position is it may be held firmly and squarely within the jaws and at
co-ordinated mechanically to compensate for the robots this size it reaches back to press against the ledge
rotation about the main or shoulder axis, which is the formed by the end of the square section part of the
spatial reference. fingers. The same size square block, but thinner and
backed by a smooth hard surface, will also be required
As an effectiveness means of recording the operation, it for a suction gripper.
is suggested that the action of placement is used to print
a grid pattern, using an ink pad and a pattern block that A suitable material for the block is the high density
may be made from plastics foam. If the two finger 'neapoline' plastics foam used for packing in the delivery
gripper is used, the block will be in the form of a cube crate for the robot. This material cuts to a fine line using
or, if the suction gripper is being used, it will need to be a a model makers' scalpel, absorbs the ink from the pad
thin slice backed by a smooth hard material,. As such, it and is sufficiently firm to withstand the jaw pressure
is a creative exercise which requires only the repetition without distorting the printing surface. The surface is
of what has been demonstrated so far. soft enough to compress slightly when making the print
and the surface texture adds detail to the print, also.

It will be necessary to adjust the lower position of the


gripper and the block it is holding, so that it comes into
contact with the printing surface, using a combination of
height adjustment on the vertical column and the end
stop locations for the prismatic axis at the wrist.

A sheet of graph paper will provide the reference


positions for the grid pattern at 40mm intervals on both
axes and this should be attached to a board placed on a
raised platform in front of the robot base, and at a height
that is within range of the prismatic axis. The grid
pattern may be laid for convenience, aligned with and
disposed symmetrically about, the Y axis of the robot. A
five-by-five grid of vertical placement points 40mm apart,
is comfortably within the capabilities of the Serpent
robot, and the intersection of each square should be
ringed in preparation for the programming process.

The demonstration may be loaded and run in the same It is suggested that the grid points be entered first, to
way as the previous program, but this has been written avoid the extensive editing that will otherwise be needed
for a robot at the factory and in a demonstration of this to build the robot program. The same means as
form the differences between individual robots become previously described to record accuracy in the Student
apparent and the relative positions of the robot and Exercises, may be used to locate the position of the grid
printing grid will not be the same. It should be noted that points.
the movement of the robot main and fore axes between
the inking position and all points of the grid, are always in This is a pencil point held in an adapter and projecting
the same sense so that the compliance is taken up in a

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 27


from the jaws by the same distance as the print block. group will be formed from one of the grid positions
This part of the process is more difficult using the suction recorded, preceded by a line repeating the same values
gripper because of the flexibility of the suction cup but with the value of the Z axis changed from 0 to 1, and
followed by the same line. This brings the block to a
The axes values for the grid positions may be entered position above the grid position, lowers it to the surface
into the robot program using the following technique : to make the print, and then lifts it clear again. Axis 3, the
wrist rotation is left at its mid position throughout.
1. Under on-line closed loop control, adopt a position for
the robot close to the inner-most position for vertical Table of typical axes values for grid positions, and for the
placement, on the Y axis and this will form the grid ink pad sequence
base reference.
X~Y co-ord Axis 0 Axis 1 Axis 2 Axis 3 Axis 4 Axis 5
2. Position the inner-most middle grid point on the Main Fore Wrist Z Grip
graph paper below the pencil point and with the grid
line aligned to the Y axis. Lower the pencil point to 0,0 - 4504 332 625 0 1
nearly touch the paper, making any adjustments 0,40 - 4415 862 625 0 1
necessary to the end stop positions on the wrist 0,80 - 4265 1445 625 0 1
prismatic axis. Record the axes values for this 0,120 - 4037 2164 625 0 1
position into the program. 0,160 - 3653 3245 625 0 1

3. Without moving axis 0, seek the position of the -80,0 - 3836 502 625 0 1
farthest grid point on the middle grid line. Minor 80,0 - 5130 502 625 0 1
adjustment may be made to rotate the paper about 80,160 - 3903 3630 625 0 1
the previously recorded point to align to the grid, and -80,160 - 3126 3630 625 0 1
this may be done using a pin through the paper.
Lower the pencil point to the surface, making any pad, pause - 132 5020 625 1 1
minor adjustments to axes values, and record as pad, ink - 132 5020 625 0 1
before. pad, lift - 132 5020 625 1 1

4. Having established the alignment of the graph paper The particular values that are to be used repeatedly for
grid with the Y axis of the robot and taking care not to the ink pad sequence should be established under on-
move the graph paper again, all the axes values for line keyboard control also, to establish that ink is
all the other grid positions may be similarly recorded transferred without exerting excessive pressure, but
into the program. The wrist axis is rotated once this has been done, the rest of the program may be
automatically to align the jaws with the grid as the created with the motor power switched off and off-line.
robot arm is rotated to the centre of grid positions Six lines of positions are required for each printing point,
either side of the Y axis. a total of 150 lines plus one for the end point, to be tidy.

Below is a table of typical axes values for the Y axis grid It will be necessary to refine the program after a trial
points and for the corners of the grid. The full set of 25 print using the single step replay sequence, for any
axes values for all the grid positions has been omitted for misalignments in position. This refined program may
brevity but the values should only be regarded as being then be recalled from disc and re-run either using single
indicative since all will be different for any one step or continuous replay, to reproduce the block pattern
arrangement to position the printing surface and grid, on fresh pieces of paper.
which of necessity may only be done by the user.
The program will take the form that is given in the
This is the basis of the robot program, but it also demonstration file included on the distribution disc, but it
requires a sequence to press the block onto the ink pad should be emphasised that to obtain printed results from
between each print. A typical sequence for this is given this, the printing surface will have to be set up exactly as
at the foot of the table. It begins with a start position, it was and the travel of the Z axis adjusted to suit the
with the block held above the centre of the printing individual robot.
surface, moves the robot to a position with the block
poised above an ink pad, lowers the block onto the pad It should also be noted that the program has been saved
and then lifts it clear. The thickness of the ink pad should as a project file which uses the robot program sequence
not be of any consequence, if it is placed on the same S_P_GRID.se3 under the control of a workcell program,
surface as that on which the printing takes place. even though there are no other components declared for
the workcell.
This inking sequence will need to be obeyed between
each group of moves to do the actual printing. Each The number of lines of code in the robot program are not
some 150 as suggested above, but may be reduced to

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 28


78 lines, using the FOR loop command in the workcell robots, also.
program to move to the grid positions in the sequence in
which they are written.

This form of program, where a number of moves are


required which are only slightly different, interspersed
with a repeated action, is typical of the work required to
load a palette and as such it is embodied in the palletise
command provided for the CyRo robot workcell. The
program structure is not limited to this type of activity but
in its general form it represents a powerful means of
calling a list of subroutines for robot action, in a
prescribed sequence. The subroutine actions may be
quite different and of different lengths, not entirely similar
as for each print or palette location, nor are the routines
limited to robot moves.

Using the FOR loop and NEXT commands with the robot
under workcell control from Main , the robot program
may be reduced to a single statement of the three lines
of positions for the inking sequence, and requires only a
statement of the three position print sequence for each
point on the grid, as a list of numbered subroutines.

The workcell program is very short and concludes when


the end condition for the FOR loop is satisfied. In the
example on disc, the robot sequence is truncated to
include only the five positions on the Y axis and the four
corner positions. The user is invited to complete the
robot sequence for all 25 grid positions and adjust the
parameters of the FOR loop accordingly.

Variations of the basic program using colours, different


grid layouts and overprints gives scope for creativity and
would provide readily appreciated demonstration
material. If such a procedure were to be considered in
commercial practice, it would be best to use a Cartesian
form of robot, such as the Kestrel. The other alternative
is to modify the inking routine to one for picking up rather
smaller square parts and then releasing them into a grid
placement, such as a chess board, and this would be an
effective demonstration of the capability of SCARA

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 29


Demonstration program,
The Cell Definition window shows a list of the sub-
Serpent-3 ~ DEMO_S1.wal devices that have been added to the declaration for the
Serpent within the cell. Against each sub-device is a
Equipment : Serpent I EC robot, Conveyor, Parts summary of the connections that have been allocated
Dispenser, Digital Width Gauge, during the programming and these must correspond to
2 Digital Sensors the actual wiring for the workcell, between the Serpent
cell interface and the sub-devices, all physically
This is a simple program for a single Serpent robot associated with the conveyor.
working within a workcell equipped with a conveyor on
which are mounted a parts dispenser and an analog
width gauge. It uses the robot program sequence
SVERTPRA.SE3 to pick up parts from the conveyor and
place them in bins for accepted parts or rejected parts,
according to the width gauge measurement. The
conveyor also has two infra red sensors, one mounted
between the parts dispenser and the width gauge, the
other near the end of the conveyor, at a point where the
robot may pick-up the part. The distance between
Sensor 1 and the width gauge is 50mm, a value which
will is needed in the program to position the parts for the
gauge.

The digital gauges measure directly over a range of In these declarations, the selections that were made in
95mm, from a base which may be offset by inserting a the dialogue boxes which are presented when selecting
block against the conveyor rail. The gauges are self the appropriate addition from the cell menu, while the
calibrating, but the calibration command should always Cell Definition window has the screen focus, may be
be used at the start of a program to avoid errors. summarised as follows :

The Serpent is assumed to be positioned opposite the Serpent I EC If not connected, this will be
pick-up point on the conveyor, with the major axis of the indicated. Only the RJ45 type of interface board will be
base at right angles to the conveyor. The separation accessible within the dialogue for the EC version of
distance between the axis of the conveyor and the Serpent, if one is installed in the host computer. For new
vertical waist axis of the Serpent is some 460mm. This systems, device 1 is suggested as the appropriate
cell arrangement is quite typical but any changes in the connection and further devices are suggested in order.
physical arrangement will require changes to the robot
program. Conveyor The Start, Stop, Increment and Serial
To connection boxes are all initially unconnected. Using
the cursor keys to change the selection and the tab key
to move between box fields, the Serial To connection
has been made to Serpent 1 latched output 1, the
preferred form of connection for conveyors, and the
Digital Outputs that might otherwise be allocated are left
unconnected. This is summarised against Conveyor 1, in
the Cell Definitions window

Parts Dispenser The Start and Free To connections


boxes have been changed from the initially unconnected
statement to Serpent 1 and the required output
allocated to the first in sequence, starting at 1, the input
to 3. Again this is the summary against Parts Dispenser
1.

Width Gauge The Star and Read From and the Out
To connection boxes have all been changed to Serpent
1. The Start and Read To Digital Outputs have been
allocated to the next in sequence, numbers 2 and 3
respectively and Out to allocated to Digital Input 4.

Sensors Both sensors have had the Output Connected


To connection set to Serpent 1 and the Digital Inputs set
to appropriately 1 and 2. The status of these input are
checked as they are allocated and will be shown as not
connected if the Serpent is not connected, or off-line.

Workcell Program, Main


Cell Definition Given the description of the physical arrangement of the

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 30


workcell and the contents of the Cell Definition window, allows the label to remain with the block, rather than
the reading of the workcell program should be self being reallocated as a number when program lines are
explanatory. inserted or deleted.

The Robot Program

This is in three blocks, labelled Pickup, Rejected and


Accepted respectively. A two finger gripper is assumed.

It is grouped into to two main blocks, the first to progress


a part from the dispenser through Sensor 1 position,
where the conveyor will have stopped after the part is
dispensed onto the moving conveyor. The conveyor is
then moved a distance of 50mm, corresponding to the
separation between Sensor 1 and the gauge, the width
measuring sequence is invoked and when completed,
the conveyor is moved on until the Sensor 2 detects the
part at the pick-up point.

At this point in the program, the robot routine to pick-up Pickup starts with the robot arm in a park position, with
the part from the surface of the conveyors called and a the gripper held above the conveyor. The prismatic wrist
test is made on the measurement taken If it is within the Z axis is lowered with its gripper open to a position
limits set, between 26 and 30mm, the program flow is where the gripper is poised just above the conveyor
diverted to the second program block. Otherwise, a surface and with the open gripper astride the part to be
robot routine to place the part in the Rejects bin is called, picked up. The gripper is closed and the Z axis then
a counter to record the rejects is incremented and the returned to it's upper position.
program flow returned to the start where another part is
dispensed. Rejected takes the arm from the parked position to a
position near the limit of it's anti clockwise rotation using
The second program block, labelled Ok, calls a routine to the main and fore axes, and with the gripper on the
place the part which is held by the robot's gripper, into negative X spatial axis. The gripper is lowered to above
the bin of Accepted parts, increments a count of the rejects bin and the gripper is released so that the
accepted parts and returns program flow back to the part drops into the bin. From here the gripper is raised
start at label 1. and the arm is again returned to its parked position.

End is merely a convenient label, and the program as Accepted carries out the same procedure as the rejected
written will run indefinitely for so long as there are parts routine, but in the opposite direction to position the
to dispense. gripper on the positive X spatial axis, above the accepted
parts bin.
The program has been entered using the appropriate
two letter mnemonics for each command, and inserting The use of a parked position has two benefits. It raises
the values and names in the appropriate entry boxes as the robot Z axis to a safe position so that the transients
they are displayed for entry or editing. It should be to other end points are as defined, and any obstacles will
noted that the syntax of the Move Robot command does be avoided. Secondly by starting from the same point in
not require the last destination field to be completed each routine, there are no "uncharted" transients, if the
when a block is referred to. robot program is run from the robot edit focus, i.e.
without control from the cell program.
The program blocks may be entered initially as a
continuous sequence, without the line numbers being
allocated, by simply completing each line in turn and
using the down cursor key to display the next vacant line
at the bottom of the window.

The second block is started by using the Insert line edit


command, from the edit menu or by using the Ctrl+I
shortcut, and would initially be allocated the number 2 as
a label, since no other numbers have been allocated.
End is also entered in the same way, with the initial label
of number 3.

Both labels Ok and End have been entered using the


normal edit features, with the cursor placed on the
respective number labelled line fields. Naming the block

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 31


Demonstration Program, Cell Definition
Serpent and Cyber Mill ~ DEMO_W2.wal The Cell Definition window shows a list of sub-devices
which have been added to the declarations of a Serpent
I robot and Cyber Mill. This is essentially the same list
Equipment : Serpent I EC robot, Cyber Mill, that was produced for the three conventional robot
Conveyor, Part Dispenser, Digital Width demonstration programs and the previous demonstration
Gauge, 2 Digital Sensors for the Serpent, and could have been produced by
editing the cell defined in one of these.
Although either the Gryphon or Mentor conventional
robots may be used to load and unload workpieces from Both Serpent and Mill are shown connected via the RJ45
the Mill work table inside the cabinet, movement within serial interface to the host computer, a requirement for
the confined space is more easily controlled using either both the Mill and EC version of the Serpent. All the sub-
rectilinear co-ordinates or the cylindrical co-ordinate devices are connected to the Serpent workcell interface,
system of the SCARA type of robot, such as Serpent since this is intentionally a demonstration of the Serpent
preferably in the short arm version of its two possible robot.
configurations. The principal use of the SCARA form is
in “assembly” work, making use of the compliance about
the vertical axis at the gripper. The compliance is
beneficial here, when placing the workpiece close to the
fixed jaws of the Mill vice and index device.

In this demonstration a Serpent I robot is used to place


work pieces onto the Mill table and retrieve them after
the Mill has completed a machine cycle. A conveyor
with parts dispenser and width gauge is included in the
workcell, repeating the previous demonstration, and only
those parts or workpieces that are within tolerance at
30mm diameter are moved to the Mill for machining.
Otherwise they are rejected. The cell arrangement is as
illustrated in the Walli for Windows brochure, as Table Workcell Program, Main
W2, with the placement point on the Mill table on the Y
axis of the Serpent robot, though this need not be so The program opens with a remark to remind the user
exactly, as shown in the illustration below. In using the that the Serpent has not been adjusted from its factory
conveyor, the project builds on the programming used in settings for the height and rotation of the main axis block
the demonstration programs given for the three on the vertical column, or for the range of movement on
conventional robots and in particular the immediately the prismatic axis at the wrist.
previous program. It also makes use of one of the
demonstration programs for the Cyber Mill which follow, Since the cell arrangement and complement does not
for the machining operation. This use of component have scope for parallel activity, the control of the devices
programs illustrates the versatility of the Walli system. has not been assigned to parallel subroutines, and the
Main program contains only one break to reject a
workpiece with the incorrect diameter and tolerance, or
to place the selected parts into the Mill. This followed by
a move to withdraw awaiting machining, then to retrieve
the part, placing it in the bin for finished components.

The co-ordination with the activity of the Mill is


demonstrated with the use of the two Wait statements in
the Load part of the Main program. It is possible to
adapt Mill programs at the workcell level, also, using the
Jog commands to move the effective origin of the milling
program. The milling program is an edited version of
the program DEMO_CM3, with only minor modification
to the initial part of the routine, to allow machining into
the end face of a 30mm diameter cylindrical workpiece.

The Start section of the Main program borrows


extensively from the demonstration programs for the
conventional robots and as a consequence the reading
of the workcell program should be otherwise self
explanatory.

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 32


of machining. Since the workpiece is cylindrical, rotation
at the wrist axis is irrelevant.

The Mill Program

The original program employs circular interpolation in


four quadrants to mill a circular indentation and then drill
to a greater depth at the centre of the circle at co-
ordinates of 20.00mm in X and Y. This is done after first
face milling the workpiece, in this case a roughly cut
rectangular block.
The Robot Program
The original program has been edited to exclude the face
The program assumes an initialised or zeroing position milling operation and to compensate for the resultant
at power on with the main axis fully clockwise and the position in the first line of the program, where Y is set to
fore axis fully counter clockwise, from which position the 50.00 mm.
programmed movement may occur without hazard, in
particular avoiding striking the electronics case, safety The modified program then makes use of the original
guard and mechanism of the Mill. statements for the subsequent machining, but the origin
is altered externally with the Jog statements in the Main
A significant feature of the program, which is in three workcell program, to the axis of the cylindrical
sections or robot subroutines, is the need to manoeuvre workpieces, at 15.00mm in X and Y on the Mill table.
the arm through intermediate positions, so as to avoid
these same hazards.

Thus for the Rejected section, the move to pick up and


then place the discarded part into the rejects bin is done
with the arm links both rotated in the clockwise sense, to
the near limit at the drop into the bin.

For the Load and Unload sections it is necessary to


have the links with the main axis clockwise and the fore
axis counter clockwise to reach the Mill table without
striking the case or safety guard en route.

A withdrawn position is adopted close to the initialised


position and the drop point for machined parts is also
close to this position, aligned with the rejects bin on a
line parallel to the conveyor axis. The sequence of these
movements and the transition between the alternative
possible manoeuvres is best followed using the graphics
simulation off-line.

In all cases the arm is moved into position with the wrist
prismatic axis raised. The gripper is then lowered before
being opened or closed, as appropriate, and then raised
again. Either a two finger gripper or a suction gripper
may be used, although for a suction gripper it would be
best to ensure that swarf is removed by an air blast
sequence, edited into the Mill program at the completion

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 33


Demonstration Program, Again it is not necessary to raise the gripper separately
before the move to return to the initial position.
Kestrel-1 ~ KVERTP&P.kes
Equipment : Kestrel robot

This is a program to demonstrate the simplest robotic


manoeuvre which may be used in a workcell, to pickup
an object using a vertical movement and then place it at
some other point in the workcell, repeating the vertical
movement and placing with the same orientation. In
Kestrel this is assured since the robot moves in
Cartesian co-ordinates and the only wrist axis movement
is a rotation about the coincident vertical prismatic axis.

The program may be obeyed as a single sequence, or it


may be obeyed as part of a larger program under the
control of a workcell program for the separate pickup and
place sequences.

The object or part is assumed to be at a height above


the workcell surface, corresponding to that of a
conveyor, the typical use of such a manoeuvre being to
take parts off the conveyor and place them in a
component bin, say. In the program the conveyor pickup
point is assumed to be in the bottom left hand corner of
the robot plan, and the component bin in the opposite
corner.

Referring to the program sequence, the start position for


Pickup is at the initial position from where the move is to
the pickup point with the gripper held above the workcell
surface. From here, the gripper is lowered to a height
above the conveyor surface, the gripper is then closed.

With Kestrel the Z axis movement takes place separately


and safely when any other axis move is called in the
same line. In the move to the placement point,
therefore, it is not necessary to raise the gripper to the
safe height as a separate move to conclude the pickup
sequence.

The Place sequence starts therefore, with the gripper at


its full height safe from obstructions and moves to above
the placement point. From here the gripper is lowered
using the vertical Z axis before the gripper is opened to
release the part into a bin, say.

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 34


Demonstration Program, The values for the grid positions may be entered directly
Kestrel-2 ~ KES_GRID.wal in milli meters into the robot program and there is no
need to use graph paper as the grid reference as in
Equipment : Kestrel robot previous similar exercises with the other robots.

This is a demonstration of the capabilities of the robot to This is the basis of the robot program, but a sequence is
make placements with precision in a rectangular or required to press the block onto the ink pad between
Cartesian frame of reference, a task for which it was each print at one of the grid positions entered.
designed, and it therefore presents the benchmark
comparison for the exercises to perform the same task, Because of the in-built control system feature which
using other robots which move within a spherical or performs the Z axis move separately and safely from any
cylindrical co-ordinate system. Vertical placement is other axis move, four lines of position code are required
the only choice since the wrist movement is limited to for each printing point, a total of 100 lines plus one for
rotation about the vertical axis. The demonstration has the end point when using the 5 by 5 grid.
application to a familiar industrial requirement, that of
placing components into a grid system as defined by It should also be noted that the program has been saved
positions on a palette, located near a conveyor as a project file which uses the robot program sequence
somewhere along a production line or, more appropriate K_P_GRID.kes under the control of a workcell program,
to the scale of Kestrels work-space, test tubes into a even though there are no other components declared for
rack. the workcell. The number of lines of code in the robot
program are not 101 as suggested above, but may be
As a means of recording the effectiveness of the reduced to 53 lines, using the FOR loop command in the
operation, it is suggested that the action of placement is workcell program to move to the grid positions in the
used to print a grid pattern, using a simple ink pad and a sequence in which they are written.
pattern block that may be made from plastics foam. As
such, it is a creative exercise which may be used at open This form of program, in which a number of moves which
demonstrations, and the precision should ensure a near
are only slightly different are required, interspersed with
perfect result each time.
a repeated action, is typical of the work required to load
The program may be loaded and run in the same way as a palette and as such is embodied in the palletise
previous programs, but it is necessary to make a suitable command provided for the CyRo robot workcell.
printing block, which can be held within the gripper jaws,
if a two finger gripper is used, or a thinner version The more general form used here is not limited to this
backed by a smooth hard material, if a vacuum gripper is type of activity alone, but it presents a powerful means of
used. It is also necessary to acquire an ink pad, the calling a list of subroutines for robot action, in a
least messy way of transferring the block pattern to prescribed sequence. The subroutine actions may be
paper. quite different and of different lengths, not entirely similar
as for each print or palette location, nor they be for robot
Since the jaws on a two finger gripper for Kestrel are moves exclusively.
some 60 mm apart when wide open, a usable format for
the block to print the grid is to use a 50 by 50mm square, Using the FOR loop and NEXT commands with the robot
as for Gryphon which uses the same gripper. The block under workcell control from Main , the robot program
should be some 45mm thick, so that it may be held firmly may be reduced to a single statement of the two lines of
and squarely within the jaws. At this size it reaches back positions for the inking sequence, and it requires only a
to press against the ledge formed by the end of the statement of the two position print sequence for each
square section part of the fingers. point on the grid, as a list of numbered subroutines.

A suitable material for the block is the high density The workcell program is very short and concludes when
'neapoline' plastics foam used for packing in the delivery the end condition for the FOR loop is satisfied. In the
crate for the robot. This material cuts to a fine line using example on disc, the robot sequence is truncated to
a model makers' scalpel, absorbs the ink from the pad include only the five positions to define the centre line in
and is sufficiently firm to withstand the jaw pressure the direction of the Y axis and the four corner positions.
without distorting the printing surface. The surface is
soft enough to compress slightly when making the print The user is invited to complete the robot sequence for all
and the surface texture also adds detail to the print. 25 grid positions, or more, and adjust the parameters of
the FOR loop accordingly.
A five-by-five grid of placement points 50mm apart, is
well within the capabilities of the Kestrel robot, which has There is scope to make whatever artistic changes are
a possible range of 350 by 500 mm, and the exercise thought necessary to improve the demonstration, such
may be expanded to fit, if so desired.. as variations on the grid itself or making use of the

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 35


rotation at the wrist to counterchange the print block
orientation, all particularly easy to achieve with the
Kestrel robot.

The full robot program, saved as K_P_GRID.kes is as


follows :

Axis 0 Axis 1 Axis 2 Axis 3 Axis 4


Line X Y Z Wrist Grip
Spd

Ink 0.00 0.00 150.00 0.0 1 3


0.00 0.00 15.00 0.0 1 3
2 300.00 100.00 150.00 0.0 1 3
300.00 100.00 15.00 0.0 1 3
3 300.00 150.00 150.00 0.0 1 3
300.00 150.00 15.00 0.0 1 3
4 300.00 200.00 150.00 0.0 1 3
300.00 200.00 15.00 0.0 1 3
5 300.00 250.00 150.00 0.0 1 3
300.00 250.00 15.00 0.0 1 3
6 300.00 300.00 150.00 0.0 1 3
300.00 300.00 15.00 0.0 1 3
7 200.00 100.00 150.00 0.0 1 3
200.00 100.00 15.00 0.0 1 3
8 400.00 100.00 150.00 0.0 1 3
400.00 100.00 15.00 0.0 1 3
9 400.00 300.00 150.00 0.0 1 3
400.00 300.00 15.00 0.0 1 3
10 200.00 300.00 150.00 0.0 1 3
200.00 300.00 15.00 0.0 1 3
End 0.00 0.00 150.00 0.0 1 3

The table is a direct example of the use of the Word


Processor option from the Print selection in the File
menu, allowing the project to be fully documented.

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 36


Demonstration program,
The Cell Definition window shows a list of the sub-
Kestrel-3 ~ DEMO_K1.wal devices that have been added to the declaration for the
Kestrel. Against each sub-device is a summary of the
Equipment : Kestrel robot, Conveyor, Parts connections that have been allocated during the
Dispenser, Digital Width Gauge, programming and these must correspond to the actual
2 Digital Sensors wiring for the workcell, between the Kestrel cell interface,
expander and the sub-devices, all physically associated
This is a simple program for a single Kestrel robot with the conveyor.
working within a workcell equipped with a conveyor on
which are mounted a parts dispenser and an analog
width gauge. It uses the robot program sequence
MKERTPRA.kes to pick up parts from the conveyor and
place them in bins for accepted parts or rejected parts,
according to the width gauge measurement.

The conveyor also has two infra red sensors, one


mounted between the parts dispenser and the width
gauge, the other near the end of the conveyor, at a point
where the robot may pick-up the part. The distance
between Sensor 1 and the width gauge is 50mm, a value
which is needed in the program

The digital gauges measure directly over a range of These declarations have been made from the available
95mm, from a base which may be offset by inserting a alternatives in the dialogue boxes that are presented
block against the conveyor rail. The gauges are self when selecting the appropriate addition from the cell
calibrating, but the calibration command should always menu, while the Cell Definition window has the screen
be used at the start of a program to avoid errors. focus. They may be summarised as follows :

The conveyor is assumed to be positioned so that the Kestrel If not connected, this will be stated.
conveyor axis is aligned to the robot X axis and the Only the RJ45 type of interface board to the host
pick-up point is at low values along the X and Y axis. The computer will be accessible within the dialogue. For new
placement points for accepted and rejected parts are at systems, device 1 is suggested as the appropriate
representative positions in the X - Y plane. connection and thereafter further device numbers are
suggested in order.

Conveyor The Start, Stop, Increment and Serial


To connection boxes are all initially unconnected. The
Serial To connection has been made to Kestrel latched
output 8, the preferred form of connection for conveyors,
and the Digital Outputs that might otherwise be allocated
have been left unconnected. This is summarised against
Conveyor 1, in the Cell Definitions window

Parts Dispenser The Start and Free To connections


boxes have been changed from the initially unconnected
state to be to Kestrel and the required output allocated to
the first in the sequence, at 1, and the input to 3. Again
this is summarised against Parts Dispenser 1.

Width Gauge The Start and Read From and the Out
To connection boxes have been changed to Kestrel.
The Digital Outputs for Start and Read From have been
allocated to the next in sequence, numbers 2 and 3
respectively and Out To allocated to Digital Input 4.

Sensors Both sensors have had the Output Connected


To connection set to Kestrel and the Digital Inputs set to
appropriately 1 and 2. The status of these input is
checked as they are allocated and will show as not
connected if the Kestrel is not connected.

Workcell Program, Main

Cell Definition Given the description of the physical arrangement of the


workcell and the contents of the Cell Definition window,

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 37


the reading of the workcell program should be self program lines are inserted or deleted.
explanatory.
The Robot Program

This is in three blocks, labelled Pickup, Rejected and


Accepted respectively.

It is grouped into to two main blocks, the first to progress


a part from the dispenser through Sensor 1 position,
where the conveyor will have stopped after the part is
dispensed onto a moving conveyor. The conveyor is
then moved a distance of 50mm, corresponding to the
separation between Sensor 1 and the gauge, the width
measuring sequence is invoked and when completed,
the conveyor is moved on until the Sensor 2 detects the
part at the pick-up point.
Pickup moves the robot from a parked position, the
At this point in the program, following the call to the robot initialised position, which for the cell as described will be
routine to pick-up the part from the surface of the with the gripper held above the end of the conveyor.
conveyor, a test is made on the measurement taken and The robot is moved with its gripper open to a position
if it is within the limits set, between 26 and 30mm, the where the gripper is poised above the pickup point on
program flow is diverted to the second program block. the conveyor surface. The gripper is lowered to be
Otherwise, a robot routine to place the part in the astride the part to be picked up, the gripper is closed and
Rejects bin is called, a counter to record the rejects is the robot then returned to it's parked position. In this last
incremented and the program flow returned to the start move the Z axis movement takes place before any
where another part is dispensed. movement in the X and Y axes, so obstacles are
avoided.
The second program block, labelled Ok, calls a routine to
place the part now held by the robot's gripper into the bin Rejected takes the robot to a position near the limit of it's
of Accepted parts, increments a count of accepted parts X and Y travel, lowers the gripper to above the rejects
and returns program flow back to the start at label 1. bin and releases the gripper so that the part drops into
the bin. From here the arm is again returned to its
End is merely a convenient label, and the program as parked position.
written will run indefinitely for so long as there are parts
to dispense. Accepted carries out the same procedure as the rejected
routine, but to a position near the top left hand corner of
The program has been entered using the appropriate the plan, for the accepted parts bin.
two letter mnemonics for each command, and by
inserting the values and names in the appropriate entry By starting from the same point in each routine, there
boxes as they are displayed for entry or editing each are no "uncharted" transients, if the robot program is run
command. It should be noted that the syntax of the from the robot edit focus, i.e. without control from the cell
Move Robot command does not require the last program.
destination field to be completed when a block is referred
to. The program has been created by using the Insert
command to introduce new successive line of code, with
The initial block of program may be entered as a auto line number off for all but the start line of each
continuous sequence, with auto-line numbers turned-off, block. The axes values have been entered from the
by simply completing each line in turn and using the keyboard entry mode, to achieve the desired end points
down cursor key to display in the window the next vacant in each manoeuvre. The blocks are named by moving
line below. the cursor down to each initially numbered start line field
in the intended block in turn, and using the normal edit
The second block is started by using the Insert line edit features to overwrite number with name.
command, from the edit menu or by using the Ctrl+I
shortcut, and would initially be allocated the number 2 as Demonstration Program,
a label, since no other numbers have been allocated.
End is also entered in the same way, with an initial label Kestrel and Cyber Mill ~ DEMO_W3.wal
of number 3.
Equipment : Kestrel robot, Cyber Mill, Conveyor,
Both labels Ok and End have been entered using the Parts Dispenser, Digital Sensor
normal edit features, on the respective number labelled
line fields. Naming the block allows the label to remain Although either the Gryphon or Mentor conventional
with the block, rather than being reallocated when robots may be used to load and unload workpieces from

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 38


the Mill work table, movement within the confined space point for the workpiece. The parts dispenser must be
is more easily controlled using either rectilinear co- mounted so that it is outside the Kestrel frame, however.
ordinates, as with Kestrel, or the cylindrical co-ordinate When the work is completed by the Mill, the workpiece is
system of the SCARA type of robot. returned to the conveyor and finally falls off the end into
a bin.
In this demonstration a Kestrel rectilinear robot is used to
place work pieces onto the Mill table and retrieve them Both Kestrel and Mill are shown connected via the RJ45
after the Mill has completed a machine cycle. A serial interface to the host computer and all the sub-
conveyor with parts dispenser is included in the workcell devices are connected to the Kestrel workcell interface,
and it is assumed that only parts or workpieces that are since this is intentionally a demonstration of the Kestrel
within tolerance at 30mm diameter are loaded into the robot.
parts dispenser and moved to the Mill for machining.

The cell arrangement is as illustrated in the Walli for


Windows brochure, as the top right hand corner of Table
W2. The Kestrel is shown standing with its front right
hand leg inside the base tray of the Mill, and on
extended legs so as to clear the structure of the Mill
case. The use of the conveyor in this project is a
simplification by comparison with the demonstration
programs given for the three conventional and SCARA
robots.

As with the similar demonstration using the Serpent


robot, the project also makes use of one of the
demonstration programs for the Cyber Mill for the Workcell Program, Main
machining. The project illustrates the alternative use of
the rectilinear robot to load and unload the Mill and it is The program opens with a remark to remind that the
the two robot programs that should be directly Kestrel should be fitted with extended legs to clear the
compared. Mill case.

Since the cell arrangement is simple, the Main program


contains only a single loop to place the dispensed parts
into the Mill, withdraw awaiting machining, then retrieving
the part and replacing it on the conveyor to let it fall into
the bin for finished components.

Co-ordination with the activity of the Mill is demonstrated


with the use of the two Wait statements. The ability to
adapt Mill programs at the workcell level, using the Jog
commands to move the effective origin of the milling
program, is demonstrated also.

The milling program is an edited version of the program


DEMO_CM3, with only minor modification to the initial
part of the routine, to allow machining into the end face
of a 30mm diameter cylindrical workpiece, rather than a
block of wax.
Cell Definition
The Robot Program
The Cell Definition window shows a short list of sub-
devices which have been added to the declarations of a
Kestrel robot and Cyber Mill. This includes a conveyor,
parts dispenser and a single digital sensor to detect the
part at the pick up point. Unlike the arrangement for
Table W3, only one conveyor is involved to allow the
dispensing of parts and provide the platform and pick up

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 39


For Kestrel, the program statements are in absolute face milling the workpiece, in this case a roughly cut
metric units of measurement from the zero point at the rectangular block.
bottom left hand corner of the robot plan view, as
presented in conjunction with the robot edit window. The The original program has been edited to exclude the face
zero point is however within the dimensions of the frame milling operation and to compensate for the resultant
which of necessity has structural width, at an offset of position in the first line of the program, Y being set to
200 and 140mm in X and Y, respectively, from the 50.00 mm. The modified program then makes use of the
outside corner. original statements for the subsequent machining, but
the origin is altered externally with the Jog statements in
The zero for the Z co-ordinate is taken at table height the Main workcell program, to coincide with the axis of
and as a consequence the initial position is with the Z the cylindrical workpieces at 15.00mm in X and Y on the
axis at its highest position of 150mm, clear of most other Mill table.
cell components. Effective movement of the Z axis is to
reduce the value of the co-ordinate towards the
workpiece. When extended legs are fitted, the zero
reference for Z is some 90mm above table height.

The program is written as two robot subroutines, to load


and to unload the Mill. In each case the robot X and Y
axes positions are assumed to be above the pick up
point at 40.00, 40.00mm respectively. For the pick up,
the Z axis is lowered to the height of the top of the
workpiece on the conveyor, and then pick up the
workpiece.

The move to first raise the Z axis before moving to the


load point on the Mill, is strictly unnecessary, since the X
and Y axes on Kestrel are moved after the Z axis in this
direction, when all three axes are moved in one program
statement. Once the workpiece has been placed, the
robot is withdrawn to an intermediate position to await
the next call to move.

The unloading is a direct reversal of the loading


sequence. Either a two finger gripper or a suction
gripper may be used, although for a suction gripper it
would be best to ensure that swarf is removed by an air
blast sequence, edited into the Mill program at the
completion of machining.

The Mill Program

This is the same Mill program as that used in the


Serpent and Mill project previously.

The original program employs circular interpolation in


four quadrants to mill a circular indentation and then drill
to a greater depth at the centre of the circle at co-
ordinates of 20.00mm in X and Y. This is done after first

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 40


Demonstration Program,
Cyber Mill-1 ~ DEMO_CM1

Equipment : Cyber Mill

This is a simple program to illustrate linear interpolation


by cutting a V shaped grove in a 55mm thick work-piece,
between x~y co-ordinates 10,10 to 30,50 and then to
50,10 measured in millimetres.

The integer values set into line 1 for the Feedrate, F and
spindle speed S have been selected from the
permissible range, as defined in the control panel
dialogue box which may be accessed from the Control
Panel selection in the Options menu. They are in the
range 50 to 500 mm/min and 0 to 4500rpm, respectively.

The program has been written for the Mill as a stand-


alone device and saved to file accordingly with a [.ncm]
extension. It may be loaded from the open project
dialogue box by selecting the file type as above or if the
project is already open and supporting a Mill, from the
File menu. Load Cyber Mill selection. Either route gives
access to the same dialogue box with a list of files for the
Mill including the name DEMO_CM1.ncm among the
alternatives for selection.

The G00 code in line 1 moves the cutter rapidly at the


maximum slew rate for the axis slides, to the initial X and
Y co-ordinate values for the groove, and to a height in Z
1mm above the surface of the workpiece. The M03 code
switches the spindle motor on in the same operation.

The G04 code with zero dwell time specified on line 2, is


a null instruction allowing the M68 code to be stated, to
close the vice and secure the workpiece before cutting.

The G01 code on line 3 lowers the cutter into the surface
of the workpiece at the specified feed rate, to a depth of
2mm. The two succeeding lines are both obeyed with
the same linear interpolation code, to cut the groove to
the point of the V, at co-ordinates 30, 40 in X and Y and
at the same depth, and then to complete the V at co-
ordinates 50, 10.
When loaded, the screen will be occupied to full height
on the right hand side by the Mill cue card for the ISO G The cutter is withdrawn from the material on line 6, at the
and M Codes, and on the left hand side by the CNC Mill same feed rate and to the same height, 1mm above the
program window, with the ISO codes and co-ordinate surface. The null instruction on line 7 allows the spindle
values written into the tabulation, and below this the motor to be switched off with the M05 code, before
window for the graphics execution :- moving rapidly to the zero or home position on line 8, at
the same time opening the vice.

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 41


Material of other thickness may be cut with the same the colours for depth of cut are allocated in order from
program by introducing a G92 code at the begin of the the list ascribed to the HP pen Carousel for HPGL format
program, to shift the zero datum. The more general files. When a program is produced from AutoCAD and
approach to accommodate unspecified thickness’ of imported in HPGL format, the colours will be as allocated
material, is to run the program as part of a Walli project for the different depths of cut indicated in the AutoCAD
under workcell control, and introduce a program pause work.
with a M00 on a null command line, so that the cutter
may be lowered to within 1mm of the surface using
either the on-screen control panel or the manual control
button.

The compiled code for the Mill program is automatically


generated when the program is first executed from the
selection in the Run menu. Whenever changes are
made to a program, this same menu selection flags the
need to save to file and recompile. When the program is
loaded from file, it signifies an edit change in this
context.

A graphical execution rather than cutting a work-piece,


should always be selected using the menu control bar at
the bottom of the Graphical Execution window. This
places the Mill off-line, as from Run menu. The window
initially shows the maximum size work-piece, unless
otherwise selected from the Size menu when the
graphics has the screen focus.

The cut will be drawn in this window in the programmed


position, which is relative to the top left hand corner
corresponding to the corner of the vice, irrespective of
the actual size work-piece. Note that the right hand side
of the screen is not used for the graphical execution of
Mill programs, it being reserved for graphics more
appropriate to the programming and set-up phase for the
robots and workcell.

Different colours are used to show the different depths of


cut which have been programmed, and this may be
shown numerically also, in a small superimposed
window, by selecting the Key option from the menu bar.
The colours and numbers will change as the execution
progresses, although not in this example, since there is
only one depth of cut, although the withdrawal to clear
the surface is shown. The colours used may be selected
by double clicking on the key window elements.

These demonstration examples written directly in the


ISO G and M Codes, produce G&Mcode format files, but

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 42


Demonstration Program,
Cyber Mill-2 ~ DEMO_CM2
Equipment : Cyber Mill

This program illustrates the other form of combined axes


movement supported by the ISO codes, circular
interpolation, and makes the cut in two traverses for a
circle, centred at co-ordinates 40, 40mm in X and Y, with
a radius of 30mm.

As in the previous example, the program is intended for


a Mill as a stand-alone device, but may be incorporated
into a project under workcell control, with suitable simple
modifications.

The program takes the same general form as the


previous example, with two sets of four circular
interpolation codes, one clockwise the other counter
clockwise, replacing the two lines for linear interpolation.
Otherwise, the use of the preparatory coding and the
material assumed is the same.

When loaded from file, using the Load Cyber Mill


selection from the file menu, the ISO codes and co-
ordinate values will be as shown :-

The program illustrates the completion of a circle from


four quadrant 90° arcs , using a clock-wise interpolation
on the first pass followed by a counter clock-wise
interpolation for the second pass, at a greater depth.
The 90° arc is the simplest to program, without the need
to resort to trigonometry to calculate the I and J
parameters or alternatively to use the arc wizard.

The program execution should be observed graphically


off-line, as suggested for the first example, rather than
spoiling sample material.

In this case, since two passes are made at two depths of


cut, the first will be shown red, the second in green. It
will be necessary to single step the program execution,
however, in order to observe the colour changes as they
occur. The Key may not be selected until after
completing the last step.

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 43


Demonstration Program,
Cyber Mill-3 ~ DEMO_CM3
Equipment : Cyber Mill

This program has the practical purpose of cutting a


housing for the pen adapter, into the prepared surface of
one of the samples of machineable wax. The dimensions
of the housing recess are given in sketch form below.

To machine a work-piece, place the wax blank on the


cutting table with one of the smooth faces downwards
and the smooth longer edge against the fixed face of the
vice. This ensures that the blank is positioned correctly,
both horizontally and vertically when the vice closes.
The other three faces of the blank will be found to be
rough. The vice may be closed from the Control Panel
dialogue box, after the Mill has been returned to the on-
line state from the Run menu.

After selecting Start, the Mill will move to the home


position and then to a position where the cutter is to the
right of the top right hand corner of the blank work-piece
and then stop. The machine is then in a paused state
following the G04, M00 command line.
When the program is loaded by selecting Load Cyber
Mill from the File menu, the program in the Cyber Mill Using the Z axis control buttons on the Mill cabinet, bring
window will be as shown. As in the two previous the tip of the cutter to approximately 1mm below the top
examples, the program has been written for the Mill as a surface of the blank. DO NOT TOUCH THE X and Y
stand-alone device. CONTROL BUTTONS during this adjustment. If the X
and Y axis are moved the cutting program area will be
displace from that intended in the program.

Briefly switch off the motor power and then on again to


signal the program to continue. The mill-facing process
will start at the level the cutter has been set. When all of
the cutting program is completed, the cutter will be
raised well clear of the work-piece so that the vice may
be opened and the piece removed.

It is suggested that the program is run initially as a


graphical simulation, off-line. The program starts with a
face-milling cycle, G36, over the area bounded by the
origin and (45.0+3.0), 50.0 for X and Y, starting at 45.0,
0.0. In this, 3.0 is half the diameter of the tool, as
allowed for in the ISO specification for the face-milling
operation.

A circular recess of diameter 15.8mm and depth 3mm is


then cut using a single pass, involving circular
interpolation over four quadrants with the 6mm diameter
tool. Then after raising the tool clear of the work-piece
and pausing for 1 second, the centre hole is drilled to a
depth of 16mm, with a dwell at the bottom of the cut.

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 44


Demonstration Program,
Cyber Lathe-1 ~ CYLINDER.ncl

Equipment : Cyber Lathe

This is a simple program to produce a cylindrical part,


50mm long and 25mm diameter from stock which is
assumed to be only marginally larger, within 2mm in
length and 3mm diameter.

The program illustrates the two basic machine turning


operations, therefore, to reduce the diameter and to
face-off the end of the billet. For this, the tool moves in
the two orthogonal axes directions, in separate
operations, using the linear interpolation code G01 to
move the tool and cut material.

To face off, the segment represented by the bottom left


hand selection pad in the Wizard dialogue box should be
selected. This will present the segment display as
shown here, with entry boxes for the start and end
parameters, which should be filled by 14, 52 for the start
and 0, 50 for the end. The default depth of cut at 0.5mm
may be taken and the choice for incremental code and
generate roughing left checked

When the OK selection is made, two lines of code are


generated, the rapid move to the start position followed
by a call to subroutine 1, which is appended also to the
end of the program. A blank line is also inserted ready
for the next line of code.
Both machine operations are programmed as loop cycles The reduction of the stock size to the required diameter
in incremental mode, bounded by the G73 and G06 code may then be programmed with a second call to the
pair. These loops are at lines 12 to 16 and 7 to 11, segment wizard, this time making the choice for
respectively. The amount of material removed may be cylindrical cutting towards the chuck, the pad
edited by simply changing the loop count, given in the Z immediately above the end face choice.
field of the G73 code in each case. Equally, any
changes for the stock size, may be accommodated by The parameters for the start are 14, 50 and for the end
editing the X and Z start co-ordinates at line 5. 12.5, 0, to turn a cylinder 25mm diameter 50mm long.
This is the basic preparatory machining for any Two further lines of code are generated, a move to the
component part but it is also a particularly useful basic start point followed by a call to a second subroutine,
program as part of the tool alignment procedures for the written in incremental code and appended to the end of
lathe, to set the zero datum for X and Z slide movement. the program with a label 2.
The program code as written here may be generated for The finished program will produce exactly the same
the user, however, with assistance from the Segment
result as the original code but for a comparison of the
wizard as follows. two approaches, a copy is retained in the directory as
CYLINWIZ.ncl.
The first four lines of code and the last may be retained
as the basis, by a block delete of lines 5 to 17, and at
what will now be line 5, insert a line in preparation for the
first call to the Segment wizard from the menu.

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 45


Demonstration Program, 43 and the end parameters 0, 47.
Cyber Lathe-2 ~ TOOLCONE.ncl

Equipment : Cyber Lathe

This is another simple program illustrating the other


possible use of the linear interpolation code to cut
material on a lathe, moving in both X and Z directions
simultaneously to produce a taper.

After first face cutting the end of the billet to a specific


length, in this case 49mm, a second incremental mode
loop cycle is entered to produce the taper. This is a
modification of the basic loop to reduce the stock
diameter, where the tool is penetrated by a combined X
and Z movement on line 13. In this case, it is by an
equal amount in X and Z, to produce a 45° taper.

The loop cycle count at line 12, is set at 28, which


results from the division of the start radius of 14mm, by
the depth of penetration in the X direction of -0.5mm.
The taper continues, therefore, until the X dimension or
radius is zero, producing a sharp pointed cone with a 90°
included angle.

The program is particularly useful during the tool


alignment procedures also, to check the setting for tool
height. When the height is set incorrectly, a sharp point
will not be produced.

The Segment wizard may be used to generate similar


code to that written in this program also, and for all of the
four possible taper forms. The code is entered as
subroutine containing the loop cycle and appended to
the end of the calling program, as before.

For the conical cut intended in the program, the


appropriate choice of segment from the wizard for the
roughing out is as shown, with the start parameters 14,

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 46


Demonstration Program, Demonstration Program,
Cyber Lathe-3 ~ DOME.ncl Cyber Lathe-4 ~ SPOOL.ncl

Equipment : Cyber Lathe Equipment : Cyber Lathe

This is a more extensive program to produce an item a Walli’s Segment wizard provides assistance in the use of
little more representative of a machined component. It the circular interpolation codes, and may also produce
also illustrates the use of the other interpolation codes. code to remove sections of material for the basic
for circular interpolation, to produce a domed end to the machining operations which have been illustrated in the
component part. Before the cut using circular previous programs. The code to face-off, for cylindrical
interpolation is done, however, it is necessary to roughly and taper cut as well as complete circular sections, is
shape the end, so that the profile approximates to a generated in the form of subroutines, usually as loop
circular arc, and as a consequence the depth of cut cycles in either incremental or absolute mode. The user
during circular interpolation is not excessive. is encouraged to employ the wizard, and to inspect the
resulting program for further illustration of the subroutine
The program builds on the programs for the first two form.
demonstrations, to face to length and reduce the
diameter of the stock to size, to produce a short tapered The purpose of this demonstration program is to
length at the base or chuck end of the piece and then illustrate the use of subroutines in CNC Lathe programs,
reduce the diameter of the end section further to written directly in the G and M codes, and here a
produce a shoulder on the basic cylindrical shape. All of subroutine to cut a "V" shaped groove into a basic
these cutting operations are written as loop cycles in cylindrical shaped component, is used four times, in two
incremental mode, a most useful technique for producing groups, to form a component which is similar to the spool
short programs, but one where the spatial accounting valves used in hydraulic actuators. The surface of the
has to be done carefully. groove is finished in two cuts, and the tool emerges from
the groove at the surface of the cylinder, on the far side
The rough cutting for the domed end to the reduced from where the groove is entered and farthest from the
diameter section, is done by a combination of single chuck.
cylindrical cuts and a loop cycle taper, all producing
tangents to the circle. The subroutine is written as a sequence of linear
interpolations in incremental mode so that it may be
used at any position on the work-piece by moving to
position at the inner edge of the 2.5mm wide groove,
before calling the subroutine with the label number 1.

The semicircular domed end is finished with a single cut


using counter-clockwise circular interpolation over a full
quadrant in absolute mode. This is the simplest example
of circular interpolation and the calculations for the offset
parameters in the I and K fields are trivial. The first two grooves are cut at an interval of 5mm,
starting at 10mm from the chuck, on lines 20 and 23.
For sections of arc less than a full quadrant, the The second group are cut by calling the groove
parameter calculations are not so trivial and for this the subroutine twice within another subroutine, label number
Segment wizard provides assistance, both for cutting a 2, in which a relative move is made between the groove
circular arc with a single cut, as here using the sector positions. The net result is the same for both sets of
variant, or if required in producing the code to remove grooves, but the program for the second set illustrates
the stock material as well. the use of a subroutine within a subroutine. Were a
greater number of grooves to be required at regular
intervals, the second subroutine could be converted to a
loop cycle with the G73 and G06 codes on the spare
lines 43 and 45, respectively, and the second call on line
46 deleted.

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 47


Demonstration Program Gryphon and some 570mm. Notice also that the offset of -18mm in
the X direction for the plane of the arm from the origin of
Cyber Lathe ~ DEMO_W4.wal Gryphon spatial co-ordinates, has been allowed for.
Since the pickup and put down positions are somewhat
Equipment : Cyber Lathe, Gryphon robot, Conveyor, arbitrary, the conveyor could equally well be orientated to
Parts Dispenser, Digital Width Gauge, align with the X axis of the lathe, as shown by the
Digital Height Gauge, 3 Digital Sensors dashed outline, which would place the arrangement of
Lathe and Conveyor into the more normal rectilinear
The Gryphon conventional robot has a sufficiently form .
slender wrist and both the precision and reach capability
to load workpieces into the Lathe chuck. The flexibility of The user will need to load the project and inspect the
the wrist, also confers the ability to pick-up a workpiece program elements for the Cell Definition, Gryphon,
standing on end and then rotate it to the horizontal, in Workcell Main and Gauge routines, for which a program
line with the Lathe axis. Although the Kestrel has listing using the Print facility from the File menu, may be
comparable precision and the same type of gripper, its more helpful than the screen display.
wrist does not have elevation and it would need the
workpieces laying on their side before Kestrel could pick Cell Definition
them up and load into the chuck. This is not the way
that the workpieces are presented by the parts dispenser Both the Lathe and Gryphon robot are connected to an
onto a conveyor, however, nor would it be helpful to RJ45 interface, allocated to Device 1 and 2, respectively.
allow the parts to roll about. All of the workcell connections are made to the Gryphon
interface, using the Serial connection to drive the
This demonstration program builds on the example given conveyor. In addition to the parts dispenser, digital
in DEMO_G1.wal for the Gryphon in a workcell equipped height and width gauges, the conveyor is equipped with
with a conveyor sub-system, to include a Cyber Lathe. three digital sensors to control the movement of parts
The Gryphon loads the workpieces and then removes through the gauges and fix a pick-up point for the
them after machining. The lathe program is one of six Gryphon. The connections have been allocated in an
programs to turn the individual chess pieces, where the ordered sequence, to be tidy and assist in checking the
choice is determined by gauge measurements for height actual cell wire connections.
and width, or diameter, to suit the appropriate size
workpiece. Main Workcell Program
The arrangement of the workcell should compare The workcell activity has been divided into two parts, one
broadly, therefore, with those shown for Tables 5, 6 and to control the gauging action which sets the logical
7 in the Walli brochure. conditions for selecting the appropriate Lathe program,
and this has been written as a Walli subroutine. The
other part is written into the Main program which calls
the Gryphon robot subroutines and loads the lathe
programs from file.

The Main program starts by calling a brief Lathe program


to open the chuck, should it is closed, and then opens
the lid of the safety enclosure to the Lathe to give access
for the Gryphon.

When the conveyor has carried a workpiece through the


gauges and up to Sensor 3, the value of a counter which
is set by the gauging procedure, is tested for one of
three possibilities which indicate the suitability of the
workpiece for manufacturing the Pawn, Queen or King,
with a fourth choice where the billet size is suitable for
either the Knight, Bishop or Rook / Castle. This second
level of choice is made in rotation, using a second
counter value for control.

Depending on the value of the first counter, a Lathe


program is loaded from file and this is followed by a
sequence of calls to the Gryphon subroutines to load the
lathe, lift the arm clear and close the lid of the lathe
The Gryphon is placed in front of the Lathe, but rather enclosure. These robot sequences are interposed with
than having its Y axis aligned directly with the X axis of periods of waiting for the chuck to be closed and then for
the Lathe, the Lathe is rotated by some 9° in the the turning program to be completed.
clockwise direction. The Gryphon never-the-less, is in
an appropriate position to load and unload the chuck with The logical sequence is then reversed, opening the lid of
a radial placement as in the demonstration program the enclosure, positioning the gripper of the Gryphon
TAN_HOZ.gry. This placement geometry is summarised round the finished workpiece, opening the chuck and
in the sketch which also shows the axis of the conveyor then removing the workpiece to place it on the conveyor.
running parallel to the Gryphon Y axis, separated by

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 48


At this point the workcell cycle is complete and may be
repeated for the next part to be dispensed. In so doing,
the machined chess piece is moved on and falls into a
bin at the end of the conveyor, together with any uncut
workpieces which have been measured outside the limits
set for the gauges. Were a Cyber Mill to be included,
also, the milling operations to finish the Queen, Bishop or
Rook / Castle could be interceded as appropriate,
instead.

Workcell Walli Subroutine, Gauge

The workcell subroutine controls the movement of the


conveyor to take a workpiece billet from the parts
dispenser, through the width gauge, setting the
conditions for larger diameter pieces to be used for the
King and Queen, and then through the height gauge
which selects the shortest and thinnest pieces for
making the Pawn. The rest of the pieces are suitable for
the other three alternatives, selected in rotation.

Robot Program

This is composed of a series of subroutines to move the


robot arm to perform its several tasks, to pick-up pieces
from the conveyor, to load them into the jaws of the
chuck ready for the chuck to be closed, and to release
the workpiece from the gripper before lifting the arm
clear.

The reverse procedures are to unload the workpiece


from the jaws of the chuck, to lift the arm out of the lathe
enclosure and place the finished workpiece on the
conveyor. The Gryphon is also programmed to open the
lid of the lathe safety enclosure to gain access and close
it, while the lathe is in operation.

Lathe Program

The Lathe program window is left blank, ready to receive


any of the six programs to turn the individual chess
pieces. Initially it will be loaded with the one line
program which opens the chuck in preparation for the
rest of the sequence.

WALLI for WINDOWS. Revision A WALLI DEMO PROGRAMS page 49

You might also like