LabVIEW – среда разработки прикладных программ, подобная среде С или Basic, но имеющая существенное отличие от них, поскольку использует язык графического программирования G и не требует написания текстов программ. Название среды LabVIEW обозначает Laboratory Virtual Instrument Enginering или Лабораторные средства инженерного проектирования виртуальных инструментов.
LabVIEW — это мощный инструментарий и язык программирования, представляющий некоторую графическую среду программирования и все инструменты, необходимые для сбора данных, их анализа, обработки и представления. Программирование осуществляется в виде проектирования блок — схемы, как типичной разработки инженерного и исследовательского проектов.
LabVIEW имеет библиотеки функций и подпрограмм для приема данных, их анализа и обработки. Реализации программ LabVIEW называются виртуальными инструментами (virtual instruments, далее VI), поскольку их внешнее графическое представление и способ функционирования имитируют работу реальных физических приборов.
What is LabVIEW?
Виртуальные инструменты имеют интерактивный интерфейс пользователя, представленный в виде передней панели, аналогичной панели реального физического прибора и содержащей ручки управления, кнопки, графические индикаторы и другие средства управления и индикации. Ввод данных осуществляется при помощи «мыши» и клавиатуры, результаты выводятся на экран монитора. Источником кода виртуального инструмента служит блок-схема на языке G, отображающая графическое представление программируемой задачи. Программная реализация виртуальных инструментов использует в своей работе принципы иерархичности и модульности. Виртуальный инструмент, содержащийся в составе другого виртуального инструмента, называется прибором-подпрограммой (SubVI).
Структура файла LabView
Файл LabVIEW – виртуальный инструмент состоит из двух панелей в виде окон Windows. Одна из них имитирует переднюю панель реального физического прибора, на которой располагаются управляющие элементы виртуального прибора. Такая панель называется передней, или панелью управления (см. рис. 1). Передняя панель имеет рабочее пространство серого цвета. На второй панели (см. рис.
2) строится блок-схема виртуального инструмента на языке G. Рабочее пространство этой панели белого цвета. Обычно при запуске LabVIEW на экране появляются обе панели, расположенные каскадом. Одновременное нажатие клавиш [Ctrl+T] позволяет упорядочить расположение панелей: слева – передняя, справа – блок-схема.
В строке заголовка блок-схемы к имени текущего файла добавляется слово «Diagram», что позволяет отличить эту панель от передней. Под этими именами обе панели представлены на панели задач как два самостоятельных окна. Рис. 1
Рис. 2
Структура и приемы использования главного меню LabView
Ниже имени файла расположено главное меню панелей, состоящее из пунктов: File, Edit, Operate, Project, Windows, Help. Под строкой главного меню располагается ряд управляющих клавиш. Рассмотрим некоторые команды меню LabVIEW: File/Close – закрыть файл.
What is LabVIEW | Graphical System Design
Выбор этой опции с передней панели позволяет закрыть файл виртуального инструмента в целом, а выбор этой же опции на панели блок-схемы убирает только одну панель блок-схемы; Edit /Remove Bad Wires – удалить ошибочные соединения проводов; Operate /Run – запуск программы; Operate/Make Current Values Default – сделать текущие значения величин (источников, приемников) значениями по умолчанию. Опция позволяет сохранять численные значения, установленные пользователем, до следующего вызова программы. Если пользователь не выбрал эту опцию до сохранения файла, то при следующем вызове этого файла значения источников и приемников будут нулевыми; Windows/Show Diagram – показать блок-схему (находится на передней панели); Windows/Show Panel – показать переднюю панель (находится на панели блок-схемы); Windows/ Show Controls Palette – показать набор управляющих элементов Controls передней панели; Windows/Show Functions Palette – показать набор функций Functions (находится на панели блок-схемы); Windows/Show Tools Palette – показать набор инструментов Tools (опция присутствует на обеих панелях); Windows/Tile Left and Right; Windows/Tile Up and Down – эти опции позволяют располагать панели справа и слева, сверху и снизу соответственно; Help/Show Help – вызов окна помощи. Используйте эту опцию для вызова описания виртуального инструмента, функции или определения типа провода, а также для определения названия выводов виртуального инструмента. Для этого помещайте конец провода «катушки» на тот вывод инструмента, название которого необходимо узнать, при этом будут мигать изображения обоих выводов – на блок-схеме и в окне помощи; Help/ Online Reference – вызов справочной системы LabVIEW.
Источник: studfile.net
LabVIEW — первое знакомство
В относительно небольшой статье мне хотелось бы рассказать о языке программирования LabVIEW. Этот весьма любопытный продукт к сожалению не пользуется широкой популярностью, и мне хотелось бы в некоторой степени восполнить имеющийся пробел.
Что же такое «LabVIEW»?
LabVIEW — это один из основных продуктов компании National Instruments. Прежде всего надо отметить, что LabVIEW — это аббревиатура, которая расшифровывается как Laboratory Virtual Instrumentation Engineering Workbench. Уже в названии прослеживается ориентация на лабораторные исследования, измерения и сбор данных.
Действительно, построить SCADA — систему в LabVIEW несколько проще чем при использовании «традиционных» средств разработки. В данной статье мне хотелось бы показать, что возможная область применения LabVIEW несколько шире. Это принципиально иной язык программирования, или если хотите целая «философия» программирования.
Функциональный язык, заставляющий несколько иначе мыслить и порой предоставляющий совершенно фантастические возможности для разработчика. Является ли LabVIEW языком программирования вообще? Это спорный вопрос — здесь нет стандарта, как, например ANSI C. В узких кругах разработчиков мы говорим, что пишем на языке «G».
Формально такого языка не существует, но в этом и заключается прелесть этого средства разработки: от версии к версии в язык вводятся всё новые конструкции. Сложно представить, что в следующей реинкарнации Си появится, например, новая структура для for-цикла. А в LabVIEW такое вполне возможно.
Впрочем надо заметить, что LabVIEW входит в рейтинг языков программирования TIOBE, занимая на данный момент тридцатое место — где-то между Прологом и Фортраном.
NI LabVIEW — история создания
Компания National Instruments была создана в 1976 году тремя основателями — Джеффом Кодоски (Jeff Kodosky), Джеймсом Тручардом (James Truchard) и Биллом Новлиным (Bill Nowlin) в американском городе Остин (Austin), штат Техас. Основной специализацией компании являлись инструментальные средства для измерений и автоматизация производства.
Первая версия LabVIEW увидела свет спустя десять лет после создания компании — в 1986 году (это была версия для Apple Mac). Инженеры NI решили бросить вызов «традиционным» языкам программирования и создали полностью графическую среду разработки. Основным идеологом графического подхода стал Джефф. Год за годом выпускались новые версии.
Первой кроссплатформенной версией (включая Windows) была третья версия, выпущенная в 1993 году. Актуальной на данный момент является версия 8.6, вышедшая в прошлом году.
В Остине и по сегодняшний день располагается головной офис компании. Сегодня в компании работают почти четыре тысячи человек, а офисы находятся почти в сорока странах (есть также офис и в России)
Моё знакомство с LabVIEW
Моё знакомство с LabVIEW произошло почти десять лет назад. Я начал трудиться по новому контракту, и мой тогдашний шеф вручил мне пачку дисков со словами «теперь ты будешь работать на этом».
Я установил LabVIEW (это была пятая версия), и поигравшись некоторое время заявил, что на ЭТОМ ничего серьёзного не сделать, уж лучше я «по старинке» на Delphi… На что он мне сказал — ты просто не распробовал. Поработай недельку-другую. Через некоторое время я пойму, что ни на чём другом, кроме LabVIEW, я уже писать не смогу. Я просто влюбился в этот язык, хотя это и не была «любовь с первого взгляда».
Вообще говоря, довольно сложно сравнивать графический и текстовый языки программирования. Это, пожалуй, сравнение из разряда «PC» против «MAC» или «Windows» против «Linux» — можно спорить сколько угодно, но спор абсолютно лишён смысла — каждая система имеет право на существование и у каждой найдутся как сторонники так и противники, кроме того у каждого продукта своя ниша. LabVIEW – всего лишь инструмент, хотя и весьма гибкий.
Так что же такое LabVIEW?
LabVIEW — это кроссплатформенная графическая среда разработки приложений. LabVIEW — в принципе универсальный язык программирования. И хотя этот продукт порой тесно связан с аппаратным обеспечением National Instruments, он тем не менее не связан с конкретной машиной. Существуют версии для Windows, Linux, MacOS. Исходные тексты переносимы, а программы будут выглядеть одинаково во всех системах.
Код, сгенерированный LabVIEW также может быть также исполнен на Windows Mobile или PalmOS (справедливости ради надо отметить, что поддержка PalmOS прекращена, впрочем здесь сама Palm больше виновата). Этот язык может с успехом использоваться для создания больших систем, для обработки текстов, изображений и работы с базами данных.
- переменные (локальные или глобальные)
- ветвление (case structure)
- For – циклы с проверкой завершения и без.
- While – циклы
- Группировка операций.
LabVIEW – программа и возможности языка
В LabVIEW разрабатываемые программные модули называются «Virtual Instruments» (Виртуальные Инструменты) или по-простому VI. Они сохраняются в файлах с расширением *.vi. VIs – это кирпичики, из которых состоит LabVIEW – программа. Любая LabVIEW программа содержит как минимум один VI.
В терминах языка Си можно достаточно смело провести аналогию с функцией с той лишь разницей, что в LabVIEW одна функция содержится в одном файле (можно также создавать библиотеки инструментов). Само собой разумеется, один VI может быть вызван из другого VI. В принципе каждый VI состоит из двух частей — Блок-Диаграмма (Block Diagram) и Передняя Панель (Front Panel). Блок-диаграмма — это программный код (точнее визуальное графическое представление кода), а Передняя панель — это интерфейс. Вот как выглядит классический пример Hello, World!:
В основе LabVIEW лежит парадигма потоков данных. В вышеприведённом примере константа и терминал индикатора соединены между собой линией. Эта линия называется Wire. Можно назвать её «проводом». По проводам передаются данные от одних элементов другим. Вся эта концепция называется Data Flow. Суть Блок Диаграммы — это узлы (ноды), выходы одних узлов присоединены ко входам других узлов.
Узел начнёт выполнение только тогда, когда прибудут все необходимые для работы данные. На диаграмме вверху две ноды. Одна из них — константа. Этот узел самодостаточен — он начинает выполнение немедленно. Второй узел — индикатор.
Он отобразит данные, которые передаёт константа (но не сразу, а как только данные прибудут от константы).
Вот чуть более сложный пример: сложение и умножение двух чисел. В традиционных языках мы напишем что-то вроде
int a, b, sum, mul;
//.
sum = a + b;
mul = a * b;
Вот как это выглядит в LabVIEW:
Обратите внимание на то, что сложение и умножение автоматически выполняются параллельно. На двухпроцессорной машине будут автоматически задействованы оба процессора.
А вот как выглядят while / for циклы и if / then / else структура:
Как уже упоминалось, все элементы будут выполняться параллельно. Вам не нужно задумываться о том, как распараллелить задачу на несколько потоков, которые можно выполнять параллельно на нескольких процессорах. В последних версиях можно даже явно указать на каком из процессоров должен выполняться тот или иной while-цикл. Сейчас существуют надстройки и для текстовых языков, позволяющие запросто добиться поддержки многопроцессорных систем, однако так просто, как на LabVIEW, это пожалуй нигде не реализовано. (ну вот, я всё же скатился на сравнение с текстовыми языками). Если уж мы заговорили о многопоточности, то надо также отметить, что в распоряжении разработчика богатый выбор инструментов для синхронизации потоков — семафоры, очереди, рандеву, и т.д.
LabVIEW включает в себя богатые наборы элементов для построения пользовательских интерфейсов. Уж на что быстро «набрасывались» интерфейсы в Дельфи, а в LabVIEW этот процесс происходит ещё стремительнее.
Стандартная поставка LabVIEW включает в себя также блоки для работы с ini файлами, реестром, функции для работы с двоичными и тестовыми файлами, математические функции, мощные инструменты для построения графиков (а куда же без этого в лаборатории-то), а в дополнение к уже упомянутой возможности вызовов DLL, LabVIEW позволяет работать с ActiveX компонентами и .net. Начиная с восьмой версии в LabVIEW была добавлена поддержка классов — язык стал объектно-ориентированным.
Реализованную поддержку нельзя назвать полной, однако основные черты объектно-ориентированных языков — наследование и полиморфизм присутствуют. Также функциональность языка можно расширить дополнительными модулями, например NI Vision Toolkit – для обработки изображений и машинного зрения и другие. А при помощи модуля Applcation Builder можно сгенерировать исполняемый exe-файл. С помощью Internet Toolkit можно работать с ftp серверами, c помощью Database Connectivity Toolkit — с базами данных и т.д.
Часто можно услышать мнение, что графический код плохо читаем. Действительно, с непривычки обилие иконок и проводников несколько шокирует. Также начинающие разработчики создают программы-«простыни» и программы-«спагетти». Однако опытный LabVIEW-разработчик никогда не создаст диаграмм, превышающих размер экрана, даже если программа состоит из сотен модулей. Хорошо разработанная программа фактически «самодокументируется», поскольку в основе уже лежит графическое представление.
Довольно долгое время, программируя на LabVIEW, я пребывал в полной уверенности, что LabVIEW — это интерпретатор и блок-диаграммы постоянно интерпретируются ядром. После разговоров с инженерами NI выяснилось, что это не так. LabVIEW — это компилятор (качество кодогенерации, впрочем оставляет желать лучшего).
Зато компиляция происходит «на лету» — в любой момент разработки программа всегда готова к запуску. Также LabVIEW-код может быть скомпилирован в полноценный исполнямый файл, который может быть запущен на компьютере без установленной LabVIEW (правда он требует LabVIEW Run-Time). Также можно собрать установочный пакет-инсталлятор, сторонних утилит типа InstallShield при этом не требуется.
Дальнейшее и более детальное описание возможностей пакета выходит за рамки данной статьи, я же просто предлагаю попробовать (ссылки даны ниже). Как говорили великие «… единственный способ освоить новый язык программирования — писать на нём программы». Ну а опытные программисты смогут экстраполировать полученные знания на свои собственные нужды.
Ссылки по теме
- www.ni.com — Cайт компании National Instruments
- Всё про LabVIEW от производителя
- Демо-версия (надо зарегистрироваться)
- LabVIEW-форум (присутствуют разработчики)
- Среда графического программирования LabVIEW
- Вводный курс в LabVIEW (PDF 1 MB)
Источник: habr.com
LabVIEW
Программное обеспечение LabVIEW идеально подходит для любых измерительных систем и систем контроля и является сердцем платформ National Instruments. Интегрируя все инструменты, которые необходимы инженерам и ученым, LabVIEW позволяет создавать широкий круг приложений в кратчайшие сроки. LabVIEW — среда разработки для решения проблем, увеличения производительности и создания инноваций.
LabVIEW — программное обеспечение, разработанное специально для инженеров и ученых!
Интеграция с оборудованием
LabVIEW имеет встроенные библиотеки и драйверы для всех устройств National Instruments. Легкое Plug-and-Play подключение приборов National Instruments независимо от интерфейса. Работает с устройствами USB, PCI, PXI, Wi-Fi, Ethernet, GPID и др.
Быстрая разработка
Графическое программирование
LabVIEW — мощная интуитивно понятная графическая среда программирования. Вам больше не надо печатать текст и разбираться в семантике языка. Теперь Вы можете полностью сосредоточиться на задаче, вместо того чтобы разбираться в инструменте ее решения. Программирование с LabVIEW быстрое и легкое! Оно подобно созданию схемы из готовых операторов и функций.
Потоковое программирование
Упрощает программу и делает ее логической и легко понятной.
Визуализация данных
Для создания удобного и современного интерфейса в LabVIEW доступно большое количество инструментов управления и индикаций (осциллограммы, графики, кнопки, переключатели и др). Более того в LabVIEW имеется возможность создания своих элементов управления.
Встроенные библиотеки и дополнительные модули
Встроенные функции
LabVIEW имеет более тысячи встроенных функций для обработки и анализа сигнала. Теперь Вам не придется тратить время на написание стандартных программ, таких как преобразование Фурье или Лапласа, аппроксимация кривых, вычисление корней полинома и т.д.
Дополнительные программные модули
Более того, для LabVIEW существует огромное количество модулей и тулкитов, позволяющих быстро решать невообразимое количество специфических задач.
Хранение данных и создание отчетов
После сбора и обработки данных или после проверки изделия часто требуется сформировать полный отчет; для этого в LabVIEW существует большое количество функций для формирования отчетов с использованием разных типов файлов, что дает пользователю возможность генерации отчетов в том виде, который ему необходим.
Для создания отчетов Microsoft Word и Excel имеется специальный дополнительный тулкит NI LabVIEW Report Generation Toolkit for Microsoft Office.
Большой выбор платформ и операционных систем
LabVIEW представляет из себя универсальную среду разработки, с помощью которой можно создавать программы для разных платформ (PXI, CompactRIO, CompactDAQ, ПК и др.), а также программировать устройства на базе ПЛИС и микроконтроллеров ARM.
На LabVIEW можно разрабатывать и переносить код на Windows, Mac, Linux и операционные системы реального времени, например, VxWorks.
Легкое обучение
LabVIEW изначально создавалась как простой инструмент, который позволяет максимально быстро решать сложные задачи инженерам, ученым, преподавателям и студентам, не занимающимся программированием профессионально. Графическая среда программирования намного проще в изучении чем обычные языки программирования, такие как C++, Delphi, Java и другие.
Для быстрого обучения LabVIEW имеет множество примеров программ для решения самых разных задач. Изучение основ программирования занимает от одной недели до одного месяца, в зависимости от интенсивности и глубины обучения.
Работа с другими языками программирования
В LabVIEW есть возможность вызывать динамически подключаемые библиотеки DLL. Таким образом, Вы можете использовать ранее написанные на других языках программирования программы.
Большое сообщество пользователей во всем мире
Существует большое количество форумов по LabVIEW, число пользователей программы превышает 110 тысяч человек. Для обмена и поиска знаний Вы также можете использовать Developer Zone от National Instruments.
Поддержка и сервис
Регулярное обновление программного обеспечения, большое количество учебных материалов (в том числе и на русском языке), высококачественная поддержка делают LabVIEW еще более популярной. По LabVIEW доступны программы обучения разного уровня сложности. Специалисты могут пройти сертификацию и повышение квалификации.
Источник: engineering-solutions.ru