NI DAQ 6000 zdarzenie od IO

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
kwitek
Posty: 14
Rejestracja: 01 kwie 2014 14:07
Wersja środowiska: LabVIEW 2013

NI DAQ 6000 zdarzenie od IO

Post autor: kwitek »

Cześć, posiadam kartę NI USB 6000 i podłączony do niego sensor na jedno z wejść IO. Program sterujący procesem wykonujący się na komputerze powinien jak najszybciej zareagować na zmianę poziomu na wejściu IO, czyli na zadziałanie sensora. Czy istnieje lepszy sposób, niż ciągłe czytanie stanu wejścia IO w while'u ?
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: NI DAQ 6000 zdarzenie od IO

Post autor: PiDi »

W większości przypadków wystarczy Ci prawdopodobnie rozwiązanie, o którym piszesz, czyli odczytywanie w pętli stanu wejścia, ale doprecyzujmy:
1. Ile to jest "jak najszybciej" - nanosekunda, sekunda, minuta?
2. Co ma się zdarzyć po wykryciu tego sygnału?
3. Czy dopuszczalne jest "zgubienie" tego zdarzenia (tzn. DI przełączyło FALSE-TRUE-FALSE i program tego nie zauważył)?
ObrazekObrazekObrazekObrazek
kwitek
Posty: 14
Rejestracja: 01 kwie 2014 14:07
Wersja środowiska: LabVIEW 2013

Re: NI DAQ 6000 zdarzenie od IO

Post autor: kwitek »

ok, precyzuję :
ad. 1) odczytywanie stanu co 1 ms
ad. 2) po wystąpieniu stanu wysokiego program ma za zadanie jak najszybciej (dokładność <= 1 ms) odczytać wartość pomiaru licznika, a następnie dołączyć go do danych pomiarowych
ad. 3) zgubienie stanu wysokiego jest niedopuszczalne.

Rozwiązanie z pętlą while ma dużą wadę - obciąża procesor i jego częstość odświeżania zależy od windowsa. (Czy myślisz, że zmiana Priorytetu wykonywania VI na wysoki, a także zmiana "prefered execution system" na "Instrument IO" coś daje? Czy w praktyce faktycznie to działa? (Sam sprawdzałem tylko wpływ "Allow Debugging" na CRIO - i faktycznie dezaktywacja tej opcji przyspieszyła kod o jakieś 3%).

Najlepsza wiadomość była by, gdyby istniał sposób stworzenia "przerwania" od pojawienia się stanu wysokiego.
SNT
Posty: 56
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

NI DAQ 6000 zdarzenie od IO

Post autor: SNT »

Najlepiej do tego zadania nadają się wejścia PFI. Na wspomnianej karcie są chyba dwa więc możesz ewentualnie sygnał rozdzielić na dwa wejścia i użyć zbocza opadającego i narastającego.
kwitek
Posty: 14
Rejestracja: 01 kwie 2014 14:07
Wersja środowiska: LabVIEW 2013

Re: NI DAQ 6000 zdarzenie od IO

Post autor: kwitek »

Ok, ale co to zmieni po stornie programu?
SNT
Posty: 56
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

NI DAQ 6000 zdarzenie od IO

Post autor: SNT »

karta sama rozpocznie pomiar jeżeli na wejściu PFI będzie odpowiednie zbocze. Nie będziesz musiał tego robić w while'u.
ODPOWIEDZ