Using DI/DO asigned special functions in program

Hello,

I am very new to polyscope programming.

Is there a way to use the special functions inside a program?

I asigned the start, stop and pause function to digital inputs.
Now I would like to let a variable inside the program pause the program.
Of course variables can only set outputs, so this is not possible.

I could wire an output to the specific input to do this, but it must also be possible some other way?
There already exists the “Halt” function, but it stops the program, I only need to pause it.

On a similar note I wanted to set an output when the program is running.
There is a special function for this. But when I asign the “Prog_Running” to a DO it is no longer usable inside the program.
If I first use the DO in the program and then asign the special function it is possible, but I dont know if that is intended.

But the next problem is that I only want to set the output once (for like 200ms) when the program is running, but it gets constantly checked.
Is there a way to use a rising trigger?
(If prog_running has a rising trigger, set output for 200ms)

You can pause the program with the pause script command (which I think is not documented).

Thanks for this!
Really easy and works.

Now I only need to fix my problem with the program running.
I also noticed that Prog_Running is TRUE if the program is paused, which is also problematic.

If you set the Action in program for a digital output as High when running-low when stopped, then you see Prog-running to the right of the output and the output goes false when you pause or stop. I don’t know why it is not working for you.
One problem I had is that you cannot set an output to distinguish pause from stop, for that you have to use RTDE, primary/secondary interface or dashboard server.

You are right, it is working. Thank you.

The problem I am facing right now is that I want to trigger an output signal every time the program starts (even after a pause).
This signal has to be only short (like 500ms), I cant have it always HIGH.

As I can’t use a rising edge on Prog_Running I am at a loss how to implement this.

If you are creating a local dashboard TCP server on your robot then you can use also variables to start, pause and stop the program using socket.

image

How is the script command ‘pause’ exactly ?

Basically you are opening up the Dashboard Server within the robot program using the socket_open() command and the IP 127.0.0.1 and port 29999. Some people use a true/false loop here to loop that command until the connection is made, however waiting 0.3secs is fine then they use socket_send_string() to send pause to the dashboard server which is basically like pressing the pause button on the teach pendant, this is followed by send byte “10” which is just the newline character “\n”. This command has been depreciated (depending on version of Polyscope you are running on robot) you can use socket_send_line(“pause”) which will save you from writing an extra line of code.

Hope that helps or answered your question, and best of luck!