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

Programming Gryphon stepper motor.

The title of the editing window is Gryphon or Gryphon [n], The program is developed by adding lines of code, using
in this case, where n is a number given in sequence to the Insert command, which copies the values for each
the Gryphon robots that are declared for the cell. axis on the current cursor line to the line below and then
moves the cursor down to the new line. This strategy for
The on-line state is true if the software detects that the the command is important in avoiding any unwanted and
robot is connected correctly to host computer through hazardous movements of the robot, particularly when
the RJ45 serial form of interface. The connection is programming on-line.
checked continuously but the state may be switched,
using the Run menu selection. The On-Line state for the Keyboard Control mode of
program entry, is the default condition in which data
Gryphon is a conventional robot, emulating the entered or edited in any of the rows and columns from
movement of the human arm and hand, and having axes the keyboard, results in movement of the robot axis that
for rotation about the effective waist and axes for rotation heads the column, and the graphics will follow the
about the shoulder, elbow and wrist in the forward plane. movement as it occurs. The cursor keys are used in the
A program consists of a tabular statement of numerical normal way to move between row and column positions.
entries for the movement of each axis of the robot,
headed in columns by Axis 0 to Axis 4 and the Gripper, The values entered are notional four digit numbers, in
Axis 5. Since the wrist has two effective axes, for the range 0 to 9950 ( maximum for axis 2), but they may
rotation and elevation, there are two columns with these be truncated by using the return key, tab key or one of
headings, and they may be used as alternatives to co- the cursor keys. The numbers represent the range of
ordinate the entries in Axis 3 and Axis 4, the motor axes movement between end stops, but the scaling between
which drive the differential gear drive train at the wrist. numbers and degrees of rotation are not necessarily the
The equivalent labelled push buttons on the Teach same for each axis. The editor will correct attempts to
Pendant have effective, but indirect, entry to these two enter values out of the range for each axis, as indicated
columns in the Pendant mode of programming. for the axis that currently has the cursor and is being
edited, by numbers at the top and bottom of the vertical
The gripper entry is either 0 or 1, indicating open or scroll at the right of the program matrix, or tabulation.
closed for the Pneumatic actuated gripper. A further The slider and arrows on this vertical scroll bar may also
column has been introduced allowing the speed of be used to change the axis value at the current cursor
movement of the robot axis to be set, using numbers in position using the mouse pointer as an alternative to the
the range 0 to 3, with 0 indicating the lowest speed. The keyboard. Keyboard entry is restored by selecting any of
speed may be separately selected for each line of the table positions with the mouse.
program, if so desired, and it is effective for all the axes
on the line . The following editing commands and modes of
programming may be selected from the Windows menu
When the Walli application is first entered, a New bar, using the Edit and Teachmode menus. The short
program is requested, or when the Gryphon is first cut keys for the edit commands are indicated against
declared as a Device in the Cell Definition Window, the each item of the menu. The lists repeat those that have
window is empty of program except for an initial line of been given and discussed in detail under the appropriate
code containing "seed" values for each axis. headings previously, but here they are specific to what
obtains for the Gryphon robot.
When the robot is off-line, these are nominally in the
mid-range of encoder position values for each axis. The
range of values for each axis is determined by the Editing Commands
resolution and gearing of the encoders used in the
position feedback paths on Gryphon (12000 steps per Insert ~ Inserting code into the window
revolution for axes 0,1 and 2 ; 2000 for axes 3 and 4) Delete ~ Deleting a line of code
and on the range of permitted movement on each axis Clear ~ Clearing the window of code
( 270, 170 and 300 degrees, respectively for axes 0,1 Auto Line Number ~ Assign consecutive line
and 2 ; 170 and 290 degrees, respectively for wrist pitch numbers (default)
and roll). If the robot is on-line, they will be the current
feedback data values from each axis and the graphics
windows will show movement to adopt these values for Modes of Robot Programming
the robots initial position.
Keyboard ~ Direct entry of Axis data
At the bottom of the tabulation in the edit window a from Keyboard
separate line labelled Now, indicates the data values Lead By Nose ~ Axis data taken from Robot,
from the encoders, for the current cursor line, at all power off
times, if the system is on-line. If the power to the motors Simulator(Actual) ~ Axis data taken from
is turned off, these values represent the position of the simulator positions
robot axes which may be used in lead-by-nose Simulator(Combined) ~ Ditto
programming, moving the axes by hand. With power on, Teledictor(Actual) ~ Ditto
any changes to the axes values will be shown as Teledictor(Combined) ~ Ditto
changing values, following the robot as it moves. If the Pendant ~ Axis data taken by moving the robot
system is switched off-line, the values in this bottom row under push button control
will be those of the current cursor line, i.e. the demands Cartesian ~ XYZ Co-ordinate data entered from
to the robot axes through the servo gates to each Keyboard to extract the Inverse

WALLI for WINDOWS. Revision A USE of WALLI page 28


Kinematic solution for the required The numeric labels for these manoeuvres have then
axes data been changed to names which are meaningful, to pickup
a part from the conveyor after it has been measured in
Note: The Simulator mode provides point-to-point the width gauge, and then either dropping it into a bin for
control and the Teledictor mode provides continuous the accepted parts or a bin for rejected parts, according
control, both using the Simulator device. to size. Number 3 is the last of the numeric labels to be
retained and it will become synonymous with Accepted
within the software.
The technique of programming is always best illustrated
by example and for this purpose a number of programs The fact that the three robot manoeuvres all start from
for Gryphon have been included in the directory of the same position, allows the complete program to be
demonstration files on the distribution disc, DEMODIR obeyed as a sequence when the robot edit window has
which will have been transferred to a WALLI3 sub- the screen focus, without wild excursions of the arm from
directory in the software installation process. the end of one block to the beginning of the next.

The Gryphon programs are distinguished by a file Demonstration programs, Xxxx.gry ~ DEMO_G[n].wal
extension [ .gry ], which is the system imposed extension are on file and more detailed descriptions are given
for programs saved from the Gryphon edit window. The under the heading Demonstration Programs, at the end
project programs, i.e. those that define a workcell and of the Use of Walli section of the Walli for Windows
which all have the file extension [ .wal ], that have been Manual.
written specifically as examples for Gryphon are
identified by the initial letter incorporated into the DEMO
name with a number, as in DEMO_G1.wal. Programming Neptune
The illustration is taken from the Gryphon program, The two Neptune robots differ in that Neptune II has a
DEMO_G1, and is at the point of naming the third control system using 12 bit ADC’s in the feedback loops,
section of the Robot program as “Accepted”, a reference as compared to 8 bit ADC’s used for Neptune I.
in the last line of the Main workcell program. The Neptune II also has an additional axis at the wrist, for
program is attempting a similar exercise as that which is yaw. These differences are apparent in the edit window
used to illustrate Mentor programming and is repeated which is presented for either robot, when it is first
for the Neptune to illustrate by direct comparison, the declared as a component device for the workcell from
differences between the use of these three conventional the Cell menu, and has then been allocated an address
robots. on the parallel Turbo interface to the host computer.

The motive power for Neptune is water hydraulics in the


form of linear actuators which have been used for all
axes movement. It is not possible to have a mechanical
arrangement for the wrist, therefore, which allows the
intersection of the axes for pitch, yaw and roll to be co-
incident with the fore arm link axis, as it is for the other
two conventional robots, Mentor and Gryphon. The pitch
axis does pass through the fore arm link axis, as a
horizontal right angled intersection, but is displaced from
the link axis. Both the yaw axis, in the case of Neptune
II, and the roll axis are necessarily offset from the pitch
axis also, along the extension of the fore arm link axis for
yaw, and both along and above the link axis for roll.

These offsets are important in programming Neptune, in


particular for the resulting Cartesian co-ordinates of the
Clip 46 : Naming a block of Gryphon code. gripper when manoeuvring workpieces within a work cell.
As compared to both Mentor and Gryphon, it is not
The program has been written with the robot in the Not- possible to program the separate wrist axes for an
Connected state and with Auto-line numbers permitted effective pitch and roll, either.
initially. This accounts for the number 3 that is high-
lighted with the intention of editing in the robot program, Gripper action for Neptune is shown in the graphics and
and the number 1 as the first line label in the Main the XYZ co-ordinate window as either open or closed,
workcell program. At this point the Auto-line numbering even though the control values are given in the same
option has been turned off, to continue writing the cell range as for the other axes movements. Values above
program, which does however use the numeric label in 30 are considered as closed or shut for Neptune I, above
the GOTO statement. 480 for Neptune II. A feedback potentiometer for the
movement of the gripper may be fitted, if specified
The line numbers for the robot program have then been however, and in this configuration the gripper action is
blanked out, except for the start line of each robot proportionally controlled. The feedback data may be
manoeuvre, all three of which start from the same robot used to derive a measurement to gauge the workpiece.
position, with the gripper poised high above the surface
of the conveyor. When Neptune is first declared or when a New program
is requested for the existing workcell, the edit window is

WALLI for WINDOWS. Revision A USE of WALLI page 29


empty of code except for a initial line of seed values for
each axis. If the system is off-line, these will be the mid
range values for the bit size of the ADC’s used, 128 for
Neptune I and 2048 for Neptune II. If the system is on-
line, they will be the position feed back values of each
axis of the robot. The program is developed by adding
lines of code, using the Insert command to copy the
current line to the line below ready for editing axis by
axis, so avoiding any hazardous movements when the
robot is on-line.

The program may be written either on or off-line, in the


latter case only the principal and default mode of
programming through the keyboard obtains. On-line, the
simulator may be used to enter program either in the
point-to-point mode or in the continuously recorded
Teledictor mode.
Clip 47 : Naming a block of Neptune code.
The following editing commands and modes of The illustration shows the program preparation at the
programming may be selected from the Windows menu point of naming the third section of the Robot program
bar, using the Edit and Teachmode menus. The short as “Accepted”, a reference in the last line of the Main
cut keys for the edit commands are given against each workcell program, the Cell Definition having been stated
item in the menu. The lists repeat those that have been previously.
given and discussed in detail under the appropriate
headings previously, but here they are specific to what The program has been written with the robot in the Not-
obtains for the Neptune robot. Connected state and with Auto-line numbers permitted
initially. This accounts for the number 3 that is high-
Editing Commands lighted with the intention of editing in the robot program,
and the number 1 as the first line label in the Main
Insert ~ Inserting code into the window workcell program. At this point the Auto-line numbering
Delete ~ Deleting a line of code option has been turned off, to continue writing the cell
Clear ~ Clearing the window of code program, which does however use the numeric label in
Auto Line Number ~ Assign consecutive line the GOTO statement.
numbers (default)
The line numbers for the robot program have then been
Modes of Robot Programming blanked out, except for the start line of each robot
manoeuvre, all three of which start from the same robot
Keyboard ~ Direct entry of Axis data from Keyboard position, with the gripper poised high above the surface
Simulator ~ Axis data taken from simulator of the conveyor.
positions
Teledictor ~ Ditto The numeric labels for these manoeuvres have then
been changed to names which are meaningful, to pickup
Lead By Nose control may be fitted to Neptune II as an a part from the conveyor after it has been measured in
option to provide a further mode of programming. With the width gauge, and the either dropping it into a bin for
this the robot may be moved into position by pressing the accepted parts or a bin for rejected parts, according
touch sensors which are attached to the robot arm, at to size. Number 3 is the last of the numeric labels to be
the extremity of each link. retained and it will become synonymous with Accepted
within the software.
Note: The Simulator mode provides point-to-point
control and the Teledictor mode provides continuous The fact that the three robot manoeuvres all start from
control, both using the Simulator device. the same position, allows the complete program to be
obeyed as a sequence when the robot edit window has
The writing of a program is best illustrated by example the screen focus, without wild excursions of the arm from
and the illustration here is taken from the Neptune the end of one block to the beginning of the next.
program, DEMO_N1, where the robot is obeying tasks
similar to the Mentor robot in DEMO_M1. This is to Demonstration programs, Xxxx.nep ~ DEMO_N[n].wal
allow direct comparison of the similarities and differences are on file and more detailed descriptions are given
between programming the robots. under the heading Demonstration Programs, at the end
of the Use of Walli section of the Walli for Windows
Manual.

