Hello Guest it is December 26, 2024, 06:43:35 AM

Author Topic: BT30 spindle from scratch - with power drawbar and ATC of course  (Read 614611 times)

0 Members and 1 Guest are viewing this topic.

Offline simpson36

*
  •  1,369 1,369
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #380 on: December 30, 2012, 02:00:18 AM »
Steve,

Nice work as always.  The time I spent playing with Belleville drawbars a few years ago convinced me I never wanted to mess with them again, and is what led to my stepper-driven drawbar.  I wonder why so many VMCs use them?  And huge stacks of them at that.

I hear numbers like 3k to 5k forces for CAT50. I hasten to say that this is just what I read on forums. I do not know the facts on this. However, if these numbers are accurate, then it would be difficult to achieve with a coil spring. Disc springs can be nested thereby multiplying the force.

Quote
BTW - I sent you a e-mail earlier today re: KFlop.  Did you get it?

Regards,
Ray L.

Yes, I did. I'm just now getting to my computer chores; e-mail, reading, posting, etc. I'll have a response for you on that e-mail and also your postings here after I have a minute to noodle over them.

Offline simpson36

*
  •  1,369 1,369
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #381 on: December 30, 2012, 02:29:33 AM »
Actually, the sensors and code on mine turned out to be quite trivial.  The code is barely two pages of dead-simple C that took only maybe two hours to write and debug.

This is a surprise. I have a flow chart that runs for a couple of pages, let alone the coding. Even considering that what is 'trivial' to you is anything but trivial to most people, it would truly be amazing (to me) to be able to control an ATC with two pages of code.

This is the list of tasks that I envision need to be performed on my ATC.  I broke it down two ways; down and dirty and commercial/industrial  (OSHA).  All comments from any reader are welcome.

Simplistic: swing the arm 30 degrees
 
                 drop 4"

                 say a prayer

                 swing the arm another  60degrees
 
                 rise 4"

                 say another prayer

 

Safe:  

 

           Has the carousel reached the correct tool position?
 
           Is there actually a tool in the holder?

           ( we already know the claw is unoccupied because we confirmed that when it put the previous tool away)

           Open the safety interlock on the claw.
 
           Did it open?

           Swing the arm 30 degrees

           Did the claw close? (if it closed, then it has the tool, otherwise it cannot close)

           Is the tool holder safety interlock open?
 
           Release the tool from the toolholder (pneumatic)

           Is the tool released?

           engage the claw safety interlock

           did the claw safety interlock engage?
 
           lower the arm 4"

           did the arm lower?

           Is the mill spindle rotating?
 
           Is the mill spindle at the correct azimuth for tool change?

           lockout the mill spindle operation (can be done a number of ways)
 
           Swing the arm 60 degrees.

           Is the arm in position?

           Release the drawbar safety interlock
 
           Did the drawbar safety interlock release?

           Activate the drawbar actuator

           Did the drawbar actuator open?

           Raise the arm 4"
 
           Did the arm reach position?

           release the drawbar actuator

           Did the drawbar actuator release?

           Is the drawbar safety interlock reset?

           Is the drawbar height correct (i.e does it have the tool gripped correctly)
 
           release the claw safety interlock

           did the interlock release?

           Swing the are back 40 degrees

           has the arm reached position?
 
           lower the arm 5"

           did the arm lower?

           move the arm to the park position.

           allow mill spindle operation

Offline Hood

*
  •  25,835 25,835
  • Carnoustie, Scotland
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #382 on: December 30, 2012, 05:27:54 AM »
Steve
 The second list looks  better to me :)
I try and interlock things as much as possible on my machines. I am the only person that uses them so its more for machine safety than personal safety that I take that route. The big lathe could rip itself to bits in seconds if something wasnt right and I didnt have a saftety check in to see it wasnt right.
Mills are not so bad in that they wont likely do as much damage to themselves but bent arms or carousels or whatever are still a real possibility so I think your approach is the way to go.
 I like doing these things in a PLC, main reason is I find ladder logic, well how can I say it, logical ;D and it comes easy to me. The Chirons ladder if printed out at 100% would take 46 pages of A4 paper, I wouldnt know where to start trying to do all that in VB let alone any other programming language.
