Wystawy i wykłady popularnonaukowe

WSPÓŁCZESNE STEROWANIE EKSPERYMENTEM FIZYCZNYM NA PODSTAWIE WYKORZYSTANIA PROGRAMU LABVIEW

W.Dobrogowski, J. Świekło
Instytut Fizyki Uniwersytetu w Białymstoku, Białystok

1. Wprowadzenie

Współczesny eksperyment fizyczny wykonywany jest najczęściej przy komputerowym wspomaganiu. Dotyczy to zarówno eksperymentów wykonywanych w pracowniach naukowych jak też i w laboratoriach studenckich czy nawet szkolnych. Podczas eksperymentu komputer może pełnić dwie główne funkcje: urządzenia do: akwizycji danych pomiarowych i/albo sterowania pomiarową aparaturą. Te dwa procesy odbywają się w czasie rzeczywistym, stąd mamy określone wymagania w stosunku do komputera i wykorzystywanego oprogramowania pod względem szybkości działania. Aparatura pomiarowa może być podłączana bezpośrednią do komputera, sterującego eksperymentem lub może znajdować się w dużej odległości od niego. Dobrym przykładem jest sterowanie urządzeń w kosmosie - jak jest to realizowane w przypadku teleskopu Hubble'a [1], gdzie całe urządzenie pomiarowe znajduje się na orbicie ziemskiej, daleko od centrum sterowania. Ten przypadek zdalnego sterowania przez komputer nabiera coraz większej wagi w miarę rozwoju globalnych sieci komputerowych, takich jak INTERNET. Istotna jest szybkość działania programu oraz czas który trzeba poświęcić na oprogramowanie eksperymentu. Te warunki są najczęściej sprzeczne, bo jak wiadomo, najszybszymi są programy napisane w języku asemblera konkretnego procesora (co wymaga dużych nakładów czasowych), a najszybciej pisze się programy w językach wysokiego poziomu, wykorzystujące specjalistyczne biblioteki i funkcje zaawansowanych systemów operacyjnych (z definicji programy te wykonywane są wolniej niż asemblerowe). Z dylematem tym wiąże się występowania bardzo szerokiej oferty na rynku oprogramowania.

W pracy przedstawiono przykłady wykorzystania języka wysokiego poziomu (LABVIEW, firmy National Instruments), przeznaczonego do programowania eksperymentów fizycznych na różnych poziomach - od pracowni studenckiej do pracowni naukowej.

2. Porównanie tekstowych i graficznych języków programowania.

Tradycyjne języki programowania opierają się na tekście programów zawartych w plikach tekstowych. Programista jest w tym przypadku wspomagany przez edytory tekstu, które oprócz standardowej funkcji mogą posiadać dodatkowe możliwości, ułatwiające napisanie programu, np. sprawdzanie składni konkretnego języka, zaznaczenie na kolorowo słów kluczowych itp. Często język programowania występuje w postaci zintegrowanego środowiska, łączącego: edytor, kompilator, linker i debugger. Jednym naciśnięciem klawisza można natychmiast po napisaniu tekstu programu wywołać go (oczywiście w przypadku bezbłędnego jego napisania). Wykonując program krok po kroku można śledzić jego przebieg i - kontrolując pośrednie wartości zmiennych - starać się usunąć ewentualne błędy. Gorzej jest z napisaniem dużych programów, wykorzystujących szerokie możliwości sprzętowe i programowe współczesnych komputerów (np. grafikę, dźwięk, wielozadaniowość). Wtedy program rozrasta się od jednego pliku do projektu zawierającego zbiór plików z powiązaniami do różnych bibliotek. W takim przypadku poprawny plik programu może zawierać błędy logiczne lub błędy związane z niepoprawnym wykorzystaniem funkcji bibliotecznych lub przekazywania danych. W sumie czas umiejscawiania i usuwania usterek może znacznie przekraczać czas napisania programu jako systemu plików tekstowych.