WALLI for WINDOWS. Revision A USE of WALLI page 30


PROGRAMMING SCARA ROBOTS the new EC version of Serpent, there is a sixth column
for speed of rotation about the axes under program
control, in the range 0 to 3, which may be made only by
The two SCARA robots, Serpent I and Serpent II, are keyboard entry. The speed selected controls all axes in
compliant in their horizontal plane of operation about the the program line with the one statement, from slow at 0
three principal vertical revolute axes. Compliance is to fast at 3, with two intermediate speed values, all of
introduced through the backlash specification for the which are relative and not strictly determinate.
gearboxes driving each axis. The two versions differ
only in the length of the two moving arm components, The program may be created on-line or off and
the links between the three revolute axes, otherwise they connected or otherwise, and by the same variety of
are the same in operation and require the same methods available for the conventional robots, with
programming technique. The cylinder of influence for keyboard entry being the principal and default mode of
Serpent II is greater by virtue of the increased arm programming. The alternative modes may be selected
length, allowing greater reach within the workcell, but from the Teachmode menu.
with reduced spatial resolution. The corollary to this, is
that for the same X and Y co-ordinates from the axis of Lead-by-nose control disables the normal drive to the
the vertical mounting column, different axis positions will revolute axes, and enables the push button switches
in general be required, one version to the other. which are suitably positioned at the outer end of the two
arm links, so that finger pressure on the switch has the
As with the conventional robots, the program is written in effect of power-steering the inboard axis in the required
terms of the rotation of the robot axes, three in the direction.
SCARA form. The vertical movement of the prismatic
axis carrying the gripper, which is co-incident with the Both Pendant control and Simulator control are provided
wrist revolute axis, is either up or down, although the for program data entry and in the case of the simulator,
range of movement may be set using the mechanical the Teledictor variation for continuously recorded
stops. movement is also provided. Speed control for the
Pendant mode of entry is provided in the form of a
Similarly, the height of the complete arm on the vertical single button which slows all axes rotation for inching into
column may be adjusted to suit the geometry of the position, when held down. This is not the same speed
workcell, as may also the rotation or orientation about control as may be set from the keyboard, for the speed
the axis of the column. The adjustment may be made by of axes response during the running of the program.
releasing the clamps holding the main axis block to the Such speed statements may be edited subsequently into
column. If such adjustments are made, they should be a program originally created under all three alternative
documented with the program, since the program point-to-point modes of programming.
reference is to the factory set positions.
The compliance on the three revolute axes is not simply
Wrist axis movement is co-ordinated, that is the spatial a result of the backlash in the gearboxes, but this
alignment of its cylinder of rotation is maintained provides the space for a controlled freedom of
irrespective of the rotations of the main and fore axes, at movement. The net result is that the Serpent EC version
the equivalent shoulder and elbow positions, in particular, has a positional accuracy on a par with the
respectively. This is achieved through toothed belt other robots that have a digital control system. The
drives over an odd number of pulleys from the wrist axis graphics and the statement of the spatial co-ordinate
motor, mounted in the main axis block which is clamped position of the end of the gripper, which accompany the
to the vertical column. Co-ordination of the wrist axis Serpent edit window on screen, may be considered as
has greater significance when either of the two finger statements derived with the same degree of precision. It
grippers are fitted, rather than the suction gripper. When should be re-emphasised that they are also statements
the finger grippers are used, allowance must be made made with respect to the factory set positions of the
for the extent of finger movement when placing or main axis block on the vertical column, and for the range
picking up a workpiece. With either finger or suction of movement of the prismatic wrist axis, Z, in the
type gripper, co-ordination allows the workpiece to be specification.
presented in the same orientation at the point of delivery
as it had at the pick up point.

A program consists of a series of data entries into Programming Serpent


column position in lines of a tabulation which is
presented in the robot’s own edit window, whenever it is When the Serpent is first declared from the Cell menu as
declared as part of the workcell complement. The a device in the Cell Definition window and connected to
entries represent the positions through which the robot the host using the appropriate interface, RJ45 for the EC
will move in each of its axes, in the sequence obeyed version, the edit window that is placed on top of the top
line by line of the tabulation. This is either for the whole left hand stack is initially empty of program except for
program or in parts, normally referred to as robot seed values for each axis on the first line. If the robot is
subroutines, under control of the Main workcell program. off-line or not connected, the seed values are those to
align the arm with the X spatial axis, as may be seen in
The columns for data entries are for the three revolute the graphics of the robot plan, with the gripper raised
axes, the Z translation of the prismatic axis at the wrist and open. If the robot is on-line, these are either the
and for the gripper closure, both of the latter being on or current position if it is a previous version of Serpent
off statements, entered by 1 or 0 respectively, for connected through the parallel Turbo interface, or it will
up/down and closed/open. Vertical movement of the be the position adopted after the zeroing manoeuvre for
prismatic axis at the wrist is factory set to 100mm. For

WALLI for WINDOWS. Revision A USE of WALLI page 31


the new EC version, which must be connected through keys are used in the normal way to move between line or
the RJ45 serial interface. row and column or axis positions in the tabulation.

The control system for Serpent has been upgraded in The edit commands and modes of programming may be
the EC version to use encoder feedback in place of selected from the Windows menu bar and are the same
potentiometer feedback through ADC’s. The new largely as for the conventional robots and repeated here to be
digital control system requires the zero count positions specific to what obtains to the Serpent robot. The short-
for the incremental encoders on each axis to be cut keys for the edit commands are indicated for each
established when power is applied and before control item in the menu and these may be found to be more
can be assumed. This is done by driving the axis to its convenient to use, once learnt.
end stop, backing off slightly to set the zero position and
then manoeuvring the arm to a safe position for
subsequent movement. The user has a choice of which Editing Commands
end stops to use for the two inner revolute axes,
clockwise or anti-clockwise, so that the zeroing can take Insert ~ Inserting code into the window
place without collisions with other cell components. The Delete ~ Deleting a line of code
on-line state is then judged to be true if the software Clear ~ Clearing the window of code
detects that the robot is connected correctly to the host Auto Line Number ~ Assign consecutive line
processor through the required RJ45 serial interface. numbers (default)
The on-line state is checked continuously thereafter, but
it may be switched using the Run menu selection, as for Modes of Robot Programming
the previous analogue control system.
Keyboard ~ Direct entry of Axis data from
The number range that may be used in the program for Keyboard
each revolute axis is different for the analog and digital Lead By Nose~ Axis data taken from Robot,
control systems, being determined by the bit value range power off
from the ADC’s and the encoder resolution and gearing, Simulator ~ Axis data taken from
respectively, each representing the same angular simulator positions
movement for the axis. Teledictor ~ Ditto
Pendant ~ Axis data taken by moving the robot
The number range is disposed symmetrically about the Y under push button control,
spatial axis alignment for the main and wrist axis, giving EC version only
a total of 450° rotation at the wrist. The fore arm axis is Cartesian ~ XYZ Co-ordinate data entered from
not disposed symmetrically, allowing a greater inner Keyboard to extract the Inverse
reach on the one side, in the counter clockwise sense, Kinematic solution for the required
and this is apparent in the mechanical design of the arm axes data
at the elbow joint. Both the aligned values and the
maximum values may be observed from, respectively, Note: The Simulator mode provides point-to-point
the seed values for each axis when off-line and the value control and the Teledictor mode provides continuous
heading the scroll bar to the right of the tabulation, when control, both using the Simulator device.
each column is given the edit focus using the cursor
keys.

At the bottom of the edit window, the separate line


labelled Now and highlighted with a different background
colour, indicates the data values from the encoders or
ADC’s for the current cursor line, at all times if the robot
is on-line. The graphics windows will show animated
movement to reflect these values as changes occur. In
the lead-by-nose programming mode, these values are
the positions of the axes that will be entered as the
program values on the current line, when the downward
cursor key is pressed. If the robot is off-line, the Now
values repeat the values of the current cursor line and
are therefore the demands to the control system, rather
than the feedback values.

The program is developed by adding lines of code using


the Insert command to copy the values from the current Clip 48 : Sample program for Serpent.
line to a line inserted below and move the cursor down
ready for editing axis by axis, a process which avoids The technique of programming is best illustrated by
unwanted and hazardous movement of the robot, example and here the illustration is taken from the
particularly when on-line. Serpent project, DEMO_W2, which uses the Serpent
robot to pick up workpieces from a conveyor, load them
On-line and under keyboard control is the default onto a Mill table and unload them when the drilling
programming or teach mode from which the data program has been completed. It is an exercise similar to
entered or edited in any of the rows or columns results in that which has been used for illustrating the
movement of the column axis once the entry is programming of conventional robots, but here the arm is
completed by the return, cursor or tab key. The cursor moving in a horizontal plane and it has been put into the

WALLI for WINDOWS. Revision A USE of WALLI page 32


context of a more extensive workcell project by involving off-line and in either the default keyboard mode of
the Mill. control, or under Pendant control. Pendant control in
this case describes the functionality normally associated
The program has been prepared in the not-connected with a pendant device, but in the case of Kestrel, the
state and is at the point where the first section of pendant control panel is mounted on the robot frame.
Serpent code is being named Rejected, a manoeuvre
called as a robot subroutine to separate the parts that Kestrel’s digital control system with encoder feedback,
have been gauged outside the size specified. allows placement to a precision of 0.01mm in the X and
Y co-ordinates, with a repeatability of 0.1mm.
The arrangement of Conveyor, Mill and Serpent in the
workcell, which determines the movements required for
the Serpent, is as illustrated for Table W2 in the Walli for Programming Kestrel
Windows brochure. The position for zeroing the control
system encoder counters has been chosen with the main When Kestrel is first declared as a device from the Cell
axis fully clockwise and the fore axis fully counter menu, and then connected to an RJ45 serial interface,
clockwise. the edit window that is placed on top of the top right
hand stack is initially empty of program code except for
an initial line of seed values. These seed values are of
PROGRAMMING RECTILINEAR ROBOTS the initialised position, the position where the count
values for the encoder feed back positions have been
Rectilinear robots are the simplest form to program since established, and are the same statement whether on or
by definition, they move in the co-ordinate system which off-line. Earlier versions of Kestrel for a parallel interface
is normally used to express the dimensions of the are not supported by Walli3.
workcell. For Kestrel, the program statements are in
absolute metric units of measurement from the zero The program is developed by adding lines of code using
point, in the front left hand corner of the frame which the Insert command to copy the values from the current
corresponds to the bottom left hand corner of the robot cursor line into a new line below, ready for editing axis by
plan view presented in conjunction with the robot edit axis, so avoiding hazardous movements in the process.
window. Keyboard mode of entry is the default programming
mode but the pendant form of point-to-point control has
The zero point in X and Y is within the dimensions of the a particular application when fine tuning the program for
frame since of necessity the frame and axes slides have precision placements.
structural width, and it is offset at 200 and 140mm in X
and Y, respectively, from the outside corner. The edit commands and modes of programming that
may be selected for Kestrel from the Windows menu bar
The zero for the Z co-ordinate is taken in the normal are as follows. The short-cut keys for the edit
sense close to table height but the initial zero point for commands are included with each menu item and are
the Z axis at its highest position of 150mm, clear of most more convenient once learnt.
other cell components. Movement to position is usually
with the gripper at its highest point at a Z axis value of
150mm and the placement or effective movement in the Editing Commands
Z axis is done by reducing the value of the co-ordinate
onto the workpiece. This is the safest way to avoid Insert ~ Inserting code into the window
collisions and as a result any program move that has all Delete ~ Deleting a line of code
three axes changing is obeyed in two parts with the Z Clear ~ Clearing the window of code
movement last if the gripper is being lowered or first if it Auto Line Number ~ Assign consecutive line
is being raised. numbers (default)

When extended legs are fitted, the zero for the Z co- Modes of Robot Programming
ordinate is some 90mm above table height.
Keyboard ~ Direct entry of Axis data from
As with the conventional robots, the program is written Keyboard
as a tabular statement, in this case for the X, Y and Z Pendant ~ Axis data taken by moving the robot
positions, but also including columns for the wrist under push button control
revolute axis, giving two full rotations or 720° in absolute
units, for the gripper action and for the required speed of Programming is best illustrated by example and here the
axis movement. The latter is expressed as a relative illustration is taken from the Kestrel project, DEMO_W3,
number in the range 0 to 3, as for the other robots with a which uses the Kestrel robot to pick up workpieces from
similar digital control system. a conveyor, load them onto a Mill table and unload them
when the drilling program has been completed and
The tabular statement for the program is presented in replacing them onto the conveyor from where they fall
the Robots own edit window, whenever it is declared as into a bin. The project bares comparison with the
part of the workcell complement. The entries that are exercise used to illustrate programming for the Serpent
made represent the positions through which the robot will SCARA robot. The essential differences are only in the
move in each of its axes in a sequence obeyed line by choice of robot and the spatial arrangement of the Cell
line, for the whole program, or in parts usually referred to components.
as robot subroutines, and under control of the Main
workcell program. The program may be created on or The program has been prepared off-line and not-

WALLI for WINDOWS. Revision A USE of WALLI page 33


connected to the robot and is at the point where the third PROGRAMMING CNC DEVICES
section of Kestrel code is being named Unload_m.
General Information to Support Programming
The arrangement of Conveyor, Mill and Kestrel in the
workcell, is as illustrated for Table W3 in the Walli for
Both CNC devices, the Cyber Mill and the Cyber Lathe,
Windows brochure, taking only the top right hand part of
are powered by variable reluctance stepper motors
the workcell assembly shown. When using Kestrel in a
coupled through worm and nut drives to each of the
cell, the emphasis is more on the closeness with which
principal axes, three in the case of the mill for X,Y and Z,
components may be grouped to be within the work
where Z is the depth cut, and two for the lathe bed
envelope inside the frame, rather than the positioning of
traverse in X and Z. Permanent-magnet DC motors
the components which determine the robot movements.
provide the cutting power in both cases and small DC
motors are used to drive the vice jaws on the Mill and the
The Kestrel is shown on extended legs, with the front
chuck and tool changer on the Lathe.
right leg standing in the base tray of the Mill and there is
then sufficient room to place the conveyor inside the left
The stepper motor resolution and the pitch of the worm
hand edge of the frame, running from rear to front, in this
drive combine to give a mechanical resolution of
case.
0.0075mm in half step mode of operation, allowing very
smooth contours to be cut. The variable reluctance
The Table W3 illustration also shows another conveyor
motors also allow high slewing speeds to be achieved
at right angles, on which the gauges are mounted, and
between control points in the machining program.
the Kestrel has the added task of transferring parts from
one conveyor to the other. The gauges would present
The two devices have essentially similar control systems,
hazards to working within the Kestrels envelope, so if
employing the same processor cum interface control
only one conveyor is to be used, it would best be of
board, in communication via a serial RJ45 interface
sufficient length to accommodate the gauges outside the
board in the host computer. The serial link is such that
frame.
up to eight devices may be daisy-chained to the one
RJ45 board, providing the end connection is correctly
terminated, and an Expander Box for the RJ45 link, may
be used to expand the logic and analog signal facilities
for the workcell beyond those provided by the Mill and
Lathe.

The requirement to use the RJ45 serial interface board is


built into the Walli3 software, and each addition to the
chain will be allocated a sequential number by default, as
seen in the Device Address Selection dialogue box which
is displayed when a device is declared for the Workcell.
Earlier versions of the Mill, which used the parallel
interface and a different control system, are not
supported by the Walli3 software.

Both devices also use the same power supply and DC


motor drive board and individual control boards for each
Clip 49 : Sample program for Kestrel. of the stepper motors. Load current regulation control is
provided for the stepper motors to ensure a good
speed~torque characteristic. The DC cutter motors are
switch mode regulated, using sampled measurement of
back EMF to provide a wide range speed control system,
in which the speed is set by the voltage output from a
DAC on the processor control board.

Manual control for movement along the principal axes


and for the speed of the cutter motor, is provided from a
group of push button switches mounted on the
electronics cabinet which forms the rear of the safety
enclosure. Two buttons are provided for each axis, and
there main purpose is for inching or jogging the cutter
into position and setting offsets from the “home” position,
as determined by the control system from the limit micro-
switches on each axis. The functionality of the manual
push buttons is replicated and enhanced by the Walli3
software, in a dialogue box accessed from the Control
Panel selection in the Options menu.

WALLI for WINDOWS. Revision A USE of WALLI page 34


The tabulation used in the CNC program editor follows
examples from the literature, with column headings as
the Address Characters defined in the BS 3635
Specification. Minor variations from the definition include
the use of T for tool size and the use of D for dwell time.

All variants of the convention used for circular


interpolation assume that the last programmed move
brought the cutting tool to the start point for the arc.
The convention used here assumes that a clock-wise
path is obeyed by a G02 code and the end point for the
arc may be defined either relative to the start point in
incremental terms for X and Y or in absolute terms from
the X, Y datum, but the centre of the arc is always in
incremental terms I and J. The alternative of the datum
point in X, Y for I and J. is not used, and as a
consequence, I and J are always positive in a strict
observance of the convention. The Walli3 editor for CNC
programs, however, does not reject the use of negative
numbers for I and J, since they are a help when reading
Clip 50 : On-screen control panel for Cyber Mill. the code, nor does it require the irrational change to
using diameters when in the absolute mode, i.e. double
A high-current power switch is also provided for instantly the X ordinate.
stopping the cutter motor, and may be considered as the
emergency switch. Before writing a program, the examples on the
distribution disc should be examined and perhaps run to
It has a secondary use in that its state is connected back give a degree of confidence and understanding of the
into the processor control board to enable un-interrupted ISO programming conventions.
running of the control program, signalling to the
processor to continue after a programmed stop for a tool
change, say, when for safety reasons it would be
Edit Screen
advisable to switch off the power supply to the motor.
The edit screen for the Cyber Mill is presented on top of
the stack of device and cell definition windows, when the
Cutting Tools
mill is first declared as part of the cell from the cell menu
or whenever selected thereafter, from the windows menu
The laminated plastics samples for engraving that are
devices option. It is initially empty of code except for a
supplied with the Mill are made from a very suitable
start line with default values for F, S and T.
material for cutting at these low power capabilities, and a
brand new ball-nosed cutter will cut into it very cleanly.

A standard quality cutter will lose it’s edge very quickly,


however, resulting in ragged edges to the cuts. Although
initially more expensive, the use of carbide cutters is
strongly recommended if any quantity of work is to be
undertaken.

The machineable Acetal plastics samples supplied with


the Lathe is best cut with carbide cutters also, in this
case the inserts for the tool holder.

Workcell Interface

As with all other devices in the Walli range, both the


Cyber Mill and Lathe are equipped with an interface to
the workcell, providing eight latched digital outputs and Clip 51 : Initial edit screen for Cyber Mill.
eight digital inputs, all at TTL level and with a 20mA drive
capability on the output. The meaning of the column heading Address Characters
are as follows :-
The interface takes the usual form of colour coded
sockets in two columns below the bank of manual push N Line number
button switches, using the convention of blue for input, G Preparatory function, generally relating to the
yellow for output, with Digital ground, black and +5V, red. cutter
An analog interface is not provided, however. X,Y,Z Co-ordinates of the next position to move to

I,J Incremental co-ordinates of the centre of a


circular arc
PROGRAMMING THE CYBER MILL F Feed rate for the move

WALLI for WINDOWS. Revision A USE of WALLI page 35


S Spindle speed
T Tool diameter When the setting have been accepted using the OK
D Dwell time in seconds button, the post-processing stage is entered with a
M Miscellaneous functions horizontal bar display to indicate progress, and at the
Rem Remarks field end the save file dialogue box is presented.

All dimensions may be specified in millimetres or inches


using the G70 and G71 codes, respectively.

Entries may be made into any of the column positions


and edited by over-typing as appropriate, using the
keyboard cursor and tab keys to move between fields
and the Ctrl+I, Ctrl+D combinations to insert and delete
lines or rows, respectively.

Auto-line numbers are imposed and the choice greyed- Clip 54 : Save dialogue for post-processed Cyber Mill
out as an option in the Edit menu. Line numbers are file.
given in single increments.
Once the file has been saved as required, the processed
Programs previously written in the G&M code format file is revealed, written in G and M codes in the Mill edit
may be loaded into the edit window from the Load window, ready for program execution either to cut
selection in the File menu. Programs in other formats material or to check beforehand, by simulation off-line in
may also be loaded using the Import selection from the the Mill graphics window.
File menu,

Clip 55 : Drill file post-processed code for Mill.

ISO Format Programming the Mill


Clip 52 : Expanded list of file types to import to the Mill.
Many good books have been written on CNC
The Import file types as shown in Clip 52 include HPGL, programming and this section of the manual should be
NC Drill, Gerber and ASCII, making the distinction in the read in conjunction with one of them, particularly one
latter case between programs in G&M code written in the that is based on the use of the ISO G and M Codes.
edit window and those written with a conventional text
editor, when the address character must be stated for From the large range of standard preparatory and
every entry. miscellaneous function codes (G and M Codes), the
ones that are accepted within Walli3 form a sub-set that
demonstrate the basics of CNC machining on a mill
which is capable of doing useful work, either as a stand
alone device, or as part of an integrated multi-robot and
CNC workcell. Four other non-standard but permissible
G codes, are also included in the sub-set.

The cutting program is written on the host computer in


ISO format, using a separate edit window for each of the
CNC devices declared in the Cell Definitions Window.
The CNC editor accepts the most widely used G and M
codes that are relevant to the machines operation, in a
conventional tabular statement. After saving to file, this
tabular text statement is then compiled as a CNC
program suitable for transmission to the control
processor in the Mill device, where it is run under
Clip 53 : Dialogue for NC Drill post-processor. supervisory control from the Workcell program.
In the example shown in Clip 52, when the NC Drill file,
gauge.ht0 is selected for loading, the dialogue for the NC
Drill Post-processor will be displayed as in Clip 53, listing ISO PREPARATORY AND MISCELLANEOUS
the drill sizes to be used for the various depth of cut and CODES SUPPORTED FOR THE MILL
feed rates. The dimensions of the blank may be set and
also the load point. The five check boxes are for Standard G Codes
alternatives in the mode of operation.

WALLI for WINDOWS. Revision A USE of WALLI page 36


G00 Rapid Positioning Point-to-Point point for the cycle, as defined by the previous
move, must accommodate the half diameter
This is used when moving the cutter between with an inscribed position at the top left-hand
the end of one cut and the start of the next. It corner of the area defined.
should never be used when the cutter is in G65 Call Subroutine
contact with the work-piece.
The code used to call a subroutine from the
G01 Linear Interpolation main part of a G and M code program. The
code is accompanied by a statement in the X
This takes the cutter along a straight line from field, which is the numerical label or name of
the last programmed position to the position the subroutine, as declared with the Subroutine
defined by this coded line. Interpolation is Start code.
confined to the X-Y plane, and if Z is defined,
the Z movement will precede the interpolation G70 Imperial
between end points.
Sets the imperial inch as the unit for all
subsequent dimension entries.
G02 Circular Interpolation Arc, Clockwise
G71 Metric
This takes the cutter in a circular arc of up to
90º in a clockwise direction from the last Sets the milli-metre as the unit for all
programmed position to the position defined by subsequent dimension entries.
this coded line. The centre of the arc is defined
by the I and J incremental parameters for the X G73 Loop Cycle
and Y co-ordinates, respectively.
Marks the beginning of a sequence of
G03 Circular Interpolation Arc, Counter-Clockwise commands that will be repeated the number of
times entered as an integer in the X column.
This takes the cutter in a circular arc of up to When obeyed in the incremental mode, loops
90º in a counter-clockwise direction from the typically allow a cutting sequence to be
last programmed position to the position repeated at equal intervals along the X and Y
defined by this coded line. The centre of the arc axes.
is defined by the I and J incremental
parameters for the X and Y co-ordinates, G81 Drilling Cycle
respectively.
This is the standardised fixed cycle for drilling
G04 Dwell holes.

This defines a wait period, the value of which is G82 Drilling Cycle with Dwell
set in the D or Dwell field, in seconds.
This adds a wait period to the drilling cycle to
G05 End Subroutine improve the finish at the bottom of the cut.

Used to mark the end of a section of code G83 Peck Cycle with Dwell
intended to be obeyed as a subroutine and
declared by the corresponding Subroutine Start An intermittent feed cycle with both a wait
code, G28. When the G05 code is obeyed, the period to improve the finish at the bottom of the
program sequence is returned to the line cut, and to avoid the drill flute becoming
following the call to the subroutine. clogged, the drilling is interrupted after the
penetration defined in the I parameter field,
G06 End Loop defaulting to 3mm, and lifted clear of the hole.
The start position for the drilling operation is
Marks the end of a Loop Cycle sequence. determined by the previous moves.

G28 Subroutine Start G90 Absolute programming

The code which is entered as the first line of a After specifying absolute programming each
block intended as a subroutine to the main G subsequent X,Y and Z dimension entered is
and M code program. The code is interpreted as the co-ordinate from the zero
accompanied by a statement in the X field, datum. The default position for the zero datum
which is the subroutines numerical label or is the Home position established by the control
name. systems use of the limit switches on each axis,
G36 Face Milling Cycle which is with the cutter fully retracted from the
work piece and with the table fully forward and
This is a non-standardised fixed cycle for fully to the right. The cutter is then over, and its
skimming the face of a blank. X and Y define cutting axis passes through, the rear left corner
the area to be skimmed and the cut proceeds in of the vice.
the positive directions from the start point.
Since the tool has a defined diameter, the start The zero datum may be altered by applying

WALLI for WINDOWS. Revision A USE of WALLI page 37


offsets, using the manual controls or their If text for engraving is not stated in the
equivalents in the CNC Mill Jog dialogue box, Remarks field of the G99 code, default text may
accessed from the Options menu, or by be specified in the Remarks field of the G98
program using the G92 code. code, to appear in a dialogue box for
confirmation at run time. If the default is also
G91 Incremental programming left blank, a blank dialogue box will be
presented.
After specifying incremental programming, each
subsequent X,Y and Z dimension entered is G99 Engrave Text ( used with Configure Engrave
interpreted as the distance from the last code, G98 )
programmed position to the one currently
defined in the coded line. As a consequence, The dimensions of the text are given in the X
the dimensions may be either positive or and Y fields of the G99 code statement but, if X
negative. is not specified, the spacing and character
width will be as defined in the font.
Note: Both G90 and G91 are single entries on a line.
The Z field specifies the depth of cut, usually
G92 Shift Zero Datum set to 1mm, say, if a 2mm ball ended engraving
tool is used.
This allows a program statement in the X,Y and
Z fields of an offset from the machine datum, or The text to be engraved is stated in the
home position, to some other zero datum which Remarks field, but if this is left blank, a dialogue
will thereafter be the zero reference for the box for the text is presented at run time, which
X,Y,Z program co-ordinates. contains the default text, if this has been
specified by the G98 code, or it will be blank
Note: The home position is returned to automatically, at ready for a run time entry.
the start of the program execution.

Miscellaneous Functions
Non-Standard G Codes
Note: Because of the modal character of many of the
G38 Pause for Input preparatory functions, that is they stay in operation until
changed or cancelled, it is advisable to have a G code
This allows the Mill to act autonomously on on all lines that have an M code, to cancel the previous
logic inputs, rather than through the Workcell G code, even if this is a null dwell, G04 with zero dwell
control. The X and Y fields are used for logic time. M codes are executed before G codes.
inputs going low and going high, respectively,
the entry being the numbered input in the range M00 Program Stop
1 to 8.
This stops the program waiting for the motor
G39 Set output current to be switched off and then on again. It
is useful for tool changes and when setting the
This allows the Mill to autonomously drive logic Z axis offset. While in the stopped state, the
outputs. The X and Y fields are again used, as Monitor LED will flash rapidly and the continue
for inputs. may be selected from Control Panel dialogue.

G98 Configure Engrave ( used with Engrave Text M02 End of Program
code, G99 )
End of program is an implied function which is
The two codes are used as a pair, usually in obeyed automatically at the end of program
numerical order although this need not be the execution. However, the M02 code may be
case, and they may be split, such as within a used in program, either to truncate further
loop cycle to engrave at different places. execution or to force a stop during program
development, say.
The text is centred at the current position and
may be orientated in the four 90° positions by
specifying a number 1 to 4 in the X field of the M03 Spindle Clock-Wise (CW)
G98 code statement. Each orientation may be
mirrored for reverse engraving, using the This switches on the cutter motor in the clock-
numbers 5 to 8. wise direction, the normal direction for cutting.
The speed of the motor should be specified in
One of 19 fonts may be selected by number in the same line, otherwise a speed previously
the Y field. The fonts are comparable to those specified, set manually or through the Jog
available from the normal choice in AutoSketch. Feedrate button in the CNC Mill Control Panel
dialogue box, will be used. Suitable speeds are
The maximum number of characters is in the range zero to 4500rpm selected by
specified in the Z field, with zero indicating an number in the range 0 - 9.
unlimited number.
M04 Spindle Counter Clock-Wise (CCW)

WALLI for WINDOWS. Revision A USE of WALLI page 38


Clip 56 : Graphic simulation of a simple Mill program.
This reverses the spindle motor direction from
that normally used for cutting. The programs written with the editor produce G&M code
format files and to these, the colours are allocated in
M05 Spindle Off order from the list ascribed to the HP pen Carousel for
HPGL files. As a result, there is compatibility with when
This stops the cutter motor. the program is produced from AutoCAD and imported in
HPGL format, when the colours will be as allocated for
M08 Turns the air blast on to remove swarf. the different depths of cut in the AutoCAD drawing.

M09 Turns the air blast off.


Use of the Pen Adapter
M68 Clamp Work-Piece
The Draw selection which may be made from the Run
menu when the Mill is on-line, has the effect of inhibiting
This switches on the small electric motors to
all cutter motor operations and limiting the movement of
close the index positioning device and the jaw
the Z axis to a narrow range, between the pen just above
of the vice, in a sequence, to clamp the work-
the paper and lowered fractionally to touching the paper,
piece.
ready to draw.
M69 Unclamp Work-Piece
These modifications to the cutter operation ensure that
the pen is not damaged. A drawing block to which the
This reverses the closing sequence, to return
paper should be carefully fixed so that it lays flat, is used
the jaws and index positioning device to the
in place of the work-piece and the pen is adjusted to
fully open position.
touch the surface of the paper using the manual control.

