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







