Dear Colleagues,
As described in attached file, when we run “Single Main Program” with vision commands everything works perfect but in long cycle time.
In order to reduce the cycle time, we decided to divide program into two programs. But when we separate the program into two as main and sub programs, sub vision program snaps the picture as supposed but main program motions uses the data of previously snapped offset data. Therefore robot goes to wrong point and tries to pick workpiece from last image point. Always motions headed to Vision Offset points of previous snapped workpiece.
Sub program needs to work in the background by using “RUN” command and robot must pick up quickly as soon as reaching to camera cabinet without any wait.
Our questions are;
why does robot get previous snapped position data instead of actual one?
Is there any config or feature that can be setup within robot screen to eliminate this issue? Such as “Run command” variables..
How can we refresh the vision data each time when robot motion needs it?
Please kindly check enclosed file to determine where our fault is.
If programs need to be corrected, kindly show us by writing in order to realize our fault and learn well.
Goal of vision process
Workipiece is a T shape and has two sides as, Up & Down
Vision will take the picture and will send the data to the main program
According to VR Offset details, robot will go and pick up the workpiece upon the sides information taken from Model ID
DI[102:PARCA HAZIR] =WORKPIECE READY
DO[107:KNV.CALISTIR] = CONVEYOR RUN
We only use these two signals to qualify if the workpiece is ready to be taken picture and afterwards we run conveyor for the next workpiece to take place after robot picks up.
Yesterday we got this reply after we ask for help
But the guy didn't show us how to correct or we don't understand how to apply.
Please have a look at.
Your problem is clear.
You start an additional task (RUN CAMERA)
17: RUN CAMERA ;
18: R[10]=VR[1].MODELID ;
19: IF R[10]=7,JMP LBL[5] ;
20: IF R[10]=8,JMP LBL[6] ;
18: LBL[5] ;
19: ;
20:L P[23] 2000mm/sec FINE VOFFSET,VR[1] ;
21:L P[4:ALMA_5] 500mm/sec FINE VOFFSET,VR[1] ;
But you does NOT wait in your main program for VP completion.
You go ahead without waiting. Extremely dangerous, because
robot use OLD/previous result and move to target.
(by the way: your line numbers are not correct)
The original/working program wait for completion in line 17
15: VISION RUN_FIND 'TAH_3838H' ;
16: WAIT .50(sec) ;
17: VISION GET_OFFSET 'TAH_3838H' VR[1] JMP LBL[2] ;
Thanks in advance.
Regards.