- Configuring LinuxCNC
- Configuration Tools
- PnCConf Wizard
- Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
23 Aug 2018 08:35 #116476
by tecno
Replied by tecno on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
Please Log in or Create an account to join the conversation.
23 Aug 2018 09:34 #116477
by tecno
Replied by tecno on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
This is what I think will be the solution to get most out of speed range without too many gears/switches to handle.
Motor in Hi only for A and B in Hi/Lo gear ~1001 to 2500rpm
Motor in Lo for B to E in Hi/Lo gear ~80 to 1000rpm
Motor in Hi only for A and B in Hi/Lo gear ~1001 to 2500rpm
Motor in Lo for B to E in Hi/Lo gear ~80 to 1000rpm
Please Log in or Create an account to join the conversation.
23 Aug 2018 12:44 #116485
by tecno
Replied by tecno on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
Andy
Is this close to a working comp with the new arrangement of gears and motorspeed + part of hal??
Is this close to a working comp with the new arrangement of gears and motorspeed + part of hal??
component gearblocker;
pin in bit spindle-enable-in;
pin out bit spindle-enable-out;
pin in float spindle-speed-in;
pin out float motor-speed-out;
pin in float gear.#.min-speed[12];
pin in float gear.#.max-speed[12];
pin in float gear.#.ratio[12]; >>>>>>>>>>> is this needed as motor goes H/L and small adjusts via VFD within min/max of gear?
pin in bit high-gear;
pin in bit gear-AH;
pin in bit gear-BH;
pin in bit gear-B;
pin in bit gear-C;
pin in bit gear-D;
pin in bit gear-E;
license "gpl";
function _;
;;
FUNCTION(_){
int i;
int gear;
if (spindle_speed_in == 0) return;
switch (gear_AH + gear_BH * 2 + gear_B * 4 + gear_C * 8 + gear_D * 16 + gear_E *32) {
case 1: // Gear AH
gear = (high_gear != 0) ? 1 : 7;
break;
case 2: // Gear BH
gear = (high_gear != 0) ? 2 : 8;
break;
case 4: // Gear B
gear = (high_gear != 0) ? 3 : 9;
break;
case 1: // Gear C
gear = (high_gear != 0) ? 4 : 10;
break;
case 1: // Gear D
gear = (high_gear != 0) ? 5 : 11;
break;
case 1: // Gear E
gear = (high_gear != 0) ? 6 : 12;
break;
case else: // gear selection is bitmasked to be able to spot double-engagement
gear = 0;
}
if (spindle_speed_in >= min_speed(gear) && spindle_speed_in <= max_speed(gear)) {
motor_speed_out = spindle_speed_ * gear_ratio(gear);
spindle_enable_out = spindle_enable_in;
} else {
motor_speed_out = 0;
spindle_enable_out = 0;
}
}
hal
net input-ah-signal => gearblocker.0.input-ah <= hm2_7i76e.0.7i76.0.0.input-09
net input-bh-signal => gearblocker.0.input-bh <= hm2_7i76e.0.7i76.0.0.input-10
net input-ah-signal => hm2_7i76e.0.7i76.0.0.output-10
net input-bh-signal => hm2_7i76e.0.7i76.0.0.output-10
net input-b-signal => gearblocker.0.input-b <= hm2_7i76e.0.7i76.0.0.input-10
net input-c-signal => gearblocker.0.input-c <= hm2_7i76e.0.7i76.0.0.input-11
net input-d-signal => gearblocker.0.input-d <= hm2_7i76e.0.7i76.0.0.input-12
net input-e-signal => gearblocker.0.input-e <= hm2_7i76e.0.7i76.0.0.input-13
Please Log in or Create an account to join the conversation.
24 Aug 2018 11:19 #116532
by andypugh
Replied by andypugh on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
Well, the repeated case 1: is a definite fault. Didn't I post an updated version?
Please Log in or Create an account to join the conversation.
24 Aug 2018 11:22 #116533
by tecno
Replied by tecno on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
Oboy that´s a typo from my part as I did copy and paste.
No I have not seen any updated version.
No I have not seen any updated version.
Please Log in or Create an account to join the conversation.
24 Aug 2018 11:24 #116534
by tecno
Replied by tecno on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
Hope this part is more OK
FUNCTION(_){
int i;
int gear;
if (spindle_speed_in == 0) return;
switch (gear_AH + gear_BH * 2 + gear_B * 4 + gear_C * 8 + gear_D * 16 + gear_E *32) {
case 1: // Gear AH
gear = (high_gear != 0) ? 1 : 7;
break;
case 2: // Gear BH
gear = (high_gear != 0) ? 2 : 8;
break;
case 3: // Gear B
gear = (high_gear != 0) ? 3 : 9;
break;
case 4: // Gear C
gear = (high_gear != 0) ? 4 : 10;
break;
case 5: // Gear D
gear = (high_gear != 0) ? 5 : 11;
break;
case 6: // Gear E
gear = (high_gear != 0) ? 6 : 12;
break;
case else: // gear selection is bitmasked to be able to spot double-engagement
gear = 0;
}
if (spindle_speed_in >= min_speed(gear) && spindle_speed_in <= max_speed(gear)) {
motor_speed_out = spindle_speed_ * gear_ratio(gear);
spindle_enable_out = spindle_enable_in;
} else {
motor_speed_out = 0;
spindle_enable_out = 0;
}
}
Please Log in or Create an account to join the conversation.
24 Aug 2018 11:28 #116535
by andypugh
Replied by andypugh on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
The version here:
forum.linuxcnc.org/39-pncconf/33069-help...ing?start=460#116030
Should work better.
But doesn't actually disallow high speed in low gears.
But the other component does a better job of suggesting which gear should be used.
forum.linuxcnc.org/39-pncconf/33069-help...ing?start=460#116030
Should work better.
But doesn't actually disallow high speed in low gears.
But the other component does a better job of suggesting which gear should be used.
Please Log in or Create an account to join the conversation.
24 Aug 2018 11:35 #116537
by tecno
Replied by tecno on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
Same same but different mine is.
I have yours as a base but now motor speeds HI and LO needs to be implemented.
Have a closer look at
forum.linuxcnc.org/39-pncconf/33069-help...ing?start=560#116477
I have yours as a base but now motor speeds HI and LO needs to be implemented.
Have a closer look at
forum.linuxcnc.org/39-pncconf/33069-help...ing?start=560#116477
Please Log in or Create an account to join the conversation.
27 Aug 2018 11:58 #116645
by tecno
Replied by tecno on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
This compiles, but I would like to know what following lines actually does (as I think it is wrong).
pin in float gear.#.ratio[12];
motor_speed_out = spindle_speed_in * gear_ratio(gear);
As the spindle should go max at HI/LO motorspeed on each gear max and only adjust to min speed of that gear via VFD.
pin in float gear.#.ratio[12];
motor_speed_out = spindle_speed_in * gear_ratio(gear);
As the spindle should go max at HI/LO motorspeed on each gear max and only adjust to min speed of that gear via VFD.
component GB_2speed;
pin in bit spindle-enable-in;
pin out bit spindle-enable-out;
pin in float spindle-speed-in;
pin out float motor-speed-out;
pin in float gear.#.min-speed[12];
pin in float gear.#.max-speed[12];
pin in float gear.#.ratio[12];
pin in bit high-gear;
pin in bit gear-AH;
pin in bit gear-BH;
pin in bit gear-B;
pin in bit gear-C;
pin in bit gear-D;
pin in bit gear-E;
license "gpl";
function _;
;;
FUNCTION(_){
int gear;
if (spindle_speed_in == 0) return;
switch (gear_AH + gear_BH * 2 + gear_B * 4 + gear_C * 8 + gear_D * 16 + gear_E *32) {
case 1: // Gear AH
gear = (high_gear != 0) ? 1 : 7;
break;
case 2: // Gear BH
gear = (high_gear != 0) ? 2 : 8;
break;
case 3: // Gear B
gear = (high_gear != 0) ? 3 : 9;
break;
case 4: // Gear C
gear = (high_gear != 0) ? 4 : 10;
break;
case 5: // Gear D
gear = (high_gear != 0) ? 5 : 11;
break;
case 6: // Gear E
gear = (high_gear != 0) ? 6 : 12;
break;
default: // gear selection is bitmasked to be able to spot double-engagement
gear = 0;
}
if (gear >= 0 && spindle_speed_in >= gear_min_speed(gear) && spindle_speed_in <= gear_max_speed(gear)) {
motor_speed_out = spindle_speed_in * gear_ratio(gear);
spindle_enable_out = spindle_enable_in;
} else {
motor_speed_out = 0;
spindle_enable_out = 0;
}
}
Please Log in or Create an account to join the conversation.
28 Aug 2018 12:24 #116704
by andypugh
Replied by andypugh on topic Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
The cases need to be 1, 2, 4, 8, 16 etc.
(Like the updated version that I posted, and gave you a link to).
Are you saying that you want to always run the VFD at 50 Hz?
The code that you have highlighted is intended to calculate the motor speed for the current spindle speed. as input it has a HAL pin where you need to set the ratio for each gear.
(Like the updated version that I posted, and gave you a link to).
Are you saying that you want to always run the VFD at 50 Hz?
The code that you have highlighted is intended to calculate the motor speed for the current spindle speed. as input it has a HAL pin where you need to set the ratio for each gear.
Please Log in or Create an account to join the conversation.
Moderators: cmorley
- Configuring LinuxCNC
- Configuration Tools
- PnCConf Wizard
- Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.
Time to create page: 0.209 seconds