Converteren toolchanger van LPT naar MESA

LinuxCNC kan hier besproken worden

Moderator: Moderators

Plaats reactie
Gebruikersavatar
javanree
Berichten: 1020
Lid geworden op: 10 mei 2011 12:16
Locatie: Renswoude
Contacteer:

Converteren toolchanger van LPT naar MESA

Bericht door javanree »

Ik ben langzaam aan weer bezig met de Emco 5 CNC
Echter loop ik tegen een issue aan.... ik had een 100% werkende setup met een simpel parallel BOB , ben nu over naar een MESA 7i76E

De gewone X- en Z-as krijg ik prima omgezet, spindel VFD nog niet geprobeerd maar dat is ook redelijk recht toe recht aan. Echter de toolchanger bezorgt mij (wederom!) hoofdpijn...

De oude setup , uit de HAL file

Code: Selecteer alles

setp parport.0.pin-06-out-invert 1
net ystep           => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
setp parport.0.pin-07-out-invert 1
net ydir            => parport.0.pin-07-out
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 25000
setp stepgen.1.dirsetup 20000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable

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

loadrt toolchanger
addf toolchanger servo-thread
net tool-change iocontrol.0.tool-change => toolchanger.toolchange
net tool-changed iocontrol.0.tool-changed <= toolchanger.toolchanged
net tool-number iocontrol.0.tool-prep-number => toolchanger.toolnumber
net tool-oldnumber iocontrol.0.tool-number => toolchanger.currenttoolnumber
            
net ypos-cmd toolchanger.position-cmd => stepgen.1.position-cmd
net yhomed axis.1.homed => toolchanger.ishomed

net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
De nieuwe setup , uit de HAL file

Code: Selecteer alles

#*******************
#  AXIS A
#*******************

setp   pid.a.Pgain     [AXIS_3]P
setp   pid.a.Igain     [AXIS_3]I
setp   pid.a.Dgain     [AXIS_3]D
setp   pid.a.bias      [AXIS_3]BIAS
setp   pid.a.FF0       [AXIS_3]FF0
setp   pid.a.FF1       [AXIS_3]FF1
setp   pid.a.FF2       [AXIS_3]FF2
setp   pid.a.deadband  [AXIS_3]DEADBAND
setp   pid.a.maxoutput [AXIS_3]MAX_OUTPUT
setp   pid.a.error-previous-target true
setp   pid.a.maxerror .0005

net a-index-enable  <=> pid.a.index-enable
net a-enable        =>  pid.a.enable
net a-pos-cmd       =>  pid.a.command
net a-vel-cmd       =>  pid.a.command-deriv
net a-pos-fb        =>  pid.a.feedback
net a-output        =>  pid.a.output

# Step Gen signals/setup

setp   hm2_7i76e.0.stepgen.03.dirsetup        [AXIS_3]DIRSETUP
setp   hm2_7i76e.0.stepgen.03.dirhold         [AXIS_3]DIRHOLD
setp   hm2_7i76e.0.stepgen.03.steplen         [AXIS_3]STEPLEN
setp   hm2_7i76e.0.stepgen.03.stepspace       [AXIS_3]STEPSPACE
setp   hm2_7i76e.0.stepgen.03.position-scale  [AXIS_3]STEP_SCALE
setp   hm2_7i76e.0.stepgen.03.step_type        0
setp   hm2_7i76e.0.stepgen.03.control-type     1
setp   hm2_7i76e.0.stepgen.03.maxaccel         [AXIS_3]STEPGEN_MAXACCEL
setp   hm2_7i76e.0.stepgen.03.maxvel           [AXIS_3]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net a-pos-cmd    <= axis.3.motor-pos-cmd
net a-vel-cmd    <= axis.3.joint-vel-cmd
net a-output     => hm2_7i76e.0.stepgen.03.velocity-cmd
net a-pos-fb     <= hm2_7i76e.0.stepgen.03.position-fb
net a-pos-fb     => axis.3.motor-pos-fb
net a-enable     <= axis.3.amp-enable-out
net a-enable     => hm2_7i76e.0.stepgen.03.enable

#  ---toolchange signals for custom tool changer---

loadrt toolchanger
addf toolchanger servo-thread

net tool-change iocontrol.0.tool-change => toolchanger.toolchange
net tool-changed iocontrol.0.tool-changed <= toolchanger.toolchanged
net tool-number iocontrol.0.tool-prep-number => toolchanger.toolnumber
net tool-oldnumber iocontrol.0.tool-number => toolchanger.currenttoolnumber

# net apos-cmd toolchanger.position-cmd => axis.3.motor-pos-cmd
net ahomed axis.3.homed => toolchanger.ishomed
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Ik struikel op de 2-na laatste (thans uitgecommente) regel ; geen idee waar ik het positie commando nu naar toe stuur, aangezien ik ineens die joints er bij heb.
Gebruikersavatar
DaBit
Donateur
Berichten: 11018
Lid geworden op: 05 dec 2012 13:48
Locatie: Oss

Re: Converteren toolchanger van LPT naar MESA

Bericht door DaBit »

Als je de triviale kinematics gebruikt is er een 1-1 relatie tussen de assen en motoren. X= joint 0, Y=joint 1, etc.

Maar je probeert een positie naar de motioncontroller te sturen, die geeft juist een positie uit.
Volgens mij bedoelde je 'net a-pos-cmd toolchanger.position-cmd' te doen? Uiteindelijk moet-ie naar pid.a.command gaan.

Eerder in je HAL staat ook 'net a-pos-cmd <= axis.3.motor-pos-cmd'. Die zou je uit moeten commentarieren als je de positie van het toolchanger-component wil laten komen in plaats van de motioncontroller.
De belangrijkste wet in de wetenschap: 'hoe minder efficient en hoe meer herrie, hoe leuker het is'
Plaats reactie