zenon ЛР4: Створення графічного інтерфейсу

Матеріали курсу Людино-машинні інтерфейси

zenon ЛР4: Створення графічного інтерфейсу

Відображення та зміна значень змінних: покажчики (індикатори) та повзунок

Ми дійшли до того моменту, коли усе готово для реалізації повноцінної мнемосхеми представлення техпроцесу: розміщення елементів відображення, символів обладнання та прив’язки до них змінних. В цьому навчальному посібнику ми розглянемо приклад реалізації фрагменту дифузійного відділення цукрового заводу. Основними елементами такого процесу є танки, клапани, двигуни, з’єднувальні труби.

Відображення вимірюваних параметрів здійснюється через всілякі показуючі динамічні елементи. Зараз ми декілька з них розглянемо.

**Завдання 5.1. Створіть цифрові покажчики з відображеннями температур. **

Автоматично відкриється діалогове вікно вибору змінної

img

Аналогічним чином створіть елементи відображення для змінних ‘Температура[2]’, ‘Температура[3]’, ‘Температура[4]’.

Найпростіше це зробити шляхом копіювання вже існуючого елементу та перетягуванням на нього відповідної змінної (Drag&Drop).

Наш головний екран процесу повинен мати наступний вигляд:

img

Для полегшення чіткості позиціонування елементів на екрані та один відносно одного, можна ввімкнути координатну сітку та магнітні точки прив’язки: головне меню Options -> Settings**.

Давайте адаптуємо діапазон представлення температури до 0 – 150 °С

Таким чином, від контролера ми отримуємо значення в діапазоні -32768 - 32767, а на дисплейній мнемосхемі будемо відображати його в діапазоні 0 - 150. Аналогічно зробіть і для інших змінних температур.

**Завдання 5.2. Створіть стрілочний покажчик для відображення змінної “Температура[1]”. **

**Завдання 5.3: Створіть універсальний повзунок для зміни значення змінної ‘Температура[1]’ **

Автоматично відкриється помічник конфігурування цього елементу. Ми нічого змінювати не будемо, тому просто на кожному кроці натискайте Next і завершіть створення елементу кнопкою Finish.

Для перевірки зробленої роботи запустіть Runtime. Ваш проект повинен мати наступний вигляд:

img

Спробуйте для кожної змінної змінити значення.

При зміні значення через цифрові елементи чи стрілочний покажчик буде з’являтися вікно вводу значення Setpoint input**.

img

Давайте спробуємо інші варіанти вводу значень.

Ввод значень

Завдання 5.4: Створіть кнопки збільшення та зменшення значення змінної “Температура[3]” з використанням функції “*Write* *set* *value”*.

Поверніться в Editor не закриваючи при цьому Runtime (Alt+Tab).

Встановлення значень для цифрового покажчика 3 ми будемо виконувати через кнопки додавання та віднімання значення. Для цього створимо відповідні функції та прив’яжемо їх до кнопок.

Автоматично з’явиться діалогове вікно налаштування функції

img

Аналогічним чином створіть функцію ‘-5 Температура3’ і кнопку ‘-‘. Підкорегуйте розміри кнопок, шрифт підпису, колір, приберіть закруглення кутів.

Створений фрагмент повинен мати наступний вигляд:

img

Таким чином, для першого цифрового покажчика значення будуть вводитись як і раніше – через діалогове вікно, для другого – безпосередньо в елементі, для третього – через кнопки додавання\віднімання а для всіх інших покажчиків – взагалі задаватись не будуть.

Тепер скомпілюйте зроблені зміни. Для цього на верхній інструментальній панелі натисніть на піктограму Create changed Runtime files**. Поверніться в Runtime і натисніть на зроблену нами на початку кнопку ‘Reload’. Виконані в проекті зміни активуються без перезапуску середовище виконання проекту.

Попрактикуйтесь вводити значення різними способами.

Символи

