62
Тема: Тема: LabVIEW – LabVIEW – среда среда разработки виртуальных разработки виртуальных приборов приборов Лектор: доцент каф. ОФ Склярова Елена Александровна

Лектор: доцент каф. ОФ Склярова Елена Александровна

Embed Size (px)

DESCRIPTION

Лектор: доцент каф. ОФ Склярова Елена Александровна. Тема: LabVIEW – среда разработки виртуальных приборов. Строковые функции. Строки представляют собой последовательности отображаемых и неотображаемых символов в стандарте ASCII. - PowerPoint PPT Presentation

Citation preview

Page 1: Лектор: доцент каф. ОФ Склярова Елена Александровна

Тема: Тема: LabVIEW – LabVIEW – среда среда разработки разработки виртуальных прибороввиртуальных приборов

Лектор: доцент каф. ОФСклярова Елена Александровна

Page 2: Лектор: доцент каф. ОФ Склярова Елена Александровна

Строковые функцииСтроковые функции

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

Page 3: Лектор: доцент каф. ОФ Склярова Елена Александровна

СтрокиСтроки

Строка (string) - это последовательность отображаемых и служебных ASCII символов. Строки используются для самых разных целей, как правило - для создания текстовых сообщений, в различных диалоговых окнах, для сохранения данных в файл и т.п. На лицевой панели строки отображаются в виде таблиц (tables), текстовых полей (text entry boxes), и меток (labels).

Строковые регуляторы и индикаторы находятся в палитрах Controls>>Text Controls и Controls>>Text Indicators соответственно. Естественно, можно менять их форму и размеры, а так же (чего нет у числовых), добавить полосу прокрутки - для этого щелкнуть правой кнопкой мыши и выбрать в меню Visible Items>>Scrollbar.

Page 4: Лектор: доцент каф. ОФ Склярова Елена Александровна

СтрокиСтрокиМожно выбрать один из четырех способов отображения

текстовых данных (в контекстном меню, по правому щелчку мыши):

Normal Display - в этом режиме строка отображается "как есть", отображаются только печатаемые символы, непечатаемые не отображаются (или отображаются в виде квадратиков). Пример: There are four display types. is a backslash.

'' Codes Display - в этом режиме для всех непечатаемых символов отображается их "слэш-код"

(\n - это, к пример, код перехода на новую строку). Пример:  There\sare\sfour\sdisplay\stypes.\n\\\sis\sa\sbackslash

Password Display - ну, тут все просто - все символы отображаются в виде звездочек: *****************************

Hex Display - в этом режиме вместо символов показывается их ASCII код в шестнадцатеричном виде: 5468 6572 6520 6172 6520 666F 7572 2064 6973 706C 6179 2074 7970 6573 2E0A 5C20 6973 2061 2062 6163 6B73 6C61 7368 2E.

Page 5: Лектор: доцент каф. ОФ Склярова Елена Александровна

ТаблицыТаблицы

Состоит из следующих элементов: 1 - текущая ячейка (определяется индексами, обозначается синим уголком). 2 - заголовки столбцов. 3,4 - полосы прокрутки. 5 - заголовки строк. 6,7 - индексы (для строк и столбцов, обозначают текущую ячейку).

Page 6: Лектор: доцент каф. ОФ Склярова Елена Александровна

Строковые функцииСтроковые функции

Page 7: Лектор: доцент каф. ОФ Склярова Елена Александровна

Строковые функцииСтроковые функции

Page 8: Лектор: доцент каф. ОФ Склярова Елена Александровна

Строковые функцииСтроковые функции

Функция возвращает число символов (байтов) в строке. На вход строка (string) может быть подана строка, кластер строк или массив кластеров строк.

Функция объединяет входные строки и одномерные массивы строк в единственную выходную строку.

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

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

Функция удаляет часть строки и заменяет удаленную часть строки содержимым подстроки.

