⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
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