more goofing around. got a good start on the spindle hal component.  It seems 
to shift correctly (16 speed gearbox) this video runs through all the gears for 
about 10 seconds a piece.  Every other speed is ccw.  (just testing that also)  
the bottom 4 of the top 4 black ssr's control the 4 shift rails - you can see 
it count up binary with each gear change.  very happy with the results.  EMC is 
awesome!

http://www.youtube.com/watch?v=22dWg3GbywE

I am using an encoder on the spindle to make sure the drive train spins for a 
certain amount of time while shifting.  (plus in the future do closed loop 
spindle speed)

http://www.electronicsam.com/images/KandT/conversion/spindle/Spindlemotorenc.JPG

This is the hal component so far.  Still have to add 'at speed' and keylock.  
(it is messy - I know)

component gearshift16 "gearshift16";
// this is a component for a K&T 16 speed spindle transmission.  The gearbox 
has 4 shift rails (16 combinations in binary) and a lock seqence.

pin in float spnmotorspeedfb "actual spindle motor speed";

pin in float cmdspnspeed "spindle command from emc - hooked to 
motion.spindle-speed-cmd-rps - unmolested spindle command";  

pin in float cmdspnwithoverride "this is hooked to the motion.spindle-speed-out 
to get spindle speed with overrride added";

pin out float spnmotorspeed "spindle speed command to vfd";

pin out float currselgear "current selected gear";
pin out float nextgear  "next gear if gear has changed";

pin in float shiftrpm "rpm for which the gear shifting takes place";

pin in float shiftencodercounts "number of encoder counts to wait while 
shifting";

pin in signed rawcountsin "raw counts for counting shifting time";

pin out bit shpsol "pressure enable for rails";
pin out bit sc1sol "shift rail bit 0";
pin out bit sasol "shift rail bit 1";
pin out bit sc2sol "shift rail bit 2";
pin out bit sssol "shift rail bit 3";
pin out bit ksol  "spindle lock sol";

pin in bit enable "enable gearshift componant and shift into gear 0";
pin out bit enabled "transission has been shifted into gear 0 - should be 
changed into variable after debugging";
pin in bit spnon "spindle on";
pin out bit spnonflag "flag set when spindle is first turned on so to know not 
to shift while spindle is on";
pin in bit spnbrake "check to see if spindle is actually off or the spindle 
override is 0 - hack";
pin in bit spindlelock "spindle lock activate"; 
pin out float shifting "flag to know when the comp is in shift mode";
pin out bit shift "flag to tell the transmission to shift when next possible";

// this didn't work - jepler added rps pin that is unmolested by override.
// pin in float haluiso "hooked to spindle override pin in halui for 
calculating actual commanded spindle command";
// pin out float actspnspeed "calculated commanded spindle speed based on halui 
spindle speed.";

pin out float capturedraw "inital spindle raw counts for shifting";

pin in bit oneps "shift rail pressure sensor";  


function _ ;
license "GPL";
;;

#include <rtapi_math.h>

 

