Post Prozessoren

Postprozessoren sind ein wichtiger Schritt in der Offline-Programmierung, da sie die Flexibilität bieten, jede Robotersteuerung zu unterstützen. Ein Roboterpostprozessor definiert, wie Roboterprogramme für eine bestimmte Robotersteuerung erzeugt werden müssen.

Das Umwandeln von einer RoboDK-Simulation in ein bestimmtes Roboterprogramm erfolgt durch einen Postprozessor. Jedem Roboter ist standardmäßig ein Postprozessor zugeordnet. Der Postprozessor wird verwendet, wenn das Programm offline erstellt wird, wie im Abschnitt Programm generieren gezeigt(durch Rechtsklick auf ein Programm und anschließendes Auswählen von Roboterprogrammen).

RoboDK wird mit vielen Postprozessoren geliefert, die unterschiedliche Robotersteuerungen unterstützen, die im Abschnitt Verfügbare Postprozessorenaufgeführt sind. Alternativ ist es möglich, selbst einen angepassten Postprozessor zu erstellen oder einen vorhandenen Postprozessor zu modifizieren. Alle verfügbaren Postprozessoren befinden sich im Ordner:

C:/RoboDK/Posts/

Ein Postprozessor ist eine PY-Datei (jeder Postprozessor wird durch ein Python-Skript definiert). Es ist möglich, Dateien in den Posts Ordner von RoboDK manuell einzufügen, zu ändern oder zu löschen. Wenn Sie einen RoboDK-Postprozessor (PY-Datei) erhalten haben, sollte dieser in den Posts-Ordner abgelegt werden, um ihn aus RoboDK auswählen zu können.

In diesem Abschnitt erfahren Sie, wie Sie einen Postprozessor auswählen, bearbeiten oder erstellen können und ihn in RoboDK mit Ihren Robotern verwenden. Eine kurze Einführung ist im folgenden Video verfügbar: https://www.robodk.com/help#PostProcessor


Die Auswahl eines Post Prozessors

Um einen bestimmten Postprozessor auszuwählen gehen Sie wie folgt vor:

1.Klicken Sie mit der rechten Maustaste auf einen Roboter oder ein Programm:

2.Wählen Sie Einen Postprozessor auswählen

3.Wählen Sie einen Postprozessor aus der Liste aus

4.Klicken Sie OK.

Post Processors - Bild 1Post Processors - Bild 2

Die Änderung wird jetzt angewendet und das Programm kann erneut generiert werden, um das Ergebnis zu sehen.

Alternativ ist es auch möglich, einen Postprozessor auszuwählen, indem Sie folgende Schritte ausführen:

1.Öffnen Sie das Roboter Panel (doppelklicken Sie auf einen Roboter)

2.Wählen Sie Parameter

3.Wählen Sie den gewünschten Postprozessor im Feld Robotermarken aus, wie es in der folgenden Abbildung dargestellt ist.

Post Processors - Bild 3


Abändern eines Post Prozessors

Es ist möglich, vorhandene Postprozessoren zu ändern oder neue Postprozessoren zu erstellen. Postprozessoren müssen in den Ordner C:/RoboDK/Posts/ abgelegt werden, damit sie in RoboDK ausgewählt werden können. Im vorherigen Abschnitt wurde beschrieben, wie Sie einen bestimmten Roboter mit einem Postprozessor verknüpfen können.

Jeder Postprozessor ist eine PY-Datei. Es ist möglich, die Datei umzubenennen oder Dateien in den Ordner C:/RoboDK/Posts/ zu kopieren, um verschiedene Postprozessoren zu nutzen. Um ein vorhandenes Postprozessor-Skript zu löschen, löschen Sie einfach die entsprechende PY-Datei im Posts Ordner.

Postprozessoren können mit einem beliebigen Texteditor oder einem Python-Editor (Python IDLE) bearbeitet werden. Mit dem Python-Editor können Sie schnell ein Beispielprogramm Datei debuggen und auswerten.

Python sollte installiert werden, um die Postprozessoren ordnungsgemäß zu testen und zu verwenden (Python wird standardmäßig mit RoboDK installiert).

Um einen existierenden Postprozessor zu bearbeiten gehen Sie wie folgt vor:

1.Wählen Sie Programm Postprozessor hinzufügen/bearbeiten

2.Wählen Sie einen bestehenden Postprozessor

3.Wählen Sie OK. Ein Texteditor und ein Programm öffnen sich.

4.Wählen Sie AusführenModul ausführen(F5) um eine Vorschau zu erhalten. Nehmen Sie gegebenenfalls Änderungen vor..

Post Processors - Bild 4

Alternativ ist es möglich, einen Postprozessor manuell zu bearbeiten:

1.Wechseln Sie zum Postprozessordner: C:/RoboDK/Posts/

2.Öffnen Sie eine PY-Datei mit Python IDLE (Rechtsklick Mit IDLE bearbeiten) oder einem anderen Texteditor

3.Nehmen Sie die gewünschten Änderungen vor

4.Führen Sie die Datei aus, um das Ergebnis zu testen: Wählen Sie AusführenModul ausführen (alternativ F5) via Python IDLE aus.

Alternativ ist es möglich, diese Datei mit einem Texteditor zu bearbeiten und mit Python durch Doppelklick auszuführen.

Post Processors - Bild 5


Beispiel einer Abänderung

In diesem Abschnitt wird gezeigt, wie Sie kleine Änderungen für einen vorhandenen Postprozessor vornehmen.

Als Beispiel werden die folgenden 3 Änderungen am bestehenden KUKA KRC4 Postprozessor vorgenommen:

Überschreiben Sie die maximale Geschwindigkeit auf 500 mm/s. Selbst wenn der Roboter so programmiert wird, dass er sich schneller bewegt, ist die Geschwindigkeit im Postprozessor somit auf 500 mm/s begrenzt.

Generieren Sie jedes Programm als separate Datei und beschränken Sie die Programme auf maximal 3000 Codezeilen. Große Programme werden dadurch in kleinere Programme unterteilt und nacheinander aufgerufen

Der vorherige Abschnitt zeigt, wie Sie einen vorhandenen Postprozessor zur Bearbeitung öffnen:

1.Wählen Sie ProgramPostprozessor hinzufügen/ändern

2.Wählen Sie KUKA_KRC4

3.Wählen Sie OK. Der Postprozessor wird im IDLE-Editor von Python angezeigt.

In den folgenden Abschnitten wird gezeigt, wie Sie diese Änderungen im Texteditor vornehmen.

Erzwingen eines Geschwindigkeitlimits

Befolgen Sie diese Schritte, um eine Geschwindigkeitsbegrenzung von 500 mm/s festzulegen und unterbinden Sie die Einstellung höherer Geschwindigkeiten in RoboDK:

1.Suchen Sie die setSpeed Funktionsdefinition (def setSpeed)

2.Fügen Sie die folgende Zeile hinzu, bevor Sie die Ausgabe $VEL.CP erzeugen, die die Geschwindigkeit in m/s ändert:

speed_mms = min(speed_mms, 500)

Post Processors - Bild 6

Erstellen eines separaten Programms pro Datei

Machen Sie die folgenden Änderungen, um zu vermeiden, dass Sie mehr als ein Programm pro Datei hinzufügen und höchstens Programme mit 3000 Zeilen Code erstellen:

1.Setzen Sie die Variable MAX_LINES_X_PROG auf 3000

2.Setzen Sie die Variable INCLUDE_SUB_PROGRAMS auf False

Post Processors - Bild 7


Verfügbare Post Prozessoren

Standardmäßig sind in RoboDK folgende Postprozessoren vorhanden:

ABB_RAPID_IRC5: für ABB IRC5 Roboter Steuerungen

ABB_RAPID_S4C: für ABB S4C Roboter Steuerungen

Adept_Vplus: für Adept V+ Programmiersprache