Давайте створимо частину технологічної структури на базі ємності – танку збору дифузійного соку. Ми не будемо самостійно малювати танк, а візьмемо готовий з глобальної бібліотеки символів.

Завдання 5.5: З використанням символів нарисуйте ємність (танк).

Тут усі символи згруповані по папкам згідно їх призначення

Для розміщення символу на екрані його необхідно просто перетягнути на необхідне місце.

Тепер нам необхідно показувати рівень наповнення танку. Для цього ми використаємо стовпчиковий показуючий елемент.

Завдання 5.6: Відобразіть значення змінної “*Танк[1].Рівень” з використанням елементу “*Bar* *display”**.

Таким чином, ми будемо точно бачити актуальне значення рівня в цифровому виді.

Завдання 5.7: З існуючих елементів танку та рівня створіть свій символ і добавте його в бібліотеку проекту під назвою “Танк”.

На базі цих елементів створимо свій власний символ.

Тепер три елементи представляють єдиний символ. Додамо його в бібліотеку символів нашого проекту.

Створений символ з’явиться в дереві проекту Screens -> Project symbol library**. В цьому розділі зберігаються символи, які стосуються тільки конкретно Вашого проекту. На даний момент тут повинний бути лише один символ: танк з покажчиками.

**Завдання 5.8: Використайте бібліотечний символ “Танк” для створення екземпляру. **

Ми можемо усюди, де потрібно в проекті, використовувати цей символ. Перетягніть його на екран, а той символ що був – видаліть. При перетягуванні автоматично з’явиться вікно підстановки змінної. Нічого тут змінювати не потрібно. Таким чином, в проекті ми будемо використовувати символи з нашої бібліотеки символів проекту.

В правому верхньому куті символу повинна бути стрілочка, яка показує, що він являється зв’язаним з вихідним. Будь-які зміни в вихідному “батьківському” символі будуть автоматично відтворюватись в усіх “дочірніх” символах на екранах проекту.

Скомпілюйте зроблені зміни та активуйте їх в Runtime. Ваш танк повинен мати наступний вигляд:

img

Як бачите, програма показує нам значення в сотнях метрів. Нам необхідно адаптувати покази до реалій – перенести кому на дві позиції вліво.

Завдання 5.9: Змініть властивості масштабування змінної ‘Танк[1].Рівень’, щоб діапазон 0-255 відповідав реальним значенням 0.00-2.55.

Тепер значення рівня повинні відображатися коректно.

Анімація символу

**Завдання 5.10: З використанням бібліотечного символу “Танк” створіть ще один екземпляр з використанням заміни прив’язки змінних до танку 2. Перевірте результат в рантайм. **

Давайте створимо ще один танк на базі нашого символу.

Автоматично з’явиться вікно підстановки змінних, за допомогою якого ми замінимо усі зв’язки символу. Для цього ми будемо використовувати маску підстановки.

img

При цьому, у вікні Preview змінна ‘Танк[1].Рівень’ заміниться на ‘Танк[2].Рівень’.

Система підстановки дозволяє в якості маски використовувати символ ‘*’ – для пропуску фрази, і символ ‘?’ – для пропуску літери. Таким чином можна формувати складні конструкції заміни.

Перевірте в Runtime коректність виконаних підстановок. Для цього натисніть правою кнопкою мишки на динамічному елементі і тримайте. Повинна з’явитись інформація про прив’язану змінну та її статус.

img

Окрім виміряного значення та часової мітки система також надає інформацію відносно статусу змінної. Всього існує 64 статуси, серед них: спонтанне, недійсне, альтернативне, ревізія, користувацький… Докладно про призначення кожного статусу можна прочитати в мануалі ‘Variables’.

Також можна перевірити який екран зараз відкритий. Для цього необхідно правою кнопкою мишки натиснути на пустому полі екрану. Через декілька секунд з’явиться поле з ім’ям екрану.

**Завдання 5.11: Використовуючи статичний символ з глобальної бібліотеки “*Valves”* створіть власний динамічний символ “Клапан” в бібліотеці проекту. **

