Обновление прошивки 1.14.3576

31 Mar Обновление прошивки 1.14.3576

Доступна новая версия прошивки WebHMI 1.14.3576.

Основные изменения:

  1. Добавлена возможность отправлять сообщения в Telegram.
  2. Появилась возможность указывать порядок выполнения сценариев Lua.
  3. Теперь можно программно скрывать/показывать любой элемент управления на приборных панелях.
  4. Элемент “LED” теперь может быть прямоугольным.
  5. Улучшено отображение очень широких приборных панелей.
  6. Добавлена сущность рецепты.

Рассмотрим эти нововведения более подробно.

1. Telegram – один из популярных мессенжеров для мобильных устройств. Теперь WebHMI может отправлять сообщения в Telegram c помощью чат-бота webhmibot. Для этого установите Telegram, перейдите по ссылке на мобильном телефоне и начните диалог с ботом командой /start. В ответ вы получите сообщение с уникальным идентификатором чата ChatId.

chatid

Далее, в сценариях Lua, можно отправлять сообщения с помощью функции SendTelegramMessage (chatId, message). Первый параметр – это идентификатор чата, в который вы хотите отправить сообщение, а message – это текст сообщения.

script

При наличии интернет-подключения на WebHMI и телефоне получателя, сообщение будет доставлено в течении считанных секунд (обычно 5-6 секунд). Отправка уведомлений бесплатна.

2. Теперь есть возможность управлять последовательностью выполнения сценариев Lua. Это важно в том случае, если разные сценарии взаимодействуют с одними и теми же регистрами и могут их изменять. Для этого в сценариях Lua появился новый параметр – Priority. Сценарии сортируются согласно значению этого параметра. Выполняются и отображаются в списке сценариев они также согласно этой сортировке.

3. Для всех элементов дашбордов добавился новый параметр “Change visibility by bit”. Он позволяет управлять видимостью этого блока с помощью выбранного бита в регистре.

Visibility

Таким образом можно выбрать регистр и указать конкретный его бит и система в зависимости от значения этого бита будет либо отображать элемент либо скрывать. Одним регистром можно управлять множеством различных элементов приборных панелей (в зависимости от количества бит в этом регистре).

4. Элемент приборных панелей LED теперь может быть прямоугольной формы и произвольного размера. Также, теперь можно не только мернять размер его контура, но и полностью скрывать этот контур. Т.е. теперь можно быстро сделать прямоугольник произвольной формы, который будет подсвечиваться в соответствии с состоянием регистра.

5. Добавлена сущность рецепты. На странице Setup->Recipes можно создавать и редактировать рецепты. Рецепт представляет собой множество пар регистр/значение. При выборе регистра пользователем в указанные регистры будут записаны соответствующие значения.

recipe

Также, для удобного выбора рецепта на приборной панели был добавлен новый элемент управления Recipe. Это список (drop down), который может быть либо выпадающим либо многострочным. Этот список привязывается к регистру с номером рецепта и при выборе рецепта оператором в указанный регистр будет записано значение выбранного рецепта. У рецептов есть понятие категории. Выпадающий список привязывается к конкретной категории, что позволяет отображать в нем только необходимые рецепты.

recipe2

Если у элемента Recipe выбрана галочка “Apply immediately” то рецепт будет применен сразу же. Если галочка не стоит то рецепт не будет применен (значения не будут записаны в регистры). Это может быть полезно, если необходима какая-либо предварительная обработка рецепта. Например, подтверждение оператором выбора или проверка готовности машины. Для последующего применения указанного рецепта можно использовать функцию ApplyRecipe(recipeId, userId) в сценариях Lua.

У рецептов есть свои права доступа. Можно разграничить какие рецепты доступны каким ролям пользователей. Например, технические рецепты промывки машины могут быть доступны только главному инженеру, но не обычному оператору машины. Обратите внимание, что при применения рецепта из сценария, отличного от Scripts for dashboards, проверка на права доступа не будет происходить т.к. переменная userId будет равна 0. Проверка прав доступа в этом случае ложится на разработчика сценария.