MPG LinuxCNC 2.9 USB CNC WHB04B-4 WHB04B-6 Debian9 Wędka , Kółko ręczne, Wireless Pendant
: 20 gru 2019, 13:59
Mały poradnik jak zainstalowałem rzeczony zagajnik na LinuxCNC Sam czasem nie wiem co robię bo daleko mi nawet do średniozaawansowanego poziomu ale myślę że lepszy taki niż żaden 
Piszcze swoje uwagi spostrzeżenia a także własne doświadczenia
https://youtu.be/A0EtUzx7bus

Piszcze swoje uwagi spostrzeżenia a także własne doświadczenia

https://youtu.be/A0EtUzx7bus
Kod: Zaznacz cały
TO TŁUMACZENIE GOOGLE PLIK POCHODZI OD https://youtu.be/HNXv5c4iXjo
ZAWIERA JEDNAK MOJE KOMENTARZE UŁATWIAJĄCE INSTALACJE
Dokonałem następującej zmiany w danych źródłowych.
hal.cc (potrzebne są zmiany, w przeciwnym razie nie przejdziesz automatycznie na tryb ręczny)
Skomentuj wiersz 1004 // enableMdiMode (włączony);
Skomentuj wiersz 1053 // enableMdiMode (włączony);
Skomentuj wiersz 1061 // enableMdiMode (włączony);
Skomentuj wiersz 1134 // enableMdiMode (włączony);
jak wersja
uname -a
lsb_release -a
zainstaluj programy (opcionalne)
menager plików
sudo apt-get install caja
edytor tekstu
sudo apt-get install gedit
pedant.cc (pokrętło przynosi LEAD inny adres)
Wiersz 385 Adres 0x1c zmieniono na 0x9b // lead (0x9b, „Lead”, „”),
Aby XHC-WHB04B-4 działał, potrzebujemy „sterownika” lub komponentu, który komunikuje się z adapterem USB.
Krok 1
Podłącz adapter USB i ponownie uruchom Debiana, jeśli to konieczne.
Krok 2
Otwórz terminal i sprawdź, czy został wykryty za pomocą polecenia lsusb.
> lsusb
Magistrala 001 Urządzenie 003: ID 10ce: eb93 Silicon Labs
ID 10ce: eb93 jest naszym kandydatem
Krok 3
Na tym etapie zaleca się uruchomienie menedżera plików z terminala.
Dla mnie jest to „sudo caja” (caja to nazwa menedżera plików, może być inna u Ciebie)
wpisz w terminal
sudo caja
Skopiuj plik „99-xhc-whb04b-6.rules” do /etc/udev/rules.d/.
lub
Utwórz plik o następującym wierszu
ATTR {idProduct} == „eb93”, ATTR {idVendor} == „10ce”, MODE = „0666”, OWNER = „root”, GROUP = „plugdev”
Następnie w terminalu uruchom polecenie „sudo udevadm trigger”. ewentualnie Odłącz adapter USB jeden raz i podłącz go ponownie.
Krok 4
Dane źródłowe w folderze xhc-whb04b-6 muszą zostać skompilowane w systemie.
Jeśli w kolejnych krokach czegoś brakuje (pakiety, narzędzia itp.), Spójrz ...
http://www.linuxcnc.org/docs/master/html/code/building-linuxcnc.html
Ok początek jest zrobiony za pomocą git. Dane źródłowe LinuxCNC są więc pobierane i przechowywane w folderze.
Wejdź do terminalu.
sudo apt-get install git
sudo git clone https://github.com/LinuxCNC/linuxcnc linuxcnc-dev
linuxcnc-dev t o folder docelowy, który jest tworzony automatycznie
Następnie musimy skopiować folder xhc-whb04b-6 do linuxcnc-dev / src / hal / user_comps / i dostosować plik make pod linuxcnc-dev / src /.
sudo caja
przenieś reczkie cały katalog xhc-whb04b-6
Plik Make ma następującą sekcję (SUBDIRS). Po hal / user_comps / huanyang-vfd \ musi znajdować się wiersz z hal / user_comps / xhc-whb04b-6 \
zostać uzupełnione, aby zostało to później skompilowane.
################################################## ###########################################
# Podmakefile z każdego z tych katalogów zostaną dołączone, jeśli istnieją
SUBDIRS: = \
libnml / linklist libnml / cms libnml / rcs libnml / inifile libnml / os_intf \
libnml / nml libnml / buffer libnml / posemath libnml \
\
rtapi / przyklady / timer rtapi / przyklady / semafor rtapi / przyklady / shmem \
rtapi / przyklady / extint rtapi / przyklady / fifo rtapi / przyklady rtapi \
\
hal / components hal / drivers hal / drivers / mesa-hostmot2 \
hal / user_comps / devices hal / user_comps / mb2hal \
hal / user_comps hal / user_comps / vismach hal / user_comps / vfs11_vfd hal / classicladder hal / utils hal \
hal / user_comps / vfdb_vfd hal / user_comps / wj200_vfd \
hal / user_comps / huanyang-vfd \
hal/user_comps/xhc-whb04b-6 \
################################################## ###########################################
Krok 5
Teraz możemy skompilować .... Ale jak :-)
Otwórz terminal i wykonaj następujące polecenia.
DO ZAINASTALOWNAIA
sudo apt-get install autoconf automake pkg-config libgtk-3-dev
sudo apt-get install autoconf autogen
sudo apt-get install libmodbus-dev
sudo apt-get install libusb-1.0-0-dev
sudo apt-get update
sudo apt install libboost-python-dev netcat libmodbus-dev yapps2
sudo apt-get install yapps2
sudo apt install dh-python libudev-dev tcl8.6-dev tk8.6-dev
sudo apt install libreadline-gplv2-dev asciidoc dblatex docbook-xsl dvipng
sudo apt install graphviz groff imagemagick inkscape python-lxml source-highlight
sudo apt install texlive-extra-utils texlive-font-utils texlive-fonts-recommended
sudo apt install texlive-lang-cyrillic texlive-lang-french texlive-lang-german
sudo apt install texlive-lang-polish texlive-lang-spanish texlive-latex-recommended
sudo apt install w3c-linkchecker xsltproc asciidoc-dblatex python-dev libxmu-dev
sudo apt install libglu1-mesa-dev libgl1-mesa-dev libgtk2.0-dev intltool
sudo apt install gdebi
> cd linuxcnc-dev
> cd src
> sudo ./autogen.sh
> sudo ./configure --with-realtime = uspace
> sudo make
> sudo make setuid
Krok 6
Plik BIN xch-whb04b-6 musi teraz zostać skopiowany.
sudo caja
z / linuxcnc-dev / bin /
do / usr / bin /
Tutaj ponownie można uruchomić menedżera plików za pomocą sudo z terminala.
Krok 7
Zamknij wszystko i otwórz terminal.
Wykonaj polecenia, aby wykonać test koła ręcznego.
sudo udevadm trigger
> halrun
> loadusr xhc-whb04b-6
Krok 8
Zintegruj z istniejącą maszyną LinuxCNC.
Aby to zrobić, najlepiej utworzyć osobny plik hal i wywołać go za pomocą komputera INI.
#MACHINES INI
[HAL]
POŁOWA = xhc-whb04b-6.hal
W dodatkowym HAL konieczne jest polecenie loadusr xhc-whb04b-6 -H, aby załadować komponent.
# xhc-whb04b-6 HAL
loadusr -W xhc-whb04b-6 -H
Następnie należy zapisać powiązania między składnikiem a kodami PIN LinuxCNC.
Podążając za innym przykładem dla INI i HAL
Mój przykład INI
#################
[HAL]
HALUI = halui
POŁÓW = 7i76e.hal
HALFILE = custom.hal
POŁOWA = xhc-whb04b-6.hal
POSTGUI_HALFILE = postgui_call_list.hal
WYŁĄCZENIE = zamknięcie.hal
[HALUI]
MDI_COMMAND = (debug, 00)
MDI_COMMAND = (debugowanie Macro1)
MDI_COMMAND = (debugowanie macro2)
MDI_COMMAND = (debugowanie macro3)
MDI_COMMAND = (debugowanie Macro4)
MDI_COMMAND = G1 G53 X0 Y0 Z0 F4000
MDI_COMMAND = (debugowanie macro6)
MDI_COMMAND = G1 X0 Y0 Z0 F4000
MDI_COMMAND = (debugowanie macro8)
MDI_COMMAND = (debugowanie macro9)
MDI_COMMAND = (debugowanie macro10)
MDI_COMMAND = (debugowanie macro11)
MDI_COMMAND = (debugowanie macro12)
MDI_COMMAND = (debugowanie macro13)
MDI_COMMAND = (debugowanie macro14)
MDI_COMMAND = (debugowanie macro15)
MDI_COMMAND = (debugowanie macro16)
MDI_COMMAND = G1 G53 Z0 F4000
MDI_COMMAND = (debugowanie macro17)
MDI_COMMAND = (debugowanie macro18)
MDI_COMMAND = (debugowanie macro19)
Mój przykład HAL
#################
# ############################################################################# #####################
# WHB04B-6 konfiguracja pokrętła jog
# ############################################################################# #####################
# BEGIN Uwaga: sygnały wrzeciona są zwykle wymienione w głównym pliku .hal
#
#net spindle.is-on motion.spindle-on
#net spindle.start halui.spindle.start
#net spindle.stop halui.spindle.stop
#net spindle.forward halui.spindle.forward
#
#net spindle.reverse halui.spindle.reverse
#net spindle.runs-forward motion.spindle-forward
#net spindle.runs-reverse motion.spindle-reverse
#
#net spindle.increase halui.spindle.increase
#net spindle.decrease halui.spindle.decrease
#net spindle.spindle-override.value halui.spindle-override.value
#net spindle.spindle-override.increase halui.spindle-override.increase
#net spindle.spindle-override.decrease halui.spindle-override.decrease
#
#net spindle.velocity.abs-rpm motion.spindle-speed-out-abs
#
# Stopień END
# ############################################################################# #####################
# Załaduj komponenty
# ############################################################################# #####################
loadusr -W xhc-whb04b-6 -H
loadrt ilowpass names = ilowpass.jog.x, ilowpass.jog.y, ilowpass.jog.z, ilowpass.jog.a
addf ilowpass.jog.x serwo-wątek
addf ilowpass.jog.y serwo-wątek
addf ilowpass.jog.z serwo-wątek
addf ilowpass.jog.a serwo-wątek
setp ilowpass.jog.x.scale 100
setp ilowpass.jog.y.scale 100
setp ilowpass.jog.z.scale 100
setp ilowpass.jog.a.scale 100
setp ilowpass.jog.x.gain 0.01
setp ilowpass.jog.y.gain 0.01
setp ilowpass.jog.z.gain 0.01
setp ilowpass.jog.a.gain 0.01
loadrt nazwy skali = skala.aksja.x, skala.aksja.y, skala.aksja.z, skala.osi
serwo-wątek addf scale.axis.x.
serwo-wątek addf scale.axis.y
serwo-wątek addf scale.axis.z
addf scale.axis.a serwo-wątek
setp scale.axis.x.gain 0.01
setp scale.axis.y.gain 0.01
setp scale.axis.z.gain 0.01
setp scale.axis.a. zysk 0,01
setp scale.axis.x.offset 0
setp scale.axis.y.offset 0
setp scale.axis.z.offset 0
setp scale.axis.a. offset 0
# ############################################################################# #####################
# Konfiguracja sygnału
# ############################################################################# #####################
# Podłącz sygnały zatrzymania awaryjnego
net pdnt.machine.is-on halui.machine.is-on whb.halui.machine.is-on
net pdnt.machine.on whb.halui.machine.on halui.machine.on
net pdnt.machine.off whb.halui.machine.off halui.machine.off
# Podłącz sygnały związane z programem
netto pdnt.program.is-idle whb.halui.program.is-idle halui.program.is-idle
net pdnt.program.is-paused whb.halui.program.is-paused halui.program.is-paused
net pdnt.program.is-running whb.halui.program.is-running halui.program.is-running
netto pdnt.program.resume whb.halui.program.resume halui.program.resume
net pdnt.program.pause whb.halui.program.pause halui.program.pause
net pdnt.program.run whb.halui.program.run halui.program.run
netto pdnt.program.stop whb.halui.program.stop halui.program.stop
# Podłącz sygnały „wybranej osi”
netto pdnt.joint.X.select whb.halui.joint.x.select halui.joint.0.select
netto pdnt.joint.Y.select whb.halui.joint.y.select halui.joint.1.select
netto pdnt.joint.Z.select whb.halui.joint.z.select halui.joint.2.select
#net pdnt.joint.A.select whb.halui.joint.a.select halui.joint.3.select
# Podłącz sygnały impulsowe dla trybu krokowego i ciągłego
#net pdnt.stepgen.00.maxvel hpg.stepgen.00.maxvel whb.stepgen.maxvel
#net pdnt.stepgen.01.maxvel hpg.stepgen.01.maxvel whb.stepgen.01.maxvel
#net pdnt.stepgen.02.maxvel hpg.stepgen.02.maxvel whb.stepgen.02.maxvel
#net pdnt.stepgen.03.maxvel hpg.stepgen.03.maxvel whb.stepgen.maxvel
#net pdnt.stepgen.00.position-scale hpg.stepgen.00.position-scale whb.stepgen.00.position-scale
#net pdnt.stepgen.01.position-scale hpg.stepgen.01.position-scale whb.stepgen.01.position-scale
#net pdnt.stepgen.02.position-scale hpg.stepgen.02.position-scale whb.stepgen.02.position-scale
#net pdnt.stepgen.03.position-scale hpg.stepgen.03.position-scale whb.stepgen.03.position-scale
net pdnt.axis.0.jog-scale whb.axis.0.jog-scale scale.axis.x.in
net pdnt.axis.1.jog-scale whb.axis.1.jog-scale.axis.y.in
netto pdnt.axis.2.jog-scale whb.axis.2.jog-scale scale.axis.z.in
#net pdnt.axis.3.jog-scale whb.axis.3.jog-scale scale.axis.a.in
net scale.axis.0.jog-scale scale.axis.x.out axis.x.jog-scale
net scale.axis.1.jog-scale scale.axis.y.out axis.y.jog-scale
net scale.axis.2.jog-scale scale.axis.z.out axis.z.jog-scale
#net scale.axis.3.jog-scale scale.axis.a.out axis.a.jog-scale
net pdnt.axis.0.jog-counts whb.axis.0.jog-counts ilowpass.jog.x.in
net pdnt.axis.1.jog-counts whb.axis.1.jog-counts ilowpass.jog.y.in
net pdnt.axis.2.jog-counts whb.axis.2.jog-counts ilowpass.jog.z.in
#net pdnt.axis.3.jog-counts whb.axis.3.jog-counts ilowpass.jog.a.in
net pdnt.ilowpass.jog.0.jog-counts ilowpass.jog.x.out axis.x.jog-counts
net pdnt.ilowpass.jog.1.jog-counts ilowpass.jog.y.out axis.y.jog-counts
net pdnt.ilowpass.jog.2.jog-counts ilowpass.jog.z.out axis.z.jog-counts
#net pdnt.ilowpass.jog.3.jog-counts ilowpass.jog.a.out axis.a.jog-counts
net pdnt.axis.0.jog-enable whb.axis.0.jog-enable axis.x.jog-enable
net pdnt.axis.1.jog-enable whb.axis.1.jog-enable axis.y.jog-enable
net pdnt.axis.2.jog-enable whb.axis.2.jog-enable axis.z.jog-enable
#net pdnt.axis.3.jog-enable whb.axis.3.jog-enable axis.a.jog-enable
net pdnt.axis.0.jog-vel-mode whb.axis.0.jog-vel-mode axis.x.jog-vel-mode
net pdnt.axis.1.jog-vel-mode whb.axis.1.jog-vel-mode axis.y.jog-vel-mode
net pdnt.axis.2.jog-vel-mode whb.axis.2.jog-vel-mode axis.z.jog-vel-mode
#net pdnt.axis.3.jog-vel-mode whb.axis.3.jog-vel-mode axis.a.jog-vel-mode
# Połącz przyciski makr z poleceniami mdi
net pdnt.macro.1 whb.button.macro-1 halui.mdi-Command-01
net pdnt.macro.2 whb.button.macro-2 halui.mdi-Command-02
net pdnt.macro.3 whb.button.macro-3 halui.mdi-Command-03
net pdnt.macro.4 whb.button.macro-4 halui.mdi-Command-04
netto pdnt.macro.6 whb.button.macro-6 halui.mdi-Command-06
netto pdnt.macro.8 whb.button.macro-8 halui.mdi-Command-08
net pdnt.macro.9 whb.button.macro-9 halui.mdi-Command-09
net pdnt.macro.10 whb.button.macro-10 halui.mdi-Command-10
net pdnt.macro.11 whb.button.macro-11 halui.mdi-Command-11
netto pdnt.macro.12 whb.button.macro-12 halui.mdi-Command-12
netto pdnt.macro.13 whb.button.macro-13 halui.home-all
netto pdnt.macro.14 whb.button.macro-14 halui.mdi-Command-14
netto pdnt.macro.15 whb.button.macro-15 halui.mdi-Command-15
net pdnt.macro.16 whb.button.macro-16 halui.mdi-Command-16
# Podłącz reset, stop, start / pauza / wznów przyciski do halui
# przełącza whb.halui.estop. {aktywuj, zresetuj}, które są
# już podłączony do halui.stop. {aktywuj, zresetuj} przez whb.halui.estop. {aktywuj, zresetuj}
net pdnt.button.reset whb.button.reset
# już powiązane z halui.program.stop przez whb.program.stop
net pdnt.button.stop whb.button.stop
# przełącza whb.halui.program {uruchom, wstrzymaj, wznów}, które są
# już podłączony do halui.program. {run, pause, resume} via whb.halui.program. {run, pause, resume}
net pdnt.button.start-pause whb.button.start-pause
# Podłącz sygnały pozycji specjalnych
net pdnt.button.m-home whb.button.m-home halui.mdi-Command-05
#net pdnt.button.safe-z whb.button.safe-z halui.mdi-Command-17
net pdnt.button.w-home whb.button.w-home halui.mdi-Command-07
net pdnt.button.s-on-off whb.button.s-on-off halui.mdi-Command-18
# nieużywany, po prostu odsłania wisiorek interna
net pdnt.button.fn whb.button.fn
# przykładowe polecenie
net pdnt.button.probe-z whb.button.probe-z halui.mdi-Command-19
# nieużywany, po prostu odsłania wisiorek interna
net pdnt.button.mode-Continuous whb.button.mode-Continuous
# nieużywany, po prostu odsłania wisiorek interna
net pdnt.button.mode-step whb.button.mode-step
# Podłącz sygnały związane z wrzecionem
netto spindle.is-on whb.halui.spindle.is-on
netto spindle.stop whb.halui.spindle.stop
netto wrzeciono. do przodu whb.halui.spindle.forward
netto spindle.reverse whb.halui.spindle.reverse
Zastąpienie # min / max zależy od [DISPLAY] MIN_SPINDLE_OVERRIDE i [DISPLAY] MAX_SPINDLE_OVERRIDE
net spindle.spindle-override.value whb.halui.spindle-override.value halui.spindle.0.override.value
wrzeciono netto. wrzeciono-override.increase whb.halui.spindle-override.increase halui.spindle.0.override.increase
netto wrzeciono. wrzeciono-override.decrease whb.halui.spindle-override.decrease halui.spindle.0.override.decrease
netto spindle.velocity.abs-rpm whb.motion.spindle-speed-abs
# Podłącz sygnały związane z trybem maszyny
net pdnt.halui.mode.auto whb.halui.mode.auto halui.mode.auto
netto pdnt.halui.mode.joint whb.halui.mode.joint halui.mode.joint
netto pdnt.halui.mode.manual whb.halui.mode.manual halui.mode.manual
netto pdnt.halui.mode.mdi whb.halui.mode.mdi halui.mode.mdi
net pdnt.halui.mode.is-car halui.mode.is-car whb.halui.mode.is-auto
netto pdnt.halui.mode.is-joint halui.mode.is-joint whb.halui.mode.is-joint
net pdnt.halui.mode.is-manual halui.mode.is-manual whb.halui.mode.is-manual
net pdnt.halui.mode.is-mdi halui.mode.is-mdi whb.halui.mode.is-mdi
# Podłącz sygnały związane z prędkością posuwu
net pdnt.halui.feed-override.scale whb.halui.feed-override.scale halui.feed-override.scale
net pdnt.halui.feed-override.direct -val whb.halui.feed-override.direct-val halui.feed-override.direct-value
net pdnt.halui.feed-override.counts whb.halui.feed-override.counts halui.feed-override.counts
#net pdnt.halui.feed-override.count-enable whb.halui.feed-override.count-enable halui.feed-override.count-enable
#net pdnt.halui.feed-override.value halui.feed-override.value whb.halui.feed-override.value
setp whb.halui.feed-override.min-value [DISPLAY] MIN_FEED_OVERRIDE
setp whb.halui.feed-override.max-value [DISPLAY] MAX_FEED_OVERRIDE
Zastąpienie min / maks zależy od [DISPLAY] MIN_FEED_OVERRIDE i [DISPLAY] MAX_FEED_OVERRIDE
netto pdnt.halui.feed-override.increase whb.halui.feed-override.increase halui.feed-override.increase
netto pdnt.halui.feed-override.decrease whb.halui.feed-override.decrease halui.feed-override.decrease
#net pdnt.button.feed-plus whb.button.feed-plus
#net pdnt.button.feed-minus whb.button.feed-minus
# Do drukowania prędkości F: xxxx na wyświetlaczu używana jest prędkość ruchu. Prędkość prądu.
net pdnt.motion.current-vel motion.current-vel whb.motion.current-vel
# Podłącz sygnały związane z położeniem osi
netto pdnt.halui.axis.0.pos-feedback halui.axis.x.pos-feedback whb.halui.axis.0.pos-feedback
netto pdnt.halui.axis.1.pos-feedback halui.axis.y.pos-feedback whb.halui.axis.1.pos-feedback
netto pdnt.halui.axis.2.pos-feedback halui.axis.z.pos-feedback whb.halui.axis.2.pos-feedback
#net pdnt.halui.axis.3.pos-feedback halui.axis.a.pos-feedback whb.halui.axis.3.pos-feedback
netto pdnt.halui.axis.0.pos-relative halui.axis.x.pos-relative whb.halui.axis.0.pos-relative
netto pdnt.halui.axis.1.pos-relative halui.axis.y.pos-relative whb.halui.axis.1.pos-relative
netto pdnt.halui.axis.2.pos-relative halui.axis.z.pos-relative whb.halui.axis.2.pos-relative
#net pdnt.halui.axis.3.pos-relative halui.axis.a.pos-relative whb.halui.axis.3.pos-relative