Объект “Шаблон” (Template / Template Window)
Объект “Шаблон” – это отдельное окно, куда можно добавить все необходимые объекты, а затем многократно использовать его в качестве заготовки в других окнах, заменяя теги объектов и текст автоматически.
В этой статье на конкретном примере рассмотрим работу объекта “Шаблон”, а также его особенности.
Задача: создать 2 панели управления для регулирования температуры воды резервуаров.
Объекты, которые будут использоваться в шаблоне:
- приборный индикатор для отображения температуры в резервуаре;
- комбинированные кнопки для управления (2 шт: увеличение и уменьшение температуры);
- текст для обозначения номера конкретного резервуара.
Что должно получиться:
1) Шаблон панели управления резервуаром n (где n – номер резервуара).

2) Рабочее окно с панелями управления для двух резервуаров с соответствующими тегами и текстом.

Да, безусловно, для этой задачи можно воспользоваться множественным копированием, далее вручную быстро поменять теги, но этот способ не совсем удобен, когда объектов, например, не два, как здесь, а 10. Поэтому, вместо того, чтобы добавлять каждый объект для каждого резервуара вручную, можно создать один единственный шаблон и использовать его для каждого резервуара.
Ход действий:
1. Создание шаблона
Выберите любое окно, которое будет шаблоном, и создайте его. Например, пусть это будет окно 15. Задайте ему необходимый размер и нажмите ОК.

В панели инструментов найдите объект [Шаблон] (Вкладка [Объекты] -> раздел [Другое]). Чтобы обозначить шаблонное окно, необходимо зайти в настройки окна шаблона. Для этого нужно нажать стрелочку под этим объектом и выбрать [Окно шаблона].

Появятся настройки окна шаблона, где нужно будет указать, какое именно окно будет шаблоном. В данном случае это созданное ранее окно 15. Нажмите [Добавить], впишите диапазон 15 ~ 15, нажмите ОК.

После этих действий окно 15 можно использовать как шаблон. Нажмите ОК.

Так как шаблон умеет работать только с пользовательскими тегами (а также с символьной адресацией), предварительно создайте два тега для параметров температуры каждого резервуара, а также нулевой тег для самого шаблона. Для этого в библиотеке адресных меток (Вкладка [Проект] -> объект [Адрес]) создайте три пользовательские метки:
- тег шаблона Tag_0 с адресом LW-0;
- теги для параметра температуры резервуаров: Tag_1 с адресом LW-1; Tag_2 с адресом LW-2.

Итак, теги созданы, осталось добавить необходимые объекты и привязать к ним теги.
Перейдите в окно 15, создайте следующие объекты:
Приборный индикатор – он находится во вкладке [Объекты], в разделе [Иллюстрации], в списке [Диаграмма].

В окне настроек приборного индикатора привяжите тег Tag_0 в качестве адреса чтения. Для этого нажмите на знак метки, который находится справа от поля [устройство]:

В открывшемся окне поставьте галочку “Метка пользователя”

Выберите тип адреса Tag_0.

После этого приборному индикатору будет присвоен необходимый тег:

Нажмите ОК, добавьте объект на окно шаблона.

Далее создайте две комбинированные кнопки с тем же тегом.
Первая кнопка будет увеличивать состояние:

Добавьте соответствующую метку для кнопки “Tn+”, где вместо n будет в дальнейшем подставляться необходимое число – номер резервуара.

Вторую кнопку настройте аналогично, но на уменьшение значения:


Добавьте в шаблон текст “Резервуар n” (вкладка [Объекты] -> раздел [Рисование]).

В итоге получится шаблон:

2. Использование шаблона
После того, как шаблон создан, можно добавить его на главное(рабочее) окно. Необходимо добавить два шаблона для двух резервуаров соответственно. Шаблон можно добавить в любое окно, пусть это будет уже существующее окно №10 – перейдите на это окно. Нажмите на объект [Шаблон] (не на стрелочку, как в прошлый раз, а именно на иконку объекта [Шаблон]).

EasyBuilder Pro автоматически подставит в поле “Номер окна” номер окна созданного ранее шаблона. Либо окно шаблона можно выбрать из списка, если их в проекте несколько.
В поле “Сопоставление имен тегов” можно заменить теги шаблона. Например, Tag_1 используется для чтения и записи параметра температуры резервуара №1, поэтому нужно сделать замену Tag_0 -> Tag_1. Таким образом, к объектам первой панели управления будет привязан тег первого резервуара.
В поле “Сопоставление текста” можно заменить текст и метки шаблона. Например, для данной задачи нужно отображать номер резервуара в текстовом поле “Резервуар n”, также номер параметра температуры (метки Tn+ и Tn- на кнопках) должен соответствовать номеру резервуара. Поэтому нужно сделать замену n -> 1.

Аналогично для второй панели, но уже с другим тегом и номером 2:

После подтверждения настроек получатся следующие панели управления для первого и второго резервуаров:


Что стоит учесть при работе с объектом “Шаблон”:
- Замена возможна только для пользовательских тегов и тегов, использующих символьную адресацию.
- Поддерживается массовая замена названий тегов на нескольких устройствах. Однако важно отметить, что каждое действие по замене ограничивается тегами на одном и том же устройстве. Например, тег A можно заменить на тег B на устройстве 1, одновременно заменив тег C на тег D на устройстве 2, но нельзя заменить тег А на устройстве 1 на тег С на устройстве 2.
- Функцию замены текста можно использовать только с обычным текстом в текстовых объектах, комбинированных кнопках и описаниях журнала операций. Эта функция несовместима с библиотекой меток.
- Все настройки шаблона (замена текста и тегов) будут доступны для добавленного в окно шаблона только на этапе редактирования. То есть после декомпиляции файла .exob/.cxob проект будет содержать только независимые объекты, из которых состоит шаблон, а не цельный объект шаблона.
- В окно шаблона невозможно добавить другой шаблон.
- Все объекты, из которых состоит шаблон, становятся независимыми только после компиляции, поэтому до этого момента Просмотрщик адресов и Библиотека адресных меток не будут отображать статус этих объектов после произведенной замены.
- Объекты, выходящие за пределы окна шаблона, а также объекты, метки которых выходят за пределы окна шаблона после замены, будут удалены и не будут отображаться.