Теоретические основы
LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) — это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments (США). Первая версия LabVIEW была выпущена в 1986 году для Apple Macintosh, в настоящее существуют версии для UNIX, GNU/Linux, Mac OS и пр., а наиболее развитыми и популярными являются версии для Microsoft Windows.
LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами. Идеологически LabVIEW очень близка к SCADA-системам, но в отличие от них в большей степени ориентирована на решение задач не столько в области АСУ ТП, сколько в области АСНИ.
Программирование, основанное на потоках данных
Графический язык программирования «G», используемый в LabVIEW, основан на архитектуре потоков данных. Последовательность выполнения операторов в таких языках определяется не порядком их следования (как в императивных языках программирования), а наличием данных на входах этих операторов. Операторы, не связанные по данным, выполняются параллельно в произвольном порядке.
В основе программирования в LabVIEW лежит понятие Виртуальных приборов (Virtual Instruments, VI). На лицевой панели, как и положено, располагаются элементы управления программой — кнопки, графики, выключатели и тому подобное. Блок-схема — это, по сути, и есть сама программа. При написании (а вернее создании, потому что писать приходится не так уж и много) программы используется такое понятие, как «поток данных» (Data Flow). Суть его в том, что все элементы программы (которые представлены графически) связываются между собой связями (проводами, нитками) по которым и происходит передача данных. В общем, описать это довольно сложно, лучше посмотреть на картинку, рис.1.
Рис. 1. Простейший прибор.
Цифрами обозначены:
· 1- точки, элементы программы (Nodes);
· 2 - терминалы индикаторов (Indicator Terminals);
· 3 - связи (Wires);
· 4 - терминалы управляющих элементов (Control Terminals)
Итак, в LabVIEW вы создаете пользовательский интерфейс (лицевую панель), с управляющими элементами и индикаторами. Управляющие элементы — это тумблеры, кнопки, поля ввода и прочие устройства ввода. Индикаторы — это графики, шкалы, лампочки, текстовые поля и тому подобное. После создания пользовательского интерфейса, вы добавляете программный код, который управляет объектами на лицевой панели. Этот код содержится в схеме (block diagram). Этот код чем-то напоминает собой блок-схему, хотя отличий много.
LabVIEW можно использовать для того, чтобы управлять различным оборудованием, таким, как, устройства сбора данных, различные датчики, устройства наблюдения, двигательные устройства (например, шаговые моторы) и тому подобное, а так же GPIB, PXI, VXI, RS-232 b RS-484 устройства. Также в LabVIEW имеются встроенные средства для подключения созданных программ к сети, используя LabVIEW Web Server и различные стандартные протоколы и средства, такие как TCP/IP и ActiveX.
Используя LabVIEW, можно создавать приложения для тестирования и измерений, сбора данных, управления различными внешними устройствами, генерации отчетов. Так же можно создать независимые исполняемые файлы и библиотеки функций, такие как DLL, так как LabVIEW — это полноценный 32-битный компилятор.
Достоинства LabVIEW:
· полноценный язык программирования;
· интуитивно понятный процесс графического программирования;
· широкие возможности сбора, обработки и анализа данных, управления приборами, генерации отчетов и обмена данных через сетевые интерфейсы;
· драйверная поддержка более 2000 приборов;
· возможности интерактивной генерации кода;
· шаблоны приложений, тысячи примеров;
· высокая скорость выполнения откомпилированных программ;
· совместимость с операционными системами Windows2000/NT/XP, Mac OS X, Linux и Solaris.
LabVIEW поддерживает огромный спектр оборудования различных производителей и имеет в своём составе (либо позволяет добавлять к базовому пакету) многочисленные библиотеки компонентов:
· для подключения внешнего оборудования по наиболее распространённым интерфейсам и протоколам (RS-232, GPIB 488, TCP/IP и пр.);
· для удалённого управления ходом эксперимента;
· для управления роботами и системами машинного зрения;
· для генерации и цифровой обработки сигналов;
· для применения разнообразных математических методов обработки данных;
· для визуализации данных и результатов их обработки (включая 3D-модели);
· для моделирования сложных систем;
· для хранения информации в базах данных и генерации отчетов;
· для взаимодействия с другими приложениями в рамках концепции COM/DCOM/OLE и пр.
Вместе с тем LabVIEW — очень простая и интуитивно понятная система. Неискушённый пользователь, не являясь программистом, за сравнительно короткое время (от нескольких минут до нескольких часов) способен создать сложную программу для сбора данных и управления объектами, обладающую красивым и удобным человеко-машинным интерфейсом. Например, средствами LabVIEW можно быстро превратить старый компьютер, снабжённый звуковой картой, в мощную измерительную лабораторию.
Специальный компонент LabVIEW — Application Builder, позволяет выполнять LabVIEW-программы на тех компьютерах, на которых не установлена полная среда разработки.
Интерфейс панелиLabVIEW и окно редактирования диаграмм
Запустите LabVIEW. В появившемся окне (рис.2) выберите пункт New>Blank VI.
Рис. 2. Окно запуска программы.
После выбора создания нового прибора раскрываются два окна: интерфейсная панель (Front Panel) (рис.3) и окно редактирования диаграмм (Block Diagram) (рис.4), которое по своей сути является программой в графическом виде.
Интерфейсная панель - это интерфейс пользователя. Вы устанавливаете на интерфейсную панель графические элементы управления и всевозможные индикаторные приборы, которые являются соответственно элементами ввода и вывода. Элементы управления - это ручки, регуляторы, ползунковые устройства, кнопки и другие устройства ввода. Индикаторы - это элементы для вывода/построения графиков, сигнализирующие устройства, такие, как лампочки и т.д.
Установленные на переднюю панель элементы управления и индикаторы, отображаются соответствующими иконками (терминалами) во втором окне – окне редактирования диаграмм. Т.е. каждому установленному элементу на интерфейсной панели соответствует иконка в окне редактирования. В этом окне и "пишется" программа - создается графический код VI. Удалив, например, управляющий элемент в интерфейсном окне, исчезнет и соответствующая иконка (терминал) в окне редактирования диаграмм.
Рис. 3. Интерфейсная панель.
Рис. 4. Окно редактирования диаграмм
Иконки или терминалы показывают тип данных элементов управления или индикаторов. Терминалы осуществляют связь между интерфейсной панелью и диаграммой.
Функции - это объекты окна редактирования диаграмм, которые могут иметь один и/или несколько входов и/или выходов. Функции LabVIEW аналогичны выражениям, операторам, процедурам и функциям текстовых языков программирования.
Связи — это соединительные линии между иконками (терминалами). Они являются аналогом переменных в обычных языках программирования. Причем данные могут передаваться только в одном направлении - от терминала-источника к одному или нескольким терминалам-приемникам. Различный вид и цвет соединений соответствует различным типам передаваемых данных. Неправильная связь терминалов или незаконченное соединение изображается штриховой линией.
Структуры - это графическое представление циклов и операторов выбора в тексториентированных языках программирования. Терминалы, функции, связи и структуры - это весь синтаксис языка программирования LabVIEW.
Линейка инструментов. Оба окна, как интерфейсное, так и окно редактирования диаграмм имеют линейки инструментов, которые содержат служебные кнопки и индикаторы состояния, предназначенные для контроля Виртуальных Инструментов. Одна из линеек инструментов всегда доступна, и ее вид зависит от того, в каком окне Вы находитесь. Линейка инструментов интерфейсного окна содержит 8 кнопок, рис. 5.
Рис. 5. Линейка инструментов интерфейсного окна
· 1 - кнопка запуска программы на выполнение, пока приложение выполняется, значок меняет свой внешний вид;
· 2 - кнопка запуска программы на выполнение в циклическом режиме, пока приложение выполняется, значок меняет свой внешний вид;
· 3 - когда приложение запущено, эта кнопка находится в активном состоянии, используйте ее для прекращения выполнения программы;
· 4 - кнопка "ПАУЗА" приостанавливает исполнение программы до последующего нажатия на эту же кнопку;
· 5 - выпадающее меню редактирования свойств шрифта: тип, размер, стиль и цвет;
· 6 - выпадающие меню, позволяющие осуществлять выравнивание и позиционирование объектов, распределять графические объекты передней панели VI.
· 7 - если вы устанавливаете объект поверх другого объекта, то нижний объект может быть перекрыт и недоступен, используйте это выпадающее меню размещения объекта поверх или под желаемым.
Если приложение не может быть запущено на выполнение по какой-либо причине, то линейка инструментов примет следующий вид:
Рис. 6. Линейка инструментов – программа не может быть запущена
Линейка инструментов окна редактирования диаграмм имеет такие же кнопки, как и интерфейсная панель, плюс свои собственные, предназначенные для отладки (debugging) программы, рис. 7: