Оновлення версії прошивки WebHMI до 4.1

21 Sep Оновлення версії прошивки WebHMI до 4.1

Ми раді повідомити про вихід нової версії прошивки WebHMI 4.1, в якій реалізовано дуже багато корисних функцій:
Основні зміни в новій версії:

  • Функція “Трансляція екрану”
  • Конструктор візуальних звітів
  • Нова аналітика показань лічильників
  • Конструктор даних для Modbus TCP сервера
  • HTML редактор і візуалізатор JSON
  • Контекстна довідка
  • Покращено роботу з регістрами та з’єднаннями
  • Проведено тестування вразливостей
  • Нові компоненти та багато іншого!

Функція “Трансляція екрану”

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

У системі створюється новий користувач, для якого у властивостях задається опція “Демонстрація екрана”. Разом із цим у регістрах з’явиться нове з’єднання “WebHMI ScreenCast”, а в ньому строковий регістр username_link. Для управління відображенням на екрані цього користувача достатньо буде будь-яким способом, з дашборда або скриптів, записати в зазначений регістр посилання на потрібну сторінку проєкту.

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


Конструктор візуальних звітів

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

У конструкторі звітів доступний практично весь набір віджетів, що використовується в екранах:

  • Діаграми Ганта
  • Таблиці значень регістрів
  • Графіки
  • Значення регістра
  • Bar chart (Стовпчикова діаграма)
  • Гістограма
  • Кругова діаграма
  • HTML текстовий редактор


Нова аналітика показів лічильників

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

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

Стартова сторінка відразу відображає зведену інформацію (поточні показання, за міс., за останні 30 днів, за минулий міс.)

За будь-яким лічильником можна подивитися звіт погодинно, поденно, помісячно:
Також можна порівнювати кілька лічильників між собою:

Конструктор даних для Modbus TCP сервера

Modbus TCP server, як засіб інтеграції з іншими системами, був доступний у WebHMI починаючи ще з перших версій прошивки. Новий конструктор даних для Modbus TCP Вас неодмінно потішить. Тепер він структурно повністю відповідає таблиці регістрів проєкту і дає змогу дуже зручно в них орієнтуватися та інтуїтивно зрозуміло призначати адреси (з автоматичним контролем меж), що особливо корисно, коли регістрів стає багато.

Новий екранний віджет – HTML редактор

Одним із найбільш звичних і зручних засобів відображення інформації виступають таблиці. Незважаючи на видиму простоту, варто лише тільки почати їх створювати, як раптом виявляється, як багато нам від них всього потрібно! Донедавна створення табличного представлення даних на WebHMI завдавало чимало клопоту. Тепер ми додали дуже функціональний WYSIWYG HTML редактор, що дає змогу легко намалювати будь-яку таблицю, так само просто, як і в “Excel”, або гарно впорядкувати будь-який текст із даними.

За замовчуванням у базовій прошивці встановлено полегшену версію HTML редактора, основна функціональність буде доступна після оновлення через DLC.

Відображення даних, поданих у форматі JSON

Є чимало прикладних завдань, що вимагають обробки великої кількості користувацьких параметрів, наприклад, налаштувань роботи складної системи, списків або розкладів у вигляді таблиць. При звичайному підході для організації таблиці доводилося використовувати цілий набір регістрів, що могло бути дуже громіздким як у реалізації (можуть знадобитися тисячі регістрів), так і в обробці (підвищення навантаження на систему).
Для зберігання таких таблиць і структур зручно використовувати JSON – поширений формат передавання і зберігання невеликих структур даних. Він також підтримується функціями Lua-скриптів на WebHMI, і, таким чином, можна використовувати тільки одну змінну типу “рядок” для роботи з такими структурами. Для зручної роботи користувача з даними в цьому форматі передбачено спеціальний компонент, вбудований у віджет з HTML редактором. Він дає змогу відображати дані, що зберігаються у форматі JSON, у вигляді таблиці з прокруткою, для цього лише достатньо вказати, в якій змінній вони зберігаються. Також тут є можливість їх редагування. Крім того, передбачено також умовне форматування комірок таблиці для поліпшення читабельності, що виділяє дані в рядках або комірках, які задовольняють певним критеріям.

Help. Посилання на документацію

Ми намагаємося робити продукт з інтуїтивно зрозумілим інтерфейсом, і впевнені в тому, що це у нас непогано виходить. Мабуть тому, не всі знають про те, що у нас є довідкове керівництво, доступне на нашому сайті docs.webhmi.com.ua. Для вашої зручності ми додали в інтерфейс посилання на відповідні розділи документації, які відображатимуться в процесі налаштування проєкту, за наявності підключення до Інтернету.

Покращено роботу з регістрами та з’єднаннями

Групове редагування властивостей регістрів

Власне, як зрозуміло з назви, ця функція дає змогу швидко і зручно поміняти однотипні властивості (такі як: період опитування, одиниці виміру, стани тощо) одразу в групи регістрів, що сильно прискорює роботу з ними. Раніше це було можливо тільки через експорт регістрів у csv-файл, його редагування та імпорт назад у проєкт, а тепер це можна робити відразу через інтерфейс. Більше інформації див. тут

Розширення режимів читання-запису для регістрів

З’явилася зручна функція призначення способу доступу до регістра – “читання/запис”, “тільки читання”, “тільки запис”. Існують пристрої, для деяких регістрів яких можливий тільки запис, наприклад командне слово для деяких перетворювачів частоти, холодильних контролерів тощо. Працювати з такими пристроями було можливо через призначений для користувача протокол, в якому не проводилося читання.
Режим “тільки читання”, також, корисний для розподілених систем з даними, що розділяються, де потрібно виключити ситуацію зміни значення з боку WebHMI. Наприклад, така ситуація може виникнути під час використання протоколу MQTT, коли користувач ненавмисно може перевизначити дані іншого пристрою.

Додавання пристроїв через Device manager

Нова функція дає змогу додавати в таблицю регістрів готові попередньо сконфігуровані пристрої, з вбудованої бібліотеки, в один клік. Поки що в списку тільки пристрої нашого виробництва 7Bit™: модуль введення/виводу Synapse, шлюзи Mediator і Modbus Proxy, а також бездротові LoRa модулі збору даних AirGate і AirPoint. Надалі перелік пристроїв буде розширюватися.

Пошук топіків під час додавання MQTT пристроїв

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

Зберегти та застосувати

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

Проведено тестування вразливостей

Польський центр IT-послуг і кібер-безпеки CERT.PL при інституті NASK (досліджень і освіти в галузі комп’ютерних мереж) провів аудит вразливостей WebHMI. Знайдені потенційні вразливості усунуто.

Нові компоненти

Компонент – Криві

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

Компонент – Покажчик фази

Типове завдання під час візуалізації багатостадійних (багаторежимних) технологічних процесів – відображення їхнього поточного стану у вигляді словника, наприклад “Очікування”, “Перемішування”, “Розвантаження” тощо. Покажчик фази є зручним компонентом, що відображає всі можливі стани об’єкта і підсвічує поточний, що дає змогу користувачеві легше визначити, яким буде наступний стан, що було до цього, чи процес щойно розпочався, чи вже завершується тощо. Компонент потрібно всього лише зв’язати з регістром, пов’язаним своєю чергою зі словником станів, і записувати в регістр покажчик (номер) поточної фази процесу.

Компонент вибору дати

Компонент вибору дати – часу для дашборда – це стандартний елемент користувацьких інтерфейсів у вигляді календарю, який приймає значення, введене користувачем, і формує одне число у вигляді unix time, що зберігається у внутрішньому регістрі. Використовуючи вбудовані функції lua з числа можна виділити необхідну дату, день тижня, годину, хвилину і використовувати їх в алгоритмах управління. Раніше для цього знадобилося б малювати окремий дашборд, який складався б із кількох полів введення.

Інкремент – декремент значення в полі введення

У поля введення з’явилася опція використовувати програмні кнопки +/- для інкременту/декременту значення. Такий режим зміни величини є більш зручним на моб. пристроях, без використання клавіатури.

Індикатор тенденції у віджеті значення

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

Скрипти JS для дашбордів (для нестандартних застосувань)

