четверг, 11 января 2018 г.

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

Ранее мы рассмотрели, как включить расширенный режим редактирования в "Конфигураторе СП300". Теперь попробуем разобраться, какие возможности он предоставляет.
В расширенном режиме редактирования появляется возможность рассматривать конфигуратор как среду визуального программирования, а каждый графический экран как своеобразную программу, содержащую:
  • управляющие конструкции - элементы, которые позволяют управлять порядком выполнения других элементов;
  • функциональные элементы - результат выполнения которых можно присваивать свойствам других элементов - управляющих, функциональных, визуальных;
  • визуальные элементы - результатом выполнения которых является их отображение на экране панели.
На самом деле оказывается, что стандартные графические элементы, доступные для использования в обычном режиме редактирования (текстовые поля ввода и отображения, различные кнопки и т.д.), также являются комбинацией вышеперечисленных элементов. При вызове диалоговых окон редактирования стандартных элементов происходит настройка связей между составляющими элементами, их добавление и удаление.
В результате, в расширенном режиме мы получаем возможность выполнения задач, которые либо были бы недоступны в обычном режиме, либо требовали бы использования макросов C, либо решение которых с помощью стандартных элементов было бы более громоздко.
Однако существуют также опасности при использовании данного режима:
  • есть ситуации, в которых конфигуратор аварийно завершает свою работу (вылетает). Например, это может произойти после редактирования стандартных комбинированных элементов. Конфигуратор ожидает наличия определённых элементов в определённых местах и наличия связей между определёнными элементами. Если удалить эти элементы или связи, то при вызове диалогового окна редактирования стандартного элемента конфигуратор скорее всего вылетит. Поэтому нужно не забывать почаще сохранять проект, чтобы не потерять результаты своей работы;
  • можно создать комбинированный элемент, который приведёт к зависанию программы панели. Это происходит, если не задать все необходимые ветви выпонения управляющих элементов. Поэтому нужно не забывать из задавать, а также тестировать все варианты выполнения создаваемых элементов.
Также нужно помнить, что данный режим разработчиками не документирован, практически все сведения о его работе получены опытным путём. Поэтому к ним нужно относится критически - вполне возможно, что выводы, сделанные по результатам экспериментов ошибочны.

Начнём знакомиться с расширенным режимом с изучения возможностей, которые он предоставляет для одиночного элемента.
Для этого добавим на экран прямоугольник. Щёлкнув по выделенному прямоугольнику правой кнопкой мыши выберем в контекстном меню пункт Расширенные. В результате увидим следующее окно:

Диалоговое окно расширенного режима
В этом окне мы видим выделенным наш прямоугольник в виде вершины дерева с именем 0_(0) и несколько кнопок, позволяющих менять его свойства:
  • кнопка Имя блока вызывает окно, позволяющее изменить имя прямоугольника. Это бывает полезно, например, при комбинировании однотипных элементов. Можно перед комбинированием задать им разные имена и затем не путаться, связывая их;
  • кнопка Unit Property вызывает окно свойств элемента. Оно точно такое же, как и вызываемое по двойному клику по элементу или с помощью пункта Свойства его контекстного меню. Единственное обнаруженное относительно полезное отличие заключается в том, что если окно свойств вызвать в расширенном режиме, то появляется возможность задать для элемента координаты, выводящие его частично или полностью за пределы экрана. Сделать такое в обычном режиме конфигуратор не позволяет. К сожалению, после того как мы установим координаты в расширенном режиме, любое редактирование свойств элемента в обычном режиме опять вернёт его в пределы экрана. Тем не менее иногда такая возможность может пригодиться.
