11.2       Sterowania z listy wyboru

 

Alternatywną metodą wykonywania sterowań poprzez obiekt Tekst jest użycie trybu selekcji stanów. Tryb ten stosowany jest z reguły w obiektach, które wyświetlają tekstowe opisy stanów. Sterowanie polega na wyborze właściwej pozycji z wyświetlanej listy możliwych operacji.

 

Zawartość listy sterowania wynika z definicji stanów obiektu.

Właściwości podstawowe

 

Aktywny

Tak

 

Główna zmienna

LineState

 

Zmienna sterowana

#Control

 

Typ kursora

Hand

 

Tryb selekcji stanów

Tak

 

Selekcja stanów przez menu

Tak

 

Sterowanie natychmiastowe

Tak

Właściwości stanowe, stan podstawowy

 

Tekst

Stan nierozpoznany

 

Kolor

Black

 

Stan wybieralny

Nie

Właściwości stanowe, stan 1

 

Warunek stanu

#.0

 

Tekst

Tryb ręczny

 

Wartość stanu

8

 

Maska bitowa stanu

8

 

Stan wybieralny

#.0r

Właściwości stanowe, stan 2

 

Warunek stanu

#.1

 

Tekst

Tryb awaryjny

 

Wartość stanu

4

 

Maska bitowa stanu

 

 

Stan wybieralny

#.1r

Właściwości stanowe, stan 3

 

Warunek stanu

#.3

 

Tekst

Tryb automatyczny

 

Wartość stanu

0

 

Maska bitowa stanu

8

 

Stan wybieralny

#.3r

 

Właściwość Aktywny ustawiona na Tak włącza funkcje sterujące obiektu. Nazwa zmiennej sterowanej jest tworzona na podstawie nazwy zmiennej głównej przez dodanie sufiksu Control. Właściwość Tryb selekcji stanów wybiera pracę w trybie selekcji, a  Selekcja stanów przez menu określa, że wybór nowego stanu odbędzie się z automatycznie utworzonego menu kontekstowego. Wartość Nie oznaczałaby sekwencyjny wybór kolejnych stanów po każdym kliknięciu na obiekcie.

Właściwość  Sterowanie natychmiastowe ustawione na Tak powoduje, że wykonanie sterowania nastąpi natychmiast po wyborze stanu. Możliwe jest oczywiście sterowanie opóźnione. W takim przypadku należałoby dodać sygnalizację stanu oczekiwania, np. przez użycie wyrażenia HasWaitingControl()?Red:Black w definicji właściwości Kolor lub dodanie kolejnego stanu.

Stan podstawowy obiektu definiuje wygląd obiektu w przypadku nieprawidłowej wartości zmiennej monitorowanej. Kolejne trzy stany służą do dekodowania wartości zmiennej na opis tekstowy, warunkiem stanu jest test ustawienia wybranego bitu. Właściwość Stan wybieralny określa, czy opis stanu ma pojawić się na liście wyboru operacji sterującej. Użyte wyrażenia powodują, że opis pojawi się na liście wtedy, gdy nie jest stanem aktualnym (wyrażenia są negacją warunków stanu).

W przykładzie użyto notacji prefiksowej # z podaniem numeru. Notacja ta pozwala odwołać się do stanu wybranego bitu zmiennej głównej. Dodanie r po numerze bitu oznacza odwrotną logikę – wartość zerowa bitu daje wynik true. Zapis #.0 jest równoważny wyrażeniu Variable()&1, a zapis #.0r to odpowiednik !(Variable()&1).

 Możliwe jest też definiowanie stanów obiektu służących wyłącznie do sterowania. W tym celu warunek stanu należy ustawić na Nie, a Stan wybieralny na Tak.

Właściwości  Wartość stanu i Maska bitowa stanu określają sposób wykonania sterowania. Niezdefiniowanie maski oznacza sterowanie bezpośrednią wartością stanu. Zdefiniowana maska oznacza sterowanie bitowe.  W pokazanym przykładzie stan numer 1 to zmiana czwartego bitu zmiennej sterowanej na 1, stan numer 2 to wysłanie wartości 4,  a stan numer 3 to zmiana czwartego bitu na wartość 0.

Wygląd listy stanów (kolory i czcionka) jest parametryzowany w panelu Ustawienia stanowisk w zakładce Ustawienia w ramce Ustawienia menu stanów.

Podobnie wyglądającą funkcjonalność można uzyskać poprzez podłączenie do obiektu menu kontekstowego.

Zobacz też: 7.2. Podłączenie menu kontekstowego do obiektu