Тепер нам необхідно до нашого танку додати зливний клапан.

Додамо символ клапану в бібліотеку символів нашого проекту.

Створений символ з’явиться в локальній бібліотеці проект Screens -> Project symbol library.

img

Перетягніть створений символ на екран, а той символ що був – видаліть. Таким чином, ми маємо клапан для першого танку. Скопіюйте символ клапану для другого танку.

Як ми згадували раніше, зміни в вихідному “батьківському” символі будуть автоматично відтворюватись в усіх “дочірніх” символах. Давайте перевіримо як це працює.

Внесення змін в символ

**Завдання 5.12: Додайте до символу клапану елемент керування типу “*Switch”*, який би перемикав значення змінної “Танк[1].Клапан[1]” з 0 в 1 та навпаки. **

Давайте додамо до символу елемент керування Switch, щоб оператор міг вручну вмикати і вимикати клапан.

Після цих дій на екрані обидва наші клапани змінять своє представлення, доповнившись кнопкою керування. Таким чином декількома кліками мишки можна централізовано керувати усіма символами проекту.

**Завдання 5.13: Використовуючи правила прив’язки використайте символ “Клапан” для анімації 2-го танку. **

Нам залишилось лише переприсвоїти змінну до нашого другого клапану.

На цьому робота по створенню клапанів завершена. Скомпілюйте проект та перевірте його в Runtime. Керування клапанами повинне здійснюватись незалежно один від одного. Наша технологічна структура тепер повинна мати такий вигляд:

img

Трубопроводи

Завдання 5.14: Використовуючи елемент “*Pipe*” нарисуйте мережу трубопроводів.

Для відображення трубопроводів система керування має спеціальний елемент – Pipe.

Зробіть так, щоб трубопроводи виходили з танків. Проходили через клапани, з’єднувались і виходили вправо.

Аналогічно розмістіть вхідні трубопроводи в танки, але підключайте їх не по центру ємностей, а зліва, залишивши місце для мішалок, які ми створимо пізніше.

Завдання 5.15: Використовуючи елемент “*Rectangle*” нарисуйте в символі “Танк” фланці, які з’єднують трубопроводи.

Підключення до танку вхідного трубопроводу виконаємо через фланці, які ми зробимо самостійно. Для цього ми використаємо елемент Rectangle**.

Утворений фрагмент символу повинен мати наступний вигляд:

img

Таким чином, Ви можете зі статичних елементів самостійно формувати частини символів чи цілі символи.

На екрані усі танки автоматично повинні змінити своє представлення, доповнивши його фланцем.

Тепер ми маємо наступну апаратну структуру:

img

Мішалка

Завдання 5.16: Використовуючи символ двигуна з глобальної бібліотеки “*Engines”* *д*одайте до танків символи мішалок.

На завершальному етапі побудови технологічної структури до кожного танку зверху ми додамо мішалку. Для цього використаємо символ двигуна.

img

img

Комбіелемент

Завдання 5.17: Створіть кнопку керування включенням/виключенням мішалки 1-го танку використовуючи елемент “*Button”* .

Для керування мішалкою ми створимо спеціальну кнопку ‘Пуск\Стоп’ і прив’яжемо до неї відповідну змінну.

Давайте розглянемо декілька варіантів реалізації кнопок – на базі елементу Button та Combined element**.

Для ввімкнення мішалки першого танку застосуємо звичайний елемент кнопки, який ми використовували для перемикання між екранами.

Автоматично з’явиться вікно підстановки функції. Оскільки цю кнопку ми будемо використовувати для керування змінною, а не функцією, то просто закрийте діалогове вікно кнопкою Cancel.

img

Наша кнопка буде клікабельно встановлювати значення змінної в 0\1 та буде змінювати при цьому свій підпис і колір. Колір ми взяли з лімітів, які по замовчуванню визначаються системою для булівських змінних. При бажанні тут можна виставити будь-який колір. Докладніше з лімітами ми познайомимось пізніше.

