Лекция №5. Многократные повторения и циклы при создании ВП
Содержание лекции:цикл While; цикл For; узлы обратной связи; структура выбора Case; формульный блок Formula Node; последовательная структура Sequence Structure. Цель лекции:изучение основных структур среды LabView и их свойств, использование сдвиговых регистров и узлов обратной связи для организации доступа к значениям на предыдущих итерациях цикла
Структуры являются графическим представлением операторов цикла и операторов Case (Варианта), используемых в текстовых языках программирования. Структуры на блок-диаграмме используются для выполнения повторяющихся операций над потоком данных, операций в определенном порядке и наложения условий на выполнение операций. Среда LabVIEW содержит пять структур: Цикл While (по условию), Цикл For (с фиксированным числом итераций), структура Case (Вариант), структура Sequence (‘сиквенс) (Последовательность), структура Event (Событие), а также Formula Node (узел Формулы). Цикл While (по условию). Цикл While (по условию) работает до тех пор, пока не выполнится логическое условие выхода из цикла.
Цикл For (с фиксированным числом итераций). Цикл For (с фиксированным числом итераций) выполняет повторяющиеся операции над потоком данных определенное количество раз.
Организация доступа к значениям предыдущих итераций цикла. При работе с циклами зачастую необходим доступ к значениям предыдущих итераций цикла. Например, в случае ВП, измеряющего температуру и отображающего ее на графике, для отображения текущего среднего значения температуры необходимо использовать значения, полученные в предыдущих итерациях. Есть два пути доступа к этим данным: Shift Register (сдвиговый регистр) и Feedback Node (узел обратной связи). Сдвиговые регистры. Сдвиговые регистры используются при работе с циклами для передачи значений от текущей итерации цикла к следующей. Сдвиговые регистры аналогичны статическим переменным в текстовых языках программирования
Чтобы инициализировать сдвиговый регистр, необходимо передать на его левый терминал любое значение извне цикла. Если не инициализировать сдвиговый регистр, он использует значение, записанное в регистр во время последнего выполнения цикла или значение, используемое по умолчанию для данного типа данных, если цикл никогда не выполнялся. Предусмотрена возможность создания нескольких сдвиговых регистров в одной структуре цикла. Если в одном цикле выполняется несколько операций, следует использовать сдвиговый регистр с несколькими терминалами для хранения данных, полученных в результате выполнения различных операций цикла. На рисунке 5.1 показано использование двух инициализированных сдвиговых регистров.
Рисунок 5.1- Использование сдвиговых регистров в цикле For Узлы обратной связи. Можно поместить узел обратной связи внутри цикла While или For, выбрав Feedback Node (Узел обратной связи) в палитре Structures (Структуры). При помещении узла обратной связи на проводник данных до ответвления, передающего данные на выходной терминал цикла, узел обратной связи передает все значения на выходной терминал цикла. При помещении узла обратной связи на проводник после ответвления, передающего данные на выходной терминал цикла, узел обратной связи передаст все значения обратно на поле ввода данных ВП или функции, а затем передаст последнее значение на выходной терминал цикла. Структура выбора Case. В структуре выбора Case имеются две или более встроенных блок-схемы. Выбор одной из них определяется в зависимости от значения, поданного на вход данной структуры. Структура Case включает: 1) Терминал выбора «?». Значение, подаваемое на него, может быть целочисленным, логическим или строковым.
2) Переключатель блок-схем (True \ False \ и т.д.). Позволяет переходить от одной блок-схемы к другой. Содержит по умолчанию два окна True и False. При необходимости количество блок-схем выбора может быть увеличено. Кроме True и False, в качестве значений переключателя могут использоваться целые числа или строковые значения. В качестве примера использования структуры Case вместо функции Select приведена измененная блок-диаграмма ВП Термометр. На переднем плане структуры Case показан логический вариант TRUE (рисунок 5.2, а). а) б) в)
Рисунок 5.2 - Применение структуры Case в ВП Термометр: а – логический вариант TRUE; б – выбор варианта; в – логический вариант FALSE
Определение варианта осуществляется либо выбором значения на селекторе структуры Case, либо вводом значения с помощью инструмента ВВОД ТЕКСТА (рисунок 5.2, б). Выбранный вариант появляется на переднем плане, как показано на блок-диаграмме (рисунок 5.2, в). Значения селектора варианта должны быть того же типа, что и тип данных, подаваемых на терминал селектора варианта. Значение селектора варианта, окрашенное красным цветом, показывает, что его необходимо удалить или отредактировать, иначе ВП не будет выполняться. Нельзя подавать числа с плавающей точкой на терминал селектора варианта, так как возможны ошибки округления и возникновение ситуации неопределенности. Если подать число с плавающей точкой на терминал селектора варианта, LabVIEW округлит это значение до ближайшего четного целого. Если число с плавающей точкой введено непосредственно в селектор варианта, то оно окрашивается в красный цвет и должно быть удалено или отредактировано. Формульный блок Formula Node. Формульный блок Formula Node позволяет вводить формулы в обычном виде прямо в блок-схему. Особенно это удобно, когда выражение имеет много переменных и сложный вид. Формулы вводятся как простой текст. При этом создаются терминалы на границе блока (контекстное меню Add Input или Add Output), куда вписываются имена переменных. Каждое выражение заканчивается разделителем «;».
Узел Формулы может также использоваться для принятия решений. На следующей блок-диаграмме показан способ применения операторов if- then в узле Формулы. Рисунок 5.3 - Формульный блок Formula Node.
Последовательная структура Sequence Structure. Последовательная структура Sequence Structure выполняет встроенные в нее блок-схемы последовательно в определенном порядке. Количество встроенных блок-схем определяется числом фреймов данной структуры. Их количество увеличивается при помощи контекстного меню – Add Frame After, Add Frame Before. Для передачи значений переменных из фрейма в фрейм используются локальные переменные структуры (контекстное меню – Add Sequence Local variable), создаваемые на границе фрейма. Данные, связанные с такой переменной, доступны во всех последующих фреймах и не доступны в предыдущих.
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|