Strona 1 z 1

Czasowe działania fragmentu kodu

: 20 sie 2007 02:13
autor: CHRISTOPCHER
Witam

Mam pytanko odnosnie uaktywniania przez określony czas części kodu.
Uściślając temat chce aby częśc mojego programu uaktywniala się z pewnym opóżnieniem po spełnieniu określonego warunku i po upłynięciu określonego czasu dezaktywowała się . Bardzo bym prosił o wskazowki . Osobiście na chwile obecna prubuje rozwiazac swoj problem za pomoca
" Diagram disable structure " i " Wait (ms) " .

Pozdrawiam
Christopcher

Re: Czasowe działania fragmentu kodu

: 20 sie 2007 06:26
autor: progor
uaktywnienie z opóźnieniem - event structure --> timeout
w środku trzeba pewnie kod wsadzić do pętli while i monitorować czas po jakim ma być dezaktywacja, czyli wyjście z while'a i wyjście z eventa (stop, aby się po raz kolejny timeout nie wykonał).

Re: Czasowe działania fragmentu kodu

: 20 sie 2007 08:42
autor: Mikrobi
CHRISTOPCHER pisze:Uściślając temat chce aby częśc mojego programu uaktywniala się z pewnym opóżnieniem po spełnieniu określonego warunku i po upłynięciu określonego czasu dezaktywowała się . r
Proponuję takie rozwiązanie: Petla while + Flat Sequence o trzech ramkach w których kolejno powinno się znaleźć: 1. Wait(ms) co jaki czas ma być uruchamiany kod 2. właściwy kod 3. Sprawdzanie warunku zatrzymania pętli - zmiennej lokalnej lub kontrolki.
CHRISTOPCHER pisze:Osobiście na chwile obecna prubuje rozwiazac swoj problem za pomoca
" Diagram disable structure " i " Wait (ms) " r
Diagram disable structure jest odpowiednikiem oznaczenia /* i */ w C i C++ czyli poprostu wyłaczeniem realizacji zamkniętej tymi znacznikami częsci kodu z programu (komentowaniem kodu)
Zatem nie jest to dobre rozwiązanie.
progor pisze:uaktywnienie z opóźnieniem - event structure --> timeout w środku trzeba pewnie kod wsadzić do pętli while i monitorować czas po jakim ma być dezaktywacja, czyli wyjście z while'a i wyjście z eventa (stop, aby się po raz kolejny timeout nie wykonał).
Taka struktura bedzie się realizowała za każdym razem, kiedy przez czas określony wejściem timeout w strukturze event nie będzie akcji, którą event ma obsługiwać. Zatem jeśli bedą wystepowały zdefiniowane dla eventa zdarzenia (np. zmiany wartości kontrolek) to kod który ma byc obsługiwany w oknie timeout eventu nie będzie wykonywany regularnie. Pomijam oczywiście dwie struktury event w VIju, gdyż są one nieprawidłową strukturą programu.
Warto pamietać o tym, że LabVIEW nie ma problemów z realizacją pętli pracujących równolegle. Istnieje kilka metod komunikacji między pracującymi pętlami - najprostsza to zmienne lokalne, są też struktury LV2glb czyli ActionEngine i inne.

Re: Czasowe działania fragmentu kodu

: 20 sie 2007 23:20
autor: CHRISTOPCHER
Uwzględniłem uwagi z zmodyfikowałem swoją aplikacje jednak nie działa jak powinna. Mimo zadanego czasu rejestracji na waveform chart cały czas widać generowane przebiegi. Chciałem jeszcze skrotowo przybliżyć działanie mojego programu. Na wejścia cyfrowe karty pomiarowej dochodzą sygnały identyfikujące przebiegi. Z wykorzystaniem elektroniki na te same kanały karty są doprowadzone sygnały z różnych miejsc układu . Na razie w celach tworzenia programu przebiegi pochodzące z układu zastąpiłem generatorem. I dołączyłem zamiast kontrolek zapisujących do pliku waveform chart . W kodzie będzie 10 okienek flat sequence odpowiadające 5 rożnym miejscom w układzie działające po kolei sekwencyjnie. Rejestracja poszczególnych przebiegow będzie uaktywniana po spełnieniu warunku wejście cyfrowego i tu zamierzam wykonac za pomoca petli case structure . Załanczam bardzo skrutowe uproszczenie programu , chodzi mi na początku żeby rozwiązać problem zczytywania sekwencyjnego z pewnym opóźnieniem i przez określony czas mimo generacji ciągłej przebiegu. Bardzo bym prosił o wszelkie sugestie .

Pozdrawiam
Christopcher

Re: Czasowe działania fragmentu kodu

: 21 sie 2007 01:21
autor: CHRISTOPCHER
Precyzują chodzi mi o to żeby z calego przebiegu wyłapywac określone jego części oczywiście w sposób cykliczny a pozniej archiiwizować , a reszte co mi jest nie potrzebne poprostu zeby bylo bezpowrotnie tracone .