0% found this document useful (0 votes)
27 views

Appendices: APPENDIX 1 Special Key Functions

The document describes key functions and syntax for the WALLI robot programming software. 1) Special keys are assigned functions for editing, control, and maneuvering in WALLI windows, following standard Windows conventions. The plus, minus, and Ctrl keys increment and decrement axis values and provide fine control for robot positioning. 2) Syntax for WALLI commands is described, including the "Move Robot" command. Fields for commands can be edited using shortcut keys and truncated values can be entered using the return/cursor keys. 3) Useful Windows key functions are listed, including Alt-Tab to switch applications and Ctrl-Esc to access the task list. The space bar provides an emergency stop and return

Uploaded by

Ko_deZ
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

Appendices: APPENDIX 1 Special Key Functions

The document describes key functions and syntax for the WALLI robot programming software. 1) Special keys are assigned functions for editing, control, and maneuvering in WALLI windows, following standard Windows conventions. The plus, minus, and Ctrl keys increment and decrement axis values and provide fine control for robot positioning. 2) Syntax for WALLI commands is described, including the "Move Robot" command. Fields for commands can be edited using shortcut keys and truncated values can be entered using the return/cursor keys. 3) Useful Windows key functions are listed, including Alt-Tab to switch applications and Ctrl-Esc to access the task list. The space bar provides an emergency stop and return

Uploaded by

Ko_deZ
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 17

APPENDICES

APPENDIX 1 ~ Special Key Functions While in the edit mode, the Axis field within the Robot
window which has the cursor and focus respectively, will
Special functions are assigned to keys for entry, editing, have its value incremented if the plus key is pressed.
control and manoeuvre in the edit windows, most This has effect both off and on-line, but the net result is
following standard Windows practice. different.

Off-line, the value is incremented by 10.


Walli Short-cut Functions
On-line, the plus key becomes a control for sending a full
Ctrl+A Auto Line Number
posative demand so that the axis is driven under closed
Ctrl+C Copy
loop control at it's maximum rate towards the desired
Ctrl+D Delete
position, in this case towards the maximum value of axis
Ctrl+E Paste to End
rotation, for so long as the key is held down. When the
Ctrl+I Insert
key is released, the current feedback data for the axis
Ctrl+J Control Panel
position becomes the programmed data. The graphics
Ctrl+L Load Device Program or Cell Definition File
display reflects the changes as they occur.
Ctrl+O On-Line / Off-Line
Ctrl+R Next Device Window
Ctrl+PLUS Key ~ Increment Axis Value (Fine)
Ctrl+T Test Workcell Interface
Ctrl+V Paste
While in the edit mode, the Axis field within the Robot
Ctrl+W Next Walli Sub-Routine
window which has the cursor and focus respectively, will
Ctrl+X Cut
have its value incremented by one count, if the plus key
F5 Start Walli / Device Sequence
is pressed at the same time as the Ctrl key is held down.
F8 Single Step Walli / Device Sequence
This has the same effect both off and on-line.
Ctrl+F6 Next Window
Shift+F5 Draw Mill Program Execution
It is particularly useful in programming on-line, to bring
the axis to it's final position with fine adjustments, after
Additional Walli Edit Functions using the full drive control of the plus and minus keys,
alone
MINUS Key ~ Decrement Axis Value (Course)
RETURN or CURSOR Key ~ Truncate Data Entry
While in the edit mode, the Axis field within the Robot
window which has the cursor and focus respectively, will While in the edit mode and entering data values into a
have its value decremented, if the minus key is pressed. field in either the Robot or Workcell windows, the entry
may be truncated by using the Return key, to two out of
This has effect both off and on-line, but the net result is the three characters, say, avoiding the need to enter 033
different. for 33.
Off-line, the value is decremented by 10. The same effect is achieved by moving the cursor and
this is to be preferred in the Workcell window, when a
On-line, the minus key becomes a control for sending a number of fields have to be entered for a particular
full negative demand so that the axis is driven under command. In some cases it is legal to complete the line
closed loop control at it's maximum rate towards the with return, without entering data in the endmost fields,
desired position, in this case towards the zero end of in other cases it is not. A warning will be given, however,
axis rotation, for so long as the key is held down. When if an attempt is made to make an illegal entry into a
the key is released, the current feedback data for the command.
axis position, becomes the programmed data. The
graphics display reflects the changes as they occur. RETURN Key ~ Workcell Window, Line Edit Toggle
Ctrl+MINUS Key ~ Decrement Axis Value (Fine) During program entry, the return key will complete the
command if all necessary data fields have been
While in the edit mode, the Axis field within the Robot completed and the cursor will move to the following line.
window which has the cursor and focus respectively, will
have its value decremented by one count, if the minus Any completed line may be edited for the values in any
key is pressed at the same time as the Ctrl key is held of its data fields, by moving the cursor to that line and
down. This has the same effect both off and on-line, pressing the Return key. This has the effect of returning
the line to its original entry state, with all of the data
It is particularly useful when programming on-line, to fields expanded and ready to be re-defined or altered.
bring the axis to it's final position with fine adjustments,
after using the full drive control of the plus and minus
keys, alone.
RETURN Key ~ Cell Definition Window Editing
PLUS Key ~ Increment Axis Value (Course)

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 1


The equipment content of the cell and the connections Useful Windows Key Functions
between Devices and Sub-Devices, may be edited by
moving the cursor to the particular field in the definitions Alt,Highlight Item Menu Selection Short Cut
list, and pressing the Return key. Alt,Space Access Application’s Window Menu,
as an alternative to the [-] button on
This has the effect of opening the appropriate dialogue title bar
box, where changes may be made. It is a short cut to Alt+Tab Cycle Windows Applications
the use of the edit item at the end the Cell menu. Alt+F4 Quit Application
Ctrl+Esc Display Task List
RETURN Key ~ Run Mode, Single Step Increment Ctrl+F6 Cycle Window Focus, allowing an over-
ride on the applications handling of the
When the program is running and the single step mode window stacks. It is implemented in Walli.
of execution has been selected, the program may be
moved on one line at a time by using the Return key to
select Yes in the dialogue box to continue.

