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ć?
Generacja impulsów
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Generacja impulsów
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
Re: Generacja impulsów
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 (17.47 KiB) Przejrzano 6795 razy
- Pitol
- Moderator
- Posty: 987
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: Generacja impulsów
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.
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.
Re: Generacja impulsów
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?

- Pitol
- Moderator
- Posty: 987
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: Generacja impulsów
Na systemie Windows jest to nieosiągalne. A w ogóle po co Ci taka rozdzielczość czasowa?
Generacja impulsów
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.
Re: Generacja impulsów
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?