Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: LebedevIS от 16 Августа 2023, 11:26:06

Название: Границы переменных как тег ПЛК
Отправлено: LebedevIS от 16 Августа 2023, 11:26:06
Здравствуйте.

Описание проблемы
Есть AI сигнал в ПЛК. В SCADA системе этот тег представлен как PV и границы HH, H, L, LL и etc. Нужно формировать предупредительные сообщения о превышении границ, при этом границы могут изменяться не только из SCADA системы (то есть, могут измениться, например, при конфигурировании контроллера или из других внешних источников)

Вопрос
Можно ли каким-то способом указать границы для переменной не константами, а переменными. Например, у меня будет переменная AI_TT1_PV для которой в дополнительный настройках будет указано, что её границы это переменные AI_TT1_HH, AI_TT1_H, AI_TT1_L, AI_TT1_LL.

Либо если сделать так нельзя, то есть ли какие-нибудь альтернативные способы реализации подобных функций?
Название: Re: Границы переменных как тег ПЛК
Отправлено: boo от 16 Августа 2023, 16:26:21
Берёте переменную, привязываете по изменению переменной AI_TT1_HH скрипт:
Код: (delphi)
var
  aVarName: String;
  aVar: TM_Variable;
begin               
  aVarName := StringReplace(Variable.Name, '_HH', '_PV', [rfReplaceAll, rfIgnoreCase]);
  aVar := GetVariableByName(aVarName);
  If aVar <> nil then
  aVar.HighAlarm := Variable.AsFloat;
end.
Похожим образом дописываете для остальных границ .HighWarning .LowWarning .LowAlarm
Название: Re: Границы переменных как тег ПЛК
Отправлено: Simple_Scada от 16 Августа 2023, 17:06:19
Здравствуйте.

Цитировать
Можно ли каким-то способом указать границы для переменной не константами, а переменными.
Данный вопрос подробно рассмотрен в этой теме – ссылка (https://simple-scada.com/forum/index.php?topic=1417.msg10749#msg10749).