Graphical Presentation - Mill The path of the cutter may be confirmed to be correct
using the graphical simulation before cutting a complex
A graphical execution, without cutting the work-piece, shape, but more precisely by drawing with a pen in the
may be selected by placing the Mill or Lathe off-line from chuck of the spindle motor. Using the pen in the
the Run menu. This presents a new window as an development stage of a program also saves spoiling
overlay to the Main program window stack area, in which expensive material.
the work-piece is shown to the size set from the Size
dialogue box, accessed from the menu bar when the The pen supplied with the mill is a disposable plotter pen
graphic has the screen focus. (Staedler Marsplot 32HP03K-9, as used for Hewlett
Packard plotters 7221, 7225, 7470, 7475, 7550 and
The cutting path is drawn to dimension in a position 9872, which also is available from Farnell Electronic
programmed in relation to the top left hand corner, Components under their part number 176-187).
irrespective of the actual size work-piece. The right
hand information window stack areas are not used for
the graphical execution, since they are reserved for Setting-up the Mill
graphics more appropriate to the programming and set-
up phase for the robots and workcell. Push the pen fully into the adapter, fit the adapter into
the full depth of the spindle motor chuck and then
The simple illustration used here is from the first remove the cover for the pen.
example program for the Mill, DEMO_CM1.
Lay a sheet of A4 paper, trimmed to size over the
Different colours are used to show the depth of cut and drawing holder block, wrap the edges tightly underneath
this is summarised in a display box when the Key option and secure the paper with the two plastic binding clips
is selected from the menu bar to the graphics window. provided.
The colours which correspond to the numbers given for
depth of cut ( Z axis value if the datum is not set ) and Open the vice, using the control from the dialogue box
tool diameter, will change as the execution progresses. and place the drawing holder on the Mill table. Finally
close the vice to clamp the drawing holder into the
correct position.

It is advisable to temporarily disconnect the motor for the


index device, by pulling out the jack plug, otherwise there
is a tendency to bow the drawing holder as the vice
closes.

Running the Program for Drawing

After Homing, the pen will be brought down to a position


just above the paper. Using the manual control buttons
for the Z axis, move the pen fractionally down to be just
in contact with the paper. Switch the Motor Power off
and then on again.

WALLI for WINDOWS. Revision A USE of WALLI page 39


PROGRAMMING the CYBER LATHE
The program will now run with the pen at the two
alternative heights, just above the paper and in contact The tabulation used in the CNC program editor follows
whilst drawing. Whereas in the Graphics Simulation the example from the literature, with column headings the
different depths of cut are drawn in different colours, the Address Characters defined in the BS 3635 and ISO
one pen is used for all depths of cuts in the drawing. For 646 Specifications. There are omissions in keeping with
complex machining, the interpretation of the drawing the relative simplicity of the machine, notably the J
may well be aided by the graphics. parameter for circular interpolation, parallel to the Y axis
which is also irrelevant, and the U, V and W parameters
When the program is completed, the pen will be raised for subsidiary movement of the tool carrier parallel to the
well clear of the paper so that the drawing holder may be X,Y and Z axes, respectively. There are also minor
removed from the vice. At this point, the jack plug variations, notably using D for dwell time.
connection to the motor for the index device should be
re-inserted. All variants of the convention used for circular
interpolation assume that the last programmed move
Note: Replace the cap onto the pen as soon as the brought the cutting tool to the start point for the arc.
drawing is complete, to prevent it from drying out.
The convention used here assumes that a clock-wise
Engraving Text path is obeyed by a G02 code and the end point for the
arc may be defined either relative to the start point in
The use of these non-standard codes is best illustrated incremental terms for X and Z or in absolute terms from
by example, such as in the tabulated below, which is the X, Z datum, but the centre of the arc is always in
taken from the program, g_keyfob.ncm, and which incremental terms I and K.
specifies the text "fred", of maximum height 9.00 mm
engraved to a depth of 1mm. The alternative of the datum point in X, Z for I and K. is
not used, and as a consequence, I and K are always
The width of text is not specified in the X field, so the text positive in a strict observance of the convention. The
will be engraved with a spacing and character width un- Walli3 editor for CNC programs, however, does not
scaled from the font description. reject the use of negative numbers for I and K, since
they are a help when reading the code, nor does it
Example require the irrational change to using diameters when in
the absolute mode, i.e. double the X ordinate.
N G X Y Z Remarks
n 00 25.00 25.00 19.00 Centre of text Before writing a program, the examples on the
n+1 01 20.00 distribution disc should be examined and perhaps run to
n+2 98 1 1 0 normal 0°, font 1 give a degree of confidence and understanding of the
n+3 99 9.00 1.00 fred , 9mm high ISO programming conventions.
n+4 00 0.00 0.00 0.00

Edit Screen
The default text in the Remarks field of the G98 code
has not been specified either, since in this case, the The edit window for the CNC Cyber Lathe is initially
engraved text is specified. empty of program, except for a single semi-blank line
giving default values in the F, S, T and D fields. It is
presented on top of the stack of device and cell definition
windows when the lathe is first declared as part of the
cell and thereafter whenever selected from the windows
menu device option. “Home” indicates maximum values.

Clip 57 : Initial edit screen for the Cyber Lathe.

The program is developed by adding lines of code, using


the Insert command, which adds additional blank lines at
the cursor position, or by the normal use of the Enter or
Return key to complete the line. Alternatively programs
may be loaded from file or imported for post processing.

The meaning of the column heading Address Characters


are as follows :-

WALLI for WINDOWS. Revision A USE of WALLI page 40


standard from the AutoCAD, AutoSketch and similar
N Line number CAD packages and potentially by selection from the
G Preparatory function, generally relating to the CorelDRAW package. Any curved sections of the outline
cutter will in general be represented by a sequence of short
X,ZCo-ordinates of the next position to move to straight lines, which together produce a curved path for
I,K Incremental co-ordinates of the centre of a the tool.
circular arc
F Feed rate for the move The technique can never-the-less, provide a convincing
S Spindle speed demonstration, and will be reverted to in any case when
T Tool selection, 1 normal and end face processing DXF type files where there are features of
2 reverse taper and faces the design that cannot be directly translated to circular
3 thread cutting interpolations, as in forming an ogival cone.
4 boring
D Dwell time in seconds The drawing should be made with reference to the top
M Miscellaneous functions left-hand corner of the page that has been defined, to
Rem Remarks correspond to the lathe datum, on the turning axis at the
top and against the outer face of the chuck jaws on the
All dimensions may be specified in milli-meters or inches left.
using the G70 and G71 codes, respectively.
The drawing will typically be a half section in a single
Entries may be made into any of the column positions colour and with only one radial or X co-ordinate for each
and edited by over-typing as appropriate, using the Z axis position, i.e. a monotonic form. The code that is
keyboard cursor and tab keys to move between fields produced will require edits for any threaded portions or if
and the Ctrl+I, Ctrl+D combinations to insert and delete there is the need to bore into the end face, using the
lines or rows, respectively. Auto-line numbers are G33 and G83 codes, respectively.
imposed and this selection is greyed-out in the Edit
menu, giving line numbers in single increments. The post processor uses the outer limits of the drawing
to scale it to the stock size of the work piece and this is
Programs previously written in the G&M Code format set within the dialogue box presented by the Setup
may be loaded into the edit window from the Load menu, when the graphical execution window has the
selection in the File menu. Programs in other formats screen focus.
may also be loaded using the Import selection from the
File menu. ISO Format Programming the Lathe

The turning program is written on the host computer in


ISO format, using a separate edit window for each of the
CNC machines declared in the Cell Definitions Window.

The CNC editor for the Lathe will accept the most widely
used G and M codes which are relevant to the machines
operation, in a conventional tabular statement. This
tabular text statement may be saved to file before it is
compiled as a CNC program suitable for transmission
to the control processor in the Lathe device where it may
Clip 58 : Import file types for the Cyber Lathe. be run under supervisory control from the workcell
program.
The Import file types include HPGL, DXF and ASCII,
making the distinction in the latter case between From the large range of standard preparatory and
programs in G&M Code written in the edit window and miscellaneous function codes that are defined, the ones
those written with a conventional text editor, when the that are accepted within Walli3 form a sub-set that
address character must be stated for every field entry. demonstrate the basics of CNC machining on a lathe
which is capable of doing useful work, either as a stand
Files imported into Walli, detailing components for alone device or as part of an integrated multi-robot/CNC
manufacture on the Cyber Lathe, invoke the interpreter workcell.
provided by the G25 code for Profile Cutting, to translate
the half section outline into code which will both remove Some non-standard but permissible G codes have also
the stock material and provide the finishing cuts. been implemented, notably for profile cutting, G25, and
also to permit logic access from the workcell, G38 and
The HPGL type files with extension [.prt], [.prn] and [.plt], G39.
such as may be produced from the AutoSketch and
CorelDRAW packages, and which are types supported Most of these do not require special comment except to
by any Windows vector drawing package, may be refer to the convention that is used in circular
successfully imported and post processed into the G & M interpolation, as previously stated.
Codes for the Lathe.
ISO PREPARATORY AND MISCELLANEOUS
The resultant file from any source, is large by CODES SUPPORTED FOR THE LATHE
comparison with those written directly in the G & M
Codes, or processed from DXF type files, produced as Standard G Codes

WALLI for WINDOWS. Revision A USE of WALLI page 41


block intended as a subroutine to the main G
G00 Rapid Positioning Point-to-Point and M code program.

This is used when moving the cutting tool The code is accompanied by a statement in the
between the end of one cutting sequence and X field, which is the subroutines numerical label
the start of the next. It should never be used or name.
when the tool is in contact with the work-piece,
except directly away from the material, i.e. G33 Thread Cutting
normally in the X or Z direction.
Three standard thread forms may be cut, for
G01 Linear Interpolation Metric (M4 to M30), BSP (1/8 to 7/8) and BA (0
to 3).
This takes the tool along a straight line from the
last defined position to the position defined by The X field specifies the external radius of the
the current line. It is the usual code for cutting thread and the Z field its length.
operations, having made a previous move to
insert the tool into the surface of the material to The I field parameter is the depth of thread for
an appropriate depth of cut. the standard thread form. It may be found
necessary to make adjustments to this
G02 Circular Interpolation Arc, Clockwise parameter for a fit to the inner thread form of
the corresponding nut or similar internally
This takes the tool in a circular arc of up to 90º threaded part. The K field specifies the thread
in a clockwise direction from the last defined pitch.
position to the position defined by the current
line with the G02 code. The centre of the arc is Threads are always cut in the negative Z
defined by the I and K incremental parameters direction, to give a right-hand-thread, and the
for the X and Z co-ordinates, respectively. tool change to the 60 degree thread cutting
tool, is done automatically, although it may be
As a single cut, it will produce a concave programmed as part of the preparatory move to
circular segment with the tool moving away the position to start the thread cutting.
from the chuck, but the bulk of material would
need to have been removed beforehand. G65 Call Subroutine

