Komputerowe systemy pomiarowe - sprawozdanie 12 - sem III PDF

Title Komputerowe systemy pomiarowe - sprawozdanie 12 - sem III
Author Jakub Kaak
Course Elektrotechnika
Institution Uniwersytet Technologiczno-Przyrodniczy w Bydgoszczy
Pages 12
File Size 780.4 KB
File Type PDF
Total Downloads 52
Total Views 125

Summary

Download Komputerowe systemy pomiarowe - sprawozdanie 12 - sem III PDF


Description

UNIWERSYTET TECHNOLOGICZNO-PRZYRODNICZY IM. J. I J. ŚNIADECKICH W BYDGOSZCZY WYDZIAŁ TELEKOMUNIKACJI, INFORMATYKI I ELEKTROTECHNIKI

ZAKŁAD METROLOGII

LABORATORIUM Komputerowe systemy pomiarowe

SPRAWOZDANIE Z ĆWICZENIA NR 12 Temat ćwiczenia: Programowanie zasilacza WEP305DB w środowisku LabVIEW Autor sprawozdania

Grupa ćwiczeniowa

/imię i nazwisko/

………………………………. /podpis autora/

Skład Grupy Ćwiczeniowej:

Data wykonania ćwiczenia 18.01.2019

Ocena za sprawozdanie Data przyjęcia sprawozdania ..............................

...............................................

Spis treści 1.Cel ćwiczenia .................................................................................................................................... 3 2.Przebieg ćwiczenia............................................................................................................................ 3 2.1)Omówienie protokołu komunikacyjnego zasilacza WEP305DB .............................................. 3 2.2)Wysyłanie informacji do zasilacza ............................................................................................ 4 2.3)Odbieranie danych zasilacza (odpowiedzi na zadane wartości) ................................................ 6 1.Odczytanie sygnału wejściowego ............................................................................................. 6 2.Analiza odebranego sygnału ..................................................................................................... 7 3.Analiza odebranej ramki ........................................................................................................... 8 2.4)Ciągłość działania programu ..................................................................................................... 8 2.5)Wyznaczanie charakterystyki statycznej diody mocy ............................................................... 9 1.Utworzenie charakterystyki prądowo – napięciowej ................................................................ 9 2.Zapis danych do pliku ............................................................................................................. 10 3.Zadanie domowe ............................................................................................................................. 10 4.Wnioski ........................................................................................................................................... 12 5.Załączniki ........................................................................................................................................ 12 6.Literatura ......................................................................................................................................... 12

2

1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z metodami programowania zasilacza WEP305DB w środowisku LabVIEW.

2. Przebieg ćwiczenia Ćwiczenie laboratoryjne zostało zrealizowane z podziałem na poszczególne etapy.

2.1) Omówienie protokołu komunikacyjnego zasilacza WEP305DB Komunikacja użytkownika z zasilaczem odbywa się na zasadzie wymiany informacji przez tzw. Ramki, które to zawierają konkretne informacje według protokołu komunikacyjnego. Wartość napięcia zapisywana w postaci 4 cyfrowej

Określenie charakteru pracy zasilacza przy zbyt dużym prądzie obciążenia Bit zakończenia ramki

HPPSU0000H/C0000N/OY

Stan napięcia na wyjściu zasilacza Ciąg znaków określający początek ramki

Wartość prądu zapisywana w postaci 4 cyfrowej

Określenie charakteru pracy zasilacza przy zbyt dużym prądzie obciążenia informuje o tym, jak zasilacz zachowa się przy przekroczeniu wartości progowej prądu: - H – po przekroczeniu wartości progowej prądu, zasilacz przestanie spełniać funkcję źródła napięcia a zacznie realizować funkcję źródła prądu. - C – po przekroczeniu wartości progowej prądu, zasilacz wyłączy się. Stan napięcia na wyjściu zasilacza informuje o tym czy napięcie na wyjściu jest załączone czy też nie: - N – brak napięcia na wyjściu. - O – obecne napięcie na wyjściu. Wartość napięcia jak i prądu dla danego zasilacza podaje się w formacie 4 cyfrowym, lecz kolejno dla napięcia z dokładnością do dwóch miejsc po przecinku a dla prądu z dokładnością do trzech miejsc po przecinku. Warto w tym miejscu zaznaczyć, iż ramkę z rozkazem dla zasilacza należy wysłać 2 razy oraz oczekiwać odpowiedzi ze strony zasilacza.

3

Odpowiedź zasilacza przedstawiona jest również w postaci ramki, która jednak różni się nieco od przedstawionej wcześniej, oraz jest ona wysyłana wiele razy w bardzo krótkim czasie. Wartość napięcia zmierzona na wyjściu zasilacza

HPPSU0000A0000WY

Zakończenie ramki Ciąg znaków określający początek ramki

Wartość prądu zmierzona na wyjściu zasilacza

Przepływowość bitowa i format ramki to 9600b/s 8S2. Jest to ważna informacja ze względu na realizowane później przez program zadania na ramkach.

2.2) Wysyłanie informacji do zasilacza Wysyłanie informacji do zasilacza w postaci ramek realizuje się poprzez utworzenie odpowiednich kontrolek do nastawy żądanego prądu oraz napięcia, pamiętając o odpowiedniej rozdzielczości zadawanych wartości, wynikających z dokumentacji danego zasilacza. W celu edycji komponentów do których wprowadzane będą dane należy zmienić „Digits of precision” czyli liczbę miejsc po przecinku, odpowiednio dwa miejsca dla nastawy napięcia oraz trzy dla nastawy prądu. Podane wartości należy odpowiednio przemnożyć, aby uzyskać zapis w postaci czterech cyfr. Wprowadzone i przeliczone w ten sposób liczby należy przekonwertować za pomocą komponentu „To unsigned word integer function” na typ 16 bitowy. Po nastawie prądu i napięcia należy ustawić stan wyjścia zasilacza, najprościej można to zrealizować za pomocą przycisku, podającego sygnał True/False na komponent „Case Structure”, który to odpowiednio zmodyfikowany będzie podawać odpowiednio: •

N – Dla „False” powodujące podanie informacji do ramki o niepodawaniu napięcia na wyjście zasilacza.



O – Dla „True” powodujące podanie informacji do ramki o podawaniu napięcia na wyjście zasilacza.

Podane parametry żądanej nastawy na zasilaczu należy teraz zapisać w postaci odpowiedniej ramki. W tym celu należy zastosować komponent „Format into String Function” wybierając kolejno: string, format into string. Wspomniany komponent umożliwi połączenie zebranych informacji w całość w formacie ramki, jednak by tak się stało należy skonfigurować format ramki poprzez utworzenie stałego wzoru w miejscu „format string”. Dla zadanej ramki, wymagany format przyjmuje następującą formę: HPPSU%04dH%04d%sY. Znak „%” oznacza podanie informacji zawartej z kolejnego wejścia komponentu, natomiast zapis „04d” oznacza podanie nastawy w formacie czterech cyfr bez spacji.

4

Rysunek 1. Część programu realizująca podawanie tworzenie ramki podawanej do zasilacza. Należy pamiętać, iż tak utworzoną ramkę należy wysłać dwa razy. W celu utworzenia podwójnego zapisu utworzonej ramki można skorzystać z komponentu „Concatenate String Function” wybierając kolejno: string, concatenate string, oraz podłączając do jego wejść ten sam sygnał, którym jest utworzona wcześniej ramka. W celu weryfikacji poprawności formatu utworzonej ramki, należy dodać „String indicator”.

Rysunek 2. Część programu realizująca tworzenie podwójnej ramki. W celu przekazania utworzonej ramki do zasilacza należy rozpocząć komunikację przez komponenty „Visa” i tak kolejno wybiera się „Visa resource name”, komponent umożliwiający wybór konkretnego portu do którego podłączony jest zasilacz, oraz „Visa configure Serial Port VI”, który umożliwia skonfigurowanie portu komunikacyjnego. Komponent „Visa configure Serial Port VI” wybiera się poprzez: instrument I/O, serial, configure port, natomiast pierwszy z wymienionych komponentów jest kontrolką dla wspomnianego komponentu konfiguracyjnego, który należy utworzyć w miejscu „Visa resource name”. Dodatkowo należy ustawić odpowiednio przepływowość bitową 9600 b/s, format ramki czyli 8 bitów, space, stop bits 2.0, oraz Enable termination char – F (false) ponieważ długość ramek pozostaje bez zmian i są one zakończone stałym bitem.

