LinuxCNC - czujnik narzędzia - drgania styków

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1769
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

LinuxCNC - czujnik narzędzia - drgania styków

#1

Post napisał: drzasiek90 » 07 mar 2024, 13:49

Generalnie do tej pory zakładałem zawsze sprzętowy filtr (zazwyczaj kondensator) na wyjście z sondy próbkującej - u mnie to czujnik offsetów narzędzia.
Czujnik stykowy - narzędzie dotykając czujnika zwiera sygnał. Jak wiadomo, wszelkiego rodzaju czujniki mechaniczne powodują powstawanie zjawiska "drgania styków" -
Ale tak zacząłem się zastanawiać, jakby to rozwiązać programowo/systemowo bez konieczności montowania dodatkowych elementów - nie żeby to był jakiś koszt, ale zawsze łatwiej dopisać kilka linijek niż przylutować kondensator.
Problem jest taki, że linuxCNC zgłasza błąd, gdy wystąpi narastające zbocze na pinie sondowania, w momencie, gdy następuje ruch który nie jest ruchem sondowania. Wtedy zgłasza błąd: Probe tripped during non-probe move
Noi w sumie znalazłem podpowiedź na forum linuxcnc
https://forum.linuxcnc.org/38-general-l ... e?start=10
aby podłączyć wejście czujnika przez bramkę and, a drugie wejście bramki sterować z poziomu G-kodu który wykonuje pomiar.
W sumie to proste i działa.
Użyłem pin motion.digital-out-00 którego można sterować za pomocą M-kodów np. M64/M65.
Czyli przykładowe sondowanie wygląda tak:

Kod: Zaznacz cały

M64 P00			(Uruchomienie wejścia sondy)
G38.3 X-3 F150	(Pomiar do kontaktu)
M65 P00			(wyłączenie wejścia sondy)
Wszystko byłoby ok, ale nadal czasami wyskakuje błąd: Probe tripped during non-probe move
Trochę poszukałem, i okazuje się, że on następuje po zakończeniu G38.3 ale jeszcze przed lub w trakcie M65 P00.
Czyli tak naprawdę zgłasza błąd wykrycia sondy podczas ruchu, nawet gdy ruchu nie ma.
Poszperałem w źródłach LinuxCNC i znalazłem moment w którym błąd ten jest wyświetlany:

Kod: Zaznacz cały

