Uploaded by Ilya Sorin

метода 1-3 занятия LV8 red

advertisement
9
Занятие 1. ЗНАКОМСТВО С LABVIEW
Цель работы: получить общее представление о системе виртуальных
приборов LabVIEW.
1.1. Виртуальные приборы
Программа, написанная в среде LabVIEW, называется виртуальным
прибором. Виртуальный прибор (VI) состоит из лицевой панели (front panel),
блок-диаграммы (block diagram) и пиктограмм/коннекторов (icon/connector).
Лицевая панель является интерфейсом с пользователем, блок-диаграмма –
исходным кодом VI, а пиктограмма/коннектор – интерфейсом вызова функций. Блок-диаграмма включает в себя ввод-вывод данных, вычисления и
виртуальные приборы нижнего уровня (subVI), которые представлены пиктограммами и связаны линиями, определяющими потоки данных. Компоненты ввода-вывода взаимодействуют непосредственно с платами сбора данных,
а также с другими внешними физическими приборами. Вычислительные
компоненты выполняют арифметические и другие операции. SubVI вызываются другими виртуальными приборами, посылая и получая данные через
свои пиктограммы/коннекторы.
Виртуальный прибор, используемый в этой работе (рис. 1.1), моделирует тест для получения частотной характеристики, в котором генератор
функций обеспечивает подачу синусоидального сигнала на тестируемое
устройство (ТУ), в данном примере это полосовой фильтр. В то же время
Цифровой
мультиметр
Тестируемое
устройство
Генератор
сигналов
Рис. 1.1
Плата
интерфейса
ПК
10
цифровой мультиметр измеряет выходное напряжение ТУ. Данный VI получает коэффициент усиления ТУ в заданном диапазоне частот (в нашем примере амплитудно-частотную характеристику фильтра) и рисует результат в
виде графика.
1.2. Запуск виртуального прибора
1. Запустите версию LabVIEW 7.1.
2. Выберите пункт Open… В открывшемся окне диалога откройте папку
LabVIEW7.1\examples\apps и выберите библиотеку freqresp.llb. В демонстрационных версиях системы LabVIEW виртуальные приборы сохраняются в специальном формате и скомпонованы в библиотечных файлах с
расширением *.llb. Загрузите содержащийся в ней виртуальный прибор
Frequency Response.vi (Частотная характеристика). Появится лицевая панель Frequency Response.
1.3. Лицевая панель
Лицевая панель (Front Panel) служит интерактивным интерфейсом для
обеспечения ввода данных и вывода результатов в измерительной системе.
При перемещении курсора по различным элементам лицевой панели
он автоматически изменяет свой внешний вид, переключаясь в различные
инструменты (редактирования, управления, надписи).
1. Наведите курсор на круглый регулятор High Frequency (Верхняя частота),
нажмите на левую кнопку мыши и поверните регулятор. Установите верхнюю частоту 1000.00.
2. Нажмите кнопку Run (Запуск) для начала работы VI. Результатом работы
данного VI будет кривая частотного отклика на дисплее.
3. Измените положение регуляторов High Frequency и Low Frequency. Посмотрите кривую отклика системы.
1.4. Блок-диаграмма
Блок-диаграмма (Block Diagram) является исходным кодом виртуального прибора. Вы строите блок-диаграмму, выбирая функциональные блоки
из палитры Functions. Затем соединяете блоки линиями, называемыми проводниками (wires), для прохождения данных от одного блока к другому. Эти
блоки могут быть арифметическими функциями, виртуальными приборами
11
для сбора данных и анализа, сетевыми функциями и функциями вводавывода, которые записывают и восстанавливают данные в бинарном, ASCII
или в табличном виде.
Выберите пункт Show Block Diagram (Показать блок-диаграмму) из
меню Window. Появится блок-диаграмма. Возьмите ее за заголовок и перенесите так, чтобы одновременно была видна и лицевая панель прибора.
Оранжевые прямоугольники в левой части блок-диаграммы представляют собой терминалы (terminals) для соответствующих органов управления
на лицевой панели. Чтобы узнать, какому органу управления или индикатору
соответствует данный терминал, дважды щелкните по терминалу мышью.
Каждый терминал, так же как и соответствующий ему элемент лицевой панели, имеет метку с названием (Label). Например, первый терминал имеет
метку Number of Steps (Количество шагов). Чтобы показать (убрать) метку,
спозиционируйте на терминал курсор и при нажатой правой кнопке выберите Visible Items >> Label. Диаграмма содержит также пиктограммы, представляющие функции. Данные текут по проводникам, которые соединяют
пиктограммы и терминалы. Тип данных (data type) определяет форму проводника: тонкие линии показывают скалярные числовые данные, толстые –
массивы и самые широкие – совмещенные (bundled) данные.
1.5. Поточное программирование
Функциональные пиктограммы и структуры, например цикл For (For
Loop), часто рассматриваются как узлы (nodes). Каждый узел начинает действовать только тогда, когда данные доступны на всех его входах. Когда узел
закончит работу, данные появятся на его выходах. Такой управляемый данными метод выполнения программ называется поточным (data flow).
Поточное программирование освобождает нас от линейной архитектуры текстовых языков. Так как порядок выполнения программы в LabVIEW
устанавливается течением данных между узлами, а не последовательностью
строк текста, можно создавать диаграммы, которые имеют несколько параллельных потоков прохождения данных и одновременных операций.
LabVIEW обеспечивает прохождение нескольких потоков данных и выполнение независимых блоков одновременно.
12
1.6. Структуры программирования
В то время как потоки данных предпочтительны для параллельных
операций, можно задавать и специальный порядок выполнения. LabVIEW
предлагает такие программные структуры, как итерационный цикл, последовательный цикл и оператор выбора (case) для повторяющихся, последовательных или разветвляющихся операций. Эти структуры представлены как
графические рамки, окаймляющие управляемые пиктограммы.
Например, структура цикла For выполняет пиктоТерминал счета
граммы, заключенные в рамку, установленное количество
раз, соответствующее значению, которое подается на терТерминал
минал счета (count terminal). Терминал итераций (iteration
итераций
terminal) показывает текущую итерацию. Он получает
значения от 0 до N – 1.
В этом примере структура цикла For выполняет
Цикл For
свою поддиаграмму столько раз, сколько задается органом управления Number of Steps на лицевой панели. Во время каждой итерации узел Formula Node (Узел Формула) в цикле For вычисляет увеличенную частоту, и генератор функций Stimulate UUT выдает тестовый сигнал
заданной амплитуды и увеличенной частоты. Затем вольтметр измеряет ответ тестируемого устройства.
По завершении последней итерации VI преобразует массив данных коэффициентов усиления ТУ в децибелы, вычисляя 20 log(y) для каждого значения коэффициента y. Затем VI группирует два выходных массива (частота
и соответствующий коэффициент усиления) и посылает результат на терминал дисплея.
Структура Sequence (Последовательность) выполняет
несколько вложенных в ее границы поддиаграмм в соответствии с присвоенными им номерами. В обычном языке
программирования последовательность строк диктует порядок выполнения программы. В LabVIEW объекты (узлы)
Структура
могут выполняться параллельно, если между ними нет соSequence
единений. Структура Sequence используется для упорядочения последовательности выполнения узлов, которые должны выполняться
друг за другом, но не имеют общих проводников данных.
13
Дважды щелкните по узлу Stimulate UUT, чтобы открыть генератор
функций, и перейдите на его блок-диаграмму. Нажимайте на стрелку с любой стороны от числа в верхней части структуры Sequence для показа различных поддиаграмм. В этом примере последовательно выполняются пять
кадров структуры Sequence.
1.7. Модульность и иерархия
LabVIEW по своей структуре является модульной средой, т. е. любой
VI может использоваться в блок-диаграмме другого виртуального прибора
как subVI. Разбив свою программную систему на subVI, можно разработать
независимо и интерактивно протестировать эти subVI и тут же использовать
их как узлы для построения более сложного уровня VI. Использование модульной иерархии позволяет эффективно разрабатывать, модифицировать,
заменять и комбинировать виртуальные приборы для удовлетворения изменяющихся требований конкретного приложения.
1. Вернитесь на блок-диаграмму Frequency Response.vi и выберите Show
Context Help (Показать контекстную справку) из меню Help. Наведите
курсор на пиктограмму узла Measure Response для показа его терминалов в окне справки Context Help. Этот
виртуальный прибор имитирует цифровой мультиметр
Demo Fluke 8840A.
2. Нажмите дважды на узел Measure Response для открыПиктограмма
тия лицевой панели Demo Fluke 8840A.vi.
Demo Fluke
Лицевая панель VI является аналогом лицевой пане8840A
ли физического прибора – мультиметра, с той разницей,
что лицевая панель виртуального прибора содержит только необходимые для
решения данной задачи органы управления и индикаторы. В этом примере
приборный драйвер VI содержит органы управления для параметров
Function (Функция), Range (Шкала), Trigger Mode (Режим) и индикатор для
визуализации результатов измерений.
Ползунковый регулятор (slide control) позволяет выбрать один из нескольких вариантов. На этой лицевой панели параметр функции задается таким ползунковым регулятором.
Кольцевой регулятор (ring control) позволяет выбирать одно из нескольких значений шкалы, содержащихся в замкнутом в кольцо списке. Ор-
14
ганы управления Range (Шкала), Trigger (Триггер) на этой панели – кольцевые регуляторы. Нажатие на стрелки регулятора инструментом Оператор
изменяет значение на дисплее на предыдущую или последующую позицию в
кольцевом списке. Выбрать позицию можно также из меню, щелкнув левой
кнопкой мыши по текстовому окну.
3. Можно просмотреть всю иерархию виртуальных инструментов, если выбрать пункт меню Browse >> Show VI Hierarchy. Дважды щелкнув по
любой пиктограмме в появившемся Hierarchy Window (Окно Иерархии),
можно перейти в диаграмму соответствующего subVI, и таким образом
изучить все уровни иерархии. Вы можете запустить отдельно subVI с открытием его лицевой панели для отслеживания прохождения данных между уровнями VI. Эта технология удобна для отладки программных и аппаратных модулей.
4. Закройте окно иерархии и окно справки Help.
5. Закройте все открытые VI, выбрав команду Close из меню File. Когда в окне
диалога появится запрос на сохранение изменений, нажмите кнопку No.
Занятие 2. МОДЕЛИРОВАНИЕ ЭКСПЕРИМЕНТАЛЬНОЙ
УСТАНОВКИ. ЦИФРОВОЙ ТЕРМОМЕТР
Цель работы: изучение основ техники построения виртуальных приборов на примере создания простого VI, моделирующего цифровой термометр.
Термокамера
Плата сбора
данных
Рис. 2.1
ПК
15
Эта работа представляет собой первую часть цикла построения VI,
состоящего из двух модулей:
 цифрового термометра;
 монитора и управления температурой.
