duncan webster | 02/06/2019 17:55:04 |
5307 forum posts 83 photos | as this has drifted well away from the original the mods might want to start a new thread, if so be my guest. I put this forward in total ignorance hoping someone will help me to understand First: Second: Third: |
John Haine | 02/06/2019 18:47:58 |
5563 forum posts 322 photos | Mach 3, when it gets an index pulse at a known position, just starts accelerating to a velocity that it calculates from the index pulse frequency (from which it has computed the spindle revs), will cut the required thread when it hits the material. When it has moved the Z axis the requisite distance it pulls the tool out, stops feeding, and returns to the known position. If the spindle slows down when cutting starts, it's too bad! LinuxCNC has the index sensor giving 1 pulse per rev and also an encoder with much higher resolution, and continuously matches cutting speed to spindle speed. |
Joseph Noci 1 | 02/06/2019 21:18:16 |
1323 forum posts 1431 photos | I am still in pain from my 40 lashes, so am wary of leading up to another 40.... However my understanding of Mach3 (very limited indeed) says that it has one pulse per spindle rev. Does this mean it is doing time interpolation? You are perfectly correct Duncan. Mach assumes the spindle speed is constant from thread pitch to pitch, which works most of the time. Generally the machines inertia helps that be so, but where problems arise are at the start of threading. The single index fixes the start of the thread, and that must remain fixed in time and axis space, else you cut threads with mutliple helixes. Consider the threading process: Setup the tool near the workpiece, set DOC, spindle speed, etc, and turn on the spindle. Now, if yor machine has no VFD, and the motor speeds the spindle up very rapidly, the stepper has to keep pace with the spindle on the next thread, ie, the stepper acceleration must ensure the tool arrives at thread start co-incident with the spindle index pulse. The stepper has to accelerate the carriage, and all its inertia, carriage and leadscrew nut friction, etc, sufficiently fast to ensure the spindle speed and carriage position remain coupled, as though they were 'geared'. Should the stepper not keep up, and lose steps, you have to insert an acceleration curve into the stepper pulse rate ramp to prevent said problem. However... you know have no way of knowing where you are in relation to the SINGLE index pulse from the spindle...and so you lose sync and cut multiple threads.. The problem is made worse with an increase in spindle RPM and/or thread pitch. Mostly, with the sort of hobby threading we do, especially at rpm below say 200, and pitches around 'maybe' 15TPI min, we can get away with one index pulse, on most of the smaller machines. Machine with powerful motors get up to speed quicker, and the problem appears sooner..If you have a VFD you can all but eliminate the issue by accelerating the spindle more slowly. But, the type of implementaion as in Mach, has a problem with that - since it computes spindle RPM from index pulse period, and since it has to start the stepper pulse synced to the index pulse, Mach has no real way of knowing when the spindle is at speed, especially if the spindle accelerates more slowly. It cannot wait a while till the spindle is at speed before sending step pulses, as Mach would have to then accelerate the stepper to speed almost instantly , or at least within one spindle rotation. A very dodgy implementation.. What I did in my ELS implementation was - use a spindle encoder with 4096 edges per ev for inter pitch interpolation to generate stepper pulses. Use the single spindle index pulse to determine thread start and keep that cast in concrete for that thread cutting session. Then at thread start I count encoder pulses while generating accelerating step pulses to get the carriage up to speed. But, because the carriage is lagging behind in position ( due to stepper accelaration) , I will not get to the thread start point , in time. So, we accelerate the stepper faster, beyond the speed needed to cut the current pitch, to recover the lost pulses, and hence the lost time spent accelerating. The pulse count to the stepper, and the pulse count form the encoder both feed a software up/down counter. When the Spindle RPM has reached constant speed, we then look at our up/down counter, decrementing the stepper pulse rate, until the counters are equal ( delta is zero) , and we know we are at the correct thread start point. All this requires that we start the spindle for threading, with the tool at least two thread pitches away from the work piece, for the acceleration catchup. I am able to thread at 1500 RPM for a 0.5mm pitch thread , and at 400RPM for a 5mm pitch..The latter being rather scary...carriage moving at 33mm/s. Obviously those are insane and undesired speeds - I regularly cut 1mm pitch threads at 500RPM though, with nice clean threads in Stainless. I have added a feature that allows me to set the start of thread and the end of thread (right or left handed) and when thread endpoint is reached, the ELS stops the VFD 'dead' ( withing a turn or so..). This allows distracted (!) threading with no crashes...even up to a shoulder. But this is only practical at lower spindle RPM ( sub 2 or 300RPM) since the resulting mechanical stress at high inertial speeds worries me..DONT DO THIS WITH SCREW ON CHUCKS!! That fear resulted in adding another feature , letting the spindle continue running (akin to snapping the half-nut open at thread end), but stopping the leadscrew drive stepper. Press rewind to get the tool back to thread start, and press thread to continue. And it is precisely here where we need the stepper acceleration process explained above, as the spindle is already at cutting RPM, and the stepper would have to accelerate instantly to get the tool in place at the start of thread, synced to the spindle single index pulse... Linux CNC 'tries' to implement this same process, but the clan missed the boat.. It has warts and can bite you in the backside if not careful. I did raise the issue with the devs, who said thanks , we will look into it, but the latest but one release still has the issue...It works ok, 99.9% of the time, but you can crash a machine.. What a long story... Well Duncan, if Ye seek sympathy from me for you New-Tech Adventure......Have Fun! I too just get older, but all that does is make me try even more new stuff every day - Technology development has been exponential while the years left to me to play with that tech are still only linear, and I have a LOT to learn, do and experience. regards Joe
Edited By Joseph Noci 1 on 02/06/2019 21:24:49 |
Joseph Noci 1 | 02/06/2019 21:28:08 |
1323 forum posts 1431 photos |
Sorry, I did not respond to your second issue... Second: I presume you mean when surfacing with carriage feed applied.This is in effect threading, but the constraints are hugely relaxed - Thread start has no meaning, and all you really want is a constant feed for good finish. I ditched the concept of syncing the carriage to spindle rate, and all I do is have a POT that sets feed rate, ie, stepper pulse frequency, from 0 to 5mm/s. That feed can work with spindle on or off, so reversing the carriage under feed to cut one direction only is possible. Also, changing feed rate while cutting to see if an improved finish can be got is easy. The spindle encoder pulses are not used. If you sync the two rates, then to change feed speed you have to stop the machine, and change what is effectively a thread pitch...the same as you would do if you had to fiddle with changes gears or the Norton Box..This way it's just a turn of a knob.. Joe |
Andrew Johnston | 02/06/2019 23:38:44 |
![]() 7061 forum posts 719 photos | Posted by SillyOldDuffer on 02/06/2019 11:25:06:
Engineering is all about balancing compromises. Actually engineering is all about money, in the sense of what will a feature cost and will the market be prepared to pay for it? Andrew |
duncan webster | 03/06/2019 00:09:14 |
5307 forum posts 83 photos | Thanks Joe, I've sent you a pm |
John Haine | 03/06/2019 07:27:04 |
5563 forum posts 322 photos | Mach 3 doesn't work quite like that, in that the spindle is running continuously throughout. You start with the tool at some known position say 1 mm clear of the end of the work, adjusted for the right doc for the first pass. Then it accelerates at a known rate to the threading speed to give the desired pitch, started by receiving an index pulse. Af the end of the thread, the spindle keeps running, the tool withdraws while still being fed at the thread rate over usually a quarter revolution, then the feed is s topped though the spindle continues. The tool then runs back to the start position, and waits for the next index pulse to start again. It depends on the initial acceleration being fast enough to get to the right speed before reaching the work and always following the same profile so the tool is always starting the cut at the same point. This means using an acceleration which is well within the maximum capability of the Z drive and allowing sufficient lead-in. It also needs enough inertia in the spindle drive and a constant speed motor, or a closed-loop speed control with tight regulation, so the spindle keeps going at a constant rate. People are sniffy about Mach3 threading, and I've had a couple of disasters with it, but once you understand its peculiarities it works pretty well. Not a good photo, but the er16 chuck for my Acute grinder was threaded for its nut using Mach, without a hitch, on my cnc'd Super 7. |
Joseph Noci 1 | 03/06/2019 07:48:37 |
1323 forum posts 1431 photos | John Haine said: Mach 3 doesn't work quite like that................ ............. It depends on the initial acceleration being fast enough to get to the right speed before reaching the work and always following the same profile so the tool is always starting the cut at the same point. This means using an acceleration which is well within the maximum capability of the Z drive and allowing sufficient lead-in In essence wot I said...! Joe |
SillyOldDuffer | 03/06/2019 10:01:45 |
10668 forum posts 2415 photos | Posted by Andrew Johnston on 02/06/2019 23:38:44:
Posted by SillyOldDuffer on 02/06/2019 11:25:06:
Engineering is all about balancing compromises. Actually engineering is all about money, in the sense of what will a feature cost and will the market be prepared to pay for it? Andrew Very much so! At root money decides whether things worth making or not, but it's not rock solid in that innovations have to be sold to a public who might reject it out of hand or go mad for it. Risk is part of the game too. Nonetheless, cost is usually by far the most important issue facing professional engineers. For example if a new railway is proposed, engineers play a key role in cost estimating so that the huge amount of money needed can be borrowed and repaid without busting the whole operation. Then, unlike politicians who promise results without knowing how they'll be delivered, engineers have the skills needed to manage the project and deliver a practical solution. But I was thinking of compromise during technical design and development, where the engineer balances availability of skills, tooling, space, and materials to get results, often trading-off as necessary. Here professional and amateur engineers often follow the same disciplines. However, the drivers and goals of amateur and professional engineers are likely to be different especially when it comes to time and money. If Andrew were daft enough to employ me, he'd find I work very slowly, wander off, make mistakes, am untidy, and would care nothing about Andrew's urgent need to balance his books. In short, I'm indulging an interest in engineering, not doing it to make a living. Dave
|
John Haine | 03/06/2019 10:49:39 |
5563 forum posts 322 photos | Apologies Joe, but your reply seemed to indicate that the tool acceleration had to match the spindle acceleration in the run-up. |
Neil Wyatt | 03/06/2019 17:34:43 |
![]() 19226 forum posts 749 photos 86 articles | Posted by Andrew Johnston on 02/06/2019 23:38:44:
Posted by SillyOldDuffer on 02/06/2019 11:25:06:
Engineering is all about balancing compromises. Actually engineering is all about money, in the sense of what will a feature cost and will the market be prepared to pay for it? Andrew Isn't that just aspect of the classic engineering compromise: good, cheap or fast? - Pick one. |
sam sokolik | 05/07/2019 14:17:52 |
126 forum posts |
Posted by Joseph Noci 1 on 02/06/2019 21:18:16:
Linux CNC 'tries' to implement this same process, but the clan missed the boat.. It has warts and can bite you in the backside if not careful. I did raise the issue with the devs, who said thanks , we will look into it, but the latest but one release still has the issue...It works ok, 99.9% of the time, but you can crash a machine..
regards Joe
Edited By Joseph Noci 1 on 02/06/2019 21:24:49
I am confused.. What does linuxcnc fail at .1% of the time? Also - linuxcnc has a robust hardware abstraction layer that allows for some pretty amazing setups. All with a cheap computer... All double-precision floating-point calculations.. Things like hobbing... Edited By sam sokolik on 05/07/2019 14:19:34 Edited By sam sokolik on 05/07/2019 14:20:44 |
sam sokolik | 05/07/2019 16:42:52 |
126 forum posts | BTW - it isn't like things are not getting improved.. This was less than 1 month ago... Related to spindle synced motion.. |
Please login to post a reply.
Want the latest issue of Model Engineer or Model Engineers' Workshop? Use our magazine locator links to find your nearest stockist!
Sign up to our newsletter and get a free digital issue.
You can unsubscribe at anytime. View our privacy policy at www.mortons.co.uk/privacy
You can contact us by phone, mail or email about the magazines including becoming a contributor, submitting reader's letters or making queries about articles. You can also get in touch about this website, advertising or other general issues.
Click THIS LINK for full contact details.
For subscription issues please see THIS LINK.