Scalone sterowniki silników krokowych firmy Trinamic

Scalone sterowniki silników krokowych firmy Trinamic
Pobierz PDF Download icon

Żyjemy w czasach, w których na liniach produkcyjnych człowieka coraz częściej zastępuje robot. I wszystko wskazuje na to, że trend ten, czy tego chcemy czy nie, będzie się nasilał. Dzięki robotom elementy przemieszczają się na taśmie z nieosiągalną dla człowieka prędkością i precyzją, poruszają się w wielu wymiarach, synchronicznie jak w zegarku. Wszystkie elementy ruchome napędzane są małymi, niepozornymi silnikami krokowym.

Silniki krokowe grają niewątpliwie główną rolę w systemach automatyki przemysłowej, my jednak zajmiemy się w artykule aktorami drugiego planu – układami sterującymi. Będą nas interesować drivery bezpośrednio dołączane do silników krokowych.

Jak wiadomo, takie silniki zawierają kilka uzwojeń, do których napięcia są podawane sekwencyjnie. Doprowadzenie stałego zasilania do pojedynczego uzwojenia nie odniesie więc żadnego użytecznego skutku. Wynika to wprost z budowy silnika krokowego i zasady jego działania. Konieczne jest zatem stosowanie sterowników realizujących odpowiednie algorytmy sekwencyjnego przełączania zasilania poszczególnych uzwojeń silnika. Algorytm taki może być oczywiście realizowany bezpośrednio np. przez mikrokontroler. Stosując wiele silników w jednym systemie obciążenie procesora może być znaczne. Zagadnienie komplikuj się jeszcze bardziej, gdy konieczna jest implementacja odpowiednich charakterystyk rozpędzania i hamowania silnika, stosowanie mikrokroków itp. Uwzględnienie tak tych, jak i wielu innych niewymienionych kwestii może decydować o konieczności stosowania specjalizowanych sterowników, które po pierwsze, uwolnią procesor od realizacji złożonego algorytmu, a po drugie, zapewnią odpowiedni interfejs sprzętowy pomiędzy częścią cyfrową a samym silnikiem. Na rynku dostępne są drivery różnych producentów, w artykule opisano wyroby firmy Trinamic.

Przegląd oferty Trinamica

Mająca siedzibę w Hamburgu firma Trinamic zajmuje się produkcją układów przetwarzających sygnały cyfrowe na różne formy ruchu. Wyroby te znajdują zastosowania m.in. w takich aplikacjach, jak: systemy automatyki przemysłowej, urządzenia medyczne, skanery, plotery, drukarki, układy pozycjonowania anten i baterii słonecznych, pompy, bankomaty i wiele, wiele innych. Oferta obejmuje układy scalone i gotowe moduły funkcjonalne. Dostępne są również zestawy ewaluacyjne umożliwiające szybkie zapoznanie się z wyrobami, a nawet wykonanie w pełni użytkowych projektów. W wyrobach jest stosowany własny protokół producenta – TMCL (Trinamic Motion Control Language), wykorzystywany w zintegrowanym środowisku programistycznym TMCL-IDE. Może być on również implementowany we własnych aplikacjach użytkownika. TMCL zawiera niezbędne komendy i funkcje potrzebne do pozycjonowania i ustawiania istotnych parametrów sterownika ruchu.

Pierwszą grupę produktów stanowią moduły funkcjonalne wykorzystywane do sterowania 1-osiowymi układami wykonawczymi z silnikami krokowymi self sensing (fotografia 1). Mają one zaimplementowane liczne algorytmy służące do optymalizacji ruchu, o których będzie jeszcze mowa w dalszej części artykułu. W zależności od typu moduły te są przystosowane do sterowania silnikami zasilanymi napięciami w zakresie od 7 do 30 V i pobierającymi prąd do 6,4 A. Możliwe jest sterowanie z zastosowaniem 16...256 mikrokroków.

