What "Reset execution error signal" is useful for?
in RobotStudio
Hello all,
I was wondering how the system input "Reset execution error signal" is used amd cam be useful.
I thought that when an execution error arises, it was necessary to acknowledge the error using a DI connected to this system input (similarly to what happen when an emergency occurs, when you have to use the system input "Reset emergency stop").
But actually a "Start at Main" already works as acknowledge.
I was wondering how the system input "Reset execution error signal" is used amd cam be useful.
I thought that when an execution error arises, it was necessary to acknowledge the error using a DI connected to this system input (similarly to what happen when an emergency occurs, when you have to use the system input "Reset emergency stop").
But actually a "Start at Main" already works as acknowledge.
Tagged:
0
Comments
-
Start at main could cause a crash midway through the program so if you want to resume without aborting the program this will be useful.Lee Justice0
-
Thank you for the answer.
I still need some explanations, I wrote a simple example to understand better.
Let say that all system input and output are connected to a PLC.
The behaviour I want to obtain is the following: when error (ERR_USER) arises, I want to stop robot motion and program execution and then start it again (with system input "Start") from where it was stopped but only after that the system output "Execution Error" has been reset through system input "Reset execution error signal".
What's the logical sequence of instruction/system input I should use for this?
VAR errnum ERR_USER := 1;
PROC main()!Add your code hereMoveJ p1, v200,fine,tool0\WObj:=wobj0;MoveJ p2, v200,fine,tool0\WObj:=wobj0;MoveJ p3, v200,fine,tool0\WObj:=wobj0;IF DI_UserError = 1 THEN !DI_UserError is only a bit I use to trigger the errorRAISE ERR_USER;
ENDIFERRORIF ERRNO = ERR_USER THENexample := example + 1;ErrLog 4800, "error_1", ERRSTR_EMPTY,ERRSTR_EMPTY,ERRSTR_EMPTY,ERRSTR_EMPTY;ENDIF
Stop;ENDPROCENDMODULE0 -
You are welcome. What is the purpose of this? " example := example + 1;" I don't get it.
Anyway. Your error handler needs to have a way to get back into the routine to resume. What is the course of action do you want to try? Retry, Trynext and so on. In the case of division by zero, it will always error, so a retry will end up exceeding the retry counter. Perhaps you want to set a group output to send the error number to the PLC.Lee Justice0 -
I'm sorry, "example" was just a debug variable I forgot to cancel
I would like to go back to the point where the error occured and to start the execution of the program only after that robot receiveS "Start" system input from PLC
0 -
Since you already have a stop instruction in your error handler, the robot will not resume execution until it gets the start input. To resume from the error, a retry is what you need.Lee Justice0
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)
- 800 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings