UnderAutomation
Eine Frage?

[email protected]

Kontakt
UnderAutomation
⌘Q

Softwarebibliothek

Staubli

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

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

Übersicht über die Funktionen

Bewegen Sie den Roboter

Remote antreten und gemeinsame Bewegungsbefehle oder kartesische Koordinaten senden.
// 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();

Anwendungen manipulieren

Laden, Starten, Stoppen, Pausieren und Beaufsichtigen der Ausführung von Aufgaben.
// 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);

Aktuelle Position

Erhalten Sie die aktuelle Position des Roboters, einschließlich der kartesischen Koordinaten und der Winkel der Gelenke.
// 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);

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

Berechnen Sie die kartesische Position aus den Winkeln der Gelenke und umgekehrt.
// 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);

Informationen

Erhalten Sie die Eigenschaften von Controllern und gesteuerten Robotern, einschließlich Modell, Softwareversion, Stromversorgungsstatus und mehr.
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}");

Eingänge / Ausgänge

Listen, lesen und schreiben Sie Einträge und Ausgänge des Controllers
// 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}");

Durchsuchen Sie die Dokumentation

Durchsuchen Sie die Dokumentation

Mit der Dokumentation können Sie sich schnell mit der Bibliothek entwickeln. Die gleiche Funktion ist in allen sorgfältigen Sprachen erhältlich.

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)

Angebot einholen und bestellen

Am beliebtesten

Lizenzstandort

990 € (EUR)$1090 (USD)

990

fürs Leben

594

für Universitäten (40 % Rabatt)

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.
1 Jahr Wartung inklusive (Zugriff auf Updates)
Kontaktieren Sie uns für eine Zahlung per Banküberweisung. Sobald Sie die Lizenz für dieses SDK erworben haben, erhalten Sie Ihre Lizenznummer und die Rechnung per E-Mail.
Angebot • Bestellung

Lizenz für den Zugang zum Quellcode

9900 € (EUR)$11 900 (USD)

9900

fürs Leben

5940

für Universitäten (40 % Rabatt)

Vollständiger interner Code der Bibliothek in C#
Visual-Studio-Lösung, die 110.000 Zeilen Code umfasst, der über mehrere Jahre hinweg entwickelt wurde
Sie können diesen Quellcode verändern und in Ihrer Anwendung verwenden, wobei die Einschränkungen in den Nutzungsbedingungen festgelegt sind.
Angebot • Bestellung

Integrieren Sie problemlos Universal Robots-, Fanuc-, Yaskawa- oder Staubli-Roboter in Ihre .NET-, Python-, LabVIEW- oder Matlab-Anwendungen

UnderAutomation
KontaktPreise • VertriebspartnerAngebot • BestellungLegal

© All rights reserved.