Electronic spindle gearbox
- microsprintbuilder
- Offline
- Elite Member
Less
More
- Posts: 163
- Thank you received: 4
08 Jul 2014 20:36 #48540
by microsprintbuilder
Electronic spindle gearbox was created by microsprintbuilder
I'm retrofitting a Milltronics Partner1. It has a Custom servo motors spindle and drive with a electronic gearbox. low range is 0-1200 rpm, med range is 1201-2499 rpm, and high range is 2500-4200 rpm. the control has inputs to select the range and there is also 5 contact relays to change the wiring configuration based on the range. I'm struggling on how to configure this. I'm thinking I could do a ladder logic but not sure as the spindle control uses +/- 10 volts in each range. Anyone ever done this?
Please Log in or Create an account to join the conversation.
09 Jul 2014 05:43 #48550
by andypugh
Replied by andypugh on topic Electronic spindle gearbox
It might not need ladder.
One possibility might be to divide the spindle speed request by 3, then convert that to int, and use as the input to a mux_generic to select an int containing the required bit-pattern for the inputs and relays, then split that into bits with the bitslice comp.
(or, simply use a stack of bit-type muxes all connected to the same input).
The problem with this idea is that some hysteresis would be needed, somehow, or 2500rpm would probably dither between ranges. "deadzone" might be right, working on the float-type spindle speed before it gets interpreted as an int.
On reflection, I would probably write a custom component, as this is sounding like an untidy tangle of HAL.
One possibility might be to divide the spindle speed request by 3, then convert that to int, and use as the input to a mux_generic to select an int containing the required bit-pattern for the inputs and relays, then split that into bits with the bitslice comp.
(or, simply use a stack of bit-type muxes all connected to the same input).
The problem with this idea is that some hysteresis would be needed, somehow, or 2500rpm would probably dither between ranges. "deadzone" might be right, working on the float-type spindle speed before it gets interpreted as an int.
On reflection, I would probably write a custom component, as this is sounding like an untidy tangle of HAL.
Please Log in or Create an account to join the conversation.
- microsprintbuilder
- Offline
- Elite Member
Less
More
- Posts: 163
- Thank you received: 4
11 Jul 2014 01:19 #48618
by microsprintbuilder
Replied by microsprintbuilder on topic Electronic spindle gearbox
I've never used the custom component generator. I'll look into that. Got any tips on getting started?
Please Log in or Create an account to join the conversation.
11 Jul 2014 01:27 #48619
by andypugh
Well, reading the manpage first, I guess:
www.linuxcnc.org/docs/html/hal/comp.html
Or, if you are using 2.6 / Master:
www.linuxcnc.org/docs/devel/html/hal/comp.html
(The name of the program has changed to save confusion, and to prevent people installing the (unhelpful) suggestion from Ubuntu)
Can the gearbox change gear under load, or should the component only change range with the spindle off?
A general purpose component would need to allow for any number of gears with a max and min speed for each, but you can probably hard-code the behaviour.
Should the component wait after changing gear before allowing the motor to turn back on?
Do you have a table of required outputs for each spindle speed range?
Replied by andypugh on topic Electronic spindle gearbox
I've never used the custom component generator. I'll look into that. Got any tips on getting started?
Well, reading the manpage first, I guess:
www.linuxcnc.org/docs/html/hal/comp.html
Or, if you are using 2.6 / Master:
www.linuxcnc.org/docs/devel/html/hal/comp.html
(The name of the program has changed to save confusion, and to prevent people installing the (unhelpful) suggestion from Ubuntu)
Can the gearbox change gear under load, or should the component only change range with the spindle off?
A general purpose component would need to allow for any number of gears with a max and min speed for each, but you can probably hard-code the behaviour.
Should the component wait after changing gear before allowing the motor to turn back on?
Do you have a table of required outputs for each spindle speed range?
Please Log in or Create an account to join the conversation.
- microsprintbuilder
- Offline
- Elite Member
Less
More
- Posts: 163
- Thank you received: 4
11 Jul 2014 04:30 #48624
by microsprintbuilder
Replied by microsprintbuilder on topic Electronic spindle gearbox
Yes, I read that and as normal with me it will take a wile for me to figure it out.
As far as the spindle goes if you change ranges the the spindle does needs to stop so the relays can change the wiring configuration. With the old control there was a tiny delay before turning on, Maybe two seconds. The drive has three 24 volt inputs to select range and then the rpm's are variable dependent on + or - 5 volt input
As far as the spindle goes if you change ranges the the spindle does needs to stop so the relays can change the wiring configuration. With the old control there was a tiny delay before turning on, Maybe two seconds. The drive has three 24 volt inputs to select range and then the rpm's are variable dependent on + or - 5 volt input
Please Log in or Create an account to join the conversation.
11 Jul 2014 05:01 - 11 Jul 2014 05:05 #48625
by andypugh
Untested. Completely untested:
Replied by andypugh on topic Electronic spindle gearbox
Yes, I read that and as normal with me it will take a wile for me to figure it out.
Untested. Completely untested:
component ebox "electronic gearbox component";
licence "GPL";
pin in bit spindle-on-in;
pin out bit spindle-on-out;
pin in float spindle-speed;
pin out bit relay1;
pin out bit relay2;
pin out bit relay3;
function _;
;;
FUNCTION(_){
static int timer;
static double last_speed = -100;
if (timer > 0){
timer -= 1;
spindle_on_out = 0;
} else {
spindle_on_out = spindle_on_in;
}
// Only do anything if the spindle speed has changed
if ( absf(spindle_speed - last_speed) < 50) return;
if (spindle_speed >= 2500){
relay1 = 0;
relay 2 = 0;
relay 3 = 1;
spindle_on_out = 0;
timer = 2000;
} else if (spindle_speed < 1200) {
relay1 = 1;
relay 2 = 0;
relay 3 = 0;
spindle_on_out = 0;
timer = 2000;
} else {
relay1 = 0;
relay 2 = 1;
relay 3 = 0;
spindle_on_out = 0;
timer = 2000;
}
}
Last edit: 11 Jul 2014 05:05 by andypugh.
Please Log in or Create an account to join the conversation.
- microsprintbuilder
- Offline
- Elite Member
Less
More
- Posts: 163
- Thank you received: 4
18 Jul 2014 00:42 #48899
by microsprintbuilder
Replied by microsprintbuilder on topic Electronic spindle gearbox
Sorry for the delay I've been gutting and installing the new PC and wiring the boards. I need to add that if you think you might hit the motherboard when drilling holes to mount the PC don't talk yourself out of removing it as I did or you will be replacing it. I'm hoping to get movement this weekend. I'm looking at this with a blank stare and have a few questions. I make a file with the above text in ( linuxcnc/src/hal/components ) and call it electronic gearbox. then in hal, I place loadrt electronic gearbox and then I define the relay 1,2 & 3 to my outputs?
Please Log in or Create an account to join the conversation.
18 Jul 2014 01:01 #48900
by andypugh
Nearly. You would need to compile / install the new component using the "comp" tool.
www.linuxcnc.org/docs/html/hal/comp.html
Or, if you are using the development version, it has changed its name:
www.linuxcnc.org/docs/devel/html/hal/comp.html
Replied by andypugh on topic Electronic spindle gearbox
I'm looking at this with a blank stare and have a few questions. I make a file with the above text in ( linuxcnc/src/hal/components ) and call it electronic gearbox. then in hal, I place loadrt electronic gearbox and then I define the relay 1,2 & 3 to my outputs?
Nearly. You would need to compile / install the new component using the "comp" tool.
www.linuxcnc.org/docs/html/hal/comp.html
Or, if you are using the development version, it has changed its name:
www.linuxcnc.org/docs/devel/html/hal/comp.html
Please Log in or Create an account to join the conversation.
- microsprintbuilder
- Offline
- Elite Member
Less
More
- Posts: 163
- Thank you received: 4
18 Jul 2014 01:16 #48901
by microsprintbuilder
Replied by microsprintbuilder on topic Electronic spindle gearbox
And this is done in a terminal window using sudo?
Please Log in or Create an account to join the conversation.
18 Jul 2014 03:26 #48903
by andypugh
Replied by andypugh on topic Electronic spindle gearbox
You can use gedit to create and edit the file, but then, yes, "sudo comp --install ebox.comp
And then the hal file can contain "loadrt ebox"
And then the hal file can contain "loadrt ebox"
Please Log in or Create an account to join the conversation.
Time to create page: 0.112 seconds