switch
Opis
Bloczek switch steruje przekazywaniem zmian odebranych na wejściu oznaczonym jako tag1. Gdy wejście sterujące tag2 ma wartość true, bloczek przepuszcza dalej zmiany z tag1. Gdy tag2 ma wartość false, bloczek blokuje przekazywanie tych zmian.
Bloczek posiada dwa wejścia oznaczane za pomocą bloczka tag oraz jedno wyjście. Obsługuje wszystkie typy wartości logicznych na wejściu tag1. Wejście tag2 służy wyłącznie do sterowania stanem przełącznika i przyjmuje tylko wartości logiczne true albo false.
Parametry konfiguracyjne
| Nazwa parametru | Wartość |
|---|---|
Ustaw wyjście na NULL gdy nieaktywny (nullIfInactive) |
Obowiązkowa wartość logiczna true albo false. Gdy ustawione jest true, wyłączenie bloczka przez tag2 = false powoduje wysłanie na wyjście wartości null. Gdy ustawione jest false, wyłączenie bloczka zmienia tylko stan bloczka bez wysyłania dodatkowej wartości. |
Pamiętaj ostatnią wartość (rememberLastValue) |
Obowiązkowa wartość logiczna true albo false. Gdy ustawione jest true, ostatnia wartość odebrana na tag1 podczas nieaktywnego stanu bloczka zostaje zapamiętana i zostanie wysłana po ponownym włączeniu przez tag2 = true. Gdy ustawione jest false, wartości odebrane po ustabilizowaniu projektu podczas stanu nieaktywnego są ignorowane. |
Obsługa wejścia
Bloczek wymaga dokładnie jednego połączenia tag1 oraz dokładnie jednego połączenia tag2.
| Numer i nazwa wejścia | Opis działania |
|---|---|
tag1: Wejście danych |
Na to wejście można podać dowolny typ wartości logicznej. Jeśli bloczek jest aktywny, odebrana zmiana zostaje przekazana na wyjście. Jeśli bloczek jest nieaktywny, zmiana może zostać zapamiętana albo zignorowana, zależnie od parametru rememberLastValue. |
tag2: Sterowanie przełącznikiem |
To wejście przyjmuje tylko wartości logiczne. Wysłanie true włącza przekazywanie zmian z tag1. Wysłanie false wyłącza przekazywanie zmian z tag1. Wartości innego typu są ignorowane. Ponowne wysłanie tej samej wartości logicznej nie zmienia stanu bloczka. |
Szczegółowe zasady działania:
- jeśli
tag1dostarczy zmianę, gdy bloczek jest aktywny, zmiana zostaje natychmiast przekazana na wyjście - jeśli
tag1dostarczy zmianę, gdy bloczek jest nieaktywny irememberLastValue = true, bloczek zapamiętuje tylko ostatnią taką zmianę - jeśli
tag1dostarczy zmianę, gdy bloczek jest nieaktywny irememberLastValue = false, po ustabilizowaniu projektu zmiana jest ignorowana - podczas uruchamiania projektu ostatnia zmiana z
tag1może zostać zapamiętana do późniejszego wysłania nawet wtedy, gdyrememberLastValue = false - jeśli po zapamiętaniu wartości wejście
tag2przełączy bloczek na stan aktywny, zapamiętana zmiana zostanie wysłana na wyjście - jeśli
nullIfInactive = true, przełączenie na stan nieaktywny powoduje dodatkowo wysłanie wartościnull
Przypadki ignorowane:
- wartości z wejścia
tag2, które nie są typu logicznego - kolejne wartości z
tag2, które nie zmieniają aktualnego stanu aktywności bloczka - wartości z
tag1odebrane podczas stanu nieaktywnego, jeśli nie podlegają zapamiętaniu
Wyjścia bloczka
Bloczek posiada jedno wyjście.
Na wyjściu pojawia się ta sama zmiana, która wcześniej dotarła na tag1, jeśli w chwili odbioru bloczek był aktywny albo jeśli zmiana została wcześniej zapamiętana i następnie bloczek został włączony.
Jeżeli nullIfInactive = true, to przy przejściu do stanu nieaktywnego bloczek wysyła na wyjście wartość null.
Opis widoczny pod bloczkiem odzwierciedla bieżący stan, na przykład:
idlepo utworzeniu bloczka, zanim pojawi się pierwsza istotna aktywnośćactivegdy bloczek jest włączony, ale nie ma tekstowej reprezentacji ostatniej wysłanej wartościinactivegdy bloczek jest wyłączony i parametrnullIfInactivenie wysyłanullactive: truealboactive: 23gdy ostatnio wysłana wartość daje się przedstawić tekstowoinactive: nullgdy bloczek został wyłączony przy włączonymnullIfInactive
Błędy widoczne dla użytkownika
Bloczek może pokazywać następujące komunikaty błędów:
| Kod błędu | Opis błędu |
|---|---|
Invalid null_if_inactive configuration. |
Parametr nullIfInactive ma niepoprawną wartość i nie może zostać odczytany jako true albo false. |
Invalid remember_last_value configuration. |
Parametr rememberLastValue ma niepoprawną wartość i nie może zostać odczytany jako true albo false. |
Too many tag1 connections. |
Do wejścia tag1 podłączono więcej niż jeden bloczek tag. |
Missing tag1 block connection. |
Do wejścia tag1 nie podłączono żadnego bloczka tag. |
Too many tag2 connections. |
Do wejścia tag2 podłączono więcej niż jeden bloczek tag. |
Missing tag2 block connection. |
Do wejścia tag2 nie podłączono żadnego bloczka tag. |
Przykłady działania
- Jeśli
tag2otrzyma true, a następnie natag1pojawi się zmianafalse -> true, ta sama zmiana zostanie przekazana na wyjście. - Jeśli
tag2ma wartość false,rememberLastValue = truei natag1kolejno pojawią się wartości10,20,30, to po ponownym włączeniu bloczka na wyjście zostanie wysłana tylko ostatnia zapamiętana zmiana, czyli związana z wartością30. - Jeśli
tag2ma wartość false inullIfInactive = true, to w chwili wyłączenia bloczek wyśle na wyjście wartośćnull. - Jeśli
tag2otrzyma tekst albo liczbę zamiast wartości logicznej, taka wiadomość zostanie zignorowana i stan bloczka nie zmieni się.