Представьте, что необходимо измерять внутреннюю температуру камеры. У вас есть датчик или преобразователь, преобразующий температуру в
напряжение (термопара или терморезистор). Этот датчик подключается к
плате сбора данных, преобразующей напряжение в цифровые данные. Вы
можете поместить датчик внутри камеры, как показано на рис. 2.1, и получать значения температуры.
2.1. Создание VI
Запустите LabVIEW. После загрузки щелкните клавишу New…, потом
Blank VI (Чистый VI). На экране появится окно лицевой панели без названия (Untitled 1 Front Panel) и за ним – соответствующее окно диаграммы
(Untitled 1 Block Diagram). Измените размеры окон и расположите их так,
чтобы они не перекрывали друг друга.
2.1.1. Создание лицевой панели (Front Panel)
1. Манипуляции с объектами в LabVIEW (перемещение, соединение, изменение размеров и цвета, редактирование надписей и т. д.) осуществляются
с помощью Палитры инструментов (Tools Palette) (рис. 2.2). Выберите
пункт меню View >> Tools Palette и переместите появившуюся палитру на
свободное место экрана.
2. Для создания новых объектов в разрабатываемом виртуальном приборе
служит Палитра объектов (Controls Palette). Чтобы вывести ее на экран,
можно воспользоваться пунктом меню View >> Controls Palette или, что
удобнее, щелчком правой кнопки мыши. Для этого поместите курсор в
центре окна лицевой панели, нажмите и удерживайте правую кнопку мыши, пока не появится всплывающее (pop-up) меню Controls.
3. Выберите подпункт меню Modern, затем переместите курсор на пункт
Numeric и затем дальше в появившуюся палитру. При прохождении курсором пунктов палитры названия соответствующих элементов появляются
сверху окна палитры. Щелкните кнопкой мыши, когда курсор будет находиться на пиктограмме термометра (Thermometer). Поместите контур тер-
16
Автоматический выбор
инструмента вкл/выкл
Оператор
(Operate Value)
Перемещение
(Position)
Соединение
(Connect Wire)
Надпись
(Edit Text)
Точка
прерывания
вкл/выкл
Цвет
(Set Color)
Рис. 2.2
мометра в центр лицевой панели и закрепите его, снова щелкнув левой
кнопкой.
4. Измените граничные значения шкалы термометра. Выделите 0, щелкнув
по нему два раза, затем на берите “70” и нажмите <Enter> (или левую
кнопку мыши на свободной части лицевой панели). Также измените 100 на
90. LabVIEW автоматически изменит промежуточные значения шкалы.
2.1.2. Создание блок-диаграммы
Для того чтобы увидеть значения температуры, необходимо преобразовать измеренное прибором напряжение в градусы, используя метод, соответствующий имеющемуся температурному датчику. Создавая диаграмму,
вы программируете VI для выполнения этой задачи. В текущем примере мы
полагаем, что датчик имеет линейную зависимость выходного напряжения
от температуры, поэтому достаточно простого масштабирования входного
сигнала.
Выберите Show Block Diagram из меню Window. В активном окне появится блок-диаграмма (Untitled 1 Block Diagram). Она уже содержит терминал для индикатора температуры и созданную вами метку. Если метки не
видно, вызовите всплывающее меню (нажмите на правую кнопку мыши на
терминале), выберите пункт Visible Items >> Label.
17
2.1.3. Манипулирование объектами
1. Переключитесь на лицевую панель. В версии LabVIEW 7 реализована возможность автоматического переключения инструментов. Сейчас отключите эту опцию (см. рис. 2.2) и выберите инструмент Перемещение.
Нажмите левую кнопку мыши на объекте для его выбора. Выбранный
объект показывается с пунктирной “бегущей” границей, называемой “шатер”. Теперь можно удалить (Delete), вырезать (Edit >> Cut), скопировать
(Edit >> Copy) или переместить выбранный объект. Щелкните кнопкой мыши на свободном месте для отмены выбора. Пункт меню Edit >> Undo, как
обычно, позволяет отменить последнюю введенную команду.
Используя инструмент Перемещение, можно изменить размер объекта. Объект с изменяемым размером имеет манипуляторы размера (resizing
handles), обычно по периметру объекта. Когда инструмент Перемещение
накрывает одну из этих точек, он превращается в двунаправленную стрелку.
Нажмите левую кнопку мыши и, не отпуская ее, измените размер объекта.
2. На блок-диаграмме передвиньте индикатор температуры с помощью инструмента Перемещение в правую часть диаграммы (при нажатой на терминале левой кнопке мыши). Перемещение
терминала перемещает и метку.
2.1.4. Сбор значений температуры
Создадим узел, который будет имитировать
программирование платы сбора данных и возвращать значение напряжения. Затем преобразуем это значение в соответствующее значение
температуры:
1. Вызовите всплывающее меню Functions в левой части окна Block Diagram (с помощью
правой кнопки мыши) и выберите пункт Select
a VI... Далее из указанного преподавателем
места выберите Demo Voltage Read.vi (Чтение
напряжения.VI). Этот прибор имитирует считывание данных с температурного датчика.
2. Затем вызовите всплывающее меню Functions
Select
a VI...
Меню Functions
18
между узлом Demo Voltage Read.vi и терминалом Thermometer. Выберите
функцию Multiply (Умножение) из палитры Numeric.
3. Вновь вызовите всплывающее меню ниже узла Demo Voltage Read.vi и
выберите цифровую константу из той же палитры. В подсвеченный дисплей константы введите значение 100.0 и нажмите
<Enter>. Если дисплей константы оказался неподсвечен123
ным или вы хотите ее изменить, выберите инструмент
Цифровая
Оператор. Затем дважды щелкните в области дисплея
константа
константы для выделения текущего значения и введите
новое.
4. Используя инструмент Перемещение, разместите объекты блокдиаграммы, как показано на рис. 2.3.
Thermometer
Рис. 2.3
2.1.5. Соединение объектов
1. Выберите инструмент Соединение.
2. Переместите инструмент Соединение на узел Demo Voltage Read. Узел
покажет все его доступные терминалы, при этом один из терминалов замигает, сообщая, что можно начать соединение. Выберите правый терминал узла. Нажмите и отпустите левую кнопку мыши, зафиксировав один конец проводника, и переместите мышь
вправо.
3. Загните проводник вниз. Для того чтобы сделать второй
Инструмент
изгиб, нажмите левую кнопку мыши. Это закрепит проСоединение
водник, и вы сможете изменить направление. Переместите
19
инструмент Соединение на узел Multiply и соедините проводник с верхним левым входным терминалом узла. Нажмите левую кнопку мыши для
окончания операции.
Сплошная линия показывает хорошее соединение между узлами Demo
Voltage Read и Multiply. Пунктирная линия говорит о плохом соединении
или плохом проводнике (broken wire). Если у вас получился плохой проводник, выберите Remove Broken Wires (Удалить плохие проводники) из меню
Edit и соедините эти узлы еще раз.
4. Соедините цифровую константу со вторым входным терминалом узла
Multiply, а выходной терминал узла Multiply – с терминалом индикатора
температуры.
5. Если стрелка на кнопке Run (Запуск) “разорвана”, это значит,
что в блок-диаграмме есть ошибка и VI не может быть скомпилирован. Выберите Remove Broken Wires из меню Edit.
Кнопка
После удаления всех плохих проводников стрелка на кнопке
Запуск
Запуск вновь станет целой.
2.2. Запуск VI
1. Запустить VI возможно или из окна лицевой панели Front Panel, или из окна блок-диаграммы Block Diagram. Переключитесь на инструмент Оператор и выберите Show Front Panel из меню Window.
2. Нажмите на кнопку Запуск. Это переведет программу в режим выполнения и запустит VI, который покажет значение температуры на термометре.
2.3. Сохранение VI
Выберите команду Save (Сохранить) из меню File и сохраните разработанный виртуальный прибор под именем “Digital Thermometer”.
2.4. Создание пиктограммы и коннектора
Разработанный Digital Thermometer.vi будет являться частью (модулем)
виртуального прибора более высокого уровня, предназначенного для управления температурным режимом. Для вызова вашего Digital Thermometer.vi из
блок-диаграммы другого VI необходимо создать для него пиктограмму и
коннектор. Пиктограмма является графическим идентификатором VI,
например, на рис. 2.3 пиктограмма Volt.Read является графическим иденти-
20
фикатором виртуального прибора более низкого уровня (subVI). Коннекторы
определяют органы управления (они называются Controls) и индикаторы (Indicators) соответственно для входных и выходных терминалов.
2.4.1. Создание пиктограммы
1. Сделайте активным окно лицевой панели.
2. Нажмите правую клавишу мыши на пиктограмме в правом верхнем углу
окна лицевой панели и выберите Edit Icon… (Редактировать пиктограмму)
из выпадающего меню.
3. Появится окно редактора пиктограмм (Icon Editor). Используя инструменты слева от пиктограммы, сотрите
стандартную иконку и создайте свой точечный рисунок на
редактируемой площадке. Изображение пиктограммы в
реальном размере появится в одном из квадратов справа
от редактируемой площадки.
4. Нажмите кнопку OK в окне редактора пиктограмм, когда закончите рисовать. Ваша пиктограмма заместит стандартную в правом верхнем углу окна лицевой панели.
2.4.2. Создание коннектора
Виртуальный прибор верхнего уровня посылает данные в subVI и получает их из него через терминалы, расположенные на поверхности коннектора subVI. Вы устанавливаете соединение, выбирая на поверхности коннектора терминал, который необходимо соединить с соответствующим этому
терминалу органом управления или индикатором на лицевой панели. Терминалы на поверхности коннектора определяются только для органов управления и индикаторов, которые вы будете использовать в программах в дальнейшем.
1. Нажмите правую кнопку мыши на только что созданной пиктограмме и
выберите Show Connector (Показать коннектор) из всплывающего меню.
LabVIEW покажет начальный коннектор, который соответствует количеству входов и выходов у VI. Появившийся в этом примере коннектор имеет один терминал. Для просмотра других возможных коннекторов нажмите правую кнопку мыши на коннекторе и вызовите Patterns (Образцы).
21
2. Выберите инструмент Соединение и нажмите на терминал коннектора.
Он станет черным. Затем нажмите на индикатор температуры. Терминал
коннектора при этом изменит цвет, а вокруг индикатора появится шатер.
Привязка терминала коннектора к элементу на этом заканчивается. После
этого щелкните мышью в свободном месте лицевой панели.
3. Вызовите всплывающее меню на коннекторе и выберите Show Icon.
4. Сохраните и закройте VI командой Close из меню File.
Занятие 3. ВИРТУАЛЬНЫЙ ПРИБОР РЕГУЛЯТОРА
ТЕМПЕРАТУРЫ
LabVIEW имеет модульную иерархическую структуру, в которой VI
может вызывать другой VI. Вы можете разбить ваше приложение на части и
конструировать VI для решения конкретной задачи. Вызывая эти VI из программ более высокого уровня, можно создавать сложные тестовые и измерительные системы. Таким образом, создав собственные библиотеки модулей,
вы расширяете стандартные возможности LabVIEW и экономите свое время.
В этой работе вы будете использовать виртуальный прибор, созданный на
занятии 2, как subVI в виртуальном приборе высокого уровня, который будет
отслеживать значения температуры, получаемые данным subVI.
Представьте себе, что вы хотите контролировать внутреннюю температуру камеры, описанной в занятии 2. Требуется создать VI, который будет
получать значение температуры несколько раз в секунду и визуализировать
значения на графике. Создадим такой виртуальный прибор, используя
Digital Thermometer VI из предыдущего занятия.
3.1. Создание панели
1. Откройте новый виртуальный прибор, выбрав New… >> Blank VI. Создаваемому виртуальному прибору нужны переключатель на лицевой панели
для запуска-останова сбора данных и дисплей для визуализации температуры.
2. Выберите вертикальный переключатель (Vertical Switch) из палитры Modern >> Boolean меню Controls. Сотрите над переключателем подсвеченную метку “Boolean” и введите “Power (Питание)”. Нажмите кнопку
22
<Enter> на цифровой клавиатуре. Если метка пропадет, вызовите всплывающее меню (нажмите на правую кнопку мыши на регуляторе) и выберите пункт Visible Items >> Label (Показать метку).
3. Выберите ленточный график (Waveform Chart) из палитры Graph Indicator меню Controls. Его физический аналог – однокоординатный
ленточный само-писец. Назовите дисплей “Temperature History”.
Расположите элементы лицевой панели, как показано на рис. 3.1.
4. Измените размер шкалы значений
температуры. С помощью инструмента
Стрелка
Оператор дважды щелкните пона
нижнему
кнопке пределу шкалы и наберите “70”.
Измените также верхнее значение
шкалы ленточного графика на “90”.
Запуск
сломана автоматически, как только вы
Промежуточные значения установятся
нажмете <Enter>. Щелчок клавишей мыши в произвольном месте или на
кнопке <Enter> тоже закончит установку шкалы.
5. Измените исходный черно-белый цвет дисплея. Для этого
выберите инструмент Цвет и щелкните на дисплее правой
клавишей мыши. Остановитесь указателем мыши на выбранном цвете всплывающей цветовой палитры (Color
Инструмент
picker), рис. 3.2, и зафиксируйте выбранный цвет щелчком
Оператор
любой клавишы мыши. Верхний ряд цветовой палитры со-
23
Рис. 3.2
держит оттенки серого (Grayscale), второй спектр содержит спокойные
цвета, рекомендуемые для раскрашивания объектов, третий спектр содержит яркие цвета для акцентирования и выделения. Щелчок по кнопке в
правом нижнем углу открывает новое окно, в котором можно настроить
дополнительные цвета пользователя. При желании измените цвета других
элементов лицевой панели виртуального прибора. Если вы хотите отменить операцию раскрашивания, используйте пункт меню Edit >> Undo.
Обратите внимание на то, что информация о выбранных вами цветах суммируется в нижнем ряду (History) цветовой палитры.
6. Переключитесь в инструмент Оператор.
3.2. Создание диаграммы
1. Выберите Show Block Diagram из меню Window. Выберите затем
инструмент Перемещение и, если необходимо, переместите терминалы в
окне блок-схемы.
2. На свободном месте нажатием на правую клавишу мыши вызовите всплывающее меню Functions и выберите пункт Select a VI... В появившемся
окне диалога выберите виртуальный прибор Digital Thermometer.vi, созданный на предыдущем занятии.
3. Подсоедините пиктограмму Digital Thermometer к терминалу ленточного
графика.
24
Внимание! Разорванная линия между пиктограммой Digital Thermometer и
терминалом ленточного графика может означать, что вы неправильно определили коннектор терминала для индикатора лицевой панели. Выберите пункт Show Context Help из меню Help.
Подведите курсор к пиктограмме Digital Thermometer для демонстрации его коннекторов. Если пиктограмма не имеет выхода
температуры, обратитесь к 2.4.2.
3.2.1. Использование цикла While Loop
Если вы сейчас запустите свой VI, он прочитает одно значение температуры и покажет его на графике. Для многократного повторения измерений
нужно использовать циклическую процедуру. В LabVIEW существуют две
структуры, обеспечивающие циклическое повторение действий: For Loop
(Выполнять действие заданное количество раз) и While Loop (Выполнять,
пока...). Сейчас воспользуемся циклом While Loop; измерения будут выполняться, пока включен тумблер Power.
While Loop представляет собой условную циклическую структуру: она имеет терминал условия (conditional
Терминал
terminal), к которому вы подводите булевскую переменусловия
ную (“истина” или “ложь”), и переменную итерации, которая хранит значение текущей итерации. Поддиаграмма
(диаграмма в рамке) выполняется до тех пор, пока услоЦикл
вие истинно. (Это свойство структуры While Loop при
While
желании можно изменить на противоположное.)
1. Выберите структуру While Loop из палитры Programming >> Structures
меню Functions. Когда появится узел While Loop, возможно, он закроет
некоторую часть пиктограмм и терминалов на блок-диаграмме. В этом
случае
передвиньте
рамку
структуры,
используя
инструмент
Перемещение.
2. На свободном месте блок-диаграммы раздвиньте рамку узла While Loop
так, чтобы она смогла впоследствии вместить пиктограмму термометра и
терминал ленточного графика. Для этого поместите инструмент Перемещение на любой угол рамки таким образом, чтобы появились манипуляторы изменения размера. Нажмите левую клавишу мыши и протащите
рамку для изменения размера узла While.
25
3. Выделите вместе пиктограмму термометра и терминал ленточного графика, нажав на клавишу инструмента Перемещение слева вверху от пиктограммы VI и протащив курсор вправо и вниз. Созданный вами прямоугольник выбора будет содержать внутри себя выбранные объекты, когда
вы отпустите клавишу мыши. Переместите выбранные объекты внутрь
цикла While Loop. Если вы что-нибудь потеряете при попытке захватить
объекты, они освободятся, и вы должны будете выбрать их снова. (Удалить рамку While Loop можно, щелкнув на ней правой кнопкой мыши и
выбрав Remove While Loop.)
4. Переместите терминал переключателя Power внутрь цикла и соедините
его с терминалом условия, как показано на рис. 3.3. Точечная линия представляет булевские (Boolean) данные. Спозиционируйте курсор на терминале условия и при нажатой правой кнопке мыши выберите Continue if
True (Продолжать выполнение, пока “Истина”).
Рис. 3.3
Внимание! Удобнее использовать следующий способ создания циклической
процедуры. Выберите структуру While Loop. Не нажимая кнопку
мыши, переместите курсор с пунктирным изображением рамки
левее и выше всех узлов диаграммы. Затем нажмите левую кнопку мыши и расширьте рамку по диагонали вниз и вправо так,
чтобы в ней оказались все требуемые узлы. Отпустите кнопку.
Используйте этот прием, предварительно удалив рамку While
Loop.
26
3.2.2. Управление скоростью цикла While Loop
Функция
Wait Until
Next ms
Multiple
Выберите функцию Wait Until Next ms Multiple из палитры Programming >> Timing и поместите ее внутрь цикла
While Loop. Затем выберите цифровую константу из палитры
Numeric и измените ее значение на “200”. Функция Wait
Until Next ms Multiple заставляет цикл выполняться через заданное время (в мс). Закончите соединение блок-диаграммы,
как на рис. 3.3.
3.3. Запуск VI
1. Вернитесь к лицевой панели, выбрав Show Front Panel из меню Window
или используя комбинацию клавиш <Ctrl+E>. Комбинации клавиш
(акселераторы) можно использовать и при выполнении других команд,
они включены во многие ниспадающие окна главного меню. Используя
инструмент Оператор, нажмите на переключатель Power для установки
его в состояние “Истина” (True) в верхнем положении. После этого
нажмите на кнопку Запуск.
Дисплей будет рисовать температурный график. Этот VI считывает и
показывает новое значение температуры за каждое выполнение цикла
While Loop. Все предыдущие значения на ленточном графике смещаются
влево, а новые рисуются справа.
2. Воспользуйтесь инструментом Оператор и переключите Power в состояние “Выключено”. Выключение этого переключателя останавливает выполнение цикла While Loop и работу всего виртуального прибора.
3. Cохраните разработанный VI как Temperature Control.vi в своей папке.
3.4. Модификация виртуального прибора
Представьте, что в ходе следующего эксперимента вам нужно поддерживать температуру в определенном интервале. Для этого необходимо установить предел, сравнить его с текущим значением температуры и предупредить оператора, если температура выйдет за пределы заданного диапазона.
В этом примере мы добавим на лицевую панель цифровой регулятор для
установки верхнего предела температуры, а также модифицируем ленточный
график таким образом, чтобы на нем отражались и данные, и задаваемый по-
27
рог и мы могли бы визуально определить, когда температура выходит за
предел. Дополнительно создадим индикатор предупреждения.
3.4.1. Изменение лицевой панели
1. Выберите круглую ручку (knob) из палитры Numeric меню Controls, назовите ее High Limit (Верхний предел) и измените пределы шкалы, используя
инструменты Оператор или Надпись.
2. Перетащите ручку на место, как на рис. 3.4. Если необходимо, измените
размер панели и переместите ленточный график, чтобы освободить пространство.
Рис. 3.4
3. Выберите индикатор LED из палитры Boolean меню Controls, назовите
его Warning (Предупреждение) и разместите, как показано на рис. 3.4.
4. Модифицируйте ленточный график так, чтобы он обрабатывал две кривые. Для этого при нажатой левой клавише мыши растяните его Plot
Legend (Описание кривой) вверх до появления второй строчки. Если описание отсутствует, нажмите на дисплее правую клавишу мыши и выберите
команду Visible Items >> Plot Legend из всплывающего меню.
Внимание! В дальнейшем для манипулирования объектами вы будете использовать различные инструменты, находящиеся на Tools Pa-
28
lette. Для более удобного переключения между инструментами
можно использовать клавишу <Tab>.
5. Используя инструмент Надпись,
выделите названия кривых “Plot 0”,
“Plot 1” и переименуйте их, как на
рис. 3.4.
6. Сделайте кривые отличающимися
друг от друга. Для изменения стиля
линий и точек нажмите правую
клавишу мыши на кривой температуры в рамке описания (Plot
Legend) (рис. 3.5). В появившемся
меню можно изменить цвет с помощью пункта Color, толщину
(пункт Width), форму представления и другие атрибуты линии.
Рис. 3.5
3.4.2. Изменение блок-диаграммы
1. Сделайте активным окно блок-диаграммы. Поместите терминал “High
Limit” внутри цикла While (рис. 3.6).
Внимание! С усложнением блок-диаграммы возникает необходимость экономии места. Поэтому щелкните правой кнопкой мыши на терминале “High Limit” и уберите флажок с пункта View As Icon
(Показывать как иконку). Терминал примет обычный компактный вид. Проделайте аналогичную манипуляцию со всеми терминалами на блок-диаграмме.
2. Чтобы нарисовать несколько графиков на самописце, используется функция Bundle (Связка). Нажмите правую клавишу мыши точно на проводнике между узлом Digital Thermometer и
терминалом ленточного графика. Выберите пункт Insert.
Функция
В появившемся меню Functions выберите функцию Bundle из
Bundle
палитры Cluster.
3. Растяните узел Bundle вниз для включения еще одного терминала и соедините его с регулятором предела.
29
4. Из палитры Comparison (Сравнение) меню Programming >>
Functions выберите функцию Greater?. Соедините элементы
блок-диаграммы, как показано на рис. 3.6.
Внимание! Возможно, для соединения элементов необходимо
Функция
переместить объекты, но проводники, соединяющие
Greater?
узлы, будут растягиваться согласно перемещениям.
Нажатием на объекты вы выбираете их, а нажатие на клавишу
мыши одновременно с <Shift> выделяет или отменяет выделение
объекта из группы выделенных объектов.
Рис. 3.6
После соединения только что добавленной функции Bundle справа от
ее пиктограммы появится толстый проводник новой формы. Форма проводника говорит о типе данных, называемом кластером (cluster). Кластер представляет собой структуру упорядоченных данных типа записи в языке Паскаль или структуры в Си.
Различные проводники могут пересекаться. В точке пересечения нижний проводник выглядит разорванным, что подчеркивает отсутствие их соединения.
Внимание! По мере увеличения сложности диаграммы вы можете случайно
выбрать не тот узел из меню Functions или неправильно сделать
соединение. Для обнаружения такой ошибки нажмите на разорванную стрелку кнопки Запуск. Появится информационное
30
окно с описанием ошибки, примерно как на рис. 3.7,
информи-рующее, что у одного из проводников потерян конец и отсутствует источник.
Стрелка
на кнопке
Запуск
сломана

