On 27 June 2013 14:03, john mcintyre <[email protected]> wrote: > The gear box has 6 magnetic clutches in the gearboxand 2 magnetic clutches in > the headstock ( high and low range)The gear changes only take place,when > there is no load.I have the truth tables to select the magnetic clutches > required for each spindle speed .
I think you can build the logic using existing HAL components. One LUT5 per clutch can be used to set the mode of that clutch for each speed. LUT5 takes individual input bits, however, so you need some way of converting a gear-number into 5 separate bits. The matrix_kb component (in Master) can do this, but would need to be installed by hand in a non-master config (not too difficult) Alternatively, you could use mux16, which is also fairly close to what is required. I think the closest component to what is needed is mux_generic, but you would need 8 of those. It has the advantage that it can take an integer gear number, and output individual bits. It has the disadvantage that it only exists in master, so you would have to "comp" it into your system. So, if you are going to need to comp it anyway, perhaps a custom component is called for? (Actually, this seems like a fairly useful component in general, so perhaps could be added to the distribution). Also, bear in mind that my knowledge of HAL components is not exhaustive, there might already be one that does this. http://www.linuxcnc.org/docs/devel/html/hal/comp.html component gearchange "drive up to 32 gearbox solenoids"; pin in u32 gear "the selected gear"; pin out bit out-## [10] "solenoid driver bits"; param rw u32 table-## [32:personality] "logic table. personality == number of gears"; function _; license "Any prime-numbered GPL version :-)" ;; FUNCTION(_){ int i; if (gear > 0 && gear <= personality){ for (i = 0; i < 10; i++){ out(i) = (( table(gear) & (1 << i)) != 0); } } This code was written on-the-fly on a Windows PC, and is utterly untested. Save in a text file, install according to the hyperlink. Then populate the "table" parameters with the bit-patterns corresponding to the solenoids for each gear. This could probably usefully handle different VFD velocity scaling factors too. And have a mode where the bits are inputs, corresponding to physical lever positions, to do the same calculation backwards. -- atp If you can't fix it, you don't own it. http://www.ifixit.com/Manifesto ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