FUNCTION(_) {
static double RATIO[16]={.0310168, .0350028, .0397274, .0444520, .0804513, 
.0901584, .1025972, .1146178, .2073476, .2322251, .2640781, .2955130, .5356125, 
.5998969, .6817628, .7662554};
static double 
TOPRPM[17]={0,60,70,80,90,150,170,190,210,380,420,480,540,1930,2160,2460,3000};
int Gear = 0, gearloop = 0, currgearint = 0;






currgearint = currselgear;
//enable and shift into first gear - gear 0
if(enable==true && enabled==false) 
        {
                spnmotorspeed = shiftrpm;
                if(spnmotorspeedfb<(shiftrpm+30) && 
spnmotorspeedfb>(shiftrpm-30))
                        { 
                        shpsol=true;
                        sc1sol=false;
                        sasol=false;
                        sc2sol=false;
                        sssol=false;
                        ksol=false;
                        if(capturedraw==0) capturedraw=rawcountsin;
                        if((capturedraw+shiftencodercounts)>rawcountsin && 
oneps==true)
                                {
                                spnmotorspeed = 0;
                                enabled = true;
                                capturedraw=0;
                                currselgear=0;
                                
                                }       
                        }       
        }


//if enable goes false 
if(enable==false)
        {
        ksol=false;
        shpsol=false;
        enabled=false;
        capturedraw=0;
        spnmotorspeed = 0;
        }

//check what gear should be

if(enabled==true && spnbrake == false && spindlelock==false)
        {
        for (gearloop = 1 ; gearloop <= 16 ; gearloop++)
                {
                if(fabs(cmdspnspeed*60)<=TOPRPM[gearloop] && 
fabs(cmdspnspeed*60)>TOPRPM[gearloop-1])
                        {
                        nextgear=gearloop-1;
                        if(nextgear != 
currselgear){shift=true;}else{shift=false;}
                        }
                }
        }
//spindle lock logic




//shift when we want to if shift is true

if(shift==true && fabs(cmdspnwithoverride)>0)
        {
                        
                        Gear=nextgear;
                        shifting = true;
                        spnmotorspeed = shiftrpm;
                        if(spnmotorspeedfb<(shiftrpm+30) && 
spnmotorspeedfb>(shiftrpm-30))
                                { 
                                sc1sol=Gear & 1 ;
                                sasol=Gear & 2;
                                sc2sol=Gear & 4;
                                sssol=Gear & 8;
                                ksol=false;
                                if(capturedraw==0) capturedraw=rawcountsin;
                                if((capturedraw+shiftencodercounts)>rawcountsin 
&& oneps==true)
                                        {
                                        spnmotorspeed = 0;
                                        capturedraw=0;
                                        currselgear=Gear;
                                        shifting = false;
                                        //spnonflag=true;
                                        //shift=false;
                                        }       
                                }                       

        }

if(shifting==false && enabled == true && spindlelock == false)
        {
        spnmotorspeed = cmdspnwithoverride/RATIO[currgearint];
        }

if(spnbrake==true && enabled == true && spindlelock == false)
        {
        spnmotorspeed = 0;
        }

}







On Wed, 06 Oct 2010 08:17:42 -0500
 sam sokolik <[email protected]> wrote:
