Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ASVT Материалы / основы_labview_1_упражнения_

.pdf
Скачиваний:
128
Добавлен:
29.03.2016
Размер:
3.28 Mб
Скачать

4. Реализация VI

Блок-схема

Рисунок 4-4. Блок-схема алгоритма Auto Match VI

Основы LabVIEW 1. Упражнения

61

ni.com

4. Реализация VI

Реализация VI

Спроектируйте лицевую панель и модифицируйте элементы управления и индикаторы в соответствии с рисунком 4-5 и тем, как описано в последующих пунктах.

Рисунок 4-5. Лицевая панель Auto Match VI

1.Откройте пустой VI.

2.Сохраните этот VI под именем Auto Match.vi в папке

<Exercises>\LabVIEW Core 1\Auto Match.

3.Создайте элемент управления Number to Match.

Добавьте числовой элемент управления на лицевую панель.

Введите для него метку Number To Match.

4.Присвойте элементу управления Number to Match значение по умолчанию.

Введите в элемент управления Number To Match число 50.

Щелкните по этому элементу управления правой кнопкой мыши и выберите команду контекстного меню Data Operations»Make Current Value Default.

5.Установите для элемента управления Number to Match: диапазон данных от 0 до 1000, шаг инкремента 1, количество знаков после десятичной точки 0.

Щелкните правой кнопкой мыши по элементу управления Number to Match и выберите команду контекстного меню Data Entry, при этом откроется диалоговое окно Numeric Properties на странице Data Entry.

Снимите флажок Use Default Limits.

Установите значение поля Minimum в 0 и выберите из выпадающего списка Response to value outside limits пункт Coerce.

Установите значение поля Maximum 1000 и выберите из выпадающего списка Response to value outside limits пункт Coerce.

Установите значение поля Increment, равным 1, и выберите из выпадающего списка Response to value outside limits пункт Coerce to Nearest.

Перейдите на закладку Display Format.

© National Instruments Corporation

62

Основы LabVIEW 1. Упражнения

4. Реализация VI

Выберите формат Floating Point и измените метод Precision Type с

Significant digits на Digits of precision.

В поле Digits введите 0 и щелкните мышью по кнопке OK.

6.Создайте выходной индикатор Current Number.

Поместите на лицевую панель числовой индикатор.

Введите для этого индикатора метку Current Number.

7.Установите количество знаков после десятичной точки, равным нулю. для индикатора Current Number.

Щелкните правой кнопкой мыши по индикатору Current Number и выберите из контекстного меню команду Display Format. Откроется диалоговое окно Numeric Properties на странице Display Format.

Выберите формат Floating Point и измените значение элемента

Precision Type на Digits of Precision.

Введите 0 в поле Digits и щелкните по кнопке OK.

8.Создайте выходной индикатор # of iterations.

Поместите числовой индикатор на лицевую панель.

Введите в метку этого индикатора текст # of iterations.

9.Установите формат представления индикатора # of iterations – длинное целое.

Щелкните правой кнопкой мыши по индикатору # of iterations.

Выберите из контекстного меню Representation»I32.

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

Рисунок 4-6. Блок-диаграмма Auto Match VI

10.Сгенерируйте целые случайные числа в диапазоне от 0 до 1000.

Поместите на блок-диаграмму функцию Random Number (0-1), которая генерирует случайное число в диапазоне от 0 до 1.

Добавьте на блок-диаграмму функцию Multiply, которая умножает случайное число на число со входа y, в результате чего получается случайное число в диапазоне от 0 до y.

Основы LabVIEW 1. Упражнения

63

ni.com

4. Реализация VI

Соедините выход функции Random Number со входом x функции

Multiply.

Щелкните правой кнопкой мыши по входу y функции Multiply и выберите из контекстного меню Create»Constant, введите значение 1000 и нажмите на клавишу <Enter>, чтобы создать числовую константу.

Добавьте на блок-диаграмму функцию Round To Nearest, которая округляет случайное число до ближайшего целого.

Соедините выход функции Multiply со входом функции Round To Nearest.

Соедините выход функции Round To Nearest с индикатором Current Number.

11.Реализуйте сравнение случайно сгенерированного числа со значением элемента управления Number to Match.

Добавьте на блок-диаграмму функцию Not Equal?, которая сравнивает случайное число со значением органа управления Number of Match и возвращает True, если эти числа равны. В противном случае она возвращает значение False.

