UnderAutomation
Eine Frage?

[email protected]

Kontakt
UnderAutomation
⌘Q

Staubli SDK

GitHub stars
300 (EUR)350 (USD)

300

fürs Leben

180

für Universitäten (40 % Rabatt)

Erstellen Sie schnell .NET -Anwendungen, die mit Ihrem Staubli -Industrie -Roboter kommunizieren.

Wählen Sie die richtige Lizenz für Ihr Projekt
BestellenAngebot anfordern

.NET

Python

LabVIEW

Siehe Bedingungen und Konditionen
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.
ROS

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

Staubli Communication Library

Implementiert die nativ auf Staubli-Robotern verfügbaren Ethernet-Protokolle
100% managed assembly
Schnelle Integration mit den Controllern CS8 und CS9
Moderne, dokumentierte Bibliothek
Keine physische USB-Stick-Lizenz erforderlich

  1. Übersicht Staubli SDK Funktionen: SOAP-Protokoll für CS8 & CS9

    Bewegen Sie den Roboter

    Remote antreten und gemeinsame Bewegungsbefehle oder kartesische Koordinaten senden.
    position.Px += 0.1; // Move 10 cm in X direction
    Frame position2 = new Frame(); // fake position for circular move example
    // Power on the controller
    PowerReturnCode powerOnStatus = controller.Soap.SetPower(power: true);
    // Move linear to cartesian position
    IMoveResult moveLResult = controller.Soap.MoveL(
    robot: 0,
    position,
    motionDesc
    );
    // Move joints to cartesian position
    IMoveResult moveJCResult = controller.Soap.MoveJC(
    robot: 0,
    position,
    motionDesc
    );
    // Move joints to joint position
    IMoveResult moveJResult = controller.Soap.MoveJJ(
    robot: 0,
    joints,
    motionDesc
    );
    // Move Circular
    IMoveResult moveCResult = controller.Soap.MoveC(
    robot: 0,
    position,
    position2,
    motionDesc
    );
    // Stop motion
    MotionReturnCode stopStatus = controller.Soap.StopMotion();
    // Reset motion
    MotionReturnCode resetStatus = controller.Soap.ResetMotion();
    // Restart motion
    MotionReturnCode restartStatus = controller.Soap.RestartMotion();
    }
    }
    Click to see the full code

    Anwendungen manipulieren

    Laden, Starten, Stoppen, Pausieren und Beaufsichtigen der Ausführung von Aufgaben.
    StaubliController controller = new StaubliController();
    var parameters = new ConnectionParameters("192.168.0.1");
    // Load project from disk
    controller.Soap.LoadProject("Disk://myProject/myProject.pjx");
    ValApplication[] applications = controller.Soap.GetValApplications();
    foreach (var application in applications)
    Console.WriteLine($"Application: {application.Name}, Running: {application.IsRunning}");
    // Unload all applications
    controller.Soap.StopAndUnloadAll();
    // Stop running application
    controller.Soap.StopApplication();
    // Get tasks
    ControllerTask[] tasks = controller.Soap.GetTasks(); // Get all tasks
    foreach (var task in tasks)
    {
    Console.WriteLine($"Task: {task.Name}");
    Console.WriteLine($"reated by: {task.CreatedBy}"); // i.e. Disk://myProject/myProject.pjx
    Console.WriteLine($"Line: {task.ProgramLine}");
    Console.WriteLine($"State: {task.State}");
    }
    // Kill task
    controller.Soap.TaskKill(tasks[0].Name, tasks[0].CreatedBy);
    // Suspend task
    controller.Soap.TaskSuspend(tasks[0].Name, tasks[0].CreatedBy);
    // Resume task
    controller.Soap.TaskResume(tasks[0].Name, tasks[0].CreatedBy);
    }
    }
    Click to see the full code

    Aktuelle Position

    Erhalten Sie die aktuelle Position des Roboters, einschließlich der kartesischen Koordinaten und der Winkel der Gelenke.
    StaubliController controller = new StaubliController();
    var parameters = new ConnectionParameters("192.168.0.1");
    // Get the current flange position of the first robot in world coordinates
    CartesianJointPosition position = controller.Soap.GetCurrentCartesianJointPosition(robot: 0, tool: null, frame: null);
    double[] jointPosition1 = position.JointsPosition; // Joint position in radians
    CartesianPosition cartesianPosition = position.CartesianPosition;
    Console.WriteLine($"X: {cartesianPosition.X}, Y: {cartesianPosition.Y}, Z: {cartesianPosition.Z}");
    Console.WriteLine($"Rx: {cartesianPosition.Rx}, Ry: {cartesianPosition.Ry}, Rz: {cartesianPosition.Rz}");
    // ---------------
    // Get only the current joint position of the first robot
    double[] jointPosition2 = controller.Soap.GetCurrentJointPosition(robot: 0);
    // ---------------
    // Get the joint ranges (min/max angle of each joint)
    controller.Soap.GetJointRange(robot: 0);
    }
    }
    Click to see the full code

    Berechnen Sie die kartesische Position aus den Winkeln der Gelenke und umgekehrt.

    Berechnen Sie die kartesische Position aus den Winkeln der Gelenke und umgekehrt.
    double[] joints = controller.Soap.GetCurrentJointPosition(robot: 0);
    JointRange range = controller.Soap.GetJointRange(robot: 0);
    // Get forward kinematics
    IForwardKinematics fk = controller.Soap.ForwardKinematics(
    robot: 0, // Index of the robot (0 for the first robot)
    joints // double[] of joint positions in radians
    );
    // Position matrix
    Frame position = fk.Position;
    // Position configuration
    Config config = fk.Config; // i.e. Righty/Lefty, Elbow Positive/Negtive, ...
    // -----------------
    // Get inverse kinematics
    IReverseKinematics ik = controller.Soap.ReverseKinematics(
    robot: 0, // Index of the robot (0 for the first robot)
    joints,
    position,
    config,
    range
    );
    if (ik.Result == ReversingResult.Success)
    foreach (double joint in ik.Joint) Console.WriteLine(joint);
    }
    }
    Click to see the full code

    Informationen

    Erhalten Sie die Eigenschaften von Controllern und gesteuerten Robotern, einschließlich Modell, Softwareversion, Stromversorgungsstatus und mehr.
    StaubliController controller = new StaubliController();
    var parameters = new ConnectionParameters("192.168.0.1");
    Robot[] robots = controller.Soap.GetRobots(); // Get all robots driven by the controller
    foreach (var robot in robots)
    {
    Console.WriteLine($"Arm: {robot.Arm}"); // i.e. TX2-140
    Console.WriteLine($"Mount type: {robot.MountType}"); // i.e. Floor, Ceiling, Wall
    Console.WriteLine($"Kinematic: {robot.Kinematic}"); // i.e. ANTHROPOMORPH6, SCARA, ...
    // see Robot class for more properties
    }
    // ---------------
    Parameter[] controllerParams = controller.Soap.GetControllerParameters(); // Get controller parameters
    foreach (var param in controllerParams)
    Console.WriteLine($"{param.Name} = {param.Value}"); // i.e. CycleTime = 0.004s
    // ---------------
    DhParameters[] dhParameters = controller.Soap.GetDhParameters(robot: 0); // Get DH parameters of the first robot
    foreach (var dh in dhParameters)
    Console.WriteLine($"{dh.Alpha} - {dh.Beta} - {dh.Theta} - {dh.A} - {dh.D}");
    }
    }
    Click to see the full code

    Eingänge / Ausgänge

    Listen, lesen und schreiben Sie Einträge und Ausgänge des Controllers
    StaubliController controller = new StaubliController();
    var parameters = new ConnectionParameters("192.168.0.1");
    // Get all physical I/O ports of the controller
    PhysicalIo[] ios = controller.Soap.GetAllPhysicalIos();
    foreach (var io in ios)
    {
    Console.WriteLine($"Name: {io.Name}");
    Console.WriteLine($"Type: {io.Description}");
    Console.WriteLine($"Lockable: {io.Lockable}"); // i.e. true, false
    Console.WriteLine($"Description: {io.TypeStr}"); // i.e. din, dout, ain, serial
    }
    // -----------------
    // Read I/Os value
    PhysicalIoState[] values = controller.Soap.ReadIos(new[] { @"Socket\test", @"Serial\0", @"FastIO\fOut1", @"CpuUsage\val3" });
    foreach (var value in values)
    {
    Console.WriteLine("Value: " + value.Value);
    Console.WriteLine("Locked: " + value.Locked);
    Console.WriteLine("Simulated: " + value.Simulated);
    }
    // -----------------
    // Write I/Os value
    PhysicalIoWriteResponse[] response = controller.Soap.WriteIos(new[] { "my_io_1", "my_io_2" }, new double[] { 1.0, 0.0 });
    foreach (var res in response)
    Console.WriteLine($"Success: {res.Success} - Found: {res.Found}");
    }
    }
    Click to see the full code
  2. Durchsuchen Sie die 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.

  3. Herunterladen und testen

    Laden Sie über Nuget herunter
    Laden Sie über Nuget herunter

    Fügen Sie dieses SDK einfach über den Nuget -Paket -Manager zu Ihrem Visual Studio -Projekt hinzu.

    Siehe auf Nuget
    Beispiele zu GitHub
    Beispiele zu GitHub

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

    Beispiel für Windows -Anwendungen
    Beispiel für Windows -Anwendungen

    Ermöglicht Ihnen, alle Funktionen des SDK mit einer einfachen Schnittstelle zu testen. Das Beispiel wird in "Selbstgebiet" und "Einzeldatei" mit .NET 8 kompiliert. Die Anwendung ist ohne Installation tragbar.

    Durch das Herunterladen akzeptieren Sie die allgemeinen Nutzungsbedingungen:
    Siehe Bedingungen und Konditionen
    UnderAutomation.Staubli.Showcase.Forms.exe (139 MB)
  4. Angebot einholen und bestellen

    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

    300 (EUR)$350 (USD)

    300

    fürs Leben

    180

    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).
    Jetzt kaufen
    Am beliebtesten

    Pro-Lizenz

    600 (EUR)$700 (USD)

    600

    900
    fürs Leben

    360

    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

    1200 (EUR)$1400 (USD)

    1200

    fürs Leben

    720

    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

Integrieren Sie Roboter von Universal Robots, Fanuc, Yaskawa, ABB oder Staubli ganz einfach in Ihre .NET-, Python-, LabVIEW- oder Matlab-Anwendungen

UnderAutomation
KontaktLegal

© All rights reserved.