Раскрыв дерево свойств прямоугольника увидим ещё одно поддерево с названием Self Property. Выделив его увидим, что кнопки, изменяющие свойства прямоугольника, пропали. С этой вершиной ничего сделать нельзя - это вершина, группирующая собственные свойства элемента. Большинство элементов экрана имеют свойства, доступные для манипуляций в расширенном режиме, и соответственно у всех них есть группа свойств с именем Self Property.
Раскрыв и эту группу добираемся наконец до свойств прямоугольника:
Свойства прямоугольника
Можно заметить, что имена свойств пострадали при локализации конфигуратора. Какими они были в английской версии программы (которая называется TouchWin) и их назначение можно посмотреть по ссылке.
Единственное действие доступное для несвязанных свойств одиночного элемента - это связывание их между собой с помощью кнопки Property Link.
Чтобы привязать одно свойство к другому, например, Ширину к Высоте:
  • выделяем привязываемое свойство (Ширина);
  • нажимаем кнопку Property Link. При этом вместо кнопки Property Link появляются кнопки Affirm Link и Cancel Link. На этом этапе мы можем отказаться от создания связи нажав кнопку Cancel Link;
  • выделяем свойство, к которому мы хотим привязаться (Высота);
  • нажимаем кнопку Affirm Link.
Изменения применятся после нажатия кнопки OK диалогового окна расширенного режима. Соответственно, при нажатии Отмена элемент останется в первоначальном виде.
После создания такой связи наш прямоугольник превращается в квадрат. Его ширину теперь произвольно изменять не получится до тех пор, пока созданная связь не будет разорвана. Ширина будет автоматически меняться при изменении высоты прямоугольника.
Открыв снова окно расширенных свойств и выделив свойство Ширина, мы увидим:
  • имя свойства Высота будет отображаться зелёным цветом. Таким образом можно узнать какое свойство к какому привязано. Щёлкаем последовательно по всем свойствам и смотрим, когда какое из имён свойств изменит цвет на зелёный;
  • для этого свойства доступно действие Delete Link с помощью соответствующей кнопки, нажатие которой приведёт к разрыву связи между свойствами:
    Связанные свойства
Мы можем выполнить привязку только к одному свойству (для привязанного свойства доступно только действие по разрыву связи). Однако мы можем привязать несколько разных свойств к одному и тому же свойству, например, к Высоте мы можем привязать ещё и Solid Color (после чего цвет заливки прямоугольника станет зависеть от его высоты). Также привязка к какому-либо свойству не запрещает этому свойству быть привязанным куда-то ещё, например, сейчас мы можем привязать Высоту к Координате по горизонтали. Однако не стоит создавать циклические связи (в нашем случае привязывать Высоту к Ширине) - это может привести к аварийному завершению конфигуратора.
Как уже упоминалось, некоторые связи между свойствами также редактируются диалоговыми окнами свойств элементов. В этом можно убедиться попытавшись создать одноцветный прямоугольник привязав Solid Color к Цвету рамки. Всё работает хорошо (при изменении цвета рамки изменяется и цвет заливки) до тех пор, пока мы не поменяем цвет заливки с помощью диалога свойств прямоугольника (или просто закроем этот диалог при активной вкладке Заполнение). При этом связь между Solid Color и Цветом рамки разрывается, в чём можно убедиться, открыв окно расширенных свойств и выделив свойство Solid Color - имя свойства Цвет рамки теперь зелёным не становится.

Итак, мы видим, что для одиночного элемента с помощью редактирования его свойств в расширенном режиме, можно добиться интересных эффектов. Но намного более полезные результаты можно получить, комбинируя в расширенном режиме элементы различных типов.

1 комментарий:

  1. ..Также нужно помнить, что данный режим разработчиками не документирован, практически все сведения о его работе получены опытным путём...
    Тут Вы не правы.
    Еще как документированы http://www.controlsysteam.hu/cst_doc/xinje/XINJE_CD2020/user%20manual/HMI/Touchwin/Advanced%20functions/
    В этой папке есть "Touchwin advanced user mode functions.pdf"
    Это и есть документация по расширенному режиму редактирования от разработчиков панели

    ОтветитьУдалить