This invention relates generally to a wireless handheld device, such as a Palm (™), configured to download G-code instructions to a Computerized Numerical Control (CNC) machine. The software loaded on the handheld device can be edited or reconfigured directly on the handheld device, or from a PC and then transferred to the handheld device.
It is customary within the machine tool industry for CNC machines to take operating instructions using a means of communication known as G-code, which was originally communicated through hole-punched paper tape. For example, G0X1Z3 is a G-code command to make a CNC machine move a part using a 3D coordinate system having X, Y, and Z axes. G is the most important of the G-code letters, and is used to indicate movement or positions. G0 means move at the speed of the machine, where X and Z are positions and points. Thus, a CNC machine moves the part 1 inch on the X axis, 3 inches on the Z axis, at one times the predetermined rate of speed. The distances could be in millimeters, or in polar coordinates instead of rectangular. The letters M and S also have significance in G-code programs. M stands for Miscellaneous instruction. S stands for the Speed at which a CNC operation, such as cutting of a part, occurs.
It is now widely-accepted for CNC machines to have built-in RS-232 serial ports. However, storing and managing the G-code within the CNC machine has presented significant challenges at least partly because of the harsh industrial environment typically associated with CNC machines, including but not limited to dirt, dust, electrical noise, vibration, and fluctuations in temperature. Also, even modern CNC machines contain very limited amounts of RAM. Because CNC machines can last as long as 25-30 years, many legacy CNC machines which have their G-code instructions communicated via paper-tape devices or other rudimentary low-speed serial devices are still in production and are still profitable to operate. Consequently, a portable computing device which can quickly and consistently download G-code to CNC machines while emulating such low-speed communication devices in a harsh manufacturing environment is desired.
This invention has as its primary objective the downloading of G-code programs from a portable computing device such as a Palm (™) device to CNC machines through a legacy low-speed communication port in a harsh manufacturing environment. Using the present invention, users can define up to 1000 unique CNC machine profiles, and can store up to 1000 unique G-code programs within each machine profile. The profiles and G-code programs can be easily and safely stored using readily available one-touch synchronization software.
A further objective of the present invention is to load a copy-protected software module on the Palm device for managing user preferences, storing and editing G-code sequences, and communicating with the serial port of the CNC machine. Yet another objective is to provide a specialized cable which communicates between the serial port of the Palm device and the serial port of the CNC machine.
These and other objects and advantages of the invention will become readily apparent as the following description is read in conjunction with the accompanying drawings.
At the time of drafting of this application, many CNC machines contain an RS-232 serial port. However, unlike the rest of the computer industry, serial ports are still relatively new to the CNC industry. Only recently have CNC machines 112 been equipped with a self-contained serial port. As stated, the Input/Output (I/O) mechanism for sending instructions to be executed by many legacy CNC machines 112 is still punched paper tape. Thus, the present invention emulates the punch paper tape function with the handheld device 104, but the CNC machine 112 still thinks it's talking to a paper tape meter or a paper tape punch. Accordingly,
The user operates the handheld device 104 by tapping on the icons in
The user interface of the present invention takes into account the overall strategy that activities performed most often should be designed to require the least amount of user taps or stylus movements. Activities that users do a lot are implemented with one tap. The activities users do sometimes, implement maybe with a couple of taps. The activities users do very little, implement with 3 or 4 taps, Looking at
If the user taps on the icon 204, a menu such as that shown in
In
SEND Button 304: Tapping the Send button 304 transmits a CNC program to the CNC machine 112. During such a transmission, a user can tap the screen anywhere to abort the send.
RECEIVE Button 308: Tapping the Receive button 308 places the handheld device 104 into “receive” mode. Like with the Send button 304, a user can tap the screen anywhere to abort a transmission from the stationary PC 120. The receive module of the software module 128 program will time-out after 30 seconds if no data is received. However, one problem exists between the handheld device 104 and the stationary PC 120. ASCII, the typical text format used in most PCs, uses both Carriage Return (CR) and Line Feed (LF) characters to symbolize the end of a line of text. CNC machines, however, only use the LF portion and not the CR. Certain Operating Systems (O/S) also only use the LF portion. Thus, transmitting data from the stationary PC 120 to the handheld device 104 can require stripping of all CR portions. As shown in
As stated, it is necessary to load G-code sequences into the handheld device 104 prior to driving a CNC machine 112. During such a sending process, the O/S loaded onto the handheld device 104 uses a “null” character ‘Ø’ as an end-of-string terminator. Unfortunately, this “null” character ‘Ø’ is often used within G-code sequences to create ‘leader’ space on the paper tape. Accordingly, the software module associated with the Receive button 308 incorporates a proprietary receiving routine which strips out all “null” characters ‘Ø’ instead of the generic receiving routine typically packaged with most handheld devices 104.
After tapping the Receive button 308, the software module 128 posts a message stating “ready to receive data”. If the handheld device 104 does not receive data from the stationary PC 120 for 5 seconds, the handheld device 104 will time out.
SAVE Button 332: Tapping the Save button 332 will save the currently displayed CNC Program in a Memo application that is typically packaged with handheld devices. This save option allows G-code programs to be exported to the stationary PC 120 at synchronization time for saving or editing as PC files. The software module 128 must be given a name on the Prog. Name: line (344) before the CNC program can be saved. The saved program is linked to the currently active Machine Setup, but the same program or program name can be saved under multiple machine setups. Due to a file size limitation of the Memo application, only G-code programs 4,000 characters or less can be saved using the Memo application.
LOAD Button 336: Tapping the Load button 336 will display all G-code Memos in the memory storage area 140 saved under the currently active Machine Setup. A single CNC machine can have numerous G-code programs associated therewith. As shown in
DELETE Button 340: Tapping the Delete button 340 will remove the current program under the current machine settings from the memory storage area 140 only. For convenience and to protect the user from inadvertent erasing, the program and program name will stay in the “edit” area 352 (
IMPORT Button 324: Tapping the Import button 324 will load in to the edit area 352 a specially formatted file from the stationary PC 120. The imported file is created from a standard PC file using a proprietary TOPALM conversion software module 144 stored on the stationary PC 120. Within handheld devices that use the Palm Operating System (O/S), compiled executable applications are labeled .prc, as opposed to .exe or dat. The P stands for Palm and the RC for ResouCe. Handheld devices such as Palms are not like typical PCs. They do not have a hierarchical file system, and do not store data in individual files. Instead, information is stored as “records” in a table or database known as a .pdb (Palm DataBase) file. Accordingly, a typical PC application still cannot open or access these records within a database. The data in the handheld device 104 gets backed up and archived in the stationary PC 120, but is not in an editable form on the PC. Instead, the data is buried in an archived format unique to the handheld O/S. The data may be stored in a directory that the synchronization software designates, but the user cannot access it. Many customers appreciate the idea of taking this program out of the machine, walking in the office with the handheld device, sticking the handheld device in its cradle 116 connected to the stationary PC 120 and then being able to edit G code files in a non-CNC shop floor, air-conditioned office environment. To accommodate such users, the FROMPALM conversion software 148 (
EXPORT Button 320: Tapping the Export button 320 will save the currently displayed CNC Program in a specially formatted file that is saved on the stationary PC 120 at synchronization time. This file can later be converted to a standard PC file using the proprietary FROMPALM software conversion module 148 (
A potential incompatibility between the handheld device 104 and the stationary PC could exist. This incompatibility arises from the difference between Motorola (Palm) and Intel (PC) microprocessors, which have opposite bigEndian and littleEndian data storage conventions. The TOPALM and FROMPALM modules 144, 148 manage and convert these formats where necessary, allowing the transmission of live data back and forth yet preserving accessibility from either position.
Another problem is that the Palm “memo” program can only handle 4000 characters/file, while the present invention can handle memos or sequences up to 1,000,000 characters long. The TO-PALM and FROM-PALM modules 144, 148 overcome this limitation.
MACHINES Button 328: Tapping the Machines button 328 will display all CNC machine setups in the memory storage area 140. A user can tap on the Machine Setup area 348 to make it active. For safety the current program and program name will stay in the edit area 352, but activating a different setup will affect the communications settings immediately.
SETTINGS Button 312: Tapping the Settings button 312 will display the current communication settings which can be changed to match a specific CNC machine's configuration by tapping on specific items, as shown in
As shown in
The Memo program that typically comes with handheld devices takes the first line of the separate .pdb files and uses those first lines as identifiers or filenames. Most memos containing a G-code program contain a ‘%’ sign in their first line. Three such memo files are shown in
A user can transfer the data from one handheld device 104 to another by infrared or by a cable, and can also put a modem on the handheld device 104 and do a communication to a remote system via a PC. Thus, one doesn't necessarily need a cable 108 to synchronize with a stationary PC 120. G-code programs and CNC machine profiles can also be communicated from handheld to handheld wirelessly. Also, a single handheld device 104 can be connected to multiple stationary PCs 120 and multiple CNC machines 112, as shown in
If the batteries for the handheld device 104 are lost, if the handheld device 104 is dropped, broken, or replaced, the data on the handheld device 104 can be restored by synchronization with the stationary PC 120. Synchronization is as simple as dropping a handheld device 104 into the cradle 116 and initiating the synchronization software, either from the handheld device 104 or the stationary PC 120. The data within the handheld device 104 is then completely restored including all settings, parameters, and data.
The users of the present invention can use Macintosh computers, even though Macs have no serial port. The present invention could be adapted to Mac by connecting the Mac's Universal Serial Bus (USB) to the serial port 132 of the handheld device 104.
If the serial port of the handheld device 104 doesn't get any data it'll time out in 30 seconds and post a message apprising the user of this fact. The 30 seconds is based on power-saving considerations. Most users will know in 30 seconds whether the handheld device 104 is connected properly or not. A longer delay would needlessly drain the batteries within the handheld device 104.
As shown in
The cable 108 also shorts together pins 6, 8, and 20, which tells the CNC machine 112 that a cable is connected. Some CNC machines will refuse to operate unless pins 6, 8, and 20 are connected, because otherwise the CNC machine would not be aware that any cable or paper tape device is connected thereto.
The cable 108 requires no specialized tools and can be attached and detached using thumbscrews, because it may be attached and detached from several different CNC machines in the same day. The cable 108 can vary in length from 3 to 25 feet, depending on the baud rate of the CNC machine the cable 108 is attached to. Typical CNC machines operate between 1200 and 9600 baud.
Another problem solved by the present invention is that CNC machines typically have a female 25-pin serial port, while most laptop computers have coalesced around a 9-pin male serial port Thus, anyone trying to duplicate the features of the present invention using a laptop computer will have to overcome the CR/LF problem, the “null” (Ø) problem, and also the 9-pin v. 25-pin problem. This problem is aggravated by the fact that a 9-pin interface has no way to short together pins 6, 8, and 20 as is expected by many CNC machines. Thus, the present invention is better suited to a typical CNC shop floor environment than a laptop computer, although a further embodiment of the present invention exists in which the screen displays, communication, and file management are implemented within a typical laptop.
Another feature of the present invention is an “autosave” feature. The software module 128 automatically saves the buffer whenever anything else happens in the handheld device 104. Whether it goes to sleep, it's turned off or it switches to a different app, the software module 128 automatically saves all data from all applications without any user intervention. Most handheld applications auto-save data related to their own application, but do not accomplish such saving for all applications currently active in the handheld memory buffer 140. The software module 128 retains data even when shut off, and protects the user from accidentally erasing data including from applications unrelated to G-code management.
A user may attempt to delete a specific G-code program or memo by highlighting it and then touching “erase” or “delete”. A dialog window would then open which says “Do you want to delete file”? When a user hits “yes”, the G-code program or file appears to have been deleted. However, the above steps only deleted the file from the directory of programs, but not from the screen area. The G-code program or file can be deleted from the directory of a specific CNC machine profile, but later saved under the profile of another CNC machine. This is because the software module 128 ensures that nothing in the memory area buffer 140 of the handheld device 104 gets erased until the user over-writes the data with new data.
After a user has gone to the trouble of installing a G-code program to be run, the present invention reduces the risk of accidentally erasing or over-writing that G-code program. To not change the settings, a user could avoid changing a memo-name, then hit the “Save” button. Another way is to hit the “Home” button. A user can then shut off the handheld device 104. Upon turning it back on, all memory is stored the same way it was prior to shut-off. The handheld buttons are typically very small, while the user's fingers may be large and or dirty, or the user is not familiar with operating the stylus of the handheld device 104. Thus, on a shop floor, it is easy to hit one wrong button and lose something. The above feature makes it easier to recover from such a hitting of a wrong button.
G-code programs are usually not large, thus most CNC controllers do not have much memory. Also, a typical G-code program occupies approximately 2Kbytes of RAM. Thus, the 8MB memory capacity of the present invention is more than sufficient to meet the needs of CNC machines as they exist today and in the foreseeable future.
Some CNC machines can store multiple G-code files, but only in a crude, rudimentary format in which the files are listed by 4-digit numbers preceded by an ‘O’, which functions as a type of filename. This is known as an “O-number”, an example of which is shown in the editing area 608 of
All Palm devices are manufactured with a unique serial number. During the loading and assembly process of the present invention, the software module 128 is separately compiled to contain each separate unique serial number. At run-time (not compile-time), the software module 128 calls to the handheld O/S to obtain the unique serial number, and compares that with the serial number hard-coded within each separate copy of the software module 128. Thus, each version of the proprietary software module 128 is unique, so that copies are not transferable between separate handheld devices 104. Also during the loading and assembly process, the customer's name can be burned into a flash memory area (ROM) of each handheld device 104 prior to distribution. Doing so is useful for security and for preventing unauthorized copying.
The software module 128 can be stored either in RAM area 140 or ROM of the handheld device, and works directly with the handheld O/S. To draw items on the handheld display, to display a dialog box, to get a tap on the screen or other type of user input, to invoke the keyboard, to access the memory area 140, it is necessary to request resources through the handheld O/S. Such requests are made by accessing the O/S Application Program Interfaces (APIs). The software module 128, however, goes around the handheld O/S to manage the serial port of the handheld device 104. This is because the handheld O/S APIs for managing the serial port are not adequate for the reasons described earlier (CR/LF, ‘null’, etc). Instead, the software module 128 writes directly to the serial port.
As shown in
As shown in
It is anticipated that various changes may be made in the arrangement and operation of the system of the present invention without departing from the spirit and scope of the invention, as defined by the following claims.
This application claims priority to U.S. application Ser. No. 10/410,356, filed on Apr. 10, 2003, which in turn claims priority to U.S. Provisional Application No. 60/371,681, filed on Apr. 12, 2002.
Number | Date | Country | |
---|---|---|---|
60371681 | Apr 2002 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10410356 | Apr 2003 | US |
Child | 11725233 | Mar 2007 | US |