Перейти к содержанию

ELimits

ELimit01

Тип ELimits разработан для записи, хранения, отображения и применения предельных значений к измерительным данным. ELimits – это массив точек, каждая строка содержит три столбца со значениями X, Ymin, Ymax, где X — это значение по оси абсциссс, Ymin — минимальное значение предела для связанного значения X, а Ymax — максимальное значение предела для связанного значения X. Этот тип данных может применяться для ввода допуска измеряемой величины при выполнении калибровки и измерений, нормирования предельных значений при проведении испытаний на электромагнитную совместимость, а также при решении других аналогичных задач. Проще говоря ELimits – это инструмент, который обеспечивает возможность нормирования и сравнения числового значения (результата измерения) с установленным пределом.

Существует отдельная группа инструментов для работы с типом ELimits. Найти их можно в соответствующей категории

Свойства

ELimits02

Name — название лимита. Это название отображается на подписи к точкам графика при наведении курсора.

Tag — идентификатор лимита. Идентификатор (ключевое обозначение) обеспечивает возможность посика необходимого лимита в множестве (коллекции) объектов данного типа с целью выполнения дальнейших манипуляций.

Название по X — наименование горизонтальной оси (ось X).

Название по Y — наименование вертикальной оси (ось Y).

Шкала Х — настройка отображения данных по оси X в линейном либо логарифмическом масштабе.

Функция Х — настройка изменения лимита в зависимости от X в линейном либо логарифмическом масштабе.

Цвет — настройка цвет графика.

Маркеры — настройка отображения маркеров для каждой точки данных на графике.

В нижней части таблицы с данными расположены следующие кнопки:

Add — добавить новую точку в таблицу лимита.

Remove — удалить выбранную точку из таблицы лимита.

Clear All — удалить все точки из таблицы лимита (очистка лимита).

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

Пример

Рассмотрим выполнение базовых операций с типом ELimits на примере.

ELimits03

В представленном примере реализованы следующие функции: заполнение лимита заданным количеством случайных значений Ymin и Ymax с равномерным смещением по оси X; очистка данных лимита; добавление в лимит значений (X,Ymin,Ymax); удаление точки лимита по заданному индексу; сортировка лимита по возрастанию значений X. Результаты выводятся на график с прямоугольной системе координат. В условиях реальных испытаний значения лимита могут быть введены вручную или загружены из текстовых файлов.

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

ELimits04

ELimit – переменная типа ELimits, над которой мы будем выполнять различные манипуляции. pointIndex – индекс точки в трейсе.

X – значение величины X.

Ymin – минимальное значение лимита для связанного X.

Ymax – максимальное значение лимита для связанного X.

pointsNum – количество точек.

Xpoints – массив точек X.

YminPoints – массив минимальных значений лимита Ymin.

YmaxPoints – массив максимальных значений лимита Ymax.

delay – значение задержки в миллисекундах.

enableELimits – переменная типа Boolean.

  1. Создадим интерфейс пользователя. Нажмем правой кнопкой по заголовку программы и выберем пункт меню «Добавить новый элемент».

ETrace20

Выберем элемент «Панель управления» и введем имя элемента. Нажмем кнопку «Создать»

ETrace21

Добавим на панель управления следующие элементы:

Пользовательские -> Пользовательский тип;

Ввод данных -> Числовой ввод (6 элементов);

Интерактивные элементы -> Кнопка (5 элементов);

Визуализация данных -> Декартова диаграмма.

ELimits22

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

Лимит: значение -> переменная ELimit;

Значение X: значение -> переменная X;

Значение Ymin: значение -> переменная Ymin;

Значение Ymax: значение -> переменная Ymax;

Количество точек: значение -> переменная pointsNum;

Задержка: значение -> delay;

Индекс точки: значение -> pointIndex;

Пример привязки элемента панели управления «Значение X» к переменной Х показан на следующем рисунке.

ETrace23

Включим событие «Click» и введем имя в свойствах каждой кнопки.

ETrace24

Нажмем правой кнопкой мыши по графику и выберем пункт меню «Настройка». Выполним настройку графика, как показано на следующем рисунке.

ELimits06

Перейдем на холст выполняемой программы. Действия программы будут происходить по нажатию пользователем на соответствующие кнопки. Для этого запуск программы должен начинаться с отображения дашборда, также создадим новый объект лимита. Добавьте блок «ShowDashboard» и выберите созданную панель управления в меню настройки:

ETrace26

Аналогичным образом добавим блок «CreateInstance», укажем переменную «ELimit» в качестве выходной переменной.

Свяжем стартовый узел программы с добавленными блоками, как показано на рисунке.

ELimits07

Для обработки события нажатия каждой кнопки необходимо добавить на холст пять блоков «Handler». Назначим события в свойствах каждого блока «Handler». Пример назначения обработки события нажатия кнопки очистки лимита в свойствах блока «Handler» показан на следующем рисунке.

ELimits08

Выполним настройку блоков «Handler» для оставшихся четырех кнопок аналогичным образом. Каждый блок обработки события свяжем с программным алгоритмом, обеспечивающим соответствующие манипуляции с переменной ELimit. Добавьте на холст блоки ELimits.Clear, ELimits.AddPoint, ELimits.RemovePoint, ELimits.SortByX. В качестве входной переменной ELimits во всех блоках укажите переменную «ELimit». В блоках, которые требует передачи индекса точки «Index» укажите переменную «pointIndex».

Выполнение манипуляций с лимитом завершается обновлением графика на панели управления. Для этого применяется блок ELimits.GetPoints, который передает точки указанного лимита в три массива. Вы можете передать как все точки, так и указать начальный индекс, а также количество точек, которые необходимо передать в массив. В нашем случае данные передаются в массивы Xpoints, YminPoints и YmaxPoints, которые также являются источником значений X, Ymin и Ymax графика на панели управления.

ELimits09

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

ETrace30

Код программы для четырех операций с трейсом выглядит следующим образом:

ELimits10

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

ELimits11

Значение из поля числового ввода «Количество точек» будет передаваться в переменную pointsNum, значение из поля «Задержка, мс» - в переменную delay.

Для кнопки «Добавить точки» включено событие «Click», сделаем кнопку недоступной для нажатия, пока идёт построение лимита. Для этого привяжем свойство активности к переменной «enabledELimits».

ELimits12

Вернёмся на холст программы.

В блоке Handler выберем созданное событие.

ELimits13

В блоке SetVariable обнулим значения по X и сделаем кнопку Старт недоступной для клика.

ELimits14

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

ELimits15

В цикле произведём заполнение ELimit. Условие зададим в блоке If-Else с помощью следующего Expression

X<pointsNum,

где «pointsNum» - это количество точек, введённое пользователем на панели управления.

В блоке Random сгенерируем случайное значение от 1 до 10 и запишем его в переменную «Y».

ETrace37 Далее в блоке SetVariable добавим допуск в 2 единицы к значению Ymin, чтобы получить значение Ymax. Следующим блоком идёт ELimits.AddPoint. Тут мы добавим текущие значения «X», «Ymin» и «Ymax» в переменную ELimit.

ELimits16

Затем, увеличим значение X в блоке SetVariable.

ETrace39

И добавим задержку в блоке Delay. Желаемое время задержки вводится пользователем в миллисекундах (мс) в соответствующее поле на панели управления.

ETrace40 Обновим данные на графике и зациклим алгоритм.

После того как условие в блоке If-Else перестанет выполняться и лимит заполнится, необходимо сделать кнопку 'Старт' снова доступной для клика. Для этого протянем связь из выхода False блока If-Else до блока SetVariable и установим там значение True для переменной enabledELimits.

ELimits17

Создание программы завершено. Можно запускать проект и смотреть, что получилось.

ELimits18 ELimits19

Вы также можете загружать точки лимита из текстового файла. Нажмите кнопку «Загрузить из файла», чтобы перейти в меню загрузки точек лимита.

ELimits20

Укажите путь к файлу в меню «Имя файла». В поле «Формат файла» доступен только текстовый формат. Выберите разделитель столбцов, который используется в файле «Табуляция» либо «Запятая». Укажите начальную строку в поле «Начальная строка», считывание данных начнется с указанной строки. Выберите десятичный разделитель в меню «Десятичный разделитель»: «Запятая» либо «Точка». Нажмите кнопку «Читать файл», в случае успешного выполнения операции считанные данные отображаются в окне предварительного просмотра. Нажмите кнопку «ОК» для завершения операции. Пример окна чтения данных из файла, а также содержимое текстового файла представлены на вышеприведенном рисунке.