UnderAutomation
Eine Frage?

[email protected]

Kontakt
UnderAutomation
⌘Q
ABB

ABB SDKSteuern Sie ABB-Roboter aus Ihrer eigenen Software

Erstellen Sie schnell .NET und Python Anwendungen, die mit Ihrem ABB Industrieroboter kommunizieren, auf IRC5 wie auf OmniCore. Eine fertige Softwarebibliothek: Ihr PC spricht über das Netzwerkkabel mit dem Roboter.

Kostenlos testenPreise ansehen

Ab 800 € / $1000, einmalige Zahlung

Nichts auf dem Roboter zu installieren
30 Tage kostenlos testen
Unbefristete Lizenz, ohne 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();
Kurz gesagt

Was Sie bekommen

Plug & Play

Verbinden Sie Ihren Roboter in nur wenigen Minuten. Kein zu installierender Lizenzmanager, kein USB-Stick. Verweisen Sie nur auf die Bibliothek.

Keine Plugins für den Roboter zu installieren

Verwendung von Netzwerkprotokollen, die vom Robotercontroller als Standard bereitgestellt werden.

PC SDKRobotStudioROS

30-tägige Testversion

Versuchen Sie es 30 Tage lang kostenlos, keine Verpflichtung, keine Registrierung erforderlich

Einmal bezahlen, für immer benutzen

Unbefristete Lizenz, kein Abonnement erforderlich, unabhängig von der Anzahl der Roboter, Entwickler oder weiterverteilten Software

Funktionen

Funktionen des ABB SDK: Robot Web Services für IRC5 und OmniCore

Jede Funktion hat ein Codebeispiel. Klicken Sie darauf, um den ganzen Code zu sehen.

RAPID Variablen und Programme

RAPID Variablen und Persistents lesen und schreiben, Tasks starten und stoppen, den Programmzeiger setzen, Module laden und speichern.

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

Eingänge / Ausgänge

Digitale, analoge und Gruppensignale auflisten, lesen und schreiben. Ein Signal pulsen oder invertieren, E/A Geräte und Netzwerke durchsuchen.

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 und Kinematik

Aktuelles robtarget und jointtarget lesen, Vorwärts- und Rückwärtskinematik berechnen, den Roboter im Handbetrieb verfahren.

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

Steuerung und Sicherung

Identität und Optionen der Steuerung lesen, Uhr und Netzwerk einstellen, eine vollständige Sicherung erstellen und zurückspielen.

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

Dateisystem

Das Dateisystem der Steuerung durchsuchen, Dateien herunter- und hochladen, Dateien und Verzeichnisse anlegen, kopieren, umbenennen und löschen.

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

Ereignisprotokoll und Zustand

Das Ereignisprotokoll lesen, Betriebsart, Zustand der Steuerung und Geschwindigkeit des Roboters verfolgen.

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 und OmniCore, eine einzige API

ABB Roboter stellen Robot Web Services in zwei Versionen bereit. Das SDK deckt beide ab, derselbe Code läuft also auf einer alten IRC5 und auf einer neuen OmniCore. Nur ein Verbindungsparameter ändert sich.

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

Wie es weitergeht

Robot Web Services ist heute verfügbar. Die weiteren nativen Protokolle der ABB Steuerungen, beginnend mit Externally Guided Motion (EGM), sind in Entwicklung und kommen in dasselbe SDK.

Available

Robot Web Services

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

In Entwicklung

Externally Guided Motion (EGM)

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

Demo

Das SDK in Aktion

Video und Screenshots der Demo-Anwendung, die mit dem SDK geliefert wird.

Beispiel für Windows -Anwendungen

Kein Code nötig: Testen Sie das SDK an Ihrem Roboter mit der Demo-Anwendung.

HerunterladenDurch das Herunterladen akzeptieren Sie die allgemeinen Nutzungsbedingungen: Siehe Bedingungen und Konditionen

Beispiele zu GitHub

Die Beispiele für die Verwendung dieses SDK sind auf GitHub erhältlich

Python -Beispiel

Beispiel für den Betrieb dieses SDK mit Python, um die kartesische Position eines Roboters wiederherzustellen.

