Создание экранов АРМ

Проиллюстрируем создание системы автоматизации путем проектирования "от шаблонов", т.е. будем создавать информационную базу проекта – каналы по аргументам разрабатываемых шаблонов экранов и программ, дополняя основной подход методами автопостроения и связывания каналов в узлах проекта.

Воспользуемся пользовательской библиотекой компонентов. Для этого скопируем файл tmdevenv.tmul из поддиректории %TRACE MODE%\Lib в директорию %TRACE MODE%.

Откроем интегрированную систему разработки и с помощью щелчка ЛК по иконке  создадим новый проект. В качестве стиля разработки выберем Стандартный.

Перейдем в слой Библиотеки_компонентов, где в разделе Пользовательская откроем библиотеку Библиотека_1. Сохраненный в данной библиотеке объект Объект_1 содержит в своем слое Ресурсы необходимый для дальнейшей разработки  набор графических объектов – изображения клапанов, емкостей, двигателей и т.д.

В зависимости от редакции используемой интегрированной среды разработки – базовой или профессиональной, количество графических объектов в библиотеке различно.

Перенесем группы в слой Ресурсы текущего проекта с помощью механизма drag-and-drop и переименуем их как показано ниже.

Здесь же в слое Ресурсы создадим группу Картинки для помещения в нее текстур, которые будут применены в оформлении создаваемых графических экранов.

Создадим в группе Картинки новый компонент – Библиотека_Изображений#1.

Откроем двойным щелчком ЛК вновь созданную библиотеку для редактирования. Для ее наполнения воспользуемся иконкой  на панели инструментов. В открывшемся диалоге выбора файлов для импорта укажем поддиректорию …\Lib\Texture. Выберем все файлы и нажмем экранную кнопку Открыть.

Содержимое библиотеки Библиотека_Изображений#1 станет следующим:

Подобным описанному выше способу создадим в слое Ресурсы группу Анимация, в ней - библиотеку Библиотека_Видеоклипов#1. Наполним ее содержимым …\Lib\Animation.

Из всех представленных в библиотеке видеоклипов мы будем использовать только fluid_blue, остальные можно убрать с помощью иконки  на панели инструментов, предварительно выбрав видеоклип ЛК.

В зависимости от редакции используемой интегрированной среды разработки – базовой или профессиональной, количество доступных текстур и видеоклипов в библиотеке различно.

В качестве видеоклипов могут быть использованы практически любые имеющиеся файлы форматов avi или mng.

После проведения подготовительных мероприятий сохраним выполненную работу, нажав ЛК  и указав имя QS_Lesson_2.prj.

Перейдя в слой Шаблоны_экранов, создадим в нем компонент Экран#1.

На созданном экране будут отображаться технологические параметры участка термической обработки, с него же будем осуществлять формирование задания на поддержание рабочей температуры. Переименуем его в Участок_термообработки. Создадим также экраны для задания параметров ПДД-регулятора, участков хранения и дозирования. Переименуем их соответственно:

В соответствии с ТЗ на проектирование назначим аргументы шаблону экрана участка термообработки – щелчок ПК на созданном шаблоне экрана и выбор из выпадающего списка пункта Свойства, далее переход во вкладку Аргументы. Здесь и далее с помощью иконки  создаются необходимые аргументы, задаются их имена, тип, тип данных, значения по умолчанию, привязки, флаги и т.д.

Те аргументы, значения которых будут отображаться на экране, имеют тип IN, а те, что задаются с клавиатуры АРМ, отображаются на экране и пересылаются в конечном итоге в PC-based контроллер, имеют тип OUT. В процедуре автопостроения каналов от шаблонов автопривязка аргументов будет осуществляться соответственно к атрибутам Реальное и входное значение  каналов.

Закроем бланк свойств экрана щелчком ЛК на  . Для перехода к непосредственному созданию и редактированию содержимого экрана дважды нажмем на нем ЛК мыши. Зададим в качестве фона экрана текстуру metal_011. Для этого выберем в основном меню пункт Сервис, в нем – Параметры экрана. В открывшемся диалоговом окне укажем в качестве типа фона изображение, а из имеющихся в библиотеке текстур - metal_011.

После нажатия экранной кнопки Готово фон графического экрана будет изменен на указанный.

С помощью графических объектов (ГО), сохраненных в ресурсных библиотеках и вызываемых с помощью иконки  панели инструментов,

а также графических элементов (ГЭ) объемных труб  и текста  , создадим статическую часть экрана. Примерный вид представлен ниже.

Графические объекты размещаются с использованием метода drag-and-drop и допускают масштабирование. Для изменения размера ГО необходимо выделить его ЛК и с помощью позиционирования указателя мыши в узловые точки выполнить необходимые корректирующие действия:

Значения расхода теплоносителя и рабочей температуры будем отображать с помощью ГЭ Показывающий прибор  . Разместив их на экране, двойным щелчком ЛК откроем свойства левого ГЭ и зададим ему свойства:

Аналогичным образом поступим с правым ГЭ:

В нижней части экрана с помощью иконки  разместим ГЭ Тренд для вывода значений аргументов Температура_рабочая, Расход_теплоносителя и Задание_температуры. Основные свойства ГЭ оставим заданными по умолчанию, добавив заголовок Участок термообработки.

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

Для формирования задания регулятору разместим справа от ГЭ Тренд ГЭ Прямоугольник  , он будет служить подложкой для ГЭ Ползунок  с помощью которого будем задавать величину задания и отображать его же. Точную величину задания будем отображать в верхней части прямоугольника с помощью ГЭ Текст  .

Свойства ГЭ  будут:

Откажемся от использования рамки и заливки для данного ГЭ, задав ему следующие свойства:

Свойства ГЭ  назначим следующим образом:

также отказавшись от рамки и заливки.

В правом верхнем углу экрана разместим надпись – Участок термообработки.

Так как для АРМ будет разработано еще два экрана (Хранение и Дозирование), то для осуществления переходов между экранами необходимо предусмотреть соответствующие средства. В качестве них будем использовать ГЭ  .

Двойным щелчком ЛК на ГЭ  Хранение откроем его свойства, в разделе События  выделим ЛК пункт mousePressed (событие по нажатию ЛК на ГЭ) и по нажатию ПК добавим переход на экран:

В открывшемся пункте Jump to Screen по нажатию ЛК из списка выберем шаблон экрана Участок_Хранения:

Подобным образом поступим для организации перехода на экран участка дозирования.

Параметры ПДД-регулятора – Кп, Кд, Кдд и зону нечувствительности будем формировать с помощью всплывающего окна, открытие данного окна оформим также с помощью ГЭ  , который разместим в левой части экрана, привязку выполним как в описанных выше случаях.

Для отображения в левом верхнем углу графического экрана текущей даты и времени воспользуемся ГЭ Календарь  . Настройку ГЭ выполним следующим образом:

Таким образом, экран, представляющий на АРМ участок термической подготовки подготовлен и выглядит следующим образом:

Аргументы экрана Параметры_ПДД-регулятора зададим следующим образом:

Откроем экран на редактирование. Для задания экрану свойств выпадающего окна выберем в основном меню пункт Сервис, в нем – Параметры экрана. В открывшемся диалоговом окне зададим размеры экрана, фон, определим экран как всплывающее окно и укажем начальную позицию при первом вызове:

На данном экране разместим ГЭ Рамка  , переместим его на задний план с помощью иконки  на панели инструментов, затем в верхней части экрана с помощью ГЭ Текст  зададим заголовок экрана – Параметры ПДД-регулятора. Далее разместим ГЭ Кнопка  для посылки значений параметров и левее ее ГЭ Текст  для их отображения. Осуществим привязки ГЭ к аргументам экрана:

и

Затем выделим ЛК ГЭ  и воспользуемся инструментарием для тиражирования ГЭ:

В открывшемся диалоговом окне зададим параметры:

Отредактируем надписи и привязки созданных ГЭ, подобным образом поступим в отношении ГЭ Текст   . В итоге получим:

Аргументы для шаблона экрана Участок_Хранения будут следующие:

Аргументы Событие_Дверь, Событие_Вент и Событие_Пож предназначены для отображения и квитирования событий  с использованием ГЭ События  . Аргументы Слой_основной и Слой_тренд – для управления видимостью слоев экрана. В первом слое будет отображаться мнемосхема участка хранения, во втором – тренд значений параметров хранения. Флаг NP, выставленный для аргументов не позволит создавать соответствующие каналы при операциях автопостроения.

Зададим для экрана в качестве фона изображение – одну из текстур, имеющихся в библиотеке, с помощью ГО  и ГЭ  выполним статическую часть рисунка:

Определим с использованием ГЭ  вывод значений параметров хранения:

Выполним привязку ГЭ к аргументам шаблона экрана, установим формат вывода значений как, например, для аргумента Уровень:

Для отображения состояния дискретных сигналов открытия/закрытия двери в хранилище, включения/отключения вентиляции и срабатывания пожарной сигнализации применим совместно цветовую и текстовую индикацию, определяемую для ГЭ  . Так, для отображения текущего состояния двери в хранилище назначим ГЭ следующие свойства:

Подобным образом выполним настройку свойств для остальных ГЭ. Уровень продукта в емкости будем отображать с помощью гистограммы произвольной формы, которую создадим с помощью ГЭ Многоугольник  .

В свойствах для данного ГЭ определим динамическую заливку, привязав ее к соответствующему аргументу шаблона экрана, задав цвета фона и заполнения и указав границы:

Последовательно скопируем из шаблона экрана Участок_термообработки и перенесем на шаблон Участок_Хранения ГЭ для отображения текущей даты/времени и кнопки переходов по экранам. Для этого выделяем ЛК необходимый ГЭ (для выделения нескольких ГЭ можно воспользоваться нажатием и удержанием клавиши Ctrl либо выделить мышью область при нажатой ЛК) и используем иконку  на панели инструментов. Для вставки -  . Можно применять и стандартные комбинации клавиш для работы с буфером обмена: Ctrl+C и Ctrl+V. После вставки ГЭ необходимо произвести их перепривязку к аргументам текущего шаблона экрана.

В нижней части экрана разместим ГЭ События  , выделим его ЛК и отцентрируем горизонтально с помощью соответствующего пункта меню:

Основные свойства ГЭ  оставим без изменения, во вкладке Привязки определим следующие привязки к аргументам шаблона экрана:

Таким образом, текущий экран будет выглядеть как:

Для вывода на тренде текущих значений параметров хранения создадим дополнительный графический слой для шаблона экрана Участок_Хранения. Через пункт Вид основного меню откроем окно графических слоев:

В окне слоев экрана существующий слой с именем Слой привяжем к аргументу шаблона Слой_основной. С помощью  создадим новый слой, переименуем его в Тренд и привяжем к аргументу Слой_тренд.

Разместим в данном слое (при этом в окне слоев он должен быть выделен ЛК) ГЭ Тренд  и Кнопка  . Для тренда определим основные свойства как:

и зададим семь кривых:

для которых укажем привязки к соответствующим аргументам, цвет и толщину линий, пределы и заголовки для их идентификации на ГЭ.

Свойство События для размещенного ниже ГЭ   Возврат определим таким образом, что при нажатии на нем ЛК в аргументы шаблона экрана, для которых определены привязки к графическим слоям, осуществлялись прямые посылки. Значения, посылаемые в данные аргументы, управляют видимостью слоев, 0 – слой отображается, 1 (любое значение, отличное от 0) – нет:

ГЭ Календарь для вывода текущей даты/времени и ГЭ Текст с названием участка копируются в слой Тренд из слоя Слой. После выполнения указанных операций слой Тренд шаблона экрана Участок_Хранения будет выглядеть как:

Для перехода к просмотру значений параметров хранения на тренде, размещенном в слое Тренд, в слое Слой определим свойства ГЭ  со статической надписью Параметры хранения следующим образом:

Для того, чтобы при запуске проекта в реальном времени были возможны операции со слоями, перед сохранением проекта на диск все слои должны быть отмечены галочками в крайней левой позиции окна слоев экрана.

Для шаблона экрана Участок_Дозирования аргументы зададим как:

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

Видеоклип, изображающий поток продукта привязан к аргументу экрана следующим образом:

Пояснения требует и ГЭ  Задание объема. По нажатию на нем ЛК будет осуществляться посылка значений в два аргумента экрана:

Первое – собственно для задания величины отпускаемого объема продукта, второе – для сброса накопленной в контроллере величины объема по предыдущему циклу розлива. По нажатию ЛК на ГЭ ОТПУСТИТЬ ПРОДУКТ будет посылаться 1 в соответствующий аргумент экрана, в момент, когда заданный объем продукта будет отпущен, контроллер сбросит атрибут Входное значение канала в АРМ, связанный с аргументом экрана Старт_Стоп в 0.

Сохраним выполненную работу, нажав ЛК  . Таким образом, графическая часть проекта для АРМ выполнена и настал черед разработки математического обеспечения нашего проекта – шаблонов программ.