В скриптах с типом события "Нарушена граница" можно использовать функции IsFirstChange, PrevAsBool, PrevAsInt, PrevAsFloat, PrevAsStr.
Для создания скрипта по нарушению границ переменных, необходимо создать новый скрипт и в списке событий выбрать тип "Нарушена граница". В левой части параметров скрипта отображается список переменных проекта, в правой части отображается список выбранных переменных, по нарушению границ которых будет выполняться скрипт. Для добавления переменных в список скрипта, необходимо выбрать требуемые переменные кликая по флажкам рядом с именами переменных. Для добавления всех переменных группы, необходимо кликнуть по флажку рядом с именем группы. Для удаления переменной из списка скрипта, необходимо снять флажок рядом с именем переменной. Для редактирования списка переменных в уже созданном скрипте, необходимо выбрать нужный скрипт на панели скриптов и нажать кнопку редактирования(с иконкой карандаша).

Описание
Данный тип события хорошо подходит для отправки уведомлений (Telegram / Max / E-mail / SMS или просто сообщений) о нарушении границ переменной. Для быстрого поиска требуемых переменных можно использовать опцию "Фильтр" (поддерживается поиск по шаблону).
Скрипт будет вызван при нарушении границы или выходе за пределы шкалы любой переменной из заданного списка. Скрипт имеет параметр Variable - переменная, нарушение границы или шкалы которой привело к выполнению скрипта. Событие учитывает зону нечувствительности заданную каждой переменной, что позволяет исключить лишние срабатывания, когда значение переменной колеблется в зоне соприкосновения двух границ (предупредительной и аварийной, предупредительной и нормальной и т.д.). Также, событие не срабатывает при переходе значения из аварийной зоны в предупредительную (т.к. условия улучшились, а не ухудшились).
Пример скрипта
Допустим, требуется отправлять Telegram-сообщения при нарушении границ или выходе за пределы шкалы, а также отправлять сообщение, когда значение переменной вернулось в норму. Получить нарушенную границу можно при помощи функции GetValueZone. Для решения задачи достаточно написать один универсальный скрипт по событию "Нарушена граница" и добавить в список скрипта требуемые переменные. Пример скрипта:
begin
if not IsFirstChange then // пропускаем первое изменение, чтобы сообщения не выдавались при перезапусках проекта
// отправляем сообщение в зависимости от того, в какой зоне находится значение переменной
case Variable.GetValueZone of
-3: SendTelegram('Переменная ' + Variable.Name + ' вышла за минимум шкалы. Значение: ' + Variable.AsStr);
-2: SendTelegram('Нарушена НА граница переменной ' + Variable.Name + '. Значение: ' + Variable.AsStr);
-1: SendTelegram('Нарушена НП граница переменной ' + Variable.Name + '. Значение: ' + Variable.AsStr);
0: SendTelegram('Значение вернулось в норму ' + Variable.Name + '. Значение: ' + Variable.AsStr);
1: SendTelegram('Нарушена ВП граница переменной ' + Variable.Name + '. Значение: ' + Variable.AsStr);
2: SendTelegram('Нарушена ВА граница переменной ' + Variable.Name + '. Значение: ' + Variable.AsStr);
3: SendTelegram('Переменная ' + Variable.Name + ' вышла за максимум шкалы. Значение: ' + Variable.AsStr);
end;
end.
Теперь, при нарушении заданных пределов любой переменной добавленной в список скрипта, будет отправлено соответствующее Telegram-сообщение.