XHC-WHB04B-6 Podsumowanie.

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7879
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

XHC-WHB04B-6 Podsumowanie.

#1

Post napisał: tuxcnc » 05 lip 2021, 18:52

Zakupiłem XHC-WHB04B-6.
Wstyd się przyznać, ale po przeczytaniu całej masy herezji na jego temat, uznałem że warto zapłacić 375 PLN, by go przetestować i z czystym sumieniem zakomunikować kilku forumowiczom, że są kretynami.
Wędka przyszła dzisiaj, a jej uruchomienie zajęło aż kilka minut.
No niestety, ale w sekcji "HAL CONFIGURATION EXAMPLE" na stronie https://linuxcnc.org/docs/2.8/html/man/ ... b-6.1.html jest kilka tak kretyńskich błędów, że po prostu obciach.
Linuxcnc z tym plikiem się nie uruchamia, ale wyświetla jasne i jednoznaczne komunikaty z jakiej przyczyny.
Ale zanim do tego dojdziemy kilka słów o wersji systemu operacyjnego i samego Linuxcnc.
Otóż użyłem oczywiście własnej dystrybucji opartej na Xubuntu 18.05.4 z Linuxcnc w wersji 2.9.
Z tego co znalazłem w necie, wynika że pójdzie także na oficjalnych dystrybucjach, byleby nie archaicznych Debianach z Linuxcnc starszym niż 2.8. Sprawdzać mi się nie chce, ale jest to proste, o czym będzie kawałek dalej.
No więc po kolei.
Poniższe pominąłem, loguję się jako root więc nie jest mi to do niczego potrzebne. Ale jak ktoś woli inaczej, to żaden problem i żadna robota.

Kod: Zaznacz cały

The xhc-whb04b-6 executable needs permission for reading the pendant’s USB device. There may be the need for additional udev rules. If so, this file /etc/udev/rules.d/99-xhc-whb04b-6.rules should be created with the single line ATTR{idProduct}=="eb93", ATTR{idVendor}=="10ce", MODE="0666", OWNER="root", GROUP="plugdev".

Ponieważ kopiuj/wklej z przeglądarki internetowej grozi trudnymi do wykrycia błędami (identycznie wyglądające znaki o różnych kodach), więc ściągnąłem plik z adresu https://raw.githubusercontent.com/Linux ... uration.md.
Nazwa "example-configuration.md" jest trochę idiotyczna, więc postanowiłem ją zmienić. Z lenistwa skopiowałem i wkleiłem, i tutaj objawił się pierwszy żenujący bawół. Otóż są dwie linie :

Kod: Zaznacz cały

#HALFILE = xhc-whb04b-6.hal
oraz

Kod: Zaznacz cały

### Hal File xhc_whb04b_6.hal Example for 3 axis but i hope this is easy to add missing axis:
W jednej nazwie są myślniki, w drugiej podkreślenia...
Oczywiście nazwa pliku nie zgadzała się z wpisem w INI i dostałem komunikat ze nie znaleziono pliku...
Po poprawieniu nazwy objawił się drugi, jeszcze bardziej żenujący bawół w postaci linii:

Kod: Zaznacz cały

# "is-homed" axis signal for allowing pendant when machine is not homed
net pdnt.axis.X.is-homed                  halui.joint.0.is-homed                whb.halui.joint.x.is-homed
net pdnt.axis.Y.is-homed                  halui.joint.1.is-homed                whb.halui.joint.y.is-homed
net pdnt.axis.Z.is-homed                  halui.joint.2.is-homed                whb.halui.joint.z.is-homed

Otóż próba uruchomienia Linuxcnc kończyła się komunikatem, że nie ma pinu whb.halui.joint.x.is-homed.
Faktycznie go nie ma i cholera wie skąd się wziął w tym pliku...
Tutaj przy okazji doszliśmy do sposobu sprawdzenia, czy zainstalowana dystrybucja obsługuje wędkę.
Wygląda to następująco:

Kod: Zaznacz cały

