Массивы структур в окнах

<< Click to Display Table of Contents >>

Navigation:  Создание окон для клиента визуализации > Рекомендации по созданию окон >

Массивы структур в окнах

Постановка задачи

Проект предназначен для мониторинга участка трубопровода с 0 по 100 км. Через каждые 10 км на трубопроводе установлено оборудование, передающее в диспетчерскую  следующие параметры: расход, давление, температуру, состояние задвижки, наличие или отсутствие аварии. В окне диспетчера каждый участок выглядит одинаково. Требуется найти наиболее оптимальное решение поставленной задачи.

Формирование библиотечных элементов

Создание структуры

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

massiv_str_v_oknah

Зададим имя шкалы - Параметры_участка, и добавим необходимые поля:

massiv_str_v_oknah_1

Поле

Тип

Расход

LREAL

Давление

LREAL

Температура

LREAL

Состояние_задвижки

BOOL

Авария

BOOL

Создание массива структур

На основе ранее созданной структуры в библиотеке создадим массив:

massiv_str_v_oknah_2

Установим длину массива 10 и изменим имя массива:

massiv_str_v_oknah_3

Создание дерева объектов

Добавим в дерево объектов один параметр типа Параметры_участка с именем У 1 и один Параметр 1 - типа Трубопровод:

massiv_str_v_oknah_4

Теперь необходимо обеспечить присвоение данных из дерева система в объект. Допустим, что в примере данные для проекта поступают по протоколу Modbus TCP.  Не будем здесь подробно описывать формирование дерева системы, а описание работы с протоколами изложено в разделе Получение и передача данных.

Параметры каналов свяжем с полями структуры параметра У 1:

massiv_str_v_oknah_5

Затем продублируем параметр У 1. Требуется сделать 9 копий. В появившемся диалоговом окне , пользуясь его инструментами, необходимо отредактировать путь к параметрам каналов в дереве системе:

massiv_str_v_oknah_6

Получим 10 параметров типа структура, поля которых имеют связи с параметрами каналов дерева системы:

massiv_str_v_oknah_7

Затем необходимо обеспечить передачу значений из параметров У 1-У 10 в Параметр 1. Проще всего это сделать, используя язык MasterST. Пример текста программы:

massiv_str_v_oknah_8

Создание окна

Добавим в объект Окно.

В окно вставляем элемент Стековая панель из категории Панели в палитре редактора HMI.

Настраиваем связь между Параметр 1 и свойством панели Источник данных:

massiv_str_v_oknah_9

Затем в стековую панель добавляем элемент Панель.

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

В панели можно использовать различные графические элементы, но при этом связи необходимо устанавливать только между свойствами элементов и параметрами Источника данных (доступны при отображении полного дерева):  

massiv_str_v_oknah_10

Получим результат:

massiv_str_v_oknah_11

Где все элементы связаны с параметрами Источника данных Стековой панели. Например:

massiv_str_v_oknah_12

В зависимости от свойства стековой панели Ориентация в клиенте визуализации мы получим результат, в котором каждая строка или столбец будет отвечать за свой участок трубопровода:

massiv_str_v_oknah_13