CNC-Fräse/Linux CNC

Aus C3MAWiki
Version vom 4. Juli 2016, 20:08 Uhr von Ollo (Diskussion | Beiträge) (→‎Fräse)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Beschreibung der Fräse

Linux CNC für Next3D

Fräse

Die Konfiguration der Fräse wurde in der Datei GoCNC_Step_2600.stepconf abgespeichert:

<?xml version="1.0" ?>
<stepconf>
  <property name="ahomepos" type="int" value="0"/>
  <property name="ahomesw" type="int" value="0"/>
  <property name="ahomevel" type="float" value="0.05"/>
  <property name="alatchdir" type="int" value="0"/>
  <property name="aleadscrew" type="int" value="8"/>
  <property name="amaxacc" type="int" value="1200"/>
  <property name="amaxlim" type="int" value="9999"/>
  <property name="amaxvel" type="int" value="360"/>
  <property name="amicrostep" type="int" value="2"/>
  <property name="aminlim" type="int" value="-9999"/>
  <property name="apulleyden" type="int" value="1"/>
  <property name="apulleynum" type="int" value="1"/>
  <property name="ascale" type="int" value="0"/>
  <property name="asteprev" type="int" value="200"/>
  <property name="axes" type="int" value="0"/>
  <property name="classicladder" type="bool" value="False"/>
  <property name="createshortcut" type="bool" value="True"/>
  <property name="createsymlink" type="bool" value="True"/>
  <property name="customhal" type="int" value="1"/>
  <property name="digitsin" type="float" value="15.0"/>
  <property name="digitsout" type="float" value="15.0"/>
  <property name="dirhold" type="float" value="20000.0"/>
  <property name="dirsetup" type="float" value="20000.0"/>
  <property name="drivertype" type="string" value="other"/>
  <property name="floatsin" type="float" value="10.0"/>
  <property name="floatsout" type="float" value="10.0"/>
  <property name="halui" type="bool" value="True"/>
  <property name="ioaddr" type="string" value="0x378"/>
  <property name="ioaddr2" type="string" value="1"/>
  <property name="ioaddr3" type="string" value="2"/>
  <property name="ladderconnect" type="bool" value="True"/>
  <property name="ladderhaltype" type="int" value="0"/>
  <property name="laddername" type="string" value="blank.clp"/>
  <property name="latency" type="float" value="15000.0"/>
  <property name="machinename" type="string" value="GoCNC_Step_2600"/>
  <property name="manualtoolchange" type="bool" value="True"/>
  <property name="md5sums" type="eval" value="[]"/>
  <property name="modbus" type="bool" value="False"/>
  <property name="number_pports" type="int" value="1"/>
  <property name="period" type="int" value="25000"/>
  <property name="pin1" type="string" value="spindle-on"/>
  <property name="pin10" type="string" value="all-home"/>
  <property name="pin10inv" type="bool" value="False"/>
  <property name="pin11" type="string" value="estop-ext"/>
  <property name="pin11inv" type="bool" value="True"/>
  <property name="pin12" type="string" value="unused-input"/>
  <property name="pin12inv" type="bool" value="False"/>
  <property name="pin13" type="string" value="probe-in"/>
  <property name="pin13inv" type="bool" value="True"/>
  <property name="pin14" type="string" value="unused-output"/>
  <property name="pin14inv" type="bool" value="False"/>
  <property name="pin15" type="string" value="unused-input"/>
  <property name="pin15inv" type="bool" value="False"/>
  <property name="pin16" type="string" value="xenable"/>
  <property name="pin16inv" type="bool" value="False"/>
  <property name="pin17" type="string" value="unused-output"/>
  <property name="pin17inv" type="bool" value="False"/>
  <property name="pin1inv" type="bool" value="False"/>
  <property name="pin2" type="string" value="xdir"/>
  <property name="pin2inv" type="bool" value="False"/>
  <property name="pin3" type="string" value="xstep"/>
  <property name="pin3inv" type="bool" value="False"/>
  <property name="pin4" type="string" value="ydir"/>
  <property name="pin4inv" type="bool" value="True"/>
  <property name="pin5" type="string" value="ystep"/>
  <property name="pin5inv" type="bool" value="False"/>
  <property name="pin6" type="string" value="zdir"/>
  <property name="pin6inv" type="bool" value="False"/>
  <property name="pin7" type="string" value="zstep"/>
  <property name="pin7inv" type="bool" value="False"/>
  <property name="pin8" type="string" value="adir"/>
  <property name="pin8inv" type="bool" value="False"/>
  <property name="pin9" type="string" value="astep"/>
  <property name="pin9inv" type="bool" value="False"/>
  <property name="pp2_direction" type="int" value="0"/>
  <property name="pp2_pin1" type="string" value="unused-output"/>
  <property name="pp2_pin10_in" type="string" value="unused-input"/>
  <property name="pp2_pin10_in_inv" type="int" value="0"/>
  <property name="pp2_pin11_in" type="string" value="unused-input"/>
  <property name="pp2_pin11_in_inv" type="int" value="0"/>
  <property name="pp2_pin12_in" type="string" value="unused-input"/>
  <property name="pp2_pin12_in_inv" type="int" value="0"/>
  <property name="pp2_pin13_in" type="string" value="unused-input"/>
  <property name="pp2_pin13_in_inv" type="int" value="0"/>
  <property name="pp2_pin14" type="string" value="unused-output"/>
  <property name="pp2_pin14inv" type="int" value="0"/>
  <property name="pp2_pin15_in" type="string" value="unused-input"/>
  <property name="pp2_pin15_in_inv" type="int" value="0"/>
  <property name="pp2_pin16" type="string" value="unused-output"/>
  <property name="pp2_pin16inv" type="int" value="0"/>
  <property name="pp2_pin17" type="string" value="unused-output"/>
  <property name="pp2_pin17inv" type="int" value="0"/>
  <property name="pp2_pin1inv" type="int" value="0"/>
  <property name="pp2_pin2" type="string" value="unused-output"/>
  <property name="pp2_pin2_in" type="string" value="unused-input"/>
  <property name="pp2_pin2_in_inv" type="int" value="0"/>
  <property name="pp2_pin2inv" type="int" value="0"/>
  <property name="pp2_pin3" type="string" value="unused-output"/>
  <property name="pp2_pin3_in" type="string" value="unused-input"/>
  <property name="pp2_pin3_in_inv" type="int" value="0"/>
  <property name="pp2_pin3inv" type="int" value="0"/>
  <property name="pp2_pin4" type="string" value="unused-output"/>
  <property name="pp2_pin4_in" type="string" value="unused-input"/>
  <property name="pp2_pin4_in_inv" type="int" value="0"/>
  <property name="pp2_pin4inv" type="int" value="0"/>
  <property name="pp2_pin5" type="string" value="unused-output"/>
  <property name="pp2_pin5_in" type="string" value="unused-input"/>
  <property name="pp2_pin5_in_inv" type="int" value="0"/>
  <property name="pp2_pin5inv" type="int" value="0"/>
  <property name="pp2_pin6" type="string" value="unused-output"/>
  <property name="pp2_pin6_in" type="string" value="unused-input"/>
  <property name="pp2_pin6_in_inv" type="int" value="0"/>
  <property name="pp2_pin6inv" type="int" value="0"/>
  <property name="pp2_pin7" type="string" value="unused-output"/>
  <property name="pp2_pin7_in" type="string" value="unused-input"/>
  <property name="pp2_pin7_in_inv" type="int" value="0"/>
  <property name="pp2_pin7inv" type="int" value="0"/>
  <property name="pp2_pin8" type="string" value="unused-output"/>
  <property name="pp2_pin8_in" type="string" value="unused-input"/>
  <property name="pp2_pin8_in_inv" type="int" value="0"/>
  <property name="pp2_pin8inv" type="int" value="0"/>
  <property name="pp2_pin9" type="string" value="unused-output"/>
  <property name="pp2_pin9_in" type="string" value="unused-input"/>
  <property name="pp2_pin9_in_inv" type="int" value="0"/>
  <property name="pp2_pin9inv" type="int" value="0"/>
  <property name="pp3_direction" type="int" value="0"/>
  <property name="pyvcp" type="bool" value="True"/>
  <property name="pyvcpconnect" type="bool" value="True"/>
  <property name="pyvcphaltype" type="int" value="0"/>
  <property name="pyvcpname" type="string" value="custompanel.xml"/>
  <property name="s32in" type="float" value="10.0"/>
  <property name="s32out" type="float" value="10.0"/>
  <property name="sim_hardware" type="bool" value="False"/>
  <property name="spindlecarrier" type="int" value="100"/>
  <property name="spindlecpr" type="int" value="100"/>
  <property name="spindlefiltergain" type="float" value="0.01"/>
  <property name="spindlenearscale" type="float" value="1.5"/>
  <property name="spindlepwm1" type="float" value="0.2"/>
  <property name="spindlepwm2" type="float" value="0.8"/>
  <property name="spindlespeed1" type="int" value="100"/>
  <property name="spindlespeed2" type="int" value="800"/>
  <property name="stepspace" type="float" value="5000.0"/>
  <property name="steptime" type="float" value="5000.0"/>
  <property name="tempexists" type="int" value="0"/>
  <property name="units" type="int" value="1"/>
  <property name="usespindleatspeed" type="bool" value="False"/>
  <property name="xhomepos" type="float" value="0.0"/>
  <property name="xhomesw" type="float" value="-1.5"/>
  <property name="xhomevel" type="float" value="5.0"/>
  <property name="xlatchdir" type="int" value="0"/>
  <property name="xleadscrew" type="float" value="3.0"/>
  <property name="xmaxacc" type="float" value="750.0"/>
  <property name="xmaxlim" type="float" value="328.5"/>
  <property name="xmaxvel" type="float" value="30.0"/>
  <property name="xmicrostep" type="float" value="2.0"/>
  <property name="xminlim" type="float" value="-1.5"/>
  <property name="xpulleyden" type="float" value="1.0"/>
  <property name="xpulleynum" type="float" value="1.0"/>
  <property name="xscale" type="float" value="133.333333333"/>
  <property name="xsteprev" type="float" value="200.0"/>
  <property name="yhomepos" type="float" value="0.0"/>
  <property name="yhomesw" type="float" value="490.0"/>
  <property name="yhomevel" type="float" value="-5.0"/>
  <property name="ylatchdir" type="int" value="0"/>
  <property name="yleadscrew" type="float" value="3.0"/>
  <property name="ymaxacc" type="float" value="250.0"/>
  <property name="ymaxlim" type="float" value="490.0"/>
  <property name="ymaxvel" type="float" value="30.0"/>
  <property name="ymicrostep" type="float" value="2.0"/>
  <property name="yminlim" type="float" value="0.0"/>
  <property name="ypulleyden" type="float" value="1.0"/>
  <property name="ypulleynum" type="float" value="1.0"/>
  <property name="yscale" type="float" value="133.333333333"/>
  <property name="ysteprev" type="float" value="200.0"/>
  <property name="zhomepos" type="float" value="105.0"/>
  <property name="zhomesw" type="float" value="110.0"/>
  <property name="zhomevel" type="float" value="-3.0"/>
  <property name="zlatchdir" type="int" value="0"/>
  <property name="zleadscrew" type="float" value="3.0"/>
  <property name="zmaxacc" type="float" value="750.0"/>
  <property name="zmaxlim" type="float" value="110.0"/>
  <property name="zmaxvel" type="float" value="30.0"/>
  <property name="zmicrostep" type="float" value="2.0"/>
  <property name="zminlim" type="float" value="0.0"/>
  <property name="zpulleyden" type="float" value="1.0"/>
  <property name="zpulleynum" type="float" value="1.0"/>
  <property name="zscale" type="float" value="133.333333333"/>
  <property name="zsteprev" type="float" value="200.0"/>
</stepconf>

Pendant

Es wurde ein xhc-hb04 verwendet. Um diesen in Betrieb zu nehmen muss der entsprechende Treiber hier heruntergeladen werden.

Trotz einer neueren Linux CNC Version wurde der darin beinhaltende Treiber kompiliert.

Konfiguration

Zur Inbetriebnahme wurde in der Konfigurations-Datei (GoCNC_Step_2600.ini in unserem Fall) folgende Stelle im Abschnitt HAL angepasst werden:

[HAL]
HALUI = halui
HALFILE = GoCNC_Step_2600.hal
HALFILE = custom.hal
HALFILE = xhc-hb04-world-mode.hal
POSTGUI_HALFILE = custom_postgui.hal

[XHC_HB04_CONFIG]
layout = 2
coords = x y z a
coefs  = 1 1 1 1
scales = 1 1 1 1
threadname = servo-thread
sequence = 1
jogmode = normal
require_pendant = yes
inch_or_mm = mm

Die Knöpfe des Pendant wurden mit der Konfigurations-Datei xhc-hb04-world-mode.hal festgelegt.


loadusr -W xhc-hb04 -I xhc-hb04-layout2.ini -H

# Home button
net home halui.home-all <= xhc-hb04.button-home

# Absolute position LCD
net pos-x halui.axis.0.pos-feedback => xhc-hb04.x.pos-absolute
net pos-y halui.axis.1.pos-feedback => xhc-hb04.y.pos-absolute
net pos-z halui.axis.2.pos-feedback => xhc-hb04.z.pos-absolute
net pos-a halui.axis.3.pos-feedback => xhc-hb04.a.pos-absolute

