Skip to content

Fanuc (Pro)

The Fanuc Interface component allows direct communication between Unity and FANUC industrial robots using the SNPX (Robot Interface / SRTP) protocol. It enables real-time control of robot drives, digital and analog I/O, and access to internal robot variables — supporting use cases like digital twins, simulation, and live operation.

This interface connects Unity to a FANUC controller over TCP/IP (default port 60008), allowing you to:

  • Read/write digital and analog signals
  • Track drive and axis positions

To use the SNPX-based communication, your FANUC controller must support the Robot Interface protocol. This can be configured during workcell creation in ROBOGUIDE.

You must enable one of the following options when setting up your virtual or physical controller:

  • R650 FRA Params:
    • Select “FANUC America Corp.” in the Advanced tab of ROBOGUIDE’s Workcell Wizard (Step 7)
    • Add option R553 – HMI Device SNPX
  • R651 FRL Params:
    • Select “FANUC Ltd.” in the same Advanced tab
    • No additional options required

Also ensure that:

  • TCP port 60008 (Robot IF Server) is open and accessible
  • The controller and Unity application are on the same network or subnet
FieldDescription
ActiveEnables or disables the interface
Is ConnectedShows live connection status with the controller
AddressIP address of the FANUC robot (e.g., 192.168.0.179). For a ROBOGUIDE virtual robot on the same PC use 127.0.0.1
PortTCP port of the Robot IF (SNPX) server. Default 60008. In a ROBOGUIDE multi-robot cell each virtual robot uses an incrementing port (robot 1 = 60008, robot 2 = 60009, …)
DrivesAssign Unity Drive components to robot axes (supports J1–J9)
Num Inputs / OutputsDisplays how many input/output signals are currently active
Thread StatusIndicates the state of the background communication thread
Connect ButtonTriggers the connection process to the controller

Multiple Robots (ROBOGUIDE Multi-Robot Cell)

Section titled “Multiple Robots (ROBOGUIDE Multi-Robot Cell)”

A ROBOGUIDE workcell with several robots on one PC shares a single IP address — each virtual robot gets its own incrementing Robot IF port instead. To simulate such a cell, add one Fanuc Interface per robot and set the Port accordingly:

RobotAddressPort
Robot 1127.0.0.160008
Robot 2127.0.0.160009
Robot 3127.0.0.160010

The exact port of each robot is listed in the services.txt file inside the corresponding robot_1, robot_2, … subfolder of your ROBOGUIDE workcell. Assign each robot’s axis Drive components to the Drives list of its own interface, and make sure SNPX (R553 / R651) is enabled on every virtual controller.

Because ROBOGUIDE and Unity run on the same PC, all communication goes over localhost — no network adapter, DHCP or subnet configuration is required. The 192.168.x.x address shown on the teach pendant is ROBOGUIDE-internal and does not need to match a physical adapter.

The Fanuc Interface uses string-based signal names to map FANUC robot I/O into Unity. These names follow a PREFIX + NUMBER format and are parsed automatically on startup.

Example of a configured digital output DO3

PrefixDirectionDescription
DIInputDevice-level digital inputs
DOOutputDevice-level digital outputs
UIInputUser-defined digital inputs
UOOutputUser-defined digital outputs
RIInputRemote robot digital inputs
ROOutputRemote robot digital outputs
SDIInputSafety digital inputs
SDOOutputSafety digital outputs
WIInputWelding-specific digital inputs
WOOutputWelding-specific digital outputs
AIInputAnalog integer inputs (e.g., sensor values)
AOOutputAnalog integer outputs (e.g., analog actuators)

Examples:

  • DO0 – Digital Output 0
  • UI5 – User Input 5
  • AO3 – Analog Output 3
  • WI2 – Welding Input 2

Signals are case-insensitive in Unity but are documented here in uppercase for clarity.