UnderAutomation
¿Una pregunta?

[email protected]

Contactos
UnderAutomation
⌘Q
ABB

ABB SDKControle los robots ABB desde su propio software

Cree rápidamente aplicaciones .NET y Python que se comunican con su robot industrial ABB, tanto en IRC5 como en OmniCore. Una biblioteca de software lista para usar: su PC habla con el robot por el cable de red.

Probar gratisVer precios

Desde 800 € / $1000, pago único

Nada que instalar en el robot
Prueba gratuita de 30 días
Licencia perpetua, sin suscripción
.NET / C#
Python
Matlab
ABB robot
ABB SDK
1// dotnet add package UnderAutomation.ABB
2using UnderAutomation.ABB;
3
4var robot = new AbbController();
5robot.Connect("192.168.0.1");
6
7var target = robot.Rws.MotionSystem.GetRobTarget("ROB_1");
8robot.Rws.Rapid.SetSymbolValue("RAPID/T_ROB1/user/reg1", "5");
9var state = robot.Rws.Panel.GetControllerState();
En resumen

Lo que obtiene

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.

PC SDKRobotStudioROS

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

Funciones

Funciones del SDK ABB: Robot Web Services para IRC5 y OmniCore

Cada función tiene su ejemplo de código. Haga clic en él para ver el código completo.

Variables y programas RAPID

Lea y escriba variables y persistentes RAPID, inicie y detenga tareas, mueva el puntero de programa, cargue y guarde módulos.

AbbController robot = new AbbController();
robot.Connect("192.168.0.1");
// Read a RAPID variable
var counter = robot.Rws.Rapid.GetSymbolValue("RAPID/T_ROB1/MainModule/nCounter");
Console.WriteLine(counter.Value);
// Write it back
robot.Rws.Mastership.Request();
robot.Rws.Rapid.SetSymbolValue("RAPID/T_ROB1/MainModule/nCounter", "42");
robot.Rws.Mastership.Release();
// Start the program
robot.Rws.Rapid.ResetProgramPointer();
robot.Rws.Rapid.Start();
}
}
Click to see the full code

Entradas / Salidas

Liste, lea y escriba señales digitales, analógicas y de grupo. Envíe un pulso, invierta una señal, recorra los dispositivos y las redes de E/S.

AbbController robot = new AbbController();
robot.Connect("192.168.0.1");
// Read every signal of the controller
foreach (var signal in robot.Rws.Io.GetSignals())
{
Console.WriteLine($"{signal.Name} = {signal.LogicalValue} ({signal.Type})");
}
// Read and write one signal
var gripper = robot.Rws.Io.GetSignal("Local", "DRV_1", "DO_Gripper");
robot.Rws.Io.SetSignalValue("Local", "DRV_1", "DO_Gripper", 1);
// Send 3 pulses of 500 ms
robot.Rws.Io.PulseSignal("Local", "DRV_1", "DO_Gripper", 1, 3, 500, 500);
}
}
Click to see the full code

Posición y cinemática

Lea el robtarget y el jointtarget actuales, calcule la cinemática directa e inversa, y mueva el robot en manual.

AbbController robot = new AbbController();
robot.Connect("192.168.0.1");
// Cartesian position of the tool
var robTarget = robot.Rws.MotionSystem.GetRobTarget("ROB_1");
Console.WriteLine($"X={robTarget.X} Y={robTarget.Y} Z={robTarget.Z}");
// Joint angles
var jointTarget = robot.Rws.MotionSystem.GetJointTarget("ROB_1");
Console.WriteLine($"Axis 1 = {jointTarget.RobotAxes.Axis1}");
// Forward kinematics, without moving the robot
var toolFrame = new Pose(0, 0, 100, new Quaternion(1, 0, 0, 0));
var pose = robot.Rws.MotionSystem.GetPoseFromJoints("ROB_1", toolFrame, jointTarget);
}
}
Click to see the full code

Controlador y copia de seguridad

Lea la identidad y las opciones del controlador, ajuste el reloj y la red, cree y restaure una copia de seguridad completa.

