Interfejs równoległy w sterownikach silników krokowych

Silniki krokowe, ze względu na łatwość pozycjonowania rotora są jednymi z najchętniej stosowanych napędów – od przemysłu, przez robotykę, po rozwiązania amatorskie/edukacyjne. Tym samym, nie dziwi mnogość, dostępnych na rynku, sterowników zarządzających pracą tego typu aktuatorów. Znajdziemy rozwiązania specjalistyczne dla automatyzacji przemysłu, jak i miniaturowe, szeroko stosowane przez fanów robotyki.

Interfejs równoległy

Bez względu na to, czy stosujemy sterowniki o wysokim stopniu integracji (w postaci chip’ów, zawierających w sobie dwa, pełne mostki H oraz logikę kontrolną), czy też płyt sterujących (opartych na mikrokontrolerze, specjalizowanych układach sterujących przepływem prądu oraz tranzystorach mocy) większość z nich obsługuje interfejs równoległy, jako jeden z możliwych kanałów komunikacyjnych. Mamy do dyspozycji dwa jego typy:

  • Pierwszy z nich, oparty jest na parze sygnałów zegar/kierunek oraz na informacji o podziale kroku na n mikrokroków (informacja ta kodowana jest najczęściej 3 bitami). Zbocze narastające zegara określa moment wykonania kroku/mikrokroku. Jest to, praktycznie jedyna dostępna forma interfejsu równoległego dla przemysłowych płyt sterujących,
  • Drugi typ, oparty jest na parze sygnałów zegarowych przesuniętych w fazie, określających kierunki przepływu prądu przez poszczególne uzwojenia, oraz na informacji o poziomie prądu płynącego przez dane uzwojenie (informacja ta, w postaci napięcia odniesienia, pobierana jest z wyjścia wbudowanego/zewnętrznego przetwornika cyfrowo-analogowego <DAC>. Mikrokrokowość uzyskuje się poprzez płynną zmianę napięcia odniesienia dla poszczególnych uzwojeń. Im większy podział kroku chcemy uzyskać, tym DAC z którego korzystamy musi być większej rozdzielczości, a więc będzie wymagać dłuższej liczby binarnej do jego wysterowania.).

Przykładowe realizacje dla sterowników o dużym stopniu integracji:

STSPIN820:

  • zegar/kierunek (STCK/DIR),
  • podział na n mikrokroków kodowany 3 bitowym słowem (MODE1/MODE2/MODE3).

L6258:

  • 2x zegar (PH_1/PH_2),
  • Wbudowany 2 kanałowy 4 bitowy DAC.

Opis przypadku

Pytanie brzmi: którą z powyższych metod wybrać, w przypadku, gdy istotnym założeniem projektu maszyny współrzędnościowej jest redukcja liczby składowych komponentów, a tym samym obniżenie kosztu produkcji oraz ograniczenie jej awaryjności (im mniej elementów, tym mniej rzeczy może się popsuć)? Jest to istotne pytanie, zwłaszcza dla rozwiązań niskobudżetowych oraz amatorskich.

Co lepsze?

W różnego rodzaju rozwiązaniach dostępnych na rynku zdecydowanie częściej możemy się natknąć na wysterowanie zegar/kierunek. I, o ile, jest ono prostsze w kontekście późniejszej realizacji firmware’u dla mikrokontrolera, o tyle ma pewną wadę (zwłaszcza jeżeli głównym założeniem projektu jest obniżenie kosztu). Żeby ją lepiej zobrazować, trzeba wspomnieć o dwóch charakterystycznych cechach silnika krokowego:

  • może pracować w otwartej pętli sprzężenia zwrotnego,
  • po wyłączenie zasilania istnieje pewien moment trzymający rotor.