Візуальне відображення кнопки також можна змінювати за рахунок прив’язки графічних файлів Representation -> Graphics file.* При цьому, картинки необхідно попередньо завантажити в дереві проекту *Files* *->* *Graphics.

Скомпілюйте зроблені зміни і перевірте роботу кнопки в Runtime.

Завдання 5.18: Використовуючи комбіелемент створіть елементи керування мішалкою 2-го танку.

Давайте розглянемо варіант реалізації елементу керування на базі комбоелементу. Його ми використаємо для ввімкнення двигуна мішалки другого танку.

Комбоелемент (Combined element) – це комплексний інструмент керування, який дозволяє присвоювати елементу різне візуальне представлення залежно від побітового значення чи статусу змінної. Налаштування здійснюється за допомогою спеціального майстра та конфігураційного вікна.

Оскільки комбоелемент базується на символах, нам попередньо необхідно створити символи для відображення стану ‘Пуск’ і ‘Стоп’, після чого додати їх до проектної бібліотеки символів.

img

Тепер перейдемо безпосередньо до створення комбоелементу

Автоматично з’явиться майстер конфігурування цього елементу.

img

Отже, ми створили елемент який має три статуси: 0, 1 і Default. Кожен з цих статусів має свій символ відображення.

Більш складні налаштування цього елементу здійснюються у вікні конфігурування.

Тут можна не тільки визначати побітові символи, а й формульні значення і статуси.

img

Ми нічого тут змінювати не будемо.

Більше інформації стосовно створення комбоелементу можна знайти в мануалі Screens -> Combined element.

Фрагмент екрану технології повинен мати наступне представлення:

img

Ми розглянули три варіанти реалізації кнопок: елементи Switch, Button та Combined element.

Зображення

Система керування дозволяє на екранах відображати як растрову графіку (bmp, jpg, gif, png…) так і векторну (wmf). Зображення можна ставити як фон для екрану або як окремий елемент.

Завдання 5.19: Використовуючи елемент “*Button”* вставте зображення ‘logo scada zenon’.

Давайте в верхньому куті екрану розмістимо логотип ‘zenon’ Його легко знайти в пошуковій системі Google, задавши ключ пошуку ‘logo scada zenon’.

Скачайте картинку та завантажте її в проект.

По можливості, зображення повинні займати не великий об’єм пам’яті, оскільки від цього залежить швидкість відкриття екранів проекту.

Для показу картинки використовується елемент Button, але без прив’язки функції чи змінної.

Зроблений елемент повинен мати такий вигляд:

img

Аналогічним чином Ви можете розмістити на екрані будь-яке зображення чи анімацію.

Годинник

Завдання 5.20: Використовуючи елемент “*Clock* “ створіть годинник для відображення плинного часу.

Кожний повноцінний проект повинен відображувати оператору поточний час. Для цього система керування має окремий елемент – Clock.

*img*

Самописець (тренд реального часу)

Система керування має у своєму розпорядженні спеціальний елемент для відображення виміряної інформації у вигляді графіків. Цей трендовий елемент має досить низьку функціональність і використовується тільки для приблизного відображення графіків з невеликою точністю. Для повноцінного відображення графіків в zenon існує спеціальний тип екрану – Extended Trend. З ним ми познайомимось пізніше.

Завдання 5.21: Д*ля відображення зміни значень* танкових *рівнів в часі* створіть самописець з використанням елементу “*Trend* *element”*.

img

Для того, щоб наші криві не зникали при перемиканні між екранами проекту, необхідно виміряні значення зберігати на жорсткий диск.

Таким чином, наш трендовий елемент буде відображати 300 циклів запису значень змінної. Цього нам цілком достатньо.

Виконайте аналогічні операції для змінних ‘Танк[1].Рівень’ і ‘Танк[2].Рівень’.

