Wie sieht die Programmierung von ABB-Robotern in RAPID und RobotStudio aus?

Die Programmierung von ABB-Robotern bedeutet, ein Programm in der Sprache RAPID zu erstellen, das von der Robotersteuerung (IRC5 oder der neueren OmniCore) ausgeführt wird. Der größte Teil des Codes entsteht offline in RobotStudio auf einer virtuellen Steuerung mit einem Modell der Zelle. In der Halle bleiben Kalibrierung, Punktkorrektur, der Test der Signale mit der SPS und die Optimierung der Zykluszeit. Von der Aufteilung der Arbeit zwischen diesen beiden Phasen hängt ab, wie lange die Linie bei der Inbetriebnahme stillsteht.

RAPID ist eine textbasierte Hochsprache, in der alle ABB-Roboter programmiert werden. Sie kennt Prozeduren, Funktionen, Schleifen, bedingte Anweisungen, Fehlerbehandlung und Interrupts und steht damit einer Programmiersprache näher als einer Liste von Punkten, die per Handbediengerät eingelernt wurden.

Ein Programm gliedert sich in Module: Programmmodule (die Logik des Arbeitsplatzes) und Systemmodule (Daten und Routinen, die für die gesamte Anlage gelten). Die Module enthalten Prozeduren (PROC), Funktionen mit Rückgabewert (FUNC) und Interrupt-Routinen (TRAP), die auf ein äußeres Ereignis reagieren, ohne das Ende der laufenden Bewegung abzuwarten.

Die Roboterbewegung beschreiben die Anweisungen MoveJ (Gelenkbewegung ohne Kontrolle der Werkzeugbahn), MoveL (lineare Werkzeugbewegung), MoveC (Kreisbogen) und MoveAbsJ (Position, die durch Achswinkel vorgegeben wird). Jede davon nutzt mehrere Datentypen, und ein Fehler in einem davon zeigt sich erst an der Maschine:

DatentypWas er beschreibtWas bei einem Fehler passiert
tooldataden Arbeitspunkt des Werkzeugs (TCP) sowie Masse und Schwerpunkt des Greifersder Roboter verfehlt das Ziel, und eine falsche Masse belastet die Getriebe und verschlechtert die Bahngenauigkeit
wobjdatadas Koordinatensystem des Werkstücks oder der Vorrichtungnach dem Verschieben der Vorrichtung muss jeder Punkt korrigiert werden statt eines einzigen Koordinatensystems
robtargetPosition und Orientierung des Werkzeugs in einem Punkteine Kollision oder ein Punkt, der in einer anderen Achskonfiguration nicht erreichbar ist
speeddata, zonedataGeschwindigkeit und Genauigkeit beim Durchfahren eines Punktesein zu langer Zyklus oder ein zu früh gesendetes Signal an die SPS

Die letzte Zeile ist eine häufige Quelle schwer zu findender Störungen. Ein fine-Punkt ist ein Haltepunkt: Das Programm wartet, bis der Roboter in Position steht. Eine Zone (z. B. z10) erzeugt einen Überschleifpunkt, und das Programm führt die nächsten Anweisungen aus, bevor der Roboter am Ziel ankommt. Wird unmittelbar nach einer solchen Bewegung ein Ausgang wie „Greifer öffnen“ gesetzt, kann ein Teil einige Millimeter vor dem Ziel fallen gelassen werden. Die Wahl der Zonen entscheidet zugleich über die Zykluszeit und darüber, ob der Prozess wiederholbar ist.

Eine ABB-Steuerung kann mehrere Roboter bedienen. Mit der Option MultiMove lassen sich von ihr aus bis zu vier Roboter und Positionierer koordinieren. Das nutzt man unter anderem, wenn zwei Roboter dasselbe Bauteil schweißen, das ein gemeinsamer Positionierer dreht.

RobotStudio ist die ABB-Umgebung für Offline-Programmierung und Simulation auf Basis einer virtuellen Steuerung. Der Hersteller beschreibt diese Steuerung als originalgetreue Kopie der Software, die in der Robotersteuerung in der Produktion läuft. Ein in der Simulation getestetes Programm ist also derselbe RAPID-Code, der später in den Schaltschrank gelangt.

