Hallo,
Ich will einen Punkt mit einem Analogen Messtaster anfahren um die Höhe eines Fräsers zu ermitteln.
Wenn das Analogsignal einen bestimmten Wert unterschreitet soll der Roboter stehen bleiben.
Habe dazu einen Interrupt deklariert:
PROC rInitIntBruch()
!Interrupt Kollision
IDelete intDamCtrlColl_R1;
CONNECT intDamCtrlColl_R1 WITH int_DamCtrlColl_Cancel_R1;
ISignalAI\Single, ai_Bruchkontrolle_R1, AIO_BELOW_LOW, 3, 1, 0, intDamCtrlColl_R1;
! Interrupt Bruchkollision deaktivieren
ISleep intDamCtrlColl_R1;
ENDPROC
TRAP int_DamCtrlColl_Cancel_R1
! Interrupt Bruchkollision deaktivieren
ISleep intDamCtrlColl_R1;
! Bewegung Stoppen
StopMove \Quick;
!geplannt Bahn loeschen
ClearPath;
!rGripperClose 2;
! Fehlermeldung -> Interrupt ausgelöst
rError 0,17,\stMsg:=stABB_SPS_17;
Waittime 1;
! Aktuelle Position speichern
pInterrupt:=CRobT(\Tool:=tBruchKontroll \WObj:=wStatAktuell);
! Warten auf Abbruch durch Bediener
WaitUntil diProgSkip_R1=high;
! Bewegung Starten
StartMove;
SetDO do_Breakcontroll_Gr1_R1, low;
! Roboter Freifahren
IF DOutput(do_Space_08_R1) = 0 THEN
MoveL RelTool (pInterrupt,0,0,-100\Rx:=0\Ry:=0\Rz:=0), vProdMin, fine, tBruchKontroll\WObj:=wStatAktuell;
ENDIF
! Zur Vorposition Fahren
MoveJ vpOP80_00,vProdMin,fine,tGripper1;
rCheckActPrePos;
EXITCYCLE;
ENDTRAP
Doch leider funktioniert das Ganze nur Sporadisch.
Manchmal funktioniert es zweimal hintereinander aber beim Dritten Mal geht es wieder nicht.
Kann mir da vielleicht jemand einen Tip geben was ich da falsch mache.