Скомпілюйте зроблені зміни і перезапустіть Runtime. Щоб зміни по запису значень вступили в силу не достатньо виконати функцію Reload. Необхідно вимкнути Runtime і запустити його заново.

Виконайте модифікацію значень відповідних змінних і перевірте їхнє відображення в трендовому елементі.

Екран процесу тепер повинен мати такий вигляд:

img

Зміна кольору, тексту, невидима кнопка

При розробці проектів візуалізації не обмежуються лише розміщенням на екрані елементів технологічних ліній та засобів керування. Розробнику проекту необхідно створити інтуїтивно зрозумілий інтерфейс взаємодії оператора з процесом. Це досягається за рахунок динамізації об’єктів. Під час здійснення тієї чи іншої дії оператор повинен однозначно розуміти що він зробив і яким був відгук системи на цю дію.

Одним з проявів динамізації, який ми вже використали, являється зміна кольору елементу керування. Давайте реалізуємо ще деякі можливості, які надає розробнику система керування.

Завдання 5.22: Анімуйте зміну кольору мішалки в залежності від її роботи.

Для наших мішалок зробимо так, щоб під час ввімкнення\вимкнення вони змінювали свій колір.

В лімітах змінної за замовчуванням закладена зміна кольору, тому при керуванні мішалками їх кольори будуть змінюватись з червоного на зелений.

Завдання 5.23: Анімуйте зміну тексту мішалки *в залежності від її роботи*.

Під час виконання тієї чи іншої операції система повинна інформувати оператора про зроблену дію. Для цього широко використовують динамічний текст.

Для другої мішалки виконайте аналогічні операції, тільки до елементу динамічного тексту прив’яжіть змінну ‘Танк[2].Пуск\Стоп’. Можна просто скопіювати елемент та перетягнути на нього цю змінну.

Наші елементи тепер мають наступний вигляд:

img

Завдання 5.24: Створіть невидиму кнопку для керування мішалкою.

Керування таким об’єктом як мішалка, можна реалізувати не створюючи додаткових візуальних елементів.

Таким чином цей елемент керування стане прозорим і оператор матиме можливість керувати мішалкою безпосередньо через її символ.

Прозорі кнопки можна використовувати не тільки для зміни значень змінних, а й для виконання функцій.

Діалогове вікно

Існують задачі, коли виконання керуючої дії повинно здійснюватись не відразу, а через діалогове вікно. Давайте створимо таке вікно та прив’яжемо його виклик до зливного клапану другого танку.

Для виконання цієї задачі ми використаємо усі знання та вміння які маємо на цей момент. Також тут розглянемо новий елемент – комбобокс, та використаємо функцію видимості екранних символів.

Завдання 5.25: Створіть діалогове вікно для керування клапанами.

Для початку створимо екран діалогового вікна на базі нового фрейму.

Модальне представлення екрану забезпечує неможливість виконання жодних операцій поза межами цього діалогового вікна до моменту його закриття.

Таким чином, оператор не зможе проігнорувати цей екран незважаючи на те, що він має невеликі розміри.

Завдання 5.26: Створіть функцію для відкриття діалогового вікна керування клапаном.

Тепер давайте створимо функцію для відкриття та закриття цього екрану.

Завдання 5.27: Наповніть діалогове вікно кнопкою закрити, елементами керування станом клапану на базі *Combobox , зображенням стану клапану*.

Залишилося створити усі необхідні елементи діалогового вікна екрану керування клапаном.

img

Таким чином елемент комбобокс матиме дві позиції вибору – ‘Закрити’ і ‘Відкрити’, що відповідає ‘0’ і ‘1’. Взагалі, комбобокс дозволяє створювати спадні списки на будь-яку кількість позицій.

Щоб нам відразу бачити реакцію системи на виконану дію давайте розмістимо тут елемент схематичного зображення клапану з використанням функції видимості.

Остання дія забезпечить видимість цього елементу при значенні змінної ‘1’.

