Сложная видимость со скриптами

<< Click to Display Table of Contents >>

Навигация  Примеры > Видимость объекта >

Сложная видимость со скриптами

Previous pageReturn to chapter overviewNext page

Предположим, у нас в проекте есть множество однотипных объектов Мотор, у каждого из которых есть несколько параметров State и Speed, и в зависимости от их значений мы хотим, чтобы объекты были видимы/не видимы на экране. Так как в данном случае есть зависимость Видимости от нескольких тегов,  необходимо использовать скрипты. И так как у нас в проекте предусмотрено несколько однотипных объектов, удобнее использовать косвенные имена для привязки тегов к объекту.

1. Создадим теги для каждого объекта - State и Speed (для наглядности используем группировку):

 

clip0038

 

 

2. В данном случае нам нужны промежуточные теги для включения или отключения видимости объекта - Visible1, Visible2 и Visible3, создадим их:

 

visibletags

 

3. Создадим объект Мотор:

motorexample

 

 

Создадим пользовательское свойство - Number и установим ему значение "1", т.к. первый объект мы будем привязывать к тегу Visibility1:

 

motorpropertieswindow

complexudp

 

4. Закроем окно "Коллекции" и нажмем "ОК" в Окне свойств объекта, чтобы сохранить изменения. Теперь снова откроем Свойства объекта и настроим свойство Видимость: включим свойство, установим значение = 1, тип "Тег.PV==значение", привяжем тег путем указания косвенного имени:  Visible{Number}:

 

visibleproperty

visibletagchoose

 

5. Видимость будем задавать в зависимости от значений тегов для каждого объекта Мотор:

 

State

Speed

Видимость

0

Любая

Невидимый

1

0...500

Видимый

1

500...1000

Видимый

1

>1000

Невидимый

 

6. Теперь создадим скрипт объекта на языке ST с типом выполнения - OnDataChange:

 

stscriptforcomplexscript

 

Напишем скрипт:

 

visiblescript

После того как записали скрипт обязательно запустим его путем нажатия кнопки на панели инструментов: clip0048

 

7. Теперь привяжем скрипт к объекту - откроем свойства объекта, выберем вкладку "Основное" и в поле "Скрипты" заполним "Коллекцию":

 

clip0031

stcollection

 

Итак, у нас есть Мотор с настройкой свойства видимости по скрипту.

8. Теперь нам нужно продублировать созданный объект Мотор столько раз, сколько нужно в проекте, и в кажом вновь созданном объекте исправить значение пользовательского свойства Number на Листе свойств:

 

complexduplicate2

 

 

complexpropertysheet

 

9. Запустим имитацию, чтобы проверить настройки:

 

visiblescript1

 

Вы можете скачать проект из примера здесь.