Rückpositionieren

  • Hallo


    Habe ein Problem mit der Rückpositionierung. Ich habe Cad-Daten und das der Bediener diese selber ändern kann, habe ich ein Programm welches die Punkte anfahrt und der Bediener dann manuell den Roboter auf eine andere Position bringen kann. Die neuen Daten werden dann gespeichert, so eine art Teachen aber kontrolliert. Dies funktioniert auch alles wunderbar, das Problem ist jedoch beim anfahren des nächsten Punktes fährt er zuerst die Rückposition an. Haben auch schon probiert $POS_RET=$POS_ACT jedoch ist $POS_RET schreibgeschützt. Weiter habe ich probiert $on_path wieder auf True zu setzten, jedoch ist diese auch Schreibgeschützt. :wallbash:


    Hat jemand eine Idee wie man die Rückpositionieren verhindern kann???


    Währe sehr Dankbar

  • Schritt für Schritt zum Roboterprofi!
  • Also nur das ich das auch verstehe: der Roboter fährt ganz normal durchs Programm, bis an einen bestimmten Punkt, dann kommt der Bediener und fährt den Roboter manuell woanders hin und der Roboter soll nun ab da weitermachen ?


    Dazu gibts den Taster "Satzanwahl".


    Wenn es so abläuft wie beschrieben, dann befindet sich der Roboter in der Bahnplanung und du musst ihm erst mal klarmachen, dass er den Rest verwerfen soll, deswegen würde er rückpositionieren. Die Idee ist dabei: der "neue" Punkt ist ja irgendwo als Satz da ist, also muß der Bediener nach dem Handverfahren nur eine Satzanwahl auf diesen Satz machen.


    Alternativ: In der Betriebsart EXT kann man den Roboter aus so einstellen, dass ein nicht Rückpositioniert nach einem Halt.


    Ansonsten bleibt nur der Umweg, die letzte Bewegung vor dem Halt in ein UP zu verlegen, den Stop über einen Interrupt zu machen und dann per Resume zurückzuspringen.


    $POS_RET wird erst dann aktiv, wenn der Roboter aus dem Programm von der Bahn abkommt. Wenn der Bediener ihn dort wegfährt, sind die Verhäötnisse anders, es wird da zwischen Programm- und Bedienerbetrieb intern unterschieden. Also wenn der Roboter bei einem Not-Aus von der Bahn trudeln, dann fährt es zurück nach $POS_RET - da greift dann auch die Überwachung wie weit er sich von der Bahn entfernt hat und ob man da überhaupt noch autom. Rückpositionieren kann/will.



    marvin

  • Vielen Dank für deine Antwort.
    Satzanwahl kann nicht die Lösung sein über einen Interrupt löse ich es schon, kann jedoch Resume nicht brauchen, da ich noch in ein weiteres Up springe um die neuen Daten zu schreiben!


    Code sieht wie folgt aus

    INTERRUPT OFF 1
    BRAKE
    HALT
    ;Hier kann der Roboter bewegt werden um die Daten zu speichern. Dies funktioniert auch
    I_POS_X=$POS_ACT.X-CAD[FI-1].X
    I_POS_Y=$POS_ACT.Y-CAD[FI-1].Y
    IF (I_POS_X>1) OR (I_POS_X<-1) OR (I_POS_Y>1)OR(I_POS_Y<-1) THEN
    HALT
    GLOB_CAD (6)


    ENDIF


    Jedoch wenn das Programm zurück in die Bewegungsschlaufe kehrt, fährt er die Rückposition an



    FOR FI=VON TO BIS
    BAS (#VEL_CP,0.05 )
    LIN CAD[FI]
    UP ( )
    ENDFOR

    obwohl der Lin (CAD[fi]) ein Wert weiter ist. Übrigens der Interrupt wird im up() gestartet

  • Hallo robota,


    nur so'ne Idee: hast Du mal ein


    Code
    PTP $POS_ACT


    am Ende Deiner Interruptroutine probiert? Der Robbi sollte sich dadurch nicht bewegen, aber das Rückpositionieren lassen! :ylsuper:


    Falls es nicht hilft : Bitte mehr Beispielcode... :lol:

  • Hallo,


    ich wuerds mal damit versuchen das ich in der Interruptroutine nach der Berechnung, einen Interrupt ausloese mit einer hoehren Prioritaet. Da ich sowas noch nie gemacht habe, und auch nicht weiss wofuer das gut ist, kann ich Dir nicht sagen ob mein Vorschlag auch wirklich funktioniert. Wobei ich marvins Vorschlag: Das Rueckpositionieren einfach auszuschalten besser finde, wenn Du es an keiner anderen stelle brauchst (wie z.B. NOT-AUS).


    Gruss Elias

    IF ROBOTER_STEHT AND SPS_VORHANDEN THEN<br />&nbsp; WHILE NOT ROBOTER_LAEUFT<br />&nbsp; &nbsp; &nbsp; $LOOP_MSG[]=&quot;SPS IST SCHULD!&quot;<br />&nbsp; ENDWHILE<br />&nbsp; $LOOP_MSG[]=&quot;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;<br />ENDIF<br /><br />Geld ohne Arbeit! Keine Arbeit ohne Geld!

    Einmal editiert, zuletzt von elias ()

  • Hallo
    Vorerst Vielen Dank für Eure Hilfe :merci:


    Hab was rausgefunden ist zwar ein gebastelt aber was soll’s


    ich fahre in den Schlaufe einfach noch einmal LIN CAD[FI]. Der Roboter fährt zwar immer noch die Rückposition an aber es kommt keine Quitierungsmeldung mehr



    :OLA: :OLA:

  • Hallo,


    bei Druckgussentnahme bewehrte Methoden (weiche Achsen)
    als nachsten Punkt LIN $pos_act fahren - dann wird nicht mehr zurueckpositioniert.


    Gruss Stefan


  • Hallo,


    ich wuerds mal damit versuchen das ich in der Interruptroutine nach der Berechnung, einen Interrupt ausloese mit einer hoehren Prioritaet. Da ich sowas noch nie gemacht habe, und auch nicht weiss wofuer das gut ist, kann ich Dir nicht sagen ob mein Vorschlag auch wirklich funktioniert. Wobei ich marvins Vorschlag: Das Rueckpositionieren einfach auszuschalten besser finde, wenn Du es an keiner anderen stelle brauchst (wie z.B. NOT-AUS).


    Gruss Elias



    Hallo,


    kannst du mir bitte kurz mitteilen, wie das Rückpositionieren ausschalten funktioniert?


    Besten Dank & LG
    Stups

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