# Relative position LCD
net pos-rel-x halui.axis.0.pos-relative => xhc-hb04.x.pos-relative
net pos-rel-y halui.axis.1.pos-relative => xhc-hb04.y.pos-relative
net pos-rel-z halui.axis.2.pos-relative => xhc-hb04.z.pos-relative
net pos-rel-a halui.axis.3.pos-relative => xhc-hb04.a.pos-relative

# Jog axis selection button
net jog-x axis.0.jog-enable <= xhc-hb04.jog.enable-x
net jog-y axis.1.jog-enable <= xhc-hb04.jog.enable-y
net jog-z axis.2.jog-enable <= xhc-hb04.jog.enable-z
#net jog-a axis.3.jog-enable <= xhc-hb04.jog.enable-a

# Jog wheel for world mode
net jog-max-velocity halui.max-velocity.value => xhc-hb04.jog.max-velocity
net jog-speed xhc-hb04.jog.velocity => halui.jog-speed 
net jog-plus-x xhc-hb04.jog.plus-x => halui.jog.0.plus 
net jog-minus-x xhc-hb04.jog.minus-x => halui.jog.0.minus
net jog-plus-y xhc-hb04.jog.plus-y => halui.jog.1.plus 
net jog-minus-y xhc-hb04.jog.minus-y => halui.jog.1.minus
net jog-plus-z xhc-hb04.jog.plus-z => halui.jog.2.plus 
net jog-minus-z xhc-hb04.jog.minus-z => halui.jog.2.minus
#net jog-plus-a xhc-hb04.jog.plus-a => halui.jog.3.plus 
#net jog-minus-a xhc-hb04.jog.minus-a => halui.jog.3.minus

