Strona 1 z 1

DAQmx - akwizycja AI z dwóch kart PXI-6289

: 02 maja 2012 20:44
autor: Bernard_K
Witam,

Piszę, ponieważ kolejny tydzień walczę wydawało by się z banalnym problemem.
Otóż mam w PXI m.in. dwie karty multifunction PXI-6289.
Do każdej z tych kart mam podpięte różne przetworniki analogowe, najczęściej ciśnienie-napięcie, ale mam też czujniki siły oraz przemieszczenia.
Część czujników jest wpięta do jednej karty, a reszta do drugiej (nie starczyło wejść, żeby upchać je na jednej karcie).
Muszę dokonać pomiaru z kilku kanałów na raz, przy czym część to kanały z jednej karty, a część z drugiej.

Przeanalizowałem odpowiednie przykłady w LV ("Multi-Device Synch-Analog Input-Finite Acq-Analog Start.vi" oraz "Multi-Device Synch-Analog Input-Cont Acquisition.vi") i wyrzeźbiłem na tej podstawie swój VI ("DAQmx AI Finite Acq MultiDev Synchronized.vi"). O dziwo nawet działa ;)

W czym problem? Dokładnie to muszę zrobić coś takiego:
- skonfigurować i wystartować pomiary (taski),
- wykonać operacje typu kręcenie silnikami krokowymi, ruchy siłownikami, itp.,
- poczekać, aż silniki skończą swój ruch,
- odczytać i przetworzyć zebrane dane z pomiarów, zakończyć taski.

O ile dla kanałów tylko z jednej karty to nie problem, o tyle w przypadku dwóch kart mam problem: po podzieleniu mojego przykładowego VI na 2 subVI przestało działać ("DAQmx_start_stop_AI_multidev_example.vi"). Wygląda mi na to, że we flat structure ginie gdzieś nazwa tasku i ostatni sub VI nie wie, co ma robić. Oczywiście WAIT we flat structure jest tylko po to, żeby zasymulować czas, przez jaki kręcą silniki (zmienia się wtedy przemieszczenie i siła), na które muszę czekać.

Sam już nie wiem, gdzie robię błąd. Może można by to jakoś inaczej zrealizować?

Załączam moje próby walki z tym problemem. Oba archiwa zawierają to samo, tyle tylko, że jedno jest w wersji dla LabVIEW 8.2, a drugie dla LabVIEW 2011.
Proszę o wskazówki w rozwiązaniu problemu, a przynajmniej w obejściu go.
Problem rozwiązany :)
Na trop naprowadził mnie post, dzięki któremu przestałem szukać problemu, tam gdzie go tak naprawdę nigdy nie było:
http://forums.ni.com/t5/LabVIEW/DAQmx-T ... 458/page/2

Zgodnie z podejrzeniami przyczyną był czeski błąd - jak się żąda , żeby DAQmx Read czytał 0 sampli, to nie dziwne, że na wyjściu jest pusta tablica ;)