Universal Robots Forum

Unexpected behavior of popups with blocking=True inside Threads

i am watching for an error input over profinet inside a thread and want to pause a thread execution with a popup with argument blocking=True. Though it does trigger the popup it just doesn’t pause the execution of the thread, meaning it ignores the blocking=True.

Is this a bug?

Hello!

I tried from the primary/secondary interfaces with:

printf 'def test(): \n thread Thread_1(): \n sleep(3) \n popup("test block", blocking=True) \n end_freedrive_mode() \n end \n threadId_Thread_1 = run Thread_1() \n freedrive_mode() \n while(1): \n sync() \n end \nend \n' | telnet 192.168.1.150 30002

Basically sending:

def test(): 
 thread Thread_1(): 
  sleep(3) 
  popup("test block", blocking=True) 
  end_freedrive_mode() 
 end 
 threadId_Thread_1 = run Thread_1() 
 freedrive_mode() 
 while(1): 
  sync() 
 end 
end

It worked fine like that, it enters freedrive mode, waits 3 sec til a popup comes up, when I press continue, it ends the freedrive mode.

I also tested it from the GUI, on a working program, adding a thread with:

Thread_1
 Wait: 4
 Script: popup("test block", blocking= True )
 Halt

As soon as I pressed Continue on the popup, it halted.

What version of PolyScope are you running? I did it on the version 3.7, so maybe it is an older bug that has been fixed?
It could ofc be something specifically with Profinet input, but I can’t think why the popup doesn’t block the thread.
Maybe it would be helpful if you sent the program as you have it, script, urp or however else it is done.