# Wheel for feedrate and spindle
setp halui.feed-override.scale 0.01
net jog-counts => halui.feed-override.counts
net jog-feed halui.feed-override.count-enable <= xhc-hb04.jog.enable-feed-override
net jog-feed2 halui.feed-override.value => xhc-hb04.feed-override

setp halui.spindle-override.scale 0.01
net jog-counts => halui.spindle-override.counts
net jog-spindle halui.spindle-override.count-enable <= xhc-hb04.jog.enable-spindle-override
net jog-spindle2 halui.spindle-override.value => xhc-hb04.spindle-override
net spindle-rps motion.spindle-speed-cmd-rps => xhc-hb04.spindle-rps

# RESET/ESTOP button
net estop xhc-hb04.button-reset => halui.estop.activate
net speed-up xhc-hb04.button-step => xhc-hb04.stepsize-up
net step xhc-hb04.button-rewind => halui.program.step

# X=0, Y=0, Z=0 
net x0 halui.mdi-command-06 <= xhc-hb04.button-zero-x
net y0 halui.mdi-command-07 <= xhc-hb04.button-zero-y
net z0 halui.mdi-command-08 <= xhc-hb04.button-zero-z
net origin halui.mdi-command-09 xhc-hb04.button-goto-zero

Die genannte Dateien befinden sich im configs/GoCNC_Step_2600 Ordner von Linux CNC.

XHC Layout

Es wurde das folgende mitgelieferte Layout xhc-hb04-layout2.ini verwendet.

[XHC-HB04]
BUTTON=17:button-reset
BUTTON=16:button-stop
BUTTON=01:button-goto-zero
BUTTON=02:button-start-pause
BUTTON=03:button-rewind
BUTTON=04:button-probe-z
BUTTON=0C:button-spindle
BUTTON=06:button-half
BUTTON=07:button-zero
BUTTON=08:button-safe-z
BUTTON=09:button-home
BUTTON=0A:button-macro-1
BUTTON=0B:button-macro-2
BUTTON=05:button-macro-3
BUTTON=0F:button-macro-6
BUTTON=10:button-macro-7
BUTTON=0D:button-step
BUTTON=0E:button-mode

Die genannte Dateien befinden sich im configs/GoCNC_Step_2600 Ordner von Linux CNC.