Maszyna stanów a pętla while
: 09 paź 2009 23:17
Witam wszystkich.
Piszę program w do zbierania danych z karty NI USB 6008.
Algorytm wygląda następująco.
1. Oczekiwanie na start pomiaru (zbocze wstępujące na wejściu 1).
2. Pomiar nr 1 napięcia z wejścia analogowego przez czas kiedy na wejściu 1 mamy logiczne 1(zbocze zstępujące oznaczenia przejście do punktu 3),
3. Analiza odebranych danych i wysterowanie wyjść,
4. Pomiar nr 2 (punkty analogiczne do 3 i 4),
5. Pomiar nr 3 jak wyżej
6. Powrót do punktu 1.
7. Stop jeżeli został wciśnięty przycisk "stop".
Warunek dodatkowy pojawienie się sygnału na wejściu 2 zatrzymuje którykolwiek pomiar, wysterowuje wyjście i powoduje powrót do punktu 1 algorytmu.
Postanowiłem wykonać program używając maszyny stanów. Mam jednak problem z zaimplementowaniem warunku dodatkowego. Tzn. nie wiem jak w będąc w stanie 2, 4 lub 5 (pomiar), zatrzymać pętlę odpowiednimi stanami wejść while (w niej odbywa się zbieranie napięcia).
Dołączyłem przykładowy VI (bez zbierania danych, samą maszynę stanów).
Piszę program w do zbierania danych z karty NI USB 6008.
Algorytm wygląda następująco.
1. Oczekiwanie na start pomiaru (zbocze wstępujące na wejściu 1).
2. Pomiar nr 1 napięcia z wejścia analogowego przez czas kiedy na wejściu 1 mamy logiczne 1(zbocze zstępujące oznaczenia przejście do punktu 3),
3. Analiza odebranych danych i wysterowanie wyjść,
4. Pomiar nr 2 (punkty analogiczne do 3 i 4),
5. Pomiar nr 3 jak wyżej
6. Powrót do punktu 1.
7. Stop jeżeli został wciśnięty przycisk "stop".
Warunek dodatkowy pojawienie się sygnału na wejściu 2 zatrzymuje którykolwiek pomiar, wysterowuje wyjście i powoduje powrót do punktu 1 algorytmu.
Postanowiłem wykonać program używając maszyny stanów. Mam jednak problem z zaimplementowaniem warunku dodatkowego. Tzn. nie wiem jak w będąc w stanie 2, 4 lub 5 (pomiar), zatrzymać pętlę odpowiednimi stanami wejść while (w niej odbywa się zbieranie napięcia).
Dołączyłem przykładowy VI (bez zbierania danych, samą maszynę stanów).