jak zsynchronizować silniki krokowe w robocie

Jak zsynchronizować silniki krokowe w robocie?

Jak zsynchronizować silniki krokowe w robocie? Najpierw ustaw wspólne źródło sygnałów, potem zadbaj o sterowniki, zasilanie i identyczne parametry ruchu. Gdy pominiesz choć jeden z tych elementów, osie zaczną się rozjeżdżać albo gubić kroki. W tym artykule pokażę Ci praktyczny układ działania, który sprawdza się na hali i w prototypach.

Najważniejsze informacje z tego artykułu:

  • Synchronizacja wymaga jednego planu ruchu, a nie przypadkowego podawania impulsów na kilka osi.
  • Każdy silnik krokowy powinien dostać własny sterownik, jeśli chcesz utrzymać kontrolę nad prądem i ruchem.
  • Mikrokroki, prąd i przyspieszenie muszą być ustawione tak samo dla osi pracujących równolegle.
  • Zasilacz musi pokryć sumę prądów kilku napędów z zapasem na skoki obciążenia.
  • Kontrola enkoderem albo czujnikiem pozycji ogranicza ryzyko zgubionych kroków i błędu synchronizacji.

Jak zsynchronizować silniki krokowe w robocie?

Jak zsynchronizować silniki krokowe w robocie w praktyce? Każdy silnik prowadzi się przez osobny sterownik, a sygnały STEP i DIR generuje jeden mikrokontroler albo kontroler ruchu. Wtedy wszystkie osie dostają wspólną bazę czasową, a każda zachowuje własną regulację prądu, mikrokroku i zabezpieczeń. To właśnie taki układ najstabilniej pracuje w robotach wieloosiowych, chwytakach, osiach liniowych i konstrukcjach z dwiema śrubami na jednej belce.

Silnik krokowy z natury pracuje synchronicznie, bo wirnik ustawia się zgodnie z polem magnetycznym stojana. Dzięki temu układ potrafi pozycjonować oś bardzo precyzyjnie nawet bez enkodera. W dobrych napędach dokładność pozycjonowania zwykle mieści się w granicach 3–5% pojedynczego kroku, a ten błąd nie narasta z kroku na krok. To dobra wiadomość, ale tylko pod warunkiem, że mechanika i sterowanie nie doprowadzą do zgubienia kroków.

W praktyce zaczynam od mechaniki, bo to ona najczęściej psuje synchronizację. Gdy prowadnice się klinują, sprzęgło ma bicie, a jedna strona bramy stawia większy opór, żaden kod nie utrzyma idealnego zgrania. W moich wdrożeniach najpierw sprawdzam ręczny przesuw, potem luzy i osiowość, a dopiero później ustawiam elektronikę.

Układ podłącz tak:

  • Podłącz mikrokontroler do sterowników przez sygnały STEP, DIR i ewentualnie EN.
  • Przypisz każdemu silnikowi osobny sterownik krokowy.
  • Połącz masy układów w jednym punkcie odniesienia.
  • Zasil sterowniki z jednego źródła o odpowiednim zapasie mocy.
  • Dodaj krańcówki lub enkodery, jeśli robot ma pracować długo albo pod zmiennym obciążeniem.

Równoczesny ruch kilku osi wymaga jednego planera ruchu, a nie kilku niezależnych pętli z opóźnieniami. Takie proste pętle wyglądają dobrze tylko przez chwilę. Potem wchodzą różnice czasu wykonania instrukcji, jitter timerów, obsługa komunikacji i nagle osie przestają startować dokładnie razem. W robotyce działa wspólny zegar logiczny dla wszystkich osi. Bez tego synchronizacja szybko się rozpada.

