Sterowanie silnikiem skokowym za pomocą sterownika S7-1500. cz. 2

Sterowanie silnikiem skokowym za pomocą sterownika S7-1500. cz. 2
Pobierz PDF Download icon

Sterowniki S7-1500 są przystosowane do bezpośredniego sterowania pracą silników skokowych. Silniki takie są szeroko stosowane w urządzeniach, w których wymagany jest możliwość precyzyjnego kontrolowania ruchu.

Rysunek 4. Zmodyfikowana tablica kolejnych stanów silnika w bloku DB Kody kroków

Pierwszą część artykułu zakończyliśmy omówieniem konfiguracji generatora PWM, który działa w następujący sposób:

  • na początku każdego cyklu, czyli wtedy, kiedy wyjście zegara przyjmuje stan wysoki na wszystkich wyjściach również ustawiany jest stan wysoki (oczywiście za wyjątkiem pierwszego cyklu sterownika po przejściu do trybu RUN, gdzie wszystkie wyjścia zostaną wyłączone, podobnie jak wyjście zegara),
  • rozpoczyna się odliczanie czasu w zegarze, gdzie w każdym cyklu obiegu sterownika uaktualniana jest wartość taga "AKTUALNIE_ZEGAR",
  • w każdym cyklu, dla każdego kanału sprawdzany jest warunek, tj. czy aktualna wartość czasu jest większa lub równa od zadanej, jeśli tak, to odpowiadające zadanej wartości wyjście zmienia stan na niski,
  • gdy zegar doliczy do 100%(T#4ms), to następuje ponowne wpisanie jedynek na wszystkie wyjścia oraz samoczynny reset zegara,
  • cykl zaczyna się od początku.

Wprowadzenie sterowania mikrokowego wymaga też bardziej skomplikowanych zmian w tablicy stanów (rysunek 4), gdzie teraz oprócz konieczności przechowywania stablicowanych kolejnych stanów silnika należy przechować też procentową wartość prądu, która powinna przepływać przez odpowiednie uzwojenia.

Cztery najmłodsze bity każdego z 16 bajtów nadal niosą informację o tym, które uzwojenia powinny być włączone w danym momencie. Korzystając z założenia, że nigdy nie wystąpi taka kombinacja, która wymagałaby włączenia dwóch uzwojeń jednej pary z różnymi wartościami prądu (a nie wystąpi nigdy, gdyż powód omówiono przy okazji mikrokroku), cztery najstarsze bity wykorzystano do przechowania informacji o udziale prądu.

I tak, bity o numerach 7 i 6 przechowują informację, jaki powinien być procentowy udział prądu w uzwojeniu B silnika (B+ lub B-, w zależności od tego, które z nich jest załączone), natomiast 5 i 4 analogicznie w uzwojeniu A. Jak łatwo zauważyć, taka konwencja pozwala bez zwiększenia zapotrzebowania na pamięć, realizację mikrokroku 1/8 - gdzie potrzebne są 4 różne poziomy prądu (bo na dwóch bitach można zapisać 4 różne liczby). Współpracujący z nową tablicą kompletny kod przedstawiony jest na listingu 5.

Listing 5. Program sterowania mikrokrokowego ¼

Listing 6. Generator PWM o zwiększonej częstotliwości

Program wygląda analogicznie do omawianych wcześniej, jedyną zmianą poza oczywiście implementacją generatora jest dodanie sekcji rozpoznającej poziomy prądu. Jednakże po wgraniu programu do sterownika powstaną problemy - mianowicie przy tak niskiej częstotliwości PWM wirnik silnika w położeniach pośrednich najprawdopodobniej będzie drgał. Konieczne jest zwiększenie częstotliwości PWM - co można uczynić na dwa sposoby: zmieniając podstawę czasu na T#2ms w podanym kodzie lub korzystając z rozwiązania bardziej sprytnego, pokazanego na listingu 6.

Ustawienie wypełnienia na 50% powoduje w każdym cyklu sterownika naprzemienne ustawianie zera i jedynki na bicie wyjściowym. Jako że czas cyklu obiegu sterownika wynosi 1 ms, to na wyjściu generowany jest sygnał WŁĄCZ przez 1 ms i WYŁĄCZ przez 1 ms.

Wynikiem tych operacji jest ciąg prostokątny o wypełnieniu 50% i podstawie czasu 2 ms, tj. 500 Hz. Taki generator nie wymaga stosowania zegara TON jak poprzednio, co daje krótszy kod programu. Ponadto, zwiększenie częstotliwości PWM częściowo redukuje wibracje wirnika, jednakże dalej powoduje efekty akustyczne.

Częstotliwość PWM ogranicza częstotliwość wejściową sygnału CLKZ, tzn. częstotliwość CLKZ powinna być, co najmniej 10 razy mniejsza od częstotliwości PWM. Wibracje te ograniczają zastosowanie tak sterowanego napędu w praktyce. Nie zawsze również jest sens stosowania mikrokroku, gdyż rozdzielczość typowych silników sterowanych pełno krokowo wynosi 0,9°/krok. W każdym razie, w ogólności mikrokrok 1/n wymaga:

  • 4*n podkroków elementarnych, tj. tyle powinna wynosić liczba stanów silnika,
  • n/2 osiągalnych różnych natężeń prądu w uzwojeniu.

Tomasz Starak

Opracowano na podstawie materiałów z książki "Język tekstu strukturalnego w sterownikach SIMATIC S7-1200 i S7-1500" (autor - Janusz Kwaśniewski, planowana do wydania w 2014 roku przez Wydawnictwo BTC) oraz materiałów firmowych firmy Siemens.

Artykuł ukazał się w
Elektronika Praktyczna
lipiec 2014
DO POBRANIA
Pobierz PDF Download icon
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio czerwiec 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje maj 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich maj 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów