UnderAutomation
¿Una pregunta?

[email protected]

Contactos
UnderAutomation
⌘Q

ABB SDK

GitHub stars

Confidential pricing - contact us

Cree rápidamente aplicaciones .NET que se comunican con su robot industrial ABB, tanto en IRC5 como en OmniCore.


Contact us

.NET

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

ABB Communication Library

Nada que instalar en el controlador del robot
Una sola API para RWS 1.0 en IRC5 y RWS 2.0 en OmniCore
Implementa los protocolos de red disponibles de forma nativa en los robots ABB
Métodos síncronos y asíncronos, de .NET Framework 3.5 a .NET 9
No requiere PC SDK, ni RobotStudio, ni runtime de ABB

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

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

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

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

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

    Sistema de archivos

    Recorra el sistema de archivos del controlador, descargue y envíe archivos, cree, copie, renombre y elimine archivos y directorios.
    // 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);

    Registro de eventos y estado

    Lea el registro de eventos, siga el modo de funcionamiento, el estado del controlador y la velocidad del robot.
    // 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}");
    }
    }
  2. 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
  3. Consultar 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.

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

  5. Preguntas frecuentes

    ¿Hay que instalar algo en el robot ABB?

    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.

    ¿El SDK funciona en IRC5 y en OmniCore?

    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.

    ¿Necesito RobotStudio o el PC SDK de ABB?

    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.

    ¿Se pueden leer y escribir variables RAPID?

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

    ¿Qué versiones de .NET son compatibles?

    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.

    ¿Puedo mover el robot con este SDK?

    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.

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

    In development

    Externally Guided Motion (EGM)

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

  7. Descargar y probar

    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.

    UnderAutomation.Abb.Showcase.Forms.exe
    What this application does
    Ejemplos en Github
    Ejemplos en Github

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

  8. Solicitar presupuesto y pedir

    The ABB SDK is not published yet. Contact us to get a preview build, a guided demo on your own robot, or a quote.

    Contact us about the ABB SDK

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

UnderAutomation
ContactosLegal

© All rights reserved.