root@E555:~# halrun
halcmd: loadusr -W xhc-whb04b-6 -H
halcmd: show pin
Component Pins:
Owner   Type  Dir         Value  Name
     4  s32   OUT             0  whb.axis.a.jog-counts
     4  bit   OUT         FALSE  whb.axis.a.jog-enable
     4  float OUT             0  whb.axis.a.jog-scale
     4  bit   OUT         FALSE  whb.axis.a.jog-vel-mode
     4  s32   OUT             0  whb.axis.b.jog-counts
     4  bit   OUT         FALSE  whb.axis.b.jog-enable
     4  float OUT             0  whb.axis.b.jog-scale
     4  bit   OUT         FALSE  whb.axis.b.jog-vel-mode
     4  s32   OUT             0  whb.axis.c.jog-counts
     4  bit   OUT         FALSE  whb.axis.c.jog-enable
     4  float OUT             0  whb.axis.c.jog-scale
     4  bit   OUT         FALSE  whb.axis.c.jog-vel-mode
     4  s32   OUT             0  whb.axis.x.jog-counts
     4  bit   OUT         FALSE  whb.axis.x.jog-enable
     4  float OUT             0  whb.axis.x.jog-scale
     4  bit   OUT         FALSE  whb.axis.x.jog-vel-mode
     4  s32   OUT             0  whb.axis.y.jog-counts
     4  bit   OUT         FALSE  whb.axis.y.jog-enable
     4  float OUT             0  whb.axis.y.jog-scale
     4  bit   OUT         FALSE  whb.axis.y.jog-vel-mode
     4  s32   OUT             0  whb.axis.z.jog-counts
     4  bit   OUT          TRUE  whb.axis.z.jog-enable
     4  float OUT             0  whb.axis.z.jog-scale
     4  bit   OUT         FALSE  whb.axis.z.jog-vel-mode
     4  bit   OUT         FALSE  whb.button.feed-minus
     4  bit   OUT         FALSE  whb.button.feed-plus
     4  bit   OUT         FALSE  whb.button.fn
     4  bit   OUT         FALSE  whb.button.m-home
     4  bit   OUT         FALSE  whb.button.macro-1
     4  bit   OUT         FALSE  whb.button.macro-10
     4  bit   OUT         FALSE  whb.button.macro-11
     4  bit   OUT         FALSE  whb.button.macro-12
     4  bit   OUT         FALSE  whb.button.macro-13
     4  bit   OUT         FALSE  whb.button.macro-14
     4  bit   OUT         FALSE  whb.button.macro-15
     4  bit   OUT         FALSE  whb.button.macro-16
     4  bit   OUT         FALSE  whb.button.macro-2
     4  bit   OUT         FALSE  whb.button.macro-3
     4  bit   OUT         FALSE  whb.button.macro-4
     4  bit   OUT         FALSE  whb.button.macro-5
     4  bit   OUT         FALSE  whb.button.macro-6
     4  bit   OUT         FALSE  whb.button.macro-7
     4  bit   OUT         FALSE  whb.button.macro-8
     4  bit   OUT         FALSE  whb.button.macro-9
     4  bit   OUT         FALSE  whb.button.mode-continuous
     4  bit   OUT         FALSE  whb.button.mode-step
     4  bit   OUT         FALSE  whb.button.probe-z
     4  bit   OUT         FALSE  whb.button.reset
     4  bit   OUT         FALSE  whb.button.s-on-off
     4  bit   OUT         FALSE  whb.button.safe-z
     4  bit   OUT         FALSE  whb.button.spindle-minus
     4  bit   OUT         FALSE  whb.button.spindle-plus
     4  bit   OUT         FALSE  whb.button.start-pause
     4  bit   OUT         FALSE  whb.button.stop
     4  bit   OUT         FALSE  whb.button.w-home
     4  float IN              0  whb.halui.axis.a.pos-feedback
     4  float IN              0  whb.halui.axis.a.pos-relative
     4  bit   OUT         FALSE  whb.halui.axis.a.select
     4  float IN              0  whb.halui.axis.b.pos-feedback
     4  float IN              0  whb.halui.axis.b.pos-relative
     4  bit   OUT         FALSE  whb.halui.axis.b.select
     4  float IN              0  whb.halui.axis.c.pos-feedback
     4  float IN              0  whb.halui.axis.c.pos-relative
     4  bit   OUT         FALSE  whb.halui.axis.c.select
     4  float IN              0  whb.halui.axis.x.pos-feedback
     4  float IN              0  whb.halui.axis.x.pos-relative
     4  bit   OUT         FALSE  whb.halui.axis.x.select
     4  float IN              0  whb.halui.axis.y.pos-feedback
     4  float IN              0  whb.halui.axis.y.pos-relative
     4  bit   OUT         FALSE  whb.halui.axis.y.select
     4  float IN              0  whb.halui.axis.z.pos-feedback
     4  float IN              0  whb.halui.axis.z.pos-relative
     4  bit   OUT          TRUE  whb.halui.axis.z.select
     4  bit   OUT         FALSE  whb.halui.feed-override.decrease
     4  bit   OUT         FALSE  whb.halui.feed-override.increase
     4  float OUT             0  whb.halui.feed-override.scale
     4  float IN              0  whb.halui.feed-override.value
     4  bit   OUT         FALSE  whb.halui.feed.selected-10
     4  bit   OUT         FALSE  whb.halui.feed.selected-100
     4  bit   OUT         FALSE  whb.halui.feed.selected-2
     4  bit   OUT          TRUE  whb.halui.feed.selected-30
     4  bit   OUT         FALSE  whb.halui.feed.selected-5
     4  bit   OUT         FALSE  whb.halui.feed.selected-60
     4  bit   OUT         FALSE  whb.halui.feed.selected-continuous
     4  bit   OUT         FALSE  whb.halui.feed.selected-lead
     4  bit   OUT          TRUE  whb.halui.feed.selected-mpg-feed
     4  bit   OUT         FALSE  whb.halui.feed.selected-step
     4  bit   IN          FALSE  whb.halui.flood.is-on
     4  bit   OUT         FALSE  whb.halui.flood.off
     4  bit   OUT         FALSE  whb.halui.flood.on
     4  bit   IN          FALSE  whb.halui.lube.is-on
     4  bit   OUT         FALSE  whb.halui.lube.off
     4  bit   OUT         FALSE  whb.halui.lube.on
     4  bit   IN          FALSE  whb.halui.machine.is-on
     4  bit   OUT         FALSE  whb.halui.machine.off
     4  bit   OUT         FALSE  whb.halui.machine.on
     4  float IN              0  whb.halui.max-velocity.value
     4  bit   IN          FALSE  whb.halui.mist.is-on
     4  bit   OUT         FALSE  whb.halui.mist.off
     4  bit   OUT         FALSE  whb.halui.mist.on
     4  bit   OUT         FALSE  whb.halui.mode.auto
     4  bit   IN          FALSE  whb.halui.mode.is-auto
     4  bit   IN          FALSE  whb.halui.mode.is-joint
     4  bit   IN          FALSE  whb.halui.mode.is-manual
     4  bit   IN          FALSE  whb.halui.mode.is-mdi
     4  bit   IN          FALSE  whb.halui.mode.is-teleop
     4  bit   OUT         FALSE  whb.halui.mode.joint
     4  bit   OUT         FALSE  whb.halui.mode.manual
     4  bit   OUT         FALSE  whb.halui.mode.mdi
     4  bit   OUT         FALSE  whb.halui.mode.teleop
     4  bit   IN          FALSE  whb.halui.program.is-idle
     4  bit   IN          FALSE  whb.halui.program.is-paused
     4  bit   IN          FALSE  whb.halui.program.is-running
     4  bit   OUT         FALSE  whb.halui.program.pause
     4  bit   OUT         FALSE  whb.halui.program.resume
     4  bit   OUT         FALSE  whb.halui.program.run
     4  bit   OUT         FALSE  whb.halui.program.stop
     4  bit   OUT         FALSE  whb.halui.spindle-override.decrease
     4  bit   OUT         FALSE  whb.halui.spindle-override.increase
     4  float OUT             0  whb.halui.spindle-override.scale
     4  float IN              0  whb.halui.spindle-override.value
     4  float IN              0  whb.halui.spindle-speed-cmd
     4  bit   OUT         FALSE  whb.halui.spindle.decrease
     4  bit   OUT         FALSE  whb.halui.spindle.forward
     4  bit   OUT         FALSE  whb.halui.spindle.increase
     4  bit   IN          FALSE  whb.halui.spindle.is-on
     4  bit   OUT         FALSE  whb.halui.spindle.reverse
     4  bit   OUT         FALSE  whb.halui.spindle.start
     4  bit   OUT         FALSE  whb.halui.spindle.stop
     4  bit   OUT          TRUE  whb.pendant.is-connected
     4  bit   OUT         FALSE  whb.pendant.is-sleeping