Присоедините выход функции Round To Nearest ко входу x функции

Not Equal?.

12.Реализуйте повторение алгоритма, до тех пор, пока функция Not Equal? не выдаст значение True.

Добавьте на блок-диаграмму цикл While из палитры Structures.

Щелкните правой кнопкой мыши по терминалу условия и выберите из контекстного меню Continue if True.

Соедините числовой элемент управления Number to Match с границей цикла While, при этом на границе цикла появится оранжевый туннель.

Соедините оранжевый туннель со входом y функции Not Equal?

Соедините выход функции Not Equal? с терминалом условия.

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

Соедините терминал счетчика итераций с границей цикла While, при этом на границе цикла появится синий туннель.

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

Добавьте на блок-диаграмму функцию Increment, которая прибавляет единицу к счетчику итераций цикла.

Соедините синий туннель с функцией Increment.

Соедините функцию Increment с индикатором # of iterations.

14.Сохраните VI.

© National Instruments Corporation

64

Основы LabVIEW 1. Упражнения

4. Реализация VI

Тестирование

1.Откройте лицевую панель.

2.Измените значение элемента управления Number to Match на число, которое находится в диапазоне от 0 до 1000 с шагом 1.

3.Щелкните правой кнопкой мыши по индикатору Current Number и выберите из контекстного меню Advanced»Synchronous Display.

Примечание: Если разрешен синхронный вывод на экран, каждый раз при выводе значения из блок-диаграммы на индикатор Current Number выполнение блокдиаграммы будет останавливаться, пока значение этого индикатора на лицевой панели не обновится. В данном упражнении вы разрешите синхронизацию вывода на экран, чтобы увидеть, что значение индикатора Current Number на лицевой панели многократно изменяется. Как правило, синхронный вывод на экран запрещают, чтобы повысить быстродействие, т.к. обычно не нужно наблюдать каждое отдельное обновленное значение индикатора на лицевой панели.

4.Запустите VI.

5.Измените значение элемента управления Number to Match и снова запустите VI. Значение индикатора Current Number обновляется на каждой итерации цикла, поскольку он находится внутри цикла. Индикатор # of iterations обновляется по окончании работы цикла, поскольку он находится за пределами циклами.

6.Чтобы увидеть, как VI обновляет индикаторы, разрешите выполнение с подсветкой.

На линейке инструментов блок-диаграммы щелкните мышью по кнопке Highlight Execution, чтобы разрешить выполнение с подсветкой. Подсветка показывает продвижение данных по блокдиаграмме от одного узла к другому, что позволяет наблюдать каждое значение, которое генерирует VI.

7.Запустите VI и пронаблюдайте за прохождением данных.

8.Попытайтесь сравнить с числом, которое не принадлежит заданному диапазону.

9.Введите в элемент управления Number to Match число, не принадлежащее заданному диапазону.

Запустите VI. LabVIEW приводит значения, выходящие за границы диапазона, к ближайшим допустимым значениям.

10.Закройте VI

Конец упражнения 4-2

Основы LabVIEW 1. Упражнения

65

ni.com

4. Реализация VI

Упражнение 4-3. Сравнение циклов While и For

Цель упражнения

Понять, когда необходимо использовать цикл While, а цикл когда For.

Описание упражнения

Для следующих вариантов постановки задачи определите, какой цикл следует использовать: While или For.

Вариант 1

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

1.Если вы используете цикл While, какое следует задать условие, чтобы в нужный момент остановить цикл?

2.Если вы используете цикл For, сколько необходимо выполнить итераций?

3.Какой цикл проще реализовать: For или While?

Вариант 2

Необходимо измерять давление до тех пор, пока оно не станет больше либо равно 1400 psi (фунтов на квадратный дюйм).

1.Если вы используете цикл While, какое следует задать условие, чтобы в нужный момент остановить цикл?

2.Если вы используете цикл For, сколько необходимо выполнить итераций?

3.Какой цикл проще реализовать: For или While?

© National Instruments Corporation

66

Основы LabVIEW 1. Упражнения

4. Реализация VI

Вариант 3

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

1.Если вы используете цикл While, какое следует задать условие, чтобы в нужный момент остановить цикл?

2.Если вы используете цикл For, сколько необходимо выполнить итераций?

3.Какой цикл проще реализовать: For или While?

Вариант 4

Необходимо сформировать напряжение, которое нарастает с нуля, со скоростью 0.5 В/с до тех пор, пока выходное напряжение не станет равным

