Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: B.B от 29 Декабря 2021, 23:52:23

Название: Сообщение для else
Отправлено: B.B от 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"?
Название: Re: Сообщение для else
Отправлено: Simple_Scada от 30 Декабря 2021, 16:31:43
Здравствуйте.

Если диапазон значений при возникновении ошибки известен, например при ошибках переменная может принимать значения от 165 до 500, то можно создать сообщение через редактор сообщений. У состояния сообщения (https://simple-scada.com/help/manual/index.html?edit-message.html#prop_sost) можно задать нужный диапазон используя свойства "Значение (от)"/Значение(до), например как на скриншоте во вложении. Тогда при значении от 165 до 500 будет выдаваться сообщение "Ошибка модуля датчика давления!". Но в этом случае не получится добавить в текст сообщения значение переменной. Также, сообщение будет выдано единожды при попадании значения в указанный диапазон и будет выдано повторно только если значение сначала выйдет из диапазона, а затем вернется в него. Для того, чтобы добавить в текст сообщения текущее значение переменной, можно использовать шаблонное сообщение (https://simple-scada.com/help/manual/templatemessage.html), добавив в него спец. значение (https://simple-scada.com/help/manual/index.html?templusefultips.html#templ1) "#var_value". Но у Вас в скрипте используется не само значение переменной, а преобразованное значение - такое реализовать через штатный функционал редактора сообщений не получится.
Название: Re: Сообщение для else
Отправлено: B.B от 31 Декабря 2021, 11:25:16
Спасибо за ответ.

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

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