From afb180ab16a86a9de3a5078c6c65a0049be09c16 Mon Sep 17 00:00:00 2001 From: uvos Date: Sun, 5 Feb 2023 22:49:09 +0100 Subject: [PATCH] Make A axis a switchable between spindle 1 and an axis for milling --- 3040T.hal | 51 ++++++++++++++++++++++++---------------------- 3040T.ini | 13 ++++++------ custom_postgui.hal | 3 --- 3 files changed, 33 insertions(+), 34 deletions(-) diff --git a/3040T.hal b/3040T.hal index 51537c2..b5dc9d0 100644 --- a/3040T.hal +++ b/3040T.hal @@ -1,21 +1,21 @@ #Real Time Modules loadrt [KINS]KINEMATICS -loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES loadrt hal_parport cfg="0 out" setp parport.0.reset-time 5000 -loadrt stepgen step_type=0,0,0,0 ctrl_type=p,p,p,p +loadrt stepgen step_type=0,0,0,0,0 ctrl_type=p,p,p,p,v loadrt ilowpass count=1 loadrt timedelay count=2 loadrt not count=1 loadrt or2 count=3 loadrt xor2 count=2 -loadrt mux2 count=1 -loadrt and2 count=1 +loadrt mux_generic config="bb2" addf parport.0.read base-thread addf stepgen.make-pulses base-thread addf parport.0.write base-thread addf parport.0.reset base-thread +addf mux-gen.00 base-thread addf stepgen.capture-position servo-thread addf motion-command-handler servo-thread @@ -92,17 +92,34 @@ net max-home-z => joint.2.home-sw-in net max-home-z => joint.2.pos-lim-sw-in #A-Axis + +#Absolute setp stepgen.3.position-scale [JOINT_3]SCALE setp stepgen.3.steplen 1 setp stepgen.3.stepspace 0 setp stepgen.3.dirhold 36000 setp stepgen.3.dirsetup 36000 setp stepgen.3.maxaccel [JOINT_3]STEPGEN_MAXACCEL -net astep <= stepgen.3.step -net adir <= stepgen.3.dir + +net astepAbs stepgen.3.step => mux-gen.00.in-bit-00 +net adir stepgen.3.dir net aenable joint.3.amp-enable-out => stepgen.3.enable -#net apos-cmd joint.3.motor-pos-cmd => stepgen.3.position-cmd -#net apos-fb stepgen.3.position-fb => joint.3.motor-pos-fb +net apos-cmd joint.3.motor-pos-cmd => stepgen.3.position-cmd +net apos-fb stepgen.3.position-fb => joint.3.motor-pos-fb + +net astep <= mux-gen.00.out-bit + +#Velocity +setp stepgen.4.position-scale [JOINT_3]SCALE +setp stepgen.4.steplen 1 +setp stepgen.4.stepspace 0 +setp stepgen.4.dirhold 36000 +setp stepgen.4.dirsetup 36000 +setp stepgen.4.maxaccel [JOINT_3]STEPGEN_MAXACCEL + +net spindle-1-enable <= spindle.1.on => mux-gen.00.sel-bit-00 stepgen.4.enable +net spindle-1-cmd spindle.1.speed-out => stepgen.4.velocity-cmd +net astepVel <= stepgen.4.step => mux-gen.00.in-bit-01 net estop-out <= iocontrol.0.user-enable-out net estop-ext => iocontrol.0.emc-enable-in @@ -120,20 +137,8 @@ loadusr -Wn cncextension ./cncextension #Amp enable net amp-enable halui.machine.is-on => cncextension.wr0 -#Spindle Control - -addf mux2.0 servo-thread -net spindle-select => mux2.0.sel -sets spindle-select 1 -net spindle-cmd-rpm <= spindle.0.speed-out -net spindle-cmd-rpm => mux2.0.in0 -setp mux2.0.in1 0 -net spindle-axis-rpm mux2.0.out => stepgen.3.velocity-cmd - -addf and2.0 servo-thread -net spindle-fwd-and spindle.0.forward => and2.0.in0 -net spindle-select => and2.0.in1 -net spindle-main-fwd <= and2.0.out +#Main Spindle Control +net spindle-main-fwd spindle.0.forward net spindle-main-fwd => cncextension.ch0 net spindle-main-fwd => cncextension.opt @@ -163,10 +168,8 @@ net spindle-main-inhibit => or2.1.in1 net spindle-inhibit <= or2.1.out net spindle-inhibit => spindle.0.at-speed -net spindle-position <= stepgen.3.position-fb net spindle-position => spindle.0.revs net spindle-axis-rpm => spindle.0.speed-in -net spindle-index-enable encoder.3.index-enable <=> spindle.0.index-enable #MPG setp joint.0.jog-vel-mode 0 diff --git a/3040T.ini b/3040T.ini index 772a387..909412b 100644 --- a/3040T.ini +++ b/3040T.ini @@ -29,7 +29,7 @@ INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm PYVCP=pannel.xml OPEN_FILE ="" PROGRAM_PREFIX=/home/philipp/linuxcnc/nc_files - +GEOMETRY=XYZA [FILTER] PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image @@ -50,7 +50,6 @@ REMAP=M600 modalgroup=6 ngc=tool-job-begin FEATURES=12 [EMCMOT] - EMCMOT = motmod COMM_TIMEOUT = 1.0 BASE_PERIOD = 35000 @@ -77,7 +76,7 @@ MDI_COMMAND = M400 MDI_COMMAND = o call [TRAJ] - +SPINDLES = 2 COORDINATES = XYZA LINEAR_UNITS = mm ANGULAR_UNITS = degree @@ -170,17 +169,17 @@ HOME_SEQUENCE = 0 [AXIS_A] MIN_LIMIT = -99999 MAX_LIMIT = 99999 -MAX_VELOCITY = 3.33 +MAX_VELOCITY = 500 MAX_ACCELERATION = 2000.0 [JOINT_3] TYPE = ANGULAR HOME = 0.0 -MAX_VELOCITY = 3.33 +MAX_VELOCITY = 500 MAX_ACCELERATION = 2000.0 STEPGEN_MAXACCEL = 2500.0 -#SCALE = 4.6296 #old scale maybe accurate for absolute positon mode? -SCALE = 27.7776 +SCALE = 4.6296 +#SCALE = 4.86 FERROR = 1 MIN_FERROR = .25 MIN_LIMIT = -99999 diff --git a/custom_postgui.hal b/custom_postgui.hal index 6705080..5e14e50 100644 --- a/custom_postgui.hal +++ b/custom_postgui.hal @@ -3,9 +3,6 @@ net mpg pyvcp.mpg-chkbtn => cncextension.enableMpg -#spindle -net spindle-select <= pyvcp.spindle-select.Milling - # Vacuume and coolant addf xor2.0 servo-thread net sigVacuumeBtn pyvcp.vacuume-chkbtn => xor2.0.in0