Es ist möglich, neue Anweisungen hinzuzufügen, indem Sie mit der rechten Maustaste auf ein Programm klicken oder mit dem Programmmenü arbeiten, wie im vorherigen Abschnitt gezeigt.
Tipp: Wählen Sie eine bestimmte Anweisung, um nach der ausgewählten Anweisung eine neue Anweisung hinzuzufügen.
Tipp: Sie können Anweisungen innerhalb eines Programms oder zwischen verschiedenen Programmen per Drag & Drop verschieben, um sie neu anzuordnen.
In diesem Abschnitt werden die Anweisungen beschrieben, die von der grafischen RoboDK-Benutzeroberfläche für die Roboter-Offline-Programmierung unterstützt werden.
PTP Bewegung (Punkt zu Punkt / Point to Point)
Wählen Sie Programm➔PTP Bewegung, um eine neue PTP (Punkt zu Punkt) Bewegung hinzuzufügen. Alternativ wählen Sie die entsprechende Schaltfläche in der Symbolleiste.
Wenn vor dem Hinzufügen der Anweisung kein Ziel ausgewählt wird, erstellt die Bewegungsanweisung ein neues Ziel. Wenn das Ziel bewegt wird, wird auch die Bewegung geändert.
Wenn dies die erste Anweisung ist, die dem Programm hinzugefügt wird, werden zwei weitere Anweisungen vor der Bewegungsanweisung hinzugefügt: eine Auswahl des Bezugssystems und eine des Werkzeug Bezugssystems. Dies stellt sicher, dass, wenn das Programm den Bewegungsbefehl erreicht, der Roboter die gleichen Bezugssysteme verwendet, die zum Erzeugen dieses neuen Ziels verwendet wurden.
Anmerkung: Klicken Sie mit der rechten Maustaste auf die Bewegungsinstruktion und wählen Sie Zieloptionen ... (F3), um das Zieloptionsmenü zu öffnen. Das Ziel kann in diesem Fenster oder direkt in der 3D-Ansicht geändert werden.
Linearbewegung
Wählen Sie Programm➔Linearbewegung, um eine neue Linearbewegungsanweisung hinzuzufügen. Alternativ wählen Sie die entsprechende Schaltfläche in der Symbolleiste.
Wenn vor dem Hinzufügen der Anweisung kein Ziel ausgewählt wird, erstellt die Bewegungsanweisung ein neues Ziel. Wenn das Ziel bewegt wird, wird auch die Bewegung geändert.
PTP Bewegungen und lineare Bewegungen verhalten sich auf die gleiche Weise und können leicht von einem Typ zum anderen umgeschaltet werden.
Wie bei der PTP Bewegungsanweisung gilt: wenn dies die erste Anweisung ist, die einem Programm hinzugefügt wird, werden zwei weitere Anweisungen vor der Bewegungsanweisung hinzugefügt: eine Auswahl des Bezugssystems und eine des Werkzeug Bezugssystems.
Wichtig: Es wird empfohlen, die erste Bewegung jedes Programms als PTP Bewegung mit einem gemeinsamen Ziel zu halten. Dadurch wird die gewünschte Konfiguration von der ersten Bewegung an richtig eingestellt und sichergestellt, dass sich der reale Roboter genau so bewegt, wie er simuliert wurde.
Im Gegensatz zu PTP Bewegungen sind Lineare Bewegungen für Robotersingularitäten und Achsengrenzen anfällig. Zum Beispiel können 6-Achs Roboter nach einer linearen Bewegung keine Singularität verlassen. Das folgende Bild zeigt ein Beispiel, indem Gelenk 5 zu nahe an einer Singularität (0 Grad) ist. [...] Verwenden Sie stattdessen eine PTP Bewegung. Dies wird in der folgenden Abbildung gezeigt.
Wenn eine Linearbewegung nicht unbedingt notwendig ist, sollte sie in eine PTP Bewegung geändert werden. Dies kann über einen Rechtsklick auf die Anweisung geschehen.
Alternativ müssen das Ziel, der TCP und die Position des Bezugssystems verändert werden, um die Singularität zu verhindern.
Bezugssystem festlegen
Wählen Sie Programm➔ Bezugssystem festlegen, um einen bestimmtes Bezugssystem zu verwenden. Dadurch wird das auf dem Controller angegebene System für die folgenden Bewegungsbefehle aktualisiert und das aktive System des Roboters in RoboDK für Simulationszwecke geändert. Das bedeutet, dass Bewegungsanweisungen für bestimmte Ziele (kartesische Ziele) in Bezug auf das letzte Bezugssystem erstellt werden.
Der Referenzrahmen ist eine Variable, die auch als Work Object (ABB-Roboter), UFRAME (Fanuc-Roboter), FRAME (für Motoman-Roboter) oder $ BASE (für KUKA-Roboter) bezeichnet wird.
Anmerkung: Bestimmte Controller unterstützen das Festlegen von Bezugssystemen über die Nummerierung (Fanuc und Motoman beispielsweise). In diesem Fall kann der Name des Systems mit einer Nummer enden (z.B. System4, um den Index 4 zuzuweisen).
Werkzeug Bezugssystem festlegen
Wählen Sie Programm➔ Werkzeug Bezugssystem festlegen, um ein bestimmtes Werkzeug (TCP) Bezugssystem zu verwenden. Dies aktualisiert die Werkzeug Referenz im Programm für die folgenden Bewegungsbefehle und ändert das aktive Werkzeug Bezugssystem des Roboters in RoboDK für Simulationszwecke. Das bedeutet, dass Bewegungsanweisungen für bestimmte Ziele (kartesische Ziele) in Bezug auf das letzte Bezugssystem erstellt werden.
Der Referenzrahmen ist eine Variable, die auch als ToolData (ABB-Roboter), UTOOL (Fanuc-Roboter), TOOL (für Motoman-Roboter) oder $ TOOL (für KUKA-Roboter) bekannt ist.
Anmerkung: Bestimmte Controller unterstützen das Festlegen von Werkzeug Bezugssystemen über die Nummerierung (Fanuc und Motoman beispielsweise). In diesem Fall kann der Name des Systems mit einer Nummer enden (z.B. Werkzeug4, um den Index 4 zuzuweisen).
Kreisförmige Bewegung
Wählen Sie Programm➔ Kreisförmige Bewegung, um eine neue Kreisbewegungsanweisung hinzuzufügen. Alternativ wählen Sie die entsprechende Schaltfläche in der Symbolleiste.
Wenn vor dem Hinzufügen der Anweisung nicht zwei Ziele ausgewählt wurden, erstellt die Bewegungsinstruktion keine neuen Ziele. Es ist erforderlich, zwei weitere Ziele separat hinzuzufügen und sie wie im folgenden Bild gezeigt mit der kreisförmigen Bewegung zu verknüpfen.
Der kreisförmige Pfad ist ein Bogen, der von dem Punkt, an dem sich der Roboter befindet, durch den ersten Punkt (Target Linked 1) und bis zum Endpunkt (Target Linked 2) verläuft.
Wichtig: Es ist nicht möglich, einen vollständigen Kreis mit nur einer kreisförmigen Anweisung auszuführen. Ein voller Kreis muss in zwei separate kreisförmige Bewegungen aufgeteilt werden
Geschwindigkeit festlegen
Wählen Sie Programm➔ Geschwindigkeit festlegen, um eine neue Anweisung hinzuzufügen, die die Geschwindigkeit und/oder die Beschleunigung ändert. Es ist möglich, Geschwindigkeit und Beschleunigung im achsspezifischen und im kartesischen Raum festzulegen.
Aktivieren Sie die entsprechenden Fälle, um dem Programm eine bestimmte Geschwindigkeit und/oder Beschleunigung zuzuweisen. Die Robotergeschwindigkeit wird ab dem Moment angewendet, an dem diese Anweisung ausgeführt wird.
Die Robotergeschwindigkeit kann auch im Roboterparameter-Menü geändert werden: Doppelklicken Sie auf den Roboter und wählen Sie dann die Parameter aus.
Anmerkung: Nicht alle Robotersteuerungen unterstützen die genaue Einstellung von Beschleunigungen.
Wichtig: Die richtige Geschwindigkeit ist wichtig, um die Programmzeit (Zykluszeit) genau zu berechnen. Weitere Informationen finden Sie im Abschnitt Zykluszeit.
Nachricht anzeigen
Wählen Sie Programm➔ Nachricht anzeigen um eine neue Anweisung hinzuzufügen, die eine Nachricht auf dem Handprogrammiergerät ausgibt.
Anmerkung: Nicht alle Robotercontroller unterstützen das Anzeigen von Nachrichten auf dem Handprogrammiergerät durch ein Programm. In einem solchen Fall hat diese Anweisung keine Auswirkung.
Pause
Wählen Sie Programm➔ Pause Instruction um einen neuen Befehl hinzuzufügen, der die Programmausführung für einige Zeit pausiert oder das Programm stoppt, bis der Bediener das Programm fortsetzen möchte.
Anmerkung: Stellen Sie den Pausenverzögerungswert auf -1, um das Programm anzuhalten, bis der Bediener das Programm fortsetzen möchte. In diesem Fall wird der Befehl automatisch als Stopp bezeichnet.
Wichtig: In der Simulation dauert eine 5-Sekunden-Pause 1 Sekunde, um das Standard-Simulationsverhältnis von 5 zu simulieren. Weitere Informationen finden Sie im Abschnitt Simulation.
Programm Aufruf
Wählen Sie Programm➔ Programm Aufruf, um einen Aufruf eines Unterprogramms aus dem aktuellen Programm hinzuzufügen.
Standardmäßig ist dies ein blockierender Aufruf für ein bestimmtes Programm. Es ist jedoch möglich, zu Code einfügen zu wechseln, um an der Stelle dieser Anweisung einen spezifischen Code einzugeben. Dies kann für eine bestimmte Anwendung und/oder einen bestimmten Controller nützlich sein.
Tipp: Wählen Sie Programm auswählen, um das Textfeld automatisch zu füllen. Andernfalls sollte es auch funktionieren, wenn es eine Namensübereinstimmung mit dem in der Anweisung verwendeten Unterprogramm gibt. Dann wird dieses Unterprogramm in RoboDK simuliert.
Tipp: Geben Sie mehrere Zeilen ein, um automatisch mehrere Programmaufrufe in einer Zeile einzurichten.
Wechseln Sie von Programmaufruf zu Thread Starten, um einen nicht blockierenden Aufruf an ein Unterprogramm auszulösen. In diesem Fall startet der Controller einen neuen Thread. Diese Option ist nur für bestimmte Controller verfügbar und funktioniert nur für bestimmte Vorgänge.
Tipp: Ein Hauptprogramm, das nur für Simulationszwecke verwendet wird, kann die Option "Thread starten" verwenden, um die gleichzeitige Simulation mehrerer Programme zu starten (z.B. wenn zwei oder mehr Roboter simuliert werden).
I/O festlegen oder auf I/O warten
Wählen Sie Programm➔ I/O festlegen oder abwarten, um den Status der digitalen Ausgänge (DO) zu ändern. Standardmäßig ist diese Anweisung auf Digitalen Ausgang festlegen festgelegt. Diese Anweisung ermöglicht es auch, auf einen bestimmten digitalen Eingang (DI) zu warten, um in einen bestimmten Zustand zu wechseln.
Der I/O Name kann eine Zahl oder ein Text sein, wenn es sich um eine benannte Variable handelt. Der I/O Wert kann eine Zahl (0 für Falsch und 1 für Wahr) oder ein Text sein, wenn es sich um einen benannten Status handelt.
Anmerkung: Diese Anweisung unterstützt auch die Einstellung von Analogausgängen (AO) oder das Warten auf Analogeingänge (AI) bei einigen Robotersteuerungen. Dabei ist es möglich, Dezimalzahlen oder einen bestimmten Text anstelle von Zahlen anzugeben.
Mit Warten auf eine digitale Eingabe wird die Programmausführung angehalten, bis sich ein bestimmter Eingang auf einen bestimmten Wert ändert. Darüber hinaus unterstützen die meisten Robotersteuerungen eine Timeout-Verzögerung. Diese verursacht einen Fehler, wenn die Wartezeit einen bestimmten Wert überschreitet. Aktivieren Sie die Option Timeout (ms), um diese Funktion zu aktivieren.
Tipp: Es ist zum Beispiel eine gute Übung, wenn der Roboter eine bestimmte Hardware verwendet (z. B. einen Greifer oder eine Frässpindel). Man kann versuchen diese Hardware mit einem digitalen Ausgang (DO) zu aktivieren und dann auf einen bestimmten digitalen Eingang (DI) zu warten, um einen bestimmten Zustand einzuschalten.
Wenn Sie simulierte digitale Eingänge und digitale Ausgänge ändern, werden neue Stationsvariablen erstellt. Um den Status dieser Variablen zu überprüfen, können Sie mit der rechten Maustaste auf die Station klicken und Stationsparameter auswählen. Ebenfalls ist es möglich, diese Variablen über die API zu lesen oder zu ändern.
Überschleifen einstellen
Wählen Sie Programm➔ Überschleifen festlegen, um die Überschleifparameter zu ändern. Das Überschleifen wird verwendet um die Kanten zwischen aufeinanderfolgenden Bewegungen glätten zu können. Diese Änderung wird ab dem Zeitpunkt wirksam, ab dem sie in einem Programm ausgeführt wird (dies gilt auch für alle anderen Anweisungen). Daher ist es üblich, diesen Wert am Anfang eines Programms festzulegen.
Ohne ein Überschleifen erreicht der Roboter am Ende jeder Bewegung die Geschwindigkeit 0 (es sei denn, die nächste Bewegung ist tangential zur vorherigen Bewegung). Dies verursacht hohe Beschleunigungen und schnelle Geschwindigkeitsänderungen, um eine gute Genauigkeit für jede Bewegung zu gewährleisten.
Dieser Wert wird auch als Mischradius (Universal Robots), ZoneData (ABB Roboter), CNT/FINE (Fanuc Roboter), Cornering (Mecademic Robots) oder $ APO.CDIS/$ APO.CPTP/Advance (KUKA Roboter) bezeichnet.
Anmerkung: Setzen Sie den Rundungswert auf -1, um feine Bewegungen zu erzwingen. Dies bedeutet, dass der Roboter die Bahnkanten nicht abrunden wird.
Tipp: Ein hoher Rundungswert sorgt für eine konstante Geschwindigkeit durch den Roboterweg, um die Genauigkeit der Pfadkanten zu verlieren. Abhängig von der jeweiligen Anwendung ist es üblich, einen guten Kompromiss zwischen Genauigkeit und Laufruhe zu finden.
Der Test der Bahngenauigkeit in RoboDK ermöglicht ein besseres Verständnis der Auswirkung verschiedener Rundungswerte auf ein Messsystem.
Simulationsereignis
Wählen Sie Programm➔ Simulationsereignis, um ein bestimmtes Simulationsereignis zu provozieren. Simulationsereignisse haben keinen Einfluss auf generierten Code und werden nur verwendet, um ein bestimmtes Ereignis für Simulationszwecke, also eine optische Ausgabe, zu ermöglichen. Simulationsereignisse mit der grafischen Benutzeroberfläche ermöglichen es:
●Werkzeuge anzubringen/zu lösen
●Objekte/Werkzeuge anzuzeigen oder zu verstecken
●Die Position von Objekten und Bezugssystem zu ändern
Wenn sich der Roboter beispielsweise an einen bestimmten Ort bewegt, um ein Objekt zu greifen, können wir ein Ereignis Objekt anheften einrichten, um dieses Objekt zusammen mit dem Roboter zu bewegen. Anschließend können wir ein Ereignis Objekt lösen verwenden, um alle Objekte abzulösen, die das Werkzeug gegriffen hat
Anmerkung: Bestimmte Programme können mit Hilfe von Makros (Programmierkenntnisse sind erforderlich) simuliert werden. Es ist beispielsweise mit Hilfe der API möglich Objekte in bestimmten Positionen verschwinden zu lassen. Dies kann für Pick and Place Simulationen nützlich sein.
Anmerkung: Will man ein Objekt an ein Werkzeug anbringen, so wird das örtlich nächste Objekt verwendet, wenn dieses nicht weiter als ein bestimmter Abstand entfernt ist. Dieser Abstand beträgt standardmäßig 200 mm und kann unter Extras ➔ Optionen ➔ Maximaler Abstand, um Objekte an Roboterwerkzeug anzubringen geändert werden. Ebenfalls wird standardmäßig der Abstand zwischen Objekt Bezugssystem und TCP Position gemessen. Alternativ kann man den Abstand zwischen TCP und Objekt Geometrie verwenden, indem man kürzester Abstand zwischen TCP und Objekt Form verwendet.