Gentlemen, I cannot get this program to run with comp. Would someone look at it and tell me what I need to do. Is it getting too long to post here? If it is I can start putting it on my web site. I have seen longer posts but I am not sure where the line is.
component gear4 "Select gear range from requested spindle speed"; /* This component if for a 4 speed gearbox with a separate tram shifter. * This has 5 solenoids to shift the gears and 5 limit switches to indicate the gearbox state. * It will sense the spindle speed near zero from the encoder feedback and inhibit the * tram shifting until the spindle is slow enough. * It will drive the spindle very slow to allow gear mesh. */ pin in float spincmd "spindle command from EMC"; pin in float spinspeed "spindle speed from encoder"; pin out float spinon "spindle speed command to VFD"; pin in float spinslow "gear mesh speed"; pin out bit sol31; pin out bit sol32; pin out bit sol33; pin out bit sol34; pin out bit sol35; pin in float minSpeed; pin in float maxGear1; pin in float maxGear2; pin in float maxGear3; pin in float maxGear4; pin in float zeromax "max spindle speed to be considered zero for tram"; pin in bit ls1; pin in bit ls2; pin in bit ls3; pin in bit ls4; pin in bit tram; variable int skippy; variable int range; variable int shifting; function _; license "GPL"; ;; //FUNCTION(_) { /*gear program*/ /*read*/ /* #include <stdio.h> #include <stdlib.h> */ #include "rtapi.h" #include "rtapi_app.h" #include "rtapi_string.h" #include "hal.h" #define fperiod (period * 1e-9) #define spincmd (0+*inst->spincmd) #define spinspeed (0+*inst->spinspeed) #define spinon (*inst->spinon) #define spinslow (0+*inst->spinslow) #define SOL31 (*inst->sol31) #define SOL32 (*inst->sol32) #define SOL33 (*inst->sol33) #define SOL34 (*inst->sol34) #define SOL35 (*inst->sol35) #define MINSPEED (0+*inst->minSpeed) #define GEAR1MAX (0+*inst->maxGear1) #define GEAR2MAX (0+*inst->maxGear2) #define GEAR3MAX (0+*inst->maxGear3) #define GEAR4MAX (0+*inst->maxGear4) #define zeromax (0+*inst->zeromax) #define ls1 (0+*inst->ls1) #define ls2 (0+*inst->ls2) #define ls3 (0+*inst->ls3) #define ls4 (0+*inst->ls4) #define tram (0+*inst->tram) FUNCTION(_) { int gear, currentGear, tram, currentTram; float scale, currentScale, spindleEncoder, speedDAC, adaptiveFeed, transition = 2, programRPM, programFeed; //set desired gear and scale needed if (programRPM > MINSPEED && programRPM < GEAR1MAX) { gear = 1; scale = 15.2; } else if (programRPM > GEAR3MAX) { gear = 4; scale = 1; } else if (programRPM > GEAR2MAX) { gear = 3; scale = 1.9; } else { gear = 2; scale = 8; } //spindle encoder read and current gear set /* initialize the solenoids to the startup state of the gearbox */ if (SOL31 == 1 && SOL34 == 1) { currentGear = 1; currentScale = 15.2; } else if (SOL31 == 1 && SOL35 == 1) { currentGear = 2; currentScale = 8; } else if (SOL32 == 1 && SOL34 == 1) { currentGear = 3; currentScale = 1.9; } else { currentGear = 4; currentScale = 1; } // set tram if (sol33 == 1) { currentTram = 1; currentGear = 5; } else {currentTram = 0; //if no shift needed if (currentGear == gear) spindleEncoder = programRPM * scale; //if shift needed else { //set speed to slow down for transition speedDac = transition * currentScale; //turn on gear solinoids once spindle speed is less than transition speed if (spindleEncoder <= transition * currentScale) switch (gear) { case 1: SOL31=1; SOL32=0; SOL34=1; SOL35=0; break; case 2: SOL31=1; SOL32=0; SOL34=0; SOL35=1; break; case 3: SOL31=0; SOL32=1; SOL34=1; SOL35=0; break; case 4: SOL31=0; SOL32=1; SOL34=0; SOL35=1; break; default: fprintf ("error.txt", "ERROR in Gear Switch\n") ; exit (0); break; if (tram = 1) SOL33=1; } } } thanks Stuart ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users