Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A HUMAN-MACHINE INTERFACE (HMI) AND METHOD OF OPERATING THE SAME
Document Type and Number:
WIPO Patent Application WO/2009/036464
Kind Code:
A3
Abstract:
A human-machine-interface (HMI) and method for use with a computer numerical control (CNC) system and the like. In one embodiment, the method receives a command line of a CNC program, performs a syntax check on the command line, and performs a semantics check on the command line, all while the HMI is in an edit mode. Any errors discovered during these checks could be visually presented to the user through one of a variety of techniques, such as by identifying the errors with different font types, colors, etc. Accordingly, the HMI can identify syntactical and/or semantical errors without having to actually execute a CNC program or run a simulation routine.

Inventors:
MANJUNATHAIAH JAIRAM (US)
ZEKKANI KARIM (US)
Application Number:
PCT/US2008/076461
Publication Date:
May 28, 2009
Filing Date:
September 15, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INFIMATIC LLC (US)
MANJUNATHAIAH JAIRAM (US)
ZEKKANI KARIM (US)
International Classes:
G06F3/02
Foreign References:
US7024666B12006-04-04
US5453933A1995-09-26
Other References:
YADONG LIU ET AL.: "An intelligent NC program processor for CNC system of machine tool", ROBOTICS AND COMPUTER-INTEGRATED MANUFACTURING., vol. 23, April 2007 (2007-04-01), pages 160 - 169, XP005821823, DOI: doi:10.1016/j.rcim.2006.04.003
ZHIMING G. ET AL.: "Development of PC-based adaptive CNC control system", SIMTECH TECHNICAL REPORT., 2001
Attorney, Agent or Firm:
ADAMS, Michael C. et al. (PO Box 4390Troy, Michigan, US)
Download PDF:
Claims:

Claims ~

1. A method of operating a human-machine interface (HMI) for use with a computer numerical control (CNC) system, comprising the steps of: (a) receiving one or more command line(s) of a CNC program;

(b) performing a syntax check on the command line(s); and

(c) performing a semantics check on the command line(s).

2. The method of claim 1, wherein step (a) further comprises automatically receiving one or more command line(s) of the CNC program by opening an existing program file with a text editor that is part of the HMI.

3. The method of claim 1, wherein step (a) further comprises manually receiving one or more command line(s) of the CNC program by registering a new command line entry with a text editor that is part of the HMI.

4. The method of claim 1, wherein step (b) further comprises performing a syntax check on the command line(s) by using a tokenizer to convert the individual elements of the command line into tokens having a numerical value and evaluating the tokens against a set of syntactical rules.

5. The method of claim 4, wherein step (c) further comprises performing a semantics check on the command line(s) by using a parser to evaluate the tokens against a set of semantical rules.

6. The method of claim 1 , wherein at least one of steps (b) or (c) is performed while the HMI is in an edit mode.

7. The method of claim 1, further comprising the step of: providing output to a user that displays the results of at least one of steps (b) or

(c), wherein the output can be used to edit the command line.

8. The method of claim 7, wherein step (d) further comprises providing output to the user that includes command line elements having at least one of the following features to identify syntax and/or semantics errors: different colors, different types of fonts, different size fonts, different margins, or comments.

9. The method of claim 1, wherein step (c) further comprises re -ordering one or more command line element(s) and presenting the re -ordered command line to the user.

10. A method of operating a human-machine interface (HMI) for use with a computer numerical control (CNC) system, comprising the steps of:

(a) receiving one or more command line(s) of a CNC program;

(b) while the HMI is in an edit mode, performing at least one of a syntax check or a semantics check on the command line(s); and

(c) while the HMI is still in the edit mode, providing output to a user that is representative of the results of the at least one of the syntax or semantics check.

Description:

