Software library
Fanuc
Quickly create .NET applications that communicate with your Fanuc industrial robot.
Preview of features
SNPX
SNPX (also known as SRTP/Robotif) allows rapid and structured data communication with the robot.
It is used to read/write the registers, monitor alarms and check the condition of the robot.
// Read a registerPosition posReg1 = robot.Snpx.PositionRegisters.Read(1);float numReg5 = robot.Snpx.NumericRegisters.Read(5);string strReg10 = robot.Snpx.StringRegisters.Read(10);// Write a registerposReg1.CartesianPosition.X = 100;robot.Snpx.PositionRegisters.Write(1, posReg1);robot.Snpx.NumericRegisters.Write(2, 123.45f);robot.Snpx.StringRegisters.Write(3, "Hello, world!");// Read a variableint rmtMaster = robot.Snpx.IntegerSystemVariables.Read("$RMT_MASTER");string lastAlm = robot.Snpx.StringSystemVariables.Read("$ALM_IF.$LAST_ALM");Position cellFloor = robot.Snpx.PositionSystemVariables.Read("$CELL_FLOOR");// Write a variablerobot.Snpx.IntegerSystemVariables.Write("$RMT_MASTER", 1);robot.Snpx.StringSystemVariables.Write("$ALM_IF.$LAST_ALM", "No alarms");robot.Snpx.PositionSystemVariables.Write("$CELL_FLOOR", cellFloor);// Read and Write I/O (SDI,SDO,RDI,RDO,UI,UO,SI,SO,WI,WO,WSI,PMC_K,PMC_R)robot.Snpx.RDO.Write(1, true);ushort ai5 = robot.Snpx.AI.Read(5);// Read and Write analogs (AI,AO,GI,GO,PMC_D)robot.Snpx.AO.Write(2, 5);ushort ao3 = robot.Snpx.AO.Read(3);// Clear alarmsrobot.Snpx.ClearAlarms();
File and decoding
Direct access FTP to the memory of the robot for file transfer, reading variables and the management of the robot state, all in decoded and ready to be used in structured .NET objects.
IOState ioState = robot.Ftp.GetIOState();// Read a variablevar variableFiles = robot.Ftp.GetAllVariables();foreach (var variableFile in variableFiles)foreach (var variable in variableFile.Variables)Console.WriteLine($"{variable.Name} = {variable.Value}");// Read system variable $RMT_MASTERint remoteMode = robot.Ftp.KnownVariableFiles.GetSystemFile().RmtMaster;// Read safety statusSafetyStatus safetyStatus = robot.Ftp.GetSafetyStatus();Console.WriteLine($"Emergency Stop: {safetyStatus.ExternalEStop}");Console.WriteLine($"Teach Pendant Enabled: {safetyStatus.TPEnable}");// Get current position for each arm (Joints, World position of each tool, user frame positions)CurrentPosition currentPosition = robot.Ftp.GetCurrentPosition();// Upload a TP program to the controllerrobot.Ftp.DirectFileHandling.UploadFileToController(@"C:\Programs\MyPrg.tp", "md:/MyPrg.tp");// Download a file from the robotrobot.Ftp.DirectFileHandling.DownloadFileFromController("md:/Backup.va", @"C:\Backup\Backup.va");// Delete a file on the robotrobot.Ftp.DirectFileHandling.DeleteFile("md:/OldProgram.tp");
TELNET
Telnet KCL (Keyboard Command Line) allows you to send commands to control the robot remotely - no additional option is necessary on the controller.
// Reset alarmsrobot.Telnet.Reset();// Run a programrobot.Telnet.Run("MyProgram");robot.Telnet.Pause("MyProgram");robot.Telnet.Hold("MyProgram");robot.Telnet.Continue("MyProgram");robot.Telnet.Abort("MyProgram", force: true);// Set a variablerobot.Telnet.SetVariable("$RMT_MASTER", 1);// Set an output port (example: DOUT port 2 = 0)robot.Telnet.SetPort(KCLPorts.DOUT, 2, 0);// Simulate an input port (example: DIN port 3 = 1)robot.Telnet.Simulate(KCLPorts.DIN, 3, 1);robot.Telnet.Unsimulate(KCLPorts.DIN, 3);
Offline tools
The features without the need for robot allow you to handle standard file formats (variable file, error list, robot status, etc.).
// Parse a variable file and extract a hierarchical list of variablesGenericVariableFile vaFile = FanucFileReaders.VariableReader.ReadFile("C:/path/to/variable.va");foreach (var variable in vaFile.Variables)Console.WriteLine($"{variable.Name} = {variable.Value} [{variable.Type}]");// Edit and regenerate the variable filevaFile.GenerateVa("C:/path/to/variable_modified.va\"");// Parse several types of filesFanucFileReaders.ErrorListReader.ReadFile("C:/path/to/errall.ls");FanucFileReaders.IOStateReader.ReadFile("C:/path/to/iostate.dg");FanucFileReaders.SafetyStatusReader.ReadFile("C:/path/to/safety.dg");FanucFileReaders.CurrentPositionReader.ReadFile("C:/path/to/curpos.dg");
Browse the documentation
Download and test

Windows application example
Allows you to test all the features of the SDK with a simple interface. The example is compiled in "self contained" and "single file" with .NET 8. The application is portable without installation.
By downloading, you accept the general conditions of use:
See terms and conditions
See terms and conditions
Request a quote and order
Most popular
Site license
990 € (EUR) • $1090 (USD)
$
1090
lifetime$
654
for universities (40% discount)Complete and permanent SDK: no recurring subscription is required, the license is yours forever and works in all programming languages for a robot brand.
Can be used only by the organization holding the license, at the postal address indicated.
All team developers will share the same license, regardless of the number of development machine.
Any application developed using the SDK can be delivered to an unlimited number of your customers at no additional cost, regardless of the number of robots to connect.
The license is a kind of password to call in the code that unlocks the features.
No additional software to install.
No USB key.
1 year maintenance included (access to updates)
Contact us for a payment by bank transfer. Once the license of this SDK is purchased, you will receive your license number and your invoice by email.
Source license
9900 € (EUR) • $11 900 (USD)
$
11 900
lifetime$
7140
for universities (40% discount)Complete internal code of the library in C#
Visual Studio solution that includes 110,000 lines of code developed over several years
You can modify this source code and use it in your application, within the limits defined in the general terms of use