LabVIEW
Laboratory Virtual Instrument Engineering Workbench (LabVIEW)[12] — графическая платформа для проектирования систем и среда разработки, выпускаемая и распространяемая компанией National Instruments, основанная на программной среде, использующей визуальный язык программирования. Широко применяется для сбора данных, управления приборами и промышленной автоматизации. LabVIEW предоставляет инструменты для проектирования и развёртывания сложных систем тестирования и измерений[13].
Визуальный (или графический) язык программирования называется «G» (не путать с G-кодом). Это язык потоков данных, изначально разработанный компанией National Instruments[14]. LabVIEW поддерживается на различных операционных системах, включая Microsoft Windows, Linux и macOS.
Последней версией является LabVIEW 2025 Q3, выпущенная в июле 2025 года. Параллельно развивавшаяся ветка LabVIEW NXG была упразднена; её последней версией стала 5.1, выпущенная в январе 2021 года[15]. 28 апреля 2020 года National Instruments выпустила бесплатную для некоммерческого использования редакцию LabVIEW Community Edition[16].
По состоянию на март 2026 года LabVIEW остается ключевым инструментом в нишевых областях автоматизации, тестирования и научных исследований, однако среда переживает период серьезной трансформации[17][18][19].
Общие сведения
| LabVIEW | |||
|---|---|---|---|
| Тип | Сбор данных, управление приборами, автоматизация тестирования, анализ и обработка сигналов, промышленное управление, проектирование встраиваемых систем | ||
| Автор | Джефф Кодоски[1] | ||
| Разработчик | National Instruments | ||
| Написана на | C, C++, C# | ||
| Интерфейс | Графический[2] | ||
| Движок | Поток данных[3] | ||
| Операционные системы | Кроссплатформенное: Windows, macOS[4], Linux | ||
| Языки интерфейса | Английский, китайский (упрощённый), корейский, немецкий, французский, японский[5] | ||
| Первый выпуск | 1986 | ||
| Аппаратные платформы | x86-64, Apple silicon, ПЛИС, ARM[6] | ||
| Последняя версия | LabVIEW 2025 Q3[7][8] (июль 2025) | ||
| |||
| |||
| Состояние | активное[11] | ||
| Лицензия | проприетарная | ||
| Сайт | ni.com/labview | ||
История
Разработка LabVIEW началась в 1983 году в компании National Instruments[20]. Инициатором проекта стал Джефф Кодоски, которого часто называют «отцом LabVIEW»[21][22]. Совместно с сооснователем NI Джеймсом Тручардом он разработал концепцию виртуальных приборов, которая легла в основу продукта. Первая версия, LabVIEW 1.0, была выпущена в 1986 году для компьютеров Apple Macintosh, поскольку их передовая на тот момент графическая операционная система лучше всего подходила для реализации новой технологии[20].
Впоследствии параллельно с основной веткой развивалась среда LabVIEW NXG, однако её разработка была прекращена; последней версией стала 5.1, выпущенная в январе 2021 года. 28 апреля 2020 года National Instruments выпустила бесплатную для некоммерческого использования редакцию LabVIEW Community Edition.
Программирование на основе потоков данных
Программная парадигма, используемая в языке LabVIEW «G», основана на потоках данных (англ. dataflow). В отличие от текстовых языков, где выполнение определяется последовательностью команд, в LabVIEW поток выполнения определяется структурой графической блок-схемы. На ней программист размещает узлы (операции, функции, структуры) и соединяет их проводами, по которым передаются данные[23]. Узел выполняется только тогда, когда он получает все необходимые данные на свои входы. После выполнения узел генерирует выходные данные, которые передаются по проводам на входы следующих узлов.
LabVIEW является компилируемым языком: при запуске виртуального прибора (VI) его графический код транслируется в машинный код, исполняемый процессором[24]. Современный компилятор LabVIEW использует технологии LLVM для оптимизации и генерации кода под различные платформы[24].
Модель потока данных естественным образом поддерживает параллелизм[23]. Если два или более узла на диаграмме не связаны потоком данных (то есть не зависят друг от друга), они могут выполняться одновременно. Встроенный планировщик автоматически управляет многозадачностью и многопоточностью, распределяя готовые к выполнению узлы по доступным потокам ОС и ядрам процессора, что позволяет эффективно использовать многопроцессорное и многопоточное оборудование[25].
Графическое программирование
LabVIEW интегрирует создание пользовательских интерфейсов в цикл разработки. Программы, называемые виртуальными приборами (англ. Virtual Instrument, VI), состоят из двух основных взаимосвязанных частей: лицевой панели и блок-диаграммы.
Лицевая панель (англ. Front Panel) представляет собой интерактивный графический интерфейс приложения. На ней размещаются элементы управления (англ. controls) — входы для пользователя, такие как кнопки или поля для ввода текста, и индикаторы (англ. indicators) — выходы для отображения результатов, например, графики или текстовые поля[26].
Блок-диаграмма (англ. Block Diagram) содержит графический исходный код, написанный на языке «G». Вместо текстовых команд, разработчик размещает на диаграмме узлы (функции, структуры, другие VI) и соединяет их проводами, по которым передаются данные[27]. Каждому элементу управления и индикатору на лицевой панели соответствует терминал на блок-диаграмме. Для использования одного VI в качестве подпрограммы (узла) внутри другого VI служит панель соединителей (англ. Connector Pane), которая определяет входы и выходы этого узла.
Существует два способа запуска VI. Его можно запустить как самостоятельную программу, при этом лицевая панель служит пользовательским интерфейсом. Либо его можно использовать как узел, помещённый на блок-схему другого VI и соединённый с его узлами через панель соединителей. В этом случае он работает как подпрограмма в составе более крупной программы, а лицевая панель управляет входами и выходами узла VI. Таким образом, каждый VI можно легко протестировать как самостоятельную программу до встраивания в более крупную систему.
Графический подход «G» позволяет непрофессионалам легко создавать программы путём перетаскивания виртуальных представлений лабораторного оборудования, с которым они уже знакомы. Среда программирования LabVIEW включает примеры и документацию, помогающие и упрощающие создание небольших приложений. Как и во всех вводных руководствах по программированию, простота создания рабочих программ на «G» может привести к недооценке необходимой квалификации для качественного программирования на «G». Для сложных алгоритмов или крупномасштабного кода программист должен обладать глубокими знаниями особенностей синтаксиса LabVIEW и топологии управления памятью. Наиболее продвинутые системы разработки LabVIEW позволяют создавать автономные приложения. Кроме того, возможно создание распределённых приложений, взаимодействующих по простейшей клиент-серверной модели, что позволяет использовать врождённую параллельность «G».
Поддерживаемые платформы
LabVIEW поддерживает широкий спектр аппаратных платформ, которые делятся на две категории: платформы для среды разработки, где запускается сама программа, и целевые платформы, на которые развёртываются созданные приложения.
Платформы для среды разработки
Среда разработки LabVIEW может быть установлена на персональные компьютеры под управлением следующих операционных систем:
- Microsoft Windows: Является основной платформой. Поддерживаются 64-битные версии Windows 11 и Windows 10, а также соответствующие серверные ОС. Среда разработки работает на процессорах архитектуры x86-64, но не поддерживает процессоры с архитектурой ARM под управлением Windows[28][29].
- Linux: Среда разработки доступна для дистрибутивов Linux на 64-битных процессорах архитектуры x86[30].
- macOS: Поддержка macOS имеет сложную историю. После объявления о прекращении поддержки после версии 2023 Q3, компания NI возобновила её выпуск, начиная с версии 2025 Q3[31]. LabVIEW поддерживает как компьютеры Mac на базе процессоров Intel (через эмулятор Rosetta 2), так и на базе Apple silicon (архитектура ARM) в нативном режиме, начиная с версии 2023 Q3[32].
Целевые платформы для развёртывания
Ключевым преимуществом LabVIEW является возможность развёртывания кода на разнообразном специализированном оборудовании. К таким целевым платформам относятся:
- Оборудование National Instruments: платформы PXI, CompactRIO и Single-Board RIO, работающие под управлением операционной системы реального времени LabVIEW Real-Time.
- Программируемые логические интегральные схемы (ПЛИС): с помощью модуля LabVIEW FPGA можно программировать аппаратную логику ПЛИС для достижения высокой производительности и детерминизма.
- Микроконтроллеры ARM: модуль LabVIEW Embedded Module for ARM Microcontrollers позволяет создавать и развёртывать приложения для сотен различных микроконтроллеров (например, от NXP, TI, STMicroelectronics) на базе ядер ARM7, ARM9 и Cortex-M3[33].
Языковая поддержка
Среда разработки LabVIEW и создаваемые в ней приложения имеют различные возможности в плане поддержки языков.
Интерфейс самой среды разработки LabVIEW локализован на несколько языков, однако их доступность зависит от версии программы и операционной системы. 32-битная версия LabVIEW для Windows доступна на следующих языках: английский, китайский (упрощённый), корейский, немецкий, французский и японский. При этом 64-битные версии (включая LabVIEW Community Edition), а также версии для macOS и Linux, поставляются только на английском языке.
Для смены языка интерфейса не предусмотрено опции в настройках; требуется полная переустановка программного обеспечения с выбором необходимого языка в процессе установки[34][35].
Несмотря на ограничения языков самой среды, LabVIEW предоставляет встроенные инструменты для локализации создаваемых приложений, позволяя создавать многоязычные пользовательские интерфейсы[36]. Разработчик может экспортировать все текстовые строки из лицевых панелей проекта, передать их на перевод и затем импортировать обратно в приложение[36]. Поддерживаются однобайтовые и двухбайтовые кодировки, что обеспечивает корректное отображение символов большинства языков мира, включая иероглифические, при условии их поддержки на уровне операционной системы. Однако официально не поддерживаются языки с письмом справа налево, такие как арабский или иврит.
Существуют и другие программные продукты, использующие схожие с LabVIEW подходы или интегрирующиеся с ним:
- FlowStone DSP от DSP Robotics также использует форму графического программирования, схожую с LabVIEW, но ориентирован на индустрию робототехники.
- modeFRONTIER — многодисциплинарная среда оптимизации и проектирования, для которой в LabVIEW существует прямой узел интеграции, что позволяет объединять оба продукта в едином рабочем процессе.
Примечания
Литература
- Bress, Thomas J. Effective LabVIEW Programming. — [S.l.] : NTS Press, 2013. — ISBN 978-1-934891-08-7.
- Blume, Peter A. The LabVIEW Style Book. — Upper Saddle River, NJ : Prentice Hall, 2007. — ISBN 978-0-13-145835-2.
- Travis, Jeffrey. LabVIEW for Everyone : Graphical Programming Made Easy and Fun. / Jeffrey Travis, Jim Kring. — 3rd. — Upper Saddle River, NJ : Prentice Hall, 2006. — ISBN 0-13-185672-3.
- Conway, Jon. A Software Engineering Approach to LabVIEW / Jon Conway, Steve Watts. — Upper Saddle River, NJ : Prentice Hall PTR, 2003. — ISBN 0-13-009365-3.
- Olansen, Jon B. Virtual Bio-Instrumentation : Biomedical, Clinical, and Healthcare Applications in LabVIEW / Jon B. Olansen, Eric Rosow. — Upper Saddle River, NJ : Prentice Hall PTR, 2002. — ISBN 0-13-065216-4.
- Beyon, Jeffrey Y. LabVIEW Programming, Data Acquisition and Analysis. — Upper Saddle River, NJ : Prentice Hall PTR, 2001. — ISBN 0-13-030367-4.
- Travis, Jeffrey. Internet Applications In LabVIEW. — Upper Saddle River, NJ : Prentice Hall PTR, 2000. — ISBN 0-13-014144-5.
- Essick, John. Advanced LabVIEW Labs. — Upper Saddle River, NJ : Prentice Hall, 1999. — ISBN 0-13-833949-X.
- Desnica V, Schreiner M, Vladan; Schreiner, Manfred (October 2006). “A LabVIEW-controlled portable x-ray fluorescence spectrometer for the analysis of art objects”. X-Ray Spectrometry. 35 (5): 280—286. Bibcode:2006XRS....35..280D. DOI:10.1002/xrs.906. Архивировано из оригинала 2010-08-18. Используется устаревший параметр
|url-status=(справка) - Keleshis C, Ionita C, Rudin S, C.; Ionita, C.; Rudin, S. (June 2006). “Labview [sic] graphical user interface for micro angio-fluoroscopic high resolution detector”. Medical Physics. 33 (6): 2007. DOI:10.1118/1.2240285.
- Fedak W., Bord D., Smith C., Gawrych D., Lindeman K., W.; Bord, D.; Smith, C.; Gawrych, D.; Lindeman, K. (May 2003). “Automation of the Franck-Hertz experiment and the Tel-X-Ometer x-ray machine using LABVIEW”. American Journal of Physics. AAPT. 71 (5): 501—506. Bibcode:2003AmJPh..71..501F. DOI:10.1119/1.1527949.
- Belletti A., Borromei R., Ingletto G., A.; Borromei, R.; Ingletto, G. (September 2006). “Teaching physical chemistry experiments with a computer simulation by LabVIEW”. Journal of Chemical Education. ACS. 83 (9): 1353—1355. Bibcode:2006JChEd..83.1353B. DOI:10.1021/ed083p1353.
- Moriarty P.J., Gallagher B.L., Mellor C.J., Baines R.R., P. J.; Gallagher, B. L.; Mellor, C. J.; Baines, R. R. (October 2003). “Graphical computing in the undergraduate laboratory: Teaching and interfacing with LabVIEW”. American Journal of Physics. AAPT. 71 (10): 1062—1074. Bibcode:2003AmJPh..71.1062M. DOI:10.1119/1.1582189.
- Lauterburg, Urs (June 2001). “LabVIEW in Physics Education” (PDF). A White Paper About Using LabVIEW in Physics Demonstration and Laboratory Experiments and Simulations.
- Drew SM, Steven M. (December 1996). “Integration of National Instruments' LabVIEW software into the chemistry curriculum”. Journal of Chemical Education. ACS. 73 (12): 1107—1111. Bibcode:1996JChEd..73.1107D. DOI:10.1021/ed073p1107.
- Muyskens MA, Glass SV, Wietsma TW, Gray TM, Mark A.; Glass, Samuel V.; Wietsma, Thomas W.; Gray, Terry M. (December 1996). “Data acquisition in the chemistry laboratory using LabVIEW software”. Journal of Chemical Education. ACS. 73 (12): 1112—1114. Bibcode:1996JChEd..73.1112M. DOI:10.1021/ed073p1112.
- Ogren PJ, Jones TP, Paul J.; Jones, Thomas P. (December 1996). “Laboratory interfacing using the LabVIEW software package”. Journal of Chemical Education. ACS. 73 (12): 1115—1116. Bibcode:1996JChEd..73.1115O. DOI:10.1021/ed073p1115.
- Trevelyan, J.P. (June 2004). “10 Years Experience with Remote Laboratories” (PDF). International Conference on Engineering Education Research. ACS.