US20190384252A1 - Real time machining process monitoring - Google Patents
Real time machining process monitoring Download PDFInfo
- Publication number
- US20190384252A1 US20190384252A1 US16/556,731 US201916556731A US2019384252A1 US 20190384252 A1 US20190384252 A1 US 20190384252A1 US 201916556731 A US201916556731 A US 201916556731A US 2019384252 A1 US2019384252 A1 US 2019384252A1
- Authority
- US
- United States
- Prior art keywords
- tool
- predicted value
- machine tool
- simulated
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/182—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by the machine tool function, e.g. thread cutting, cam making, tool direction control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/402—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for positioning, e.g. centring a tool relative to a hole in the workpiece, additional detection means to correct position
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/406—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
- G05B19/4062—Monitoring servoloop, e.g. overload of servomotor, loss of feedback or reference
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/406—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
- G05B19/4069—Simulating machining process on screen
-
- G06F17/5009—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/42—Servomotor, servo controller kind till VSS
- G05B2219/42306—Excess in error, compare reference with feedback
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/49—Nc machine tool, till multiple
- G05B2219/49001—Machine tool problems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/50—Machine tool, machine tool null till machine tool work handling
- G05B2219/50197—Signature analysis, store working conditions, compare with actual
Definitions
- the present disclosure relates generally to machine tools. Specifically disclosed is a method and apparatus which simulates execution of a NC program and resultant operating conditions of at least the machine tool, and generates data predictive of the values of such operating conditions. Also disclosed is a method and apparatus which compares operating conditions that exist during actual machining with predicted values of the operating conditions.
- CAD/CAM Computer control of a machining system that involves the CAD/CAM based support has been widely accepted to improve productivity and reduce production cost. Recently, more intelligent functions have been developed and integrated into CNC machine tools.
- CAD/CAM provides the facilities to create and monitor tool paths to use on the workpiece.
- machine tools and machine virtual environments can be utilized to dynamically simulate the machining operations. These dynamic simulations provide NC program generation and verification, material removal analysis and collision detection error. With the process simulation, the tool path can be analyzed and verified before actually machining the part. It has become easier to machine complex parts more accurately and more quickly with the advancement of simulation tools.
- operating parameters are still mainly selected based on either on machining handbooks and/or tool manufacturer's catalogues which are typically very conservative and aggressive, respectively. Therefore, it has been difficult to perform the machining under an optimal condition, which either leads to low productivity or deterioration in machining accuracy and surface roughness.
- the tool is a cutting tool which is engaged in cutting with a rapidly increasing cutting load, damage easily occurs to the cutting tool as well as work material to be machined.
- FIG. 1 is a block diagram according to an aspect of the invention.
- FIG. 2 illustrates a flow diagram of a simulation according to one of the aspects of the invention and of a method for real time monitoring of the machining process according to another of the aspects of the invention.
- FIG. 3 is a flow diagram of an embodiment which could be part of the pre-process simulation of FIG. 2 .
- FIG. 4 is a flow diagram of an embodiment which could be part of the pre-process simulation of FIG. 2 .
- FIG. 5 is a flow diagram of an embodiment of the monitoring of FIG. 1 .
- FIG. 6 is a representation of an exemplary data structure embodiment of a data file of the pre-process simulation of FIG. 1 .
- FIG. 7A is a diagrammatic illustration of a prior art method of applying a limit to measured loads of a machine tool, tool holder or tool.
- FIG. 7B is a diagrammatic illustration of a dynamic limit embodiment.
- FIG. 8 is a diagrammatic illustration of an embodiment of a processor operating environment.
- tool refers to any type of tool which may be carried by a tool holder of a machine tool and manipulated by the machine tool to alter the characteristics of a workpiece.
- a cutting tool is frequently referenced in describing aspects and/or embodiments of the invention hereof, as used herein, tool is not limited to any specific type of tool, and references to cutting tool are to be considered and interpreted as not limiting the invention hereof to operations of a machine tool involving cutting unless specifically so limited.
- cut or cutting can mean the removal of material from a workpiece by means of shear deformation
- cut and cutting is to be considered and interpreted as not limiting the invention hereof to removal of material by means of shear deformation, unless specifically so indicated, but instead is to be considered and interpreted as an operation which alters any characteristic of a workpiece.
- a spindle is frequently referenced in describing aspects and/or embodiments of the invention hereof, as used herein, spindle is not limited to any specific type of tool holder, and references to tool holder are to be considered and interpreted as not limited to any specific type of tool holder. To the extent necessary, the disclosure as explicitly set forth herein supersedes any conflicting material incorporated herein by reference.
- FIG. 1 is block diagram illustrating an aspect of the invention.
- simulation 100 may calculate conditions resulting from the simulated execution of NC program 2 . If simulation 100 indicates an undesirable condition (i.e., a condition which may lead to an undesirable result) exists, feedback of the analysis of the results from simulation 100 may be used at 150 to revise NC program 2 , and simulation 100 may proceed to simulate revised NC program 2 . Simulation 100 may iteratively simulate successive revisions of NC program 2 until no undesirable conditions are indicated by simulation 100 to exist, and generate data indicative of calculated conditions, which represent the predicted values of those conditions. The latest version of NC program 2 may actually be executed by a machine tool controller to cause the machine tool to machine a workpiece.
- an undesirable condition i.e., a condition which may lead to an undesirable result
- information regarding the actual operating conditions existing during machining of the workpiece may be evaluated in real time by real time monitoring system 200 relative to predicted values, which may have been calculated by simulation 100 . If the actual operating conditions are not within an acceptable range of the predicted values, feedback data indicative thereof may be generated at 250 , and the machining may be interrupted.
- Pre-process simulation 100 simulates the execution of an NC program in a virtual environment in which a machine tool operates the tools designated in the NC program to follow a tool path, including feed rates, tool angles, etc.
- Pre-process simulation 100 may model the cutting path and relevant conditions, such as the feed rates, spindle speeds and depth of cut, based on tool attributes such as tool kind, size and geometry and on material composition, and calculate the geometrical material to be removed.
- Pre-process simulation 100 may identify simulated operating conditions which may lead to undesirable results so that the NC program is or may be revised to reduce or eliminate the potential for such undesirable results, and may calculate predicted values for certain operating conditions based on the simulation of a final revision of the NC program for which pre-process simulation 100 does not identify conditions which may lead to undesirable results.
- Such predicted values may be provided to real time monitoring system 200 and the revision of the NC program may be provided to the machine tool controller.
- data generated by pre-process simulation 100 may be passed to real time monitoring system 200 , and the final revision of the NC program may be loaded into machine tool controller 300 .
- Real time monitoring system 200 may be executed real time in conjunction with the actual in-process machining of a workpiece on the machine tool, compare the predicted values with the actual values from the actual machining, and respond based on that comparison.
- NC program 102 is provided to pre-process simulation 100 .
- NC program 102 may be of any origin, such as may be generated in whole or in part by a CAD/CAM system or created in whole or in part manually.
- pre-process simulation 100 may be initialized for the particular computing environment, and loaded with data relevant to the actual machine tool, tool, work piece and final part, such as, but not limited to, tool attributes such as for example tool shape, diameter, number of flutes, helix angle, etc., which may be organized in a predefined table of tool geometries; machine tool attributes such as, but not limited to, axis configuration, spindle torque-power curve, axis stroke, etc.; workpiece attributes such as, but not limited to, stock material shape, material properties, and material specific cutting pressure coefficients; and final part configuration such as, but not limited to, in the form of a solid model.
- Initialization of pre-process simulation 100 may occur only as needed—not necessarily every time pre-process simulation 100 is executed. Relevant data may be inputted in any manner at any time, such as some data inputted by the end user at the time of simulation. Some relevant data may be selectable by an end user through drop down lists.
- pre-process simulation 100 simulates the machining process based on the NC program, motion step by motion step.
- the simulation and associated calculations to model the execution of each motion step of the NC program is represented at step 106 .
- pre-process simulation 100 may calculate machining conditions for the current motion step.
- motion step refers to a change of the position of the tool relative to the workpiece.
- the motion step resolution of pre-process simulation 100 may be set during step 104 . Machining conditions comprise information relevant to the subsequent calculation at step 108 of operating conditions which may lead to undesirable results, such as damage to the tool, the machine tool or workpiece, or inaccuracy of the machining process.
- pre-process simulation 100 may calculate the volume of material removed and the cutting tool-material contact area based on the geometrical Boolean operation. Based on the calculated material removal and contact area, simulation 100 may calculate the axial depth of cut and width of cut. The chip load for each flute of the tool may also be calculated based on attributes of the motion step of the NC program being simulated, such as operational attributes such as feed rate and spindle speed and such as tool attributes such as the number of flutes of the cutting tool. The radial engagement may be calculated based on the cutting tool diameter. Simulation of an NC program in this manner is well known in the art, and can be implemented by any of several commercially available existing CAM simulation programs including for example Vericut Optipath software available from CGTech.
- simulation 100 may calculate values of one or more operating conditions which could lead to undesirable results, such as result in damage to cutting tools, the machine tool or the workpiece if the machine tool were to continue to operate at or above that value.
- Such operating conditions include tool operating conditions and/or machine tool operating conditions, which may include but are not limited to any of cutting forces, spindle power, radial load at the spindle (e.g., at the spindle bearings), tool deflection, bending moment on the tool, bending moment on the spindle or at the spindle interface, cutting torque at the tool holder/spindle interface, temperature of the tool, load on one or more of the machine tool axes servos.
- Such operating conditions may be based on one or more machining conditions of the current motion step simulated at step 106 as described above.
- information relevant to the subsequent calculation of operating conditions may be simulated at step 106 by an existing program and relevant data extracted to form the basis for the calculation at step 108 .
- Each of the calculations at step 108 may be considered a predicted value of each such respective operating condition of the specific motion step which is being simulated, and is also referred to herein as predicted value.
- simulation 100 determines, for the current motion step, whether any predicted value calculated at step 108 exceeds a limit, which may be a predetermined limit, which is relevant to that operating condition.
- a limit which may be a predetermined limit, which is relevant to that operating condition.
- simulation 100 makes a determination for the current motion step whether to continue the simulation of the NC program in its then current form based on whether an assessment of one or more predicted values relative to predetermined criteria indicates an undesirable operating condition, such as an operating condition that will or might lead to damage to the tool, the machine tool or workpiece, or lead to inaccuracy of the machining process.
- Such an assessment may, for example, be a comparison of the predicted values to machine tool specifications (e.g., power and torque limits), thrust force limit for one or more drive axis and cutting tool limits, such as but not limited to cutting tool's characteristic temperature below which the cutting tool material can maintain its mechanical strength, and workpiece attributes.
- machine tool specifications e.g., power and torque limits
- thrust force limit for one or more drive axis e.g., thrust force limit for one or more drive axis
- cutting tool limits such as but not limited to cutting tool's characteristic temperature below which the cutting tool material can maintain its mechanical strength
- workpiece attributes e.g., workpiece attributes
- simulation 100 may proceed to step 112 , where simulation 100 may consider whether all motion steps have been analyzed, and if all motions steps have not been analyzed, may proceed to the next motion step, returning to step 106 to repeat steps 106 , 108 and 110 for the next motion step. Once all motion steps have been analyzed, simulation 100 may proceed to step 114 from step 112 and create a data file containing the predicted values for each motion step.
- the data file may have any suitable structure.
- revision to the NC program may be necessary for one or more motion steps. Such revision may be necessary for the current motion step, may be necessary for one or more previous motion steps, and/or may be necessary for one or more subsequent motion steps.
- Simulation 100 may create such revision to the NC program automatically at step 116 , proceeding from step 110 to step 116 as indicated by the dashed line. For example, simulation 100 may reduce the feed rate. Simulation 100 may then return to an appropriate step of simulation 100 . For example, if at step 116 no revisions were implemented that affected one or more motion steps prior to the current motion step, then simulation 100 may proceed to step 106 and proceed with the simulation beginning at the revised current motion step. If at step 116 , one or more motion steps prior to the current motion step is revised, simulation 100 may proceed to step 106 and proceed with the simulation beginning at an appropriate motion step such as, for example, the earliest revised motion step, or simulation 100 may proceed to an earlier step in the simulation, such as for re-initialization, data input, etc. Simulation 100 may proceed to step 106 and proceed at the first motion step regardless of what motion steps were revised. If the revision required a change in initialization or data input at step 104 , simulation 100 may proceed to step 104 .
- simulation 100 may not automatically create a revision to the NC program. If not, then simulation 100 , proceeding from step 110 to step 118 as indicated by the dashed line, may stop the simulation and provide an output indicating that simulation 100 determined that continuation of the simulation of the NC program in its current form should not continue. Such output may be in humanly perceptible form, such as an audible or a visual alarm, a pop up notice on a screen, etc. or may be in a form usable by system responsive to the form of the output. Revision to the NC program may be created, such as by a programmer, and simulation 100 restarted or resumed at an appropriate step.
- simulation 100 may provide, following a yes at step 110 , for proceeding to step 116 under certain circumstances and proceeding to step 118 under other circumstances.
- simulation 100 simulates, at some point, all or part of the revised NC program. It is also noted that the embodiment of simulation 100 depicted is but one way in which predicted values may be calculated based on an NC program. For example, step 106 could be executed for every motion step, followed by executing steps 108 and 110 for every motion step, or executing step 108 for every motion step then proceeding to step 110 for every motion step and reporting every condition that exceeds a predetermined limit.
- FIG. 3 illustrates an embodiment which could comprise step 108 of pre-process simulation 100 .
- the cutting forces and temperature may be calculated for the current motion step.
- the power and torque limit of the machine tool is calculated based on the spindle rotation speed for the current motion step.
- the bending moment and torsional torque applied to the tool holder/spindle interface are calculated. These may be calculated, for example, based on the calculated load and gauge length of the cutting tool.
- FIG. 4 illustrates an embodiment which could comprise steps executed as part of step 108 .
- a cutting tool may have one or more cutting edges, each referred to herein as a flute.
- the cutting load is distributed along each cutting edge that engages material in a motion step, along the portion of the cutting edge which is engaged with material.
- the cutting load and temperature may be calculated by analyzing small sections along each cutting edge. For each such small section, the cutting load and temperature may be calculated based on the chip load, cutting speed, radial engagement, cutting tool geometry and work material properties for that small section.
- FIG. 4 indicates at 130 that for each motion step, each flute may be analyzed. At 132 , it is indicated that for each such flute, each small section along the flute may be analyzed.
- step 134 it may be determined whether the current section is engaged in cutting. If it is not engaged, the analysis may proceed to the next section indicated by 138 . If the current section is engaged in cutting, at step 136 , the temperature and force, such as at the spindle interface or the tool, for the section may be calculated. At 138 , the analysis may proceed to the next small section of the current flute, and loop back to step 132 to repeat the process until all small sections of the current flute have been considered. After all small sections have been considered, the cutting forces and temperature for the flute may be calculated and stored at step 140 . The force for the flute may be the sum of the forces calculated for each section. The temperature may be the maximum temperature calculated for any section of the flute.
- forces could be summed and temperatures compared with each pass through the loop for each section. If not all flutes of the current motion step have been considered, the analysis may proceed to the next flute that engages material during the current motion step at 142 . After all flutes of the current motion step have been considered, the forces and temperature may be calculated at 144 for the motion step. Temperature may be calculated based only on or for only the maximum chip load during the motion step. The temperature for the current motion step may be the highest temperature calculated during the analysis described in this paragraph. Alternatively, forces could be summed and temperatures compared with each pass through the loop for each flute.
- Calculation of temperature may be done using any methods known in the art. As is known, once shear and friction forces are known from force calculations, shearing power and friction power may be calculated with these two forces times shear velocity and chip flow speed, respectively. The shear plane temperature may be calculated based on the assumption that all shearing power is converted to heat, which may be done according to the formula
- monitoring system 200 is also referred to herein as real time monitoring system 200 in that monitoring process 200 may be executed in conjunction with the real time actual in-process machining of the workpiece on the machine tool.
- real time monitoring 200 may be executed simultaneously with the actual machining of the part. It is noted that the proved NC program and predicted values for each motion step do not have to come from execution of pre-process simulation 100 .
- the NC program is loaded into the machine tool (see FIG. 5 )
- the current position of the tool is received into real time monitoring system 200 from the machine tool.
- that position may be synchronized with the data file, by associating that position with a data point in the data dictionary.
- the actual (real time) values of the operating conditions corresponding to the predicted values may be compared to the predicted values associated with the motion step corresponding to the current position of the tool.
- “actual value” and “actual values” refer to the values of the operating conditions, such as but not limited to cutting loads and temperatures, that actually exist respectively for the machine tool and/or the tool, as directly or indirectly sensed or as calculated based on one or more sensors. Real time monitoring system 200 considers such actual values that correspond to predicted values.
- real time monitoring system 200 may determine whether all of the specific actual values are within a dynamic limit of the predicted value, such as 15%. If all are, then at 210 real time monitoring system 200 may consider whether the actual machining process is finished. If the actual machining process is not finished, real time monitoring system 200 may return to 202 and get the new current position from the machine tool and repeat the simulation. If the process is finished, then real time monitoring system 200 may end at 212 , and all measured data may be saved, in any form such as a log file, which may be used as reference data for subsequent machining of the same part.
- the actual values may not are not within the dynamic limit of the predicted values, such as being higher than the upper value of the dynamic limit or being lower than the lower value of the dynamic limit.
- Actual values which are lower than the lower value of the dynamic limit may be indicative of a problem, such as a broken or missing tool, and real time monitoring system 200 may proceed to step 216 and output an alarm and/or a warning message, and may stop the machine waiting for user input.
- monitoring system 200 may proceed to step 214 and adjust the tool feed rate with the goal of lowering subsequent actual values to lower than the upper value of the dynamic limit.
- Monitoring system 200 may provide an alarm or notice, such as a pop up message on a screen, to indicate that action was taken at step 214 .
- Monitoring system 200 may then proceed to step 202 .
- Monitoring system 200 may allow actual values of an operating condition to exceed its upper value of the dynamic limit or to be lower than its lower value of the dynamic limit for the then current position for a predetermined period of time. For example, following an adjustment to the feed rate at step 214 , monitoring system 200 may execute the loop 202 - 204 - 206 - 208 - 214 - 202 for a period of time, which may be a predetermined period of time, even though the actual value that prompted the first tool feed rate adjustment in the chain is not lower than the upper value of the dynamic limit.
- monitoring system 200 may not make an adjustment, reaching step 202 after step 208 without making an adjustment to the tool feed rate, whether the actual value of an operating condition is higher than the upper value or is lower than the lower value of the dynamic limit.
- monitoring system 200 may not automatically make such an adjustment to the feed rate. For example, monitoring system 200 may proceed to step 216 , and an alarm and/or warning message may be outputted, such as a pop up message on a screen, and stop the machining process waiting for user input. In one embodiment, monitoring system 200 may not stop the machining process at step 216 , but proceed to step 202 , allowing the actual values of an operating condition to exceed its upper value of the dynamic limit or to be less than the lower value of the dynamic limit for the then current position for a predetermined period of time, similar to as described in the preceding paragraph.
- FIG. 5 diagrammatically illustrates an embodiment of monitoring system 200 and interaction with machine tool controller 300 .
- the proved NC program may be loaded into the machine tool controller 300 at 302 and may be executed to cause the machine tool to machine the part.
- the data file with the predicted values correlated to the motion steps of the NC program may be inputted and sorted into a data dictionary at 220 .
- machine tool controller 300 may send data at 304 which is received by real time monitoring system 200 at 222 .
- the data may include the current position of the tool and actual values of operating conditions corresponding to the predicted values.
- monitoring system 200 may search for a data point in the data dictionary that is the closest point to the current cutting tool position received from machine tool controller 300 .
- real time monitoring system 200 may visualize the actual values, the predicted values and the threshold range vs. the machining time. (An example of a simulation output comparison is illustrated in FIG. 7B , discussed below.)
- real time monitoring system 200 determines whether the actual values are within the dynamic limit. If the actual values are not within the dynamic limit, such as exceeding the upper value of the dynamic limit, at 232 a command may be sent to machine tool controller 300 to adjust the tool feed rate and/or set an alarm at 306 .
- the feed rate change may be determined based on the ratio of the actual value to predicted value of the particular operating condition, so as to bring the actual value within the dynamic limit.
- the feed rate change may be implemented by machine tool controller 300 and the machining process may continue. If the actual values do not fall within the dynamic limit within a predetermined time period, for example five seconds, then the command given at 232 at the expiration of the predetermined time may be to stop the machining process. The predetermined time period could, for example, be zero seconds, in which case the command is given immediately. If the actual values are within the dynamic limit at 230 , real time monitoring system 200 may determine at 234 whether it is at the end of the NC program, and return to step 222 if it is not. When the end of NC program is reached, monitoring system 200 may save all measured data as a file (see step 212 ) at 236 , and stop at 238 .
- the closest data point may not be considered a matching point at step 226 , indicating a matching point is not found. If a matching point is not found at 226 , which may mean for example a tool change command is being executed by machine tool controller 300 or the cutting tool is not engaged in cutting, a zero output may be made at 240 and real time monitoring system 200 may proceed to 234 , without feedback to machine tool controller 300 .
- FIG. 6 illustrates an embodiment of a data structure of the data file outputted by pre-process simulation 100 .
- FIG. 6 illustrates data organized as a data dictionary with Program ID, sequence number, associated tool position, and the cutting loads and temperatures.
- a matching point to the data point sent from machine tool controller 300 to real time monitoring system 200 is searched, or synchronized as referenced at 204 , it is searched in the data dictionary by matching the program ID and sequencing number. Then the matching data point is obtained by finding the closest point to the current cutting tool position.
- FIG. 7A illustrates a prior art method of setting an alarm limit for monitoring actual values, such as cutting loads, spindle power and axis loads of a machine tool during actual machining.
- a fixed upper alarm limit is set based on the maximum allowable value for the specific operating condition being monitored.
- FIG. 7B illustrates an embodiment of an aspect of this invention, which may be practiced in conjunction with any embodiments discussed above, or completely separate therefrom.
- a dynamic limit envelope 400 which has an upper value, or upper limit boundary, 400 U and a lower limit boundary 400 L.
- a measured cutting load is represented by line 402 , with the horizontal axis representing time.
- For each position of the cutting tool there is a respective unique upper and lower limit for the load being monitored.
- point 404 which corresponds to an actual position of the tool during the machining process, there is an upper limit 404 U and a lower limit 404 L.
- an action will be initiated, such as setting an alarm or reducing feed rate. If the load is under 404 L, such a condition may indicate an undesirable situation such as a broken tool, and an action may be taken. If the tool is at a position corresponding to point 406 , the actual loading is higher than the lower limit 406 L, but lower than the upper limit 406 U for point 406 , and no alarm or action will be initiated. Point 408 indicates that the measured load is higher than dynamic limit 400 .
- the upper and lower limits for each respective point may be determined in any suitable manner, such as, but limited to, based on a predicted value for the operating condition which may be determined through a simulation embodiment described herein, plus or minus a tolerance. Or, the predicted value for the operating condition for each position may be determined by any other methodology, and, in combination with a dynamic limit range, be used to set a dynamic limit for actual machining.
- FIG. 7B also illustrates an additional aspect of this embodiment, which may be incorporated with this embodiment, the display of the dynamic limit range of the machine tool, tool holder and/or tool for a period of time into the future.
- FIG. 8 illustrates an operating environment in which various embodiments and aspects of the disclosed technology can be deployed.
- the operating environment illustrated in FIG. 8 of machining system 800 includes machine tool 802 , machine tool controller 804 , and system 806 .
- machine tool controller 804 may use its processor 808 to execute various programs stored in its memory 810 , such as an NC program 812 and real time monitoring program or system 814 .
- this may include machine tool controller 804 generating instructions for controlling operation of machine tool 802 based on NC program 812 , and receiving information on the operation of machine tool 802 , such as actual operating conditions, which may measured by sensors (not shown in FIG. 8 ) on or near machine tool 802 .
- This information may then be used by real time monitoring program 814 as described above, to determine if some type of action should be taken based on the operating conditions being outside of a predetermined acceptable dynamic limit range associated with the motion step in NC program 812 which has been matched to the then current position of the tool. Then, in the event that action was to be taken, real time monitoring program 814 may implement that action either independently (e.g., by causing an alert to be presented to a user) or in combination with one or more other programs (e.g., by acting as a hypervisor and stopping or altering the operation of NC program 812 on a previously created virtual machine tool controller instance).
- real time monitoring program 814 may implement that action either independently (e.g., by causing an alert to be presented to a user) or in combination with one or more other programs (e.g., by acting as a hypervisor and stopping or altering the operation of NC program 812 on a previously created virtual machine tool controller instance).
- System 806 may operate in a similar manner, with its processor 816 executing programs stored in its memory 818 , such as pre-process simulation 820 which would function as described above:
- Pre-process simulation 820 may itself simulate an NC program, or may extract relevant data from execution of NC simulation 822 .
- Predicted values calculated by pre-process simulation 820 may be calculated predicted values which may be provided to real time monitoring 814 .
- processors such as illustrated in FIG. 8 could be implemented using microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), programmable logic controllers (PLCs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
- DSPs digital signal processors
- FPGAs field programmable gate arrays
- PLDs programmable logic devices
- PLCs programmable logic controllers
- state machines gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
- a program such as the pre-process simulation 820 or real time monitoring program 814 may take actions which would influence the operation of an NC program or simulation in a variety of ways in addition to (or as an alternative to) acting as a hypervisor.
- a monitoring program could implement a remedial action using a parallel communication path, such as real time monitoring program 814 causing a command to be sent to the machine tool 802 which would override (e.g., a command to shut down) or modify the impact of (e.g., a command to slow down or pause for a set period of time) the commands based on NC program 812 .
- a monitoring program could integrate execution of another program into its own operation (e.g., by a pre-process simulation 820 invoking simulation program 822 from its own code by means of API calls), which would allow it direct control over the integrated program's execution.
- Other approaches for allowing actions by a monitoring program to influence operation of another program e.g., messages from the monitoring program being treated as interrupts by the device which is executing it) are also possible.
- FIG. 8 illustrates real time monitoring program 814 and NC program 812 both being executed by machine tool controller 804
- these programs could be executed on physically distinct devices, with the device executing real time monitoring program 814 receiving information on machine tool 802 either indirectly through machine tool controller 804 , or directly via a separate connection with machine tool 802 itself.
- Other variations are also possible, such as embodiments in which various programs are be executed on multi-processor systems rather than single processor systems as shown in FIG. 8 , and embodiments which use different types of memories to store the illustrated programs (e.g., optical media, magnetic media, RAID arrays, removable drives, etc.).
- the operating environment of FIG. 8 and the accompanying description should be understood as being illustrative only, and should not be treated as implying limitations on the protection provided by this document or any other document which relies in whole or in part on this disclosure.
- processors include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), programmable logic controllers (PLCs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
- DSPs digital signal processors
- FPGAs field programmable gate arrays
- PLDs programmable logic devices
- PLCs programmable logic controllers
- state machines gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure.
- processors in the processing system may execute processor-executable instructions.
- a processing system that executes instructions to effect a result is a processing system which is configured to perform tasks causing the result, such as by providing instructions to one or more components of the processing system which would cause those components to perform acts which, either on their own or in combination with other acts performed by other components of the processing system would cause the result.
- Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
- the software may reside on a computer-readable medium.
- the computer-readable medium may be a non-transitory computer-readable medium.
- Computer-readable medium includes, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk (e.g., compact disk (CD), digital versatile disk (DVD)), a smart card, a flash memory device (e.g., card, stick, key drive), random access memory (RAM), read only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), a register, a removable disk, and any other suitable medium for storing software and/or instructions that may be accessed and read by a computer.
- a magnetic storage device e.g., hard disk, floppy disk, magnetic strip
- an optical disk e.g., compact disk (CD), digital versatile disk (DVD)
- a smart card e.g., a flash memory device (e.g., card, stick, key drive), random access
- the computer-readable medium may be resident in the processing system, external to the processing system, or distributed across multiple entities including the processing system.
- the computer-readable medium may be embodied in a computer-program product.
- a computer-program product may include a computer-readable medium in packaging materials.
- processor means devices which can be configured to perform the various functionality set forth in this disclosure, either individually or in combination with other devices.
- processors include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), programmable logic controllers (PLCs), state machines, gated logic, and discrete hardware circuits.
- DSPs digital signal processors
- FPGAs field programmable gate arrays
- PLDs programmable logic devices
- PLCs programmable logic controllers
- state machines gated logic, and discrete hardware circuits.
- processing system is used to refer to one or more processors, which may be included in a single device, or distributed among multiple physical devices.
- Instructions means data which can be used to specify physical or logical operations which can be performed by a processor. Instructions should be interpreted broadly to include, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, dynamic linked libraries, executables, threads of execution, procedures, functions, hardware description language, middleware, etc., whether encoded in software, firmware, hardware, microcode, or otherwise.
- a statement that a processing system is “configured” to perform one or more acts means that the processing system includes data (which may include instructions) which can be used in performing the specific acts the processing system is “configured” to do.
- data which may include instructions
- the processing system is “configured” to do.
- a computer a type of “processing system”
- installing Microsoft WORD on a computer “configures” that computer to function as a word processor, which it does using the instructions for Microsoft WORD in combination with other inputs, such as an operating system, and various peripherals (e.g., a keyboard, monitor, etc.).
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Numerical Control (AREA)
Abstract
A pre-process simulation may calculate operating conditions of a machine tool by simulating a NC program and calculate predicted values indicative of the operating conditions. A real time monitoring system may compare actual values from the actual operation of a machine tool actually executing the NC program to the predicted values and determine whether to initiate a response. The operating conditions may be machine tool operating conditions. The comparison of actual values to predicted values may be based on a dynamic limit within which the predicted values fall which may vary based on the tool position, and the dynamic limit may include upper and lower limit boundaries.
Description
- The present disclosure relates generally to machine tools. Specifically disclosed is a method and apparatus which simulates execution of a NC program and resultant operating conditions of at least the machine tool, and generates data predictive of the values of such operating conditions. Also disclosed is a method and apparatus which compares operating conditions that exist during actual machining with predicted values of the operating conditions.
- Computer control of a machining system that involves the CAD/CAM based support has been widely accepted to improve productivity and reduce production cost. Recently, more intelligent functions have been developed and integrated into CNC machine tools. CAD/CAM provides the facilities to create and monitor tool paths to use on the workpiece. In some CAM software programs, machine tools and machine virtual environments can be utilized to dynamically simulate the machining operations. These dynamic simulations provide NC program generation and verification, material removal analysis and collision detection error. With the process simulation, the tool path can be analyzed and verified before actually machining the part. It has become easier to machine complex parts more accurately and more quickly with the advancement of simulation tools. However, in selection of machining strategies, the methods offered by CAM software often are based on the parts' geometrical information with little or no consideration of the machine tool capability or the physics of metal cutting. On the other hand, machine tools (or operators) have limited information about NC programs, hence it is difficult to judge whether machining is performed properly. Running machine tools under undesirable operating conditions can cause damage to tools, the machine tools or workpiece. Operating at, near or over the machine limits, for a short time or over a long period of time, can lead to damage to the tool, the machine tool or workpiece.
- Moreover, in practice, operating parameters are still mainly selected based on either on machining handbooks and/or tool manufacturer's catalogues which are typically very conservative and aggressive, respectively. Therefore, it has been difficult to perform the machining under an optimal condition, which either leads to low productivity or deterioration in machining accuracy and surface roughness. Moreover, when the tool is a cutting tool which is engaged in cutting with a rapidly increasing cutting load, damage easily occurs to the cutting tool as well as work material to be machined.
- The accompanying drawings together with specification, including the detailed description which follows, serve to explain the principles of the present invention.
-
FIG. 1 is a block diagram according to an aspect of the invention. -
FIG. 2 illustrates a flow diagram of a simulation according to one of the aspects of the invention and of a method for real time monitoring of the machining process according to another of the aspects of the invention. -
FIG. 3 is a flow diagram of an embodiment which could be part of the pre-process simulation ofFIG. 2 . -
FIG. 4 is a flow diagram of an embodiment which could be part of the pre-process simulation ofFIG. 2 . -
FIG. 5 is a flow diagram of an embodiment of the monitoring ofFIG. 1 . -
FIG. 6 is a representation of an exemplary data structure embodiment of a data file of the pre-process simulation ofFIG. 1 . -
FIG. 7A is a diagrammatic illustration of a prior art method of applying a limit to measured loads of a machine tool, tool holder or tool. -
FIG. 7B is a diagrammatic illustration of a dynamic limit embodiment. -
FIG. 8 is a diagrammatic illustration of an embodiment of a processor operating environment. - In the following description, like reference characters designate like or corresponding parts throughout the several views. Also, in the following description, it is to be understood that terms such as front, back, inside, outside, and the like are words of convenience and are not to be construed as limiting terms. Terminology used in this patent is not meant to be limiting insofar as devices described herein, or portions thereof, may be attached or utilized in other orientations. Referring in more detail to the drawings, an embodiment constructed according to the teachings of the present invention is described.
- As used herein, tool refers to any type of tool which may be carried by a tool holder of a machine tool and manipulated by the machine tool to alter the characteristics of a workpiece. Although herein a cutting tool is frequently referenced in describing aspects and/or embodiments of the invention hereof, as used herein, tool is not limited to any specific type of tool, and references to cutting tool are to be considered and interpreted as not limiting the invention hereof to operations of a machine tool involving cutting unless specifically so limited. Although cut or cutting can mean the removal of material from a workpiece by means of shear deformation, as used herein, cut and cutting is to be considered and interpreted as not limiting the invention hereof to removal of material by means of shear deformation, unless specifically so indicated, but instead is to be considered and interpreted as an operation which alters any characteristic of a workpiece. Although a spindle is frequently referenced in describing aspects and/or embodiments of the invention hereof, as used herein, spindle is not limited to any specific type of tool holder, and references to tool holder are to be considered and interpreted as not limited to any specific type of tool holder. To the extent necessary, the disclosure as explicitly set forth herein supersedes any conflicting material incorporated herein by reference.
-
FIG. 1 is block diagram illustrating an aspect of the invention. Starting withNC program 2,simulation 100 may calculate conditions resulting from the simulated execution ofNC program 2. Ifsimulation 100 indicates an undesirable condition (i.e., a condition which may lead to an undesirable result) exists, feedback of the analysis of the results fromsimulation 100 may be used at 150 to reviseNC program 2, andsimulation 100 may proceed to simulate revisedNC program 2.Simulation 100 may iteratively simulate successive revisions ofNC program 2 until no undesirable conditions are indicated bysimulation 100 to exist, and generate data indicative of calculated conditions, which represent the predicted values of those conditions. The latest version of NCprogram 2 may actually be executed by a machine tool controller to cause the machine tool to machine a workpiece. During operation of a machine tool, information regarding the actual operating conditions existing during machining of the workpiece may be evaluated in real time by realtime monitoring system 200 relative to predicted values, which may have been calculated bysimulation 100. If the actual operating conditions are not within an acceptable range of the predicted values, feedback data indicative thereof may be generated at 250, and the machining may be interrupted. - Referring to
FIG. 2 , two flow diagrams illustrate pre-processsimulation 100 according to one of the aspects of the invention and realtime monitoring system 200 according to another of the aspects of the invention. Although pre-processsimulation 100 andmonitoring system 200 are illustrated in conjunction with each other, eithersimulation 100 ormonitoring system 200 may be practiced independent of the other. Pre-processsimulation 100 simulates the execution of an NC program in a virtual environment in which a machine tool operates the tools designated in the NC program to follow a tool path, including feed rates, tool angles, etc. Pre-processsimulation 100 may model the cutting path and relevant conditions, such as the feed rates, spindle speeds and depth of cut, based on tool attributes such as tool kind, size and geometry and on material composition, and calculate the geometrical material to be removed.Pre-process simulation 100 may identify simulated operating conditions which may lead to undesirable results so that the NC program is or may be revised to reduce or eliminate the potential for such undesirable results, and may calculate predicted values for certain operating conditions based on the simulation of a final revision of the NC program for whichpre-process simulation 100 does not identify conditions which may lead to undesirable results. Such predicted values may be provided to realtime monitoring system 200 and the revision of the NC program may be provided to the machine tool controller. AsFIGS. 2 and 5 illustrate, data generated by pre-processsimulation 100 may be passed to realtime monitoring system 200, and the final revision of the NC program may be loaded intomachine tool controller 300. Realtime monitoring system 200 may be executed real time in conjunction with the actual in-process machining of a workpiece on the machine tool, compare the predicted values with the actual values from the actual machining, and respond based on that comparison. - As illustrated in
FIG. 2 , NCprogram 102 is provided to pre-processsimulation 100. NCprogram 102 may be of any origin, such as may be generated in whole or in part by a CAD/CAM system or created in whole or in part manually. As indicated at 104,pre-process simulation 100 may be initialized for the particular computing environment, and loaded with data relevant to the actual machine tool, tool, work piece and final part, such as, but not limited to, tool attributes such as for example tool shape, diameter, number of flutes, helix angle, etc., which may be organized in a predefined table of tool geometries; machine tool attributes such as, but not limited to, axis configuration, spindle torque-power curve, axis stroke, etc.; workpiece attributes such as, but not limited to, stock material shape, material properties, and material specific cutting pressure coefficients; and final part configuration such as, but not limited to, in the form of a solid model. Initialization ofpre-process simulation 100 may occur only as needed—not necessarily every time pre-processsimulation 100 is executed. Relevant data may be inputted in any manner at any time, such as some data inputted by the end user at the time of simulation. Some relevant data may be selectable by an end user through drop down lists. - In the embodiment depicted, pre-process
simulation 100 simulates the machining process based on the NC program, motion step by motion step. The simulation and associated calculations to model the execution of each motion step of the NC program is represented atstep 106. For each motion step of the NC program,pre-process simulation 100 may calculate machining conditions for the current motion step. As used herein, motion step refers to a change of the position of the tool relative to the workpiece. The motion step resolution ofpre-process simulation 100 may be set duringstep 104. Machining conditions comprise information relevant to the subsequent calculation atstep 108 of operating conditions which may lead to undesirable results, such as damage to the tool, the machine tool or workpiece, or inaccuracy of the machining process. Atstep 106,pre-process simulation 100 may calculate the volume of material removed and the cutting tool-material contact area based on the geometrical Boolean operation. Based on the calculated material removal and contact area,simulation 100 may calculate the axial depth of cut and width of cut. The chip load for each flute of the tool may also be calculated based on attributes of the motion step of the NC program being simulated, such as operational attributes such as feed rate and spindle speed and such as tool attributes such as the number of flutes of the cutting tool. The radial engagement may be calculated based on the cutting tool diameter. Simulation of an NC program in this manner is well known in the art, and can be implemented by any of several commercially available existing CAM simulation programs including for example Vericut Optipath software available from CGTech. - In the embodiment depicted, as illustrated in
FIG. 2 , after the simulation of machining conditions for the current motion step atstep 106,simulation 100, atstep 108, may calculate values of one or more operating conditions which could lead to undesirable results, such as result in damage to cutting tools, the machine tool or the workpiece if the machine tool were to continue to operate at or above that value. Such operating conditions include tool operating conditions and/or machine tool operating conditions, which may include but are not limited to any of cutting forces, spindle power, radial load at the spindle (e.g., at the spindle bearings), tool deflection, bending moment on the tool, bending moment on the spindle or at the spindle interface, cutting torque at the tool holder/spindle interface, temperature of the tool, load on one or more of the machine tool axes servos. Such operating conditions may be based on one or more machining conditions of the current motion step simulated atstep 106 as described above. In an embodiment, information relevant to the subsequent calculation of operating conditions may be simulated atstep 106 by an existing program and relevant data extracted to form the basis for the calculation atstep 108. Each of the calculations atstep 108 may be considered a predicted value of each such respective operating condition of the specific motion step which is being simulated, and is also referred to herein as predicted value. - At
step 110,simulation 100 determines, for the current motion step, whether any predicted value calculated atstep 108 exceeds a limit, which may be a predetermined limit, which is relevant to that operating condition. In more general terms,simulation 100 makes a determination for the current motion step whether to continue the simulation of the NC program in its then current form based on whether an assessment of one or more predicted values relative to predetermined criteria indicates an undesirable operating condition, such as an operating condition that will or might lead to damage to the tool, the machine tool or workpiece, or lead to inaccuracy of the machining process. Such an assessment may, for example, be a comparison of the predicted values to machine tool specifications (e.g., power and torque limits), thrust force limit for one or more drive axis and cutting tool limits, such as but not limited to cutting tool's characteristic temperature below which the cutting tool material can maintain its mechanical strength, and workpiece attributes. Such assessment may include whether the respective predicted values are outside of respective predetermined tolerances of the limit. - If the predicted values for the current motion step are considered acceptable relative to the relevant limits plus any tolerances,
simulation 100 may proceed to step 112, wheresimulation 100 may consider whether all motion steps have been analyzed, and if all motions steps have not been analyzed, may proceed to the next motion step, returning to step 106 to repeatsteps simulation 100 may proceed to step 114 fromstep 112 and create a data file containing the predicted values for each motion step. The data file may have any suitable structure. - If, at
step 110, it is determined that simulation of the NC program in its current form should not continue, revision to the NC program may be necessary for one or more motion steps. Such revision may be necessary for the current motion step, may be necessary for one or more previous motion steps, and/or may be necessary for one or more subsequent motion steps. -
Simulation 100 may create such revision to the NC program automatically atstep 116, proceeding fromstep 110 to step 116 as indicated by the dashed line. For example,simulation 100 may reduce the feed rate.Simulation 100 may then return to an appropriate step ofsimulation 100. For example, if atstep 116 no revisions were implemented that affected one or more motion steps prior to the current motion step, thensimulation 100 may proceed to step 106 and proceed with the simulation beginning at the revised current motion step. If atstep 116, one or more motion steps prior to the current motion step is revised,simulation 100 may proceed to step 106 and proceed with the simulation beginning at an appropriate motion step such as, for example, the earliest revised motion step, orsimulation 100 may proceed to an earlier step in the simulation, such as for re-initialization, data input, etc.Simulation 100 may proceed to step 106 and proceed at the first motion step regardless of what motion steps were revised. If the revision required a change in initialization or data input atstep 104,simulation 100 may proceed to step 104. - Alternately,
simulation 100 may not automatically create a revision to the NC program. If not, thensimulation 100, proceeding fromstep 110 to step 118 as indicated by the dashed line, may stop the simulation and provide an output indicating thatsimulation 100 determined that continuation of the simulation of the NC program in its current form should not continue. Such output may be in humanly perceptible form, such as an audible or a visual alarm, a pop up notice on a screen, etc. or may be in a form usable by system responsive to the form of the output. Revision to the NC program may be created, such as by a programmer, andsimulation 100 restarted or resumed at an appropriate step. - Alternately,
simulation 100 may provide, following a yes atstep 110, for proceeding to step 116 under certain circumstances and proceeding to step 118 under other circumstances. - It is noted that if there are any revisions to the NC
program following step 110,simulation 100 simulates, at some point, all or part of the revised NC program. It is also noted that the embodiment ofsimulation 100 depicted is but one way in which predicted values may be calculated based on an NC program. For example, step 106 could be executed for every motion step, followed by executingsteps step 108 for every motion step then proceeding to step 110 for every motion step and reporting every condition that exceeds a predetermined limit. -
FIG. 3 illustrates an embodiment which could comprise step 108 ofpre-process simulation 100. Followingstep 106 as described above, atstep 120 the cutting forces and temperature may be calculated for the current motion step. Atstep 122, for each motion step, the power and torque limit of the machine tool is calculated based on the spindle rotation speed for the current motion step. Atstep 124, the bending moment and torsional torque applied to the tool holder/spindle interface are calculated. These may be calculated, for example, based on the calculated load and gauge length of the cutting tool. -
FIG. 4 illustrates an embodiment which could comprise steps executed as part ofstep 108. A cutting tool may have one or more cutting edges, each referred to herein as a flute. The cutting load is distributed along each cutting edge that engages material in a motion step, along the portion of the cutting edge which is engaged with material. The cutting load and temperature may be calculated by analyzing small sections along each cutting edge. For each such small section, the cutting load and temperature may be calculated based on the chip load, cutting speed, radial engagement, cutting tool geometry and work material properties for that small section.FIG. 4 indicates at 130 that for each motion step, each flute may be analyzed. At 132, it is indicated that for each such flute, each small section along the flute may be analyzed. Atstep 134 it may be determined whether the current section is engaged in cutting. If it is not engaged, the analysis may proceed to the next section indicated by 138. If the current section is engaged in cutting, atstep 136, the temperature and force, such as at the spindle interface or the tool, for the section may be calculated. At 138, the analysis may proceed to the next small section of the current flute, and loop back to step 132 to repeat the process until all small sections of the current flute have been considered. After all small sections have been considered, the cutting forces and temperature for the flute may be calculated and stored atstep 140. The force for the flute may be the sum of the forces calculated for each section. The temperature may be the maximum temperature calculated for any section of the flute. Alternately, forces could be summed and temperatures compared with each pass through the loop for each section. If not all flutes of the current motion step have been considered, the analysis may proceed to the next flute that engages material during the current motion step at 142. After all flutes of the current motion step have been considered, the forces and temperature may be calculated at 144 for the motion step. Temperature may be calculated based only on or for only the maximum chip load during the motion step. The temperature for the current motion step may be the highest temperature calculated during the analysis described in this paragraph. Alternatively, forces could be summed and temperatures compared with each pass through the loop for each flute. - Calculation of temperature may be done using any methods known in the art. As is known, once shear and friction forces are known from force calculations, shearing power and friction power may be calculated with these two forces times shear velocity and chip flow speed, respectively. The shear plane temperature may be calculated based on the assumption that all shearing power is converted to heat, which may be done according to the formula
-
-
- where: Ts is the shear plane temperature
- Tr is the reference room temperature
- Fs is shear force
- νs is shear velocity
- b is chip width
- h is chip thickness
- ν is cutting speed
- ρ is density of the work material
- c is the specific heat
- KC is the specific cutting pressure,
- α is rake angle
- ϕ is the shear angle
- θ is the angle made by resultant force and shear plane
All of these parameters can be obtained from the force calculation. Once the shear plane temperature is known, the temperature field along the tool-chip interface can be calculated.
- where: Ts is the shear plane temperature
- Returning to
FIG. 2 ,monitoring system 200 is also referred to herein as realtime monitoring system 200 in thatmonitoring process 200 may be executed in conjunction with the real time actual in-process machining of the workpiece on the machine tool. When a proved NC program and predicted values of conditions which would not lead to undesirable results such as result in damage to cutting tools, the machine tool or the workpiece for each motion step of the NC program, are available, such as frompre-process simulation 100, real time monitoring 200 may be executed simultaneously with the actual machining of the part. It is noted that the proved NC program and predicted values for each motion step do not have to come from execution ofpre-process simulation 100. - After predicted values correlated to the motion steps have been inputted and sorted into a data dictionary (see
FIG. 5 ), and the NC program is loaded into the machine tool (seeFIG. 5 ), at 202 the current position of the tool is received into realtime monitoring system 200 from the machine tool. At 204, that position may be synchronized with the data file, by associating that position with a data point in the data dictionary. At 206, the actual (real time) values of the operating conditions corresponding to the predicted values (which may be obtained by measurement by sensors on the machine tool or by calculations based on such sensors as in the case of bending moment for example), such as forces and temperature, which are passed to realtime monitoring system 200 from the machine tool, may be compared to the predicted values associated with the motion step corresponding to the current position of the tool. As used herein, “actual value” and “actual values” refer to the values of the operating conditions, such as but not limited to cutting loads and temperatures, that actually exist respectively for the machine tool and/or the tool, as directly or indirectly sensed or as calculated based on one or more sensors. Realtime monitoring system 200 considers such actual values that correspond to predicted values. At 208, realtime monitoring system 200 may determine whether all of the specific actual values are within a dynamic limit of the predicted value, such as 15%. If all are, then at 210 realtime monitoring system 200 may consider whether the actual machining process is finished. If the actual machining process is not finished, realtime monitoring system 200 may return to 202 and get the new current position from the machine tool and repeat the simulation. If the process is finished, then realtime monitoring system 200 may end at 212, and all measured data may be saved, in any form such as a log file, which may be used as reference data for subsequent machining of the same part. - It may be determined at 208 that the actual values not are not within the dynamic limit of the predicted values, such as being higher than the upper value of the dynamic limit or being lower than the lower value of the dynamic limit. Actual values which are lower than the lower value of the dynamic limit may be indicative of a problem, such as a broken or missing tool, and real
time monitoring system 200 may proceed to step 216 and output an alarm and/or a warning message, and may stop the machine waiting for user input. - In the case that any of the actual values are higher than the upper value of the dynamic limit,
monitoring system 200 may proceed to step 214 and adjust the tool feed rate with the goal of lowering subsequent actual values to lower than the upper value of the dynamic limit.Monitoring system 200 may provide an alarm or notice, such as a pop up message on a screen, to indicate that action was taken atstep 214.Monitoring system 200 may then proceed to step 202. -
Monitoring system 200 may allow actual values of an operating condition to exceed its upper value of the dynamic limit or to be lower than its lower value of the dynamic limit for the then current position for a predetermined period of time. For example, following an adjustment to the feed rate atstep 214,monitoring system 200 may execute the loop 202-204-206-208-214-202 for a period of time, which may be a predetermined period of time, even though the actual value that prompted the first tool feed rate adjustment in the chain is not lower than the upper value of the dynamic limit. During such a period of time, in one embodiment,monitoring system 200 may not make an adjustment, reachingstep 202 afterstep 208 without making an adjustment to the tool feed rate, whether the actual value of an operating condition is higher than the upper value or is lower than the lower value of the dynamic limit. - Alternately,
monitoring system 200 may not automatically make such an adjustment to the feed rate. For example,monitoring system 200 may proceed to step 216, and an alarm and/or warning message may be outputted, such as a pop up message on a screen, and stop the machining process waiting for user input. In one embodiment,monitoring system 200 may not stop the machining process atstep 216, but proceed to step 202, allowing the actual values of an operating condition to exceed its upper value of the dynamic limit or to be less than the lower value of the dynamic limit for the then current position for a predetermined period of time, similar to as described in the preceding paragraph. -
FIG. 5 diagrammatically illustrates an embodiment ofmonitoring system 200 and interaction withmachine tool controller 300. The proved NC program may be loaded into themachine tool controller 300 at 302 and may be executed to cause the machine tool to machine the part. The data file with the predicted values correlated to the motion steps of the NC program may be inputted and sorted into a data dictionary at 220. As the machine tool operates to machine a part,machine tool controller 300 may send data at 304 which is received by realtime monitoring system 200 at 222. The data may include the current position of the tool and actual values of operating conditions corresponding to the predicted values. At 224monitoring system 200 may search for a data point in the data dictionary that is the closest point to the current cutting tool position received frommachine tool controller 300. If the distance between the current position and a point is determined atstep 226 to be within a tolerance range, such as within the motion step resolution ofsimulation 100, a matching point is considered found. At 228 realtime monitoring system 200 may visualize the actual values, the predicted values and the threshold range vs. the machining time. (An example of a simulation output comparison is illustrated inFIG. 7B , discussed below.) At 230, realtime monitoring system 200 determines whether the actual values are within the dynamic limit. If the actual values are not within the dynamic limit, such as exceeding the upper value of the dynamic limit, at 232 a command may be sent tomachine tool controller 300 to adjust the tool feed rate and/or set an alarm at 306. The feed rate change may be determined based on the ratio of the actual value to predicted value of the particular operating condition, so as to bring the actual value within the dynamic limit. The feed rate change may be implemented bymachine tool controller 300 and the machining process may continue. If the actual values do not fall within the dynamic limit within a predetermined time period, for example five seconds, then the command given at 232 at the expiration of the predetermined time may be to stop the machining process. The predetermined time period could, for example, be zero seconds, in which case the command is given immediately. If the actual values are within the dynamic limit at 230, realtime monitoring system 200 may determine at 234 whether it is at the end of the NC program, and return to step 222 if it is not. When the end of NC program is reached,monitoring system 200 may save all measured data as a file (see step 212) at 236, and stop at 238. - If the distance between the current cutting tool position and the closest data point considered at
step 226 is not within the tolerance range, such as within the motion step resolution ofsimulation 100, the closest data point may not be considered a matching point atstep 226, indicating a matching point is not found. If a matching point is not found at 226, which may mean for example a tool change command is being executed bymachine tool controller 300 or the cutting tool is not engaged in cutting, a zero output may be made at 240 and realtime monitoring system 200 may proceed to 234, without feedback tomachine tool controller 300. -
FIG. 6 illustrates an embodiment of a data structure of the data file outputted bypre-process simulation 100.FIG. 6 illustrates data organized as a data dictionary with Program ID, sequence number, associated tool position, and the cutting loads and temperatures. When a matching point to the data point sent frommachine tool controller 300 to realtime monitoring system 200 is searched, or synchronized as referenced at 204, it is searched in the data dictionary by matching the program ID and sequencing number. Then the matching data point is obtained by finding the closest point to the current cutting tool position. -
FIG. 7A illustrates a prior art method of setting an alarm limit for monitoring actual values, such as cutting loads, spindle power and axis loads of a machine tool during actual machining. A fixed upper alarm limit is set based on the maximum allowable value for the specific operating condition being monitored. -
FIG. 7B illustrates an embodiment of an aspect of this invention, which may be practiced in conjunction with any embodiments discussed above, or completely separate therefrom. Shown inFIG. 7B is adynamic limit envelope 400 which has an upper value, or upper limit boundary, 400U and alower limit boundary 400L. A measured cutting load is represented byline 402, with the horizontal axis representing time. For each position of the cutting tool, there is a respective unique upper and lower limit for the load being monitored. For example, atpoint 404 which corresponds to an actual position of the tool during the machining process, there is anupper limit 404U and alower limit 404L. If, when the tool is at the position corresponding to point 404, the load exceeds the value ofupper limit 404U, an action will be initiated, such as setting an alarm or reducing feed rate. If the load is under 404L, such a condition may indicate an undesirable situation such as a broken tool, and an action may be taken. If the tool is at a position corresponding to point 406, the actual loading is higher than thelower limit 406L, but lower than theupper limit 406U forpoint 406, and no alarm or action will be initiated.Point 408 indicates that the measured load is higher thandynamic limit 400. - The upper and lower limits for each respective point may be determined in any suitable manner, such as, but limited to, based on a predicted value for the operating condition which may be determined through a simulation embodiment described herein, plus or minus a tolerance. Or, the predicted value for the operating condition for each position may be determined by any other methodology, and, in combination with a dynamic limit range, be used to set a dynamic limit for actual machining.
FIG. 7B also illustrates an additional aspect of this embodiment, which may be incorporated with this embodiment, the display of the dynamic limit range of the machine tool, tool holder and/or tool for a period of time into the future. -
FIG. 8 illustrates an operating environment in which various embodiments and aspects of the disclosed technology can be deployed. The operating environment illustrated inFIG. 8 ofmachining system 800 includesmachine tool 802,machine tool controller 804, andsystem 806. In operation,machine tool controller 804 may use itsprocessor 808 to execute various programs stored in itsmemory 810, such as anNC program 812 and real time monitoring program orsystem 814. As set forth herein, this may includemachine tool controller 804 generating instructions for controlling operation ofmachine tool 802 based onNC program 812, and receiving information on the operation ofmachine tool 802, such as actual operating conditions, which may measured by sensors (not shown inFIG. 8 ) on or nearmachine tool 802. This information may then be used by realtime monitoring program 814 as described above, to determine if some type of action should be taken based on the operating conditions being outside of a predetermined acceptable dynamic limit range associated with the motion step inNC program 812 which has been matched to the then current position of the tool. Then, in the event that action was to be taken, realtime monitoring program 814 may implement that action either independently (e.g., by causing an alert to be presented to a user) or in combination with one or more other programs (e.g., by acting as a hypervisor and stopping or altering the operation ofNC program 812 on a previously created virtual machine tool controller instance).System 806 may operate in a similar manner, with itsprocessor 816 executing programs stored in itsmemory 818, such aspre-process simulation 820 which would function as described above:Pre-process simulation 820 may itself simulate an NC program, or may extract relevant data from execution ofNC simulation 822. Predicted values calculated bypre-process simulation 820 may be calculated predicted values which may be provided to real time monitoring 814. - In an operating environment such as shown in
FIG. 8 , the depicted components and programs could be implemented in, and interact with, each other in a variety of different types of hardware which could be used to implement the various illustrated components. For example, processors such as illustrated inFIG. 8 could be implemented using microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), programmable logic controllers (PLCs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. Similarly, a program such as thepre-process simulation 820 or realtime monitoring program 814 may take actions which would influence the operation of an NC program or simulation in a variety of ways in addition to (or as an alternative to) acting as a hypervisor. For example, a monitoring program could implement a remedial action using a parallel communication path, such as realtime monitoring program 814 causing a command to be sent to themachine tool 802 which would override (e.g., a command to shut down) or modify the impact of (e.g., a command to slow down or pause for a set period of time) the commands based onNC program 812. As another alternative, a monitoring program could integrate execution of another program into its own operation (e.g., by apre-process simulation 820 invokingsimulation program 822 from its own code by means of API calls), which would allow it direct control over the integrated program's execution. Other approaches for allowing actions by a monitoring program to influence operation of another program (e.g., messages from the monitoring program being treated as interrupts by the device which is executing it) are also possible. - Variations on the operating environment of
FIG. 8 are also possible. For example, whileFIG. 8 illustrates realtime monitoring program 814 andNC program 812 both being executed bymachine tool controller 804, in some embodiments these programs could be executed on physically distinct devices, with the device executing realtime monitoring program 814 receiving information onmachine tool 802 either indirectly throughmachine tool controller 804, or directly via a separate connection withmachine tool 802 itself. Other variations are also possible, such as embodiments in which various programs are be executed on multi-processor systems rather than single processor systems as shown inFIG. 8 , and embodiments which use different types of memories to store the illustrated programs (e.g., optical media, magnetic media, RAID arrays, removable drives, etc.). Accordingly, the operating environment ofFIG. 8 and the accompanying description should be understood as being illustrative only, and should not be treated as implying limitations on the protection provided by this document or any other document which relies in whole or in part on this disclosure. - In accordance with various aspects of the disclosure, an element, or any portion of an element, or any combination of elements may be implemented with a “processing system” that includes one or more physical devices comprising processors. Examples of processors include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), programmable logic controllers (PLCs), state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. One or more processors in the processing system may execute processor-executable instructions. A processing system that executes instructions to effect a result is a processing system which is configured to perform tasks causing the result, such as by providing instructions to one or more components of the processing system which would cause those components to perform acts which, either on their own or in combination with other acts performed by other components of the processing system would cause the result. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. The software may reside on a computer-readable medium. The computer-readable medium may be a non-transitory computer-readable medium. Computer-readable medium includes, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk (e.g., compact disk (CD), digital versatile disk (DVD)), a smart card, a flash memory device (e.g., card, stick, key drive), random access memory (RAM), read only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), a register, a removable disk, and any other suitable medium for storing software and/or instructions that may be accessed and read by a computer. The computer-readable medium may be resident in the processing system, external to the processing system, or distributed across multiple entities including the processing system. The computer-readable medium may be embodied in a computer-program product. By way of example, a computer-program product may include a computer-readable medium in packaging materials. Those skilled in the art will recognize how best to implement the described functionality presented throughout this disclosure depending on the particular application and the overall design constraints imposed on the overall system.
- “Based on” means that something is determined at least in part by the thing that it is indicated as being “based on.” When something is completely determined by a thing, it will be described as being “based exclusively on” the thing.
- “Processor” means devices which can be configured to perform the various functionality set forth in this disclosure, either individually or in combination with other devices. Examples of “processors” include microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), programmable logic controllers (PLCs), state machines, gated logic, and discrete hardware circuits. The phrase “processing system” is used to refer to one or more processors, which may be included in a single device, or distributed among multiple physical devices.
- “Instructions” means data which can be used to specify physical or logical operations which can be performed by a processor. Instructions should be interpreted broadly to include, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, dynamic linked libraries, executables, threads of execution, procedures, functions, hardware description language, middleware, etc., whether encoded in software, firmware, hardware, microcode, or otherwise.
- A statement that a processing system is “configured” to perform one or more acts means that the processing system includes data (which may include instructions) which can be used in performing the specific acts the processing system is “configured” to do. For example, in the case of a computer (a type of “processing system”) installing Microsoft WORD on a computer “configures” that computer to function as a word processor, which it does using the instructions for Microsoft WORD in combination with other inputs, such as an operating system, and various peripherals (e.g., a keyboard, monitor, etc.).
- The foregoing description has been presented for purposes of illustration and description of this invention. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Examples given, such as involving the use of phrases such as “for example”, “by way of example” and “an example”, are to be interpreted as non-limiting. Obvious modifications or variations are possible in light of the above teachings. The embodiment was chosen and described in order to best illustrate the principles of the invention and their practical application to thereby enable one of ordinary skill in the art to utilize the invention in various embodiments and forms, and with various modifications as are suited to the particular use contemplated. Although only a limited number of embodiments is explained in detail, it is to be understood that the invention is not limited in its scope to the details of construction and arrangement of components set forth in the preceding description or illustrated in the drawings. The innovation is capable of being practiced or carried out in various ways and in various forms and other embodiments. Also specific terminology was used for the sake of clarity. It is to be understood that each specific term includes all technical equivalents which operate in a similar manner to accomplish a similar purpose. It is intended that the scope of the invention be defined by the claims submitted herewith.
Claims (28)
1. A machining system comprising a machine tool and a monitoring system,
a. the machine tool configured:
i. to move a tool carried by the machine tool along a tool path, the tool path comprising a plurality of sequential tool positions;
ii. to provide, to the monitoring system, for each respective tool position of a plurality of the plurality of sequential tool positions a respective actual value of each of at least one operating condition resulting from operation of the machine tool at that respective tool position; and
b. the monitoring system configured to compare each respective actual value of a plurality of the respective actual values to a respective predicted value of the at least one operating condition that corresponds to that respective tool position of the respective actual value.
2. The machining system of claim 1 , wherein the respective predicted value has an associated tool position, and the monitoring system is configured to select the respective predicted value by comparing the respective tool position to the associated tool position.
3. The machining system of claim 1 , wherein the respective predicted value has an associated tool position, and the monitoring system is configured to select the respective predicted value by selecting the respective predicted value of the associated tool position that is within a tolerance range of the respective tool position.
4. The machining system of claim 1 , wherein the respective predicted value has an associated tool position, and the monitoring system is configured to select the respective predicted value by selecting the respective predicted value of the associated tool position that is the closest to the respective tool position.
5. The machining system of claim 1 , wherein the plurality of sequential tool positions are consecutive tool positions.
6. The machining system of claim 1 , wherein the machine tool is configured to move the tool along the tool path by execution of a program comprising a plurality of respective motion steps, each tool position of a plurality of the plurality of sequential tool positions corresponding to a respective motion step.
7. The machining system of claim 1 , wherein the monitoring system is configured to send a command to the machine tool if any respective actual value falls outside of a range which contains the respective predicted value.
8. The machining system of claim 1 , comprising a computer configured to calculate a plurality of the predicted values value by simulating operation of the machine tool.
9. The machining system of claim 1 , wherein the monitoring system is configured to compare a plurality of the respective actual values to respective predicted values that do not correspond to a respective tool position.
10. A method of operating a machine tool, the method comprising:
a. moving a tool carried by the machine tool along a tool path, the tool path comprising a plurality of sequential tool positions;
b. comparing a respective actual value of each of at least one respective operating condition experienced by said machine tool during operation of the machine tool at each respective tool position of a plurality of the plurality of sequential tool positions to a respective predicted value of the at least one operating condition that corresponds to that respective tool position of the respective actual value.
11. The method of claim 10 , wherein the respective predicted value has an associated tool position, and wherein the step of comparing comprises selecting the respective predicted value by comparing the associated tool position to the respective tool position.
12. The method of claim 10 , wherein the respective predicted value has an associated tool position, and wherein the step of comparing comprises selecting the respective predicted value of the associated tool position that is within a tolerance range of the respective tool position.
13. The method of claim 10 , wherein the respective predicted value has an associated tool position, and wherein the step of comparing comprises selecting the respective predicted value of the associated tool position that is closest to the respective tool position.
14. The method of claim 10 , wherein the step of moving a tool along a tool path comprises executing a plurality of motion steps corresponding to a NC program, each respective tool position corresponding to a respective motion step.
15. The method of claim 10 , wherein the step of comparing comprises comparing a plurality of the respective actual values to respective predicted values that do not correspond to a respective tool position.
16. The method of claim 10 , comprising calculating each respective predicted value by simulating operation of the machine tool.
17. The method of claim 10 , wherein the step of moving a tool comprises executing a program which comprises a plurality of motion steps, and comprising calculating each respective predicted value by simulating execution of the plurality of motion steps.
18. The method of claim 10 , wherein the step of comparing comprises comparing the at least one respective actual value to a respective range containing the respective predicted value.
19. The method of claim 10 , comprising sending a command to the machine tool if any respective actual value falls outside of a range which contains the respective predicted value.
20. The method of claim 19 , comprising implementing a remedial action in response to a command.
21. The method of claim 10 , wherein the respective operating condition comprises machine tool operating condition.
22. The method of claim 10 , wherein the respective operating condition is selected from the group consisting of radial load on a tool holder of the machine tool, bending moment on the tool holder, bending moment at the tool holder/spindle interface, spindle power, torque of the machine tool, load on one or more axis servo of the machine tool and temperature of the tool.
23. A method of simulating operation of a machine tool, the method comprising:
a. simulating execution of a plurality of motion steps corresponding to a NC program; and
b. for at least one respective simulated operating condition corresponding to each respective one of a plurality of the plurality of motion steps, calculating at least one respective predicted value for each of the at least one simulated operating condition, wherein at least one of the simulated operating conditions comprises a simulated machine tool operating condition.
24. The method of claim 23 , wherein the step of simulating execution of a plurality of motion steps is executed in a sequence of one motion step at a time and the step of calculating at least one respective predicted value is executed for one of the plurality of motion steps before proceeding to the next motion step of the sequence.
25. The method of claim 23 , comprising for each motion step simulated the step of determining whether any predicted value for that motion step exceeds a limit which is relevant to the simulated operating condition of that predicted value.
26. The method of claim 23 , comprising revising the NC program if any predicted value exceeds the limit.
27. The method of claim 23 , wherein the simulated machine tool operating condition is selected from the group consisting of simulated radial load on a tool holder of the machine tool, simulated bending moment on the tool holder, simulated bending moment at the tool holder/spindle interface, simulated torque of the machine tool, and simulated load on one or more axis servo of the machine tool.
28. A machine comprising a computer configured to:
a. simulate operation of a machine tool by modeling the execution of a plurality of motion steps corresponding to a NC program;
b. for at least one respective simulated operating condition corresponding to each respective one of a plurality of the plurality of motion steps, calculate at least one respective predicted value for each of the at least one respective simulated operating condition, wherein at least one of the simulated operation conditions comprises a simulated machine tool operation condition.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/556,731 US20190384252A1 (en) | 2016-02-04 | 2019-08-30 | Real time machining process monitoring |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/015,860 US10401823B2 (en) | 2016-02-04 | 2016-02-04 | Real time machining process monitoring utilizing preprocess simulation |
US16/556,731 US20190384252A1 (en) | 2016-02-04 | 2019-08-30 | Real time machining process monitoring |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/015,860 Division US10401823B2 (en) | 2016-02-04 | 2016-02-04 | Real time machining process monitoring utilizing preprocess simulation |
Publications (1)
Publication Number | Publication Date |
---|---|
US20190384252A1 true US20190384252A1 (en) | 2019-12-19 |
Family
ID=58018316
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/015,860 Active 2036-08-21 US10401823B2 (en) | 2016-02-04 | 2016-02-04 | Real time machining process monitoring utilizing preprocess simulation |
US16/556,731 Abandoned US20190384252A1 (en) | 2016-02-04 | 2019-08-30 | Real time machining process monitoring |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/015,860 Active 2036-08-21 US10401823B2 (en) | 2016-02-04 | 2016-02-04 | Real time machining process monitoring utilizing preprocess simulation |
Country Status (6)
Country | Link |
---|---|
US (2) | US10401823B2 (en) |
EP (1) | EP3411762A1 (en) |
JP (1) | JP6672470B2 (en) |
CN (1) | CN109154806B (en) |
TW (2) | TWI731253B (en) |
WO (1) | WO2017136645A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190227534A1 (en) * | 2017-09-27 | 2019-07-25 | Omron Corporation | Information processing apparatus, information processing method and computer readable recording medium |
US10877461B2 (en) * | 2016-09-28 | 2020-12-29 | Chetocorporation, S.A. | System and method for operating a cutting machine |
US11314230B2 (en) * | 2019-08-27 | 2022-04-26 | Fanuc Corporation | Machining program generation support device |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6148264B2 (en) * | 2015-01-29 | 2017-06-14 | ファナック株式会社 | Machine tools with a function to automatically change cutting conditions |
JP6490125B2 (en) * | 2017-03-10 | 2019-03-27 | ファナック株式会社 | Numerical control device and CAD / CAM-CNC integrated system |
JP6603272B2 (en) | 2017-07-18 | 2019-11-06 | ファナック株式会社 | Information collecting apparatus and information collecting method |
JP2019066944A (en) * | 2017-09-28 | 2019-04-25 | ファナック株式会社 | Operation management device |
JP6985180B2 (en) * | 2018-02-27 | 2021-12-22 | ファナック株式会社 | Numerical control device |
DE102018206708A1 (en) * | 2018-05-02 | 2019-11-07 | MTU Aero Engines AG | Load detection of a machined workpiece based on a simulation |
TWI676873B (en) * | 2018-10-01 | 2019-11-11 | 財團法人工業技術研究院 | Tools monitoring system and monitoring method thereof |
WO2020261572A1 (en) * | 2019-06-28 | 2020-12-30 | 三菱電機株式会社 | Machining condition searching device and machining condition searching method |
EP3764536A1 (en) * | 2019-07-11 | 2021-01-13 | DENTSPLY SIRONA Inc. | Method of operating a stepper motor in a dental tool machine |
CN112955835A (en) * | 2019-09-27 | 2021-06-11 | 法国圣戈班玻璃厂 | Automated production process and production system for bending glass sheets with integrated digital imaging |
EP3825795A1 (en) * | 2019-11-19 | 2021-05-26 | Siemens Aktiengesellschaft | Online multi-force-adaption during machining |
JP7486115B2 (en) * | 2020-03-12 | 2024-05-17 | 三菱重工業株式会社 | Low-toughness workpiece cutting device, low-toughness workpiece manufacturing method, and low-toughness workpiece manufacturing program |
JP6951524B1 (en) * | 2020-06-08 | 2021-10-20 | 株式会社安川電機 | Control system and control method |
JP6898506B1 (en) | 2020-07-01 | 2021-07-07 | 株式会社安川電機 | Control system, robot system and control method |
EP3961321A1 (en) * | 2020-08-27 | 2022-03-02 | Siemens Aktiengesellschaft | System and method for instantaneous performance management of a machine tool |
DE112021004314T5 (en) * | 2020-09-17 | 2023-06-01 | Fanuc Corporation | Anomaly Detection System and Anomaly Detection Program |
CN112462731B (en) * | 2020-10-16 | 2022-06-24 | 北京西南交大盛阳科技股份有限公司 | Safety supervision control method, safety supervision control device, computer equipment and safety supervision system |
TWI769798B (en) * | 2021-04-28 | 2022-07-01 | 國立勤益科技大學 | Processing strategy analysis system for vertical cutting center machine |
EP4083728A1 (en) * | 2021-04-29 | 2022-11-02 | Siemens Aktiengesellschaft | Methods and systems for adapting a feed rate of a feed control on numerically controlled machine tools |
CN113369796A (en) * | 2021-05-26 | 2021-09-10 | 上海御建装饰设计工程有限公司 | Intelligent automatic tracking and monitoring system for cultural relic restoration |
CN113759825B (en) * | 2021-09-09 | 2023-04-11 | 深圳市富瑞精密制品有限公司 | Control method based on five-axis rotation and CNC machining center online control system |
US20230241739A1 (en) * | 2022-01-28 | 2023-08-03 | Raytheon Technologies Corporation | Bending moment based feed-scheduling in machining |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62277244A (en) | 1986-05-21 | 1987-12-02 | Toyoda Mach Works Ltd | Accommodation control device for machine tool |
US4748554A (en) | 1986-08-14 | 1988-05-31 | Gte Valeron Corporation | Machine monitoring system using motion detection for synchronization |
US4833617A (en) | 1987-08-14 | 1989-05-23 | General Electric Company | Solid modeling based adaptive feedrate control for NC machining |
DE59205627D1 (en) | 1991-12-09 | 1996-04-11 | Siemens Ag | METHOD FOR OPTIMIZING CONTROL PARAMETERS FOR A SYSTEM THAT HAS ACTUAL BEHAVIOR IN DEPENDENCE OF THE CONTROL PARAMETERS |
US5374884A (en) | 1992-11-18 | 1994-12-20 | University Of Michigan, The Board Of Regents Acting . . . | Model-based position-repeatable disturbance compensation |
JPH07132440A (en) | 1993-11-02 | 1995-05-23 | Fanuc Ltd | Machining load monitoring system |
KR100428413B1 (en) * | 1996-11-07 | 2004-08-09 | 가부시키가이샤 미츠토요 | Apparatus and Method for Processing Simulation in Annecy Machining |
CN1098141C (en) * | 1996-11-07 | 2003-01-08 | 大隈株式会社 | Method and apparatus for simulation of NC machining |
US6269284B1 (en) | 1997-05-09 | 2001-07-31 | Kam C. Lau | Real time machine tool error correction using global differential wet modeling |
JP3800576B2 (en) | 1998-03-24 | 2006-07-26 | ヤマザキマザック株式会社 | Machining program creation support device |
EP1018397A1 (en) | 1998-08-24 | 2000-07-12 | Okuma Corporation | Method and apparatus for collecting operation event logs in nc machining |
WO2000012260A1 (en) * | 1998-08-28 | 2000-03-09 | Mori Seiki Co., Ltd. | Method of preparing tool wear data, estimating tool wear amount, and making decision on the use of the tool |
US6502007B1 (en) | 1998-08-28 | 2002-12-31 | Mori Seiki Co., Ltd. | Optimization method and device of NC program in NC machining |
JP3902710B2 (en) * | 1999-03-24 | 2007-04-11 | 株式会社牧野フライス製作所 | Method and apparatus for controlling machine tool by numerical control |
EP1146407A4 (en) | 1999-07-05 | 2005-05-25 | Mitutoyo Corp | Method for writing nc program and nc machining system |
JP4812224B2 (en) * | 2000-06-30 | 2011-11-09 | 株式会社森精機製作所 | Machining simulation apparatus and method in NC machining |
JP4390093B2 (en) | 2000-09-14 | 2009-12-24 | 株式会社森精機製作所 | Automatic programming and simulation equipment |
US6610968B1 (en) | 2000-09-27 | 2003-08-26 | Axcelis Technologies | System and method for controlling movement of a workpiece in a thermal processing system |
US6639177B2 (en) | 2001-03-29 | 2003-10-28 | Gsi Lumonics Corporation | Method and system for processing one or more microstructures of a multi-material device |
TW579424B (en) | 2001-07-09 | 2004-03-11 | Shell Int Research | Vibration analysis for predictive maintenance in machinery |
ITVE20010036A1 (en) | 2001-08-08 | 2003-02-08 | Fpt Ind Spa | METHOD FOR AUTOMATICALLY CORRECTING SYSTEMATIC ERRORS IN MEASURING MACHINES AND IN OPERATING MACHINES AND APPLIANCES |
JP3904945B2 (en) | 2002-02-28 | 2007-04-11 | スター精密株式会社 | Optimal data conversion method and numerical control machine tool for NC program |
DE10311027A1 (en) | 2003-03-13 | 2004-09-30 | Siemens Ag | Testing and process simulation system for machine tool, comprising facility for representing measured data and simulation results on single screen |
TWI250391B (en) | 2003-06-08 | 2006-03-01 | Hon Hai Prec Ind Co Ltd | A system and method for CNC code simulation |
JP4505295B2 (en) | 2004-09-16 | 2010-07-21 | ヤマザキマザック株式会社 | NC machining simulation method and NC machining simulation apparatus |
EP1688215B1 (en) | 2005-02-08 | 2008-03-26 | Mikron Agie Charmilles AG | Device checking method for machine tool |
US7477960B2 (en) | 2005-02-16 | 2009-01-13 | Tokyo Electron Limited | Fault detection and classification (FDC) using a run-to-run controller |
DE102005025338B4 (en) * | 2005-05-31 | 2019-03-14 | Siemens Aktiengesellschaft | 08.Method for machining a workpiece |
DE102005050205A1 (en) | 2005-10-20 | 2007-04-26 | Mtu Aero Engines Gmbh | Method and device for compensating position and shape deviations |
US7885722B2 (en) | 2006-03-23 | 2011-02-08 | Autoform Engineering Gmbh | Method planning for manufacturing sheet-metal forming parts |
TWI379074B (en) | 2007-05-07 | 2012-12-11 | Verity Instr Inc | Calibration method of a radiometric optical monitoring system used for fault detection and process monitoring |
US7933679B1 (en) * | 2007-10-23 | 2011-04-26 | Cessna Aircraft Company | Method for analyzing and optimizing a machining process |
EP2058717B1 (en) | 2007-11-12 | 2011-07-20 | Siemens Aktiengesellschaft | Method and device for operating a machine tool |
FR2934370B1 (en) | 2008-07-25 | 2010-09-03 | Snecma | METHOD FOR DETERMINING THE CONDITIONS OF A WORKING MACHINE PHASE WITH MODULATION OF THE CUTTING SPEED |
JP2010052067A (en) | 2008-08-27 | 2010-03-11 | Kawasaki Heavy Ind Ltd | Automatic finishing apparatus and control method thereof |
US8538574B2 (en) | 2009-04-02 | 2013-09-17 | Dmg Electronics Gmbh | Method and apparatus for generating control data for controlling a tool on a machine tool |
US8010328B2 (en) | 2009-05-19 | 2011-08-30 | Mitsubishi Electric Research Laboratories, Inc. | Method for simulating numerically controlled milling using adaptively sampled distance fields |
US8666533B2 (en) | 2009-10-09 | 2014-03-04 | Siemens Product Lifecycle Management Software Inc. | System, method, and interface for virtual commissioning of press lines |
US8380462B2 (en) | 2010-09-16 | 2013-02-19 | Ford Motor Company | System and method for setting machine limits |
KR101673618B1 (en) | 2010-12-06 | 2016-11-07 | 두산공작기계 주식회사 | Tool Path Part Program Correction System of NC Machine Tool |
US8655476B2 (en) | 2011-03-09 | 2014-02-18 | GM Global Technology Operations LLC | Systems and methods for computationally developing manufacturable and durable cast components |
WO2013009258A1 (en) | 2011-07-14 | 2013-01-17 | S.P.M. Instrument Ab | A method and a system for analysing the condition of a rotating machine part |
US9701019B2 (en) | 2011-09-15 | 2017-07-11 | Convergent Information Technologies Gmbh | System and method for the automatic generation of robot programs |
JP6066041B2 (en) * | 2012-07-17 | 2017-01-25 | 三菱日立パワーシステムズ株式会社 | Processing support device and processing support system |
TWI454868B (en) | 2012-11-02 | 2014-10-01 | Ind Tech Res Inst | Goal-oriented computer numerical controlled automatic tuning system and method |
JP5670501B2 (en) * | 2013-03-21 | 2015-02-18 | ファナック株式会社 | Cutting condition display device |
US9465380B2 (en) * | 2013-08-02 | 2016-10-11 | ICAM Research Corporation | Device, system and methods for automatic development and optimization of positioning paths for multi-axis numerically controlled machining |
US9892215B2 (en) | 2013-09-23 | 2018-02-13 | Mitsubishi Electric Research Laboratories, Inc. | System and method for determining feedrates of machining tools |
US20150127139A1 (en) | 2013-11-07 | 2015-05-07 | The Boeing Company | Real-Time Numerical Control Tool Path Adaptation Using Force Feedback |
JP5860073B2 (en) | 2014-02-13 | 2016-02-16 | ファナック株式会社 | Numerical control device to prevent erroneous machining after changing machining conditions |
CN104898572B (en) * | 2014-03-07 | 2017-10-31 | 兄弟工业株式会社 | Control device |
JP6418763B2 (en) * | 2014-03-19 | 2018-11-07 | Dmg森精機株式会社 | Simulation device for manual operation of machine tools |
CN105081584B (en) * | 2015-08-31 | 2017-08-25 | 宝山钢铁股份有限公司 | The method and its system of plate dynamic following laser cutting are led in a kind of synchronization |
-
2016
- 2016-02-04 US US15/015,860 patent/US10401823B2/en active Active
-
2017
- 2017-02-03 TW TW107125094A patent/TWI731253B/en active
- 2017-02-03 WO PCT/US2017/016382 patent/WO2017136645A1/en active Application Filing
- 2017-02-03 EP EP17704964.0A patent/EP3411762A1/en not_active Withdrawn
- 2017-02-03 TW TW106103750A patent/TWI634401B/en active
- 2017-02-03 JP JP2018540819A patent/JP6672470B2/en active Active
- 2017-02-03 CN CN201780009999.8A patent/CN109154806B/en active Active
-
2019
- 2019-08-30 US US16/556,731 patent/US20190384252A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877461B2 (en) * | 2016-09-28 | 2020-12-29 | Chetocorporation, S.A. | System and method for operating a cutting machine |
US20190227534A1 (en) * | 2017-09-27 | 2019-07-25 | Omron Corporation | Information processing apparatus, information processing method and computer readable recording medium |
US10860010B2 (en) * | 2017-09-27 | 2020-12-08 | Omron Corporation | Information processing apparatus for estimating behaviour of driving device that drives control target, information processing method and computer readable recording medium |
US11314230B2 (en) * | 2019-08-27 | 2022-04-26 | Fanuc Corporation | Machining program generation support device |
Also Published As
Publication number | Publication date |
---|---|
JP6672470B2 (en) | 2020-03-25 |
JP2019504421A (en) | 2019-02-14 |
US20170227945A1 (en) | 2017-08-10 |
WO2017136645A1 (en) | 2017-08-10 |
CN109154806B (en) | 2021-08-03 |
US10401823B2 (en) | 2019-09-03 |
TW201732473A (en) | 2017-09-16 |
TWI634401B (en) | 2018-09-01 |
EP3411762A1 (en) | 2018-12-12 |
CN109154806A (en) | 2019-01-04 |
TW201835701A (en) | 2018-10-01 |
TWI731253B (en) | 2021-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190384252A1 (en) | Real time machining process monitoring | |
Ridwan et al. | A framework for machining optimisation based on STEP-NC | |
US20190294144A1 (en) | Abnormality detection device | |
US11766780B2 (en) | System identification of industrial robot dynamics for safety-critical applications | |
Altintas | Virtual high performance machining | |
JP6896737B2 (en) | How to monitor machine tools and controllers | |
JP7101131B2 (en) | Numerical control system | |
US11144040B2 (en) | Method for estimating error propagation | |
JP2007203346A (en) | Laser beam control method and apparatus | |
US11099542B2 (en) | Input error detection device | |
Saturley et al. | Integration of milling process simulation with on-line monitoring and control | |
Zhang et al. | Minimax optimization strategy for process parameters planning: toward interference-free between tool and flexible workpiece in milling process | |
Yousefian et al. | Point-by-point prediction of cutting force in 3-axis CNC milling machines through voxel framework in digital manufacturing | |
Leal-Muñoz et al. | Identification of the actual process parameters for finishing operations in peripheral milling | |
US10890894B2 (en) | Numerical controller and misinput detecting method | |
JP7452988B2 (en) | Program restart support device | |
US11156986B2 (en) | Machining program editing device | |
Ridwan | STEP-NC enabled machine condition monitoring | |
EP4083728A1 (en) | Methods and systems for adapting a feed rate of a feed control on numerically controlled machine tools | |
WO2024003972A1 (en) | Program optimization device and storage medium | |
WO2024003990A1 (en) | Program optimization device and storage medium | |
US20230364727A1 (en) | Machining method for manufacturing a dental object | |
Klocke et al. | Flexible monitoring strategies for milling operations | |
Csesznok et al. | CNC milling process simulation with the assistance of CAM systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MAKINO INC., OHIO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WANG, ZHIGANG;NAKASHIMA, SHOGO;LARSON, MARK W.;REEL/FRAME:050681/0659 Effective date: 20160226 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |