
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