Syntax von Distance-Funktion

  • moin zusammen


    ich habe hier einen programmauszug einer routine zur längenmessung von schweißnähten bekommen. darin wird folgende zeile verwendet:


    resultat:=Distance(Point1.trans,Point2.trans)


    ich habe am abb bis jetzt leider nur per robotstudio am rechner rumspielen können, aber ich habe schonmal so viel herausgefunden, dass bei einem "distance" befehl keine variablen vom typ "robtarget" eingesetzt werden können. Point1 und Point2 sind aber im format "robtarget".


    die eigentliche frage also: was bewirkt das ".trans" :?:


    ach und die routine kann zwar bei robotstudio geladen, jedoch nicht der inhalt angezeigt werden.


    daaanke

  • ANZEIGE
  • Hallo,


    Der Zusatz "trans" ist ein Teil des Datentyps robtarget und beinhaltet nur die Koordinaten des TCP´s (x,y,z) ohne die Orientierungen der Achsen.


    Den Befehl Distance kenne ich nicht bei ABB (kennt den jemand ?), ich vermute
    das ist eine Funktion , welche die Distanz zwischen Point1 und Point 2 berechnet.


    Es werden beim Aufruf von der Funktion Distance die trans.-Variablen von Point1 und Point 2 eingelesen und berechnet. Die Funktion meldet dann das Ergebnis zurück. Dieses wird dann in "resultat" hinterlegt.
    "resultat" müsste eigentlich ein Datentyp "pos" sein.


    Hab ich recht ?


    Gruß
    Maddin

  • Hallo zusammen,
    jup so ist es. Normal kann die Funktion Distance mit zwei pos-Datentypen verwendet werden laut Referenzhandbuch.
    Wie Maddin schon richtig erkannt hat benötigt die Funktion nur die translatorischen Werte der beiden Positionen. Dies kann mit pos-Datentypen gemacht werden, da diese von Haus aus nur die translatorischen Werte beinhalten. Oder man verwendet reale Positionen nur mit dem kürzel .trans. Dies beschränkt den Zugriff auf die translatorischen Werte.
    Aus den Positionen kann man auch während der Programmabarbeitung auch Modifikationen durchführen.
    z.B.: Point1.trans.x hiermit kann die X-Richtung der Position beeinflusst werden
    Point1.rot.q1 hiermit kann die Orientierung angepasste werden.


    Ich hoffe Euch weiter geholfen zu haben.


    robotic74

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Tach auch,
    maddin: der Ergebnistyp der Funktion ist "num" (is ja eine Länge :ks:)


    @Boot-Error:
    Falls du das häufiger für Robtargets brauchst, kannst du das auch selber berechnen,
    ungefähr so: (ohne Gewähr)

    Code
    FUNC num RTDist(robtarget rt1, robtarget rt2)
        RETURN Sqrt(Pow(rt2.trans.X - rt1.trans.X, 2) +
                    Pow(rt2.trans.Y - rt1.trans.Y, 2) +
                    Pow(rt2.trans.Z - rt1.trans.Z, 2));
      ENDFUNC


    oder noch einfacher: (hab ich Depp gerade selber gemerkt :uglyhammer_2:)

    Code
    FUNC num RTDist(robtarget rt1, robtarget rt2)
        RETURN Distance(rt2.trans, rt1.trans);
      ENDFUNC


    Gruß
    Rainer

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