Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Сообщение для else  (Прочитано 550 раз)

B.B

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Сообщение для else
« : 29 Декабря 2021, 23:52:23 »
Система сообщений позволяет выводить типовой текст или описание переменной в соответствии со значением переменной.

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

Есть АЦП для датчика давления, который отдаёт своё состояние и ошибки в одном общем теге.
Сделан скрипт по изменению переменной
Код: (delphi)
case Variable.AsInt of
0:begin end; // нет ошибок
4:AddMessage(Now, mkAlarm, 'Превышение верхнего диапазона измерений!', True, False);
20:AddMessage(Now, mkWarning, 'Давление меньше нижнего диапазона измерений.', True, False);
52:AddMessage(Now, mkMessage, 'Значения вернулись в диапазон измерений.', True, False);
164:AddMessage(Now, mkAlarm, 'Нет ответа от преобразователя!', True, False);
else
  AddMessage(Now, mkAlarm, 'Ошибка модуля датчика давления! Старший байт: '+
               IntToHex(HiByte(Variable.AsInt),2) +' младший байт:  ' +
               IntToHex(LoByte(Variable.AsInt),2), True, false);
end;

По-хорошему для значений 4,20,52 и 164 можно было бы создать стандартное сообщение.
Но иногда возникают ошибки преобразователя АЦП и в переменную попадает значение, которое надо показать оператору.

Возможно ли не прибегая к скрипту создать сообщение аналогичное сообщению в "else"?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1178
    • Просмотр профиля
Re: Сообщение для else
« Ответ #1 : 30 Декабря 2021, 16:31:43 »
Здравствуйте.

Если диапазон значений при возникновении ошибки известен, например при ошибках переменная может принимать значения от 165 до 500, то можно создать сообщение через редактор сообщений. У состояния сообщения можно задать нужный диапазон используя свойства "Значение (от)"/Значение(до), например как на скриншоте во вложении. Тогда при значении от 165 до 500 будет выдаваться сообщение "Ошибка модуля датчика давления!". Но в этом случае не получится добавить в текст сообщения значение переменной. Также, сообщение будет выдано единожды при попадании значения в указанный диапазон и будет выдано повторно только если значение сначала выйдет из диапазона, а затем вернется в него. Для того, чтобы добавить в текст сообщения текущее значение переменной, можно использовать шаблонное сообщение, добавив в него спец. значение "#var_value". Но у Вас в скрипте используется не само значение переменной, а преобразованное значение - такое реализовать через штатный функционал редактора сообщений не получится.

B.B

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Re: Сообщение для else
« Ответ #2 : 31 Декабря 2021, 11:25:16 »
Спасибо за ответ.

Эти возможности отлично описаны в документации, где это подходит- используются.
Но для данного случая нужно именно else.
Огромное спасибо за возможность реализации требуемого функционала через скрипты.

С наступающим Новым годом!