Zaawansowany sterownik silnika krokowego
| TechnikaW zakresie małych i średnich mocy silniki elektryczne są dzisiaj praktycznie zawsze sterowane i kontrolowane za pomocą układów elektronicznych. Zapewniają one regulację prędkości wirowania, momentu obrotowego przy wysokiej sprawności i niezawodności. O ile w tym zakresie na rynku jest praktycznie jednomyślność, o tyle próżno szukać wspólnych dla wszystkich aplikacji rozwiązań sprzętowych lub nawet koncepcji. Silnikami można sterować za pomocą prostych układów analogowych, złożonych rozwiązań opartych na mikrokontrolerze oraz wydajnych specjalizowanych sterowników scalonych o dużej funkcjonalności.
O ile w przypadku silników asynchronicznych i bezszczotkowych silników prądu stałego konstruktorzy często wybierają do sterowania wydajny mikrokontroler, który przez układy PWM jest w stanie wytworzyć wirujące trójfazowe pole magnetyczne zdolne do poruszenia wirnika, o tyle w zakresie silników krokowych, z uwagi na złożoność zagadnienia, cały czas przewagę mają sterowniki specjalizowane. Poniższy artykuł opisuje własności przykładowego sterownika silników krokowych. Warto zapoznać się z jego możliwościami, które dobitnie przekonują, że w sterowaniu takimi maszynami warto postawić na specjalizację.
L6472 to zaawansowany sterownik dwufazowego silnika krokowego, integrujący w jednym chipie dwa mostkowe układy zasilające uzwojenia silnika wykonane z wykorzystaniem niskostratnych tranzystorów LDMOS w układzie mostkowym, obwody sterujące i zabezpieczające. Układ należy do grupy układów dSPIN firmy ST Microelectronics, charakteryzujących się wysoką funkcjonalnością.
Atutem układu jest jednostka sterująca, która w sposób autonomiczny realizuje algorytmy sterowania napięciowego lub prądowego uzwojeniami silnika, w tym udostępnia innowacyjny tzw. tryb mikrokrokowy z 16 mikrokrokami. Układ sterownika w sposób autonomiczny realizuje algorytmy sterujące silnikiem 2-fazowym ze zdefiniowanymi ruchami w przód i w tył, przyspieszaniem, hamowaniem i innymi wzorcami ruchu niezbędnymi do realizacji wydajnego systemu sterowania. Ruch wirnika silnika programuje się za pomocą zestawu rejestrów poprzez standardowy interfejs SPI.
Warto dodać, że układ L6472 został wykonany jako "bullet proof", co oznacza, że ma on wewnętrzne układy elektroniczne zabezpieczające przed przeciążeniem termicznym, prądowym, zwarciowym, automatyczne obsługuje czas martwy pomiędzy przełączeniami tranzystorów w mostku mocy, a jednostka logiczna nie dopuszcza do realizacji komend, które mogłyby spowodować utratę kontroli nad silnikiem lub przekroczenie granicznych parametrów w zakresie ruchu.
L6472 może być zasilany napięciem stałym z zakresu 8-45 V i jest w stanie dostarczać do uzwojeń silnika prąd o natężeniu do 7 A (3 A prądu ciągłego), co pozwala na sterowanie za jego pomocą większości silników krokowych małej i średniej mocy dostępnych na rynku. Cenną właściwością układu jest możliwość podłączenia wielu układów L6472 do jednego mikrokontrolera i sterowania synchronicznego łącznie całym zestawem.
Sterowanie silnikiem
Kompletny system sterowania silnikiem krokowym powstaje przez dołączenie układu L6472 do mikrokontrolera za pośrednictwem interfejsu SPI. Sterowanie polega na wysyłaniu komend składających się z rozkazu wraz z parametrem, oraz na odbieraniu komunikatów i parametrów w analogicznej formie. Dzięki temu nawet złożone systemy sterowania, zawierające kilka silników i wykonujące złożone ruchy, mogą być realizowane za pomocą relatywnie prostego systemu sterującego i dowolnego mikrokontrolera.
W zależności od parametrów silnika możliwe jest ustalenie granicznych parametrów związanych z ruchem wirnika, jak maksymalna wartość przyspieszenia, hamowania, minimalna (0-976 kroków/s) i maksymalna prędkość obrotowa (od 15 do 15 tys. kroków na sekundę).
Podstawowe komendy sterujące silnikiem przez układ L6472 związane są z ruchem ciągłym (Run, GoUntil, ReleaseSW), osiąganiem pozycji (GoTo, GoTo DIR, GoHome, GoMark), ruchem (Move) i hamowaniem (SoftStop, HardStop, SoftHiz, HardHiz). W sumie rozkazów sterujących jest 18, z czego najważniejsze to:
- Move - powoduje obrót wirnika w zadanym kierunku o liczbę kroków podaną jako parametr rozkazu,
- GoTo - ustawia wirnik w żądanym położeniu najkrótszą drogą,
- GoHome - wraca do pozycji początkowej najkrótszą drogą,
- GoMark - ustawia wirnik w zaprogramowanej wcześniej pozycji wyróżnionej,
- Run - powoduje ciągłe obracanie wirnika z zadaną prędkością i kierunkiem,
- StepClock - przełącza sterownik w tryb step-clock, ruch silnika jest w tym trybie definiowany za pomocą sygnału cyfrowego podawanego na wejście STCLK. Każde zbocze narastające powoduje przesunięcie wirnika o jeden mikrokrok w zadanym kierunku,
- GoUntil - przesuwa wirnik z dużą prędkością do zadanej pozycji i zatrzymuje,
- RelaseSW - przesuwa wirnik z małą prędkością do zadanej pozycji i zatrzymuje,
- SoftStop - powoli zatrzymuje wirowanie,
- HardStop - natychmiastowe zatrzymanie wirowania,
- StopHiZ - powoli zatrzymuje wirowanie i wyłącza zasilanie uzwojeń.
Jak widać, zestaw komend pozwala na dość elastyczne sterowanie silnikiem. Sterownik wbudowany w układzie L6472 realizuje funkcje w sposób inteligentny, np. gdy otrzyma nową komendę przed ukończeniem starej, przerywa jej realizację i przystępuje do nowego zadania. To samo dotyczy komend hamowania, które można wysłać w dowolnym momencie.
Tryby hamowania z suffiksem SW w nazwie wykorzystują możliwość współpracy układu z czujnikami krańcowymi. Sygnał z takiego czujnika dołącza się do sterownika, co pozwala realizować niezależne od oprogramowania funkcje bezpieczeństwa, natychmiastowy stop wszystkich sterowników w wypadku nieprzewidzianego zdarzenia np. awarii lub wtargnięcia człowieka do strefy zabronionej. Istnienie takiej niezależnej od oprogramowania funkcji jest nierzadko wymagane w instalacjach przemysłowych prawnie lub jest tzw. dobrą praktyką inżynierską.
Dużą precyzję działania zapewnia tryb mikrokrokowy. Sterownik potrafi automatycznie dzielić każdy krok na 16 mikrokroków i aby te funkcję uruchomić, wystarczy ustawić odpowiednią flagę w rejestrze. Co więcej, gdy komenda dotyczy ruchu długiego lub ustawiona prędkość jest większa niż zdefiniowana wartość progowa dla trybu mikrokrokowego, układ automatycznie przechodzi w tryb normalny i włącza ponownie tryb mikrokrokowy, gdy prędkość wirowania się zmniejszy. Warto zauważyć, że programowanie wartości maksymalnych i progowych dla układu odbywa się w prostych jednostkach, jak krok/s.
Układ pozwala na odczyt rejestrów kontrolnych, co daje możliwość kontroli, czy zlecona operacja się zakończyła. W ten sposób sygnalizowane są też wszystkie stany alarmowe. Dodatkowo na końcówce Flag pojawia się stan niski, gdy zanotowany zostanie jakikolwiek stan alarmowy lub do sterownika zostanie wysłane polecenie, które nie może zostać wykonane. Pozwala to na generowanie przerwania w mikrokontrolerze, po to, aby obsłużyć natychmiast stan alarmowy, bez konieczności ciągłego odczytywania statusu.
Zabezpieczenia elektryczne
Stopień mocy w rodzinie sterowników dSPIN jest w pełni zabezpieczony przed przeciążeniem. Przekroczenie temperatury krytycznej powoduje blokadę stopnia mocy, co zapobiega uszkodzeniu, ale możliwe jest też zdefiniowanie niższej niż krytyczna temperatury progowej, której przekroczenie spowoduje wysłanie do sterownika stosownego komunikatu. Oba mostki sterujące są zabezpieczone przed zwarciem i przeciążeniem. Progi zadziałania zabezpieczenia można ustawić programowo, co pozwala na dopasowanie ochrony do parametrów silnika. Podobnie działa zabezpieczenie przez zbyt niskim napięciem zasilającym, gdzie praca jest blokowana, póki napięcie zasilające jest zbyt małe.
Poza typowymi funkcjami ochronnymi L6472 pozwala też na programowanie szybkości narastania zboczy sygnałów podawanych na uzwojenia silnika, regulację programową czasu martwego pomiędzy zmianą stanu, co zabezpiecza przed przepływem zwarciowego prądu skrośnego przez tranzystory oraz ogranicza emisję elektromagnetyczną z kabli i uzwojeń silnika, a także pozwala na synchroniczną pracę wielu sterowników tworzących razem system mechatroniczny.
Ważną funkcją jest też wykrywanie zacięcia wirnika bez konieczności użycia dodatkowych czujników. Zatarcie wirnika lub inna przeszkoda mechaniczna skutkująca zatrzymaniem ruchu wirnika to bardzo groźna w skutkach awaria, która powinna być wykrywana. Układ wykrywa blokadę poprzez wzrost prądu płynącego przez uzwojenia silnika ponad zdefiniowany programowo próg. Zatrzymanie silnika i związany z nim zanik siły przeciwelektromotorycznej wywołuje wzrost prądu, co wywołuje alarm.
Robert Magdziak