A HUMAN-MACHINE INTERFACE (HMD AND METHOD OF OPERATING THE SAME

Reference to Related Applications

This application claims the benefit of U.S. Provisional Serial No. 60/972,744 filed on September 14, 2007.

Field of the Invention The present invention relates generally to a human-machine interface (HMI) and, more particularly, to an HMI that may be used with a control unit for a computer numerical control (CNC) system.

Background Various types of user interfaces have been used in mechanical, electrical, computer and industrial applications, including human-machine interfaces (HMIs).

The term 'human-machine interface (HMI)' broadly refers to any user interface that enables a human to interact with a machine through the exchange of information, whether it be input, output or both. Examples of HMIs are commonly found in industrial installations and other equipment, and may enable a user to provide the machinery with instructions and/or enable the machinery to provide the user with feedback, to cite a few possibilities.

Summary of Invention

According to one aspect, there is provided a method of operating a human- machine interface (HMI) for use with a computer numerical control (CNC) system. The method may comprise the steps of: (a) receiving one or more command line(s) of a CNC program; (b) performing a syntax check on the command line(s); and (c) performing a semantics check on the command line(s).

According to another aspect, there is provided a method of operating a human- machine interface (HMI) for use with a computer numerical control (CNC) system. The method may comprise the steps of: (a) receiving one or more command line(s) of a CNC program; (b) while the HMI is in an edit mode, performing at least one of a syntax check or a semantics check on the command line(s); and (c) while the HMI is still in the edit mode, providing output to a user that is representative of the results of at least one of the two checks.

Description of the Drawings - A preferred exemplary embodiment of the invention will hereinafter be described in conjunction with the appended drawings, wherein like designations denote like elements, and wherein:

FIG. 1 is a schematic view of an exemplary CNC system having, among other components, an exemplary control unit;

FIG. 2 is an enlarged view of the control unit of FIG. 1;

FIGS. 3A-B are screenshots illustrating certain aspects of an exemplary HMI that may be used with the control unit of FIG. 1 ; and

FIG. 4 is a flowchart illustrating an exemplary method for operating an HMI that may be used with the control unit of FIG. 1.

Description of Preferred Embodiment -

The HMI and method described herein generally relate to an interface that may be used with a CNC system. The HMI may include one or more editing tools, such as a text editor. Generally speaking, CNC systems can be used to drive and control various types of machine tools used in a wide range of industries. Some of these industries include, but are certainly not limited to, the automotive, aerospace, robotics, farm and construction equipment, food and beverage, semiconductor, wood working, metal fabrication,

pharmaceutical, chemical, packaging, plastics, printing and paper, and textile industries. One of the more common applications of CNC systems is to drive a machine tool, typically an electrically, pneumatically and/or hydraulically powered machine, in order to fabricate a desired component out of metal. It should be appreciated that while the present method is described below in the context of a CNC machine, it could also be used in one of a number of other applications known to those skilled in the art, including numerical control (NC) and other non-CNC applications.

With reference to FIG. 1, there is shown an example of a CNC system 10 that includes a main cabinet 14, a pneumatics input/output (I/O) 16, a head I/O 18, a tool changer I/O 20, a chiller I/O 22, and a control unit 24 that is capable of utilizing the present method. These and other components of CNC system 10 can be electronically coupled to one another via any suitable wired and/or wireless communication links, including an Ethernet link 30. Furthermore, the various components of CNC system 10 may have a variety of electrical needs, thus one or more electrical sources 32 (24 VDC), 34 (480 VDC) may be provided at different voltage and/or amperage levels. A distributed backplane 36, which is generally a circuit board containing sockets into which other circuit boards and electrical components can be plugged, is preferably coupled to main cabinet 14, pneumatics input/output (I/O) air valves 16, and head component 18. It should be pointed out that the structure and operation of a suitable main cabinet 14, pneumatics input/output (I/O) 16, head I/O 18, tool changer I/O 20, and chiller I/O 22 are generally known in the art, thus a detailed description of these devices has been omitted. Because an exemplary embodiment of the present method is described in the context of control unit 24 and its accompanying HMI, the description now turns to that device.

Control unit 24 is preferably an electronic device that provides the user with interactive means, such as an HMI or graphical user interface (GUI), for communicating with CNC system 10. According to this particular embodiment, control unit 24 is a pendant-type unit that is both mechanically and electronically coupled to main cabinet 14, however, other configurations are also possible. Turning now to FIG. 2, there is shown an enlarged view of an exemplary control unit 24 that is capable of utilizing the HMI and

method described below. The control unit generally includes a screen 40 for enabling the HMI, a row of select buttons 42 for choosing options currently on the screen, a row of modal buttons 44 for changing the mode of operation, several rows of one -touch buttons 46 that perform specific often-used tasks, a standard keyboard 48, a mouse or other pointing device 50, an emergency stop button 52 for halting operation of the machine, a start button 54, a communications port 56, and a variety of other buttons, knobs, controls, etc. for controlling different aspects of CNC system 10. In addition, control unit 24 may also include one or more central processing units (CPUs), memory storage devices, programmable logic controllers (PLCs), additional communications ports (RS 232, Ethernet, USB, etc.), and any other suitable components known and used in the art. The present method is primarily directed to an HMI having a text editor, thus, an in-depth description of the other buttons, knobs, controls, etc. has been omitted. It should be recognized that while the HMI and present method are described below in the context of control unit 24 and the text editor shown in the drawings, they could just as easily be used with any one of a variety of other control units, text editors, interfaces, etc. and are not limited to the specific, exemplary embodiment shown here.

According to an exemplary embodiment, control unit 24 provides the operator with an HMI that includes one or more executable programs, including an executable program that has a collection of one or more individual modules. One of those modules may be a text editor that enables a user to review, add, delete or change information in a CNC program (examples of screen shots from a suitable text editor are provided in FIGS. 3A-B and are described below). Another executable program that can reside at control unit 24 is a CAD or CAD/CAM program which enables a user to create precision drawings or generate numerical information for a particular part, product, system, etc. It should be appreciated that the control unit described herein is only exemplary and that the present method and HMI could be used with one of a number of different control units and other devices and is not limited to this specific example.

Referring to FIGS. 3A-B and 4, there are shown exemplary screen shots from screen 40 and a flowchart illustrating some of the steps of an embodiment 100 of the

present method. The exemplary HMI described herein provides a user with several different manual methods or techniques for entering information, including a pointer- based method where the user can use mouse 50 to make selections on screen 40, a button- based method where the user can engage one or more of buttons 42-46 to make their selections, and a command-based method where the user textually enters commands via keyboard 48 on a command line similar to a DOS prompt. The present method is generally utilized in connection with this third method; the command-based method. Although the following description involves the use of a text editor that is part of an HMI of a CNC system, it should be appreciated that one could use the present method on a PC or other device that is outside of the CNC system to create and/or edit a program, and then import the program to the CNC system for execution, for example.

Beginning with step 102, the HMI receives one or more command line(s) from one of a number of sources. A command line may include any combination of command line elements or tokens 148 — for example, line numbers 150, G-codes 152, programming comments 154, M-codes 156, parameters 160, etc. — where the elements are arranged in a very specific format. When decoded, each command line can enable CNC system 10 to execute a certain machine motion, to perform a certain input/output function, or to perform some other suitable function known in the art. In one embodiment, the command line is manually received from a user that types it into the HMI via keyboard 48 or by some other means, and registers the command line by hitting an 'enter' or other button. In another embodiment, the command line is automatically received or extracted from an existing CNC program that was already written by a CNC operator, a computer-aided manufacturing (CAM) application, or some other source. In that embodiment, opening an existing file with a text editor or other tool of an HMI can be the catalyst for automatically receiving the command line. Once a particular command line has been identified for evaluation, it can then be checked for both syntax and semantics by an interpreter or other piece of software.

In step 104, the HMI determines whether or not the command line has valid syntax; i.e. — whether or not the command line conforms with syntactical and other

requirements of the language in which it is written. Some examples of suitable electronic processing devices that may be used with an interpreter include microcontrollers, microprocessors, CPUs, and application specific integrated circuits (ASICs), to name but a few. In one embodiment, step 104 utilizes a parser or parsing program to break the command line into its constituent parts or elements and then evaluates those elements with an interpreter against a set of syntactical rules. If the command line is invalid for some reason, such as for missing punctuation, a misspelled element or an unrecognized G-code, then step 106 can output an error message and provide the user with an opportunity to make appropriate changes to the command line.

In one exemplary embodiment, step 104 uses a tokenizer to change the command line from a textual format to a numerical format and, during the process, checks the command line for syntactical errors. For instance, consider the example where the command line "Xl G90" is received in step 102. The command line element Xl may be tokenized so that TokenID(l)=100 and TokenValue(l)=l, as appreciated by those skilled in the art. If the user accidentally enters XXl instead of Xl, then the syntax check would realize that it does not have a pre-assigned TokenID for XX and would thus output a syntax error, step 106. Tools other than tokenizers could be used, of course, as this is only one example.

Steps 104 and/or 106 may be performed while the HMI is still in an 'edit mode' so that it does not have to actually execute or run the CNC program. Stated differently, the HMI can perform these steps without control unit 24 being in an automatic mode where it physically cycles or moves the CNC machine, and without the control unit being in a simulation mode where the entire CNC program is executed. As soon as a command line is deemed invalid it may be flagged without having to perform an extensive dry-run or simulated execution of the CNC program. Skilled artisans will appreciate that this is different than most HMIs, where an entire CNC program must be loaded into a control unit for live or simulated execution. In those situations, if a syntax error is located towards the end of the program, then the error may not be detected until a signification portion of the program has already been executed; a process that may require significant

time and processing resources. Furthermore, if there are multiple syntax errors the control unit must sequentially cycle through the first errors before addressing those errors found later in the code. This type of sequential operation may not allow an operator to check a particular command line or block of lines that are of interest, without having to evaluate the entire program. The HMI described here, however, may evaluate command lines one-at-a-time and provide real-time feedback without actually executing the CNC program or cycling through the entire program. The precise way in which step 104 addresses command lines may depend on the manner in which the CNC program was provided to control unit 24.

For example, if an entire CNC program is created by a CAD program (either external or internal to control unit 24) and then saved in the control unit memory, then automatic syntactical review of the program can occur. A user can open the CNC program file of interest with a text editor and, in response to opening this file, the HMI may automatically perform a syntax and/or semantics evaluation with or without instructions from the user. It should be recognized that this evaluation is being performed without the HMI being in an automatic or execution mode. It is also possible for the user to simply run or execute the CNC program without opening it in an edit mode. Alternatively, if the user is inputting command lines manually, as opposed to automatically acquiring them from an imported CNC program, then syntactical review of the program could occur each time the user hits 'enter' or some other button indicating that the command line is finished. In this example, the user does not have to wait for the entire CNC program to be written and executed before finding out if there are any errors; instead, they could receive real-time feedback as to the status of the newly entered command line. In another embodiment, it may be possible for control unit 24 to perform a syntax and/or semantics test of the CNC program as soon as it is transferred to the control unit, even if it is not opened by a text editor. These are, of course, only some of the possibilities, as steps 104 and/or 106 could be performed in a variety of different ways.

In one embodiment, step 104 provides an operator with the ability to evaluate and correct a syntactical error as soon as one is detected. For example, if a syntax error was detected in the command line that is shown in FIG. 3A and is numbered N4, then the operator may be given an opportunity to correct that error before method 100 continues on to command line N5. In a different embodiment, method 100 could run through the entire CNC program and then provide an output at the end that identifies all of the errors found in the CNC program; again, this could be performed without control unit 24 being in an automatic or execution mode. In this example, the operator would be given an opportunity to remedy all of the errors at once, instead of addressing them one at a time when they come up. The preceding examples only represent two possibilities, as steps 104 and/or 106 could be implemented in a variety of other ways as well. For example, when step 104 detects an error, the method could prompt the operator with the HMI and ask them if they would like to address the error now or wait until a later time.

Once a syntactically correct command line is received by the present method, it can be checked to make sure that it includes valid semantics, as indicated in step 110. The term "semantics" broadly pertains to all of the parameters, values, inter-relationships, etc. that make up the logic of the command line. As with the aforementioned step, the command line may be checked for acceptable semantics by utilizing a parser to divide the command line into individual elements and then to examine them against a collection of rules and relationships. For instance, in FIG. 3A there is shown an exemplary text editor that can be part of the HMI. Line N13 is labeled "illegal G-Code" and can be displayed in red font because step 110 has detected an incompatible relationship between G-code G52 and G92 which require common resources and therefore cannot be executed concurrently. In this example, the parser has identified an illegal or unacceptable relationship between two G-codes in the same command line; invalid semantics.

Similar techniques can be used to check the semantical validity of the values entered in the command line. As an example, if a G-code in a command line instructs the CNC machine to rotate a spindle at -100 RPM, then step 110 may detect a semantical error because rotational velocities cannot be expressed as negative numbers. Large

collections of rules and relationships can be used with the parser or other tools in order to enable the present method to check for a variety of semantics. These rule and relationship collections may be stored in one of a variety of data structures located at control unit 24, at main cabinet 14, or at some other location that is accessible to the HMI. Generally speaking, the syntax check in step 104 may look for errors in the form of the command line, while the semantics check in step 110 may look for errors in the substance of the command line. If the command line is invalid, step 106 can output an error message and provide the user with an opportunity to make the appropriate changes to the command line. The operator can make changes at that time or at a later time, as explained above. Of course, the error message would be different from when the command line fails the syntax check. It should be appreciated that steps 110 and/or 106 may be performed without the HMI being in an automatic or execution mode, as explained above.

According to one exemplary embodiment, step 110 uses a parser to process a command line that was tokenized in a preceding step. The parser may evaluate each token individually or as a block of tokens, and runs each token through a set of predefined rules to make sure that all are satisfied. For example, the parser could examine each token and identify any other tokens that must accompany the present token, that cannot accompany the present token, and that may accompany the present token. The parser could also check for duplicate tokens, the text value of the tokens, etc. Skilled artisans will appreciate that there are other tasks and comparisons that the parser could be perform, as the preceding examples are only some of the possibilities.

Now that the command line has been checked for both syntactical and semantical correctness, the method can move to the next command line in the program, step 112.

This general process continues until the whole CNC program or a portion designated by the user has been checked and saved, at which time it can be executed and run on the

CNC machine. Even though the aforementioned sequence checks for syntax first and semantics second, the present method is not limited to that particular sequence and could perform semantics checking first and syntax checking second. Furthermore, the syntax and semantics checks could be combined so that they are generally performed at the same

time or within the same module, for example. Once the syntax and semantics of the command line have been checked, the parser may reassemble the command line in its textual form and present it to the user. The command line presentation may use any combination of text editing features, such as presenting different command line elements in different colors, different fonts, with different margins and indentations, etc. Some of these visual presentation features are described below in greater detail.

A number of text editor enhancements and features can be used in addition to or in lieu of the method described above. For example, FIG. 3A shows an exemplary text editor where a CNC program may include a variety of font colors; line numbers 150 and G-codes 152 could be in blue font; programming comments 154 could be in green font; M-codes 156 could be in purple font; parameters 158 could be in black font, etc. Color distinctions could provide a programmer or other operator with easy and immediate feedback as to the validity of the CNC program and enable them to seamlessly continue entering and/or editing the CNC program without breaking from their task and initiating an online help session or the like; although, such help sessions could also be used. Particularly helpful is red font that could be used to clearly and distinctly identify errors 170 in the program; the exemplary error shown here relates to incompatible G-codes, as previously explained. Different colors, types of fonts, size fonts, margins, comments, etc. can also be used to identify errors and/or those changes to the CNC program that have already been saved and those that have not, as shown at 180 in FIG. 3B.

Another optional text editor enhancement pertains to the re-ordering of the elements or tokens 148 in the command line. Depending on the particular CNC system, the elements of a command line may be executed by the CNC machine in a particular order, regardless of the order that they appear in the command line. For example, some G-codes 152 may execute movements on an x-axis before movements on a y-axis, even if the y-axis elements are listed first in the command line. An interpreter may re-order these elements and then present the re-ordered command line to the user via the HMI. The re- ordered command line could also be identified with some type of indicia (e.g., bold, italicized, colored, indented font, etc.) so that the operator is alerted of the modification

before it is actually executed by the CNC machine.

Various potential text editor enhancement or feature could also be used. For instance, a message line could be provided at the top of the HMI so that when an error in the syntax and/or semantics is discovered, a corresponding message can be displayed to the operator. The contents of the message could be such that they try and help operator resolve the error, they provide a template for a proper command line format, they offer one or more suggestions to the operator for correcting the error, etc. Also, it is possible to include an indication, such as a highlighted bar or similar indicia, that identifies those command lines that have been modified since the last save, version, etc.

In addition to that described above, the present method could also be used in conjunction with one or more of the systems, devices, components, features, methods, techniques, etc. disclosed in provisional patent application 60/972,744 filed September 14, 2007, the entire contents of which (including the appendices) are incorporated herein by reference. Furthermore, it is possible for the operator to deactivate or disengage any combination of the features described above so that a custom HMI is provided that only offers those features desired by the operator.

It is to be understood that the foregoing description is not a definition of the invention itself, but is a description of one or more preferred exemplary embodiments of the invention. The invention is not limited to the particular embodiment(s) disclosed herein. Furthermore, the statements contained in the foregoing description relate to particular embodiments and are not to be construed as limitations on the scope of the invention or on the definition of terms used in the claims, except where a term or phrase is expressly defined above. Various other embodiments and various changes and modifications to the disclosed embodiment(s) will become apparent to those skilled in the art. All such other embodiments, changes, and modifications are intended to come within the scope of the appended claims.

As used in this specification and claims, the terms "for example," "for instance," "like," "i.e.," and "such as," and the verbs "comprising," "having," "including," and their other verb forms, when used in conjunction with a listing of one or more components or other items, are each to be construed as open-ended, meaning that that the listing is not to be considered as excluding other, additional components or items. Other terms are to be construed using their broadest reasonable meaning unless they are used in a context that requires a different interpretation.