AbbController robot = new AbbController();
robot.Connect("192.168.0.1");
// Who am I talking to
var identity = robot.Rws.Controller.GetIdentity();
Console.WriteLine($"{identity.Name} ({identity.Type}, {identity.MacAddress})");
// RobotWare version and installed options
var system = robot.Rws.System.GetInfo();
Console.WriteLine($"RobotWare {system.Version}");
Console.WriteLine(robot.Rws.Controller.HasOption("Multitasking"));
// Full controller backup
robot.Rws.Controller.CreateBackup("/hd0a/MyBackup");
Console.WriteLine(robot.Rws.Controller.GetBackupState());
}
}
Click to see the full code

Sistema de archivos

Recorra el sistema de archivos del controlador, descargue y envíe archivos, cree, copie, renombre y elimine archivos y directorios.

AbbController robot = new AbbController();
robot.Connect("192.168.0.1");
// Browse a directory of the controller
DirectoryListing listing = robot.Rws.File.ListDirectory("/hd0a/RobotWare");
foreach (FileItem file in listing.Files)
{
Console.WriteLine($"{file.Name} : {file.Size} bytes");
}
// Download a RAPID module and upload it back
string module = robot.Rws.File.GetFileAsText("/hd0a/MyProgram/MainModule.mod");
robot.Rws.File.UploadFileFromText("/hd0a/MyProgram/MainModule.mod", module);
}
}
Click to see the full code

Registro de eventos y estado

Lea el registro de eventos, siga el modo de funcionamiento, el estado del controlador y la velocidad del robot.

AbbController robot = new AbbController();
robot.Connect("192.168.0.1");
// State of the robot
Console.WriteLine(robot.Rws.Panel.GetOperationMode());
Console.WriteLine(robot.Rws.Panel.GetControllerState());
Console.WriteLine(robot.Rws.Panel.GetSpeedRatio());
// Last events of every domain
foreach (var domain in robot.Rws.Elog.GetDomains())
{
foreach (var message in robot.Rws.Elog.GetMessages(domain.Number, maxCount: 5))
{
Console.WriteLine($"[{message.Timestamp}] {message.Type} : {message.Title}");
}
}
}
}
Click to see the full code
IRC5 · OmniCore

IRC5 y OmniCore, una sola API

Los robots ABB exponen Robot Web Services en dos versiones. El SDK cubre ambas, por lo que el mismo código funciona en un IRC5 antiguo y en un OmniCore reciente. Solo cambia un parámetro de conexión.

ControllerRobotWareRobot Web ServicesConnection parameter
IRC5RobotWare 6 and earlierRWS 1.0RwsVersion.Irc5_V1_0
OmniCoreRobotWare 7 and laterRWS 2.0RwsVersion.OmniCore_V2_0
HTTP or HTTPS is a separate setting on the controller, independent of this table.IRC5 or OmniCore: which RWS version

Lo que viene

Robot Web Services está disponible hoy. Los demás protocolos nativos de los controladores ABB, empezando por Externally Guided Motion (EGM), están en desarrollo y se añadirán al mismo SDK.

Available

Robot Web Services

RAPID, I/O, position, controller, file system, event log and mastership, on IRC5 and on OmniCore.

En desarrollo

Externally Guided Motion (EGM)

Low latency motion over UDP: position stream, position guidance and path correction, for sensor and vision driven applications.

Demo

El SDK en acción

Vídeo y capturas de la aplicación de demostración entregada con el SDK.

Ejemplo de aplicación de Windows

Sin escribir código: pruebe el SDK en su robot con la aplicación de demostración.

DescargarAl descargar, acepta las condiciones generales de uso: Ver condiciones generales

Ejemplos en Github

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

Ejemplo de Python

Ejemplo de operación de este SDK con Python para recuperar la posición cartesiana de un robot.

Instalación

Instálelo con un comando

Elija su lenguaje. La prueba de 30 días empieza con el primer uso, sin registro.

.NET

