Your program gets the old data because you are not waiting for the vision process to complete, thus running old offsets. Its like firing a gun without aiming it. Likely into your own foot.
You need to interlock the two programs together. This can be done with a flag bit or a register.
I've modified your programs to include an interlock. Take out all those timers, every time I see this in the field it means that there is spaghetti code ahead.
Also, your program now has no way of failing gracefully if the vision can't find anything. I'll leave adding that as an exercise to the user.
1st (main) program.
1: LBL[1] ;
2: UFRAME_NUM=4 ;
3: UTOOL_NUM=4 ;
4: RO[3:YUKLEME AC]=ON ;
5: RUN CAM ;
6:L PR[1:HOME_POS] 2000mm/sec CNT100 ;
7: LBL[30] ;
8: R[20:KNV_CNTR]=0 ;
9:L P[1] 2000mm/sec CNT20 ;
10: WAIT DI[102:PARCA HAZIR]=ON ;
11: ;
12: LBL[2] ;
13: IF R[20:KNV_CNTR]>=1,JMP LBL[7] ;
14: R[20:KNV_CNTR]=R[20:KNV_CNTR]+1 ;
15: WAIT .50(sec) ; <-- Not needed.
: WAIT F[1:CAM INTERLOCK]=ON ; <-- New addition.
16: R[10]=VR[1].MODELID ;
17: WAIT .50(sec) ; <-- Not needed.
18: IF R[10]=7,JMP LBL[5] ;
19: IF R[10]=8,JMP LBL[6] ;
20: ;
21: LBL[7] ;
22: DO[107:KNV.CALISTIR]=PULSE,1.0sec ;
23: JMP LBL[30] ;
24: ;
25: LBL[5] ;
26: ;
27:L P[2] 2000mm/sec FINE VOFFSET,VR[1] ;
28:L P[3:ALMA_5] 500mm/sec FINE VOFFSET,VR[1] ;
29: WAIT 0.00(sec) ; <-- Not needed.
30: RO[4:YUKLEME KAPA]=ON ;
31:L P[4] 2000mm/sec FINE VOFFSET,VR[1] ;
32: ;
33:L P[5] 2000mm/sec FINE ;
34: ;
35: DO[107:KNV.CALISTIR]=PULSE,1.0sec ;
36:L PR[1:HOME_POS] 2000mm/sec CNT100 ;
37: CALL TRS_PARCA_KOYMA ;
38: ;
39: JMP LBL[1] ;
40: ;
41: ;
42: ;
43: LBL[6] ;
44: WAIT 0.00(sec) ; <-- Not needed.
45:L P[6] 1000mm/sec FINE VOFFSET,VR[1] ;
46:L P[7:ALMA_6] 500mm/sec FINE VOFFSET,VR[1] ;
47: WAIT 0.00(sec) ; <-- Not needed.
48: RO[4:YUKLEME KAPA]=ON ;
49:L P[8] 2000mm/sec FINE VOFFSET,VR[1] ;
50:L P[9] 2000mm/sec FINE ;
51: DO[107:KNV.CALISTIR]=PULSE,1.0sec ;
52:J P[10] 100% CNT50 ;
53:L P[11] 1000mm/sec FINE ;
54:L P[12:BIRAKMA] 100mm/sec FINE ;
55: WAIT 0.00(sec) ; <-- Not needed.
56: RO[3:YUKLEME AC]=ON ;
57:L P[14] 2000mm/sec CNT10 ;
58:J P[15] 100% CNT50 ;
59:L P[17] 1000mm/sec FINE ;
60: RO[3:YUKLEME AC]=OFF ;
61: WAIT 0.00(sec) ; <-- Not needed.
62:L P[18] 1000mm/sec CNT20 ;
63: RO[4:YUKLEME KAPA]=ON ;
64:J P[20] 100% CNT100 ;
65: CALL TRS_PARCA_KOYMA ;
66: JMP LBL[1] ;
Display More
Your second program.
1: R[70]=0 ;
: F[1:CAM INTERLOCK]=OFF ; <-- New addition.
2: LBL[1] ;
3: VISION RUN_FIND 'TAH_3838H' ;
4: WAIT .50(sec) ; <-- Not needed.
5: R[70]=R[70]+1 ;
6: IF R[70]>2,JMP LBL[2] ;
7: VISION GET_OFFSET 'TAH_3838H' VR[1] JMP LBL[1] ;
: F[1:CAM INTERLOCK]=ON ; <-- New addition.
8: ;
9: LBL[2] ;
Display More