Hello Guest it is May 12, 2021, 04:55:38 AM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - skunkworks

Pages: « 1 2 3 4
I am not that elegant on getting my point across and this is just my thoughts.
when I say 'real closed loop'  I think of real machines like fanuc or whatever.  The machine control commands a motion - reads back its speed/vel calculates  and adjust accordingly - this is how emc does closed loop.

step servos or steppers machines don't do that.  Emc or Mach blindly sends out pulses that relate to how the control wants the motion to go.  Yes - you can setup the step servos so that if they loose position - the machine will estop (rogersmachine interface gets you at least position - if I understand it right)...  but I don't consider that 'true close loop' as the control doesn't know its position at that point and isn't reading back and constantly correcting while moving.

I kinda like the mouse analogy above..

I don't know how mach handles the more expensive solutions..  (Galil, DSPMC, etc)

This was a quote from a motion control expert..

'I suppose PC hardware is inferior above some sample rate (maybe 10-20 KHz) but unless you have very exotic CNC mechanics those sample rates wont buy you anything.'


(we might have to agree to disagree :))

More advanced motion controls like Galil, DSPMC, etc can actually make use of the encoder signals to do electronic gearing and all the fancy stuff that the big name CNC controls do. The reason they can do so is that all real time the motion control stuff is done in dedicated hardware designed for that purpose. PCs stink at real time motion control but they are great at reading big CNC files, path planning, and user interfaces. Dedicated motion controllers suck at reading large files, the complex path planning that goes with then and user interfaces but they are great at motion control. Using PC + a motion control card gets you the best of both worlds the big name CNC control guys figured that out more than a decade ago.

*Hi - my name is sam and I am an emc person.  hi sam  ;)
Emc2 actually does that.  It uses a realtime extensions to the linux kernal.  The external hardware used by emc is 'dumb' in effect.  All the hardware does is count encoders really fast, output high frequency pwm, switch i/o and or output high step rates.  No motion control is done in it.  So - you don't need expenive hardware to do real closed loop.  Motion control, trajectory planning and such is all done in the pc.  That is why emc doesn't work with the motion cards like galil - emc wants to be the one in control.  Internally the stepper setups are actually closed loop.  It is just that the step generator feeds the info back into the motion control itself.  Some have actually unhooked that virtual connection within emc and hooked in encoders as feedback.  (that is also the reason why stepper machines that are not configured correctly will get following errors with emc2 - throws people off initally) ;)

As far as 'why you would ever want true closed loop'
My following error is .00016" peak right now - what is yours? ;)
I can estop the machine without rehoming.
while the servo drives are disabled I can move the machine around without it loosing its position.
The machine will go into estop if my following error is greater than the amount I have set.
The dro is displaying actual machine position - not what it thinks the position is.
(I am sure there is more but it is early)

BTW - because all the big stuff is done in emc - electronic gearing can be done also - so rigid tapping, gear hobbing and the like are possible.  (gear hobbing is sort of a expert level configuration though... ;))

emc was built on the philosophy 'sense, model, act'

Mach is great software.  I just like to expand the conversation.


I thought I would come in here and explain a few things.  (emc person)

Emc can count encoders in realtime.  (whether it is software (ie - printer port)  or hardware (ie mesa/pico systems hardware or such) - emc sees it the same)  On a decent computer I would expect the software counting to approach 30khz or more.  (hardware will be into the mhz)

Now - there are at least 2 ways that you could setup a closed loop stepper system within emc.

1.  trip a following error.  The commanded position in emc will be compared to the feedback position from the encoders.   If the following error is greater than the set point - the machine stops. (this is checked in the servo thread (by default the servo thread is 1khz)

2. Setup a pid loop.  this works similar to above.  If the following error is greater than the set point the machine stops.  Also - if the machine loses a few steps - this will be corrected for by the pid loop.  (it sort of sets the steppers up as servos - the step generator within emc (or hardware) is set to velocity mode instead of position.)

There is an issue with the above setup.  Steppers are not servos.  Servos - if you lag behind the pid loop will tell the servos to catch up.  If you do that with steppers - they will stall.  So - if you start to get a lag because you are pushing the steppers outside of their envelope - they will stall as the pid loops pushes them harder.

The good news is - emc still knows where the machine is.  (feedback from the encoder)  Turn it back on and go. :)

there has been talk of maybe trying adaptive feed.  where as the following error increases - the feedrate is decreased.  (I don't think anyone has tried that yet)

I really don't think it is a good solution.  IMHO - might as well go servos then.  (if you are putting in that much effort)


Pages: « 1 2 3 4