Zliczenie ilości pulsów, ale inaczej

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Awatar użytkownika
mmkst
Posty: 22
Rejestracja: 16 mar 2010 16:59
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Poznań

Zliczenie ilości pulsów, ale inaczej

Post autor: mmkst »

Witam. Mam ściągniętą z karty pomiarowej macierz przebiegu prostokątnego. Chcę policzyć ile w nim jest pulsów. Jak liczę ile jest w tych próbkach wartości true, to zlicza mi wszystkie próbki o wartości true, które są zawarte w jednym "pulsie". I tak zamiast jednego pulsu liczy mi np.:5. Wykonywałem moje obliczenie tak, że przeglądał macierz i szukał wartości true (było na int i szukał wartości 1, ale to to samo) i przenosił tę próbkę do drugiej macierzy. Stąd po przejrzeniu całej macierzy wejściowej miałem stworzoną drugą, która zawierała same wartości true. Na końcu wyświetlałem sobie rozmiar macierzy drugiej.

Ale jak mówiłem jeden puls jest spróbkowany w kilku miejscach, jak zrobić, aby liczył mi go tylko raz? Licznik sprzętowy nie wchodzi w grę. Częst. badanego przebiegu to ok 8-10kHz.
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: Ender »

Witam
Zapis do wersji 7.1 przerasta moje możliwości, więc screen będzie musiał wystarczyć ;) Mam nadzieję, że o to chodzi.

Pozdrawiam
Ender
Załączniki
Licznik pulsów.PNG
Licznik pulsów.PNG (9.88 KiB) Przejrzano 12430 razy
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Awatar użytkownika
mmkst
Posty: 22
Rejestracja: 16 mar 2010 16:59
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Poznań

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: mmkst »

Właśnie w tym sęk, że jak zadasz mu sygnał, w którym 2-3 próbki mają wartość false, potem 2-3 próbki mają wartość true itd. to podczas zliczania, zliczy każdą próbkę na której jest true, a ja chcę zliczyć cały puls jako 1. Rozumiesz? Jeśli nie to postaram się wrzucić obrazek z opisem.
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Zliczenie ilości pulsów, ale inaczej

Post autor: Ender »

.... przecież ten program to właśnie robi. Sprawdzałeś? Wykrywa zmianę z F na T i tylko wtedy zlicza puls. Zamiast symulowanego sygnału podepnij na wejście tablicę z elementami boolean, zmieniaj je dowolnie i zobaczy czy wynik będzie się zgadzał.
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Awatar użytkownika
mmkst
Posty: 22
Rejestracja: 16 mar 2010 16:59
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Poznań

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: mmkst »

Sprawdziłem i rzeczywiście działa!!:) Nie wiem tylko dlaczego konwersja sygnału, którą zastosowałeś u mnie nie działa. W error-ze jest napisane, że nie można dokonać konwersji sygnału z long na ulong. Jak zastosowałem bloczek konwersji to wyświetla, że nie można przekonwertować z ulong do ulong (??). Obszedłem to, ale zdziwiło mnie to.
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
Awatar użytkownika
wino
Posty: 549
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: wino »

No patrze na to rozwiązanie Ednera i od razu mi się ono wydawało jakieś takie ... niedziałające do końca poprawnie. No i się zmusiłem do przetestowania i znalazłem błąd.

Bo jak ostatni impuls składa się z jednej wartości T i jest na końcu w tablicy, to nie zostanie zlicznony, bo pętla go nie bada.
Błąd.jpg
Są dwa impulsy a wynik równa się jeden.

A powinno być chyba tak, ale jakoś mi to rozwiązanie też nie leży
ChybaDobrze.jpg
Awatar użytkownika
mmkst
Posty: 22
Rejestracja: 16 mar 2010 16:59
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Poznań

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: mmkst »

No dobrze, to jeszcze jeden myk, a jak poszerzyć funkcjonalność tak, żebym ja jako użytkownik podawał ile sygnałów TRUE ma znaleźć? Kiedy osiągnie tą liczbę ma mieć zliczone ile próbek musiał zbadać aby zliczyć TRUE i rozpocznie cały proces od nowa. Próbowałem to zrobić tak jak na zdjęciu, ale to nie działa... W miejscu podłączania wyniku porównania do stopu pętli while w moim programie jest strzałeczka pętli sprzężenia zwrotnego w przód i nie ma oczywiście błędu niepodłączenia. Dorzucam też cały vi, może będzie prostrzy do analizy.
Załączniki
matoda T (streaming).vi
(81.19 KiB) Pobrany 308 razy
Untitled.png
Untitled.png (5.75 KiB) Przejrzano 12364 razy
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
Awatar użytkownika
mmkst
Posty: 22
Rejestracja: 16 mar 2010 16:59
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Poznań

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: mmkst »

Witam, napisałem niejasno? Jest to niewykonalne?:) Czy każdy kto potrafi to zrobić mnie olał? Nie musi to być kod, chociaż jakaś sugestia jak to zrobić. Mój jakiś tam pomysł po nawet modyfikacjach kompletnie się nie sprawdza. Pozdro i mam nadzieje dostać odp.
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
Awatar użytkownika
wino
Posty: 549
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: wino »

Twoja odpowiedź jest jasna, tylko napisz proszę po co chcesz zliczać ilość TRUE?
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: Ender »

Zakładając, że przez sygnał TRUE rozumiesz to, co wcześniej nazywałeś pulsem, to wyszło mi coś takiego (dzięki wino za naprawienie błędu).
Może faktycznie napiszesz nam jaki jest cel końcowy tego wszystkiego? Znając życie, to po piątej modyfikacji programu okaże się, że chcesz zmierzyć np częstotliwość sygnału albo inną rzecz, którą załatwia się jednym bloczkiem... ;)
Załączniki
licznik pulsow 2.PNG
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Awatar użytkownika
mmkst
Posty: 22
Rejestracja: 16 mar 2010 16:59
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Poznań

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: mmkst »

Muszę zmierzyć prędkość z wykorzystaniem metody M i T oraz kombinowanej M/T. Pierwsze co napisaliście de facto dla mnie (chciałem napisać, że pomogliście, ale byłoby to nadużycie:P) to pomiar prędkości wg metody M, a drugie wg T. Gdzie częstotliwość próbkowania jest jednocześnie generatorem wzorcowym dla mnie. Z trzecią metodą poradziłem sobie sam, ale tylko dzięki wam:) W każdym razie dzięki wielki, pochwały już rozdałem. Jak nadal nie będę dawał rady, to jeszcze się odezwę i zapytam.

Metoda M/T robi tak: Ma zadany czas pomiaru podczas którego zlicza impulsy [true] (u mnie generatorem czasu są kolejne spróbkowane elementy, czyli podaje ile próbek ma brać pod uwagę podczas zliczania). Potem po ostatnim impulsie mierzy ile jeszcze czasu jest od ostatniego impulsu do końca czasu pomiarowego. Obie wielkości wykorzystuje przy liczeniu prędkości obrotowej (czyli ilość zliczonych impulsów [true] i czas nazwijmy go dodatkowy).
Tym sposobem nawet, jak czas pomiaru skończy się między dwoma impulsami [true] to i tak całość pomiaru jest brana pod uwagę i maleje błąd.

Pozdrawiam
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
Awatar użytkownika
wino
Posty: 549
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: wino »

A korzystasz z jakiejś karty firmy NI? Czy sam sobie generujesz te impulsy?
Awatar użytkownika
mmkst
Posty: 22
Rejestracja: 16 mar 2010 16:59
Wersja środowiska: LabVIEW 7.1
Lokalizacja: Poznań

Re: Zliczenie ilości pulsów, ale inaczej

Post autor: mmkst »

Właśnie większość problemów wynikła z tego, że używam innej karty. Karta to LabJack U3-HV. W sumie jest kiepska, ale kosztuje 113$... Więc jak za te pieniądze to rewelka, że można zrobić cowolwiek.
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
ODPOWIEDZ