UnderAutomation
Une question ?

[email protected]

Contactez-nous
UnderAutomation
⌘Q
ABB

ABB SDKPilotez les robots ABB depuis votre logiciel

Créez rapidement des applications .NET et Python qui communiquent avec votre robot industriel ABB, aussi bien sur IRC5 que sur OmniCore. Une bibliothèque logicielle prête à l'emploi : votre PC dialogue avec le robot par le câble réseau.

Essayer gratuitementVoir les tarifs

À partir de 800 € / $1000, paiement unique

Rien à installer sur le robot
Essai gratuit de 30 jours
Licence perpétuelle, sans abonnement
.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 bref

Ce que vous obtenez

Plug & Play

Connectez votre robot en quelques minutes seulement. Pas de gestionnaire de license à installer, pas de clé USB. Référencez seulement la bibliothèque.

Pas de plugins à installer sur le robot

Utilisation des protocoles réseau fournis en standard par le contrôleur de robot.

PC SDKRobotStudioROS

Essai de 30 jours

Essayez-le gratuitement pendant 30 jours, aucun engagement, aucun enregistrement requis

Payer une fois, utiliser pour toujours

Licence perpétuelle, aucun abonnement requis, quel que soit le nombre de robots, de développeurs ou de logiciels redistribués

Fonctionnalités

Fonctionnalités du SDK ABB : Robot Web Services pour IRC5 et OmniCore

Chaque fonctionnalité a son exemple de code. Cliquez dessus pour voir le code complet.

Variables et programmes RAPID

Lisez et écrivez les variables et les persistants RAPID, démarrez et arrêtez les tâches, déplacez le pointeur de programme, chargez et sauvegardez les modules.

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

Entrées / Sorties

Listez, lisez et écrivez les signaux numériques, analogiques et de groupe. Envoyez une impulsion, inversez un signal, parcourez les équipements et les réseaux d'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

Position et cinématique

Lisez le robtarget et le jointtarget courants, calculez la cinématique directe et inverse, et déplacez le robot en manuel.

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

Contrôleur et sauvegarde

Lisez l'identité et les options du contrôleur, réglez l'horloge et le réseau, créez et restaurez une sauvegarde complète.

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

Système de fichiers

Parcourez le système de fichiers du contrôleur, téléchargez et envoyez des fichiers, créez, copiez, renommez et supprimez fichiers et répertoires.

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

Journal d'événements et état

Lisez le journal d'événements, suivez le mode de fonctionnement, l'état du contrôleur et la vitesse du 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 et OmniCore, une seule API

Les robots ABB exposent Robot Web Services en deux versions. Le SDK couvre les deux, le même code fonctionne donc sur un ancien IRC5 comme sur un OmniCore récent. Un seul paramètre de connexion change.

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

La suite

Robot Web Services est disponible aujourd'hui. Les autres protocoles natifs des contrôleurs ABB, à commencer par Externally Guided Motion (EGM), sont en développement et seront ajoutés au même SDK.

Available

Robot Web Services

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

En développement

Externally Guided Motion (EGM)

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

Démo

Voir le SDK en action

Vidéo et captures de l'application de démonstration livrée avec le SDK.

Exemple d'application Windows

Pas de code à écrire : testez le SDK sur votre robot avec l'application de démonstration.

TéléchargerEn téléchargeant, vous acceptez les conditions générales d'utilisation : Voir les conditions générales d'utilisation

Exemples sur GitHub

Les sources des exemples d'utilisation de ce SDK sont disponibles sur GitHub

Exemple Python

Exemple de fonctionnement de ce SDK avec Python permettant de récupérer la position cartésienne d'un robot.

Installation

Installez-le en une commande

Choisissez votre langage. L'essai de 30 jours démarre à la première utilisation, sans inscription.

.NET

Paquet NuGet pour C# et VB.NET, de .NET Framework au dernier .NET.

dotnet add package UnderAutomation.ABB
Voir sur NuGetVoir sur GitHubOuvrir le guide

Python

Paquet Python sur PyPI, pour Windows, Linux et macOS.

pip install UnderAutomation.ABB

Agents IA

Skill pour les agents de code IA (Claude Code, Cursor, Copilot...) : votre assistant connaît l'API du SDK.

npx skills add underautomation/skills --skill underautomation-abb-csharp
Documentation

Parcourir la documentation

La documentation vous permet de commencer rapidement à vous développer avec la bibliothèque. La même fonctionnalité est disponible dans toutes les langues prises en charge.

Parcourir la documentation

La documentation vous permet de commencer rapidement à vous développer avec la bibliothèque. La même fonctionnalité est disponible dans toutes les langues prises en charge.

Commencer avec .NET

Codez votre application en C# ou VB avec cette bibliothèque 100% managée, sans dépendances et disponible sur NuGet.org dans la version et l'architecture de votre choix (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...)

Commencer avec Python

Développez rapidement un programme en Python qui communique avec votre robot à l'aide de cette bibliothèque. Elle est disponible sur PyPI.

Commencer avec Matlab

Permet à vos scripts Matlab *.m de communiquer avec vos cobots.

Guides et articles pratiques

Des réponses courtes aux questions que les développeurs se posent le plus souvent sur les 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.

Tarifs

