ABB SDK
Confidential pricing - contact us
Cree rápidamente aplicaciones .NET que se comunican con su robot industrial ABB, tanto en IRC5 como en OmniCore.
.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
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 variablevar counter = robot.Rws.Rapid.GetSymbolValue("RAPID/T_ROB1/MainModule/nCounter");Console.WriteLine(counter.Value);// Write it backrobot.Rws.Mastership.Request();robot.Rws.Rapid.SetSymbolValue("RAPID/T_ROB1/MainModule/nCounter", "42");robot.Rws.Mastership.Release();// Start the programrobot.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 controllerforeach (var signal in robot.Rws.Io.GetSignals()){Console.WriteLine($"{signal.Name} = {signal.LogicalValue} ({signal.Type})");}// Read and write one signalvar 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 msrobot.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 toolvar robTarget = robot.Rws.MotionSystem.GetRobTarget("ROB_1");Console.WriteLine($"X={robTarget.X} Y={robTarget.Y} Z={robTarget.Z}");// Joint anglesvar jointTarget = robot.Rws.MotionSystem.GetJointTarget("ROB_1");Console.WriteLine($"Axis 1 = {jointTarget.RobotAxes.Axis1}");// Forward kinematics, without moving the robotvar 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 tovar identity = robot.Rws.Controller.GetIdentity();Console.WriteLine($"{identity.Name} ({identity.Type}, {identity.MacAddress})");// RobotWare version and installed optionsvar system = robot.Rws.System.GetInfo();Console.WriteLine($"RobotWare {system.Version}");Console.WriteLine(robot.Rws.Controller.HasOption("Multitasking"));// Full controller backuprobot.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 controllerDirectoryListing 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 backstring 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 robotConsole.WriteLine(robot.Rws.Panel.GetOperationMode());Console.WriteLine(robot.Rws.Panel.GetControllerState());Console.WriteLine(robot.Rws.Panel.GetSpeedRatio());// Last events of every domainforeach (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}");}}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.
HTTP or HTTPS is a separate setting on the controller, independent of this table.Controller RobotWare Robot Web Services Connection parameter IRC5 RobotWare 6 and earlier RWS 1.0 RwsVersion.Irc5_V1_0OmniCore RobotWare 7 and later RWS 2.0 RwsVersion.OmniCore_V2_0Consultar la documentación
Artículos prácticos
Respuestas cortas a las preguntas que los desarrolladores hacen con más frecuencia sobre los robots ABB.
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.
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.
AvailableRobot Web Services
RAPID, I/O, position, controller, file system, event log and mastership, on IRC5 and on OmniCore.
In developmentExternally Guided Motion (EGM)
Low latency motion over UDP: position stream, position guidance and path correction, for sensor and vision driven applications.
Descargar y probar
Ejemplo de aplicación de WindowsLe 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.
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