Page 9: Лектор: доцент каф. ОФ Склярова Елена Александровна

Строковые функцииСтроковые функции

Page 10: Лектор: доцент каф. ОФ Склярова Елена Александровна

Функции для работы со строками: Их довольно много разных, и расположены

они все в палитре Functions>>All Functions>>String.  Рассмотрим несколько для примера:String Length - возвращает длину строки (количество символов в строке).Concatenate Strings - объединение строк, делает из нескольких поданных на вход строк или массива строк одну большую строку. Чтобы изменить количество входных терминалов можно просто растянуть функцию за границу, либо щелкнуть правой кнопкой мыши и выбрать "Add Input" в контекстном меню.String Subset - возвращает подстроку, начиная с символа с номером offset (нумерация начинается с нуля) и длиной length.Match Pattern - осуществляет поиск в строке по шаблону (регулярное выражение), начиная с символа offset и выдает результат поиска в виде трех подстрок - само совпадение с шаблоном, строка до, и строка после (before substring, match substring , after substring).

Строковые функцииСтроковые функции

Page 11: Лектор: доцент каф. ОФ Склярова Елена Александровна

Преобразование чисел в строку, используя  Build Text Express VI

Подпрограмма Build Text, расположенная в палитре Functions>>Output, позволяет осуществить конкатенацию  (слияние) строк, по ходу дела преобразуя числа в строки, если это нужно.

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

Строковые функцииСтроковые функции

Page 12: Лектор: доцент каф. ОФ Склярова Елена Александровна

Как видно, все довольно просто. Вводим текст шаблона, в котором с помощью %% выделяем переменные (вместо имени переменной будет подставлено ее значение).

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

Строковые функцииСтроковые функции

Page 13: Лектор: доцент каф. ОФ Склярова Елена Александровна

Преобразование строка->число Для осуществления обратного

преобразования существует специальная функция - Scan From String.

Она осуществляет поиск в строке в соответствии с заданным шаблоном, и выдает результат поиска в виде числа. Естественно, для того чтобы поиск был успешным, в строке должны содержаться нужные символы - а именно, числа 0-9, +, -, e, E, и

период (.).Пример:

Строковые функцииСтроковые функции

Page 14: Лектор: доцент каф. ОФ Склярова Елена Александровна

Здесь в результате поиска будет найдено число 1.28E+2, что, если перевести в человеческий вид, равно 128.

%f - это тот самый формат, что соответствует числам с плавающей точкой.

Чтобы этот формат изменить, можно щелкнуть правой кнопкой мыши по функции, и выбрать в контекстном меню "Edit Scan String". Появится окно, в котором можно будет задать нужные параметры и получить строку для нужного формата:

Строковые функцииСтроковые функции

Page 15: Лектор: доцент каф. ОФ Склярова Елена Александровна

Перевод строки в массив с заданными параметрами (5 знаков впереди, 3 знака после запятой)

ПримерыПримеры

Page 16: Лектор: доцент каф. ОФ Склярова Елена Александровна

Считывание из файла с 3мя знаками с преобразованием в массив

ПримерыПримеры

Page 17: Лектор: доцент каф. ОФ Склярова Елена Александровна

Поэлементная запись данных в строку

ПримерыПримеры

Page 18: Лектор: доцент каф. ОФ Склярова Елена Александровна

ПримерыПримеры

Page 19: Лектор: доцент каф. ОФ Склярова Елена Александровна

ПримерыПримеры

Page 20: Лектор: доцент каф. ОФ Склярова Елена Александровна

ПримерыПримеры

Page 21: Лектор: доцент каф. ОФ Склярова Елена Александровна

ПримерыПримеры

Page 22: Лектор: доцент каф. ОФ Склярова Елена Александровна

ПримерыПримеры

Page 23: Лектор: доцент каф. ОФ Склярова Елена Александровна

  К числу простых скалярных типов данных относятся:

вещественные числа (оранжевые терминалы и провода) повышенной точности, двойной точности, одинарной точности – в LabVIEW обозначаются соответственно EXT, DBL, SGL;

целые числа со знаком (синие терминалы и провода) 32,16- и 8-разрядные - соответственно I32, I16, I8;

неотрицательные целые числа без знака (синие терминалы и провода) 32-,16- и 8-разрядные - соответственно U32, U16, U8;

Типы данных в LabVIEW

Page 24: Лектор: доцент каф. ОФ Склярова Елена Александровна

       Массив – пронумерованный, непрерывный, неограниченный набор однотипных данных. Каждый элемент массива имеет набор индексов, соответствующий размерности массива: одномерный – 1 индекс, двумерный – 2 индекса и т.д.

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

В LabVIEW элементы массива нумеруются по строкам от нуля.

МассивыМассивы (array) (array)

Page 25: Лектор: доцент каф. ОФ Склярова Елена Александровна

     Array Size - - возвращает число элементов в массиве. Если массив многомерный, то результатом выполнения функции будет массив, число элементов в котором равно размерности. Например, результатом применения этой функции к следующему одномерному массиву [1,6,5,3,4] будет число 5.

Initialize Array - - создает массив нужной размерности с нужным числом элементов в каждой размерности и заполняет его значениями, определяемыми терминалом element. Чтобы добавить измерение, нужно "растянуть" кубик функции.

Array Subset - - возвращает часть массива (подмассив элементов), начиная с некого (определяется терминалом index) и длиной, определяемой терминалом length. Например, если применить эту функцию к массиву [1,6,5,3,4] с аргументами index=1 и length=2, результатом будет массив [6,5].

Build Array - - с помощью этой функции можно добавить элементы в массив, или построить из нескольких массивов массив большей размерности. Кубик можно растягивать. Для того, чтобы при соединении двух массивов получить массив той же размерности, нужно щелкнуть правой кнопкой мыши на функции и в контекстном меню выбрать "Concatenate Inputs".

Index Array - - возвращает элемент или подмассив массива с указанным номером (index). Пример: для нашего массива [1,6,5,3,4] эта функция с аргументом 2 вернет число 5.

МассивыМассивы

Page 26: Лектор: доцент каф. ОФ Склярова Елена Александровна

КластерыКластеры

Кроме массивов, в LabVIEW есть Кроме массивов, в LabVIEW есть кластеры. кластеры.

От массивов они отличаются тем, что От массивов они отличаются тем, что кластер - это объединение элементов кластер - это объединение элементов разных типов (как пучок проводов в разных типов (как пучок проводов в телефонном кабеле). Аналогом кластеров в телефонном кабеле). Аналогом кластеров в обычных текстовых языках обычных текстовых языках программирования служат структуры. программирования служат структуры. Кластеры удобно использовать для Кластеры удобно использовать для уменьшения количества связей на уменьшения количества связей на диаграмме. Или для уменьшения диаграмме. Или для уменьшения количества терминалов у SubVI. количества терминалов у SubVI. Максимальное количество терминалов, Максимальное количество терминалов, которые можно привязать к элементам которые можно привязать к элементам передней панели SubVI равно 28. Поэтому, передней панели SubVI равно 28. Поэтому, если число индикаторов и регуляторов если число индикаторов и регуляторов превышает это значение, то не остается превышает это значение, то не остается ничего другого, как объединить часть ничего другого, как объединить часть элементов в кластер:) элементов в кластер:)

Page 27: Лектор: доцент каф. ОФ Склярова Елена Александровна

Чтобы объединить несколько индикаторов или регуляторов в кластер, нужно выбрать в панели Controls>>All Controls>>Array & Cluster инструмент cluster, поместить его на лицевую панель, и затем внутрь рамки поместить нужные индикаторы/регуляторы.

