Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR№4_LV_Структуры и Циклы.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
321.02 Кб
Скачать

LabVIEW Лабораторная работа №10 12

Тема: организация ЦИКЛОВ

Цель работы: изучить теоретические данные об организации циклов, научиться самостоятельно создавать программы, используя новые функции.

Структуры – одни из самых важных объектов блок-диаграммы. С помощью структур можно осуществить повторение отдельных частей программы, выполнение той или иной части программы в зависимости от какого-либо условия, выполнение программы в строго определенном порядке. Некоторые структуры соответствуют циклу с фиксированным числом итераций (цикл For), циклу по условию (цикл While), оператору импликации (if then else). Вызвать любую структуру можно из палитры Functions=>Structures (рис. 1).

Рисунок 1 – Виды структур

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

Контекстное меню структуры вызывается при нажатии правой кнопки мыши на рамке структуры. Обобщенные для всех структур пункты контекстного меню:

Auto Grow – если флажок установлен, то при помещении объектов во внутрь структуры, она будет соответственно увеличивать размер.

Remove ... – удаление соответствующей структуры.

Replace with ... изменить уже существующую структуру на структуру другого вида, подобную по функциональности.

1 Цикл For

Цикл For выполняет участок программы расположенный в поддиаграмме цикла определенное количество раз. Выбрать его можно в палитре Functions (Функций). При этом изменится изображение курсора. Выделить область блок-диаграммы, в которой нужно разместить эту структуру. В процессе выделения не отпускать кнопку мыши. Отмеченная область выделяется штриховым контуром. Выбрав область, отпустить кнопку мыши. Структура окажется на блок-диаграмме. Если в выделенной области находились другие объекты блок-диаграммы, они помещаются в тело цикла. Добавить новый объект внутрь структуры можно простым помещением его в область структуры. Кроме основной рамки цикла в нем присутствуют два терминала:

– терминал общего числа итераций, определяет общее число итераций;

– терминал счетчика итераций, содержит номер текущей итерации, начиная с 0.

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

Число итераций цикла For должно быть известно до начала выполнения цикла. Имеется две возможности задать это число:

  1. непосредственно присоединить проводник к терминалу общего числа итераций ;

  2. присоединить к одному из входных терминалов массив. В этом случае структура сама разберет массив на элементы.

Цикл на рисунке 2 выполнится ровно 10 раз, терминал счетчика итераций будет принимать значения от 0 до 9. Цикл на рисунке справа выполниться столько раз, сколько элементов содержится в массиве, другими словами по итерации для каждого элемента массива. В случае если к терминалу ничего не присоединено и нет разбираемых (indexing) массивов, Lab VIEW выдаст сообщение об ошибке.

Рисунок 2 – Пример работы цикла For

1.1 Автоматическая индексация

Цикл For может автоматически разбирать массив на элементы на входе и собирать из отдельных элементов массив на выходе. Это свойство называется автоиндексацией.

Пример 1. Автоиндексация

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

Рисунок 3 – Пример работы автоиндексации

Автоиндексация отключается щелчком правой кнопки мыши по терминалу входа/выхода из цикла и выбором пункта контекстного меню Disable Indexing (рис. 4). На выходе из цикла автоиндексацию следует отключать, в случае, когда нужно знать только последнее значение, а на входе в цикл, в случае, когда каждой итерации необходим доступ ко всему массиву, а не только к одному очередному его элементу.

Рисунок 4 – Отключение автоиндексации

Пример 2. Окружность

Построим изображение окружности на графике (рис. 5). В данном примере для перевода градусов в радианы используется узел Convert Unit (преобразовать размерность Functions=>Numeric=>Conversion), который значения терминала счетчика итераций , подсчитываемые в градусах, переводит в радианы. Это позволяет использовать функцию Sine & Cosine, аргумент которой должен быть представлен в радианах. Далее массивы объединяются и выводятся на двухкоординатный график осциллограмм.

Рисунок 5 – Окружность

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