Problem z działaniem zewnętrznego zegara w DAQmx 6353

Tematy związane z LabVIEW pracującym w czasie rzeczywistym.
apachacz
Posty: 2
Rejestracja: 25 maja 2020 13:38
Wersja środowiska: LabVIEW 2019

Problem z działaniem zewnętrznego zegara w DAQmx 6353

Post autor: apachacz » 25 maja 2020 15:00

Dzień dobry,
To mój pierwszypost na forum, ale też początek przygody z LabView, dlatego będę wdzięczna za pomoc i wyrozumiałość.
Idea mojego programu jest taka, aby zewnętrznym sygnałem impulsowym triggerować wysyłanie pewnych ustalonych skończonych przebiegów sygnału napięciowego na dwa wyjścia. Docelowo pewnie chciałabym, aby z jednym rosnącym zboczem były wysyłane po jednej próbce na każdy kanał, ale póki co mam bardziej podstawowy problem.
Całkowity przebieg dla każdego z kanałów wyjściowych zawiera 100 pktów z ustalonym dt=2*10^-5 s.
Podłączyłam więc na wejście PFI0 generator funkcyjny, na którym ustawiłam przebieg impulsowy o amplitudzie 3.5 V, częstotliwości 100 kHz i poziomie wypełnienia 20%. Na forum dowiedziałam się, że aby nie przekroczyć limitu prądowego należy włączyć między generatorem a PFI0 opornik 0.5-1 kOhm, tak też więc zrobiłam. Natomiast wyjścia ao2 i ao3 wyprowadziłam na oscyloskop.
W tej konfiguracji programu otrzymuję błąd "200560 Wait Until Done did not indicate that the task was done within the specified timeout". Wyczytałam gdzieś, żeby może zwiększać timeout, ale nic to nie dało. Sprawdzałam też w NI Max, że sygnał z generatora jest widziany poprawnie a jak podłączę się z generatora na oscyloskop, to widać ładny sygnał prostokątny. Z Onboard Clockiem generacja sygnału na wyjście działa. Kombinowałam też z różnymi częstotliwościami, sygnału wejściowego i różnym sampling rate itp, myślałam, że może problem jest w tym, że sygnał z generatora jest generowany ciągle, a przebiegi na wyjście skończone, ale wciąż nie udało mi się zaradzić temu. Program jest w pętli while, ponieważ chcę, aby przebiegi były generowane w kółko, dopóki nie zatrzymam programu ręcznie.
Będę wdzięczna za pomoc w znalezieniu przyczyny błędu, ale też zaproponowanie alternatywnych rozwiązań.
Załączam screen programu.
Pozdrawiam
Załączniki
2.png

Awatar użytkownika
smiga
Administrator
Posty: 737
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk
Has thanked: 5 times
Been thanked: 5 times
Kontakt:

Re: Problem z działaniem zewnętrznego zegara w DAQmx 6353

Post autor: smiga » 26 maja 2020 02:42

Nie wiem czy dobrze zrozumiałem problem, ale jeżeli chcesz triggerować zewnętrznym sygnałem, to za bloczkiem Timing/Sample Clock wstaw Triggering/Start Digital Edge i do niego podłącz to wejście PFI0 (sprawdź czy PFI0 jest odpowiednim wejściem). Po prostu program potrzebuje wskazania zewnętrznego triggera.

Jeżeli natomiast chcesz generować sygnał, który definiujesz przy pomocy waveforma, to podepnij go od razu do bloczka Timing ...jak poniżej:
Załączniki
daqmx.jpg
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek

apachacz
Posty: 2
Rejestracja: 25 maja 2020 13:38
Wersja środowiska: LabVIEW 2019

Re: Problem z działaniem zewnętrznego zegara w DAQmx 6353

Post autor: apachacz » 26 maja 2020 14:14

smiga, dziękuję za odpowiedź.
Chodzi o to pierwsze rozwiązanie, chcę żeby z zewnętrznego urządzenia docierał do DAQ sygnał impulsowy inicjujący z każdym rosnącym zboczem wysłanie próbki sygnału na wyjście karty. Wstawiłam Trigger/Start Digital Edge, podłączyłam do niego PFI0. Wciąż otrzymuję error "200560 Wait Until Done did not indicate that the task was done within the specified timeout". Może problem leży w tym, że generator funkcyjny wysyła sygnał na kartę jeszcze przed uruchomieniem programu w LabView?

Awatar użytkownika
smiga
Administrator
Posty: 737
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk
Has thanked: 5 times
Been thanked: 5 times
Kontakt:

Re: Problem z działaniem zewnętrznego zegara w DAQmx 6353

Post autor: smiga » 27 maja 2020 21:28

Jeżeli generator cały czas sobie pracuje, czyli prostokąt jest przed i w trakcie uruchomienia programu, to nie jest ten problem (nawet bezpieczniej jest, że jest przed uruchomieniem).

W mojej ocenie wszystko wskazuje na to, że nie startuje generacja sygnału, z powodu braku triggera lub zegara taktującego. Zrób sobie najpierw prosty układ (poniżej) i sprawdź czy to wejście PFI0 stanie się zegarem taktującym (SOURCE). Jeżeli to zadziała, to zmodyfikuj kod, czyli tak jak chcesz Finite Samples + Trigger.
Załączniki
daqmx.jpg
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek

ODPOWIEDZ