Fanuc SDKSteuern Sie Fanuc-Roboter aus Ihrer eigenen Software
Erstellen Sie schnell Anwendungen in .NET, Python oder LabVIEW, die mit Ihrem Fanuc-Industrieroboter kommunizieren. Eine fertige Softwarebibliothek: Ihr PC spricht über das Netzwerkkabel mit dem Roboter.
Ab 1100 € / $1300, einmalige Zahlung
Matlab
1// dotnet add package UnderAutomation.Fanuc2using UnderAutomation.Fanuc;34var robot = new FanucRobot();5robot.Connect("192.168.0.1");67var position = robot.Cgtp.ReadCartesianPosition();8robot.Cgtp.WriteVariable("$RMT_MASTER", 1);9robot.Cgtp.RunProgram("MyProgram");
Was Sie bekommen
Plug & Play
Verbinden Sie Ihren Roboter in nur wenigen Minuten. Kein zu installierender Lizenzmanager, kein USB-Stick. Verweisen Sie nur auf die Bibliothek.
Keine Plugins für den Roboter zu installieren
Verwendung von Netzwerkprotokollen, die vom Robotercontroller als Standard bereitgestellt werden.
30-tägige Testversion
Versuchen Sie es 30 Tage lang kostenlos, keine Verpflichtung, keine Registrierung erforderlich
Einmal bezahlen, für immer benutzen
Unbefristete Lizenz, kein Abonnement erforderlich, unabhängig von der Anzahl der Roboter, Entwickler oder weiterverteilten Software
Kundenerfolgsgeschichten
Entdecken Sie, wie unsere Kunden UnderAutomation-Lösungen in ihre Industrieprojekte integrieren.


GE: Aerospace & Healthcare Automation
GE Accelerates Industrial Automation with UnderAutomation SDKs for Universal Robots and FANUC.


Lockheed Martin: Flexible Aerospace Automation
Refining precision manufacturing and handling with collaborative robots.


Nissan: Driving Efficiency at Scale
How Nissan Smyrna Leverages Fanuc Connectivity for intelligent vehicle assembly.