Pierwsze trzy linie zawierają wpisywane w konsoli polecenia, reszta to wyniki. Oczywiście ani Linuxcnc, ani inny halrun nie może być wtedy uruchomiony. Jak widać nie ma żadnego pinu którego nazwa kończy się na "is-homed", więc wszystkie trzy linie należy zakomentować lub usunąć.
No i ostatni problem to te nieszczęsne halui.mdi-command.
Sprawa jest wyjątkowo prosta, numery są nadawane według koleiności występowania w pliku INI.
Jeżeli mamy już jakiś własny plik HAL z własnymi odwołaniami do mdi-command, to trzeba tak pozmieniać numery, żeby się nie powtarzały. U mnie są przyciski wywoływania róznych podprogramów z pinami o numerach od 0 do 4, więc musiałem je pozmieniać na 17 do 21.
Jak widać niczego nie musiałem kompilować, a znalezione błędy zgłoszę deweloperom projektu.
Dodanie osi obrotowej A sprowadziło się do znalezienia wszystkich linii w których występuje ciąg znaków axis.z Takie linie należy zdublować, a następnie w dodanych liniach zmienić axis.z na axis.a Proste i oczywiste. Z osiami B i C identycznie.
I to na razie wszystko.
Wędka mi się spodobała i Wam też polecam.




mineque
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 2
Posty: 592
Rejestracja: 12 wrz 2010, 01:59
Lokalizacja: Południe

