Beiträge von 20sot01

    Hallo,


    ich versuche in einem Testprogramm den Roboter zu verfahren und schließlich an einem bestimmten Punkt (P2_Int) die Interrrupt-Routune aufzurufen.


    Folgenden Programm-Code habe ich benutzt:


    MODULE Jog100


    PERS robtarget Home:=[[350.99,0,709.10],[0,0,1,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    PERS jointtarget P1:=[[-30,90,-86.25,0,-20,-90],[9E+09,9E+09,9E+09,9E+09,9E+09,0]];

    PERS robtarget P2_Int:=[[0.035877694,781.83645161,440.987125876],[0.799948505,-0.600068649,0.000064832,0.00002816],[0,0,-1,3],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

    PERS jointtarget P3:=[[130,90,-86.25,0,-20,-90],[9E+09,9E+09,9E+09,9E+09,9E+09,0]];

    VAR num X:=1;

    VAR triggdata triggcurrpos;

    VAR intnum int1;



    PROC main()


    SetDO P_Int, 0;

    IDELETE int1;

    CONNECT int1 WITH Cycletime;

    ISignalDO p_int, 1, int1;

    AccSet 50, 100; !Beschleunigung auf 50% setzen


    Jog;



    ENDPROC



    PROC Jog ()


    WHILE X=1 DO


    MoveJ Home,vmax,fine,tool0;

    MoveAbsJ P1,vmax,fine,tool0;

    TriggIO triggcurrpos, 0,\DOp:=P_Int , 1; !Signal P_Int auf 1 setzen

    TriggJ P2_Int, vmax, triggcurrpos, z10, tool0;

    MoveAbsJ P3, vmax, fine, tool0;

    MoveJ Home,vmax,fine,tool0;


    ENDWHILE


    ENDPROC






    TRAP Cycletime


    TPWRITE "Interrupt wurde aufgerufen!";


    ENDTRAP



    ENDMODULE





    Dabei konnte ich über die Beobachtungsfunktion in Robot Studio sehen , dass das Signal P_Int auf 1 gesprungen ist, sobald der Roboter an Punkt P2_Int angekommen ist. Aber anstatt in die Interrupt-Routine Cycletime zu springen, ist das Programm chronologisch weiter abgelaufen.

    Jetzt stellt sich die Frage: Woran liegt es, dass das Programm nicht abgebrochen wird?


    Vielen Dank für Eure Hilfe.


    Gruß, 20sot01