<< Click to Display Table of Contents >> Navigation: Создание окон для клиента визуализации > Рекомендации по созданию окон > Массивы структур в окнах |
Проект предназначен для мониторинга участка трубопровода с 0 по 100 км. Через каждые 10 км на трубопроводе установлено оборудование, передающее в диспетчерскую следующие параметры: расход, давление, температуру, состояние задвижки, наличие или отсутствие аварии. В окне диспетчера каждый участок выглядит одинаково. Требуется найти наиболее оптимальное решение поставленной задачи.
Представим набор параметров каждого из участков в виде структуры. Для этого в библиотеке создадим структуру:
Зададим имя шкалы - Параметры_участка, и добавим необходимые поля:
Поле |
Тип |
Расход |
LREAL |
Давление |
LREAL |
Температура |
LREAL |
Состояние_задвижки |
BOOL |
Авария |
BOOL |
На основе ранее созданной структуры в библиотеке создадим массив:
Установим длину массива 10 и изменим имя массива:
Добавим в дерево объектов один параметр типа Параметры_участка с именем У 1 и один Параметр 1 - типа Трубопровод:
Теперь необходимо обеспечить присвоение данных из дерева система в объект. Допустим, что в примере данные для проекта поступают по протоколу Modbus TCP. Не будем здесь подробно описывать формирование дерева системы, а описание работы с протоколами изложено в разделе Получение и передача данных.
Параметры каналов свяжем с полями структуры параметра У 1:
Затем продублируем параметр У 1. Требуется сделать 9 копий. В появившемся диалоговом окне , пользуясь его инструментами, необходимо отредактировать путь к параметрам каналов в дереве системе:
Получим 10 параметров типа структура, поля которых имеют связи с параметрами каналов дерева системы:
Затем необходимо обеспечить передачу значений из параметров У 1-У 10 в Параметр 1. Проще всего это сделать, используя язык MasterST. Пример текста программы:
Добавим в объект Окно.
В окно вставляем элемент Стековая панель из категории Панели в палитре редактора HMI.
Настраиваем связь между Параметр 1 и свойством панели Источник данных:
Затем в стековую панель добавляем элемент Панель.
Наконец, в созданном элементе начинаем формировать вид участка, т.е. подготавливаем в стековой панели шаблон, который при отображении в клиенте будет размножен. В зависимости от ориентации стековой панели, элементы в режиме исполнения будут размножаться или слева направо или сверху вниз.
В панели можно использовать различные графические элементы, но при этом связи необходимо устанавливать только между свойствами элементов и параметрами Источника данных (доступны при отображении полного дерева):
Получим результат:
Где все элементы связаны с параметрами Источника данных Стековой панели. Например:
В зависимости от свойства стековой панели Ориентация в клиенте визуализации мы получим результат, в котором каждая строка или столбец будет отвечать за свой участок трубопровода: