методичка по созданию приборов. 1_создание_виртуальных_приборов. Программирование устройства сбора
Скачать 3.99 Mb.
|
1.1.2.Общие принципы построения программы в среде LabView. Виртуальный прибор Виртуальный прибор состоит из следующих частей: Лицевая панель (Front panel) является интерфейсом виртуального прибора и имитирует лицевую панель обычного измерительного прибора с его традиционными элементами управления (Controls). Это кнопки, тумблеры, индикаторы, ручки, измерительные шкалы, дисплеи и т.д. При помещении на лицевую панель какого-либо компонента на блок-схеме (см. далее) автоматически появляется соответствующая этому компоненту пиктограмма . Данные, вводимые с помощью элементов лицевой панели, обрабатываются с соответствии с алгоритмами, заданными блок-схемой. Результаты выполнения этих алгоритмов выводятся на элементы отображения информации на лицевой панели. Блок-схема (Block diagram). В окне блок-схемы располагается программный код виртуального прибора, созданный на языке G. Компонентами блок-схемы могут быть пиктограммы элементов лицевой панели, виртуальные приборы более низкого уровня, чем разрабатываемый виртуальный прибор, встроенные функции LabView, константы, а также структуры управления выполнением программы. Также на блок-схему можно помещать компоненты, не отображающиеся на лицевой панели (например, компоненты арифметических действий и других алгоритмические конструкций). В окне блок-схемы можно задавать алгоритмы математических операций, объединять компоненты в виртуальный прибор, опрашивать порты ввода-вывода, производить другие операции. Связь между 10 различными элементами блок-схемы создается с помощью соединений, называемых виртуальными проводами (виртуальными проводниками). 1.1.3.Типы данных и вид виртуальных проводов В LabView имеются несколько типов данных, каждому из них соответствует цвет и внешний вид проводов и внешней окантовки компонентов на блок-схеме, а также подписи в нижней части компонента на блок-схеме (см.Таблицу 1). Провода с аналоговыми сигналами показываются сплошной линией, с дискретными величинами (сигналами от выключателей, нажатия кнопок и т.д.) – пунктиром, строковыми данными – извилистой линией (“змейкой”), с массивами – более жирной линией соответствующего вида, с двумерными массивами – сдвоенной жирной линией соответствующего вида. Например, провод для сигнала с одномерным массивом целочисленных измерений будет показан в виде толстой синей линии (целочисленным данным соответствует синий цвет). Таблица 1 Тип данных Варианты типа и обозначение типа на компоненте Цвет провода и окантовки Логический (Boolean) TF – сокращение от значений True/False, принимаемым булевскими переменными Зелёный Числа в формате с плавающей точкой (Floating point) – используются для хранения вещественных данных EXT – Extended, расширенная точность (19 значащих десятичных цифр мантиссы, значения до 10 4932 , а также бесконечность Inf и -Inf) DBL – Double, двойная точность (14 значащих десятичных цифр мантиссы, значения до 10 308 , а также бесконечность Inf и -Inf) SGL – Single, одинарная точность (7 значащих десятичных цифр мантиссы, значения до 10 38 , а также бесконечность Inf и -Inf) Оранжевый Комплексные числа в формате с плавающей точкой CXT – Complex Extended, расширенная точность CDB – Complex Double, двойная точность CSG – Complex Single, одинарная точность Оранжевый 11 Числа в формате с фиксированной точкой (Floating point) – используются для хранения вещественных данных Можно задавать число бит, отводимых под целую и дробную части числа. Диапазон изменения гораздо меньше, чем для типов в формате с плавающей точкой – но можно обеспечить большее количество значащих цифр числа. Серый Целые числа I64 – 64-разрядные целые со знаком. I32 – 32-разрядные целые со знаком. I16 – 16-разрядные целые со знаком. I8 – 8-разрядные целые со знаком. U64 – беззнаковые 64-разрядные целые. I32 – беззнаковые 32-разрядные целые. I16 – беззнаковые 16-разрядные целые. I8 – беззнаковые 8-разрядные целые. Синий Строка abc – обозначено по первым буквам латинского алфавита. Розовый Массив [] – квадратные скобки. Внутри указывается тип ячейки массива. Соответствует типу ячейки массива Осциллограмма (waveform) Предназначен для обработки реальных сигналов. Содержит данные, начальное значение времени и интервал времени между измерениями. Соответствует типу передаваемых данных Кластер Предназначен для объединения сигналов разных типов для прохождения по одному проводу. Используется для уменьшения числа проводов на схеме. Коричневый провод, внутри – пунктир из белых точек Динамические типы Предназначены для передачи данных, генерируемых виртуальными приборами (обычно идущих через заданные интервалы времени). Темно-синий провод, внутри – пунктир из белых точек 1.2. Создание нового проекта. Окна проекта После запуска LabView открывается окно Getting Started. В стартовом окне (рис.1.2) в среде LabView 2013 или 2012 выбирается кнопка Create Project. В более ранних версиях данная кнопка отсутствует, и следует выбрать пункт Blank VI. 12 Рис.1.2. Стартовая страница. В LabView 2013 в появившемся окне (рис.1.3) необходимо создать проект Blank VI (пустой виртуальный инструмент), для этого по соответствующей строчке необходимо сделать двойной щелчок. В более старых версиях этот этап не нужен – сразу будет создан проект Blank VI. Рис.1.3. Страница создания проекта. 13 После этого в рабочей области среды должны появиться два окна (рис.1.4), Front Panel (лицевая панель) и Block Diagram (блок-схема). Рис.1.4. Вид рабочей области, на переднем плане окно Front Panel. При переходе в окно Front Panel показывается окно Controls (рис.1.4), а при переходе в окно Block Diagram – окно Functions (рис.1.5) Рис.1.5. Вид рабочей области, на переднем плане окно Block Diagram. 14 В случае если при переходе в окно Front Panel не отображается окно Controls(вы его закрыли), в верхнем меню окна Front Panel следует перейти в пункт меню View и выбрать пункт Controls Palette. Если не отображается окно Block Diagram (вы его закрыли), в окне Front Panel следует перейти в пункт меню Window и выбрать пункт Block Diagram. 1.3.Библиотеки виртуальных приборов Элементы управления, функциональные узлы и ВП вызываются с помощью иерархической системы меню - палитр компонентов Controls, Functions, Tools и т.д. Каждая из палитр доступна только если открыта соответствующая панель. За каждым разделом палитры закреплен набор средств управления и индикации (для Front Panel) или набор функций и алгоритмов (для Block Diagram). LabView обладает развитой библиотекой функций и подпрограмм, реализующих большое число типичных задач программирования. Алгоритм работы виртуального прибора формируется с помощью палитрыFunctions, отображаемой при переходе в окно Block Diagram (рис.1.6). Если оно не отображается, то в меню окна Block Diagram следует зайти в пункт View и выбрать пункт Functions. Рис.1.6. Вид окна Functions. В окне Functions во вкладке Express расположены подразделы библиотеки Express виртуальных приборов. На пиктограммах подразделы помечаются черным треугольником в правом верхнем углу пиктограммы (рис.1.6). В 15 подразделе Express/Input располагаются приборы, позволяющие принимать информацию с внешних устройств, а также открывать диалоговое окно выбора файлов (компонент FileDialog) (рис.1.7). Рис.1.7. Вид раздела Express/Input окна Functions. В разделе Express/Output находятся приборы, позволяющие отправлять информацию на внешние устройства (рис.1.8). Рис.1.8. Вид раздела Express/Output окна Functions. В Express/Signal Analysis располагаются приборы, с помощью которых можно анализировать сигналы, а также их синтезировать (рис.1.9). Рис.1.9. Вид раздела Express/Signal Analysis окна Functions. Для выбора приборов преобразования сигналов служит раздел Express/Signal Manipulation(рис.1.10). 16 Рис.1.10. Вид раздела Express/Signal Manipulation окна Functions. Приборы, обеспечивающие работу структур программирования while..do (цикл), case (условие выбора), Flat sequence (обеспечение выполнения действий в заданном порядке), Time delay (задание задержки по времени) и Elapsed Time (измерение интервалов времени), расположены во вкладке Express/Execution Control (рис.1.11). Рис.1.11. Вид раздела Express/Execution Control окна Functions. Приборы, обеспечивающие выполнение алгебраических и математических операций, расположены в Express/Arithmetic&Comparison (рис.1.12). Рис.1.12. Вид раздела Express/Arithmetic&Comparison. В этом разделе содержатся приборы Formula, Scale&Map, Time Domain, а также подразделы (напомним, что на пиктограммах подразделы помечаются 17 черным треугольником в верхнем правом углу пиктограммы): Numeric, Math, Boolean, Comparison. Справку (на английском языке) по разделу или виртуальному прибору можно найти, нажав клавишу F1 и введя в строку поиска имя раздела или прибора. Замечание 1: в раздел Functions/Express для окна Block Diagram и раздел Controls/Express для окна Front Panel вынесены только наиболее часто используемые компоненты (виртуальные приборы). Более полный набор математических операций и циклов можно найти в разделе Functions/Programming, а элементов управления (в том числе для работы с таблицами строк, массивами и др.) ‐ в разделах Controls/Modern, Controls/Silver, Controls/Systemи др. Например, элементы управления (Controls) для работы с булевскими данными (кнопки, переключатели, виртуальные светодиоды) можно найти в разделе Controls/Modern/Boolean. Замечание 2: добавление новых элементов схемы удобно проводить с помощью меню, появляющегося по щелчку правой кнопкой мыши. 1.4. Некоторые элементы программирования LabView, использующиеся в лабораторных работах 1.4.1. Работа с виртуальными проводами Соединения с помощью виртуальных проводов должны выполняться в соответствии с рядом правил. 1) Подключение компонентов Каждый провод можно подсоединять к одному (и только одному) источнику сигнала – т.е. к выходу компонента. Однако каждый провод можно подсоединять к произвольному количеству входов компонентов (например, входов индикаторов) – этот способ называется разветвлением. Так, никогда нельзя соединять вместе выходы элементов управления, но можно присоединить выход элемента управления к входам двух или более индикаторов. Входы у виртуальных приборов могут быть обязательными и необязательными для подключения. Не должно быть компонентов, содержащих не подсоединенные входы, обязательные для подключения. Например, у компонентов арифметических действий все входы являются 18 обязательными для подключения. В таких случаях попытка запустить программу с неподключенным входом вызывает сообщение об ошибке. 2) Соединение проводами При проведении соединений следует учесть, что если провод отпускается в тот момент, когда его конец находится над другим проводом, образуется соединение проводов, обозначаемое точкой в месте соединения. Если провода пересекаются, но соединительной точки нет, то считается, что они проходят один над другим, и соединения проводов нет. За провод можно схватиться мышью и перетащить его в сторону, при этом внешне он может поменять место подсоединения к компонентам (например, точка подключения может с передней части компонента переместиться на его боковую сторону), но этого не следует бояться – провод останется присоединен к тем же выходам и входам компонентов. Линейный участок провода можно выделить щелчком левой кнопки мыши ( провод выделяется курсивом) и перетащить в удобное место, либо удалить. При двойном щелчке выделяется весь провод. Если вы начали тащить провод и хотите в некоторой точке изменить на 90º его дальнейшее направление, отпустите кнопку мыши в этой точке и тяните провод дальше. В новой точке, где необходим поворот провода, щёлкните кнопкой мыши, и т.д. 3) Отмена и удаление соединений Если вы начали тащить провод, но не закончили, отпустите кнопку мыши и нажмите на клавиатуре кнопку Esc – и пунктирная заготовка провода пропадёт. Для удаления провода его необходимо вручную выделить, дважды щёлкнув по нему, и нажать клавишу Delete. Если вы осуществили ошибочное соединение, перемещение или удаление проводов, можно вернуться к предыдущему состоянию нажатием комбинации клавиш Ctrl+Z или через меню Edit/Undo. 4) Разорванные провода 19 Существует понятие поврежденного (разорванного) провода, который не соединяет должным образом источник сигнала с входом приемника сигнала. Разорванный провод выглядит как пунктирная линия с красным крестом посредине. Наличие такого провода не позволяет запустить программу виртуального прибора на выполнение – выведется сообщение об ошибке. Разрыв проводов может происходить по различным причинам – например, при соединении двух объектов с различными или несовместимыми типами данных. Так, нельзя подключать выход логического элемента управления к числовому входу, числовой выход к входу логического элемента управления, соединять выходы, и т.д. Для быстрого удаления всех поврежденных проводов следует использовать «горячую» комбинацию клавиш Ctrl+B. 5) Автоматическое расположение проводов Запутанное расположение проводов на блок-схеме часто бывает неудобным, и и LabVIEW предоставляет возможность оптимизировать их размещение для большей наглядности .Для этого нужно выделить неудачно расположенные провода, щелкнув по ним правой кнопкой мыши при нажатой клавише Shift, после чего воспользоваться комбинацией клавиш Ctrl+U (соответствует пункту меню Edit/Clean up Selection). Для оптимизации размещения всех элементов блок-схемы следует воспользоваться комбинацией клавиш Ctrl+U (соответствует пункту меню Edit/Clean up Diagram) без выделения какого-либо элемента. Автоматическое расположение не всегда приводит к удачным результатам, и можно вернуться к предыдущему состоянию нажатием комбинации клавиш Ctrl+Z или через меню Edit/Undo. После чего можно передвинуть часть проводов и повторить попытку – при другой начальной конфигурации результат автоматического размещения может оказаться более удачным. 1.4.2. Возможности формирования лицевой панели Цифровые элементы ввода и вывода на лицевой панели могут иметь разный вид. Так, например, индикаторы из группы Numeric палитры могут быть 20 просто цифровыми (Num Ind), скользящими (Slide), вращательными (Knob, Dial) и т.д. Размер окна или шкалы можно увеличить, поместив курсор мыши на любой из крайних углов элемента и потянув за него. В лабораторной работе №3 в качестве элементов управления выходным сигналом порта вывода будут использоваться тумблеры Toggle Switch (Front panel/Controls/Express/Buttons&Switches/Toggle Switch). Эти элементы аналогичны переменным типа Boolean в языках высокого уровня и имеют два значения – True (1) или False (0). На панели Block Diagram эти элементы имеют рамку зеленого цвета, а соединительные провода изображаются зеленой пунктирной линией. LabView позволяет делать надписи на элементах, менять диапазон шкал, добавлять комментарии, что позволяет сделать лицевую панель ВП наиболее удобной для работы. Для ввода надписи нужно дважды щелкнуть по иконке элемента или правой кнопкой мыши вызвать меню и выбрать раздел Properties (Свойства). 1.4.3. Запуск программы Запускать программу можно и из окна лицевой панели, и из окна блок- схемы с помощью кнопок. Стрелка (Run) - однократный запуск алгоритма программы, двойная стрелка (Continuously Run) – циклический запуск, означающий, что после окончания работы алгоритма программа запускается снова. Полностью эквивалентен запуску с помощью кнопки Run запуск из пункта меню Operate/ Run… либо комбинацией клавиш Ctrl+R. Если программа содержит ошибку, то стрелка примет “ сломанный» вид. Если щелкнуть по «сломанной» стрелке, появится окно с информацией о выявленных ошибках (Error List), которые необходимо исправить и снова запустить программу. 21 1.4.4. Структуры – циклы и проверка условий Выполнение работы программы в определенном порядке или повторение отдельных ее частей в зависимости от какого-либо условия осуществляется с помощью функций Structures (Структур), которые находятся в палитре Functions/ Programming/ Structures (рис.1.13). Рис.1.13. Вид раздела Programming/ Structures окна Functions при вызове меню правой кнопкой мыши. Любая структура имеет вид рамки, по краям которой размещаются входной и выходной терминалы (ограничители). На рис.1.14 приведен результат перетаскивания структуры While Loop в окно блок-схемы. 22 Рис.1.14. Результат перетаскивания структуры While Loop в окно блок‐ схемы. При перетаскивании структуры в окно блок-схемы ее можно наложить на существующий участок программы или, наоборот, сначала расположить структуру в окне, а затем помещать внутрь рамки элементы программы. Замечание 1: если структура накладывается на уже существующую программу, то если не все элементы блок‐схемы поместятся внутрь ее рамки, они не будут помещены в структуру, и она будет просто перекрывать их видимость. Поэтому перемещать структуру нужно внимательно и осторожно. |