Так же можно сделать кластерную константу (для этого из палитры Cluster выбрать cluster constant и поместить на блок-схему, потом перетащить внутрь нужные элементы). Если нужна константа с теми же элементами, что и на передней панели - то щелкаем на ней правой кнопкой мыши и выбираем "Create>>Constant". Кстати, это работает не только с кластерами.

КластерыКластеры

Page 28: Лектор: доцент каф. ОФ Склярова Елена Александровна

Порядковые номера элементов кластера.Элементы кластера имеют порядковый

номер, связанные с их позицией внутри оболочки кластера. Первый объект, помещенный внутрь кластера имеет номер 1, второй - 2 и так далее. При удалении/добавлении элементов происходит автоматическая смена номеров. Порядок элементов определяет то, в какой последовательности будут идти выходы для этих элементов в функциях Bundle и Unbundle. Посмотреть порядок и изменить его можно, щелкнув правой кнопкой мыши по границе кластера, и выбрав в контекстном меню " Reorder Controls In Cluster".

КластерыКластеры

Page 29: Лектор: доцент каф. ОФ Склярова Елена Александровна

1. Кнопка подтверждения2. Кнопка отмены3. Курсор 4. Старое значение порядка5. Новое значение

Для того, чтобы изменить порядковый номер элемента, нужно набрать новый номер в окошке Click to set to text и потом щелкнуть на нужном элементе. Не забудьте сохранить сделанные изменения, нажав на кнопку OK.Помните, что два кластера с одними и теми же элементами, но с разным порядком расположения этих элементов будут считаться разными по структуре, и их нельзя будет связать между собой.

Кластеры

Page 30: Лектор: доцент каф. ОФ Склярова Елена Александровна

Эти функции находятся в палитре Functions>>All Functions>>Cluster и позволяют создавать кластеры и управлять ими.

Сборка кластеров.Используйте функцию Bundle для того, чтобы объединить отдельные элементы в кластер или чтобы изменить значения отдельных элементов в уже существующем кластере. Изменить количество терминалов у функции можно просто растянув ее, или щелкнуть правой кнопкой мыши и выбрать Add Input. Если вы соедините вход cluster с каким-нибудь кластером, то число входов для элементов должно совпадать с числом элементов в этом кластере.

Функции для работы с кластерамиФункции для работы с кластерами

Page 31: Лектор: доцент каф. ОФ Склярова Елена Александровна

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

Можно использовать функцию bundle для того, чтобы изменить значение элемента Command, так, как показано на рисунке:

Функции для работы с кластерамиФункции для работы с кластерами

Page 32: Лектор: доцент каф. ОФ Склярова Елена Александровна

Замена и доступ к элементам кластера.Используйте функцию Bundle by Name для того, чтобы получить доступ к элементу кластера по его имени (метке). Эта функция работает почти так же, как и функция Bundle, но она ссылается на элементы кластера, используя их имена. Число входов не обязательно должно совпадать с числом элементов в кластере - вы можете обратиться только к тем элементам, которые нужны.

Пример: с помощью функции Bundle by Name изменяем значения элементов Command и Function.Если в процессе работы над программой понадобится добавить в кластер еще один элемент или изменить порядок элеменов, то при использовании функции Bundle by Name менять все будет не нужно, т.к. порядок и состав элементов в кластере не важен, а важны только имена.

Функции для работы с кластерамиФункции для работы с кластерами

Page 33: Лектор: доцент каф. ОФ Склярова Елена Александровна

Разборка кластеров.Есть две функции для того, чтобы разбить кластер обратно на отдельные элементы - это функции Unbundle  и Unbundle by Name. Думаю, по аналогии с функциями образования кластеров все должно быть понятно.

В этом примере исходный кластер "расщепляется" с помощью этих двух функций. С помощью функции Unbundle by Name можно оставить только те элементы, которые нас интересуют в данный момент. При использовании обычной функции Unbundle будут возвращены все существующие элементы кластера.

Функции для работы с кластерамиФункции для работы с кластерами