Hood

Offline derek

*
  •  200 200
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #383 on: December 30, 2012, 07:17:24 AM »
Looking good Steve.
I'm not having any of the issues that you are with the Bellevilles but I suspect that it's because mine are external. The coil spring idea In my opinion is the best way to go. As soon as I get the last bits of my tool changer done I'm going to be redoing the drawbar with the coil spring. I see you used a die spring instead of the valve spring.

I have a question for you about Pull stud tools. Is the gripper supposed to provide lateral support as well as upward pressure or is the taper supposed to take care of that?

Derek

Offline simpson36

*
  •  1,369 1,369
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #384 on: December 30, 2012, 08:30:26 AM »
Looking good Steve.
I'm not having any of the issues that you are with the Bellevilles but I suspect that it's because mine are external. The coil spring idea In my opinion is the best way to go. As soon as I get the last bits of my tool changer done I'm going to be redoing the drawbar with the coil spring. I see you used a die spring instead of the valve spring.
Pretty much all of my problems with the disc springs was binding and galling in the containment. First they were chewing on the ID of the tube so I made a fatter shaft to keep them centered and off the tube ID and they then chafed on the shaft. I solved that (mostly) by tediously sanding flats on the 'mating' surfaces, but in so doing, I lost a good deal of the already barely adequate travel. Only a few thou off each spring, but there were 60 of them so it adds up to a significant number. The experience was expensive, but useful. I would know what to do differently if I ever have to go 'back to well' in the future. However at this point in time, I'd rather be poked in the eye with a sharp stick than touch another Belleville stack  :'(

If you are using a 30 taper I will give you the part number and source for the die spring (in a PM). I saw the top of your spindle and it looks like it will fit in there quite nicely. If you are using any other taper, including R8, then you will need to select your own spring. The die spring was considerably cheaper and is a single spring which simplifies things. The damping of the multi spring valve spring is not needed in this application. FWIW; I made the washers above and below the spring fro 416 SS. The top washer is .26" thick (not counting the slight relief at the top to clear the snap ring) but it is backed up by a wide retaining nut that slightly overlaps the spring so the washer does not take the stress in a cantilever. The ball holder is undoubtedly the weak link. I have tested mine to 3,500lbs tension so I have the minimum 2X safety factor.

Quote
I have a question for you about Pull stud tools. Is the gripper supposed to provide lateral support as well as upward pressure or is the taper supposed to take care of that?

Derek

I don't know the answer to that, but I would speculate that the taper is going to dominate over any misalignment in the gripper. The consequence of a misaligned (or low precision) gripper is that not all of the balls will be sharing the load. For example, if the holes for two of the balls is even .003" above the other two, you will have only two balls holding all of the force (unless you make the gripper body from 'stretchy' material . .  which would be a really bad idea). 

Typically I only accomplish high precision or high finishes where they are necessary, Rough finishes and 'close enough' where it doesn't;t matter and 'normal' everywhere else. The gripper body is one of those pieces that requires precision, particularly in concentricity and the elevation and depth of the ball holes (the depth matters because the round shape effectively changes the height). The outer sleeve has to be reasonably concentric, but is not as critical, in my view, as the ball holder.  The Ball holder is tricky because you can't 'nibble' at tool steel of it will harden up on you so you have to take your best shot with a good setup and sharp tools and measure the result.
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #385 on: December 30, 2012, 08:42:34 AM »
Steve,

Here is my ATC code:

#ifndef ATC_H
#define ATC_H

#include "KMotionDef.h"
#include "../Common/CommonDefs.h"
#include "../Common/PDB.h"

int current_atc_pos;   // Current ATC position
int current_atc_tool;   // Current ATC tool

void  LoadTool(int tool)
{   
   current_atc_tool = (int)persist.UserData[PERSIST_CURRENT_TOOL];

   if (tool == current_atc_tool)
      return;

   RotateToTool(current_atc_tool);
      
   Move(AXIS_Z, PDB_Z_POS * Z_STEPS_PER_INCH);

   while (!CheckDone(AXIS_Z))
      ;
   
   if (current_atc_tool == 1)
      LowerLift();
   else
      RaiseLift();
   
   PivotToQuill();
   
   if (current_atc_tool != 1) {
      PDBReleaseTTS();
      LowerLift();
   }
   
   RotateToTool(tool);
   
   if (tool > 1) {
      RaiseLift();
      PDBGrabTTS();
   }
   
   PivotToPark();
   RaiseLift();
}

void RotateToTool(int tool)
{
   int target_tool = tool;
   int current_tool = (int)persist.UserData[PERSIST_CURRENT_ATC_POS];
   
   if (tool == 1)
      target_tool = 2;
   if (current_tool == 1)
      current_tool = 2;
   
   while (current_tool != target_tool)
   {
      SetBit(ATC_ROTATE);
      Delay_sec(0.5);
      ClearBit(ATC_ROTATE);
      Delay_sec(0.5);
      ++current_tool;
      if (current_tool > 11)
         current_tool = 2;
   }
   Delay_sec(0.5);
   current_atc_pos = tool;
   persist.UserData[PERSIST_CURRENT_ATC_POS] = (double)tool;
}

void RaiseLift()
{
   if (!ReadBit(ATC_LIFT))
      return;
   ClearBit(ATC_LIFT);
   ConfirmAction(ATC_LIFT_SENSE);
}

void LowerLift()
{
   if (ReadBit(ATC_LIFT))
      return;
   SetBit(ATC_LIFT);
   ConfirmAction(ATC_LIFT_SENSE);
}

void PivotToQuill()
{
   if (ReadBit(ATC_PIVOT))
      return;
   SetBit(ATC_PIVOT);
   ConfirmAction(ATC_PIVOT_SENSE);
}

void PivotToPark()
{
   if (!ReadBit(ATC_PIVOT))
      return;
   ClearBit(ATC_PIVOT);
   ConfirmAction(ATC_PIVOT_SENSE);
}

ConfirmAction(int bit)
{
   int i = 0;
   
   Delay_sec(0.25);
   while (i < 10) {
      if (ReadBit(bit))
         i++;
      else
         i=0;
   }
   i=0;
   while (i < 10) {
      if (!ReadBit(bit))
         i++;
      else
         i=0;
      Delay_sec(0.01);
   }
}

#endif   


Regards,
Ray L.
Regards,
Ray L.

Offline simpson36

*
  •  1,369 1,369
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #386 on: December 30, 2012, 08:57:22 AM »
Steve
 The second list looks  better to me :)
