среда, 31 января 2018 г.

Панели оператора СП307 / СП310. Разбираемся с расширенным режимом. Привязка свойства к элементу

Ранее мы уже познакомились с одним из способов комбинирования элементов - вставкой. Другим способом комбинирования является привязка свойства элемента к результату выполнения какого-либо другого функционального элемента.
Функциональными элементами мы называем невизуальные элементы, выполняющие какую-нибудь полезную функцию и не управляющие выполнением других элементов. Большинство функциональных элементов при выполнении возвращают то или иное значение, к которому может быть привязано свойство другого элемента. Тип элемента, свойство которого привязывается, при этом не важен, это может быть, как другой функциональный элемент, что позволяет, например, организовывать цепочку вычислений, так и визуальный или управляющий элемент.
Начнём знакомиться с комбинированием привязыванием свойства к элементу, создав облегчённый аналог стандартного Цифрового дисплея. Для экспериментирования, чтобы не быть зависимыми от наличия контроллера, значение будем отображать из внутренних регистров панели.
Нам понадобятся элементы READ и Текст:
Элементы Текст и  READ

Элемент READ - это функциональный элемент, которым мы будем читать значение с плавающей точкой из регистров PSW256, PSW257. Для этого настроим элемент READ следующим образом с помощью окна свойств, вызываемого по двойному щелчку мыши:
Настройка элемента READ
Элемент Текст - это визуальный элемент, которым мы будем отображать прочитанное элементом READ значение. Настраиваем Текст следующим образом:
Настройка элемента Текст
Теперь пришло время объединить эти элементы:
  • выделяем оба элемента;
  • с помощью контекстного меню, вызываемого правой кнопкой мыши, открываем окно свойств расширенного режима:
  • раскрываем элемент Текст и среди его свойств в списке Self Property находим и выделяем свойство Содержание. Чтобы что-нибудь отобразить с помощью элемента Текст именно этому свойству нужно присваивать значение:
  • нажимаем появившуюся кнопку Property Contain;
  • выделяем функциональный элемент, к результату выполнения которого мы хотим привязать выделенное ранее свойство. Сейчас это элемент READ:
  • нажимаем ставшую активной кнопку Affirm Contain.
В результате у элемента Текст появился список Contain Unit, который содержит элемент READ, привязанный к свойству Содержание элемента Текст. Элемент после привязки к нему свойства становится частью привязываемого элемента - больше к READ привязать другие свойства не получится.
В наличии связи между свойством и элементом можно убедиться, выделив свойство Содержание - после выделения цвет элемента READ изменяется на оранжевый:
Индикация связи элемента READ и свойства Содержание
Это похоже на индикацию связи между свойствами элемента, отличие только в цвете - наличие связи между свойствами индицируется зелёным цветом.
Функциональный элемент, к которому привязано свойство, "поглощается" элементом, свойство которого привязывается - он перестаёт отображаться на экране конфигуратора и отредактировать его обычным способом становится невозможно. Однако его можно отредактировать в окне свойств расширенного режима. Для вызова окна редактирования свойств "поглощённого" элемента (READ), находим его в списке Contain Unit "поглотившего" элемента (Текст), выделяем и нажимаем появившуюся кнопку Unit Property.
Чтобы убедиться в работоспособности получившегося комбинированного элемента, добавим на экран панели стандартный Цифровой ввод, настроенный на ввод значений с плавающей точкой по адресу PSW256. После загрузки проекта в панель или эмулятор, вводимые с помощью Цифрового ввода значения будут отображаться созданным нами элементом. Готовый проект можно скачать по ссылке:
Скриншот демонстрационного проекта
Связь между свойством и элементом также может быть в случае необходимости разорвана. Для этого есть два способа:
  • выделяем свойство Содержание и нажимаем появившуюся кнопку Delete Contain;
  • выделяем элемент READ и нажимаем появившуюся кнопку Delete Unit.

Два способа разорвать связь между элементами
К сожалению, на данный момент из-за внутренних ошибок в конфигураторе после разрыва связи между свойством и элементом при немедленной попытке повторного использования элемента или свойства могут выдаваться сообщения об ошибке, не позволяющие выполнять задуманные действия. В этом случае достаточно просто закрыть окно свойств расширенного режима кнопкой OK и затем открыть его заново. Все задействованные элементы при этом остаются выделенными - повторно их выделять, к счастью, не придётся.
Созданный нами элемент частично повторяет стандартный элемент Цифровой дисплей. В этом можно убедиться изучив внутреннее устройство Цифрового дисплея:
Цифровой дисплей в расширенном режиме
Немного с ним разобравшись, можно прийти к выводу, что Цифровой дисплей представляет собой по сути Группу из двух элементов:

  • подложки, которая отрисовывается с помощью элементов скрытых на рисунке выше внутри элемента IF0_(1);
  • элемента Текст, устроенного точно так же, как и созданный нами только что.

Комментариев нет:

Отправить комментарий