ABB Bewegungspunkt / Punkteditor




▲ Punkttabelle

Alle im aktuellen Modul deklarierten Variablen vom Typ robtarget und jointtarget werden in zwei Tabellen unterhalb des Programmtextes aufgelistet. Neben den Koordinaten zeigt die Tabelle den Namensraum (den Fold oder die Routine, zu der die Deklaration gehört) und ob die Variable LOCAL, CONST oder PERS ist.


Die Tabelle folgt dem Cursor: Steht der Cursor auf einem Punktnamen im Programm, wird dieser Punkt in der Tabelle ausgewählt. Ein Doppelklick auf einen Punktnamen in der Tabelle springt zu seiner Deklaration.
Quaternions as RPY angles schaltet die Orientierungsspalten zwischen Quaternion (q1..q4) und Roll-/Pitch-/Yaw-Winkeln um.
Zahlen werden mit der in den ABB-Einstellungen festgelegten Genauigkeit ohne nachgestellte Nullen angezeigt; eine nicht angeschlossene externe Achse wird als 9E+09 angezeigt.

▲ Werte in der Tabelle bearbeiten

Koordinaten, Orientierung und externe Achsen können per Doppelklick auf eine Zelle geändert werden. Die Konfigurationsspalten (cf1, cf4, cf6, cfx) sind schreibgeschützt – sie werden neu berechnet. ▲ IK/FK-Zeile und Liste der IK-Lösungen

Ist die Roboterkonfiguration des Projekts verfügbar (system.xml, MOC.cfg und die Kinematik des Roboters), zeigt die Zeile über der Tabelle die Achswerte des ausgewählten robtarget (inverse Kinematik) bzw. die kartesische Position des ausgewählten jointtarget (Vorwärtskinematik) zusammen mit Werkzeug und Werkobjekt der Bewegungsanweisung dieses Punktes.

Die Dropdown-Liste unter dieser Zeile enthält alle IK-Lösungen innerhalb der Achsgrenzen. Die Lösung mit den confdata des Punktes ist mit * markiert und ausgewählt. Die Achsen 4 und 6 benötigen eventuell eine volle Umdrehung (±360°), um den in den confdata gespeicherten Quadranten zu erreichen – eine solche Lösung wird ebenfalls in die Liste aufgenommen, sodass die markierte Lösung immer zur Zeile darüber passt.
Copy joints values im Kontextmenü kopiert die Achswerte in Grad.


▲ Nicht verwendete Punkte

Ein Punkt, der im Modul nirgends verwendet wird, erscheint in grauer Kursivschrift mit einem Warnsymbol; der Tooltip erklärt den Grund. Ein Punkt gilt als verwendet, sobald sein Name außerhalb seiner eigenen Deklaration, von Kommentaren und Zeichenketten vorkommt – in einer Bewegungsanweisung, in Offs() oder RelTool(), in einer Zuweisung oder als Prozedurargument.
Markiert werden nur LOCAL-Punkte: Ein Punkt ohne LOCAL kann von einem anderen Modul der Task verwendet werden, fehlende Referenzen in diesem Modul sagen darüber also nichts aus.

▲ Kontextmenü der Punkttabelle


Die Werkzeug- und Werkobjektdaten (tooldata, wobjdata) werden aus allen Modulen der Task gelesen – aus Systemmodulen (*.sys) und Programmmodulen (*.mod). Sie werden für die Kinematik und für die oben beschriebenen Vergleiche von Werkzeug/Werkobjekt benötigt.

▲ Punkteditor

Der Punkteditor wird geöffnet über: Auf einer Bewegungsanweisung bearbeitet der Editor den Punkt, auf dem der Cursor steht – ein benanntes Target oder ein direkt in der Anweisung geschriebenes Target. Auf einer Deklarationszeile bearbeitet er den deklarierten Punkt; die Bewegungsanweisung, die den Punkt verwendet, wird gesucht, um Werkzeug und Werkobjekt zu ermitteln.
Previous und Next wechseln zu den benachbarten Punkten, ohne das Fenster zu schließen.


Die Registerkarte Cartesian zeigt Position und Orientierung (Quaternion und RPY-Winkel) sowie die confdata, die Registerkarte Joint die Achswerte mit Schiebereglern, die auf die Achsgrenzen des Roboters begrenzt sind. Eine Änderung auf einer Registerkarte berechnet die andere neu. Die 3D-Vorschau zeigt den Roboter in der berechneten Stellung.

▲ Was Apply schreibt

▲ Einfügen eines neuen Bewegungspunktes

Insert motion point (Roboter-Symbolleiste, Menü ABB oder Kontextmenü des Programmtextes) öffnet den Editor für einen neuen Punkt. Vor Apply wird nichts in das Programm eingefügt – wird das Fenster ohne Apply geschlossen, bleibt das Programm unverändert. Wohin die neuen Zeilen eingefügt werden:

▲ Linearachse (E1)

Bei einem Roboter auf einer Linearachse (Fahrbahn) sind die E1-Felder und der Schieberegler auf die Grenzen der Fahrbahn begrenzt, die aus MOC.cfg (Abschnitt ARM der Fahrachse) gelesen werden, in mm. Dieselben Grenzen werden zum Zeichnen der Fahrbahn in der 3D-Vorschau verwendet.

Der Wert 9E+09 bedeutet Achse nicht angeschlossen. Er wird im E1-Feld als 9E+09 (not connected) angezeigt und als 9E+09 zurückgeschrieben.

▲ Werkzeug- und Werkobjektdaten

Die Kinematik benötigt die Werkzeug- und Werkobjektdaten der Bewegung. Werden sie in der Task nicht gefunden, kann die andere Form des Punktes nicht berechnet werden und die 3D-Vorschau wird nicht aktualisiert, Apply wird jedoch nicht blockiert – was in das Programm geschrieben wird, hängt nicht von ihnen ab: Die Meldung im Editor nennt die fehlenden Daten und gibt an, welche Werte geschrieben werden.
Der Editor berechnet IK und FK auch für Punkte mit externem TCP, jedoch nur, wenn die im Bewegungsbefehl verwendete Werkzeug- und Basiskonfiguration gültig ist – die Werkzeugdaten werden NICHT vom Roboter gehalten, und die Basisdaten WERDEN vom Roboter gehalten.

▲ Direkt in der Bewegungsanweisung geschriebene Targets

Manche Bewegungsanweisungen enthalten die Koordinaten direkt, z. B. MoveJ [[3496.33,-491.6,570.9],[...],[-1,0,0,0],[9E+09,...]],v1000,z50,tool1\WObj:=wobj1;