Использование экземпляров позволяет определять функции продукта, которые могут встречаться в группе Typical многократно. При определении групп Typical можно разрешить генерирование нескольких экземпляров элемента группы Typical. Это позволяет конструктору в Project Builder расширять набор функций вашего продукта. Таким образом, объем проектной документации неограничен. Нет необходимости в правилах устанавливать максимальный набор функций продукта. Кроме того, улучшено удобство обслуживания конфигуратора, так как для настройки всех экземпляров элемента необходимо настроить только одну позицию в наборе правил.
В формулах, которые управляют поведением экземпляров, есть дополнительные внутренние переменные. С помощью этих переменных можно целенаправленно определить правила поведения отдельных экземпляров (см. пример).
Внутренние переменные | Тип | Значение |
---|---|---|
Целое число | Содержит индекс текущего экземпляра. Значение переменной для первого экземпляра равно 0, для второго — 1 и т. д. | |
Целое число | Содержит количество всех экземпляров. Если в Project Builder генерируются три экземпляра, значение переменной равно 3. | |
Булев тип | Содержит значение 'истинно' для первого экземпляра. Содержит значение 'ложно' для всех остальных экземпляров. | |
Булев тип | Содержит значение 'истинно' для последнего экземпляра. Содержит значение 'ложно' для всех остальных экземпляров. | |
Булев тип | Содержит значение 'истинно' для всех экземпляров с четным индексом. Содержит значение 'ложно' для всех остальных экземпляров. | |
Булев тип | Содержит значение 'истинно' для всех экземпляров с нечетным индексом. Содержит значение 'ложно' для всех остальных экземпляров. |
Условия
- Открыто диалоговое окно Designer, и выбран режим обработки группы Typical.
- Элемент, для которого нужно разрешить несколько экземпляров, уже существует.
Порядок действий
- Кнопкой мыши перетащите элемент, для которого нужно разрешить несколько экземпляров, в нужное положение в рабочей области.
- В рабочей области нажмите элемент.
- В виде появится информация о структуре и переменных, содержащаяся в элементе.
- Установите флажок Разрешить экземпляры.
- Появятся две новые кнопки. Кнопка Неогранич. активна. Конструктор в Project Builder может генерировать любое количество экземпляров элемента.
- Нажмите кнопку Конфигурировать, если нужно ограничить количество экземпляров.
- Появится новое поле ввода.
- В поле ввода укажите, какое максимальное количество экземпляров может сгенерировать конструктор в Project Builder.
- Используйте внутренние переменные, чтобы связать их с переменными конфигурации элемента.
- Используя внутренние переменные, вы определяете конкретные правила поведения отдельных экземпляров (см. пример).
Требования
В конфигураторе реализовано гибкое оснащение каркаса ПЛК. В базовой комплектации каркас оснащен только одним модулем интерфейса. Необходимо, чтобы дополнительно можно было разместить модули питания, а также карты цифрового входа и выхода.
- Тип дополнительных модулей можно свободно конфигурировать.
- Для размещения модулей доступны семь разъемов.
- Модули размещаются на каркасе непосредственно рядом друг с другом.
Какие элементы необходимы для этого?
- Требуются четыре макроса: модуль интерфейса, модуль питания, карта цифрового входа и выхода.
- Требуются два Typical макросов: Typical макросов 'База' содержит модуль интерфейса, который всегда используется. Typical макросов 'Модули' содержит три макроса для модуля питания и карты цифрового входа и выхода. Все макросы размещаются на одной странице схемы соединений.
- Требуется группа Typical 'Каркас': она содержит оба Typical макросов — 'База' и 'Модули'.
- Требуется конфигуратор 'Машина A': он содержит группу Typical 'Каркас'.
Как реализуются требования по этим элементам в Designer?
- Чтобы тип дополнительных модулей можно было свободно конфигурировать, необходимо изменить Typical макросов 'Модули'. Для этого создается переменная конфигурации 'Тип модуля' с типом Строка. Она содержит предварительно заданные значения 'Модуль питания', 'Карта цифрового входа' и 'Карта цифрового выхода', которые в Project Builder может выбрать конструктор. Статус трех макросов связывается с переменной конфигурации 'Тип модуля'. Для модуля питания используется такая формула: =Тип модуля=='Модуль питания'. Для двух остающихся типов модулей формулы должны быть соответствующим образом изменены. Таким образом, макросы будут использоваться при генерировании схемы соединений, только если конструктор в Project Builder выберет соответствующее значение.
- Чтобы разместить семь дополнительных модулей, требуются семь экземпляров Typical макросов 'Модули'. Для этого необходимо изменить группу Typical 'Каркас'. Для элемента 'Модули' в группе Typical 'Каркас' можно сгенерировать до семи экземпляров. Это позволяет конструктору конфигурировать количество генерируемых модулей в Project Builder. Для каждого вновь сгенерированного модуля он также может определять тип модуля (см. требование 1).
- Чтобы добиться размещения модулей рядом друг с другом, а не друг на друге, необходимо изменить позицию макросов в Typical макросов 'Модули'. Для этого создается переменная конфигурации 'Позиция разъема' с типом Целое число. Позиция трех макросов определяется как Абсолютно и связывается с переменной конфигурации 'Позиция разъема'. Для координаты Y определяется фиксированное значение. Для координаты X всех макросов используется такая формула: =60 + (позиция разъема * 15). Ширина каждого модуля составляет 15 мм. Ширина модуля умножается на позицию разъема. Результат прибавляется к координате X 60.
- Дополнительно необходимо изменить группу Typical 'Каркас'. Переменная конфигурации 'Позиция разъема' из Typical макросов 'Модули' в группе Typical 'Каркас' связывается с внутренней переменной
'_index_' . В результате индекс сгенерированного экземпляра используется автоматически как позиция разъема. Для отдельных экземпляров возникает боковой сдвиг, который зависит исключительно от позиции разъема модуля. Таким образом, четвертый экземпляр размещается на координате X 60 + (3*15) = 120.
Замечание
Экземпляры доступны в модуле расширения с версии Advanced.