Adam Excell


Wykorzystanie kart pomiarowych PCI i kontrolek ActiveX Advantech w środowisku Excel


1. Biblioteki dll i kontrolki ActiveX.

Pierwszym zadaniem jest umożliwienie komunikacji środowiska Excel (jak i innych aplikacji) z samym sprzętem pomiarowym. 0x08 graphic
Do tego celu służą dwa pakiety dostarczane bezpłatnie wraz ze sprzętem. W pierwszej kolejności na komputerze zainstalować musimy pakiet bibliotek dll. Skorzystać musimy z instalacyjnej wersji programu DeviceManager (DevMgr.exe) odpowiedzialnego za wybór, konfigurację i testowanie urządzeń, oraz dla każdej z wykorzystywanej z kart - z wersji instalacyjnej zestawu bibliotek przypisanych już do konkretnej karty (PCI17xx.exe), ewentualnie modułów ADAM-4k/5k (adamdll.exe).

Po ich zainstalowaniu i uruchomieniu programu Device Manager powinniśmy mieć możliwość wyboru poszczególnych kart oraz sprawdzenia w stopniu podstawowym poprawności ich działania. W następnym kroku na komputerze zainstalować należy dodatkowo pakiet ActiveDAQ.exe. W jego skład wchodzi sześć kontrolek (komponentów) umożliwiających wykonywanie operacji odczytu/zapisu do/z kart pomiarowych:

- Analog Input Control

DAQAI

- Analog Output Control

DAQAO

- Digital Input Control

DAQDI

 

- Digital Output Control

DAQDO

 

- Counter Control

DAQCounter

 

- Pulse Output Control

DAQPulse

2. Na początek korzystamy z kontrolki Digital Output Control.

W pierwszej kolejności, po uruchomieniu programu Excel i utworzeniu nowego skoroszytu musimy włączyć pasek narzędziowy "Visual Basic" (menu "widok->paski narzędzi"). Następnie, korzystając z dostępnych na nim ikonek włączamy "Tryb projektowania" oraz włączamy "Przybornik formantów". Wybierając opcję "Więcej formantów" w skoroszycie osadzamy obiekt "Advantech ActiveDAQ DO Control". Korzystając z okienka właściwości obiektu ustalamy podstawowe parametry (numer urządzenia odczytany z okna programu DeviceManager, numer portu wyjściowego, maskę itp.). Następnie korzystając z paska standardowych formantów w skoroszycie osadzamy przycisk klasy "CommandButton". Klikając nań dwukrotnie przechodzimy do edycji skryptu. W jego źródle wpisujemy np:

Private Sub CommandButton1_Click()
DAQDO1.OpenDevice
DAQDO1.ByteOutput
(Excel.Cells(1, 1))
DAQDO1.CloseDevice
End Sub


Aplikacja jest gotowa. Po wyłączeniu trybu projektowania i naciśnięciu przycisku nasz skrypt otwiera sterownik wybranego urządzenia, pobiera ze skoroszytu zawartość komórki A1, wysyła ją na wskazany (podczas konfiguracji) port wyjściowy karty i zamyka działanie sterownika urządzenia.

3. Wykonujemy pomiar analogowy.

Program Excel wydaje się być programem jak najbardziej stworzonym do wykonywania pomiarów. Dzięki jego tak rozbudowanym możliwościom jesteśmy w stanie przeprowadzić analizę danych, zobrazować je na wykresie, zapisać na dysku itp. Stąd też pojawił się pomysł skorzystania z tego programu.

Przystępując do pracy zaczynamy tak jak w punkcie 2. W skoroszycie osadzamy kontrolkę "Advantech ActiveDAQ AI Control". Podobnie jak poprzednio przystępujemy do edycji jej właściwości. Kontrolka jest bardziej rozbudowana stąd też więcej jej właściwości musimy przed rozpoczęciem pomiarów ustalić. Przede wszystkim pamiętać należy o tym, iż umożliwia wykonywanie pojedynczych 0x08 graphic
pomiarów (OneShot) jak i serii pomiarów - o zadanej częstotliowści i we wskazanej ilości próbek. Z tego też względu w pierwszej kolejności musimy określić wymagany przez nas tryb pracy. Na początek rozważmy pierwszą opcję - wykonanie pojedynczego pomiaru. We właściwościach kontrolki wskazujemy numer urządzenia (ewentualnie skorzystać możemy z metody SelectDevice) oraz zakres pomiarowy. Podobnie jak w punkcie 2 przechodzimy do edycji skryptu i w jego źródle wpisujemy:

Private Sub CommandButton2_Click()
DAQAI1.OpenDevice
pomiar = DAQAI1.RealInput(0)
Excel.Cells(2, 1) = pomiar
DAQAI1.CloseDevice
End Sub


Ten prosty skrypt wykonywany po naciśnięciu przycisku odczytuje wartość mierzoną z kanału 0 i wpisuje ją do komórki A2 aktywnego arkusza.

4. Pomiar z zadaną częstotliwością.

Trochę bardziej rozbudowaną aplikację musimy stworzyć w przypadku np. zbierania charakterystyki przebiegu sygnału analogowego w czasie. Skorzystać musimy z funkcji autonomicznego skanowania wejść przez kartę i przekazywania wyników pomiarów do aplikacji. Do wykonywania operacji tego typu służy metoda/procedura AcquireStart. Przed jej wykonaniem musimy jednak ustalić kilka dodatkowych właściwości kontrolki. Najważniejsze z nich to:

CyclicMode: określająca zachowanie kontrolki po wykonaniu zadanej ilości pomiarów. W przypadku "false" - procedura jest automatycznie kończona i wysyłany jest komunikat o jej zakończeniu (OnTerminated). W przypadku "true" - wysyłany jest komunikat o zakończeniu (OnEventReal lub OnEventRaw - w zależności od ustawionego formatu danych), a skanowanie wykonywane jest powtórnie.

DataType: określająca format danych zwracanych przez kontrolkę - jako liczba rzeczywista (rzeczywista wartość zmierzona) lub 12-o bitowa liczba całkowita (w odniesieniu do wybranego zakresu pomiarowego).

StartChannell: wskazuje numer pierwszego kanału pomiarowego, który ma być skanowany.

NumberOfChannels: wskazuje liczbę kanałów, z których mają być pobierane próbki.

NumberOfSamples: wskazuje liczbę pomiarów jakie mają być wykonane podczas pojedynczego cyklu. W przypadku korzystania z pamięci FIFO (FIFOEnabled) musi być podzielna przez połowę jej pojemności.

SampleRate: całkowita częstotliwość skanowania (w odniesieniu do wykorzystywanej liczby kanałów pomiarowych).

TransferMode: tryb transferu danych z karty pomiarowej do bufora danych kontrolki. Dostepne są opcje: SoftTrigger (dla pomiarów z częstotliwością do kilkudziesięciu Hz), InterruptTrigger (dla pomiarów z wiekszymi częstotliwościami i z możliwością wykorzystania pamięci FIFO znajdującej się na karcie), oraz DMATrigger (dla wysokich częstotliwości pomiarów, dostępny tylko dla niektórych typów kart).

EventEnabled: zezwolenie na wysyłanie/odbieranie komunikatów o zdarzeniach OnEventReal, OnEventRaw, OnTerminated.

Właściwości te ustawiać możemy korzystając ze standardowej przegladarki właściwości obiektów lub korzystając z własnego okna własciwości obiektu DAQAI:0x08 graphic


Ustaliwszy paramatry np. na:

CyclicMode=true
DataType=adReal
StartChannel=0
NumberOfChannels=1
NumberOfSamples=100
SampleRate=100
TransferMode=adINTTrig
FIFOEnabled=false
EventEnabled=true

przechodzimy ponownie do edycji naszego skryptu. Na skoroszycie tworzymy dwa przyciski służące do rozpoczynania i kończenia procedury wykonywania pomiarów. W źródle VisualBasic wpisujemy:

Private Sub CommandButton3_Click()
DAQAI1.OpenDevice
DAQAI1.AcquireStart
Excel.Cells(2, 1) = DAQAI1.ErrorMessage
CommandButton4.Enabled = True
CommandButton3.Enabled = False
End Sub

Private Sub CommandButton4_Click()
DAQAI1.AcquireStop
DAQAI1.CloseDevice
CommandButton4.Enabled = False
CommandButton3.Enabled = True
End Sub

