Posts by tacheson


    I'm not sure when Mixed Logic came into the FANUC control, but with Mixed logic you can do your first line of code. Mixed logic is the option with the parathesis '()'. Look on the second page of the IF menu. Should look something like IF(...)....I think.

    But, if you dont' have mixed logic, i would do the inverse of what you want and then jump over your DO[1]=True

    1. IF R[1]=/=1 or R[2]=/=1, JMPLBL[100]
    2. DO[1]=ON
    3. LBL[100]

    Good Luck!

    Nation's got a great reply!

    Also, for Joint moves, you can try the MROT function at the end of your position you're moving to. This is Minimum Wrist Rotation. It's a free software option and it doesn't flip the wrist to match the configuration of the Joint position.

    Also, to Nation's point, Joint moves move the robot to that configuration (Turn numbers and also NUT) where a linear point ignores the turn numbers.

    I like Hawke's answer, but I'd add something to it.

    PR[X,3]=PR[X,3]+(Desired distance)

    This is just incase your LPOS position is above the hard-coded value. You don't want to move down.

    Then, depending on how you want to move away from it, use it as a tool offset or a PR offset(user frame).


    If it takes a while to convert a larger file to .csb or that Roboguide crashes, try using the Polygon Reduction tool.

    Close all your windows processes and then only use the tool. Located here: C:\Program Files (x86)\FANUC\ROBOGUIDE\bin\polygonreductionapp.exe


    From error code listing: SRVO-297Improperinputpower(PS)(G:%dA:%d)


    SRVO- 297 Improper input power (G: i A: j) (Explanation) The 6-axis servo amplifier or the power supply(αiPS) has detected the input voltage phase lack.
    (Action 1) Check the input voltage of the controller whether phase is not lack.
    (Action 2) Make sure that the 6-axis servo amplifier CRRA12 and emergency stop board CRRA12 connector are connected tightly. If the power supply(αiPS) is installed, make sure that the power supply(αiPS) CRRA12 connector is connected tightly.
    (Action 3) Measure the secondary voltage between each phase at the main breaker, if phase loss is detected, replace the main breaker. (Action 4) Measure the secondary voltage between each phase at the transformer, if phase loss is detected, replace the transformer. (Action 5) Replace the E-stop unit.
    (Action 6) Replace the 6-axis servo amplifier.
    (Action 7) Replace the power supply(αiPS).

    Did you check each leg of the 480 to verify they are within 5-10% of each other? If you have one bad leg you can get funky issues.


    One option may be - If your MAIN program has in the header the 'ABORT_REQUEST' set to 7, you won't be able to abort it in any way, using cstop or fctn abort all. Look at the .LS program header:

    COMMENT = "Background Progr";
    PROG_SIZE = 438;
    CREATE = DATE 06-09-07 TIME 07:37:29;
    MODIFIED = DATE 06-09-28 TIME 10:34:28;
    FILE_NAME = ;
    VERSION = 0;
    LINE_COUNT = 15;
    MEMORY_SIZE = 882;
    TCD: STACK_SIZE = 0,
    TIME_SLICE = 0,
    BUSY_LAMP_OFF = 1,

    DEFAULT_GROUP = *,*,*,*,*;
    CONTROL_CODE = 00000000 00000000;
    1: LBL[1] ;
    2: ;
    3: WAIT .25(sec) ;

    Make them equal to 0. The only way to edit these is in the LS file.


    Are you referring to a production process cycle time in the Data - Registers screen? If there is some logic in your older systems that set timers and then set the value of those timers to a register, that was all programmed into the robot. Because all programs and processes are different, FANUC only has system timers built in to monitor the life of the mechanical unit of the robot.

    My guess is you'll need to program these in somewhere if whoever programmed it didn't. It's simple logic though that you can toss into your programs.

    ...(Process you want to time)
    R[100:Process Time]=TIMER[1]


    Do you need to cycle power on the controller for the change to $EXTLOG_SIZ? When you say check out the LOGBOOK.DG file in text editor i'm assuming you mean take a backup off the robot onto a USB drive and open it on a computer? Or will this change allow you to look up more alarms in the history section of the controller?

    I believe you do have to cycle power to get it to take effect. Taking an 'All of Above' backup or MD Copy backup will get you these files and you can view them on a PC. Or, if you want to just take a quick glance, just go to the FILE --> Set Device --> MD --> Find the Logbook or file --> Click the view soft F-Key --> Scroll through it right on the teach pendant.

    I also though after posting this, that on newer robots this is an Option i believe that you need to purchase. Its probably only a couple hundred bucks to get the PAC. But on older ones, you could backdoor it.

    If BG Logic isn't available, it is possible to force the program to run when the system does a cold start. Set the system variable $PWR_NORMAL to the name of the program you'd like to execute. However....

    I am not sure that background is what you need. It seems this program may have been executed from a RUN statement (multi-tasking) in a .TP program. Take a look in your programs and see what might be calling or running the code that controls the conveyor.

    Great point! If you're multitasking your conveyor program probably has the header of the program to ignore pause and not have the run light on while it's executing, plus of course not have motion enabled. Then inside the program, there is just an infinite loop. Also, i don't think R30iAs have BG logic...I could be mistaken though and it may just be an option.

    Add this program to your hotstart and cold start in your system settings. I normally make a program called HOTSTART and then run the needed background programs in there. That way the program is always executed whether it's called in the production program or not.


    Hi Stephen!

    Well, first off I'd ask how much experience they have with Bin picking!

    It's huge in automation right now. There are many third party companies that create the software to generate paths for robotic bin picking and they use many different sensors as well. I'm only familiar with FANUC, and they have their own integrated solution to bin picking. It's called the Area Sensor and i'm guessing others have something similar.

    How many different parts are you planning on programming?
    Do you want the integrator to do all the parts? If not, how easy is the programming to add new parts? Some third party solutions allow you add in a model of the part an dgripper and then configure the pick positions that way - it's pretty slick! Where others it's a more of a trial and error setup.
    If you're using magnets to pick the part, can the part have residual magnetism?
    Cycle time, of course, is on the top of the list.
    With 3D printing so readily available, i'd send some parts to the integrator and have them set up a bin picking application with those parts.

    Exciting stuff!


    I'm not sure if this helps or not, but this is the cause and remedy of that alarm. I'd chat with your IT department and see if they have limits or static limits setup.

    I believe this is a FANUC Robot error.

    You get this error if you select a program to background edit that you are already editing in another screen. There are 3 background editing environments. That's why when you select it at the top of the screen, it says "-BCKE3-" or "-BCKE2-" or "-BCKE3-".

    make the display have 3 windows and go to the select screen on each of them and exit whatever one you're stuck in.


    First, I only have access to R-30iB controllers and manuals, so I apologize if this does not work for you.

    I used the Error Severity Table (Under Menu -> Setup). In it, you can choose any error code, then you can change its severity (upward only) and you can change what is done with the error code. All the details are in the HandlingTool Manual in Section 5.10, with the facility codes details in Section A.2.2 (Error Codes and Recovery).

    Great Idea Robo_Eng_13! I do this on all new systems. Set the alarm as No Display or No Log and it won't muddy up your logs.

    You can also change the system variable $EXTLOG_SIZ=1000 instead of 100. This will keep 1000 errors in your ERREXT.LS file in yoru backup. Also, check out the LOGBOOK.DG file, you can open it with a text editor. This shows the screens and what keys were pressed if you really want to do some investigating. I caught a customer messing with the robot after I left one night with the LOGBOOK.

    Hope this helps.


    If you're curious if an I/O is being used in any of the programs, example: it is commented in the I/O list but you don't think you're using it. You can go to the robot home page and use the 'search' function and type in the syntax of the I/O you're looking for. This will search all the .LS programs to see if it is being used. Menu --> 0 --> 8(Browser) --> scroll to bottom of robot home page --> Search --> Program Search --> Type in [DO:8 (example) --> exit keyboard --> click small check box.

    I use this for older robots where things have been modified many times.

    [email protected]

    You can also use these variables to backdoor the CLSKP (Collision Skip, now known as 'Touch Skip') option without getting the PAC (Only $550, but if you're in a jam and need to figure it out asap without waiting for FANUC). But, on newer 8.1 and higher software, it won't work.

    Are you using Simuleasy for a Brake Press tending application? Is it new software or old? We used Simuleasy years ago and I may be able to dig up some manuals. Send me your information and if i can find them i'll send them off to you.

    Other software options are Obelisk and Robowave for offline programming of brake press tending systems. When I was a programmer I was our group leader for the brake press team. Throw the hard questions at me.

    [email protected]

    You can ‘Serialize’ the robot with a backup as stated above. If all your robots are on the network you can use the ‘Robot Neighborhood’.

    Sent from my iPhone using Tapatalk