-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die Erfindung betrifft eine numerische Steuerung und insbesondere eine solche mit einer Funktion zum Optimieren der Steuersoftware einer numerischen Steuerung entsprechend einem Bearbeitungsprogramm.
-
2. Zum Stand der Technik
-
Die Steuersoftware einer numerischen Steuerung interpretiert das Bearbeitungsprogramm und erzeugt einen Bewegungsbefehl für einen Motor zum Betreiben einer Werkzeugmaschine. Ein Programm, welches eine Programmiersprache interpoliert und ausführt wird im Allgemeinen als Interpreter (Interpretierer) bezeichnet.
-
Zur Steigerung der Geschwindigkeit eines Interpreters wurde ein Verfahren vorgeschlagen, bei dem im Voraus mehrere Interpreter-Sätze vorbereitet werden, in welchen Module angeordnet sind zur Maximierung der Cache-Effizienz einer bestimmten Befehlsgruppe mit Prüfung der in einem Programm verwendeten Befehle und Auswahl sowie Ausführung der Interpreter-Sätze, welche unter den vorbereiteten Interpreter-Sätzen am schnellsten arbeiten (vgl. beispielsweise
JP 2002-229803 A ).
-
Weiterhin wurde zur Erhöhung der Geschwindigkeit der Betriebssoftware selbst und zur Reduzierung des erforderlichen Speicherbedarfs ein Verfahren vorgeschlagen, bei dem Benutzerprofildaten an einen Server geschickt werden und Software erzeugt wird, in welcher eine Reduzierung unnötiger Module und eine Fixierung von Variablen auf Basis der in den Server eingegebenen Benutzerprofildaten durchgeführt wird sowie eine Herunterladung (Downloading) der Software in eine kleinformatige Datenausrüstung zur Ausführung der Software (z. B.
JP 2003-216434 A ).
-
Weiterhin wurde ein Verfahren vorgeschlagen zur Verteilung von Anwendungssoftware unter Verwendung eines Kompilierungsservers, welcher zu einem Benutzer passende Software erzeugt auf Basis von Benutzerinformationen, die vom Benutzer gegeben werden und mit Distribution der Software (beispielsweise
JP 2000-122871 A ).
-
Eine numerische Steuerung hat eine große Anzahl von Vorbereitungsfunktionen (G-Code) und Hilfsfunktionen (M-Code) zur Anwendung bei verschiedenen Werkzeugmaschinen und weiterhin wurden zusätzliche Funktionen eingeführt mit einem Anstieg der Funktionsanforderungen für Werkzeugmaschinen. Der gesteigerte Aufwand an bedingten Verzweigungsbefehlen durch die Hinzufügung solcher Funktionen führte zu Problemen hinsichtlich eines Abfalls der Prozessgeschwindigkeit, z. B. durch Leitungsversagen und Cache-Fehler.
-
Die oben erwähnte
JP 2002-229803 A beschreibt eine Technik mit Verwendung der Statistik von Befehlen, welche ausgewählt und so eingesetzt werden, dass sie Variationen typischer Programme abdecken (Vergleichsprogramme, Netzwerkanwendungen, graphische Anwendungen und dergleichen), wobei die Befehle in mehrere Arten von Befehlsgruppen unterteilt werden unter Berücksichtigung auch der Spezifikation des verwendeten Prozessors und Erzeugung eines Interpreter-Satzes im Voraus zur Maximierung der Cache-Effizienz für jeden Befehlsgruppentyp. Da bei diesem Verfahren die Erzeugung der Software in einer Stufe erforderlich ist, wo noch nicht die Art der tatsächlich im Programm eingesetzten Funktionen klar ist, ist es nicht möglich, Probleme, wie Leitungsblockierung, anzugehen, die durch bedingte Verzweigungsbefehle verursacht sind. Da weiterhin die Vorbereitung einer Vielzahl von Softwarekomponenten erforderlich ist, besteht ein Problem bezüglich der erforderlichen Hilfsmittel und deshalb ist das Verfahren nicht für eine numerische Steuerung mit limitierten Ressourcen geeignet.
-
Bei einer Technik gemäß der oben genannten
JP 2003-216434 A erfolgt eine Vermeidung nicht notwendiger Module und Fixierung von Variablen auf Basis von Benutzerprofildaten, wie Informationen bezüglich Witterung in einem vom Benutzer gewünschten Gebiet sowie Vorlieben des Benutzers, z. B., ob er eine textbasierte Schnittstelle oder eine graphikbasierte Schnittstelle bevorzugt. Zwar tritt ein Problem wie die Leitungsblockierung nicht mehr auf, weil aufgrund der Fixierung der Variablen etc. keine bedingten Verzweigungsbefehle selbst mehr auftreten, jedoch werden einige Funktionen nicht mehr einsetzbar, weil die Verarbeitung selbst wegfällt. Dementsprechend tritt ein Problem dahingehend auf, dass eine gewünschte Funktion nicht sofort an Ort und Stelle einsetzbar ist, wenn die Funktion geändert wird und die numerische Steuerung nicht an ein Netzwerk angeschlossen ist. Das heißt: wenn ein ähnliches Verfahren bei einer numerischen Steuerung eingesetzt würde, träten Probleme dahingehend auf, dass der Betrieb unmöglich wird, wenn Parameter und das Bearbeitungsprogramm geändert werden.
-
Zwar wird in der
JP 2000-122871 A ein Verfahren beschrieben zum Distributieren optimaler Software zu einem Klienten unter Verwendung des Kompilierungsservers, jedoch wird kein Verfahren beschrieben zur Optimierung der Steuersoftware einer numerischen Steuerung und das System kann nicht eingesetzt werden zur Distributierung von Steuersoftware für eine optimierte numerische Steuerung unter Verwendung des Kompilierungsservers.
-
KURZBESCHREIBUNG DER ERFINDUNG
-
Dementsprechend ist ein Ziel der Erfindung die Bereitstellung eines Steuersystems mit einer Funktion zur Optimierung der Steuersoftware einer numerischen Steuerung entsprechend einem Bearbeitungsprogramm.
-
Das Steuersystem gemäß der Erfindung enthält: eine Ausführungsausstattung der Steuersoftware, welche ein Steuerprogramm analysiert und eine Verarbeitung ausführt zur Ausgabe von Steuerinformationen bezüglich einer Maschine als Steuerobjekt; eine Steuerprogramm-Empfangseinheit, welche das Steuerprogramm empfängt sowie einen Einsatzverlauf (”Historie”) des Steuerprogrammes; eine Einsatzfrequenz-Berechnungseinheit, welche auf Basis des Steuerprogrammes oder des Steuerprogrammes und des Einsatzverlaufes des Steuerprogrammes eine Einsatzfrequenz einer Funktion bestimmt, welche durch das Steuerprogramm verwendet wird; eine Sourcecode-Optimierungseinheit, welche einen Sourcecode der Steuersoftware optimiert zur Erzeugung eines optimierten Sourcecodes auf Basis der Einsatzfrequenz der vom Steuerprogramm verwendeten Funktion, wie durch die Einsatzfrequenz-Berechnungseinheit bestimmt; eine Steuersoftware-Erzeugungseinheit, welche optimierte Steuersoftware erzeugt auf Basis des optimierten Sourcecodes; und eine Steuersoftware-Übertragungseinheit, welche die optimierte Steuersoftware zu der Ausführungsausstattung der Steuersoftware überträgt.
-
Eine Ausführungsausstattung für die Steuersoftware kann beispielsweise eine Steuerung sein oder ein Server, welcher die Steuerinformation zur Steuerung überträgt.
-
Da mit der vorliegenden Erfindung ein Cache-Fehler und eine Leitungsblockierung aufgrund eines Verzweigungsfehlers weniger häufig sind, wird es möglich, ein Bearbeitungsprogramm schneller auszuführen.
-
KURZBESCHREIBUNG DER FIGUREN
-
Obige sowie weitere Ziele und Merkmale der Erfindung werden noch deutlicher aus der nachfolgenden Beschreibung von Ausführungsbeispielen mit Bezug auf die Figuren:
-
1 ist ein schematisches Diagramm eines Steuersystems für einen Fall, bei dem eine optimierte Anwendung der vorliegenden Erfindung auf einem Server in einem Netzwerk vorgesehen ist;
-
2 ist eine schematische Darstellung eines Steuersystems für einen Fall, bei dem die optimierte Anwendung der vorliegenden Erfindung in einem Computer vorgesehen ist, welcher mit einer numerischen Steuerung verbunden ist;
-
3 ist eine schematische Darstellung eines Steuersystems für einen Fall, in dem die optimierte Anwendung der vorliegenden Erfindung mit einem Mehrfachkern der numerischen Steuerung ausgeführt wird;
-
4 ist eine Darstellung zur Erläuterung eines Optimierungsbeispiels 1 der vorliegenden Erfindung;
-
5 zeigt ein Optimierungsbeispiel 2 der vorliegenden Erfindung; und
-
6 zeigt ein Blockdiagramm eines Steuersystems gemäß einem Ausführungsbeispiel der Erfindung.
-
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSBEISPIELE IM EINZELNEN
-
Ausführungsbeispiele der Erfindung werden nun mit Bezug auf die Figuren näher beschrieben. Zunächst erfolgt ein technischer Überblick über die Erfindung.
-
Die Erfindung ermöglicht eine Optimierung eines bedingten Verzweigungsbefehls durch Vorsehen einer optimierten Anwendungseinheit mit einem Kompilierer (Compiler) und einem Verknüpfer (Linker), Übertragung eines in einer Werkzeugmaschine eingesetzten Bearbeitungsprogrammes und des Einsatzverlaufes (Historie) des Bearbeitungsprogrammes zu der optimierten Anwendungseinheit, und Durchführen einer Optimierung der Steuersoftware auf Basis der Ergebnisse einer Prüfung der tatsächlich verwendeten Funktionen.
-
Damit kann eine optimale Steuersoftware entsprechend dem Bearbeitungsprogramm eingesetzt werden, ohne dass im Voraus eine Vielzahl von Komponenten der Steuersoftware angefertigt werden müsste. Die optimierte Anwendungseinheit kann durch einen Server mit einem Netzwerk gemäß 1 verwirklicht werden oder auch mit einem Computer, der mit einer numerischen Steuerung verbunden ist, oder durch einen Computer, der gemäß 2 in eine numerische Steuerung integriert ist. Hat die numerische Steuerung einen Aufbau mit Mehrfachkern mit mehreren Einsatzmöglichkeiten, kann die optimierte Anwendungseinheit betrieben werden mit einem Betriebssystem, welches mit einem Kern arbeitet, der verschieden ist von einem Kern, welcher von einem Betriebssystem benutzt wird, welches die Steuersoftware ausführt, wie in 3 dargestellt ist.
-
Auch wenn die Optimierung der Steuersoftware mit einem Server über ein Netzwerk ausgeführt wird, besteht die Möglichkeit, dass der Betrieb langsam abläuft aufgrund des Verbleibens eines bedingten Verzweigungsbefehls in der Steuersoftware. In einer Situation, in welcher das Netzwerk abgetrennt sein kann, ist es möglich, den Betrieb mit einem geänderten Parameter oder Bearbeitungsprogramm auszuführen.
-
Ist beispielsweise die Erzeugung einer Steuersoftware entsprechend einem neuen Bearbeitungsprogramm gewünscht, ist es auch in einer schlechten Netzwerkumgebung an einer Stelle des Werkzeugmaschineneinsatzes, wo keine Verbindung zu dem Server möglich ist, möglich, den Betrieb mit einer Steuersoftware durchzuführen, die für ein anderes Bearbeitungsprogramm optimiert worden ist, welches in einer Steuerung der Werkzeugmaschine installiert ist, wobei zwar der Betrieb verlangsamt sein kann, weil die Steuersoftware nicht ausschließlich für das neue Bearbeitungsprogramm angefertigt ist, weil die Verarbeitung nicht weggelassen wurde, wie beim Stand der Technik nach der
JP 2003-216434 A .
-
Ist die numerische Steuerung stabil zu jedem Zeitpunkt mit dem Netzwerk verbunden, ist es möglich, die optimale Steuersoftware entsprechend dem Bearbeitungsprogramm einzusetzen, auch in einer Werkzeugmaschine, deren Möglichkeiten eingeschränkt sind, durch Betreiben der für jedes Bearbeitungsprogramm erzeugten Steuersoftware in dem Server über das Netzwerk und durch Empfangen der Steuerinformationen in der numerischen Steuerung. Auch wenn die Steuersoftware in dieser Weise eingesetzt wird, bleibt ein Betrieb unter Verwendung der ursprünglichen, in der numerischen Steuerung gegebenen und dort verbleibenden Steuersoftware möglich, auch wenn das Netzwerk aus irgendeinem Grund abgetrennt ist.
-
Ein Verfahren zum Erzeugen der optimalen Steuersoftware gemäß der Erfindung wird weiter unten näher beschrieben. In einem Steuersystem gemäß der Erfindung werden ein Bearbeitungsprogramm und gegebenenfalls ein Einsatzverlauf (Einsatzhistorie) des Arbeitsprogramms von der Werkzeugmaschine oder einem mit CAD/CAM ausgerüsteten Rechner zu der optimierten Anwendungseinheit übertragen.
-
Die optimierte Anwendungseinheit analysiert das übertragene Bearbeitungsprogramm und ermittelt eine Einsatzfrequenz für jede der Funktionen, wie eine Vorbereitungsfunktion und eine Hilfsfunktion, sowie eine Beziehung zwischen den Funktionen (Reihenfolge der Benutzung etc.). Werden eine Mehrzahl von Bearbeitungsprogrammen und die Einsatzverläufe der Bearbeitungsprogramme übertragen, erfolgt eine Wichtung hinsichtlich der Anzahl der Einsätze zur Berechnung einer genaueren Einsatzfrequenz, und die tatsächliche Zeitfolge des Aufrufens der einzelnen Funktionen wird analysiert zur Berechnung einer genaueren Beziehung zwischen den Funktionen. Sodann wird ein Sourcecode optimierte auf Basis des gewonnenen Ergebnisses und es erfolgt eine Kompilierung und Verknüpfung zur Erzeugung der Steuersoftware für die numerische Steuerung. Die Steuersoftware kann durch direkte Installation in der numerischen Steuerung eingesetzt werden oder auch in einem Server des Netzwerkes betrieben werden, so dass die numerische Steuerung die Steuerinformationen empfängt.
-
Das Optimierungsverfahren bezüglich der Steuersoftware gemäß der Erfindung wird weiter unten näher beschrieben. In diesem Zusammenhang ist angemerkt, dass das Optimierungsverfahren gemäß der Erfindung nicht auf die nachfolgend näher beschriebenen Beispiele beschränkt ist und es möglich ist, eine Optimierungstechnik bezüglich des Sourcecodes einzusetzen unter Berücksichtigung des Bearbeitungsprogrammes und der Einsatzhistorie des Programmes und der entsprechend gewonnenen Analyseergebnisse.
-
<Optimierungsbeispiel 1>
-
Beim Prüfverfahren bezüglich der Funktionen, wie der Vorbereitungsfunktion und der Hilfsfunktion, wird ein Hinweis auf eine Verzweigungsvorhersage zum bedingten Verzweigungsbefehl gegeben, wenn erwartet wird, dass ein Betrieb bei solch einem Hinweis schneller ist, in Abhängigkeit von der Einsatzfrequenz der Funktionen, also der Vorbereitungsfunktion und der Hilfsfunktion, und der Genauigkeit einer dynamischen Verzweigungsvorhersage beim zu benutzenden Prozessor. Wie in 4 beispielhaft dargestellt ist, ist es beim Verfahren zum Prüfen, ob der Nichtgebrauch der Funktion zu 100% zutrifft oder nicht, möglich, das Auftreten von Leitungsblockierungen und Cache-Fehlern aufgrund von Einlesungen von ursprünglich nicht erforderlichen Befehlen in das Cache zu vermindern, weil der Verzweigungsvorhersagenfehler reduzierbar ist durch Sperren der Funktion. Als Beispiel für die Erzeugung eines solchen Hinweises, z. B. in C-Sprache, ist es möglich, den Hinweis durch eine im Kompiler eingerichtete Funktion zu geben, beispielsweise als _builtin_expect ().
-
<Optimierungsbeispiel 2>
-
Wie in 5 dargestellt ist, wird in einer ”Wenn-Sonst”-Anweisung, welche entsprechend Funktionen, wie der Vorbereitungsfunktion oder der Hilfsfunktion, verzweigt, die Reihenfolge so neu geordnet, dass am Anfang eine häufig eingesetzt Funktion geprüft wird. Da die Anzahl an bedingten Verzweigungsbefehlen, welche während der Programmausführung verarbeitet werden, durch die Vorabprüfung einer häufiger eingesetzten Funktion abgesenkt wird, wird es möglich, die Geschwindigkeitsverluste aufgrund bedingter Verzweigungsbefehle zu reduzieren.
-
<Optimierungsbeispiel 3>
-
Es wird möglich, die Cache-Fehler und TLB-Fehler zu reduzieren durch Anordnungsänderungen bezüglich der Speichermodule, welche die Funktionen betreffen, wie die Vorbereitungsfunktion und die Hilfsfunktion, in Abhängigkeit von der Einsatzfrequenz der Funktionen und dabei die häufig verwendeten Module so anzuordnen, dass sie im Speicher nahe beieinander angeordnet sind.
-
6 ist ein funktionales Blockdiagramm eines Steuersystems in einem Ausführungsbeispiel der Erfindung. In 6 ist ein Beispiel dargestellt, bei dem eine optimierte Anwendung in einem Server 100 in einem Netzwerk vorgesehen ist.
-
Das Steuersystem dieses Ausführungsbeispiels ist zusammengestellt aus einem Server 100, in welchem die optimierte Anwendungseinheit vorgesehen ist, einer numerischen Steuerung 200, einem Rechner 300 mit CAD/CAM, und einem Server 400, welcher eine Ausführungsausstattung der Steuersoftware ist, wobei alle Komponenten miteinander über das Netzwerk verbunden sind.
-
Der Server 100 hat eine Bearbeitungsprogramm-Empfangseinheit 110, eine Einsatzfrequenz-Bestimmungseinheit 120, eine Sourcecode-Optimierungseinheit 130, einen Kompilierer 140, einen Verknüpfer (Programmbinder) 150 und eine Steuersoftware-Übertragungseinheit 160.
-
Die Bearbeitungsprogramm-Empfangseinheit 110 empfängt ein Bearbeitungsprogramm und Informationen bezüglich des Einsatzverlaufes (Einsatzhistorie) des Bearbeitungsprogrammes, falls eine solche vorliegt, von der numerischen Steuerung 200 oder dem Rechner 300.
-
Die Einsatzfrequenz-Bestimmungseinheit 120 analysiert das Bearbeitungsprogramm und die Informationen bezüglich des Einsatzverlaufes des Bearbeitungsprogrammes, wie durch die Bearbeitungsprogramm-Empfangseinheit 110 empfangen, und berechnet die Einsatzfrequenz der Funktionen, wie der Vorbereitungsfunktion und der Hilfsfunktion, und die Beziehungen zwischen diesen Funktionen (Reihenfolge des Einsatzes etc.).
-
Die Sourcecode-Optimierungseinheit 130 liest einen Sourcecode 170 der in einem Speicher (nicht dargestellt) gespeicherten Steuersoftware und wendet das oben beschriebene Optimierungsverfahren auf den Sourcecode an, um einen optimierten Sourcecode 172 auf Basis der Einsatzfrequenz der Funktionen, wie der Vorbereitungsfunktion und der Hilfsfunktion, und der Beziehung zwischen den Funktionen, wie durch die Einsatzfrequenz-Bestimmungseinheit 120 ermittelt, zu erzeugen.
-
Der Kompilierer 140 kompiliert den durch die Sourcecode-Optimierungseinheit 130 erzeugten optimierten Sourcecode 172, um eine Objektdatei 174 zu erzeugen und der Verknüpfer 150 verknüpft (bindet) die erzeugte Objektdatei 174 zur Erzeugung einer optimierten Steuersoftware 76.
-
Sodann überträgt die Steuersoftware-Übertragungseinheit 160 die erzeugte und optimierte Steuersoftware 176 zur Ausführungsausstattung der Steuersoftware. Die Ausführungsausstattung als Destination der Steuersoftware ist entsprechend einem Verfahren zum Einsatz der Steuersoftware 176 die numerische Steuerung 200 der Werkzeugmaschine, wenn die Steuersoftware direkt durch die numerische Steuerung 200 ausgeführt wird, während die Destination der Server 400 ist, wenn ein Verfahren zur Ausführung der Steuersoftware 176 über das Netzwerk läuft.
-
Ausführungsbeispiele der vorliegenden Erfindung wurden oben beschrieben. Jedoch ist die Erfindung nicht auf diese Ausführungsbeispiele beschränkt und kann in anderer Form mit angemessenen Änderungen verwirklicht werden.
-
Bei obigen Ausführungsbeispielen wurden das Bearbeitungsprogramm und der Einsatzverlauf des Bearbeitungsprogrammes für die Optimierung analysiert, jedoch können auch Informationen (Typ und Aufbau der CPU, Speicherstrukturen etc.), welche die Ausführungsausstattung der Steuersoftware betreffen, zusätzlich für die Optimierung des Sourcecodes herangezogen werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2002-229803 A [0003, 0007]
- JP 2003-216434 A [0004, 0008, 0025]
- JP 2000-122871 A [0005, 0009]