UnderAutomation
    • Home page
  • Products
    • Universal Robots SDK
    • Fanuc SDK
      • Overview
      • Download
      • Documentation
    • Yaskawa SDK
    • Staubli SDK
    • Quote • Order
    • License
Any question?

[email protected]

Contact us
UnderAutomation
  • Home page
  • Products
      • Overview
      • Download
      • Documentation
      • Overview
      • Download
      • Documentation
      • Overview
      • Download
      • Documentation
      • Overview
      • Download
      • Documentation
  • Quote • Order
  • Contact us
⌘Q

Fanuc SDK

1/0
GitHub stars
1090 (EUR) • 1290 (USD)

$

1290

lifetime

$

774

for universities (40% discount)

Quickly create .NET applications that communicate with your Fanuc industrial robot.


OrderRequest a quote

.NET

Python

LabVIEW

See terms and conditions
Plug & Play

Connect your robot in just a few minutes. No license manager to install, no USB key. Only reference the library.

No plugins to install on the robot

Use of network protocols provided as standard by the robot controller.
Karel ROS

30-day trial

Try it free for 30 days, no commitment, no registration required

Pay once, use forever

Perpetual license, no subscription required, regardless of the number of robots, developers, or redistributed software

1

Feature overview

Remote commands

Telnet KCL (Keyboard Command Line) allows you to send commands to control the robot remotely - no additional option is necessary on the controller.
// Reset alarms
robot.Telnet.Reset();
// Run a program
robot.Telnet.Run("MyProgram");
robot.Telnet.Pause("MyProgram");
robot.Telnet.Hold("MyProgram");
robot.Telnet.Continue("MyProgram");
robot.Telnet.Abort("MyProgram", force: true);
// Set a variable
robot.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);

High-speed data reading and writing

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 register
Position posReg1 = robot.Snpx.PositionRegisters.Read(1);
float numReg5 = robot.Snpx.NumericRegisters.Read(5);
string strReg10 = robot.Snpx.StringRegisters.Read(10);
// Write a register
posReg1.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 variable
int 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 system variable
robot.Snpx.IntegerSystemVariables.Write("$RMT_MASTER", 1);
robot.Snpx.StringSystemVariables.Write("$ALM_IF.$LAST_ALM", "No alarms");
robot.Snpx.PositionSystemVariables.Write("$CELL_FLOOR", cellFloor);
// Write a Karel program variable
robot.Snpx.IntegerSystemVariables.Write("$[KarelProgram]KarelVariable", 1);
// 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 alarms
robot.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 variable
var 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_MASTER
int remoteMode = robot.Ftp.KnownVariableFiles.GetSystemFile().RmtMaster;
// Read safety status
SafetyStatus 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 controller
robot.Ftp.DirectFileHandling.UploadFileToController(@"C:\Programs\MyPrg.tp", "md:/MyPrg.tp");
// Download a file from the robot
robot.Ftp.DirectFileHandling.DownloadFileFromController("md:/Backup.va", @"C:\Backup\Backup.va");
// Delete a file on the robot
robot.Ftp.DirectFileHandling.DeleteFile("md:/OldProgram.tp");

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 variables
GenericVariableFile 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 file
vaFile.GenerateVa("C:/path/to/variable_modified.va\"");
// Parse several types of files
FanucFileReaders.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");
2

Browse the documentation

Browse the documentation

The documentation allows you to quickly start developing with the library. The same functionality is available in all supported languages.

Getting started with .NET

Code your application in C# or VB with this 100% managed library, without dependencies and available on NuGet.org in the version and architecture of your choice (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...)

Get started with Python

Quickly develop a program in Python that communicates with your robot using this library. It is available on PyPI.

Getting started with LabVIEW

Equip your LabVIEW VIs with a communication with your robot.

3

Download and test

Download via NUGET
Download via NUGET

Easily add this SDK to your Visual Studio project via the Nuget package manager.

​
See on Nuget
Examples on GitHub
Examples on GitHub

The sources of examples of use of this SDK are available on Github

​
See on Github
Windows application example
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
UnderAutomation.Fanuc.Showcase.Forms.exe (139 MB)
LabVIEW library and sample app
LabVIEW library and sample app
​
See on GithubUnderAutomation.Fanuc.lvlib
4

Request a quote and order

Pricing

Libraries can be downloaded for free and can be tested for 30 days. After this period, you can ask us to extend the trial period, or buy the license that suits you best: site (obscured binary only) or source (source code). After purchasing, you have a one -year maintenance period, giving you priority access to the support and the possibility of updating. When you buy a license to use, it is linked to a robot brand, you can use it forever, without recurring fee, regardless of the number of robot, developer or software that you redistribute to your customers. If you are a distributor and wish to offer your customers one of our products, please contact us to discuss special conditions and prices.

Most popular

Site license

1290 (EUR) • 1290 (USD)

$

1290

lifetime

$

774

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.
There are no internal sources; only the obfuscated DLL is provided.
Buy now

Source license

7740 (EUR) • 7740 (USD)

$

7740

lifetime

$

4644

for universities (40% discount)

Complete internal code of the library in C#
Visual Studio solution that includes thousands of 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
Buy now

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

UnderAutomation
Contact usLegal
Products
Universal Robots SDKFanuc SDKYaskawa SDKStaubli SDK
enEnglish
frFrançais
deDeutsch
esEspañol
zh中文
ja日本語
ko한국어

© All rights reserved.