Завдання 5.28: Створіть кнопку для виклику діалогового вікна і перевірте її роботу.

Нам залишилось створити кнопку для виклику цього діалогового вікна. Для цього ми створимо прозору кнопку.

На цьому роботу по створенню діалогового вікна можна вважати завершеною. Скомпілюйте проект і перейдіть в Runtime.

img

Зміна розміру

Динамічне відображення набору рідини в танку можна реалізувати не тільки за допомогою спеціального елементу – стовпчикового покажчика, а й через звичайний прямокутник, задавши йому зміну висоти відповідно до значення змінної рівня. Давайте реалізуємо це на нашій схемі.

Завдання 5.29: Реалізуйте стовпчикову діаграму через зміну розміру.

Цю дію необхідно зробити оскільки наповнення танку відбувається знизу вверх, а не навпаки.

Для візуально кращого сприймання зміни висоти прямокутника без наявності шкали, давайте за нашим динамічним прямокутником розмістимо іще один з прозорим фоном.

Таким чином, в Runtime ми продублювали індикацію рівня рідини в танку. Аналогічним чином можна реалізувати зміну розмірів будь якого елементу по горизонталі.

img

Анімація руху

Завдання 5.30: Реалізуйте анімацію зміни положення стрілки в залежності від рівня.

Для демонстрації руху елементів в системі, реалізуємо переміщення символу стрілки відповідно до зміни рівня в танку.

Ці значення ми визначили дослідним шляхом, щоб рух символу стрілки найбільш чітко повторював рух рівня в танку.

img

Зміна кольору

Завдання 5.31: Реалізуйте анімацію зміни кольору стовпчику в залежності від рівня.

На завершення демонстрації динамічних можливостей системи керування, ми реалізуємо зміну кольору стовпчика рівня першого танку. Для цього ми визначимо чотири ліміти і задамо їм відповідні кольори:

0 – 0,55 м ‘Низький рівень’ блакитний
0,55 – 2 м ‘Нормативний рівень’ синій
2 – 2,35 м ‘Високий рівень’ фіолетовий
2,35 – 2,55 м ‘Критичний рівень’ червоний

Таким чином відображення рівня буде мати блакитний колір на проміжку значень 0 – 0,55 м.

Аналогічним чином створіть решту лімітів, згідно з наведеною вище таблицею.

Для того, щоб зроблене кольорове представлення лімітів не впливало на інші елементи, які використовують змінну ‘Танк[1].Рівень’, необхідно у властивостях цих елементів в розділі Color деактивувати бокс Use limit color.

На завершення визначте змінну рівня, як база для відображення динамічного кольору фону елементу прямокутника – властивість Color -> Color dynamic.

Заданий текст для лімітів буде відображатись в якості підпису для тривог, а також може бути показаний через елемент динамічного тексту. Ми це і зробимо.

Самостійно проробіть описану в даному розділі методику динамізації кольору для цифрового покажчика температури змінної ‘Температура[3]’ з визначенням чотирьох лімітних зон.

В результаті екран технології повинен мати такий вигляд:

img

Блимання

Завдання 5.32: Реалізуйте анімацію миготіння (блимання).

Для того, щоб особливо привернути увагу оператора до критичного значення параметру, часто застосовують ефект блимання.

Таким чином, при досягненні температури четверного граничного значення цифровий покажчик змінної та відповідний динамічний текст почнуть блимати.

На цьому ми завершимо розгляд основних моментів створення технологічної мнемосхеми процесу та динамізації екранних елементів.

Познайомитись з іншими елементами, які ми не розглянули, та інструментами їх динамізації можна в манулі Screens -> Screen elements та Screens -> Edit screen element.

*Завдання 5.33: Деактивуйте змінні, що не використовуються.*

Як Ви бачите, в проекті ми задіяли не всі створені змінні. Для того, щоб система не опитувала незадіяні теги, в zenon існує можливість їх деактивувати. Ця функція доступна лише якщо працювати зі структурованими змінними. Часто, деактивацію змінних використовують для резервування змінних, якщо точно не відома їх кількість, але є потреба в закладанні певного масиву адрес.