Paquete NuGet para C# y VB.NET, de .NET Framework al último .NET.

dotnet add package UnderAutomation.ABB
Ver en NuGetVer en GitHubAbrir la guía

Python

Paquete Python en PyPI, para Windows, Linux y macOS.

pip install UnderAutomation.ABB

Agentes IA

Skill para agentes de código IA (Claude Code, Cursor, Copilot...): su asistente conoce la API del SDK.

npx skills add underautomation/skills --skill underautomation-abb-csharp
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.

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.

Introducción a .NET

Codifique su aplicación en C# o VB con esta librería 100% gestionada, sin dependencias y disponible en NuGet.org en la versión y arquitectura de su elección (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...)

Empezar con Python

Desarrolle rápidamente un programa en Python que se comunique con su robot utilizando esta biblioteca. Está disponible en PyPI.

Introducción a Matlab

Permita que sus scripts de Matlab manejen su robot.

Guías y artículos prácticos

Respuestas cortas a las preguntas que los desarrolladores hacen con más frecuencia sobre los robots ABB.

Robot Web Services overview

Robot Web Services (RWS) is the REST interface of ABB robot controllers. One API covers RWS 1.0 on IRC5 and RWS 2.0 on OmniCore.

IRC5 or OmniCore: which RWS version

RWS 1.0 runs on IRC5 with RobotWare 6, RWS 2.0 on OmniCore with RobotWare 7. Compare both, and see what changes in your code.

Read & write RAPID variables

Read and write a RAPID num, bool, string, robtarget or a custom record from C#, on IRC5 and on OmniCore.

Get the robot position

Read the current Cartesian position (robtarget) and the joint position (jointtarget) of an ABB robot, and convert between them.

Start & stop a RAPID program

Start, stop and reset a RAPID program remotely: motors on, program pointer, execution cycle, and how to check that it really started.

Read & write I/O signals

Read and write digital, analog and group I/O signals of an ABB controller, pulse a signal and simulate one during tests.

Backup & restore a controller

Create a full controller backup, download it to your PC, check it and restore it, entirely from your application.

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

•

800€de por vida
480€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).
Elija la licencia adecuada para su proyecto
Comprar ahora
Mas popular

Licencia Pro

•

1200€
1900€
de por vida
720€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

•

2400€de por vida
1440€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
FAQ

Preguntas frecuentes

No. Robot Web Services es un servicio del propio controlador y está presente en un sistema estándar. Solo hace falta que el robot sea accesible en la red y que una cuenta de usuario tenga los permisos necesarios.

Sí. Los controladores IRC5 con RobotWare 6 exponen RWS 1.0, los controladores OmniCore con RobotWare 7 exponen RWS 2.0. El SDK cubre ambos detrás de una sola API, solo indica la versión en los parámetros de conexión.

No. La biblioteca es 100% gestionada y habla directamente con el controlador. RobotStudio solo sirve si quiere probar contra un controlador virtual en lugar de un robot real.

Sí. Puede leer y escribir variables, persistentes y constantes, incluidos los robtarget y los tipos record, y buscar los símbolos del programa cargado.

De .NET Framework 3.5 a .NET 9, más .NET Standard 2.0 y 2.1 y .NET Core 3.0. Los métodos asíncronos están disponibles en todas partes salvo en .NET Framework 3.5 y 4.0.

Puede mover el robot en manual, definir una posición objetivo, e iniciar o detener los programas RAPID que contienen el movimiento. El control continuo en tiempo real corresponde a Externally Guided Motion, en desarrollo.
GitHub

Las bibliotecas en GitHub

Cada paquete se publica en GitHub con su registro de cambios.

Últimas versiones

ABB.NET

Última versión

underautomation / ABB.NET

Public

Biblioteca .NET del SDK ABB.

C#Ver en GitHub

underautomation / ABB.py

Public

Paquete Python del SDK ABB.

PythonVer en GitHub

¡Empiece ahora!

Empiece hoy la prueba de 30 días, o solicite un presupuesto.

Probar gratisPedirSolicitar un presupuestoContactos