Installation

Mit einem Befehl installiert

Wählen Sie Ihre Sprache. Die 30-Tage-Testversion beginnt bei der ersten Nutzung, ohne Registrierung.

.NET

NuGet-Paket für C# und VB.NET, von .NET Framework bis zum neuesten .NET.

dotnet add package UnderAutomation.ABB
Siehe auf NuGetSiehe auf GitHubAnleitung öffnen

Python

Python-Paket auf PyPI, für Windows, Linux und macOS.

pip install UnderAutomation.ABB

KI-Agenten

Skill für KI-Coding-Agenten (Claude Code, Cursor, Copilot...): Ihr Assistent kennt die API des SDK.

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

Durchsuchen Sie die Dokumentation

Mit der Dokumentation können Sie sich schnell mit der Bibliothek entwickeln. Die gleiche Funktionalität ist in allen unterstützten Sprachen verfügbar.

Durchsuchen Sie die Dokumentation

Mit der Dokumentation können Sie sich schnell mit der Bibliothek entwickeln. Die gleiche Funktionalität ist in allen unterstützten Sprachen verfügbar.

Mit .NET beginnen

Codieren Sie Ihre Anwendung in C# oder VB mit dieser 100% gemanagten Bibliothek, die frei von Abhängigkeiten ist und auf NuGet.org in der Version und Architektur Ihrer Wahl (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...) zur Verfügung steht.

Mit Python beginnen

Entwickeln Sie mithilfe dieser Bibliothek schnell ein Programm in Python, das mit Ihrem Roboter kommuniziert. Sie ist auf PyPI verfügbar.

Mit Matlab beginnen

Erlauben Sie Ihren Matlab-Skripten, den Roboter zu steuern.

Anleitungen und Praxisartikel

Kurze Antworten auf die Fragen, die Entwickler zu ABB Robotern am häufigsten stellen.

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.

Preise

Bibliotheken können kostenlos heruntergeladen und 30 Tage lang getestet werden. Nach diesem Zeitraum können Sie uns bitten, den Testzeitraum zu verlängern oder die Lizenz zu kaufen, die am besten geeignet ist: Website (nur verdeckte binäre) oder Quelle (Quellcode). Nach dem Kauf haben Sie eine einjährige Wartungszeit, mit der Sie vorrangigen Zugriff auf die Unterstützung und die Möglichkeit der Aktualisierung erhalten. Wenn Sie eine Nutzungslizenz kaufen, ist sie mit einer Robotermarke verknüpft, können Sie sie für immer verwenden, ohne wiederkehrende Gebühren, unabhängig von der Anzahl der Roboter, Entwickler oder Software, die Sie Ihren Kunden umverteilen. Wenn Sie ein Händler sind und Ihren Kunden eines unserer Produkte anbieten möchten, kontaktieren Sie uns bitte, um besondere Bedingungen und Preise zu besprechen.

Standard-Site-Lizenz

•

800€fürs Leben
480€für Universitäten (40 % Rabatt)
Konzipiert für industrielle Umgebungen und bietet lebenslangen Zugriff auf alle Funktionen.
1 Jahr Wartung inklusive (Zugriff auf Updates)
Gleiche Bedingungen wie bei der Pro-Lizenz, außer dass der Support nicht priorisiert wird und die Wartung 1 Jahr beträgt.
Es gibt keine internen Quellen; Es wird nur die verschleierte DLL bereitgestellt.
Keine Unterstützung per Videokonferenz (nur per E-Mail).
Wählen Sie die richtige Lizenz für Ihr Projekt
Jetzt kaufen
Am beliebtesten

Pro-Lizenz

•

