Пожалуйста, включите JavaScript для просмотра этого сайта.

Руководство Simple-Scada

История: Редактор > Работа с шаблонами

Шаблон и шаблонные объекты

Пред. Вверх След. Еще

Для начала рассмотрим примитивный пример. Допустим, в нашем проекте нужно создавать множество однотипных насосов. Каждый насос имеет название, состояние запущен/остановлен (переменная Pump_State) и текущее число оборотов насоса (переменная Pump_Frequency). Пуск и остановка насоса выполняется через кнопку. Если насос запущен, то он должен выделяться светло-зеленым цветом. Значение оборотов должно отображаться над изображением насоса. На мнемосхеме они должны выглядеть так:

 

Переменные насосов имеют однотипные имена и отличаются только номером насоса:

 

Для решения вышеописанной задачи будем использовать шаблоны. В меню "Окна / Шаблоны" выбираем пункт "Новый шаблон":

 

Откроется окно шаблона с именем "Template1". Через инспектор объектов изменим имя на "tmpPump":

 

В окне шаблона разместим все необходимые элементы: текст "txtPumpName" для отображения названия, поле "fldPumpFreq" для отображения оборотов, изображение насоса "imgPump" и кнопку пуска/остановки "btnPumpStart". Получаем такой результат:

 

Теперь нужно привязать объекты к переменным. Начнем с кнопки "btnPumpStart". Выделяем ее и через инспектор объектов связываем с переменной пуска первого насоса "Pump1_State":

 

Но мы создаем шаблон и не должны привязываться к переменной одного насоса. Поэтому нужно вместо номера насоса в имени переменной использовать подстановку. Имя подстановки всегда должно обрамляться знаками "%". Назовем подстановку "Номер насоса", т.е. теперь имя переменной должно быть не "Pump1_State", а "Pump%Номер насоса%_State":

 

Аналогично привязываем поле "fldPumpFreq" к переменной "Pump1_Frequency" и заменяем номер насоса подстановкой "Номер насоса", как показано ниже:

 

Далее нужно сделать так, чтобы изображение насоса "imgPump" выделялось светло-зеленым цветом, когда насос запущен. Выделяем изображение и привязываем его к переменной состояния насоса с подстановкой:

 

Назначим изображению на событие OnDataChange (изменилась переменная связанная с изображением) универсальный скрипт, который будет менять цвет на светло-зеленый, когда насос включен, т.е. когда переменная равна 1(true):

 

Код универсального скрипта для смены цвета не обязательно писать с нуля. Его можно вставить через меню "Действия" - "Вставить код". Для этого сначала удаляем весь код скрипта и вызываем "Действия" - "Вставить код" и дважды кликаем по первой строке в списке:

 

Код вставлен, и он делает то, что нам нужно: меняет цвет на светло-зеленый если переменная связанная с объектом равна 1 и убирает окрашивание цветом в других случаях. При желании, можно отредактировать код скрипта и добавить новые соответствия цветов.

 

Остался последний компонент текст "txtPumpName", в котором должно отображаться название насоса. Заменим номер насоса в названии подстановкой "Номер насоса". Должно получиться так:

 

Шаблон готов. Теперь можно добавить на мнемосхему объекты на основе этого шаблона (шаблонные объекты). В меню "Окна / Шаблоны" выбираем пункт "Вставить шаблон":

 

В открывшемся окне дважды кликаем созданный ранее шаблон "tmpPump":

 

И размещаем на мнемосхеме три шаблонных объекта:

 

Обратите внимание, шаблонные объекты выделены оранжевым цветом и в правом верхнем углу отображается иконка с восклицательным знаком. Это говорит о том, что в шаблонном объекте есть незаданные подстановки. Остается только задать их. Выделяем первый шаблонный объект и через инспектор объектов задаем подстановке "Номер насоса" значение 1:

 

Аналогично, второму шаблонному объекту значение 2, а третьему 3. Сохраним и запустим проект:

 

Скада автоматически расставила подстановки в свойства объектов, в результате над каждым насосом отображается его название и обороты, а кнопка снизу запускает соответствующий насос. При необходимости можно будет быстро добавить в проект множество таких объектов на основе шаблона "tmpPump". Достаточно вставить его на мнемосхему и назначить номер подстановки. При этом не нужно вручную назначать переменные и скрипты объектам. А если понадобится внести изменения в шаблонные объекты, то можно просто открыть шаблон и изменить его, изменения автоматически применятся ко всем объектам, связанным с шаблоном. Для примера меняем в шаблоне изображение насоса и видим, что шаблонные объекты на мнемосхеме тоже изменились: