Auto HOME procedure

  • Hello everyone ,

    I got a question regarding macros working in the background. Basically I made a program on the robot that returns automatically to HOME position if the robot is stopped during process because the client don't want the operators to touch the TP(they want to command it from PLC HMI). My problem is that even though the program is working in the background once it's finished the main program(the one that the robot was using before recalling it to HOME) remains always on the same line and when he gets the start input he continues from the line where he was stopped instead of starting from the begging . Since I don't have a lot of experience with Fanuc my question is , is there a command like DEACTIVATE or INIT so that I can start the process from the begging once the macro finished it's work.

    Thank you in advance!

  • You must turn on C-stop Abort all programs and ask the question at the beginning of your program If UO7 is Off jump recovery or jump home. but be careful you cant always just recover from anywhere. For example, if its a pick and place I would set a register called "recovery pos" to 1 for my pick saying I'm on that half of the machine and have its own recovery to home and I would then do the same for the place instead of setting register to 1 i would set it to 2 so that i know that i am on the other half of the machine. In this recovery program i would set a PR to Lpos then move Lpos up in the Z then make a move from there that way you are clear of any obstacles.

  • Hello Mastro_18 , thank you for replying ,

    right now I am using the PR as my positions for the working program since i need to use 4 different tools depending on the situation (if all grippers are full or no) since i didn't wanted to make more than 130 programs and only PR let's you call a position even if tool and frame are different (since my grippers change configuration on axis 6 for 90 degrees ) , every time a robot passes a PR he sets a value on a GO(example PR1 sets GO[1]=1) and with that I know the last known position that robot passed through so when i call the Macro he checks the GO and with that takes the correct trajectory home . I saw that you wrote to put an IF at the begging of the program but doesn't he checks the IF only when he passes that line? I tried with Conditions but since Fanuc doesn't let you put motions in condition or for that matter even macros with motions (as in my case) I put the macro into the Macro setup page , when i give it CSTOP and simulate the input that I used to activate auto HOME everything it's working as far as the movements goes , but the page in editor that you see is always inside the program where the CSTOP occurred and when I press Start from the HMI the robot continues from the line where it was stopped before. On Comau robots it lets you DEACTIVATE a program so that way i was always able to put a CALL MAIN at the end of auto HOME and the robot would go back to the begging of the MAIN program , that's why I was asking if it's possible to use some similar command on Fanuc since I don't have a lot of experience with him.

  • Tink what maestro wanted to say is:

    Don't use macro for homing. Start main program from beginning. That's done with the cstop signal on uop signals. In configuration of uop signals you can activate the aborting of the current task with the cstop signal.

    Then do the homing at beginning of the main program.

  • If you go to system configure you should see Cstop to abort all programs. I think that is what you are missing. Do you have a program you always run on start up in program select because you will need that if you are aborting all programs or it will run whatever program you left it in.

  • Hello guys ,

    thank you for your replies , I appreciate your help . I've done some test with the things that your wrote and I also found that if I set the variable $shell_start to TRUE every time that i start the cycle the robot will go back to the begging of the MAIN program , and even if that's something I needed I still don't like that now I cannot continue a program even after setting the START FOR CONTINUE ONLY to TRUE. Even though I think that FANUC is one of the best robots around it is still limited in some things. In any case , thank you for your support and have a nice day.

  • You must still not be doing something right. With Fanuc you can easily achieve what you are after.


    First you need to realize there are 2 different start signals, UI[18] = production start. UI[6] = start. When you configure start for continue only, it affects UI[6]. UI[18] is to start from the top of main. What prog select method are you using?


    Your PLC sequence should be as follows for starting at beginning:


    PLC program:

    1. Pulse Cstop .25 sec

    2. Wait .25 sec

    3. Pulse UI[18] Prod start .25 sec



    Robot Main

    1. Call auto home

    2. ...rest of your program


    Additionally in the PLC add a boolean connected to UI hold, UI start And UI reset. Make buttons for them on your HMI, then you can pause, reset, resume.

  • Hello HawkME ,

    thank you for the reply , I managed to solve my problem and I wanted to share the information with everyone that want to use the method that I am using. In the PROG SELECT menu I have :

    1.Program select mode : OTHER

    2.Production start method : OTHER


    In the program select mode the variable $shell_wrk.$cust_name is set to my MAIN program so that every time that the UI[6](START) is on I start from the begging of the MAIN program. Since I said previously that I didn't like that I couldn't CONTINUE from a certain point where the robot stopped during cycle I found also a solution for that . In the variable $shell_wrk there is another variable called $cust_start witch is basically the Start only as CONTINUE so creating a BG Logic where I can see an DI from PLC( in a specific case of course) I set this variable on 1 giving the robot permission to CONTINUE without resetting the MAIN program. the PLC programmer already made the modifications on the Start cycle button so that when I am in HOME he sends me UI[6] witch reset my MAIN program and when the robot is working and stops for a PLC error or any other reason another DI that set my variable $shell_wrk.$cust_start on 1 for CONTINUE cycle.

    In any case I thank you everyone for the support you gave me.

  • Glad you found a solution, but for others that may view this thread in the future, I recommend using Fanucs built in solution of using UI[18] for main production start, and UI[6] for continue only. Then no system variables or BG logic is required.

  • Hello...I'm New here for Fanuc robot...i also want to same go back home trajectory....

    Actually my client want that if my current main program is running nd somewhere he stops the program and from HMI he just push home button ...so my robot should come back safe at home position at any position he stops at main program...can anyone pls share my the idea...or code how to do that with Fanuc robot....


    Thanks in advance for your valuable solutions..

  • There is endless number of strategies of how to bring the robot automatically back home from any position. It also depends on many different things of the application. Just sharing an auto home program won't do the job.

Advertising from our partners