2. Installation

2.1. Setting up the FANUC robot for usage with the voraus.core

Warning

When using, operating and interacting with a FANUC robot, always obey to the instructions of the original FANUC manual.

The following sections assume that the FANUC robot is set up and can be moved with the teach pendant and the default FANUC cabinet software. If the robot is not set up yet, please follow the official FANUC documentation.

In order to connect the voraus.core to a FANUC system, the FANUC cabinet has to be prepared first.

2.1.1. Checking installed software options

The voraus.core needs the activated FANUC software module R912 - Remote Motion Interface to communicate with the control cabinet. In order to check that it is activated, interact with the teach pendant:

  1. Press: MENU0: NEXT4: STATUS2: Version ID.

  2. Press: NEXTORDER FI (F3).

  3. Options are listed, click YES for further displaying until you find R912 Remote Motion (Fig. 1).

Check for Remote Motion Interface

Fig. 1 Check for Remote Motion Interface

If you do not find R912 Remote Motion, the voraus.core cannot connect successfully. Please contact the FANUC support to buy or install the required software options.

2.1.2. Connecting the robot to the network

The FANUC control cabinet has to be connected to an industrial PC running the voraus.core. This could either be a voraus.ipc with a preinstalled voraus.core or your custom system running the voraus.core.

Warning

Please familiarize yourself with the safety instructions in the FANUC manual. Beware of electric shock. Shut down the robot and ground the control cabinet prior to opening it.

Open the control cabinet and connect the voraus.ipc via Ethernet with port 1 (CD38A) inside the cabinet. Port 1 is marked with the orange cable in Fig. 2.

FANUC controller cabinet

Fig. 2 FANUC controller cabinet

The network connection has to be configured. Start the robot and navigate on the teach pendant to the network settings via:

  • MENU6: SETUP0: NEXT0: NEXT1: Host CommTCP/IPENTER.

Then configure the settings for port 1 according to your network setup. In case you use the voraus.ipc the router IP address has to be 192.168.0.1. For use with a different configuration please contact the voraus support. Fig. 3 shows an example configuration.

Menu for host communication settings

Fig. 3 Menu for host communication settings

2.1.3. Switching to the right operating mode

Since the voraus.core is an external control for the FANUC robot, it can only take control of the robot, if the cabinet is switched to the automatic mode. Hence, instructions can no longer be input via the teach pendant. Switch of the teach pendant by turning the operating mode switch shown in Fig. 4. If the teach pendant displays options to switch the operating mode, select AUTO and enter the PIN. The default PIN is 1111.

Switch on Teach Pendant for toggling between manual and automatic mode

Fig. 4 Switch for toggling between manual and automatic mode

Some FANUC robots may have a key-switch at the cabinet. If there was no option to choose the AUTO mode on the screen, turn the key-switch at the cabinet to AUTO (Fig. 5).

Key-switch for toggling between manual and automatic mode

Fig. 5 Key-switch for toggling between manual and automatic mode

Before starting the voraus.core, the FANUC robot should not display any errors. If the teach pendant displays errors, reset them by pressing RESET on the teach pendant. Make sure, the emergency stop is unlocked. The voraus.core can not take control of the robot if the emergency stop on the teach pendant is pressed.

Configuring Automatic Mode to Conform to Manual Mode Limitations according to EN ISO 10218-1

EN ISO 10218-1 defines, that a limited move set with reduced speeds of 250 mm/s shall be used when jogging, teaching, programming and verifying robot programs. The FANUC control cabinet implements an operation mode T1 which conforms to these requirements. However, as previously described, the voraus.core can only take control of the robot, if the cabinet is switched to the automatic mode AUTO.

In order to still conform to EN ISO 10218-1 when teaching robot programs with the voraus.core, the settings of the AUTO mode have to be manually configured to dynamically change the limitations to T1 behavior. The emulated T1 behavior is subsequently called ET1. An external input, e.g. a key switch, or a virtual setting on the controller can then be used to switch between true AUTO mode and ET1. In the following example a virtual setting is used.

To set up ET1 mode, create two SIR (Safe Internal Relay) variables in the safety system. Navigate on the teach pendant via MENU0: NEXT6: SYSTEM8: DCS1 Safe I/O Status:. Then press ENTER and select F2 DATA5: SIR. Name SIR1 Automatic Mode and SIR2 Movement Allowed as shown in Fig. 6.

Assigning names for SIR

Fig. 6 Assigning names for SIR

Which signals are used to change the variables is configured in the DCS menu 2 Safe I/O connect. Fig. 7 shows the settings to use. The status SIR[1] - Automatic Mode is changed manually in this example and no input is connected to the cabinet. If an input is used, map an SSI (Safe System Input) with the matching port your switch is connected to.

The status SIR[2] - Movement Allowed combines an enabling device with the current mode SIR[1] - Automatic Mode. It is possible to use the enabling device of the FANUC teach pendant. This input can be found at SSI[5]. If an external enabling device is used, map an SSI with the matching port your switch is connected to.

Safe IO connect for teach pendant ED

Fig. 7 Safe IO connect for teach pendant ED

The variables SIR[1] - Automatic Mode and SIR[2] - Movement Allowed can now be used to activate and deactivate limitations. Two limitations are needed. On the teach pendant as before navigate to the DCS menu. Switch to menu entry “6 Cart. speed check” and select the configuration to modify with the [DETAIL] button.

The first configuration shown in Fig. 8 relates to standstill monitoring and defines a speed limit of zero. This means, if the robot moves, an SS1 stop is performed immediately. Take care to change the fields Disabling input to SIR[2] and Stop type to Stop Category 1.

Cartesian speed check for standstill monitoring

Fig. 8 Cartesian speed check for standstill monitoring

The second configuration shown in Fig. 9 defines a speed limit of 250 mm/s according to the manual mode at reduced speed in EN ISO 10218-1. If the robot movement exceeds this speed limit, an SS1 stop is performed immediately. Take care to change the fields Disabling input to SIR[1] and Stop type to Stop Catgeory 1 and Limit to 250.

Cartesian speed check for T1 speed limit

Fig. 9 Cartesian speed check for T1 speed limit

Warning

Test the application of your settings before using the robot.

The setup of ET1 is now complete. Switch to ET1 when programming your application by setting SIR[1] - Automatic Mode to Off (2 Safe I/O connectSIR[1]Input1OFF). If you want to leave ET1 and switch back to the true AUTO mode, switch SIR[1] - Automatic Mode to On.

2.2. Setting up the voraus.runtime

The voraus.core is running on the voraus.runtime. See voraus.runtime to configure and start the runtime.

2.2.1. Configure your runtime with a compose file

The configuration of the voraus.core is defined in a compose file. Portainer has support for compose files in the form of a Portainer Stack, which is a convenient wrapper around (Docker) compose files, allowing to work with them via a GUI. Once the compose file is uploaded to Portainer, it can be edited by opening the stack and switching to the Editor tab. Any changes must be applied by clicking the Update the stack button at the bottom of the Editor tab. The following file shows an example compose file (docker-compose_voraus.core****.yaml) for a FANUC robot.

Listing 1 Example compose file for a FANUC robot.
 1version: "3.3"
 2
 3services:
 4  codemeter:
 5    hostname: codemeter
 6    image: artifactory.vorausrobotik.com/docker/voraus-codemeter:<codemeter-image-tag>
 7    environment:
 8      # Use the CodeMeter runtime service on the host machine.
 9      LICENSE_SERVER: "host.docker.internal"
10    extra_hosts:
11      - "host.docker.internal:host-gateway"
12    restart: unless-stopped
13
14  voraus-core:
15    image: artifactory.vorausrobotik.com/docker/voraus-core:<core-image-tag>
16
17    environment:
18      # Robot control backend
19      VORAUS__components__voraus-robot-control__enabled: False
20      VORAUS__components__voraus-robot-control-py__enabled: True
21
22      # Robot specification
23      VORAUS__robot__robotType: "FANUC_M_10ID_16S"
24
25      # FANUC variables
26      FANUC_ROBOT: "SIX_AXIS"
27      FANUC_ADDRESS: "192.168.0.1"
28      RMI_PORT: 16001
29
30      # Licensing
31      CODEMETER_HOST: codemeter
32      VORAUS__components__voraus-license-handler__enabled: True
33      VORAUS_LICENSE_HANDLER__API_URL: http://host.docker.internal:22358
34
35    extra_hosts:
36      - "host.docker.internal:host-gateway"
37
38    ports:
39      # Port for the voraus.operator webapp.
40      # You can change it if the port 8080 isn't available,
41      # but make sure that you are changing it in later steps as well.
42      - 8080:80
43      # Port for the voraus license handler
44      - 8081:8081
45
46    restart: on-failure
47
48    volumes:
49      - "voraus_data_volume:/root/data/voraus/"
50      - "voraus_log_volume:/var/log/voraus/"
51
52volumes:
53  voraus_data_volume:
54    driver: local
55  voraus_log_volume:
56    driver: local

Most parts of the configuration are static and need no editing with the following exceptions.

  • Replace <codemeter-image-tag> and <core-image-tag> with the corresponding docker image tags.

  • Based on the robot model, please configure the following variables:

    Table 1 Robot Type Configuration

    Robot Model

    VORAUS__robot__robotType

    FANUC_ROBOT

    FANUC M-10iD/16S

    FANUC_M_10ID_16S

    SIX_AXIS

    FANUC SR-3iA

    FANUC_SR_3IA

    SCARA

Additionally, set the FANUC_ADDRESS to the IP address of the FANUC controller and set the RMI_PORT to the configured port number for the RMI communication (default is 16001).

  • voraus.apps must be activated in the environment section (line 17) by setting a variable in the pattern:

    17environment:
    18
    19  # Apps:
    20  VORAUS__components__{app_name}__enabled: True
    

    Their default port can be adjusted with

    VORAUS__components__{plugin_name}__bindPort: {new_bind_port}
    

    This is only necessary if the default port of an app is already occupied by another.

    The following apps exist:

    Table 2 App Definition

    App Name

    Default Port

    Description

    voraus-roboception-app

    5000

    Integration of Roboception cameras and detection algorithms.

  • The port section of the stack configuration defines the mapping of the voraus.core ports to the ports of the host system. A port mapping consists of the following pattern:

    - {host-port}:{container_port}
    

    Any port of the container can be mapped to a free port of the host system.

    By default, the port of the voraus.operator is mapped from port 80 to port 8080. If port 8080 is already blocked by another service, simply adjust the mapping.

    Currently, all ports of the enabled apps must be mapped to the host system with the same port. E.g. in order to add a mapping for the voraus-roboception-app, add the following line: - 5000:5000.

2.3. Start the voraus.core

Your setup is now ready to use. You can now start and stop the voraus.core using the voraus.runtime.

2.4. License Activation

Activate a voraus.core software license by following the steps of the chapter License Activation.