Po wywołaniu metody AcquireStart pomiary wykonywane są w tle. Zgodnie z zamieszczoną wcześniej informacją po wykonaniu każdego cyklu wysyłany jest komunikat o zdarzeniu OnEventReal. Pozwala to nam na cykliczne pobieranie gotowych do odczytu danych z bufora kontrolki. W źródle VisualBasic wpisujemy więc:

Private Sub DAQAI1_OnEventReal(ByVal DataCount As Long, ByVal Data As Variant)
For i = 0 To 99
Excel.Cells(i + 10, 1) = Data(i)
Next i
End Sub


Na arkuszu definiujemy wykres punktowy wykreślany na podstawie danych zawartych w komórkach A10÷A109. Aplikacja jest gotowa. Po naciśnięciu przycisku rozpoczynającego wykonywanie pomiarów na wykresie, z okresem 1 sekundy powinniśmy zobaczyć przebieg naszego mierzonego sygnału analogowego.

0x01 graphic


5. Podsumowanie.

Zaprezentowane przykładowe aplikacje wykonano z użyciem sprzętu:

- komputer panelowy PPC-174
- CPU: Pentim IV 2.66GHz
- RAM: DDR 256MB
- Windows XP Home Edition
- Microsoft Excel 2003
- karta we/wy analogowych PCI-1710
- karta we cyfrowych i wy przekaźnikowych PCI-1761

Pod uwagę brać należy to, iż wydajność platformy na której korzystamy z przedstawionej propozycji wykorzystania kontrolek ActiveX ma duży wpływ na maksymalne osiągi. Wykorzystując obsługę pamięci FIFO uzyskać można dużo większe częstotliwości próbkowania. Ograniczeniem pozostaje czas potrzebny aplikacji Excel na przepisanie zawartości bufora do komórek arkusza, dlatego też przy próbkowaniu o częstotliwości klikunastu÷kilkudziesięciu kHz i większej ilości próbek przypadających na jeden cykl należy liczyć się z tym, że komputer nie będzie w stanie wykonywać skanowania w trybie cyklicznym. W takim przypadku w rachubę wchodzi jedynie wywołanie procedury w trybie CyclicMode=false, a po otrzymaniu komunikatu o zdarzeniu OnTerminated przepisanie zawartości bufora do komórek arkusza.

Aktualne wersje bibliotek dll i pakietu ActiveDAQ pobrać można z serwera producenta.

W podobny sposób - korzystając z tych samych bibliotek - w środowisku Excel skorzystać można także z modułów kontrolno-pomiarowych serii ADAM-4000/5000, w których komunikacja odbywa się za pomocą interfejsu szeregowego (RS-232/485) oraz protokołu ADAM-ASCII.



Wyszukiwarka

Podobne podstrony:
Business Excellence by Adam Krasowski
Asnyk A., Polonistyka, 05. Pozytywizm, Asnyk Adam, opracowania
W Polsce sektor odzieżowy tworzą dwa działy, nauka, Adam Stabryła, Zarządzanie strategiczne w teorii
Adam Mickiewicz - Pan Tadeusz (opracowanie Kazimierza Wyki), FILOLOGIA POLSKA - UMCS-, II ROK, Roman
adam-górotwórSCIAGA
Ayam, Adam - zupa z kurczaka
adamgroch, Notatki Rolnictwo, 4 rok, IV rok, szur adam
Adam Solarek Konspekt zajęć o Podstawowej Dokumentacji Ratowniczej, szkolenia, WOPR, ratownictwo wod
Zagadnienia na kolokwium Adam Danek, Geografia polityczna UJ
ebooks pl adam+lepa swiat+manipulacji +socjotechnika propaganda media polska ojczyzna pa f1stwo w b
fizyka 2, ćw1, Adam Bieliński
Testy toksyczności, Nowy Dokument programu Microsoft Word (2), Adam Łapiński gr
Dziady część IV (2) , Dziady część IV - Adam Mickiewicz
AKTA OSOBOWE, list mot3, Adam Kwiatkowski
Dziady część II (2) , Dziady część II - Adam Mickiewicz

więcej podobnych podstron