This functional use of the return key, applies whether the


system is off or on-line, and whether the Device/Robot
window has the focus or the workcell window. It is a
standard Windows usage in dialogue boxes when the
choice is initialised or otherwise selected and indicated
by a highlight on the choice button.

In the case of the Main workcell window , the program


will start at the beginning and progress through the logic
of the program control statements until the end. If there
is a sufficient interval between commands, a dialogue
box will be presented through which program execution
may be halted at any stage. For the Robot window, the
program will be executed, starting from the line which
currently has the cursor and will execute the succeeding
lines to move the robot, disregarding any program
divisions into subroutines which would otherwise be
called from the workcell program, until the end of the
program is reached.

SPACE Bar ~ Run Mode, EMERGENCY STOP

When the system is on-line and under program


execution in any mode, the system may be halted in an
emergency at any stage, by pressing the Space bar.

This is a safe-guard should collisions be seen to be


imminent between robotic devices and static units in the
workcell, such as conveyors.

TAB Key ~ Move Right, between Edit Fields

This is the same control for movement between fields in


a table, as is defined for use in a Windows based word
processor.

Shift+TAB Key ~ Move Left, between Edit Fields

This is the same control for movement between fields in


a table, as is defined for use in a Windows based word
processor.

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 2


APPENDIX 2 ~ Syntax of Walli A selection list of the declared CNC devices is
presented for [CNC n]
Commands
If Ended
Move Robot Syntax
If [CNC n] program has Ended then goto [a]
Syntax
MOve [rob n] through position [a] to position [b] Where :
a is a Cell program label, up to 8 characters
where : ( optional )
rob n is the name and number given to the Robot Note :
a is a named or numbered line of code in the A selection list of the declared CNC devices is
Program presented for [CNC n]
b is also a line of code, forward from a

Note :
Wait until Paused
A selection list of the declared robots is presented for
Syntax
[n]
Wait until [CNC n] program has Paused
If Device Axis Note :
A selection list of the declared CNC devices is
Syntax presented for [CNC n]
If [rob n] Axis [m] is between [d] and [D] then goto [a]

where :
Wait until Ended
rob n is a name and number given to the Device
Syntax
m is a number given to the axis
Wait until [CNC n] program has Ended
d is a decimal number
D is also a decimal number, greater than d, and
Note :
within the permitted range for the axis
A selection list of the declared CNC devices is
a is a label in the program, line number or name
presented for [CNC n]
( optional )

Start Program Jog X Axis


Syntax
Syntax
Jog [CNC n] X axis [m]mm/ins and continue program
Start [CNC n] Program [file]
where :
where :
n is a number given to the CNC device
n is a number given to a CNC device
m is limited to 4 numeric characters
file is the name of a CNC program for the device

note : Jog Y Axis


A selection list of the declared CNC devices is
presented for [CNC n]. Syntax
Jog [CNC n] Y axis [m]mm/ins and continue program
Continue Program
where :
n is a number given to the CNC device
Syntax
m is limited to 4 numeric characters
Continue [CNC n] Program

Note : Jog Z Axis


A selection list of the declared CNC devices is
presented for [CNC n] Syntax
Jog [CNC n] Z axis [m]mm/ins and continue program
If Paused
where :
n is a number given to the CNC device
Syntax
m is limited to 4 numeric characters
If [CNC n] program has Paused then goto [a]

Where :
a is a cell program label, up to 8 characters
( optional )
Set Output

Note : Syntax
Set {dev n] Output [n]

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 3


n is a number given to the index Table
where : d has a meaningful limit of 360 degrees
dev n is the name and number given to the device
n is a number in the range of capability of the Move Index Table
device
Syntax
Reset Output Move index Table [n] [d]degrees

Syntax where :
Reset [dev n] Output [n] n is a number given to the index Table
d has a meaningful limit of 360 degrees
where :
dev n is the name and number given to the device Calibrate Digital Width Gauge
n is a number in the range of capability of the
device Syntax
Calibrate digital Width gauge [n]
Start Conveyor
where :
Syntax n is a number given to the Gauge
Start Conveyor [n]
Gauge Width
where :
n is a number given to the Conveyor Syntax
Gauge Width [n]
Halt Conveyor
where :
Syntax n is a number given to the Gauge
Halt Conveyor [n]
If Width Gauge
where :
n is a number given to the Conveyor Syntax
If Width gauge [n] is between [d] and [D] then goto [a]
Move Conveyor
where :
Syntax n is a number given to the Gauge
Move Conveyor [n] [d]mm a is a label in the program, number or name
d is the decimal equivalent of a binary number
where :
n is a number given to the Conveyor and if is an analog gauge :
d is a distance, limited to 10000 mm d is the decimal equivalent of a binary number
D is also an equivalent binary number, greater than d
Start Index Table
the binary number is either 8 bit (255 max)or 12 bit
Syntax (4095 max) ~ see specification
Start index Table [n]
or if it is a digital gauge :
where : d is a value between 0.0 and 95.0mm
n is a number given to the index Table D is also a value between 0.0 and 95.0mm, greater
than d
Halt Index Table
Calibrate Digital Height Gauge
Syntax
Halt indexTable [n] Syntax
Calibrate digital Height gauge [n]
where :
n is a number given to the index Table where :
n is a number given to the Gauge

Gauge Height
Increment Index Table Syntax
Gauge Height [n]
Syntax
Increment index Table [n] through [d]degrees where :
n is a number given to the Gauge
where :

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 4


