Posts by DaveP

    It shouldn't have anything to do with being quicker. A linear move will move in a Straight line from where it currently is to where the next point is. That straight line must have been wrapping up the arm somehow and causing a limit on one of the axes. Or it was trying to move through itself, but your X,Y values don't seem like that was happening.

    WARNING Check with Fanuc Robotics before attempting to power your robot with any type of inverter or phase converter.


    I don't think you can use a 3 phase inverter to supply power to a robot controller. My understanding is that the inverter you listed is to power a 3 phase motor only. The inverter will supply a voltage and current to the motor and expects a certain load from the motor during acceleration and under normal load. A robot controller does not operate like a 3 phase motor.


    A Phase Converter seems like a better fit for your application. It will convert single phase to 3 phase and doesn't have the advanced functionality of the inverter of accel and decel, etc. You will need to size the phase converter based on the manufacturers recommendation for your load. Again, check with Fanuc to make sure you will not damage the robot.

    We set most of our robots up to resume with the UI[6] Start input. Go to Menu, Next, System, Config and set START FOR CONTINUE ONLY to FALSE and CSTOPI FOR ABORT to TRUE. This should allow UI[6] to resume the program without going back to the main program. We use the UI[18] PROD START input to return to the top of the main program.

    You can set registers equal to the values, then pass the registers to the OFFSET program. I tried using PR[12,1] in the CALL but the build failed.


    R[11] = PR[12,1]
    R[12] = PR[12,2]
    R[13] = PR[12,3]


    CALL OFFSET(112, R[11], R[12], R[13])

    Couple of our tech's replaced a M-20iA Joint 5/6 wrist assembly last week. (this robot has the through the wrist tube) We let it sit over the weekend and we are seeing some oil weeping out where the assembly is bolted to the Joint 4 casting (Fanuc Doc. says Joint 3). They cleaned the surfaces and applied the Loctite as instructed from the manual. Let it sit overnight before adding oil, etc. We didn't get to the exercise portion where we move the axes and then check the pressure. It only moved from the Mastering position down to the home position.


    Are there any tips/tricks for performing this task? We are going to redo it tomorrow and was hoping one of the Fanuc expert tech's here had some insights. Thanks.

    The Ethernet/IP scanner option is when the robot is the "master" and will communicate with remote Ethernet/IP devices "slaves". You will set up the EIP nodes in the robot. The Ethernet/IP adapter option is used when the robot will be a slave on an Ethernet/IP LAN. You would use the adapter option for both robots if the Compactlogix PLC is the Ethernet/IP master. Also, don't confuse the Ethernet/IP options with the Ethernet used in a regular network, they are different. Ethernet/IP is a fieldbus protocol.

    You can use an indirect reference for the JMP to make it very easy to jump to the LBL. The CALL would be the same as rafahil suggested


    BROL2 program
    ! TEST WELDING PROG
    CALL BROL1(1) ---> or 2 or 3 etc


    Make sure you BROL1 program has a JMP to the end of the program after the moves so it doesn't continue on to the next LBL


    BROL1 program


    JMP LBL[AR[1]] Jumps to the label number in AR[1]


    LBL[1]
    L P[1] ...
    L P[2] ...
    JMP LBL[999]


    LBL[2]
    ...
    ...
    JMP LBL[999]

    You can have the tool changer program set a register with the desired tool number. Then have a background task constantly compare that register to the active UTOOL using the variable mentioned above. $MNUTOOLNUM If they don't match then set it back to the register value of the desired tool.

    I have a similar situation with multiple mills serviced by a Top Loader. Each mill can be offline at any time and we want the system to utilize each mill equally. My solution is pretty long but it has worked well for several years. It is based on using registers for each machine that increment each time a part is loaded into a machine (balance count register). All the registers increment whenever a part is loaded and the count is reset for the mill that was loaded. I also have a priority register that can be set to a specific mill if I want to load that mill next.


    The main program calls a sub program that looks to see which machines are online and ready and then sets/resets bits based on that status for each mill. Then it looks to see if the priority register is set to a specific mill and then if yes, it sets the "balance" register to the priority number and exits that program. If no priority, it looks to see which mill has the highest count and then sets the balance register to that mill and exits the program. The main program then calls the mill program based on the value of the balance register. The balance count for that mill is then set to zero.


    This allows any mill to be offline for any period of time and then come back online and the robot can load it immediately if the count is the highest because the count has been incrementing each time a part was loaded into any machine. It will cycle through all the machines before going back to the same machine again.

    I attached 3 images from my GE Proficy software. They show the driver in the HMI that has the robot IP address and then the details for the HMI variable that connects to the Fanuc DI[1] and R[1]. Maybe this will help with your setup. The DI and DO should work without additional setup in the robot but the registers need the additional setup below.


    You have to change the $SNPX_ASG variable to allow the HMI to see the robot registers. The settings below allow my HMI to see 600 robot registers using REAL numbers. (It takes 2 HMI variables for each robot register, that is why the size is 1200. this is for the GE Quickpanel+ HMI)


    $SNPX_ASG[1]
    1 $ADDRESS 1
    2 $SIZE 1200
    3 $VAR_NAME 'R[1]'
    4 $MULTIPLY 0.000

    The World Frame is User Frame 0 and that should not change. Are you looking at the current position of the robot relative to World? You will see W, P, & R values change when you move the arm but this is the position of the end effector and not the World frame itself. The World and User Frames are not based off the tool frames. You can see the User Frames by going to Menu, Setup, Frames, then press F3 for OTHER and select 3 USER FRAME.

Advertising from our partners