adding files
This commit is contained in:
140
my-emco/custom.hal
Normal file
140
my-emco/custom.hal
Normal file
@@ -0,0 +1,140 @@
|
||||
# Include your customized HAL commands here
|
||||
# This file will not be overwritten when you run stepconf again
|
||||
|
||||
loadrt scale count=2 # 0 used to convert spindle rps-to-rpm, 1 used to scale jog-scale output from classicladder
|
||||
loadrt near names=spindle-at-speed
|
||||
loadrt pid names=spindle-speed-ctrl
|
||||
loadrt limit2 names=spindle-ramp
|
||||
loadrt not count=1 # used for ramping spindle speed
|
||||
loadrt and2 count=3 # and2.0 used for MPG run-button, and2.1 for e-stop-chain, and2.2 for setting tool after homeing
|
||||
loadrt classicladder_rt
|
||||
loadrt conv_float_u32 # user in postgui for converting analog signal to integer
|
||||
|
||||
loadusr -Wn my-mpg python serialEventHandler.py --port=/dev/ttyUSB0 -c my-mpg mpg.xml
|
||||
loadusr -Wn my-encoder python fake_encoder.py --port=/dev/ttyS0 -c my-encoder
|
||||
loadusr classicladder test_ladder.clp --nogui
|
||||
|
||||
addf scale.0 servo-thread
|
||||
addf scale.1 servo-thread
|
||||
addf spindle-at-speed servo-thread
|
||||
addf spindle-speed-ctrl.do-pid-calcs servo-thread
|
||||
addf spindle-ramp servo-thread
|
||||
addf not.0 servo-thread
|
||||
addf and2.0 servo-thread
|
||||
addf and2.1 servo-thread
|
||||
addf and2.2 servo-thread
|
||||
addf classicladder.0.refresh servo-thread
|
||||
addf conv-float-u32.0 servo-thread
|
||||
|
||||
### spindel speed ramping
|
||||
setp spindle-ramp.maxv 500
|
||||
net spindle-cmd-rpm => spindle-ramp.in
|
||||
net spindle-ramped <= spindle-ramp.out => pwmgen.0.value
|
||||
net spindle-on not.0.in
|
||||
net spindle-off not.0.out
|
||||
net spindle-off spindle-ramp.load
|
||||
net spindle-ramped => spindle-at-speed.in2
|
||||
|
||||
### spindle at speed monitoring ###
|
||||
setp spindle-at-speed.scale 0.98
|
||||
setp spindle-at-speed.difference 10
|
||||
setp scale.0.gain 60 # rps to rpm
|
||||
setp scale.0.offset 0
|
||||
|
||||
net spindle-velocity-rpm <= scale.0.out
|
||||
net spindle-cmd-rpm => spindle-at-speed.in1
|
||||
#net spindle-velocity-rpm => spindle-at-speed.in2
|
||||
net spindle-ramped => spindle-at-speed.in2
|
||||
net spindle-ready <= spindle-at-speed.out => spindle.0.at-speed
|
||||
|
||||
### encoder ###
|
||||
net spindle-position my-encoder.position => spindle.0.revs
|
||||
net spindle-velocity-rps my-encoder.velocity
|
||||
net spindle-velocity-rps => spindle.0.speed-in
|
||||
net spindle-velocity-rps => scale.0.in
|
||||
net spindle-index-enable my-encoder.index-enable <=> spindle.0.index-enable
|
||||
net watchdog-enable my-encoder.watchdog-enable # connected to checkbox in postgui
|
||||
|
||||
### PID ctrl ###
|
||||
net spindle-cmd-rpm => spindle-speed-ctrl.command
|
||||
setp spindle-speed-ctrl.Pgain 2.5
|
||||
setp spindle-speed-ctrl.Igain 3
|
||||
setp spindle-speed-ctrl.Dgain 2.3
|
||||
setp spindle-speed-ctrl.FF0 0
|
||||
setp spindle-speed-ctrl.FF1 1.5
|
||||
setp spindle-speed-ctrl.maxoutput 4500
|
||||
setp spindle-speed-ctrl.deadband 25
|
||||
#setp spindle-speed-ctrl.maxerror 1000
|
||||
setp spindle-speed-ctrl.enable 0
|
||||
|
||||
net spindle-velocity-rpm => spindle-speed-ctrl.feedback
|
||||
#net spindle-speed-ctrl-out spindle-speed-ctrl.output => pwmgen.0.value
|
||||
net spindle-on => spindle-speed-ctrl.enable #from spindle.0.on
|
||||
net spindle-index-enable => spindle-speed-ctrl.index-enable
|
||||
|
||||
### mist coolant ctrl ###
|
||||
net mist-cmd iocontrol.0.coolant-mist => parport.0.pin-14-out
|
||||
|
||||
### e-stop chain ###
|
||||
net estop-internal <= iocontrol.0.user-enable-out
|
||||
net estop-external <= parport.0.pin-13-in-not
|
||||
|
||||
net estop-internal => and2.1.in0
|
||||
net estop-external => and2.1.in1
|
||||
net estop-chain and2.1.out => iocontrol.0.emc-enable-in
|
||||
|
||||
## restoring tool after homing #################################################
|
||||
# note, logic assumes z-axis homed first, when x and y axis' are
|
||||
# homed, all axis are done
|
||||
net x-homed halui.joint.0.is-homed and2.2.in0
|
||||
net y-homed halui.joint.1.is-homed and2.2.in1
|
||||
net xy-homed and2.2.out
|
||||
net xy-homed halui.mdi-command-02
|
||||
net xy-homed halui.mdi-command-03
|
||||
|
||||
### pendant ##########################################
|
||||
# jog wheel connects to x, y, z axis
|
||||
net mpg-jog-counts joint.0.jog-counts axis.x.jog-counts <= my-mpg.jog-counts
|
||||
net mpg-jog-counts joint.1.jog-counts axis.y.jog-counts
|
||||
net mpg-jog-counts joint.2.jog-counts axis.z.jog-counts
|
||||
|
||||
# axis selector connects to x, y, z axis enable
|
||||
net jog-axis-sel classicladder.0.s32in-00
|
||||
net jog-x-enable classicladder.0.out-00
|
||||
net jog-y-enable classicladder.0.out-01
|
||||
net jog-z-enable classicladder.0.out-02
|
||||
|
||||
net jog-axis-sel my-mpg.axis-selector
|
||||
net jog-x-enable axis.x.jog-enable
|
||||
net jog-y-enable axis.y.jog-enable
|
||||
net jog-z-enable axis.z.jog-enable
|
||||
|
||||
# jog scale selector connects to x, y, z axis jog scale and jog velocity mode
|
||||
setp scale.1.gain 0.01
|
||||
setp scale.1.offset 0
|
||||
net jog-scale-100 classicladder.0.floatout-00 scale.1.in
|
||||
net jog-scale-sel classicladder.0.s32in-01
|
||||
net jog-scale scale.1.out
|
||||
|
||||
net jog-scale-sel my-mpg.scale-selector
|
||||
net jog-scale joint.0.jog-scale axis.x.jog-scale
|
||||
net jog-scale joint.1.jog-scale axis.y.jog-scale
|
||||
net jog-scale joint.2.jog-scale axis.z.jog-scale
|
||||
|
||||
net vel-mode-sel classicladder.0.out-03
|
||||
net vel-mode-sel joint.0.jog-vel-mode axis.x.jog-vel-mode
|
||||
net vel-mode-sel joint.1.jog-vel-mode axis.y.jog-vel-mode
|
||||
net vel-mode-sel joint.2.jog-vel-mode axis.z.jog-vel-mode
|
||||
|
||||
### connect the buttons
|
||||
# connect Func-button
|
||||
net func-button my-mpg.func-btn #connected to gladevcp-component in postgui
|
||||
|
||||
# connect Run button
|
||||
net run-button halui.mode.auto and2.0.in0 <= my-mpg.prog-run-btn
|
||||
net program-run-ok and2.0.in1 <= halui.mode.is-auto
|
||||
net remote-program-run halui.program.run <= and2.0.out
|
||||
|
||||
# connect E-Stop button
|
||||
net estop-button halui.estop.activate <= my-mpg.estop-btn
|
||||
|
||||
Reference in New Issue
Block a user