If Height Gauge
Syntax
Syntax Add Counter [n] into counter [n]
If Height gauge [n] is between [d] and [D] then goto [a]
where :
where : n is a number between 1 and 16
n is a number given to the Gauge
a is a label in the program, number or name Copy Counter
d is the decimal equivalent of a binary number
Syntax
and if is an analog gauge : Copy Counter [n] into counter [n]
d is the decimal equivalent of a binary number
D is also an equivalent binary number, greater than d where :
n is a number between 1 and 16
the binary number is either 8 bit (255 max)or 12 bit
(4095 max) ~ see specification If Counter
or if it is a digital gauge : Syntax
d is a value between 0.0 and 95.0mm If Counter [n] [ = / < / > ] [m] then goto [a]
D is also a value between 0.0 and 95.0mm, greater
than d where :
n is a number between 1 and 16
Dispense Part m is a counter value, unlimited
a is a label in the program, number or name
Syntax
Dispense Part [n] Set Flag
Where : Syntax
n is the number given to the parts dispenser Set Flag [n]

Wait Sensor where :


n is a number between 1 and 16
Syntax
Wait until Digital sensor [n] is [on/off]
Reset Flag
where :
Syntax
n is a number given to the sensor
Reset Flag [n]
If Digital Sensor where :
n is a number between 1 and 16
Syntax
If Digital sensor [n] is [on/off] then goto [a]
Copy Flag
where :
Syntax
n is a number given to the sensor
Copy Flag [n] into flag [n]
a is a label in the program, number or name
where :
If Analog Sensor n is a number between 1 and 16

Syntax
If analog Sensor [n] is between [d] and [D] then
goto [a]

where :
n is a number given to the sensor
a is a label in the program, number or name Wait Until Flag

Change Counter Syntax


Wait until Flag [n] is [set/reset]
Syntax
COunter [n] [ + / - / = ] [m] where :
n is a number between 1 and 16
where :
n is a number between 1 and 16 If Flag
m is a counter value, unlimited
Syntax
Add Counter If Flag [n] is [set/reset] then goto [a]

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 5


a is the title of a parallel Walli subroutine
where :
n is a number between 1 and 16 and :
a is a cell program label of up to eight characters has the effect of running the subroutine concurrently
with the Main cell program
Wait
End Parallel Subroutine
Syntax
WAit [n] seconds Syntax
End Parallel subroutine [a]
where :
n is an integer number where :
a is the title of a parallel Walli subroutine
For Loop
and :
Syntax has the effect of halting the subroutine, at whatever
FOr [A] = [n] to [m] point it is within it's execution cycle

where : note :
A is a single letter symbol, a to z if the title ascribed to [a] is "Main", the effect will be to
n is a decimal integer value, unlimited terminate the workcell program
m is also a decimal integer value, greater than m
Else
Next
Syntax
Syntax ELse ( part of a conditional IF statement )
NExt [A]
End If
where :
A is a single letter symbol, a to z Syntax
End If ( the end of a conditional IF statement )
and :
has the effect of incrementing the current value of [n],
assigned to [A], towards [m] in the for loop Remark (Comment)

Goto Syntax
REmark [text]
Syntax
GOto [a] where :
text is a text string to annotate the program
where :
a is a label in the program, number or name Display Message

Goto Subroutine Syntax


Display Message [text]
Syntax
Goto Subroutine [a] where :
text is an information string
where :
a is a label given to a subroutine in the program, Print (Information)
number or name
Syntax
Return from Subroutine PRint [text]

Syntax where :
Return from Subroutine text is an information string

note : Trace
will be the last line of a subroutine statement within
the program Syntax
TRace [on/off]
Start Parallel Subroutine
which :
Syntax turns the Trace facility on or off, presenting a separate
Start Parallel subroutine [a] display of programmed events, as they occur, to assist
in resolving timing conflicts which may arise from
where :

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 6


pseudo parallel processing of the Walli Main program
and its parallel subroutines. Syntax
Write to RS232 port [n] [data]
Start Log File
where :
Syntax n is a number given to the port
Start Log file to [text] row [n] data is an information exchange

where : Output to RS232 Port


text gives the access to a Speadsheet, e.g.
Excel|Sheet1 Syntax
n is a number for the column where the Log or Output to RS232 port [n] [file]
Log Feedback will be placed, and thereafter in
successive rows. where:
n is a number given to the port
Log file is a file of data collected from the program

Syntax Flush RS232 Port


LOg [Counter/Flag/Sensor/Gauge n] to column [m]
Syntax
where : Flush RS232 port [n]
n is a number for the software or hardware device
m is a number for the column in the Spreadsheet where :
where the data will be placed. n is a number given to the port

Note : If RS232 Port


The Date Stamp is sent to column 1,
the Time Stamp is sent to column 2, and Syntax
the data is sent to column m. If RS232 port [n] = [text] then goto [a]

Log Feedback where :


n is a number given to the port
Syntax text is the text string to equate to the message
Log [rob n] Feedback starting at column [m] received
a is a program label, name or number
where : ( optional )
rob n is the name and number given to the Robot
m is the left-hand column number in the
Spreadsheet where the feedback information
will be placed, as a block of 12 columns (say) in
successive rows.

Note :
The Date Stamp is sent to column 1,
the Time Stamp is sent to column 2, and
the data is sent to columns m to m+12, (say) giving
the content of the NOW and Robot XYZ windows.

Configure RS232 Port


Syntax
Configure RS232 port [n] [text]

where :
n is a number given to the port
text is the Settings Property defined for Visual Basic
communications, paramString , for which the
text string is :
“BBBB,P,D,S”
and :
BBBB is the baud rate, e.g. 9600
P is the parity, e.g. N for None
D is the number of data bits, e.g. 8
S is the number of stop bits, e.g. 1

to give the default values, explicitly.

Write to RS232 Port

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 7


APPENDIX 3a ~ Mill ISO Code Entry To demonstrate, run a graphic simulation of
DEMO_CM4, in single step mode.

G00 Rapid Positioning Point-to-Point Note that the problems of specifying the parameter
fields, in particular calculating the circular geometry, are
This is used when moving the cutter between the assisted by the Arc wizard, as selected from the Wizards
end of one cut and the start of the next. It should menu.
never be used when the cutter is in contact with
the work-piece. G03 Circular Interpolation Arc, Counter-
Example Clockwise

N G X Y Z I J F S T D M This takes the cutter in a circular arc of up to 90º


1 00 10.00 40.00 19.00 0.00 0.00 6 4 6.00 0 03 in a counter-clockwise direction from the last
defined position to the position defined by this
which is a typical first line of a program, taking the cutter coded line. The centre of the arc is defined by the
to a position poised above the workpiece surface, with I and J incremental parameters for the X and Y co-
the spindle turning clockwise as defined by the M03 code ordinates, respectively.
at the end of the line. See DEMO_CM2, line 1.
Example
G01 Linear Interpolation
N G X Y Z I J F S T D M
8 01 23.00
This takes the cutter along a straight line from the 9 03 40.00 70.00 30.00 0.00
last defined position to the position defined by this
coded line. Interpolation is confined to the X-Y which is taken from DEMO_CM2 and is the first quadrant
plane, and if Z is defined the move will precede the of the reverse circular cut at the greater depth of
interpolation. 23.00mm, centred at co-ordinates 40.00, 40.00 in X and
Y with a radius of 30.00mm.
Example
Note that the problems of specifying the parameter
N G X Y Z I J F S T D M
1 00 10.00 10.00 19.00 0.00 0.00 6 4 6.00 0 03
fields, in particular calculating the circular geometry, are
2 04 68 assisted by the Arc wizard, as selected from the Wizards
3 01 30.00 50.00 22.00
menu.

which combines into line 3, lines 3 and 4 of DEMO_CM1,


to move the cutter on an interpolated path between the X
G04 Dwell
and Y co-ordinates, (10.00, 10.00) to (30.00, 50.00),
This defines a wait period, the value of which is set
having first lowered the cutter into the workpiece.
in the D or Dwell field in seconds.
G02 Circular Interpolation Arc, Clockwise Example

This takes the cutter in a circular arc of up to 90º N G X Y Z I J F S T D M


2 04 68
in a clockwise direction from the last defined
position to the position defined by this coded line.
The centre of the arc is defined by the I and J which is a dwell introduced of unspecified period while
incremental parameters for the X and Y co- the workpiece is clamped, using the M68 code, before
ordinates, respectively. entering the tool into the work surface.

Example G05 End Subroutine


N G X Y Z I J F S T D M Used to mark the end of a section of code
1 00 10.00 40.00 19.00 0.00 0.00 6 4 6.00 0 03
2 04 68 intended to be obeyed as a subroutine and
3 01 22.00 declared by the corresponding Subroutine Start
4 02 40.00 10.00 30.00
5 61.21 18.79 0.00 30.00 code, G28.
6 70.00 40.00 21.21 21.21

When the G05 code is obeyed, the program


which is taken from DEMO_CM4, an elaboration of sequence is returned to the line following the call
DEMO_CM2, showing the first circular cut over a 90º arc to the subroutine.
centred at co-ordinates 40.00, 40.00mm in X and Y, with
a radius of 30.00 mm, from the initial position at 10.00, Example
40.00 to the end position 40.00, 10.00. The second
quadrant is cut in two 45º arcs, to illustrate the use of the N G X Y Z I J F S T D M
m 28 4
X,Y,I and J fields for more complex operations, which
involve trigonometry to calculate the entry values.
n 05

which is the body of subroutine number 4

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 8


G06 End Loop G65 Call Subroutine
Marks the end of a Loop Cycle sequence. The code used to call a subroutine from the main
part of a G and M code program.
Example
The code is accompanied by a statement in the X
N
1
G
00
X Y Z I
10.00 10.00 19.00 0.00
J
0.00
F
6
S
4
T
6.00
D
0
M
03
field, which is the numerical label or name of the
2 04 68 subroutine, as declared with the Subroutine Start
3
4
01
91
20.00 code.
5 73 5
6 01 20.00 40.00 1.00 Example
7 -20.00 -40.00 1.00
8 06
9 90 N G X Y Z I J F S T D M
10 04 69
11 00 0.00 0.00 0.00 c 65 4

04 68
which is a loop sequence to cut a diagonal slot to a End 04 02
m 28 4
depth of 10.00mm in 5 passes. The loop is started in
incremental mode, set by G91, with a G73 code at line 5
n 05
and ended at line 8 with a G06 code. See program
TRYLOOP.NCM.
which is the call to subroutine number 4
G28 Subroutine Start
G70 Imperial
The code which is entered as the first line of a
block intended as a subroutine to the main G and Sets the imperial inch as the unit for all
M code program. subsequent dimension entries.

The code is accompanied by a statement in the X Example


field, which is the subroutines numerical label or N G X Y Z I J F S T D M
name. n 70

Example G71 Metric


N G X Y Z I J F S T D M
m 28 4 Sets the milli-metre as the unit for all subsequent
dimension entries.
n 05
Example
which is the body of subroutine number 4
N G X Y Z I J F S T D M
n 71
G36 Face Milling Cycle
This is a non-standardised fixed cycle for G73 Loop Cycle
skimming the face of a blank. X and Y define the
area to be skimmed and the cut proceeds in the Marks the beginning of a sequence of commands
positive directions from the start point. Since the that will be repeated the number of times entered
tool has a defined diameter, the start point for the as an integer in the X column. Obeyed in the
cycle, as defined by the previous move, must incremental mode, typically allows a cutting
accommodate the half diameter with an inscribed sequence to be repeated at equal intervals along
position at the top left-hand corner of the area the X and Y axes.
defined.
Example
Example N G X Y Z I J F S T D M
1 00 10.00 10.00 19.00 0.00 0.00 6 4 6.00 0 03
N G X Y Z I J F S T D M 2 04 68
1 00 45.00 0.00 20.00 0.00 0.00 6 7 6.00 0 68 3 01 20.00
2 01 21.00 03 4 91
3 04 00 5 73 5
4 36 45.00 50.00 6 01 20.00 40.00 1.00
7 -20.00 -40.00 1.00
8 06
which is the start of DEMO_CM3, and demonstrates a 9 90
face milling cycle over the area bounded by 0.00, 0.00 10 04 69
11 00 0.00 0.00 0.00
and (45.00+3.00), 50.00 for X and Y, starting at 45.00, which is a loop sequence to cut a diagonal slot to a
0.00 and where 3.00 is the tool half diameter, all depth of 10.00mm in 5 passes. The loop is started in
dimensions in milli-metres. incremental mode, set by G91, with a G73 code at line 5
and ended at line 8 with a G06 code. See program
TRYLOOP.NCM.
G81 Drilling Cycle

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 9


