Kolego, również mam śruby trapezowe, ale maszyna praktycznie nie ma drgań (tylko przy prędkości 1mm/s ale to same silniki warczą i się trzęsą).
Zrobiłem takie małe doświadczenie, i na chwilę zmieniłem podział kroków z 32 na 4 i maszyna przy każdej prędkości trzepała się jak by się miała rozlecieć. Może w tym tkwi problem u Ciebie ?
Co to oznacza? Ano tyle, że jeśli suma momentu obciążenia + tarcia silnika + momentu zaczepienia silnika jest większa od moment pojedynczego mikrokroku, to silnik się nie obróci, póki nie skumuluje momentu z kilku(-nastu) kolejnych mikrokroków. Inaczej pisząc zgubi kroki, jak są za małe...
Moje subiektywne odczucie jest takie że im więcej mikrokoków, tym silniki mają większy moment.... Nawet chodzą mi na wyższej prędkości. Czy jesteś przekonany że tak jest ?
Moje silniki chodzą bez problemu na 20mm/s przy podziale 32. Gdy zmieniłem na 2 nie chciały iść nawet na 13mm/s tylko co chwilę się zatrzymywały.
Tak na moją logikę (jak widać jestem w błędzie), myślałem że im więcej mikrokroków, tym więcej jakby "punktów" trzymania przez co płynniejsza praca i lepszy moment. Może kolega jeszcze raz to przeanalizować i mi wyjaśnić ?
Co to oznacza? Ano tyle, że jeśli suma momentu obciążenia + tarcia silnika + momentu zaczepienia silnika jest większa od moment pojedynczego mikrokroku, to silnik się nie obróci, póki nie skumuluje momentu z kilku(-nastu) kolejnych mikrokroków. Inaczej pisząc zgubi kroki, jak są za małe...
elektronockaut wrote:
Tak na moją logikę (jak widać jestem w błędzie), myślałem że im więcej mikrokroków, tym więcej jakby "punktów" trzymania przez co płynniejsza praca i lepszy moment. Może kolega jeszcze raz to przeanalizować i mi wyjaśnić ?
Mówiąc po chłopsku zbyt małe kroki będą amortyzowane przez co mogą być gubione. ( im mniejsze kroki, tym większa siła, ale mniejszy moment)
To nie jest jakiś mój wymysł tylko obiektywne fakty - tak działają silniki krokowe i mikrokroki. Zaletą mikrokroków jest redukcja hałasu i płynniejsza praca i teoretycznie większa rozdzielczość, wadą jest redukcja momentu obrotowego i trzymającego oraz większa szansa na utratę pozycji, a co za tym idzie i dokładności, szczególnie przy zmianie kierunku ruchu...
O tym wszystkim możesz się przekonać mocując silnik do blatu, zakładając na oś dźwignię i sprawdzając, jak dużo siły potrzeba, by go zatrzymać przy różnej liczbie mikrokroków na krok...
Hmmm... To mnie zaskoczyło. Jak najbardziej wierzę, ale w celach czysto doświadczalnych poszukam jakiegoś silnika i zrobię test. U ciebie silnik pracuje 1:1 bez miktrokroków?
Dodano po 2 [minuty]:
Jak wyjaśnić to że na polkrokach ledwo mam 13mm/s a na dzielnych przez 32 leci 20mm/s?
Hmmm... To mnie zaskoczyło. Jak najbardziej wierzę, ale w celach czysto doświadczalnych poszukam jakiegoś silnika i zrobię test. U ciebie silnik pracuje 1:1 bez miktrokroków?
elektronockaut wrote:
Jak wyjaśnić to że na polkrokach ledwo mam 13mm/s a na dzielnych przez 32 leci 20mm/s?
Może silnik nie ma mocy by wyciągnąć większy moment ?
Interesujący program ze względu na malutkie wymagania sprzętowe. Kiedyś przetestuję. Nawet stare i "wolne" komputery z DOS uruchamiają się bardzo szybko w porównaniu do dużo szybszych maszyn obciążonych dużo nowszymi systemami , co jest kolejną zaletą. A teraz może trochę się czepię, ale...
elektronockaut wrote:
W systemie DOS jest około 20 przerywań.
elektronockaut wrote:
W systemie Windows przerywań jest bardzo dużo
elektronockaut wrote:
listę procesów pracujących w przerywaniach
Te "przerywania" trochę kłują w oczy. Przerwania!
elektronockaut wrote:
Laicy nie zdają sobie sprawy z tego jak ważne jest połączenie portu LPT ze sterownikami silników. Rozwiązaniem idealnym jest brak kabla LPT, czyli płytka rozdzielająca poszczególne sygnały wsunięta bezpośrednio w port LPT komputera.
Dziwne - u mnie* działa bezbłędnie na 2m przewodzie. Można się pozbywać przewodu albo można sprytnie odfiltrować zakłócenia w "płytce rozdzielającej sygnały". O ile gotowe płytki tego typu faktycznie mogą mieć z tym problem, bo są obrzydliwie prymitywne (i drogie), o tyle projektując coś własnego warto zadbać o regenerację sygnałów. Dziwi mnie, że miliony maszyn biurowych mających w sobie silniki krokowe codziennie działają bez potknięć, a te same silniki w amatorskich CNC zaraz gubią kroki i trzeba je okładać enkoderami
*co prawda mam maszynę na serwach, ale bez filtrowania zakłóceń również sporadycznie pojawiały się niechciane przeskoki.
ArturAVS wrote:
Urgon wrote:
Niestety, serwonapędy są trochę zbyt kosztowne dla amatora...
Potwierdzam, powstały co prawda amatorskie konstrukcje bazujące na silnikach DC z enkoderami, jednak ich zastosowanie jest marginalne.
A tam kosztowne. Jak budowałem swoją maszynę, to wyszło taniej niż zakup samych silników krokowych. Marginalność zastosowania układów serwo wynika chyba za strachu przed nieznanym i ślepego kopiowania konstrukcji na krokowcach, w których poza ustawieniem prądu nie trzeba niczego stroić. No i z powszechnej opinii, że serwo musi być drogie
@urgon Ejj no bez przesady gdybym nie przedstawiał to przecież bym wymiary stracił. Pierwsze przedstawiam w driverze, później w programie, a później czujnik zegarowy i drobna korekcja tego co wpisałem.
Regulacja maszyny na krokowcach to nie tylko regulacja prądu i mikrokroków. To też ustalanie maksymalnej prędkości, przyspieszenia, hamowania, w niektórych przypadkach też częstotliwości maksymalnej sygnałów STEP, etc. Moja pierwsza frezarka CNC, 3018 na ramie z profili i ze sterownikiem GRBL + A4988 miała właśnie ten problem, że nikt jej dobrze nie wyregulował, przez co kwadraty były prostokątne, kółka jajowate, a pozycja gubiła się przy każdym szybszym ruchu. Wymieniłem sterowniki na DRV8825, zmodyfikowałem zasilanie, zmieniłem osadę wrzeciona by pasował pseudodremel z Biedry, podniosłem napięcie zasilania silników dwukrotnie i wymieniłem wałki osi Z (oryginalne miały rysy jak kaniony). Dało się tym pracować, choć prędkość i głębokość frezowania tyłka nie urywały. A potem sprzedałem, bo zdobyłem lepszą 3020 na ramie z płyt aluminiowych i ceowników stalowych...
Zastanawiam się nad jedną rzeczą. Nie mam problemów ani z szybkimi zmianami kierunku, ani też z nawrotami mimo mikrokroków 1/32, ale zacząłem zastanawiać się nad osią Z. Wiadomo - jest najcięższa. Może warto by było gdybym zrezygnował z mikrokroków na tej osi, i sterował ją bez mikrokroków 1:1?
Czy jesteś absolutnie pewny tego co przedstawiłeś w tabelce?
Gdzie odnalazłeś te dane? może policzyłeś je samodzielnie wedle jakiegoś wzoru?
Co sądzisz o całkowitej rezygnacji z mikrokroków, i półkroków na osi Z?
Miało by to jakiś sens?
Te dane znalazłem w dwóch różnych źródłach. Jestem ich pewny. Co do osi Z, to nie musisz rezygnować całkowicie z mikrokroków, tylko zastanowić się, ile ich potrzebujesz tak naprawdę. Dla przykładu w tej pierwszej mojej maszynie silniki miały 200 krokow na obrót, a śruby trapezowe zaś skok 4mm/obr. Przy pełnych krokach to daje 50kr/mm czyli rozdzielczość 0,02mm. Przy ustawieniu 16 mikrokroków na krok rozdzielczość wynosiła 0,00125mm. Sama mechaniczna konstrukcja całkowicie wykluczała taki wynik, choćby ze względu na luzy na śrubach trapezowych, których nie da się kompletnie wyeliminować. Ale przy 4 mikrokrokach 0,005mm rozdzielczości to niezły kompromis między precyzją, momentem obrotowym i hałasem generowanym przez maszynę. Muszę sprawdzić, jak ustawiona jest moja bieżąca maszyna, bo 0,005mm to jest jej katalogowa precyzja mechaniczna wynikająca z właściwości mechanicznych napędu. Sensownie by było mieć taką samą rozdzielczość krokową...
Witam, Ta tabelka w poście #45 to nie z maszyny tylko z programu GRBL sterującego maszyną (w tym konkretnym przypadku Laser GRBL). Ten program można sobie zainstalować i poeksperymentować.
Jestem w trakcie budowy przecinarki plazmowej, którą próbuję sterować różnymi programami (od LinuxCNC po LPT do darmowych GRBL po USB). Z mojego doświadczenia wynika, że najistotniejsze to dobry zasilacz na rdzeniu toroidalnym oraz nieprzekraczanie dopuszczalnych prądów silników krokowych. A konstrukcja maszyny i sposób przenoszenia napędu narzuca ustawienie odpowiednich ramp (przyspieszeń silników) $120, 121 i 122 w załączonej tabeli. Mogę jednoznacznie powiedzieć, że uzyskanie stabilnej i cichej pracy silników (przy mikrokroku 8 zapewniającym odpowiedni moment obrotowy i dokładność mojej maszyny) mnie udaje się uzyskać do 5 obr/s co w większości przypadków jest wystarczające. Można sobie policzyć jakie prędkości liniowe uzyskuje się przy tej prędkości obrotowej przy napędzie paskiem zębatym osi x i Y (koło zębate silnika krokowego około 20-24 zęby, pasek M2) oraz osi z przy napędzie śrubowym (najczęściej bezpośredni napęd śruby o skoku 2-4 mm/obr)
Dodano po 5 [minuty]:
To wszystko przy częstotliwościach sterowania STEP na poszczególnych osiach w granicach do 20kHz co nie stanowi problemu nawet dla Arduino, które po USB jest sterowane z GRBL.
Dodano po 2 [minuty]:
Wracając do tematu czyli CNCGRAF DOS, od którego w tej dyskusji odeszliśmy to jak będę miał czas to się nim zajmę.
Te dane znalazłem w dwóch różnych źródłach. Jestem ich pewny.
Fajnie, a jakie to źródła? W jaki sposób był w nich zdefiniowany moment trzymający?
Urgon wrote:
jeśli suma momentu obciążenia + tarcia silnika + momentu zaczepienia silnika jest większa od moment pojedynczego mikrokroku, to silnik się nie obróci, póki nie skumuluje momentu z kilku(-nastu) kolejnych mikrokroków. Inaczej pisząc zgubi kroki, jak są za małe...
Pierwsze zdanie - racja. Drugie - nie. Gdy silnik skumuluje moment z tych kilku mikrokroków, błąd pozycjonowania wróci do 0. Zgubienie kroków jest wtedy, kiedy wirnik przeskoczy o kąt odpowiadający jednemu okresowi sygnałów sterujących (zwykle 4 kroki bez podziału). Wtedy błąd pozycji jest już nie do skorygowania bez jakiegoś czujnika.
Wracając do tematu czyli CNCGRAF DOS, od którego w tej dyskusji odeszliśmy to jak będę miał czas to się nim zajmę.
Niestety CNCGRAFa do plazmy nie zaprzęgniesz. Jest on napisany typowo pod frezarki CNC, i nie potrafi sterować załączaniem i wyłączaniem lasera czy plazmy, ani robić jakichś dojazdów żeby złapać łuk (tak jest w plaźmie?).
Gizmoń wrote:
Pierwsze zdanie - racja. Drugie - nie. Gdy silnik skumuluje moment z tych kilku mikrokroków, błąd pozycjonowania wróci do 0. Zgubienie kroków jest wtedy, kiedy wirnik przeskoczy o kąt odpowiadający jednemu okresowi sygnałów sterujących (zwykle 4 kroki bez podziału). Wtedy błąd pozycji jest już nie do skorygowania bez jakiegoś czujnika.
Czyli nie ma to znaczenia ile jest mikrokroków tak ? (tak jak pisałem wyżej tak na czucie trzymając sprzęgiełko w palcach, czy patrząc na prędkości ja nie zauważyłem spadku momentu. Chyba że traciły się same mikrokroki? - to tylko moje odczucie.
Odnośnie g... burzy na temat USB chciałbym wtrącić swoje trzy grosze.
USB jest magistralą punk-wielopunkt i nie mogą urządzenia komunikować się jednocześnie. Przy czym komputery najczęściej mają wewnątrz huby - czyli mamy do dyspozycji 5 portów, ale wewnętrznie one są podłączone za pomocą koncentratora do jednego kontrolera. Do tego dochodzi konieczeność obsługi urządzeń o różnej prędkości - wersje USB 1.0, 1.1, 2.0, 3.0.
W przypadku obsługi urządzeń wyposażonych bufory jak drukarki, pamięci przenośne itp nie ma problemu.
Jednak port LPT podłączany przez USB bufora nie posiada, zresztą po co.
Teraz wystarczy sobie wyobrazić, że konwerter USB-LPT jest podłączony do jednego huba z pendrivem. Jeśli w trakcie pracy obrabiarki dojdzie do zablokowania na kilka milisekund magistrali (bo np doczytujemy dane z pendrive) to już może mieć wpływ na końcowy rezultat pracy. Jeśli dojdą do tego potencjalne problemy z działaniem któregoś urządzenia USB jest szansa, że magistra zablokuje się na dłuższą chwilę.
Ominąłem brak obsługi wynalazków typu DMA - co powoduje, że każda operacja musi być bezpośrednio przez procesor obsłużona - włącznie z ruchem myszy.
@Gizmoń Oto jedno ze źródeł(PDF): https://www.micromo.com/media/wysiwyg/Technical-library/Stepper/6_Microstepping%20WP.pdf Załóżmy sytuację, że mamy 800 mikrokroków na milimetr. Jak w mojej pierwszej frezarce przed modyfikacją. Na to by faktyczny ruch nastąpił trzeba skumulować przynajmniej 41 kroki. Zatem przy ruchu o 0,1mm faktycznie maszyna wykona ruch o 0,5mm. Przy zmianie i ruchu o -0,2mm maszyna faktycznie wykona ruch o -0,1mm. A ilość potrzebnych mikrokroków na dokonanie faktycznego ruchu będzie się cały czas zmieniała zależnie od tego, jak mocno frez ścina materiał, od tego czy twardość materiału się zmienia (cięcie w drewnie dla przykładu), czy choćby od tego, czy drobiny drewna dostaną się na osie ślizgowe czy śrubę trapezową. Nie neguję zalet mikrokroków, ale wymogiem podstawowym jest to, by silnik nawet dla pojedynczego miał dość mocy by ten mikrokrok wykonać, inaczej dokładność pójdzie się gwizdać przy bardziej złożonych ruchach...
Jedynym dobrym rozwiązaniem byłoby dodanie enkoderów by kontroler wiedział czy ruch faktycznie się dokonał, czy też trzeba dodać dodatkowe impulsy. Ale jak iść tą drogą, to równie dobrze można kupić serwomotory i mieć cały problem z głowy...
Co do komunikacji USB, to jeśli połączenie jest pewne, to nie powinno być żadnych problemów, chyba że ktoś w tle przerzuca dane z jednego pendrive'a na drugiego albo robi coś równie zasobożernego. Co ciekawe, GRBL i bCNC sygnalizują sobie nawzajem, czy komunikacja przebiega prawidłowo, zwłaszcza że GRBL jest sterowany G-kodem. W razie przerwania połączenia maszyna wykona ostatnie polecenie i będzie czekać na kolejne. Niestety, Mach3 i kontroler w mojej maszynie są mniej bystre i w razie problemów z połączeniem maszyna nie wykona ruchu, ale Mach3 będzie uważać, że ruch został wykonany. Stąd moje problemy z nietrafionymi otworami...
Dlatego przy sterowaniu kontrolera obsługującego G-code poprzez usb raczej nie zdołamy odczuć problemów. Co innego sterowanie bezpośrednie sterownikiem silnika. Przykładowo przy 800 mikrokrokach na 1mm musisz podać komendę do sterownika co 8ms aby oś pokonała ten dystans w jedną sekundę, a gdybyś chciał przesunąć oś o 10mm w sekundę?
Minimalne opóźnienia które się pojawią bo komputer przez moment coś tam innego przesłał po USB, wydają się nabierać znaczenia.
GRBL i bCNC sygnalizują sobie nawzajem, czy komunikacja przebiega prawidłowo, zwłaszcza że GRBL jest sterowany G-kodem. W razie przerwania połączenia maszyna wykona ostatnie polecenie i będzie czekać na kolejne. Niestety, Mach3 i kontroler w mojej maszynie są mniej bystre i w razie problemów z połączeniem maszyna nie wykona ruchu, ale Mach3 będzie uważać, że ruch został wykonany.
I tu widać przewagę kontrolera sprzętowego nad programowym. Chwalony pod niebiosa MACH3 się pogubi, a GRBL się zatrzyma. Laser GRBL zwiesił mi transmisję kilka razy przez kiepski kabel USB, przywrócenie połączenia i wznowienie pracy od zatrzymania uruchomiło dalej wypalanie bez "rozjazdów".
bobycob wrote:
Minimalne opóźnienia które się pojawią bo komputer przez moment coś tam innego przesłał po USB, wydają się nabierać znaczenia.
Dlatego maszyny obsługujące CNC robią tylko to. Bo np. sterowanie frezarką, słuchanie muzyki i przeglądanie www jednocześnie to nieporozumienie. Próbowałem, GRBL daje radę, MACH i LinuxCNC potrafią się pogubić. Jednak dedykowany komputer tylko do obsługi maszyny to podstawa.
Dlatego ten chiński kontroler ma specjalny sterownik, który prawdopodobnie wysyła polecenia w formie "wykonaj X, Y, Z kroków z prędkością A, B, C", tyle że w formie pojedynczego pakietu bajtów, a nie całej linijki G-kodu czy serii poleceń STEP/DIR...
@ArturAVS To też kwestia specyfikacji komputera - mocniejsze sprzęty lepiej sobie radzą z wielozadaniowością. Swoją szosą nie widzę słuchania muzyki czy oglądania czegokolwiek obok pracującej frezarki CNC bez solidnej, dźwiękochłonnej zabudowy.
Sam Mach3 to bardzo lekki program właśnie po to by działać sprawnie na starym sprzęcie...
Z mojego doświadczenia wynika, że najistotniejsze to dobry zasilacz na rdzeniu toroidalnym
Też zauważyłem że maszyna pracuje zupełnie inaczej, ale obecnie mam zasilacz impulsowy (niestety).
Zastanawiam się czy by nie zrobić takiej małej baterii kondensatorów, która ładowała by się przez rezystor, a gdy naładuje się do "prawie" pełna to dołączy się na sztywno w tor zasilający. Co myślisz o takim rozwiązaniu, i jego sensie bytu ?
Zastanawiam się czy by nie zrobić takiej małej baterii kondensatorów, która ładowała by się przez rezystor, a gdy naładuje się do "prawie" pełna to dołączy się na sztywno w tor zasilający. Co myślisz o takim rozwiązaniu, i jego sensie bytu ?
1) To zależy od ograniczenia prądowego zasilacza w impulsach, oraz histerezy PWM. (dokładasz sporą pojemność)
2) rezystor 100R ? za duży, z powodzeniem możesz dać mniejszy, albo w ogóle nie potrzebny (wszystko zależy od zasilacza)
3) Tranzystor przełączający układ jest w zasadzie nie potrzebny o ile ma to być wartość w granicach 17-18V (cewka przekaźnika sama z siebie zrobi robotę). A jeżeli już, to lepszy jest jakiś układ opóźniający.
Sumując, dołożenie takiej pojemności na pewno da spory efekt w przypadku konwencjonalnego trafo, a co do zasilacza impulsowego ?, trzeba przeanalizować, a najlepiej sprawdzić efekt dla mniejszej pojemności (przynajmniej na początku)