- •Минобрнауки россии
- •Аппаратное и программное обеспечение микро- и наносистемной техники
- •28.03.01 «Нанотехнологии и микросистемная техника»
- •305040, Курск, ул. 50 лет Октября, 94
- •«Введение в программную среду LabView»
- •Краткое изложение теоретического материала
- •Краткое изложение теоретического материала
- •Порядок выполнения работы
- •Контрольные вопросы
- •«Основы работы с числовыми и логическими данными»
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •Контрольные вопросы:
- •«Циклы с фиксированным числом операций и циклы по условию»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •Контрольные вопросы
- •«Структура варианта, функция выбора, узел формула»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Структура последовательности, диалоговые окна, временные функции»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Массивы»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Кластеры »
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Средства визуального отображения LabView - развертки»
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Средства визуального отображения LabView: графики осциллограмм, осциллограммы»
- •Задание 1
- •Задание 2
- •Задание 3
- •« Изучение строк »
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Приборы ввода/вывода»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
Порядок выполнения работы Задание 1
1. Запустите Labview, нажав на соответствующую пиктограмму на рабочем столе.
2. Создайте пустой виртуальный прибор.
3. Разместите фронтальную панель и блок-диаграмму, нажав сочетание клавиш CTRL+T
4. Создайте набор контроллеров и индикаторов и расположите их как показано на рисунке.
5. Разработайте алгоритм аналогичный представленному на рисунке.
6. Сохраните в папку с Вашей фамилией и инициалами созданный Вами виртуальный прибор, назвав файл «Диалоговое окно».
Задание 2
1. Запустите Labview, нажав на соответствующую пиктограмму на рабочем столе.
2. Создайте пустой виртуальный прибор.
3. Разместите фронтальную панель и блок-диаграмму, нажав сочетание клавиш CTRL+T
4. Создайте набор контроллеров и индикаторов и расположите их как показано на рисунке.
5. Разработайте алгоритм аналогичный представленному на рисунке.
6. Сохраните в папку с Вашей фамилией и инициалами созданный Вами виртуальный прибор, назвав файл «Тест».
7. Придумайте еще два вопроса по нанотехнологиям и дополните ими тест.
8. Разработайте алгоритм подсчета оценки по пятибалльной шкале.
Задание 3
1. Запустите Labview, нажав на соответствующую пиктограмму на рабочем столе.
2. Создайте пустой виртуальный прибор.
3. Разместите фронтальную панель и блок-диаграмму, нажав сочетание клавиш CTRL+T
4. Создайте набор контроллеров и индикаторов и расположите их как показано на рисунке.
5. Разработайте алгоритм аналогичный представленному на рисунке.
6. Сохраните в папку с Вашей фамилией и инициалами созданный Вами виртуальный прибор, назвав файл «Вакуумный насос».
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Опишите механизм работы структуры диалоговое окно (Dialog box)?
2. Опишите механизм работы структуры последовательности (Sequence Structure)?
3. Какие временные функции вы изучили?
Лабораторная работа №6
«Массивы»
Цель работы: изучить встроенные функции работы с массивами. Понять концепцию полиморфизма.
Приборы и принадлежности: персональный компьютер с программной средой LabView.
Краткое изложение теоретического материала
Массивы
Массив (array) LabVIEW представляет собой набор элементов данных одного типа, так же как и в традиционных языках программирования. Массив может иметь одну или несколько размерностей, то есть быть одномерным или многомерным, и включать до 231 элементов на одну размерность (естественно, в зависимости от объ.ема памяти).
Элементом массива может быть любой тип данных за исключением массива, таблицы или графика.
Доступ к элементам массива осуществляется посредством их индексов. Индекс {index) каждого элемента находится в диапазоне от 0 до N-1, где N - полное количество элементов в массиве. Одномерный массив (1D), показанный в таблице , иллюстрирует эту структуру.
Индекс |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10-элементный массив |
12 |
32 |
82 |
8.0 |
4.8 |
5.1 |
6.0 |
1.0 |
2.5 |
1.7 |
Обратите внимание, что первый элемент имеет индекс 0, второй - 1 и т.д. Позже вы увидите, что осциллограммы (и другие типы данных) часто хранятся в виде массивов и каждая точка осциллограммы содержит элемент массива. Массивы также используются для хранения данных, сгенерированных в циклах, где на каждой итерации цикла создается один элемент массива.
Создание элементов управления и отображения массивов
Ч
тобы,
создать элементы управления и индикаторы
для сложных типов данных, таких как
массивы и кластеры, необходимо
последовательно выполнить два действия.
Вначале следует решить, будет ли ваш
массив состоять из элементов управления
или индикаторов, а затем объединить
шаблон массива (array shell) с объектом данных,
который может быть числовым, логическим,
маршрутным или строковым (а также
кластерным, но об этом позже). Шаблон
массива находится в подпалитре Массив
и кластер (Array&Cluster) палитры Элементы
управления.
Для создания массива переместите объект данных в окно отображения элементов. Можете непосредственно поместить туда объект, щелкнув правой кнопкой мыши внутри окна во время первоначального выбора объекта данных из палитры Элементы управления. Окно отображения элемента изменится в размерах, показывая, что произошло согласование типа данных, но остается серым до тех пор, пока вы не введете в него данные. Обратите внимание, что все элементы массива должны быть либо элементами управления, либо индикаторами, но не их комбинацией.
К
огда
вы помещаете шаблон массива на лицевую
панель, то его терминал на блок- диаграмме
будет черного цвета, что характерно для
неопределенного типа данных. В терминале
показаны скобки, которые являются
способом отображения структуры массива
в LabVIEW. Когда вы зададите массиву тип
данных (поместив элемент управления
или отображения в окно отображения
элемента), терминал блок-диаграммы
массива присвоит себе его цвет и надпись
(хотя скобки сохраняются), как это
показано на рисунке. Заметьте: проводники
массива толще, чем проводники, переносящие
скалярные величины.
Вы можете ввести данные в массив, как только зададите их тип. Используйте инструменты ввода текста или управления для ввода данных или, если ваши данные имеют числовой характер, щелкните по стрелкам в окне отображения элементов, чтобы увеличить или уменьшить их значение.
Если нужно изменить размеры объекта в окне отображения, обратитесь к инструменту перемещения и убедитесь, что он превращается в стандартные скобки, когда вы помещаете его в углу окна (возможно, вам придется поместить его внутрь окна, а затем немного подвигать для получения соответствующих скобок). Если вы хотите одновременно по казать большее количество элементов массива, передвигайте инструмент перемещения около угла окна отображения до тех пор, пока не появится курсор в виде сетки, а затем вытяните угол в горизонтальном или вертикальном направлениях (данные не изменятся из-за формы массива). В этом случае отобразится большее количество элементов. Самый близкий к индикатору индекса элемент всегда соответствует номеру, показанному на индикаторе. Создать массив констант на блок-диаграмме можно так же, как при создании числовых, логических или строковых констант. Выбор опции Постоянный массив (Array Constant) в подпалитре Массив (Array) палитры Функции создает шаблон массива, куда вы просто помещаете подходящий тип данных (в виде константы). Эта возможность полезна при инициализации сдвиговых регистров или при передаче типа данных в функции работы с файлами или Internet (об этом мы будем говорить позднее).
Если вы захотите очистить элемент управления (отображения, константы дан ных) массивом, щелкните правой кнопкой мыши по индикатору индекса (Но не по самому элементу) и выберите опцию Операции с данными → Очистить массив (Data Operations →Empty Array).
Использование автоматического индексирования
Цикл с фиксированным числом итераций и цикл по условию могут автоматически индексировать и аккумулировать массивы на их границах путем добавления одно го нового элемента в каждом повторении цикла. Эта способность называется автоиндексированием (auto-indexing). Следует помнить одну важную вещь: по умолчанию автоиндексирование включено в цикле с фиксированным числом итераций и выключено в цикле по условию.
На рисунке показано, как цикл с фиксированным числом итераций автоматически создает массив в его границах. Каждая итерация создает следующий элемент массива. После завершения цикла массив выходит из него и поступает на элемент отображения. Данные в массиве недоступны до тех пор, пока цикл не завершится. Обратите внимание, что проводник становится толще после превращения в проводник данных массива на границе цикла.
Если необходимо вывести скалярную величину из цикла с фиксированным числом итераций без создания массива, отключите автоиндексирование путем вызова контекстного меню в точке ввода/вывода (квадратик с символом [ ]) и выбора опции Отключить индексирование (Disable Indexing).
Поскольку по умолчанию автоиндексирование в цикле по условию не включено, то, если вы хотите вывести данные из этой структуры в виде массива, нужно вызвать контекстное меню в точке ввода/вывода и выбрать опцию Включить индексирование (Enable Indexing).
|
|
На рисунке автоиндексирование отключено, и лишь последняя величина, возвращенная функцией Случайное число (0-1), выводится из цикла. Обратите внимание, что проводник сохраняет свои размеры после выхода из цикла. Всегда смотрите на размер проводника, поскольку автоиндексирование является общим источником проблем среди начинающих: они часто создают массивы, не желая этого, или не создают их, когда они нужны, а затем удивляются, почему проводник оказывается неисправным.
Автоиндексирование применяется также в случаях, когда вы вводите массивы в циклы. Если индексирование включено, как это показано в цикле (А) на рисунке, то цикл будет переходить к следующему индексу массива при каждой итерации (обратите внимание на утончение проводника во время его вхождения в цикл). Если же индексирование отключено, как показано в случае (В), то массив целиком передается в цикл.
Использование автоиндексирования для установки количества повторений циклов с фиксированным числом итераций
К
огда
вы разрешаете автоиндексирование ддя
массива, входящего в цикл с фиксированным
числом итераций, LabVIEW автоматически
устанавливает число повторений равным
размеру массива, устраняя таким образом
необходимость подключения определенного
значения к терминалу числа итераций.
Если вы зададите взаимоисключающие
значения, например задав число и введя
в действие автоиндексирование (или
разрешив автоиндексировать два массива
с разными размерами), то LabVIEW установит
значение терминала
количества итераций в наименьший из
вариантов. На рисунке показано, что
размер массива, а не число, подключенное
к терминалу, определяет количество
итераций цикла, так как размер массива
является наименьшим из двух.
Двумерные массивы
Двумерный (2D) массив хранит элементы в структуре вида решетки. Для определения местонахождения элемента необходимы два индекса: индекс по вертикали и индекс по горизонтали, каждый из которых начинается с нуля, как и все элементы с индексами в LabVIEW. На рисунке показан массив с четырьмя строками и шестью столбцами, в котором хранится 6x4 элементов.
|
|
Вы можете увеличить размерность элементов управления/отображения массивов путем вызова контекстного меню элемента управления/ отображения индекса массива (но не элемента управления/отображения значениями массива) и выбора опции Добавить размерность (Add Dimension). На рисунке показан двумерный массив цифровых элементов управления. Обратите внимание, что теперь есть два индекса для отображения каждого элемента. Вы можете использовать инструмент перемещения в виде сетки для расширения окна, отображающего значения массива, в двух измерениях, что позволит одновременно увидеть большее количество элементов.
Удалить ненужные размерности можно выбором опции Удалить размерность (Remove Dimension) из контекстного меню элемента управления/отображения индекса.
Осциллограммы, полученные из разных каналов многофункциональной платы ввода/вывода, допустимо сохранить в двумерном массиве, в каждом столбце которого будут храниться данные одного канала.
Создание двумерных массивов
Если вы не хотите вводить данные с лицевой панели, то для создания двумерного массива можно использовать два цикла с фиксированным числом итераций, один внутри другого. Внутренний цикл создает строку, а внешний складывает эти строки для заполнения столбцов массива. На рисунке показаны два цикла с фиксированным числом итераций, которые создают двумерный массив случайных чисел с применением автоиндексирования.
Функции работы с массивами
LabVIEW имеет много функций манипулирования массивами (подпалитра Массив палитры Функции). Напоминаем, что индексы массивов начинают отсчитываться с нуля - первый элемент имеет индекс 0, второй - индекс 1 и т.д. В данном разделе рассматриваются некоторые общие функции, но вы можете обратится к подпалитре Массив, чтобы увидеть другие встроенные функции:
Функция
Инициализация массива
(Initialize Array) создает и
заполняет все элементы n-мерного
массива значением по вашему выбору. Вы
можете изменить размерность массива
растягиванием его границ инструментом
перемещения («стрелка») для создания
дополнительных вводов числа
элементов размерности (dimension
size). Эта функция полезна для выделения
памяти определенного размера или для
инициализации сдвиговых регистров
данными из массива.
Ф
ункция
Число элементов массива
(Array Size) возвращает число
элементов входного массива. Если входной
массив является n-мерным,
то функция возвращает одномерный
n-элементный
массив, в котором каждый элемент содержит
число элементов одной из размерностей
массива.
В
зависимости от конфигурации функция
Создать массив (Build
Array) комбинирует или объединяет два
массива или добавляет в массив
дополнительные элементы. Будучи впервые
помещена на блок-диаграмму, функция
выглядит как иконка, изображенная слева.
Вы можете растянуть границу этой функции
для увеличения количества вводов.
Функция Создать массив
имеет два типа ввода:
для массива и
для элемента. Таким
образом, с ее помощью легко создавать
массив одновременно из массива данных
и из скалярных величин.
В зависимости от того, какой тип данных подключается, ввод этой функции автоматически адаптируется к входному элементу, будь это скаляр или массив.
С помощью функции Создать массив можно создавать или добавлять элементы в многомерные массивы. Элемент, добавляемый в многомерный массив, должен быть на одну размерность меньше массива (например, допустимо добавить 1D-массив в 2D-массив). Вы можете построить двумерный массив, используя функцию Создать массив и подсоединяя одномерные массивы в качестве элементов (каждый одномерный массив становится строкой двумерного массива). Если же необходимо объединить несколько одномерных массивов вместо создания одного двумерного, в контекстном меню функции Создать массив выберите опцию Объединить вводы (Concatenate Inputs).
Ф
ункция
Подмножество массива
(Array Subset) возвращает
часть массива, который содержит количество
элементов длина (length),
начиная с индекса
(index). Не забывайте, что
индексом третьего элемента является
2, так как индексирование начинается с
нуля.
Функция
Выборка из массива
(Index Array) осуществляет
доступ к любому элементу массива. На
рисунке показано, как с помощью этой
функции осуществляется доступ к третьему
элементу массива. В данном случае функция
Выборка из массива
извлекает скалярный
элемент из массива. Чтобы извлечь
отдельный скалярный элемент, соедините
индекс строки нужного элемента с верхним
входом, а индекс столбца - с нижним входом
функции.
Вы также можете использовать эту функцию для «вырезания» из массива строки, столбца или скалярного элемента. Чтобы это сделать, оставьте один из вводов функции неподключенным. При вырезании строки двумерного массива соедините значение индекса выбранной строки с первым индексным вводом функции. Чтобы отделить столбец двумерного массива, оставьте ввод первого индекса неподключенным и соедините значение индекса выбранного столбца со вторым индексным вводом.
Обратите внимание, что, когда вы оставляете ввод неподключенным, символ соответствующего индекса изображается в виде пустого прямоугольника. На рисунке показан процесс вырезания столбца и строки из двумерного массива.
Полиморфизм
Другим полезным качеством LabVIEW является полиморфизм (polymorphism) его арифметических функций: Сложения (Add), Умножения (Multiply), Деления (Divide) и т.д. Полиморфизм - это длинное слово для названия простого принципа: входные данные функций могут иметь различные размерности и представления. Например, используя одну и ту же функцию, вы можете сложить скалярную величину и массив или сложить два массива. На рисунке показаны некоторые полиморфические комбинации функции Сложения.
Результатом первой комбинации является скалярная величина. Во второй комбинации скалярная величина добавляется к каждому элементу массива. В третьей комбинации каждый элемент массива добавляется к соответствующему элементу другого массива. Во всех случаях используется та же самая функция Сложение, но она выполняет различные виды действий.
Как показано на рисунке, на каждом повторении цикла с фиксированным числом итераций вырабатывается одно случайное число (в диапазоне от О до 1), которое сохраняется в массиве на границе цикла. После того как цикл завершится, функция Умножение умножает каждый элемент массива на заданный вами масштабный коэффициент. Элемент отображения массива на лицевой панели покажет масштабированный массив.
|
|
На рисунке представлены некоторые возможные полиморфические комбинации функции Сложение.
Составная арифметика
Имея дело с арифметикой, необходимо упомянуть функцию Составная арифметика (Compound Arithmetic). Эта функция дает возможность оперировать более чем двумя числами одновременно. Функция Составная арифметика устраняет необходимость использования множества терминалов Сложение, Умножение, И, ИЛИ и Исключающее ИЛИ при осуществлении действий с одной из этих функций с несколькими числами одновременно (И, ИЛИ и Исключающее ИЛИ являются логическими (булевыми) арифметическими действиями).
|
|
Составная функция Сложение |
Составная функция И |
Ф
ункцию
Составная арифметика можно найти
в подпалитрах Числовые или Логические
палитры Функции. Как
и при использовании многих других
функций, допустимо увеличить ее размер
и создать больше вводов.
Эта функция имеет только одну форму.
Чтобы изменить вид действия (из набора
Сложение, Умножение, И, ИЛИ
и Исключающее ИЛИ), щелкните правой
кнопкой мыши по выводу функции и выберите
опцию Сменить режим (Change Modes). Вы
также можете щелкнуть
инструментом управления («палец»)
по виду действия для его модификации.
Для изменения знака числовых вводов и вывода или логических значений (от ЛОЖЬ до ИСТИНА или наоборот) выберите опцию Инвертировать (Invert) в контекстном меню. Маленький кружок на вводе или выводе символизирует инвертированное значение.
Несколько слов о логической арифметике
Логические арифметические действия - И (And), ИЛИ (Or), НЕ (Not), Исключающее ИЛИ (Exclusive Or), Исключающее ИЛИ-НЕ (Not Exclusive Or), И-НЕ (Not And) и ИЛИ-НЕ (Not Or) - могут оказаться весьма полезными.. Если вы не помните, что делает та или иная функция, обратитесь к окну помощи.
Функция НЕ является наиболее легкой для описания, поскольку она просто инвертирует входное значение. Если значение входа ИСТИНА, то функция НЕ преобразует его на выходе в значение ЛОЖЬ. Если значение входа ЛОЖЬ, то НЕ изменяет его на выходе в ИСТИНА.
Функция И создает на своем выходе значение ИСТИНА только в том случае, если все вводы имеют значения ИСТИНА.
Функция ИЛИ создает на выходе значение ИСТИНА, если хотя бы один вход имеет значение ИСТИНА.
Функции И и ИЛИ имеют следующие выходные значения в зависимости от входных данных:
ЛОЖЬ И ЛОЖЬ = ЛОЖЬ ИСТИНА И ЛОЖЬ = ЛОЖЬ ЛОЖЬ И ИСТИНА = ЛОЖЬ ИСТИНА И ИСТИНА = ИСТИНА
|
ЛОЖЬ ИЛИ ЛОЖЬ = ЛОЖЬ ИСТИНА ИЛИ ЛОЖЬ = ИСТИНА ЛОЖЬ ИЛИ ИСТИНА = ИСТИНА ИСТИНА ИЛИ ИСТИНА = ИСТИНА |