Fotografia 1. Moduły funkcjonalne przeznaczone do sterowania 1-osiowymi układami wykonawczymi z silnikami krokowymi self sensing

Druga grupa obejmuje moduły sterujące przeznaczone dla systemów wieloosiowych (3 lub 6) – fotografia 2. Dostępne napięcia zasilające zawierają się w zależności od typu w zakresie od 9 do 53 V, a prądy od 0,7 do 6,5 A.

Fotografia 2. Moduły sterujące przeznaczone dla systemów wieloosiowych (3 lub 6)

W obu przypadkach istotny może być interfejs komunikacyjny między modułem a układem nadrzędnym. Do wyboru są w tym przypadku: RS485, CAN, USB, S/D i EtherCAT, ale nie wszystkie interfejsy są dostępne w każdym module. Wybierając produkt należy zwrócić na to uwagę.

Kolejne grupy produktów Trinamica obejmują jedno- i wieloosiowe sterowniki Stepper Servo, jednoosiowe sterowniki silników BLDC i BLDC Servo, a także rozwiązania PANdrive stanowiące zintegrowany bezpośrednio z silnikiem krokowym moduł sterujący. Produkty te przedstawiono na fotografii 3.

Fotografia 3. Jedno- i wieloosiowe sterowniki Stepper Servo, jednoosiowe sterowniki silników BLDC i BLDC Servo, a także rozwiązania PANdrive

Jak wiadomo, silniki krokowe pracują w otwartej pętli, co oznacza, że do określenia pozycji wału nie jest wymagany, przynajmniej teoretycznie, żaden układ sprzężenia zwrotnego. Wystarczy, że układ sterujący będzie samodzielnie zliczał liczbę wykonanych kroków, aby w każdym momencie znać pozycję wału. W wielu przypadkach założenie to, wynikające zresztą z zasady działania silnika krokowego, w praktyce jednak nie sprawdza się. Znany jest efekt gubienia kroków powstający np. w wyniku zakłóceń, zbyt małej wydajności prądowej sterownika czy nadmiernego obciążenia silnika. W takich sytuacjach, szczególnie wtedy, gdy wymagana jest bardzo duża precyzja sterowania ruchem, konieczne jest dołączenie pomiędzy silnik a procesor enkodera, który zawsze dokładnie określi położenie wału. Trinamic uwzględnił taką ewentualność w swoich sterownikach, co więcej – oferuje również kilka enkoderów dostosowanych do swoich wyrobów (fotografia 4). Mają one rozdzielczość od 8192 do 10000 linii (od 32192 do 40000 przyrostów) i pracują z maksymalną prędkością obrotową od 6000 do 7500 obr/min. Zastosowano w nich interfejs ABN o poziomach TTL.

Fotografia 4. Enkodery dedykowane do sterowników Trinamica

Algorytmy i funkcje sterowania implementowane w scalonych sterownikach Trinamica

Układy Trinamica sterują 2-fazowymi silnikami krokowymi. Przypomnijmy zatem krótko na czym polega zasada ich działania (rysunek 5). Dla ustalenia uwagi przyjmujemy najprostszy przypadek, w którym silnik ma tylko dwie cewki. W praktyce, ze względu na dążenie do zwiększenie rozdzielczości i momentu obrotowego silniki są często wyposażane w większą liczbę cewek. Załóżmy, że na początku pierwszej fazy (rysunek 5a) do jednej cewki zostanie doprowadzone zasilanie o umownie przyjętej polaryzacji dodatniej. Płynący przez cewkę prąd wytworzy strumień magnetyczny, który spowoduje, że wirnik traktowany jako magnes ustawi się w pozycji, w której kierunki strumieni magnetycznych cewki i wirnika będą zgodne. Takie zachowanie wynika z praw fizyki i takie dążenie do zrównania kierunków strumienia magnetycznego będzie występowało również w każdej innej sytuacji. Co się teraz stanie, gdy napięcie zostanie przełączone z zachowaniem polaryzacji? Jak widać na rysunku 5b wirnik obróci się o 90° w prawo i pozostanie w tej pozycji aż do kolejnej zmiany napięć na cewkach.

Rysunek 5. Ilustracja zasady działania silnika krokowego

W fazie 2 ponownie więc zasilamy cewkę pierwszą, ale tym razem zostanie odwrócona polaryzacja. Spowoduje to odwrotne namagnesowanie stojana, a w konsekwencji dalszy obrót wirnika o 90° w prawo. Fazę kończy jeszcze jedno analogiczne przełączenie napięć pomiędzy cewkami. Jak można się domyślić, praca tak działającego silnika nie będzie płynna, prawdopodobnie będzie on emitował sporo hałasu i drgań. Nie jest również wykluczone, że przy pewnej częstotliwości przełączania może nawet wpaść w jakiś rezonans mechaniczny. Nie robi również wrażenia rozdzielczość takiej konstrukcji. Wady te są eliminowane przez różne, czasami dość wymyślne modyfikacje budowy silnika, a nawet przez stosowanie dużo bardziej złożonych algorytmów sterowania. Algorytmom te są zwykle nadawane charakterystyczne nazwy, często są one patentowane. Jak przystało na poważnego producenta Trinamic implementuje w swoich sterownikach rozwiązania tego typu. Oto kilka przykładów.

StallGuard. Jest to bezczujnikowy pomiar obciążenia silnika (pozycji wirnika). Dzięki temu rozwiązaniu procesor zarządzający pracą silnika w każdej chwili może w razie konieczności stosować najbardziej odpowiedni algorytm sterowania. Zaletą jest zwolnienie konstruktorów z konieczności dołączania zewnętrznych czujników (enkoderów, czujników krańcowych itp.)

cDriver. Rozwiązanie integrujące kontroler ruchu ze sterownikiem ruchu w jednym urządzeniu. Korzysta ze sprzętowego generatora charakterystyki sterowania silnikiem krokowym (ramp generator).

CoolStep. Bezczujnikowy system sterowania prądem przepływającym przez uzwojenia cewek. Wróćmy jeszcze do rysunku 5. Zastanówmy się co będzie się działo, jeśli prąd przepływający przez cewkę nie wytworzy wystarczającego strumienia magnetycznego, aby obrócić wirnik? W najlepszym przypadku może to spowodować zgubienie pojedynczego kroku, w bardziej niekorzystnym przypadku może to spowodować nawet całkowite zatrzymanie silnika. Nietrudno również wyobrazić, sobie, że w pewnych warunkach, np. przy małym obciążeniu silnika, nie ma potrzeby, aby prąd płynący przez uzwojenia był duży – silnik z powodzeniem będzie się obracał przy mniejszym prądzie. Rozwiązanie CoolStep zapewnia właśnie przepuszczanie przez silnik optymalnego prądu, który nie będzie przesadnie duży, a jednocześnie wystarczający do poprawnej pracy silnika. Stan ten jest w każdej chwili analizowany przez sterownik. W układach bez takiego mechanizmu konieczne jest uwzględnianie pewnego odpowiednio dużego marginesu bezpieczeństwa. Wówczas jednak w stanach niskiego obciążenia pobierana jest niepotrzebnie duża moc. Może też być konieczne stosowanie silników o większej mocy, aby mogły prawidłowo pracować w każdych warunkach.

StealthChop. Omawiając zasadę działania silnika krokowego padło stwierdzenie, że w najprostszej konfiguracji należy liczyć się z drganiami i głośną pracą. Jest to problem, który od początku zaprzątał umysły inżynierów. W Trinamicu opracowano własny algorytm sterowania, który w znacznym stopniu wycisza pracę silnika. Bezpośrednią przyczyną generowania szumu, a nawet dokuczliwego dźwięku o wysokiej częstotliwości jest magnetostrykcja. Jest to ciekawe zjawisko powodujące zmiany wymiarów ferromagnetyków w zmiennym polu magnetycznym. Efekt ten uwidacznia się szczególnie wtedy, gdy silnik porusza się z małą prędkością obrotową. Metoda StealthChop, najogólniej mówiąc, polega na modulacji napięcia zasilającego cewki silnika na podstawie uzyskiwanego sprzężenia zwrotnego. Minimalizując tą metodą fluktuacje prądu uzyskuje się cichszą pracę silnika nawet o 10 dB w porównaniu z typowymi metodami sterowania.

