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/