>   Worked a bit on the tool changer arm.
> 
> http://www.youtube.com/watch?v=ovxW8TKBGWU
> 
> sam
> 
> On 10/5/2010 10:15 AM, sam sokolik wrote:
> >    3 axis moving! ;)
> >
> > http://www.youtube.com/watch?v=pOHL_KlUdqw
> >
> > sam
> >
> > On 9/6/2010 11:38 AM, sam sokolik wrote:
> >>     2 axis moving!
> >>
> >> http://www.youtube.com/watch?v=QU_O_Z7Vv8c
> >>
> >> sam
> >>
> >> On 8/26/2010 4:38 PM, [email protected] wrote:
> >>> Well - I fail at copy and paste...
> >>>
> >>> this should work better.
> >>>
> >>> I thought I would give an update on our ongoing project.
> >>>
> >>> This is a 60's vintage NC that used hydraulic servos.  we are converting 
> >>> it to EMC2 using not quite as old Inland servos. (80's vintage) they are 
> >>> 8 brush low rpm high torque.  (with the amc drives we are using - it will 
> >>> be 40ft-lbs peak.)  We are using 2 mesa 5i20 boards as we are needing a 
> >>> good 70+ i/o + atleast 7 encoder counters and 5 +/-10v outputs.  We are 
> >>> at the point where the machine is waking up.  the mesa hardware is 
> >>> awesome (thank to peter and seb for their work).
> >>>
> >>> Be sure to watch the 2 videos at the end of this email.
> >>>
> >>> lets see if I can create a linear picture show...
> >>> this is what the machine looked like in the 60s
> >>> http://electronicsam.com/images/KandT/oldkandt.JPG
> >>>
> >>> this is what the machine looks like now
> >>> http://electronicsam.com/images/KandT/DSCCurrent.JPG
> >>>
> >>> getting rid of the old control
> >>> http://www.electronicsam.com/images/control.jpg
> >>>
> >>> this is the old electrical box
> >>> http://electronicsam.com/images/KandT/conversion/mainelectricalbox.JPG
> >>>
> >>> we welded 2 of the same boxes together for new electronics.
> >>> http://electronicsam.com/images/KandT/conversion/moreelec.jpg
> >>>
> >>> here is it mostly hooked up
> >>> http://electronicsam.com/images/KandT/conversion/mostio.JPG
> >>>
> >>> This is the x,z,b gearbox - the old control used 1 hydraulic servo to run 
> >>> all 3 axis
> >>> http://electronicsam.com/images/KandT/conversion/xaxis/start.JPG
> >>>
> >>> open
> >>> http://electronicsam.com/images/KandT/conversion/xaxis/start.JPG
> >>>
> >>> stripped
> >>> http://electronicsam.com/images/KandT/conversion/xaxis/stripped.JPG
> >>>
> >>> shafts extended out so we can hook the servos up.
> >>> http://electronicsam.com/images/KandT/conversion/xaxis/3shafts.JPG
> >>>
> >>> servo plate mounted
> >>> http://electronicsam.com/images/KandT/conversion/servo/x-zservo_mount.jpg
> >>>
> >>> belts (B axis still needs a solution)
> >>> http://electronicsam.com/images/KandT/conversion/servo/belts.jpeg
> >>>
> >>> Because we are still using the z axis drive train that goes up though the 
> >>> saddle - we needed to get the backlash out of it.  It uses split gears to 
> >>> do that.  Grinding 1 washer thinner takes the backlash out of 5 sets of 
> >>> gears. the washer is the spacer between the 2 lower small gears.
> >>> http://electronicsam.com/images/KandT/conversion/zaxis/gears.JPG
> >>>
> >>> we still have to mount the y axis servo. - The plan is to direct couple 
> >>> into this shaft.
> >>> http://electronicsam.com/images/KandT/conversion/yaxis/yaxisshaft.JPG
> >>>
> >>> here is the tool chain logic working...
> >>> http://www.youtube.com/watch?v=4nuRea6615s
> >>>
> >>> here is the first closed loop movement with the x axis
> >>> http://www.youtube.com/watch?v=FgOqEz5Tk-Y
> >>>
> >>> Getting there :)  Very happy with the progress.  (I only work on it about 
> >>> once a week.)
> >>>
> >>> sam
> >>>
> >>>
> >>> On Thu, 26 Aug 2010 16:27:29 -0500
> >>>     <[email protected]>    wrote:
> >>>> I thought I would give an update on our ongoing project.
> >>>>
> >>>> This is a 60's vintage NC that used hydraulic servos.  we are converting 
> >>>> it to EMC2 using not quite as old Inland servos. (80's vintage) they are 
> >>>> 8 brush low rpm high torque.  (with the amc drives we are using - it 
> >>>> will be 40ft-lbs peak.)  We are using 2 mesa 5i20 boards as we are 
> >>>> needing a good 70+ i/o + atleast 7 encoder counters and 5 +/-10v 
> >>>> outputs.  We are at the point where the machine is waking up.  the mesa 
> >>>> hardware is awesome (thank to peter and seb for their work).
> >>>>
> >>>> Be sure to watch the 2 videos at the end of this email.
> >>>>
> >>>> lets see if I can create a linear picture show...
> >>>> this is what the machine looked like in the 60s
> >>>> http://electronicsam.com/images/KandT/oldkandt.JPG
> >>>>
> >>>> this is what the machine looks like now
> >>>> http://electronicsam.com/images/KandT/DSCCurrent.JPG
> >>>>
> >>>> getting rid of the old control
> >>>> http://www.electronicsam.com/images/control.jpg
> >>>>
> >>>> this is the old electrical box
> >>>> http://electronicsam.com/images/Kand...ctricalbox.JPG
> >>>>
> >>>> we welded 2 of the same boxes together for new electronics.
> >>>> http://electronicsam.com/images/Kand...n/moreelec.jpg
> >>>>
> >>>> here is it mostly hooked up
> >>>> http://electronicsam.com/images/Kand...ion/mostio.JPG
> >>>>
> >>>> This is the x,z,b gearbox - the old control used 1 hydraulic servo to 
> >>>> run all 3 axis
> >>>> http://electronicsam.com/images/Kand...axis/start.JPG
> >>>>
> >>>> open
> >>>> http://electronicsam.com/images/Kand...axis/start.JPG
> >>>>
> >>>> stripped
> >>>> http://electronicsam.com/images/Kand...s/stripped.JPG
> >>>>
> >>>> shafts extended out so we can hook the servos up.
> >>>> http://electronicsam.com/images/Kand...is/3shafts.JPG
> >>>>
> >>>> servo plate mounted
> >>>> http://electronicsam.com/images/Kand...ervo_mount.jpg
> >>>>
> >>>> belts (B axis still needs a solution)
> >>>> http://electronicsam.com/images/Kand...rvo/belts.jpeg
> >>>>
> >>>> Because we are still using the z axis drive train that goes up though 
> >>>> the saddle - we needed to get the backlash out of it. It uses split 
> >>>> gears to do that. Grinding 1 washer thinner takes the backlash out of 5 
> >>>> sets of gears. Don't think the previous owner ever did this as we had to 
> >>>> take a good .040" off the washer. The washer is the spacer between the 2 
> >>>> lower small gears.
> >>>> http://electronicsam.com/images/Kand...axis/gears.JPG
> >>>>
> >>>> we still have to mount the y axis servo. - The plan is to direct couple 
> >>>> into this shaft.
> >>>> http://electronicsam.com/images/Kand...yaxisshaft.JPG
> >>>>
> >>>> here is the tool chain logic working...
> >>>> YouTube - Kearney and Trecker tool chain logic working in EMC2. 
> >>>> Mechanically barcoded tools
> >>>>
> >>>> here is the first closed loop movement with the x axis
> >>>> YouTube - Kearney and Trecker first closed loop movement with EMC2.
> >>>>
> >>>> Getting there Very happy with the progress. (I only work on it about 
> >>>> once a week.
> >>>>
> >>>> sam
> >>>>
> >>>> ------------------------------------------------------------------------------
> >>>> Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
> >>>> Be part of this innovative community and reach millions of netbook users
> >>>> worldwide. Take advantage of special opportunities to increase revenue 
> >>>> and
> >>>> speed time-to-market. Join now, and jumpstart your future.
> >>>> http://p.sf.net/sfu/intel-atom-d2d
> >>>> _______________________________________________
> >>>> Emc-users mailing list
> >>>> [email protected]
> >>>> https://lists.sourceforge.net/lists/listinfo/emc-users
> >>> ------------------------------------------------------------------------------
> >>> Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
> >>> Be part of this innovative community and reach millions of netbook users
> >>> worldwide. Take advantage of special opportunities to increase revenue and
> >>> speed time-to-market. Join now, and jumpstart your future.
> >>> http://p.sf.net/sfu/intel-atom-d2d
> >>> _______________________________________________
> >>> Emc-users mailing list
> >>> [email protected]
> >>> https://lists.sourceforge.net/lists/listinfo/emc-users
> >>>
> >> ------------------------------------------------------------------------------
> >> This SF.net Dev2Dev email is sponsored by:
> >>
> >> Show off your parallel programming skills.
> >> Enter the Intel(R) Threading Challenge 2010.
> >> http://p.sf.net/sfu/intel-thread-sfd
> >> _______________________________________________
> >> Emc-users mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/emc-users
> >>
> > ------------------------------------------------------------------------------
> > Beautiful is writing same markup. Internet Explorer 9 supports
> > standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2&  L3.
> > Spend less time writing and  rewriting code and more time creating great
> > experiences on the web. Be a part of the beta today.
> > http://p.sf.net/sfu/beautyoftheweb
> > _______________________________________________
> > Emc-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/emc-users
> >
> 
> ------------------------------------------------------------------------------
> Beautiful is writing same markup. Internet Explorer 9 supports
> standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
> Spend less time writing and  rewriting code and more time creating great
> experiences on the web. Be a part of the beta today.
> http://p.sf.net/sfu/beautyoftheweb
> _______________________________________________
> Emc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/emc-users


------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to