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 » 10 paź 2015 10:25

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: 604
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2015
Lokalizacja: Katowice
Has thanked: 2 times
Been thanked: 1 time

Re: NI DAQ 6000 zdarzenie od IO

Post autor: PiDi » 10 paź 2015 18:09

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ł)?
ObrazekObrazekObrazek

kwitek
Posty: 14
Rejestracja: 01 kwie 2014 14:07
Wersja środowiska: LabVIEW 2013

Re: NI DAQ 6000 zdarzenie od IO

Post autor: kwitek » 11 paź 2015 13:53

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: 45
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

NI DAQ 6000 zdarzenie od IO

Post autor: SNT » 15 paź 2015 14:46

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 » 15 paź 2015 20:04

Ok, ale co to zmieni po stornie programu?

SNT
Posty: 45
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

NI DAQ 6000 zdarzenie od IO

Post autor: SNT » 16 paź 2015 09:03

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

ODPOWIEDZ