Szkolenie PLC cz. 8: Sterowanie serwonapędem TECO z wykorzystaniem przekaźnika programowalnego SG2


W kilku ostatnich odsłonach cyklu szkoleń dotyczących programowania sterowników PLC oraz przekaźników programowalnych SG2, przedstawione zostały często występujące w przemyśle zastosowania tych urządzeń. Po regulacji z wykorzystaniem popularnego algorytmu PLC, przyszedł czas na sterowanie serwonapędem za pomocą sygnałów cyfrowych.

 

SERWONAPĘD TECO

Serwonapędem lub serwomechanizmem nazywamy zamknięty układ regulacji, w którym wielkością wyjściową może być m.in. położenie, prędkość lub przyspieszenie. Sama struktura konstrukcyjna tego układu, jest dla naszego szkolenia nie specjalnie istotna, warto jednak zapoznać się z podstawami działania tego typu urządzeń. Serwomechanizm składa się przeważnie z urządzenia sterującego oraz silnika o specjalnej konstrukcji, umożliwiającego zarówno bardzo dokładnie określony ruch, jak i zablokowanie osi obrotu w określonej pozycji. Ma to szczególnie istotne zastosowanie w aplikacjach, w których konieczne jest zaawansowane sterowanie prędkością obrotu lub położeniem kątowym wirnika.

Serwo-silnik oraz sterownik serwonapędu

Rysunek 2. Serwo-silnik oraz sterownik serwonapędu

Na rysunku 1 przedstawiony został schemat ideowy budowy układu regulacji.
Regulacja prędkości lub położenia odbywa się poprzez modyfikację parametrów elektrycznych sygnału sterującego, generowanego przez sterownik. Enkoder sprzężony z silnikiem informuje zwrotnie o aktualnej prędkości oraz położeniu wirnika. Uchyb regulacji, wyznaczany jako różnica pomiędzy wartością zadaną a sygnałem z enkodera, podawany jest na regulator a następnie na układ generacji sygnału sterującego.
Układ ten w zależności od rodzaju wartości zadanej (prędkość obrotowa, moment obrotowy, położenie) generuje trójfazowy sygnał sterujący, modyfikując częstotliwość lub wartość skuteczną prądu sterowania. Tak wyznaczony sygnał prądowy podawany jest na uzwojenia serwo-silnika, który realizuje ruch zgodny z założeniami. Na rysunku 2 przedstawione zostały silnik oraz sterownik.

 

REGULACJA POŁOŻENIEM I PRĘDKOŚCIĄ OBROTOWĄ SILNIKA NA PRZYKŁADZIE RZECZYWISTEJ APLIKACJI

Przydatność opisywanych urządzeń w przemyśle jest niekwestionowana, a rzeczywiste przykłady zastosowań mogą utwierdzić Czytelników w powyższej tezie. Dlatego na potrzeby niniejszego szkolenia zdecydowałem się na opisanie aplikacji wykonanej przez naszą firmę dla jednego z Klientów. Założeniem projektu było wykonanie systemu sterowania kurtynami, które miały symulować zjawisko otwierania i zamykania drzwi w testowej instalacji przeciwpożarowej i oddymiającej. W związku z ciągle zmieniającymi się normami produkcyjnymi dla branży przeciwpożarowej, owa firma została zobligowana do zbudowania takiego stanowiska i wykonywania przy jego pomocy pomiarów kontrolnych produkowanych przez siebie urządzeń. W niniejszym szkoleniu przedstawiona zostanie część sterująca serwonapędem, pominięta natomiast zostanie kwestia pomiarów kontrolnych, gdyż nie dotyczy aktualnego tematu.
Jak zostało już zaznaczone, silnik napędzany jest przy pomocy serwo-sterownika, który modyfikując odpowiednio elektryczny sygnał prądowy, jest w stanie wymusić oczekiwany ruch wirnika. Zadaniem projektanta i programisty była taka parametryzacja całego systemu, aby silnik realizował sekwencję kolejnych otwarć i zamknięć kurtyn (symulacja ciągłego otwierania i zamykania drzwi). Realizacja tego zadania wymagała użycia dodatkowego sterownika PLC lub przekaźnika programowalnego, który wyznaczałby te sekwencje. Sam serwo-zasilacz może bowiem sterować ruchem silnika i przestawiać oś wirnika w konkretne położenia, jednakże impuls wymuszający przestawienie silnika powinien pochodzić z urządzenia zewnętrznego, będącego w stanie realizować odpowiednią sekwencję czasową otwarć i zamknięć. W tym celu wykorzystany został sterownik SG2.

Schemat blokowy serwonapędu.

Rysunek 1. Schemat blokowy serwonapędu.

 
 

INTEGRACJA SG2 Z SERWOMECHANIZMEM

Parametryzacja serwo-sterownika polegała na wpisaniu do jego pamięci konkretnych pozycji osi wirnika. Na rysunku 4 przedstawiony został ekran konfiguracyjny dla tego zadania.
 
 
Ekran konfiguracyjny pozycji wewnętrznych

Rysunek 4. Ekran konfiguracyjny pozycji wewnętrznych

Pierwsze dwie wartości w każdym wierszu (dotyczącym jednej pozycji wewnętrznej) określają ilość obrotów jaką serwo-silnik ma wykonać w odniesieniu do położenia bazowego. Pozycje ze znakiem plus realizują ruch zgodnie z kierunkiem ruchu wskazówek zegara, natomiast pozycje ze znakiem minus przeciwnie do ruchu wskazówek zegara. Trzecia wartość określa prędkość ruchu przy przejściu na daną pozycje, wyrażoną w obrotach na minutę (RPM – ang. revolutions per minute). Przykładowo wpisanie kolejno wartości „-2”, „0”, „60” oznacza dwa obroty wykonane przeciwnie do ruchu wskazówek zegara, z prędkością sześćdziesięciu obrotów na minutę. Ustalenie wewnętrznych pozycji serwo-silnika umożliwia wykorzystanie zewnętrznego urządzenia wykonującego operacje logiczne do inicjalizacji tych pozycji. W opisywanej aplikacji wykorzystane zostały trzy bity sterujące, wyznaczające numer aktualnej pozycji zgodnie z kodem binarnym.
Odpowiednie ustawienie wyjść cyfrowych sterownika SG2, powoduje aktywację powiązanych wejść w serwosterowniku, co skutkuje ustawieniem konkretnej pozycji wewnętrznej. Czwarty bit sterujący realizował aktywację ruchu na wcześniej wyznaczoną pozycję. Sygnałem zwrotnym z serwo-sterownika jest informacja o ustawieniu silnika w odpowiedniej, żądanej pozycji. Na rysunkach nr 5, 6, 7, 8 i 9 przedstawiony i opisany został kod źródłowy realizujący logikę aplikacji. Po aktywacji wejścia cyfrowego I01, ustawiany jest marker M01. Marker ten oznacza że serwo realizuje ruch na pozycję nr 1, dlatego też aktywowane są bity Q01, Q02, oraz Q03 w sposób 1-0-0 (kod binarny wartości całkowitej „1”).
Analogicznie marker M2 realizuje aktywację wyjść cyfrowych w sposób 0-1-0 (kod binarny wartości całkowitej „2”) i ruch na pozycję nr 2. Dodatkowo , każdy z markerów inicjalizuje odrębny licznik czasu, którego funkcja zostanie przedstawiona poniżej.

Inicjalizacja cyklu oraz ustawienie pierwszej pozycji

Rysunek 5. Inicjalizacja cyklu oraz ustawienie pierwszej pozycji

W momencie odliczenia zadanego czasu, oba liczniki równolegle aktywują wyjście Q04, które jest odpowiedzialne za impulsowe wymuszenie ruchu serwonapędu na wcześniej zadaną pozycję.

Ponadto inkrementowany jest licznik operacji, potrzebny do zakończenia cyklu w momencie zrealizowania zadanej liczby ruchów.
 
 
Ustawienie drugiej pozycji.

Rysunek 6. Ustawienie drugiej pozycji.

Aktywacja ruchu na określoną pozycję

Rysunek 7. Aktywacja ruchu na określoną pozycję

Gdy silnik zajmie zadaną wcześniej pozycję, serwo-sterownik wystawia na wyjściu cyfrowym odpowiedni bit, informujący o tym fakcie. Aktywowane więc zostaje wejście I2 (na jeden cykl, gdyż zastosowana została cewka wykrycia zbocza narastającego). Program analizuje czy poprzedni ruch serwonapędu odbywał się na pozycję nr 1 lub pozycję nr 2 i w zależności od tego, aktywuje pozycję przeciwną.

Przełączenie pomiędzy pozycjami

Rysunek 8. Przełączenie pomiędzy pozycjami

Zakończenie cyklu

Rysunek 9. Zakończenie cyklu

Po odliczeniu zadanej liczby kroków, program kończy cykl pracy, zerując wszystkie wyjścia oraz markery wykorzystywane w kodzie. Kasowany jest także licznik obrotów. Stan programu jest taki jak sprzed rozpoczęcia cyklu.

 

SYMULACJA OTWIERANIA I ZAMYKANIA DRZWI

Przedstawiony wyżej projekt z powodzeniem został wdrożony i uruchomiony u Klienta naszej firmy. Wykorzystanie sterownika SG2 firmy TECO, umożliwiło realizację sekwencji kolejnych otwarć i zamknięć zestawu kurtyn symulujących rzeczywiste drzwi, przy minimalnych kosztach urządzenia realizującego logikę sterowania. Istotna jest także prostota i przejrzystość kodu drabinkowego, przy stosunkowo zaawansowanym problemie programistycznym, jakim z pewnością jest integracja serwomechanizmu i sterownika PLC. Należy jednak zauważyć, iż zostało to osiągnięte dzięki zastosowaniu urządzeń tego samego producenta, które już na etapie projektowania zostały pomyślane w taki sposób, aby ich integracja przebiegała możliwie najłatwiej.

autor:
Dominik Szewczyk
dszewczyk@introl.pl