I try and interlock things as much as possible on my machines. I am the only person that uses them so its more for machine safety than personal safety that I take that route. The big lathe could rip itself to bits in seconds if something wasnt right and I didnt have a saftety check in to see it wasnt right.
Mills are not so bad in that they wont likely do as much damage to themselves but bent arms or carousels or whatever are still a real possibility so I think your approach is the way to go.

I have gotten a lot of positive responses on the spindle and the ATC including a couple of dealers/manuf who are interested in incorporating them into their machines  (along with the InTurn™ 4th axis). I am seeking product liability insurance at this time with the intent to sell the spindles. I am not able to build a proper 10k + RPM spindle just yet, but that is coming. My immediate concern is the same as yours; primarily torn up equipment and down time, but long term, the serious consequence would be a tool holder coming out of the spindle at 15K RPM and taking a brisk stroll across the shop floor. Mach is not exactly a stable program and PC's in general are prone to tantrums now and then. If the power goes off momentarily, it is hard to predict what a PC is going to do. This happened recently here and air valves were going on and off as the PC tried to get its act together. That's why I have an electric solenoid operated positive mechanical interlock on the drawbar actuator. There is no way to accidentally release a tool. However, an equally important task is to make sure the tool is gripped and seated properly before starting the trip to 15k.

Those are the biggies. The rest is, as you pointed out, to keep the machine from chewing its own ankles off.