В случаях, когда необходима нестандартная визуализация, которую невозможно либо очень громоздко реализовывать существующими средствами, на помощь может прийти JavaScript для мнемосхем. Примерами таких задач могут быть:

  • Замовнику після розробки доволі великого проєкту знадобилося привести у відповідність колірну схему проєкту візуалізації корпоративному стилю. Це означало б переробку величезної кількості елементів візуалізації. Питання вирішив невеликий JS скрипт, що зумовлює необхідні кольори у наявних елементів
  • “Плавна” анімація об’єктів незалежно від часу оновлення даних (скану)
  • Малювання нестандартних кривих, температурних профілів тощо.
  • Використання пресетів для завантаження даних на графіки і діаграми, залежно від вибору користувача, діаграма/графік змінює набір параметрів, що відображаються, тимчасові межі та ін.

Ще кілька невеликих, але корисних доповнень

Історія змін під час відновлення проєкту

У процесі роботи над проєктом часто виникає необхідність повернутися до якогось етапу в минулому, завантажити резервну копію, скасувавши останні зміни, або переробити щось заново. При цьому можуть виникнути певні незручності, оскільки під час відновлення проєкту про файл образу нічого не відомо, крім назви та дати його створення.
Для вирішення цієї задачі було додано спеціальний інструмент, який аналізує файли журналу (log*-sqlite3), і зазначає, які зміни було внесено в проєкт порівняно з актуальною базою даних проєкту.

Гостьовий вхід

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

Експорт даних у форматі XLSX

Затребувана функція прямого експорту даних графіків, діаграм прямо в аркуш MS Excel. Вона доступна після підвантаження її через DLC.

Завантажувані компоненти (DLC)

В новой версии прошивки появился механизм динамических обновлений. Если WebHMI подключен к Internet, то система время от времени сама проверяет наличие обновлений на сервере и актуализирует программные компоненты в рамках текущей версии прошивки, что позволяет более гибко расширять функциональность системы.

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

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

Скрипти

У редакторі скриптів зроблено низку поліпшень:

  • Глобальний пошук за скриптами – у великих проєктах часто буває потрібно швидко переглянути, в яких скриптах і як використовується той чи інший регістр. Поле глобального пошуку прямо в списку скриптів тепер стало незамінним помічником під час налагодження.
  • Змінний розмір налагоджувальної консолі – під час налагоджувального друку великих структур вони просто не поміщалися в розмір консолі. Тепер вертикальний розмір консолі можна поміняти в будь-який момент.
  • Змінний розмір шрифтів редактора Lua – Підбір оптимального розміру шрифту підвищує зручність роботи і дає змогу уникнути зайвого напруження очей під час роботи в редакторі.

Відносний часовий інтервал під час відображення графіків і діаграм Ганта

Іноді Вам може бути цікавий нестандартний інтервал часу на віджетах графіків або діаграм Ганта, відсутній у стандартному календарі, наприклад, початок зміни об 11 годині, і ви хочете дивитися – 8 годин відносно цього моменту.

Системні повідомлення System Popup messages

Система повідомляє користувачеві важливу інформацію у вигляді спливаючих підказок, наприклад:

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

Настроювані кольори значень у користувацьких графіках, трендах і діаграмах

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

Новий інструмент для часткового очищення даних

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

Швидке перейменування назви категорій

Можливість завдання категорій для об’єктів існує в WebHMI досить давно і є зручним засобом структурування проєкту. Як правило, якщо відразу задати правильну назву для категорії, вона залишається без змін. Однак із часом виявилося, що перейменування категорій не дуже проста справа, особливо коли потрібно зробити багато перейменувань – для цього треба було створити ще одну категорію і перенести в неї потрібні об’єкти. (при цьому також відбувалася переініціалізація проєкту). Зараз це можна робити простим натисканням на піктограму редагування в назві категорії.

Кнопка очищення комунікаційного лога прямо на сторінці

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

Автоматичне закриття сесії за відсутності користувача на сторінці

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

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

І це ще не все:

  • Додано португальську мову інтерфейсу
  • Оптимізовано роботу протоколу MQTT