All pastes #815956 Raw Copy code Copy link Edit

Miscellany

public unlisted text v1 · immutable
#815956 ·published 2007-12-14 15:01 UTC
rendered paste body
######################################
# HAL code for external control box##
######################################


######################################
# Program start/pause button #########
######################################

#newsig runsignal bit 
net runsignal parport.0.pin-12-in-not halui.program.resume
net runsignal halui.mode.auto

#newsig stopsignal bit
net stopsignal parport.0.pin-11-in-not halui.program.pause
net stopsignal halui.mode.auto


######################################
# spindle ###########################
######################################
#input
linkpp parport.0.pin-13-in-not halui.spindle.start
linkpp parport.0.pin-10-in-not halui.spindle.stop

#output
# create a signal for "spindle on"
newsig spindle_on bit

# connect it to the iocontroller
linksp spindle_on motion.spindle-on
# connect it to a physical pin
linksp spindle_on parport.0.pin-04-out



######################################
# feed/jogwheels #####################
######################################

# add 3 encoder counter modules
loadrt encoder num_chan=4

#signals to connect the encoders to parport
newsig encA1 bit
newsig encB1 bit
newsig encA2 bit
newsig encB2 bit
newsig encA3 bit
newsig encB3 bit
newsig encA4 bit
newsig encB4 bit

linksp encA1 parport.0.pin-03-in
linksp encB1 parport.0.pin-02-in
linksp encA2 parport.0.pin-06-in
linksp encB2 parport.0.pin-07-in
linksp encA3 parport.0.pin-05-in
linksp encB3 parport.0.pin-04-in
linksp encA4 parport.0.pin-09-in
linksp encB4 parport.0.pin-08-in

linksp encA1 encoder.0.phase-A
linksp encB1 encoder.0.phase-B
linksp encA2 encoder.1.phase-A
linksp encB2 encoder.1.phase-B
linksp encA3 encoder.2.phase-A
linksp encB3 encoder.2.phase-B
linksp encA4 encoder.3.phase-A
linksp encB4 encoder.3.phase-B

	#jogwheel stuff
#make this your counts/unit
setp encoder.0.position-scale -1
setp encoder.1.position-scale -1
setp encoder.2.position-scale 1

addf encoder.update-counters    base-thread 
addf encoder.capture-position	servo-thread 

#next connect the output from the encoder counters to motion jog X
newsig jogwheel-pos1 s32
linkps encoder.0.counts => jogwheel-pos1
linksp jogwheel-pos1 => axis.0.jog-counts

newsig jogwheel-pos2 s32
linkps encoder.1.counts => jogwheel-pos2
linksp jogwheel-pos2 => axis.2.jog-counts

newsig jogwheel-pos3 s32
linkps encoder.2.counts => jogwheel-pos3
linksp jogwheel-pos3 => axis.1.jog-counts

#next enable the jogwheel jogging
newsig enablejog bit
linksp enablejog => axis.0.jog-enable
linksp enablejog => axis.1.jog-enable
linksp enablejog => axis.2.jog-enable

#set it to 1
sets enablejog 1

newsig jogscale float
sets jogscale 0.01
setp encoder.0.x4-mode 1
setp encoder.1.x4-mode 1
setp encoder.2.x4-mode 1


#linksp Xphase-A parport.0.pin-02-out    <-- WTF?


linksp jogscale => axis.0.jog-scale
linksp jogscale => axis.1.jog-scale
linksp jogscale => axis.2.jog-scale

	#feedwheel stuff

setp encoder.2.x4-mode 1

newsig scale float
sets scale 0.01
linksp scale halui.feed-override.scale

linkpp halui.feed-override.counts encoder.3.counts

---------------------------------------------------------------------------

# Generated by stepconf at Fri Dec 14 15:12:32 2007
# If you make changes to this file, they will be
# overwritten when you run stepconf again
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]SERVO_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x0378 in 0xcc00 out 0xd800 in"
setp parport.1.reset-time 4000
loadrt stepgen step_type=0,0,0


# next connect the parport functions to threads
# read inputs first
addf parport.0.read base-thread 1
addf stepgen.make-pulses base-thread
addf parport.1.read base-thread 1
addf parport.1.reset base-thread
addf parport.2.read base-thread 1
# write outputs last
addf parport.0.write base-thread -1
addf parport.1.write base-thread -1
addf parport.2.write base-thread -1


addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread

net zdir => parport.1.pin-02-out
net zstep => parport.1.pin-03-out
setp parport.1.pin-03-out-reset 1
net xdir => parport.1.pin-04-out
net xstep => parport.1.pin-05-out
setp parport.1.pin-05-out-reset 1
net ydir => parport.1.pin-06-out
net zstep => parport.1.pin-07-out
setp parport.1.pin-07-out-reset 1


setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 45000
setp stepgen.0.dirsetup 26000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable

setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 45000
setp stepgen.1.dirsetup 26000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable

setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 45000
setp stepgen.2.dirsetup 26000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared