UnderAutomation
Eine Frage?

[email protected]

Kontakt
UnderAutomation
⌘Q

Fanuc SDK

GitHub stars
1100 (EUR)1300 (USD)

1100

fürs Leben

660

für Universitäten (40 % Rabatt)

Erstellen Sie schnell .NET -Anwendungen, die mit Ihrem Fanuc -Industrie -Roboter kommunizieren.

Wählen Sie die richtige Lizenz für Ihr Projekt
BestellenAngebot anfordern

.NET

Python

LabVIEW

Siehe Bedingungen und Konditionen
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.

GE
Aerospace / Healthcare

GE: Aerospace & Healthcare Automation

GE Accelerates Industrial Automation with UnderAutomation SDKs for Universal Robots and FANUC.

  1. 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.
    // 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);

    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.
    // 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();

    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 .NET -Objekten.
    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");

    Inverse Kinematik

    Algebraische Berechnung der direkten und inversen Kinematik jedes Fanuc-Roboters oder Cobots anhand seiner DH-Parameter.
    // Get DH parameters
    // Example: CRX-10iA/L
    DhParameters dh = new DhParameters(-540, 150, -160, 0, 710, 0);
    // From a known arm model
    dh = DhParameters.FromArmKinematicModel(ArmKinematicModels.CRX10iA);
    // From OPW parameters: M10iA/7L
    dh = 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 kinematics
    CartesianPosition pose = KinematicsUtils.ForwardKinematics(position, dh);
    // Inverse kinematics with multiple solutions
    JointsPosition[] 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.
    // 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 completed
    r.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.).
    // Parse a variable file and extract a hierarchical list of variables
    GenericVariableFile 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 file
    vaFile.GenerateVa("C:/path/to/variable_modified.va\"");
    // Parse several types of files
    FanucFileReaders.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);
  2. Durchsuchen Sie die Dokumentation

    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.

  3. 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.

    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.

  4. Herunterladen und testen

    Laden Sie über Nuget herunter
    Laden Sie über Nuget herunter

    Fügen Sie dieses SDK einfach über den Nuget -Paket -Manager zu Ihrem Visual Studio -Projekt hinzu.

    Siehe auf Nuget
    Beispiele zu GitHub
    Beispiele zu GitHub

    Die Beispiele für die Verwendung dieses SDK sind auf GitHub erhältlich

    Beispiel für Windows -Anwendungen
    Beispiel für Windows -Anwendungen

    Ermö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.

    Durch das Herunterladen akzeptieren Sie die allgemeinen Nutzungsbedingungen:
    Siehe Bedingungen und Konditionen
    UnderAutomation.Fanuc.Showcase.Forms.exe (139 MB)
    LabView -Bibliothek und Beispiel -App
    LabView -Bibliothek und Beispiel -App
    Siehe auf GithubUnderAutomation.Fanuc.lvlib
  5. Fordern 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 (EUR)$1300 (USD)

    1100

    fürs Leben

    660

    für Universitäten (40 % Rabatt)
    Konzipiert 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).
    Jetzt kaufen
    Am beliebtesten

    1700

    2500
    fürs Leben

    1020

    für Universitäten (40 % Rabatt)
    Fü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)
    Jetzt kaufen

    Quellcodelizenz

    3400 (EUR)$4000 (USD)

    3400

    fürs Leben

    2040

    für Universitäten (40 % Rabatt)
    Für völlige technische Souveränität, umfassende Individualisierung und völlige Unabhängigkeit.
    Gleiche Bedingungen wie bei der Pro-Lizenz
    Vollständiger interner Code der Bibliothek in C#
    Visual Studio-Lösung, die Tausende von Codezeilen umfasst, die über mehrere Jahre entwickelt wurden
    Sie können diesen Quellcode ändern und in Ihrer Anwendung im Rahmen der in den Allgemeinen Nutzungsbedingungen festgelegten Grenzen verwenden
    Funktioniert 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
    Jetzt kaufen

Integrieren Sie Roboter von Universal Robots, Fanuc, Yaskawa, ABB oder Staubli ganz einfach in Ihre .NET-, Python-, LabVIEW- oder Matlab-Anwendungen

UnderAutomation
KontaktLegal

© All rights reserved.