Rozwój technik komputerowych daje nam możliwość korzystania z coraz to większych zasobów sprzętowych. W wyniku tego rozwoju (i znacznego spadku cen sprzętu) powstały bardzo popularne graficzne systemy operacyjne, służące jako platformy dla programów aplikacyjnych. Środowisko graficzne jest bardziej intuicyjne dla przeciętnego użytkownika, co znacznie skraca czas uczenia się.. Duża ilość parametrów jest ustalana domyślnie, a użycie myszy w interfejsie graficznym zwiększa wydajność pracy.

Graficzny język programowania jest podobny do rysowania schematów elektronicznych. Poszczególne funkcje są przedstawione w postaci elementów funkcyjnych (prostokąty). Ilość i typ pinów wejścia/wyjścia, odpowiada ilości i typowi otrzymywanych/przesyłanych danych. Elementy te łączone są pomiędzy sobą w programie (schemacie) "przewodami"; których kolor odpowiada typowi przekazywanych danych, a grubość - wymiarowi przekazywanej tablicy. Bezpośrednio pomiędzy sobą można łączyć tylko piny tego samego typu. Są pewne elementy, które dopuszczają polimorfizm, tzn że np. ten sam element może być użyty zarówno do dodawania liczb całkowitych, jak i liczb rzeczywistych. Wykonywanie programu odpowiada przepływowi strumienia danych; funkcja jest wykonywana tylko wtedy, gdy posiada ona wszystkie niezbędne argumenty. Prócz tego istnieje możliwość ręcznego ustawienia warunków synchronizacji poszczególnych części w programie.

Programowanie graficzne istotnie zmienia sposób pisania programów przeznaczonych do sterowania urządzeń pomiarowych. Przede wszystkim chodzi tu o prędkość napisania poprawnie działającego programu.

Obecnie głównymi producentami graficznych języków programowania dla sterowania eksperymentem fizycznym są dwie firmy: (i) Hewlett Packard - program HPVEE i (ii) National Instruments - program LabView. Według szacowań, przeprowadzonych w roku 1998 przez czasopismo "Personal Engineering & Instrumentation News", najczęściej wykorzystywany do programowania układów obsługujących akwizycje i analizę danych był program LabView [2]. Komercyjnie sprzedawany LabView jest dostępny na sześciu platformach (Win16, Win32, Mac, HP-UX, Sun, Concurrent PowerMAX), zapewnia możliwość akwizycji, analizy i prezentacji danych, posiada dużą bibliotekę sterowników różnego typu zewnętrznych urządzeń pomiarowych wraz z przykładami, może być stosowany do wszystkich kart pomiarowych, produkowanych przez National Instruments i większości popularnych urządzeń pomiarowych. Jest to program ciągle rozwijany i udoskonalany.

Zgodnie z koncepcją National Instruments, program ten jest wirtualnym instrumentem (skąd pochodzi rozszerzenie roboczych plików *.vi), wykonującym odpowiednie funkcje. Każdy program w LabView składa się z dwóch części, umieszczonych w jednym pliku: (i) panelu programu (urządzenia), który jest widoczny na ekranie komputera podczas pracy; (ii) schematu (diagram) programu, składający się z poszczególnych funkcji i połączeń, wykorzystanych w danym programie.

Niżej są przedstawione różne przykłady stosowania LabView dla sterowania eksperymentem fizycznym.

3.1. Pomiar zależności B(H) dla materiałów ferromagnetycznych z wykorzystaniem płyty pomiarowej sterowanej odrębnym procesorem

