Serwokrokowiec + GRBL = przestroga
: 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ę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.
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
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.