The Staubli Communication SDK provides high-level access to industrial Staubli robots via the native SOAP protocol. Designed for automation engineers, researchers, and integrators, this SDK supports full motion control, I/O access, system monitoring, and application management.
π More Information: Documentation
π Available also for π¨ LabVIEW & π Python
β
Seamlessly connect to Staubli controllers using native SOAP.
β
Control movements, read/write I/Os, monitor status, and manage applications.
β
No additional licenses or Staubli software needed.
Highlights:
- β‘ Real-time SOAP communication
- π οΈ Works with .NET Framework, Core, Standard
- π Full motion lifecycle & kinematics
- π‘ Access to physical & logical I/Os
- π¦ Project & task management (VAL 3)
Explore precompiled examples from the GitHub Releases
πΉ Download: π₯ UnderAutomation.Staubli.Showcase.Forms.exe
var controller = new StaubliController();
var parameters = new ConnectionParameters("192.168.0.1");
parameters.Soap.Enable = true;
parameters.Soap.User = "default";
parameters.Soap.Password = "default";
controller.Connect(parameters);
- Get robots connected (
GetRobots()
) - Get controller parameters (
GetControllerParameters()
) - Retrieve DH parameters (
GetDhParameters()
)
Robot[] robots = controller.Soap.GetRobots();
Parameter[] controllerParams = controller.Soap.GetControllerParameters();
DhParameters[] dh = controller.Soap.GetDhParameters(robot: 0);
GetCurrentJointPosition()
GetCurrentCartesianJointPosition()
CartesianJointPosition pos = controller.Soap.GetCurrentCartesianJointPosition(robot: 0);
double[] joints = pos.JointsPosition;
- Forward Kinematics:
ForwardKinematics()
- Inverse Kinematics:
ReverseKinematics()
IForwardKinematics fk = controller.Soap.ForwardKinematics(0, joints);
IReverseKinematics ik = controller.Soap.ReverseKinematics(0, joints, fk.Position, fk.Config, range);
- Power:
SetPower(true/false)
- Motion types:
MoveL
,MoveJC
,MoveJJ
,MoveC
- Motion lifecycle:
StopMotion
,ResetMotion
,RestartMotion
controller.Soap.SetPower(true);
controller.Soap.MoveL(0, targetFrame, motionDesc);
- List physical I/Os:
GetAllPhysicalIos()
- Read:
ReadIos(...)
- Write:
WriteIos(...)
PhysicalIo[] ios = controller.Soap.GetAllPhysicalIos();
PhysicalIoWriteResponse[] res = controller.Soap.WriteIos(new[] { "out1" }, new[] { 1.0 });
- Load project:
LoadProject("Disk://myProject.pjx")
- List applications:
GetValApplications()
- Stop/unload apps:
StopApplication()
,StopAndUnloadAll()
controller.Soap.LoadProject("Disk://project.pjx");
ValApplication[] apps = controller.Soap.GetValApplications();
controller.Soap.StopAndUnloadAll();
- List tasks:
GetTasks()
- Control:
TaskKill
,TaskSuspend
,TaskResume
ControllerTask[] tasks = controller.Soap.GetTasks();
controller.Soap.TaskKill(tasks[0].Name, tasks[0].CreatedBy);
- Controllers: CS8, CS9
- OS: Windows, Linux, macOS
- .NET Versions: Framework 3.5+, .NET Core 2.0+, .NET 5/6/8/9
You're welcome to:
- Submit issues & PRs
- Share feature suggestions
- Help improve documentation
π Contribute on GitHub
- π Documentation
- π© Contact Support