Witam,
Czy istnieje możliwość nasłuchiwania wejść cyfrowych DAQ i obsłużenie zdarzenia związanego ze zmianą stanu któregoś z wejść –> czyli struktura event czekająca w nieskończoność nasłuchując wejścia cyfrowe.
Ogólnie chodzi mi o to że mam strukturę producent-konsument i producent jedynie nasłuchiwałby wejścia cyfrowe i w razie zmiany któregoś - kolejkowałby numer wejścia na którym zaszła zmiana a konsument obsługiwałby to zdarzenie w zależności od potrzeb.
Z góry dzięki za zainteresowanie tematem
Pozdrawiam
Wejścia cyfrowe DAQ a struktura event
-
- Posty: 6
- Rejestracja: 30 mar 2014 23:38
- Wersja środowiska: LabVIEW 2013
Re: Wejścia cyfrowe DAQ a struktura event
Witam.
Z tego co rozumię to potrzebujesz po prostu wywołać zdarzenie programowo.
Jest to do zrobienia.
Musisz utworzyć Create user event i Register for events,
W pętli akwizycji wywołać przerwanie Generate User Event
natomiast w pętli przetwarzającej obsłużyć odpowiednie przerwanie.
Musisz w strukturze Event uaktywnić tunel Event Dynamic Registration.
W tej strukturze możesz przesyłać różne typy danych do struktury Event
Pozdrawiam
Zuk
Z tego co rozumię to potrzebujesz po prostu wywołać zdarzenie programowo.
Jest to do zrobienia.
Musisz utworzyć Create user event i Register for events,
W pętli akwizycji wywołać przerwanie Generate User Event
natomiast w pętli przetwarzającej obsłużyć odpowiednie przerwanie.
Musisz w strukturze Event uaktywnić tunel Event Dynamic Registration.
W tej strukturze możesz przesyłać różne typy danych do struktury Event
Pozdrawiam
Zuk
Wejścia cyfrowe DAQ a struktura event
Wszystko zależy od tego, jak duży jest priorytet tego, co chcesz po wychwyceniu zmiany zrobić.
Podejście zaproponowane przez MK_Zuk ogranicza twój czas reakcji do timeoutu pętli akwizycji.
Tzn. np. Pętla sprawdza status IO co 50ms, czyli maksymalnie po takim czasie zarejestrujesz zmianę stanu.
A biorąc pod uwagę, że pracujemy pod Windowsem, to nigdy nie wiadomo, kiedy tak naprawdę sczytasz stany.
Sam nigdy tego nie robiłem, ale możesz spróbować czegoś takiego:
http://www.ni.com/white-paper/4102/en/
Zwróć jednak uwagę na ograniczenia sprzętowe. Może twoja karta nie obsługuje tego typu wejść.
P.S. Taki temat był chyba niedawno na forum, ale skoro moderatorzy nie reagują...
Podejście zaproponowane przez MK_Zuk ogranicza twój czas reakcji do timeoutu pętli akwizycji.
Tzn. np. Pętla sprawdza status IO co 50ms, czyli maksymalnie po takim czasie zarejestrujesz zmianę stanu.
A biorąc pod uwagę, że pracujemy pod Windowsem, to nigdy nie wiadomo, kiedy tak naprawdę sczytasz stany.
Sam nigdy tego nie robiłem, ale możesz spróbować czegoś takiego:
http://www.ni.com/white-paper/4102/en/
Zwróć jednak uwagę na ograniczenia sprzętowe. Może twoja karta nie obsługuje tego typu wejść.
P.S. Taki temat był chyba niedawno na forum, ale skoro moderatorzy nie reagują...