ABB Roboter-Konnektivitätsplugin

Über das Plugin

Mit dem ABB-Roboter-Plugin können Sie während der Simulation eine Verbindung zu einem ABB-Roboter-Controller herstellen und Daten austauschen. Beispielsweise kann ein Programm, das in einem virtuellen oder physischen ABB-Controller läuft, die Gelenke eines ABB-Roboters in einer Simulation steuern, Sensordaten auslesen und Ausgänge für die Entnahme und Platzierung von Produkten setzen.

Das Plugin steht in Verbindung mit der Konnektivitäts-Funktion von Visual Components Premium 4.9 und kann an einen oder mehrere ABB-Roboter-Controller angeschlossen werden. Der vereinfachte Arbeitsablauf ist wie folgt ist wie folgt:

  1. Server hinzufügen
  2. Mit dem Server verbinden
  3. Variablen definieren
  4. Simulation ausführen

Begriffe

  • RobotWare – ABB-Roboter-Controller-Software.
  • PC SDK – SDK für die Kommunikation mit ABB-Robotern, wird zur Entwicklung des Plugins verwendet.
  • RobotStudio – ABB-Tool für Offline-Programmierung und -Simulation.
  • FlexPendant – Handheld-Tablet, das zur Bedienung des Roboters verwendet wird.

Lese- und Schreibunterstützung

Lese- und Schreibtabelle

Typ Lesen Schreiben Notizen
Digitale Ein- und Ausgänge des Roboter-Controllers

Ja

Ja Signals
Aktuelle Gelenkwerte einer beliebigen mechanischen Einheit

Ja

Nein  


Gepaarte Variablen in Richtung Simulation zu Server :

Die Werte, die über die API geschrieben werden, werden im E/A-System des Roboter-Controllers angewendet und sind dort sichtbar. Beim Einrichten einer E/A im E/A-System des Roboter-Controllers ist auf die Art des Signals und die für dieses Signal erforderliche Zugriffsebene zu achten. Sowohl digitale Eingänge als auch Ausgänge werden akzeptiert, auch wenn sie logisch nicht korrekt sind, und die Zugriffsebene sollte auf „Alle“ eingestellt werden.

Gepaarte Variablen in Richtung Server zu Simulation :

Der ereignisbasierte Aktualisierungsmodus ist nur bei Signalen möglich. In diesem Fall sollte die Variablengruppe nur gepaarte Variablen für Signale enthalten. Befinden sich gepaarte Variablen in der gleichen Variablengruppe werden keine Verbindungsdaten gelesen.

Es wird empfohlen, entweder den zyklischen Aktualisierungsmodus zu verwenden, wenn sowohl Signale als auch Gelenkdaten gelesen werden, oder separate Variablengruppen zu erstellen – eine ereignisbasierte für Signale und eine weitere zyklische für Gelenkdaten.

Anforderungen

Für die Verbindung müssen Visual Components Premium 4.9 Premium sowie ABB Robot Communication Runtime auf der selben Maschine installiert sein. Siehe folgende Optionen:

Option 1 - Visual Components Premium 4.9 Premium + ABB Robot Communication Runtime

Option 2 - Visual Components Premium 4.9 Premium + ABB PC SDK

  • ABB PC SDK enthält Robot Communication Runtime

Option 3 - Visual Components Premium 4.9 Premium + ABB RobotStudio

  • ABB RobotStudio enthält Robot Communication Runtime

Auf dem Hostrechner müssen die beiden Dienste „ABB Industrial Robot Communication Server“ und „ABB Industrial Robot Discovery Server“ ausgeführt werden.

Hinweis: Ein realer ABB-Roboter-Controller benötigt eine PC-Schnittstellenoption, um die Verbindung mit dem Plugin zu unterstützen. In der virtuellen Umgebung ist eine PC-Schnittstelle nicht erforderlich.

