This application is the US National Stage of International Application No. PCT/DE2006/001855, filed Oct. 20, 2006 and claims the benefit thereof. The International Application claims the benefits of German application No. 10 2006 009 263.5 filed Feb. 28, 2006, both of the applications are incorporated by reference herein in their entirety.
The invention relates to a system and a method for analyzing a production process involving at least one production device.
Such a system or method is used, for example, for developing new programs for numerically controlled machine tools. Modern machine tools have a numerical control which allows a production process to be defined in software in the form of an NC program. Within such an NC program, a user can define operations which a machine tool is to carry out for machining a workpiece in the form of individual instructions. For example, such an NC program can specify the time in which or speed with which a tool is to be moved to a particular starting position at the beginning of a production process. In the case of a numerically controlled milling machine, the NC program defines a cutting path which the tool is to follow to machine the workpiece at a rate of feed likewise defined in the program.
NC-controlled machine tools offer the user a high degree of flexibility in respect of the end products to be produced. If a new product is to be produced on a machine tool, a new NC program must be created or an existing one modified for this purpose. It is desirable that this NC program be analyzed, evaluated and optimized before it is used for volume production.
New NC programs or sub-routines are generally developed in advance using a suitable programming system, independently of the target system. Before the program is used for mass production, it is often tested on a simulation system, an abstract control model generally being used for the actual target system. Finally the program can also be tested in real time on the actual target system itself, i.e. on the actual control or actual machine. Although real-time testing on the actual target system provides more accurate and informative results than simulation on a simulation system because of the abstract and simplified models used in the simulation, it is much more time-consuming.
Tools known as profilers are often used to analyze and optimize the runtime behavior of software programs. Profilers help a developer to detect and eliminate problem areas by analyzing and comparing running programs. The purpose of profiler tools is generally to maximize the efficiency and therefore the speed of execution of a software program on a computing unit.
DE 199 28 980 A1 discloses a method, a system and a device for generating and optimizing native code in a runtime compiler from a group of bytecodes. Using a “profiling” process performed during one or more program runs, knowledge of a set of classes used in a program is collected and can be used for optimizing the program for a specific runtime environment.
In today's production plants, because optimum machine capacity utilization is required, it is usual for production processes to be executed in parallel on a plurality of production devices, with all the machining resources having to be synchronized. The planning and subsequent coordination of these sequences are highly complex. The actual coordination of multiple machine attendance is therefore often performed in practice by a machine operator himself. When a plurality of production devices are used as part of a production process, prior production planning is difficult or only possible on the basis of empirical values or estimates. The more precise the planning of multiple machine operation, the higher the planning complexity required for maximizing machine capacity utilization.
Various methods have hitherto been used for planning multiple machine attendance in a production process. In the simplest case, production planning is based on a rough estimate using empirical values. These empirical values cover all the relevant operations such as automatic sequences (turning, milling), manual interventions (rechucking of workpieces) or restrictions of operation due to operational requirements such as working hours, rest breaks or meal breaks, the precise multiple machine attendance strategy generally being defined by the machine operator himself.
In a somewhat more precise but also much more complex procedure, all the operations in a production line are listed and provided with the relevant estimated or calculated time requirement, all the operations resulting from a specific multiple machine attendance having to be recorded beforehand.
The object of the invention is to allow improved analysis of a production process for production planning.
This object is achieved by a method for analyzing a production process involving at least one production device controlled by a control program, said method comprising the following steps:
The object is also achieved by a system for analyzing a production process involving at least one production device controlled by a control program, said system having
The object is further achieved by a computer program product designed to carry out the abovementioned method when run on a computer.
With the method according to the invention at least one control program is analyzed by means of a simulation program. The control program is designed to control a production device involved in the production process. A plurality of production devices can of course also be involved in the production process, in which case the method can be applied to the correspondingly larger number of control programs in the same way.
According to the invention, at least one section of the control program is simulated using the simulation program. The control program instructions executed in the course of this are logged. A data record associated with the control program is generated in which the logged instructions are each assigned the real-time requirement of an action produced by the logged instruction on the production device. In this way there can be generated, for the entire control program, a tabular listing in which each instruction of the control program is assigned the associated real-time requirement.
The granularity with which the instructions are logged for this listing is basically freely selectable. The real-time requirement for each individual instruction[s] can thus be discretely determined and logged, said instruction possibly being e.g. a straight addition to be carried out on the target system. Alternatively, however, a function call can also be understood as an instruction in this sense, said function call being logged and the time required for processing the complete function on the production device being determined and stored in the associated data record.
If a plurality of production devices are involved in the production process, it is possible to deal with their control programs in a completely analogous manner. In this way, after application of the method, a plurality of data records are obtained which document the real-time requirement of the associated control programs on the corresponding production devices for the individual instructions required for carrying out the production process. The data records therefore provide a virtually ideal basis for optimizing the production process. Using these data records, the control programs can be optimized such that optimum machine capacity utilization can be achieved for the production devices, thereby enabling the efficiency of the entire production process to be maximized.
In an advantageous embodiment of the invention, to simulate the at least one program section and generate the data record, a machine model characterizing the production device and its configuration data are accessed, the machine model and the configuration data being stored on a data processing device connected to the production device via a data link. The data processing device is connected to the production device(s) involved in the production process e.g. via a corporate intranet or even the Internet and is therefore also able to access its/their current configuration and use the configuration data for the subsequent simulation. With the aid of the configuration data, the machine model(s) stored on the data processing device can be configured such that they reproduce the associated actual production device as well as possible. A simulation environment such as VNCK (Virtual NC Kernel) can finally be used to determine the real-time requirement of the individual instructions of the control program and create the corresponding data record using the fully configured machine model. If a plurality of production devices are involved in the production process, correspondingly more machine models and configuration data records are stored on the data processing device. For each production device an associated data record is generated.
For maximally precise analysis of the production process and therefore maximally efficient production planning based thereon, not only the productive times of the machines involved must be known, but also the times during which the corresponding machines are in a non-productive state. Such non-productive times may be personnel-related. Examples include rest breaks, the lunch period as well as the limits of the working hours. Another embodiment is therefore advantageous in which the non-productive times actually arising during execution of the program section on the production device are determined on the basis of a time table stored on the data processing device and/or of a behavior model stored on the data processing device and are logged in the data record. For visualization of a plurality of data records of a plurality of production devices, both the productive times and the non-productive times can be indicated in a joint display.
In another advantageous embodiment of the invention, the method is carried out using a client computer which is connected to the data processing device via an intranet or the Internet, the data processing device here acting as a server to which in particular a plurality of client computers are connected as workstations. The simulation program can be stored on the data processing device and initiated via the client computer. Alternatively, the simulation program can also be installed on each client, the machine model, the time table and/or the behavior model being loaded from the data processing device to the client computer.
Here in particular another embodiment of the invention is advantageous in which the time table and/or the behavior model are modified from the client computer. For example, in the event of a change in the working hours on which the production process is based, a user can modify the time table stored on the data processing device accordingly from the client computer. Likewise, a new behavior model can also be loaded onto the data processing device from the client computer.
In another advantageous embodiment of the invention, the real-time requirement of the actions produced by the logged instructions are added together within the associated data record to produce a machining time required for execution of the program section on the corresponding production device. This is advisable in order to automatically determine the total time requirement of the simulated program section. If, as will generally be the case, the program section is the entire control program, the machining time corresponds to the time which the real target system requires for executing the corresponding control program for the actual production process. In particular, this enables not only the times in which the machine is productive but also its non-productive times due e.g. to tool changes or the like to be taken into account. Different information may be useful for optimizing the control programs. Thus, for example, an NC programmer will benefit from an advantageous embodiment of the invention in which the number of executions of the instructions during the simulation of the program section is logged.
Application of the inventive method is useful and advantageous particularly within an embodiment of the invention in which the control program is an NC program for production devices implemented as numerically controlled NC machines.
In an advantageous embodiment of the invention, the method is carried out for at least one other production device involved in the production process and controlled by another control program. The abovementioned steps are performed in a completely analogously manner for the two production devices or their control programs, resulting in a data record for each production device or control program. The data records can be compared with one another in order to optimize the overall process.
Helpful particularly for manually performed deriving of optimization criteria is an embodiment of the invention is in which the data records of the two control programs are graphically visualized in a common display. A planner can thus very quickly identify where a requirement exists for optimizing the multiple machine production process. Due to the fact that he can simultaneously take in the in particular graphical representation of the two data records for the two control processes, the productive and non-productive times of the production devices involved which are caused by the respective control programs can be better coordinated.
In another advantageous embodiment of the invention, the data records of the two control programs are compared with one another to derive optimization criteria for the production process. Said optimization criteria can be automatically generated by in particular computer-aided analysis of the two data records.
The invention will now be explained and described in greater detail with reference to the exemplary embodiments illustrated in the accompanying drawings in which:
The machine tool 3 is linked to a data processing device 4 via an intranet. Via this data link the first control program 1 is loaded into a first memory area of the data processing device 4. Also installed on the data processing device 4 in a second memory area is a simulation program designed to simulate the control program 1 taking real-time conditions into account. The simulation software stored on the data processing device 4 allows control programs to be simulated in a form in which they can also be executed on the numerical control 2. A configuration data record 5 is also loaded from the machine tool 3 onto the data processing device 4. Said configuration data record 5 can be used to configure a machine model stored on the data processing device 4 in such a way that the behavior of the machine tool 3 can be replicated as accurately as possible by the simulation. For example, the configuration data record 5 could contain a sampling rate of the numerical control 2 which defines the minimum time base with which instructions of the control program 1 can be executed on the numerical control 2. Such a sampling rate ultimately affects the real-time behavior of the machine tool 3, as it defines the time requirement of control program instructions to be numerically processed.
The control program 1 consists of a plurality of program sections 10 which can be e.g. sub-routines. Said program sections 10 are in turn made up of individual instructions 100. These instructions can be simple operations that cannot be scaled further or function calls which in turn give rise to a number of further instructions or operations.
To analyze the runtime behavior of the control program 1, it is simulated on the data processing device 4 to determine the real-time requirement for the control program 1 or at least of individual program sections 10 of the control program 1. During simulation of the control program 1 there is determined, for each individual instruction 100, a machining time interval which specifies the amount of real time which would be required on the target system 6 by an operation executed on the machine tool 3 by means of the corresponding instruction 100. The machining time intervals are logged together with the associated instructions 100. The machine model of the target system 6 and its configuration data record 5 stored on the data processing device 4 are used as the information source for assigning the machining time intervals to the individual instructions 100.
The results of such a runtime analysis of the control program 1 are then displayed via an output mask of the simulation program, the individual instructions 100 being represented, for example, by horizontal bars 7 which graphically illustrate the real-time requirement of the instructions 100.
By way of example, the individual steps for analyzing the production process are shown in
Installed on the data processing device 4 is a simulation program such as VNCK with which the real-time behavior of actual production plants can be simulated. Machine models for the production devices 3, 8 are additionally stored in a memory of the data processing device 4.
The following is a conceivable scenario for using the system shown. A user 13 is tasked with optimizing the multiple machine production process in order to maximize machine capacity utilization for both the production device 3 and the other production device 8, thereby ensuring maximum production process efficiency. For this purpose, an analysis tool is installed on the client computer 9. The analysis tool enables data records of the two production devices 3, 8 resulting from analysis of their runtime behavior or rather the runtime behavior of their control programs to be graphically represented. The data records are generated using the simulation program installed on the data processing device 4.
To simulate the production process, the respective machine configuration is first loaded from both the production device 3 and the other production device 8 via the intranet link 11. On the basis of the loaded machine configurations, the associated machine models can be configured accordingly in order to enable the actual plants to be modeled as realistically is possible. The control programs for controlling the production devices 3, 8 are also loaded onto the data processing device 4 via the intranet link 11. On the basis of the control programs, machine models and machine configuration data records, a data record containing information about the real-time behavior of the numerically controlled production process is generated for each of the two production devices 3, 8 by simulation. Said data records can contain the productive times of the corresponding production devices 3, 8 and also, if corresponding basic information is stored on the data processing device 4, the non-productive times occurring during the process. The graphical representation of the data records on the client computer 9 enables the user 13 to identify optimization potential in the multiple machine production process and if necessary modify the control programs of the two production devices 3, 8 accordingly, thereby increasing the machine utilization factors.
The data processing device 4 is connected via an intranet link 11 to both the production device 3 and the other production device 8. Additionally stored in a memory 19 of the data processing device 4 are a machine model for each of the two production device 3, 8 as well as behavior modules and time tables which reproduce the typical behavior of the machine operator 14. Corresponding time tables and/or behavior models are modifiable by the machine operator 14 via a Web portal 17 of the data processing device 4 and can therefore be adapted to changed operating conditions. The behavior modules stored in the memory 19 or the specified operator control rules can also be the result of an ergonomic simulation 16. These ergonomic simulation results 16 are likewise stored in the memory 19 of the data processing device 4.
To plan the production process, the user 13 creates a control program 1 for both the production device 3 and the other production device 8. The two control programs 1, only one of which is shown here by way of example, are loaded into the data processing device 4 where they are simulated on the basis of the information stored in the memory 19 and using the simulation program 18. The simulation takes into account not only the corresponding machine models of the production devices 3, 8 but also the configuration data which is loaded into the data processing device 4 if necessary via the intranet link 11.
The simulation results 20 initially only receive a chronological distribution of the times during which the production devices 3, 8 are productive. Said simulation results 20 are finally augmented by the non-productive times arising during the production process on the basis of the behavior models or time tables stored in the memory 19, finally resulting in, for each of the two production devices 3, 8, a data record 21 documenting a chronological distribution of the productive and non-productive times during the production process for the associated production device 3, 8.
For each of the two production devices 3, 8 the associated data records 21 can initially also be represented separately in the form of a first screen display 22, with manually caused non-productive times having the lowest ordinate value. Non-productive times caused by automatic operation have the intermediate ordinate value and the productive times of the corresponding production device 3, 8 are given the highest ordinate value in the display.
As these results are available for the two production devices 3, 8, an analysis tool can now be used to generate a second screen display 23 on the basis of which multiple machine operation can be thoroughly analyzed and finally optimized taking user interventions into account. For the production devices 3, 8, the coarsely hatched bars indicate when said devices are in automatic mode. For the machine operator 14, the coarsely hatched bar indicates when said operator has a break. This is consistently the case only when the two production devices 3, 8 are in automatic mode. On the other hand, the closely hatched bars indicate when manual operator control is necessary for the respective production device 3, 8. Consequently, for the machine operator 14, a closely hatched bar is always shown when one of the two production devices 3, 8 is in a “manual operator control” operating state.
If the production device 3 and the other production device 8 both have the operating state “manual operator control”, this results in a clash represented in the timing chart of the machine operator 14 as a cross-hatched bar. Such an operator control clash results in a delay to the production process and must therefore be eliminated in a subsequent optimization step.
On the basis of the second screen display 23 shown, which was created using an analysis tool, the subsequent optimization step can be performed manually by the operator 13. Alternatively, however, it is also conceivable for automatic determination of optimization criteria to take place on the basis of the data records 21 on which the second screen display 23 is based, said criteria resulting in modification of the control programs of the production devices 3, 8 and thereby increasing machine capacity utilization.
Number | Date | Country | Kind |
---|---|---|---|
10 2006 009 263 | Feb 2006 | DE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/DE2006/001855 | 10/20/2006 | WO | 00 | 8/26/2008 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2007/098724 | 9/7/2007 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5410469 | Sakamoto et al. | Apr 1995 | A |
5454086 | Alpert et al. | Sep 1995 | A |
6928450 | Mogi et al. | Aug 2005 | B2 |
7684887 | Behrisch et al. | Mar 2010 | B2 |
20010034592 | Herman | Oct 2001 | A1 |
20030093442 | Mogi et al. | May 2003 | A1 |
20040220688 | Behrisch et al. | Nov 2004 | A1 |
20040225552 | Ikeda et al. | Nov 2004 | A1 |
20050043922 | Weidl et al. | Feb 2005 | A1 |
20080215295 | Shiraishi | Sep 2008 | A1 |
Number | Date | Country |
---|---|---|
199 28 980 | Jan 2000 | DE |
0 104 503 | Apr 1984 | EP |
2 118 328 | Oct 1983 | GB |
11 282520 | Oct 1999 | JP |
2001 209411 | Aug 2001 | JP |
Number | Date | Country | |
---|---|---|---|
20090069905 A1 | Mar 2009 | US |