1 Programowanie w języku G - Laboratorium 12 Ćwiczenie 12.1 Budowa aplikacji (1) Cel: Wykorzystanie utworzonego uprzednio programu Login.vi do kontroli dostępu do tworzonej aplikacji. Celem kolejnych ćwiczeń będzie utworzenie aplikacji wykorzystującej jako podprogramy, programy utworzone w czasie poprzednich zajęć. Pierwszym krokiem będzie dodanie procedury logowania (Login.vi z ćw. 10.1) do programu obsługi panelu (Menu.vi z ćw. 9.3). Panel czołowy 1. Otworzyć panel programu Menu.vi utworzonego w czasie ćwiczenia 9.3. 2. Zamieścić wskaźnik łańcuchowy /tekstowy String Indicator (paleta Controls /Text Indicators /String Indicator) i nadać mu etykietę Operator. 3. Zmieścić wskaźnik logiczny w postaci kwadratowej diody LED (paleta Controls /LEDs /Square LED) i nadać mu etykietę Dostęp przyznany. Tworzony program będzie posiadał taką funkcjonalność, że do momentu wprowadzenia przez użytkownika wymaganej nazwy Operatora i hasła użytkownik będzie mógł korzystać tylko z przycisków Logowanie i Stop. 4. Przejść do schematu blokowego. Schemat blokowy 1. Na bieżącym etapie modyfikacjom podlegała będzie zawartość pętli warunkowej (While Loop) oraz przypadki -1 i 0 struktury wyboru (Case Structure). Podprogram Login.vi powinien być wywoływany w momencie naciśnięcia przez użytkownika przycisku Logowanie panelu sterowania, co odpowiada przypadkowi 0 struktury wyboru. W ramce tego przypadku należy usunąć funkcję okna dialogowego One Button Dialog i zastąpić ją programem do obsługi logowania Login.vi. 2. Dodatkowe modyfikacje schematu blokowego polegają na: a) Wprowadzeniu inicjacji wskaźnika Operator za pomocą pustego łańcucha (paleta Functions /All Functions /String /Empty String Constant) w chwili uruchomienia programu. b) Jeśli program Login.vi zwróci wartość False (odpowiadającą niezgodności nazwy operatora i hasła ze zmagazynowanymi w tabeli) wskaźnik Operator wyświetli pusty ciąg. Programowanie w języku G strona 1
c) Zamieszczeniu dwóch rejestrów przesuwnych (Shift register) do przechowywania danych w kolejnych iteracjach pętli. Rejestry przechowują informację o nazwie Operatora i stanie Przyznanego dostępu. Należy upewnić się, że w przypadkach struktury Case innych niż 0 zawsze występują połączenia tuneli wejściowych i wyjściowych rejestru. 2 d) Zamieszczeniu dwóch rejestrów przesuwnych (Shift register) do przechowywania danych w kolejnych iteracjach pętli. Rejestry przechowują informację o nazwie Operatora i stanie Przyznanego dostępu. e) Wprowadzeniu inicjacji rejestru przesuwnego stanem logicznym False (paleta Functions /All Functions /Boolean /False Constant). f) Należy upewnić się, że w przypadkach struktury Case 1, 2, 3, 4 zawsze występują połączenia tuneli wejściowych i wyjściowych rejestru. Jeśli brak takich połączeń, należy je wykonać. 3. Zmodyfikować przypadek -1 struktury wyboru zgodnie z zamieszczonym dalej schematem. Rejestry przesuwne Operator i Dostęp przyznany mogą zmienić swoje wartości tylko w przypadku 0 struktury wyboru. Pętla pozwala kontrolować stany logiczny rejestru Dostęp przyznany. Jeżeli jedna z wartości logicznych Dostęp przyznany, naciśnięcie przycisku Stop (składnik 4 klastra menu) lub naciśnięcie przycisku Logowanie (składnik 0 klastra menu) ma wartość True, możliwe jest określenie, który z kolejnych przypadków struktury Case będzie wykonywany. W innym przypadku wykonywany jest za każdym razem przypadek -1. Programowanie w języku G strona 2
3 4. Uruchomić program i skontrolować poprawność jego funkcjonowania. W celu określenia drogi strumienia danych, można wykorzystać narzędzia analizy błędów środowiska LabVIEW tj.: podświetlanie wykonywania (execution highlighting), wykonywanie krokowe (single-stepping), probówki i breakpointy. 5. Zapisać program pod nazwą Application Exercise 1.vi, ale nie zamykać okien programu. Ćwiczenie 12.2 Budowa aplikacji (2) Cel: Wprowadzenie do tworzonej aplikacji podprogramu do akwizycji danych. Aplikacja zapisana w programie Application Exercise 1.vi zostanie wzbogacona o podprogram Acquire Data.vi z ćwiczenia 9.2. Schemat blokowy 1. Przejść do okna schematu blokowego Application Exercise 1.vi. Panel czołowy nie będzie podlegał modyfikacjom. 2. W ramce przypadku 1 struktury wyboru, należy usunąć funkcję okna dialogowego One Button Dialog i zastąpić ją programem do obsługi akwizycji danych Acquire Data.vi (efekt ćwiczenia 9.2). 3. Do pętli warunkowej (pętli While) dodać rejestr przesuwny. Do prawej ikony rejestru przyłączyć wyjście Time Waveform programu Acquire Data. 4. Zainicjować komórkę wejściową rejestru przesuwnego. W tym celu wybrać wejście lewego rejestru prawym przyciskiem myszy, a potem polecenia Create i Control. Spowoduje to utworzenie pustej kontrolki sygnału przebiegu (Time Waveform). Programowanie w języku G strona 3
5. Ukryć kontrolkę inicjowania rejestru Time Waveform. Ukrycie spowoduje usunięcie obiektu kontrolki z panelu czołowego. Ukrywanie przeprowadza się za pomocą polecenia z menu kontekstowego kontrolki - Hide Control. 6. Wykonać brakujące połączenia tuneli wejściowych i wyjściowych rejestru w pozostałych przypadkach struktury Case tj.: -1, 0, 2, 3, 4. 7. Skonfigurować właściwości programu Acquire Data tak, aby w momencie jego wywołania (załadowania) wyświetlany był w postaci okna dialogowego. W tym celu należy: a) dwukrotnie kliknąć ikonę programu Acquire Data, aby otworzyć jej panel czołowy; b) z menu File wybrać polecenie VI Properties, a z listy rozwijanej Window Appearance. Wybrać opcję Dialog; c) wybrać przycisk OK., aby zamknąć okno właściwości; d) zapisać plik programu i zamknąć jego okno. 8. Uruchomić program i skontrolować poprawność jego funkcjonowania zwłaszcza w zakresie wprowadzonych zmian. 9. Zapisać program pod nazwą Application Exercise 2.vi, ale nie zamykać okien programu. 4 Ćwiczenie 12.3 Budowa aplikacji (3) Cel: Końcowe uzupełnienie tworzonej aplikacji (Application Exercise 2.vi) przez wprowadzenie podprogramów do analizy danych (podprogram Analyze & Present Data.vi z ćwiczenia 9.6) i przeglądania danych plikowych (podprogram View Analysis File.vi z ćwiczenia 11.4). Schemat blokowy 1. Otworzyć okno schematu blokowego Application Exercise 2.vi. Panel czołowy nie będzie podlegał modyfikacjom. 2. W ramce przypadku 2 struktury wyboru, należy usunąć funkcję okna dialogowego One Button Dialog i zastąpić ją programem do analizy danych Analyze & Present Data.vi (efekt ćwiczenia 9.6). 3. Podłączyć zmienną łańcuchową Operator do wejścia Operator programu Analyze & Present Data. 4. Podłączyć zmienną przebiegu (Time waveform) do wejścia Data programu Analyze & Present Data. Programowanie w języku G strona 4
5. W ramce przypadku 3 struktury wyboru, należy usunąć funkcję okna dialogowego One Button Dialog i zastąpić ją programem do przeglądania danych plikowych View Analysis File.vi z ćwiczenia 11.4). Wykonywanie dodatkowych połączeń nie jest wymagane. 5 6. Skontrolować, czy w ramce przypadku 4 struktury wyboru występują wszystkie połączenia tuneli wejściowych i wyjściowych. 7. Utworzyć ikonę programu. Modyfikację ikony przeprowadza się za pomocą edytora wywoływanego za pomocą polecenia Edit icon menu kontekstowego obrazu ikony (prawy górny róg okna programu). Wykonać ikonę zbliżoną wyglądem do zamieszczonej poniżej 8. Uruchomić program i skontrolować poprawność jego funkcjonowania najpierw w zakresie dwóch wprowadzonych w bieżącym ćwiczeniu podprogramów, a następnie wszystkie jego funkcje. 9. Zakończyć funkcjonowanie programu i zapisać jego plik pod nazwą Application Exercise 3.vi. Nie zamykać okien programu. Programowanie w języku G strona 5
Ćwiczenie 12.4 Narzędzia do zarządzania projektami środowiska LabVIEW Cel: Zapoznanie się z niektórymi wbudowanymi funkcjami środowiska LabVIEW ułatwiającymi obsługę projektów tworzenia aplikacji. Panel czołowy 1. Upewnić się, że otwarte są tylko okna programu Application Exercise 3 z poprzedniego ćwiczenia. Jeśli otwarte są okna innych programów, należy zamknąć je i usunąć tym samym z pamięci stacji roboczej. 2. Z menu Tools wybrać polecenie VI Revision History. Zostanie wyświetlone okno z komentarzami tekstowymi dotyczącymi wprowadzanych zmian. 3. Wybrać przycisk Reset w bieżącym oknie, a następnie przycisk Yes, aby potwierdzić usunięcie historii zmian i wyzerowanie numeru zmian. 6 4. W polu komentarzy Comment wprowadź tekst Tworzenie szkieletu aplikacji i wybierz przycisk dodawania Add. Komentarz powinien zostać wyświetlony na liście komentarzy w dolnej części okna wraz z nazwą użytkownika, datą, czasem i numerem komentarza. Zamknąć okno historii komentarzy. 5. Z menu Browse wybrać polecenie Show VI Hierarchy. Zostanie wyświetlone okno z hierarchicznie połączonymi składnikami programu. 6. Przetestować sposób rozwijania i zwijania połączeń w widoku hierarchicznym. Zwrócić uwagę, że kliknięcie małej czerwonej lub czarnej strzałki u dołu węzłów hierarchii powoduje rozwinięcie lub Programowanie w języku G strona 6
zwinięcie wybranej gałęzi. Jeżeli przy (obok) ikonach obiektów występują czerwone strzałki, to oznaczają one, że obiekty te mogą wywoływać jedn i więcej podprogramów. Niebieskie strzałki przy obiektach wskazują, że obiekt wywoływany jest z kilku lokalizacji, ale nie wszystkie wywołania są w bieżącej chwili prezentowane w oknie. 7. Skontrolować sposób działania przycisków paska narzędzi. Zwrócić uwagę na zmiany dokonywane za pomocą dwóch przycisków układu (Layout) i przy zmianie położenia ikon (przeciąganie myszą) oraz prezentację elementów za pomocą trzech przycisków zawartości (Include). Wykorzystać przycisk Redo Layout do przerysowania schematu, w celu ograniczenia obszaru rysunku i minimalizacji przecięć połączeń. 8. W celu zapoznania się z podprogramem i wyświetlenia jest panelu, dwukrotnie kliknąć ikonę dowolnego podprogramu. Zamknąć otworzone okno podprogramu, z następnie zamknąć okno Hierarchy. 9. Otworzyć plik programu Application Exercise 2 tworzonego w trakcie ćwiczenia 12.2. Przejść do panelu programu Application Exercise 3. Z menu Tools wybrać polecenie Compare, a potem Compare VIs. Zostanie wyświetlone okno dialogowe Compare VIs służące do porównywania różnych programów i ich wersji. 7 10. W oknie Compare VIs za pomocą przycisków Select zadeklarować do porównania dwa programy: Application Exercise 2 i Application Exercise 3. Wybrać przycisk Compare. 11. W wyświetlonym oknie Differences, zaznaczyć pole opcji Circle Differences. Wybrać dowolną pozycję na liście Differences, a następnie kliknąć przycisk Show Detail. Zapoznać się ze zmianami zaznaczonymi na schematach lub panelach programów. Zamknąć okno Differences. 12. Zamknąć wszystkie okna programu Application Exercise 2. Panel czołowy programu Application Exercise 3 powinien pozostać otwarty. Programowanie w języku G strona 7
8 Ćwiczenie 12.5 Plik wykonywalny aplikacji Cel: Utworzenie samodzielnej aplikacji za pomocą elementu środowiska LabVIEW - Application Builder. Do poprawnego wykonania ćwiczenia konieczna jest instalacja składnika Application Builder. O jego obecności świadczy aktywne polecenie Build Application or Shared Library (DLL) z menu Tools. Panel czołowy 1. Otworzyć plik programu Application Exercise 3, o ile został zamknięty po wykonaniu ćw. 12.4. 2. Za pomocą Właściwości skonfigurować program do pracy w trybie aplikacji pierwszoplanowej (menu File /VI Properties /Category: Window Appearance /Top-level ApplicationWindow). Takie ustawienie zapewni profesjonalny wygląd programowi uruchamianemu z pliku wykonywalnego. 3. Zapisać plik programu pod nazwą Aplikacja.vi. Schemat blokowy 1. Schemat blokowy uzupełnić o następujące składniki: a) Funkcję logiczną Not (paleta Functions /All Functions /Boolean /Not). Funkcja wykonuje inwersję sygnału logicznego sterującego terminal warunkowy pętli While. Pętla zatrzymuje się przy wartości False, zaś pętlę opuszcza wartość True konieczna do sterowania funkcją Quit LabVIEW. Programowanie w języku G strona 8
b) Funkcję Quit LabVIEW (paleta Functions /All Functions /Application Control / Quit LabVIEW). Funkcja Quit LabVIEW zamyka aplikację, w której jest zamieszczona oraz całe środowisko LabVIEW. 2. Zapisać bieżącą postać programu w pliku pod istniejącą nazwą Aplikacja.vi. 3. Przejść do panelu i uruchomić program. Po uruchomieniu wybrać przycisk Stop. Program zatrzyma się, a dodatkowo zostanie wyłączone całe środowisko LabVIEW. 4. Uruchomić ponownie LabVIEW. Otworzyć program Aplikacja.vi, ponieważ Application Builder obsługuje tylko programy załadowane do pamięci operacyjnej. 5. Z menu Tools wybrać polecenie Build Application or Shared Library (DLL). Plik wykonywalny będzie tworzony z programu Aplikacja.vi, zostanie nadana mu nazwa MojaAplikacja.exe i zostanie on umieszczony w katalogu C:\Program. W tym celu należy wprowadzić modyfikację ustawień na karcie Target. 9 6. Wybrać kartę Source Files i jeśli programu Aplikacja.vi nie ma liście Source Files wybrać przycisk Add Top-Level VI oraz wskazać program Aplikacja.vi. Programowanie w języku G strona 9
7. Wybrać kartę VI Settings. Ustawienia pozostawić niezmienione. Domyślne ustawienia definiują pierwszoplanowe funkcjonowanie programów w momencie ich wywołania, zaś zapis panelów czołowych oraz schematów blokowych wykonywane jest tylko w razie konieczności. Przejrzeć ustawienia nie wprowadzając zmian. 10 8. Wybrać kartę Application Settings. Karta stanowi miejsce deklarowania ustawień ActiveX oraz indywidualnych ikon aplikacji. Przejrzeć ustawienia nie wprowadzając zmian. 9. Wybrać kartę Installer Settings. Wybierz opcję Create installer. Skonfiguruj opcje karty Installer Settings tak, aby instalator zainstalował ją w katalogu c:\program Files\MojaAplikacja. Wprowadź ustawienia zbliżone lub takie same, jak na kolejnym rysunku. 10. Wybierz przycisk Build. Pliki instalacyjne zostaną skompresowane i zapisane w zadeklarowanej lokalizacji np.: w katalogu c:\program\installer. W tym samym miejscu zapisywany jest plik inicjujący instalację Setup.exe. Zgodnie z ustawieniami utworzony jest także wykonywalny plik samodzielnej aplikacji MojaAplikacja.exe tak, jak zdefiniowano to na karcie Target. 11. W celu zamknięcia okna Build Application, wybrać przycisk Done. Zostanie wyświetlone powiadomienie o możliwości zapisania skryptu wykorzystywanego przy tworzeniu aplikacji. Wybrać Programowanie w języku G strona 10
przycisk Yes i zapisać skrypt jako C:\Program\AplikacjaSkrypt.bld. Od tego momentu, po wprowadzeniu zmian w programie (*.vi) możliwe jest ponowne utworzenie pliku wykonywalnego i plików instalatora za pomocą ustawień zapisanego skryptu ładowanego przyciskiem Load. 11 12. Uruchomić program MojaAplikacja.exe z katalogu C:\Program. Aplikacja powinna wyświetlić panel czołowy i automatycznie rozpocząć pracę. Skontrolować funkcjonowanie aplikacji wybierając jej wszystkie klawisze. Zakończyć pracę aplikacji za pomocą przycisku Stop. 13. Uruchomić plik instalatora Setup.exe z katalogu c:\program\installer. Przejść przez kolejne kroki procesu instalacji. Sprawadzić, czy pliki programu zostały zainstalowane w zdeklarowanej lokalizacji tj.: c:\program Files\MojaAplikacja. 14. Uruchomić zainstalowany program za pomocą menu systemowego tj.: przycisk Start /Programy /MojePogramy /MojaAplikacja. 15. Skontrolować funkcjonowanie aplikacji wybierając jej wszystkie klawisze. Zakończyć pracę aplikacji za pomocą przycisku Stop. 16. Usunąć aplikację z systemu za pomocą Panelu sterowania i apletu Dodaj lub usuń programy. 17. Sprawdzić, czy katalog c:\program Files zawiera katalog MojaAplikacja. Jeśli tak, należy go usunąć. 18. Usunąć wraz z zawartością katalog, w którym przechowywany jest wykonywalny plik programu i pliki instalatora (np. C:\Program). Programowanie w języku G strona 11
12 19. Jeżeli środowisko LabVIEW jest jeszcze aktywne, zamknąć okna wszystkich programów i zakończyć pracę LAbVIEW. 20. Zamknąć system operacyjny. Opracowane na podstawie: LabVIEW 7 Express Basics Interactive Training CD. National Instruments 2003. LabVIEW Basics I. Introduction Course Manual. National Instruments 2002. Programowanie w języku G strona 12