Quote

 I like doing these things in a PLC, main reason is I find ladder logic, well how can I say it, logical ;D and it comes easy to me. The Chirons ladder if printed out at 100% would take 46 pages of A4 paper, I wouldnt know where to start trying to do all that in VB let alone any other programming language.
Hood

Probably a good bit of that code is for communicating with the mother ship and I won't have that feature . . . :D

The pair of Mistu drives will help a lot in reducing the coding and the sensor count as they will fault in some of the situations and they have a position reached signal that will serve as the sensor for several of the steps. In taking advantage of that, the controller would not be able to pinpoint a failure quite as accurately, but the operator can snoop around a bit to figure out what stopped the party.
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #387 on: December 30, 2012, 09:26:14 AM »
Those are the biggies. The rest is, as you pointed out, to keep the machine from chewing its own ankles off.

I would try to design in a failure point to prevent that.  On my ATC, the weak point is the attachment of the tool "forks" to the carousel, which are Nylon screws.  If a major jam were to occur, those screws would simply shear off, and the tool holder, and folk would fall on the table.  The only failure I can see right now with any possibility of breaking anything would be if the PDB tried to engage while the spindle was running in reverse.  Since I've never once had to run in reverse, this one doesn't concern me.  If the PDB were to engage while the spindle is running forward, the drawbar would simply unscrew, dropping the tool and collet.  Not good, but not catastrophic.  Even then, the spindle brake *might* be enough to over-load the motor and stall the spindle, though I have no intention of testing that theory....  Once I get a spindle sensor on the machine, these issues also go away, as neither the PDB
nor ATC will be allowed to engage unless the spindle is confirmed stopped.

Regards,
Ray L.
Regards,
Ray L.

Offline simpson36

*
  •  1,369 1,369
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #388 on: December 30, 2012, 09:27:36 AM »
Steve,

Here is my ATC code:

#ifndef ATC_H
#define ATC_H

#include "KMotionDef.h"
#include "../Common/CommonDefs.h"
#include "../Common/PDB.h"


Ray L.

Well this explains things a bit. We have counting different beans, methinks.

What you have here is the conductor and the orchestra is elsewhere. You see I would count the libraries as part of the ATC code. Or certainly at least the ones you wrote yourself. I like looking at your code as there is unsally a tasty morsel or two of the 'tips and tricks' variety, but really I was interested in seeing what actual pieces you used for sensing and how those are mounted and while I can see some checks in your code, the routines are not present so it is hard to divine what sensors you are reading and what reaction is called in response to a fail.

For example, I see ATC_PIVOT_SENSE and ATC_LIFT_SENSE but that doesn't explain what you are doing specifically.

You usually have some clever trick up your sleeve and it take some coaxing to get it out of you . . example; the relay switched torque on your drawbar stepper drive. You had to have something slick going on in order for the thing to work the way you described, because there drive does not have that capability . . until you figured out how to add it.

So if you feel so inclined, I for one would love to have some details on exactly what actions you are monitoring and most importantly why you chose those actions and not others and how you accomplish the tasks.  Really the whole methodology and thought process is what I'm after if you are willing to share that. 


                                                                                                                                                                                               
Re: BT30 spindle from scratch - with power drawbar and ATC of course
« Reply #389 on: December 30, 2012, 09:31:07 AM »
Steve,

BTW - I'm also in discussions with a machine manufacturer, to potentially design a PDB/ATC system for several of their machines, loosely based on my current design.  There are, of course, a number of things I would do differently on the second go-round.

Regards,
Ray L.
Regards,
Ray L.