<< Click to Display Table of Contents >> Сложная видимость со скриптами |
|
Предположим, у нас в проекте есть множество однотипных объектов Мотор, у каждого из которых есть несколько параметров State и Speed, и в зависимости от их значений мы хотим, чтобы объекты были видимы/не видимы на экране. Так как в данном случае есть зависимость Видимости от нескольких тегов, необходимо использовать скрипты. И так как у нас в проекте предусмотрено несколько однотипных объектов, удобнее использовать косвенные имена для привязки тегов к объекту.
1. Создадим теги для каждого объекта - State и Speed (для наглядности используем группировку):
2. В данном случае нам нужны промежуточные теги для включения или отключения видимости объекта - Visible1, Visible2 и Visible3, создадим их:
3. Создадим объект Мотор:
Создадим пользовательское свойство - Number и установим ему значение "1", т.к. первый объект мы будем привязывать к тегу Visibility1:
4. Закроем окно "Коллекции" и нажмем "ОК" в Окне свойств объекта, чтобы сохранить изменения. Теперь снова откроем Свойства объекта и настроим свойство Видимость: включим свойство, установим значение = 1, тип "Тег.PV==значение", привяжем тег путем указания косвенного имени: Visible{Number}:
5. Видимость будем задавать в зависимости от значений тегов для каждого объекта Мотор:
State |
Speed |
Видимость |
---|---|---|
0 |
Любая |
Невидимый |
1 |
0...500 |
Видимый |
1 |
500...1000 |
Видимый |
1 |
>1000 |
Невидимый |
6. Теперь создадим скрипт объекта на языке ST с типом выполнения - OnDataChange:
Напишем скрипт:
После того как записали скрипт обязательно запустим его путем нажатия кнопки на панели инструментов:
7. Теперь привяжем скрипт к объекту - откроем свойства объекта, выберем вкладку "Основное" и в поле "Скрипты" заполним "Коллекцию":
Итак, у нас есть Мотор с настройкой свойства видимости по скрипту.
8. Теперь нам нужно продублировать созданный объект Мотор столько раз, сколько нужно в проекте, и в кажом вновь созданном объекте исправить значение пользовательского свойства Number на Листе свойств:
9. Запустим имитацию, чтобы проверить настройки:
Вы можете скачать проект из примера здесь.