До сих пор весь наш проект приложения состоял, по сути, из одной экранной формы — Flaps (панель Flap уже можно не рассматривать, она неактуальна, а Flap_ref — это шаблон).
Реальные «боевые» проекты содержат, как правило, (значительно) более одной мнемосхемы, отображающей всю картину, отдельные технологические участки, настройки, тренды, сигналы тревоги и т.п.
Давайте посмотрим, как WinCC OA позволяет перемещаться между экранами.
Давайте создадим в проекте еще одну панель и назовем ее «Тренды» (на будущее), сделаем ее размер сопоставимым с размером панели «Закрылки» и разместим на ней что-нибудь читабельное.
Например, надпись «Это тренды», разумеется.
Панель «Тенденции» Чтобы вызвать панель «Тренды» из панели «Закрылки», поместите ее на последнюю кнопку и назовите ее «Панели», для чего меняем имя объекта (Name) и метку кнопки.
Конечно, имя и ярлык — разные вещи; имя идентифицирует объект в проекте, а метка содержит текст, видимый оператору.
С помощью мастера настроим кнопку открытия новой панели.
Выберите кнопку, найдите событие Clicked и выберите рядом с событием Clicked для вызова мастера — Мастера свойств.
В мастере выберите «Функции панели» и нажмите «Далее».
Выберите «Открыть панель (в новом модуле)» и снова нажмите «Далее».
Задумчиво смотрим на следующее окно мастера
Посмотрим на параметры мастера: Файл панели - файл панели, которую мы будем показывать.
Выбрать (можно кнопкой справа, только там выбор файлов по умолчанию по расширению xml, не забудьте изменить на все файлы) файл Trends.pnl Имя панели — имя экземпляра панели.
Очень важный параметр! На этапе повторного использования графических объектов с помощью $-параметра мы убедились, что одну и ту же панель можно вызывать несколькими экземплярами.
В этом случае (при многократном использовании панели) каждый вызываемый экземпляр должен быть четко и однозначно идентифицирован.
Именно для этого и нужен этот параметр.
Обратите внимание, что за уникальностью имени экземпляра должен следить непосредственно разработчик; система не отслеживает «дубликаты» (два и более разных звонка с одинаковыми названиями панелей).
Наличие таких дубликатов в системе чревато весьма забавными чудесами, а точнее, непредсказуемым поведением окон.
Зададим в мастере название Trends. В эту панель никакие параметры не передаются (панель содержит одну единственную надпись), поэтому заполнять ее здесь не нужно.
Нажмите «Далее» и посмотрите следующие настройки.
По умолчанию экран откроется на дочерней панели.
Добавим еще один вариант: «Панель всегда сверху», установите этот флажок и нажмите «Готово».
Запустите панель закрылков и нажмите кнопку PANELS, появится окно трендов.
Открылось дочернее окно, но невозможно перейти на родительскую панель или что-либо щелкнуть на ней (из-за выбранного модального параметра).
Проверим следующий режим вызова, вернувшись к кнопке ПАНЕЛИ в мастере.
Давайте удалим модальный режим и проверим выполнение.
В этом случае родительское окно доступно, хотя оно перекрывается дочерним окном.
По крайней мере, вы можете нажать кнопки спуска родительского окна.
Открыт клапан 1 При этом, если закрыть родительское окно, закроется и дочернее окно — оно существует только совместно с родительским.
Выберем следующий режим открытия панели — Корневая панель в собственном модуле.
Давай проверим.
Прежде чем нажать кнопку
После нажатия кнопки
Панель полностью заменена: исчез Flaps (все его объекты стерты из оперативной памяти), и появилась панель Trends. Модуль остается прежним, в нашем случае модуль называется _QuickTest_ Следующий режим открывается в новом модуле
В этом случае создается новый модуль (его еще можно назвать контейнером), в котором, в свою очередь, открывается наша панель.
Если не указать имя нового модуля (оставить поле Имя модуля пустым), то этот вызов сводится к предыдущему — панель откроется в исходном модуле.
Вам также необходимо убедиться, что имя модуля уникально.
В рамках одного пользовательского интерфейса система позволяет получить доступ к любому графическому элементу.
Вам просто нужно знать его имя.
Полное имя объекта состоит из имени модуля, имени панели и имени графического объекта.
Пусть новый модуль будет называться просто «Модуль»
Нажмите «Готово» и проверьте.
В этом случае мы получаем два совершенно независимых окна.
Обратите внимание на названия модуля и панели каждого окна — всё совпадает. При закрытии исходного окна (_ Быстрый тест_ ) новое окно останется.
Теги: #Промышленное программирование #scada #siemens #simatic #wincc
-
Как Оптимизировать Mac — Мощное Руководство.
19 Oct, 24 -
Стек Dots: C++ И C#
19 Oct, 24 -
Нейронные Сети В Реальности
19 Oct, 24 -
Youtube Сошёл С Ума?
19 Oct, 24