Z punktu widzenia konstruktora sterowników maszyn współrzędnościowych, powyższe cechy są zaletami:

  • Po pierwsze, nie ma potrzeby stosowania enkoderów, czy też liniałów (oczywiście pod warunkiem, że ufamy mechanice i mamy pewność, że nie nastąpi w trakcie pracy silnika jego przeciążenie, co skutkować będzie „pogubieniem” kroków. Jeżeli nie mamy tej pewności, enkoder do kontroli realizacji kroku, bądź liniał do sprawdzenia pozycji napędzanego wózka, z pewnością by się przydał.),
  • Po drugie, nie ma potrzeby stosowania hamulców blokujących rotor silnika po zaniku zasilania, ani też zjeżdżania na punkty referencyjne po włączeniu maszyny. Jeżeli tylko, śruby są samohamowne i nikt na wyłączonym urządzeniu, „ręcznie” ich nie przekręci, to po ponownym rozruchu, maszyna „będzie wiedziała” gdzie jest – wystarczy, przed zanikiem zasilnia, zapamiętać „stan”, a następnie go przywrócić, a więc ustalić kierunki przepływu prądu oraz poziom tego prądu dla poszczególnych uzwojeń po jego ponownym pojawieniu się. (W przypadku maszyn współrzędnościowych takich jak frezarki/tokarki, w których najczęściej stosowane są enkodery/liniały inkrementalne, zjazd na krańcówki ma za zadanie wyznaczyć punkty referencyjne. A więc określić, gdzie dla maszyny, znajduje się początek układu współrzędnych względem, którego następuje pozycjonowanie wózka. Proces ten należy przeprowadzić każdorazowo po uruchomieniu maszyny. Nie muszę chyba dodawać, że powtarzalność tej operacji jest bardzo istotna i najczęściej wymaga stosowania wysokiej klasy czujników krańcowych.).

I tu tkwi problem…jak przywrócić „stan” dla wysterowania zegar/kierunek? Standardowo dla układów z tym typem interfejsu równoległego przywracany jest „stan” domyślny (ściśle określona wartość prądu oraz jego kierunek przepływu przez poszczególne uzwojenie), a więc w najgorszym przypadku, po ponownym podaniu zasilania stracimy dwa pełne kroki. Nie mamy możliwości zapamiętać informacji, w którą „stronę” zasilane były uzwojenia i jak dużym prądem. Mały to problem, jeżeli w układzie napędowym (bez przekładni) mamy śrubę o małym skoku np. 1mm. Przy liczbie 200 kroków na obrót, grozi nam utrata, 0,01 w pozycjonowaniu stolika. Gorsza sprawa jeżeli mamy śrubę o skoku 16mm. Wówczas możemy się „pogubić” w 0,16 mm, co w przypadku maszyn współrzędnościowych jest wartością ogromną.

Mamy do dyspozycji kilka rozwiązań:

  • Albo, jednak zjeżdżać na punkty referencyjne (co jest rozwiązaniem dobrym dla maszyn typu frezarka/tokarka, o tyle, jest strasznie niewygodne dla maszyn WEDM. Proces obróbczy na „drutówce” może trwać kilka dni, i dobrze by było, nie musieć zdejmować drutu, przechodzącego przez materiał, po każdym włączeniu zasilania, w imię zjazdu na „krańcówki”),
  • Albo zastosować enkoder/liniał absolutny i po ponownym pojawieniu się zasilania, na bazie uprzednio zapisanej informacji o położeniu wirnika, przywrócić dokładną jego pozycję,
  • Albo zastosować sterownik z interfejsem równoległym opartym na dwóch sygnałach zegarowych przesuniętych w fazie.

To trzecie rozwiązanie, w kontekście kosztów, jest najbardziej optymalne. Jego główną wadą jest konieczność obsługi coraz dłuższego słowa bitowego wraz ze zwiększaniem podziału kroku.

Podsumowanie – wady/zalety

zegar/kierunek

Zalety:

  • Mała liczba wejść niezbędnych do wysterowania układu: DIR, CLK, 3 piny do ustalenia podziału kroku – możliwy podział nawet do 256 mikrokroków,

Wady:

  • Brak możliwości przywrócenia „stanu” po ponownym pojawieniu się zasilania – konieczność zastosowania układu pomiarowego, bądź każdorazowe zerowania układu współrzędnych poprzez najazd na „krańcówki” po włączeniu maszyny,
  • Prosta realizacja firmware’u dla mikrokontrolera.
2x zegar

Zalety:

  • Łatwe przywrócenie „stanu” po ponownym pojawieniu się zasilania – możliwość prostszej, a więc mniej kosztownej i mniej awaryjnej, realizacji układu napędowego (możliwość wyeliminowania przekładni, hamulca, układu pomiarowego, precyzyjnych wyłączników krańcowych),

Wady:

  • Duża liczba wejść niezbędnych do wysterowania układu: PHASE1, PHASE2, 8 pinów do ustalenia podziału kroku – przy 8 pinach możliwy podział do 16 mikrokroków,
  • Pamięciochłonna realizacja firmware’u dla mikrokontrolera przy stosowaniu techniki lookup table.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *