This bug has been mentioned in this forum post from 2021 Dashboard server report program as "Playing" after Safeguard Reset, but since there has never been any response from UR I thought it appropriate to file a new bug report with additional information.
Steps to reproduce:
- Load a program
- Trigger safeguard stop
- Release safeguard stop (automatic reset). Note: Teach pendant shows “Stopped”
- Query program state from dashboard server. The server should return “STOPPED”, but actually returns “PLAYING”.
Robot Serial Number:
20205501445 (same issue verified on other robots)
Polyscope version:
5.21.2
Additional details
- The server command “running” returns the correct state.
- If the robot is running in remote control and program is loaded through dashboard server, the problem does not occur until the program has been played.
Simple example
I use netcat to send queries to the dashboard server.
Contents of queries.txt:
safetyStatus
programState
running
ssj@ssj-linux:~$ # Robot is in local mode
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
STOPPED my_program.urp
Program running: false
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Triggering safeguard stop
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: SAFEGUARD_STOP
STOPPED my_program.urp
Program running: false
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Releasing safeguard stop
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
PLAYING my_program.urp
Program running: false
ssj@ssj-linux:~$ # State is now falsely reported as PLAYING
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Playing program
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
PLAYING my_program.urp
Program running: true
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Stopping program
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
STOPPED my_program.urp
Program running: false
ssj@ssj-linux:~$ # State is reported correctly again
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Switching robot to remote control
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
STOPPED my_program.urp
Program running: false
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Loading program "wait.urp"
ssj@ssj-linux:~$ echo "load wait.urp" | netcat -N 192.168.2.115 29999
Connected: Universal Robots Dashboard Server
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
STOPPED wait.urp
Program running: false
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Triggering safeguard stop
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: SAFEGUARD_STOP
STOPPED wait.urp
Program running: false
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Releasing safeguard stop
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
STOPPED wait.urp
Program running: false
ssj@ssj-linux:~$ # State is reported correctly
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Playing program
ssj@ssj-linux:~$ echo play | netcat -N 192.168.2.115 29999
Connected: Universal Robots Dashboard Server
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
PLAYING wait.urp
Program running: true
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Stopping program
ssj@ssj-linux:~$ echo stop | netcat -N 192.168.2.115 29999
Connected: Universal Robots Dashboard Server
Stopped
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
STOPPED wait.urp
Program running: false
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Triggering safeguard stop
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: SAFEGUARD_STOP
STOPPED wait.urp
Program running: false
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Releasing safeguard stop
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
PLAYING wait.urp
Program running: false
ssj@ssj-linux:~$ # State is now falsely reported as PLAYING
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Play program
ssj@ssj-linux:~$ echo play | netcat -N 192.168.2.115 29999
Connected: Universal Robots Dashboard Server
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
PLAYING wait.urp
Program running: true
ssj@ssj-linux:~$
ssj@ssj-linux:~$ # Stop program
ssj@ssj-linux:~$ echo stop | netcat -N 192.168.2.115 29999
Connected: Universal Robots Dashboard Server
Stopped
ssj@ssj-linux:~$ netcat -N 192.168.2.115 29999 < queries.txt
Connected: Universal Robots Dashboard Server
Safetystatus: NORMAL
STOPPED wait.urp
Program running: false
ssj@ssj-linux:~$ # State is now reported correctly again