1
Ваши вопросы / Re: Вопросы по скриптам в Simple-Scada 2
« : 24 Апреля 2024, 22:36:33 »
Здравствуйте.
При проектировании шаблона следует стремиться к минимуму подстановок, количеству и объёму скриптов. Собственно подстановки шаблона сводятся к подстановкам в объекты этого шаблона.
Минимальный набор подстановок объекта включает основную и дополнительную переменную (имена переменных), свойства Tag (целое число) и Hint (строка). По изменению переменных возможен вызов соответствующих скриптов.
Для минимизации подстановок переменных следует использовать для каждого агрегата однотипные наборы имен, включающие поле номера агрегата, тогда единственной подстановкой будет только номер агрегата.
Пример построения шаблона с тремя отображаемыми отдельными параметрами и некоторой групповой логикой от 5-ти булевых переменных (упрощенная модель координатного стола: пуск/стоп, выход за границы, координаты):
- для отображения параметров используются три объекта "Поле" с подстановкой основной переменной, скрипт не требуется;
- три из 5-ти булевых переменных используют подстановку в дополнительные переменные объектов "Поле", а две оставшиеся подстановку в переменные объекта "Текст". Т.е. шаблон содержит четыре объекта с однотипными именами TempObj_<i=1..4>.
Булевы переменные по изменению (основной и дополнительной) собираются в вектор скриптом:
Во вложении пример для 4-х моделей агрегатов, которые связаны через встроенный OPC UA сервер собственно с шаблонами.
...Есть большое количество однотипных агрегатов у которых 8 переменных по которым определяется аварийное и рабочее состояние. Задача заключается в создании шаблона который менял цвет в зависимости от 5 переменных, в шаблонном окне по нажатию кнопки сбрасывались 4 булевские переменные, ...Как правильно заметили разработчики Simple-Scada, то что можно следует загонять в ПЛК. Однако, если такой возможности нет, а количество агрегатов большое, то можно использовать шаблоны.
При проектировании шаблона следует стремиться к минимуму подстановок, количеству и объёму скриптов. Собственно подстановки шаблона сводятся к подстановкам в объекты этого шаблона.
Минимальный набор подстановок объекта включает основную и дополнительную переменную (имена переменных), свойства Tag (целое число) и Hint (строка). По изменению переменных возможен вызов соответствующих скриптов.
Для минимизации подстановок переменных следует использовать для каждого агрегата однотипные наборы имен, включающие поле номера агрегата, тогда единственной подстановкой будет только номер агрегата.
Пример построения шаблона с тремя отображаемыми отдельными параметрами и некоторой групповой логикой от 5-ти булевых переменных (упрощенная модель координатного стола: пуск/стоп, выход за границы, координаты):
- для отображения параметров используются три объекта "Поле" с подстановкой основной переменной, скрипт не требуется;
- три из 5-ти булевых переменных используют подстановку в дополнительные переменные объектов "Поле", а две оставшиеся подстановку в переменные объекта "Текст". Т.е. шаблон содержит четыре объекта с однотипными именами TempObj_<i=1..4>.
Булевы переменные по изменению (основной и дополнительной) собираются в вектор скриптом:
Код: (delphi)
var i, j: integer;
begin
j := SetBit(0, 0, GetTemplateObject('TempObj_1').AsBool); // младший бит вкл./выкл.
for i := 1 to 4 do
with GetTemplateObject('TempObj_' + IntToStr(i)) do
j := SetBit(j, i, VariableEx.AsBool); // собрать весь вектор
// интерпретация вектора - по таблице, case - оператором или набором условных операторов
end.
Во вложении пример для 4-х моделей агрегатов, которые связаны через встроенный OPC UA сервер собственно с шаблонами.