DATE: 23 June 1994 PAGE: 1 OF 1 FAX #:casa16 TO: Casa Modular Systems FROM: Solid State Equipment Ltd PO Box 30 089 Lower Hutt NEW ZEALAND FAX: 568 5161 FAX: 566 0571 ATTN: Allan REF 2D N/C Further to our quote of 1 June and my notes that you received yesterday. Enhancements as discussed: Data I/O as in original quote. 4 Quadrature signals from X and Y scales. 2 Reference mark inputs. 2 Modulated squarewave to drive servo motor switching power amplifier. 8 bits GP I/O as in original quote. 6 Local control panel pushbuttons. 1 Audible alarm. 1 Quill up signal. Provision of an extra 8 bits of I/O with signal conditioning for: 1 cutter coolant solenoid driver (24V 1A coil). 1 Spindle motor run (24V 1A contactor coil). 1 Spindle chopper input (for latter expansion). 2 Current limit inputs from the servo amplifiers. 1 Air pressure OK pressure switch input. 2 Spare. Provision of 4 line 80 character LCD with back light and software, to run in parallel with the PC. This will enable the machine to be run without the PC but programming functions will not be provided for. Software as detailed in Stephen's spec follows CASA'S TWO-DIMENSIONAL MILLING MACHINE - PRELIMINARY SPEC STEPHEN JONES 10 JUN 94 File: SPEC.TXT THE SPECIFICATION 1. CO-ORDINATE SYSTEM Instead of UP and DOWN, we will usually use the terms FAR and NEAR. Generally, UP is equivalent to FAR, and DOWN is equivalent to NEAR. Positions are given as a co-ordinate pair, x y. The origin, at 0 0 is the LEFT-MOST, NEAR-MOST (= bottom) corner. Positive offsets refer to things further to the RIGHT or more FAR respectively. 2. PROGRAMS What is to be milled will be defined by a program, which is a sequence of instructions. Here is a list of the instructions, in different categories: 2.1. Flow of control REPEAT n Repeat the instructions between REPEAT and NEXT n times NEXT End of a repeat structure PROC xxx Specify a named subroutine. The instructions following PROC up until the next PROC are the instructions within this procedure. All PROC's must appear AFTER the main part of the program. CALL xxx Call a named subroutine. END The end of the program or the end of a PROC procedure. An example program which mills a pattern like this: ie 4 rectangular holes __ __ __ | | | | | | ~~ ~~ ~~ __ | | ~~ GOTO 1000 1000 ;The bottom left of the top left square REPEAT 3 CALL SQUARE MOVE 1000 0 NEXT MOVE -2000 -1000 CALL SQUARE END PROC SQUARE ;Machine a square with 600 mm edges TOP 600 ;this procedure is equivalent to RECT 600 -600 RIGHT -600 BOTTOM -600 LEFT 600 ;Back to original position END 2.2. Settings - every program must start by specifying the value of each setting in this group. DIAM n Set diameter of cutting tool for the purposes of adjusting for inside and outside surfaces. INSIDE We are cutting the inside of surfaces. The tool will be displaced inwards by the DIAM setting divided by 2. OUTSIDE We are cutting the outsides of surfaces. The tool will be displaced outwards by the DIAM setting divided by 2. CLIMB Sets climb milling. NORMAL Sets normal milling. 2.3. More settings - these settings have default values and it is not necessary to specify the value if this option is not going to be used. SHRINKAGE n Sets the shrinkage percentage of the material. The default is 0, which means no shrinkage. FEED n Set the feed rate in mm/sec - this is the speed at which the table moves when cutting. The default for this is a system parameter, and a program always starts with the system default until it gets a FEED instruction. RAPID n Set the speed of movement when not cutting in metres/sec. The default for this is a system parameter. 2.4. Hardware control commands - these are OFF by default. MOTOR ON Turn spindle motor on MOTOR OFF Turn spindle motor off COOLANT ON Turn coolant solenoid on COOLANT OFF Turn coolant solenoid off 2.5. Positioning of tool. Note that the tool itself does not necessarily move to this position. The actual position of the tool depends on the machining command used. However, when the program is paused with the PAUSE command, or if the program ends, the tool will be moved to the specified position. GOTO x y Move absolute: Change the current position to specified absolute position. MOVE dx dy Move relative: Move the current position by the specified distance. The MOVE command is useful in conjunction with REPEAT loops. 2.6. Milling. Before a sequence of milling instructions that describe a shape, the operator is asked to lower the quill and press the CONTINUE button. Afterwards, the operator is asked to raise the drill again. HOLE Drill a hole at the current position. Because the operator has to lower and raise the drill, this will be equivalent to: PROMPT Please drill here Note that both PROMPT and HOLE will physically move the drill to the current position. LEFT l Machine a left-hand edge starting from current position and moving 'near' by l, (or down if l is negative). Current position moves 'far' by l. RIGHT l Machine a right-hand edge starting from current position and moving 'far' by l, (or down if l is negative). Current position moves 'far' by l. FAR l Machine a top edge starting from current position and moving right by l, (or left if l is negative). Current position moves right by l. NEAR l Machine a bottom edge starting from current position and moving right by l, (or left if l is negative). Current position moves right by l. LEDGE dx dy Angled left edge: This machines an edge from the current position to a location at (dx,dy) offset from the current position. If you are machining an OUTSIDE edge, for example, then the drill is displaced to the left of the line; that is, if you are standing at the current position looking towards the end of the line, the drill will be displaced to YOUR LEFT. This does not always mean really left. Because of this, there is no need for ANEAR and AFAR commands. The current position is moved to the end of the line. REDGE dx dy Angled right edge: The same as ALEFT, but machines a right edge, so the drill is always displaced in the opposite direction. SLOT dx dy Machine a slot from the current position to a new position at offset (dx,dy) from current position. This differs from an edge in that there is no offset to account for the tool width. Current position moves by (dx,dy). RECT w h Machine a rectangle of width w and height h. Current position will be the bottom left corner of this rectangle if width and height are both positive. Current position does not change. Equivalent to: LEFT h TOP w RIGHT -h BOTTOM -w ARC r s e Machine an arc of radius r centered at the current position starting from angle s and ending at angle e. Current position does not change. LCURVE dx dy r Machine a curved left edge from current position to new location at offset (dx,dy) from current position. If r is positive, then it gives a convex curve (i.e. curves to your left if you are looking towards the end of the curve). If r is negative, then it is concave, i.e. it curves in the opposite direction. Current position moves to the end of the curve, i.e. original position + (dx,dy) RCURVE dx dy r Machine a curved right edge from current position to new location at offset (dx,dy) from current position. If r is positive, then it gives a convex curve (i.e. curves to your right if you are looking towards the end of the curve). If r is negative, then it is concave, i.e. it curves in the opposite direction. Current position moves to the end of the curve, i.e. original position + (dx,dy) CIRCLE r Machine a circle centered at the current position of radius r. Equivalent to ARC r 0 360. Current position does not change. RING r n a Go to n points around a circle centered at the current position, and at each point, prompt the user to drill in the same manner as in the HOLE command. Note: The order in which machining commands are actually given will usually make no difference, because the program will automatically do them in the most efficient order. So, for example, if you mill a shape using NORMAL milling, and then call exactly the same procedure with CLIMB milling selected, then the whole thing will be repeated, but in the reverse order. 2.7. Talking to user. This is mostly used to instruct the operator to change raise or lower the tool. PROMPT Display the specified text on the screen, and then waits for the operator to press the CONTINUE button. 3. FRONT PANEL BUTTONS The buttons are as follows: - RESET Reset the system before a program can begin - START Begin program execution (once we have reset) - PAUSE Pause the executed program no matter where it is - JOG Continue executing the program while the button is held down OR: If you want it to operate differently from this, please specify, otherwise it won't happen - CRASH STOP Emergency stop - immediately pause program and stop motor. It may not be possible to resume. 4. PREVIEW UTILITY. A preview utility will be available to get a graphics representation of a program on screen before milling takes place. It will allow zooming to see fine detail, and will show exact positions by means of an X and Y axis labelled with distance from the origin point. The program will have the option of plotting the preview slowly showing tool position if you wish to see exactly what the mill will be doing. 5. TEXT EDITOR. The program will contain a text editor which gives pop-up help on the CNC programming language. 6. PROMPTS DISPLAY. The following things will be displayed in 10-20mm text on the PC screen, and duplicated on the LCD. It is not practical to have everything flashing, because it would be impossible to read. 1. X = _____ Y = _____ 2. The instruction that is currently being executed [this will take up 1 line], or "Idle" if no program is running. 3. Any error messages that occur. 7. ERRORS Errors will be triggered by certain digital inputs. These will be displayed on the prompts display. The unit switched into pause mode. 8. MISCELLANEOUS 8.1. The memory will be non-volatile, so the program is kept when the power goes down. The fact that the memory is non-volatile does not limit the size of the programs which can be stored. 8.2. A brief investigation will be conducted into the feasibility of translating CAD/CAM System files into CNC programs. This specification does not include writing a translation utility. Our total price and delivery for this work is: Hardware: $ 4 520.00 + GST Software: $19 200.00 + GST Delivery H/W 6 weeks ARO S/W 6 weeks ARO for some basic functionality 6 months to finish to the above spec. Regards Neil Poletti Managing Director