G03 Circular Interpolation Arc, Counter-Clockwise The code used to call a subroutine from the
main part of a G and M code program.
This takes the tool in a circular arc of up to 90º
in a counter-clockwise direction from the last The code is accompanied by a statement in the
defined position to the position defined by the X field, which is the numerical label or name of
current line. The centre of the arc is defined by the subroutine, as declared with the Subroutine
the I and K incremental parameters for the X Start code.
and Z co-ordinates, respectively.
G70 Imperial
As a single cut, it will produce a convex circular
segment with the tool moving away from the Sets the imperial inch as the unit for all
chuck, but the bulk of material would need to subsequent dimension entries.
have been removed beforehand.
G71 Metric
G04 Dwell
Sets the milli-metre as the unit for all
This defines a wait period, the value of which is subsequent dimension entries.
set in the D or Dwell field in seconds.
G73 Loop Cycle
G05 End Subroutine
Marks the beginning of a sequence of
Used to mark the end of a section of code commands that will be repeated the number of
intended to be obeyed as a subroutine and times entered as an integer in the X column.
declared by the corresponding Subroutine Start
code, G28. When obeyed in the incremental mode, it
typically defines a cutting sequence to remove
When the G05 code is obeyed, the program a section of stock material from the workpiece.
sequence is returned to the line following the
call to the subroutine. G83 Peck Cycle with Dwell ( Boring )
G06 End Loop
This is an intermittent feed cycle with a wait
Marks the end of a Loop Cycle sequence. period to improve the finish at the bottom of the
cut, by definition, but principally to avoid the
G28 Subroutine Start build-up of swaf during the boring process, here
the sequence is interrupted after the
The code which is entered as the first line of a penetration defined in the I parameter field,

WALLI for WINDOWS. Revision A USE of WALLI page 42


defaulting to 3mm, and the drill withdrawn clear outline.
of the hole.
The machining is done in a series of continuous
The start position on the Z axis for the drilling tool passes which reduce the stock of the
operation is determined by the previous moves. workpiece, working from end to end, rather than
in sections of length for specific detail, i.e. along
G90 Absolute programming the profile.

After specifying absolute programming each The outline definition is derived by the
subsequent X and Z dimension entered is interpreter from inspection of a G and M code
interpreted as the co-ordinate from the zero program which either has been written directly
datum which is set in the alignment procedure in code, and may include sections derived by
for a tool position on the turning, or Z axis, and the use of Wizards, or has been generated by
close to the outer surface of the chuck jaws. post-processing a design imported from a
Drawing or CAD Package.
The zero datum may be altered by program
using the G92 code so that a subroutine, say, The interpreter makes its own decisions for tool
written in absolute code, may be recalled at a changes, using the default Tool 1 where
different start position along the Z axis. possible, and makes the "best attempt" at
shapes which cannot be achieved on the lathe,
G91 Incremental programming or could be considered illegal, multi-valued or
not monotonic.
After specifying incremental programming, each
subsequent X and Z dimension entered is The G25 code must be the first code statement
interpreted as the distance from the last defined of a program. This is ensured automatically by
position to the one currently defined in the the import post-processors but it requires a
coded line. As a consequence, the dimensions simple edit for written programs.
may be either positive or negative.
When the program is run in the normal way, the
Note: Both G90 and G91 are single entries on a line. interpreted code is not presented but held in
memory to be obeyed for the graphical
G92 Shift Zero Datum simulation and compiled for execution, if the
lathe is on-line. The original code is retained
After specifying absolute programming each within the edit window and on file.
subsequent X and Z dimension entered is
interpreted as the co-ordinate from the zero G38 Pause for Input
datum which is set in the alignment procedure
for a tool position on the turning, or Z axis, and This allows the Lathe to respond autonomously
close to the outer surface of the chuck jaws. to logic inputs, rather than through the Workcell
control program. The X and Z fields are used
The zero datum may be altered by program for logic inputs going low and going high,
using the G92 code so that a subroutine, say, respectively, the entry being the numbered
written in absolute code, may be recalled at a input in the range 1 to 8.
different start position along the Z axis.
It is the non-preferred method of logic control
This code allows a program statement in the X since the connection is not listed in the Cell
and Z fields of an offset from the machine Definition.
datum, to some other zero datum which will
thereafter be the zero reference for the X and Z G39 Set output
absolute program co-ordinates for program
execution. This feature is provided by the This allows the Lathe to autonomously drive
code, but it is not a normal requirement in lathe logic outputs. The X and Z fields are again
operation. used, as for inputs. It is the non-preferred
method of logic control since the connection is
Note: The aligned position is re-established not listed in the Cell Definition.
automatically, at the start of program execution.

Miscellaneous Functions

Non-Standard G Codes Note: Because of the modal character of many of the


preparatory functions, that is they stay in operation until
G25 Profile Cutting changed or cancelled, it is advisable to have a G code
on all lines that have an M code, to cancel the previous
Profile Cutting further extends the concept of G code, even if this is a null dwell, G04 with zero dwell
Canned Cycles and Wizards used in CNC time. M codes are executed before G codes.
programming, to give direct access to an
interpreter which generates code to complete M00 Program Pause
the machining of a part from a definition of its

WALLI for WINDOWS. Revision A USE of WALLI page 43


This halts the program waiting for the motor
current to be switched off and then on again. It
is useful for introducing manual tool changes or
to allow a build-up of swaf to be removed.
While in the paused state, the Monitor LED
mounted on the control processor board
between the RJ45 connectors, will flash more
rapidly. The program continue may be selected
from the Control Panel dialogue box.

M02 End of Program

End of program is an implied function which is


obeyed automatically at the end of program
execution. The M02 code may be used in
program, either to truncate further execution or
to force a stop during program development,
say. It should be used also to mark the end of
the main program, before the code statements
for subroutines. It will be inserted automatically
if the Segment wizard is used to generate the
subroutines.

M03 Spindle On Clip 59 : Graphic execution of King chess piece program.

This switches on the Lathe spindle motor. The


speed of the motor should be specified in the Once started, control of the graphical execution is
same line, otherwise the default speed, a speed transferred to the row of pads at the bottom of the
previously specified, set manually or through window, to step, start / pause or abort. In the same row
the screen dialogue box replica of the manual there is a status display showing the current position of
control panel, will be used. the cutting tool, in X and Z co-ordinates together with the
current depth of cut, calculated orthogonal to the local
Spindle speeds are in the range zero to surface of the work-piece. A check box is also provided,
2000rpm selected by number in the range 0 - 9, labelled Turbo, and this suppresses all changes in the
at notional intervals of 200rpm. graphical presentation until re-checked, allowing rapid
progress through sections of program during program
M05 Spindle Off development.

This stops the Lathe spindle motor. In normal program execution, the graphic depicts an
outline the selected tool as it moves, both when clear of
M68 Close Chuck the surface and as it reduces the stock outline of the
work-piece to the finished profile form.
This selects a low speed, low power mode for
the lathe spindle motor drive, switches on two This simulation is particularly useful in detecting un-
small electric motors in the appropriate direction intentional contact of the tool with the work-piece, as
to enter the chuck key and to close the jaws of shown by an overlap of the outlines, and may indicate
the chuck by rotating the key, in a sequence to the need to change the tool for work on reverse faces,
clamp the work-piece in the chuck which is for example. The current depth of cut is also shown
completed by withdrawing the chuck key,. graphically as a line of varying thickness, following the
tool, but diagonally opposite to it on the workpiece, along
M69 Open Chuck the upper part of the profile.

This reverses the direction of the key rotation in the The Options menu item allows the graphical display of
closing sequence, to return the chuck jaws to the fully the depth of cut to be shown or not, and also whether
open position. the tool is shown or not, both options allowing the speed
Graphical Presentation - Lathe of execution to be increased. The status display of the
running X and Z co-ordinates may be similarly
A graphical execution of the program without cutting the suppressed, as may the facility to pause the execution
work-piece, may be selected by placing the Lathe off-line on error.
from the Run menu before starting the program
sequence. Whether on-line or off-line, the selection Errors are detected for depths of cut that are calculated
presents a new window overlaying the screen space to be in excess of that set in the Size dialogue box, or for
occupied by the Workcell widow stack, in which the violations of the workspace such as attempting to move
work-piece is shown in a plan view of the Lathe work the tool beyond the limits of travel on both axes.
area and to a size set from the Size dialogue box. The Suppressing any of these alternative has the effect of
dialogue is accessed from Setup, one of two items speeding the graphical execution.
displayed on the Menu bar when the graphics window
has the screen focus, the other item providing Options Once graphical simulation has checked the program for
for the graphics display. errors, it may be compiled by running on-line, when the

WALLI for WINDOWS. Revision A USE of WALLI page 44


compiled code is passed to the Lathe control computer arc and radius, all in three related groups which change
for autonomous execution except from possible position according to the quadrant selected, so as to re-
intervention from the Workcell program. enforce their meaning and the direction of cut.

Note :
The size of workpiece set in the Size dialogue
box does not include the length of billet held in
the chuck, an extra nominal 15mm, depending
on the zero set in the X - Z alignment. The
default size for the billet is the maximum
allowed, or 15mm radius and 60mm long. The
default depth of cut is 0.5mm.

If the billet size is not set to that assumed in the


program, the graphical representation is likely
to show a block of material left un-attached, if it
is too long, or the outline will not be complete, if
it is too short.

USING WIZARDS IN CNC PROGRAMS

Wizards provide on screen assistance in the entry of


parameters for some of the G and M codes that may be
used in programs for the Cyber Mill and Lathe.

In particular, assistance is given for determining the field


parameters for the two Circular Interpolation codes, G02
As few as five of the seven parameters are required to
and G03, where the start and end points are stated in
define the arc, as discussed in the General Notes and
the X and Y(Z) fields in the preceding and current line,
Student Exercises section of the Manual. A particular
respectively, and for which the centre of the circle is
coding requirement is met by entering only sufficient
stated as an offset from the start position in the I and
parameters for the definition, allowing a calculation from
J(K) fields of the current line. A full explanation of the
different design criteria, depending on what is known and
geometry involved, and the methods of calculating the
what is not known of the geometry.
parameters, is to be found in the General Notes and
Student Exercises section of the Manual for both the Mill
Any shortfall in the parameters will be flagged by an
and the Lathe, where the apparent differences arise from
error message when the calculation is entered by
the axes convention for CNC machines.
selecting the OK pad, and so will be any attempt to use
parameters which contravene the geometric constraints
Assistance is also given for the Lathe only, in stating the
imposed by the code convention, i.e. segments which
parameters required for thread cutting, using the G33
exceed 90 degrees of arc or which pass through
code, and in generating code to remove whole sections
quadrant boundaries.
of material, such as when roughing-out the required
shape.
If the calculation is successful, the dialogue box is
removed from the screen and the end point and offset
The wizards that may be selected from the Wizards
values are inserted into the current cursor line of the
menu are :-
program window, using the appropriate code for
interpolation in the clockwise or counter-clockwise
Arc For the Mill
direction.
Segment For the Lathe
Thread For the Lathe
The user is referred to the notes mentioned above, for a
full understanding of the geometry and for further
Arc Wizard explanation of any error messages that may be
displayed if the calculation cannot be completed
The graphical dialogue box which is displayed when the correctly.
Arc wizard is selected from the menu bar, while the Mill
has the screen focus, provides assistance in calculating Segment Wizard
the geometry of circular interpolation and provides the
code required to cut a sector of arc in the surface of the
The Segment wizard for the Lathe provides assistance
workpiece.
with the programming of the circular interpolation codes
for sectors of arc, in the same way that is provided by
The graphical presentation shows a full quadrant of arc,
the Arc wizard for the Mill. However, in the nature of
which may be any one of four going clockwise and four
work on a lathe, the bulk of stock material must be
counter-clockwise, as selected from the group of pads to
removed in the roughing-out stage, before a profile
the right.
circular cut can be made. As a consequence, the output
from the use of the wizard is by default a section of code
Within the graph area, there are entry boxes for the
to remove the stock down to the finished arc and this is
parameters which are required to define the segment of
indicated by concentric arcs in the quadrant shown in
arc, the start and end positions in X and Y, the centre of
the graphics.

WALLI for WINDOWS. Revision A USE of WALLI page 45


If sufficient parameters which obey the convention have
been inserted into the entry boxes, the code is
composed as a subroutine appended to the end of the
program and a subroutine call is inserted at the current
line.

This method of implementing of the roughing-out


process by generating blocks of code in the form of
subroutines, has been extended within the Segment
wizard to include the other standard roughing cuts
required in lathe work, to face-off, remove cylindrical
sections and to cut tapers.

These may be selected using the pads on the right of the


main graph area, below those for the segments of arc.
The graphic changes from depicting concentric arcs to
indicate the successive cuts for a taper, for the facing
operation or for the simple turning operation to remove
cylindrical sections of material. The graphic which is
reproduced here, has Help File "hot spots" to assist in
explaining its use. Any shortfall in the parameters will be flagged by an
error message when the calculation is entered using the
Segments of Arc OK pad and so will any attempt to use parameters which
contravene the geometric constraints imposed by the
The graphic presented when one of the circular segment code convention, i.e. segments which exceed 90
pads is selected, is of a full quadrant of arc, any one of degrees of arc or which pass through quadrant
four going clockwise and four counter-clockwise, and boundaries.
showing a solid segment with concentric arcs as the
default condition, indicating that stock material will be The user is referred to the notes mentioned above, for a
removed down to the finishing cut defined by the arc. full understanding of the geometry and for further
explanation of any error messages that may be
Within the graph area, there are entry boxes for the displayed if the calculation cannot be completed
parameters which define the required segment, the start correctly.
and end positions of the finished arc in X and Z, the
centre of arc and the radius. The boxes are in three If the geometry can be calculated successfully, the
related groups which change position according to the Wizard dialogue box is removed from the screen but the
quadrant selected, so as to re-enforce their meaning and code inserted is dependent on the selections made in the
to indicate the direction of cut. checkboxes for Generate Roughing and Incremental
Code. The alternatives are :-
As few as five of the seven parameters may be required
to define the arc, as discussed in the General Notes and Generate Roughing in Incremental Code
Student Exercises section of the manual. A particular Generate Roughing in Absolute Code
coding requirement is met by entering only sufficient Generate Arc in Incremental Code
parameters for the definition, allowing a calculation from Generate Arc in Absolute Code
different design criteria, depending on what is known and
what is not known of the geometry. For the first two of these, the code will be in the form of a
numbered subroutine appended to the end of the
program with an appropriate subroutine call at the
current cursor line. The subroutine code will be in either
absolute or incremental form as an overall statement,
although the active code may be in incremental form,
from a calculated absolute reference.

The last two will produce a single line of code to cut a


circular profile in absolute or incremental form. If a
change of mode is implied by the selection, a line with
the G90 or G91 code will be inserted also.

Cutting tapers

The graphical presentation shows a 45 degree taper, but


the actual slope of the taper which is to be cut is
determined by the X and Z parameters entered for the
start and end points of the finished conical shape. Both
leading and reverse tapers may be cut, with the tool path
towards or away from the turning axis, as indicated on
the selection pads. The face resulting from a reverse

WALLI for WINDOWS. Revision A USE of WALLI page 46


taper will always be true, i.e. at right angles to the turning addressed in the workcell program, including the
axis. connections between them. This would be a statement
of the content of the workcell as supplied for a turn-key
The code is generated as a subroutine placed at the end system but for any system, it may edited to be a subset
of the program with cuts progressing to the finished of the equipment or amended to account for any
taper in increments determined by the depth of cut that subsequent additions. If the statement is incorrect or
has been selected. It may be generated in incremental incomplete, warning messages will be displayed when
or absolute mode. attempting to program the device or sub-device which is
in error. For the most part, however, the syntax of a
Cylindrical and Face Cuts program command will be restricted to exclude devices
and sub-devices that have not been declared.
The subroutine code generated for the alternatives for
both of these roughing-out procedures is in the form of a
loop cycle with the loop number calculated from the EDITING THE CELL DEFINITION WINDOW
amount of material to be removed. This is determined
from the start and end parameters, and from the depth The window presents the current list of the Devices and
of cut. The active code is always generated in Sub-Devices that have been declared as the equipment
incremental mode even if bracketed by mode changes. contents of the workcell. The Devices are grouped at
the head of the list, followed by the Sub-Devices.
Thread Wizard Against each of the devices there is a statement of its
connection to an appropriate interface into the host
The thread wizard relieves the programmer from the computer and against each of the sub-devices there is a
need to interpret the standard thread definitions into the summary of the intended connections to the devices. As
parameter fields of the G33 code. such the window presents the Wiring List for the
workcell.
Three standard thread forms may be cut, for Metric (M4
to M30), BSP (1/8 to 7/8) and BA (0 to 3). Without any entry, the window will be correspondingly
blank, but entries may be made via the Cell menu at any
The thread type is selected by Name from the dialogue time during program development, but most
box, which also has entries for the radius, length of appropriately while the Cell definition window has the
thread, pitch/lead and height/depth of thread, some of screen focus on top of the stack of device edit windows.
which are generated directly by the thread definition.
The range of equipment that may be used to build a
workcell comprises Devices such as robots, CNC
machines and any necessary expander boxes, and Sub-
Devices, such as conveyors and index tables. Up to
eight devices may be allocated to each interface card
and any number of sub-devices may be specified for
use in any one workcell, limited only by the workcell
connections available from the devices. The program to
co-ordinate the control of all of these is written into the
"Main" Walli program and its Walli Subroutines.

Although the Cell Definition Window may not be edited


directly as text from the keyboard, it is allowed the
screen focus so that the cursor may be moved to an
appropriate entry, to allow the editing of connections and
deletions via the corresponding amendment to the Cell
menu, or by pressing the return key, which gives direct
A line of code is generated at the current cursor position,
access to the same edit dialogue boxes.
with the remarks field containing the type identification of
the selected thread, such as M4.

The depth of thread for the standard thread form is


stated in the I parameter field. It may be found
necessary to make adjustments to this parameter for a
suitable fit to the inner thread form of the corresponding
nut or similar internally threaded part.

Threads are always cut in the negative Z direction, to


give a right-hand-thread. A tool change to the 60 degree
thread cutting tool, is invoked automatically by the G33
code but it is necessary to program the position of the
tool for the start of thread cutting at the right hand edge Clip 63 : Editing dialogue for the Cell Definition window.
of the outer diameter cylindrical section, before the code.
The current contents of the Cell Definitions window is
PROGRAMMING the WORKCELL saved as part of the project file but it may be saved
separately so that it may be recalled as the cell
A correct statement must be made in the Cell Definition statement for all new projects that use the particular
widow of all the devices and sub-devices that are to be

WALLI for WINDOWS. Revision A USE of WALLI page 47


equipment complement, as for a turn-key or
demonstration system. Note :
A4 to A7 and AW to AZ are alternative "phrases"
Adding Robots, CNC Machines and Expanders from the address decode, which require
alternative decode PROMS in the device
Selecting any of the possible devices from the upper half interface, and of these, A4 to A7 is standard.
of the Cell menu has the effect of opening a selection
dialogue box through which the Device's address on the ISA Bus Interface Connection Alternatives ~
interface connecting to the ISA Bus in the host RJ45 Serial Board
computer, may be allocated.
The Device Address Selection dialogue box presents a
double row of four radio buttons, labelled Device 1 to 8.
These correspond to the decoded address lines to the
devices from the RJ45 Serial Board, itself connected to
the Host processors ISA address and data bus. The
address and data information is relayed to the devices
on four twisted pair transmission lines connected as a
daisy chain between devices and correctly terminated at
the last in the chain. Any selection which is made by
choosing one of the radio buttons must therefore
correspond to the address selection on the
corresponding RJ45 device interface, which is made by
physical links to the logic rails between pins on a header
connection adjacent to the pair of inter-linked RJ45
sockets.

When the selection has been made, the appropriate


editing window for the device is displayed overlaying the
Clip 64 : Device Address Selection dialogue for Mentor. stack of existing device edit windows and with the screen
focus, ready for data entry.
The type and content of the Device Address Selection
box and the choice of address, depends on the device The device that has been added will also be listed in the
being added. There are two alternative types of Cell Definition window, along with all other devices and
interface and if both are relevant, as for Mentor in Clip sub-devices that have been declared.
64, the choice will be presented. Here both the parallel
Turbo Board and the Serial RJ45 alternative are Note :
presented for adding a second Mentor, the first Mentor The Expander Box does not have an editing
has already been allocated to A4, which is greyed out. window but, depending on the version, it may be
When adding the new version of the Serpent, the connected to either type of interface.
Gryphon or CNC devices, the Turbo Board selection will
be absent, since these devices may only use the RJ45 Adding Sub-Devices
board. Conversely, only the Turbo Board selection will
be presented for the Neptune which may only be When any of the possible Sub-Devices in the middle
connected through the parallel interface. section of the Cell menus selected, a dialogue box is
presented in which the connections may be established
Unless the interfaces are installed in the host, and there between the sub-device and any of the devices that have
may be more than one of each type, the edit windows for been declared.
the devices will indicate not-connected, appended to the
title bar. The contents of the dialogue box depends on the type of
sub-device that has been selected and only those items
ISA Bus Interface Connection Alternatives ~ that are relevant are included.
Parallel Turbo Board
The illustration in Clip 65 shows the potential addition of
a digital Height Gauge to the declarations for
The Device Address Selection dialogue box presents a
DEMO_M1.wal. The workcell interface can
double row of four radio buttons, labelled A4 to A7 and
accommodate this within the extended output drive
AW to AZ, respectively. These correspond to the
capability of the latest version of Mentor.
decoded address lines to the device from the Turbo
Board, itself connected to the Host processors ISA
Once the connections for the sub-device are completed,
address and data bus. Any selection which is made by
a summary is attached to the list of the declared Sub-
choosing the radio buttons must therefore correspond to
Devices in the Cell Definition window.
the address selection on the device, which is made by
physical links to the logic rails.

The connection is on eight parallel lines and those


devices that require wider data word transfer, such as
the Serpent or Neptune at 12 bits, do so using two eight
bit phrases, by effectively taking two of the eight devices
that the board will support.

WALLI for WINDOWS. Revision A USE of WALLI page 48


When the Potentiometer To selection is made, a drop-
down list of the possible analogue data input
connections to the device is presented for choice.
Providing an interface has been installed into the Host
computer and the system is On-Line, the value of the
input from the Potentiometer will be displayed.

Start To ~ Digital Width and Height Gauges


Read To ~ Digital Width and Height Gauges

When these selections are made, a drop-down list for


the Output selection appears, with all the possible
Clip 65 : Addition of a digital height gauge to existing cell. numbered logical outputs from the device.
The drop-down list of Devices from which the connection Out To ~ Digital Width and Height Gauges
may be made in each of the ‘Connected To’ boxes,
includes only those that have been declared (or When this selection is made, a drop-down list for the
selected) for the workcell, and which are currently listed Input selection appears, with all the possible numbered
in the Cell Definition window. The connections required digital inputs to the device. The Read To and Out To
and their relevance will be from the following items :- selections for each gauge must be to the same device
since the data from the gauge is transmitted in serial
Connections format on the Out line and the transmission sequence is
initiated on the Read line.
Start To ~ Conveyor, Index Table,
Parts Dispenser Output ~ Sensor
Stop To ~ Conveyor, Index Table
Increment To ~ Conveyor, Index Table When the Output selection is made, a drop-down list for
the Input selection appears, with all the possible
When these selection are made, a drop-down list for the numbered digital inputs to the device. The logical state of
Output selection appears, with all the possible numbered the input line will be displayed providing the device is
logical outputs from the device. connected to an interface installed into the Host
computer, and the system is On-Line.
Serial To ~ Conveyor, Index Table
Note :
When the Serial From selection is made, a drop-down It is the users responsibility to ensure the validity
list for the Output selection appears, with all the possible and logic of all the cell connections, in particular
latched logical outputs from the device. The connection that the signal line connections are accounted
is used to send data in serial format, at 9600 Baud, and not duplicated, unless intentionally.
emulating RS232 transmission on the single logic line
with an earth return. Note that outputs are not latched Test Buttons
on early Mentors and Neptune but for the digital control
system devices and the Mentor SB board, all are The following buttons are provided as appropriate in the
latched. dialogue box to test the connections. They will only have
an observable effect if the system is On-Line and have
Zero To ~ Index Table significance if the connections have been wired between
Free To ~ Parts Dispenser the device and sub-device.
When these selections are made, a drop-down list for Start ~ Sends a single Pulse to the conveyor
the Input selection appears, with all the possible or index table
numbered digital inputs to the device. When the choice Stop ~ Sends a single Pulse to the conveyor
is made, the logical state of the input will be displayed, or index table
providing an interface connection has been made to the Increment ~ Moves the conveyor or index table a
Host computer, and the system is On-Line. chosen Increment
Part Dispense ~ Starts the sequence to dispense a part
Mounted On ~ Parts Dispenser onto the moving conveyor
Gauge ~Initiates a Gauge measurement cycle
This is a Mechanical connection between Sub-devices, and displays the value in the status box
and only those Sub-Devices on which the Parts Calibrate ~Initiates the sequence to move the
Dispenser can be physically mounted, and which have Digital Gauge rack between its limits to
been declared, appear in the drop-down list. determine the stroke available
OK ~Enters the connections made.
Open/Up To ~ Analog Width and Height Gauges Cancel ~Discards any changes that have been
Close/Down To ~ Analog Width and Height Gauges made to the connections since they
were last entered.
When these selections are made, a drop-down list for
the Output selection appears, with all the possible
Deleting Devices and Sub-Devices
numbered logical outputs from the device.
Potentiometer To ~ Analog Width and Height Gauges
The Device or Sub-Device to be deleted may only be

WALLI for WINDOWS. Revision A USE of WALLI page 49


identified and included in the bottom part of the Cell
menu, by moving the cursor onto the appropriate entry in In its initial state, the contents of the window is blank,
the Cell Definition window. with the cursor on a blank entry against line 1, in the left
hand column. The blank right hand column in the line
may then be used to enter any of the commands
available in Walli3 as the first line of a program to control
the activity within the workcell. The commands are listed
for reference in the cue card to the right of the workcell
window and all have explanations and examples in the
Help files. Any subsequent lines are introduced using
the Insert edit command at the cursor position or by
using the return key for consecutive lines.

Clip 66 : Deleting an item from the Cell.

A dialogue box is presented when Delete is selected


from the Cell menu, as the usual safe guard to confirm
the deletion, as in Clip 66.

Once deletion has been confirmed, the entry is removed Clip 67 : Entering Walli workcell program commands.
from the list of Devices and Sub-Devices in the Cell
Definition window. If a device is deleted, it may be The Walli Commands are entered using two letter
necessary to re-allocate any connections to its workcell mnemonics, in upper or lower case, and the remainder
interface, in the Cell Definition window and within the of the syntax and data fields are presented from the
context of the Main workcell program or its sub-routines. application software, and completed as the entry
proceeds. At the completion of all the syntactic entries
Editing Sub-Devices or when the line is terminated with the return key, the
line statement is tidied into the form shown in the upper
The Sub-device for which the connections need to be lines of the illustration. Once entered, the commands
edited, may only be identified and included in the bottom may be deleted, displaced, re-numbered or named using
part of the Cell menu, if the cursor is moved to the the edit facilities. The contents of any of the data fields
appropriate entry in the Cell Definition window. in a command may be changed while the command is
being entered, using the Tab key to move forward
Once selected, the same dialogue box for the device between parameter fields and Shift+Tab, backwards.
connections as that entered from the corresponding Add
Sub-Device selection, is re-entered and any changes A completed command line may be edited by moving the
may be made. cursor highlight to the line and pressing the return key.
The full syntax of the line is restored in expanded form
PROGRAMMING THE WORKCELL and any of the fields may be edited in the normal way
using the Tab key to move between parameter fields.
The Workcell program co-ordinates the movement of
robotic devices and other sub-devices, into a meaningful
and productive automated workcell activity. The workcell
may contain a number of robots and computer
numerically controlled machines, together with a range of
associated transport and measurement sub-devices,
such as conveyors and gauges.

When the application is entered, or when a new project


is selected from the Edit menu, the window is headed by
the title "Main", declaring the name of the workcell Clip 68 : Editing a Walli command.
program that will exist for any Walli project. It does not
exist for stand-alone installations, when the programs
are named and loaded with a device related file The Walli subroutines and their separate named copies
extension into the appropriate device edit window. of the workcell window, may be added or deleted using
the Edit menu, when any of the edit windows has the
This main part of the project program may be screen focus, but excluding the Cell Definition window.
supplemented by a number of subroutines, added from
the Edit menu, all of which will be presented in a One principal use of such Walli subroutines would be in
separate window similar to the Main window, except for workcells which contain more than one robotic or CNC
the titles given them by the programmer. device, allocating the control of each robot or CNC
machine and its associated sub-devices to an
Each subroutine window may be given the screen focus appropriately named Walli subroutine, which may be
subsequently and called to the top of the workcell called from the Main workcell program which co-
program stack, using the side menu which is appended ordinates the overall cell activity.
to the Walli item in the Window menu.

WALLI for WINDOWS. Revision A USE of WALLI page 50


In this use of Walli subroutines, they would be termed [a]
parallel subroutines, in that they are intended to be
obeyed concurrently, that is with the host computer's CH Calibrate Height gauge [n]
operating system providing pseudo parallel operation. GH Gauge Height [n]
IH If Height gauge[n] is between[d] and [D] then
The other principal use of parallel Walli subroutines is to goto[a]
set-up timing loops, to time-out activity in the workcell,
preventing "locked" conditions and allowing orderly DP Dispense Part [n]
recovery.
ID If Digital sensor [n] is [on/off] then goto [a]
Expanding the idea of parallel subroutines further, the IS If analog Sensor is between [d] and [D] then goto
Walli commands for RS232 communication allow a [a]
number of host computers to control divisions of a larger WD Wait until Digital sensor [n] is [on/off]
workcell, with the communicating processors in
concurrent control of their respective workcell segments. Counters and Flags

CO COunter [n] [+ / - / = ] [m]


AC Add Counter [n] into counter [n]
CC Copy Counter [n] into counter [n]
IC If Counter [n] [ = / < / > ] [m] then goto [a]

SF Set Flag [n]


RF Reset Flag [n]
CF Copy Flag [n] into flag [n]
WF Wait until Flag [n] is [set/reset]
IF If Flag [n] is [set/reset] then goto [a]
Clip 69 : Serial communication commands as Help topic.
WA Wait [n] seconds
COMMAND SUMMARY Program Control Statements
The two letter mnemonic is given first, followed by the FO FOr [A] = [n] to [m]
syntax in which the mnemonic letters are repeated in NE NExt [A]
upper case. See Appendix 2 for a full expansion of the GO GOto [a]
syntax.
GS Goto Subroutine [a]
Computer Controlled Devices ~ Robots and CNC RS Return from Subroutine
Machines
SS Start parallel Subroutine [a]
MO MOve [rob n] through position [a/A] to position [b] ES End parallel Subroutine [a]
IA If [rob n] axis [m] is between [d] and[D] then goto [a]
EL ELse
SP Start [CNC n] Program [file] EI End If
CP Continue [CNC n] Program
IP If [CNC n] program has Paused then goto [a] Miscellaneous Statements
IE If [CNC n] program has Ended then goto [a]
WP Wait until [CNC n] program has Paused DM Display Message [text]
WE Wait until [CNC n] program has Ended RE REmark [text]
PR PRint [text]
JX Jog [CNC n] X axis [d]mm and continue program
JY Jog [CNC n] Y axis [d]mm and continue program TR TRace [on/off]
JZ Jog [CNC n] Z axis [d]mm and continue program
SL Start Log file to [text] row [n]
SO Set [dev n] Output [n] LO LOg [counter/flag/sensor/gauge n] to column [m]
RO Reset [dev n] Output [n] LF Log [rob n] Feedback starting at column [m]
Peripherals or Sub-Devices ~ Indirectly Controlled via CR Configure Rs232 port [n] [text]
Devices or Expander Boxes WR Write to RS232 port [n] [data]
OR Output to RS232 port [n] [file]
SC Start Conveyor [n] FR Flush RS232 port [n]
HC Halt Conveyor [n] IR If Rs232 port [n] = [text] then goto [a]
MC Move Conveyor [n] [d] mm
ST Start index Table [n]
HT Halt index Table [n]
MT Move index Table [n] through [d] degrees

CW Calibrate Width gauge [n]


GW Gauge Width [n]
IW If Width gauge[n] is between[d] and [D] then goto

WALLI for WINDOWS. Revision A USE of WALLI page 51

You might also like