GRBL dla tokarki

Rozmowy dotyczące oprogramowania sterującego maszynami CNC i sterowników CNC obrabiarek numerycznych
Awatar użytkownika

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

Re: GRBL dla tokarki

#11

Post napisał: tuxcnc » 04 paź 2022, 16:05

Jest postęp !!!

Przy okazji coś się wyjaśniło...

Zacznijmy od fake-ecoder:

Kod: Zaznacz cały

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{

        /* setup */        
        DDRB = 0b00000011;              // set A and B as OUTPUT 
        PORTB = 0b00000100;             // set outputs to LOW and inputs to HIGH 

        /* loop */
        while (1)
        {
            if (PINB&_BV(PB2))  // Enable on pin PB2
            {
                PORTB ^= _BV(PB0);  // toggle A
                _delay_ms(1);
                PORTB ^= _BV(PB1);  // toggle B
                _delay_ms(1);
            }
        }
}
Skompilowane na Arduino IDE z "płytką" microcore.
Daje piękną kwadraturę o częstotliwości około 250 Hz, stan niski na PB2 blokuje "zliczanie".
PB0/PB1 ATtiny13 podpięte pod PB6/PB7 Black Pill, PB2 ATtiny13 podpięte pod wyjście SPINDLE_ENABLE Black Pill, tu nie podaję numeru pinu, bo można go różnie skonfigurować, natomiast piny enkodera są przypisane na sztywno.
Trzeba mieć ustawione $33=1 (LATHE_MODE), inaczej G33 wywali "unsuported code" czyli "error 20".
Teraz, jeśli wrzeciono stoi (M5), to G33 Z3 K1 wywala "error 8". Sensu to nie ma żadnego, ale widocznie autor programu nie miał lepszego pomysłu...
Potem dałem M3 S1000, co zmieniło stan wyjścia SPINDLE_ENABLE i fake-encoder ruszył.
Teraz po G33 Z3 K1 wyświetla najpierw "HOLD" a potem "RUN" i jedzie... (Używam bCNC, co tutaj ma drugorzędne znaczenie).

No więc na pewno sterowanie nie używa sygnału INDEX, tylko go sobie tworzy z jakiejś wartości licznika TIM4, zliczającego impulsy enkodera.
Nie jestem w stanie sprawdzić co będzie kiedy w programie wykonamy kilka razy G33, czy się będzie synchronizować w tym samym miejscu, czy za każdym razem gdzieś indziej, ale ponieważ jest to sprawa programowa, więc na pewno da się to zrobić tak, żeby było dobrze.
Natomiast na pewno, synchronizacja po wyłączeniu zasilania zostanie utracona i po następnym włączeniu maszyny wystąpi w przypadkowym położeniu wrzeciona. Myślę że z tym to da się żyć...



Awatar użytkownika

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

Re: GRBL dla tokarki

#12

Post napisał: tuxcnc » 04 paź 2022, 19:59

Trochę lipa z tym g33.
Otóż enkoder liczy tylko w jedną stronę.
Znaczy się licznik TIM4 liczy w obie, ale przepełnienia są tylko dodawane, niezależnie od kierunku obrotów.
Mówiąc w skrócie, toczyć można tylko na prawych albo tylko na lewych obrotach, zależnie jak podłączymy piny enkodera.
W "złym" kierunku dzieją się cuda.

Chyba będzie z tym sterowaniem sporo roboty, zanim wszystko zacznie działać jak powinno...

Awatar użytkownika

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

Re: GRBL dla tokarki

#13

Post napisał: tuxcnc » 05 paź 2022, 18:25

Sprawy poszły naprzód...

Uruchomiłem oś B.
Niby wiedziałem co nie działa i gdzie szukać przyczyny, ale gapiłem się w kod jak sroka w gnat i nie widziałem rzeczy oczywistej...
Otóż kiedy ja komentuję jakiś fragment kodu, to stawiam znaki komentarza na początku linii, żeby od razu rzucały się w oczy.
Autor programu ma natomiast głupią manierę przyklejania ich do kodu...
W edytorze bez kolorowania składni można // nie zauważyć, a kolorować nie lubię bo mnie albo razi, albo nie widzę szarego na szarym...
Po jasną cholerę autor zakomentował te linie to mnie nie pytajcie, bo logiczne wytłumaczenie nie istnieje...

Zawiesiłem sprawę enkodera.
Doszedłem do wniosku, że bez sensu jest dłubać w kodzie bez sprawdzenia jak on działa na rzeczywistej maszynie.
Na razie dodałem kilka warunków i G33/G76 działają tylko po M3 z niezerowym S, czyli gwintować da się tylko na prawych obrotach.
Użycie tych kodów po M4 albo S0 wywala błąd i przerywa program.

Dodałem wyjścia pomocnicze i wejścia "wait on input".
Trochę po chamsku wcisnąłem je do Gcode.c, co jest rozwiązaniem nieeleganckim, ale prostym, szybkim i działającym.
Są one sterowane kodami M100 i kolejnymi. Na przykład M100 ustawia stan wysoki na wyjściu AUX1, a M101 stan niski.
Natomiast z wejściami jest trochę bardziej skomplikowana sprawa.
Założyłem że mechanizmy włączane wyjściami pomocniczymi potrzebują trochę czasu na zadziałanie (np. siłownik pneumatyczny) i w tym czasie maszyna musi czekać na sygnał potwierdzający wykonanie operacji.
Tak więc np. po kodzie M110 sterowanie czeka np. 10 sekund. Jeśli w tym czasie na wejściu WOI1 (wait on input) pojawi się stan niski, to przerywa czekanie i wykonywana jest następna komenda. Jeśli się natomiast nie doczeka, to wywala błąd i przerywa program. Na razie czas oczekiwania jest ustawiany na sztywno przed kompilacją programu i nie ma możliwości podania go w postaci parametru, ale w sumie to chyba ma małe znaczenie...

Chcę zrobić porządek z komunikatami błędów. Pamięci jest od cholery, więc bez sensu jest wyświetlanie w rodzaju "error:7" i szukanie potem w dokumentacji co to znaczy...
Mają być komunikaty z pełnymi opisami.
Do tej roboty inteligencji wielkiej nie potrzeba, natomiast sporo czasu i chęci, więc może to potrwać.

Kilku spraw po prostu nie wiem...
Po dodaniu sygnałów pomocniczych na Black Pill zrobiło się chytro z pinami.
Z czegoś po prostu trzeba zrezygnować....
O przetrwanie walczą: oś C, limity A,B,C i sygnały pomocnicze...
Wszystko na raz się nie zmieści, trzeba by ustalić jakąś optymalną konfigurację...

Z STM32F401CCU6 (401 nie 411) zaczynam się coraz bardziej zastanawiać czy warto.
Produkować tych sterowań nie mam zamiaru, a walka jest o dwadzieścia PLN na sztuce...
Formalnie to ta robota się nie opłaci...

Kod opublikuję kiedy uznam że jest gotowy do testów na rzeczywistej maszynie.

Awatar użytkownika

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

Re: GRBL dla tokarki

#14

Post napisał: tuxcnc » 06 paź 2022, 19:17

A szlag by to trafił...
Najpierw pół dnia próbowałem uruchomić oś C, działy się cuda i w końcu dałem sobie spokój...
Potem cały dzień usiłowałem uruchomić bazowanie osi A i B, coś się działo, ale na koniec wywalało błąd...
Zupełnie przypadkiem zauważyłem, że częstotliwość impulsów STEP na A i B jest zupełnie z sufitu i nie reaguje na zmiany ustawień...
W końcu się wyjaśniło...
Szukałem przyczyny w kodzie, a winny był EEPROM.
Ustawienia ewidentnie zostały z Arduino, chociaż STM32F411 ma od cholery pamięci i nie trzeba się kisić w jednym kilobajcie...
Ustawione było maksimum 100 zmiennych , zmieniłem na 255 i zaczęło działać, ale dla pewności zwiększyłem pojemność EEPROM do 2 kB, żeby się znowu nie zdziwić...
Teraz już chyba nic nie powinno mnie zaskoczyć i wreszcie przygotuję kod gotowy do testów na maszynie...

Widzę ogromne zainteresowanie tematem...
W tematach o tym że Kaczyński jest winny 17% inflacji w Niderlandach wszyscy mają coś do powiedzenia, a tutaj chyba raptem kilka osób zagląda...
Mnie to akurat nie zraża, bo sterownik robię dla siebie, ale to nie najlepiej świadczy o tym forum...


IMPULS3
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7549
Rejestracja: 25 gru 2010, 21:55
Lokalizacja: LUBELSKIE

Re: GRBL dla tokarki

#15

Post napisał: IMPULS3 » 06 paź 2022, 19:39

tuxcnc pisze:Widzę ogromne zainteresowanie tematem...
W tematach o tym że Kaczyński jest winny 17% inflacji w Niderlandach wszyscy mają coś do powiedzenia, a tutaj chyba raptem kilka osób zagląda...
Mnie to akurat nie zraża, bo sterownik robię dla siebie, ale to nie najlepiej świadczy o tym forum...

A czego się spodziewasz skoro coś tam sam sobie dłubiesz i meldujesz o problemach. Skoro nikt więcej tego nie robi to znaczy że czekamy na efekt końcowy. Jak coś pokażesz to pewnie odzew będzie jakis większy. Póki co to nic poza problemami nie widać. Pokaż finał a najlepiej nagraj filmik jak czymś sterujesz wtedy będzie widać czy warto czy nie.
A inflacja dotyczy wszystkich a i tak malo kto się wypowiada jak na ilość osób na forum. :P

Awatar użytkownika

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

Re: GRBL dla tokarki

#16

Post napisał: tuxcnc » 06 paź 2022, 21:16

IMPULS3 pisze:
06 paź 2022, 19:39
A czego się spodziewasz skoro coś tam sam sobie dłubiesz i meldujesz o problemach. Skoro nikt więcej tego nie robi to znaczy że czekamy na efekt końcowy. Jak coś pokażesz to pewnie odzew będzie jakis większy. Póki co to nic poza problemami nie widać. Pokaż finał a najlepiej nagraj filmik jak czymś sterujesz wtedy będzie widać czy warto czy nie.
Widzisz, to nie jest rozwiązanie z kategorii "wziąć i użyć".
Albo dzieło przerosło autora, albo po prostu nie ma on czasu.
Większość kodu ma dwa lata, tylko kilka plików zmieniono osiem miesięcy temu i jest to opisane jako zrobienie porządków...
Natomiast program ma ogromny potencjał, bo użyto narzędzi odpowiednich do zadania. STM32F411 ma sprzętową obsługę enkodera, więc da się na nim robić rzeczy niewykonalne choćby na ESP32, który jest potężniejszy, ale akurat do tego się nie nadaje.
Owszem w kodzie jest sporo bałaganu, część funkcji rozbabrano i porzucono w połowie, ale sto razy łatwiej ten burdel posprzątać, niż zaczynać wszystko od zera...
Nie ma budżetowego sterowania do tokarki "zamontuj i tocz".
Jest LinuxCNC, program dobry, ale skomplikowany w konfiguracji i nie każdy sobie poradzi.
Wiem, można sobie kupić jakieś tam Piko, Mach3 albo SZGH, ale to koszt od tysiąca PLN w górę...
Natomiast STM32F411CCU6 w Polsce kosztuje 50 PLN...
Natomiast co do mojego dłubania, to są duże postępy i już za kilka dni powinna być gotowa wersja do testów na maszynie.
Po prostu myślałem, że zainteresowanie będzie większe...


IMPULS3
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7549
Rejestracja: 25 gru 2010, 21:55
Lokalizacja: LUBELSKIE

Re: GRBL dla tokarki

#17

Post napisał: IMPULS3 » 07 paź 2022, 08:06

tuxcnc pisze:Jest LinuxCNC, program dobry, ale skomplikowany w konfiguracji i nie każdy sobie poradzi.

Dlatego że wersja ktorą sie sciąga jest pusta. Gdyby była w momencie ściągnięcia już załadowana pod dana maszynę byłoby prościej. Bo resztę ustawień moznaby zrobić tylko w pliku INI. A tak trzeba se dopisywać wszystko w wileu miejscach co wymaga wiedzy albo sporej liczby podpowiedzi kogoś kto się już zapoznał.
tuxcnc pisze:Natomiast STM32F411CCU6 w Polsce kosztuje 50 PLN...

Myslę że to akurat nie ma znaczenia. Znaczenie ma to aby było tak jak w Linuxie że masz suby i inne dodatki ktore mozesz sobie zmieniać a które sprawiają że masz proste elementy potrzebne do tego aby maszyna coś zrobila.
tuxcnc pisze:Po prostu myślałem, że zainteresowanie będzie większe...

Forum jest od bardzo wielu działów wiec trudno mieć tu zgraje ludzi od jednego tematu. ja póki co arduino mam tylko zakupione wiec obserwuje co to za dzielo sztuki i zapewne w okolicach zimy się tym pobawie, a póki co jestem tylko w roli widza.
Poza tym nie napisaleś jak to ma dzialać. Czy w komputerze będziesz pisal progrmy i wysyłał do arduino, czy jakos inaczej?


Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 2364
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

Re: GRBL dla tokarki

#18

Post napisał: Avalyah » 07 paź 2022, 09:28

tuxcnc pisze:ma sprzętową obsługę enkodera, więc da się na nim robić rzeczy niewykonalne choćby na ESP32, który jest potężniejszy, ale akurat do tego się nie nadaje.

Ja tam obsługuję sobie enkoder na arduino uno w tokarce, enkoder 400 imp o ile dobrze pamiętam, z czego wykorzystuję go do gwintowania, więc czytam 1600 imp na obrót. Tokarka rozkręca się do 2200 rpm i nie przekracza to możliwości tego jakby nie było mało potężnego procka. A do odczytywania impulsów używam zwykłego przerwania na pinie.

Awatar użytkownika

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

Re: GRBL dla tokarki

#19

Post napisał: tuxcnc » 07 paź 2022, 10:07

Avalyah pisze:
07 paź 2022, 09:28
Ja tam obsługuję sobie enkoder na arduino uno w tokarce, enkoder 400 imp o ile dobrze pamiętam, z czego wykorzystuję go do gwintowania, więc czytam 1600 imp na obrót. Tokarka rozkręca się do 2200 rpm i nie przekracza to możliwości tego jakby nie było mało potężnego procka. A do odczytywania impulsów używam zwykłego przerwania na pinie.
Masz ten enkoder w GRBL, czy po prostu musisz sobie pogadać?

Awatar użytkownika

pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 4693
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

Re: GRBL dla tokarki

#20

Post napisał: pitsa » 07 paź 2022, 10:30

Warto tu zaglądać właśnie ze względu na takie tematy jak twoje. :-)
IMPULS3 pisze:jak to ma działać
Też to śledzę ale nie mam po co się wypowiadać i nie widzę całości. GRBL to jakiś wsad w środku procka i jakieś płytki ze stepstikami. Nie widzę całości jak w normalnym linuxcnc i w czym to by mi się mogło przydać.
tuxcnc pisze:Jest LinuxCNC, program dobry, ale skomplikowany w konfiguracji

Kwestia konfiguracji to tylko sprawy do opanowania na etapie budowy i uruchamiania maszyny. Ważna jest też obsługa gdy masz dopuścić do maszyn pracownika po krótkim przeszkoleniu. W LinuxCNC sprawę prostoty obsługi można załatwić za pomocą subów. Przykłady wiele razy pokazywał kamar.
Arduino na esp32 przydało mi się do urządzeń wykonujących zaplanowane, sterowane czujnikami ruchy. Żadnych gcodów, klawiatur ekranów (za wyjątkiem wyświetlacza LCD), przycisk start i "zderzaki" załatwiają mi sprawę. Nawet mi przy tym pomogłeś i wyszło
tuxcnc pisze:"zamontuj i tocz"

a nawet "Zbuduj i zapomnij" do następnego przeglądu lub szkolenia. ;-)

Działaj więc i jeśli możesz pokaż jakie to jest przydatne.

Dodane 56 sekundy:
tuxcnc pisze:czy po prostu musisz sobie pogadać?
czyli jednak wolisż żeby siedzieć cicho? ;-D
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Ogólne Dyskusje na Temat Systemów Sterowania CNC”