Rysunek 6. Charakterystyki sterowania ruchem a) 6-punktowa, b) 3-punktowa, c) s-shape

SixPoint. To z kolei złożony algorytm rozpędzania i hamowania silnika (rysunek 6a). Jest on często stosowany przy przemieszczaniu elementów wrażliwych na nadmierne przyspieszenia lub rotacje. Algorytm ten zapewnia łagodny start i zatrzymywanie elementu. Bardzo podobne zastosowanie mają jeszcze algorytmy: 3-punktowy (rysunek 6b) i S-shape (rysunek 6c).

SpreadCycle. W celu zwiększenia rozdzielczości silnika krokowego oraz zmniejszenia emitowanego przez niego hałasu stosowana jest praca mikrokrokowa. Najprościej rzecz ujmując, chodzi o jak najbardziej płynne obracanie pola magnetycznego, dzięki czemu uzyskuje się również płynność obrotu wirnika. Pytanie tylko, jak to zrobić? W sposób intuicyjny można wywnioskować, że należy zwiększyć liczbę uzwojeń, ale przecież możliwości z czysto mechanicznych powodów są tu bardzo ograniczone. Na szczęście jest jeszcze inna metoda nieingerująca w budowę silnika, za to dość istotnie modyfikująca driver. Należy po prostu sterować cewki prądem o płynnie (lub raczej quasi płynnie) zmieniającym się natężeniu. Aby to było możliwe, trzeba odpowiednio zmodyfikować stopień końcowy drivera. Wypływający z niego prąd musi być odpowiednio uformowany z zachowaniem płynnego przejścia przez zero. Prąd sterownika zasilającego silnik krokowy z użyciem funkcji SpreadCycle ma kształt sinusoidalny.

TMCL. Dobrnęliśmy do sedna. Wiemy już, że TMCL to język opracowany specjalnie na potrzeby systemów sterowania ruchem i dla nich dedykowany. Za pomocą zawartych w nim komend kierowanych do silników krokowych realizowane jest pozycjonowanie, ustawiane są najważniejsze parametry ruchu. Komendy języka TMCL mogą być również wykorzystywane jako protokół w programach pisanych w dowolnych językach. Użytkownikom udostępniono zintegrowane środowisko programistyczne TMCL-IDE oraz interfejs TMCL-API.

Realizacja praktyczna na przykładzie sterownika TMC5130A

Na fotografiach 1...3 przedstawiono wyroby Trinamica. Oferta, jak widać, jest obszerna, ale wszystkie układy pracują na podobnej zasadzie. Różnice polegają na implementacji w strukturach poszczególnych funkcji i komend, a także interfejsów i protokołów komunikacyjnych. Różna jest też obciążalność, napięcie robocze oraz liczba obsługiwanych silników. Budowę driverów Trinamica przedstawiono na przykładzie układu TMC5130A (rysunek 7).

Rysunek 7. Schemat blokowy drivera TMC5130A

W strukturze układu zawarto wszystkie niezbędne bloki funkcjonalne potrzebne do efektywnego sterowania silnikiem. Przepływ informacji przedstawiono na rysunku 8. Decyzje o ruchach, które należy wykonać są wypracowywane w programie nadzorującym dany proces. Są one przekazywane interfejsem wysokiego poziomu do mikrokontrolera, który za pośrednictwem drivera steruje silnikiem. Chociaż w wielu wypadkach stosowanie enkoderów i przełączników krańcowych nie jest niezbędne, sterowniki Trinamica są przystosowane do ich obsługi. Mogą być one również łączone równolegle (do 256 układów), wymaga to jednak przejścia na interfejs UART łączący mikrokontroler z driverem.

