DE102020213732A1 - Robotersteuerung und robotersteuerverfahren - Google Patents

Robotersteuerung und robotersteuerverfahren Download PDF

Info

Publication number
DE102020213732A1
DE102020213732A1 DE102020213732.3A DE102020213732A DE102020213732A1 DE 102020213732 A1 DE102020213732 A1 DE 102020213732A1 DE 102020213732 A DE102020213732 A DE 102020213732A DE 102020213732 A1 DE102020213732 A1 DE 102020213732A1
Authority
DE
Germany
Prior art keywords
command
program
call
parallel
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020213732.3A
Other languages
English (en)
Inventor
Akihiro Yanagita
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Publication of DE102020213732A1 publication Critical patent/DE102020213732A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical 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/4155Numerical 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 programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/005Manipulators for mechanical processing tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31076Controller for cell, for robot motion, for supervision

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

Zum Ausführen von Verarbeitung mit hoher Genauigkeit im Hinblick auf Zeit und Distanz über ein einfaches Verfahren. Eine Robotersteuerung 10 umfasst eine Bewegungsbefehls-Interpretationseinheit 121, die ein Bewegungsbefehlsprogramm interpretiert, das eine Lehrbewegung und eine Lehrposition eines Roboters beschreibt und einen Bewegungsbefehl erzeugt; eine Bewegungsbefehls-Ausführeinheit 122, die den Bewegungsbefehl ausführt; eine Parallelaufrufbefehls-Detektionseinheit 123, welche das Bewegungsbefehlsprogramm vorab einliest und eine Zeile detektiert, an der ein Parallelaufrufbefehl gelehrt wird; und eine Parallelaufrufbefehls-Ausführeinheit 124, die ein durch einen Parallelaufrufbefehl bezeichnetes Programm zu einem bezeichneten Zeitpunkt ausführt.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine Robotersteuerung und ein Robotersteuerverfahren.
  • STAND DER TECHNIK
  • Wenn ein Roboter in Verwendung ist, werden Prozesse mit E/A-Signalen ausgeführt, die zwischen Peripherie-Ausrüstung ausgetauscht werden, wie etwa einem Werkzeug oder Schweißer, der durch ein Ende eines Manipulators gehalten wird. Somit sind sowohl Bewegungsbefehle zum Bewegen des Manipulators als auch Logikbefehle für Berechnungen und Kommunikation mit der Peripherie-Ausrüstung im Programm des Roboters vorhanden.
  • In aktuellen Steuerungen, wenn Bewegungsbefehle für den Manipulator und Logik-Verarbeitungsbefehle (oder Unterroutinen-Aufrufe) für Ausgabe/Eingabe und Berechnungen beide in dem Programm des Roboters vorhanden sind, wird ein Verfahren des sequentiellen Ausführens der Befehle verwendet.
  • 5 zeigt ein Beispiel eines Programms, das zum sequentiellen Ausführen von Befehlen verwendet wird. Wie in 5 gezeigt, kann jede Zeile des Programms als ein einzelner Bewegungsbefehl oder ein einzelner Logik-Verarbeitungsbefehl bezeichnet werden und wenn die Steuerung das Programm ausführt, werden die Befehle sequentiell ausgeführt, wobei die Ausführung einer Befehlszeile abgeschlossen sein muss, bevor die nächste Zeile ausgeführt wird.
  • Diesbezüglich ist eine Technologie (beispielsweise japanisches Patent Nr. JP 6067905 B ) bekannt, das über ein Cloud-Endgerät, welches mit einem Web-Server verbunden ist, ein Skript von Betriebsinformation zum Synchronisieren eines auf einer Anzeige angezeigten Bilds und eines Touch-Panels eines Roboters erzeugt, einer Textausgabe unter Verwendung von Sprachsynthese über eine Lautsprecher und einer Betriebseinstellung eines vorbestimmten Teils des Roboters und sequentielles Betreiben des Roboters.
  • Patentdokument 1: Japanisches Patent Nr. JP 6067905 B
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Abhängig von der Anwendung, in welcher der Roboter verwendet wird, kann die Verarbeitung von Logikbefehlen Zeit erfordern. Falls die Anweisungen sequentiell ausgeführt werden, mag es sein, dass die Verarbeitung nicht rechtzeitig abgeschlossen ist. Mit anderen Worten, in dem Fall, in welchem die Ausführung eines Bewegungsbefehl enden muss, bevor die nächste Logikbefehlszeile ausgeführt wird, falls zu viel Zeit auf den Logikbefehl verwendet wird, kann es sein, dass die Verarbeitung der Peripherie-Ausrüstung durchgeführt wird, nachdem der Manipulator die Position (oder Zeit) passiert hat, wo die ursprüngliche Verarbeitung durchgeführt werden sollte. Dies kann die Qualität des Verarbeitungsergebnisses negativ beeinträchtigen.
  • Auch, durch Ausführung von Logikbefehlen in ...? Moment während der Beschleunigung/Verlangsamung eines Manipulators können Logikbefehle ausgeführt werden, während die Bewegungsgeschwindigkeit des Manipulators im Wesentlichen konstant gehalten wird. Falls jedoch die Ausführung eines Logikbefehls zu lang braucht, wird der Start der Ausführung des nächsten Bewegungsbefehls verzögert. Dies kann ein Risiko verursachen, dass die Bewegungsgeschwindigkeit nicht konstant gehalten werden kann.
  • Weiterhin, abgängig von der Anwendung, muss eine detaillierte Verarbeitung in mehreren Anzahlen von unterteilten Schritten durchgeführt werden, während der Roboter in Vorwärts- oder Rückwärtsumgebung einer Lehrposition bewegt wird, wo eine gewisse Verarbeitung durchgeführt wird. In diesem Fall kann das Ausführen von Roboterbewegung und Logikbefehlen sequentiell dazu führen, dass der Roboter nicht wie beabsichtigt arbeitet.
  • Beispielsweise für eine Lackieraufgabe, die durch einen Roboter durchgeführt wird, der einen Lack-Sprühpistole hält, von gerade bevor (etwa eine Sekunde oder weniger bevor) ein Manipulator an einer Position, wo das Sprühen beginnt, eintrifft, müssen: (1) starte die Abgabe von Druckluft, die das Lackiermaterial atomisiert, (2) starte Anlegen von Spannung zum elektrischen Laden des Lackiermaterials, (3) öffne das Ventil zum Abgeben des Lackiermaterials, und andere Prozesse sequentiell mit einer Genauigkeit in der Größenordnung von Millisekunden ausgeführt werden. Diese Prozesse müssen auch parallel zur Bewegung des Roboters ausgeführt werden. Es ist für ein Anwendungsprogramm schwierig, solche Prozesse parallel mit der Manipulator-Bewegung auszuführen.
  • 6A zeigt ein Beispiel eines Programms zum Ausführen einer Sprühaufgabe. 6B zeigt ein Beispiel von zusätzlichen Lehrpunkten, die benötigt werden, um eine Sprühstartsequenz auszuführen. Wie durch die Beispiele von 6A und 6B gezeigt, in dem Fall, in welchem das Lehren der Lehrpunkte P [51] und P [52], die nicht ursprünglich notwendig sind, hinzugefügt werden müssen, nur für den Zweck des Ausführens der Sprühstartsequenz, gibt es eine Tendenz, dass Probleme hinsichtlich Zeitgenauigkeit und Distanzgenauigkeit auftreten.
  • Somit gibt es einen Bedarf für eine Robotersteuerung und ein Robotersteuerverfahren, die ein einfaches Verfahren bereitstellen, in der Lage zu sein, Applikations-Verarbeitungen mit hoher Genauigkeit im Hinblick auf Zeit und Distanz auszuführen.
  • Eine Ausführungsform der vorliegenden Offenbarung ist eine Robotersteuerung, die beinhaltet:
    • eine Bewegungsbefehls-Interpretationseinheit, die ein Bewegungsbefehlsprogramm interpretiert, das eine Lehrbewegung und eine Lehrposition eines Roboters beschreibt, und einen Bewegungsbefehl erzeugt;
    • eine Bewegungsbefehls-Ausführeinheit, welche den Bewegungsbefehl ausführt;
    • eine Parallelaufrufbefehls-Detektionseinheit, welche das Bewegungsbefehlsprogramm vor-einliest und eine Zeile detektiert, wo ein paralleler Aufrufbefehl gelehrt wird; und
    • eine Parallelaufrufbefehls-Ausführeinheit, die ein durch einen Parallelaufrufbefehl zu einem bezeichneten Zeitpunkt bezeichnetes Programm ausführt.
  • Gemäß dieser Ausführungsform kann eine Verarbeitung mit hoher Genauigkeit im Hinblick auf Zeit und Distanz über ein einfaches Verfahren durchgeführt werden.
  • Figurenliste
    • 1A ist ein Gesamt-Konfigurationsdiagramm eines Robotersteuersystems einer Ausführungsform;
    • 1B ist ein Gesamt-Konfigurationsdiagramm eines Beispiels eines Robotersteuersystems einer Ausführungsform;
    • 2 ist ein Funktionsblockdiagramm einer Robotersteuerung einer Ausführungsform;
    • 3A ist ein Beispiel eines Bewegungsbefehlsprogramms, das durch eine Robotersteuerung einer Ausführungsform verwendet wird;
    • 3B ist ein Beispiel eines Bildschirms, der detaillierte Information eines durch eine Robotersteuerung einer Ausführungsform verwendeten Aufrufbefehls anzeigt;
    • 3C ist ein Diagramm, das ein Beispiel der Beziehung zwischen den Lehrpunkten, bezeichnet durch eine Robotersteuerung einer Ausführungsform, und Abrufpositionen von „Zeilennummer bezeichneten“ Aufrufen und „positionsbezeichneten“ Aufrufen zeigt;
    • 4A ist ein Beispiel eines Bewegungsbefehlsprogramms, das durch eine Robotersteuerung einer Ausführungsform verwendet wird;
    • 4B ist ein Beispiel eines Bildschirms, der detaillierte Information eines Aufrufbefehls anzeigt, der durch eine Robotersteuerung einer Ausführungsform verwendet wird.
    • 4C ist ein Diagramm, das ein Beispiel eines durch eine Robotersteuerung einer Ausführungsform ausgeführten Programms zeigt;
    • 4D ist ein Flussdiagramm, das die Verarbeitung durch ein, durch eine Robotersteuerung einer Ausführungsform ausgeführtes Programm zeigt;
    • 4E ist ein Flussdiagramm, das eine Verarbeitung durch ein, durch eine Robotersteuerung einer Ausführungsform ausgeführtes Programm zeigt;
    • 4F ist ein Flussdiagramm, das eine Verarbeitung durch ein, durch eine Robotersteuerung einer Ausführungsform ausgeführtes Programm zeigt;
    • 4G ist ein Flussdiagramm, das eine Verarbeitung durch ein, durch eine Robotersteuerung einer Ausführungsform ausgeführtes Programm zeigt;
    • 4H ist ein Diagramm, das ein Beispiel der Beziehung zwischen Lehrpunkten, die durch eine Robotersteuerung einer Ausführungsform bezeichnet sind, und Abrufpositionen von „Zeilen-Nummer-bezeichneten“ Aufrufen und „Positionsbezeichneten“ Aufrufen zeigt;
    • 5 ist ein Beispiel eines durch eine bekannte Robotersteuerung verwendeten Bewegungsbefehlsprogramms;
    • 6A ist ein Beispiel eines durch eine bekannte Robotersteuerung verwendeten Bewegungsbefehlsprogramms; und
    • 6B ist ein Diagramm, das ein Beispiel der Beziehung, die zwischen Lehrpunkten, bezeichnet durch eine bekannte Robotersteuerung, und Abrufpositionen von „Zeilen-Nummern-bezeichneten“ Aufrufen und „Positions-bezeichneten“ Aufrufen zeigt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Eine Ausführungsform der vorliegenden Erfindung wird unten unter Bezugnahme auf 1A bis 4H beschrieben.
  • Ausführungsform-Konfiguration
  • 1A zeigt eine Gesamtkonfiguration eines Robotersteuersystems 1 gemäß einer Ausführungsform der vorliegenden Erfindung. Das Robotersteuersystem 1 ist mit einer Robotersteuerung 10, einem Roboter 20 und einer externen Peripherie-Vorrichtung 30 versehen. Auch sind die Robotersteuerung 10 und der Roboter 20 kommunikativ verbunden und sind die Robotersteuerung 10 und die externe Peripherie-Vorrichtung 30 kommunikativ verbunden. Es ist anzumerken, dass, obwohl in 1A nicht gezeigt, die Robotersteuerung 10, der Roboter 20 und die externe Peripherie-Vorrichtung 30 über ein Netzwerk kommunikativ verbunden sein können.
  • Die Robotersteuerung 10 ist eine Vorrichtung, welche den Roboter 20 steuert. Spezifisch speichert die Robotersteuerung 10 ein Lehrprogramm, Lehrdaten und einen Bewegungsparameter für Bewegungssteuerung und Verarbeitungssteuerung des Roboters 20 und steuert den Roboter 20 durch Ausführen des Lehrprogramms auf Basis der Lehrdaten und des Bewegungsparameters.
  • Der Roboter 20 ist beispielsweise ein Gelenkroboter, wie etwa ein 6-Achsen-Gelenk- oder 4-Achsen-Gelenkroboter. Jedoch ist keine Beschränkung beabsichtigt und der Roboter 20 kann ein kartesischer Koordinaten-Roboter, ein Skalar-Roboter, ein Parallelverbindungs-Roboter oder dergleichen sein.
  • Die externe Peripherie-Vorrichtung 30 ist eine programmierbare Logiksteuerung (PLC), ein Laser-Oszillator oder eine ähnliche Applikationssteuerung.
  • In dem in 1A gezeigten Robotersteuersystem 1, beispielsweise in dem Fall, bei dem die externe Peripherie-Vorrichtung 30 eine Steuerung eines Laser-Oszillator ist, steuert die Robotersteuerung 10 den Roboter 20 über E/A-Signale und serielle Kommunikation mit dem Roboter 20 und der externen Peripherie-Vorrichtung 30 und steuert den durch den Roboter 20 durchgeführte Laserverarbeitungsprozess.
  • 1B ist ein Gesamtkonfigurations-Diagramm eines Beispiels des Robotersteuersystems 1, in welchem der Roboter 20 eine Lackieraufgabe zusammen mit der externen Peripherie-Vorrichtung 30 durchführt, die ein Beispiel einer Lackiermaschine ist. Der Roboter 20 wird mit einer Sprühdüse 21 versehen und die Lackieraufgabe wird durch Zuführen von Lackiermaterial aus der externen Peripherie-Vorrichtung 30, das heißt einer Lackiermaschine, zu der Sprühdüse 21 über ein Lackiermaterial-Zufuhrrohr 22 und das Steuern der Sprühdüse 21 über einen am Roboter 20 vorgesehenen Manipulator durchgeführt. In der Beschreibung unten wird das Beispiel des die Lackieraufgabe wie in 1B gezeigt durchführenden Roboter 20 nach Bedarf verwendet.
  • 2 ist ein Funktionsblockdiagramm der Robotersteuerung 10. Die Robotersteuerung 10 ist mit einer Speichereinheit 11 und einer Steuereinheit 12 versehen.
  • Die Speichereinheit 11 speichert ein Bewegungsbefehlsprogramm, das eine Lehrbewegung und eine Lehrposition des Roboters 20 beschreibt. Auch ist ein parallel zu einem Bewegungsbefehl aufgerufener Parallelaufrufbefehl in dem Bewegungsbefehlsprogramm eingeschrieben. Der parallele Aufrufbefehl ermöglicht als er selbst oder zusätzlich zum Bewegungsbefehl, einem Unterprogramm, aufgerufen zu werden. Auch wird in einem „Parallelaufruf“ in der vorliegenden Erfindung ein Unterprogramm getrennt zu und parallel mit dem Ursprungsprogramm-Ausführungskontext ausgeführt. Es ist anzumerken, dass ein Beispiel eines Bewegungsbefehlsprogramms unten beschrieben wird.
  • Die Steuereinheit 12 beinhaltet eine CPU, ROM, RAM, CMOS-Speicher und dergleichen, wobei diese Komponenten konfiguriert sind in der Lage zu sein, miteinander über einen Bus zu kommunizieren. Eine Fachleuten auf dem Gebiet bekannte Konfiguration kann verwendet werden.
  • Die CPU ist ein Prozessor, der die Robotersteuerung 10 insgesamt steuert. Wie in 2 gezeigt, ist die Steuereinheit 12 konfiguriert, die Funktionen einer Bewegungsbefehls-Interpretationseinheit 121, einer Bewegungsbefehls-Ausführeinheit 122, einer Parallelaufrufbefehls-Detektionseinheit 123 und einer Parallelaufrufbefehls-Ausführeinheit 124 zu realisieren, indem die CPU über den Bus ein Systemprogramm und ein Applikationsprogramm, die im ROM gespeichert sind, ausliest und die Robotersteuerung 10 insgesamt entsprechend dem Systemprogramm und dem Applikationsprogramm steuert.
  • Die Bewegungsbefehls-Interpretationseinheit 121, wie oben beschrieben, interpretiert das Bewegungsbefehlsprogramm, das eine Lehrbewegung und eine Lehrposition des Roboters 20 beschreibt, und erzeugt einen Bewegungsbefehl.
  • Die Bewegungsbefehls-Ausführeinheit 122 aktiviert, wenn ein Lehrprogramm gestartet wird, die Aufgabenverarbeitung durch die Bewegungsbefehls-Interpretationseinheit 121 und führt den durch die Sprühdüse 21 erzeugten Bewegungsbefehl aus.
  • Die Parallelaufrufbefehls-Detektionseinheit 123 liest das Bewegungsbefehlsprogramm vorab ein und detektiert eine Zeile, wo der parallele Aufrufbefehl gelehrt wird.
  • Die Parallelaufrufbefehls-Ausführeinheit 124 (Parallelaufrufbefehls-Ausführeinheit 124a, Parallelaufrufbefehls-Ausführeinheit 124b, ..., Parallelaufrufbefehls-Ausführeinheit 124n) aktiviert eine Aufgabenverarbeitung durch die Parallelaufrufbefehls-Detektionseinheit 123 und ruft das durch den Parallelaufrufbefehl zum bezeichneten Zeitpunkt bezeichnete Programm auf und führt es aus. Es ist anzumerken, dass das durch den parallelen Aufrufbefehl bezeichnete Programm in der Lage ist, parallel ausgeführt zu werden. Um dies zu ermöglichen, beinhaltet die Parallelaufrufbefehls-Ausführeinheit 124 eine Vielzahl von Parallelaufrufbefehls-Ausführeinheiten 124, Parallelaufrufbefehls-Ausführeinheit 124a, Parallelaufrufbefehls-Ausführeinheit 124b, ... und Parallelaufrufbefehls-Ausführeinheit 124n.
  • Die Parallelaufrufbefehls-Ausführeinheit 124 kann angeben, wie viele Zeilen vor oder nach der Zeile, wo der Parallelaufrufbefehl in dem Bewegungsbefehlsprogramm gelehrt wird, und kann ein Aufrufverfahren zum Abrufen eines Aufrufs ausführen, wenn die Programmausführung diese Zeile erreicht (nachfolgend auch als ein „Zeilen-Nummern-bezeichneter Aufruf bezeichnet). Es ist anzumerken, dass für einen parallelen Aufrufbefehl ein Aufruf mehrmals durch eine „Zeilennummernbezeichnete“ bezeichnet werden kann. Auch ist es, wenn eine Zeilennummer bezeichnet wird, möglich, auszuwählen, ob alle der Programmaussagen zu berücksichtigen sind oder ob nur Manipulator-Bewegungsbefehle zu berücksichtigen sind. Typischerweise, da eine Bewegung des Manipulators etwas Zeit erfordert, kann der „Zeilennummern-bezeichnete Aufruf“ verwendet werden, dieses Mal für das Einrichten des Prozesses, wenn es einen „Positions-bezeichneten Aufruf“ gibt, der unten beschrieben wird.
  • Alternativ kann die Parallelaufrufbefehls-Ausführeinheit 124 einen Aufruf im Bewegungsbefehlsprogramm, zu einem Zeitpunkt abrufen, der durch eine Position oder Zeit des in dem Roboter 20 enthaltenen Manipulators bezeichnet wird, oder durch sowohl Position als auch Zeit, unter Verwendung der Lehrposition der Zeile, wo der parallele Aufrufbefehl gelehrt wird, als eine Referenz (nachfolgend auch als ein „Positionsbezeichneter Aufruf“ bezeichnet). Es ist anzumerken, dass für einen Parallel-Aufrufbefehl ein Aufruf mehrmals durch eine „Positionsbezeichnung“ bezeichnet werden kann. Beim Ausführen der Applikation des Roboters 20 müssen viele Prozesse mit hoher Genauigkeit, akkurat innerhalb Millisekunden, ausgeführt werden. Diese Aufrufe können verwendet werden, um solche Prozesse auszuführen.
  • 3A zeigt ein Beispiel eines Bewegungsbefehlsprogramms, in welchem ein Parallel-Aufrufbefehl beschrieben ist. Im in 3A gezeigten Bewegungsbefehlsprogramm wird ein paralleler Aufrufbefehl „CONC-CALL‟ PROG6 (10,3,5) zum Bewegungsbefehl in der sechsten Zeile hinzugefügt. Hier ist „CONC_CALL“ (gleichzeitiger Aufruf, concurrent call) ein Parallelaufrufbefehl zum Aufrufen eines Programms mit Namen „PROG6“. Auch ist „(10,3,5)“ ein Beispiel eines an „PROG6“ weitergeleiteten Arguments.
  • Die Parallelaufrufbefehls-Detektionseinheit 123 liest das in 3A gezeigte Bewegungsbefehlsprogramm vorab ein und detektiert die Zeilennummer 6, wo der parallele Aufrufbefehl gelehrt wird.
  • 3B zeigt ein Beispiel eines Bildschirms, der detaillierte Information des in 3A gezeigten „CONC_CALL“ anzeigt, und zeigt detaillierte Information, die angezeigt wird, wenn das in 3A gezeigte Programm angezeigt wird und beispielsweise die „Eingabe“-Taste gedrückt wird, mit dem Cursor über dem „CONC_CALL“-Befehl. Es ist anzumerken, dass für die in 3B gezeigten Daten intern die detaillierte Information an dem „CONC-CALL“-Befehl alloziert zu einem Datenbereich angeheftet werden kann und als Information gespeichert; oder in der Robotersteuerung 10 als eine Datendatei, wie etwa eine XML-Datei gespeichert werden kann.
  • In der „CONC_CALL-Befehlsdetail-Informations“-Reihe von 3B bezieht sich in Zeile Nummer 6 der „CONC_CALL“-Befehl mit dem Cursor über dem Befehl auf einen Befehl zum Aufrufen des Programms „PROG6“.
  • Auch ist die „„Zeilennummern-bezeichnete" Aufrufdefinition" Zeile eine Aufrufliste, in welcher das Aufrufverfahren Zeilennummern-bezeichnet ist.
  • „Programmname" ist der Name des aufgerufenen Programms und falls nichts bezeichnet wird, wird „Standard“ angezeigt und das vorab eingestellte Programm durch den „CONC_CALL“-Befehl wird aufgerufen. Auch kann ein anderes Programm bezeichnet werden und in diesem Fall wird das bezeichnete Programm zu dem durch das bezeichnete Programm bezeichneten Zeitpunkt aufgerufen. Es ist anzumerken, dass, falls ein Argument bezeichnet ist, das Argument an das Unterprogramm weitergeleitet wird.
  • „Triggerposition“ ist eine Bezeichnung davon, welcher Lehrpunkt, das heißt wie viele Lehrpunkte vor und nach der Position, wo der Befehl gelehrt wird, erreicht werden müssen, damit das in dem „Programmname“ angegebene Programm aufgerufen wird. Im in 3B gezeigten Beispiel ist die „Triggerposition“ von „PROG6“ „-5“. Bezug nehmend auf das in 3A gezeigte Beispielprogramm bedeutet diese Bezeichnung, dass „PROG6“ an Position [1] aufgerufen wird, was 5 Punkte vor Position [6] ist, wo der Bewegungsbefehl, an welchen „CONC_CALL „PROG6(10,3,5)“ angehängt ist, gelehrt wird.
  • Auch ist die „„Positions-bezeichnete" Aufrufdefinitions"-Zeile eine Aufrufliste, in welcher das Aufrufverfahren positionsbezeichnet wird.
  • „Relativdistanz (mm)“ bezeichnet, welche Relativposition, vorwärts oder rückwärts, ab der Position, wo der „CONC_CALL“-Befehl gelehrt wird, der Roboter-Manipulator sich annähern muss, damit das durch den „Programmname“ bezeichnete Programm aufgerufen wird. Ein negativer Wert gibt vor dem Lehrpunkt, und ein positiver Wert gibt nach dem Lehrpunkt an. Die Einheit ist „mm“. Es ist anzumerken, dass in dem Fall, in welchem der Manipulator nicht über den Lehrpunkt geht, aufgrund einer abgerundeten Ecke, die Relativdistanz als die Distanz ab dem Punkt der nächsten Annäherung des Manipulators definiert ist.
  • „Relativzeit (ms)“ wird als der zeitliche Versatz vorwärts oder rückwärts ab der Triggerposition bezeichnet, die in „Relativdistanz (mm)“ bezeichnet ist. Beispielsweise in dem Fall, in welchem „-10“ bezeichnet ist, wird der „positionsbezeichnete“ Aufruf 10 ms zuvor aufgerufen, wenn die Position erreicht ist, wo das Original „positionsbezeichnete“ aufgerufen würde. Ein Negativwert gibt vorher an und ein Positivwert gibt nachher an.
  • Die Parallelaufrufbefehls-Ausführeinheit 124 ruft auf und führt aus das „PROG6“-Programm, das durch den „CONC_CALL“ Parallelaufrufbefehl an Position [1] bezeichnet wurde, wie durch die „Triggerposition“ von „-5“, das heißt bei einer Zeilennummer 5 vor der Position [6], die durch Zeilennummer 6 bezeichnet ist.
  • Es ist anzumerken, dass dasselbe Programm beliebig oft zu unterschiedlichen Zeitpunkten aufgerufen werden kann. Dann wird eine Funktion zum Unterscheiden, durch welches Aufrufverfahren und zu welchem Zeitpunkt es in dem aufgerufenen Programm aufgerufen wird, vorbereitet. Durch den Wert aus der Funktion kann das Programm unterscheiden, ob es durch das „Zeilennummern bezeichnete“ oder das „positionsbezeichnete“ aufgerufen wird und kann unterscheiden, von welcher Zeilennummer es im Falle von „Zeilennummer bezeichnet“ aufgerufen wird und durch welche Position im Falle von „positionsbezeichnet“. Dies gestattet, eine für den aktuellen Zustand geeignete Verarbeitung auszuführen.
  • Auch wird ein Verfahren des Teilens von Daten zwischen einer Reihe von Programmen, die durch ein einzelnes „CONC_CALL“ aufgerufen wird, bereitgestellt. Beispielsweise können vorab in einem Programm, das durch einen Zeilennummern-bezeichneten Aufruf aufgerufen wird, eingerichtete Daten durch ein Programm referenziert werden, das danach durch eine positionsbezeichneten Aufruf aufgerufen wird. Beispielsweise wird eine Operation ermöglicht, in welcher, wenn das Einrichten in Reaktion auf einen Zeilennummern-bezeichneten Aufruf durchgeführt wird, ein Wert einer Analogspannung vorab berechnet wird und das berechnete Ergebnis zeitweilig in einem geteilten Bereich gespeichert wird, dann, innerhalb eines positionsbezeichneten Aufrufs, der auftritt, wenn der Manipulator eine Umgebung einer Lehrpositionsregion erreicht, wird das in dem geteilten Bereich gespeicherte berechnete Ergebnis verwendet, um rasch (ohne Wiederberechnen eines Ausgangsspannungswerts) eine Analogausgabe einzustellen.
  • 3C ist ein Diagramm, das ein Beispiel der Beziehung zwischen den Lehrpunkten und den Abrufpositionen der Zeilennummern-bezeichneten Aufrufe und der positionsbezeichneten Aufrufe zeigt. Die durchgezogenen Linienpfeile geben die Abrufposition eines Programms an, wenn das Programm durch einen Zeilennummern-bezeichneten Aufruf aufgerufen wird. In dem Fall, in welchem Programme durch einen Zeilennummern-bezeichneten Aufruf aufgerufen werden, entsprechen die Abrufpositionen der Programme den Zeilennummern, wo Bewegungsbefehle geschrieben sind. Somit werden die Programme zu den Lehrpunkten aufgerufen. Im in 3C gezeigten Beispiel werden Programme bei P[1], P[2] und P[7] aufgerufen.
  • Spezifisch, das Beispiel detaillierter Information verwendend, das in 3B gezeigt ist, in dem Fall, in welchem das „CONC_CALL“ von Zeile Nr. 6 genannte Programm „PROG6“ ist, ist die „Triggerposition“ „-5“. Somit führt die Parallelaufrufbefehls-Ausführeinheit 124 „PROG6“ an Position [1] (P[1]), bezeichnet durch Zeilennummer 1, welche „-5“ ab Zeile Nummer 6 ist, aus. In einer ähnlichen Weise, in dem Fall, in welchem das „CONC_CALL“ genannte Programm von Zeile Nummer 6 „PreProg3“ ist, ist die „Triggerposition“ „-4“. Somit führt die Parallelaufrufbefehls-Ausführeinheit 124 „PreProg3“ an Position [2] (P[2]), bezeichnet durch die Zeilennummer 2, die „-4“ ab der durch Zeile Nummer 6 bezeichneten Position 6 ist, aus. Auch, in ähnlicher Weise, in dem Fall, in welchem das Programm mit Namen „CONC-CALL“ von Zeile Nummer 6 „PostProg1“ ist, ist die „Triggerposition“ „1“. Somit führt die Parallelaufrufbefehls-Ausführeinheit 124 „PostProg1“ an Position [7] (P[7]), bezeichnet durch Zeilennummer 7, die „1“ von Zeile Nummer 6 ist, aus. Es ist anzumerken, dass diese „CONC_CALL“ auf einer Zeile mit einer beliebigen Zeilennummer geschrieben werden kann und die Parallelaufrufbefehls-Ausführeinheit 124 „PROG6“ an einer durch die Zeile Nummer „-5“ ab einer beliebigen Zeilennummer bezeichneten Position ausführt. In ähnlicher Weise führt die Parallelaufrufbefehls-Ausführeinheit 124 „PreProg3“ an einer durch die Zeile Nummer „-4“ ab einer beliebigen Zeilennummer bezeichneten Position aus. In ähnlicher Weise führt die Parallelaufrufbefehls-Ausführeinheit 124 „PostProg1“ an einer durch eine Zeilennummer „1“ ab der beliebigen Zeilennummer bezeichneten Position aus.
  • Der unterbrochene Linienpfeil gibt die Abrufpositionen eines Programms an, wenn das Programm durch ein positionsbezeichnetes aufgerufen wird. In dem Fall, in welchem Programme durch ein positionsbezeichnetes aufgerufen werden, entsprechen die aufgerufenen Positionen der Programme den Positionen vorwärts oder rückwärts ab einem Lehrpunkt, wo ein Bewegungsbefehl gelehrt wird. Im in 3C gezeigten Beispiel werden Programme vorwärts und rückwärts ab P[6] aufgerufen.
  • Spezifisch, unter Verwendung des Beispiels von in 3B gezeigter detaillierter Information, in dem Fall, in welchem das „CONC_CALL“ von Zeile Nummer 6 genannte Programm „Prox7“ ist, ist die „Relativdistanz (mm)“ „-40,0“ und ist die „Relativzeit (ms)“ „0“. Somit führt die Parallelaufrufbefehls-Ausführeinheit 124 „Prox7“ an einer Position -40,0 (mm) ab Position [6] aus, die eine durch Zeilennummer 6 bezeichnete Position ist. In ähnlicher Weise, in dem Fall, in welchem das „CONC_CALL“ genannte Programm von Zeile Nummer 6 „Prox8“ ist, ist die „Relativdistanz (mm)“ „-30,0“ und ist die „Relativzeit (ms)“ „-40“. Somit führt die Parallelaufrufbefehls-Ausführeinheit 124 „Prox8“ zu einer Zeit m40 (ms) ab der Zeit aus, wenn der Manipulator an einer Position -30,0 mm ab Position [6] eintrifft, die eine Position ist, die durch Zeile Nummer 6 bezeichnet ist. In einer ähnlichen Weise, in dem Fall, in welchem das „CONC_CALL“ genannte Programm von Zeilen Nummer 6 „Prox9“ ist, ist die „Relativdistanz (mm)“ „-20,0“ und ist die „Relativzeit (ms)“ „+20“. Somit wird „Prox9“ zu einer Zeit +20 (ms) ab der Zeit, wenn der Manipulator an einer Position -20,0 mm ab Position [6] eintrifft, die eine durch Zeile Nummer 6 bezeichnete Position ist, ausgeführt. In ähnlicher Weise, in dem Fall, in welchem das „CONC_CALL“ von Zeile Nr. 6 genannte Programm „Prox10“ ist, ist die „Relativdistanz (mm)“ „-10,0“ und ist die „Relativzeit (ms)“ „0“. Somit führt die Parallelaufrufbefehls-Ausführeinheit 124 „Prox10“ an einer Position -10,0 (mm) ab Position [6] aus, die eine durch die Zeile Nummer 6 bezeichnete Position ist. Es ist anzumerken, dass diese „CONC_CALL“ auf einer Zeile mit einer beliebige Zeilennummer geschrieben werden kann und die Parallelaufrufbefehls-Ausführeinheit 124 „PROG7“ an einer Position -40,0 (mm) ab der durch die beliebigen Zeilennummer bezeichneten Lehrposition ausführt. In ähnlicher Weise führt die Parallelaufrufbefehls-Ausführeinheit 124 „Prox8“ zu einer Zeit -40 (ms) ab der Zeit, bei der der Manipulator an einer Position -30,0 (mm) ab einer durch die diskrete Zeilennummer bezeichneten Lehrposition eintrifft, aus. In ähnlicher Weise führt die Parallelaufrufbefehls-Ausführeinheit 124 „Prox9“ z einer Zeit + 20 (ms) ab der Zeit, zu welcher der Manipulator an einer Position -20,0 (mm) ab einer durch die beliebige Zeilennummer bezeichneten Position eintrifft, aus. In einer ähnlichen Weise führt die Parallelaufrufbefehls-Ausführeinheit 124 „Prox10“ an einer Position -10,0 (mm) ab einer durch die diskrete Zeilennummer bezeichneten Position aus.
  • Auch in dem Fall, in welchem es gewünscht wird, dem Ausführungszeitpunkt eines parallelen Aufrufbefehls Priorität zu geben, kann die Parallelaufrufbefehls-Ausführeinheit 124 den parallelen Aufrufbefehl als eine getrennte Aufgabe zum Bewegungsbefehl ausführen. In dem Fall, in welchem gewünscht wird, der Ausführungsreihenfolge Priorität zu geben, kann die Parallelaufrufbefehls-Ausführeinheit 124 den parallelen Aufrufbefehl in derselben Aufgabe wie den Bewegungsbefehl ausführen.
  • Auch um zu ermöglichen, dass eine Zeilennummern-bezeichneter Aufruf und einen positionsbezeichneter Aufruf parallel mit der Programmverarbeitung des Roboters 20 ausgeführt werden, muss eine Vielzahl von Aufgaben (internes Ausführungsverarbeitungssubjekt, das durch das Betriebssystem des Roboters 20 verwaltet wird), die durch die Ausführungsverarbeitung des Programms ausgeführt werden, abgerufen werden. Beispielsweise können drei Aufgaben, eine Aufgabe zum Ausführen des Programmkörpers des Roboters 20, einer Aufgabe zum Ausführen eines Zeilennummern-bezeichneten Aufrufs und eine Aufgabe zum Ausführen eines positionsbezeichneten Aufrufs parallel ablaufen. In diesem Fall, wenn der nächste Zeilennummern-bezeichnete Aufruf während der Ausführung des Zeilennummern-bezeichneten Aufrufs aufgerufen wird, kann der spätere Zeilennummern-bezeichnete Aufruf dazu gebracht werden, zu warten, bis der frühere Aufruf beendet ist. Dies gilt auch für positionsbezeichnete Aufrufe.
  • Wenn eine Vielzahl von Prozessen parallel gleichzeitig auf diese Weise ausgeführt werden, ist es wichtig, in der Lage zu sein, Ausführungen Priorität zu geben. Typischerweise können oft Zeilennummern-bezeichnete Aufrufe ausgeführt werden, was es gestattet, dass Zeit auf „Setup“ von einigen Zeilen zuvor verwendet wird und kann dadurch mit niedriger Priorität ausgeführt werden. Jedoch benötigen positionsbezeichnete Aufrufe Applikationsverarbeitung, die mit hoher Genauigkeit synchron zur Bewegung des Roboters auszuführen ist. Somit müssen positionsbezeichnete Aufrufe mit einer hohen Priorität ausgeführt werden. Entsprechend wird eine Prioritätsreihenfolge der Ausführungseinheit (Aufgabe) eines Zeilennummern-bezeichneten Aufrufs bei einer niedrigen Priorität, die Aufgabe zum Ausführen eines positionsbezeichneten Aufrufs bei einer hohen Priorität und eine Aufgabe zum Ausführen des Programmkörpers bei einer Priorität dazwischen typischerweise vorab bezeichnet.
  • Auch kann die Implementierung eines Systems erwogen werden, in welchem eine Aufgabe zum Ausführen eines parallelen Aufrufs intern und dynamisch jedes Mal erzeugt wird, wenn ein Zeilennummer-bezeichneter oder ein positionsbezeichneter Aufruf aufgerufen wird. In diesem Fall, falls beispielsweise ein positionsbezeichneter Aufruf ausgeführt wird, ist eine Verarbeitung wie etwa das Starten der Ausführung eines nächsten positionsbezeichneten Aufrufs ohne Warten darauf, dass der erste beendet, möglich, und in diesem Fall wird jeder positionsbezeichnete Aufruf mit einer Priorität bezeichnet, die verwendet wird, um Verarbeitung in der Reihenfolge von höchster Priorität, wenn eine Vielzahl von Ausführungsprozessen gleichzeitig aufgerufen werden, auszuführen.
  • Weiterhin, um einen Aufrufbefehl einige Zeilen voraus während der Programmausführung des Roboters 20 zu finden, und das vorab Ausführen eines Zeilennummern-bezeichneten Aufrufs erfordert, dass das Programm voreingelesen wird und zur Ausführung geplante Programmbefehle vorab während der Ausführung des Programms gelesen werden (Insbesondere während der Ausführung eines Bewegungsbefehls). Somit, während der Bewegungsverarbeitung des Roboters 20, sind die Programmausführeinheit (die Bewegungsbefehls-Ausführeinheit 122, die Parallelaufrufbefehls-Ausführeinheit 124) in Bereitschaft und die freie Zeit wird hier für die Voreinlese-Verarbeitung des Programms verwendet.
  • <2. Effekte der Ausführungsform>
  • In der Robotersteuerung 10 gemäß der vorliegenden Ausführungsform kann ein Unterprogramm getrennt zu und parallel mit dem Originalprogramm-Ausführungskontext ausgeführt werden.
  • Auch kann in der Robotersteuerung 10 gemäß der vorliegenden Ausführungsform, wenn beispielsweise ein Anwender einen Logikbefehl zum Steuern eines Verarbeitungsprozesses für Laserschweißen oder dergleichen lehrt, ein Logikbefehl unabhängig zum Bewegungsbefehl (Lehrposition) des Roboters 20 an einer beliebigen Position und/oder zu beliebigen Timing ausgeführt werden.
  • Weiter können in der Robotersteuerung 10 gemäß der vorliegenden Ausführungsform die Anzahl von Lehrpunkten des Roboters 20 minimiert werden. Somit kann die Bewegungsplan-Verarbeitung des Roboters 20 erleichtert werden und kann die Ursprungs-Leistungsfähigkeit des Roboters 20 erzielt werden.
  • <3. Beispiele>
  • Ein Beispiel, in welchem der Roboter 20 eine Lackiersprühaufgabe durchführt, wird beschrieben. Wenn der Roboter 20 eine Sprühaufgabe durchführt, muss die unten beschriebene Verarbeitung mit hoher Genauigkeit ausgeführt werden, in Reihenfolge und parallel zur Bewegung des Roboters 20 an oder nahe der Sprühstartposition.
    1. 1. Starte das Abgeben von Druckluft, welche das Lackiermaterial atomisiert (entsprechend dem Programm „Luft Öffnen", das unten beschrieben wird).
    2. 2. Starte das Anlegen von Spannung zum elektrostatischen Laden des Lackiermaterials (entsprechend dem Programm „Wende Statik an“, das unten beschrieben wird).
    3. 3. Öffne den Wert zum Abgeben des Lackiermaterials (entsprechend dem Programm „Trigger EIN“, das unten beschrieben wird).
  • 4A zeigt ein Beispiel eines Programms des Beispiels. In dem in 4A gezeigten Beispielprogramm wird ein Parallel-Aufrufbefehl „CONC-CALL“ GUN_ON (10,3,5) an den Bewegungsbefehl in der sechsten Zeile angeheftet. Hier ist „CONC_CALL“ (gleichzeitiger Aufruf) ein Parallel-Aufrufbefehl zum Aufrufen eines Programms mit den Namen „GUN_ON“. Auch ist „(10,3,5)“ ein Beispiel eines Arguments, das an „GUN_ON“ weitergeleitet wird. „GUN_ON“ ist ein Programm zum Aktivieren des Lackierens mit Lack und die Argumente „10,3,5“ entsprechen „Lackiermaterial-Flussrate“, „Luftdruck“ und „elektrostatischer Spannung“.
  • 4B zeigt ein Beispiel eines Bildschirms, der detaillierte Informationen des in 4A gezeigten „CONC_CALL“ anzeigt und zeigt detaillierte Information, die angezeigt wird, wenn das in 4A gezeigte Programm eingegeben wird und die „EINGABE“-Taste gedrückt wird, mit dem Cursor über dem „CONC_CALL“-Befehl.
  • Im vorliegenden Beispiel muss ein positionsbezeichneter Aufruf so ausgeführt werden, dass in einer Umgebung der Lehrposition ein positionsbezeichneter Aufruf dreimal aufgerufen wird und die Verarbeitungssequenz von „Starte Druckluft“, „Lege elektrostatische Spannung an“ und „Starte Lackiermaterialsprühen“ ausgeführt wird.
  • Die Luftverzögerungszeit ändert sich abhängig von dem angelegten Luftdruck. Somit kann kein fester Wert vorab für Distanz und Zeit des positionsbezeichneten Aufrufs bezeichnet werden. Stattdessen ist das Programm, das ausgeführt wird wenn „GUN_ON“ ausgeführt wird, das „Dandori“-Programm, das in den „Vor-Aufrufen“ fällt, angegeben ist. Die Distanz und Zeit eines positionsbezeichneten Aufrufs kann dynamisch über das „Dandori“-Programm eingestellt werden.
  • Im in 4A und 4B gezeigten Beispiel liest die Parallelaufrufbefehls-Detektionseinheit 123 das in 4A gezeigte Bewegungsbefehlsprogramm vorab und detektiert Zeile Nummer 6, wo der Parallelaufrufbefehl gelehrt wird.
  • Beim Ausführen des „GUN_ON(10,3,5)“-Programms mit dem bezeichneten „CONC_CALL“ Parallelaufrufbefehl ruft die Parallelaufrufbefehls-Ausführeinheit 124 einen Zeilennummern-bezeichneten Aufruf an Position [2] (P[2]), bezeichnet durch Zeile Nummer, das heißt wie durch die „Triggerposition“ von „-4“ bezeichnet, und das „Dandori“-Programm wird aufgerufen. Im „Dandori“-Programm, wenn drei positionsbezeichnete Aufrufe für das „Luft Öffnen“-Programm aufgerufen werden, wird das „Wende Statik an“-Programm und das „Trigger EIN“-Programm definiert.
  • 4C zeigt ein Beispiel der Innenseite des „Dandori“-Programms. Das „Dandori“-Programm berechnet eine Verzögerungszeit, bis Luft eingeblasen wird, auf Basis eines bezeichneten Luftdruckwerts, und berechnet einen Zeitpunkt (Distanz und Zeit) zum Aufrufen des „Luft öffnen“-Programms zum Einstellen der Analogausgabe auf Basis des bezeichneten Luftdruckwerts. Auf Basis dieses Ergebnisses wird der positionsbezeichnete Aufruf des „Luft öffnen“-Programms definiert.
  • Durch eine ähnliche Berechnung wird das Timing (Distanz und Zeit) zum Aufrufen, durch positionsbezeichnet, des „Wende Statik an“-Programms zum Anlegen elektrischer Spannung und des „Trigger EIN“-Programms zum Starten des Sprühens berechnet und werden der positionsbezeichnete Aufruf des „Wende Statik an“-Programms und des „Trigger EIN“-Programms definiert.
  • Es ist anzumerken, dass eine „Definiere Prox Aufruf“-Funktion in 4C wie folgt definiert ist. Spezifisch ist in der Funktion „Definiere Prox Aufruf (d,t,p)“, das d eine Relativposition (Positiv- oder Negativwert), welche den Aufrufzeitpunkt des bezeichneten Programms angibt, ist t ein Zeitversatz (positiver oder negativer Wert) zum Justieren des Aufrufzeitpunkts des designierten Programms und ist p der aufgerufene Programmname.
  • 4D ist ein Flussdiagramm, das durch das „Dandori“-Programm ausgeführte Prozesse zeigt.
  • Im Schritt S1 wird das „Dandori“-Programm gestartet.
  • Im Schritt S2 werden der Luftdruckwert, der elektrostatische Spannungswert und der Lackier-Flussratenwert, als Argumente gegeben, eingelesen.
  • In Schritt S3 wird ein Aufrufzeitpunkt (Distanz und Zeit) des „Luft Öffnen“-Programms berechnet, auf Basis des bezeichneten Luftdruckwerts, und eine variable Zahl für sowohl „Dist1“ als auch „tim1“ werden gespeichert.
  • Im Schritt S4 wird ein Aufrufzeitpunkt (Distanz und Zeit) des „Wende Statik an“-Programms auf Basis des elektrostatischen Spannungswerts und einer variablen Nummer für sowohl „Dist2“ als auch „tim2“ gespeichert.
  • Im Schritt S5 wird ein Abruf-Timing (Distanz und Zeit) des „Trigger Ein“-Programms berechnet auf Basis des bezeichneten elektrostatischen Spannungswerts und einer variablen Nummer für sowohl „Dist3“ als auch „tim3“ wird gespeichert.
  • Im Schritt S6 werden drei positionsbezeichnete Aufrufe unter Verwendung der berechneten Distanz und Zeit (Dist1, tim1, Dist2, tim2, Dist3, tim3) definiert.
  • Im Schritt S7 endet das „Dandori“-Programm.
  • 4E ist ein Flussdiagramm, welches durch das „Luft Öffnen“-Programm ausgeführte Prozesse zeigt.
  • Im Schritt S11 startet das „Luft Öffnen“-Programm.
  • Im Schritt S12 wird die Analogausgabe auf Basis des bezeichneten Luftdruckwerts eingestellt.
  • Im Schritt S13 endet das „Luft Öffnen“-Programm.
  • 4F ist Flussdiagramm, welches durch das „Wende Statik an“-Programm ausgeführte Prozesse zeigt.
  • Im Schritt S21 startet das „Wende Statik an“-Programm.
  • Im Schritt S22 wird die Analogausgabe auf Basis des bezeichneten elektrostatischen Spannungswerts eingestellt.
  • Im Schritt S23 endet das „Wende Statik an“-Programm.
  • 4G ist ein Flussdiagramm, welches durch das „Trigger EIN“-Programm ausgeführte Prozesse zeigt.
  • Im Schritt S31 startet das „Trigger EIN“-Programm.
  • Im Schritt S32 wird die Analogausgabe auf Basis des bezeichneten Lackiermaterial-Flussratenwerts eingestellt.
  • Im Schritt S33 endet das „Trigger EIN“-Programm.
  • 4H ist ein Diagramm, welches die Beziehung zwischen den Lehrpunkten und den Aufrufpositionen der Linien-Nummernbezeichneten Aufrufe und der positionsbezeichneten Aufrufe gemäß dem vorliegenden Beispiel zeigt. Im in 4H gezeigten Beispiel wird das „Dandori“-Programm bei P[2] durch einen Zeilennummern-bezeichneten Aufruf aufgerufen, um für die Sprühstartsequenz in P[6] einzurichten. Auch werden zwischen P[5] und P[6] das „Luft Öffnen“-Programm, das „Wende Statik an“-Programm und das „Trigger EIN“-Programm in dieser Reihenfolge durch positionsbezeichnete Aufrufe aufgerufen.
    • (1) Eine Robotersteuerung (beispielsweise die oben beschriebene „Robotersteuerung 10“) gemäß einer Ausführungsform der vorliegenden Erfindung beinhaltet: eine Bewegungsbefehls-Interpretationseinheit (beispielsweise die oben beschriebene „Bewegungsbefehls-Interpretationseinheit 121“), welche ein Bewegungsbefehlsprogramm interpretiert, das eine Lehrbewegung und eine Lehrposition eines Roboters beschreibt und einen Bewegungsbefehl erzeugt; eine Bewegungsbefehls-Ausführeinheit (beispielsweise die oben beschriebene „Bewegungsbefehls-Ausführeinheit 122“), die den Bewegungsbefehl ausführt; eine Parallelaufrufbefehls-Detektionseinheit (beispielsweise die oben beschriebene „Parallelaufrufbefehls-Detektionseinheit 123“), welche das Bewegungsbefehlsprogramm vor-einliest und eine Zeile detektiert, bei der ein paralleler Aufrufbefehl gelehrt wird; und eine Parallelaufrufbefehls-Ausführeinheit (beispielsweise die oben beschriebene „Parallelaufrufbefehls-Ausführeinheit 124“), die ein durch einen parallelen Aufrufbefehl zu einem bezeichneten Zeitpunkt bezeichnetes Programm ausführt.
  • Mit dieser Konfiguration kann eine Verarbeitung mit hoher Genauigkeit im Hinblick auf Zeit und Dispersion über ein einfaches Verfahren durchgeführt werden.
    • (2) In der Robotersteuerung (beispielsweise der oben beschriebenen „Robotersteuerung 10“) gemäß (1) bezeichnet eine Zeilennummer vorwärts oder rückwärts im Bewegungsbefehlsprogramm, ab der Zeile, wenn der parallele Aufrufbefehl gelehrt wird und führt den parallelen Aufrufbefehl parallel mit dem Ausführen des Bewegungsbefehls aus, wenn die Ausführung des Bewegungsbefehls die Zeilennummer vorwärts oder rückwärts erreicht.
  • Mit dieser Konfiguration kann das durch einen positionsbezeichneten Aufruf aufgerufene Prozessieren zur Verwendung der Zeit, die es beispielsweise für die Bewegung eines Manipulators braucht, eingerichtet werden.
    • (3) In der Robotersteuerung (beispielsweise der oben beschriebenen „Robotersteuerung 10“) gemäß (1) führt die Parallelaufrufbefehls-Ausführeinheit (beispielsweise die oben beschriebene „Parallelaufrufbefehls-Ausführeinheit 124“) den Parallelaufrufbefehl parallel mit dem Ausführen des Bewegungsbefehls zu einem Zeitpunkt aus, der durch eine Position und/oder Zeit eines Manipulators bezeichnet ist, der in dem Roboter enthalten ist, unter Verwendung einer Lehrposition aus dem Bewegungsbefehl der Zeile, wo der Parallelaufrufbefehl gelehrt wird, im Bewegungsbefehlsprogramm als eine Referenz.
  • Mit dieser Konfiguration kann beim Ausführen einer Applikation des Roboters die Verarbeitung mit hoher Genauigkeit, genaue innerhalb von Millisekunden, leicht ausgeführt werden.
  • Bezugszeichenliste
  • 1
    Robotersteuersystem
    10
    Robotersteuerung
    11
    Speichereinheit
    12
    Steuereinheit
    20
    Roboter
    30
    Peripherie-Vorrichtung
    121
    Bewegungsbefehls-Interpretationseinheit
    122
    Bewegungsbefehls-Ausführeinheit
    123
    Parallelaufrufbefehls-Detektionseinheit
    124
    Parallelaufrufbefehls-Ausführeinheit
  • 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 6067905 B [0005, 0006]

Claims (3)

  1. Robotersteuerung (10), umfassend: eine Bewegungsbefehls-Interpretationseinheit (121), welche ein Bewegungsbefehlsprogramm interpretiert, das eine Lehrbewegung und eine Lehrposition eines Roboters beschreibt und einen Bewegungsbefehl erzeugt; eine Bewegungsbefehls-Ausführeinheit (122), die den Bewegungsbefehl ausführt; eine Parallelaufrufbefehls-Detektionseinheit (123), welche das Bewegungsbefehlsprogramm vor-einliest und eine Zeile detektiert, bei der ein paralleler Aufrufbefehl gelehrt wird; und eine Parallelaufrufbefehls-Ausführeinheit (124), die ein durch einen parallelen Aufrufbefehl zu einem bezeichneten Zeitpunkt bezeichnetes Programm ausführt.
  2. Robotersteuerung (10) gemäß Anspruch 1, wobei die Parallelaufrufbefehls-Ausführeinheit (124) eine Zeilennummer vorwärts oder rückwärts, im Bewegungsbefehlsprogramm, ab der Zeile bezeichnet, wo der Parallelaufrufbefehl gelehrt wird, und den Parallelaufrufbefehl parallel mit dem Ausführen des Bewegungsbefehls ausführt, wenn die Ausführung des Bewegungsbefehls die Zeilennummer vorwärts oder rückwärts erreicht.
  3. Robotersteuerung (10) gemäß Anspruch 1, wobei die Parallelaufrufbefehls-Ausführeinheit (124) den Parallelaufrufbefehl parallel mit einer Ausführung des Bewegungsbefehls zu einem Zeitpunkt ausführt, der durch eine Position und/oder Zeit eines Manipulators bezeichnet wird, der in dem Roboter beinhaltet ist, unter Verwendung einer Lehrposition im Bewegungsbefehl auf der Zeile, wo der Parallelaufrufbefehl im Bewegungsbefehlsprogramm gelehrt wird, als eine Referenz.
DE102020213732.3A 2019-11-20 2020-11-02 Robotersteuerung und robotersteuerverfahren Pending DE102020213732A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019209375A JP7332443B2 (ja) 2019-11-20 2019-11-20 ロボット制御装置及びロボット制御方法
JP2019-209375 2019-11-20

Publications (1)

Publication Number Publication Date
DE102020213732A1 true DE102020213732A1 (de) 2021-05-20

Family

ID=75683525

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020213732.3A Pending DE102020213732A1 (de) 2019-11-20 2020-11-02 Robotersteuerung und robotersteuerverfahren

Country Status (4)

Country Link
US (1) US11911900B2 (de)
JP (1) JP7332443B2 (de)
CN (1) CN112824058A (de)
DE (1) DE102020213732A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110561387B (zh) * 2019-08-23 2022-09-02 东南大学 工业机器人系统中可旋转工件的测定方法
CN115488906B (zh) * 2022-10-09 2023-07-18 南京领鹊科技有限公司 机器人喷涂控制方法、装置、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02139187A (ja) * 1988-11-18 1990-05-29 Tokico Ltd 工業用ロボットの周辺機器制御方法
WO2013171850A1 (ja) * 2012-05-15 2013-11-21 三菱電機株式会社 数値制御装置
JP6067905B1 (ja) 2016-03-18 2017-01-25 M−Solutions株式会社 ロボット制御プログラム生成システム
JP6950415B2 (ja) * 2017-09-29 2021-10-13 オムロン株式会社 制御装置
JP7095262B2 (ja) * 2017-11-10 2022-07-05 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラム生成方法
WO2020144772A1 (ja) * 2019-01-09 2020-07-16 三菱電機株式会社 数値制御装置および数値制御方法

Also Published As

Publication number Publication date
CN112824058A (zh) 2021-05-21
JP7332443B2 (ja) 2023-08-23
JP2021079493A (ja) 2021-05-27
US20210146530A1 (en) 2021-05-20
US11911900B2 (en) 2024-02-27

Similar Documents

Publication Publication Date Title
DE10352815B4 (de) Simulationsverfahren für eine Bearbeitung eines Werkstücks durch eine Werkzeugmaschine und korrespondierender Rechner
DE102011113590B4 (de) Planen simultaner Pfade mit einem oder mehreren humanoiden Robotern
DE102012218297B4 (de) Verfahren zur dynamischen Optimierung einer Robotersteuerschnittstelle
DE102009057923B4 (de) Simulationsvorrichtung
DE102020213732A1 (de) Robotersteuerung und robotersteuerverfahren
DE102014000937A1 (de) Simulationsvorrichtung zur Ausführung einer Simulation auf der Grundlage eines Roboterprogramms
JP2009540540A5 (de)
EP1901149A2 (de) Vorrichtung und Verfahren zur Simulation eines Ablaufs zur Bearbeitung eines Werkstücks an einer Werkzeugmaschine
EP1898282A1 (de) Verfahren zum Test eines elektronischen Steuerungssystems
DE102018100420B4 (de) Offline-Programmierungseinrichtung und Positionsparameterkorrekturverfahren
DE112008003963T5 (de) System und Verfahren zur Off-line-Programmierung eines Industrieroboters
DE102014226554A1 (de) Identifikations- und Reparaturunterstützungs-Vorrichtung und -Verfahren
DE102011082291A1 (de) Controller for machine tool and machining-related data processing system provided therewith
EP3374135B1 (de) Verfahren zum vereinfachten ändern von applikationsprogrammen zur steuerung einer industrieanlage
DE102017216093B4 (de) Verfahren zur Parametrierung eines robotischen Manipulators
DE102014219711A1 (de) Verfahren zur Kraftwerkssimulation
EP2796953B1 (de) Numerische Steuerung mit Anzeige einer Vorschau bei Änderungen des Teileprogramms
DE10061001B4 (de) Verfahren und Steuergerät zur Steuerung von technischen Vorgängen in einem Kraftfahrzeug, sowie Speicherelement und Steuerprogramm hierfür
DE112022000322T5 (de) Einlernvorrichtung
DE102018101654A1 (de) Steuervorrichtung
DE112008003870T5 (de) Verfahren und System zum Steuern eines Industrieroboters in Übereinstimmung mit einem Bewegungssteuerungs-Parametersatz
DE102017004591A1 (de) Numerische Steuerung
DE102020103852B4 (de) Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator
EP4018275A1 (de) System und verfahren zur steuerung zumindest einer maschine, insbesondere eines kollektivs von maschinen
EP2324965A1 (de) Verfahren und Vorrichtung zum Steuern von Manipulatoren

Legal Events

Date Code Title Description
R012 Request for examination validly filed