TO TŁUMACZENIE GOOGLE PLIK POCHODZI OD https://youtu.be/HNXv5c4iXjo ZAWIERA JEDNAK MOJE KOMENTARZE UŁATWIAJACE 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