Znaleziono 8 wyników

autor: drzasiek90
17 maja 2020, 16:24
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia
Odpowiedzi: 13
Odsłony: 1219

Re: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia

Dzięki za naprowadzenie.
Funkcja ta zdefiniowana jest 2 krotnie:

Pierwszy raz w pliku gcodemodule.cc

Kod: Zaznacz cały

int GET_EXTERNAL_QUEUE_EMPTY() { return true; }
drugi raz w pliku enccanon.cc

Kod: Zaznacz cały

int GET_EXTERNAL_QUEUE_EMPTY(void)
{
    flush_segments();

    return emcStatus->motion.traj.queue == 0 ? 1 : 0;
}
Nie wiem jeszcze który z tych plików się kompiluje.

A za wyświetlenie tego komunikatu odpowiada zapewne kod z pliku rs274ngc_pre.cc

Kod: Zaznacz cały

if (settings->probe_flag) {
	CHKS((GET_EXTERNAL_QUEUE_EMPTY() == 0),
	     NCE_QUEUE_IS_NOT_EMPTY_AFTER_PROBING);
	set_probe_data(&_setup);
	settings->probe_flag = false;
    }
autor: drzasiek90
17 maja 2020, 14:42
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia
Odpowiedzi: 13
Odsłony: 1219

Re: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia

Zrozumiałem jak działa PROBEOPEN ale nie rozumiem co mi to da, skoro maszyna pracuje i za każdym razem dostaje narzędzie inne, różniące się znacznie długością od poprzedniego o procedura działa poprawnie. Jeśli plik utworzony przez PROBEOPEN jest pamięcią pomiarów to niech sobie jest, ale ja go nie tworzę więc takowej pamięci nie mam. Zrobiłem test czy pomiary zapisują się do "jakiegoś tajemniczego bufora FIFO" i test wykazał, że tak nie jest. Mogę wykonać test z PROBEOPEN ale dalej nie da mi to odpowiedzi o jaką kolejkę chodzi.
autor: drzasiek90
17 maja 2020, 13:08
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia
Odpowiedzi: 13
Odsłony: 1219

Re: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia

No więc, wygląda na to, że wyniki pomiarów nie trafiają do żadnej kolejki, a przynajmniej nie jest to kolejka FIFO.
Zrobiłem test.

Kod: Zaznacz cały

G38.3
G38.5
#<_ODCZYT> = #5063
(debug, G38.5 = #<_ODCZYT>)
otrzymałem 38.5 = -3.13

Drugi program:

Kod: Zaznacz cały

G38.3
#<_ODCZYT> = #5063
(debug, G38.3 = #<_ODCZYT>)
G38.5
#<_ODCZYT> = #5063
(debug, G38.5 = #<_ODCZYT>)
otrzymałem 38.3 = -3.14
otrzymałem 38.5 = -3.13

Jeśli jest tam kolejka wyników, to z pewnością typu STOS (LIFO).
Gdzie mogę o tym poczytać? Usiłowałem szukać w dokumentacji linuxcnc 2.9 ale za nic nie mogę dopasować hasła pod którym mogę to znaleźć.
autor: drzasiek90
16 maja 2020, 21:14
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia
Odpowiedzi: 13
Odsłony: 1219

Re: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia

Rozumiem, że to mam mi pomóc w debugowaniu jaki jest wynik pomiaru. Jednak zakładam narzędzia różniące się znacznie długością, cała procedura działa mi wzorowo mimo, że w programie jest:

Kod: Zaznacz cały

G38.3 ...
G38.4 ...
#<_ODCZYT> = #5063
Jeśli komunikat ten dotyczy kolejki nieodczytanych wyników, to albo nie jest to kolejka fifo albo resetuje się ona po każdy wywołaniu nowego programu.
Niestety dziś nie udało mi się podejść do maszyny, żeby sprawdzić. Zweryfikuję jutro.
autor: drzasiek90
15 maja 2020, 19:36
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia
Odpowiedzi: 13
Odsłony: 1219

Re: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia

Gdyby kolejka była FIFO to by mi to nie działało, a działa do tej pory, każdy pomiar jest dobry. Problem się pojawił wczoraj, bo zaczął się pojawiać komunikat.
Załóżmy że kolejka to fifo.
Mam narzędzie 1 które jest dłuższe od narzędzia 2 o 10mm. Załóżmy że kolejno dla narzędzia 1:
G38.3 daje wynik 25.0
G38.5 daje wynik 25.01
a dla narzędzia 2:
G38.3 daje wynik 36.0
G38.5 daje wynik 36.01


Robię coś takiego:
Zakładam narzędzie 1 i wykonuję:

Kod: Zaznacz cały

G38.3 ...  					stan kolejki fifo [25.0]
G38.5 ...  					stan kolejki fifo [25.0][25.01]
#<_ODCZYT> = #5063 	stan kolejki fifo [25.01]
Po takiej czynności powinienem mieć w parametrze #<_ODCZYT> wartość 25.0
Zakładam narzędzie 2 i wykonuję:

Kod: Zaznacz cały

G38.3 ...  					stan kolejki fifo [25.01][36.0]
G38.5 ...  					stan kolejki fifo [25.01][36.0][36.01]
#<_ODCZYT> = #5063 	stan kolejki fifo [36.0][36.01]
Po takiej czynności powinienem mieć w parametrze #<_ODCZYT> wartość 25.01

A tak nie jest, mam wynik poprawny po drugim pomiarze narzędzia. Nie wiem, czy 35.0 albo 35.01, nie rozróżniam tego bo tego nie debugowałem. Ale gdyby to działało na zasadzie kolejki fifo to miałbym przekłamanie o 10 mm a to bym zauważył.
autor: drzasiek90
15 maja 2020, 09:33
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia
Odpowiedzi: 13
Odsłony: 1219

Re: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia

GumiRobot I to jest rozwiązanie! W sumie bardzo proste, pewnie dlatego mi do głowy nie przyszło. O ile zadziała :) Oczywiście nie jest to rozwiązanie problemu a ominięcie ale w sumie na nic mi ta sygnalizacja błędu potrzebna nie jest, skoro wymianę narzędzia mam ręczną więc operator i tak przy tym stoi i patrzy na pomiar.
autor: drzasiek90
15 maja 2020, 08:26
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia
Odpowiedzi: 13
Odsłony: 1219

Re: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia

Dzięki.
Z tego co zrozumiałem, to błąd się pojawia jeśli sonduję wiele razy tą samą pozycję bez odczytania parametru.
Nie do końca rozumiem, czujnik narzędzia mam w tym samy miejscu więc jak mam sondować inną pozycję za każdym razem. Parametr #5063 odczytuję ale dopiero po G38.4.
Mam tak:
G38.3 ...
G38.4 ...
#<_ODCZYT> = #5063
A może powinienem robić tak?
G38.3 ...
#<_ODCZYT> = #5063
G38.4 ...
#<_ODCZYT> = #5063

Nie wiem co to za kolejka.
autor: drzasiek90
14 maja 2020, 21:18
Forum: LinuxCNC (dawniej EMC2)
Temat: LinuxCNC - dziwny komunikat po pomiarze długości narzędzia
Odpowiedzi: 13
Odsłony: 1219

LinuxCNC - dziwny komunikat po pomiarze długości narzędzia

Witam,
Zaczął mi się dziś objawiać dziwny problem który wcześniej nigdy nie napotkałem.
Działa sobie program, gdzieś tam w trakcie po którejś zmianie narzędzia wykonuje się podprogram pomiaru długości narzędzia, komenda G38.3. Po zetknięciu czujnika z narzędziem program się zatrzymuje i wywala mi komunikat:
Kolejka nie jest pusta po skanowaniu.
Dzieje się tak tylko co jakiś czas, nigdy wcześniej tego komunikatu na żadnej maszynie nie miałem.

Wróć do „LinuxCNC - dziwny komunikat po pomiarze długości narzędzia”