Sergei:
I was just talking about this "reading ahead issue" on another thread. I don't know if the developers of robot software actually come down to the real world and do some programming.
On one of the jobs that I did and I had exactly what you described and this is what I did. BTW it all depends on the application and speeds and blah blah blah.
The main thing here is to delay the processing time
One more thing, Are you doing all this with a PLC or directly to robot I/O ?
1) Write the question for part present or any handshake on a different .jbi. Basically you are delaying the processor when CALLing a routine
2) Write some kind of a loop where you confirm your I/O, and use a TIMER=0.01
3) I know you dont want to use PL=0 because that kills your cycle time. Use a TIMER=0.01. You'll see the robot pause but believe me, is less than a PL=0
Do this test. Write a program, say 10 points using pl=0 and run it, then use the same points without PL and add the timer after every point. You'll see
4)I'm guessing you are using P vars, Using your Pxxx for pick up, make a point before Pxxx - 20 mm. Then ask your questions between Pxxx-20 and Pxxx
Good luck
I know exactly what you are going through
5)Call Motoman, there is a way to get rid of the read ahead but that might cost you $$$$