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

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

Автор Тема: Управление границами переменных  (Прочитано 2321 раз)

ILSHAT8

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Управление границами переменных
« : 09 Декабря 2024, 09:53:02 »
Добрый день!
В проекте имеются около 30 аналоговых переменных( тип данных double), которые необходимо управлять отдельно для каждой переменной аварийными границами( выключить, аварийные, авар-предупредительные).Это реализовали  в текущем проекте.
Теперь вопрос, возможно ли сделать для всех 30 переменных сделать общую настройки и управлять границами( возможно нужно написать скрипт для всех имеющихся переменных).
Заранее благодарен за ответ.

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 290
    • Просмотр профиля
    • Simple-Scada
Re: Управление границами переменных
« Ответ #1 : 09 Декабря 2024, 13:39:13 »
Здравствуйте.

Как управлять границами переменных из клиента, рассмотрено по ссылке.

Если Вам требуется управлять типами границ или отключать границы переменных через скрипты, то можно использовать свойство LimitType. Для изменения граничных значений переменных можно использовать свойства HighAlarm, HighWarning, LowWarning и LowAlarm. При однотипном наименовании переменных (например myVariable1, myVariable2 … myVariable30) можно использовать цикл для прохода по всем переменным (привести имена переменных к однотипному наименованию можно с помощью группового переименования).

Например, можно создать четыре внутренних переменных с типом данных "Integer" (например с именами "vrHighAlarmAll", "vrHighWarningAll", "vrLowWarningAll" и "vrLowAlarmAll"), через которые будут задаваться значения аварийных границ сразу для всех переменных (при необходимости у переменных можно включить опцию "Автоматическое восстановление"). Далее на мнемосхеме необходимо разместить четыре поля и связать их с этими переменными. После чего рядом с полями можно разместить кнопки, которые будут применять указанные в полях аварийные и предупредительные границы, менять типы границ или отключать границы.

Пример скрипта на событие "OnClick" кнопки, по нажатию на которую будут изменяться граничные значения, включаться аварийные и предупреждающие границы сразу для 30 переменных:
Код: (delphi)
var
  aVar : TM_Variable;
  i: Integer;
begin
  for i := 1 to 30 do
  begin
    aVar := GetVariableByName('myVariable' + IntToStr(i)); // ищем очередную переменную по имени
    if aVar <> nil then                                    // если переменная существует, то 
    begin
      aVar.HighAlarm := vrHighAlarmAll.AsInt;       // изменить верхнюю аварийную границу переменной
      aVar.HighWarning := vrHighWarningAll.AsInt;   // изменить верхнюю предупредительную границу переменной
      aVar.LowWarning := vrLowWarningAll.AsInt;     // изменить нижнюю предупредительную границу переменной
      aVar.LowAlarm := vrLowAlarmAll.AsInt;         // изменить нижнюю аварийную границу переменной

      aVar.LimitType := ltAlarmsAndWarnings;        // активировать аварийные и предупреждающие границы
    end;
  end;
end.