INTERRUPT Programmierung für Anfänger

  • DANKE SJX, hat sehr gut funktioniert mit dem Entfernen der INI-Falte.


    nun häge ich im UP Heimfahrt() und bekomme die Fehlermeldung $POS_RET Wert ungültig.
    mein Code dazu:


    $TOOL = tool_data[1]
    $LOAD = load_data[1]
    $BASE = base_data[2]
    $IPO_MODE = #BASE ;robotergefuehrtes Werkzeug
    $VEL_AXIS[1] = 030 ;Geschwindigkeit Achse 1 in %
    $VEL_AXIS[2] = 030 ;Geschwindigkeit Achse 2 in %
    $VEL_AXIS[3] = 030 ;Geschwindigkeit Achse 3 in %
    $VEL_AXIS[4] = 030 ;Geschwindigkeit Achse 4 in %
    $VEL_AXIS[5] = 030 ;Geschwindigkeit Achse 5 in %
    $VEL_AXIS[6] = 030 ;Geschwindigkeit Achse 6 in %
    $ACC_AXIS[1] = 100 ;Beschleunigung Achse 1 in m/s*s
    $ACC_AXIS[2] = 100 ;Beschleunigung Achse 2 in m/s*s
    $ACC_AXIS[3] = 100 ;Beschleunigung Achse 3 in m/s*s
    $ACC_AXIS[4] = 100 ;Beschleunigung Achse 4 in m/s*s
    $ACC_AXIS[5] = 100 ;Beschleunigung Achse 5 in m/s*s
    $ACC_AXIS[6] = 100 ;Beschleunigung Achse 6 in m/s*s
    $APO.CDIS = 000.0 ;Ueberschleifdistanz in mm
    PTP $POS_RET
    PTP $POS_INT


    Kann es sein, das ich die Systemvariable $POS_RET erst in eine von mir deklarierte Variable übertragen muss?
    etwa so:


    DECL E6POS meine_POS_RET
    meine_POS_RET = $POS_RET
    PTP meine_POS_RET

  • Schritt für Schritt zum Roboterprofi!
  • Ich möchte selber lösen:


    in der Config.dat
    DECL E6POS meine_POS_RET
    DECL E6POS meine_POS_INT


    das zusätzliche Unterprogramm (bei mir Abbruch ( ))
    DEF Abbruch ( )
    INTERRUPT OFF 81
    WAIT sec 0.012
    brake
    meine_POS_RET = $POS_RET
    meine_POS_INT = $POS_INT
    resume
    END


    im Heimfahr-Unterprogramm
    PTP meine_POS_RET
    PTP meine_POS_INT



    :danke: :danke: :danke: :danke: :danke: :danke:
    an alle die mitgeholfen haben

  • SJX hat definitiv recht. Der INI Fold muss da raus.



    Gesendet von meinem iPhone mit Tapatalk


    Ups, hast ja schon längst gemacht.


    Ich würde nach dem BRAKE noch WAIT FOR $ROB_STOPPED scheiben

    Einmal editiert, zuletzt von Eddi33 ()

  • Hallo zusammen,

    habe auch folgendes Problem, sobald in meinem Programm ein Fehler vorliegt möchte ich automatisch nach dem setzten eines Einganges ein Unterprogramm starten um zur Startposition zurückzukehren, ich glaube man könnte das am besten mit einem Interrupt im cell lösen!!

    Leider habe ich noch nie damit gearbeit, kann mir jemand weiterhelfen!

    Mit den Infos im Handbuch komme ich nicht weiter!!!

    Wo füge ich den Interrupt am besten hinzu und wie breche ich das aktuelle Programm ab, welches gerade abgearbeitet wird???


    Der aktuelle Ablauf im Cell:


    LOOP



    $out[289] = false

    braketestreq()


    wait for (($out[252] == true) or ($out[241] == true))

    masrefreq()



    P00 (#EXT_PGNO,#PGNO_GET,DMY[],0 )

    SWITCH PGNO ; Select with Programnumber


    CASE 1

    ;nur starten wenn in Startpos

    wait for $out[252] == true

    P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request

    part1 ()


    CASE 2

    ;nur starten wenn in Startpos

    wait for $out[252] == true

    P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request

    part2 ( ) ; Call User-Program


    CASE 3

    ;nur starten wenn in Startpos

    wait for $out[252] == true

    P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request

    part3 ( ) ; Call User-Program



    CASE 4

    ;nur starten wenn in Startpos

    wait for $out[252] == true

    P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request

    part4 ( ) ; Call User-Program




    CASE 98

    ;nur starten wenn in Startpos

    wait for $out[252] == true

    P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request

    servicepos ( ) ; Call User-Program


    CASE 97

    ;nur starten wenn in Servicepos

    wait for $out[241] == true

    P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request

    startpos ( ) ; Call User-Program


    DEFAULT

    P00 (#EXT_PGNO,#PGNO_FAULT,DMY[],0 )


    ENDSWITCH


    ENDLOOP

    END

  • Zuerst muss ein Programm erstellt werden, mit dem der Roboter sicher in die Startposition zurückkehren kann ... von überall ... kollisionsfrei

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