UnderAutomation
¿Una pregunta?

[email protected]

Contactos
UnderAutomation
⌘Q

Fanuc SDK

GitHub stars
1100 (EUR)1300 (USD)

1100

de por vida

660

para universidades (40% de descuento)

Cree rápidamente aplicaciones .NET que se comuniquen con su robot industrial FanUC.

Elija la licencia adecuada para su proyecto
PedirSolicitar un presupuesto

.NET

Python

LabVIEW

Ver condiciones generales
Plug & Play

Conecta tu robot en tan solo unos minutos. No es necesario instalar un administrador de licencias ni una llave USB. Sólo haga referencia a la biblioteca.

No hay complementos para instalar en el robot

Uso de protocolos de red proporcionados como estándar por el controlador de robots.
Karel ROS

Prueba de 30 días

Pruébelo gratis durante 30 días, sin compromiso, no se requiere registro

Pagar una vez, use para siempre

Licencia perpetua, no se requiere suscripción, independientemente del número de robots, desarrolladores o software redistribuido

Historias de éxito de clientes

Descubra cómo nuestros clientes integran las soluciones UnderAutomation en sus proyectos industriales.

GE
Aerospace / Healthcare

GE: Aerospace & Healthcare Automation

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

  1. Características del SDK Fanuc: Telnet, SNPX, FTP y cinemática

    Comandos remotos

    Telnet KCL (Línea de comandos de teclado) le permite enviar comandos para controlar el robot de forma remota; no es necesaria una opción adicional en el controlador.
    // 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);

    Lectura y escritura de datos de alta velocidad

    SNPX (también conocido como SRTP/Robotif) permite la comunicación de datos rápida y estructurada con el robot. Se utiliza para leer/escribir los registros, monitorear las alarmas y verificar el estado del 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();

    Archivo y decodificación

    Acceso directo FTP a la memoria del robot para la transferencia de archivos, las variables de lectura y la gestión del estado del robot, todo en decodificado y listo para ser utilizado en objetos .NET estructurados.
    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");

    Cinemática inversa

    Cálculo algebraico de la cinemática directa e inversa de cualquier robot o cobot Fanuc a partir de sus parámetros DH.
    // 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

    Implementación de los protocolos Fanuc RMI (R912) y Stream Motion (J519) que permite enviar de forma sencilla comandos de movimiento al robot, así como leer y escribir sus entradas, salidas y registros.
    // 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();

    Herramientas fuera de línea

    Las características sin la necesidad de robot le permiten manejar formatos de archivo estándar (archivo variable, lista de errores, estado de robot, etc.).
    // 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. Explorar la documentación

    Explorar la documentación

    La documentación le permite comenzar a desarrollar rápidamente con la biblioteca. La misma funcionalidad está disponible en todos los idiomas compatibles.

  3. Guías y artículos prácticos

    El SDK cubre las principales funcionalidades de los robots Fanuc a través de varios protocolos Ethernet nativos. Según las opciones instaladas en su controlador y su generación, algunos protocolos pueden estar disponibles o no. Cada artículo a continuación explica cómo realizar una tarea específica y compara los diferentes enfoques.

    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. Descargar y probar

    Descargar a través de Nuget
    Descargar a través de Nuget

    Agregue fácilmente este SDK a su proyecto Visual Studio a través del Administrador de paquetes Nuget.

    Ver en Nuget
    Ejemplos en Github
    Ejemplos en Github

    Las fuentes de ejemplos de uso de este SDK están disponibles en GitHub

    Ejemplo de aplicación de Windows
    Ejemplo de aplicación de Windows

    Le permite probar todas las características del SDK con una interfaz simple. El ejemplo se compila en "auto contenido" y "archivo único" con .NET 8. La aplicación es portátil sin instalación.

    Al descargar, acepta las condiciones generales de uso:
    Ver condiciones generales
    UnderAutomation.Fanuc.Showcase.Forms.exe (139 MB)
    Labview Biblioteca y aplicación de muestra
    Labview Biblioteca y aplicación de muestra
    Ver en GithubUnderAutomation.Fanuc.lvlib
  5. Solicitar una cotización y orden

    Precios

    Las bibliotecas se pueden descargar de forma gratuita y se pueden probar durante 30 días. Después de este período, puede solicitarnos que extendamos el período de prueba o que compren la licencia que mejor se adapte a usted: Sitio (solo binario oscurecido) o fuente (código fuente). Después de comprar, tiene un período de mantenimiento de un año, lo que le brinda acceso prioritario al soporte y la posibilidad de actualizar. Cuando compra una licencia para usar, está vinculada a una marca de robot, puede usarla para siempre, sin una tarifa recurrente, independientemente de la cantidad de robot, desarrollador o software que redistribuya a sus clientes. Si usted es un distribuidor y desea ofrecer a sus clientes uno de nuestros productos, contáctenos para discutir condiciones y precios especiales.

    Licencia Sitio Estándar

    1100 (EUR)$1300 (USD)

    1100

    de por vida

    660

    para universidades (40% de descuento)
    Diseñado para entornos industriales, brinda acceso a todas las funciones de por vida.
    1 año de mantenimiento incluido (acceso a actualizaciones)
    Mismas condiciones que la Licencia Pro, excepto que no se prioriza el soporte y el mantenimiento es de 1 año.
    No hay fuentes internas; sólo se proporciona la DLL ofuscada.
    No hay asistencia por videoconferencia (solo vía correo electrónico).
    Comprar ahora
    Mas popular

    Licencia Pro

    1700 (EUR)$2000 (USD)

    1700

    2500
    de por vida

    1020

    para universidades (40% de descuento)
    Para entornos de producción críticos que requieren soporte prioritario y mantenimiento a largo plazo.
    3 años de mantenimiento incluido (acceso a actualizaciones) sin pedidos de renovación durante este plazo (cero trámites)
    SDK completo y permanente: no se requiere una suscripción recurrente, la licencia es suya para siempre y funciona en todos los lenguajes de programación para una marca robot.
    Solo puede ser utilizado por la organización que posee la licencia, en la dirección postal indicada. Todos los desarrolladores del equipo compartirán la misma licencia, independientemente del número de máquinas de desarrollo.
    Cualquier aplicación desarrollada utilizando el SDK se puede entregar a un número ilimitado de sus clientes sin costo adicional, independientemente del número de robots para conectarse.
    La licencia es un tipo de contraseña para llamar al código que desbloquea la funcionalidad. No hay software adicional para instalar. No hay clave USB.
    Soporte Prioritario (<24h en promedio)
    Asistencia remota (correo electrónico y hasta 2h videoconferencia)
    No hay fuentes internas; sólo se proporciona la DLL ofuscada.
    Actualiza a Source en cualquier momento (paga la diferencia)
    Comprar ahora

    Licencia de código fuente

    3400 (EUR)$4000 (USD)

    3400

    de por vida

    2040

    para universidades (40% de descuento)
    Para una soberanía técnica completa, una personalización profunda y una independencia total.
    Mismas condiciones que la licencia pro
    Código interno completo de la biblioteca en C#
    Solución de Visual Studio que incluye miles de líneas de código desarrolladas a lo largo de varios años.
    Puedes modificar este código fuente y utilizarlo en tu aplicación, dentro de los límites definidos en las condiciones generales de uso.
    Compatible con agentes de codificación IA (Claude, Copilot, Cursor, Codex...) gracias al acceso completo al código fuente y los archivos de contexto incluidos (AGENTS.md) que dan al LLM conocimiento exacto de los internals del SDK
    Comprar ahora

Integre fácilmente robots Universal Robots, Fanuc, Yaskawa, ABB o Staubli en sus aplicaciones .NET, Python, LabVIEW o Matlab

UnderAutomation
ContactosLegal

© All rights reserved.