Generacja impulsów

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.
Latoo
Posty: 7
Rejestracja: 11 lut 2011 00:25
Wersja środowiska: LabVIEW 2010

Generacja impulsów

Post autor: Latoo »

Witam, chciałbym stworzyć generatorek generujący impulsy (o okreslonej szerokości i wartości) co zadany czas. Przykładowo ustawiam 1s i co sekunde mam podany impuls. Mam problem z ogarnięciem waveformów. chciałbym uzyskać efekt taki, że pojawia się impuls po zadanej np 1 sekundzie i w tym momencie pojawia się on na waveformie i "przechodzi sobie z jednej strony do drugiej" i po kolejnej sekundzie pojawia się drugi impuls, który także przemieszcza się z jednej strony do drugiej aby po pewnym czasie zniknać (w zależności od zakresu osi czasu na waveformie). Mógłby ktoś podpowiedzieć jak osiągnąc taki efekt? zależałoby mi także na realnym czasie odstępu impulsów. Z góry dziękuję za podpowiedzi.

Chyba nie zachęciłem tym opisem. Może jeszcze raz... mam generator jak w załączonym obrazku i czy jak ustawie częstotliwość na 1 to przy ustawionym wait na 100 będę otrzymywał sygnał co 1s? jak to sprawdzić lub jak to powinienem poprawnie wykonać?
Załączniki
generator.png
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Generacja impulsów

Post autor: PiDi »

Propozycja w załączniku. Generuję sobie prostokąty o częstotliwości 1 Hz, próbkowane co 100 ms (10 Hz). Na zmianę parametrów pozwalam co sekundę - czyli co 10 iterację pętli.
Załączniki
impulsy.vi
(15.07 KiB) Pobrany 273 razy
ObrazekObrazekObrazekObrazek
Latoo
Posty: 7
Rejestracja: 11 lut 2011 00:25
Wersja środowiska: LabVIEW 2010

Re: Generacja impulsów

Post autor: Latoo »

Mam jeszcze jedno pytanie... mając przykładowo coś w stylu tego co w załączniku, dlaczego są rozbieżności między ilością iteracji pętli inne niż 10x? czy nie powinno być tak, że jedna powinna wykonywać się 10x szybciej/wolniej od drugiej? pierwsza co 1ms, a druga co 10ms? Tymczasem przykładowo w pierwszej pętli mam 5146 iteracji gdy w drugiej 1005... jak dla mnie to różnica powinna być 10krotna. Czy można zmusić labview do iterowania dokladnie co 1ms lub nawet mniej niz co 1ms, ale mając czasowo pod kontrolą?
Załączniki
iteracje.png
iteracje.png (17.47 KiB) Przejrzano 6795 razy
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Generacja impulsów

Post autor: Pitol »

Zauważ, że pracujesz na systemie Windows, który nie jest deterministyczny. Wystarczy, że w międzyczasie jakiś inny proces zacznie zabierać zasoby procesora i jedna z tych pętli może się trochę opóźnić.
LabVIEW oferuje pętle czasowe (Timed Loop), które pozwalają kontrolować dokładnie czas wykonania się pętli oraz czas między kolejnymi iteracjami, jednakże pod systemem Windows, z racji braku determinizmu, mniej niż 10ms nie wyciągniesz. Jeśli chciałbyś szybsze pętle musisz przerzucić się na system czasu rzeczywistego, który zagwarantuje Ci odpowiednie czasy wykonania pętli.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Latoo
Posty: 7
Rejestracja: 11 lut 2011 00:25
Wersja środowiska: LabVIEW 2010

Re: Generacja impulsów

Post autor: Latoo »

Szkoda, potrzebowałbym przekręcać pętle nawet co 0,1ms i to w miare dokładnie. :( może jednak jakoś można osiągnąć taki rezultat?
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Generacja impulsów

Post autor: Pitol »

Na systemie Windows jest to nieosiągalne. A w ogóle po co Ci taka rozdzielczość czasowa?
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Latoo
Posty: 7
Rejestracja: 11 lut 2011 00:25
Wersja środowiska: LabVIEW 2010

Generacja impulsów

Post autor: Latoo »

Mam generator generujący impulsy powiedzmy do 1000/s (zalecane abym mogl nawet do 10000/s). Drugim układem zliczam te impulsy oraz generuje impulsy zeragowe/wzorcowe. chodzi o to, zeby tych impulsów wzorcowych było chociażby 10x więcej. Ale warunkiem jest, ze ja musze znać częstotliwość tych impulsów wzorcowych.
Latoo
Posty: 7
Rejestracja: 11 lut 2011 00:25
Wersja środowiska: LabVIEW 2010

Re: Generacja impulsów

Post autor: Latoo »

Ponawiam wątek gdyż nie poradziłem sobie jeszcze z tym tematem... używanie generatora jak zaproponował PiDi jest bardzo ok i można sterować łatwo czasem generacji impulsów zmieniając wartość na Wait. ale nie da się osiągnąć poprawnych wyników powyżej 50 impulsów/s. Związane to jest m.in. z tym, że ciężko osiągnąć poprawne działanie pętli poniżej 10ms. drugą częścią programu chce odczytywać ilość impulsów/s. Próbowałem zrobić to jeszcze inaczej, ale również nie jest idealnie, chociażby z tego powodu, że nie mogę osiągnąć wyników powyżej 500impulsow/s. Do tego chciałbym aby wszystko działo się w realnym czasie. poniżej wklejam drugie rozwiązanie oraz rozwiązanie z generatorem od PiDi. Może ktoś mnie poratować jakimś pomysłem?
Załączniki
liczenie impulsow - generator od PiDi.png
liczenie impulsow.png
ODPOWIEDZ