WO2009076987A1 - System und verfahren zur simulation eines ablaufs eines steuerungsprogramms - Google Patents
System und verfahren zur simulation eines ablaufs eines steuerungsprogramms Download PDFInfo
- Publication number
- WO2009076987A1 WO2009076987A1 PCT/EP2007/011069 EP2007011069W WO2009076987A1 WO 2009076987 A1 WO2009076987 A1 WO 2009076987A1 EP 2007011069 W EP2007011069 W EP 2007011069W WO 2009076987 A1 WO2009076987 A1 WO 2009076987A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- control program
- program
- simulation
- processing unit
- result data
- Prior art date
Links
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/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
Definitions
- the invention relates to a system and a method for simulating a sequence of a control program, which is suitable for running on programmable logic controllers or numerical machine tool controls.
- a control program is understood to be a software program that defines the activation in an industrial process of participating actuators. In the field of manufacturing and process automation, this could be, for example, a program for a programmable logic controller. Furthermore, such a control program may represent an NC program for controlling a numerically controlled machine tool.
- Test target hardware in a simulation The aid of the simulation makes it possible, on the one hand, to examine operating cases that are difficult to examine in the real process environment with simple means and without risk. With a simulation, programming errors can be detected before they cause damage to the system to be controlled. In many cases, however, a simulation can also be used to investigate and optimize the runtime behavior of the control program. In this case, time can be saved in many cases in comparison to a runtime investigation in the real hardware environment.
- SINUMERIK VNCK Virtual NC Kernel
- the simulation time of an NC part program with SINUMERIK VNCK is considerably shorter than the runtime of the NC part program during processing on the real control of the real machine.
- a concrete milling of a encoder stop on a real machine requires 1 minute and 54 seconds.
- the identical parts program can be executed on the virtual control in 17 seconds if the output of the simulation results obtained is dispensed with.
- the described processing time gain is not always given in the simulation. Whether the simulation is faster than the real processing depends crucially on the parameterization of the required simulation output and, of course, on the computing power of the simulation computer. If a very precise trajectory of the calculated trajectory of the drive of the machine tool is required as the simulation result, it may be that the additional expenditure incurred by the output of the simulation results means that the simulation runs more slowly than the real system. If, in the case of the NC part program already mentioned above, an output of the speed profile is required every 0.1 mm of the contour curve, the same part program requires 19 minutes and 51 seconds. This is about 10 times longer than the real machining on the real machine tool requires. This extreme increase in runtime results in the simulation through the protocol overhead of additional software interfaces that are required to output the simulation results.
- the invention is therefore based on the object to enable the fastest possible and as realistic as possible simulation of a control program.
- a computer program product containing program code means for carrying out such a method when said computer program product is executed on a data processing system also achieves the stated object.
- a system for simulating a sequence of a control program comprising: a synchronization preprocessor for dividing the control program into at least a first and a second program section, at least a first and a second processing unit for parallel simulation of the complete control program, wherein the first processing unit is set up to output a first result data set of the simulation of the first program section, and the second processing unit is set up to output a second result data set to be displayed of the simulation of the second program section,
- Merging means for merging the first and second result data sets into a total result data set.
- the invention is based on the finding that a considerable part of the simulation time is attributable to the output of the simulation results. Of course, such an output of the result data sets can not be avoided since the user of a simulation is interested in exactly these.
- the basic idea of the invention is therefore to distribute the output of the result data sets to different processing units, so that this time-consuming process can be parallelized.
- a simulation of the complete control program is carried out by both the first and the second processing unit.
- Each processing unit therefore processes the control program as well as the target hardware, for example a numerical control or a PLC (Programmable Logic Controller) does, which is usually executed with a single core processor.
- each of the processing units is responsible only for outputting a portion of the simulation results.
- control program is divided into at least two program sections. This can be effected, for example, by setting a corresponding synchronization point within the control program which separates the first program section from the second program section.
- the so-divided control program is transferred to both the first processing unit and the second processing unit. It is determined that the first processing unit is responsible for outputting the first result data set, which results from the simulation of the first program section.
- the first processing unit will as a rule calculate the complete control program, ie also the second program section, it will not output the simulation results resulting from the calculation of the second program section. Because of this, it will be able to process this second program section much faster than the first program section.
- the second processing unit will dispense with the output of corresponding simulation results and thus be able to execute this program section much faster compared to the first processing unit.
- the second processing unit is set up to generate the second result data set and correspondingly writes the simulation results that result from the calculation of this second program section into an output buffer.
- the two processing units work in parallel. If both processing units the complete control program and have generated the result data sets assigned to them, the result data sets are combined into a total result data set.
- the total result data set thus contains the simulation results of both the first and the second program section and thus the simulation results of the complete simulation.
- both processing units process the simulation program in parallel, but are only responsible for a part of the data output, a significant acceleration of the simulation can be achieved. By adding additional processing units operating in parallel, this time saving can be further increased. If a number of N processing units are provided here, then the control program must be subdivided into N program sections. Each of the N processing units is responsible only for the output of the simulation results of one of these N sections of the control program.
- the first processing unit does not necessarily have to process the complete control program. It is sufficient if it terminates the processing after the end of the first program section, since it no longer has to generate output for the remainder of the control program. It is therefore sufficient if each participating processing unit simulates the control program from the beginning of the program to the end of the program section, for the result of which it is responsible.
- an advantageous embodiment of the invention is characterized in that a first virtual machine is used as the first processing unit and a second virtual machine as the second processing unit, wherein the virtual machines each simulate the behavior of a real controller, which is provided for executing the control program and in particular has only one arithmetic unit.
- a real machine tool control system has only one arithmetic unit, so that in order to bring about the most realistic simulation of the control program, the complete control program must be executed completely on each virtual machine.
- the speed gain is achieved by distributing the output of the result data to the virtual controllers used.
- the aforementioned virtualization systems can be operated in parallel for the parallelization of entire user systems with virtual controllers on future multiprocessor systems without loss of performance.
- a typical field of application for the invention described here is the area of machine tools.
- the control program is an NC control program for a machine tool, and the distribution of the control program takes place in such a way that the first and second result data quantities have essentially the same size.
- the time required to output the result data depends on the size which have these amounts of data and thus on the number of output points that are generated in the program sections involved. Therefore, a minimum simulation time is achieved by uniformly distributing the data volumes or output points to the virtual machines involved in the simulation.
- an embodiment of the invention is advantageous in which the division of the control program is such that the distance traveled during the first program section of the Tool substantially corresponds to the distance traveled during the second program section distance. Such a division automatically generates essentially equally large result data sets of the participating virtual machines.
- an alternative advantageous embodiment of the invention is characterized in that a constant temporal resolution for the simulation of a machining operation of the machine tool is selected and the division of the control program is such that the claimed during the first program section processing time in
- an embodiment of the invention can be realized in which the method is carried out by means of a web server in such a way that the overall result data amount is visually displayed with a web client.
- a web client can be l cry.
- the aid of the simulation is offered for example via a web portal, so that a machine tool operator has access. If he now wants to test a new control program for his machine tool, he can send a corresponding simulation job to the web server. This executes the simulation and sends as a response the total result data quantity to the client, which can create it, for example, with a conventional web browser and a suitable plug-in.
- the total result quantity can be transmitted to a CAD / CAM system and visualized there. This is particularly useful if the control program was previously generated by an NC post processor from a processing task defined in the CAM system.
- Figure 2 shows a division of a control program for a
- Machine tool based on a tool path to be taken back by the tool
- FIG. 3 shows a schematic representation of a system for simulating a sequence of a control program according to an embodiment of the invention.
- control program 1 shows a method for simulating a sequence of a control program 1 according to an embodiment of the invention.
- the control program 1 is an NC part program ⁇ for controlling a numerically controlled Machine tool.
- the control program 1 is intended for implementation on a real machine tool control, which works with only a single core arithmetic unit.
- the control program 1 is to be simulated in advance, before it is loaded on the real controller.
- the goal here is to optimize the runtime of the control program 1 in advance in order to achieve the highest possible throughput. Therefore, in a first method step, the control program 1 is subdivided into a first program section 2 and a second program section 3.
- the aim is that the result data sets 7, 8 respectively generated by the two program sections 2, 3 are approximately the same size. This is due to the fact that a large part of the total simulation time is consumed by the output of the simulation data. Therefore, a minimum simulation time is achieved when a uniform distribution of data output is achieved.
- the division of the control program 1 can take place with the aid of a so-called synchronization point, which is set in the control program 1 between the first program section 2 and the second program section 3.
- the complete control program 1 is then sent to both a first and a second processing unit 5, 6.
- the first program section 3 of the control program is defined as the output section for the first processing unit 5, and the second program section 3 is defined as the output section for the second processing unit 6.
- each of the processing units 5, 6 only generates part of the desired simulation results in the form of representable data sets.
- the result data sets 7, 8 must be combined.
- the result of this is a total result data set 9 which, in the end, represents the result of the simulation for the user by means of the visualization software.
- FIG. 2 shows a division of a control program 1 for a machine tool on the basis of a tool path to be returned by the tool.
- the underlying control program 1 defines two tool paths 15, 16 located in different spatial planes.
- the user of a simulation software suitable for the simulation of the control program 1 defines in advance a constant local resolution for the output of the simulation results. This means that it always expects the same number of data points per tool path traveled. Since the first toolpath 15 is shorter than the second toolpath 16, the output of the data for the second toolpath 16 will require much more time than for the first toolpath 15.
- control program 1 is now to be divided into two program sections 2, 3, to distribute the output of the simulation results to two processing units.
- a minimum total simulation time is aimed for.
- this requires that the distribution of the control program 1 be such that the resulting result data sets are the same size.
- the division of the control program 1 into the two program sections 2, 3 takes place with the aid of a synchronization processor 10.
- This simulation processor 10 recognizes that the control program 1 must be divided in such a way that the user requests the constant local resolution required for the output of the simulation results to be moved toolpaths of both program sections 2,3 are the same. Therefore, the first program section is assigned a new first toolpath 17, which corresponds to the original first toolpath 15 and a part 19 of the original second toolpath 16. As a new second toolpath 18 results in a shortened original second toolpath 16th
- the control program 1 thus divided and provided with corresponding Trace ON and Trace OFF commands is now distributed to two processing units for parallel execution, as already described in FIG.
- the resulting data sets of results must, as also already explained in FIG. 1, be concentrated into an overall result data set that can be visualized by a user.
- control program 1 which in turn is an NC control program for controlling a machine tool, was automatically generated by means of a postprocessor integrated in a CAM (Computer Aided Manufacturing) system.
- the postprocessor generates from an initially generally defined in the CAM system. defined machining task, a machine-specific NC code.
- the system comprises a synchronization processor 10 which subdivides this NC part program into three program sections 2, 3, 11. This can either be implemented as a standalone application or as part of a common NC post processor.
- a subdivision into the three program sections 2, 3, 11 is motivated by the fact that three processing units 5, 6, 12 executed as virtual machines are used to simulate the control program 1. Therefore, the output of the simulation results is evenly distributed among the three virtual machines.
- the user specifies that a time-constant resolution is desired when outputting the simulation results. This means that the same number of data points should be output as the simulation result per processing time interval.
- Trace ON and Trace OFF commands are inserted into the control program 1, which identify the program sections 2, 3, 11 in which the respective virtual machine should output the simulation results.
- the first processing unit 5 is given a version of the control program 1 in which a trace ON command is inserted at the beginning of the first program section 2, and a trace OFF command at the end of the first program section 2.
- the virtual Control that it only has to write the simulation results in an output buffer for the first program section 2.
- the version of the control program 1 sent to the second processing unit 6 there is a trace ON command at the beginning of the second program section 3 and a trace off command at the end of the second program section 3.
- the first and second program sections 2, 3 are only executed by the third processing unit 12 without writing simulation results in the output buffer.
- result data sets 7, 8, 11 are produced, each representing only a part of the simulation results of the entire simulation.
- result data sets 7, 8, 13 are concentrated by merging means 14 of the system into a total result data set 9.
- This overall result data 9 can then be visualized and evaluated, for example, for purposes of optimizing the runtime.
- the total result data quantity 9 is supplied to the CAM system via a data interface and displayed by means of a visualization environment of the CAM system.
- FIG. 3 shows how the total simulation time can be significantly reduced by adding further processing units and an associated further finely granular distribution of the control program 1 into individual program sections 2, 3, 11.
- the more processing units 5, 6, 12 are provided and the more program sections are defined accordingly, the more the simulation duration approaches the value that would be required without any data output.
- the invention is therefore in no way limited to the exemplary embodiments shown with two or three parallel processing units.
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
Abstract
Die Erfindung betrifft ein System und ein Verfahren zur Simulation eines Ablaufs eines Steuerungsprogramms (1). Um eine möglichst schnelle und möglichst realitätsnahe Simulation des Steuerungsprogramms (1) zu ermöglichen, werden folgende Verfahrensschritte vorgeschlagen: Aufteilung des Steuerungsprogramms (1) in mindestens einen ersten und einen zweiten Programmabschnitt (2, 3), parallele Simulation des vollständigen Steuerungsprogramms (1) mit mindestens einer ersten und einer zweiten Verarbeitungseinheit (5, 6), wobei auf der ersten Verarbeitungseinheit (5) eine erste darzustellende Ergebnisdatenmenge (7) der Simulation des ersten Programmabschnittes (2) und auf der zweiten Verarbeitungseinheit (6) eine zweite darzustellende Ergebnisdatenmenge (8) der Simulation des zweiten Programmabschnittes (3) ausgegeben wird, Zusammenführen der ersten und zweiten Ergebnisdatenmenge (7, 8) zu einer für eine Bildschirmausgabe vorgesehene Gesamtergebnisdatenmenge (9).
Description
Beschreibung
System und Verfahren zur Simulation eines Ablaufs eines Steu- erungsprogramms
Die Erfindung betrifft ein System und ein Verfahren zur Simulation eines Ablaufs eines Steuerungsprogramms, welches zum Ablauf auf speicherprogrammierbaren Steuerungen oder numerischen Werkzeugmaschinensteuerungen geeignet ist. Unter einem Steuerungsprogramm wird also in diesem Zusammenhang ein Softwareprogramm verstanden, das die Ansteuerung in einem industriellen Prozess beteiligter Aktoren definiert. Im Bereich der Fertigungs- und Prozessautomatisierung könnte dies beispielsweise ein Programm für eine speicherprogrammierbare Steuerung sein. Ferner kann ein solches Steuerungsprogramm ein NC-Programm zur Ansteuerung einer numerisch gesteuerten Werkzeugmaschine darstellen.
Häufig besteht in den genannten Anwendungsfällen der Wunsch, ein Steuerungsprogramm vor dessen Implementierung auf der
Zielhardware in einer Simulation zu testen. Das Hilfsmittel der Simulation erlaubt es zum einen, Betriebsfälle, die in der realen Prozessumgebung nur schwer zu untersuchen sind, mit einfachen Mitteln und gefahrlos zu untersuchen. Mit einer Simulation können Programmierfehler erkannt werden, bevor diese zu Schäden an dem zu steuernden System führen. In vielen Fällen kann eine Simulation aber auch dazu genutzt werden, das Laufzeitverhalten des Steuerungsprogramms zu untersuchen und zu optimieren. Hierbei kann im Vergleich zu einer Laufzeituntersuchung in der realen Hardwareumgebung in vielen Fällen Zeit eingespart werden.
Beispielsweise aus Motion World, September 2005, "Mehrwert: Simulation" ist die virtuelle Steuerung "SINUMERIK VNCK" be- kannt, die eine Simulation von NC-Teileprogrammen (NC = Nume- ric Control) erlaubt und dabei das Verhalten der numerischen Werkzeugsmaschinensteuerung SINUMERIK der Firma Siemens sehr genau abbildet. Auf diese Art und Weise ist eine sehr reali-
tätsnahe Untersuchung des Laufzeitverhaltens eines NC-Teile- programms mit Hilfe dieser Simulationssoftware möglich. Mit SINUMERIK VNCK (VNCK = Virtual NC Kernel) können genaue Aussagen über die Bearbeitungszeit (Hauptzeit) eines Werkstücks auf der entsprechenden Werkzeugmaschine, die resultierende
Geometrie und etwaige Störungen, die beim Steuerungsablauf zu erwarten sind, gemacht werden.
Häufig ist die Simulationszeit eines NC-Teileprogramms mit SINUMERIK VNCK erheblich kürzer als die Laufzeit des NC Teileprogramms während der Bearbeitung auf der realen Steuerung der realen Maschine. Beispielsweise benötigt eine konkrete Fräsbearbeitung eines Geberhaltes an einer realen Maschine 1 Minute und 54 Sekunden. Das identische Teileprogramm kann auf der virtuellen Steuerung in 17 Sekunden abgearbeitet werden, wenn auf die Ausgabe der dabei gewonnenen Simulationsergebnisse verzichtet wird.
Der beschriebene Bearbeitungszeitgewinn ist jedoch nicht im- mer bei der Simulation gegeben. Ob die Simulation schneller als die reale Bearbeitung ist, hängt entscheidend von der Pa- rametrierung des benötigten Simulationsoutputs und natürlich von der Rechenleistung des Simulationsrechners ab. Benötigt man als Simulationsergebnis eine sehr genaue Verlaufskurve des berechneten Bahnverlaufs des Antriebs der Werkzeugmaschine, kann es sein, dass durch den Mehraufwand, der durch die Ausgabe der Simulationsergebnisse entsteht, die Simulation langsamer läuft als das reale System. Wird bei dem bereits oben angesprochenen NC-Teileprogramm eine Ausgabe des Ge- schwindigkeitsverlaufs alle 0,1 mm der Verlaufskurve gefordert, so benötigt das gleiche Teileprogramm 19 Minuten und 51 Sekunden. Das ist eine etwa 10 x längere Laufzeit, als die reale Bearbeitung auf der realen Werkzeugmaschine erfordert. Diese extreme Laufzeiterhöhung ergibt sich in der Simulation durch den Protokoll Overhead zusätzlicher Softwareschnittstellen, die zur Ausgabe der Simulationsergebnisse benötigt werden.
Derartig lange Simulationszeiten sind in vielen Fällen unakzeptabel. Insbesondere dann, wenn das Hilfsmittel der Simulation als Webdienst angeboten werden soll, sind die aus diesen Simulationszeiten resultierenden Antwortzeiten vollkommen un- akzeptabel. In der Regel würde ein Webserver einen Client Re- quest bei Laufzeiten mit mehr als 500 Sekunden beenden.
Heutige Multicorerechner bieten die Möglichkeit, den Ablauf von Computerprogrammen durch eine Parallelisierung erheblich zu beschleunigen. Eine Parallelisierung eines Steuerungspro- gramms mit Hilfe entsprechender Compileroptionen würde zwar dessen Bearbeitung beschleunigen, jedoch entspräche das Laufzeitverhalten eines auf diese Art und Weise simulierten Steuerungsprogramms nicht mehr dem Laufzeitverhalten, dass auf der realen Zielhardware zu erwarten wäre.
Der Erfindung liegt daher die Aufgabe zugrunde, eine möglichst schnelle und möglichst realitätsnahe Simulation eines Steuerungsprogramms zu ermöglichen.
Diese Aufgabe wird durch ein Verfahren zur Simulation eines Ablaufs eines Steuerungsprogramms gelöst, mit folgenden Verfahrensschritten:
- Aufteilung des Steuerungsprogramms in mindestens einen ersten und einen zweiten Programmabschnitt,
- parallele Simulation des vollständigen Steuerungsprogramms mit mindestens einer ersten und einer zweiten Verarbeitungseinheit, wobei auf der ersten Verarbeitungseinheit eine erste darzustellende Ergebnisdatenmenge der Simulation des ersten Programmabschnittes und auf der zweiten Verarbeitungseinheit eine zweite darzustellende Ergebnisdatenmenge der Simulation des zweiten Programmabschnittes ausgegeben wird, - Zusammenführen der ersten und zweiten Ergebnisdatenmenge zu einer Gesamtergebnisdatenmenge.
Auch ein Computerprogrammprodukt enthaltend Programmcodemit- tel zur Ausführung eines derartigen Verfahrens, wenn besagtes Computerprogrammprodukt auf einem Datenverarbeitungssystem ausgeführt wird, löst die genannte Aufgabe.
Ferner wird die Aufgabe durch ein System zur Simulation eines Ablaufs eines Steuerungsprogramms gelöst, wobei das System: einen Synchronisationspräprozessor zur Aufteilung des Steuerungsprogramms in mindestens einen ersten und einen zweiten Programmabschnitt, mindestens eine erste und eine zweite Verarbeitungseinheit zur parallelen Simulation des vollständigen Steuerungsprogramms, wobei die erste Verarbeitungseinheit zur Ausgabe einer ersten Ergebnisdatenmenge der Simulation des ersten Programmabschnittes eingerichtet ist und die zweite Verarbeitungseinheit zur Ausgabe einer zweiten darzustellenden Ergebnisdatenmenge der Simulation des zweiten Programmabschnittes eingerichtet ist,
Zusammenführungsmittel zum Zusammenführen der ersten und zweiten Ergebnisdatenmengen zu einer Gesamtergebnisdatenmenge umfasst .
Der Erfindung liegt die Erkenntnis zugrunde, das ein erhebli- eher Teil der Simulationszeit auf die Ausgabe der Simulationsergebnisse zurückzuführen ist. Selbstverständlich lässt sich eine solche Ausgabe der Ergebnisdatenmengen nicht vermeiden, da der Benutzer einer Simulation an genau diesen interessiert ist. Der Grundgedanke der Erfindung ist es daher, die Ausgabe der Ergebnisdatenmengen auf verschiedene Verarbeitungseinheiten zu verteilen, so dass dieser zeitintensive Vorgang parallelisiert werden kann. Um trotz dieser Paralle- lisierung das Laufzeitverhalten so genau wie möglich simulieren zu können, wird sowohl von der ersten als auch von der zweiten Verarbeitungseinheit eine Simulation des kompletten Steuerungsprogramms durchgeführt. Jede Verarbeitungseinheit bearbeitet daher das Steuerungsprogramm so, wie es auch die Zielhardware, beispielsweise eine numerische Steuerung oder
eine SPS (Speicherprogrammierbare Steuerung) tut, die in der Regel mit einem Single Core Prozessor ausgeführt ist. Jedoch ist jeder der Verarbeitungseinheiten nur für die Ausgabe eines Teils der Simulationsergebnisse zuständig.
So wird zu Beginn der Simulation das Steuerungsprogramm in mindestens zwei Programmabschnitte aufgeteilt. Dies kann beispielsweise durch Setzen eines entsprechenden Synchronisationspunktes innerhalb des Steuerungsprogramms bewirkt werden, der den ersten Probrammabschnitt von dem zweiten Programmabschnitt trennt.
Anschließend wird das so aufgeteilte Steuerungsprogramm sowohl der ersten Verarbeitungseinheit als auch der zweiten Verarbeitungseinheit übergeben. Dabei wird festgelegt, dass die erste Verarbeitungseinheit zur Ausgabe der ersten Ergebnisdatenmenge zuständig ist, die bei der Simulation des ersten Programmabschnitts entsteht. Hingegen wird die erste Verarbeitungseinheit zwar in der Regel das komplette Steuerungs- programm, also auch den zweiten Programmabschnitt, berechnen, jedoch wird sie die bei der Berechnung des zweiten Programmabschnitts entstehenden Simulationsergebnisse nicht ausgeben. Aufgrund dessen wird sie diesen zweiten Programmabschnitt sehr viel schneller beabeiten können als den ersten Programm- abschnitt.
Umgekehrt wird die zweite Verarbeitungseinheit bei der Simulation des ersten Programmabschnitts auf die Ausgabe entsprechender Simulationsergebnisse verzichten und somit diesen Programmabschnitt im Vergleich zur ersten Verarbeitungseinheit sehr viel schneller ausführen können. Die zweite Verarbeitungseinheit ist zur Erzeugung der zweiten Ergebnisdatenmenge eingerichtet und schreibt entsprechend die Simulationsergebnisse, die bei der Berechnung dieses zweiten Programmab- Schnittes entstehen, in einen Ausgabepuffer.
Die beiden Verarbeitungseinheiten arbeiten parallel. Wenn beide Verarbeitungseinheiten das komplette Steuerungsprogramm
durchlaufen haben und die ihnen zugeteilten Ergebnisdatenmengen erzeugt haben, werden die Ergebnisdatenmengen zu einer Gesamtergebnisdatenmenge zusammengeführt. Die Gesamtergebnisdatenmenge enthält also die Simulationsergebnisse sowohl des ersten als auch des zweiten Programmabschnitts und damit die Simulationsergebnisse der kompletten Simulation. Diese Simulationsergebnisse können nun mit Hilfe einer geeigneten Visualisierungssoftware für einen Anwender sichtbar gemacht werden oder in einem Speicher zur weiteren Verarbeitung abgelegt werden.
Dadurch, dass beide Verarbeitungseinheiten parallel das Simulationsprogramm abarbeiten, jeweils aber nur für einen Teil der Datenausgabe zuständig sind, kann eine erhebliche Be- schleunigung der Simulation erreicht werden. Durch Hinzufügung weiterer parallel arbeitender Verarbeitungseinheiten kann dieser Zeitgewinn noch weiter gesteigert werden. Wird hierbei eine Anzahl von N Verarbeitungseinheiten vorgesehen, so muss entsprechend das Steuerungsprogramm in N-Programmab- schnitte unterteilt werden. Jede der N Verarbeitungseinheiten ist dabei nur für die Ausgabe der Simulationsergebnisse eines dieser N-Abschnitte des Steuerungsprogramms verantwortlich.
Prinzipiell muss die erste Verarbeitungseinheit nicht zwangs- läufig das komplette Steuerungsprogramm verarbeiten. Es ist ausreichend, wenn sie die Bearbeitung nach dem Ende des ersten Programmabschnitts abbricht, da sie für den Rest des Steuerungsprogramms keine Ausgabe mehr erzeugen muss. Es reicht also aus, wenn jede beteiligte Verarbeitungseinheit das Steuerungsprogramm vom Beginn des Programms bis zum Ende des Programmabschnitts simuliert, für dessen Ergebnisausgabe sie verantwortlich ist.
Vorteilhafte Ausgestaltungsformen der Erfindung ergeben sich aus den Unteransprüchen.
So kann mit Hilfe von Virtualisierungssystemen wie beispielsweise "VMware" oder "Virtual PC" eine Parallelisierung oder
eine Quasi-Parallelisierung sehr einfach dadurch erreicht werden, dass parallel arbeitende virtuelle Maschinen softwaremäßig implementiert werden, auf die mittels eines Virtual Machine Monitors (VMM) die realen Hardwareressourcen des Rechners, auf dem die Simulation ablaufen soll, verteilt werden. Somit kennzeichnet sich eine vorteilhafte Ausgestaltung der Erfindung dadurch, dass als erste Verarbeitungseinheit eine erste virtuelle Maschine und als zweite Verarbeitungseinheit eine zweite virtuelle Maschine verwendet wird, wobei die virtuelle Maschinen jeweils das Verhalten einer realen Steuerung simulieren, die zur Ausführung des Steuerungsprogramms vorgesehen ist und insbesondere nur eine Recheneinheit aufweist. Typischerweise weist eine reale Werkzeugmaschinensteuerung nur eine Recheneinheit auf, so dass, um eine mög- liehst realitätsnahe Simulation des Steuerungsprogramms zu bewirken, das komplette Steuerungsprogramm auf jeder virtuellen Maschine komplett abgearbeitet werden muss. Wie bereits im Vorfeld beschrieben, wird der Geschwindigkeitsgewinn dadurch erzielt, dass die Ausgabe der Ergebnisdaten auf die verwendeten virtuellen Steuerungen verteilt wird. Die genannten Virtualisierungssysteme können zur Parallelisierung ganzer Anwendersysteme mit virtuellen Steuerungen auf zukünftigen Multiprozessorsystemen ohne Performanceverlust parallel betrieben werden.
Ein typisches Anwendungsfeld für die hier beschriebene Erfindung stellt der Bereich der Werkzeugmaschinen dar. Um eine möglichst genaue und trotzdem sehr schnelle Bearbeitung mittels einer numerisch gesteuerten Werkzeugmaschine zu erzie- len, besteht häufig der Wunsch, die eingesetzten Steuerungsprogramme im Vorfeld in einer Simulationsumgebung hinsichtlich ihrer Laufzeit zu untersuchen und zu optimieren. Daher ist das Steuerungsprogramm in weiterer vorteilhafter Ausgestaltung der Erfindung ein NC-Steuerungsprogramm für eine Werkzeugmaschine, und die Aufteilung des Steuerungsprogramms geschieht derart, dass die erste und zweite Ergebnisdatenmenge im Wesentlichen die gleiche Größe haben. Die Zeit, die zur Ausgabe der Ergebnisdaten benötigt wird, hängt von der Größe
ab, die diese Datenmengen haben und somit von der Anzahl der Ausgabepunkte, die in den beteiligten Programmabschnitten erzeugt werden. Daher wird eine minimale Simulationszeit dadurch erreicht, dass die auszugebenden Datenmengen bzw. Aus- gabepunkte gleichmäßig auf die an der Simulation beteiligten virtuellen Maschinen verteilt werden.
Wie diese gleichmäßige Größenverteilung erzielt wird, hängt entscheidend davon ab, wie der Benutzer des Simulationspro- gramms die Datenausgabe im Vorfeld der Simulation definiert. Beispielsweise kann der Benutzer eine konstante örtliche Auflösung bei der Ausgabe der Ergebnisdaten entlang des Werkzeugweges fordern. In einem solchen Fall, bei dem eine konstante örtliche Auflösung für die Simulation eines Bearbei- tungsweges eines Werkzeug der Werkzeugmaschine gewählt wird, ist eine Ausgestaltung der Erfindung vorteilhaft, bei der die Aufteilung des Steuerungsprogramms derart geschieht, dass die während des ersten Programmabschnittes zurückgelegte Wegstrecke des Werkzeugs im Wesentlichen der während des zweiten Programmabschnittes zurückgelegten Wegstrecke entspricht. Eine solche Aufteilung erzeugt automatisch im Wesentlichen gleichgroße Ergebnisdatenmengen der beteiligten virtuellen Maschinen.
Hingegen kennzeichnet sich eine alternative vorteilhafte Ausgestaltung der Erfindung dadurch, dass eine konstante zeitliche Auflösung für die Simulation eines Bearbeitungsvorgangs der Werkzeugmaschine gewählt wird und die Aufteilung des Steuerungsprogramms derart geschieht, dass die während des ersten Programmabschnitts beanspruchte Bearbeitungszeit im
Wesentlichen der während des zweiten Programmabschnitts beanspruchten Bearbeitungszeit entspricht.
Durch die erfindungsgemäße Parallelisierung der Simulation und die damit verbundene Verkürzung der Simulationszeit ist eine Ausgestaltung der Erfindung realisierbar, bei der dass Verfahren mittels eines Webservers derart durchgeführt wird, dass die Gesamtergebnisdatenmenge mit einem Webclient visua-
lisiert werden kann. Hierbei wird also das Hilfsmittel der Simulation beispielsweise über ein Webportal angeboten, auf dass ein Werkzeugmaschinen-Betreiber Zugang hat. Will er nun ein neues Steuerungsprogramm für seine Werkzeugmaschine tes- ten, so kann er einen entsprechenden Simulationsauftrag an den Webserver senden. Dieser führt die Simulation aus und sendet als Response die Gesamtergebnisdatenmenge an den Client, der diese beispielsweise mit einem herkömmlichen Web- browser und einem geeigneten Plugin herstellen kann.
Mittels einer geeigneten Datenschnittstelle kann in weiterer vorteilhafter Ausgestaltung der Erfindung die Gesamtergebnismenge zu einem CAD/CAM System übertragen und dort visuali- siert werden. Dies bietet sich insbesondere dann an, wenn das Steuerungsprogramm zuvor von einem NC Postprozessor aus einer im CAM System definierten Bearbeitungsaufgabe generiert wurde .
Im Folgenden wird die Erfindung anhand der in den Figuren dargestellten Ausführungsbeispiele näher beschrieben und erläutert.
Es zeigen:
FIG 1 ein Verfahren zur Simulation eines Ablaufes eines
Steuerungsprogramms gemäß ein Ausführungsform der Erfindung, FIG 2 einen Aufteilung eine Steuerungsprogramms für eine
Werkzeugmaschine auf Basis eines vom Werkzeug zurück- zulegenden Werkzeugweges und
FIG 3 eine schematische Darstellung eines Systems zur Simulation eines Ablaufes eines Steuerungsprogramms gemäß einer Ausführungsform der Erfindung.
FIG 1 zeigt ein Verfahren zur Simulation eines Ablaufs eines Steuerungsprogramms 1 gemäß einer Ausführungsform der Erfindung. Bei dem Steuerungsprogramm 1 handelt es sich um ein NC- ■ Teileprogramm zur Ansteuerung einer numerisch gesteuerten
Werkzeugmaschine. Das Steuerungsprogramm 1 ist für die Implementierung auf einer realen Werkzeugmaschinensteuerung vorgesehen, die mit nur einer Single Core Recheneinheit arbeitet.
Das Steuerungsprogramm 1 soll vorab simuliert werden, bevor es auf die reale Steuerung geladen wird. Hierbei wird das Ziel verfolgt, die Laufzeit des Steuerungsprogramms 1 schon im Vorfeld zu optimieren, um einen möglichst hohen Durchsatz zu erreichen. Daher wird in einem ersten Verfahrensschritt das Steuerungsprogramm 1 in einen ersten Programmabschnitt 2 und einem zweiten Programmabschnitt 3 unterteilt. Bei der Wahl der Programmabschnitte 2,3 wird angestrebt, dass von den beiden Programmabschnitten 2,3 jeweils erzeugte Ergebnisdatenmengen 7,8 in etwa die gleiche Größe haben. Dies ist da- durch begründet, dass ein Großteil der Gesamtsimulationszeit durch die Ausgabe der Simulationsdaten verbraucht wird. Daher wird eine minimale Simulationszeit dann erreicht, wenn eine gleichmäßige Aufteilung der Datenausgabe erreicht wird.
Die Aufteilung des Steuerungsprogramms 1 kann mit Hilfe eines sogenannten Synchronisationspunktes erfolgen, der in dem Steuerungsprogramm 1 zwischen dem ersten Programmabschnitt 2 und dem zweiten Programmabschnitt 3 gesetzt wird. Das vollständige Steuerungsprogramm 1 wird anschließend sowohl an ei- ne erste als auch an eine zweite Verarbeitungseinheit 5,6 gesendet. Zuvor wird der erste Programmabschnitt 3 des Steuerungsprogramms als Ausgabebereich für die erste Verarbeitungseinheit 5 definiert und der zweite Programmabschnitt 3 als Ausgabebereich für die zweite Verarbeitungseinheit 6. Ei- ne Festlegung des Bereiches, in den die verantwortliche Verarbeitungseinheit 6 Daten ausgeben soll, und des Bereichs, in denen die verantwortliche Verarbeitungseinheit lediglich die Berechnung durchführen soll ohne Daten auszugeben, kann durch Einfügen von „Trace On" und „Trace Off" befehlen, realisiert werden, wobei der „Trace On" Befehl den Beginn eines Abschnittes anzeigt, zu dem Simulationsergebnisse ausgegeben werden sollen, und der „Trace Off" Befehl das Ende besagten Abschnittes.
Beide Verarbeitungseinheiten führen nun parallel den kompletten Steuerungscode aus. Bei der sequenziellen Abarbeitung der Steuerungsbefehle stoßen sie auf einen Trace On Befehl, wenn sie den Programmabschnitt erreichen, für den sie die Simula- tionsergebnisse in Form einer Ergebnisdatenmenge 7,8 ausgeben soll. So gibt die erste Verarbeitungseinheit 5 die Simulationsergebnisse des ersten Programmabschnitts 2 als erste Ergebnisdatenmenge 7 aus und die zweite Verarbeitungseinheit 6 die Ergebnisse der Simulation des zweiten Programmabschnittes 3 in Form der zweiten Ergebnisdatenmenge 8.
Somit erzeugt jede der Verarbeitungseinheiten 5,6 nur einen Teil der gewünschten Simulationsergebnisse in Form darstellbarer Datenmengen. Um nun das gesamte Simulationsergebnis z.B. in Form einer Punktewolke, die die Bearbeitung eines
Werkstücks im dreidimensionalen Raum darstellt und mit einer geeigneten Software visualisierbar ist, zu erhalten, müssen die Ergebnisdatenmengen 7,8 zusammengefügt werden. Das Resultat hieraus ist eine Gesamtergebnisdatenmenge 9, die im An- Schluss für den Benutzer mittels der Visualisierungssoftware das Ergebnis der Simulation darstellt.
FIG 2 zeigt eine Aufteilung eines Steuerungsprogramms 1 für eine Werkzeugmaschine auf Basis eines vom Werkzeug zurückzu- legenden Werkzeugweges. Das zugrundeliegende Steuerungsprogramm 1 definiert zwei in unterschiedlichen Raumebenen liegende Werkzeugwege 15,16. Der Benutzer einer zur Simulation des Steuerungsprogramms 1 geeigneten Simulationssoftware definiert vorab eine konstante örtliche Auflösung für die Aus- gäbe der Simulationsergebnisse. Das bedeutet, dass er pro zurück gelegte Werkzeugstrecke stets die gleiche Anzahl von Datenpunkten erwartet. Da der erste Werkzeugweg 15 kürzer ist als der zweite Werkzeugweg 16 wird die Ausgabe der Daten für den zweiten Werkzeugweg 16 sehr viel mehr Zeit erfordern als für den ersten Werkzeugweg 15.
Wie bereits unter FIG 1 beschrieben, soll nun das Steuerungsprogramm 1 in zwei Programmabschnitte 2,3 aufgeteilt werden,
um die Ausgabe der Simulationsergebnisse auf zwei Verarbeitungseinheiten zu verteilen. Hierbei wird eine minimale Ge- samtsimulationszeit angestrebt. Dies erfordert jedoch, dass die Aufteilung des Steuerungsprogramms 1 derart geschieht, dass die resultierenden Ergebnisdatenmengen die gleiche Größe besitzen.
Die Aufteilung des Steuerungsprogramms 1 in die zwei Programmabschnitte 2,3 geschieht mit Hilfe eines Synchronisati- onsprozessors 10. Dieser Simulationsprozessor 10 erkennt, dass aufgrund der vom Benutzer gewünschten konstanten örtlichen Auflösung bei der Ausgabe der Simulationsergebnisse das Steuerungsprogramm 1 derart aufgeteilt werden muss, dass die zurückzulegenden Werkzeugwege beider Programmabschnitte 2,3 gleich sind. Daher wird dem ersten Programmabschnitt ein neuer erster Werkzeugweg 17 zugeteilt, der dem ursprünglichen ersten Werkzeugweg 15 und einem Teil 19 des ursprünglichen zweiten Werkzeugwegs 16 entspricht. Als neuer zweiter Werkzeugweg 18 ergibt sich ein verkürzter ursprünglicher zweiter Werkzeugweg 16.
Das so aufgeteilte und mit entsprechenden Trace ON und Trace OFF Befehlen versehene Steuerungsprogramm 1 wird nun wie bereits unter FIG 1 beschrieben an zwei Verarbeitungseinheiten zur parallelen Abarbeitung verteilt. Die hierbei entstehenden Ergebnisdatenmengen müssen, wie ebenfalls bereits unter FIG 1 erläutert, zu einer Gesamtergebnisdatenmenge konzentriert werden, die von einem Benutzer visualisiert werden kann.
FIG 3 zeigt eine schematische Darstellung eines Systems zur Simulation eines Ablaufs eines Steuerungsprogramms 1 gemäß einer Ausführungsform der Erfindung. Das Steuerungsprogramm 1, bei dem es sich wiederum ein NC-Steuerungsprogramm zur Ansteuerung einer Werkzeugmaschine handelt, wurde mit Hilfe ei- nes in einem CAM-System (Computer Aided Manufacturing) integrierten Postprozessor automatisch erzeugt. Der Postprozessor generiert aus einer zunächst allgemein im CAM-System defi-
nierten Bearbeitungsaufgabe einen maschinenspezifischen NC- Code.
Das System umfasst einen Synchronisationsprozessor 10, der dieses NC-Teileprogramm in drei Programmabschnitte 2,3,11 unterteilt. Dieser kann sowohl als eigenständige Applikation implementiert sein als auch Teil eines gängigen NC-Postpro- zessors sein. Eine Unterteilung in die drei Programmabschnitte 2,3,11 ist dadurch motiviert, dass zur Simulation des Steuerungsprogramms 1 drei als virtuelle Maschinen ausgeführte Verarbeitungseinheiten 5,6,12 eingesetzt werden. Daher wird auch die Ausgabe der Simulationsergebnisse auf die drei virtuellen Maschinen gleichmäßig verteilt. Bei der Definition der Simulation legt der Benutzer fest, dass eine zeitlich konstante Auflösung bei der Ausgabe der Simulationsergebnisse angestrebt wird. Das bedeutet, dass pro Bearbeitungszeitintervall jeweils die gleiche Anzahl von Datenpunkten als Simulationsergebnis ausgegeben werden soll.
In das Steuerungsprogramm 1 werden Trace ON und Trace OFF Befehle eingefügt, durch die die Programmabschnitte 2,3,11 gekennzeichnet werden, in denen die jeweilige virtuelle Maschine die Simulationsergebnisse ausgeben soll. Somit wird der ersten Verarbeitungseinheit 5 eine Version des Steuerungspro- gramms 1 übergeben, in dem ein Trace ON Befehl am Anfang des ersten Programmabschnitts 2 eingefügt ist, und ein Trace OFF Befehl am Ende des ersten Programmabschnitts 2. Auf diese Art und Weise erkennt die virtuelle Steuerung, dass sie nur für den ersten Programmabschnitt 2 die Simulationsergebnisse in einen Ausgabepuffer schreiben muss. Analog befindet sich in der Version des Steuerungsprogramms 1, die an die zweite Verarbeitungseinheit 6 gesendet wird, ein Trace ON Befehl zu Beginn des zweiten Programmabschnitts 3 und ein Trace OFF Befehl am Ende des zweiten Programmabschnitts 3. Schließlich ist die Version des Steuerungsprogramms 1, die von der dritten Verarbeitungseinheit 12 bearbeitet wird, dadurch gekennzeichnet, dass zu Beginn des dritten Programmabschnitts 11 ein Trace ON Befehl existiert. Dies hat zur Folge, dass der
erste und zweite Programmabschnitt 2,3 von der dritten Verarbeitungseinheit 12 lediglich abgearbeitet werden ohne hierbei Simulationsergebnisse in den Ausgabepuffer zu schreiben.
Als Ergebnis der Bearbeitung durch die virtuellen Maschinen entstehen also drei Ergebnisdatenmengen 7,8,11, die jeweils nur ein Teil der Simulationsergebnisse der gesamten Simulation darstellen. Diese Ergebnisdatenmengen 7,8,13 werden von Zusammenführungsmitteln 14 des Systems zu einer Gesamtergeb- nisdatenmenge 9 konzentriert. Diese Gesamtergebnisdatenmenge 9 kann anschließend visualisiert und beispielsweise zu Zwecken der Laufzeitoptimierung ausgewertet werden. Hierzu wird die Gesamtergebnisdatenmenge 9 über eine Datenschnittstelle dem CAM System zugeführt und mittels einer Visualisierungsum- gebung des CAM Systems dargestellt.
Die in FIG 3 dargestellte Ausführungsform zeigt, wie durch Hinzufügung weiterer Verarbeitungseinheiten und eine damit verbundene weitere feingranularere Aufteilung des Steuerungs- Programms 1 in einzelne Programmabschnitte 2,3,11 die Gesamt- simulationsdauer deutlich reduziert werden kann. Je mehr Verarbeitungseinheiten 5,6,12 vorgesehen werden und je mehr Programmabschnitte entsprechend definiert werden, desto mehr nähert man sich mit der Simulationsdauer dem Wert an, der ohne jede Datenausgabe benötigt werden würde. Die Erfindung ist daher in keiner Weise auf die exemplarisch dargestellten Ausführungsformen mit zwei oder drei parallel arbeitenden Verarbeitungseinheiten beschränkt.
Claims
1. Verfahren zur Simulation eines Ablaufes eines Steuerungsprogramms (1) mit folgenden Verfahrenschritten: - Aufteilung des Steuerungsprogramms (1) in mindestens einen ersten und einen zweiten Programmabschnitt (2,3), parallele Simulation des vollständigen Steuerungsprogramms (1) mit mindestens einer ersten und einer zweiten Verarbeitungseinheit (5,6), wobei auf der ersten Verarbeitungs- einheit (5) eine erste darzustellende Ergebnisdatenmenge (7) der Simulation des ersten Programmabschnittes (2) und auf der zweiten Verarbeitungseinheit (6) eine zweite darzustellende Ergebnisdatenmenge (8) der Simulation des zweiten Programmabschnittes (3) ausgegeben wird, - Zusammenführen der ersten und zweiten Ergebnisdatenmenge (7,8) zu einer Gesamtergebnisdatenmenge (9) .
2. Verfahren nach Anspruch 1, wobei als erste Verarbeitungseinheit (5) eine erste virtuelle Maschine und als zweite Verarbeitungseinheit (6) eine zweite virtuelle Maschine verwendet wird, wobei die virtuellen Maschinen jeweils das Verhalten einer realen Steuerung simulieren, die zur Ausführung des Steuerungsprogramms vorgesehen ist und insbesondere nur eine Recheneinheit aufweist.
3. Verfahren nach Anspruch 1 oder 2, wobei das Steuerungsprogramm (1) ein NC Steuerungsprogramm für eine Werkzeugmaschine ist und die Aufteilung des Steuerungsprogramms (1) derart geschieht, dass die erste und zwei- te Ergebnisdatenmenge (7,8) im Wesentlichen die gleiche Größe haben.
4. Verfahren nach Anspruch 3, wobei eine konstante örtliche Auflösung für die Simulation eines Bearbeitungsweges eines Werkzeugs der Werkzeugmaschine gewählt wird und die Aufteilung des Steuerungsprogramms (1) derart geschieht, dass die während des ersten Programmabschnittes (2) zurückgelegte Wegstrecke des Werkzeugs im We- sentliehen der während des zweiten Programmabschnittes (3) zurückgelegten Wegstrecke entspricht.
5. Verfahren nach Anspruch 3, wobei eine konstante zeitliche Auflösung für die Simulation eines Bearbeitungsvorgangs der Werkzeugmaschine gewählt wird und die Aufteilung des Steuerungsprogramms (1) derart geschieht, dass die während des ersten Programmabschnitts (2) beanspruchte Bearbeitungszeit im Wesentlichen der während des zweiten Programmabschnitts (3) beanspruchten Bearbeitungszeit entspricht.
6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren mittels eines Webservers derart durchge- führt wird, dass die Gesamtergebnisdatenmenge (9) mit einem Webclient visualisiert werden kann.
7. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Gesamtergebnismenge (9) zu einem CAD/CAM System übertragen wird und dort visualisiert wird.
8. System zur Simulation eines Ablaufes eines Steuerungsprogramms (1) , wobei das System:
- einen Synchronisationspräprozessor (10) zur Aufteilung des Steuerungsprogramms (1) in mindestens einen ersten und einen zweiten Programmabschnitt (2,3), mindestens eine erste und eine zweite Verarbeitungseinheit (5,6) zur parallelen Simulation des vollständigen Steuerungsprogramms (1) , wobei die erste Verarbeitungseinheit (5) zur Ausgabe einer ersten Ergebnisdatenmenge (7) der
Simulation des ersten Programmabschnittes (2) eingerichtet ist und die zweite Verarbeitungseinheit (6) zur Ausgabe einer zweiten darzustellenden Ergebnisdatenmenge (8) der Simulation des zweiten Programmabschnittes (3) eingerich- tet ist,
Zusammenführungsmittel (14) zum Zusammenführen der ersten und zweiten Ergebnisdatenmenge (7,8) zu einer Gesamtergebnisdatenmenge (9) umfasst .
9. System nach Anspruch 8, wobei die erste Verarbeitungseinheit (5) als erste virtuelle Maschine und die zweite Verarbeitungseinheit (6) als zweite virtuelle Maschine ausgeführt ist, wobei die virtuellen Maschinen jeweils zur Simulation des Verhaltens einer realen Steuerung eingerichtet sind, die zur Ausführung des Steuerungsprogramms (1) vorgesehen ist und insbesondere nur eine Recheneinheit aufweist.
10. System nach Anspruch 8 oder 9, wobei das Steuerungsprogramm (1) ein NC Steuerungsprogramm für eine Werkzeugmaschine ist und der Synchronisationsprozes- sor (10) zur Aufteilung des Steuerungsprogramms (1) derart eingerichtet ist, dass die erste und zweite Ergebnisdatenmenge (7,8) im Wesentlichen die gleiche Größe haben.
11. System nach Anspruch 10, wobei der Synchronisationsprozessor (10) eingerichtet ist, eine konstante örtliche Auflösung für die Simulation eines Bearbeitungsweges eines Werkzeugs der Werkzeugmaschine zu wählen und das Steuerungsprogramm (1) derart aufzuteilen, dass die während des ersten Programmabschnittes (2) zurückge- legte Wegstrecke des Werkzeugs im Wesentlichen der während des zweiten Programmabschnittes (3) zurückgelegten Wegstrecke entspricht.
12. System nach Anspruch 10, wobei der Synchronisationsprozessor (10) eingerichtet ist, eine konstante zeitliche Auflösung für die Simulation eines Bearbeitungsvorgangs der Werkzeugmaschine zu wählen und das Steuerungsprogramm (1) derart aufzuteilen, dass die während des ersten Programmabschnitts (2) beanspruchte Bearbeitungs- zeit im Wesentlichen der während des zweiten Programmabschnitts (3) beanspruchten Bearbeitungszeit entspricht.
13. System nach einem der Ansprüche 8 bis 12, wobei das System eine Datenschnittstelle zur Übertragung der Gesamtergebnismenge (9) zu einem CAD/CAM System aufweist, das zur Visualisierung der Gesamtergebnisdatenmenge (9) geeignet ist.
14. System nach einem der Ansprüche 8 bis 13, wobei das System als Webserver ausgeführt ist.
15. Computerprogrammprodukt enthaltend Programmcodemittel zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 7, wenn besagtes Computerprogrammprodukt auf einem Datenverar¬ beitungssystem ausgeführt wird.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2007/011069 WO2009076987A1 (de) | 2007-12-17 | 2007-12-17 | System und verfahren zur simulation eines ablaufs eines steuerungsprogramms |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2007/011069 WO2009076987A1 (de) | 2007-12-17 | 2007-12-17 | System und verfahren zur simulation eines ablaufs eines steuerungsprogramms |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009076987A1 true WO2009076987A1 (de) | 2009-06-25 |
Family
ID=39530681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2007/011069 WO2009076987A1 (de) | 2007-12-17 | 2007-12-17 | System und verfahren zur simulation eines ablaufs eines steuerungsprogramms |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2009076987A1 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012168427A1 (de) * | 2011-06-09 | 2012-12-13 | Dmg Electronics Gmbh | Verfahren und system zur simulation eines arbeitsprozesses an einer werkzeugmaschine |
WO2018155313A1 (en) * | 2017-02-22 | 2018-08-30 | Mitsubishi Electric Corporation | System and method for simulating machining of workpiece |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218709A (en) * | 1989-12-28 | 1993-06-08 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Special purpose parallel computer architecture for real-time control and simulation in robotic applications |
US20050102054A1 (en) * | 2003-11-12 | 2005-05-12 | Siemens Aktiengesellschaft | Method and system for simulating processing of a workpiece with a machine tool |
EP1762919A2 (de) * | 2005-09-12 | 2007-03-14 | Index-Werke Gmbh & Co. KG Hahn & Tessky | Simulationssystem |
DE102005047543A1 (de) * | 2005-09-30 | 2007-04-05 | Siemens Ag | Verfahren zur Simulation eines Steuerungs- und/oder Maschinenverhaltens einer Werkzeugmaschine oder einer Produktionsmaschine |
-
2007
- 2007-12-17 WO PCT/EP2007/011069 patent/WO2009076987A1/de active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218709A (en) * | 1989-12-28 | 1993-06-08 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Special purpose parallel computer architecture for real-time control and simulation in robotic applications |
US20050102054A1 (en) * | 2003-11-12 | 2005-05-12 | Siemens Aktiengesellschaft | Method and system for simulating processing of a workpiece with a machine tool |
EP1762919A2 (de) * | 2005-09-12 | 2007-03-14 | Index-Werke Gmbh & Co. KG Hahn & Tessky | Simulationssystem |
DE102005047543A1 (de) * | 2005-09-30 | 2007-04-05 | Siemens Ag | Verfahren zur Simulation eines Steuerungs- und/oder Maschinenverhaltens einer Werkzeugmaschine oder einer Produktionsmaschine |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012168427A1 (de) * | 2011-06-09 | 2012-12-13 | Dmg Electronics Gmbh | Verfahren und system zur simulation eines arbeitsprozesses an einer werkzeugmaschine |
DE102011105141A1 (de) * | 2011-06-09 | 2012-12-13 | Dmg Electronics Gmbh | Verfahren und system zur simulation eines arbeitsprozesses an einer werkzeugmaschine |
DE102011105141A8 (de) * | 2011-06-09 | 2013-03-07 | Dmg Electronics Gmbh | Verfahren und system zur simulation eines arbeitsprozesses an einer werkzeugmaschine |
CN103765334A (zh) * | 2011-06-09 | 2014-04-30 | Dmg电子有限公司 | 用于模拟机床上加工过程的方法及*** |
US20140200706A1 (en) * | 2011-06-09 | 2014-07-17 | Dmg Electronics Gmbh | Method and System for Simulating a Work Process on a Machine Tool |
US9836039B2 (en) | 2011-06-09 | 2017-12-05 | Dmg Electronics Gmbh | Method and system for simulating a work process on a machine tool |
WO2018155313A1 (en) * | 2017-02-22 | 2018-08-30 | Mitsubishi Electric Corporation | System and method for simulating machining of workpiece |
US10353352B2 (en) | 2017-02-22 | 2019-07-16 | Mitsubishi Electric Research Laboratories, Inc. | System and method for distributed machining simulation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2718776B1 (de) | Verfahren und system zur simulation eines arbeitsprozesses an einer werkzeugmaschine | |
EP1901149B1 (de) | Vorrichtung und Verfahren zur Simulation eines Ablaufs zur Bearbeitung eines Werkstücks an einer Werkzeugmaschine | |
EP2453326B1 (de) | Verfahren und System zur Bedienung einer Maschine aus der Automatisierungstechnik | |
EP1989601B1 (de) | System und verfahren zur analyse eines fertigungsprozesses | |
EP2194432B1 (de) | Scheduling-Verfahren | |
DE10248991B4 (de) | Vorrichtung zur Simulation des Steuerungs- und Maschinenverhaltens von Werkzeug- oder Produktionsmaschinen | |
DE10352815B4 (de) | Simulationsverfahren für eine Bearbeitung eines Werkstücks durch eine Werkzeugmaschine und korrespondierender Rechner | |
DE102016014152B4 (de) | Numerische Steuervorrichtung | |
EP2650741B1 (de) | Werkzeugmaschine | |
DE102020124734A1 (de) | Simulationsgerät | |
DE10307261A1 (de) | Programmierplattform zur Erstellung von Teileprogrammen bei Werkzeug- oder Produktionsmaschinen | |
DE112016007339T5 (de) | Simulationsvorrichtung | |
WO2009076987A1 (de) | System und verfahren zur simulation eines ablaufs eines steuerungsprogramms | |
DE102019001970B4 (de) | Integriertes Simulationssystem mit verbesserter Bedienbarkeit | |
DE10296995T5 (de) | Verfahren zum Abstimmen und Synchronisieren der Bewegung von Servounterstützten Achsen | |
WO2020200870A1 (de) | Verfahren zum engineering und simulation eines automatisierungssystems mittels digitaler zwillinge | |
EP3475775B1 (de) | Ermitteln einer ausführungszeit eines anwenderprogramms | |
WO2014169949A1 (de) | Speicherprogrammierbare steuerung mit geringer latenzzeit | |
EP2191338B1 (de) | System zur erstellung eines simulationsprogramms | |
DE102017004591A1 (de) | Numerische Steuerung | |
WO2008113305A1 (de) | Vorrichtung zur erstellung von bearbeitungsprogrammen für eine bearbeitungsmaschine | |
EP3422218A1 (de) | Synchronisation mehrerer simulationen | |
DE102013010783A1 (de) | Verfahren und Steuergerät zum Testen einer Automatisierungslösung basierend auf einer PLC-Steuerung | |
EP3335084B1 (de) | Simulationsverfahren zur simulation einer realen steuerung für einen industriellen prozess, eine anlage oder eine maschine sowie simulationssystem zur ausführung eines derartigen simulationsverfahrens | |
EP2998805A1 (de) | Verfahren und Vorrichtung zur Erzeugung eins Überwachungs-Funktionsbausteins für die Überwachung einer Automatisierungsanordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07856805 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 07856805 Country of ref document: EP Kind code of ref document: A1 |