This is the standardised fixed cycle for drilling n 90

holes.
G91 Incremental Programming
Example
After specifying incremental programming, each
N G X Y Z I J F S T D M subsequent X,Y and Z dimension entered is
n 00 20.00 20.00 19.00 6 7 6.00
n+1 01 20.00 interpreted as the distance from the last defined
n+2 81 5.00 position to the one currently defined in the coded
n+3 00 0.00 0.00 0.00
line. As a consequence, the dimensions may be
either positive or negative.
which drills a hole to the depth of 5mm from the surface
at Z = 20.00, at the co-ordinates 20.00, 20.00 in X and
Note: Both G90 and G91 are single entries on a line.
Y.
Example
G82 Drilling Cycle with Dwell
N G X Y Z I J F S T D M
This adds a wait period to improve the finish at the m 91

bottom of the cut.


G92 Shift Zero Datum
Example
This allows a program statement in the X,Y and Z
N G X Y Z I J F S T D M fields of an offset from the machine datum, or
11 00 20.00 20.00 21.00 6 7 6.00
12 82 16.00 1 home position, to some other zero datum which
13 00 0.00 0.00 0.00 05 will thereafter be the zero reference for the X,Y,Z
program co-ordinates for subsequent program
which drills a hole to the depth of 5mm with a dwell of execution.
one second, at the co-ordinates 20.00, 20.00 in X and Y,
and is a sequence borrowed from the last part of Note: The home position is returned to automatically, at
DEMO_CM3. the start of program execution.

G83 Peck Cycle with Dwell Example

N G X Y Z I J F S T D M
An intermittent feed cycle with a wait period to 1 00 10.00 10.00 19.00 0.00 0.00 6 4 6.00 0 03
improve the finish at the bottom of the cut. To 2 04 68
3 01 20.00
avoid the drill flute becoming clogged, the drilling is 4 91
interrupted after the penetration defined in the I 5 73 5
6 01 20.00 40.00 1.00
parameter field, defaulting to 3mm, and lifted clear 7 -20.00 -40.00 1.00
of the hole. The start position for the drilling 8 06
9 90
operation is determined by the previous moves. 10 92 20.00 10.00 20.00
11 91
12 73 5
Example 13 01 20.00 40.00 1.00
14 -20.00 -40.00 1.00
N G X Y Z I J F S T D M 15 06
n 00 20.00 20.00 21.00 6 7 6.00 16 90
n+1 83 16.00 2.00 17 04 69
n+2 00 0.00 0.00 0.00 18 00 0.00 0.00 0.00

which drills a hole to the depth of 5mm, at the co- which cuts two parallel slots to a depth of 10mm. The
ordinates 20.00, 20.00 in X and Y, using the Peck Cycle. use of the G92 code at line 10, is to ease the problem of
writing the incremental code for the loop cycles, which
G90 Absolute Programming have to be repeated statements in the code, at the two
positions and to make the code for repeated machine
After specifying absolute programming each operations more easily read. This is a trivial example but
subsequent X,Y and Z dimension entered is for a more complex operation, the accounting for change
interpreted as the co-ordinate from the zero within incremental statements would be more exacting.
datum. The default position for the zero datum is Otherwise, the G92 may be used to introduce proven
the Home position established by the control code copied from other programs, written for other
systems use of the limit switches on each axis, origins. See also G73 ~ Loop Cycle.
which is with the cutter fully retracted from the
work piece and with the table fully forward and
fully to the right. The cutter is then over, and its
cutting axis passes through, the rear left corner of
the vice. The zero datum may be altered by
applying offsets, using the manual controls or their
equivalents in the CNC Mill Jog dialogue box,
accessed from the Options menu, or by program
using the G92 code.

Example

N G X Y Z I J F S T D M

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 10


G38 Pause for Input G99 Engrave Text ( used with Configure
Engrave, G98)
This allows the Mill to act autonomously on logic
inputs, rather than through the Workcell control. The two codes are used as a pair, usually in
The X and Y fields are used for logic inputs going numerical order although this need not be the
low and going high, respectively, the entry being case, and they may be split, such as in a loop
the numbered input in the range 1 to 8. cycle to engrave at different places.

Example The dimensions of the text are given in the X and


Y fields of the G99 code statement but, if X is not
N G X Y Z I J F S T D M
n 39 4 specified, the spacing and character width will be
n+1 38 4 as defined in the font.

which uses the G38 and G39 codes as a pair, setting The Z field specifies the depth of cut, usually set to
output 4 high and pausing for input 4 to go low, using the 1mm, say, if a 2mm ball ended engraving tool is
same number 4 simply to be tidy in the logic used.
connections. Typically, this may be awaiting a robot
subroutine to remove the workpiece, turn it over and The text to be engraved is stated in the Remarks
replace it ready for machining on the reverse face. field, but if this is left blank, a dialogue box for the
text is presented at run time, which contains the
G39 Set output default text, if this has been specified by the G98
code, or it will be blank ready for a run time entry.
This allows the Mill to autonomously drive logic
outputs. The X and Y fields are again used, as for Engraving Example
inputs.
N G X Y Z I J F S T D M Remarks
n 00 25.00 25.00 19.00 Centre of text
Example n+1 01 20.00
n+2 98 1 1 0 normal 0°, font 1
N G X Y Z I J F S T D M n+3 99 9.00 1.00 fred , 9mm high
n 39 4 n+4 00 0.00 0.00 0.00
n+1 38 4

which is taken from the program, g_keyfob.ncm, and