Page 34: Лектор: доцент каф. ОФ Склярова Елена Александровна

Локальные (Local Variable) и глобальные (Global Variable) данные

Конструкция "глобальные данные" и соответствующая технология LabVIEW позволяют создать данные, которые будут использоваться различными ВП.

Page 35: Лектор: доцент каф. ОФ Склярова Елена Александровна

Гораздо чаще используется конструкция "локальные данные" (Local Variable). Ключевые аспекты использования локальных данных таковы:

1. Local Variable можно рассматривать как копию терминала какого-либо элемента передней панели. Таким образом, можно использовать один и тот же элемент передней панели в различных частях кода ВП. Например, можно остановить два параллельно работающих цикла While нажатием на одну кнопку "Стоп"

Локальные (Local Variable) и глобальные (Global Variable) данные

Page 36: Лектор: доцент каф. ОФ Склярова Елена Александровна

2. Использование конструкции "локальные данные" позволяет преодолеть разницу между режимами работы элемента пользовательского интерфейса"регулятор" и "индикатор". Т.е. можно программно изменять значения регуляторов и считывать значения с индикаторов.

Local Variable может работать в режиме чтения или записи данных, режим переключается через всплывающее меню. На рис. 20 приведен пример расчета N! С использованием локальных переменных. Недостатком такого приема является низкая скорость работы, поскольку на каждой итерации требуется обращение к передней панели.

Локальные (Local Variable) и глобальные (Global Variable) данные

Page 37: Лектор: доцент каф. ОФ Склярова Елена Александровна

Постановка задачи.Пусть требуется разработать виртуальный прибор для

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

Пример создания ВП

Page 38: Лектор: доцент каф. ОФ Склярова Елена Александровна

Разработка передней панели

Page 39: Лектор: доцент каф. ОФ Склярова Елена Александровна

Разработка передней панели

Page 40: Лектор: доцент каф. ОФ Склярова Елена Александровна

Разработка блок-диаграммы

Page 41: Лектор: доцент каф. ОФ Склярова Елена Александровна

Алгоритм работы ВП может быть такой:

1. начало (запуск виртуального прибора)2. запрашиваем у оператора имя файла для сохранения результатов, открываем выбранный файл. Удаляем с графика результаты предыдущего эксперимента. Удаляем элементы из таблицы.3. ожидаем нажатие на кнопку "Пуск"4. определяем время старта, переходим в режим "измерений.5. циклически, через dt=500 мс. выполняем следующие действия:• определяем время со старта;• генерируем случайное число 0-1. Умножаем на значение регулятора "Диапазон", получаем число 0-Диапазон;• определяем текущее значение уставки;• сравниваем результат измерения с уставкой, при превышении зажигаем лампу "Авария";• отображаем на график следующие данные: Диапазон, Уставка, измеренное значение;

Page 42: Лектор: доцент каф. ОФ Склярова Елена Александровна

Алгоритм работы ВП может быть такой:

• формируем строку со значением времени, для чего преобразуем число (время в секундах) в строковый вид – формат числа с плавающей точкой, 3 знака после запятой;• формируем строку с полями Диапазон, Уставка, измеренное значение, разделенными табуляцией, в конце символ перевода строки. Формат преобразования – число с плавающей точкой, 2 знака после запятой;• формируем итоговую строку для записи в файл в виде время – табуляция – строка с предыдущего этапа;• записываем итоговую строку в файл;• передаем текущее время и измеренное значение на выходные индексирующие туннели цикла, чтобы можно было после завершения работы построить таблицу время-значение;• проверяем условие завершения цикла – нажатие оператором на кнопку "Стоп"6. после завершения цикла на шаге №4 закрываем файл, получаем одномерные массивы с выходных индексирующих туннелей цикла, формируем двумерный массив время-значение и отображаем на переднюю панель.7. конец:

Page 43: Лектор: доцент каф. ОФ Склярова Елена Александровна