1200€
1900€
fürs Leben
720€für Universitäten (40 % Rabatt)
Für kritische Produktionsumgebungen, die vorrangigen Support und längerfristige Wartung erfordern.
3 Jahre Wartung inklusive (Zugriff auf Updates), ohne Verlängerungsaufträge während dieser Laufzeit (kein Papierkram)
Vollständiges und dauerhaftes SDK: Es ist kein wiederkehrendes Abonnement erforderlich, die Lizenz ist für immer Ihnen und funktioniert in allen Programmiersprachen für eine Robotermarke.
Kann nur von der Organisation verwendet werden, die die Lizenz an der angegebenen Postanschrift hält. Alle Teamentwickler teilen die gleiche Lizenz, unabhängig von der Anzahl der Entwicklungsmaschinen.
Jede Anwendung, die mit dem SDK entwickelt wurde, kann unbegrenzt an eine unbegrenzte Anzahl Ihrer Kunden ohne zusätzliche Kosten geliefert werden, unabhängig von der Anzahl der Roboter, die eine Verbindung herstellen können.
Die Lizenz ist eine Art Passwort, das Sie im Code aufrufen können, der die Funktionalität freischaltet. Keine zusätzliche Software zu installieren. Kein USB -Schlüssel.
Prioritärer Support (durchschnittlich <24 Stunden)
Fernunterstützung (E-Mail und bis zu 2 Stunden Videokonferenz)
Es gibt keine internen Quellen; Es wird nur die verschleierte DLL bereitgestellt.
Jederzeit Upgrade auf Source (Zahlung der Differenz)
Jetzt kaufen

Quellcodelizenz

•

2400€fürs Leben
1440€für Universitäten (40 % Rabatt)
Für völlige technische Souveränität, umfassende Individualisierung und völlige Unabhängigkeit.
Gleiche Bedingungen wie bei der Pro-Lizenz
Vollständiger interner Code der Bibliothek in C#
Visual Studio-Lösung, die Tausende von Codezeilen umfasst, die über mehrere Jahre entwickelt wurden
Sie können diesen Quellcode ändern und in Ihrer Anwendung im Rahmen der in den Allgemeinen Nutzungsbedingungen festgelegten Grenzen verwenden
Funktioniert optimal mit KI-Coding-Agenten (Claude, Copilot, Cursor, Codex...) dank vollständigem Quellcode-Zugriff und enthaltener Kontextdateien (AGENTS.md), die dem LLM genaues Wissen über die SDK-Interna geben
Jetzt kaufen
FAQ

Häufige Fragen

Nein. Robot Web Services ist ein Dienst der Steuerung selbst und auf einem Standardsystem vorhanden. Der Roboter muss nur im Netzwerk erreichbar sein und ein Benutzerkonto die nötigen Rechte haben.

Ja. IRC5 Steuerungen mit RobotWare 6 stellen RWS 1.0 bereit, OmniCore Steuerungen mit RobotWare 7 stellen RWS 2.0 bereit. Das SDK deckt beide hinter einer API ab, Sie setzen nur die Version in den Verbindungsparametern.

Nein. Die Bibliothek ist zu 100% verwaltet und spricht direkt mit der Steuerung. RobotStudio ist nur nützlich, wenn Sie gegen eine virtuelle Steuerung statt gegen einen echten Roboter testen wollen.

Ja. Sie können Variablen, Persistents und Konstanten lesen und schreiben, robtarget und Record Typen eingeschlossen, und die Symbole des geladenen Programms durchsuchen.

Von .NET Framework 3.5 bis .NET 9, dazu .NET Standard 2.0 und 2.1 sowie .NET Core 3.0. Die asynchronen Methoden gibt es überall außer auf .NET Framework 3.5 und 4.0.

Sie können den Roboter im Handbetrieb verfahren, eine Zielposition setzen und RAPID Programme starten oder stoppen, die die Bewegung enthalten. Kontinuierliche Echtzeitsteuerung ist Aufgabe von Externally Guided Motion, das in Entwicklung ist.
GitHub

Die Bibliotheken auf GitHub

Jedes Paket wird auf GitHub mit seinem Änderungsprotokoll veröffentlicht.

Neueste Versionen

ABB.NET

Neueste Version

underautomation / ABB.NET

Public

.NET-Bibliothek des ABB-SDK.

C#Auf GitHub ansehen

underautomation / ABB.py

Public

Python-Paket des ABB-SDK.

PythonAuf GitHub ansehen

Legen Sie jetzt los!

Starten Sie heute die 30-Tage-Testversion, oder fordern Sie ein Angebot an.

Kostenlos testenBestellenAngebot anfordernKontakt