Hass-pol pisze:
Pierwszym Boolem mogę sterować normalnie, ale jak nacisnę Boolen 2 to przez 4 sek. nie mogę sterować Boolem 1.
Czy można robić nie zależne układy z opóźnieniami ? Albo jest jakaś funkcja ogólną typu Interrupts ?
Z załączonego VI wynika, że uruchamiasz program za pomocą Run Continously, co jest złym nawykiem. Program jeśli ma się wykonywać w pętli, to należy go przygotować w pętli (np. while). Dlaczego? Używając pętli while i zwykłego wywołania programu masz większą kontrolę nad tym, co się dzieje.
Aby zrozumieć Twój problem zbuduj sobie pętlę tak jak na rys.
A następnie skorzystaj ze zwykłego wywołania programu (pierwsze kółko) i włącz też Highlight Execution (drugie kółko). Program będzie po kolei (w zwolnionym tempie) wykonywał zawartość pętli. Problem Twój polega na tym, że pętla przejdzie do kolejnej iteracji dopiero wtedy, kiedy wszystkie elementy pętli się wykonają. Skoro naciskasz przycisk, po którym jest bloczek Wait, to pętla przejdzie do następnej iteracji dopiero po tym, jak wywoła się bloczek Wait. W międzyczasie nie będziesz mógł sterować kontrolkami, ponieważ ich stan odświeży się dopiero w następnej iteracji. Aby temu zapobiec, trzebaby zastostosować dwie równoległe pętle.
Hass-pol pisze:
Mam też problem z awaryjnym wyłączeniem całego programu.
Problem Twój polega na tym, że korzystasz z pętli For bez tzw.
Conditional Terminal. Kliknij prawym na krawędź pętli For i wybierz Conditional Terminal. Pojawi się taki sam terminal jak w pętli While. Dzięki temu terminalowi, możesz w dowolnej chwili zatrzymać działanie pętli For. W przykładzie, który załączyłeś nawet po naciśnięciu przycisku awaryjnego pętla for zakręci się do końca i dopiero wtedy nastąpi koniec.
Hass-pol pisze:
Czy to normalne ? i czy LV jest tak "wolny" że nie może wykonywać kilku różnych pętli jednocześnie ?
Z Twojego przykładu wynika, że Twój program to tylko jedna pętla więc nie ma mowy o tym, że LabVIEW z czymś nie nadąża.
A na koniec kwestie "służbowe". Nie pisz trzech postów pod rząd. Jest opcja Edytuj Post.