Skip to content

.NET library to communicate with Staubli CS8/CS9 controllers using the native SOAP ethernet interface. Nothing to install on the robot. 100% managed assembly with no dependencie: pay once for a company-wide license, then use foreverβ€”no runtime or development fees, unlimited robots, developers, and redistributed software

License

Notifications You must be signed in to change notification settings

underautomation/Staubli.NET

Repository files navigation

Staubli Communication SDK

UnderAutomation Staubli communication SDK

NuGet .NET Framework .NET Standard .NET Core .NET Versions

πŸ€– Effortlessly Communicate with Staubli Robots

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


πŸš€ TL;DR

βœ… 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)

πŸ“₯ Download Example Applications

Explore precompiled examples from the GitHub Releases

βœ… Windows Forms Showcase

πŸ”Ή Download: πŸ“₯ UnderAutomation.Staubli.Showcase.Forms.exe


✨ Features

πŸ”Œ Connection

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);

UnderAutomation Staubli communication SDK


πŸ” System Information

  • 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);

UnderAutomation Staubli communication SDK


πŸ“ Position & Joints

  • GetCurrentJointPosition()
  • GetCurrentCartesianJointPosition()
CartesianJointPosition pos = controller.Soap.GetCurrentCartesianJointPosition(robot: 0);
double[] joints = pos.JointsPosition;

UnderAutomation Staubli communication SDK


🧠 Kinematics

  • 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);

UnderAutomation Staubli communication SDK


βš™οΈ Motion Control

  • 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);

UnderAutomation Staubli communication SDK


πŸ“‘ I/O Management

  • List physical I/Os: GetAllPhysicalIos()
  • Read: ReadIos(...)
  • Write: WriteIos(...)
PhysicalIo[] ios = controller.Soap.GetAllPhysicalIos();
PhysicalIoWriteResponse[] res = controller.Soap.WriteIos(new[] { "out1" }, new[] { 1.0 });

UnderAutomation Staubli communication SDK


πŸ“¦ Application Management

  • 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();

UnderAutomation Staubli communication SDK


πŸ” Task Lifecycle

  • List tasks: GetTasks()
  • Control: TaskKill, TaskSuspend, TaskResume
ControllerTask[] tasks = controller.Soap.GetTasks();
controller.Soap.TaskKill(tasks[0].Name, tasks[0].CreatedBy);

βœ… Compatibility

  • Controllers: CS8, CS9
  • OS: Windows, Linux, macOS
  • .NET Versions: Framework 3.5+, .NET Core 2.0+, .NET 5/6/8/9

πŸ“œ License

⚠️ Commercial license required πŸ”— View EULA


🀝 Contributing

You're welcome to:

  • Submit issues & PRs
  • Share feature suggestions
  • Help improve documentation

πŸ‘‰ Contribute on GitHub


πŸ“¬ Need Help?


⭐ Star the repo if useful πŸ‘οΈ Watch for updates

About

.NET library to communicate with Staubli CS8/CS9 controllers using the native SOAP ethernet interface. Nothing to install on the robot. 100% managed assembly with no dependencie: pay once for a company-wide license, then use foreverβ€”no runtime or development fees, unlimited robots, developers, and redistributed software

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages