Здравствуйте.
Как управлять границами переменных из клиента, рассмотрено по ссылке (https://simple-scada.com/help/manual/managing-bounds-var.html).).
Если Вам требуется управлять типами границ или отключать границы переменных (https://clck.ru/3F7oRC) через скрипты, то можно использовать свойство LimitType (https://simple-scada.com/help/script/varlimittype.html). Для изменения граничных значений переменных можно использовать свойства HighAlarm (https://simple-scada.com/help/script/varhighalarm.html), HighWarning (https://simple-scada.com/help/script/varhighwarning.html), LowWarning (https://simple-scada.com/help/script/varlowwarning.html) и LowAlarm (https://simple-scada.com/help/script/varlowalarm.html). При однотипном наименовании переменных (например myVariable1, myVariable2 … myVariable30) можно использовать цикл для прохода по всем переменным (привести имена переменных к однотипному наименованию можно с помощью группового переименования (https://simple-scada.com/help/manual/variable-editor.html?anchor=bulkren)).
Например, можно создать четыре внутренних переменных (https://simple-scada.com/help/script/var-types.html#:~:text=%D0%92%D0%BD%D1%83%D1%82%D1%80%D0%B5%D0%BD%D0%BD%D1%8F%D1%8F%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F) с типом данных "Integer" (например с именами "vrHighAlarmAll", "vrHighWarningAll", "vrLowWarningAll" и "vrLowAlarmAll"), через которые будут задаваться значения аварийных границ сразу для всех переменных (при необходимости у переменных можно включить опцию "Автоматическое восстановление (https://simple-scada.com/help/manual/varmain.html#:~:text=%E2%80%A2-,%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5%20%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5,-%2D%20%D0%BF%D1%80%D0%B8%20%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%20%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8)"). Далее на мнемосхеме необходимо разместить четыре поля и связать их с этими переменными. После чего рядом с полями можно разместить кнопки, которые будут применять указанные в полях аварийные и предупредительные границы, менять типы границ или отключать границы (https://clck.ru/3F7oRC).
Пример скрипта на событие "OnClick (https://simple-scada.com/help/script/general-events.html#:~:text=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-,OnClick,-%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%20%D0%BA%D0%BB%D0%B8%D0%BA%D0%BD%D1%83%D0%BB(%D0%BD%D0%B0%D0%B6%D0%B0%D0%BB)" кнопки, по нажатию на которую будут изменяться граничные значения, включаться аварийные и предупреждающие границы сразу для 30 переменных:
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.