Program Rozwojowy Politechniki Warszawskiej, Zadanie 36 Przygotowanie i modernizacja programów studiów oraz materiałów dydaktycznych na Wydziale Elektrycznym Laboratorium projektowania skupionych i rozproszonych systemów pomiarowych Ćwiczenie Projektowanie i realizacja przyrządu wirtualnego ze zdalnym dostępem. Instrukcje do ćwiczenia i dodatkowe materiały przygotowano i zmodernizowano przy wykorzystaniu środków otrzymanych w ramach Zadania 36 Programu Rozwojowego Politechniki Warszawskiej Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego.
1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie studenta z zagadnieniami związanymi ze sposobem realizacji zdalnego dostępu do przyrządu pomiarowego. W ramach ćwiczenia zaprezentowana zostanie problematyka związana z realizacją wielodostępu oraz autoryzacji i autentykacji w systemach pomiarowych. W trakcie ćwiczenia student nabierze praktycznych umiejętności z zakresu budowy aplikacji pomiarowej umożliwiającej zdalny dostęp do przyrządu pomiarowego. 2. Wprowadzenie teoretyczne Model wirtualnego przyrządu pomiarowego jest podłączony do reszty systemu za pośrednictwem dwóch interfejsów RS232/RS485 i połączenia ethernetowego (w zależności od wersji ćwiczenia). Za pośrednictwem interfejsu szeregowego RS232 lub RS485 aplikacja napisana w środowisku LabVIEW umożliwia pełen monitoring i sterowanie funkcjami urządzenia bezpośrednio z interfejsu użytkownika. Aplikacja serwera pomiarowego posiada wbudowaną funkcję usługi sieciowej za pośrednictwem, której następuje dystrybucja danych oraz w zależności od uprawnień możliwość dokonywania nastaw urządzenia. Architektura systemu została przedstawiona na poniższym rysunku. RS232/485 LAN Rys. 1. Architektura systemu z wykorzystaniem modelu wirtualnego przyrządu pomiarowego. Połączenie ethernetowe jest podłączone także do wewnętrznego serwera sieciowego modelu wirtualnego przyrządu pomiarowego wyposażonego w usługę sieciową oraz prostą aplikację webową do zarządzania ustawieniami sieciowymi WPP. Za pośrednictwem wewnętrznej usługi sieciowej istnieje także możliwość monitoringu pracy urządzenia. Rys. 2. Model fizyczny wirtualnego przyrządu pomiarowego (widok pulpitu operatora) str. 2
Model wirtualnego przyrządu pomiarowego jest zbudowany z następujących modułów: PLC MicroSmart moduł Ethernet/WebSerwer typ FC4A-SX5ES1E, MicroSmart CPU Slim typ FC5A-D16RS1, MicroSmart moduł 4 wejść analogowych uniwersalny typ FC4A-J4CN1, Pulpit dotykowy mono. 300x100 typ HG1F-SB22BF-W, PLC MicroSmart RS232 do FC5A typ FC5A-SIF2, Zasilacz na szynę DIN, 24V, 60W typ PS5R-SD24 Zasilanie pierwotne uniwersalne (85 264VAC, 50/60Hz, 110 350VDC) Zespołu 8 szt. przełączników NC-NO-(NC). Wyłącznik różnicowo-prądowy 16A/10mA. Rys. 3. Model fizyczny wirtualnego przyrządu pomiarowego (widok od strony sterownika PLC) Aplikacja serwera pomiarowego posiada tez możliwość symulacji WPP lub pobierania danych z karty DAQ podłączonej do modułu testowego do kart DAQ. Architektura serwera pomiarowego przedstawiona została na poniższym rysunku. LAN Rys. 4. Architektura systemu z wykorzystaniem symulatora bądź kart DAQ. Dodatkowo stanowisko zostało wyposażone w interfejs pomiarowy i symulator autonomicznego przyrządu pomiarowego. str. 3
Oprogramowanie modelu wirtualnego przyrządu pomiarowego składa się z trzech zasadniczych części: 1. Aplikacji napisanej w NI LabVIEW uruchomionej na serwerze pomiarowym. 2. Aplikacji klienckiej napisanej w NI WebUIBuilder. 3. Usługi sieciowej uruchomionej bezpośrednio na wbudowanym serwerze www wirtualnego przyrządu pomiarowego. Zastosowanie aplikacji pośredniczącej w komunikacji pomiędzy klientami i modelem WPP podyktowana jest koniecznością zarządzania zapytaniami do urządzenia oraz monitorowaniem i natychmiastową rekcją na ewentualne alarmy. Aplikacja zarządzająca uruchomiona na serwerze pomiarowym odpytuje WPP pod kontem alarmów i newralgicznych parametrów pracy w regulowanych (od 1 do 10 s) przez operatora odstępach czasowych. Odświeżanie wszystkich parametrów pracy urządzenia na interfejsie aplikacji zarządzającej odbywa się niezależnie w regulowanych przez użytkownika odstępach czasowych (1 min 60 min). Aplikacja uruchomiona na serwerze pomiarowym posiada wbudowane funkcje usługi sieciowej służące do dystrybucji danych pomiarowych oraz do wykonywania sterowań. Zabezpieczenie dostępu do funkcji udostępnianych za pośrednictwem usługi sieciowej jest realizowane z wykorzystaniem kontroli dostępu opartej na nazwie użytkownika oraz haśle. Dodatkowo można określać poziom uprawnień a co za tym idzie także i funkcji dostępnych dla użytkownika. W zależności od stosowanej polityki zabezpieczeń komunikacja z usługą sieciową może odbywać za pośrednictwem szyfrowanego kanału wykorzystującego protokół SSL. W obecnej wersji funkcjonalność ta nie została uruchomiona. W aplikacji zaimplementowano obsługę trzech uprawnień: Administrator - pozwala na dostęp do wszystkich funkcji aplikacji oraz do konfiguracji aplikacji. Operator umożliwia podgląd i wykonywanie sterowań bez dostępu do konfiguracji urządzenia Użytkownik monitoringu umożliwia podgląd bieżących wartość i alarmów. Do zarządzania grupami i użytkownikami wykorzystywane jest oryginalne narzędzie dostarczane wraz z pakietem LabVIEW o nazwie Domain Account Manager pozwalające na utworzenie domeny, użytkowników i grup niezależnie od kont systemowych. Rys. 3. Narzędzie Domain Account Manager służace do zarządzania użytkownikami i gupami. Narzędzie DAM (Domain Account Manager) umożliwia zarządzanie prawami stacji roboczej oraz całych podsieci w ramach domeny. DAM używa jednokierunkowej funkcji haszującej do przechowywania i transmitowania hasła poprzez sieć komputerową. Zastosowanie tej technologii nie pozwala na odtworzenie pierwotnej wersji hasła użytkownika. Dodatkowo DAM pozwala na określanie uprawnień dostępu w oparciu o adresy IP i ich maski lub w oparciu o prefix domeny. str. 4
Rys. 4. Konfiguracja dostępu do domeny. Jak już wspomniano wcześniej kontrola dostępu oparta została o konta użytkownika oraz hasło. Zabezpieczenie dostępu do usług systemu zostało zaimplementowane dwupoziomowo. Pierwszym elementem ochrony dostępu do zasobów aplikacji sieciowej jest ochrona usług sieciowych. Polega ona na autoryzacji aplikacji klienta uprawniającej do korzystania z usługi sieciowej zrealizowana za pomocą losowego 128 bitowego klucza dostępu. Technika ta jest często stosowana i uniemożliwia przeprowadzanie podstawowego ataku typu DoS oraz próby brutalnego łamania haseł użytkownika. Po poprawnej autoryzacji klienta (aplikacji) następuje autoryzacja użytkownika. Algorytm działania przedstawiony został poniżej. Rys. 7. Algorytm autoryzacji aplikacji i użytkownika. str. 5
Akwizycja danych pomiarowych udostępnianych usłudze sieciowej może odbywać się równocześnie z monitorowaniem alarmów urządzenia lub w odstępach czasowych regulowanych przez operatora. Wywołanie zapytania przez klienta zdalnego wykorzystującego usługę sieciową nie powoduje przesłania zapytania do wirtualnego przyrządu pomiarowego a jedynie do aplikacji serwera. Usługa sieciowa korzysta z technologii Network-Published Shared Variable (NPSV) do komunikacji z aplikacją serwera pomiarowego. Użycie technologii NPSV podyktowane było izolacją usługi sieciowej od reszty zasobów systemu operacyjnego oraz możliwością zdalnego dostępu do tych zmiennych z dowolnego miejsca i z dowolnej aplikacji. Kontrola dostępu do zmiennych NPSV odbywa się także z wykorzystaniem tych samych kont użytkowników i poziomów uprawnień. NPSV jest skalowalne i przystosowane do pracy w czasie rzeczywistym. W aplikacji serwera pomiarowego są dostępne następujące zmienne NPSV (typ string) za pomocą których uzyskuje się dostęp do wartości mierzonych i alarmów: WS_V_Measurements wartości toru pomiaru napięcia WS_V_Alarms status i alarmy toru pomiaru napięcia WS_I_Measurements wartości toru pomiaru prądu WS_I_Alarms status i alarmy toru pomiaru prądu WS_T_Measurements wartości toru pomiaru temperatury oraz parametry prac wentylatora WS_T_Alarms status i alarmy toru pomiaru temperatury WS_DI stan wejść cyfrowych WS_DO stan wyjść cyfrowych WS_O_Measurements wartości pochodzące z generatora liczb losowych oraz funkcji sinus. Wyżej wymienione zmienne NPSV są używane do wymiany informacji pomiędzy usługą sieciową a aplikacją serwera pomiarowego i posiadają przedrostek WS. Aplikacja serwera pomiarowego posiada też kilka zmiennych NPSV związanych z dostępem do informacji o aplikacji, są one poprzedzone przedrostkiem WPP: WPP_HostUri adres uri serwera usługi sieciowej (typ string) WPP_CameraUri adres bieżącej klatki z kamery monitoringu wraz ze ścieżką. WPP_Connected informacja o podłączonym przyrządzie (przyrząd fizyczny, symulacja czy dane z karty DAQ) (typ string) Dostęp do danych z toru pomiarowego prądu lub napięcia uzyskujemy z wykorzystaniem kodu: str. 6
Tor pomiaru napięcia posiada rozbudowany Cluster danych: Dostęp do danych o statusie i alarmach toru pomiarowego uzyskujemy z wykorzystaniem kodu: str. 7
Dostęp do danych wejść i wyjść cyfrowych uzyskujemy z wykorzystaniem kodu: Ostatnią strukturą danych jest Cluster z informacjami wartościach funkcji sinus, czasie i pulsacji oraz informacje z generatora liczb losowych. Drugim sposobem dostępu do danych są usługi sieciowe zaimplementowane w aplikacji serwera pomiarowego wykorzystują bezstanowy protokół komunikacyjny oparty o język XML. Dzięki temu klientem systemu może być aplikacja napisana w dowolnym języku programowania. Wykorzystując środowisko LabVIEW oraz LabVIEW Web Server istnieje możliwość użycia wersji binarnej usług sieciowych. Jest to szczególnie przydatne przy przesyłaniu dużych obiektów danych czy klas pomiędzy aplikacją serwera i aplikacją klienta. Niestety ogranicza to używane narzędzia tylko do technologii firmy National Instrument. str. 8
Użytkownik ma do dyspozycji następujące usługi sieciowe: WS_V_Measurements wartości toru pomiaru napięcia WS_V_Alarms status i alarmy toru pomiaru napięcia WS_I_Measurements wartości toru pomiaru prądu WS_I_Alarms status i alarmy toru pomiaru prądu WS_T_Measurements wartości toru pomiaru temperatury oraz parametry prac wentylatora WS_T_Alarms status i alarmy toru pomiaru temperatury WS_DI stan wejść cyfrowych WS_DO stan wyjść cyfrowych WS_O_Measurements wartości pochodzące z generatora liczb losowych oraz funkcji sinus. WS_WPP_Alarms zbiorcza informacja o alarmach WS_UserLogin funkcja wykonująca logowanie i zwracają podstawowe informacje o użytkowniku i jego uprawnienia użytkownika WPP_CameraUri adres uri z bieżącą klatką z kamery monitoringu. Przykład danych wejściowych i wyjściowych toru pomiaru napięcia: Parametr session in jest tworzony poprzez funkcję autoryzacji użytkownika po porwanej autoryzacji klienta aplikacji. Usługa sieciowa pobierająca dane o stanie wejść i wyjść cyfrowych WPP na wyjściu oddaje tablicę z 8 wierszami zawierającymi wartościami True/False. Indeks tablicy odpowiada indeksowi wyjścia\wejścia cyfrowego. str. 9
Tor pomiaru napięcia posiada rozbudowany Cluster danych wyjściowych w stosunku do pozostałych torów pomiarowych o dane pochodzące ze sterowania wentylatorem: Usługa sieciowa pobierająca dane o wartości funkcji sinus i zmiennej losowej. Przykład kodu realizującego prostą usługę sieciową oraz użycie jej z poziomu kodu LabVIEW został przedstawiony poniżej: Kod usługi sieciowej Wywołanie usługi sieciowej z poziomu kodu LabVIEW Dostęp do aplikacji serwera poza usługą sieciową i NPSC można uzyskać także zdalnie z wykorzystaniem techniki Remote Panels udostępniającej interfejs aplikacji za pośrednictwem przeglądarki internetowej. Nie jest to rozwiązanie uniwersalne gdyż wymaga użycia technologii ActiveX zainstalowanej na komputerze klienckim i zgodnej z nią przeglądarki internetowej. str. 10
2.1. Instrukcja obsługi aplikacji serwera pomiarowego. Na rysunku 2 przedstawione zostało przykładowe okno logowania do aplikacji serwera pomiarowego. Rys.5. Logowanie do systemu. Na rysunku 6 przedstawiono główne okno aplikacji z podglądem na bieżące wartości. Wartości odświeżane są, co określony czas ustawiony przez operatora. Użycie przycisku Odśwież w dowolnym torze pomiarowym wyzwala pomiar. str. 11
Rys. 6. Główne okne aplikacji z podglądem na bieżące wartości widok z konta z uprawnieniami administratora. Alarmy oraz praca wentylatora są monitorowane niezależnie od cyklu pomiarowego. Częstotliwość odczytów można regulować. Dla pomiarów szybko zmiennych dodano funkcje odczytu wartości z częstotliwością monitorowania alarmów. Widok interfejsu użytkownika z uprawnieniami użytkownik monitoringu przedstawiono na rysunku 7. Karta Konfiguracja przyrządu i przyciski umożliwiające zmianę wartości są wyłączone i niewidoczne dla użytkownika. Rys. 7. Główne okne aplikacji z podglądem na bieżące wartości widok z konta z uprawnieniami użytkownika. Kolejne dwie karty pozwalają na podgląd historii 100 ostatnich pomiarów wraz z ustawionymi wartościami maksymalnymi i minimalnymi z każdego toru pomiarowego. Rys. 8. Historia pomiarów. str. 12
Rys.9. Konfiguracja przyrządu. Karta przedstawiona na rysunku 9 umożliwia odczyt oraz konfigurację ustawień przyrządu wirtualnego. Częstość odczytu danych jest ustawiana w minutach w zakresie od 1 do 60 minut. Ustawienie wartości 0 powoduje odczyt z maksymalną możliwą częstotliwością. Procedura odczytu wszystkich wartości ze sterownika PLC zajmuje 565 ms. W przyszłości można dodać opcję wyboru parametrów, jakie mają być odczytywane z maksymalną częstotliwością. Częstość monitoringu alarmów regulowana jest w zakresie od 1 s do 10 s. Z poziomu tej karty istnieje możliwość pobrania danych zapisanych w pamięci sterownika. Dane są zapisywane w pliku tekstowym w popularnym formacie CSV w katalogu aplikacji. Aplikacja wirtualnego przyrządu pomiarowego umożliwia też podgląd monitorowanego systemu z wykorzystaniem kamery. Administrator w zależności od szybkości zachodzących procesów może regulować ilość wysyłanych klatek na sekundę. Dla użytej kamery USB zakres ten wynosi od 0,01 do 25 klatek na sekundę. str. 13
2.2. Instrukcja obsługi aplikacji klienta. Aplikację klienta systemu napisano w środowisku WebUIBuilder firmy National Instrument. Technologia ta umożliwia pisanie fasady aplikacji i uruchamianie jej z wykorzystaniem przeglądarki internetowej z zainstalowaną obsługą SilverLight lub jako niezależną okienkową aplikację wykonywaną w ramach środowiska SilverLight. Język i metodyka programowania jest zbliżona do programowania w LabVIEW lecz posiada znacznie mniej funkcji. Z wykorzystaniem tego środowiska można utworzyć podstawowy kod i logikę aplikacji, natomiast proces przetwarzania danych trzeba zrealizować po stronie serwera. Aplikacja klienta komunikuje się z aplikacją serwera za pośrednictwem usługi sieciowej Aplikacja klienta po uruchomieniu zgłasza się z ekranem logowania użytkownika do systemu. Rys. 10. Logowanie do systemu. Po poprawnej autoryzacji użytkownik uzyskuje dostęp do funkcji WPP. Po włączeniu urządzenia uzyskujemy podgląd urządzenia z kamery monitoringu oraz informacje ogólne pochodzące z torów pomiaru temperatury, napięcia i prądu, a także stan wejść i wyjść cyfrowych. Rys. 11. Informacje ogólne pochodzące z torów pomiaru temperatury, napięcia i prądu, a także stan wejść i wyjść cyfrowych. W przypadku wystąpienia alarmu dioda sygnalizacyjna zostaje włączona. Dodatkowo jeśli użytkownik znajduje się na karcie WPP ma dostęp do informacji w którym torze wystąpił alarm. str. 14
Na poniższym rysunku przedstawiony został ekran toru pomiaru temperatury. W zależności od uprawnień użytkownik ma dostępną funkcję ustawiania temperatury załączenia i wyłączenia wentylatora. Należy ustawić temperaturę i przycisnąć przycisk S nowa wartość temperatury zostanie przesłana do aplikacji serwera. Rys. 12. Tor pomiaru temeratury. Na przedstawionym rysunku widać sygnalizację alarmu. W zakładce Alarm znajdują się szczegółowe informacje na temat zaistniałej sytuacji alarmowej. Rys. 13. Tor pomiaru napiecia. str. 15
Zakładki pomiaru napięcia i prądu posiadają identyczny wygląd. Na wykresach historii pomiarów przedstawione są poza pomiarem bieżącej wartości także wartości maksymalne i minimalne napięć i prądów zapamiętanych przez WPP. Rys. 14. Tor pomiaru prądu. W zależności od uprawnień użytkownik ma możliwość zamiany wartości Rnd max i min. Rys.15. Funkcja sinus i generator losowy. str. 16
Zakładka Alarmy przedstawia stany poszczególnych torów pomiarowych. 3. Harmonogram ćwiczenia. 3.1. Budowa aplikacji serwera pomiarowego. Rys. 16. Wizualizacja alarmów. Pierwszym etapem ćwiczenia jest zbudowanie aplikacji serwera pomiarowego wykorzystującego zmienne NPSV do pobierania danych pomiarowych z modelu wirtualnego przyrządu pomiarowego. Interfejs graficzny aplikacji serwera pomiarowego może być wzorowany na oryginalnej aplikacji przedstawionej na rysunkach 6,7 i 8. Kolejnym etapem rozbudowy aplikacji serwera pomiarowego jest zbudowanie usługi sieciowej wystawiającej ww. dane w sieci. Aplikację należy wyposażyć w prosty algorytm autoryzacji użytkownika w oparciu o konta DAM lub LWSA. 3.2. Budowa aplikacji klienta systemu w środowisku LabVIEW. Drugim etapem ćwiczenia jest zbudowanie klienta systemu komunikującego się z aplikację serwera pomiarowego z wykorzystaniem usługi sieciowej. Sposób organizacji danych usług sieciowych został przedstawiony we wstępie teoretycznym. 3.3. Budowa klienta systemu do pracy z przeglądarką internetową. Ostatnim etapem ćwiczenie jest zbudowanie aplikacji klienta pozwalającego na zdalny dostęp do funkcji WPP z poziomu przeglądarki internetowej. Aplikacja klienta zostanie napisana w środowisku WebUIBuilder, a do komunikacji z aplikacją serwera pomiarowego użyte zostaną usługi sieciowe. Przykładowe ekrany interfejsu użytkownika zostały przedstawione na rysunkach 10-16. str. 17
str. 18