Problem z odczytem z czujnika przemieszczen
Problem z odczytem z czujnika przemieszczen
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.
-
- Posty: 109
- Rejestracja: 26 lut 2010 13:41
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Bydgoszcz
Re: Problem z odczytem z czujnika przemieszczen
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.
- Nowszy
- Posty: 504
- Rejestracja: 30 maja 2008 08:33
- Wersja środowiska: LabVIEW 2011
- Lokalizacja: Katowice
- Kontakt:
Problem z odczytem z czujnika przemieszczen
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
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
Pozdrawiam, Maciek Antonik
Edu4Industry
Edu4Industry