Re: XHC-WHB04B-6 Podsumowanie.

#2

Post napisał: mineque » 05 lip 2021, 20:42

Pytanie czy zgłosiłeś błędy w opisie do poprawy czy tylko wykorzystałeś poprawiłeś i olałeś resztę żeby móc innych krytykować że nie potrafią poprawić kilku linijek.

Jeśli pierwsza opcja to super jeśli druga to nie krytykuje innych.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7879
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: XHC-WHB04B-6 Podsumowanie.

#3

Post napisał: tuxcnc » 05 lip 2021, 20:59

mineque pisze:
05 lip 2021, 20:42
Pytanie czy zgłosiłeś błędy w opisie do poprawy czy tylko wykorzystałeś poprawiłeś i olałeś resztę żeby móc innych krytykować że nie potrafią poprawić kilku linijek.

Jeśli pierwsza opcja to super jeśli druga to nie krytykuje innych.
Kurier przyniósł mi urządzenie o 16, a o 20 przypieprzasz się czy już zgłosiłem deweloperom...
Nie, nie zgłosiłem bo to wcale nie jest takie proste kiedy Polak rozmawia z Niemcem po angielsku.
Jak będę wypoczęty i będę miał wolny czas, to zgłoszę.
A jak masz taki nadmiar energii, to się nie pogniewam jeśli mnie wyręczysz.


mineque
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 2
Posty: 592
Rejestracja: 12 wrz 2010, 01:59
Lokalizacja: Południe

Re: XHC-WHB04B-6 Podsumowanie.

#4

Post napisał: mineque » 05 lip 2021, 21:03

Myślę że jeśli Polak rozmawia po angielsku to jeden pies czy po drugiej stronie jest Niemiec Rusek czy Francuz. Chyba że z zasady niemieckim deweloperom mówimy nie!

O widzisz czyli zrobisz to jak będziesz miał czas i wenę ale po innych możesz jechać że nie czytają manuali.
Tak tylko chciałem Cię postawić po drugiej stronie bo zazwyczaj to Ty jeździsz po innych.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7879
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: XHC-WHB04B-6 Podsumowanie.

#5

Post napisał: tuxcnc » 06 lip 2021, 20:20

Opisane powyżej próby robiłem na symulatorze, dzisiaj znalazłem czas żeby podłączyć wędkę do rzeczywistej maszyny.
Kolejne szydło wyszło z worka, ale tym razem nie należy mieć pretensji do autora, bo jasnowidzem przecież nie jest.
Otóż jest taka linia

Kod: Zaznacz cały

net pdnt.spindle.is-on                    whb.halui.spindle.is-on               spindle.0.on

Linuxcnc nie uruchomił się i wywalił błąd, że pin spindle.0.on jest już podłączony do sieci spindle-on
Faktycznie, mam w pliku konfiguracji maszyny linię

Kod: Zaznacz cały

net spindle-on spindle.0.on => pwmgen.0.enable
To akurat do sterowania falownikiem.
W wynikach testu opisanego wyżej jest natomiast linia

Kod: Zaznacz cały

     4  bit   IN          FALSE  whb.halui.spindle.is-on
Oznacza ona że pin whb.halui.spindle.is-on jest wejściem, jak się nietrudno domyślić pin pwmgen.0.enable też jest wejściem, więc pin spindle.0.on musi być wyjściem. Tak jest w istocie, a jedno wyjście można podłączyć do dwóch wejść, więc problem musi polegać wyłącznie na przypisaniu tego samego pinu do dwóch sieci.
Faktycznie, po zmianie

Kod: Zaznacz cały

net pdnt.spindle.is-on                    whb.halui.spindle.is-on               spindle.0.on
na

Kod: Zaznacz cały

net spindle-on                    whb.halui.spindle.is-on               spindle.0.on
wszystko zaczęło działać.


jarcys
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 271
Rejestracja: 28 sty 2010, 20:11
Lokalizacja: 50.290 N 21.430 E

Re: XHC-WHB04B-6 Podsumowanie.

#6

Post napisał: jarcys » 09 sty 2023, 11:16

Witam jak się ma procedura instalacji WHB04B na systemie linuxcnc 2.8.4 debian .
Mam zainstalowany tą wedkę na 2.7.14 i działa , teraz potrzebuje instalować na 2.8.4 Debian Buster (z eksperymentalnym jądrem RTAI) czy mam postepować zgodnie z tym filmikiem


jarcys
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 271
Rejestracja: 28 sty 2010, 20:11
Lokalizacja: 50.290 N 21.430 E

Re: XHC-WHB04B-6 Podsumowanie.

#7

Post napisał: jarcys » 03 mar 2024, 16:57

Tak uruchomiłem wg. tego filmiku .

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”