2012/3/30 Jeshua Lacock <[email protected]>: > > I am familiar with the latency test, that is exactly what I was referring to. > It reports two Max Jitters there and I did not know for certain that one was > for servos and the other for steppers. Thank you.
No, no, no!!! Based on the second sentence, You could not be any more wrong about those threads than You are now! Base-thread and servo-thread are not "stepper-thread" and "servomotor-thread"! That "servo-thread" name also got me confused at the beginning, I do not know, why does it have exactly such a name... IMHO for easier understanding, they might be called "dumb-thread" and "smart-thread" or something similar. Here is short description, what the "thread" is: http://www.linuxcnc.org/docs/devel/html/man/man9/threads.9.html I will try to explain. The main difference between base and servo thread is that base thread cannot do floating point calculations. All the motion tasks, which calculate joint positions and basically all the HAL functions that require some logics and calculations, cannot be done in base-thread. In simple words, base thread can only do very primitive things, like checking, if input pin has changed its state or it can change the state of output pin. For example, it can do software counting of encoder signals and it can do software step signal generation. But bear in mind, that they are just watching for input signal and giving output signal, base-thread functions do not know, why are they doing that particular task, both of these processes still require functions in servo-thread to do all the "thinking part" - for encoder counting it will need a function that counts those pulses and represent it as a some kind of position and for step generation there has to be a function, which calculates, how many steps and how fast (at what frequency) need to be issued to reach the commanded position at required velocity. All LinuxCNC machines I have set up except plasma table retrofit are running only servo-thread, although only one of them actually has servo motors and all of them have stepper motors (also the one with servos - it is a mix). In those machines actual step generation is done be external hardware, which has 3 benefits: 1) step pulses can change their frequency much smoother; in software step generation the time distance between steps is an integer multiple of base thread length - pulse cannot be issued in a middle of the thread execution. For example, with 25 us base thread, which is running at 40 kHz, max step frequency can be 20 kHz (one period is step pulse, next period is step space). So next slowest speed possible is one period is step pulse, next two periods step space... Machine can work just fine with software pulse generation, but for fast accelerations/decelerations hardware stepping is more gentle 2) taking off the step generation load from PC improves its real-time performance 3) it is safer and less affected by any interrupts in realtime. Have You ever tried to switch on or off the control PC, when stepper power is turned on? It is one those "do not try this at home" things - I have seen motors starting to move, oscillate. What I am trying to say - it is easy to set up any kind of machine to run only servo-thread, but there is no way (I cannot think of one) to run a machine without a servo-thread. > > Does anyone know of some known settings to try disabling in CMOS to possibly > get lower numbers? My 1.0ms Max Jitter is under 9300, but if possible I would > like to get it even lower. > IMHO it is very good number already. You have max jitter of 9,3 us in a 1000 us thread, so the max deviance is less than 1%, LinuxCNC will perfectly handle that. At the moment I can remember of 2 things to do, if You want to try: 1) for Intel processors, hyperthreading might be disabled; 2) for multi-core processors, one or more processors can be isolated exclusively for real-time tasks with isolcpus parameter; http://wiki.linuxcnc.org/cgi-bin/wiki.pl?RealTime Viesturs ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