Pomiar z bezpośrednim wykorzystaniem PC sterowanego systemem operacyjnym Windows obarczony jest błędem oznaczenia czasu, związanym z wielozadaniowością systemu operacyjnego (na podstawie przeprowadzonych testów oszacowano błąd określenia czasu na około 1 ms). W celu wykonywania pomiarów z większą dokładnością czasową skonstruowano płytę pomiarową z 8-bitowym procesorem PIC17C756 (częstotliwość zegara 11 MHz; procesor posiada wewnętrzny przetwornik ADC) i połączoną z komputerem PC przez port szeregowy. Przy pomiarach praca procesora PIC17C756 nie jest zakłócana przez niekontrolowane przerwania i odbywa się z dokładnością do jednego taktu zegara procesora; a po zakończeniu akwizycji danych następuje przekazywanie ich do PC (transmisja odbywa się we własnym tempie. Program sterujący współpracą PC z PIC17C756 był napisany w języku LabView. Zestaw ten jest wykorzystany w studenckim Laboratorium Komputerowym na przykład do pomiarów B(H).

Pomiar zależności B(H) dla materiałów ferromagnetycznych jest wykonywany z wykorzystaniem prostego układu składającego się z dwóch cewek: (i) magnesującej - do wytworzenia sinusoidalnie zmiennego zewnętrznego pola magnetycznego i (ii) detekcyjnej - do pomiaru zmiany indukcji magnetycznej dB/dt próbki. Prąd I w cewce magnesującej wytwarzany był przy pomocy transformatora podłączonego do sieci (f=50Hz). W czasie jednego okresu zmiany napięcia wykonano 100 pomiarów par wartości I i dB/dt. Wystarczyło to do odtworzenia zależności B(H). Układ ten jest znacznie łatwiejszy do zestawienia od klasycznego [3] gdyż nie wymaga zastosowania generatora akustycznego i wzmacniacza mocy.

3.2 Wykorzystanie LabView do sterowania mikroskopem sił magnetycznych

Mikroskop sił atomowych (AFM) służy dla wizualizacji powierzchni materiałów. Zasada jego działania polega na utrzymywaniu stałej siły (~1 nN) pomiędzy wierzchołkiem cienkiej sondy zamocowanej na sprężystej dźwigni i powierzchnią próbki (promień krzywizny wierzchołka sondy jest rzędu 10 nanometrów). Podczas pracy mikroskopu próbka jest skanowana w płaszczyźnie XY przy pomocy przesuwów piezoelektrycznych, natomiast , system sterowania dąży do utrzymania stałej wartości siły oddziaływania na ustalonym poziomie poprzez regulację napięcia podawanego na przesuw Z . Rejestrując napięcie na przesuwie Z w funkcji położenia X,Y uzyskuje się kształt badanej powierzchni.

Mikroskop sił magnetycznych (MFM) służy dla wizualizacji rozkładu pól magnetycznych przy powierzchni próbki z rozdzielczością poprzeczną < 1 mikrometra. Sonda z magnetycznym wierzchołkiem przesuwa się w płaszczyźnie XY nad powierzchnią próbki (optymalna odległości próbka-sonda wynosi około 50 nm). Mierzona jest siła oddziaływania próbki na sondę.

Mikroskopy skaningowe stanowią przykład urządzenia ściśle współpracującego z komputerem. W pierwszych mikroskopach skaningowych, przy niewielkiej ilości linii skanowania [4], rejestrowano obrazy powierzchni przy pomocy rejestratora. Zastosowanie komputera stało się konieczne w miarę szybkiego rozwoju tej techniki, wzrostu ilości przekazywanej informacji, zmniejszenia czasu próbkowania, komplikacji algorytmów pomiaru. Przy większych polach skanowania (>10 mkm) szybkość skanowania jest definiowana nie tyle szybkością przekazywania danych ile procesem oddziaływania sonda-powierzchnia. W takich przypadkach szybkość działania PC/Windows/LabView jest wystarczająca duża i do sterowania mikroskopem nie jest konieczne stosowanie specjalistycznego procesora.

W przypadku naszego mikroskopu AFM METRIS-2000 firmy Burleigh, producent przewidział możliwość rejestracji siły oddziaływania sonda-powierznia ale tylko przy stałej wartości Z. W konsekwencji pomiar rozkładu pól magnetycznych był niemożliwy bez dodatkowych przeróbek sprzętu ze względu na nierówności i nachylenie powierzchni badanej próbki w stosunku do płaszczyzny skanowania. Adaptacja AFM do pomiarów MFM wymagała: (i) zastosowania przetwornika cyfrowo-analogowego DAC (w naszym przypadku PCL-812) do kompensacji nierówności/nachylenia próbki (przetwornik dodawał odpowiednie napięcie do napięcia sterującego przesuwem Z) i (ii) zainstalowania magnetycznej sondy. Posiadane przez nas standardowe programy producenta do sterowania pracą mikroskopu AFM nie nadawały się do pomiarów MFM. W celu szybkiego oprogramowania trybu pracy MFM wykorzystano Labview. Zrealizowany algorytm pomiaru MFM składał się z dwóch części: (i) rejestracji kształtu powierzchni z wykorzystaniem klasycznego modu AFM; (ii) pomiaru MFM z korektą odległości próbka-sonda w każdym punkcie w oparciu o dane z uzyskanych poprzednio pomiarów AFM. W rezultacie otrzymano w pełni zadowalające obrazy przestrzennych rozkładu magnetyzacji [5].

3.3 Zdalne sterowanie eksperymentem

Problem zdalnego sterowania eksperymentem sprowadza się najczęściej do współpracy dwóch komputerów, z których pierwszy, tzw. "klient" jest komputerem eksperymentatora, natomiast drugi, tzw. "serwer" - bezpośrednio obsługuje zestaw pomiarowy. Połączenie komputerów nie daje możliwości klientowi bezpośredniego dostępu (zapisywania/odczytywania) do portów serwera. Przyczyna tego kryje się w niekontrolowanych opóźnieniach, które mogą ewentualnie zaistnieć przy zdalnej komunikacji. Operacje zapisywania/odczytywania z portów powinny być ściśle zsynchronizowane. Rozwiązanie takiego problemu polega na zainstalowaniu na serwerze takiego programu, który serwuje już nie oddzielne polecenia niskiego poziomu, ale większe funkcje współpracy z urządzeniami, podłączonymi do tego komputera. Te funkcje już nie są czułe na opóźnienia czasowe. Istnieje szereg ogólnie dostępnych przez INTERNET układów pomiarowych np. układ do badań ciekłych kryształów na Uniwersytecie w Kent [6].

W czasie trwania Zjazdu uruchomiono [7] w Białymstoku serwer obsługujący układ pomiarowy do badania struktury domenowej i procesów magnesowania w cienkiej magnetycznej warstwie granatu. Na komputerze bezpośrednio podłączonym do układu pomiarowego działał serwer HTTP jako część środowiska LabView. Umożliwiało to uruchamianie programów LabView jako części skryptów CGI i generowanie stron w zależności od potrzeb klienta. Przy pomocy zwykłej przeglądarki WWW każdy użytkownik INTERNETu mógł: (i) ustawić natężenie stałego pola magnetycznego H przyłożonego do próbki, lub przyłożyć do próbki zmienne (piłokształtne) pole H o ustalanych parametrach; (ii) zarejestrować obraz magnetycznej struktury domenowej przy wykorzystaniu kamery CCD; (iii) zarejestrować krzywą magnesowania z wykorzystaniem detektora światła; (iv) "podglądnąć" układ pomiarowy dodatkową kamerą. Internetowy eksperymentator mógł ściągnąć do swego komputera – klienta zarejestrowane wyniki w postaci obrazków i plików danych.

Autorzy dziękują Komitetowi Badań Naukowych za finansowe wsparcie rozwoju mikroskopii skaningowej AFM i MFM w ramach projetu PO3B 065 15 oraz Fundacji Polsko-Niemieckiej za finansowe wsparcie rozwoju Laboratorium Dziękujemy firmie Janbit za bezpłatne przekazanie nam oprogramowania LabView.

Literatura

1. Strona internetowa http://hubble.nasa.gov
2. Measurement and automation catalogue, National Instruments, 1999, p.49
3. Pomiary fizyczne za pomocą komputera, red. H.Szydłowski, (Wyd. UAM, Poznań, 1999).
4. Binnig,G.; Rohrer,H.; Gerber,Ch; Weibel,W., Surface studies by scanning tunneling microscopy, Phys.Rev.Lett., 49 (1), pp.57-61, (1982).
5. J.Swieklo, W.Dobrogowski., M.Kisielewski, A.Maziewski , The improvement of atomic force microscope suitable for magnetic domain structure measurements, Acta Physica Polonica A, Vol. 97 (2000).
6. Strona internetowa Liquid Crystal Institute at Kent State University http://olbers.kent.edu/alcomed/Experiment/eo.html
7. Strona internetowa XXXV Zjazdu Fizyków Polskich, http://physics.uwb.edu.pl/ptf/imprezy-popularnonaukowe.html#Eksperyment