Problem mit $POS_ACT

  • Hallo,


    ich bin Neuling was Roboterprogrammierung angeht und habe gerade den Grundlagenkurs gemacht. Momentan komme ich bei folgendem Problem nicht weiter:


    Ich möchte, ausgehend von der aktuellen Position nach einer PTP-Bewegung eine neue Position mit LIN anfahren. Alle Positionswerte bis auf Z bleiben gleich, der Z-Wert wird berechnet.
    Das Programm stoppt mit dem Fehler: ID Wert ungültig


    Hier der Code:


    ;FOLD PTP P5 CONT Vel=100 % PDAT5 Tool[2]:Greifer mit Palette_1100 Base[4]:Stapelband2 CD;%{PE}%R 5.5.31,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P5, 3:C_PTP, 5:100, 7:PDAT5
    $BWDSTART=FALSE
    PDAT_ACT=PPDAT5
    FDAT_ACT=FP5
    BAS(#PTP_PARAMS,100)
    TQM_FIFO_READ(TM5)
    TRIGGER WHEN DISTANCE=0 DELAY=TQM_DLY() DO iTQM_TRIGGERID=5
    TRIGGER WHEN DISTANCE=0 DELAY=TQM_DLY() DO TQM_START_MON(TM5) PRIO = -1
    TRIGGER WHEN DISTANCE=1 DELAY=0 DO TQM_SWAP_VALUES(TM5) PRIO = -1
    PTP XP5 C_PTP
    ;ENDFOLD


    ZIELPOS=$POS_ACT
    ZIELPOS.Z=(STAPHOEHE2+1)*PALHOEHE2
    LIN ZIELPOS


    Hat jemand eine Lösung oder weiß was ich falsch gemacht habe.
    Wenn ich den Satzzeiger auf die Zeile ZIELPOS=$POS_ACT setze, läuft das Programm ohne Fehler weiter.


    Grüsse


    Ralph

  • Schritt für Schritt zum Roboterprofi!

  • ZIELPOS=$POS_ACT
    ZIELPOS.Z=(STAPHOEHE2+1)*PALHOEHE2
    LIN ZIELPOS
    Ralph


    Die Berechnung ist falsch.
    ZIELPOS=$POS_ACT
    ZIELPOS.Z= ZIELPOS.Z + ((STAPHOEHE2+1)*PALHOEHE2)
    oder
    ZIELPOS.Z= ZIELPOS.Z - ((STAPHOEHE2+1)*PALHOEHE2)


    LIN ZIELPOS

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

    Einmal editiert, zuletzt von Roboman ()

  • Hallo Roland,


    erstmal Danke für die Antwort. Ich habe das Problem (glaube ich jedenfalls) eingegrenzt.
    Die Variable ZIELPOS ist nicht vorhanden oder gültig, obwohl ich sie durch ZIELPOS=$POS_ACT zugewiesen habe. Kann es sein, das die Systemvariable $POS_ACT nicht immer abgefragt werden kann?


    Grüsse Ralph

  • Hast du die Variable denn deklariert?


    Ansonsten kannst du auch an der Stelle wo der Fehler auftritt und der Roboter nicht mehr weiter fährt in dem Variablen-Menü mal die Variable $POS_ACT abfragen. Dann weißt du wenigstens ob damit alles in Ordnung ist.

  • Hallo,


    Teach den Punkt ZIELPOS doch einfach.


    Code
    XZIELPOS=$POS_ACT
    XZIELPOS.Z=(STAPHOEHE2+1)*PALHOEHE2
    
    
    LIN ZIELPOS ; <-- Mit Inlineformular


    Gruß
    Peter

    Wer Rechtschreibfehler findet, darf sie behalten!!!&nbsp; :lol:

  • Zitat

    Teach den Punkt ZIELPOS doch einfach.


    So wie ich das verstehe möchte er flexibel auf die jeweilige Position reagieren. Wenn er den Punkt teacht müsste er bei jeder neuen Palette Punkt P5 und Zielpos neu teachen.

  • So wie ich das verstehe möchte er flexibel auf die jeweilige Position reagieren. Wenn er den Punkt teacht müsste er bei jeder neuen Palette Punkt P5 und Zielpos neu teachen.


    Nein müsste er nicht. Durch das techen wird der Punkt nur deklariert. Die Positionsdaten werden dann mit XZIELPOS=$POS_ACT überschrieben...

    Wer Rechtschreibfehler findet, darf sie behalten!!!&nbsp; :lol:

  • Noch ein kleiner Tipp, der Vorlaufzeiger beim KUKA ist oft schon 2-3 Zeilen vorraus, deswgen würde ich bevor du die Berechnung startest ein "Wait Sec 0" einfügen. Das hält den Vorlaufzeiger auf.

  • Hallo,


    Danke an alle. Das Problem ist gelöst.


    Wenn man die PTP-Bewegung zum P5 nicht mit Inlineformular, sondern
    mit PTP XP5 anfährt, läuft alles (keine Ahnung warum).


    Grüsse


    Ralph

  • Servus,


    Fui könnte recht haben, das kann ein Problem mit dem Vorlaufzeiger sein.
    Probier mal folgendes:

    Code
    ZIELPOS=XP5
    ZIELPOS.Z=(STAPHOEHE2+1)*PALHOEHE2
    LIN ZIELPOS


    und PTP nach LIN überschleifen sollte man nicht, außer du hast zwischen den Positionen genügend Platz . . .
    HTH


    Tobi


  • Hallo Ralph,
    ich hatte vergessen zu schreiben, daß ZIELPOS auch deklariert werden muss.
    Entweder in der Config.dat oder vor der ini-Zeile im src.


    DECL POS ZIELPOS

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

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