
Na dole Front Panelu'u jest Waveform Graph ... przykład, gdybyś potrzebował innego sposobu wyświetlania niż "na bieżąco"
Bardzo dobremareczek87 pisze: To jest pętla while która mówi dopóki. I co program jak by zaczyna się w niej bo wykonuje się od lewej do prawej. I dopóki nie przełączymy przycisku który jest dołączony do "stopa" do sygnał będzie tam stał i nic nie robił bo nie ma co. Potem dopiero przejdzie dalej do sekwencji zaczynając liczyć i zapalając lampkę. Dobre rozumowanie?
Żeby program się mógł zakończyć trzeba zatrzymać dolną pętle rysującą wykresy. Do tego służy podłączenie zmiennej lokalnej o nazwie Boolean, która przypisana jest do wskaźnika Boolean. Wskaźnik ma od początku wpisaną wartość False, aż do samego końca działania struktury sekwencyjnej, gdzie wpisujemy True.mareczek87 pisze: I końcówka. Do przycisku jest dołączone True, dlaczego? Chodzi o to że jak kończy pętle to sekwencja staje się True i jak by załącza jeszcze raz przycisk wyłączając go? Tej drugiej części nie rozumiem, myślę że odnosi się do lampki? Dlaczego False i w ogóle co to za bloczek podpisane Value?
Prawym myszy na przycisku Mechanical Action/Latch (wybież jeden z 3 który bardziej Ci odpowiada ... w tym przypadku chyba najodpowiedniejszy będzie Latch When Pressedmareczek87 pisze: Kosmetyczna jeszcze zmiana, co zrobić, żeby nie musieć przed kolejnym uruchomieniem programu wyłączać przycisku, tylko żeby sam po skończeniu "restartował się"
smiga pisze:Po kolei od lewej:
5) Dolna pętla pobiera dane przez Local Variable z Indicatora "Aktualna temperatura szyby" i wyrzuca na wykres. Opóźnienie tej pętli jest ustawione na tą samą wartość co opóźnienie pętli regulujących temperaturę (250ms) w celu ustawienia stałych "odcinków czasowych" osi x wykresu, tych samych co kroki zmiany temperatury. To niestety nie jest najbardziej profesjonalnie zrobione, ale jak widzisz przy opóźnieniach 1/4 s działa.
Precyzyjniej będzie gdy zamienisz wszystkie "zegarki" na Wait Until Next ms Multiple - daje to precyzyjniejszą kontrolę nad opóźnieniem każdej pętli. Teraz pętla wykonuje jakiś kod co zajmuje jakiś czas, następnie czeka 250ms i zaczyna nową iterację. Nie wiemy więc dokładnie ile czasu zabiera jedna iteracja pętli. Zastosowanie Wait Until Next ms Multiple spowoduje, że wykona się kod w pętli, a później pętla poczeka resztę brakującego do 250ms czasu. Każda iteracja trwać będzie więc 250ms.
Najbardziej profesjonalnie było by gdybyś zastosował strukturę producent-konsument z kolejką, gdzie pętla konsumenta (rysująca wykres) pobiera dane za każdym razem gdy pętla producenta (regulacja czy też próbkowanie temperatury) je aktualizuje / zmienia.... ale o tym poczytaj więcej bo nie chcę mieszać na razie Ci w głowie.