Графики в LabView

LabView обладает широким инструментарием для вывода данных в виде графиков и диаграмм. 

1. График Waveform Chart

Этот график имитирует работу самописца.

Находится  этот график (как и все остальные, впрочем) в палитре Controls>>Graph Indicators.

Page 44: Лектор: доцент каф. ОФ Склярова Елена Александровна

Графики в LabView

На рисунке цифрами обозначены:1 - название графика (можно поменять на любое другое)2,3 - названия осей. Аналогично, обозначаем как нам удобно4 - панель управления осями (название, включение-выключение Autoscale и т.п.)5 - панель управления изображением (двигать туда-сюда, зум и все такое)6 - список графиков. Названия и вид отображения настраиваются по вкусу.

Page 45: Лектор: доцент каф. ОФ Склярова Елена Александровна

Графики в LabViewУ Waveform Chart есть три разных способа скроллирования(обработки)  поступающих данных. Выбрать нужный способ можно щелкнув по графику правой кнопкой мыши, и выбрав в меню Advanced>>Update Mode один из режимов (Strip Chart, Scope Chart, или Sweep Chart).

В режиме Strip Chart данные показываются непрерывным потоком, идя слева направо. В режиме Scope Chart данные тоже идут слева направо, но как только график доходит до конца окна, оно очищается и новые данные опять идут сначала. Режим Sweep Chart похож на экран ЭКГ. Все почти так же, как в режиме Scope Chart, но теперь на экране одновременно показывается текущая порция данных и предыдущая порция. Они разделяются красной линией.

Page 46: Лектор: доцент каф. ОФ Склярова Елена Александровна

Вывод данных на график

Waveform Chart выводит скалярные данные (т.е. просто числа). Поэтому, чтобы вывести что-то на график - просто подключите к его терминалу нужный объект. Чтобы получать данные непрерывно, можно сделать цикл (так оно обычно и происходит). Пример, сложение двух случайных чисел.

Page 47: Лектор: доцент каф. ОФ Склярова Елена Александровна

Графики Waveform Graph и XY Graph

Эти графики находятся в палитре Controls>>Graph Indicators.

График Waveform Graph служит для отображения функций типа y=f(x), где каждому значению х соответствует одно единственное значение y. График отображает массив значений y, при этом по оси х значения распределены равномерно. XY graphs отображает любой набор точек с заданными координатами (х,y). На вход графика подается двумерный массив с координатами точек.

Page 48: Лектор: доцент каф. ОФ Склярова Елена Александровна

График Waveform Graph

Кроме того, на вход графика Waveform Graph можно подавать кластер из трех элементов -  начальное значение x, приращение dx и массив значений  y.

Чтобы отобразить на Waveform Graph 2 графика одновременно, нужно подать на вход 2D массив. Тогда каждый столбец массива интерпретируется как отдельный набор данных y, и выводится на график.  Так же можно подать на вход кластер  - начальное значение x, приращение dx и двумерный массив.

Page 49: Лектор: доцент каф. ОФ Склярова Елена Александровна

График XY Graph

Чтобы вывести один график, на вход XY Graph надо подать кластер с двумя массивами - в одном из которых значения x, а в другом - значения y, соответственно.Также можно подать массив из кластеров, в каждом из которых содержится по два значения - x и y.Пример: создан кластер с двумя массивами чисел. Значения этого кластера выводятся на график:

Page 50: Лектор: доцент каф. ОФ Склярова Елена Александровна

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

Операции с файлом:•Открытие и закрытие файлов•Чтение данных из файла и запись в файл•Перемещение, переименование файлов и каталогов•Изменение атрибутов файла

Файловые функции LabVIEW находятся в палитре Functions>>All Functions>>File I/O. С помощью этих функций и подпрограмм можно выполнять все вышеперечисленные операции с файлами. Функции для работы с файлами в LabVIEW можно разделить на две группы: функции высокого уровня, функции низкого уровня.