5

Rysunek 3. Część programu odpowiedzialna za rozpoczęcie komunikacji z zasilaczem oraz konfigurację wybranego portu. Do komponentu konfigurującego port należy dołączyć komponent zapisujący podany sygnał „Visa write function” wybierając kolejno: instrument I/O, Visa, write. Utworzoną wcześniej ramkę należy podłączyć w miejscu „Return count”.

2.3) Odbieranie danych zasilacza (odpowiedzi na zadane wartości) W celu analizy informacji wysyłanych przez zasilacz, należy pamiętać, iż wysyła on dużą liczbę specyficznych ramek w bardzo krótkich odstępach czasu. By „wyłowić” odpowiednią ramkę z gąszczu informacji należy odpowiednio przetworzyć otrzymywane sygnały.

1. Odczytanie sygnału wejściowego By odebrać sygnał od zasilacza należy połączyć wcześniej utworzony komponent „Visa write function” z miejsca „Visa resource name out” do pętli „for” której liczba iteracji określa ile sygnałów odbierze i przeanalizuje program. W wybranej pętli należy umieścić podobny do poprzedniego, lecz analizujący odwrotną funkcję (odczytu) komponent „Visa read function” wybierając kolejno: instrument I/O, visa, read. Należy tu podłączyć odpowiednio sygnały wejściowy oraz wyjściowy i określić liczbę bitów do przeanalizowania, w tym wypadku 64. W miejscu „read buffer” pojawi się odczytany sygnał, który należy wyprowadzić z pętli przez tunel auto -indeksujący do kolejnej pętli, tym samym typem tunelu i o tej samej liczbie iteracji co poprzednia. W kolejnej pętli „for” należy umieścić komponent „concantenate strings function” którego zadaniem będzie rozdzielanie otrzymanych informacji spacją, by uzyskać ten efekt należy utworzyć odpowiedni string poza pętlą i wprowadzić go poprzez rejestr przesuwny do wspomnianego wcześniej komponentu, wraz z uzyskanym wcześniej sygnałem. Tym samym typem rejestru przesuwnego wyprowadza się dane z danego komponentu.

6

Rysunek 4. Część programu realizująca odczytywanie sygnału pochodzącego z zasilacza.

2. Analiza odebranego sygnału Gdy uda się odebrać i przetworzyć sygnał wejściowy pochodzący z zasilacza, należy odszukać ciąg znaków opisujący ramkę odpowiedzi, czyli jakie napięcie i prąd zostały zmierzone na wyjściu zasilacza, oraz czy wyjście to jest załączone czy też nie. W celu wyszukania wspomnianej ramki, należy wstawić komponent analizujący podany sygnał i wyszukujący w nim zadanego ciągu znaków. W tym przypadku, ciągiem znaków inicjalizującym początek ramki jest „HPPSU”. Tak więc należy dodać komponent „Match Pattern Function” wybierając kolejno: string, match pattern function, ustawić ciąg szukanych znaków w miejscu „regular expression” ,wyjście w miejscu „after substring” które umożliwi podawanie informacji znajdujących się poza podanym ciągiem znaków, czyli szukanej ramki oraz wyjście w miejscu „match substring” które poda również początek ramki, którym jest inicjalizujący wyszukiwanie, wpisany wcześniej ciąg znaków. Z wyjścia „after substring” należy wejść na komponent „String subset function”, który umożliwi wyświetlenie pojedynczej części z wyszukanych ramek. By to osiągnąć należy podać długość ramki, wynikającą z dokumentacji zasilacza, czyli ile bitów składa się na ramkę. W tym wypadku jest to 11 bitów i tą wartość należy podać w miejscu „lenght”. Wyniki z zamieszczonych i opisanych wyżej komponentów należy połączyć za pomocą „concatenate string function” oraz wyświetlić otrzymując w ten sposób żądaną ramkę.

Rysunek 5. Część programu analizująca podany sygnał i przetwarzająca go na żądaną ramkę.

7

3. Analiza odebranej ramki Otrzymaną odpowiedź w postaci ramki zasilacza, można dodatkowo przetworzyć w celu wyświetlenia zawartych w niej informacji nt. ustawionych wartości prądu oraz napięcia. W tym celu należy uzyskaną ramkę podać na komponent „string subset function”, który to pozwoli na odczytanie konkretnej części ramki: •

Ustawiając kolejno offset = 5 oraz lenght = 4 uzyskamy odczyt 4 kolejnych bitów, począwszy od 5 bitu. Analizując budowę ramki HPPSU0000A0000WY, licząc poszczególne bity od lewej strony, uzyskamy zaznaczony odczyt, czyli wartość napięcia w postaci czterech cyfr.



Ustawiając kolejno offset = 10 oraz lenght = 4 uzyskamy odczyt 4 kolejnych bitów, począwszy od 10 bitu. Analizując budowę ramki HPPSU0000A0000WY, licząc poszczególne bity od lewej strony, uzyskamy zaznaczony odczyt, czyli wartość prądu w postaci czterech cyfr.

Trzeba pamiętać, iż nastawy poszczególnych wartości napięcia i prądu zawierały pewną liczbę miejsc po przecinku, biorąc pod uwagę powyższy fakt, należy odpowiednio przetworzyć uzyskane dane by otrzymać poprawne wartości, lecz zanim będzie to możliwe, trzeba przekonwertować uzyskane dane z formatu string na format numeryczny liczb całkowitych numer. Do konwersji formatu danych należy użyć komponentu „decimal string to numer function” wybierając kolejno: string, number/string conversion, decimal string to numer. Sygnałem wyjściowym z wspomnianego komponentu jest liczba całkowita, którą można teraz odpowiednio podzielić: •

Dzielenie przez 1000 dla uzyskania wartości zmierzonego prądu (zapis z dokładnością do trzech miejsc po przecinku).



Dzielenie przez 100 dla uzyskania wartości zmierzonego napięcia (zapis z dokładnością do dwóch miejsc po przecinku).

Uzyskane wyniki należy wyświetlić w celu ich weryfikacji względem nastawionych wartości.

Rysunek 6. Część programu analizująca ramkę i zwracająca zawarte w niej informacje.

2.4) Ciągłość działania programu W celu zachowania ciągłości działania programu, czyli by zasilacz zachowywał ustawione wartości oraz możliwe było ich zmienianie, należy wszystkie komponenty (za wyjątkiem komponentów rozpoczynających i kończących komunikację z zasilaczem) umieścić w pętli „while” oraz ustawić dla niej przycisk przerywający jej działanie.

8

2.5) Wyznaczanie charakterystyki statycznej diody mocy Wyznaczenie charakterystyki statycznej tj. prądowo – napięciowej diody mocy realizuję się poprzez podłączenie do wyjścia zasilacza diodę oraz nieznaczną modyfikację programu sterującego zasilacz. Należy bowiem wyznaczyć liczbę punktów w których chcemy uzyskać wyniki pomiarów oraz ustawić napięcie maksymalne oraz minimalne (przedział w którym będzie badana dioda). W celu stopniowego zwiększania podawanego napięcia należy odjąć wskazane napięcie maksymalne od minimalnego oraz podzielić przez liczbę punktów. W ten sposób obliczony zostaje krok. Wprowadzając uzyskaną w ten sposób wartość napięcia do pętli głównego programu należy każdorazowo pomnożyć ją przez liczbę iteracji oraz dodać do wartości minimalnej nastawionego napięcia. W ten sposób, zasilacz będzie stopniowo zwiększać napięcie dla każdego zadanego punktu pomiarowego. Warto w tym miejscu zauważyć, iż należy zmienić pętlę główną programu z „while” na pętlę „for” o liczbie powtórzeń równej liczbie zadanych punktów.

Rysunek 7. Zmodyfikowana część programu odpowiedzialna za stopniowe zwiększanie podawanego napięcia. Ostatnią modyfikacją programu, jest dodanie odpowiednich komponentów, które umożliwią utworzenie charakterystyki prądowo – napięciowej badanej diody oraz zapis wyników do pliku. W tym celu należy wyprowadzić dane zawierające zmierzone napięcie i prąd na wyjściu zasilacza z pętli głównej poprzez tunele auto – indeksujące.

