Witam!
Mam problem a raczej pytanie odnośnie wykonywania się pętli "while". Moim zadaniem jest zmierzenie charakterystyki anteny. Steruję dwoma przyrządami: rotorem do obracania anteny oraz miernikiem. Pomiar ma się wykonywać automatycznie, tzn:
- obrót anteny np. o 20*
- pomiar
- zapis położenia anteny i pomiaru do tablicy
- do aktualnej pozycji anteny dodać kolejne 20*
- pomiar
- zapis
- itd...
Do tego celu wykorzystałem pętlę "while" (foto w załączniku). Wykorzystując rejestry, uzyskuję zadany skok obrotu (np co 20*). Podczas pojedynczej iteracji wartość ta podawana jest do rotora ("komenda obrotu anteny" na foto). Rotor zaczyna się obracać i po osiągnięciu pozycji ("sprawdzenie bieżącej pozycji" na foto) następuje pomiar. Moje pytanie brzmi: czy podczas tego działania pętla nie zacznie wykonywać kolejnej iteracji? Czy zaczeka na wykonanie pomiaru ("pomiar" na foto)?
Wykonywanie się petli while
Re: Wykonywanie się petli while
Iteracja pętli While skończy się jedynie wtedy, kiedy wszystkie VI-e się wykonają.
W twoim przypadku, jeżeli dasz jakieś sprawdzanie aktualnej pozycji (co masz), to ono będzie Ci blokować iterację zewnętrznej pętli.
Pętla w pętli nie jest najlepszym rozwiązaniem jak antena się zatnie i nie dojdzie do pozycji, bo w tej sytuacji, jeżeli będziesz chciał zatrzymać program (jedynie czerwony stop zadziała) zerwiesz połączenie VISA, które będzie nadal zajęte i nie podłączysz się kolejny raz (chyba, że całe LV zrestartujesz).
Podsumowując to co napisałeś powinno działać tak jak chcesz, ale jest okropnie podatne na wszelkie błędy połączenia, albo zacięcia się sprzętu.
W twoim przypadku, jeżeli dasz jakieś sprawdzanie aktualnej pozycji (co masz), to ono będzie Ci blokować iterację zewnętrznej pętli.
Pętla w pętli nie jest najlepszym rozwiązaniem jak antena się zatnie i nie dojdzie do pozycji, bo w tej sytuacji, jeżeli będziesz chciał zatrzymać program (jedynie czerwony stop zadziała) zerwiesz połączenie VISA, które będzie nadal zajęte i nie podłączysz się kolejny raz (chyba, że całe LV zrestartujesz).
Podsumowując to co napisałeś powinno działać tak jak chcesz, ale jest okropnie podatne na wszelkie błędy połączenia, albo zacięcia się sprzętu.