Rysunek 8. Schemat blokowy typowego systemu sterowania ruchem

Pełna aplikacja układu TMC5130A wymaga zastosowania kilku zewnętrznych kondensatorów i odpowiedniego połączenia wyprowadzeń decydujących o trybach pracy układu (rysunek 9). W strukturze zawarto pompę napięciową i stabilizator zapewniające odpowiednie zasilanie wszystkich wewnętrznych bloków funkcjonalnych. Kolejną grupę stanowią interfejsy komunikacyjne – SPI, UART, single wire. Driver TMC5130A jako układ synchroniczny musi być taktowany przebiegiem zegarowym. Najczęściej jest to być sygnał generowany wewnętrznie, ale można również korzystać z przebiegu zewnętrznego.

Rysunek 9. Typowy schemat aplikacyjny układu TMC5130A

Do najważniejszych bloków funkcjonalnych układu TMC5130A należy zaliczyć te, które decydują o sterowaniu ruchem. Wśród nich wyróżnia się 6-punktowy generator rampy. Jak powiedziano, decyduje on o charakterystyce przyspieszenia i prędkości poruszanego za pośrednictwem silnika krokowego obiektu, i jest konfigurowany za pośrednictwem wewnętrznych rejestrów sterujących drivera. Sygnały z generatora rampy oraz pozostałych bloków realizujących omówione wcześniej funkcje docierają do bloków wykonawczych. Są one jeszcze modulowane przebiegiem sinusoidalnym zapisanym w postaci cyfrowej w 256 elementowej tablicy look-up. Zabieg ten pozwala na realizację mikrokroków. W części wyjściowej zawarto dwie pary półmostków zasilających dwie cewki silnika krokowego. Dwa wewnętrzne przetworniki cyfrowo-analogowe dołączone do komparatorów prądu są wykorzystywane do kształtowania prądu cewek zależnego od wybranej opcji sterowania. Jednymi z nielicznych elementów zewnętrznych są dwa rezystory wykorzystywane do pomiaru natężenia prądu cewek.

Znamy już najważniejsze części składowe omawianego sterownika silnika krokowego typu TMC5130A. Wewnętrzna logika korzysta z nich w zależności od wybranego przez użytkownika jednego z trzech trybów pracy. W pierwszym trybie (Full Featured Motion Control) uzyskiwane są pełne możliwości drivera. Do obsługi silnika nie jest wymagane żadne oprogramowanie. Do realizacji przemieszczenia wystarczy podać tylko za pośrednictwem rejestrów wewnętrznych pozycję docelową. Tryb jest wybierany sprzętowo przez podanie niskiego stanu na wejście SD_MODE.

W trybie drugim (Step & Direction Driver) do sterownika powinien być dołączony zewnętrzny kontroler ruchu S-ramp, np. układ TMC4361 lub mikrokontroler wydający komendy driverowi określające krok i kierunek. Zewnętrzna jednostka centralna ma ponadto możliwość synchronizowania ruchów z innymi silnikami działającymi w systemie. Driver dba o odpowiedni kształt prądu cewek i przekazuje do CPU informacje o bieżącym stanie silnika.
W trzecim trybie (Simple Step & Direction Driver) układ TMC5130A pozycjonuje silnik na podstawie sygnałów kroku i kierunku. Driver nie musi współpracować z zewnętrznym mikrokontrolerem, a konfiguracja jest ustalana odpowiednimi połączeniami wyprowadzeń układu.

Jak widać sterownik TMC5130A oraz inne układy Trinamica spełnią oczekiwania najbardziej wymagających konstruktorów, ale też nie powinny przysparzać trudności inżynierom projektującym dużo prostsze systemy.

Jarosław Doliński, EP

Artykuł ukazał się w
Elektronika Praktyczna
październik 2018
DO POBRANIA
Pobierz PDF Download icon

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio maj - czerwiec 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów