Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

.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

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /