Strona 1 z 1

Problem z odczytem z czujnika przemieszczen

: 29 mar 2011 13:58
autor: durand
Witam wszystkich forumowiczów. Mam problem odnośnie napisanego programu został on przeze mnie dodany w załączniku ( sterowanie zaworem) program ten realizuje wymuszenie np sinusoidalne przy użyciu karty pomiarowej labview usb-6218 następnie to wymuszenie jest przekazywane na siłownik który rozciąga nam pewien przedmiot na którym zamocowany jest czujnik przemieszczeń. Z czujnika informacje o przemieszczeniu są również zapisywane przez port karty pomiarowej. W momencie jednak odpalenia programu wszystko działa sprawnie do momentu aż karta zaczyna zczytywać nasz wysyłany sygnał występuje błąd (załącznik nr 2 sterowanie zaworem 2) dotyczy on z tego co można wyczytać zapełnieniem bufora karty ? W jaki sposób można się tego problemu pozbyć dodam że jest to wszystko robione na symulowanej karcie. I drugie pytanie troszkę bardziej zaawansowane chciałbym mieć większą kontrole nad moim programem w takim sensie żeby sterować go równolegle czyli pierw sygnał sinusoidalny jest czytany przez kartę a następnie odczyt z czujnika przemieszczeń tak żeby nie występowały przerwy podczas odczytu sygnału. Czy są jakieś gotowe przykłady pokazujące jak wykonać takie sterowanie, lub prosiłbym o jakieś wskazówki jak się za to zabrać. Dziękuj z góry za odpowiedzi. Pozdrawiam.

Re: Problem z odczytem z czujnika przemieszczen

: 31 mar 2011 20:17
autor: AGF
Wydaje mi się, z tego co widzę to twoje pojedyncza iteracji nadawania i odbierania sygnału potencjalnie może zająć różnej długości okresy czas, Te dłuższe zadanie blokuje pętlę while, w wyniku czego przepełnia ci się bufor odbiorczy.

Problem z odczytem z czujnika przemieszczen

: 31 mar 2011 21:16
autor: Nowszy
Cześć

Wygląda na to, że czytasz próbki zbyt wolno. Odczytujesz je w trybie Continous Samples, co znaczy że karta cały czas zapełnia bufor, a ty odczytujesz paczki próbek z bufora. Odczytujesz je zbyt wolno, więc bufor nadpisuje stare próbki nowymi zanim je odczytasz. Zwiększ wartość Samples to Read i powinno pomóc.

Poza tym twój program jest bardzo nieuporządkowany - w każdej iteracji pętli nie wiesz czy próbki zostaną najpierw odczytane czy zapisane. Nie mam w tej chwili dostępu do DAQmx, więc nie podam ci nazwy konkretnego przykładu, ale w Example Finder Hardware Input and Output>>DAQmx i tam chyba Synchronization na pewno znajdziesz