Machsupport Forum
Mach Discussion => Feature Requests => Topic started by: EzCyclone on August 06, 2010, 02:31:40 PM
-
I just learned for the first time today that Mach3 was not a closed loop system. I started out my CNC build journey on CNC Zone and could swear I learned that encoders would tell Mach3 the true position and Mach3 would use that to keep the cutter in the right path. It's been a sad day for me. :) I have been working on my machine for years and am close to added encoders. (up till now to do just what I said). I will still add the encoders but wondered when if at all this might become an feature of our beloved program?
E
-
I just learned for the first time today that Mach3 was not a closed loop system.
This is normally handled in the servo controller. Mach tells the servo SYSTEM to move 1". It is up to the servo system to make sure it does move 1". Proper servo controllers do this of course.
Note: stepper motor controllers can be open loop and not ensure this.
cheers
-
But why cant the software do this. It would be a great improvement to an already amazing program. Remember the better our tools get, to better we get. Most of us don't use servos and having software that would add one more level of accuracy to our builds narrows that gap ever so slightly between us and the pros.
Evan
-
If you're using steppers, closed loop won't help you. If you are out of position with a servo, more power is applied to get back to position. If you're out of position with a stepper, it's because it didn't have enough power to begin with, and there isn't any more available to get back to position. The only way it would work would be to slow all the axis down until the out of position axis gets back to position.
But I think an even more important issue is that it would probably require a completely new version of Mach3 to implement it, and that's just not going to happen.
There are probably tens of thousands of Mach3 users using steppers who don't need closed loop. A properly designed stepper system will never lose steps or position.
If you lose steps, you're machine is underpowered. It's as simple as that. Buy the correct motors and drives to give you the performance you want. You don't need closed loop, you need the correct motors and drives to achieve the performance you want.
-
But why cant the software do this. It would be a great improvement to an already amazing program. Remember the better our tools get, to better we get. Most of us don't use servos and having software that would add one more level of accuracy to our builds narrows that gap ever so slightly between us and the pros.
Let's look at this the other way around. Why SHOULD the software have to do this for 3 -6 axes simultaneously when servo drives are perfectly capable of doing it? All this idea would do is load the CPU more; there would be no significant improvement to the machine operation.
There is also the problem of the amount of I/O traffic involved. You would have to feed the optical encoder signals (for non-steppers) back to the CPU for every axis. That would make the interface enormously more complex - for no gain. Why do that? (Could Windows handle the Real Time load? I doubt it!)
Would transferring the compute load from being distributed across every servo drive into the CPU make the system any better? Nope. We KNOW that the current approach, as used by nearly every CNC machine and robot system out there, works excellently.
To suggest that 'Most of us don't use servos' is actually misleading. If you don't use servos, what are you using? You would have to be using steppers, and ger21 has already answered that one completely. Increasing the amount of computer power used is NO substitute for having a properly designed and configured hardware system in the first place. That means having motors of the right power.
As far as I know, most stepper systems do NOT provide any feedback to anywhere - unless they have been built with encoders, which seems unlikely here. After all, how is a stepper system going to use the output of an encoder? Either the motor has the torque to step, or it doesn't. So what could a typical stepper system tell the CPU? Nothing. Don't get me wrong: stepper systems are fine - I've used them myself. All I used was a Home flag.
Cheers
-
I have a small 3 axis machine using steppers. Since I need to do fine milling for PCB's I decided to add encoders to each of the steppers
I find that I will drop an occasional step which isn't a big issue, but over the course of milling it can add up, one here, one there etc.
I want to be able to pause Mach3 when I detect I'm missing position, so I can use the external hardware I have to move back to where I should be
Since I would only be a few pulses out of position, hopefully It wont be too apparent.
My question is, how can I pause Mach3 from a digital input, I'm sure it possible
Thanks
-
I have a small 3 axis machine using steppers. Since I need to do fine milling for PCB's I decided to add encoders to each of the steppers
I find that I will drop an occasional step which isn't a big issue, but over the course of milling it can add up, one here, one there etc.
I want to be able to pause Mach3 when I detect I'm missing position, so I can use the external hardware I have to move back to where I should be
You would be far better off checking the acceleration figures for your steppers, and setting them to something which does not have this problem. Or buy bigger stepper motors.
My question is, how can I pause Mach3 from a digital input, I'm sure it possible
Have you tried Feed Hold?
Cheers
-
My system has servos. When I command say G0 X500, I see the movement in Machs DRO, but if my driver is off nothing moves physically. That is deceiving. It would be nice if the servo´s encoders pulses could be fed back to Mach and have mach inform if there are differences between what was commanded, and the real movement. This would not be closed loop with Mach. It would just be a way of warning the user if what is really happening differs from what Mach is showing.
Jorge
-
Thats basically how my system is now, with the encoders and hardware attached I can tell when I am missing pulses As far as I know mach3 cant use the feedback, so I have 3 lights mounted on my control panel that shows when an axis is out of position. Now I can tell how many steps I've missed, just wish I was able to use this information to correct the position
-
You can write a macro pump or plugin to compare the commanded position to the encoder position and pause the machine when they don't match. A plugin comes with this board.
http://rogersmachine.net/encoderinterface.html
-
when I detect I'm missing position, so I can use the external hardware I have to move back to where I should be
Since I would only be a few pulses out of position
What i have found is that the position indicated based on "pulses" by the Mach DRO is reliable. If the PC is doing it's job
then Mach is doing it's job in reguards to the position. Pulses relate to position, but......there are other influences both
electrical, mechanical , and axis tuning which come into play. When you say you are missing a few pulses, I ask
myself...... how does he know? What is the basis of a "few"?
Let me clarify based on some testing which we did when doing threading tests.
A pulse counter ( measures to parts per million / custom made ) was hooked up to simulataneously measure pulses in five places
and could show the delta difference between the readings ( "P" in red). Three indicators of axis location ( blue color) are shown ,
but a measurement based on a standard was done. Now to relate all the data can be tricky since the axis system comes into play.
So one needs to know what he is relating the data to and the variances of the all items in the "system" .
Simply put, when you get into finding or measuring small number of pulses/ movement it can get very demanding and most will not even
have the know how or equipment to do it ( including myself ) correctly.
A little off the thread .......See attached pic ;)
RICH
-
I have a shaft encoder attached to the end of the stepper. Both the step signals and the outputs from the rotary encoder are fed into a microprocessor. From the difference between commanded step ( from Mach3) and the actual rotary movement of the stepper shaft I can subtract the two to work out a missed step. I have run the combination stepper/encoder at a step rate that equates to 4 times faster than Mach3 would ever step the motors and can confirm after a few hours of running ,I have at most lost 2 step in many hundreds of thousands. it when the stepper is installed in the machine and the additional effect of inertia and mechanical loss come into play that I notice the occasional missed step
Since I trying to get the best accuracy/repeatability any loss of position is undesirable