TechTipp: Programmieren mit Listen und CSV-Daten
Möchten Sie Ihr Roboterprogramm mit externen Datenquellen verbinden, um beispielsweise verschiedene, aus einem externen Programm vorgegebene Positionen mit dem Roboter anzufahren? Der TechTipp zeigt wie.
TECHTIPP “TAKE AWAYS”
- Arbeiten mit Listen in ArtiMinds RPS
- Schleifenausführungen im Kontext von Listen programmieren
Das ‚LIST‘ Template in ArtiMinds RPS erlaubt die Speicherung verschiedener Positionen. In Abb. 1 ist ein Bauteil abgebildet, das an neun Punkten angefahren werden soll. Zur Erstellung einer Liste, werden zunächst die neun Punkte mit dem Punktetool und gedrückter SHIFT-Taste markiert (Abb. 2). Die Reihenfolge in welcher die Punkte nacheinander angeklickt werden, bestimmt später die Position der einzelnen Punkte in der Liste.
Im Kontext-Menü (Rechtsklick) der Punkte kann nun über ‚Create Template‘ -> ‚Storage‘ –> ‚List‘ die Generierung eines List-Templates gestartet werden. (s. Abb. 3). Das erzeugte Template wird automatisch ans Ende des aktuellen Programmgraphens gesetzt.
Abb. 1
Abb. 2
Abb. 3
‘List Template’
Das List-Template speichert nun die einzelnen Punkte im Input-Parameter ‚Poses‘. Über den Input ‚Index‘ kann ausgewählt werden, welche der einzelnen gespeicherten Positionen über die Ausgänge ‚ListState‘ (stellt eine Gelenkwinkelkonfiguration zur Verfügung, mit welcher der Punkt erreicht wird) bzw. ‚ListPose‘ (stellt eine kartesische Zielkoordinate zur Verfügung) bereitgestellt wird. Ein Klick auf den ‚Index‘ Input öffnet ein Popup-Fenster, in welchem der Index verändert werden kann (s. Abb. 4).
Um den TCP an eine der Positionen der Liste zu bewegen, muss ein Bewegungsbaustein hinter das List-Template gesetzt werden (z.B. Move to State). Dieser Baustein wird nicht über den Wizard parametriert. Stattdessen erhält er seine Zielkonfiguration durch eine Verbindung des ‚ListState‘ Outputs mit seinem ‚goal_state‘ Input (s. Abb. 5).
Beachte: Einige Bausteine werden wie beim Move to State über Gelenkwinkelkonfigurationen parametriert. Andere Bausteine (wie z.B. Move Linear oder Move to Point) erwarten eine kartesische Zielkoordinate. In diesem Fall muss der ‚ListPose‘ Output mit dem ‚PointTo‘ Input verbunden werden (s. Abb. 6).
Abb. 4
Abb. 5
Abb. 6
Abb. 7
Alle gespeicherten Positionen anfahren; ‘List Loop’ Template
Eine Änderung des aktuellen Index des List-Templates aktualisiert nun auch die Zielposition, an welche sich der Roboter bewegt (s. beispielhaft Abb. 7, Abb. 8).
Vermutlich möchte man nun jedoch automatisch alle gespeicherten Positionen nacheinander anfahren, statt einzelne Positionen über den Index herauszupicken. Hierfür sollte man anstelle des ‚List‘-Templates lieber ein ‚List Loop‘ Template erstellen (s. Abb. 9). Dieses fügt an die Liste automatische einen Loop-Baustein an. Um die Bewegung zu parametrieren, öffnet man nun den Loop-Baustein (Rechtsklick -> Open, s. Abb. 10) und fügt den Bewegungsbaustein hinter dem automatisch erzeugten ‚List Access‘ Template ein (s. Abb. 11, hier mit einem Move Linear gelöst).
Abb. 8
Abb. 9
Abb. 10
Abb. 11
Nativer Scriptcode wird erzeugt
Das Programm wird nun eine Schleife über die einzelnen Listenelemente legen, und jedes einzelne Element nacheinander abfahren (s. Abb. 12). Auch Shuttle-Bewegungen sind möglich, indem beispielsweise der Ausgangspunkt der Bewegung (p0) als Zielpunkt eines ‚Move to Point‘ Templates hinzugefügt wird (s. Abb. 13 – Abb. 14).
Selbstverständlich erzeugt ArtiMinds RPS wie gewohnt den nativen Scriptcode für den Robotercontroller – in diesem Fall Fanuc TP Code (s. Abb. 15).
Abb. 12
Abb. 13
Abb. 14
Abb. 15
Roboteranwendungen herstellerübgreifend programmieren, simulieren, Wartungskosten senken und Fachkräftemangel lindern. Wie ZF das dank ArtiMinds gelingt erfahren Sie hier!
VIELMEHR als nur EINFACHE ROBOTERPROGRAMMIERUNG: Mit RPS schaffen Sie die prozessübergreifende Standardisierung – von der Planung, über die Programmierung bis hin zur Instandhaltung.
Wie hat VISOMAX das Polieren von lackierten Oberflächen mit Robotern umgesetzt? Erfahren Sie mehr!