Przy trajektorii liniowej albo ruchu po łuku kontroler musi rozdzielać impulsy proporcjonalnie między osie w tej samej ramie czasowej. W prostszych układach wystarcza algorytm Bresenhama dla wielu osi. W bardziej wymagających konstrukcjach lepiej sprawdza się planner z look-ahead, który analizuje kolejne odcinki trajektorii z wyprzedzeniem i dobiera prędkość tak, aby ruch pozostał płynny na łączeniach segmentów. To robi różnicę. Szczególnie wtedy, gdy robot często zmienia kierunek.

ElementUstawienie do poprawnej synchronizacji
Źródło impulsówjeden mikrokontroler lub kontroler ruchu
Sterowanie silnikamiosobny sterownik dla każdej osi
Planowanie ruchuwspólny planer trajektorii
Parametry osi sprzężonychten sam mikrokrok, profil prędkości i przyspieszenie
Kontrola pozycjikrańcówki, bazowanie, opcjonalnie enkoder

Jakie połączenie sterowników i mikrokontrolera wybrać?

Najbezpieczniej wybiera się jeden mikrokontroler i osobne sterowniki dla każdego silnika. Taki schemat daje powtarzalność, upraszcza diagnostykę i pozwala osobno dobrać prąd fazowy do każdej osi. Gdy jedna oś zacznie się grzać albo zgubi kroki, od razu wiadomo, gdzie szukać przyczyny. Ja stosuję ten wariant zawsze, gdy robot ma więcej niż jedną oś roboczą albo gdy obciążenia nie są idealnie równe.

Warianty połączenia układu:

  • Jeden mikrokontroler i osobne sterowniki – najlepsze do większości robotów i układów prototypowych.
  • Jeden sterownik dla dwóch silników – sensowne tylko przy bardzo podobnym obciążeniu i wspólnej mechanice, bo oba silniki dostają wtedy ten sam prąd i tę samą dynamikę.
  • Kontroler ruchu z komunikacją przemysłową – dobre rozwiązanie do układów z EtherCAT, Modbus TCP/IP albo RS-485, gdy liczysz na stabilny czas reakcji i rozbudowę.
Może Cię zainteresować:  Jak zmniejszyć drgania w ramieniu robota?

Wspólny sterownik dla dwóch silników ma sens głównie wtedy, gdy oba napędy tworzą fizycznie jedną oś i pracują w niemal identycznych warunkach. Tak spotyka się czasem w bramach CNC. W robocie to układ bardziej ryzykowny. Wystarczy, że jedna strona dostanie większe tarcie albo lekki przekos, a różnica zacznie narastać. Najpierw słychać szarpanie, później geometria przestaje się zgadzać.

Dla układów bardziej rozbudowanych dobrze sprawdzają się sterowniki z komunikacją przemysłową i funkcjami automatycznego odzyskiwania synchronizmu. Część napędów potrafi pracować w pętli otwartej przy małej odchyłce pozycji, a po wykryciu większego błędu przechodzi w pętlę zamkniętą i koryguje położenie maksymalnym dostępnym momentem. To przydaje się tam, gdzie nie ma miejsca na utratę pozycji.

Sam mikrokontroler musi generować impulsy deterministycznie, czyli z powtarzalnym czasem. Dobrze wypadają platformy z timerami sprzętowymi, takie jak STM32, poprawnie skonfigurowane AVR albo gotowe kontrolery ruchu. Arduino także da się wykorzystać, ale w prostszych układach i po odciążeniu programu z komunikacji, logowania i innych zadań, które rozwalają timing.

Przy wyborze sterownika patrzyłbym na trzy parametry:

  • maksymalny prąd wyjściowy odpowiedni do silnika,
  • dostępny podział mikrokroku,
  • minimalne czasy sygnałów STEP i odstępy DIR-STEP zgodne z kartą katalogową.

Na rynku są sterowniki, które obsługują prąd do 4 A i podział kroku nawet do 1/64. To daje sporą swobodę przy strojeniu układu, ale sama możliwość ustawienia wysokiego mikrokroku nie gwarantuje jeszcze lepszej synchronizacji. O tym decyduje cały tor: mechanika, prąd, zasilanie i algorytm ruchu.

synchronizacja silników krokowych w robocie

Jak zaprogramować ruch wielu silników krokowych?

Ruch wielu silników krokowych programuje się z jednego planu trajektorii i jednego źródła czasu. Impulsów nie wysyła się po kolei w zwykłej pętli, bo wtedy druga oś zawsze rusza chwilę później. Przy małej prędkości tego nie widać. Przy większej już tak, i to bardzo. Program musi wyliczać czasy impulsów dla wszystkich osi równolegle.

Najprostszy model działania wygląda tak:

  1. Oblicz liczbę kroków dla każdej osi.
  2. Wyznacz oś dominującą, czyli tę z największą liczbą kroków.
  3. Ustal wspólny profil prędkości dla całego ruchu.
  4. Rozdziel impulsy na osie w odpowiednich proporcjach.
  5. Generuj STEP z timera, a nie z opóźnień programowych.

Własny firmware najczytelniej działa w podziale na dwie warstwy: planowanie ruchu i generator impulsów. Pierwsza warstwa liczy trajektorię, przyspieszenie i hamowanie. Druga tylko pilnuje czasu rzeczywistego. Taki podział chroni układ przed typowym błędem, kiedy zwykły zapis do UART albo obsługa komunikatu psuje odstępy między impulsami STEP.

W praktyce programowania wielu osi dobrze sprawdzają się:

  • biblioteki do sterowania wieloosiowego z obsługą przyspieszenia,
  • firmware CNC z plannerem look-ahead,
  • własny kod oparty na timerach sprzętowych i interpolacji liniowej.

Gdy robot ma poruszać się po linii prostej albo po łuku, kontroler musi utrzymać proporcję kroków między osiami w każdej chwili ruchu. Właśnie dlatego interpolacja ma tak duże znaczenie. Bez niej osie dojeżdżają do punktu końcowego, ale po drodze nie trzymają geometrii trajektorii.

Wskazówka: wszystkie impulsy STEP powinny wychodzić z jednego źródła czasowego. Mieszanie opóźnień programowych z przerwaniami prawie zawsze kończy się dryfem między osiami.

Przy bardziej wymagających aplikacjach przydają się osobne timery dla osi albo dedykowany hardware STEP/DIR. Taki układ ogranicza jitter i lepiej trzyma minimalny czas impulsu oraz odstęp między zmianą DIR a kolejnym STEP. Brzmi drobno? A właśnie takie drobiazgi potrafią rozbić synchronizację przy dużej prędkości.

Jak ustawić mikrokroki, żeby osie zachowały zgodność?

Mikrokroki muszą być identyczne na wszystkich osiach, które mają poruszać się razem. Przy różnym podziale kroku osie nadal będą reagować na polecenia, ale zmieni się rozdzielczość, liczba kroków na milimetr lub stopień oraz zachowanie przy małych ruchach. To prosta droga do różnicy pozycji.

Dobór mikrokroku wykonaj tak:

  • Ustaw ten sam podział na wszystkich sterownikach dla osi sprzężonych ruchowo.
  • Sprawdź, czy mikrokrok nie obniża zbytnio momentu przy niskiej prędkości.
  • Dobierz podział tak, by ruch był płynny, ale nie przesadnie miękki.
  • Zweryfikuj, czy mikrokroki zgadzają się z przeliczeniem kroków na milimetr lub stopień.
Może Cię zainteresować:  Jak ustawić PID w robocie mobilnym?

Zastosowanie mikrokroku zwiększa liczbę kroków na obrót, poprawia rozdzielczość pozycjonowania i ogranicza rezonanse mechaniczne. Dla silnika o kroku 1,8 stopnia pełny obrót daje 200 pełnych kroków. Przy podziale 1/16 robi się z tego 3200 mikrokroków na obrót. To poprawia płynność, ale jednocześnie podnosi wymagania wobec generatora impulsów i ustawienia prędkości.

W robotach zwykle najlepiej wypada środek, nie skrajność. Zbyt niski mikrokrok daje drgania i hałas. Zbyt wysoki bywa zdradliwy, bo układ wygląda na bardzo gładki, ale przy dużym obciążeniu łatwiej traci pewność startu. Dlatego po zmianie podziału zawsze sprawdzam rozruch pod realnym obciążeniem, a nie tylko ruch w powietrzu.

Jak dobrać zasilacz i prąd sterowników?

Zasilacz dobiera się do całego układu, a nie do jednego silnika z katalogu. Kilka silników krokowych pobiera prąd skokowo, szczególnie podczas rozpędzania i hamowania. Samo zsumowanie danych z tabliczek znamionowych często prowadzi do błędu, bo sterownik chopper steruje prądem fazowym inaczej niż zwykły zasilacz odbiera moc z wejścia.

Praktycznie sprawdzam to tak:

  • Zsumuj prąd ustawiony na sterownikach, a nie tylko dane z tabliczki silnika.
  • Dodaj zapas mocy dla jednoczesnego startu wszystkich osi.
  • Sprawdź, czy napięcie mieści się w zakresie sterowników.
  • Ustal chłodzenie zasilacza i sterowników przed długą pracą.

Dla orientacji można odnieść się do typowych parametrów małych napędów. W badaniach spotyka się na przykład hybrydowe silniki krokowe bipolarne o parametrach: krok 1,8 stopnia, prąd 0,5 A, napięcie 12 V, rezystancja 24 Ω i moment 0,29 Nm. Taki zestaw dobrze pokazuje, że nawet niewielki napęd wymaga poprawnego ustawienia prądu i zasilania, bo sam nominalny moment nie wystarczy, gdy mechanika stawia opór albo profil przyspieszenia jest zbyt agresywny.

Prąd na sterowniku ustawiam tak, aby silnik miał pewny moment, ale nie gotował się po kilkunastu minutach pracy. W mojej praktyce lepiej zacząć niżej i wykonać test pod obciążeniem niż od razu ustawić maksimum. Zbyt wysoki prąd podnosi temperaturę uzwojeń i sterownika, a wcale nie gwarantuje lepszej synchronizacji.

Dobrym sygnałem ostrzegawczym jest nierówna temperatura osi po pełnym cyklu. Gdy jeden napęd grzeje się wyraźnie mocniej, zwykle nie chodzi wyłącznie o elektronikę. Często winne są prowadnice, przekoszenie, źle ustawione sprzęgło albo inny opór po jednej stronie układu.

Co sprawdzićNa co zwrócić uwagę
Zasilaczsuma obciążeń osi i zapas na jednoczesny start
Prąd sterownikamoment wystarczający do pracy bez przegrzewania
Napięciezgodność z zakresem sterownika i charakterystyką napędu
Chłodzenietemperatura sterowników i silników po pełnym cyklu

Synchronizacja silników krokowych w robocie

Jak zapobiec gubieniu kroków i rozjechaniu osi?

Gubienie kroków najczęściej wynika z połączenia trzech problemów: za dużego przyspieszenia, zbyt dużego oporu mechanicznego i źle dobranego prądu. Samo podkręcenie sterownika rzadko pomaga. Czasem wręcz pogarsza sytuację, bo silnik zaczyna się mocniej grzać, a mechanika nadal stawia ten sam opór.

Sprawdź ten ciąg działań:

  1. Zmniejsz przyspieszenie i prędkość maksymalną.
  2. Sprawdź luz, tarcie i osiowość montażu.
  3. Zweryfikuj temperaturę sterowników i silników.
  4. Porównaj napięcie zasilania pod obciążeniem.
  5. Dodaj enkoder albo czujnik referencyjny, jeśli aplikacja tego wymaga.