Einrichtung

  1. Überprüfen Sie, ob Ihr Hostrechner die Anforderungen erfüllt.
  2. Zugriff auf den ABB-Roboter-Controller.
    1. Das Plugin stellt eine Verbindung zum Roboter-Controller her, sodass der virtuelle oder physische Roboter-Controller über eine direkte Netzwerkverbindung (IP-Adresse) zugänglich sein sollte. Es reicht zum Beispiel aus, wenn ein Projekt in ABB RobotStudio geöffnet ist und der virtuelle Controller läuft.
  3. Fügen Sie in Visual Components Premium 4.9, einen neuen Server mit dem Plugin hinzu und verbinden Sie ihn mit dem Controller.
    1. Wenn Sie einen virtuellen Roboter-Controller in RobotStudio verwenden, hat diese standardmäßig die IP-Adresse des Hostrechners von RobotStudio.
  4. Variablen definieren.
    1. Definieren Sie zum Beispiel für die Eigenschaft WERT jedes Freiheitsgrades (DOF)/Gelenkes der Roboterkomponente ein Gelenk der entsprechenden mechanischen Einheit im Controller. Auf diese Weise steuert der Controller den Roboter in der 3D-Welt.
    2. Zur Simulation von Aktionen wie Greifen/Loslassen ordnen Sie die Ausgänge der Roboterkomponente für diese Aktionen den E/A des Controllers zu, die Sie für diese Aktionen verwenden werden.
  5. Simulation ausführen.
    1. Simulieren, um den Datenaustausch zu starten. Beachten Sie dass im Bereich Verbundene Variablen die Spalte Vorbereitete Werte verwendet werden kann, um Werte für Tests festzulegen.

Fähigkeiten

Sie können die Fähigkeiten des ABB-Roboter-Plugins und der nachfolgenden Serververbindungen im Fenster Eigenschaften überprüfen.

Plugin

  1. Im Fenster Konnektivitätskonfiguration, wählen Sie ABB Robot.
  2. Im Fenster Eigenschaften, erweitern Sie Fähigkeiten des Verbindungs-Plugins.

Server

  1. Im Fenster Konnektivitätskonfiguration, erweitern Sie ABB Robot und wählen dann eine aktive Serververbindung.
  2. Im Fenster Eigenschaften, erweitern Sie Serverfähigkeiten.

Verbindungseinstellungen

Für eine ABB-Roboter-Plugin-Verbindung sind die IP-Adresse und der Name des Roboter-Controllers erforderlich. Standardmäßig ist dies der Host-Rechner (localhost). Es gibt auch eine „Controller finden“-Funktion, die verwendet werden kann, um Controller im lokalen Netzwerk zu finden (nur physische Controller). Sie erfordert auch den Authentifizierungstyp (DefaultUser oder ein anderer im UAS (User Authorization System) des physischen Roboter-Controllers definierter Benutzer).

Um eine neue Serververbindung zu definieren:

  1. Im Fenster Konnektivitätskonfiguration, klicken Sie auf ABB Robot.
  2. In der Registerkarte Konnektivität und der Gruppe Server, klicken Sie auf Server hinzufügen.
  3. In der Registerkarte Verbindung bearbeiten, legen Sie Server-URL und Name des Controllers fest. Ein Element aus Verfügbare Controller kann ebenfalls ausgewählt werden. Legen Sie Authentifizierung fest und klicken Sie dann auf Verbindung testen.
  4. Wenn die Verbindung erfolgreich war, klicken Sie auf OK und dann auf Anwenden.

Adressbereich

Der ABB-Roboter-Controller verfügt nicht über eine klar definierte Struktur für den Datenzugriff. Zum Beispiel sind die Gelenkdaten einer mechanischen Einheit in einer JointTarget-Struktur enthalten.

Die Browsing-Funktionalität stellt die Variablen in einer praktischen hierarchischen Ordnerstruktur dar und erstellt untergeordnete Variablenknoten für jedes Signal und für jeden Gelenkwert aller mechanischen Einheiten in einem Controller.

Kontrollbehandlung bei Schreibvorgängen

Damit das Plugin Werte in den ABB-Roboter-Controller schreiben kann, muss sich der Controller entweder im Auto-Betriebsmodus befinden, oder die Kontrolle ist erforderlich.