5 В.

1.Если вы используете цикл While, какое следует задать условие, чтобы в нужный момент остановить цикл?

2.Если вы используете цикл For, сколько необходимо выполнить итераций?

3.Какой цикл проще реализовать: For или While?

Основы LabVIEW 1. Упражнения

67

ni.com

4. Реализация VI

Ответы

Вариант 1

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

1.

Цикл While: время выполнения

1 мин.

2.

Цикл For: количество итераций

60.

3.

Можно использовать While, а можно и For.

Вариант 2

Необходимо измерять давление до тех пор, пока оно не станет больше либо равно 1400 psi.

1. Цикл While: Pressure = 1400 psi.

2. Цикл For: количество итераций неизвестно.

3.Цикл While. Несмотря на то, что вы можете добавить терминал условия в цикл For, вам все равно необходимо подать значение на терминал задания количества итераций. Без дополнительной информации вам неизвестно, какое значение подавать на этот терминал.

Вариант 3

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

1.Цикл While: условие [(Last Temperature = Previous Temperature) в течение двух минут или более)] и [(Last Pressure = Previous Pressure) в

течение двух минут или более)].

2.Цикл For: количество итераций неизвестно.

3.Цикл While. Несмотря на то, что вы можете добавить терминал условия в цикл For, вам все равно необходимо подать значение на терминал задания количества итераций. Без дополнительной информации вам неизвестно, какое значение подавать на этот терминал.

Вариант 4

Необходимо сформировать напряжение, которое нарастает с нуля, со скоростью 0.5 В/с до тех пор, пока выходное напряжение не станет равным

5 В.

1.

Цикл While: Voltage = 5 В.

2.

Цикл: For: количество итераций 11.

3.

Можно использовать While, а можно и For.

Конец упражнения 4-3

© National Instruments Corporation

68

Основы LabVIEW 1. Упражнения

4. Реализация VI

Упражнение 4-4. Average Temperature VI

Цель упражнения

Научиться использовать цикл While и сдвиговые регистры для усреднения данных.

Задание

Temperature Monitor VI измеряет температуру и отображает ее на экране. Необходимо модифицировать VI таким образом, чтобы он усреднял последние три отсчета температуры и отображал скользящее среднее на графике типа Waveform Chart.

План решения

На рисунках 4-7 и 4-8 приведена соответственно лицевая панель и блок-

диаграмма Temperature Monitor VI.

Рисунок 4-7. Лицевая панель Temperature Monitor VI

Рисунок 4-8. Блок-диаграмма Temperature Monitor VI

Чтобы модифицировать этот VI, необходимо сохранять значения температуры в предыдущих двух итерациях и использовать их при

Основы LabVIEW 1. Упражнения

69

ni.com

4. Реализация VI

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

Реализация VI

1.Протестируйте VI. Если у вас есть аппаратура, следуйте инструкциям, приведенным в столбце Аппаратура установлена. В противном случае следуйте инструкциям, приведенным в столбце Аппаратура НЕ установлена.

Аппаратура установлена

Аппаратура НЕ установлена

 

 

Откройте Temperature Monitor VI из папки

Откройте Temperature Monitor (Demo) VI

<Exercises>\LabVIEW Core

из папке <Exercises>\LabVIEW Core

1\Average Temperature.

1\No Hardware Required\Average

 

Temperature.

 

 

Выберите команду меню File»Save As и

Выберите команду меню File»Save As и

сохраните VI под именем Average

сохраните VI под именем Average

Temperature.vi в папке

Temperature.vi в папке

<Exercises>\LabVIEW Core

<Exercises>\LabVIEW Core 1\ No

1\Average Temperature.

Hardware Required\Average

 

Temperature.

 

 

На вспомогательном сигнальном блоке

Запустите VI. Обратите внимание на

переведите выключатель шума для

отклонения отсчетов температуры,

температурного датчика в положение On.

полученных путем моделирования.

При этом на сигнал температуры

 

накладывается шум.

 

 

 

Запустите VI.

 

 

 

Коснитесь пальцем датчика температуры

 

на сигнальном блоке, для увеличения

 

температуры. Вы можете быстро потереть

 

пальцем датчик, трение еще больше

 

увеличить температуру. Обратите

 

внимание на количество выбросов.

 

 

 

© National Instruments Corporation

70

Основы LabVIEW 1. Упражнения