E6Pos an Funktion übergeben

  • Hallo


    Habe eine Funtion mit der ich beim Programmstart meine geteachten Positionen mit $Pos_Act vergleichen möchte.
    DEFFCT BOOL control (E6POS :IN)
    Beim Aufruf mit Übergabe einer geteachten Position, bricht Programm mit folgender Meldung ab:


    "Punktname" Wert ungültig


    In der Hilfe steht dazu: Lesezugriff auf eine Variable, die nicht initialisiert ist oder keinen gültigen Wert hat. :kopfkratz:


    Hoff Ihr könnt mir weiterhelfen


    Gruß
    Florian

  • Schritt für Schritt zum Roboterprofi!
  • Hallo,
    wenn die Def-Zeile wirklich so aussieht:
    DEFFCT Bool control (E6POS: in)
    dann ist's klar dass es nicht geht. Das ganze sollte eher so aussehen
    (hier halt mit Achswerten):



    Hermann

  • danke für die schnelle Antwort
    Meine Funktion sieht eh so aus wi von dir beschrieben.
    Meine Angabe war die Definition in der config.dat, mein Fehler


    Hab aber schon mein Problem gefunden. Position einfach nur mit Punktnamen übergeben, statt X"Punktname".


    Also nur ein Tippfehler.


    Gruß
    Florian

  • Kurze Frage erfordert eigentlich eine lange Antwort,
    trotzdem nur eine kurze:


    E1-E6 sind die Positionen der externen Achsen, so man welche hat.


    s und t stellen die Stellung der Handachsen, den 'Überkopfbereich'
    dar, da die meisten Positionen wenn man nur X,Y,Z,A,B,C betrachtet
    nicht eindeutig sind ( z.Bsp. Achse 5 auf der anderen Seite der Strecklage
    und dafür Achse 4 um 180 Grad gedreht)


    Hermann

  • Inwiefern kann ich die Werte für s und t selber bestimmen?
    Es geht darum auf einem Externen PC Punkte zu teachen, indem man diese einfach in der .dat deklariert. x,y,z,a,b,c kann man ja frei wählen, aber wenn die s/t Werte nicht stimmen, dann kann der Robi diese Position nicht so anfahren...
    Bisher kann ich nur von Hand die gewünschte Position anfahren und dann die s/t Werte ablesen.
    Kann man sich diese Werte ausrechnen?


    Danke schonmal!

  • Auszug aus dem Handbuch:


    Programmierhandbuch Experte; 3 Bewegungsprogrammierung; 3.2 Punk-zu-Punkt Bewegungen (PTP); 3.2.3 Bewegungsbefehle

    Kontrolle ist eine Illusion, denn niemand weiss was als nächstes passiert.

  • Ah ok super :danke:



    Naja da kann man ja schon ungefähr abschätzen wie die Werte aussehen müssen.


    Ist es möglich eine Position in der .dat zu deklarieren, ohne spezifische Werte für t und s einzugeben? Wenn ich das jetzt richtig verstanden habe, müssen die angegeben sein, weil man einen Punkt zum Beispiel von oben aber auch von unten anfahren kann (unten schweißen oder oben schweißen). Die Koordinaten x,y,z wären in dem Moment gleich... Theoretisch müssten aber dann doch zum Beispiel die Achse A4 entweder auf 0° --> unten schweißen oder auf 180° stehen --> oben schweißen. Ich kann mir grad nicht vorstellen, dass eine exakte Roboterstellung mit x,y,z,a,b,c nicht eindeutig sein kann... s und t sollen aber Doppeldeutigkeit ausschließen...
    :denk: :kopfkratz:



    Edit: Habe die Punkte nun als FRAME deklariert... Scheint auch so zu funktionieren... Womit eigentlich gezeigt wäre, dass die Werte für s und t eigentlich doch überflüssig sind oder???

    Einmal editiert, zuletzt von Eagle ()

  • Eagle


    Die Position im Raum ist die selbe, nur die Achsstellung kann eine andere sein.


    Wenn Du ohne Status und Turn arbeitest, so werden diese Werte von dem vorherigen Punkt übernommen.
    Dabei besteht die Gefahr, daß bei einer Änderung des vorherigen Punktes sich eine andere Konstellation ergeben könnte.
    Die Interpolation spielt auch eine gewisse Rolle. (LIN, CIR oder PTP)
    Bei den kartesischen Bewegungen (LIN, CIR) wird immer die vorherige Konstellation der Achsen beibehalten, aber die PTP-Bewegung kann das über die Angabe von S und T auch anders. (Achtung Schlauchpaket)


    Tschüß Frank

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