-
Die Erfindung betrifft ein Verfahren zum Optimieren eines Betriebsablaufs von programmgesteuerten Maschinen, insbesondere von Robotern.
-
Zur Steuerung komplexer, programmgesteuerter Maschinen, wie beispielsweise von Robotern oder NC-Maschinen, werden in der Regel spezialisierte Programmiersprachen verwendet, mit denen die einzelnen Schritte eines Betriebsablaufs einer derartigen Maschine festgelegt werden können. Derartige spezialisierte Sprachen sind meist herstellerabhängig, so dass für Fertigungsanlagen mit einer Mehrzahl von unterschiedlichen Herstellern bereitgestellten Maschinen entsprechende Steuerprogramme in einer Vielzahl unterschiedlicher Sprache bereitgestellt werden müssen. Dies erhöht den Wartungsaufwand bezüglich der Steuerprogramme beträchtlich und verursacht hohe Kosten sowie Verzögerungen im Produktionsablauf.
-
Es ist bekannt, derartige maschinenabhängige Programmiersprachen in maschinenunabhängige Zwischensprachen zu übersetzen, um so einen einheitlichen Zwischencode zu erzeugen. Beispiele hierfür sind die Sprache Pearl oder die IR DATZ-Schnittstelle. Die Robotersteuerungen selbst können dann mit Interpretern versehen werden, die in der Lage sind, eine derartige maschinenunabhängige Sprache zur Steuerung der Maschine auszuführen. Eine solche direkte Interpretation einer maschinenunabhängigen Sprache in einem Steuergerät für eine programmgesteuerte Maschine ist jedoch relativ rechenzeitaufwändig und kann zu Problemen bei der Echtzeitsteuerung führen. Durch den Interpretationsschritt wird zudem eine zusätzliche Fehlerquelle eingeführt, die zu bestimmten Programmfehlern führen kann, die im ursprünglichen Code nicht unmittelbar erkennbar sind und die sich erst bei der Ausführung manifestieren. Auch dies kann zu Problemen im Fertigungsablauf führen.
-
Der vorliegenden Erfindung liegt somit die Aufgabe zugrunde, ein Verfahren der eingangs genannten Art bereitzustellen, welches eine effiziente Optimierung des Betriebsablaufs von programmgesteuerten Maschinen ermöglicht.
-
Diese Aufgabe wird durch Verfahren mit den Merkmalen der Patentansprüche 1 und 2 gelöst.
-
Bei diesen Verfahren zum Optimieren eines Betriebsablaufs von programmgesteuerten Maschinen, insbesondere von Robotern, wird zunächst ein Steuerprogramm in einer maschinenabhängigen Programmiersprache bereitgestellt. Dieses wird in der Folge in eine maschinenunabhängige Programmiersprache übersetzt. Das derart übersetzte Steuerprogramm wird dann nach zumindest einem vorgegebenen Analysekriterium analysiert. In einer ersten erfindungsgemäßen Verfahrensvariante wird das Ergebnis dieser Analyse dazu verwendet, das ursprüngliche Steuerprogramm zu optimieren. In einer weiteren erfindungsgemäßen Verfahrensvariante wird das übersetzte Steuerprogramm auf Grundlage dieser Analyse optimiert, und der optimierte, noch immer in der maschinenunabhängigen Programmiersprache vorliegende Programmcode wird in der Folge in die maschinenabhängige Programmiersprache zurück übersetzt und kann dann ohne Interpretation vom Steuergerät der programmgesteuerten Maschine ausgeführt werden.
-
Im Gegensatz zum Stand der Technik ist somit keine in Echtzeit ablaufende Interpretation des in der maschinenunabhängigen Programmiersprache abgefassten Steuerprogramms notwendig, so dass die damit assoziierten Probleme vermieden werden können. Das in die maschinenunabhängige Programmiersprache übersetzte Steuerprogramm dient also nicht zur unmittelbaren Ansteuerung der programmgesteuerten Maschine, sondern stellt lediglich eine Plattform zur Verfügung, auf der für Maschinen unterschiedlicher Hersteller, die mit unterschiedlichen maschinenabhängigen Programmiersprachen gesteuert werden können, eine gemeinsame Analyse des Programmcodes durchgeführt werden kann. Ein derartiges einheitliches Analysetool für Steuerprogramme von Maschinen unterschiedlichster Hersteller erleichtert die Wartung, Pflege und Änderung von Steuerprogrammen in Rahmen komplexer Fertigungsanlagen mit einer Mehrzahl von derartigen Maschinen beträchtlich, so dass Kosten eingespart und die Prozessabläufe vereinfacht werden können. Insbesondere brauchen keine Analysetools für die unterschiedlichen maschinenabhängigen Programmiersprachen mehr bereitgestellt werden.
-
Vorzugsweise wird beim Übersetzen des Steuerprogramms dieses in einer vorgegebenen Datenstruktur, insbesondere einer Baumstruktur, repräsentiert. Eine derartige Repräsentation erleichtert die Analyse des Steuerprogramms, so dass falsche oder implausible Programmanweisungen besonders einfach erkannt werden können.
-
Zweckmäßigerweise umfasst das zumindest eine Analysekriterium dabei eine Syntaxprüfung und/oder eine Logikprüfung und/oder eine Prüfung auf Rückverzweigungen – also Prüfungen auf formale Korrektheit des Steuerprogramms – sowie eine Prüfung von Variablen bezüglich ihrer Definition und/oder eine Prüfung von Variablen bezüglich einer Namenskonvention und/oder eine Plausibilitätsprüfung und/oder eine Laufzeitanalyse – also Prüfungen, die die Plausibilität konkreter Programmparameter im Rahmen eines von der Maschine durchgeführten Bearbeitungsprozesses überprüfen.
-
Besonders vorteilhaft ist es dabei, in die Analyse des Steuerprogramms zusätzlich während zumindest einer Ausführung des Steuerprogramms durch die programmgesteuerte Maschine gespeicherte Betriebsparameter der programmgesteuerten Maschine einzubeziehen. Hierdurch kann beispielsweise überprüft werden, ob das Programm in seiner Ausführung tatsächlich die gewünschten Effekte in der programmgesteuerten Maschine erzeugt. Zudem ist es so möglich, beispielsweise wenn an der Maschine ein besonders hoher Verschleiß oder dergleichen festgestellt wird, eine Fehleranalyse durchzuführen, die die Ursache für diesen Verschleiß detektieren kann. Hierdurch können beispielsweise fehlerhaft hohe Belastungen einzelner Achsen eines Roboters detektiert werden.
-
Das Verfahren kann dabei zweckmäßigerweise sowohl zur Inbetriebnahmeprüfung der programmgesteuerten Maschine als auch parallel zur Ausführung des Steuerprogramms auf der programmgesteuerten Maschine und/oder nach Ausführung des Steuerprogramms auf der programmgesteuerten Maschine durchgeführt werden. Bei der Inbetriebnahmeprüfung kann dabei beispielsweise eine Aussage zur Qualität bzw. grundsätzlichen Funktionsfähigkeit des Steuerprogramms getroffen werden, parallel zur Ausführung ist es möglich, Hinweise zu potentiellen Fehlern oder Optimierungsmöglichkeiten des bereits angewendeten Steuerprogramms zu erhalten, nach der Ausführung ist es denkbar, wie bereits erläutert, Ursachen für Verschleiß oder Versagen in der Maschine zu finden.
-
Alle derart aufgefundenen Probleme können im folgenden Optimierungsschritt behoben werden, so dass nach Durchführung des gesamten Verfahrens ein optimiertes Programm in der maschinenabhängigen Programmiersprache vorliegt, welches die detektierten Probleme vermeiden kann.
-
Im Folgenden werden die Erfindung und ihre Ausführungsformen anhand der Zeichnung näher erläutert. Es zeigen:
-
1 eine schematische Darstellung des Ablaufs einer Robotersteuerung nach dem Stand der Technik und
-
2 eine schematische Darstellung des Ablaufs eines Ausführungsbeispiels eines erfindungsgemäßen Verfahrens.
-
In komplexen Fertigungsanlagen mit einer Mehrzahl von Robotern oder NC-Maschinen unterschiedlicher Hersteller liegen Steuerprogramme 10, 12 für diese Maschinen oftmals in einer Vielzahl von herstellerabhängigen Programmiersprachen vor. Aus dem Stand der Technik ist es bekannt, diese Steuerprogramme 10, 12 mittels jeweils zugeordneter, sprachspezifischer Compiler 14, 16 in eine einheitliche Zwischensprache zu übersetzen. Die entsprechend kompilierten Programme 18, 20 können dann mittels eines auf dem Steuergerät 22 der entsprechenden Maschine ablaufenden Interpreters 24 unmittelbar zur Steuerung des Roboters eingesetzt werden. Da die Interpretation der Programme 18, 20 dabei in Echtzeit ablaufen muss, können sich jedoch entsprechende Probleme ergeben, die im Programmcode nicht unmittelbar erkannt werden können. Auch eine gemeinsame Analyse und Optimierung der Programme 10, 12 ist mit dem in 1 gezeigten Verfahren nach dem Stand der Technik nicht möglich. Vielmehr müssen für die jeweiligen Programmiersprachen der Programme 10, 12 eigene, sprachspezifische Analyse- und Optimierungstools bereitgestellt werden, was den Wartungs- und Updateaufwand beträchtlich erhöht.
-
Zur Optimierung des Betriebsablaufs von programmgesteuerten Maschinen verschiedener Hersteller ist daher das in 2 schematisch dargestellte Ausführungsbeispiel eines erfindungsgemäßen Verfahrens besonders zweckmäßig. Auch hier liegen für unterschiedliche Maschinen Steuerprogramme 10, 12 in unterschiedlichen, maschinenabhängigen Programmiersprachen vor. Durch entsprechende Compiler 26 kann auch hier eine Übersetzung zwischen den maschinenabhängigen Programmiersprachen der Programme 10, 12 und einer einheitlichen, maschinenunabhängigen Zwischensprache erzielt werden. Die in dieser Zwischensprache vorliegenden Versionen der Steuerprogramme 18, 20 werden im Rahmen dieses Verfahrens jedoch nicht zur unmittelbaren Steuerung der entsprechenden Roboter benutzt. Vielmehr werden die in der Zwischensprache vorliegenden Programme 18, 20 mittels gemeinsamer, auf die Zwischensprache zugeschnittener Analysetools 28 zunächst einer Analyse unterzogen. Auf Grundlage dieser Analyse kann dann eine Optimierung stattfinden, die ebenfalls auf der Ebene der maschinenunabhängigen Zwischensprache durchgeführt wird. Der entsprechend optimierte Code der Programme 18, 20 wird dann mittels der Compiler 26 wieder in die entsprechenden maschinenabhängigen Programmiersprachen zurückübersetzt, die unmittelbar auf den Steuergeräten 22 der jeweiligen Maschinen ausgeführt werden können, ohne dass ein Interpreter notwendig wird. Hierdurch wird eine verbesserte Echtzeitperformance der Programme 10, 12 erzielt, wobei gleichzeitig die Notwendigkeit, maschinenabhängige Analysetools bereitzustellen, vermieden wird. Hierdurch kann eine besonders einfache Wartung der Programme 10, 12 erzielt werden.
-
Die Analysetools 28 sind dabei dazu ausgelegt, zunächst das Programm 18, 20 strukturell zu analysieren und in einer internen Datenstruktur zu repräsentieren. Hierzu kann beispielsweise eine Baumstruktur Anwendung finden, die besonders einfach auch grafisch dargestellt werden kann. Jeder Befehl der ursprünglichen Steuerprogramme 10, 12 wird also in diese homogene Datenstruktur übersetzt. Beispielsweise sind für Roboterbewegungen in dieser Struktur Immer die jeweiligen Ausgangspunkte, Zielpunkte und die Geschwindigkeit der Bewegung angegeben. Auf Grundlage dieser Struktur kann dann mittels der Analysetools 28 eine Überprüfung der Roboterbefehle durchgeführt werden, in der z. B. geprüft wird, ob Zielpunkt, Ausgangspunk, Offset, Geschwindigkeit und dergleichen einer derartigen Bewegung zusammenpassen.
-
Im Rahmen der Analysetools 28 kann insbesondere zusätzlich eine Quellcodeanalyse zur Syntaxprüfung etc., eine Prüfung auf Rückverzweigungen, die als schlechte Programmierpraxis gelten, eine Prüfung, ob alle Variablen definiert wurden, ob das Programm Tippfehler enthält, durch die z. B. eine falsche Variable aufgerufen werden kann, oder dergleichen abgefragt werden. Ferner kann geprüft werden, ob ein von dem Anwender für einen Punkt gewählter Name einer entsprechenden vorgegebenen Namenskonvention entspricht. Auch eine Logikprüfung und Plausibilitätsprüfung kann durchgeführt werden. Ferner ist es möglich, eine Laufzeitanalyse durchzuführen, um beispielsweise herauszufinden, wie lange bestimmte Programmabläufe in der Realität benötigen.
-
Die Ergebnisse all dieser Analysen können visualisiert und dem Anwender angezeigt werden, so dass dieser gegebenenfalls manuell Optimierungen vornehmen kann. Neben der Fehleranalyse kann dabei eine Korrekturhilfe angeboten werden oder auch eine vollständig automatisierte Optimierung durchgeführt werden.
-
Das geschilderte Verfahren kann ferner zu unterschiedlichen Zeitpunkten eingesetzt werden. Beispielsweise ist es möglich, mittels der Analysetools 28 eine Prüfung des Programms direkt nach seiner Erstellung, d. h. noch vor Weiterleitung des Steuerprogramms 10, 12 an den jeweiligen Roboter, durchzuführen, um eine Aussage zur Qualität bzw. Funktionsfähigkeit des Programms zu erhalten. Auch im Rahmen einer Inbetriebnahmeprüfung des zu steuernden Roboters kann das Verfahren Anwendung finden. Hierbei wird beispielsweise überprüft, ob bestimmte Programmteile, Parameterfelder oder dergleichen korrekt initialisiert bzw. aktualisiert wurden. Beispielsweise müssen hierbei alle maximal auftretenden Lasten in die Robotersteuerung eingelesen werden. Auch dies kann nach Übersetzung der Programme 10, 12 in die Zwischensprache erfolgen.
-
Auch parallel zur Ausführung der Steuerprogramme 10, 12 auf einem spezifischen Roboter kann eine derartige Analyse durchgeführt werden, um Hinweise auf potentielle Fehler bzw. Optimierungsmöglichkeiten des laufenden Programms zu erhalten. Hierzu können gegebenenfalls noch Daten über konkret auftretende Belastungen oder dergleichen des Roboters an die Analysetools 28 übermittelt werden. Auch für eine nachträgliche Fehleranalyse nach der Ausführung der Programme 10, 12 kann das Verfahren Anwendung finden. Dies bietet sich beispielsweise an, wenn an dem jeweiligen Roboter ein besonders hoher Verschleiß oder ein Versagen bestimmter Komponenten festgestellt wurde. Im Rahmen der Überprüfung mit den Analysetools 28 kann dann festgestellt werden, was die Ursache für Verschleiß oder Versagen ist, wie beispielsweise eine fehlerhaft hohe Belastung einer einzelnen Achse des Roboters. Hierzu kann der komplette Archivbereich des Roboters, der Informationen über alle durchgeführten Bewegungen und eventuell dabei auftretende Kräfte enthält, mit in die Zwischensprache übertragen und analysiert werden.
-
Insgesamt ergibt sich so ein besonders einfach zu wartendes System zur Optimierung der Betriebsparameter einer Mehrzahl von Robotern, NC-Maschinen oder ähnlicher programmgesteuerter Maschinen unterschiedlicher Hersteller, mittels welcher die Betriebsabläufe in automatisierten Fertigungsanlagen besonders einfach, prozesssicher und kostengünstig kontrolliert und optimiert werden können.