Block Diagram Errors
Wire: has no source
Wire: has loose ends
Рис. 3.7
Во избежание осложнений исправляйте все ошибки, как
только вы их заметите. Для удаления объекта выделите его с помощью инструмента Перемещение и нажмите на клавиатуре
<Del> или <Backspace> или выберите команду Clear из меню
Edit. Для удаления потерянных концов (рисуются пунктиром)
выберите команду Remove Broken Wires из меню Edit.
3.5. Работа с VI
1. Сделайте активным окно лицевой панели.
2. Установите значение регулятора High Limit, равное 80.0, для чего с помощью инструмента Оператор нажмите на указатель круглой ручки и, не отпуская клавишу мыши, поверните его. Для прецизионной установки нужного значения с помощью правой кнопки выберите на регуляторе Visible
Items >> Digital Display и введите в него точное значение.
3. Сохраните модифицированный виртуальный прибор.
4. Включите переключатель Power и нажмите кнопку Запуск для запуска
приложения. Во время работы виртуального прибора вы можете изменять
значение верхнего предела температуры любым из описанных ранее способов. Если, повернув круглую ручку High Limit, вы измените значение с
80.0 на 85.0, то обратите внимание на одновременное изменение значений
соответствующей кривой на ленточном графике. При превышении текущей температуры выставленного High Limit включается индикатор Warning. С помощью инструмента Set Color (Цвет) измените цвет индикатора в
различных состояниях.
5. Выключите Power для остановки программы.
6. Сохраните и закройте виртуальный прибор.
Download