Pantoł Arkadiusz „Implementacja układu sterowania zbiornika

Transkrypt

Pantoł Arkadiusz „Implementacja układu sterowania zbiornika
Arkadiusz Pantoł – III rok
Koło Naukowe Techniki Cyfrowej
dr inż. Wojciech Mysiński – opiekun naukowy
IMPLEMENTATION OF A CONTROL SYSTEM FOR A LIQUID TANK IN AN
FPGA STRUCTURE
IMPLEMENTACJA UKŁADU STEROWANIA ZBIORNIKA Z CIECZĄ NA
STRUKTURZE FPGA
Keywords: FPGA, digital electronics, automation systems, microcontrollers, LabVIEW
Słowa kluczowe: FPGA, elektronika cyfrowa, układy automatyki, mikrokontrolery, LabVIEW
Abstract: This article describes an implementation of a control system in a Zynq – 7000 SoC
device. SoC – „System on Chip” is a specialized integrated circuit which contains a
microprocessor and FPGA structure. This combination allows us to build advanced automation
system and efficient digital signal processing applications. The automation system developed
shows that this type of IC can be used to build fast industrial drivers.
1.
Wstęp
1.1. Układy SoC
Układy SoC – System on Chip - są świeżym wytworem myśli inżynierskiej – łączą w sobie
zalety szybkich układów FPGA oraz wydajnych procesorów ARM. Układy SoC ponadto posiadają
szereg innych układów w swojej strukturze – chociażby przetworniki analogowo – cyfrowe,
układy radiowe, komunikacyjne… Stąd też pochodzi nazwa – System on Chip - czyli system
elektroniczny wbudowany w strukturę półprzewodnikową.
1.2. Informacje dotyczące użytego układu scalonego
Do realizacji założeń projektowych wykorzystano płytę prototypową firmy Digilent z
układem Zynq – 7000. Poniżej podano podstawowe parametry użytego układu scalonego:
•
•
•
•
•
•
dwa rdzenie 32 – bitowe, typu ARM Cortex A9,
maksymalna częstotliwość taktowania rdzenia – 650MHz,
maksymalna częstotliwość pracy układu FPGA – 450MHz,
4400 makrokomórek, każda z sześciowejściową tablicą LUT,
80 makrokomórek DSP,
wbudowany przetwornik analogowo – cyfrowy
1.3. Podstawowe informacje dotyczące układu sterowania
Na poniższym rysunku znajduje się uproszczony schemat blokowy układu sterowania.
Obiektem sterowania jest zbiornik z cieczą, w którym kontrolowane są takie parametry jak
temperatura i prędkość obrotowa mieszadła. Zadaniem układu sterowania jest utrzymywanie
wartości tych parametrów na zadanym przez użytkownika poziomie. Jest to możliwe dzięki
czujnikom prędkości obrotowej oraz temperatury. Wartości parametrów zadawane są w
programie stworzonym w środowisku LabVIEW. W programie ponadto można śledzić stan
procesu oraz obserwować zmiany parametrów wewnętrznych na wykresach.
Rys. 1. Schemat ogólny układu.
W układzie sterowania zaimplementowano sposób ręcznego sterowania w celu pokazania
współpracy pomiędzy układem FPGA, układem mikroprocesorowym a programem LabVIEW.
Części składowe układu pokazanego na powyższym rysunku:
1. silnik prądu stałego,
2. mostek H,
3. czujnik prędkości obrotowej zrealizowany na transoptorze szczelinowym,
4. mieszadło,
5. czujnik temperatury,
6. grzałka
2.
Struktura systemu sterowania
2.1. Poziomy sterowania
Układ sterowania składa się z trzech poziomów sterowania, które wzajemnie wymieniają dane
pomiędzy sobą i sterują procesem mieszania i regulacji temperatury. Całość systemu sterowania
zaprojektowana została przy użyciu środowiska Vivado Design Suite 2015.1, środowiska Xilinx
SDK oraz oprogramowania NI LabVIEW:
•
•
•
Poziom logiki programowalnej - część związana z układem FPGA, język Verilog
Poziom procesora – część związana z procesorem, język C
Poziom operatora – część związana z programem LabVIEW.
2.2.1.
Poziom logiki programowalnej
Na poniższym rysunku znajduje się schemat blokowy przedstawiający strukturę systemu
sterowania zaimplementowanego w logice programowalnej:
Rys. 2. System sterowania zaimplementowany w logice programowalnej
Moduły wchodzące w skład struktury FPGA stworzone zostały w języku Verilog. W
pierwszej kolejności omówieniu wymagają moduły związane z silnikiem prądu stałego. Silnik ten
sterowany jest przy pomocy fali prostokątnej o zmiennym wypełnieniu. Współczynnik
wypełnienia obliczany jest na podstawie wartości uzyskanej z pomiaru prędkości obrotowej oraz
wartości zadanej przez operatora. Obliczeniem współczynnika wypełnienia zajmuje się procesor.
Moduł zadajnika procesora pozwala na przekazanie obliczonej wartości do modułu generacji fali
prostokątnej o zmiennym wypełnieniu – modułu PWM. W module tym zaimplementowano
metodę wytwarzania fali PWM.
W metodzie tej wartość zadana porównywana jest z sygnałem piłokształtnym. W momencie
zrównania się wartości chwilowej sygnału piłokształtnego z wartością zadaną następuje zmiana
stanu sygnału wyjściowego z niskiego na wysoki. W momencie gdy wartość chwilowa sygnału
piłokształtnego wynosi 0 – sygnał wyjściowy zmienia stan z wysokiego na niski. Zmieniając
współczynnik wypełnienia można regulować chwilę, w którym sygnał wyjściowy zmieni stan z
niskiego na wysoki, co pozwala łatwo i płynnie regulować szerokość wyjściowego sygnału
prostokątnego. W strukturze FPGA sygnał piłokształtny kształtowany jest przez licznik
ośmiobitowy, liczący w górę, taktowany sygnałem zegarowym pochodzącym z dzielnika
częstotliwości. Częstotliwość zegara taktującego licznik wyznacza częstotliwość wyjściowej fali
prostokątnej.
Aby móc odpowiednio sterować silnikiem niezbędne jest także sprzężenie zwrotne od
prędkości obrotowej. Do pomiaru prędkości obrotowej zastosowano specjalną konstrukcję z
transoptorem szczelinowym i tarczą enkoderową. Tarcza enkoderowa została przymocowana do
wału silnika, prostopadle do ścianek transoptora. W wyniku przesłonięcia szczeliny na wyjściu
układu pomiarowego pojawia się stan niski. W chwili, gdy szczelina zostaje odsłonięta na wyjściu
pojawia się stan wysoki. Odpowiednio wzmocniony sygnał z transoptora zostaje przekazany na
wejście układu FPGA, w którym znajduje się licznik odpowiedzialny za pomiar częstotliwości
sygnału. Zmierzona częstotliwość sygnału prostokątnego zostaje przekazana do modułu procesora
oraz do panelu sterowania.
Kolejnym istotnym elementem wchodzącym w skład systemu sterowania jest regulator
histerezowy sterujący pracą grzałki. Moduł ten steruje grzałką na podstawie:
•
•
•
zadanej wartości temperatury,
zadanej wartości histerezy,
zmierzonej wartości temperatury
W układzie sterowania mogą być użyte dwa rodzaje czujników temperatury – cyfrowy i
analogowy. Zmiana typu czujnika wymaga jedynie niewielkiej zmiany w programie napisanym w
języku C. Za odczyt wartości z analogowego czujnika temperatury odpowiedzialny jest
przetwornik analogowo – cyfrowy stanowiący integralną część układu SoC. Cyfrowy czujnik
temperatury komunikuje się z logiką programowalną przy pomocy magistrali 1-wire. Za
komunikację odpowiedzialna jest rozbudowana maszyna stanów , która w odpowiedniej kolejności
wysyła komendy i odczytuje dane.
Za komunikację układu FPGA z procesorem odpowiedzialna jest magistrala AXI opracowana
przez firmę Xilinx, w której procesor jest układem nadrzędnym – master, natomiast moduły
znajdujące się w strukturze FPGA są układami slave.
2.2.2.
Poziom procesora
Mikroprocesorowa część układu SoC odpowiedzialna jest za:
•
•
•
Obliczenia zmiennoprzecinkowe, w tym algorytm PID,
Obsługę interfejsu SPI sterującego pracą wyświetlacza OLED,
Obsługę interfejsu UART, odpowiedzialnego za wysyłanie i odbieranie danych do/z
panelu operatorskiego,
W strukturze mikroprocesorowej zaimplementowano algorytm PID. Regulator ten na
podstawie wartości zadanej oraz zmierzonej wartości prędkości oblicza wartość współczynnika
wypełnienia. Współczynnik ten stanowi wartość wejściową dla modułu sterującego silnikiem
prądu stałego. Ponieważ wartości prędkości obrotowej oraz temperatury zadawane są z komputera
klasy PC, niezbędne było opracowanie sposobu komunikacji pomiędzy układem scalonym a
komputerem. Do komunikacji użyto kontrolera UART, który po odpowiednim zastosowaniu
bibliotek firmy Xilinx posłużył do wysyłania i odbierania danych z komputera.
2.2.3.
Poziom operatora
Panel operatora został stworzony w programie LabVIEW. Jest to najwyższy poziom kontroli
procesu, ponieważ na tym etapie zadawane są wartości prędkości oraz temperatury. Oprócz
zadawania wartości możliwa jest obserwacja zmian prędkości obrotowej mieszadła oraz
temperatury cieczy znajdującej się w zbiorniku.
Rys. 3. Fragment części wizualizacyjnej programu
3.
Podsumowanie
Modularna struktura układu sterowania pozwala na rozszerzenie funkcjonalności systemu o
nowe bloki obsługujące różne czujniki oraz elementy wykonawcze. Dodatkowo znajdujące się na
płycie prototypowej złącza USB, Ethernet mogą stanowić punkt wyjściowy do „usieciowienia”
systemu, co jest niezwykle popularnym zabiegiem w systemach automatyki przemysłowej.
Lit era t ura
[1]
[2]
[3]
[4]
[5]
http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/ug873-zynq-ctt.pdf
https://www.digilentinc.com/Data/Products/ZYBO/ZYBO_RM_B_V6.pdf
http://www.asimo.pl/teoria/regulatory_dzialanie_ciagle.php
Z. Haj d u k, Wprowadzenie do języka Verilog, wydawnictwo BTC, 2009
http://www.ni.com/tutorial/3116/en/

Podobne dokumenty