Allen_Bradley_Logix5000: für Allen Bradley Logix5000 PCL

CLOOS: for CLOOS robot controllers

Comau_C5G: für Comau C5G Roboter Steuerungen

Denso_RC8: für Denso RC8 Roboter Steuerungen

Dobot: für Ausbildungszwecke Dobot robots

Fanuc_R30iA: für Fanuc R30iA und R30iB Roboter Steuerungen

Fanuc_R30iA_Arc: für Fanuc Bogenschweißen

Fanuc_RJ3: für Fanuc RJ3 Roboter Steuerungen

GCode_BnR: für B&R Roboter Steuerungen

GSK: für GSK Roboter

HIWIN_HRSS: für HIWIN Roboter

KAIRO: für Keba Kairo Roboter Steuerungen

KUKA_IIWA: für KUKA IIWA sunrise programming in Java

KUKA_KRC2: für KUKA KRC2 Roboter Steuerungen

KUKA_KRC2_CamRob: für KUKA CamRob Fräsanwendungen

KUKA_KRC2_DAT: für KUKA KRC2 Roboter Steuerungen inklusive DAT data files

KUKA_KRC4: für KUKA KRC4 Roboter Steuerungen

KUKA_KRC4_Config: für KUKA KRC4 Roboter Steuerungen mit Konfigurationsdaten in jeder Zeile

KUKA_KRC4_DAT: für KUKA KRC4 Roboter Steuerungen inklusive DAT data files

Kawasaki: für Kawasaki AS Roboter Steuerungen

Mecademic: für Mecademic Meca500 Roboter

Mitsubishi: für Mitsubishi Roboter Steuerungen

Motoman/Yaskawa: für Motoman Roboter Steuerungen (Inform II & Inform III - JBI)

Nachi_AX_FD: für Nachi AX und FD Roboter Steuerungen

OTC: für Daihen OTC Roboter Steuerungen

Panasonic: für Panasonic Roboter Steuerungen

Precise: für Precise Scara Roboter

Siemens_Sinumerik: für Siemens Sinumerik ROBX Roboter Steuerungen

Staubli_VAL3: für Staubli VAL3 Roboter Programme (CS8 Steuerungen oder nachfolgende)

Staubli_VAL3_InlineMove: um Stäubli VAL3 Programme mit inline Bewegungen zu erstellen

Staubli_S6: für Staubli S6 Roboter Steuerungen

Toshiba: für Toshiba Roboter

Universal_Robots: für UR robots, erstellt Linearbewegungen als Pose Ziele

Universal_Robots_RobotiQ: für UR robots inclusive Support für RobotiQ Grefer

Universal_Robots_joints: für UR Roboter, erstellt Linearbewegungen als PTP Ziele

Yamaha: für Yamaha Roboter


Referenzen

Das folgende Video zeigt eine Übersicht der RoboDK Post Prozessoren:  
https://www.robodk.com/help#PostProcessor

Eine Referenzdokumentation für jede Methode ist online verfügbar unter: 
http://www.robodk.com/doc/PythonAPI/postprocessor.html

Alle Post Prozessoren basieren auf dem robodk.py Modul:           
https://robodk.com/doc/PythonAPI/robodk.html#robodk.Mat

Das robodk.py Modul stellt unter anderem Werkzeuge für Matrixoperationen (Multiplikationen, inverse Kinematiken,…) und Transformationen zwischen Euler Winkeln und diversen anderen Formaten.

Eine Dokumentation bezüglich der Programmierung in Python ist online verfügbar:           
https://docs.python.org/3/

Sobald ein Programm erstellt wird, wir ein universelles vorverarbeitetes Python Programm generiert und in einem lokalen, temporären Verzeichnis abgelegt. Dieses Programm ist mit dem korrekten Post Prozessor (durch den Benutzer in RoboDK ausgewählt) verbunden. Der Post Prozessor bestimmt eine RobotPost Klasse, welche anschließend den gewünschten Code erstellt.

Die vorverarbeiteten Programme werden mit Python ausgeführt.