CNC-Fräse/Linux CNC: Unterschied zwischen den Versionen

Aus C3MAWiki
(Linux CNC Artikel)
 
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[CNC-Fräse|Beschreibung der Fräse]]
= Linux CNC für Next3D =
= Linux CNC für Next3D =
== Fräse ==
Die Konfiguration der Fräse wurde in der Datei '''GoCNC_Step_2600.stepconf''' abgespeichert:
<pre>
<?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>
</pre>
== Pendant ==
Es wurde ein '''xhc-hb04''' verwendet.
Um diesen in Betrieb zu nehmen muss der entsprechende Treiber [http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Using_A_XHC-HB04_Wireless_MPG_Pendant 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:
<pre>
[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
</pre>
Die Knöpfe des Pendant wurden mit der Konfigurations-Datei '''xhc-hb04-world-mode.hal''' festgelegt.
<pre>
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
</pre>
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.
<pre>
[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
</pre>
Die genannte Dateien befinden sich im '''configs/GoCNC_Step_2600''' Ordner von ''Linux CNC''.

Aktuelle Version vom 4. Juli 2016, 20:08 Uhr

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.