В результаті виконаної дії вибрані змінні стануть сірими. Це означає що вони деактивовані. Виконайте цю операцію і для незадіяних змінних другого танку.

img

Скрипти

Існують задачі, коли при натисканні кнопки чи досягненні якогось критичного значення параметру необхідно виконати одночасно декілька функцій. Для цього в системі керування існує поняття скриптів.

Скрипт – це одночасне виконання набору визначених функцій. На відміну від скриптів мов програмування, вони не вимагають написання жодної строки програмного коду.

*Завдання 5.34: Зробіть скрипт для встановлення уставок температурним змінними.*

Давайте створимо скрипт встановлення уставок нашим температурним змінним. Попередньо нам необхідно створити набір функцій, які буде виконувати скрипт.

img

Тепер нам необхідно створити функцію виконання цього скрипту та прив’язати її до кнопки.

Перевірте роботу створеного скрипту.

*Завдання 5.35: Зробіть скрипт, який буде активуватися при досягненні параметром певного рівня.*

Також можна створити скрипт, який буде активуватись по досягненню параметром встановленого граничного значення. Методика створення такого скрипту аналогічна. Відмінність полягає в прив’язці його виконання до граничного значення змінної.

Створіть скрипт ‘Скрипт критичний рівень танку 1’ з таким набором функцій: ‘Відключення мішалки’ та ‘Відкриття зливного клапану’. Скрипт повинен виконуватись автоматично при досягненні в першому танку критичного рівня - значення > 2.35 м.

Перевірте в Runtime як виконується даний скрипт. Попередньо ввімкніть і відімкніть відповідні екранні елементи.

*Завдання 5.36: Зробіть наперед визначений скрипт, який автоматично буде запускатися при старті системи.**** ***

Для виконання специфічних завдань в системі керування існують наперед визначені скрипти, які мають зарезервовані імена і чітко визначене призначення. Сюди відносяться скрипти AUTOSTART, AUTOEND, AUTOSTART_CLIENT і т.д. Повний перелік таких скриптів та їх опис наведено в мануалі Scripts.

Давайте зробимо так, щоб при запуску проекту автоматично виконувалися функції, описані для нашого температурного скрипту.

img

Таким чином, при старті проекту автоматично будуть виконуватись усі функції, визначені в скрипті автостарту. При чому, вони будуть виконуватись саме в тому порядку, в якому визначені в скрипті.

img

Віртуальна клавіатура

Окрім тих варіантів установки значень змінним оператором, що ми вже розглянули, існує ще один дуже розповсюджений варіант – введення через віртуальну клавіатуру.

*Завдання 5.37: Зробіть та перевірте роботу екранної клавіатури для введення значення.*

Давайте зробимо віртуальну цифрову клавіатуру, яку ми використаємо для вводу значення для цифрового елементу 4-ї температури.

Таким чином, фрейм клавіатури буде з’являтись не в тому місці, де він розташований в конструкторі фреймів, а безпосередньо поруч з тим елементом в який здійснюється введення значення. Усі ніші налаштування залишіть без змін.

img

Тепер необхідно на цей екран розмістити усі необхідні елементи керування.

Таким чином, до тих пір поки відкрите діалогове вікно вводу значень через клавіатуру, жодні інші дії на екрані оператор не зможе зробити.

Ваша віртуальна клавіатура повинна мати наступний вигляд:

img

При необхідності відредагуйте зовнішній вигляд та розмір елементів.

*Завдання 5.38: Прив’яжіть температуру до 4-го цифрового елементу та перевірте роботу.*

Нам залишилось прив’язати цю клавіатуру до цифрового елементу.

Запустіть Runtime і перевірте зроблену роботу.

img

Докладніше про створення і використання екранних клавіатур можна познайомитись в мануалі Keyboard.