Just a heads up, this topic is still relevant on my side but I have not yet found time to work on this. Things have delayed a bit in time as well.
However I quite pleasantly found a few new interesting changes for the planned 2.5 release that might solve some issues with my endeavour.
As I understand correctly, with release 2.5 the following would be possible. Correct me if I am wrong:
- Have a Tray feeder (on the left) acting as the source
- Have a virtual PCB Tray (on the right) acting as the destination, set up with a pick-n-place file
- Set OpenPNP to deferred error processing
- Use a script that triggers after Pick+Alignment of the part that
1. moves the head over the tester unit, opens the tester, inserts part and raises head again
2. run the actual testing software script and wait for response
3. open tester unit, pick up part from tester, close tester unit and then
- if PASS: continue the remaining placement as if nothing happened (shouldn't be too hard?)*
- if FAIL: raise an Exception, that will cause the Job Processor to abort the placement and discard the part
- Use a script that triggers before discarding:
1. Change the discard destination dynamically to the last pick location on the source tray feeder, so that the FAIL part is put back where it came from in this placement (Not sure if that is as easy as I think it is)
- (New in 2.5) The Job Processor will try to repeat the placement (and not skip or pause like it did before?) with the next part in the feeder, doing above all over again until all output cells are filled
If that would work with "just" some scripting, I would be very delighted. If I have time again I might need to check out the test-branch on GitHub
* For extra bonus credit: Swap to the other toolhead, because the destination (on the right) might not always be reachable by the left toolhead due to machine limits.
Best Regards
Simon