which uses the G38 and G39 codes as a pair, setting specifies the text "fred", of maximum height 9.00 mm
output 4 high and pausing for input 4 to go low, using the engraved to a depth of 1mm. The width of text is not
same number 4 simply to be tidy in the logic specified in the X field, so the text will be engraved with a
connections. Typically, this may be awaiting a robot spacing and character width un-scaled from the font
subroutine to remove the workpiece, turn it over and description.
replace it ready for machining on the reverse face.
The default text in the Remarks field of the G98 code
G98 Configure Engrave ( used with has not been Specified, since the engraved text is
Engrave Text, G99 ) specified.

The two codes are used as a pair, usually in M00 Program Pause
numerical order although this need not be the
case, and they may be split, such as in a loop This halts the program waiting for the motor
cycle to engrave at different places. current to be switched off and then on again. It is
useful for tool changes and when setting the Z
The text is centred at the current position and may axis offset. While in the paused state, the Monitor
be orientated in the four 90° positions by LED, between the RJ45 connectors, will flash
specifying a number 1 to 4 in the X field of the more rapidly and the program continue may be
G98 code statement, and each orientation may be selected from Control Panel dialogue.
mirrored for reverse engraving using the numbers
5 to 8. Example

N G X Y Z I J F S T D M
One of 19 fonts may be selected by number in the 1 00 10.00 40.00 19.00 0.00 0.00 6 4 6.00 0 00
Y field. The fonts are comparable to those from
the normal choice in AutoSketch. which is a typical first line of a program, taking the
The maximum number of characters is specified in
cutter to a position poised above the workpiece
the Z field, with zero indicating an unlimited surface.
number.
See DEMO_CM2, line 1.
Default text may be specified in the Remarks field,
to appear in the dialogue box which is presented
at run time, if text for engraving is not stated in the M02 End of Program
Remarks field of the G99 code. If the default is
also left blank, a blank dialogue box will be End of program is an implied function which is
presented. obeyed automatically at the end of program
execution. However, the M02 code may be used in

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 11


program, either to truncate further execution, or to M08 Turns the air blast on to remove swarf.
force a stop during program development, say. It
should also be used to mark the end of the main Example
program, before the code statements for
subroutines. N G X Y Z I J F S T D M
4 36 45.00 50.00 08
5 00 15.1 20.00 20.00 09
Example
which incorporates the control of the air blast to remove
N G X Y Z I J F S T D M
n 04 02
swarf during the face milling cycle of program
DEMO_CM3.
which uses the G04 code, dwell for an unspecified
period, to accompany the End of Program statement. M09 Turns the air blast off.
Example
M03 Spindle Clock-Wise (CW)
N G X Y Z I J F S T D M
This switches on the cutter motor in the clock-wise 4 36 45.00 50.00 08
5 00 15.1 20.00 20.00 09
direction, the normal direction for cutting. The
speed of the motor should be specified in the
which incorporates the control of the air blast to remove
same line , otherwise a speed previously specified,
swarf during the face milling cycle of program
set manually or through the screen dialogue box
DEMO_CM3.
replica of the manual control panel, will be used.
Suitable speeds are in the range zero to 4500rpm
selected by number in the range 0- 9. M68 Clamp Work-Piece

Example This switches on the small electric motors to close


the index positioning device and jaw of the vice, in
N G X Y Z I J F S T D M sequence, to clamp the work-piece.
1 00 10.00 10.00 19.00 0.00 0.00 6 4 6.00 0 03

Example
which is the first line of DEMO_CM1, setting the spindle
direction with the M03 statement in the last field. N G X Y Z I J F S T D M
1 00 45.00 0.00 20.00 0.00 0.00 6 7 6.00 0 68

M04 Spindle Counter Clock-Wise (CCW)


which includes the command to clamp the workpiece in
the last field of the first line of a typical program.
This reverses the spindle motor direction from that
normally used for cutting.
M69 Unclamp Work-Piece
Example
This reverses the closing sequence, to return the
N G X Y Z I J F S T D M jaws and index positioning device to the fully open
n 04 pitch/S slow tap 04
position.
and might typically be used after tapping a previously Example
drilled hole, to extract the tap.
N G X Y Z I J F S T D M
n 04 69
M05 Spindle Off
which is a typical last line of a program, so that the
This stops the cutter motor.
workpiece may be removed.
Example

N G X Y Z I J F S T D M
7 04 05
8 00 0.00 0.00 0.00 69

which is the end of program DEMO_CM1.

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 12


APPENDIX 3b ~ Lathe ISO Code Entry Note : The problems of specifying the I and K parameter
fields, or in particular calculating the circular geometry,
are assisted by the Segment wizard, as selected from
G00 Rapid Positioning Point-to-Point the Wizards menu.
This is used when moving the cutting tool between
the end of one cutting sequence and the start of G03 Circular Interpolation Arc, Counter-
the next. It should never be used when the tool is Clockwise
in contact with the work-piece, except directly
away from the material, i.e. normally in the X or Z This takes the tool in a circular arc of up to 90º in a
direction. counter-clockwise direction from the last defined
position to the position defined by this coded line.
Example The centre of the arc is defined by the I and K
incremental parameters for the X and Z co-
N G X Z I K F S T D M Rem ordinates, respectively.
5 00 14.00 52.00 End of billet

As a single cut, it will produce a convex circular


which is a typical line early in a program, taking the tool
segment with the tool moving away from the
to a position just off the rim of the end face of the
chuck, but the bulk of material would have needed
workpiece billet, before starting an end-facing or stock
to be removed beforehand.
reducing sequence, with the spindle turning as defined
by a previous M03 code. See CYLINDER.ncl, line 5.
Example
G01 Linear Interpolation N G X Z I J F S T D M Rem
39 01 5.00 30.00 dome
40 03 0.00 35.00 -5.00 0.00
This takes the tool along a straight line from the
last defined position to the position defined by this which is taken from the DOME.ncl program, and shows
coded line. It is the usual code for cutting
the finishing cut to the semi-circular dome.
operations, having made a previous move to insert
the tool into the surface of the material to an
Note: Although this is a trivial example, the problems of
appropriate depth of cut. specifying the parameter fields I and K, or in particular
calculating the circular geometry, are assisted by the
Example Segment wizard, as selected from the Wizards menu.
N G X Z I K F S T D M Rem
n-1
n
01
01
-0.05
0.00
0.00
-50.00
1 insert
cut
G04 Dwell
n+1 01 0.00 50.00 return
This defines a wait period, the value of which is set
which is part of a sequence to remove stock material in the D or Dwell field in seconds.
from the work-piece. See SPOOL.ncl, lines 13 to 15,
which is the active part of a loop cycle. Example