if (emcmotStatus->probing) {
        /* check if the probe has been tripped */
        if (emcmotStatus->probeVal ^ probe_whenclears) {
            /* remember the current position */
            emcmotStatus->probedPos = emcmotStatus->carte_pos_fb;
            /* stop! */
            emcmotStatus->probing = 0;
            emcmotStatus->probeTripped = 1;
            tpAbort(&emcmotInternal->coord_tp);
        /* check if the probe hasn't tripped, but the move finished */
        } else if (GET_MOTION_INPOS_FLAG() && tpQueueDepth(&emcmotInternal->coord_tp) == 0) {
            /* we are already stopped, but we need to remember the current
               position here, because it will still be queried */
            emcmotStatus->probedPos = emcmotStatus->carte_pos_fb;
            emcmotStatus->probing = 0;
            if (probe_suppress) {
                emcmotStatus->probeTripped = 0;
            } else if(probe_whenclears) {
                reportError(_("G38.4 move finished without breaking contact."));
                SET_MOTION_ERROR_FLAG(1);
            } else {
                reportError(_("G38.2 move finished without making contact."));
                SET_MOTION_ERROR_FLAG(1);
            }
        }
    } else if (!old_probeVal && emcmotStatus->probeVal) {
        // not probing, but we have a rising edge on the probe.
        // this could be expensive if we don't stop.
        int i;
        int aborted = 0;

        if(!GET_MOTION_INPOS_FLAG() && tpQueueDepth(&emcmotInternal->coord_tp)) {
            // running an command
            tpAbort(&emcmotInternal->coord_tp);
         reportError(_("Probe tripped during non-probe move."));
	    SET_MOTION_ERROR_FLAG(1);
        }
Niby jest sprawdzanie, czy jest aktualnie ruch ale coś chyba nie działa.
I niby można sobie to w źródłach wykomentować (ale to zwykłe druciarstwo) albo odnaleźć gdzie jest błąd - trzeba by trochę więcej chęci do tego ale da się.

Ktoś ma jakieś doświadczenie ze zgłaszaniem błędów do twórców LinuxCNC?
To nie jest jakiś krytyczny błąd, ale skoro został zauważony to warto by nie zachowywać go tylko dla siebie.



Awatar użytkownika

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

Re: LinuxCNC - czujnik narzędzia - drgania styków

#2

Post napisał: tuxcnc » 07 mar 2024, 16:28

drzasiek90 pisze:
07 mar 2024, 13:49
Czyli przykładowe sondowanie wygląda tak:

Kod: Zaznacz cały

M64 P00			(Uruchomienie wejścia sondy)
G38.3 X-3 F150	(Pomiar do kontaktu)
M65 P00			(wyłączenie wejścia sondy)
Wszystko byłoby ok, ale nadal czasami wyskakuje błąd: Probe tripped during non-probe move
Trochę poszukałem, i okazuje się, że on następuje po zakończeniu G38.3 ale jeszcze przed lub w trakcie M65 P00.
Nie rozumiesz istoty problemu.
Sam miałem problem z czujnikiem wysokości narzędzia, który potrafił zadziałać od wibracji.
Przy ciężkiej obróbce twardego materiału na wiotkiej frezarce, drgania od skrawania materiału narzędziem przenoszą się na ramę i wprowadzają w drgania styki przykręconego na stałe czujnika, co faktycznie skutkuje wywaleniem błędu i zatrzymaniem maszyny.
Czujnik jest co prawda chiński, ale fabryczny i nie sprawia kłopotów przy pomiarze narzędzia.
Temat na forum Linuxcnc, który zlinkowałeś, dotyczy takiej właśnie sytuacji.
Natomiast to co opisujesz, to jest coś chorego, co nigdy nie powinno mieć miejsca.
Najwyraźniej dzielnie zwalczasz problem, który sam stworzyłeś...


Autor tematu
drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1769
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: LinuxCNC - czujnik narzędzia - drgania styków

#3

Post napisał: drzasiek90 » 07 mar 2024, 17:16

tuxcnc pisze:
07 mar 2024, 16:28
Nie rozumiesz istoty problemu.
Ale to jest oczywista oczywistość i standardowa twoja odpowiedź.
Wszystko rozumiesz tylko ty, z tym, że jak się ostatnio okazało, wcale nie wszystko.
tuxcnc pisze:
07 mar 2024, 16:28
Sam miałem problem z czujnikiem wysokości narzędzia, który potrafił zadziałać od wibracji.
Tutaj nie jest problem zadziałania od wibracji. To po prostu metalowa kostka którą dotyka narzędzie - zadziałanie czujnika polega na zetknięciu narzędzia z kostką - prąd przepływa od narzędzia do kostki (zwarcie). Ten czujnik nie zadziała od drgań. Tutaj występuje tylko "drganie styku" gdzie stykiem jest narzędzie-kostka.
Narzędzie się zatrzymuje w momencie zetknięcia z materiałem.
Mimo, że nie wykonywany jest w tym momencie żaden ruch, zgłaszany jest błąd.
Chyba, że to jest ten ruch, który występuje od wykrycia czujnika do zatrzymania napędu - ale tak być nie powinno.
Funkcja, a w zasadzie definicja GET_MOTION_INPOS_FLAG() sygnalizuje, czy każdy napęd osiągnął pozycję. Jeśli którykolwiek nie osiągnął, zwraca false. W tym przypadku sprawdzana jest ona z negacją, a więc wygląda na to, że mimo, że żaden napęd nie jest w ruchu, czasami GET_MOTION_INPOS_FLAG() zwraca false.
tuxcnc pisze:
07 mar 2024, 16:28
Natomiast to co opisujesz, to jest coś chorego, co nigdy nie powinno mieć miejsca.
Najwyraźniej dzielnie zwalczasz problem, który sam stworzyłeś...
No ok, tylko jak mogłem stworzyć ten problem?
Nawet jeśli zwyczajnie puszczę jednorazową komendę:
G38.3 X-3 F150
to i tak czasami wyrzuca błąd po zatrzymaniu, co nie powinno się zdarzyć, bo w tej linii nie występuję wywołanie żadnego ruchu nie będącego sondowaniem.

Teraz sprawdziłem z ciekawości i zwiększyłem drastycznie przyspieszenie na osi na której wykonuję sondowanie - i błąd występuje zdecydowanie rzadziej.
To by sugerowało, że ruch wykrywany jest po wykryciu czujnika a przed zatrzymaniem napędu - no bo wiadomo, że napęd nie staje w miejscu tylko z określonym przyspieszeniem.

Awatar użytkownika

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

Re: LinuxCNC - czujnik narzędzia - drgania styków

#4

Post napisał: tuxcnc » 07 mar 2024, 17:32

drzasiek90 pisze:
07 mar 2024, 17:16
Ale to jest oczywista oczywistość i standardowa twoja odpowiedź.
Problemem jest twój "czujnik", który świruje zamiast działać.
Zamiast naprawić czujnik, próbujesz naprawiać Linuxcnc...
EOT.


Autor tematu
drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1769
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: LinuxCNC - czujnik narzędzia - drgania styków

#5

Post napisał: drzasiek90 » 07 mar 2024, 17:50

tuxcnc pisze:
07 mar 2024, 17:32
Problemem jest twój "czujnik", który świruje zamiast działać.
Zamiast naprawić czujnik, próbujesz naprawiać Linuxcnc...
EOT.
To się zgadza - czujnik jest taki sobie - ale taki tutaj będzie. To jest model stołowy a nie prawdziwa maszyna. Czujnik to kawałek aluminiowej kostki i taki tutaj zostanie bo zostać musi.
Ale dzięki temu, że czujnik jest kiepski, uwidocznił się problem/niedopatrzenie twórców LinuxCnc.
Bo zatrzymywanie się napędu (po wykryciu zadziałania czujnika) jest w dalszym ciągu częścią tej samej procedury G38 - nie jest to kolejna procedura a więc w ramach tej samej procedury nie powinno być to zgłaszane jako błąd czujnika podczas ruchu nie będącego sondowaniem, ponieważ to jest ten sam ruch z tej samej procedury.

Awatar użytkownika

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

Re: LinuxCNC - czujnik narzędzia - drgania styków

#6

Post napisał: tuxcnc » 07 mar 2024, 18:18

drzasiek90 pisze:
07 mar 2024, 17:50
Czujnik to kawałek aluminiowej kostki i taki tutaj zostanie bo zostać musi.
Właśnie dlatego nie mam ochoty niczego Ci tłumaczyć, bo jesteś uparty jak osioł.
Najpierw sobie ubzdurasz, że musi być tak jak wymyśliłeś, a potem naprawiasz to co nie jest zepsute, żeby jakoś zadziałało...
Wiesz ile lat ma projekt Linuxcnc?
Wiesz ilu ludzi używa Linuxcnc?
I jakimś cudem nikt nie zgłasza problemów z pomiarem narzędzi...
Nagle Ty odkryłeś błąd w Linuxcnc, bo ci nie działa kostka udająca czujnik...
Zrobisz porządny czujnik, taki który jest podatny na nacisk i ma choćby minimalną histerezę, a sam zobaczysz, że to nie Linuxcnc jest spieprzony.
Porządny czujnik nie znaczy że drogi i skomplikowany, po prostu dobrze pomyślany, a zrobiony nawet ze sprężystej blaszki i obudowy z wydruku 3d...


Autor tematu
drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1769
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: LinuxCNC - czujnik narzędzia - drgania styków

#7

Post napisał: drzasiek90 » 07 mar 2024, 18:35

tuxcnc pisze:
07 mar 2024, 18:18
Właśnie dlatego nie mam ochoty niczego Ci tłumaczyć
Ale mi nie trzeba tłumaczyć. To tylko ty sobie ubzdurałeś, że wiesz wszystko lepiej i każdego powinieneś pouczać.
Przecież sam znalazłem przyczynę tego problemu - twoje posty jak zwykle nic tutaj nie wniosły.

I jednocześnie opisałem logiczne działanie procedury pomiaru - na logikę błąd ten podczas takiej procedury nie powinien być zgłaszany.
Czujnik owszem nie jest wysokich lotów - ale twórcy linuxcnc nie typują wymagań co do czujnika.
Więc może to być metalowa kostka.
tuxcnc pisze:
07 mar 2024, 18:18
I jakimś cudem nikt nie zgłasza problemów z pomiarem narzędzi...
Nie masz racji. Z pomiarem narzędzia akurat występuje wiele problemów.
Ot chociażby taki:
linuxcnc-dziwny-komunikat-po-pomiarze-d ... 11-10.html
gdzie sam stwierdzasz:
tuxcnc pisze:
17 maja 2020, 15:43
Błąd jest idiotyczny, sam pomysł żeby wyniki pomiarów kolejkować jest idiotyczny, nic tu nie ma sensu ani logiki.
Zapewne ktoś kiedyś wpadł na jakiś cudowny pomysł, który się potem okazał idiotyczny i został porzucony, a śmiecie w kodzie pozostały
tuxcnc pisze:
07 mar 2024, 18:18
Nagle Ty odkryłeś błąd w Linuxcnc, bo ci nie działa kostka udająca czujnik...
Wykryłem i zasygnalizowałem działanie niezgodne z logiką. Zapewne nie jako pierwszy.
Kiepski sprzęt uwidacznia niedociągnięcia programu.
Oczywiście to nie znaczy, że linuxCNC jest spieprzony. To po prostu jeden z wielu błędów/niedopracowań jakie zdarzają się w każdym programie.
Problem nie występuje przy odpowiednio dobrym sprzęcie - co nie znaczy, że nie można problemu zgłosić i przy następnej wersji (o ile będzie wola twórców) poprawić.


ARMed
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 1
Posty: 51
Rejestracja: 17 lut 2024, 07:58
Lokalizacja: PL

Re: LinuxCNC - czujnik narzędzia - drgania styków

#8

Post napisał: ARMed » 07 mar 2024, 18:41

Jak dla mnie to trzeba poprawić i hardware i software ;)

https://github.com/LinuxCNC/linuxcnc/issues

Pozdrawiam ;)


Autor tematu
drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 5
Posty: 1769
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: LinuxCNC - czujnik narzędzia - drgania styków

#9

Post napisał: drzasiek90 » 07 mar 2024, 18:49

ARMed pisze:
07 mar 2024, 18:41
Jak dla mnie to trzeba poprawić i hardware i software ;)
Zgadza się.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”