LinuxCNC - EMC2 & Stepcraft HF Spindel
Moin,
da die Proxxon aus meiner Sicht zum Fräsen ungeeignet ist (da die alle paar Stunden kaputt geht), hab ich in die HF-Spindel investiert.
Diese kann auch via LinuxCNC angesteuert werden.
Die Einrichtung hatte ich ja schon da beschrieben:
LinuxCNC - EMC2 - Installation/Einrichtung
Um die Spindel in mit LinuxCNC anzusteuern müssten folgende dick hervorgehobene Befehle in die hal Datei eingefügt werden.
###hal-datei:
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 pwmgen output_type=1
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.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 pwmgen.update servo-thread
# net spindle-cmd <= motion.spindle-speed-out
net spindle-cmd pwmgen.0.value
net spindle-on pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 100.0
setp pwmgen.0.scale 20000.0
setp pwmgen.0.offset 0.0
setp pwmgen.0.dither-pwm true
net spindle-cw parport.0.pin-01-out
net xdir => parport.0.pin-02-out
net xstep => parport.0.pin-03-out
setp parport.0.pin-03-out-reset 1
net zdir => parport.0.pin-04-out
net zstep => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
net ydir => parport.0.pin-06-out
net ystep => parport.0.pin-07-out
setp parport.0.pin-07-out-reset 1
net spindle-pwm => parport.0.pin-17-out
net estop-ext <= parport.0.pin-11-in-not
net all-home 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.enable
net all-home => axis.0.home-sw-in
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 70000
setp stepgen.1.dirsetup 70000
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.enable
net all-home => axis.1.home-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 70000
setp stepgen.2.dirsetup 70000
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.enable
net all-home => axis.2.home-sw-in
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.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
...funst einwandfrei. 🙂
Gruß
Norbert 😉
...bin froh mit die HF gekauft zu haben. Bei den ganzen Fräsarbeiten die ich bis jetzt mit der Spindel gemacht habe wären vermutlich mindestens 20 Proxxon draufgegangen. Somit ist die HF langfristig gesehen sogar deutlich Preisgünstiger als die Proxxon. 😀
Gruß
Norbert 😉
Ich frage mich nur, warum die HF-350 (nach einer Stunde Dauerbetrieb) eine Gehäusetemperatur von +54°C hat. (mit Kühlung durch die beigefügte Pumpe...)
Das ist keine Kühlung sondern Sperrluft, die verhindert nur das eindringen von Staub in die Spindel
Gruß Volker
Ich habe die Zeilen zu meiner .hal - Datei hinzugefügt und es funktioniert auch, aber mehr schlecht als recht: Die Spindel "eiert" in der Drehzahl und auch die Anzeige an der Steuerung flackert ganz mächtig.
Ich werd mir wohl mal die Dokumentation zum pwmgen zu Gemüte führen müssen, aber wenn jemand gleich weiss, was das ist, bin ich für jeden Tip dankbar ;-).
Ich hab meine HF-500 heute auf der Arbeit ganz gut eingerichtet bekommen ich poste Montag mal ein Screenshot meiner Stepconf
Ich habe eine ganze Weile mit den Zahlenwerten rum gespielt
ich glaube das war meine endgültige Einstellung
PWM 500 Hz
Speed1: 3000 PWM1: 0.3
Speed2: 20000 PWM2: 2.0
Probier das mal aus, wen die Anzeige stark springt geh mal auf 100 Hz runter oder 1500 Hz hoch.
Gruß,
Stephan
EstelCAM11 mit ArduinoMega DIY + DIY Handrad SC420 mit HF-500
und Eigenbau x750 y450 z150 mit Brushless 400W Spindel (RC-Motor)
Mit Hilfe des englischen Forums bin ich auf brauchbare Werte gekommen:
Die Speed2: 20000 PWM2: 2.0 versteh ich nicht, der Höchstwert für PWM ist doch 1.0 (i.e. ein 100% Duty Cycle).
Funktioniert diese Einstellung bei dir?
Warum 2 verstehe ich auch nicht aber genau diese Einstellung die du im Netz gefunden hast hatte ich bei mir versuch.
Wenn ich den Regler auf 100% gestellt habe dann war die HF Steuerung bei 50%
und dann dachte ich mir, schreib da mal 2 rein und schau ob beim Abspeichern eine Fehlermeldung kommt weil das auch nach meiner Logik eine ungültige Eingabe ist.
Aber es Funktioniert mit 2 100% am Schieber sind jetzt 100% bei der Steuerung.
EstelCAM11 mit ArduinoMega DIY + DIY Handrad SC420 mit HF-500
und Eigenbau x750 y450 z150 mit Brushless 400W Spindel (RC-Motor)
Hi Effad,
Ich versteh nicht warum du bei dir Parameter nicht funktioniert haben. Bei welcher Version bist du?
Ich bin auf der aktuellsten und bei mir furnktioniert alles mit den Werten von Norbert...
Beste Grüße
Matei
Kann gut sein, dass es ein Versionsproblem ist, habe recht alte Version von LinuxCNC und will nicht upgraden (never change a running system ...).
Noch eine Frage: Wie ich heute festgestellt habe, braucht die HF Spindel ja einige Zeit, um auf Geschwindigkeit zu kommen, nachdem mit M3 gestartet wurde. Wenn man da jetzt nicht wartet, fährt der Fräser mit wenig oder gar keiner Umdrehung ins Material => Autsch!
Ideal wäre natürlich ein Pin, das "spindle at speed" mitteilt, das macht die HF Steuerung aber wohl nicht.
Meine zweite Idee wäre mit Hilfe von timedelay was zu basteln.
Hat da schon jemand was?
Hab gerade diese Zeilen für die .hal-Datei aus einem Forum ausgegraben:
loadrt timedelay count=1 addf timedelay.0 servo-thread setp timedelay.0.on-delay 10 setp timedelay.0.off-delay 0 net spindle-on => timedelay.0.in net spindle-ready motion.spindle-at-speed
Habs mal mit der Simulation probiert, da funktioniert es.
=> Damit wird nach jedem M3 10 Sekunden gewartet, bis die Spindel auf Speed ist. Natürlich weniger elegant als mit Signal von der Steuerung, aber geht auch.
Werde aber wohl noch mein dxf2gcode so anpassen müssen, dass er nicht zwischen zwei Shapes immer die Spindel ausschaltet, weil das kann die Fräszeit doch dramatisch nach oben treiben (gerade beim Löcher bohren ...).
- 44 Foren
- 7,406 Themen
- 63.4 K Beiträge
- 8 Online
- 26.5 K Mitglieder