Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Staubli CS8 Pause and IO commands

Hi Jeremy.

First of all, I hope you're all ok.

I've been trying to get the Pause and IO commands working with my CS8 controller. The programs run, but both commands are ignored. Am I missing something? 

RoboDK 4.2.3
Staubli CS8 Controller (TX60L)
Staubli Val3 InLineMove post-processor used.

I've attached the 2 compiled programs, plus the .rdk file.

Thanks for your help, Jonathan


Attached Files
.zip (Size: 3.26 KB / Downloads: 424)
.zip (Size: 3.21 KB / Downloads: 415)
.rdk   TX60L_IO_Pause_Test.rdk (Size: 482.31 KB / Downloads: 437)
Hi Jonathan,

Can you tell me what exact syntax is required by the robot controller for the Pause and IO command?
The post-processor may required some small adjustment.

I'm not sure - I'll find out if I can. If anyone else happens to know this, please add to this thread as getting info on Staubli programming seems to be difficult.


Hi Jeremy

I've had this response from Staubli re the Digital IO:

You should create a dio variable in you VAL3 application.
That variable then needs to be linked to a real physical IO before it can be used.
This can be done from the interface on the pendant (application manager – application – global data –dio) or from SRS or using the command dioLink.
This variable can then be set to true of false from a program if linked to an output.

Does RoboDk already to that as part of the programme build?


Hi Jonathan,

The Staubli VAL3 post processor automatically creates an array of data to manage digital outputs when you use the set digital output instruction.
If the post processor doesn't generate what you need it would be best if you indicate what changes you need to make and we'll update the post accordingly.

Hi Albert / Jeremy

I have made some progress - I can get the Outputs to switch (they needed to be mapped within the CS8 controller before being used), but they don't operate in the way I expected. 

When running the attached program on the controller, it switches outputs 0-3 on and off with a 0.5 second delay in between switching, then moves the arm through the sequence with no other control of the Outputs. 

I was expecting the Outputs to switch, move the arm, wait for 0.5seconds, switch the Outputs, move, wait again, switch the Outputs  etc.

Do I need to add a 'wait for move to finish' command before the IO command perhaps?

Thanks for your help,


File attached...

Attached Files
.rdk   Simple_IOv2.rdk (Size: 482.42 KB / Downloads: 379)
Hi Jonathan, 

Can you test something for me please:
Can you manually add:

in the code generated by RoboDK. 
Like in this print screen:

Look at line 25, line 32, and line 39.
If it does the trick, we could add that feature to the post-processor. 

That works.  Thank you Jeremy; that's been bugging me for ages! If you could update the post-processor, that would be great.

For anyone else that's struggling with IO on the CS8, here's a quick list of things to do for mapping the Outputs:


Open the program created in RoboDK in the Applications module on the CS8 and move down to 'Global data', then open it.


Move down to '+Outputs (16)' and open it.


Select the Output you need to map and press 'Link', then 'Edit', then select the one you want by finding it in the list.
Save the changes and 'minus' your way back to the top.

I hope that helps.

Hi Jonathan, 

I'm happy that this fixed your problem. 
This command was part of the Staubli Val3 programming manual. 

After my last message, I realized that modifying the post-processor for this issue is not necessarily the best option. 
What you could do instead is use this:

You can add this program instruction by adding a "Program Call" and using the dropdown menu to select "Insert Code". 
This option lets you insert any custom snippet of code in the generated program. 


You should end up with the exact same result as the one you modified manually. 

Let me know if it works. 

Users browsing this thread:
1 Guest(s)