Posts by tacheson

    Invest in the password option. It’s cheap. ~$550.00.

    There is a signature time stamp variable for dcs in the dcs_chg1 (or subsequent) Ls files.

    Sent from my iPhone using Tapatalk

    The mechanical unit(robot) has very little to do with the software. So, doing the unit start won’t change the software when you choose the other robot option.

    I agree it may be easy to write macros, but the weave functionality will be difficult.

    I’ve never done it, but I’ve always wanted to try, to take an image of a different robot and dump it onto one. Of course you will lose EVERYTHING on your M10. You also won’t be able to get software upgrades or PACs after this.

    Another way would be to get a software return from Fanuc. Usually around $600.00.


    Sent from my iPhone using Tapatalk

    It depends on the software. A = axis for newer robots, but the best bet it to look in the manual. It could be multiple axes. Ex. J2 and 3 won’t show up as 23 it shows a 3.

    This is all if it’s the same as a axis limit which I’m guessing is true.

    Sent from my iPhone using Tapatalk

    All of the Pallet tool data is stored in Karel variables. If you have Roboguide it's easy to see. Or, highlight the .PC file and press enter on it in the select menu. Then open the register page and change the type to Karel.

    In order to modify these dynamically, I believe you have to use a Karel program.

    ABC means Arm Bending Control. I received all of these errors when I was using collision skip programming without purchasing the option. For me, this was a BIG SOFTWARE ISSUE! I'm not positive, but it could also mean that you're having mechanical problems. But, the likelyhood of 3 axes going out at the same time is low. But, this robot the brake circuit may be for those 3 axes and not all 6.

    It could also be bad payload information.

    Reload the robot library. This will reload all of the servo parameters. Controlled start --> Menu --> Maintenance --> Run through the robot axes setup. Either choose manual or auto.

    If this doesn't work, you will want to try reloading software entirely. But, remember, after you reload software, don't dump back in your old System variable files. Anything with Sys***.sv don't load.

    How do you have your DCS signals tied to each robot? Are the two robots working in the space?

    Do you have IO running back and forth between the two robots? If you have an IO module for a physical start button you can map that one start button to both robots, or pass it through one robot to the other to start it.

    OOOO! Have a wait signal for the opposite robot 'running' signal. This way if you don't have a UOP, you can walk over and start robot 1 program, it will get to the point and wait for Robot 2 running signal to be on. You can have the same logic in the opposite robot so it doesn't matter which one you start first. This is of course if you actually need them to run at exactly the same time. Example if you wanted them to dance together and do the tango. :dance: :dance2:

    I don't think I'm helping.

    If it runs fine when the robot warms up, after it's been running a bit and the servos and grease are warm, then you should make a warm up program that you execute at the beginning of the day.

    Just a program that exercises the joints slowly, then speed it up more and more until it's warm. 10-15 minutes motion program? We were using this for a palletizer in a freezer. If we ran it without warming it up, we'd get all sorts of servo issues.

    I'm surprised that FANUC said its just a normal issue and 'Deal with it' without offering a possible solution. Some of the TSL guys are just manual readers and don't know the ins an outs. Best to ask something they won't know so it goes up a level.

    Agreed...FTP Client. Easy to 'DEL *.TP'

    It may not let you delete some .TP files though.

    Make sure you have FTP unlocked in your HTTP settings.

    129: --eg:HTTP 1=iPendant Unlock ;
    130: --eg:HTTP 2=Karel Unlock (Comment Tool) ;
    131: --eg:HTTP 3=KCL Unlock (Comment Tool) ;
    132: --eg:HTTP 4=Vision Setup ;
    133: --eg:Access from Menu-Setup-HostComm-HTTP Screen ;
    134: --eg:-------------------------- ;
    135: $HTTP_AUTH[1].$TYPE=3 ;
    136: $HTTP_AUTH[2].$TYPE=3 ;
    137: $HTTP_AUTH[3].$TYPE=3 ;
    138: $HTTP_AUTH[4].$TYPE=3 ;

    Change the configuration of your point from NUT to FUT, or play around with the letters until it works. Most likely only N and F. This is only for points that the configuration is cartesian (XYZWPR).

    To access these, highlight the point number P[2:Home]
    Press the F5 for Position.
    A new screen with the position of that point comes up
    Press the Config key to access the turn numbers and the configuration letters.

    The turn numbers. If an axis is at 10 degrees or 370 degrees, its actually at the same location. This is what the turn numbers are.
    1st number is J1, For when you pass 180 degrees.
    2nd is for J4
    3rd is for J6

    The configuration letters are how the arm gets to that position.
    NUT - FDB
    1st letter. Wrist motion. N=Not Flipped. F=Flipped. Example. N = J5 at 20 degrees and J4 at 0 degrees. F = J5 at -20 degrees J4 at 180 degrees.
    2nd letter.'s all listed out here:…w-updown-elbow-frontback/

    Hold F1 and F5 (Or Prev and Next) keys while you turn the disconnect power on the robot to get into the controlled start or BIOS. If you have the controller software card in the BIOS you can try to reload the software. Or, if you don't you can try to reload the 'existing personality', which reloads software. Keep in mind, this will wipe the controller clean of all programs and settings.

    A cold start is a good place to start. Either select it from the controlled start menu, or hold the shift and reset keys down on the pendant while turning the disconnect power on, or hold the reset button on the front of the SOP (system operator panel) down while turning the disconnect power on.

    Good Luck! It does sound like you may need a new pendant. Or at least reload firmware.


    6: --eg:Initialize Strobe ;
    7: !-------------------------------- ;
    8: IF (F[42:OFF:Flasher .2sec]=OFF),F[43:OFF:Flasher .5sec]=PULSE,1.0sec ;
    9: IF (F[43:OFF:Flasher .5sec]=OFF),F[42:OFF:Flasher .2sec]=PULSE,1.0sec ;
    10: IF ($PWRUP_DELAY.$SY_READY=0),F[42:OFF:Flasher .2sec]=(ON) ;

    This always helped me. These two flags pulse back and forth. Also, you don't have to worry about initializing it because it triggers when the sysvar PWRUP_DELAY is complete.

    I always use these flashers, and maybe more than just two, to indicate to operators what's happening if I only have a stack light with the standard 3 colors (Green=Running, Red=Faulted, Amber=Hold). Then I can flash the yellow or other colors for other action items.

    Example below. When the inbound stack of parts is running out, i would indicate to the fork truck operator to prepare a new skid of parts.

    1: !-------------------------------- ;
    2: !Background Logic ;
    3: !-------------------------------- ;
    4: ;
    5: ;
    6: --eg:Initialize Strobe ;
    7: !-------------------------------- ;
    8: IF (F[42:OFF:Flasher .2sec]=OFF),F[43:OFF:Flasher .5sec]=PULSE,1.0sec ;
    9: IF (F[43:OFF:Flasher .5sec]=OFF),F[42:OFF:Flasher .2sec]=PULSE,1.0sec ;
    10: IF ($PWRUP_DELAY.$SY_READY=0),F[42:OFF:Flasher .2sec]=(ON) ;
    11: ;
    12: --eg:Flash Lights to Indicate to Operator Inspect Part is ready ;
    13: !-------------------------------- ;
    14: IF (F[15:OFF:Low Stack SrchVis]=ON),UO[3:OFF:Prg running]=(F[42:OFF:Flasher .2sec]) ;
    15: IF (F[15:OFF:Low Stack SrchVis]=ON),UO[5:OFF:Motion held]=(F[42:OFF:Flasher .2sec]) ;
    16: IF (F[15:OFF:Low Stack SrchVis]=ON),UO[6:ON :Fault]=(F[42:OFF:Flasher .2sec]) ;
    17: ;
    18: --eg:If UO is on or if Flasher is on Turn light On ;
    19: !-------------------------------- ;
    20: IF ((F[15:OFF:Low Stack SrchVis]=ON AND F[42:OFF:Flasher .2sec]=ON) OR UO[3:OFF:Prg running]=ON),DO[1017:OFF:Intrcnct EXGOP]=(ON) ;
    21: IF (F[15:OFF:Low Stack SrchVis]=OFF AND UO[3:OFF:Prg running]=OFF),DO[1017:OFF:Intrcnct EXGOP]=(OFF) ;
    22: ;
    23: IF ((F[15:OFF:Low Stack SrchVis]=ON AND F[42:OFF:Flasher .2sec]=ON) OR UO[5:OFF:Motion held]=ON),DO[1018:OFF:Intrcnct EMGTP]=(ON) ;
    24: IF (F[15:OFF:Low Stack SrchVis]=OFF AND UO[5:OFF:Motion held]=OFF),DO[1018:OFF:Intrcnct EMGTP]=(OFF) ;
    25: ;
    26: IF ((F[15:OFF:Low Stack SrchVis]=ON AND F[42:OFF:Flasher .2sec]=ON) OR UO[6:ON :Fault]=ON),DO[1019:OFF:Intrcnct EMGEX]=(ON) ;
    27: IF (F[15:OFF:Low Stack SrchVis]=OFF AND UO[3:OFF:Prg running]=OFF),DO[1019:OFF:Intrcnct EMGEX]=(OFF) ;

    Also, mapping your UOPs to virtual bits is slick too. (Rack 0, Slot 0, Start 1-1000) Then, you can have ALL THE POWER!

    Separate the motion groups. That way the DCS positions only stay with the robot (grp 1). If you're making complicated multi-group motions, like moving the arm while you're moving the AGV then it'll be a bit tricky.

    When you say AGV, do you mean a standalone self contained unit? Or do you mean an RTU, Robot Track Unit?

    If it's an RTU, then you can setup DCS in the standard way, when the RTU is part of motion group 1 as a 7th axis.

    Tyler Acheson

    Fluke 179. It's worth the money because you can bash it around in your toolbox and not have to worry about it breaking. When I went to school I remember my teacher, who was in the field for many years prior to becoming an instructor, told the class to buy a Fluke. I raised my little Radio Shack meter and said, "Is this good enough?". He took the meter he was holding and tossed it across the room and said, "Buy a Fluke, and have the piece of mind it will always work."

    Plus...When it comes to working with 480V or high amperages, I want to always check for voltage, and KNOW there's not voltage there, before I touch a screwdriver to something.

    For the rest of the tools, socket allens make installs and service go quickly. Insulated screwdrivers...again, piece of mind. A nice magnetic flashlight for working in electrical cabinets. A NICE pair of wire strippers and ferrule crimpers. A banner test box with 24v to test sensors. Carolina Steel Toe Met Guard boots! Other random tools that you would most likely have in your garage. A Pelican 1560 case with canvas tool bags.

    Tyler Acheson

    An easy way (if your anal like me and want things working in the positive direction) to change the encoder counts so that they count in the opposite direction is to swap around the a and a' wires, or the b and b' wires, but not both as then you'll be back where you started. I know the Fanuc encoders have a molded connector so this isn't always possible so in that case you simply switch the positive/negative in your encoder setup. But then you have to deal with it counting the wrong direction (even though it will work correctly).

    Good Luck!

    I would avoid changing this if you have a status HMI screen or anything that is always on the screen. I did this for a customer and coming back after a few months I noticed that the status screen was starting to burn in. If anything I would just increase the time a bit. Not turn it off entirely.

    Also, if you don't ever want your operators to jog the robot you can disable it all together with:

    Minimum: 0 Maximum: 5 Default: 0 KCL/Data: RW Program: RW UIF: RW CRTL: RW Data Type: INTEGER Memory: CMOS
    Name: Teach Pendant Motion Enable
    Description: Disables jogging if set to 1.
    Power Up: Changes take effect immediately.

    I haven't found a sysvar that limits touching up without using password protection option or write protecting your programs.

    You can also create it in a TP program and execute it for some system variables that are write protect. Use the register instruction, select *=*, select param name, type the system variable, on the other side of the = make it a constant and type in your value.

    OR go to the system variables in a controlled start.