Fanuc SDK
Erstellen Sie schnell Anwendungen in .NET, Python oder LabVIEW, die mit Ihrem Fanuc-Industrieroboter kommunizieren.
.NET
Python
LabVIEW
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.
Karel ROS
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.
Fanuc SDK Funktionen: Telnet, SNPX, FTP & Kinematik
Fernbefehle
Mit der Telnet KCL (Befehlszeile Tastatur) können Sie Befehle senden, um den Roboter aus der Ferne zu steuern - für den Controller ist keine zusätzliche Option erforderlich.// Connect to the robotrobot.Connect(parameters);// 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);}Click to see the full codeHochgeschwindigkeitsdaten 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();}Click to see the full codeDatei 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");}Click to see the full codeInverse 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);}}Click to see the full codeMotion 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();}}Click to see the full codeOffline -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);}Click to see the full codeDurchsuchen Sie die Dokumentation
Anleitungen und Fachartikel
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.
Häufige Fragen
Muss etwas auf dem Fanuc Roboter installiert werden?
Nein. Das SDK nutzt die Ethernet-Protokolle der Steuerung und benötigt kein PC Developer's Kit (PCDK). Telnet, FTP und CGTP benötigen keine Option. SNPX benötigt auf Steuerungen von FANUC America die Option R553, RMI die Option R912 und Stream Motion die Option J519.
Welche Fanuc Steuerungen werden unterstützt?
Die Steuerungen R-J3iB, R-30iA, R-30iB, R-30iB Plus und R-50iA, sowie ROBOGUIDE für Tests ohne Roboter. Welche Protokolle nutzbar sind, hängt von der Generation und den Optionen der Steuerung ab.
Was kostet das Fanuc SDK?
Die Lizenz ist unbefristet, ohne Abonnement. Standard: 1100 EUR / 1300 USD. Pro: 1700 EUR / 2000 USD. Source: 3400 EUR / 4000 USD. Sie gilt für eine Organisation an einer Adresse, mit beliebig vielen Entwicklern, Robotern und ausgelieferten Anwendungen. Updates sind bei Standard 1 Jahr und bei Pro und Source 3 Jahre enthalten. Hochschulen erhalten 40 % Rabatt.
Kann ich das SDK vor dem Kauf testen?
Ja. Alle Funktionen laufen 30 Tage ab der ersten Nutzung, ohne Registrierung. Die Testphase kann auf Anfrage verlängert werden. Mit der Windows-Demoanwendung testen Sie das SDK an Ihrem Roboter, ohne Code zu schreiben.
Funktioniert das SDK unter Linux und macOS?
Ja. Die Bibliothek ist für .NET Standard 2.0 und 2.1 kompiliert, die unter Windows, Linux und macOS laufen, auf x64 und ARM. Für Python unter Linux oder macOS installieren Sie die .NET-Runtime und führen export PYTHONNET_RUNTIME=coreclr aus, bevor Sie Python starten.
Kann ich das SDK mit Python verwenden?
Ja. pip install UnderAutomation.Fanuc installiert das Paket und pythonnet, das die .NET-Bibliothek in den Python-Prozess lädt. Unterstützt werden Python 3.7 bis 3.13. Die API ist dieselbe wie in .NET, mit Python-Namen.
Gibt es eine LabVIEW-Version?
Ja. Die LabVIEW-Bibliothek (.lvlib) und ihr Beispielprojekt liegen auf GitHub im Repository Fanuc.vi. Sie verwenden dieselbe .NET-Assembly wie die anderen Sprachen.
Kann ich den Quellcode bekommen?
Ja, mit der Source-Lizenz: der vollständige C#-Code der Bibliothek und ihre Visual-Studio-Projektmappe. Sie dürfen ihn ändern und in Ihren Anwendungen verwenden, im Rahmen der Lizenzbedingungen (EULA). Die Standard- und Pro-Lizenzen enthalten nur die obfuskierte DLL.
Herunterladen und testen
Beispiel für Windows -AnwendungenErmöglicht Ihnen, alle Funktionen des SDK mit einer einfachen Schnittstelle zu testen. Das Beispiel wird in "Selbstgebiet" und "Einzeldatei" mit .NET 8 kompiliert. Die Anwendung ist ohne Installation tragbar.
UnderAutomation.Fanuc.Showcase.Forms.exe (139 MB)Durch das Herunterladen akzeptieren Sie die allgemeinen Nutzungsbedingungen:
Siehe Bedingungen und KonditionenFordern Sie ein Angebot und eine Bestellung an
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
1100€fürs Leben660€für Universitäten (40 % Rabatt)Jetzt kaufenKonzipiert für industrielle Umgebungen und bietet lebenslangen Zugriff auf alle Funktionen.1 Jahr Wartung inklusive (Zugriff auf Updates)Gleiche Bedingungen wie bei der Pro-Lizenz, außer dass der Support nicht priorisiert wird und die Wartung 1 Jahr beträgt.Es gibt keine internen Quellen; Es wird nur die verschleierte DLL bereitgestellt.Keine Unterstützung per Videokonferenz (nur per E-Mail).Am beliebtestenPro-Lizenz
1700€fürs Leben2500€1020€für Universitäten (40 % Rabatt)Jetzt kaufenFür kritische Produktionsumgebungen, die vorrangigen Support und längerfristige Wartung erfordern.3 Jahre Wartung inklusive (Zugriff auf Updates), ohne Verlängerungsaufträge während dieser Laufzeit (kein Papierkram)Vollständiges und dauerhaftes SDK: Es ist kein wiederkehrendes Abonnement erforderlich, die Lizenz ist für immer Ihnen und funktioniert in allen Programmiersprachen für eine Robotermarke.Kann nur von der Organisation verwendet werden, die die Lizenz an der angegebenen Postanschrift hält. Alle Teamentwickler teilen die gleiche Lizenz, unabhängig von der Anzahl der Entwicklungsmaschinen.Jede Anwendung, die mit dem SDK entwickelt wurde, kann unbegrenzt an eine unbegrenzte Anzahl Ihrer Kunden ohne zusätzliche Kosten geliefert werden, unabhängig von der Anzahl der Roboter, die eine Verbindung herstellen können.Die Lizenz ist eine Art Passwort, das Sie im Code aufrufen können, der die Funktionalität freischaltet. Keine zusätzliche Software zu installieren. Kein USB -Schlüssel.Prioritärer Support (durchschnittlich <24 Stunden)Fernunterstützung (E-Mail und bis zu 2 Stunden Videokonferenz)Es gibt keine internen Quellen; Es wird nur die verschleierte DLL bereitgestellt.Jederzeit Upgrade auf Source (Zahlung der Differenz)Quellcodelizenz
3400€fürs Leben2040€für Universitäten (40 % Rabatt)Jetzt kaufenFür völlige technische Souveränität, umfassende Individualisierung und völlige Unabhängigkeit.Gleiche Bedingungen wie bei der Pro-LizenzVollständiger interner Code der Bibliothek in C#Visual Studio-Lösung, die Tausende von Codezeilen umfasst, die über mehrere Jahre entwickelt wurdenSie können diesen Quellcode ändern und in Ihrer Anwendung im Rahmen der in den Allgemeinen Nutzungsbedingungen festgelegten Grenzen verwendenFunktioniert optimal mit KI-Coding-Agenten (Claude, Copilot, Cursor, Codex...) dank vollständigem Quellcode-Zugriff und enthaltener Kontextdateien (AGENTS.md), die dem LLM genaues Wissen über die SDK-Interna geben







