Check Position after Stop
Comments
-
Moved to RobotWare forum.
Henrik Berlin
ABB0 -
I'm also interested in this. Maybe this thread [1] can help you (and me :-D) but I haven't tried yet.0
-
Good morning to Everybody,
I have tried this procedure inserted in the Main:PROC StopCiclo()
!-------------------------------------------------------------
!--- ROUTINE DI STOP CICLO TRAMITE EVENT -----
!-------- Gestito con Event STOP Controller --------
!-------------------------------------------------------------
! Memorizza Posizione in Giunti
! Solo in ModalitA? AUTO
TEST OpMode()
CASE OP_Auto:
StopMove;
jStop := CJointT();
ENDTEST
!
ENDPROCRecalling from "Control panel Configuration Controller Event Routine Stop & QStop" the aforesaid Routine, succeeds in memorizing the position of the robot in the moment in which he stops.
To check to the I Start or Reboot of the robot that the position has remained the same one to the moment in which is stopped, call from "Control panel Configuration Controller Event Routine Start & Restart" the following procedure:PROC RestartCiclo()
VAR jointtarget jActPos;
!-------------------------------------------------------------
!-- ROUTINE DI RESTART CICLO TRAMITE EVENT --
!------ Gestito con Event RESTART Controller ------
!-------------------------------------------------------------
!
Evento := TRUE;
CheckActualPos;
!
IF DI_PLC_Richiesta_Aborto_Ciclo = 1 THEN
!
StopMove;
ClearPath;
StartMove;
ExitCycle;
!
ELSE
StartMove;
ENDIF
!
ENDPROC
where the routine "CheckActualPos" it is the following
PROC CheckActualPos()
VAR jointtarget jActPos;
!
IF DOutput(DO10_1) = 0 AND DOutput(DO10_2) = 0 THEN
!
! Solo in ModalitA? AUTO
TEST OpMode()
CASE OP_Auto:
! Recupera posizione attuale in Giunti
jActPos:= CJointT();
!
TPWrite "entra";
!
IF (Abs(jActPos.robax.rax_1) - Abs(jStop.robax.rax_1)) > 0.2 THEN
GOTO ErroreAsse;
ENDIF
IF (Abs(jActPos.robax.rax_2) - Abs(jStop.robax.rax_2)) > 0.2 THEN
GOTO ErroreAsse;
ENDIF
IF (Abs(jActPos.robax.rax_3) - Abs(jStop.robax.rax_3)) > 0.2 THEN
GOTO ErroreAsse;
ENDIF
IF Abs(jActPos.robax.rax_4) - Abs(jStop.robax.rax_4) > 0.2 THEN
GOTO ErroreAsse;
ENDIF
IF Abs(jActPos.robax.rax_5) - Abs(jStop.robax.rax_5) > 0.2 THEN
GOTO ErroreAsse;
ENDIF
IF Abs(jActPos.robax.rax_6) - Abs(jStop.robax.rax_6) > 0.2 THEN
GOTO ErroreAsse;
ELSE
GOTO NoErrore;
ENDIF
ErroreAsse:
!
Esito := GestioneErrori(6);
ExitCycle;
NoErrore:
!
ENDTEST
!
ENDIF
!
ENDPROC
Verifying to move only also in manual after the Stop an axle more of 0.2, doesn't go to error!!!
Does someone know how to tell me where I am being wrong?
Thanks to Everybody.0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 316 IRC5
- 61 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 801 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings