Лабораторная работа №6
Кластеры
1 Цель работы
Ознакомление с понятием кластеров, получение навыков работы с функциями кластеров.
2 Порядок выполнения работы
2.1 Создайте прибор, в котором осуществляется «разборка» кластера.
2.1.1 Поместите на переднюю панель оболочку кластера (палитра All Controls->Array & Cluster).
2.1.2 Разместите внутри оболочки следующие управляющие элементы: Numeric Control, Push Button, String Control.
2.1.3 Поместите на блок-диаграмму функцию Unbundle (All Functions->Cluster) и соедините её вход с терминалом кластера.
2.1.4 Для всех выводов функции Unbundle создайте индикаторы.

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

2.1.6 Разместите субприбор в головном приборе, и соедините его выход со входом функции Unbundle, при этом добейтесь того, чтобы это выходное значение имело индикатор на передней панели. Исследуйте работу прибора.
2.2 Отремонтируйте прибор, в котором управляющий элемент-кластер не совпадает с индикатором-кластером.
2.2.1 Откройте прибор Кластеры-01-порядок. vi (из D:\user\Course\Exercises\LV Basics I\).
2.2.2 Переупорядочите составляющие кластера-индикатора так, чтобы его тип соответствовал типу кластера-управляющего элемента, путем выбора в контекстном меню (правый клик по рамке кластера) пункта Reorder Controls In Cluster.
2.3 Создайте прибор, в котором осуществляется «сборка» и «разборка» кластера
2.3.1 Откройте прибор Кластеры-02-функции. vi (из D:\user\Course\Exercises\LV Basics I\).
2.3.2 Воспользуйтесь функциями Bundle и Unbundle палитры All Functions->Cluster, чтобы обеспечить вывод информации с кластера-управляющего элемента на кластер-индикатор без изменения порядка элементов кластеров.
3 Контрольные вопросы
3.1 Что такое кластер?
3.2 Какому понятию в С++ аналогичен кластер?
3.3 При каких условиях один тип кластера будет идентичен другому?
Лабораторная работа №7
Последовательности
1 Цель работы
Ознакомление с понятием структуры языка последовательности, получение навыков создания последовательности и работы с её внутренними переменными.
2 Порядок выполнения работы
2.1 Создайте прибор, вычисляющий время выполнения определенного количества операций.
2.1.1 Разместите на передней панели числовое поле ввода типа I32 с названием «Количество итераций», числовой индикатор типа DBL с названием «Время работы» и числовой индикатор типа DBL с названием «Скорость выполнения операций».
2.1.2 Разместите на блок-диаграмме структуру Stacked Sequence Structure из палитры All Functions->Structures. Поместите внутрь неё функцию Tick Count(ms) из палитры All Functions->Time & Dialog. Добавьте в этот кадр последовательности локальную переменную, выбрав в контекстном меню на рамке последовательности пункт Add Sequence Local. Соедините выход функции Tick Count (ms) с этой локальной переменной.
2.1.3 Добавьте следующий кадр в последовательность, выбрав в контекстном меню на рамке последовательности пункт Add Frame After. Разместите в нём цикл типа For, на вход количества итераций которого подайте значение терминала поля ввода «Количество итераций». Разместите внутри цикла операцию вычисления квадратного корня из случайного числа (функции Random Number (0-1) и Square Root палитры All Functions->Numeric). Обеспечьте вывод количества итераций в локальную переменную.
2.1.4 Добавьте еще один кадр в последовательность. В нём разместите функцию Tick Count (ms), и реализуйте вычисление разницы времен с переводом единиц в секунды, а также скорости выполнения операций, с выводом результатов на соответствующие индикаторы передней панели.

2.1.5 Исследуйте работу прибора
2.2 Создайте прибор, реализующий последовательное зажигание лампочек – «бегущий огонёк».
2.2.1 Поместите на передней панели 4 индикатора типа Round LED.
2.2.2 Откройте диалог настроек виртуального прибора, выбрав в контекстном меню на пиктограмме ВП пункт VI Properties. Перейдите к категории Execution, и выставьте флажок Clear Indicators When Called.
2.2.3 Разместите на блок-диаграмме структуру Flat Sequence Structure. Создайте в ней 4 кадра, и разместите в каждом по одному индикатору Round LED, и подайте на вход каждого значение логической истины (true). Создайте промежуточные кадры, в котором бы осуществлялась задержка выполнения программы.

