Weltzonen in Verbindung mit Tool und Werkobjekt

  • Ich muss euch leider schon wieder um Hilfe bitten:

    Und zwar geht's diesmal um Weltzonen.

    Ich möchte eine stationäre kugelförmige Weltzone erstellen, welche sich anhand eines Punktes, der sich wiederum auf einen Greifer (also Tool) und ein Werkobjekt bezieht.

    Im Konkreten Fall:

    Ich möchte ein Bauteil greifen und die SPS soll in diesem Moment die entsprechenden Daten von der Station in den Greifer umkopieren (virtuelle Datenverfolgung). Diese Greifposition ist natürlich ein robtarget und kein jointtarget.

    Folgender Versuch schlug fehl:

    Code
    VAR pos posWeltzone := wWerkobjekt.uFrame.trans + tGreifer.tFrame.trans + pGreifpunk.trans;

    Robot-Studio meldet hier, dass wWerkobjekt und tGreifer keine Konstanten Ausdrücke seien (ist ja logisch, sie müssen auch als PERS angelegt werden).

    Es muss doch möglich sein, die Position pGreifpunkt in Weltkoordinaten umzurechnen. Ich habe die Hilfe schon durchgewälzt, aber noch keine Lösung gefunden.


    Hat jemand eine Idee?


    Edit: Obiger Code kann nicht funktionieren - Ich kann ja nicht im Deklarationsteil gleich rechnen wollen...

    Wenn ich das in der Prozedur mache klappts natürlich. Aber passt das dann auch? Oder müssten da die Winkel noch irgendwie mit verwurstelt werden?

    2 Mal editiert, zuletzt von D-Platoon () aus folgendem Grund: Neue Erkenntnis

  • ANZEIGE
  • Zumindest lässt er es im Anweisungsteil zu, im Deklarationsteil nicht. Im Deklarationsteil kann ich nur CONST drauf rechnen...


    Das Addieren der trans lässt er im Anweisungsteil auch zu. Morgen bin ich wieder am Robi und werde mal schauen was klappt und dann berichten.

    • Hilfreich

    Die Addition der Frames und Positionen funktioniert so nicht. Da gibt es (Achtung aus dem Gedächtnis) die Funktion Posemult(). Einfach in der Doku nachsehen, da ist auch ein schönes Bild drin.

  • In der Doku steht das stationäre Weltzonen nur in einer POWER ON Eventroutine verwendet werden können, d.h. die Weltzone muss fertig definiert sein, da kann also nichts gerechnet werden während dem Ablauf. In dem Fall hilft Dir CRobT oder sogar nur CPos weiter um den Centerpoint der Weltzone zu bestimmen. Also Greifposition anfahren, dann das im Programm eingefügte CRobT oder CPos einmal ausführen, Daten in Weltzone übernehmen, CRobT oder CPos auskommentieren, Neu starten, fertig.

    Ein mögliches Problem bei den Weltzonen für die SPS ist dass sie nur mitbekommt das etwas passiert aber nicht genau was passiert. Legt der Greifer an derselben Stelle auch ab weiß die SPS nicht in welche Richtung die Bauteildaten kopiert werden sollen. Dafür wäre ein Signal 'Bauteil gegriffen' oder 'Bauteil abgelegt' eindeutiger.

  • Also ich hab die letzten Tage ein bissche probieren können und es hinbekommen.

    Ich deklariere einfach die Variable

    Code
    VAR pos posWeltzone

    Anschließend in der Init-Prozedur kann ich über PoseMult die werkobjektabhänige Position in eine Weltposition transferieren.

    Das funktioniert soweit ganz super mit der Einschränkung, dass wenn ein Punkt nachgeteacht, die Weltzone erst nach dem Neustart der aktualisiert wird. Damit kann ich aber erstmal leben.

    Vielen Dank für eure Hilfe!


    In der Doku steht das stationäre Weltzonen nur in einer POWER ON Eventroutine verwendet werden können, d.h. die Weltzone muss fertig definiert sein, da kann also nichts gerechnet werden während dem Ablauf. In dem Fall hilft Dir CRobT oder sogar nur CPos weiter um den Centerpoint der Weltzone zu bestimmen. Also Greifposition anfahren, dann das im Programm eingefügte CRobT oder CPos einmal ausführen, Daten in Weltzone übernehmen, CRobT oder CPos auskommentieren, Neu starten, fertig.

    Über die Posemult brauch ich nichts übernehmen, sondern die Initialisierungsprozedur übernimmt das damit beim Neustart selbst.

    Ein mögliches Problem bei den Weltzonen für die SPS ist dass sie nur mitbekommt das etwas passiert aber nicht genau was passiert. Legt der Greifer an derselben Stelle auch ab weiß die SPS nicht in welche Richtung die Bauteildaten kopiert werden sollen. Dafür wäre ein Signal 'Bauteil gegriffen' oder 'Bauteil abgelegt' eindeutiger.

    Da der Greifer in meinem Fall eh über die SPS angesteuert wird, hab ich ja die Signale "Greifer offen" und "Greifer zu" so kann ich problemlos die entsprechenden Daten umkopieren.

    Dennoch danke für den Einwand!

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden