LabVIEW

LabVIEW () — это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments (США). Первая версия LabVIEW была выпущена в 1986 году для Apple Macintosh, в настоящее время существуют версии для Unix, Linux, Mac OS и Microsoft Windows.

LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами. Идеологически LabVIEW очень близка к SCADA-системам, но в отличие от них в большей степени ориентирована на решение задач не столько в области АСУ ТП, сколько в области АСНИ.

Программирование, основанное на потоках данных 

Графический язык программирования «G», используемый в LabVIEW, основан на архитектуре потоков данных. Последовательность выполнения операторов в таких языках определяется не порядком их следования (как в императивных языках программирования), а наличием данных на входах этих операторов. Операторы, не связанные по данным, выполняются параллельно в произвольном порядке.

Программы LabVIEW 
Программа LabVIEW называется и является виртуальным прибором (англ. Virtual Instrument) и состоит из двух частей:
 блочной диаграммы, описывающей логику работы виртуального прибора;
 лицевой панели, описывающей внешний интерфейс виртуального прибора.
Виртуальные приборы могут использоваться в качестве составных частей для построения других виртуальных приборов.

Лицевая панель виртуального прибора содержит средства ввода-вывода: кнопки, переключатели, светодиоды, верньеры, шкалы, информационные табло и т. п. Они используются человеком для управления виртуальным прибором, а также другими виртуальными приборами для обмена данными.

Блочная диаграмма содержит функциональные узлы, являющиеся источниками, приёмниками и средствами обработки данных. Также компонентами блочной диаграммы являются терминалы («задние контакты» объектов лицевой панели) и управляющие структуры (являющиеся аналогами таких элементов текстовых языков программирования, как условный оператор «IF», операторы цикла «FOR» и «WHILE» и т. п.). Функциональные узлы и терминалы объединены в единую схему линиями связей.

Дополнительные библиотеки 
LabVIEW поддерживает огромный спектр оборудования различных производителей и имеет в своём составе (либо позволяет добавлять к базовому пакету) многочисленные библиотеки компонентов:
 для подключения внешнего оборудования по наиболее распространённым интерфейсам и протоколам (RS-232, GPIB-488, TCP/IP и пр.);
 для удалённого управления ходом эксперимента;
 для управления роботами и системами машинного зрения;
 для генерации и цифровой обработки сигналов;
 для применения разнообразных математических методов обработки данных;
 для визуализации данных и результатов их обработки (включая 3D-модели);
 для моделирования сложных систем;
 для хранения информации в базах данных и генерации отчётов;
 для взаимодействия с другими приложениями в рамках концепции COM/DCOM/OLE.

Специальный компонент LabVIEW Application Builder позволяет создавать LabVIEW-программы, пригодные для выполнения на тех компьютерах, на которых не установлена полная среда разработки. Для работы таких программ требуется бесплатно распространяемый компонент «LabVIEW Runtime Engine» и, при необходимости, драйверы используемых внешних устройств.

Критика 
 LabVIEW — это продукт с закрытым исходным кодом. Версии для Windows, начиная с 8.2, требуют активации (для Linux и MAC такой необходимости нет).
 Ограниченная поддержка не-Windows платформ (MAC, Linux): нет драйверов, нет специальных toolkit-программ.

Сопутствующие продукты и технологии 
BridgeVIEW — разновидность LabVIEW, позиционируемая как полноценная SCADA-система и предназначенная для работы в составе систем промышленной автоматизации (АСУ ТП). Ввиду отсутствия заметного коммерческого успеха развитие системы прекращено.

LabVIEW RT — технология фирмы National Instruments, позволяющая создавать средствами LabVIEW программы для операционных систем жёсткого реального времени Phar Lap ETS и NI Linux RT. Предусматривает взаимодействие LabVIEW-программы, работающей на обычном персональном компьютере, и сверхбыстрого и сверхкомпактного приложения, выполняющегося на совместимом контроллере, встроенном в специализированное измерительное оборудование фирмы National Instruments.

LabWindows/CVI — продукт фирмы National Instruments, реализующий концепцию не графического, а визуального программирования. Лицевая панель виртуального прибора формируется так же, как и в LabVIEW, а алгоритм работы виртуального прибора программируется на языке Си. LabWindows позволяет создавать автономно выполняющиеся EXE-программы.

LabVIEW FPGA — модуль для сред разработки LabVIEW, позволяющий транслировать исходный код на языке G в язык описания аппаратуры VHDL и выполнять синтез прошивок ПЛИС с помощью поставляемого с модулем ПО Xilinx vivado.

См. также 
 JMCAD — программа для моделирования и симуляции сложных динамических систем.
 Сбор данных
 Графическое программирование
 Архитектура потоков данных

Примечания

Литература

Ссылки 
 LabVIEW в России
 Раздел сайта компании National Instruments, посвящённый LabVIEW 
 Международное сообщество инженеров и программистов LabVIEW Portal
 Новостной канал о LabVIEW в Facebook
 OpenG — сообщество разработчиков открытого программного обеспечения в LabVIEW 

Статистическое программное обеспечение
Программы математического моделирования
Языки визуального программирования
Предметно-ориентированные языки программирования
Кроссплатформенное программное обеспечение