Beiträge von Noob

    Vielen Dank, während Du die Antwort geschrieben hast, habe ich meinen Betrag nochmal editiert, wie ich denke, dass eine 3x Schleife aussehen soll.
    Danke für Eure Bemühungen, bin noch nicht ganz so fit im Rapid...
    :danke:

    ok, dann werde ich genauer:


    Es soll etwas gesucht werden, wird duch einen Fehler die Instruktionsabarbeitung fehlerhaft, soll erneut gesucht werden. Das ganze 3x. Wird nach 3x nix gefunden, dann soll eine Meldung ausgebracht werden.
    Was ich nirgends finde ist die Wiederholungschlaufe 3x. hier der Error-Handler:
    Am Anfang wird deklariert:


    VAR robtarget pZaehl;
    VAR num nZaehl;
    VAR bool bSuchenNIO;



    ERROR
    !Suchen wiederholen
    IF ERRNO=ERR_WHLSEARCH AND bSuchenNIO=FALSE THEN
    bSuchenNIO:=TRUE;
    RETRY;
    ELSE
    Message tmGestSuchen;
    ENDIF
    IF ERRNO=erZurHomePos MoveToPos "20VP";
    IF ERRNO=erVakuum THEN
    Incr nVakFehler;
    !Entnahme abbrechen ?
    IF nVakFehler>=nMaxVakFehler THEN
    MoveToPos "20VP";
    Message tmVakuumAbbruch;
    IF OpMode()=OP_MAN_PROG TPReadFK nFKey,"","OK","","","",""\DIBreak:=diIRBzurHome\BreakFlag:=erFehler;
    ELSE
    !Roboter freifahren und Greifen wiederholen
    mv20GP_20FP;
    TRYNEXT;
    ENDIF
    ENDIF
    RAISE;
    ENDPROC


    Wenn es doch 3x versucht werden soll, müßte meiner Meinung nach die Sache so aussehen:
    1. nummerische Var zum Zählen deklarieren und Null-Setzen:


    VAR num nSuchversuch
    clear nSuchversuch


    Dann die Wiederholungschleife im Handler


    ERROR
    !Suchen wiederholen
    IF ERRNO=ERR_WHLSEARCH AND nSuchversuch <=3 THEN
    incr nSuchversuch;
    RETRY;
    ELSE
    Message tmGestSuchen;
    ......

    das ist es ja, im Handbuch hab ich nichts darüber gefunden.
    die Variable wurde nachträglich nur in einem Programm.Mod hinzugefügt.
    Wenn ich am Montag wieder auf der Arbeit bin, schick ich Dir das Modul mal zu.

    Hallo zusammen,


    kann es sein, dass die Variablen bsuchenI.O und bsuchenN.IO systeminterne Features sind, bei Verarbeiten eines ErrorHandlers? wie z.B. errno_signupsearch?
    bei Linearensuchbefehl SearchL....


    PROC GM5


    var=bsuchen
    .
    .
    .
    .
    ERROR
    IF bsuchenniO=true then (do what i want to do)
    else if
    raise;


    die Variable wird am Anfang der Procedure deklariert, aber nirgens einen Wert zugeordnet...nur auf true and false im Errorhandler abgefragt. :nocheck:


    mfg. Noobie *edit: S4c plus*