методичка по созданию приборов. 1_создание_виртуальных_приборов. Программирование устройства сбора
Скачать 3.99 Mb.
|
Замечание 2: для непрерывной работы программы используется структура While Loop из раздела Express/Execution Control/, которая дополнительно к структуре Functions/ Programming/ Structures/ While Loop содержит кнопку STOP – см. раздел 2.2. При выполнении лабораторных работ используются лишь некоторые из структур, имеющихся в библиотеке LabView, например, цикл по условию (While Loop), цикл с фиксированным числом итераций (For Loop), структура варианта выбора (Case Structure). Цикл While Loop (по условию) работает до тех пор, пока будет выполняться логическое условие продолжения цикла. В левом нижнем и правом нижнем углу рамки цикла, соответственно (рис.1.14), располагаются: 23 [i] – терминал счетчика итераций, содержащий номер текущей итерации, начиная с нуля. – терминал условия продолжения Loop Condition. Цикл будет выполняться до поступления на терминал значения False. Цикл For Loop (рис.1.15) выполняет участок программы, расположенный внутри рамки цикла определенное число раз. В левом верхнем и нижнем углах рамки, соответственно, располагаются: [N] – терминал общего числа итераций, [i] – терминал счетчика итераций, содержащий номер текущей итерации, начиная с нуля. Рис.1.15. Цикл For Loop. Структура Case Structure (рис.1.16) может иметь внутри себя одну или более вкладок-условий, которые работают при выполнении заданных пользователем условий. По умолчанию Case Structure появляется на блок- схеме с вкладками-заготовками для двух условий – True и False. Переключиться между вкладками можно щелчком по стрелкам около значений True и False. Небольшой прямоугольник , находящийся посередине левой стороны рамки – терминал селектора данных. Он управляет тем, алгоритм какой вкладки будет использован. Если на него подается значение True, будет выполняться алгоритм из вкладки True, иначе – алгоритм из вкладки False. 24 Рис.1.16. Case Structure – переключение между вкладками True и False производится нажатием на стрелку около подписей True и False. В случае поступления на вход условия значения True на выход структуры будет поступать результат выполнения алгоритма, расположенного внутри вкладки True, а при поступлении на вход условия значения False на выход будет поступать результат выполнения алгоритма, расположенного внутри вкладки False. Важно: если требуется ввести значение из внешней части программы внутрь структуры, провод с входными данными следует подсоединить к рамке структуры в любом свободном месте (обычно это делают с левой части рамки). После этого на рамке возникает терминал в виде квадратика, от которого можно тянуть провода к элементам внутри структуры. Если же требуется вывести данные из структуры, провод с выходными данными, полученными от элемента, находящегося внутри структуры, следует подсоединить к рамке структуры в любом свободном месте (обычно это делают с правой части рамки). После этого на рамке возникает терминал в виде квадратика, от которого можно тянуть провода к наружным элементам. Для Case Structure подобные действия необходимо проделать для каждой из вкладок, при этом входные и выходные терминалы, созданные в одной из вкладок, доступны во всех вкладках. Входной терминал можно не использовать, если в конкретном варианте поступающие на него данные не 25 нужны, а на выходной терминал требуется подавать данные в каждой из вкладок. На рис.1.17 в случае поступления на вход условия значения True на выход подается значение с компонента Knob – внутри вкладки True провод идет со входа на выход, т.е. что приходит на вход, то подается на выход. А если условие False, на выходе структуры появится значение -1, т.к. внутри вкладки False на выход поступает значение с числовой константы -1. Рис.1.17. Пример ввода и вывода значений во вкладках Case Structure. 1.5. Компиляция программы в exe-файл Программы, написанные с помощью LabView, могут быть скомпилированы и перенесены на другой компьютер. Получившийся в результате компиляции exe-файл запускается как обычная программа Windows, и не требует наличия на компьютере коммерческой версии LabView. Однако для работы файла на компьютере необходимо установить исполняющую среду LabView из свободно распространяемого файла (для LabView 2011 SP1 это LVRTE2011SP1f1std.exe, для LabView 2012 – LVRTE2012f3std.exe, и т.д.). Учтите, что размер файла более 200 Мб. Кроме того, для запуска данной программы на другом компьютере необходимо скопировать на этот компьютер все файлы из папки, в которой создан exe-файл, в том числе вложенную папку data. Если переносить только exe-файл, он не будет запускаться. 26 1.6. Компьютерный тест №1 В тесте проверяется усвоение учащимся теоретической части описания лабораторной работы. Для выполнения теста следует зайти на сайт http://distolymp2.spbu.ru/www/olymp/ под своим логином (можно использовать тот же логин что и на практикуме по информатике на 1 курсе, если на занятиях использовалась система distolymp2) и перейти по ссылке “Компьютерный тест №1”. Если логин отсутствует, следует зарегистрироваться по адресу http://distolymp2.spbu.ru/www/olymp/registration/autoreg/ После прохождения теста в разделе «Результаты» правильные ответы помечаются зеленым цветом, неправильные – красным. Результаты проверяются преподавателем и служат допуском к выполнению лабораторной работы. 2. Демонстрационные примеры 2.1. Демонстрационный пример 1 – виртуальный калькулятор, выполняющий арифметические действия Рассмотрим создание нового виртуального инструмента (прибора) на примере показа результатов арифметических действий. Как уже говорилось, написание программы в LabView напоминает проектирование электрической схемы. Поэтому о передаваемых и обрабатываемых данных можно говорить как о сигналах. В частности, для двух сигналов можно говорить об их сложении, вычитании, умножении и даже делении. Чтобы ознакомиться со структурой LabView и понять логику ее работы, рассмотрим пример сложения и умножения двух сигналов А и В, поступающих от перемещаемого пользователем ползунка и поворачиваемой пользователем ручки. Для решения этой задачи в окне Front Panel нужно построить лицевую панель виртуального прибора, а в окне Block Diagram блок-схему с алгоритмом действия прибора. Сначала на лицевую панель надо установить числовые элементы А и В, от которых мы будем получать числовые сигналы. Выберем в качестве них два 27 компонента из раздела Controls/ Express/ Numerical Controls. Для этого в окне Controls перейдем в раздел Express/Num Controls (рис.1.18). Замечание: раздел Express имеется как в окне Controls, появляющемся при переходе в окно Block Diagram, так и в окне Functions, появляющемся при переходе в окно Front Panel. Однако содержимое этих разделов разное, и раздел Num Controls невозможно найти в окне Functions/ Express. Рис.1.18. Вид раздела Express/Numerical Controls окна Controls. Перетащим на лицевую панель пиктограмму Pointer Slide (ползунок с указателем) и Knob (ручка) – на ней покажутся лицевые изображения этих компонентов (рис.1.19). 28 Рис.1.19. Вид окна Front Panel после перетаскивания в него компонентов Pointer Slide и Knob. При этом на блок-схеме появятся пиктограммы данных приборов, с обозначениями входов и выходов (рис.1.20). Рис.1.20. Блок‐схема после перетаскивания на лицевую панель компонентов Pointer Slide и Knob. Переместим на блок-схеме пиктограммы так, как нам удобно, а из окна Functions/Express/Arith&Comparison/Numeric перетащим в это окно компоненты Add и Multiply (рис.1.21). 29 Рис.1.21. Блок‐схема после перетаскивания на неёкомпонентов Add и Multiply. Переключимся в окно Front Panel и перетащим на него из окна Controls/Express/Num Inds (сокращение от Numeric Indicators – числовые индикаторы) два компонента Num Ind (сокращение от Numeric Indicator) для показа значений А+В и A*B. Рис.1.22. Лицевая панельпосле перетаскивания на неё компонентов Num Ind. 30 Рис.1.23. Блок‐схемапосле перетаскивания на лицевую панель компонентов Num Ind. Вид окон после этого показан на рис.1.22 и рис.1.23. Для показа числовых значений в другой форме (полосы, шкалы стрелочного прибора и т.д.) служат другие компоненты числовых индикаторов. Подключим на блок-схеме выходы компонентов Slide и Knob, сигналы на которых соответствуют положению ползунка и угла поворота ручки, к входам компонента “+”, а выход компонента “+” подсоединим к входу первого компонента Num Ind (на блок-схеме он обозначен как Numeric) – рис.1.24. Рис.1.24. Блок‐схемапосле соединения выходов и входов для показа результатов суммирования. 31 Подключение производится следующим образом. У виртуальных инструментов имеются контакты, помеченные треугольниками-стрелками. У входных контактов стрелки направлены внутрь прямоугольника, изображающего прибор, а у выходных – наружу. Для того чтобы подать сигнал с выхода одного виртуального прибора на вход другого, необходимо схватиться мышью за выходной контакт одного компонента и потащить появившуюся соединительную линию к входному контакту другого компонента. С таким же успехом можно начинать подсоединение провода от входа компонента к тому выходу, с которого на него подаётся сигнал. Аналогичным образом соединим на блок-схеме выходы компонентов Slide и Knob с входами компонента умножения, а его выход – с входом индикатора Numeric2 (рис.1.25). Рис.1.25. Блок‐схемапосле проведения всех необходимых соединений. Если вы сделали на лицевой панели или блок-схеме какие-то изменения и не сохранили изменённый проект в файле, в конце заголовка окна после имени проекта и слов “Front Panel” или “Block Diagram” будет виден символ * (рис.1.19-1.25). Не забывайте регулярно сохранять в файл результаты своего проектирования, поскольку иногда система LabView может оказываться неустойчивой и выходить из нормального режима работы, или может произойти сбой работы компьютера – и все результаты вашей работы пропадут. 32 Для того чтобы проверить работу созданного виртуального прибора, сначала следует сохранить его в файл с помощью меню File/Save. Если файл до этого не сохранялся, открывается диалоговое окно, в котором необходимо ввести имя сохраняемого файла. В данном примере для сохранения мы указали в качестве имени файла прибора arithmExample. После этого надо перейти в окно Front Panel и нажать на иконку на верхней панели (Continuously Run) – результат показан на рис.1.26. Мешающее окно Controls, часть которого показано в правой нижней части рис.1.26, можно закрыть. Рис.1.26. Работа программы – состояние после запуска. Может показаться, что просто исчезла сетка привязки размещения компонентов – но на деле мы видим лицевую панель в окне работающей программы, и передвинуть компоненты на другое место не удастся. А при передвижении ползунка и повороте ручки на индикаторах показываются числовые значения арифметических действий (рис.1.27). 33 Рис.1.27. Работа программы – состояние после сдвига ползунка и поворота ручки. Остановить работу программы можно нажатием кнопки В приведенном примере результаты вычислений показывались в виде чисел. Чтобы ознакомиться с представлением результатов вычислений в другой форме, перейдите в окно Front Panel и перетащите на лицевую панель из окна Controls/Express/Num Inds компоненты Progress Bar, Meter, Gauge. (Не забывайте, что визуальные компоненты управления (Controls) можно добавлять только в окне Front Panel). Подсоедините на блок-схеме входы этих индикаторов к выходу компонента сложения. Вы можете изменять параметры компонента, находящегося на лицевой панели. Для этого щелкните правой кнопкой мыши по компоненту, зайдите в раздел Properties (Свойства) и выполните необходимые настройки параметров. 2.2. Демонстрационный пример 2 – создание виртуального генератора и виртуального осциллографа Рассмотрим еще один пример – создание прибора, совмещающего генератор сигналов и осциллограф, на экране которого показывается форма этих сигналов. 34 Создайте новый проект и перетащите на Front Panel иконку компонента графического дисплея Waveform Graph (окна построения графиков) – он находится в окне Controls (меню Modern/Graph/Waveform/Graph). Аналогичным образом устанавливается ручка регулировки амплитуды сигнала (Controls/Modern/Numeric/Knob). После произведенных операций получается картина, показанная на рис.1.28. Рис.1.28. Создание интерфейса прибора. Для имитации генератора сигналов в окне Block Diagram в разделе Functions необходимо выбрать компонент Express/Signal Analysis/ Simulate Signal и перетащить его иконку на панель Block Diagram. 35 Рис.1.29. Создание виртуального генератора сигналов. При этом сразу появится окно задания свойств генерации сигнала (рис.1.29). В дальнейшем для задания параметров сигнала необходимо сделать двойной щелчок по иконке генератора либо правой кнопкой мыши вызвать меню и выбрать пункт Properties (свойства). В открывшемся окне можно задать ряд параметров сигнала. Справку по виртуальному прибору можно получить нажатием на кнопку Help в окне свойств прибора. Если разработчик прибора не назначил ему справку, открывается общая справка LabView. Для того чтобы подать сигнал с генератора на осциллограф, необходимо схватиться мышью за выходной контакт сигнала генератора и потащить появившуюся соединительную линию к входному контакту компонента Waveform Graph, т.е. виртуального осциллографа (рис.1.30). 36 Рис.1.30. Подключение выхода генератора сигнала к виртуальному осциллографу. Иногда для построения графиков, особенно на длительных промежутках времени, бывает удобнее использовать компонент Waveform Chart – в нём по оси времени откладывается текущее время, и идет постоянное обновление границ по истечении заданного промежутка времени. А в Waveform Graph по оси времени откладывается время, прошедшее с начала очередной порции данных, поэтому по времени начало графика соответствует 0, а окончание – размеру заданного интервала. Так, по умолчанию (см. рис.1.29) частота дискретизации сигнала генератора 1000 Гц (частота, с которой следуют точки измерения), и одна порция данных составляет 100 точек измерений (samples). Поэтому длительность порции данных, выводимых на экран цифрового осциллографа, будет с 1 , 0 100 ГЦ 1000 1 Программа на данном этапе будет запускаться, показывать на мгновение окно с графическим интерфейсом, отрабатывать набор заданных в окне Block Diagram команд и сразу закрываться. Чтобы программа работала постоянно, необходимо, чтобы некоторый набор команд находился в бесконечном цикле. Для этого в Block Diagram необходимо выбрать 37 Functions/ PROGRAMMING /Structures/While Loop и выделить все элементы в рамку цикла. Для остановки цикла необходимо в Front Panel установить кнопку остановки работы программы (Controls/Express/ Stop Button). В окне Block Diagram появившуюся иконку Stop Button соединить с красным кружком-терминалом, который находится в правом нижнем углу. Должна получиться программа, схожая с изображенной на рис.1.31. Рис.1.31. Создание бесконечного цикла в программе. Аналогичный эффект достигается перетаскиванием на блок-схему компонента Express/Exec Control/ While Loop – в нём уже имеется кнопка Stop, подсоединённая к красному кружку-терминалу, обеспечивающему условие остановки цикла. Для запуска проекта необходимо нажать на иконку в виде стрелки на верхней панели (либо пункт меню Operate/Run). После проделанных операций на осциллографе должен получиться сигнал, форма и амплитуда которого задана генератором (рис.1.32). Для остановки программы необходимо нажать кнопку Stop. Во время работы программы изображение будет “бежать” по экрану осциллографа, т.к. частота генерации сигнала 10,1 Гц, т.е. значение периода 0.099 с, а промежуток времени на экране 0,1 с. Если установить частоту генерации 10 Гц, “дрожание” сигнала на экране исчезнет. 38 Рис.1.32. Запущенная программа осциллографа, подключенного к генератору. Для регулировки амплитуды сигнала, поступающего с виртуального генератора, растянем мышкой на блок-схеме изображение генератора, чтобы были видны все его входы, подсоединим выход ручки Knob к входу Amplitude генератора (рис.1.33). Рис.1.33. Регулировка амплитуды на выходе виртуального генератора. Обратите внимание на то, что провод, по которому идёт сигнал, зависящий от времени (динамические данные), показывается более толстой линией с пунктиром внутри, а провод с выхода ручки Knob с не зависящим от времени 39 сигналом показывается тонкой сплошной линией (рис.1.33). Таким образом, на блок-схеме легко прослеживать ход сигналов разного типа. При запуске разработанной программы поворот ручки будет задавать амплитуду генерируемого сигнала. 3. Порядок выполнения работы Задание 3.1. Виртуальный калькулятор Воспроизведите действия, описанные в теоретической части в разделе 2.1. Сохраните проект в файл с именем “Лабораторная №1 Задание 3_1.vi”. Задание 3.2. Виртуальные генератор и осциллограф - показ сигнала с |