Основы разработки ППО в среде программирования LabVIEW
Среда программирования LabView является продукцией компании National Instruments и представляет собой средство разработки ППО, близкое по своей логической структуре к конструкциям языков Си или Бейсик. Однако, LabView в отличии от них использует не текстовый язык программирования, а графический – язык G. Он позволяет создавать программы в виде блок-схем.
LabView имеет обширные библиотеки функций для решения различных задач, таких как ввод/вывод, обработка, анализ и визуализация сигналов; контроль и управление технологическими объектами; статистический анализ и комплексные вычисления; взаимодействие процессов и сетевые технологии ActivX и TCP/IP; поддержка SQL запросов; работа с Internet и др.
Программные приложения, создаваемые в LabVIEW, носят название виртуальных инструментов (VI), включают две основные панели:
· передняя или лицевая панель, осуществляющая интерактивный интерфейс пользователя и имитирующая панель некоторого пульта управления с размещением на нем различных кнопок, графических индикаторов, диалоговых объектов, средств управления и индикации и т.д.;
· функциональная панель или блок-схема, в которой с помощью языка G осуществляется процесс разработки исходного кода виртуального инструмента в виде отдельных графических пиктограмм, осуществляющих различные функции, и связей между ними.
При этом виртуальные инструменты являются также аналогами функций языков программирования и подчиняются принципам иерархичности и модульности. В результате формируемые VI оказываются составленными из VI более низкого уровня (subVI), реализуя при этом концепцию модульного программирования. Возможно также накапливать и создавать собственные библиотеки виртуальных инструментов.
Основные понятия и панели LabVIEW
Запуск среды программирования LabVIEW осуществляется либо двойным кликом мыши на ярлыке LabVIEW, который находится на рабочем столе, либо из раздела Программы – National Instruments LabVIEW (изложение для Windows 9х, NT, 2000). При входе в главное меню LabVIEW (версия 5.1) пользователю предлагается создание нового виртуального инструмента (New VI) или открытие уже существующего (Open VI).
Разработка VI осуществляется на двух панелях, находящихся в двух окнах, - передней и функциональной. На передней панели визуально размещаются средства управления и индикации, на функциональной – составляется блок-схема или исходный код будущего VI. Структура панелей одинакова. Основным элементом каждой панели является рабочая область, снабженная горизонтальным и вертикальным скролингами, в которой и размещаются элементы. Также на панелях имеется верхнее меню и набор функциональных кнопок. Размер окон может регулироваться пользователем. Размещение одновременно двух окон на экране – Ctrl+T. Активизация одной из панелей осуществляется посредством клика мыши в ее области или Ctrl+E. Имя панели соответствует имени загруженного в него VI. Если VI новый, то панель носит название Untitled. Сохранение VI осуществляется через верхнее меню любой из панелей – File-Save или File-Save As для сохранения под новым именем.
Для обеих панелей доступна панель Tools Palette (рис.1), включающая набор управляющих кнопок для изменения режима редактирования. Перечислим некоторые из них:
Рис. 1. Панели Tools, Controls и Functions |
· кнопка «указательный палец» – служит для изменения позиций выключателей и кнопок, управления значениями цифровых регуляторов, настройки виртуальных осциллографов и др.
· кнопка «стрелка» – выделение, перемещение объектов, изменение их размера.
· кнопка «А» – открытие и редактирование текстового окна.
· кнопка «катушка» – служит для соединения объектов на функциональной панели.
· кнопка «кисть» – раскрашивание объектов или фона.
· кнопка «рука» – перемещение рабочей области панели в окне.
· кнопка «пипетка» – выбор текущего цвета из имеющихся на панели.
· кнопка «красный круг» – для размещения и снятия точек остановки выполнения программы на функциональной панели.
· кнопка «Р» – для размещения на функциональной панели локальных окон для отображения текущих значений данных, передаваемых в ходе выполнения программы.
При активной передней панели становится доступной панель Controls (рис.1). С ее помощью осуществляется визуальное размещение регуляторов и индикаторов на передней панели VI. Регуляторы предназначены для ввода информации в ходе выполнения программы, индикаторы – для вывода. В панели Controls они распределены по отдельным группам по некоторым признакам – числовые, логические, строковые, массивы, диалоговые, ActivX, Internet и др.
При активировании функциональной панели становится доступной панель Functions (рис.1), которая аналогично панели Controls включает систематизированные наборы стандартных элементов в виде отдельных пиктограмм, из которых осуществляется составление блок-схемы VI.
На передней и функциональной панелях также размещаются управляющие кнопки (рис. 2), такие как
- кнопка «стрелка» – пуск выполнения программы; если в программе имеются ошибки, то данная кнопка расколота на две части;
- кнопка «стрелки в цикле» – запуск программы в циклическом режиме;
- кнопка «красный круг» – остановка выполнения программы;
- кнопка «две вертикальные черты» – пауза в выполнении программы.
Рис. 2. Управляющие кнопки
Процесс разработки VI включает:
1 Размещение регуляторов и индикаторов на передней панели VI. Для этого из панели Controls выбирается объект требуемого типа и внешнего вида и размещается в требуемом месте на передней панели. При этом его размер, цвет, описание и название могут в последующем меняться.
2 Добавление требуемых для прикладной задачи структур и функций на функциональной панели. Для этого из панели Functions выбираются соответствующие структуры и функции, пиктограммы которых размещаются на функциональной панели.
3 Соединение регуляторов, индикаторов, констант, функций и др. на функциональной панели при помощи проводки.
Рис. 3. Регуляторы и индикаторы
Регуляторы и индикаторы выполняют те же функции, что и входные и выходные параметры в текстовых языках программирования. При размещении регулятора/индикатора на передней панели, LabView создает соответствующую пиктограмму на блок-схеме. Символы на терминале соответствуют типу данных терминала. Например, DBL – терминал представляет данные в виде вещественных чисел с двойной точностью, TF – логический терминал, I16 – терминал 16 – битных целых и др. (рис. 3).
При нажатии правой кнопки мыши на регуляторе/индикаторе (как на передней, так и функциональной панели) появляется контекстное меню, с помощью которого возможно осуществить:
· замену индикатора на регулятор и наоборот (Change to Control, Change to Indicator);
· быстрый поиск терминала на функциональной панели (Find Terminal) и регулятора/индикатора на передней панели (Find Control, Find Indicator);
· демонстрацию или отказ от нее для названия и описания регулятора/индикатора (Show–Label, Show–Caption);
· настройку параметров регулятора/индикатора (Data Operations);
· замену на другой регулятор/индикатор (Replace);
· получение справки по используемой функции (Online Help);
· открытие для функций соответствующих им констант, индикаторов и регуляторов (Create Constant, Create Indicator, Create Control ); и др.
Терминалы представляют собой области функции, через которые передается информация. Они аналогичны параметрам в текстовых языках программирования. Для того, чтобы увидеть какие терминалы включает данная функция необходима по правой кнопке мыши на пиктограмме из контекстного меню выбрать Show–Terminals (рис. 4).
Рис. 4. Терминалы
Провода - пути данных между терминалами. Они аналогичны переменным на обычных языках (рис.3). Данные идут в только одном направлении, с исходного терминала на один или более терминалов адресата. Провода имеют различную толщину и цвет. Синий цвет соответствует целым числам, оранжевый – вещественным числам, зеленый – логическим, лиловый – строковым данным. По мере перехода от скаляра к массиву и кластеру увеличивается толщина провода.
Для соединения терминалов необходимо подвести курсор мыши к исходному терминалу (из панели Tools выбрана кнопка «катушка»). При этом отдельные части пиктограммы, соответствующие различным терминалам начинают мигать, а также появляются всплывающие подсказки для облегчения идентификации терминала. После выбора нужного терминала на нем необходимо кликнуть левой кнопкой мыши. В этом случае один конец провода станет закрепленным за данным терминалом. Другой конец, перемещая курсор мыши, необходимо подвести к терминалу адресата и кликнуть левой кнопкой на нем. Если данное соединение возможно, то провод станет соответствующего типу передаваемых данных цвета, в противном случае он станет пунктирным черного цвета. Удаление всех некорректных соединений Ctrl+B.
В случае необходимости возможно удаление отдельных сегментов связей, ведение ответвлений от существующих проводов.
Пиктограмма VI соответствует каждому виртуальному инструменту и располагается в правом верхнем углу передней панели (рис. 3). Для редактирования пиктограммы используется упрощенный графический редактор, позволяющий создавать изображение, закрашивая его отдельные пикселы. Для этого необходимо вызвать контекстное меню на иконке в правом верхнем углу лицевой панели, и выбрать Edit Icon.
Коннектор представляет собой программный интерфейс виртуального инструмента. При использовании регуляторов или индикаторов на передней панели для передачи данных в VI, эти объекты должны иметь терминалы на панели коннектора. Он вызывается из контекстного меню на пиктограмме VI Show Connector. При этом выделяются терминалы для регуляторов на левой половине панели, а для индикаторов – на правой в соответствии с их количеством. Соответствие терминала индикатору или регулятору устанавливается щелчком левой кнопки мыши на терминале коннектора, а затем на соответствующем индикаторе или регуляторе. Это особенно важно при использовании разрабатываемого VI в других виртуальных инструментам для обеспечения возможности его подключения.
SubVI является аналогом подпрограммы. В создаваемом VI возможно использование любого виртуального инструмента, имеющего коннектор. Базовые настройки и тип разрабатываемого VI устанавливаются в контекстном меню пиктограммы – пункт VI Setup.
Панель Controls служит для добавления регуляторов и индикаторов к передней панели. Если панель Controls не видна на экране, ее можно открыть через верхнее меню Windows – Show Controls Palette. Панель Controls доступна, только если активно окно передней панели. Рассмотрим основные подпанели панели Controls.
· Numeric (числовые значения). Состоит из регуляторов и индикаторов для числовых данных.
· Boolean (Булевы значения). Состоит из регуляторов и индикаторов для булевых величин.
· String&Table (строковые значения и таблицы). Состоит из регуляторов и индикаторов для ASCII строк и таблиц.
· List & Ring (списки и закольцованные списки). Состоит из регуляторов и индикаторов для меню, выполненных в форме списков и закольцованных списков.
· Array & Cluster (массивы и кластеры). Состоит из регуляторов и индикаторов для группировки наборов типов данных.
· Graph (виртуальные осциллографы). Состоит из индикаторов, для построения графиков данных в графах или диаграммах в реальном масштабе времени.
· Path & Refnum (пути и ссылки). Состоит из регуляторов и индикаторов для путей и ссылок.
· Decorations (оформление). Состоит из графических объектов для настройки дисплеев передней панели.
· Select Control (выбор регулятора). Отображает диалоговое окно для загрузки самодельных элементов управления.
· User Controls (средства управления пользователя). Состоит из специальных средств управления, которые формирует сам пользователь.
· ActiveX (объекты ActiveX). Состоит из средств управления, позволяющих внедрить объекты ActiveX на переднюю панель.
· Dialog (диалоговая панель). Состоит из стандартных объектов для формирования диалога с пользователем.
· IMAQ Vision (обработка изображений). Состоит из средств обработки и анализа изображений.
· Internet Toolkit (работа с Internet). Состоит из средств управления, располагаемых на передней панели, позволяющих организовывать ра-боту виртуальных инструментов в сети Internet (ftp, электронная почта, telnet, CGI и другие).
Панель Functions предназначена для формирования блок-схемы VI. Каждая пиктограмма на панели открывает подпанель пиктограмм нижнего уровня. Если панель Functions не видна на экране, ее можно открыть через верхнее меню Windows – Show Functions Palette. Панель Functions доступна, только если активно окно функциональной панели. Рассмотрим основные подпанели панели Functions.
· Structures (структуры). Состоит из управляющих структур программы, таких как циклы For Loop, While Loop и другие.
· Numeric (числовые функции). Состоит из тригонометрических, логарифмических и других функций.
· Boolean (Булевы функции). Состоит из логических и Булевых функций.
· String (строковые функции). Состоит из функций для работы со строковыми величинами.
· Array (массивы). Состоит из функций для обработки массивов.
· Cluster (кластеры). Состоит из функций для обработки кластеров.
· Comparison (сравнение). Состоит из функций для сравнения переменных.
· Time & Dialog (время и диалог). Состоит из функций для диалоговых окон, синхронизации, и обработки ошибок.
· File I/O (ввода/вывода файла). Состоит из функций для осуществления операций по вводу/выводу файлов.
· Instrument I/O (инструменты ввода/вывода). Состоит из VI для связи и управления приборами различной архитектуры.
· Instrument Drivers (драйверы приборов). Состоит из VI, способных управлять внешними приборами, осциллоскопами, генераторами, и т.д., через последовательный порт или интерфейс GPIB.
· Data Acquisition (сбор данных). Состоит из VI для использования плат сбора данных.
· Signal Processing (обработка сигналов). Состоит из VI для генерации и обработки сигналов.
· Mathematics (математические). Состоит из оптимизационных, алгебраических, интегральных, дифференциальных и других функций.
· Graphics & Sound (графика и звук). Состоит из VI для работы трехмерной графикой, изображениями и звуком.
· Communication (связи). Состоит из виртуальных приборов для работы с сетями TCP, DDE и др.
· Application Control (управление приложением). Состоит из VI, управляющих виртуальными приборами.
· Advanced (расширенная). Состоит из разных функций типа функции библиотечного запроса, манипуляции данных и др.
· Report Generation (генерация отчета). Состоит из VI, используемых для подготовки отчетных документов.
· Tutorial (обучающие программы). Состоит из VI, используемых в обучающей программе LabVIEW.
· User Libraries (пользовательские библиотеки). С помощью нее организуется быстрый доступ к нужному vi.
· Select VI (выбор VI). Состоит из диалогового окна для внедрения подпрограмм в текущий ВП.
· IMAQ Vision (обработка изображений). Состоит из VI, используемых для обработки и анализа изображений.
· Image Acquisition (получение изображения). Состоит из VI, используемых для получения и обработки изображений.
· Internet Toolkit (работа с Internet). Состоит из VI, используемых для работы в сети Internet (ftp, электронная почта, telnet, CGI и другие).
· SQL (SQL запросы. Состоит из VI, используемых для организации связи с SQL сервером и обработки запросов.