Strona 1 z 1

XHC-WHB04B-6 Podsumowanie.

: 05 lip 2021, 18:52
autor: tuxcnc
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.

Re: XHC-WHB04B-6 Podsumowanie.

: 05 lip 2021, 20:42
autor: mineque
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.

Re: XHC-WHB04B-6 Podsumowanie.

: 05 lip 2021, 20:59
autor: tuxcnc
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.

Re: XHC-WHB04B-6 Podsumowanie.

: 05 lip 2021, 21:03
autor: mineque
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.

Re: XHC-WHB04B-6 Podsumowanie.

: 06 lip 2021, 20:20
autor: tuxcnc
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ć.

Re: XHC-WHB04B-6 Podsumowanie.

: 09 sty 2023, 11:16
autor: jarcys
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

Re: XHC-WHB04B-6 Podsumowanie.

: 03 mar 2024, 16:57
autor: jarcys
Tak uruchomiłem wg. tego filmiku .