Strona 1 z 1

NI DAQ 6000 zdarzenie od IO

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

Re: NI DAQ 6000 zdarzenie od IO

: 10 paź 2015 18:09
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ł)?

Re: NI DAQ 6000 zdarzenie od IO

: 11 paź 2015 13:53
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.

NI DAQ 6000 zdarzenie od IO

: 15 paź 2015 14:46
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.

Re: NI DAQ 6000 zdarzenie od IO

: 15 paź 2015 20:04
autor: kwitek
Ok, ale co to zmieni po stornie programu?

NI DAQ 6000 zdarzenie od IO

: 16 paź 2015 09:03
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.