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

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

G. Передача данных между итерациями

При программировании циклов часто приходится обращаться к данным предыдущей итерации. Например, если в каждой итерации требуется считывать какие-то данные и проводить усреднение по пяти итерациям, то необходимо запоминать данные четырех предыдущих итераций. Для передачи данных от одной итерации к другой используются сдвиговые регистры (shift registers).

Примечание Еще один способ сохранения данных предыдущей итерации — использование узлов обратной связи (Feedback Nodes). Вы можете прочитать о них в разделе Feedback Node справочной системы LabVIEW.

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

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

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

Для создания сдвигового регистра щелкните правой кнопкой на правой или левой стороне рамки цикла и выберите в контекстном меню Add Shift Register (Добавить сдвиговый регистр).

Сдвиговый регистр передает данные любого типа и автоматически настраивается на тип первого объекта, который с ним соединен. Данные, подаваемые на терминалы сдвигового регистра, должны быть одного типа.

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

Инициализация сдвиговых регистров

Инициализация сдвигового регистра позволяет задать значение, которое будет передано на первую итерацию цикла. Для

©National Instruments Corporation

3-43

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

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

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

На этом рисунке цикл For выполняется пять раз, увеличивая каждый раз значение в сдвиговом регистре на единицу. После пяти итераций последнее значение (5) передается на индикатор и ВП завершает работу. При каждом запуске ВП сдвиговый регистр получает значение 0.

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

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

На этом рисунке цикл For выполняется пять раз, увеличивая каждый раз значение в сдвиговом регистре на единицу. При первом запуске ВП в сдвиговом регистре будет 0, что является значением по умолчанию для 32-битового целого. После пяти итераций последнее значение (5) передается на индикатор и ВП завершает работу. При следующем запуске ВП сдвиговый регистр будет содержать 5, т. е. последнее значение с предыдущего запуска. После пяти итераций на индикатор будет выведено число 10. Если запустить ВП снова, начальным значением регистра будет 10, и т. д. Неинициализированные сдвиговые регистры удерживают значение с предыдущей итерации до тех пор, пока вы не закроете ВП.

Стек сдвиговых регистров

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

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

©National Instruments Corporation

3-44

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

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

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

©National Instruments Corporation

3-45

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

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