Die Offline-Arbeit beginnt mit der Station: einem Modell der Zelle aus CAD, dem Roboter mit der passenden RobotWare-Version und den Optionen, Werkzeugen und Vorrichtungen. Die virtuelle Steuerung erstellt man am besten aus einem Backup der bestehenden Steuerung, denn dann hat sie dieselbe Konfiguration wie die echte. An einem solchen Modell prüft der Programmierer:

  • Reichweiten und Achskonfigurationen: ob der Roboter jeden Punkt erreicht, ohne durch eine Singularität zu fahren;
  • Kollisionen: mit der Vorrichtung, dem Zaun, einem zweiten Roboter und den Greiferleitungen;
  • Zykluszeit: ob der Arbeitsplatz in die Taktzeit der Linie passt, bevor jemand Geräte bestellt;
  • Programmlogik: Abläufe, Fehlerbehandlung und Rückkehr in die Grundstellung.

In RobotStudio konfiguriert man auch SafeMove, also die in die Steuerung integrierten Sicherheitsfunktionen: Zonen, in die der Roboter nicht einfahren darf, und die Überwachung der Werkzeuggeschwindigkeit. Die Zonen werden auf dem Zellenmodell eingezeichnet, die Konfiguration wird in die Steuerung geladen.

RobotStudio Basic ist kostenlos und reicht für die Arbeit mit einer virtuellen Steuerung und für die Verbindung mit einer echten Steuerung aus. Für die vollständige Offline-Programmierung und Simulation ist eine kostenpflichtige Premium-Lizenz erforderlich.

Die Simulation ersetzt die Halle nicht. Ein CAD-Modell stimmt selten auf den Millimeter mit der Realität überein: Die Vorrichtung steht minimal anders, die Greiferleitung hat eine andere Länge, der Boden ist nicht perfekt eben. Je besser das Offline-Programm vorbereitet ist, desto kürzer ist der Stillstand der Linie bei der Inbetriebnahme, aber Korrekturen vor Ort bleiben immer.

Vor Ort gelangt das Programm aus RobotStudio auf die echte Steuerung, und der Roboterprogrammierer passt es an die tatsächliche Zelle an. Die Reihenfolge der Arbeiten ist wichtig, weil jede Phase auf der vorherigen aufbaut:

  1. Kalibrierung von Werkzeug und Werkstückkoordinatensystemen: Vermessung des TCP von Greifer oder Brenner und der wobjdata-Koordinatensysteme der Vorrichtungen. Die Programmpunkte sind relativ zu diesen Systemen gespeichert, daher verschiebt ein Kalibrierfehler alle Positionen auf einmal.
  2. Punktkorrektur: Anpassung der Positionen, die die Simulation nicht exakt abgebildet hat, am FlexPendant im Handbetrieb mit reduzierter Geschwindigkeit.
  3. Test der Schnittstelle zur SPS: Prüfung jedes Signals zwischen Roboter und Liniensteuerung (Bereitschaft, Programmstart, Typnummer, Greiferrückmeldungen, Sensorsignale).
  4. Automatikbetrieb und Optimierung: Wahl von Geschwindigkeiten und Zonen, Verkürzung der Bahnen, Anpassung des Zyklus an die Taktzeit der Linie.
  5. Robustheitstests: Not-Halt mitten im Zyklus, fehlendes Teil, Signalausfall, Neustart nach einem Eingriff des Bedieners.
  6. Dokumentation und Backup: ein aktuelles Backup der Steuerung und eine Beschreibung der Signale für die Instandhaltung.

Das Speichern der Punkte relativ zu Werkstückkoordinatensystemen ist auch für die Instandhaltung wichtig. Wird die Vorrichtung nach Jahren versetzt, korrigiert man ein Koordinatensystem statt Dutzender Punkte im Programm.

So sah unsere Arbeit unter anderem bei der Montagelinie für Zylinderköpfe von V8-Motoren für Jaguar Land Rover aus, wo wir ABB-Roboter für das Handling und für die Qualitätskontrolle mit Bildverarbeitungssystem programmiert haben, unter Einsatz von RobotStudio.

Sie suchen einen erfahrenen Integrator für ABB-Roboter? Melden Sie sich, wir integrieren und nehmen den Roboter in Ihrem Werk in Betrieb.

In einer Produktionszelle entscheidet über die Reihenfolge der Arbeit in der Regel die SPS der Linie, während der Roboter die zugewiesenen Aufgaben ausführt und deren Ergebnis meldet. Der Datenaustausch läuft über ein Industrienetzwerk (meist PROFINET oder EtherNet/IP), im RAPID-Programm sind dafür digitale und Gruppen-Ein- und Ausgänge zuständig.

Die Herausforderung liegt an jeder Stelle, an der der Roboter auf ein Signal wartet. Eine WaitDI-Anweisung ohne Zeitlimit hält das Programm für immer an, wenn ein Sensor verschmutzt oder die SPS keine Rückmeldung sendet. Der Bediener sieht einen stehenden Roboter ohne jede Meldung, und die Instandhaltung sucht die Ursache im Dunkeln. Deshalb wird bei jedem Warten ein Zeitlimit (\MaxTime) gesetzt, und die Fehlerbehandlung sendet einen verständlichen Störungscode an die SPS und an das Bediengerät.

Die wichtigsten Risiken an der Schnittstelle zwischen Roboter und SPS:

  • kein Zeitlimit bei Signalen: Der Arbeitsplatz steht ohne Diagnose still;
  • in einer Zone gesendetes Signal: Die SPS erhält die Meldung „Roboter in Position“, bevor der Roboter tatsächlich angekommen ist;
  • keine sichere Rückkehr: Nach einem Not-Halt weiß der Roboter nicht, wo er steht, daher fährt der Bediener ihn von Hand heraus;
  • Abweichung vom Standard des Auftraggebers: Automobilkonzerne beschreiben in ihren Spezifikationen ein eigenes Signallayout und eine eigene Struktur der Roboterprogramme, und ein nach eigenem Muster geschriebenes Programm besteht die Abnahme nicht.

Ein Programm, das die Ursache eines Stillstands selbst meldet, verkürzt jeden künftigen Stillstand des Arbeitsplatzes. Die Struktur des Ablaufs auf der SPS-Seite legt die Software der Liniensteuerung fest, häufig nach einem Konzernstandard wie VASS geschrieben.

Die Sprache bleibt dieselbe: Auf beiden Steuerungen programmiert man in RAPID und in RobotStudio. Es ändert sich die Plattform. OmniCore arbeitet mit RobotWare 7, IRC5 mit früheren Versionen.

ABB hat OmniCore als Nachfolger der IRC5 vorgestellt und das Ende der IRC5-Produktion angekündigt. Die IRC5-Steuerungen wechselten in den Status „Classic“, und der Hersteller sichert für sie mindestens 10 Jahre Serviceunterstützung mit Ersatzteilen und Reparaturen zu. Für ein Werk bedeutet das zweierlei:

  • ein neuer Arbeitsplatz mit ABB-Roboter entsteht bereits auf OmniCore;
  • ein Roboterpark auf IRC5 kann weiterarbeiten, aber bei der Modernisierung der Linie muss der Wechsel auf die neue Steuerung eingeplant werden.

Die Übertragung eines Programms zwischen den Generationen erschöpft sich nicht im Kopieren der RAPID-Module. Man muss die Konfiguration der Ein- und Ausgänge, die RobotWare-Optionen, die Sicherheitsfunktionen und die Anweisungen prüfen, die in der neuen Version anders arbeiten, und das Programm anschließend in RobotStudio und am Arbeitsplatz testen.

ABB-Roboter sind eine der Marken, die wir neben KUKA und Fanuc programmieren. Die Anbieter aus Sicht eines Werks vergleicht der Beitrag Welchen Anbieter von Industrierobotern sollte man für das eigene Werk wählen?.

Sie modernisieren eine Linie mit ABB-Robotern? Wir passen die RAPID-Programme an und nehmen die Roboter bei Ihnen im Werk in Betrieb.

  • ABB, RobotStudio Desktop (virtuelle Steuerung, Offline-Programmierung): https://www.abb.com/global/en/areas/robotics/products/software/robotstudio-suite/robotstudio-desktop
  • ABB, Mitteilung „ABB launches next-generation Robotics control platform OmniCore“: https://new.abb.com/news/detail/116279/abb-launches-next-generation-robotics-control-platform-omnicore
  • ABB, „Tschüss IRC5“ (Ende der IRC5-Produktion, Status Classic, Serviceunterstützung): https://new.abb.com/products/robotics/de/campaigns/tschuess-irc5
  • ABB, „ABB MultiMove functionality“ (Koordination von bis zu vier Robotern von einer Steuerung).
  • ABB, Technical reference manual „RAPID Instructions, Functions and Data types“ (MoveL, MoveJ, WaitDI, zonedata, tooldata, wobjdata).
  • ABB, Produkthandbücher mit der Konfiguration von Visual SafeMove in RobotStudio.
Nach oben scrollen