Fanuc robots

Fanuc robots

RoboDK supports all Fanuc robot controllers since RJ2, including RJ3, R-30iA and R-30iB. This documentation is based on the R-30iA Fanuc controller.

The following sections demonstrate typical operations using a Fanuc robot teach pendant to prepare a new program in RoboDK and transfer it to the robot.

Note: It is recommended to request the ASCII Upload option on the Fanuc robot controller to easily transfer offline programs without any issues, as explained in the section comparing LS and TP programs.

Transfer a robot program

We must follow these steps to load a program from a USB disk:

1.    Select MenuFile

2.    Select UtilitiesSet deviceUSB

3.    Select DIR

4.    Select the TP or LS program file from the USB disk (BALLBARTEST.TP for example)     
This will automatically save the file to the FR memory of the controller

5.    Select the program in the FR memory and select LOAD (screen button)

Robots Fanuc - Image 1Robots Fanuc - Image 2

Important: The ASCII Upload option is required for offline programming. This allows loading LS files directly to the controller. Alternatively, LS programs (ASCII files) can be compiled to TP programs (binary files) from the PC using Fanuc’s WinOLPC tools (MakeTP).

Important: The linear speed of programs created with RoboDK is defined by the register R[10] by default. If the speed is not set in the program it must be set manually. In that case:        
Select: DATATypeRegister, R[10]=50 (for a speed of 50 mm/s)

Start a robot program

Follow these steps to start a robot program:

1.    Select FCN (teach pendant button)➔Abort all

2.    Select SELECT (teach pendant button)

3.    Select the program (BALLBARTEST for example)

4.    Press and hold the Deadman switch

5.    Select RESET. All alarms should disappear.

6.    Select and hold the SHIFT button of the teach

7.    Select FWD (button on the teach pendant)

Robots Fanuc - Image 3

Retrieving robot joints

To retrieve the current robot joints we must follow these steps:

1.    Select POSN (button in the teach pendant) to see the current robot position

2.    Select COORD (button in the teach pendant) to select the joins mode

Robots Fanuc - Image 4Robots Fanuc - Image 5


Retrieving the TCP

The following steps allow creating or modifying robot tools (TCP, also known as UTOOL in Fanuc robot programming):

1.    Select MENU➔Setup➔Frames

2.    Select a tool, modify it or read the X,Y,Z coordinates

Robots Fanuc - Image 6Robots Fanuc - Image 7Robots Fanuc - Image 8


RoboDK driver for Fanuc

Robot drivers provide an alternative to Offline Programming (where a program is generated, then, transferred to the robot and executed). With robot drivers, it is possible to run a simulation directly on the robot (Online Programming). More information available in the Robot Drivers section.

A connection between RoboDK and the Fanuc robot can be established to move the robot automatically from a connected PC using RoboDK. This allows using the RoboDK Run on robot option for online programming and debugging. The connection can be established through a standard Ethernet connection (TCP/IP).

Important: This mode of operation requires the Fanuc software option User Socket Messaging and PC Interface.

Follow these steps to set up the RoboDK driver for Fanuc:

1.    We must first transfer the following files (these files may be provided with this document):

a.    DRIVERRDK_S3.PC Main program that manages the communication through S3 (socket communication port number 3).         
This program must be started to establish a communication with RoboDK.

b.    GO_MJ.TP

c.     GO_ML.TP

d.    GO_MC.TP

Follow these steps on the robot teach pendant to prepare the communication port between a Fanuc robot and RoboDK:

2.    Select Menu-Setup-Host comm-[show]-Servers-Select 3-Select “S3”-Enter.

a.    Set Protocol to SM

b.    If multiple ports are available: Set Port to P3 (or the corresponding port).

c.     Set Inactivity Timeout to 9999

3.    Select Menu-Next-System-Variables.

a.    Select $HOSTS_CFG

b.    Select Number 3

c.     Set $SERVER_PORT to 2000          

4.    Back to the previous menu:   
Select Menu-setup-host comm-[show]-Servers-3 S3-enter

a.    Set Startup state to START

b.    Set Current state to STARTED:       
To do so, select ACTION-DEFINE, then ACTION-START

The port 2000 is used as default for both RoboDK and Fanuc. The port in section 2.c can be different but the same port needs to be specified in RoboDK (“Robot port” field).


Program Compilation (LS vs. TP)

This section explains the difference between Fanuc LS and TP program files and how to automatically compile programs for Fanuc robots using RoboDK.

A binary file is required to run robot programs on Fanuc robots (TP, also known as TPP). Programs for Fanuc robots generated by offline programming software (such as RoboDK) are in LS format (ASCII, text-readable and not compiled). There are two options to convert LS robot programs to TP programs:

1.    Have the ASCII Upload software option on the robot. This option might be available on the robot already. The best way to check if this option is available is to provide an LS file to the robot and it should be automatically converted to a TP file. For example, place the file on the FR disk and select LOAD on the teach pendant.

2.    Compile the program using the WinOLPC tools from Roboguide. In this case, the same computer where RoboDK is installed can compile the LS program automatically using the “maketp.exe” compiler tool from Fanuc. This command requires a « robot.ini » file. This file can be generated with the setrobot.exe utility from WinOLPC if Roboguide was installed and a work station was saved on the computer (“Work Cell”).

With RoboDK it is possible to obtain TP programs automatically right after an LS program is generated. RoboDK manages the WinOLPC tools automatically to be able to compile LS ASCII programs into TP binary programs.

These are the steps that RoboDK follows right after an LS program is generated (using the default post processor):

1.    The following screen appears by default after generating an LS program. It is possible to select the robot from a Roboguide “Work Cell” or just not to compile the program. If “No” is selected, the last “robot.ini” file will be used. If the “robot.ini” file does not exist, RoboDK will automatically run “setrobot.exe” to generate the “robot.ini” file.

Robots Fanuc - Image 9

2.    The executable maketp.exe is used to generate the TP program.

3.    If the TP file or the robot.ini file can’t be generated, a Robot not set message such as the following will appear.

Robots Fanuc - Image 10

If this message is displayed it is likely that the read/write access is limited for the default WinOLPC folder. It could also be that Roboguide has not properly been installed or that a “Work Cell” was never generated in Roboguide.

One way of solving the access rights issues is to manually execute the setrobot.exe as administrator:

1.    Open windows explorer and navigate to the WinOLPC installation folder:

C:\Program Files (x86)\FANUC\WinOLPC\bin

2.    Right click Run as administrator

3.    Select the robot Work Cell (a Roboguide WorkCell is required)

Robots Fanuc - Image 11

Alternatively, the contents on the following folder can be copied from the default folder:

C:\Program Files (x86)\FANUC\WinOLPC\bin

to the folder:


Other post processors might behave differently, compiling the program directly if Fanuc WinOLPC tools are available on the computer. To select a different post processor, for example, to support Fanuc RJ3 controllers:

1.    Right click the robot

2.    Select Select Post Processor

3.    Select Fanuc RJ3

4.    Regenerate the program (F6)

Robots Fanuc - Image 12

Tip: More information available in the Post Processors section.

As shown in the following image. This allows generating the robot.ini file in the same folder where the executable maketp.exe remains. This file is required to compile the programs. It is also important to save the Roboguide Work Cell on a folder readable by all users that must compile programs.

Robots Fanuc - Image 13

Once the files have been placed on the right folder, it is possible to test the compilation by selecting Set Fanuc Robot, as shown in the following image (menu: ToolsOptionsProgram).

Note: It is preferable to respect the compilator version but not mandatory. The compilation should work if the virtual WorkCell robot and the real robot have the same number of axes and same configuration in terms of options. Once you have a robot.ini file it is possible to use maketp.exe without the need of using setrobot.exe every time you change your robot.

Robots Fanuc - Image 14

It is possible to define in this window what registers will be used by the default post processor to generate Fanuc robot programs.

Alternatively, custom post processors can be used to better customize all these operations. Two custom post processor are provided with the default RoboDK package for Fanuc robots (called Fanuc_R30iA and Fanuc_RJ3).

RoboDK post processors for Fanuc robots support using 6 axis robots synchronized with external axes such as turntables or linear rails.

Note: More information about customizing post processors is available in the Post Processors section.