G02 Circular Interpolation Arc, Clockwise N


1
G
04
X Z I K F S T D M
68
Rem

This takes the tool in a circular arc of up to 90º in a which is a dwell introduced of unspecified period while
clockwise direction from the last defined position to the chuck is closed onto the workpiece, using the M68
the position defined by this coded line. The centre code.
of the arc is defined by the I and K incremental
parameters for the X and Z co-ordinates, G05 End Subroutine
respectively.
Used to mark the end of a section of code
As a single cut, it will produce a concave circular
intended to be obeyed as a subroutine and
segment with the tool moving away from the
declared by the corresponding Subroutine Start
chuck, but the bulk of material would have needed
code, G28.
to be removed beforehand.
When the G05 code is obeyed, the program
Example
sequence is returned to the line following the call
N G X Z I K F S T D M Rem to the subroutine.
84 01 11.00 1.00
85 02 6.00 10.00 5.60 9.00 finish
86 01 6.00 12.50 waist Example
87 02 8.50 20.00 12.5 0.00
N G X Z I K F S T D M Rem
m 28 4
which is taken from the program PAWN.ncl in the Chess
sub-directory and shows the finishing cuts to the waist.
n 05

which is the body of subroutine number 4


G06 End Loop
Marks the end of a Loop Cycle sequence.

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 13


Note : The thread wizard relieves the programmer from
Example the need to interpret the standard thread definitions into
the parameter fields of the G33 code.
N G X Z I K F S T D M Rem
5 00 14.00 51.00
6 91 G65 Call Subroutine
7 73 4 face
8 01 0.00 -0.50 at
9 01 -14.00 0.00 49mm The code used to call a subroutine from the main
10
11
01
06
14.00 0.00 part of a G and M code program. The code is
accompanied by a statement in the X field, which
is the numerical label or name of the subroutine,
which is a loop sequence to face-off the end of a work-
as declared with the Subroutine Start code.
piece.
Example
G28 Subroutine Start
N G X Z I K F S T D M Rem
The code which is entered as the first line of a c 65 4
block intended as a subroutine to the main G and
04 68
M code program. End 04 02
m 28 4
The code is accompanied by a statement in the X
field, which is the subroutines numerical label or n 05
name.
which is the call to subroutine number 4
Example
G70 Imperial
N G X Z I K F S T D M Rem
m 28 4
Sets the imperial inch as the unit for all
n 05 subsequent dimension entries.

which is the body of subroutine number 4 Example

N G X Z I K F S T D M Rem
G33 Thread Cutting n 70

Three standard thread forms may be cut, for G71 Metric


Metric (M2 to M30), BSP (1/8 to 7/8) and BA (0 to
9). Sets the milli-metre as the unit for all subsequent
dimension entries.
The X field specifies the external radius of the
thread and the Z field its length. Example

The I field parameter is the depth of thread for the N G X Z I K F S T D M Rem


n 71
standard thread form. It may be found necessary
to make adjustments to this parameter for a fit to
the corresponding inner thread form of the nut or G73 Loop Cycle
similar internally threaded part.
Marks the beginning of a sequence of commands
The K field specifies the thread pitch. that will be repeated the number of times entered
as an integer in the X column. Obeyed in the
Threads are always cut in the negative Z direction, incremental mode, it typically defines a cutting
to give a right-hand-thread, and the tool change to sequence to remove a section of stock material
the 60 degree thread cutting tool, is done from the workpiece.
automatically, although it may be done as part of
the preparatory move to position, to start the Example
thread cutting.
N G X Z I K F S T D M Rem
5 00 14.00 51.00
Example 6 91
7 73 4 face
8 01 0.00 -0.50 at
N G X Z I K F S T D M Rem
9 01 -14.00 0.00 49mm
10 01 14.00 0.00
n-1 01 3.00 44.00 3
11 06
n 33 3.00 7.50 0.62 1.00 M6

which is a loop sequence to face-off the end of a work-


which is the code to cut a standard M6 thread form, piece.
7.5mm in length, starting at 44.00 mm and ending at
36.5mm, taken from the program to cut the Knight chess
piece.

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 14


G83 Peck Cycle with Dwell ( Boring ) G92 Shift Zero Datum
An intermittent feed cycle with a wait period to After specifying absolute programming each
improve the finish at the bottom of the cut, by subsequent X and Z dimension entered is
definition, but principally to avoid the build-up of interpreted as the co-ordinate from the zero datum
swarf, the boring is interrupted after the which is set in the alignment procedure for a tool
penetration defined in the I parameter field, position on the turning, or Z axis, and close to the
defaulting to 3mm, and withdrawing clear of the outer surface of the chuck jaws. The zero datum
hole. The start position on the Z axis for the may be altered by program using the G92 code so
drilling operation is determined by the previous that a subroutine, say, written in absolute code,
moves, but by definition this is an incremental may be recalled at a different start position along
cycle, so for the depth of boring to be as required, the Z axis.
the zero position for the tool must be set to the
end face. Alternatively, some known position for This code allows a program statement in the X
the tool must be set and the incremental and Z fields of an offset from the machine datum,
parameter in the Z field adjusted accordingly. to some other zero datum which will thereafter be
the zero reference for the X and Z absolute
Example program co-ordinates for program execution. The
feature is provided, but it is not a normal
N
n
G
00
X Z
20.00 21.00
I K F
6
S
7
T
4
D M Rem requirement in lathe operation.
n+1 83 5.00 2.00 00
n+2 00 0.00 0.00 Note: The aligned position is re-established
automatically, at the start of program execution.
which bores a hole to the depth of 5mm, interrupted
every 2mm, using the Peck Cycle and having set the tool Example
to the end face during the program pause.
N G X Z I K F S T D M Rem
n-1 90
G90 Absolute programming n 92 0.00 20.00
n+1 91
73 5
After specifying absolute programming each
subsequent X and Z dimension entered is 06