Page 51: Лектор: доцент каф. ОФ Склярова Елена Александровна

Файлы в LabVIEW Функции для работы с файлами в LabVIEW можно разделить на две группы: •функции высокого уровня, •функции низкого уровня.

Функции высокого уровня

Эти функции очень удобны в использовании, так как можно с помощью одной функции сразу сделать все операции с файлом - открыть, записать, закрыть.

Находятся эти функции, как уже говорилось, в палитре File I/O, в верхней строке.

Page 52: Лектор: доцент каф. ОФ Склярова Елена Александровна

Файлы в LabVIEW

Write to Spreadsheet File - Преобразует одномерный или двумерный массив чисел в строку и записывает эту строку в файл. Файл создается и открывается автоматически, или дописывается в уже существующий. Есть возможность выбрать разделитель. В итоге, получается файл - текстовая таблица с числами, разделенными табуляцией, например. Read From Spreadsheet File - То же,  что и предыдущая функция, только наоборот - читает из файла). Write Characters to File - записывает строку в новый или уже существующий файл. Создание, открытие, запись, закрытие производятся автоматически.Read Characters From File - чтение строки из файла. Открывает файл, читает из него, закрывает файл.Read Lines From File - читает строки из текстового или бинарного файла.Binary File VIs - несколько функций для работы с бинарными файлами чтение, запись и т.п. Данные могут быть целыми, или с плавающей точкой.

Page 53: Лектор: доцент каф. ОФ Склярова Елена Александровна

Файлы в LabVIEW Функции низкого уровня

Open/Create/Replace File - открывает существующий файл, создает новый или заменяет уже существующий. Если путь не задан, будет выдано диалоговое окно, в котором можно будет выбрать нужный путь.  Read File - чтение данных из файла.

Write File - запись данных в файл.

Close File - закрывает файл.

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

Page 54: Лектор: доцент каф. ОФ Склярова Елена Александровна

Файлы в LabVIEW Пример 1Записать случайные числа в файл.

Page 55: Лектор: доцент каф. ОФ Склярова Елена Александровна

Файлы в LabVIEW Пример 2записать числа в файл используя функции высокого уровня.

Page 56: Лектор: доцент каф. ОФ Склярова Елена Александровна

Программирование в LabVIEW

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

Программирование на LabVIEW подразумевает создание графического кода (G) в виде диаграммы, что является существенным отличием от традиционных текстовых языков. Подобный подход называется потоковым программированием.

Вместо последовательности выполняющихся друг за другом команд, код на LabVIEW представляет данные и операции, которые соединяются между собой, а компилятор LabVIEW автоматически определяет последовательность выполнения команд. Это также означает, что два параллельных участка кода (ветви диаграммы) независимы и могут быть выполнены на разных ядрах процессора. 

Page 57: Лектор: доцент каф. ОФ Склярова Елена Александровна

Программирование в LabVIEW

Page 58: Лектор: доцент каф. ОФ Склярова Елена Александровна

Программирование в LabVIEW

Параллелизм задач

Параллелизм задач подразумевает, что несколько операций могут быть выполнены независимо друг от друга. На рис.  приведен пример подобных задач: операции фильтрации сигнала и БПФ независимы, а следовательно могут быть выполнены на многоядерных процессорах одновременно.   

Page 59: Лектор: доцент каф. ОФ Склярова Елена Александровна

Программирование в LabVIEW

Параллелизм данных

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

Page 60: Лектор: доцент каф. ОФ Склярова Елена Александровна

Программирование в LabVIEW

Конвейеризация задач

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

Page 61: Лектор: доцент каф. ОФ Склярова Елена Александровна

Программирование в LabVIEW

Пример: задача с использованием параллельных циклов.

Page 62: Лектор: доцент каф. ОФ Склярова Елена Александровна

Лекция окончена

Нажмите клавишу <ESC> для выхода