ciao, dopo lungo pomeriggio di fresature vi aggiorno:
il rilevamento della velocità funziona egregiamente ed è molto stabile anche con una sola tacca, quindi lo lascerò così.
per l'impostazione dell'indirizzo della porta parallela non saprei che dirti, la prima configurazione l'ho fatta con la procedura guidata di linuxcnc però so che l'indirizzo è quello perchè con mach3 ho smanettato un pò e per via dell'errore sull'asse z che mi dava avevo provato ad impostare la porta a 278 da bios. ora però l'ho rimessa su 378 e quella riga nel file hal l'ha messa da solo quando ho installato.
ho riletto i post precedenti e credo di aver capito più o meno il funzionamento dei vari comandi. avevo seguito anche la guida hal di xemet con i due esempi pratici quindi diciamo che sto cominciano a muovere i primi passi, in fondo è poco più di una settimana che sono entrato nel mondo linux....
di seguito allego i files della configurazione che uso corretti con le funzioni per il rilevamento della velocità del mandrino (che io faccio tramite sensore ottico recuperato finecorsa stampanti accoppiato ad un disco plastico nero con una sola apertura calettato sullalbero del mandrino) così magari qualcun'altro potrà approfittare dei suggerimenti che sono stati dati a me.
ciao e grazie di nuovo, alla prossima richiesta di aiuto....
file hal principale:
# Generato da stepconf a Mon Feb 25 19:18:46 2013
# Se questo file viene modificato, questo saràƒÂ
# sovrascritto quando si useràƒÂ ancora stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out "
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
loadrt encoder num_chan=1
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 stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
net spindle-cmd <= motion.spindle-speed-out
net spindle-on <= motion.spindle-on
setp encoder.0.counter-mode 1
loadrt scale count=1
addf scale.0 servo-thread
setp scale.0.gain 60
setp scale.0.offset 0
net xdir => parport.0.pin-01-out
net spindle-on => parport.0.pin-02-out
setp parport.0.pin-03-out-invert 1
net zstep => parport.0.pin-03-out
setp parport.0.pin-03-out-reset 1
net xenable => parport.0.pin-04-out
net xenable => parport.0.pin-05-out
net zdir => parport.0.pin-06-out
net ydir => parport.0.pin-07-out
net adir => parport.0.pin-08-out
setp parport.0.pin-09-out-invert 1
net astep => parport.0.pin-09-out
setp parport.0.pin-09-out-reset 1
setp parport.0.pin-14-out-invert 1
net ystep => parport.0.pin-14-out
setp parport.0.pin-14-out-reset 1
setp parport.0.pin-16-out-invert 1
net xstep => parport.0.pin-16-out
setp parport.0.pin-16-out-reset 1
net xenable => parport.0.pin-17-out
net both-home-z <= parport.0.pin-10-in-not
net both-home-x <= parport.0.pin-11-in-not
net both-home-y <= parport.0.pin-12-in-not
net estop-ext <= parport.0.pin-13-in-not
net appoggio_encoder <= parport.0.pin-15-in
net appoggio_encoder => encoder.0.phase-A
net rps <= encoder.0.velocity
net rps => scale.0.in
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 40000
setp stepgen.0.dirsetup 40000
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
net both-home-x => axis.0.home-sw-in
net both-home-x => axis.0.neg-lim-sw-in
net both-home-x => axis.0.pos-lim-sw-in
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 40000
setp stepgen.1.dirsetup 40000
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
net both-home-y => axis.1.home-sw-in
net both-home-y => axis.1.neg-lim-sw-in
net both-home-y => axis.1.pos-lim-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 40000
setp stepgen.2.dirsetup 40000
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 both-home-z => axis.2.home-sw-in
net both-home-z => axis.2.neg-lim-sw-in
net both-home-z => axis.2.pos-lim-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => 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
file hal per la bar della velocitò mandrino:
net meter <= scale.0.out
net meter => pyvcp.rpm
file ini:
# Generato da stepconf a Mon Feb 25 19:18:46 2013
# Se questo file viene modificato, questo saràƒÂ
# sovrascritto quando si useràƒÂ ancora stepconf
[EMC]
MACHINE = grisu-cnc
DEBUG = 0
[DISPLAY]
DISPLAY = axis
PYVCP = rpm.xml
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 1
PROGRAM_PREFIX = /home/fabrizio/scrivania/prova x linuxcnc
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 35000
SERVO_PERIOD = 1000000
[HAL]
HALFILE = grisu-cnc.hal
POSTGUI_HALFILE = rpm.hal
[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 30.00
MAX_LINEAR_VELOCITY = 34.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 34.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 325
SCALE = 800
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -2.000
MAX_LIMIT = 325.0
HOME_OFFSET = -2.000000
HOME_SEARCH_VEL = -10.0000
HOME_LATCH_VEL = 0.62500
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 34.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 325
SCALE = 800
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -2.000
MAX_LIMIT = 415
HOME_OFFSET = -2.000000
HOME_SEARCH_VEL = -10.000
HOME_LATCH_VEL = 0.625
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 30.00
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 325
SCALE = 800
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -84.0
MAX_LIMIT = 0.0001
HOME_OFFSET = 2.000000
HOME_SEARCH_VEL = 6.000
HOME_LATCH_VEL = -0.625
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0
file xml per la generazione della bar della velocità mandrino:
<pyvcp>
<bar>
<halpin>"rpm"</halpin>
<min_>0</min_>
<max_>30000</max_>
<bgcolor>"grey"</bgcolor>
<fillcolor>"green"</fillcolor>
</bar>
</pyvcp>