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

ETraceSet.GetMinInIntervals

ETraceSet.GetMinInIntervals1

ETraceSet.GetMinInIntervals - данный блок находит объекты типа ETrace с указанным идентификатором в коллекции трейсов и лимитов ETraceSet, разделяет массив координат (X,Y) каждого трейса на заданное количество интервалов, выбирает из каждого интервала координату с минимальным значением Ymin и соответствующую ей координату Xmin. Для каждого трейса на выходе формируется объект типа ETrace, который содержит пары координат (Xmin, Ymin), количество данных пар соответствует заданному количеству интервалов. На выходе блока формируется массив объектов типа ETrace с минимальными координатами на заданном числе интервалов. Количество полученных объектов типа ETrace соответствует количеству данных объектов в коллекции трейсов и лимитов ETraceSet, которые имеют указанный идентификатор.

Свойства

Входной аргумент Тип аргумента Тип переменной Описание
ETraceSet Variable ETraceSet Объект типа ETraceSet
Tag Variable String Идентификатор объекта типа ETrace
SearchTagPart Variable Boolean Включает/выключает поиск объектов типа ETrace во входной переменной ETraceSet по условию частичного совпадения указанного идентификатора Tag и идентификаторов объектов типа ETrace
IntervalsCount Variable Int32 Количество интервалов
Scale Variable Scale Масштабирование по X, которое применяется при разделении на интервалы (логарифмическое/линейное)
UseLimits Variable Boolean При включении этой функции значение координаты Y сравнивается со значением лимита для текущего X (применяется лимит, который имеет идентификатор аналогичный указанному)
LimitsMergeCriteria Variable MergeCriteria Режим объединения лимитов с указанным идентификатором
Выходной аргумент Тип аргумента Тип переменной Описание
MinTracesArray Variable ETrace[] Массив объектов типа ETrace, содержащих минимальные значения координат (Xmin, Ymin)

Пример

Рассмотрим работу блока на примере простой программы, которая возвращает массив объектов типа ETrace, содержащих минимальные значения координат (Xmin, Ymin) из коллекции трейсов и лимитов ETraceSet .

ETraceSet.GetMinInIntervals2

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

ETrace – переменная, которая хранит объект типа ETrace.

ETraceTag – идентификатор, который будет применяться для обращения к объектам типа ETrace в коллекции трейсов и лимитов ETraceSet.

ETraceSet – переменная, которая хранит объект типа ETraceSet.

intervalsCount – Количество интервалов.

MinTracesArray – Массив объектов типа ETrace.

Xpoints – Массив координат X.

Ypoints – Массив координат Y.

ETraceSet.GetMinInIntervals3

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

ETrace20

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

ETrace21

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

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

Ввод данных -> Поле ввода;

Ввод данных -> Числовой ввод;

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

ETraceSet.GetMinInIntervals4

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

TraceSet: значение -> переменная ETraceSet;

Идентификатор: значение -> переменная ETraceTag.

Количество интервалов: значение -> переменная intervalsCount.

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

ETraceSet.GetMinInIntervals5

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

ETraceSet.GetMinInIntervals6

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

ETrace26

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

ETraceSet.GetMinInIntervals7

Блок Handler будет срабатывать по событию нажатия кнопки.

ETraceSet.GetMinInIntervals8

Следующий блок - CreateInstance. Данный блок создает новый объект типа ETraceSet, который не содержит никаких данных.

ETraceSet.GetTraceByIndex9

Далее используем блок "If - else" для построения цикла на 11 итераций. Значение переменной i вначале цикла равняется нулю и наращивается на 1 после выполнения каждой итерации. При выполнении условия i<=10 блок принимает значение "True", иначе работа блока завершается через выход "False".

ETraceSet.GetTraceByIndex10

При выполнении каждой итерации цикла будут выполняться следующий действия. Используем блок CreateInstance для создания нового объекта типа ETrace, который передадим в переменную ETrace, как показано на рисунке.

ETraceSet.GetTraceByIndex11

Зададим идентификатор созданного трейса с помощью блока ETrace.SetTag. В качестве идентификатора будем использовать текущее значение номера итерации i, преобразованное в строковый тип данных с помощью функции i.ToString().

ETraceSet.GetTraceByIndex12

Зададим имя созданного трейса с помощью блока ETrace.SetName. В качестве имени будем использовать текущее значение номера итерации i, преобразованное в строковый тип данных с помощью функции i.ToString().

ETraceSet.GetTraceByIndex13

Сформируем массив координат Y из 10 случайных значений c помощью блока RandomArray, передадим полученный массив в переменную Ypoints.

ETraceSet.GetMinInIntervals14

Добавим массив Xpoints с координатами X и массив Ypoints с координатами Y в качестве значений объекта типа ETrace с помощью блока ETrace.AddPoints.

ETraceSet.GetMinInIntervals15

Элементы массива Xpoints заданы в качестве начального значения, как показано на следующем рисунке.

ETraceSet.GetMinInIntervals16

Добавим созданный трейс, который хранится в переменной ETrace в массив ETracesArray с помощью блока AddArrayValue.

ETraceSet.GetMinInIntervals17

Нарастим значение i на 1 с помощью блока SetVariable и функции i=i+1.

ETraceSet.GetTraceByIndex15

По окончании созданного цикла (условие i>10) добавим все объекты типа ETrace из массива ETracesArray в коллекцию трейсов и лимитов ETraceSet с помощью блока ETraceSet.AddTraces.

ETraceSet.GetMinInIntervals18

Далее воспользуемся блоком ETraceSet.GetMinInIntervals, чтобы получить трейсы с минимальными значениями на заданном количестве интервалов, при нижеуказанных настройках выполняется анализ объектов ETrace в коллекции ETraceSet, идентификаторы которых полностью совпадает с заданным. Разделение на интервалы выполняется с линейным масштабированием по шкале значений X.

ETraceSet.GetMinInIntervals19

Посмотрим, как работает пример. Введем значение "4" в качестве идентификатора, количество интервалов равным "2". Значение переменной MinTracesArray после выполнения программы можно просмотреть через вкладку "Контекст". Видно, что для идентификатора "4" выходной массив содержит один объект типа ETrace. То есть программа нашла только один трейс в коллекции TraceSet c указанным идентификатором, разделила массив данных этого трейса на два интервала и выбрала из каждого интервала два минимальных значения Ymin, а также соответствующие им значения Xmin, передав их в сформированный объект ETrace.

ETraceSet.GetMinInIntervals20