1. Utworzenie charakterystyki prądowo – napięciowej By uzyskać charakterystykę prądowo – napięciową badanej diody, należy wyprowadzone dane z napięciem i prądem zestawić razem poprzez komponent „Bundle Function” wybierając kolejno: cluster, bundle. Utworzony „cluster” należy podłączyć do wykresu „XY Graph” który umożliwi graficzną interpretację pomiarów.

Rysunek 8. Dodana część programu odpowiedzialna za wykreślenie charakterystyki statycznej badanej diody.

9

Wykres 1. Charakterystyka statyczna badanej diody

2. Zapis danych do pliku W celu zapisu uzyskanych danych pomiarowych do pliku, należy zestawić je (dane) za pomocą komponentu „Build Array Function” wybierając kolejno: Array, Build Array. Tak utworzoną tablicę należy połączyć z komponentem odpowiedzialnym za zapis do pliku „Write Delimited Spreadsheet VI” wybierając kolejno: File I/O, Write Delimited Spreadsheet VI. Do utworzonego komponentu należy utworzyć żądany separator wartości, w tym wypadku jest to średnik, oraz ustawić ścieżkę zapisu nowego pliku wraz z jego rozszerzeniem.

Rysunek 9. Dodana część programu odpowiedzialna za zapis uzyskanych pomiarów do pliku.

3. Zadanie domowe Zadanie domowe polega na wyznaczeniu charakterystyki prądowo – napięciowej dla szeregowego i równoległego połączenia rezystora liniowego i badanej diody. Konieczna jest interpolacja obu, lub choćby (dla znacznego uproszczenia) jednej z charakterystyk za pomocą komponentów Threshold 1D Array i Interpolate 1D Array. Wynika to z faktu, że oba elementy mają znaną charakterystykę w różnych punktach tj. dla różnych prądów i napięć. Wyznaczenie charakterystyki połączonych elementów należy wykonać metodą charakterystyki zastępczej i odwróconej.

10

Rysunek 10. Zadanie domowe zrealizowane w części Block Diagram

Rysunek 11. Zadanie domowe – wyniki działania programu

11

4. Wnioski • •



• •



W celu komunikacji z niektórymi urządzeniami, wymagane może być ustawienie odpowiedniej konfiguracji portu za pomocą którego będzie przebiegać komunikacja. Służą do tego odpowiednie komponenty opisane w sprawozdaniu. Za pomocą odpowiednich komponentów, możliwe jest odbieranie i przeszukiwanie otrzymywanego sygnału w celu odnalezienia konkretnego ciągu znaków, zawierającego pożądane dane. W celu sterowania zasilaczem WEP305DB z środowiska LabVIEW konieczne jest nadawanie i odbieranie ramek o odpowiednim formacie. Nastawy prądu i napięcia mają różną rozdzielczość a bity informujące o poszczególnych stanach wyjścia zasilacza lub charakterze pracy są konkretnie opisane. Wspomniane wcześniej ramki mają jednakową długość i składają się z takiej samej ilości bitów. W celu wysłania nastaw zasilacza, wymagane jest podwójne wysłanie ramki, zawierającej dane ustawionych wartości. Po otrzymaniu ramki z danymi, zasilacz wysyła odpowiedź w postaci zmodyfikowanej ramki, która zawiera takie informacje jak zmierzone napięcie i prąd na wyjściu zasilacza oraz stan wyjścia. Ramki w formie odpowiedzi są wysyłane jedna po drugiej, w bardzo dużej ilości i krótkim odstępie czasu, dlatego w celu ich poprawnego odczytania należy odpowiednio przetworzyć otrzymany sygnał. Możliwa jest stopniowa modulacja nastaw zasilacza poprzez zastosowanie odpowiedniej pętli, jest to szczególnie przydatne przy tworzeniu charakterystyk elementów podpiętych bezpośrednio do zasilacza.

5. Załączniki •

Protokół komunikacyjny zasilacza WEP305DB

6. Literatura [1] Instrukcja do wykonania ćwiczenia [2] Protokół komunikacyjny zasilacza WEP305DB

12...


Similar Free PDFs