smyers Posted February 19, 2013 Share Posted February 19, 2013 Hi, newbie question here, I'm using a GeoBrickLV NSLS2 controller and an ABTech AT-200 servo motor. In my motion program, I see that my motor won't move any slower than 615cts/sec, while I can use the jog ribbon to move it as slow as 10cts/sec (this motor's encoder has 3.6million counts/360 degrees). I couldn't find anything obvious that would keep my motor from moving slower than 615cts/sec in a program. Any ideas? Thanks, -Stu Link to comment Share on other sites More sharing options...
tahoe brian Posted February 19, 2013 Share Posted February 19, 2013 Perhaps you should post your program here, as well as any information about your axis definition statements if you are using them. Link to comment Share on other sites More sharing options...
smyers Posted February 20, 2013 Author Share Posted February 20, 2013 Perhaps you should post your program here, as well as any information about your axis definition statements if you are using them. Sure thing. The program basically rotates the motor, and triggers a shutter with position compare. Variable P1 is where the motor starts (in degrees... 10000cts/degree) P2 is how far it moves, P3 is the time for it to move. Pretty simple program. &1 Undefine All #1->10000X #define PosCompA M108 #define PosCompB M109 #define PosCompArm M111 #define PosCompState M112 Open Prog 1 Clear P99=1 ;alldone P1=(M101/10000) PosCompA=(100000000) ;set distant to avoid stutter PosCompB=(100000100) ;set distant to avoid stutter dwell 10 Rapid Inc X (-0.01) ;backup dwell 10 Linear Inc TA 0 TS 0 TM (P3) PosCompState=(0) PosCompA=((P1*10000)+0) PosCompB=((P1*10000)+(P2*10000)+0) X ((P2+0.02)) ;move dwell 10 PosCompA=(100000000) ;set distant PosCompB=(100000100) ;set distant dwell 10 Rapid Inc X (-0.01) ;backup P1=(P1+P2) ;increment P99=0 ;alldone Close Link to comment Share on other sites More sharing options...
steve.milici Posted February 20, 2013 Share Posted February 20, 2013 The minimum move time for any move in linear blended mode in Turbo PMAC is .5ms. You could try to specify a smaller move distance to get a smaller feed rate. Also note that an indefinite jog move as specified by Ixx22 can be very small. Link to comment Share on other sites More sharing options...
smyers Posted February 20, 2013 Author Share Posted February 20, 2013 The minimum move time for any move in linear blended mode in Turbo PMAC is .5ms. You could try to specify a smaller move distance to get a smaller feed rate. Also note that an indefinite jog move as specified by Ixx22 can be very small. Thanks for the suggestion. I'll schedule some time on the device on Monday to test that. The troubled moves are typically pretty large (180 degrees, or 1,800,000 counts over 3600 seconds). Link to comment Share on other sites More sharing options...
Richard Naddaf Posted February 20, 2013 Share Posted February 20, 2013 How is the encoder processing done in PMAC? Is there fractional data? Is it quadrature, sinusoidal, or serial data? Theoretically, the slowest programmed velocity can be least significant bit (LSB) per servo cycle. e.g.:(1/32) of a count per servo cycle with quadrature and 1/T processing. What is your servo clock set to? The lower the servo clock the lower is the minimum velocity programmable. In the Turbo SRM (page 455), it is stated that for linear moves TM ranges from 0.5 msec to 2^23 msec (~2 hours 20 minutes). You want to make sure that you are not violating that. Also, you might want to put some values into TA or TS. Attached, is a slightly modified version of your program. I went down to 10 cts/sec (at 2.5 KHz servo). There is some quantization noise obviously.Slow Velocity Move Example.pdf Link to comment Share on other sites More sharing options...
Recommended Posts