Animacja wprowadzania wartości
Kurs Industrial Graphics w oprogramowaniu AVEVA, odc. 21
Kontakt w sprawie artykułu: Mateusz Zajchowski - 2026-07-06

W tym odcinku poznamy kolejny rodzaj animacji: User Input. Służy ona do wprowadzania danych przez użytkownika.
Kurs projektowania symboli Industrial Graphics w oprogramowaniu wizualizacyjnym AVEVA
1. Wprowadzenie do Industrial GraphicsNa początek narysujemy prosty przycisk, a następnie dodamy do niego animację za pomocą okna Edit Animations. Będzie to animacja User Input.

Początkowy widok ustawień dla tej animacji jest podobny, jak w przypadku Value Display. W górnej części okna, w polu States, możemy wybrać, jaki typ danych będzie wprowadzany za pomocą tej animacji. Mogą to być wartości dyskretne (Boolean), liczby całkowite i rzeczywiste (Analog) i inne. Poniżej wyświetlany jest opis wyjaśniający, co kryje się pod poszczególnymi opcjami.

Zacznijmy od pierwszej opcji, wartości Boolean. Tradycyjnie w polu Reference należy podać referencję do zmiennej typu dyskretnego, która przyjmie wartość wprowadzoną przez użytkownika. Wprowadzimy tu zmienną Mixer100.Pump1.CMD. W przykładowej aplikacji służy ona do uruchamiania napędu pompy – wartość 1 oznacza uruchomienie, a wartość 0 – zatrzymanie.

W polu Message to User możemy wprowadzić komunikat wyświetlany przez animację po naciśnięciu przycisku. Może on zawierać monit o podanie danych albo dodatkowe podpowiedzi. Można tu wprowadzić tekst wprost albo podać referencję do zmiennej tekstowej. Wyboru dokonujemy klikając w ikonkę po lewej stronie pola – omówiliśmy to w poprzedniej części kursu.

Animacja User Input typu Boolean wyświetli nam okienko dialogowe z dwoma przyciskami, które będzie można kliknąć, aby wybrać jedną z dwóch wartości: prawda lub fałsz. Pola Prompt -> True Message oraz Prompt -> False Message pozwalają skonfigurować napisy, które znajdą się na tych przyciskach. Są to po prostu opisy dwóch opcji, jakie użytkownik ma do wyboru. Domyślnie są tu napisy „ON” i „OFF”, ale możemy wprowadzić inne (w naszym przypadku „Start” i „Stop”), lub podać referencję do zmiennej tekstowej, uprzednio klikając znaną nam już ikonkę.

W polu Shortcut można zdefiniować skrót klawiszowy, którego naciśnięcie będzie odpowiadało kliknięciu przycisku na ekranie. Możemy wybrać klawisz z listy rozwijanej Key, dodając do niego modyfikatory Ctrl lub Shift.

Ostatnie ustawienie pozwoli nam określić, co będzie wyświetlane na przycisku w czasie pracy aplikacji. Napis wprowadzony w polu Display Value -> True Message będzie wyświetlany na przycisku, jeżeli zmienna będzie miała wartość True, natomiast odpowiednio tekst Display Value -> False Message zostanie wyświetlony w czasie, gdy zmienna przyjmie wartość False.

Jeżeli jednak nie chcemy, by napis na przycisku był modyfikowany, lecz by stale wyświetlał tekst, który na nim pierwotnie umieściliśmy, wystarczy zaznaczyć pole Input Only. Wyłączymy w ten sposób opcję Display Value (co zostanie uwidocznione przez wyszarzenie odpowiednich pól).

Zapisujemy teraz nasz symbol i uruchamiamy aplikację. Jak widać, w okienku wyświetla się przycisk z napisem „Stopped”, co oznacza, że pompa nie pracuje.

Po kliknięciu przycisku pojawi się możliwość wprowadzenia danych. W górnej części wyświetlany jest wcześniej zdefiniowany monit, a poniżej widzimy dwa przyciski do wyboru opcji. Na dole pojawia się dodatkowy przycisk Cancel, który umożliwia zamknięcie okna bez wprowadzania wartości.

Jeżeli teraz naciśniemy przycisk Start, przekonamy się, że zmienna zmieniła wartość i pompa została uruchomiona.

Należy pamiętać, że napis na przycisku nie jest wizualizacją w sensie ścisłym i nie powinien być jedynym sposobem informowania operatora o pracy pompy. Pełni on jedynie funkcję pomocniczą.
Czas przejść dalej. Teraz zobaczymy, w jaki sposób skonfigurować wprowadzanie danych liczbowych. W tym celu dodamy do symbolu element Text Box (pole tekstowe) i zdefiniujemy dla niego animację User Input. Tym razem wybieramy typ Analog.

W polu Reference wprowadzamy zmienną, której wartość chcemy modyfikować za pomocą tej animacji. W naszym przypadku będzie to zmienna Mixer100.Agitator.Speed.SP. Pole Message to User pełni identyczną rolę, jak w przypadku typu Boolean – wprowadzamy tu tekst monitu, który zostanie wyświetlony po kliknięciu w element, dla którego definiujemy animację.

Poniżej widzimy opcje Value Limits, dzięki którym możemy określić dozwolony zakres dla wprowadzonych informacji. Jeżeli opcja Restrict Values jest zaznaczona, wprowadzenie wartości Minimum i Maximum jest obowiązkowe. Można tu wprowadzić wartości wprost, ale można użyć również zmiennych lub pól zmiennych. Wykorzystamy tę ostatnią możliwość, wprowadzając tu wartości pól MinEU i MaxEU. Jeżeli definiując zmienną określiliśmy dla niej minimum i maksimum wyrażone w jednostkach inżynierskich, wartości te znajdują się właśnie w tych polach.

Analogicznie, jak poprzednio, możemy zdefiniować skrót klawiszowy, także określić, czy element będzie wyświetlał wprowadzoną wartość. Jeżeli tego nie chcemy, wystarczy zaznaczyć opcję Input Only. W przeciwnym razie pole będzie wyświetlało nową wartość po jej wprowadzeniu. Dodatkowo w polu Text Format możemy zdefiniować dokładny format, w jakim liczba będzie wyświetlona. Stosowana jest tu taka sama konwencja, oparta na znakach hash, jaką poznaliśmy w poprzednim odcinku. Dodatkowo z listy można wybrać jeden z predefiniowanych formatów.
Możemy również zezwolić na wyświetlanie operatorowi klawiatury numerycznej do wprowadzenia danych z ekranu. W tym celu zaznaczamy opcję Use Keypad.

Po uruchomieniu aplikacji w polu tekstowym wyświetlona jest aktualna wartość zmiennej.

Po kliknięciu pojawia się klawiatura ekranowa. Widzimy tu aktualną wartość zmiennej, zdefiniowany zakres dozwolonych wartości, pole New Value, w którym możemy wpisać nową wartość, oraz przyciski numeryczne, za pomocą których możemy wprowadzać cyfry. Oczywiście możemy to zrobić również po prostu z klawiatury komputera. Po wprowadzeniu liczby naciskamy OK, aby zapisać nową wartość, albo Cancel, aby zrezygnować.

Dodamy teraz kolejny przycisk do obszaru roboczego, dla którego zdefiniujemy animację User Input typu String. Jak widać, okno ustawień wygląda bardzo podobnie. W polu Reference określamy tym razem zmienną typu tekstowego. Pola Message to User oraz Shortcut działają identycznie, jak poprzednio. Dla przykładu użyjemy tutaj zmiennej systemowej InToucha o nazwie $OperatorEntered, która zawiera login operatora zalogowanego do aplikacji. W polu Message to User wprowadzamy adekwatny tekst monitu.

W polu Interaction ponownie widzimy opcję Input Only. Jeżeli jest wyłączona, przycisk będzie wyświetlał aktualną wartość zmiennej, a my nie musimy już nic więcej konfigurować. Natomiast jeżeli włączymy tę opcję, wartość zmiennej nie będzie wyświetlana na przycisku, ale dostępne stają się dodatkowe opcje, które pozwalają zabezpieczyć wprowadzaną wartość, jeżeli to jest konieczne ze względów bezpieczeństwa. Jeżeli odznaczymy Echo Characters, znaki wprowadzane przez użytkownika nie będą widoczne na ekranie. Jeżeli zaznaczymy – będą one widoczne, ale wtedy możemy włączyć Password, dzięki czemu wprowadzane znaki będą zastępowane znakiem maskującym, domyślnie jest to „*”. Jeżeli dodatkowo wymagane jest szyfrowanie haseł, możemy to zrobić zaznaczając opcję Encrypt.
Możemy również zezwolić na wyświetlanie operatorowi klawiatury ekranowej do wprowadzenia danych z ekranu. W tym celu zaznaczamy opcję Use Keypad.

Uruchamiamy aplikację i obserwujemy efekt. Jak widać, przycisk jest pusty. Jest tak dlatego, że zmienna $OperatorEntered zawiera pusty ciąg znaków.

Po kliknięciu w przycisk otwiera się klawiatura, tym razem pełnotekstowa – możemy wprowadzić tekst, który zostanie zapisany do zmiennej $OperatorEntered.

Po naciśnięciu OK widzimy, że tekst został zapisany i wyświetlony na przycisku.

Na koniec zróbmy jeszcze jeden eksperyment. Wracamy do drugiego elementu – pola tekstowego, w którym wpisywaliśmy liczby. W oknie Edit Animations odznaczamy opcję Use keypad, wyłączając klawiaturę ekranową.

Po uruchomieniu aplikacji i kliknięciu w pole tekstowe widzimy różnicę. Nie pojawia się klawiatura ekranowa, lecz jedynie małe pole do wprowadzenia wartości z klawiatury komputera. Po jej wprowadzeniu konieczne jest naciśnięcie Enter. Jeżeli tego nie zrobimy, klikając gdzieś w innym obszarze okna, wartość nie zostanie zapisana.

W kolejnym odcinku poznamy właściwości Custom Properties.