realvirtual.io: Fanuc Integration for Virtual Commissioning
How realvirtual.io embedded the UnderAutomation Fanuc SDK to deliver first-class robot integration inside their Unity-based digital twin platform.
Fanuc SDK Funktionen: CGTP, Telnet, SNPX, FTP & Kinematik
Jede Funktion hat ein Codebeispiel. Klicken Sie darauf, um den ganzen Code zu sehen.
Fernbefehle
Programme starten, pausieren und abbrechen, Alarme zurücksetzen, Variablen und E/A setzen, alles vom PC aus. Mit CGTP, dem Webserver der neueren Controller (HTTP / HTTPS), oder mit Telnet KCL auf älteren Controllern. Auf dem Controller ist keine Option erforderlich.
robot.Connect(parameters);// Read a variableCgtpVariableValue var = robot.Cgtp.ReadVariable("$RMT_MASTER");int rmtMaster = var.IntegerValue;// Write a variablerobot.Cgtp.WriteVariable("$RMT_MASTER", 1);// Read a numeric register with commentNumericRegisterWithComment reg = robot.Cgtp.ReadNumericRegisterWithComment(1);// Read I/Oint di1 = robot.Cgtp.ReadIo(CgtpIoPortType.DI, 1);// Write I/Orobot.Cgtp.WriteIo(CgtpIoPortType.DO, 1, 1);// Read current Cartesian positionCartesianPosition pos = robot.Cgtp.ReadCartesianPosition();// Run a programrobot.Cgtp.RunProgram("MY_PROGRAM");}}
Hochgeschwindigkeitsdaten lesen und schreiben
SNPX (auch als SRTP/Robotif bekannt) ermöglicht eine schnelle und strukturierte Datenkommunikation mit dem Roboter. Es wird verwendet, um die Register zu lesen/zu schreiben, Alarme zu überwachen und den Zustand des Roboters zu überprüfen.
// Connect to the robotrobot.Connect(parameters);// 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 system variablerobot.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 variablerobot.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 alarmsrobot.Snpx.ClearAlarms();}
Datei und Dekodierung
Direkter Zugriff auf FTP zum Speicher des Roboters für die Dateiübertragung, das Lesen von Variablen und die Verwaltung des Roboterzustands, alles in dekodiert und bereit für die Verwendung in strukturierten Objekten.
// Connect to the robotrobot.Connect(parameters);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");}
Inverse Kinematik
Algebraische Berechnung der direkten und inversen Kinematik jedes Fanuc-Roboters oder Cobots anhand seiner DH-Parameter.
FanucRobot robot = new FanucRobot();robot.Connect("192.168.0.1");// Get DH parameters// Example: CRX-10iA/LDhParameters dh = new DhParameters(-540, 150, -160, 0, 710, 0);// From a known arm modeldh = DhParameters.FromArmKinematicModel(ArmKinematicModels.CRX10iA);// From OPW parameters: M10iA/7Ldh = DhParameters.FromOpwParameters(0.15, -0.20, 0.60, 0.86, 0.10);// From an online robot (SYSMOTN file)dh = DhParameters.FromSymotnFile(robot.Ftp.KnownVariableFiles.GetSymotnFile())[0];// Forward kinematicsCartesianPosition pose = KinematicsUtils.ForwardKinematics(position, dh);// Inverse kinematics with multiple solutionsJointsPosition[] positions = KinematicsUtils.InverseKinematics(pose, dh);}}
Motion Interfaces
Implementierung der Protokolle Fanuc RMI (R912) und Stream Motion (J519), die es Ihnen ermöglicht, einfach Bewegungsbefehle an den Roboter zu senden sowie seine Eingänge, Ausgänge und Register zu lesen und zu schreiben.
parameters.Rmi.Enable = true;robot.Connect(parameters);// Initialize the RMI_MOVE program on the controller.// TP must be disabled and the controller must be in AUTO mode.robot.Rmi.Initialize();// Linear motion at 100 mm/s to a Cartesian target (tool 1, frame 0)var instr = new LinearMotionTpInstruction{SpeedType = RmiLinearSpeedType.MmSec,Speed = 100,TermType = RmiTerminationType.Fine,Target = new CartesianPositionWithUserFrame(500, 200, 300, 0, 90, 0, tool: 1, frame: 0)};RmiInstructionResponse r = robot.Rmi.SendTpInstruction(instr);// Wait for the controller to confirm the motion completedr.WaitForCompletion();if (r.Status == RmiInstructionStatus.Error)System.Console.WriteLine("Error: " + r.ErrorText);// Abort when done - always end the session with Abort() or Disconnect()robot.Rmi.Abort();robot.Disconnect();}}
Offline -Tools
Mit den Funktionen ohne Roboter können Sie Standarddateiformate verarbeiten (variable Datei, Fehlerliste, Roboterstatus usw.).
static void Main(){// Parse a variable file and extract a hierarchical list of variablesGenericVariableFile vaFile = FanucFileReaders.VariableReader.ReadFile("C:/path/to/variable.va", Languages.English);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", Languages.English);FanucFileReaders.IOStateReader.ReadFile("C:/path/to/iostate.dg", Languages.English);FanucFileReaders.SafetyStatusReader.ReadFile("C:/path/to/safety.dg", Languages.English);FanucFileReaders.CurrentPositionReader.ReadFile("C:/path/to/curpos.dg", Languages.English);}
Das SDK in Aktion
Video und Screenshots der Demo-Anwendung, die mit dem SDK geliefert wird.
Beispiel für Windows -Anwendungen
Kein Code nötig: Testen Sie das SDK an Ihrem Roboter mit der Demo-Anwendung.

Beispiele zu GitHub
Die Beispiele für die Verwendung dieses SDK sind auf GitHub erhältlich
Python -Beispiel
Beispiel für den Betrieb dieses SDK mit Python, um die kartesische Position eines Roboters wiederherzustellen.
LABVIEW -Beispiel
Beispiel für VI, das die meisten Funktionen dieses SDK ermöglichen.
Im Browser ausprobieren
Zwei Webanwendungen, die mit dem Fanuc SDK gebaut wurden. Zum Testen muss nichts installiert werden.

Kinematik-Simulator
Bewegen Sie die Achsen oder das Werkzeug eines Fanuc CRX in 3D. Die direkte und inverse Kinematik läuft in Ihrem Browser, mit derselben Engine wie das SDK.

RMI-Sequenz-Editor
Erstellen Sie eine Roboter-Sequenz mit Blöcken, führen Sie sie auf einem simulierten oder echten Roboter aus und übernehmen Sie den C#- oder Python-Code Ihrer Sequenz.
Mit einem Befehl installiert
Wählen Sie Ihre Sprache. Die 30-Tage-Testversion beginnt bei der ersten Nutzung, ohne Registrierung.
.NET
NuGet-Paket für C# und VB.NET, von .NET Framework bis zum neuesten .NET.
dotnet add package UnderAutomation.FanucPython
Python-Paket auf PyPI, für Windows, Linux und macOS.
pip install UnderAutomation.FanucLabVIEW
LabVIEW-Bibliothek (.lvlib) und ihr Beispielprojekt, auf GitHub.
git clone https://github.com/underautomation/Fanuc.vi.gitKI-Agenten
Skill für KI-Coding-Agenten (Claude Code, Cursor, Copilot...): Ihr Assistent kennt die API des SDK.
npx skills add underautomation/skills --skill underautomation-fanuc-csharpDurchsuchen Sie die Dokumentation
Mit der Dokumentation können Sie sich schnell mit der Bibliothek entwickeln. Die gleiche Funktionalität ist in allen unterstützten Sprachen verfügbar.
Durchsuchen Sie die Dokumentation
Mit der Dokumentation können Sie sich schnell mit der Bibliothek entwickeln. Die gleiche Funktionalität ist in allen unterstützten Sprachen verfügbar.
Mit .NET beginnen
Codieren Sie Ihre Anwendung in C# oder VB mit dieser 100% gemanagten Bibliothek, die frei von Abhängigkeiten ist und auf NuGet.org in der Version und Architektur Ihrer Wahl (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...) zur Verfügung steht.
Mit Python beginnen
Entwickeln Sie mithilfe dieser Bibliothek schnell ein Programm in Python, das mit Ihrem Roboter kommuniziert. Sie ist auf PyPI verfügbar.
Mit LabVIEW beginnen
Rüsten Sie Ihre LabVIEW-VIs mit einer Kommunikation mit Ihrem Roboter aus.

Mit Matlab beginnen
Erlauben Sie Ihren Matlab-Skripten, den Roboter zu steuern.
Anleitungen und Praxisartikel
Das SDK deckt die wichtigsten Funktionen von Fanuc-Robotern über mehrere native Ethernet-Protokolle ab. Je nach den auf Ihrem Controller installierten Optionen und dessen Generation sind bestimmte Protokolle verfügbar oder nicht. Jeder Artikel erklärt, wie eine bestimmte Aufgabe umgesetzt wird, und vergleicht die verschiedenen Ansätze.
CGTP overview
CGTP is an HTTP-based protocol providing the richest feature set: program management, variables, registers, I/O, kinematics, batch operations, and file access.
SNPX overview
SNPX (also known as RobotIF or SRTP) is a high-speed protocol for reading and writing registers, variables, I/O signals, alarms, and positions in less than 2 ms.
Telnet overview
Telnet KCL (Keyboard Command Line) sends commands to a Fanuc robot: run programs, reset alarms, read and write variables, control I/O ports.
FTP overview
FTP provides access to internal controller files including variables, programs, diagnostics, safety status, and current position.
RMI overview
RMI (Remote Motion Interface) is a TCP-based protocol for sending motion commands, managing frames, and controlling the robot remotely.
Stream Motion overview
Stream Motion (J519 option) gives the position of the robot at every communication cycle (2 to 8 ms). Requirements, TP program, protocol versions and quick start.
Motion planner overview
Create smooth robot trajectories offline, with velocity, acceleration and jerk limits, using FANUC motion instructions (J, L, C, FINE, CNT, CR).
Forward & Inverse Kinematics
Perform forward and inverse kinematics calculations offline for FANUC industrial robots and CRX cobots using DH parameters.
Offline file parsing
Parse and decode Fanuc variable files (.va), error lists (.ls), I/O state, safety status, and current position files without a robot connection.
Read & write registers
Compare all methods to read and write numeric, position, and string registers on a Fanuc robot: SNPX, FTP, CGTP, and Telnet.
Get current position
Retrieve the current robot position (joint and Cartesian) using SNPX, FTP, CGTP, or Telnet. Compare approaches and choose the best for your use case.
Control inputs & outputs
Set, read, simulate, and unsimulate I/O ports on a Fanuc robot using SNPX, CGTP, or Telnet. Compare port types and methods.
Run a program remotely
Start, pause, abort, and monitor Fanuc programs remotely using Telnet, CGTP, SNPX system variables, or RMI.
Reset alarms remotely
Clear and reset alarms on a Fanuc robot using SNPX, Telnet, or CGTP. Read active alarms and alarm history.
Read & write system variables
Access and modify Fanuc system variables ($RMT_MASTER, $MCR.$GENOVERRIDE, etc.) using Telnet, SNPX, CGTP, or FTP.
Monitor task execution
Supervise running programs, check task states, line numbers, and calling programs using SNPX, FTP, or Telnet.
Move robot remotely
Move a Fanuc robot from an external application using RMI motion commands, Stream Motion real-time streaming, or DPM with SNPX.
Upload, download & backup files
Transfer TP programs, variable files, and backups between your PC and a Fanuc controller using FTP or CGTP.
Read & write I/O comments
Read and write comments (descriptions) for registers and I/O ports using SNPX or CGTP.
Access Karel program variables
Read and write Karel program variables using SNPX ($[Program]Variable syntax), CGTP, or FTP variable files.
Optimize with batch operations
Maximize read/write performance using SNPX batch assignments and CGTP batch variables for high-frequency data exchange.
Move robot with mouse
Control a FANUC robot in real time using Dynamic Path Modification (DPM) and SNPX. Ideal for joystick or 6D mouse teleoperation setups.
TP editor with breakpoints
Prototype your own TP Editor with syntax highlighting and breakpoint debugging using Telnet and FTP features.
Preise
Bibliotheken können kostenlos heruntergeladen und 30 Tage lang getestet werden. Nach diesem Zeitraum können Sie uns bitten, den Testzeitraum zu verlängern oder die Lizenz zu kaufen, die am besten geeignet ist: Website (nur verdeckte binäre) oder Quelle (Quellcode). Nach dem Kauf haben Sie eine einjährige Wartungszeit, mit der Sie vorrangigen Zugriff auf die Unterstützung und die Möglichkeit der Aktualisierung erhalten. Wenn Sie eine Nutzungslizenz kaufen, ist sie mit einer Robotermarke verknüpft, können Sie sie für immer verwenden, ohne wiederkehrende Gebühren, unabhängig von der Anzahl der Roboter, Entwickler oder Software, die Sie Ihren Kunden umverteilen. Wenn Sie ein Händler sind und Ihren Kunden eines unserer Produkte anbieten möchten, kontaktieren Sie uns bitte, um besondere Bedingungen und Preise zu besprechen.
Standard-Site-Lizenz
•
Pro-Lizenz
•
Quellcodelizenz
•
Häufige Fragen
Die Bibliotheken auf GitHub
Jedes Paket wird auf GitHub mit seinem Änderungsprotokoll veröffentlicht.
Neueste Versionen
Fanuc.NET
Neueste Version
Legen Sie jetzt los!
Starten Sie heute die 30-Tage-Testversion, oder fordern Sie ein Angebot an.