лаб.работа 2. Лабораторная работа 2. Управление выполнением программы с помощью структур
Скачать 83.04 Kb.
|
Лабораторная работа №2. Управление выполнением программы с помощью структурЦель работы: ознакомление с основными структурами LabVIEW и их применением для управления выполнением ВП. Задание к лабораторной работеОзнакомиться с понятием структура в LabVIEW. Изучить цикл с фиксированным числом итераций. Изучить цикл по условию. Ознакомиться с понятием сдвигового регистра. Изучить структуру варианта. Создать ВП с применением структур. Сделать выводы. Заполнить отчет. Порядок выполнения работыОсновные понятия. Структуры - важный тип узла данных - управляют выполнением ВП аналогично операторам обычных языков программирования. Структуры расположены на палитре Functions>> Programming >> Structures. Для вызова палитры Functions щелкните правой кнопки мыши по любой области блок-диаграммы. Данные поступают в структуру и выходят из нее через маленькое окно на границе цикла, называемое точкой входа/выхода в структуру (tunnel). Поскольку LabVIEW работает в соответствии с принципом потока данных, то прежде чем цикл начнет выполняться, входные точки должны передать в него свои данные. Выходные точки цикла выводят данные лишь после завершения всех итераций. Для того чтобы терминал обновлял свои значения на каждой итерации цикла, терминал должен быть внутри цикла. Для организации повторения выполнения части кода в LabVIEW имеется две структуры циклов: цикл с фиксированным числом итераций (For Loop) и цикл по условию (While Loop) для управления повторяющимися операциями в виртуальном приборе (рисунок 2.1). Циклсфиксированнымчисломитераций(ForLoop)выполняет код внутри его границ определенное число итераций (count). Количество итераций устанавливается путем введения значения на вход терминала числа итераций (count terminal ). Если подключить к этому терминалу значение 0, цикл не будет выполняться. Рисунок 2.1 – Структуры For Loop и While Loop Терминал счетчика итераций содержит текущее число завершенных итераций цикла; 0- во время первой итерации, 1- во время второй и т.д. до N- 1, где N-заданное количество выполнений цикла. Цикл по условию (While Loop) выполняет код внутри его границ до тех пор, пока логическое значение (Boolean value), подключенное к терминалу условия выхода из цикла , не перейдет в состояние ЛОЖЬ (False). LabVIEW проверяет терминал условия выхода по окончании каждой итерации. Если значение соответствует ИСТИНА (True), то выполняется следующая итерация. По умолчанию терминал условия выхода находится в состоянии ЛОЖЬ. Если вы оставите его не подключенным, цикл выполняться не будет. Функции терминала счетчика итераций цикла по условию аналогичны терминалу с циклом с фиксированным числом итераций. Изменить состояние, которое проверяет терминал условия выхода из цикла, можно двумя способами: щелкнуть левой кнопкой мыши по терминалу или вызовом контекстного меню - щелкнуть правой кнопкой мыши по терминалу условия и выбрать опцию «Остановить, если истина» (Stop if True). Если раньше цикл выполнялся, пока на вход терминала поступало значение ИСТИНА (while true), теперь, если на вход поступит значение ИСТИНА (unless it's true), цикл остановится. В цикле по условию и в цикле с фиксированным числом итераций применяются сдвиговые регистры (shift regisers), являющиеся особым типом переменной, используемой для передачи величин из одной итерации цикла в следующую. Сдвиговый регистр создается нажатием правой кнопки мыши на левой или правой границе цикла и выбором опции Добавить сдвиговый регистр (Add Shift Register) в контекстном меню. Структураварианта(CaseStructure)является методом выполнения текста, содержащего условие, то есть аналогом оператора импликации (if- then-else). Структура варианта имеет две или более поддиаграммы или варианта. Лишь одна из них выполняется в зависимости от логического, числового или строкового значения, которое вы подаете на терминал селектора структуры варианта. Если к терминалу селектора структуры варианта подключено логическое значение, то структура будет иметь два варианта: ЛОЖЬ и ИСТИНА. Если к терминалу селектора подключены числовые или строковые данные, то структура может иметь почти неограниченное количество вариантов, начиная с нулевого. Для добавления вариантов необходимо щелкнуть правой кнопкой мыши по границе структуры варианта и в появившемся меню выбрать опции Add Case After (Создать вариант после ) или Add Case Before (Создать вариант перед) текущим вариантом. Аналогично можно удалить любой из вариантов. По умолчанию можно задать вариант (Default), который будет выполняться, если величина, подаваемая на терминал селектора структуры, не соответствует никакому другому варианту. УзелФормулаявляется окном с изменяемыми размерами для ввода алгебраических формул непосредственно в блок-диаграмму. Эта особенность особенно полезна, когда для вычисления необходимо использовать длинную формулу. Создание ВП с применением структур. СозданиеВПсприменениемциклапоусловиюисдвиговыхрегистров. Запустите LabVIEW и создайте новый ВП. Сохраните ВП под своим именем (WhileLoopVI_ФИО). Согласно рисунку 2.2 поместите на лицевую панель следующие элементы: четыре Numeric Indicator, расположенные на панели Controls в подпанели Modern>>Numeric и кнопку STOP, расположенную на панели Controls в подпанели Modern>>Boolean. Перейдите в окно блок диаграммы: поместите на блок-диаграмму структуру While Loop, расположенную на палитре Functions>> Programming >> Structures. Для вызова палитры Functions щелкните правой кнопки мыши по любой области блок-диаграммы; создайте константу, расположенную на палитре Functions>> Programming >> Numeric и поместите ее за пределами цикла; соедините константу с циклом, появится точка входа в структуру tunnel, щелкните правой кнопкой мыши по точке и из выпадающего меню выберите Replace With Shift Register; Рисунок 2.2 – Лицевая и функциональная панели ВП WhileLoopVI щелкните правой кнопкой мыши по сдвиговому регистру и добавьте еще два элемента; элемент Wait Until Next ms Multiple необходим для организации задержки между итерациями, расположен на палитре Functions>> Programming >>Timing. Щелкните правой кнопкой мыши по входу элемента и в открывшемся меню выберите Create Constant и введите число 1000 (мс); соедините элементы между собой согласно рисунку 2.2. Запустите ВП на исполнение. Для того чтобы понять принцип работы сдвиговых регистров, перейдите на блок-диаграмму и нажмите на кнопку «лампочка» . Данная функция отражает все потоки информации и их передвижение в программе. Остановите ВП, нажав на кнопку STOP. Сделайте выводы по работе цикла и сдвиговых регистров. СозданиеВПсприменением цикласфиксированнымчисломитерацийи узломФормула. Запустите LabVIEW и создайте новый ВП. Сохраните ВП под своим именем (ForLoopwithFormulaVI_ФИО). Поместите на лицевую панель элемент Waveform Chart, расположенный на панели Controls в подпанели Modern>>Graph. Перейдите в окно блок диаграммы и соберите код программы согласно рисунку 2.3, для этого: поместите на блок-диаграмму структуры For Loop и Formula Node, расположенные на палитре Functions>> Programming >> Structures. Для вызова палитры Functions щелкните правой кнопки мыши по любой области блок- диаграммы; щелкните правой кнопкой мыши по границе Formula Node и в появившемся меню выберите Add Input (x) и Add Output (y); внутри Formula Node запишите формулу y = xsin(x). Необходимо помнить, что имена чувствительны к регистру букв, а каждая строка заканчивается точкой с запятой (;); щелкните правой кнопкой мыши по входу терминала Loop Count цикла For Loop и создайте константу, задав 100 итераций; узлы сложения, деления и число пи расположены на панели Controls в подпанели Modern>>Numeric; соедините элементы между собой согласно рисунку 2.3. Рисунок 2.3 – Блок-диаграмма ВП ForLoopwithFormulaVI Перейдите на лицевую панель и запустите ВП, на графике должна отобразиться синусоида. СозданиеВПсприменениемструктурыварианта. Запустите LabVIEW и создайте новый ВП. Сохраните ВП под своим именем (CaseStructureVI_ФИО). Согласно рисунку 2.4 поместите на лицевую панель следующие элементы: Numeric Control и Numeric Indicator, расположенные на панели Controls в подпанели Modern>>Numeric. Рисунок 2.4 – Лицевая панель ВП CaseStructureVI Перейдите в окно блок диаграммы и соберите код программы согласно рисунку 2.5, для этого: поместите на блок-диаграмму структуру Case Structure, расположенную на палитре Functions>> Programming >> Structures. Для вызова палитры Functions щелкните правой кнопки мыши по любой области блок-диаграммы; элементы больше или равно и корень расположены на панели Controls в подпанели Modern>>Numeric; элемент диалоговое окно One Button Dialog расположен в на палитре Functions>> Programming >>Dialog & User Interface; соедините элементы между собой согласно рисунку 2.5. а) False-вариант б) True – вариант Рисунок 2.5 – Блок-диаграмма ВП CaseStructureVI Перейдите на лицевую панель и запустите ВП. Введите сначала положительное, затем отрицательное число и проверьте работу программы. Остановите ВП и опишите принцип работы программы. Самостоятельнаяработа. Создайте ВП в виде калькулятора. Лицевая панель должна иметь цифровые элементы управления для ввода двух чисел и числовой индикатор для показа результата операции (сложение, умножение или деление) над этими числами (рисунок 2.6). Используйте для данной операции ползунковый элемент управления. Назовите ВП Calculator.vi. Рисунок 2.6 – Лицевая панель ВП Calculator VI Контрольные вопросыЧто такое структура? Какие бывают структуры в LabVIEW? В соответствии с каким принципом работает LabVIEW? Принцип работы цикла по условию. Для чего используются сдвиговые регистры? Чем цикл по условию отличается от цикла с фиксированным числом итераций? Принцип работы структуры варианта. Зачем нужен узел Формула? |