20. Januar 2019, 18:19:06
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

 Syntax von Distance-Funktion


normal_post Autor Thema:  Syntax von Distance-Funktion  (Gelesen 2477 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

24. November 2005, 10:46:16
Gelesen 2477 mal

Boot-Error

Gast
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
  • gefällt mir    Danke

Heute um 18:19:06
Antwort #1

Werbung

Gast

24. November 2005, 12:15:08
Antwort #1
Offline

maddin


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

  • gefällt mir    Danke

24. November 2005, 12:52:15
Antwort #2
Offline

Sven Weyer

Global Moderator
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

  • gefällt mir    Danke
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!

24. November 2005, 15:47:28
Antwort #3
Offline

rmac


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)
  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:)
  FUNC num RTDist(robtarget rt1, robtarget rt2)
    RETURN Distance(rt2.trans, rt1.trans);
  ENDFUNC

Gruß
Rainer
  • gefällt mir    Danke

28. November 2005, 08:12:33
Antwort #4

Boot-Error

Gast
schönen dank die herren  :supi:
  • gefällt mir    Danke

Heute um 18:19:06
Antwort #5

Werbung

Gast


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH