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:
Press: MENU → 0: NEXT → 4: STATUS → 2: Version ID.
Press: NEXT → ORDER FI (F3).
Options are listed, click YES for further displaying until you find R912 Remote Motion (Fig. 1).
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.
The network connection has to be configured. Start the robot and navigate on the teach pendant to the network settings via:
MENU → 6: SETUP → 0: NEXT → 0: NEXT → 1: Host Comm → TCP/IP → ENTER.
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.
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.
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).
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 MENU → 0: NEXT → 6: SYSTEM → 8: DCS → 1 Safe I/O Status:. Then press ENTER and select F2 DATA → 5: SIR. Name SIR1 Automatic Mode and SIR2 Movement Allowed as shown in Fig. 6.
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.
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.
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.
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 connect → SIR[1] → Input1 → OFF). 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.
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:
Robot Model
VORAUS__robot__robotType
FANUC_ROBOT
FANUC M-10iD/16S
FANUC_M_10ID_16S
SIX_AXIS
FANUC M-20iD/25
FANUC_M_20ID_25
SIX_AXIS
FANUC SR-3iA
FANUC_SR_3IA
SCARA
Note
A manual reload of the voraus.operator in the browser is necessary, if the page is already loaded. The updated configuration of the docker-compose file like the new VORAUS__robot__robotType will only be applied after a page refresh.
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:
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.