UnderAutomation
Any question?

[email protected]

Contact us
UnderAutomation
⌘Q
Fanuc SDK documentation
Get started with LabVIEW
Documentation home

Connect to your robot

Learn how to configure connection parameters, enable protocols, and connect to a real Fanuc robot or ROBOGUIDE simulation.

The ConnectionParameters class lets you configure which protocols to enable before connecting to the robot. Each protocol is optional and can be enabled independently.

Quick connection

The simplest way to connect is to pass an IP address directly. This enables only the CGTP protocol by default.

var robot = new FanucRobot();
robot.Connect("192.168.0.1");

Full connection with multiple protocols

To use multiple protocols, create a ConnectionParameters object and enable each protocol you need.

using UnderAutomation.Fanuc;
using UnderAutomation.Fanuc.Common;
public class Connect
{
static void Main()
{
// Create a robot instance
FanucRobot robot = new FanucRobot();
// Configure connection parameters
ConnectionParameters parameters = new ConnectionParameters("192.168.0.1");
/**/
// Enable Telnet KCL for remote commands
parameters.Telnet.Enable = true;
parameters.Telnet.TelnetKclPassword = "your_password";
// Enable FTP for file and variable access
parameters.Ftp.Enable = true;
parameters.Ftp.FtpUser = "";
parameters.Ftp.FtpPassword = "";
// Enable SNPX for high-speed register and I/O access
parameters.Snpx.Enable = true;
// Enable CGTP Web Server (enabled by default)
parameters.Cgtp.Enable = true;
// Enable RMI for remote motion commands
parameters.Rmi.Enable = true;
// Connect to the robot
robot.Connect(parameters);
// Check connection status
bool isConnected = robot.Enabled;
// Disconnect when done
robot.Disconnect();
/**/
}
}

Connect to ROBOGUIDE

Instead of an IP address, you can pass the path to a ROBOGUIDE workcell robot folder. The SDK reads the services.txt file in that folder to discover the TCP ports used by the simulator.

var parameters = new ConnectionParameters(@"C:\Users\you\Documents\My Workcells\CRX 10iA L\Robot_1");
parameters.Telnet.Enable = true;
parameters.Ftp.Enable = true;
robot.Connect(parameters);

Connection options

When PingBeforeConnect is true (default), the SDK sends a ping to the robot before attempting any connection. If the robot does not respond, an exception is thrown immediately. Set it to false when connecting to ROBOGUIDE or when ICMP is blocked on your network.

Set the Language property to match your controller's language so that strings are decoded correctly.

// Ping before connecting (default: true)
parameters.PingBeforeConnect = true;
// Set to false for ROBOGUIDE or when ICMP is blocked
// Controller language for correct string decoding
parameters.Language = Languages.English; // default (ASCII)
// parameters.Language = Languages.Japanese; // Shift-JIS
// parameters.Language = Languages.Chinese; // GB2312

Standalone protocol clients

Each protocol can also be used independently without FanucRobot. This is useful when you only need a single protocol:

// Standalone SNPX client
var snpx = new SnpxClient();
snpx.Connect("192.168.0.1");
// Standalone Telnet client
var telnet = new TelnetClient();
telnet.Connect("192.168.0.1", "telnet_password");
// Standalone CGTP client
var cgtp = new CgtpClient();
cgtp.Connect("192.168.0.1");

Disconnect

Always disconnect when you are done to release resources.

robot.Disconnect();

API reference

Members of ConnectionParameters :
public class ConnectionParameters {
// Instanciate a new connection parameters
public ConnectionParameters()
// Instanciate a new connection parameters with a specified address
public ConnectionParameters(string address)
// Address of the robot (IP, host name, or path to ROBOGUIDE project folder)
public string Address { get; set; }
// Parameters for CGTP Web Server (HTTP-based COMET RPC interface)
public CgtpConnectParameters Cgtp { get; set; }
// Access controller internal memory to read variables, IO, positions, diagnosis, ...
public FtpConnectParameters Ftp { get; set; }
// Controller language (default: English)
public Languages Language { get; set; }
// Send a ping command before initializing any connections
public bool PingBeforeConnect { get; set; }
// Parameters for RMI (Remote Motion Interface)
public RmiConnectParameters Rmi { get; set; }
// Read and write IOs, read and clear alarms, read current program tasks
public SnpxConnectParameters Snpx { get; set; }
// Parameters for Stream Motion (J519 option) - real-time streaming motion control over UDP
public StreamMotionConnectParameters StreamMotion { get; set; }
// Sends commands to the robot for remote control
public TelnetConnectParameters Telnet { get; set; }
}
Members of Common.TelnetConnectParameters :
public class TelnetConnectParameters : TelnetConnectParametersBase {
public TelnetConnectParameters()
// Should use this service (default: false)
public bool Enable { get; set; }
}
Members of Common.FtpConnectParameters :
public class FtpConnectParameters : FtpConnectParametersBase {
public FtpConnectParameters()
// Should enable memory access for this connection (default: true)
public bool Enable { get; set; }
}
Members of Common.SnpxConnectParameters :
public class SnpxConnectParameters : SnpxConnectParametersBase {
public SnpxConnectParameters()
// Should enable SNPX for this connection (default: false)
public bool Enable { get; set; }
}
Members of Common.CgtpConnectParameters :
public class CgtpConnectParameters : CgtpConnectParametersBase {
public CgtpConnectParameters()
// Should enable CGTP Web Server for this connection (default: true)
public bool Enable { get; set; }
}
Members of Common.RmiConnectParameters :
public class RmiConnectParameters : RmiConnectParametersBase {
public RmiConnectParameters()
// Should enable RMI for this connection (default: false)
public bool Enable { get; set; }
}
Members of Common.StreamMotionConnectParameters :
public class StreamMotionConnectParameters : StreamMotionConnectParametersBase {
public StreamMotionConnectParameters()
// Should enable Stream Motion for this connection (default: false)
public bool Enable { get; set; }
// IP address of the robot for standalone Stream Motion connections
public string Ip { get; set; }
}

Easily integrate Universal Robots, Fanuc, Yaskawa, ABB or Staubli robots into your .NET, Python, LabVIEW or Matlab applications

UnderAutomation
Contact usLegal

© All rights reserved.