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 controllerPowerReturnCode powerOnStatus = controller.Soap.SetPower(power: true);// Move linear to cartesian positionIMoveResult moveLResult = controller.Soap.MoveL(robot: 0,position,motionDesc);// Move joints to cartesian positionIMoveResult moveJCResult = controller.Soap.MoveJC(robot: 0,position,motionDesc);// Move joints to joint positionIMoveResult moveJResult = controller.Soap.MoveJJ(robot: 0,joints,motionDesc);// Move CircularIMoveResult moveCResult = controller.Soap.MoveC(robot: 0,position,position2,motionDesc);// Stop motionMotionReturnCode stopStatus = controller.Soap.StopMotion();// Reset motionMotionReturnCode resetStatus = controller.Soap.ResetMotion();// Restart motionMotionReturnCode restartStatus = controller.Soap.RestartMotion();
Anwendungen manipulieren
Laden, Starten, Stoppen, Pausieren und Beaufsichtigen der Ausführung von Aufgaben.
// Load project from diskcontroller.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 applicationscontroller.Soap.StopAndUnloadAll();// Stop running applicationcontroller.Soap.StopApplication();// Get tasksControllerTask[] tasks = controller.Soap.GetTasks(); // Get all tasksforeach (var task in tasks){Console.WriteLine($"Task: {task.Name}");Console.WriteLine($"reated by: {task.CreatedBy}"); // i.e. Disk://myProject/myProject.pjxConsole.WriteLine($"Line: {task.ProgramLine}");Console.WriteLine($"State: {task.State}");}// Kill taskcontroller.Soap.TaskKill(tasks[0].Name, tasks[0].CreatedBy);// Suspend taskcontroller.Soap.TaskSuspend(tasks[0].Name, tasks[0].CreatedBy);// Resume taskcontroller.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 coordinatesCartesianJointPosition position = controller.Soap.GetCurrentCartesianJointPosition(robot: 0, tool: null, frame: null);double[] jointPosition1 = position.JointsPosition; // Joint position in radiansCartesianPosition 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 robotdouble[] 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 kinematicsIForwardKinematics fk = controller.Soap.ForwardKinematics(robot: 0, // Index of the robot (0 for the first robot)joints // double[] of joint positions in radians);// Position matrixFrame position = fk.Position;// Position configurationConfig config = fk.Config; // i.e. Righty/Lefty, Elbow Positive/Negtive, ...// -----------------// Get inverse kinematicsIReverseKinematics 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 controllerforeach (var robot in robots){Console.WriteLine($"Arm: {robot.Arm}"); // i.e. TX2-140Console.WriteLine($"Mount type: {robot.MountType}"); // i.e. Floor, Ceiling, WallConsole.WriteLine($"Kinematic: {robot.Kinematic}"); // i.e. ANTHROPOMORPH6, SCARA, ...// see Robot class for more properties}// ---------------Parameter[] controllerParams = controller.Soap.GetControllerParameters(); // Get controller parametersforeach (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 robotforeach (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 controllerPhysicalIo[] 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, falseConsole.WriteLine($"Description: {io.TypeStr}"); // i.e. din, dout, ain, serial}// -----------------// Read I/Os valuePhysicalIoState[] 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 valuePhysicalIoWriteResponse[] 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
Herunterladen und testen

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
Siehe Bedingungen und Konditionen
Angebot einholen und bestellen
Am beliebtesten
Lizenzstandort
990 € (EUR) • $1090 (USD)
990
€
fürs Leben594
€
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.
Lizenz für den Zugang zum Quellcode
9900 € (EUR) • $11 900 (USD)
9900
€
fürs Leben5940
€
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.