Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Алексей Оптэс от 19 Ноября 2025, 15:47:49

Название: Помощь по скриптам
Отправлено: Алексей Оптэс от 19 Ноября 2025, 15:47:49
Здравствуйте, есть переменные varA1, varA2, varA3, ..., varA130 типа Integer. Каждая переменная может принимать значение от 0 до 15. Помогите написать скрипт так, чтобы если хоть одна из этих переменных принимает значение 2, 3 или 4, то происходило какое нибудь действие (например выводилось сообщение "Авария").
Название: Re: Помощь по скриптам
Отправлено: Simple_Scada от 19 Ноября 2025, 23:25:20
Здравствуйте.

1. Самым лучшим вариантом будет проверять нужные условия на ПЛК и записывать результат в отдельную переменную, по которой затем в скада-системе можно будет выдавать аварию.
2. Если требуется выдавать разное сообщение для каждой переменной, то используйте штатную систему сообщений (https://simple-scada.com/help/manual/edit-message.html). Для создания однотипных сообщений можно использовать шаблонные сообщения (https://simple-scada.com/help/manual/templatemessage.html).
3. Если нужно формировать одно и то же сообщение при изменении любой переменной на 2, 3 или 4, то можно создать скрипт с типом "Изменились переменные (https://simple-scada.com/help/script/changed-the-variables.html)", добавить в список скрипта (https://simple-scada.com/help/script/changed-the-variables.html#:~:text=%D0%94%D0%BB%D1%8F%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B2%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0%2C%20%D0%BD%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D0%BE%20%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C%20%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D0%BC%D1%8B%D0%B5%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BA%D0%BB%D0%B8%D0%BA%D0%B0%D1%8F%20%D0%BF%D0%BE%20%D1%84%D0%BB%D0%B0%D0%B6%D0%BA%D0%B0%D0%BC%20%D1%80%D1%8F%D0%B4%D0%BE%D0%BC%20%D1%81%20%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%D0%BC%D0%B8%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D1%85.) требуемые переменные и использовать следующий код:
Код: (delphi)
begin
  // пропускаем первое изменение, чтобы сообщения не выдавались при перезапусках проекта
  if IsFirstChange then Exit;

  // выдаем сообщение если переменная изменилась на 2-4
  if (Variable.AsInt <= 4) and (Variable.AsInt >= 2) then
    AddMessage(Now, mkAlarm, 'Авария!', True, False);
end.