Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabVIEW Basics 1.pdf
Скачиваний:
601
Добавлен:
05.06.2015
Размер:
6.38 Mб
Скачать

Урок 3 Создание ВП

D. Цикл While

Цикл While подобен циклам do и do-while в текстовых языках программирования. Диаграмма цикла выполняется до тех пор, пока не будет выполнено условие выхода.

На рис. 3-17 показано, как выглядит цикл While на блок-диаграмме LabVIEW. Показаны также его эквивалентная блок-схема и псевдокод, реализующий те же функции.

 

Код

 

 

Нет

Repeat (код);

Код

Условие

Until Условие выполнено;

выполнено?

End;

 

 

 

Да

 

 

Конец

 

1

2

3

1 Цикл While в LabVIEW

2 Блок-схема

3 Псевдокод

Рис. 3-17. Цикл While.

Структура цикла While находится на палитре Functions>>All Functions>>Structures. Выберите цикл в палитре, а затем растяните курсором прямоугольник выделения вокруг той части блокдиаграммы, которую нужно повторять. После отпускания кнопки мыши выделенный участок будет заключен в рамку цикла.

Для добавления к циклу других объектов блок-диаграммы просто перетаскивайте их внутрь рамки.

Совет Цикл While всегда выполняется как минимум один раз.

Диаграмма цикла While выполняется до тех пор, пока терминал условия (входной терминал цикла) не получит заданное логическое значение. По умолчанию терминал условия работает в режиме Stop if True (завершить по значению True) и выглядит так, как показано

слева.

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

В режиме Continue if True диаграмма цикла выполняется до тех пор, пока на терминал условия не будет подано значение FALSE. Изменить условие можно также инструментом УПРАВЛЕНИЕ, щелкнув им на терминале.

Терминал счетчика итераций (выходной терминал цикла), показанный слева, содержит количество выполненных итераций.

©National Instruments Corporation

3-31

Учебный курс LabVIEW Основы I

Урок 3 Создание ВП

Подсчет итераций всегда начинается с нуля. Во время первой итерации терминал возвращает 0.

На диаграмме рис. 3-18 цикл While завершится, когда случайное число окажется больше или равно 10.00 и при этом элемент управления Enable будет содержать значение True. Функция And (логическое И) возвращает True только при наличии True на обоих входах. В противном случае возвращается False.

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

Рис. 3-18. Цикл, который может стать бесконечным.

Туннели

Туннели (tunnels) используются для ввода и вывода данных из структуры. На блок-диаграмме туннель имеет вид сплошного квадратика на границе цикла. Его цвет совпадает с цветом проводника, подведенного к туннелю. Данные выводятся из цикла после его завершения. Если туннель используется для ввода данных

вцикл, то выполнение цикла не начинается до поступления данных

втуннель.

На блок-диаграмме рис. 3-19 с туннелем соединен терминал итераций. Однако значение в туннеле не передается на индикатор Iterations, пока цикл не завершится. В результате индикатор покажет только последнее значение счетчика итераций.

Рис. 3-19. Туннель цикла While.

©National Instruments Corporation

3-32

Учебный курс LabVIEW Основы I

Урок 3 Создание ВП

Упражнение 3-3 ВП для поиска совпадений

Цель

Использовать цикл While, терминал счетчика итераций и передачу данных по туннелю.

Сценарий

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

Проектирование

Табл. 3-2. Входные и выходные данные.

Тип

Имя

Свойства

 

 

 

Вход

Заданное число

С плавающей точкой,

 

 

двойной точности, диапазон

 

 

от 0 до 1000, округлить до

 

 

ближайшего целого, по

 

 

умолчанию = 50

 

 

 

Выход

Текущее число

С плавающей точкой,

 

 

двойной точности

 

 

 

Выход

Кол-во итераций

Целое

 

 

 

©National Instruments Corporation

3-33

Учебный курс LabVIEW Основы I

 

Урок 3 Создание ВП

 

 

Блок-схема

 

 

 

 

Сгенерировать

 

Нет

 

 

случайное число

 

 

 

от 0 до 1

 

 

 

 

Умножить на 1000

 

 

 

 

Округлить до

Показать

= Заданное

 

Добавить 1

ближайшего

Да

к терминалу

пользователю

число?

целого

 

итераций

 

 

 

 

 

 

 

Показать число

 

 

 

 

итераций

 

Рис. 3-20. Блок-схема ВП Поиск совпадений.

Реализация

Откройте пустой ВП и постройте лицевую панель, как показано ниже. Модифицируйте элементы управления и индикаторы согласно рисунку и пошаговым инструкциям.

1. Создайте вход Заданное число.

©National Instruments Corporation

3-34

Учебный курс LabVIEW Основы I

Урок 3 Создание ВП

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

Измените метку на Заданное число.

2.Установите следующие свойства элемента управления Заданное число: значение по умолчанию 50, диапазон значений от 0 до 1000, инкремент 1 и число цифр после запятой 1.

Щелкните правой кнопкой на элементе Заданное число и выберите в контекстном меню пункт Data Range (Диапазон значений). Появится страница Data Range диалога Numeric Properties.

Снимите отметку Use Default Range (Использовать диапазон по умолчанию).

Установите для Default Value (Значение по умолчанию) значение 50.

Установите значение Minimum равным 0 и выберите Coerce (Привести) в раскрывающемся меню Out of Range Action (Действие при выходе за границу диапазона).

Установите значение Maximum равным 1000 и выберите

Coerce в раскрывающемся меню Out of Range Action.

Установите значение Increment равным 1 и выберите Coerce to Nearest (Привести к ближайшему) в раскрывающемся меню Out of Range Action.

Щелкните на вкладке Format and Precision.

Выберите формат Floating Point и измените способ задания точности с Significant digits (Число значащих цифр) на Digits of precision (Число цифр после запятой).

Введите 0 в текстовом поле Digits и нажмите OK.

3.Создайте выход Текущее число.

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

Измените метку на Текущее число.

4.Установите для индикатора число цифр после запятой равным 0.

Выберите в контекстном меню индикатора пункт Format & Precision. Появится одноименная страница диалога Numeric Properties.

Выберите формат Floating Point и измените способ задания точности с Significant digits на Digits of precision.

Введите 0 в текстовом поле Digits и нажмите OK.

5.Создайте выход Кол-во итераций.

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

Измените метку на Кол-во итераций.

6.Задайте представление в формате длинного целого.

Щелкните правой кнопкой на индикаторе Кол-во итераций.

©National Instruments Corporation

3-35

Учебный курс LabVIEW Основы I

Урок 3 Создание ВП

Выберите в контекстном меню Representation>>I32. Постройте блок-диаграмму согласно рисунку.

7.Сгенерируйте случайное целое число между 0 и 1000.

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

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

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

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

8.Сравните сгенерированное случайное число со значением

Заданное число.

Поместите на блок-диаграмму функцию Not Equal?. Эта функция сравнивает случайное число с Заданное число и возвращает True, если числа не равны, и False в противном случае.

9.Повторяйте алгоритм, пока функция Not Equal? не возвратит

True.

Поместите цикл While из палитры Structures на блокдиаграмму.

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

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

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

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

©National Instruments Corporation

3-36

Учебный курс LabVIEW Основы I

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]