• Nie Znaleziono Wyników

Stanowisko pomiarowe z platformą PXI

W dokumencie Index of /rozprawy2/10812 (Stron 73-83)

Rozdział 5 Eksperymenty rzeczywiste

5.1 Stanowisko pomiarowe z platformą PXI

W celu zbadania możliwości estymacji wartości skutecznej za pomocą proponowanej metody próbkowania pseudoprzypadkowego zostały przeprowadzone badania laboratoryjne. Pierwsze eksperymenty przeprowadzone zostały na rekonfigurowalnym urządzeniu o wysokiej dokładności.

5.1.1 Budowa stanowiska

Stanowisko do weryfikacji estymacji wartości skutecznej zbudowane zostało z następujących elementów:

 Platforma PXI z kartą pomiarową (opisana w rozdziałach 5.1.2 oraz . 5.1.3.

 Komputer PC zarządzający transmisją

 Generator przebiegów (opisany w rozdziale. 5.1.6)

Całe stanowisko generuje przebieg o zadanych parametrach, próbkuje go oraz następnie oblicza jego wartość skuteczną. Generowany sygnał jest próbkowany losowo za pomocą karty pomiarowej pracującej w kasecie platformy PXI. Wartość skuteczna sygnału estymowana jest z jego próbek rejestrowanych w sposób losowy w kontrolerze PXI, a następnie zapisywana na dysk twardy. Następnie przesyłana jest ona do komputera PC, który przesyła do generatora sygnału kolejny zestaw danych. W eksperymentach zastosowano sygnały sinusoidalne oraz trójkątne o różnych częstotliwościach. Schemat stanowiska przedstawiono na Rys. 5-2.

Rys. 5-2 Schemat stanowiska z platformą PXI

5.1.2 Platforma PXI

Komputer przemysłowy PXI jest to platforma firmy National Instruments przystosowana do precyzyjnych pomiarów, dedykowana do pracy w warunkach znacznych zakłóceń. Platforma posiada specjalne linie synchronizujące, które pozwalają uzyskać taki sam czas propagacji sygnału pomiędzy kartami w niej zainstalowanymi. Zaletą tego urządzenia jest zastosowanie w nim zmodyfikowanego protokołu PCI, który umożliwia podłączenie dużej gamy zestandaryzowanych kart pomiarowych. Protokół PXI (PCI eXtensions for Instrumentation) jest zoptymalizowany na przesyłanie danych z urządzeń podpiętych do tej magistrali z dużą odpornością na zakłócenia. Kaseta systemu PXI posiada przystosowany do dokładnych pomiarów blok zasilania i bardzo dobre ekranowanie.

W projekcie zastosowano kastę NI PXI-1042Q. Do kasety dołączono moduł NI PXI8106 stanowiący kompletny komputer z dwurdzeniowym procesorem 2,16 GHz, dyskiem twardym 60Gb oraz wyprowadzonymi standardowymi portami DVI, RS232C, usb i Ethernet. Moduł ten został przez producenta wyposażony w klasyczny system operacyjny Windows XP, tym samym cała kaseta PXI widziana jest z perspektywy użytkownika jako komputer klasy PC.

5.1.3 Karty pomiarowe

Ze względu na ograniczenia sprzętowe w programowym wyzwalaniu pomiaru, opisywanym w Roz. 3.3, większość dostępnych w sprzedaży kart pomiarowych nie nadaje się do realizacji losowego próbkowania. Zaimplementowanie na nich proponowanej metody skutkuje wydłużeniem całkowitego czasu pomiaru, co może dyskwalifikować algorytm.

W sprzedaży istnieją karty pomiarowe, które w swojej strukturze oprócz układów kondycjonujących, przetwarzania analogowo-cyfrowego oraz transmisji danych, zawierają układ programowalny FPGA udostępniony dla użytkownika karty, co pozwala na uzyskanie

niestandardowych sposobów działania karty. Zegar układu FPGA pracuje dużo szybciej niż zegar systemu zarządzającego kartą. Umożliwia to wykonanie prostych obliczeń online przy bardzo krótkich czasach przetwarzania. Z tego względu w stanowisku zastosowano tego typu karty.

Użyto dwóch kart pomiarowych FPGA:

PXI-7833R opartą o układ FPGA Virtex II V3000 z 3 milionami makroceli, pracujący z

częstotliwością do 200MHz. Karta jest wyposażona w osiem 16-bitowych, kompensacyjnych przetworników analogowo-cyfrowych. Maksymalna częstotliwość próbkowania to 200 ksps. Zastosowanie ośmiu niezależnych przetworników wraz z układem FPGA umożliwia programowanie parametrów próbkowania oddzielnie dla każdego wejścia analogowego. Karta umożliwia przesył danych do jednostki zarządzającej za pomocą kanałów DMA.

PXI-7853R wykorzystaną tylko do części eksperymentów. Karta serii PXI-7853R jest

nowszą wersją karty PXI-7833R, opartą o układ FPGA Virtex-5 LX85 i wyposażoną w osiem 16 bitowych przetworników analogowo-cyfrowych, kompensacyjnych, pracujących z maksymalną częstotliwością 750 ksps.

5.1.4 Środowisko programistyczne

Do budowy aplikacji zarządzającej systemem pomiarowym zastosowano środowisko LabVIEW[65]. Środowisko to jest oparte o graficzny język programowania, w którym struktura programu jest rysowana w postaci bloków, a nie pisana. Znacząco przyspiesza to przygotowanie aplikacji prototypowych, zwłaszcza w przypadku wykorzystania różnych urządzeń i korzystania z wielu protokołów komunikacyjnych. Środowisko jest zoptymalizowane pod kątem szybkiego budowania aplikacji operujących na elektronicznym sprzęcie pomiarowym.

W przypadku przedstawionego systemu, zaletą oprogramowania LabVIEW jest dostępność wbudowanych bibliotek obsługujących magistralę PXI, karty pomiarowe, karty FPGA, a także umożliwienie szybkiej konfiguracji systemu pomiarowego zbudowanego z wymienionych elementów. Przy budowie aplikacji, zarówno dla systemu Windows, systemu czasu rzeczywistego jak i FPGA, programista korzysta z podobnej struktury programowej.

5.1.5 System operacyjny

Kaseta PXI musi działać pod nadzorem systemu operacyjnego w celu przesyłania wyników pomiarów. Zastosowany przez producenta system Windows, nie ma możliwości bezpośredniego dostępu do danych z kanału DMA karty pomiarowej. Jedyną możliwością jest transmisja za pomocą przerwań. W przypadku budowy aplikacji korzystającej z transmisji ciągłej zastosowanie przerwań nie jest metodą najefektywniejszą pod względem obciążenia systemu operacyjnego. Lepiej jest zastosować mechanizm oparty o kanały DMA. Wymaga to jednak użycia systemu operacyjnego z precyzyjnie zdefiniowanymi zależnościami czasowymi. Takimi systemami są systemy czasu rzeczywistego. W projekcie zastosowano system operacyjny LabVIEW RT, oparty o system operacyjny czasu rzeczywistego PharLab. Korzyścią

z wykorzystania tego systemu jest ujednolicenie metod budowania wszystkich pracujących w systemie aplikacji oraz wykorzystanie wbudowanych w system bibliotek obsługujących zastosowane karty pomiarowe oraz kasetę PXI.

5.1.6 Generator sygnałowy

Do pomiaru zastosowano generator arbitralny AWG 33210A firmy Agilent. Umożliwia on generację sygnałów (sinusoidalnych, prostokątnych, trójkątnych oraz szumu) o definiowanych parametrach, takich jak np. współczynnik wypełnienia. Częstotliwość generowanego sygnału można zmieniać od 1mHz do 10 MHz. Wartość międzyszczytowa generowanego sygnału może przyjmować wartości od 10mV do 10V. Przetworniki cyfrowo-analogowe generatora dysponują rozdzielczością 14 bitów i częstotliwością odświeżania 50MHz. Ważną funkcjonalnością generatora jest posiadanie 3 interfejsów komunikacyjnych: USB, GPIB oraz Ethernet. Producent generatora udostępnia bibliotekę, pozwalającą na sterowanie nim z poziomu środowiska LabVIEW. Rezygnacja z zastosowania generatora wbudowanego w systemie PXI na rzecz generatora zewnętrznego jest zabiegiem celowym. Próbkowanie z tym samym zegarem, bądź synchronizowane tym samym sygnałem mogłoby w tym przypadku skutkować zafałszowaniem wyników.

5.1.7 Oprogramowanie

Oprogramowanie składa się z 3 oddzielnych części napisanych w środowisku LabVIEW:

 aplikacji działającej na karcie pomiarowej FPGA

 aplikacji działającej na systemie czasu rzeczywistego (RT) kontrolera PXI

 aplikacji działającej na komputerze PC- zadającej parametry akwizycji

Sposób rozwiązania komunikacji pomiędzy poszczególnymi elementami oprogramowania przedstawia Rys. 5-2 na stronie 74. Pomiędzy kartą FPGA, a aplikacją pracującą na systemie czasu rzeczywistego komunikacja odbywa się za pomocą buforów DMA opisanych w podrozdziale 5.1.8. Pomiędzy aplikacją pracującą na komputerze PC, a aplikacją pracującą na systemie czasu rzeczywistego działa transmisja oparta o protokół TCP-IP.

Z uwagi na pracę w warunkach przemysłowych, system powinien rozpocząć działanie bez żadnej konfiguracji. Funkcjonalność ta została zrealizowana. Po włączeniu zasilania PXI automatycznie rozpoczyna akwizycję na wbudowany dysk twardy.

Parametry konfiguracyjne mogą być zadawane za pomocą dowolnego komputera z zainstalowaną aplikacją kliencką, która może również sterować pracą PXI. Aplikacja kliencka komunikuje się z PXI za pośrednictwem sieci TCP-IP. Po zadaniu parametrów konfiguracyjnych i zapisaniu ich, komputer może zostać odłączony, a aplikacja na PXI będzie dalej przeprowadzać pomiar. Zaprojektowany specjalnie do tego rozwiązania system przesyłu danych za pomocą TCP-IP jest odporny na błędną transmisję oraz na zerwanie komunikacji w trakcie transmisji.

5.1.8 Aplikacja karty FPGA

Aplikacja na karcie FPGA odpowiada za odczyt danych z przetworników analogowo-cyfrowych oraz konstrukcję ramki wysyłanej do systemu LabVIEW RT. Część komórek pamięci RAM układu FPGA przeznaczono do buforowania transmisji. Program na FPGA pracuje z częstotliwością 40MHz, podczas gdy program odbierający dane w systemie LabVIEW RT pracuje wolniej. Do zachowania ciągłości przetwarzanych danych konieczne jest użycie mechanizmu bufora DMA.

Dane szeregowo wpisywane są do bufora DMA z dużą prędkością. Pobieranie danych może być wolniejsze, przy założeniu że podczas jednego odczytu odebrana będzie większa ilość danych. Przykładowo, jeżeli odbieranych będzie 5 danych na raz, to odbiór danych z bufora może być 5 razy wolniejszy niż wpisywanie do bufora. Na podobnej zasadzie może odbywać się transmisja odwrotna, polegająca na równoległym a wolnym wpisywaniu danych i odczytywaniu ich szybko, ale pojedynczo. Co istotne, bufor DMA może być w tym samym czasie zapisywany i odczytywany. Bufor DMA jest również korzystny ze względu na równomierność transmisji. Dane z części FPGA, ze względu na losowe próbkowanie, przesyłane są do aplikacji na systemie RT nierównomiernie. Bufor ten pozwala na zadanie pożądanych zależności czasowych powodujących równomierne obciążenie procesora.

W aplikacji na karcie FPGA zastosowano dwa bufory DMA. Pierwszy o kierunku przepływu od FPGA do procesora hosta, przeznaczony do wyprowadzania spróbkowanych danych. Drugi, o kierunku odwrotnym, do przesyłania wartości losowych wygenerowanych w systemie RT do karty FPGA celem opóźnienia ich wyzwolenia.

Podczas eksperymentu wykorzystywane jest wszystkie osiem 16-bitowych przetworników karty pomiarowej, co oznacza jednorazowe pobranie 128 bitów danych. Maksymalna ilość danych w pojedynczej komórce pamięci bufora DMA wynosi 64 bity. Zdecydowano o przesłaniu wszystkich danych w strukturze 3 ramek tak, aby możliwe było zidentyfikowanie ramki przy początku komunikacji. Struktura ramki przedstawiona jest na Rys. 5-3.

5.1.9 Aplikacja działająca w systemie RT

Aplikacja działająca w systemie czasu rzeczywistego składa się z 5 wątków. Zastosowanie wątków w programie było podyktowane zmiennym obciążeniem aplikacji przy jednoczesnym wymaganiu przetworzenia dużej ilości danych bez ich utraty. Struktura wątków oraz komunikacji pomiędzy nimi przedstawiona została na Rys. 5-4

Rys. 5-4 Schemat wątków i komunikacji między nimi w aplikacji RT

Każdy z wątków pracuje z własnym priorytetem. Najbardziej krytyczny czasowo jest wątek wyzwalania pomiaru, następnie wątek akwizycji danych odpowiadający za odbiór danych z karty FPGA. Następny w kolejności jest watek zapisu do pliku danych. Najniższy priorytet posiadają wątki interfejsu użytkownika oraz komunikacji, odpowiadającej za przesył danych do sterującego systemem komputera PC, podłączonego za pomocą sieci Ethernet.

Komunikacja pomiędzy wątkami odbywa się za pomocą trzech różnych mechanizmów.

Kolejka FIFO która jest klasycznym sposobem komunikacji[66]. Dane są buforowane

przed przetworzeniem wraz z zachowaniem kolejności ich przesyłania. Pierwszy element trafiający do bufora jest również pierwszym elementem opuszczającym.

Notifier który jest sposobem komunikacji podobnym do kolejki. Różnica pomiędzy

nimi polega na tym, że nie obsłużony element notifiera w określonym, zadanym wcześniej czasie traci ważność i jest automatycznie usuwany. Jest to sposób mniej obciążający niż kolejka, zwłaszcza tam gdzie dane są nadmiarowe i nie muszą być wszystkie obsłużone (np. przy obsłudze interfejsu użytkownika).

Zmienna globalna jest sposobem komunikacji, gdzie wiele wątków może zapisywać

lub odczytywać jednocześnie z jednej zmiennej. Zaletą tego rodzaju komunikacji jest łatwość przesyłania danych tam gdzie występuje wielu nadawców i jeden odbiorca. Przesyłanie danych odbywa się przy użyciu najmniejszych zasobów systemowych. Wadą tego rozwiązania jest to, że ogranicza się tylko do transmisji małej ilości danych i to z założeniem że informacja od dwóch jednocześnie pracujących nadawców będzie utracona.

5.1.10 Wątek wyzwalania przetwarzania A/C

Wątek wyzwalania odpowiada za losowe wyzwalanie przetwornika analogowo-cyfrowego. Generuje on losowe wartości, które następnie są przesyłane przez bufor DMA do aplikacji pracującej na karcie FPGA. Parametry losowania MinCPP = 1ms, MaxCPP = 5ms , RLos = 250, LAP = 800 są stałe dla stanowiska. Zostały one dobrane do badanego do zakresu częstotliwości sygnałów wejściowych 1kHz-30kHz przy pomocy metodyki przedstawionej w rozdziale 4. W wątku zastosowano zaimplementowaną w LabVIEW funkcję generatora losowego opisaną w Roz. 3.4.5. Komunikacja pomiędzy wątkiem a resztą programu realizowana jest za pomocą kolejki, którą przesyłane jest tylko polecenie zakończenia wątku przy zakończeniu programu.

5.1.11 Wątek akwizycji

Wątek akwizycji służy do odbioru danych z bufora DMA oraz dekodowania danych zmierzonych. Do zdekodowania ramki zastosowano technikę przetwarzania równoległego opartego, o dodatkową pamięć – pipeling, czasami nazywanego przetwarzaniem potokowym. Schemat działania pipelingu przedstawiono na Rys. 5-5.

Rys. 5-5 Zasada działania Pipelingu

Przedstawiona technika umożliwia uzyskanie większej szybkości przetwarzania. Niestety posiada ona wadę. Im więcej zastosujemy równoległych obliczeń tym później od momentu rozpoczęcia programu zwrócony zostanie prawidłowo przetworzony wynik. Dla przykładu z Rys. 5-5, bez zastosowania pipelingu, prawidłowy wynik zostanie zwrócony po jednym cyklu pracy wynoszącym 4 cykle zegarowe. Po jego zastosowaniu 1 cykl pracy to tylko 2 cykle zegarowe, natomiast pierwszy poprawny wynik zostanie uzyskany dopiero po 3 cyklach pracy. W przypadku aplikacji dedykowanej do pomiarów ciągłych można tą wadę pominąć.

Podczas eksperymentów na stanowisku laboratoryjnym pomiar rozpoczynał się po odebraniu komendy gdzie zebrane próbki były już prawidłowo przetworzone.

Wątek akwizycji wysyła dane za pomocą kolejki, buforując je ponownie w wątku zapisu na dysk. Za pomocą notifiera wysyła również te same dane do wątku interfejsu użytkownika, który umożliwia podgląd danych aktualnie mierzonych. Podgląd danych jest używany tylko do weryfikacji poprawności systemu, dlatego wyświetlane jest jednocześnie tylko tyle danych, na ile pozwala percepcja przeciętnego człowieka. Dodatkowo, do wątku doprowadzona jest kolejka, która umożliwia poprawne zamknięcie wszystkich wątków w przypadku wyłączenia programu.

5.1.12 Wątek zapisu do pliku

Wątek zapisu do pliku działa tylko wtedy gdy program ma zapisywać dane na dysk. Schemat maszyny stanów realizującej wątek zapisu do pliku przedstawiono na Rys. 5-6.

Rys. 5-6 Schemat funkcjonalny pracy wątku zapisu danych

Sterowanie pracą maszyny odbywa się za pomocą zmiennej globalnej, pochodzącej z wątku komunikacyjnego lub też bezpośrednio z wątku interfejsu użytkownika. Realizacja takiego sterowania jest możliwa przy użyciu wbudowanego mechanizmu LabVIEW, który umożliwia podgląd wykonywanego programu na innym urządzeniu za pomocą protokołu sieciowego. Niestety jest to rozwiązanie mocno obciążające łącze komunikacyjne a także system RT, dlatego powinno się go unikać. Z wątku przekazywana jest informacja na temat aktualnego stanu wątku oraz pliku zapisywanego.

5.1.13 Wątek interfejsu użytkownika

Wątek interfejsu użytkownika odpowiada za wyświetlanie podglądu aktualnych danych zebranych oraz ich okresowe przesyłanie do wątku transmisji. Wątek ten został wydzielony z wątku zapisu do pliku z uwagi na to, że operacje graficzne są obciążające. Samo wyświetlanie grafiki może pracować z niższym priorytetem.

5.1.14 Wątek komunikacji

Wątek komunikacji uruchamia serwer TCP-IP. Kiedy do ustalonego portu serwera podłączony zostanie klient rozpoczyna się transmisja danych. Klientem w tym programie jest aplikacja na komputerze PC. W całej aplikacji na komputerze PC znajdują się dwie zmienne globalne. Pierwsza z nich zawiera dane wysyłane z systemu RT. Przykładowo będą to informacje o pliku czy zakończeniu zapisu serii danych lub też podgląd danych zmierzonych. Dane te następnie, w tym wątku, przetwarzane zostają na ciąg znaków wysyłany pakietowo do klienta.

Dane przychodzące od komputera PC do aplikacji pracującej w systemie RT przesyłane są w postaci ciągu znaków w pakietach. Każda dana w pierwszej części zawiera identyfikujący ją nagłówek. W omawianym wątku pakiety danych są zamieniane na dane sterujące komputer RT i umieszczane w drugiej zmiennej globalnej. Dostęp do niej jest możliwy z pozostałych wątków tak jak to przedstawiono na Rys. 5-4

5.1.15 Aplikacja na komputerze PC

Aplikacja pracująca na komputerze PC składa się z jednego wątku. Obejmuje dwie funkcjonalności. Pierwsza z nich to nawiązanie komunikacji z systemem czasu rzeczywistego poprzez protokół TCP-IP. Wysyłane i odbierane są dane opisane w Roz. 5.1.14. Drugą funkcjonalnością aplikacji jest sterowanie pracą generatora sygnałowego Roz. 5.1.6. Schemat funkcjonalny aplikacji przedstawiono na Rys. 5-7

Rys. 5-7 Schemat funkcjonalny pracy aplikacji na komputerze PC

Aplikacja wysyła zadane parametry sygnału do generatora, a następnie oczekuje przez jedną sekundę na ustabilizowanie się generowanego przebiegu. Wysyłane jest żądanie zapisu określonej ilości estymat wartości skutecznej. Zmiana parametrów generatora możliwa jest dopiero po tym, jak aplikacja na komputerze RT zgłosi zakończenie zapisu na dysk. Schemat komunikacji, w zależności od konkretnego stanu, przedstawiony jest na Rys. 5-8

W dokumencie Index of /rozprawy2/10812 (Stron 73-83)

Powiązane dokumenty