W systemach bardziej wymagających dobrze działa kontrola zamknięta. Enkoder mierzy rzeczywiste położenie wału, a sterownik porównuje je z pozycją zadaną. Gdy różnica rośnie, układ koryguje błąd. Są też napędy, które automatycznie przełączają się między pętlą otwartą i zamkniętą zależnie od odchyłki pozycji. To bardzo praktyczne rozwiązanie przy zmiennym obciążeniu.

Część nowoczesnych sterowników oferuje sensorless stall detection, czyli wykrywanie przeciążenia lub zatrzymania bez osobnego czujnika, oraz adaptacyjną regulację prądu. Taki sterownik dynamicznie dopasowuje prąd do obciążenia, ogranicza nagrzewanie i pomaga utrzymać stabilną pracę. Nie zastąpi to dobrej mechaniki, ale bywa bardzo pomocne.

Wskazówka: gdy robot ma wracać do tej samej pozycji po każdym cyklu, bazowanie z dojazdem dwustopniowym daje lepszą powtarzalność niż pojedyncze uderzenie w krańcówkę.

Przy bazowaniu dobrze sprawdzają się czujniki optyczne albo indukcyjne oraz drugi, wolniejszy dojazd po odbiciu od krańcówki. Taki manewr ogranicza wpływ histerezy, czyli różnicy położenia wynikającej z luzów i sprężystości mechaniki. Niby mały detal, a w praktyce bardzo poprawia zgodność osi po wielu cyklach.

Może Cię zainteresować:  Jak skalibrować serwomechanizm w robocie?

Jak sprawdzić, czy synchronizacja działa poprawnie?

Synchronizacja działa poprawnie wtedy, gdy osie ruszają razem, kończą ruch razem i po kilku cyklach nadal zachowują tę samą wzajemną pozycję. Sam płynny dźwięk pracy niczego jeszcze nie dowodzi. Układ może brzmieć dobrze, a mimo to powoli tracić geometrię.

Wykonaj tę procedurę:

  1. Oznacz punkt referencyjny na każdej osi.
  2. Uruchom ruch bez obciążenia.
  3. Powtórz ten sam ruch pod obciążeniem.
  4. Sprawdź, czy znaki referencyjne nadal pokrywają się po cyklu.
  5. Porównaj temperaturę, hałas i drgania między osiami.

Do szybkiej diagnostyki obserwuję trzy objawy:

  • narastającą różnicę pozycji między osiami,
  • stukanie albo szarpanie przy starcie,
  • wyraźnie większe grzanie jednego sterownika lub silnika.

Dobry wynik to taki, w którym powtarzalność po kilku cyklach mieści się w tolerancji mechanicznej robota, a silniki nie tracą kroku przy zmianie obciążenia. To właśnie odróżnia układ gotowy do pracy od wersji, która działa tylko na stole laboratoryjnym.

Jakie błędy pojawiają się najczęściej?

Najczęściej psuje się nie sam algorytm, tylko zestaw drobnych decyzji przy montażu, okablowaniu i ustawieniach. Widziałem wiele układów, w których kod był poprawny, a mimo to osie nie trzymały synchronizacji, bo sprzęgło miało luz, jedna prowadnica pracowała ciężej albo sterownik dostał zbyt agresywny profil przyspieszenia.

Najczęstsze błędy przy synchronizacji:

  • Użycie jednego sterownika do dwóch silników o różnym obciążeniu.
  • Brak osobnych timerów lub przerwań dla osi.
  • Za wysokie przyspieszenie przy ciężkiej mechanice.
  • Różne ustawienia mikrokroku na sterownikach.
  • Zbyt mały zapas mocy zasilacza.

