On Tue, 28 Jan 2025 at 16:46, Horváth Csaba <hcs....@gmail.com> wrote:

> I have an old milling machine with a hydraulic spindle speed range
> switch. The hydraulic valve has 2 coils (low and high speed). There are
> 2 feedback inductive sensors (for low and high speed).
> How can I solve this so that when a program needs to change the speed
> range, it does so automatically

My lathe has a two-speed electronically controlled gearbox, but it
does not have the inductive switches to indicate which gear it is in.

I use this HAL component (see the halcompile documents for how to use it)

Note that this works in conjunction with a three-position switch so
that I can lock the spindle in high or low ratio, if I want to.


component gearchange "A component to choose spindle gears according to
spindle speed";
pin in float speed-command;
pin in bit spindle-on;
pin in bit manual-low;
pin in bit manual-high;
pin in bit brake-enable;
pin out float motor-speed;
pin out bit low-gear;
pin out bit high-gear;
pin out bit brake;
param rw float low-ratio=3;
param rw float high-ratio=1;
param rw float max-low = 500;

author "andy pugh";
license "GPL";
function _;

;;

FUNCTION(_){
    static int old_M3;

    if (spindle_on) {
        if (!old_M3){ // spindle off to on transition
            if (manual_high) {
                high_gear = 1;
                low_gear = 0;
                brake = 0;
            }
            else if (manual_low){
                high_gear = 0;
                low_gear = 1;
                brake = 0;
            } else if (speed_command <= max_low){
                high_gear = 0;
                low_gear = 1;
                brake = 0;
            } else {
                high_gear = 1;
                low_gear = 0;
                brake = 0;
            }
        }
    } else { //spindle off
        high_gear = 0;
        low_gear = 0;
        brake = brake_enable;
    }

    old_M3 = spindle_on;

    if (high_gear){
        motor_speed = speed_command * high_ratio;
    } else if (low_gear){
        motor_speed = speed_command * low_ratio;
    }
}

-- 
atp
"A motorcycle is a bicycle with a pandemonium attachment and is
designed for the especial use of mechanical geniuses, daredevils and
lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1912


_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to