2.2.4 Изучите работу прибора.
3 Контрольные вопросы
3.1 Как с помощью структуры последовательности можно обеспечить порядок выполнения программы?
3.2 Чем отличаются структуры Flat Sequence и Stacked Sequence друг от друга?
3.3 В какой момент данные, помещенные в выходной туннель в первом кадре многокадровой последовательности, выйдут за пределы структуры?
3.4 Каким способом можно передать данные в следующий кадр в структуре Stacked Sequence?
Лабораторная работа №8
Принятие решений
1 Цель работы
Знакомство со структурами принятия решений в виртуальных приборах, получение навыков их применения
2 Порядок выполнения работы
2.1 Создайте прибор, осуществляющий выбор с помощью функции Select.
2.1.1 Поместите на блок-диаграмму прибора функцию Select из палитры All Functions->Comparison. Разместите также приборы Digital Thermometer. vi (из C:\Program Files\National Instruments\LabVIEW 7.1\activity\) и субприбор преобразования значений температуры по шкале Цельсия в значения по шкале Фаренгейта.
2.1.2 Разместите на передней панели переключатель типа Vertical Slide Switch и численный индикатор типа DBL.
2.1.3 Соедините элементы так, чтобы управляя значением переключателя, выводить на экран значения температуры в градусах Цельсия или Фаренгейта.

2.1.4 Исследуйте работу прибора.
2.2 Создайте прибор, осуществляющий выбор с помощью конструкции Case.
2.2.1 Замените в предыдущем приборе функцию Select конструкцией Case. При этом подайте значение с переключателя на селектор конструкции Case.

2.2.2 Исследуйте работу прибора.
2.2.3 Модернизируйте прибор для того, чтобы можно было выводить значения температуры по шкале Реомюра. Замените для этого переключатель на элемент Menu Ring из палитры All Controls->Ring&Enum, и соедините его терминал с селектором конструкции Case. Добавьте в конструкции Case еще один фрейм.
2.2.4 Поместите на блок-диаграмму субприбор, выполняющий преобразования значения температуры по шкале Цельсия в значения по шкале Реомюра, и соедините его вход с выходом прибора-термометра, а выход подайте на конструкцию Case.
2.2.5 Обеспечьте выбор конструкцией Case одного из трех вариантов поведения – вывода значения в градусах Цельсия, Фаренгейта или Реомюра.
2.3 Реализуйте прибор, использующий ветвления в конструкции узла формулы (Formula Node)
2.3.1 Замените в приборе из первого пункта данной лабораторной работы на блок-диаграмме функцию Select на узел формулы (Formula Node из палитры All Functions->Structures). Разместите в узле формулы 3 входа (x1, x2, s) и один выход. Разместите также функцию Boolean To (0,1) (из палитры All Functions->Boolean) и подайте на её вход значение с переключателя, а с выхода заведите проводник на вход s узла формулы. Входы x1, x2 соедините соответственно с выходом прибора-термометра и выходом субприбора преобразования в шкалу Фаренгейта.
2.3.2 Разместите в узле формулы следующий текст:
if (s == 0)
y=x1;
else
y=x2;

2.3.3 Исследуйте работу прибора.
2.3.4 Измените прибор так, чтобы при превышении порогового значения выводился сигнал, извещающий оператора об этом событии. Заведите для этого дополнительный выход на узле формулы.
3 Контрольные вопросы
3.1 Какая особенность использования выходного туннеля имеется у конструкции Case?
3.2 Какие ограничения существуют на тип данных, подаваемых на селектор конструкции Case?
3.3 Какие преимущества и недостатки имеет узел формулы при использовании его для принятия решения по сравнению с конструкцией Case?


