Strona 1 z 1

synchronizacja DAQmx i X-NET

: 17 maja 2012 09:32
autor: mar3cki
System PXIe, karta DAQ + CAN + FIU.
Wielowątkowa aplikacja w predefiniowany sposób wystawia ramki na X-NET, przełącza styki w FIU i w tym czasie próbuje kilkanaście kanałów AI. Każda z pętli zwraca waveform, dane są wyświetlane na jednym Graphie po zakończeniu sterowania. Całość trwa ok 3sek, niby drift zegarowy niewielki, ale możliwy do kilku ms, a to już za dużo.
wątki w pętlach timowanych:
1 sterowanie karty FIU (10ms)
2 odczyt strumienia z X-NET (2ms) z dekodowaniem ramek
3 wysyłanie na strumień X-NET (2ms)
4 pomiar DAQmx (100kS, 3s)

- Jak zsynchronizować zegar DAQmx z CAN/X-NET? Jest tutorial NI http://www.ni.com/white-paper/4204/en, ale nie rozumiem który zegar ma być podany jako sterujący. Czy mam użyć DAQmx Connect Terminal do przekierowania sygnału zegarowego?
- zauważyłem, że jak pętla 2 (odczyt X-NET) dam szybciej tzn 1ms, to zaczyna się nie wyrabiać (ok 70x patrząc na Previous Iteration Timing -> Finished Late? [i-1]. Czy przyczyną może być konflikt dostępu do karty X-NET wątku 2 i 3? Tzn ta sama karta nie może w tym samym czasie nadać i odczytać ramki?

synchronizacja DAQmx i X-NET

: 22 maja 2012 19:15
autor: bogdani
Witaj

Możesz zrobić tak: generujesz sobie zegar, który będzie ci wyznaczał cykl (podziel zegar na licznikach jak masz) i puść go na linię RTSI.
W DAQmx możesz ustawić trigger aby startował akwizycję, sterowanie na konkretny impuls, a w przypadku X-NET podobnie, nie robiłem tego, ale wygląda że da się.
Zwróć właśnie uwagę, że nie możesz w tym samym czasie mieć dostępu dwóch wątków do jednego urządzenia.
Zauważ że odczytujesz informację poCAN, która była nadana chwilę wcześniej, nie masz pewności jakie przesunięcie jest. Czy jest szansa na to, że twoje urządzenie daje jakiś sygnał gdzieś, że nadaje, że coś się dzieje, żebyś miał pewność że to jest ten moment?

bogdani