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...
Beiträge von Noob
-
-
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;
ENDPROCWenn 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 nSuchversuchDann 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.
mfg. Noobie *edit: S4c plus*