interpreted as the co-ordinate from the zero datum


which is set in the alignment procedure for a tool which shifts the datum to a position 20mm along the Z
position on the turning, or Z axis, and close to the axis, before entering a loop cycle, possibly copied from
outer surface of the chuck jaws. The zero datum another program. Offsets in the X dimension are unlikely
may be altered by program using the G92 code so to be used , except for cutting a complex groove, say, at
that a subroutine, say, written in absolute code, different diameters and different positions along the Z
may be recalled at a different start position along axis.
the Z axis.
G25 Profile Cutting
Example
Profile Cutting further extends the concept of
N G X Z I K F S T D M Rem
n 90 Canned Cycles and Wizards, used in CNC
programming, to give direct access to an
interpreter which generates code to complete the
G91 Incremental programming machining of a part from a definition of its outline.
After specifying incremental programming, each The machining is done in a series of continuous
subsequent X and Z dimension entered is tool passes which reduce the stock of the
interpreted as the distance from the last defined workpiece, working from end to end, rather than in
position to the one currently defined in the coded sections of length for specific detail, i.e. along the
line. As a consequence, the dimensions may be profile.
either positive or negative.
The outline definition is derived by the interpreter
Note: Both G90 and G91 are single entries on a line. from inspection of a G and M code program which
either has been directly written, and may include
Example sections derived by the use of Wizards, or has
N G X Z I K F S T D M Rem
been generated by post-processing a design
m 91 imported from a drawing or CAD Package.

The interpreter makes its own decisions for tool


changes, using the default Tool 1 where possible,
and making the "best attempt" at shapes which
cannot be achieved on the lathe, or could be
considered illegal.

The G25 code must be the first code statement of


a program, which is ensured automatically by the

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 15


import post-processors, but which is a simple edit M00 Program Pause
for written programs.
This halts the program waiting for the motor
When the program is run in the normal way, the current to be switched off and then on again. It is
interpreted code is not presented but held in useful for introducing manual tool changes or to
memory for a graphical simulation and then allow a build-up of swarf to be removed. While in
compiled for execution, if the lathe is on-line. The the paused state, the Monitor LED, between the
original code is retained within the edit window and RJ45 connectors, will flash more rapidly and the
on file. program continue may be selected from Control
Panel dialogue.
Example
Example
N G X Z I K F S T D M Rem
1 25
2 4 6 8 1 68 Start N G X Z I K F S T D M Rem
n-1 00 67.00 67.00 05
n 04 00
n 4 69 End

which is a typical move to the rest position for the tool


which shows the necessary edit to a typical program. changer, with the spindle motor turned off.

G38 Pause for Input M02 End of Program


This allows the Lathe to act autonomously on logic End of program is an implied function which is
inputs, rather than through the Workcell control. obeyed automatically at the end of program
The X and Z fields are used for logic inputs going execution. However, the M02 code may be used in
low and going high, respectively, the entry being program, either to truncate further execution, or to
the numbered input in the range 1 to 8. force a stop during program development, say. It
should also be used to mark the end of the main
Example program, before the code statements for
N G X Z I K F S T D M Rem
subroutines and will be inserted automatically if
n 39 4 the Segment wizard is used.
n+1 38 4

Example
which uses the G38 and G39 codes as a pair, setting
output 4 high and pausing for input 4 to go low, using the N G X Z I K F S T D M Rem
n 04 02
same number 4 simply to be tidy in the logic
connections. Typically, this may be awaiting a robot
subroutine to remove the workpiece after facing-off, turn which uses the G04 code, dwell for an unspecified
it round and replace it ready for the main machining period, to accompany the End of Program statement.
operation.
M03 Spindle On
G39 Set output
This switches on the Lathe spindle motor. The
This allows the Lathe to autonomously drive logic speed of the motor should be specified in the
outputs. The X and Z fields are again used, as for same line, otherwise the default speed, a speed
inputs. previously specified, set manually or through the
screen dialogue box replica of the manual control
Example panel, will be used.

N G X Z I K F S T D M Rem Suitable speeds are in the range zero to 2000rpm


n
n+1
39
38 4
4 selected by number in the range 0- 9.

Example
which uses the G38 and G39 codes as a pair, setting
output 4 high and pausing for input 4 to go low, using the N G X Z I K F S T D M Rem
same number 4 simply to be tidy in the logic 1 04 68
2 04 6 8 1 0 03
connections. Typically, this may be awaiting a robot
subroutine to remove the workpiece after facing-off, turn
it round and replace it ready for the main machining which are the first line of a typical program, turning the
operation. spindle on with the M03 statement in the last field.

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 16


M05 Spindle Off
This stops the Lathe spindle motor.

Example

N G X Z I K F S T D M Rem
41 00 67.00 67.00 05
42 04 69

which is the end of program DOME.ncl, leaving the tool


changer in the rest position, the spindle motor off and
the chuck open.

M68 Close Chuck


This selects a low speed, low power mode for the
lathe spindle motor, switches on two small electric
motors in the appropriate direction to enter the
chuck key, to close the jaws of the chuck, and
then withdraw the chuck key, in a sequence to
clamp the work-piece in the chuck.

Example

N G X Z I K F S T D M Rem
1 04 0 68

which includes the command to clamp the workpiece in


the first line of a typical program.

M69 Open Chuck


This reverses the closing sequence, to return the
chuck jaws to the fully open position.

Example

N G X Z I K F S T D M Rem
n 04 69

which is a typical last line of a program, so that the


workpiece may be removed.

WALLI for WINDOWS. Revision A USE of WALLI ~ APPENDICES page 17

You might also like