WALLI Demo Files Part 3
WALLI Demo Files Part 3
WALLI Demo Files Part 3
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
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
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 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
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.
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.
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
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
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.
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.
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 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.
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.
Robot Program
Lathe Program