what would be the recommended way to queue ursciprts, line by line, through primary/secondary interface without interrupting running movement ?
UR will abort/interrupt current running script and execute newly received urscript immediately.
It would be great if one could queue urscipt.
Maybe a kind of ring buffer for urscript and one would get free capacity of the buffer as status update through realtime interface.
As you’ve noted this is not possible. I would look to the RTDE interface and the examples there (example_control_loop.py). of course this example and method does not allow you to stream URscript to the client interface, instead you send the data for the moves and let the program running on the robot worry about buffering and making sure each move is completed before the next one starts executing.
The problem with streaming URscript to ports 30001-30003 is that there is not a good ‘real-time’ way to get information that the previous move command completed (there is not a ‘move done’ bit you can look at in the realtime data stream coming back).
that clarifies and helps a lot.