Posts by 00Red

    You can also run that code (shown below) in a background task and it'll provide the DCS code in case you are unable to run a program because of a DCS error.

    R[1] = $DCS_CODE

    This is an old thread, but I found it in April of 2023 with a google search for the same issue, so here's how I resolved it. Note: my robot never showed which axis had the overrun issue, but this resolved the issue. In my case the robot had been moved to a new piece of equipment and was probably not delicately handled.

    17-4-5. Overrun release

    The robot is provided with software that monitors the operating range and stops the robot operation when an axis reaches

    the soft-limit. However, if an arm moves beyond its soft-limit, the robot detects the overrun error of the arm electrically

    and shut off the servo power for safe operation.

    To restart the robot, it is necessary to disable the overrun monitor temporary and correct the error condition. It is called

    "Overrun release".

    Overrun release procedure

    During the overrun release procedure, the robot arm moves at low speed.

    Work with caution and pay attention to the direction of the movement of the axis.

    Turn OFF the power to the controller.

    Open the front panel of the controller to access the overrun release switch located on the safety card (ZUEP5702) (right

    side P.C. Board).

    Then switch it to "OVERRUN RELEASE" (down) side.

    Close the front panel of the controller, and place the mode

    select switch on the teach pendant in "Teach" position,

    and then turn ON the power.

    Then the overrun release mode screen appears

    indicating the overrun axis.

    Turn ON the servo power and manually move the overrun

    axis back to within its soft limit.

    (At that time the robot travel speed is controlled to 0.5%

    or below.)

    Turn OFF the power to the controller.

    Open the front panel of the controller, and then switch the overrun release switch to "OPERATE" (up) side.

    Close the front panel of the controller.


    I agree with Janusz robotyk on decreasing the acceleration using an ACC value well below the default of 100. An ACC of 65 will still give smooth transition between points without noticeable stop or delay before moving to the next point. ACC acts a little differently when the robot is setup for Cycle Time Priority vs Path Priority. With Cycle Time Priority, an ACC of 65 can really smooth out some transitions and rotations that can cause the arm to shudder or reorient too quickly.

    If rotation is majority the motion is, you might wan to consider using a Joint motion saved as a joint orientation. That way you guarantee the orientation of all axis. I would use the ACC command to slow the rotation. Sounds like you aren't moving very far, less than 1 mm, so a linear motion vs joint motion shouldn't be an issue. If you have a linear motion saved as a Cartesian orientation, axis 6 may rotate in unpredictable ways.

    i tried that but could not find the option to write

    R[20]= $DCS_CODE Any Help on figuring out how to write that in a TP program would also be greatful


    Attached is a zip file with a single TP program in it that will load the $DCS_CODE into R[20].




    Please don't take this the wrong way, but have you written a Fanuc teach pendant program before? If not, I can probably help you.

    Edit: I think I know what you're asking now! Unfortunately, my RoboGuide license isn't working currently, so I'm going to be working from memory a bit here.

    In your TP program:


    7-Miscellaneous (number might change)

    7-Parameter name

    2- ...=$... (This allows a System Variable to typed in)

    1 R[ ]

    On screen you should now have:


    Change the R[...] to 20

    Change the $... to DCS_Code using the keyboard pop up.

    This will give you the R[20]=$DCS_Code

    Is this an existing machine that you're having new issues with or a machine you're trying to configure from scratch?

    If you're seeing other IO that matches in both the PLC and Robot, then you're network is fine. You might not have something physically met to run the robot in auto. Teach pendant OFF, controller key in AUTO, gates and safety circuits satisfied, possibly robot at home. Post a picture of the teach pendant so we can see what the status indicators are.

    While you can do a connection to a robot to pull and push programs from RoboGuide, better practice is to get familiar with the teach pendant and learn to do a backup that way. Also, once you've modified a program in RoboGuide (or created a new one) save only that program to the USB stick and load that into the robot. If it's an existing program, you will be prompted to overwrite the existing program. File manipulation in the Fanuc pendant is a little wonky in my opinion.

    Another option is to use a program like CoreFTP to backup the robot. Nice part about CoreFTP (and others) is you automatically get the .LS files that can be opened in a text editor. CoreFTP can be used to load programs into the robot too. Nice tool to have if your robot is on a network.

    -Note: .LS files can be obtained by doing a COPY instead of a backup, but a Copy isn't as straight forward as a backup. I can send you instructions if you're in need.

    .LS files can be modified in a text editor, but cannot be loaded back into newer robots unless you have the ASCII option. RoboGuide can convert an .LS to a .TP (Teach Pendant) file also.

    Do yourself a favor and spend as much time on a real pendant as possible. RoboGuide is great and all, but nothing beats time with a pendant.



    hi, would you guys be willing to reiterate a bit here on password removal? I purchased a used fanuc M16i robot RJ3iC controller and cannot seem to master, change variables, load files or anything other than jog due to the password set for installer. Thanks

    MAGPRO, you still need help with this?

    This is indeed unbelievable. This easy and obvious way to get the DCS code makes it a bit useless.

    Yes and no. I get where you're coming from and weighed a few things before posting.

    Any safety device can be bypassed if you know what you are doing. A couple jumper wires can bypass an entire safety system and a gate switch key can be left in a door. Someone can write the DCS Code on the side of the teach pendant or controller and render it useless.

    Fanuc can unlock your forgotten DCS Code, but it's going to cost you time and money. A machine builder might chose to not give you the code despite being paid for the job.

    Lost DCS Codes have been a problem and folks have been downloading .PC files from unknown sources to solve their problem. I appreciate those that made those .PC files, it's good stuff. In this age of digital ransoms, I wanted to give an option that just about anyone could implement without fear of damaging their robot.



    Welcome to the forum. I cannot believe that works!

    How did you ever figure that out? And more importantly, what other mystical secrets do you know?

    It took some doing. I spent some time looking into the .PC programs others had posted. I'm not a fan of blindly running someone else's code on a production robot, so I used RoboGuide to verify they worked before reverse engineering them. Once I found the System Variable (in this case hidden system variable), I set it equal to a register and tried it. Decided to post it because not everyone has access to RoboGuide to test the validity of code. Someone could write some nasty stuff and claim it was legit program. Being the keeper of knowledge and not sharing it doesn't make you special, I like to help others and enable them to do it themselves.

    Will Fanuc change it, probably at some point.

    What else have I done...that's not a short thing to answer and I'm not trying to brag here. I have a TP setup program that sets the common system variables I use. This helps me get a robot setup and talking to a PLC in less than 10 minutes.

    Do yourselves a favor and create a TP program, chose an open register (in this case Register 1 was open) and put in the following code:

    R[1] = $DCS_CODE

    Run that line and look up the value in your Data Registers.