Bei der Betriebsart „Manuell“ ist eine dauerhafte Kontrolle erforderlich, d. h. die Kontrolle wird beim ersten Schreibvorgang angefordert und erst wieder freigegeben, wenn die Verbindung zum Server unterbrochen wird. Signale erfordern im manuellen Modus Kontrolle für Schreibvorgänge.

Dem Benutzer wird ein Kontrollanfrage- dialog angezeigt, der darauf hinweist, dass der Controller entweder in den automatischen Betriebsmodus umgeschaltet oder Schreibzugriff vom FlexPendant gewährt werden muss.


Nach dem Dialog erscheint eine ähnliche Meldung wie unten auf dem FlexPendant, um den Schreibzugriff zu gewähren.

Wenn die Betriebsart Auto ist, ist die Kontrolle nicht erforderlich.

Die oben erläuterte Logik wird hier gezeigt:

Umgang mit Fehlern

  • Wenn die Voraussetzungen nicht erfüllt sind (z. B. Robot Communication Runtime ist nicht installiert), schlägt der Versuch, einen Server hinzuzufügen, fehl.
  • Wenn die Verbindung zum Controller unterbrochen wird, wird der Datenaustausch eingestellt. Das Plugin erwartet in solchen Fällen ein Ereignis von dem Controller. Es versucht, die Verbindung wiederherzustellen, gibt aber einen Fehler aus, wenn dies nicht gelingt.
  • Wenn eine Verbindung zu eineb physischen Roboter-Controller besteht, wird ein Fehler ausgegeben, wenn die Authentifizierung mit dem angegebenen Benutzer fehlschlägt.
  • Verliert das Plugin beim Schreiben von Werten in Signale die Masterschaft (z. B. weil ein Benutzer im manuellen Betriebsmodus FlexPendant den Schreibzugriff entzieht), so wird der Benutzer mit dem Dialog Kontrolle anfordern aufgefordert und muss den Zugriff über das FlexPendant erneut gewähren.

Einschränkungen

  • Der ereignisbasierte Aktualisierungsmodus funktioniert nur für Signale.
  • Gelenkwerte können nicht in den Roboter-Controller geschrieben werden.
  • Schreibvorgänge erfordern Kontrolle. Um Kontrolle zu erhalten, wenn sich der Roboter-Controller im manuellen Modus befindet, muss der Bediener dies am FlexPendant des Roboter-Controllers genehmigen. Es kann immer nur ein Client die Kontrolle haben.

Kompatibilität

Das PC-SDK ist normalerweise mit neueren ABB RobotWare-Versionen kompatibel. Die Version von Robot Communication Runtime sollte jedoch mit der ABB RobotWare-Version übereinstimmen.

Wenn Sie einen physischen oder virtuellen Roboter mit einer bestimmten Version von ABB RobotWare (ABB-Roboter-Controller-Software) haben, müssen Sie eine kompatible Version von Robot Communication Runtime installieren.

Performance

Die Kommunikationsverzögerung wird hauptsächlich durch die feste Aktualisierungsrate des ABB-Roboter-Controllers und des PC-SDK bestimmt.

Die Verwendung des ereignisbasierten Aktualisierungsmodus wird für Variablengruppen mit Datenfluss vom Server zur Simulation empfohlen, im Falle von Signalen.

Unterstützte Datentypen

Das ABB-Roboterplugin unterstützt den Zugriff auf digitale Signale und Verbindungsdaten mechanischer Einheiten.

ABB-Robotertyp .NET Type
DigitalInput System.Boolean
DigitalOutput System.Boolean
Single System.Single

Weitere Hinweise

Für die Paarung der Daten der Gelenke der mechanischen Einheiten wird die JointTarget-Struktur von ABB verwendet. RobJoint enthält die Werte für die sechs Gelenke, während ExtJoint die Werte für die externen Gelenke enthält.

Bei siebenachsigen Robotern befindet sich die siebte Achse in einer separaten mechanischen Einheit (in der Regel mit *7 bezeichnet), und ihr Wert ist im ersten Gelenkwert von ExtJoint (ExtAx.Eax_a) zu finden.