Les bibliothèques sont téléchargeables gratuitement et peuvent être testées pendant 30 jours. Passé ce délai, vous pouvez nous demander de prolonger la période d'essai, ou acheter la licence qui vous convient le mieux : site (binaires obscurcis uniquement) ou source (code source). Après l'achat, vous disposez d'une période de maintenance d'un an, vous donnant un accès prioritaire au support et la possibilité de mettre à jour. Lorsque vous achetez une licence d'utilisation, elle est liée à une marque de robot, vous pouvez l'utiliser pour toujours, sans redevance récurrente, quel que soit le nombre de robot, de développeur ou de logiciel que vous redistribuez à vos clients. Si vous êtes un distributeur et souhaitez proposer à vos clients un de nos produits, merci de nous contacter pour discuter des conditions et tarifs spéciaux.

Licence Site Standard

•

800€Pour toujours
480€pour les universités (40% de réduction)
Conçu pour les environnements industriels, offrant un accès complet aux fonctionnalités à vie.
1 an de maintenance incluse (accès aux mises à jour)
Mêmes conditions que la Licence Pro, sauf que le support n'est pas prioritaire et la maintenance est de 1 an.
Il n'y a pas de sources internes ; seule la DLL masquée est fournie.
Pas d'assistance par visioconférence (uniquement par email).
Choisissez la bonne licence pour votre projet
Acheter maintenant
Le plus populaire

Licence Pro

•

1200€
1900€
Pour toujours
720€pour les universités (40% de réduction)
Pour les environnements de production critiques nécessitant un support prioritaire et une maintenance à plus long terme.
3 ans de maintenance incluse (accès aux mises à jour) sans commande de renouvellement pendant cette durée (zéro paperasse)
SDK complet et permanent : aucun abonnement récurrent n'est requis, la license est à vous pour toujours et fonctionne dans tous les langages de programmation pour une marque de robot.
Peut être utilisé uniquement par l'organisation détentrice de la licence, à l'adresse postale indiquée. Tous les développeurs de l'équipe partageront la même licence, quel que soit le nombre de machine de développement.
Toute application développée à l'aide du SDK peut être livrée à un nombre illimité de vos clients sans frais supplémentaires, quel que soit le nombre de robots à connecter.
La license est une sorte de mot de passe à appeler dans le code qui débloque les fonctionnalités. Pas de logiciel supplémentaire à installer. Pas de clé USB.
Support prioritaire (<24h en moyenne)
Assistance à distance (email et jusqu'à 2h de visioconférence)
Il n'y a pas de sources internes ; seule la DLL masquée est fournie.
Passez à Source à tout moment (payez la différence)
Acheter maintenant

Licence Source

•

2400€Pour toujours
1440€pour les universités (40% de réduction)
Pour une totale souveraineté technique, une personnalisation poussée et une indépendance totale.
Mêmes conditions que la licence pro
Code interne complet de la bibliothèque en C#
Solution Visual Studio comprenant des milliers de lignes de code développées sur plusieurs années
Vous pouvez modifier ce code source et l'utiliser dans votre application, dans les limites définies dans les conditions générales d'utilisation.
Compatible avec les agents IA de codage (Claude, Copilot, Cursor, Codex...) grâce à l'accès au code source complet et aux fichiers de contexte inclus (AGENTS.md) qui donnent au LLM une connaissance précise des internals du SDK
Acheter maintenant
FAQ

Questions fréquentes

Non. Robot Web Services est un service du contrôleur lui-même, il est présent sur un système standard. Il suffit que le robot soit joignable sur le réseau et qu'un compte utilisateur ait les droits nécessaires.

Oui. Les contrôleurs IRC5 en RobotWare 6 exposent RWS 1.0, les contrôleurs OmniCore en RobotWare 7 exposent RWS 2.0. Le SDK couvre les deux derrière une seule API, vous indiquez simplement la version dans les paramètres de connexion.

Non. La bibliothèque est 100% managée et dialogue directement avec le contrôleur. RobotStudio ne sert que si vous voulez tester sur un contrôleur virtuel plutôt que sur un vrai robot.

Oui. Vous pouvez lire et écrire variables, persistants et constantes, y compris les robtarget et les types record, et rechercher les symboles du programme chargé.

De .NET Framework 3.5 à .NET 9, plus .NET Standard 2.0 et 2.1 et .NET Core 3.0. Les méthodes asynchrones sont disponibles partout sauf sur .NET Framework 3.5 et 4.0.

Vous pouvez déplacer le robot en manuel, définir une position cible, et démarrer ou arrêter les programmes RAPID qui contiennent les mouvements. Le pilotage temps réel continu relève d'Externally Guided Motion, en cours de développement.
GitHub

Les bibliothèques sur GitHub

Chaque paquet est publié sur GitHub avec son journal des modifications.

Dernières versions

ABB.NET

Dernière version

underautomation / ABB.NET

Public

Bibliothèque .NET du SDK ABB.

C#Voir sur GitHub

underautomation / ABB.py

Public

Package Python du SDK ABB.

PythonVoir sur GitHub

Commencez maintenant !

Démarrez l'essai de 30 jours aujourd'hui, ou demandez un devis.

Essayer gratuitementCommanderDemander un devisContactez-nous