Hello All,
I'm using a standard positioner to spin my products around while I spray them with the robot. For convenience this can mean spinning them more than 360° on the positioner - sometimes more than 2 or 3 full revolutions. When the program finishes I don't want to wait while the positioner spins back 1080° or more so I found a method to allow me to simply move the positioner to the closest multiptle of 360 and then re-master it so that it's back at zero again. I did this a few years ago but the machine hasn't had any serious use until now. The word from my customer is that its home position is now not straight, and they think it is getting worse.
So I now think that every time I remaster it there must be a small error - which when done again and again is leading to a noticeable issue. This is the code I use after I send the robot to the nearest multiple of 360:-
17: WAIT ($DMR_GRP[2].$SPC_MOVE[1]=0) ;
18: $MCR_GRP[2].$MASTER_TYPE=(1) ;
19: $DMR_GRP[2].$MASTER_COUN[1]=($DMR_GRP[2].$SPC_COUNT[1]) ;
20: $MCR_GRP[2].$CALIBRATE=(1) ;
21: WAIT ($MCR_GRP[2].$CALIBRATE=0) ;
So the idea is we wait till the robot has reached the position I send it to, then we set the master type. Then I copy the current encoder count into the master count variable and then activate the master flag. Then we wait till complete and we're good to go.
Can anyone see any major error with what I've done? All I can think of is that if I send the positioner to 720.000 but it doesn't end up bang on then I'm introducing a small error. I was going to ask about the relationship between the encoder count and degrees, because if I knew exactly how many encoder count pulses was in a full revolution then I'd know if I had a small error.
Thanks in advance for any advice!
Cheers!