Często dochodzi jeszcze jeden błąd: projekt wygląda poprawnie elektrycznie, ale nikt nie sprawdza minimalnego czasu impulsu STEP i wymaganego odstępu po zmianie DIR. A sterownik tego pilnuje bez litości. Na papierze wszystko się zgadza, w praktyce część impulsów przepada.

Gdy chcę uniknąć takich problemów, patrzę na układ jak integrator całego systemu. Czas odniesienia musi być wspólny, mechanika ma poruszać się lekko i powtarzalnie, zasilanie ma zachowywać stabilność pod obciążeniem, a program ma generować impulsy bez jitteru. Dopiero wtedy strojenie ma sens.

Podsumowanie

Synchronizacja silników krokowych w robocie wymaga jednego planu ruchu, osobnych sterowników dla osi i poprawnie dobranego zasilania. Najlepiej działa układ, w którym mikrokontroler generuje zsynchronizowane impulsy STEP i DIR, a sterowniki mają te same ustawienia prądu oraz mikrokroku. Jeśli dołożysz kontrolę mechaniki, bazowanie i testy pod obciążeniem, łatwiej utrzymasz stabilny ruch przez długi czas. Tak właśnie podchodzę do tematu, gdy wdrażam układy w praktyce.

Jeśli chcesz, mogę od razu rozpisać Ci przykładowy schemat połączeń i prosty kod dla Arduino, STM32 albo innego mikrokontrolera.

FAQ

Q: Czy dwa silniki krokowe mogą pracować na jednym sygnale STEP?

A: Tak, ale tylko wtedy, gdy oba napędy mają identyczne warunki pracy i są sterowane przez osobne drivery. W robotyce bezpieczniej jest prowadzić je z jednego kontrolera, lecz przez oddzielne sterowniki.

Q: Czy do synchronizacji potrzebuję enkoderów?

A: Nie zawsze. Do prostych układów wystarczy sterowanie otwarte. Jeśli jednak robot pracuje z dużym obciążeniem albo nie możesz dopuścić do zgubienia pozycji, enkodery bardzo pomagają.

Q: Czy mogę łączyć silniki krokowe równolegle do jednego drivera?

A: Technicznie czasem się da, ale zwykle nie polecam tego w robocie. Jeden sterownik nie skoryguje różnic między silnikami i trudniej będzie utrzymać powtarzalność ruchu.

Q: Jaką rolę ma mikrokrok przy synchronizacji?

A: Mikrokrok poprawia płynność ruchu i zmniejsza drgania, ale wymaga identycznych ustawień na wszystkich osiach. Przy różnym podziale kroku łatwiej o rozjazd precyzji.

Q: Czy EtherCAT ma przewagę nad zwykłymi sygnałami STEP/DIR?

A: Tak, gdy układ jest większy lub wymaga ścisłej synchronizacji w czasie rzeczywistym. EtherCAT ułatwia koordynację wielu osi, ale podnosi koszt i złożoność projektu.

Weryfikacja i redakcja

Za redakcję i weryfikację artykułu odpowiadają:

Joanna Lewandowska

Joanna Lewandowska. Specjalistka ds. automatyki i integracji. Absolwentka kierunku Automatyka i Robotyka na Akademii Górniczo-Hutniczej im. Stanisława Staszica w Krakowie.

Piotr Woźniak

Piotr Woźniak. Doświadczony redaktor technologiczny. Absolwent kierunku Dziennikarstwo i Komunikacja Społeczna na Uniwersytecie Warszawskim.

Marek Zieliński

Od początku kariery zajmuje się uruchamianiem i usprawnianiem stanowisk zautomatyzowanych w środowisku produkcyjnym. Pracował przy wdrożeniach obejmujących integrację robotów, konfigurację logiki pracy oraz optymalizację przepływu procesu po uruchomieniu stanowiska. Najlepiej odnajduje się tam, gdzie potrzebne jest połączenie wiedzy technicznej z praktycznym zrozumieniem realiów hali produkcyjnej.

Opublikuj komentarz