Serwokrokowiec + GRBL = przestroga

Dyskusje dotyczące serwonapędów i napędów serwokrokowych.
Awatar użytkownika

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

Serwokrokowiec + GRBL = przestroga

#1

Post napisał: tuxcnc » 05 cze 2022, 23:33

Ładnych kilka godzin dzisiaj zmarnowałem i pod koniec już myślałem że szlag mnie trafi...
Otóż kupiłem sobie w Chinach ramę do nowej frezarki.
Zasadniczo mam już prawie identyczną, ale dwa razy mniejszą i czasem coś się nie chce zmieścić...
Ponieważ poprzednia radzi sobie z aluminium zadowalająco, ale niespecjalnie, to od razu wykluczyłem obróbkę tego materiału, bo spodziewałem się że większa będzie dużo bardziej wiotka, no i nie myliłem się.
Co prawda wiórów jeszcze nie było, ale w drewnie, dykcie i plastikach na pewno da radę.
Tak więc postanowiłem dać wrzeciono 2,2 kW chłodzone powietrzem i sterowanie na GRBL przymocowane do ruchomej bramy, a komunikacja przez bluetooth - po prostu żadnych blaszanych komputerów, monitorów, kabli, beczek z wodą itp.
Maszynka ma być kompaktowa, łatwa do transportu i jedyne co ma z niej wychodzić, to przewód zasilający.
Ogólnie to wszystko się udało, tylko działać nie chciało za cholerę.
Jak pisałem, poprzednia maszyna jest mniejsza i sterowana Linuxcnc, ale poza tym to taka sama konstrukcja napędzana tymi samymi serwokrokowcami JSS57P3N, które bez problemu dają posuwy 5000 mm/min przy akceleracji 1000 mm/s ² .
Dlatego po prostu w szoku byłem, patrząc co się działo przy posuwach 1000 i akceleracji 50. Czasem gubiłem kilka procent dystansu, czasem silnik zabrzęczał a suport ledwo drgnął. No po prostu masakra.
To nie jest moja pierwsza frezarka, wiem jakie opory potrafi pokonać taki napęd, a tutaj ani wariackich mas, ani dużych oporów, wszystko daje się przesuwać jedną ręką...
Co prawda od razu zauważyłem, że silniki nie trzymają na postoju, ale machnąłem na to ręką, że zajmę się tym później.
Najpierw katowałem Makerbase DLC32, ale to ESP32, tylko 3,3V, więc pomyślałem że podepnę ośmiobitowy sterownik na ATmega328P, co właściwie niczego nie zmieniło, więc problem musiał być gdzieś indziej. Podejrzenie padło na silniki i sprzęgła bo już po prostu nic innego nie pozostało.
Wtedy już byłem zmuszony zrobić porządek z luzowaniem silników na postoju, bo musiałem mieć trzymające silniki żeby cokolwiek sprawdzić...
Znalazłem właściwy parametr, wpisałem do sterownika i ... stał się cud - maszyna zaczęła działać jak powinna.
Wpiąłem z powrotem sterownik 32-bitowy i też wszystko działało...
No i tutaj sprawa stała się jasna.
Otóż do DLC32 wgrałem FluidNC, który jest nowym projektem, który bezdyskusyjnie zastąpi 8-bitowe GRBL, ale póki co jest w początkowej fazie rozwoju i przede wszystkim brakuje dokumentacji. Tak byłem zaaferowany szukaniem informacji co i jak wpisać w plik konfiguracyjny, że o niczym innym nie myślałem...
Otóż gdzieś w necie znalazłem plik do mojego sterownika i zmieniałem w nim co potrzebowałem, ale na inne parametry nie zwracałem uwagi, na przykład na linię

Kod: Zaznacz cały

 idle_ms: 2
No wiedziałem że coś to znaczy, ale nie byłem specjalnie ciekawy, a znaczy to dokładnie tyle, że sterownik wyłącza ENABLE drajwerów po zaledwie dwóch milisekundach od wysłania ostatniego impulsu STEP. Przy zwykłych krokowcach może to być problem, a przy jakichkolwiek serwach to już musi być masakra, bo sterownik wyłącza silniki zanim osiągną zaplanowaną pozycję...
Z kolei w 8-bitowym sterowniku było ustawione domyślnie $1=25, czyli trochę więcej, ale i tak za mało.
No i to by było na tyle.




drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 4
Posty: 1758
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: Serwokrokowiec + GRBL = przestroga

#2

Post napisał: drzasiek90 » 07 cze 2022, 08:57

tuxcnc pisze:
05 cze 2022, 23:33
a znaczy to dokładnie tyle, że sterownik wyłącza ENABLE drajwerów po zaledwie dwóch milisekundach od wysłania ostatniego impulsu STEP. Przy zwykłych krokowcach może to być problem, a przy jakichkolwiek serwach to już musi być masakra, bo sterownik wyłącza silniki zanim osiągną zaplanowaną pozycję...
Dziwne, nie powinno być znacznie gorzej na serwokrokowych, tym bardziej, jeśli pracowały na pusto. Chyba, że sam sterownik jest kiepskiej jakości i sam z siebie generuje duże opóźnienie.
Należałoby się przyjrzeć, czy obciążenie nie jest za duże do tych napędów.
No bo należy przyjąć jakiś maksymalny błąd dynamiczny odpracowania pozycji. Domyślnie w sterownikach serwokrokowych jest to bardzo duża wartość. Jeśli napęd będzie cały czas pracował na dużym błędzie dynamicznym to frezarka będzie zaokrąglać narożniki.


Jarewa
Stały bywalec (min. 70)
Stały bywalec (min. 70)
Posty w temacie: 1
Posty: 72
Rejestracja: 29 mar 2020, 22:37

Re: Serwokrokowiec + GRBL = przestroga

#3

Post napisał: Jarewa » 07 cze 2022, 10:17

Ja nie wiem po co w ogóle jest ta funkcja, przecież nawet na silniku krokowym jak mamy mikrokroki to za każdym włączeniem/wyłączeniem gubimy kroki. Najlepiej ustawić na 255 wtedy nigdy nie wyłączy.

A sprawdzałeś w dokumentacji odstęp czasowy między sygnałami STEP JSS57P3N konfigurację $0? bo nie wszystkie sterowniki przyjmują co popadnie.

Awatar użytkownika

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

Re: Serwokrokowiec + GRBL = przestroga

#4

Post napisał: tuxcnc » 07 cze 2022, 14:20

drzasiek90 pisze:
07 cze 2022, 08:57
tuxcnc pisze:
05 cze 2022, 23:33
a znaczy to dokładnie tyle, że sterownik wyłącza ENABLE drajwerów po zaledwie dwóch milisekundach od wysłania ostatniego impulsu STEP. Przy zwykłych krokowcach może to być problem, a przy jakichkolwiek serwach to już musi być masakra, bo sterownik wyłącza silniki zanim osiągną zaplanowaną pozycję...
Dziwne, nie powinno być znacznie gorzej na serwokrokowych, tym bardziej, jeśli pracowały na pusto. Chyba, że sam sterownik jest kiepskiej jakości i sam z siebie generuje duże opóźnienie.
Należałoby się przyjrzeć, czy obciążenie nie jest za duże do tych napędów.
No bo należy przyjąć jakiś maksymalny błąd dynamiczny odpracowania pozycji. Domyślnie w sterownikach serwokrokowych jest to bardzo duża wartość. Jeśli napęd będzie cały czas pracował na dużym błędzie dynamicznym to frezarka będzie zaokrąglać narożniki.
Nie rozumiesz istoty problemu, czyli tego że serwo ma swój PID, czyli swoją własną rampę. Możesz taki napęd karmić impulsami STEP z maksymalną możliwą częstotliwością, a napęd będzie się rozpędzał i hamował po swojemu.
Przykładowo, kiedy przy jakiś tam ustawieniach (to nieistotne jakich), stojąc na X=0, zadałem G1X200F100 to suport przejechał 200 mm, ale na G0X200 przejechał tylko 192 mm. Po prostu sterownik wysłał tyle impulsów STEP ile powinien, ale raz powoli i napęd się wyrobił, a raz z maksymalną możliwą prędkością i wyłączył napęd kiedy był jeszcze w drodze. W skrajnych przypadkach, przy wariackiej rampie, napęd zdążył tylko zabrzęczeć i jechał np. 5 mm zamiast 50.
Jarewa pisze:
07 cze 2022, 10:17
Ja nie wiem po co w ogóle jest ta funkcja, przecież nawet na silniku krokowym jak mamy mikrokroki to za każdym włączeniem/wyłączeniem gubimy kroki. Najlepiej ustawić na 255 wtedy nigdy nie wyłączy.
Ja też nie wiem po co to jest, czy to skrajny ekodebilizm, czy zwykła ignorancja i głupota. Jeszcze bym rozumiał gdyby było to ustawiane w sekundach, no bo jeśli nie ma ruchu przez np. minutę to można założyć że program się skończył a operator tego nie zauważył, ale kiedy zdejmujemy ENABLE milisekundy po ostatnim STEP, to maszyna może dostać czkawki nawet przez szarpaną komunikację (znany problem na WIndows), a gubienie kroków jest nieuniknione, choćby z powodu inercji czy oddawania naprężeń...
Zawsze wyłączam ten debilizm ustawiając $1=255, tylko tym razem postanowiłem zrobić to później, bo nie wiedziałem co wpisać w plik konfiguracyjny FluidNC, bo to niby wersja GRBL, ale konfiguruje się go inaczej a z dokumentacją jest problem...
No ale dzięki temu czegoś nowego się dowiedziałem.


drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 4
Posty: 1758
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: Serwokrokowiec + GRBL = przestroga

#5

Post napisał: drzasiek90 » 07 cze 2022, 18:54

Doskonale rozumiem istotę problemu bo wiem jak serwonaped działa, od niemal 10 lat projektuję sterowniki serwonapedow dla specyficznego przemysłu. Dlatego wspomniałem o dynamicznym błędzie odpracowania. W układzie gdy pracuje wiele napędów a "zadajnik" nie ma pomiaru pozycji dynamiczny błąd odpracowania ma istotny wpływ na przekłamania w pracy. Grbl nie odczytuje pozycji napędu, steruje pozycją uznając w każdej chwili, że napęd jest dokładnie na tej pozycji jaką grbl akurat wyliczył. Użycie serwonapedow jest fajne ale nie można ich używać w takim układzie powodując pracę napędu w dużym obciążeniu bo przy nawrotach rzeczywista pozycja będzie daleka od wyliczonej, zależna od obciążenia a sterownik grbl o tym nie ma pojęcia. Dlatego na początku dobrze ustawić w napędzie serwo maksymalny błąd na wartość dość niską, dająca maksymalny akceptowalny błąd pozycji. Wtedy dopiero można sprawdzić jakie prędkości i przyspieszenia można ustawić aby sterownik serwo nie pracował z dużym błędem.

Awatar użytkownika

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

Re: Serwokrokowiec + GRBL = przestroga

#6

Post napisał: tuxcnc » 07 cze 2022, 21:27

drzasiek90 pisze:
07 cze 2022, 18:54
Doskonale rozumiem istotę problemu
Palnąłeś głupotę, a teraz odwracasz kota ogonem.
Przypomnę Ci twoje własne słowa:
drzasiek90 pisze:
07 cze 2022, 08:57
Chyba, że sam sterownik jest kiepskiej jakości i sam z siebie generuje duże opóźnienie.
Jest dokładnie odwrotnie - sterownik wysyła impulsy szybko i wyłącza napęd zanim ten osiągnie zadaną pozycję. To napęd się nie wyrabia względem sterownika, bo to nie jest możliwe.
Natomiast co do maksymalnego błędu, to mam ustawiony na 3,6 stopnia czyli 0,05 mm przy śrubie 1605. Akurat z zupełnie innego powodu. Fabrycznie jest ustawiane na 360 stopni, czyli 5 mm posuwu, co grozi połamaniem albo ukręceniem czegoś przy dzwonie, bo 3Nm to naprawdę sporo. Natomiast nie ma to żadnego związku z opisywanym problemem, bo wyłączony napęd nie robi niczego, więc też nie sprawdza pozycji i nie wylicza błędu, do zrozumienia czego nie potrzeba kończyć uniwersytetów.


drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 4
Posty: 1758
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: Serwokrokowiec + GRBL = przestroga

#7

Post napisał: drzasiek90 » 07 cze 2022, 21:39

Nic nie odwracam i nic nie palnalem. Doskonale wiem o czym mówię i wartość dynamicznego bledu odpracowania pozycji w serwonapedzie jest niesłychanie istotny. Jeśli sterownik generuje opóźnienia to pozycja odpracowania nawet bez obciążenia będzie dużo później niż pozycja zadana. I o te opóźnienia mi chodzi. Odwoływałem się do stwierdzenia, że na serwokrokowym w takim układzie mogłoby być dużo gorzej niż na krokowym i to wszystko. A nie powinno być dużo gorzej, bo w maszynie tego typu serwokrokowiec podczas pracy powinien pracować z dynamicznym błędem naprowadzania zbliżonym do 0.
Wiem o co chodzi z wyłączeniem sterownika zanim osiągnie pozycję ale wogole nie do tego się odnosiłem.
Tyle.

Awatar użytkownika

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

Re: Serwokrokowiec + GRBL = przestroga

#8

Post napisał: tuxcnc » 07 cze 2022, 21:46

drzasiek90 pisze:
07 cze 2022, 21:39
ale wogole nie do tego się odnosiłem
No właśnie - gadałeś nie na temat, więc od rzeczy.
A teraz weź już sobie odpuść.


drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 4
Posty: 1758
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: Serwokrokowiec + GRBL = przestroga

#9

Post napisał: drzasiek90 » 07 cze 2022, 21:49

Nie od rzeczy tylko prostowalem twoje stwierdzenie które było nie do końca zgodne z prawdą. Nie odpuszczam tylko powiedziałem co miałem powiedzieć i tyle, co do reszty się zgadzam. Temat dla mnie wyczerpany

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Serwomotory / Serwonapędy / Napędy Serwokrokowe”