LabVIEW - LabVIEW

LabVIEW
Логотип LabVIEW.
Разработчики) Национальные инструменты
Первый выпуск 1986 ; 35 лет назад ( 1986 )
Стабильный выпуск
LabVIEW NXG 5.1

LabVIEW 2021

/ Август 2021 г . ; 2 месяца назад ( 2021-08 )
Написано в C, C ++
Операционная система Кроссплатформенность : Windows , macOS , Linux
Тип Сбор данных , управление приборами , автоматизация испытаний , анализ и обработка сигналов , промышленный контроль , проектирование встроенных систем
Лицензия Проприетарный
Веб-сайт www .ni .com / labview

Лаборатория Virtual Instrument Engineering Workbench ( LabVIEW ) - это платформа системного проектирования и среда разработки для языка визуального программирования от National Instruments .

Графический язык называется «G»; не путать с G-кодом . Язык потока данных G был первоначально разработан Labview, LabVIEW обычно используется для сбора данных , управления приборами и промышленной автоматизации в различных операционных системах (ОС), включая Microsoft Windows, а также различные версии Unix , Linux и macOS .

Последними версиями LabVIEW являются LabVIEW 2021 (выпущен в августе 2021 года) и LabVIEW NXG 5.1 (выпущен в январе 2021 года). 28 апреля 2020 года NI выпустила бесплатные для некоммерческого использования версии LabVIEW и LabVIEW NXG Community.

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

Парадигма программирования, используемая в LabVIEW, иногда называемая G, основана на доступности данных. Если для ВПП или функции доступно достаточно данных, этот ВПП или функция будет выполняться. Поток выполнения определяется структурой графической блок-схемы (исходный код LabVIEW), на которой программист соединяет различные функциональные узлы с помощью проводов. Эти провода распространяют переменные, и любой узел может выполняться, как только все его входные данные станут доступны. Поскольку это может иметь место для нескольких узлов одновременно, LabVIEW может выполняться параллельно. Многопроцессорное и многопоточное оборудование автоматически используется встроенным планировщиком, который мультиплексирует несколько потоков ОС на узлах, готовых к выполнению.

Графическое программирование

Labview code example.png

LabVIEW интегрирует создание пользовательских интерфейсов (называемых лицевыми панелями) в цикл разработки. Программы-подпрограммы LabVIEW называются виртуальными инструментами (ВП). Каждый VI состоит из трех компонентов: блок-схемы, передней панели и панели подключения. Последний используется для представления ВП на блок-схемах других вызывающих ВП. Передняя панель построена с использованием элементов управления и индикаторов. Элементы управления - это входы: они позволяют пользователю вводить информацию в VI. Индикаторы - это выходы: они указывают или отображают результаты на основе входных данных, переданных в VI. Задняя панель, представляющая собой блок-схему, содержит графический исходный код. Все объекты, размещенные на передней панели, появятся на задней панели как терминалы. Задняя панель также содержит структуры и функции, которые выполняют операции с элементами управления и предоставляют данные для индикаторов. Структуры и функции находятся на палитре функций и могут быть размещены на задней панели. В совокупности элементы управления, индикаторы, структуры и функции называются узлами. Узлы соединяются друг с другом с помощью проводов, например, два элемента управления и индикатор могут быть подключены к функции сложения, так что индикатор отображает сумму двух элементов управления. Таким образом, виртуальный инструмент может быть запущен либо как программа, с передней панелью, служащей пользовательским интерфейсом, либо, когда он помещен в качестве узла на блок-диаграмму, передняя панель определяет входы и выходы для узла через панель подключения. Это означает, что каждый ВП можно легко протестировать перед тем, как встраивать его как подпрограмму в более крупную программу.

Графический подход также позволяет непрограммистам создавать программы путем перетаскивания виртуальных представлений лабораторного оборудования, с которым они уже знакомы. Среда программирования LabVIEW с включенными примерами и документацией упрощает создание небольших приложений. Это преимущество с одной стороны, но есть также определенная опасность недооценки опыта, необходимого для высококачественного G-программирования. Для сложных алгоритмов или крупномасштабного кода важно, чтобы программист обладал обширными знаниями о специальном синтаксисе LabVIEW и топологии управления памятью. Самые передовые системы разработки LabVIEW предлагают возможность создавать автономные приложения. Кроме того, можно создавать распределенные приложения, которые обмениваются данными по модели клиент-сервер , и, таким образом, их легче реализовать из-за изначально параллельной природы G.

Широко распространенные шаблоны проектирования

Приложения в LabVIEW обычно разрабатываются с использованием хорошо известных архитектур, известных как шаблоны проектирования . Наиболее распространенные шаблоны проектирования для графических приложений LabVIEW перечислены в таблице ниже.

Общие шаблоны проектирования для приложений LabVIEW
Шаблон дизайна Цель Детали реализации Случаи применения Ограничения
Функциональная глобальная переменная Обмен информацией без использования глобальных переменных Сдвиговый регистр цикла while используется для хранения данных, а цикл while выполняет только одну итерацию в виртуальном инструменте (ВП) с "невозвращаемым входом". Обмен информацией с меньшим количеством проводов Все виртуальные инструменты (ВП) хранятся в памяти.
Государственный аппарат Контролируемое исполнение, зависящее от прошлых событий Структура case внутри цикла while передает пронумерованную переменную в регистр сдвига, представляя следующее состояние; сложные конечные автоматы могут быть спроектированы с использованием модуля Statechart • Пользовательские интерфейсы
• Сложная логика
• Коммуникационные протоколы
Все возможные состояния нужно знать заранее.
Пользовательский интерфейс, управляемый событиями Обработка действий пользователя без потерь События графического интерфейса пользователя захватываются очередью структуры событий внутри цикла while; цикл while приостанавливается структурой событий и возобновляется только после захвата желаемых событий Графический пользовательский интерфейс Только одна структура событий в цикле.
Хозяин-раб Запускать независимые процессы одновременно Несколько параллельных циклов while, один из которых функционирует как «главный», управляя «подчиненными» циклами. Простой графический интерфейс для сбора и визуализации данных Требуется внимание и предотвращение условий гонки .
Производитель-потребитель Асинхронное многопоточное выполнение циклов Главный цикл управляет выполнением двух подчиненных циклов, которые обмениваются данными с помощью уведомителей, очередей и семафоров; независимые от данных циклы автоматически выполняются в отдельных потоках Выборка и визуализация данных Порядок исполнения неочевиден для контроля.
Конечный автомат с очередями с управляемым событиями производителем-потребителем Высокочувствительный пользовательский интерфейс для многопоточных приложений Пользовательский интерфейс, управляемый событиями, помещается внутри цикла производителя, а конечный автомат помещается внутри цикла потребителя, взаимодействуя с помощью очередей между собой и другими параллельными VI. Комплексные приложения

Преимущества

Взаимодействие с устройствами

LabVIEW включает обширную поддержку взаимодействия с такими устройствами, как инструменты, камеры и другие устройства. Пользователи взаимодействуют с оборудованием либо путем написания прямых команд шины (USB, GPIB, Serial), либо с помощью высокоуровневых драйверов для конкретных устройств, которые предоставляют собственные функциональные узлы LabVIEW для управления устройством.

LabVIEW включает встроенную поддержку аппаратных платформ NI, таких как CompactDAQ и CompactRIO , с большим количеством специфичных для устройства блоков для такого оборудования, наборов инструментов Measurement and Automation eXplorer (MAX) и Virtual Instrument Software Architecture (VISA).

National Instruments предоставляет тысячи драйверов устройств для загрузки в NI Instrument Driver Network (IDNet).

Компиляция кода

LabVIEW включает компилятор, который создает собственный код для платформы ЦП. Графический код преобразуется в промежуточное представление потока данных, а затем транслируется в фрагменты исполняемого машинного кода компилятором на основе LLVM . Механизм выполнения вызывает эти фрагменты, что обеспечивает лучшую производительность. Синтаксис LabVIEW строго соблюдается в процессе редактирования и компилируется в исполняемый машинный код при запросе на запуск или при сохранении. В последнем случае исполняемый файл и исходный код объединяются в один двоичный файл. Выполнение контролируется механизмом времени выполнения LabVIEW , который содержит некоторый предварительно скомпилированный код для выполнения общих задач, определенных языком G. Механизм выполнения управляет потоком выполнения и обеспечивает согласованный интерфейс для различных операционных систем, графических систем и компонентов оборудования. Использование среды выполнения позволяет переносить файлы исходного кода на поддерживаемые платформы. Программы LabVIEW медленнее, чем эквивалентный скомпилированный код C, хотя, как и в других языках, оптимизация программ часто позволяет смягчить проблемы со скоростью выполнения.

Большие библиотеки

Множество библиотек с большим количеством функций для сбора данных, генерации сигналов, математики, статистики, преобразования сигналов, анализа и т. Д., А также с многочисленными функциями, такими как интеграция, фильтры и другими специализированными возможностями, обычно связанными с захватом данных с аппаратных датчиков. огромен. Кроме того, LabVIEW включает текстовый программный компонент MathScript с добавленными функциями для обработки сигналов, анализа и математики. MathScript может быть интегрирован с графическим программированием с использованием узлов сценария и использует синтаксис, который в целом совместим с MATLAB .

Параллельное программирование

LabVIEW по своей сути является параллельным языком , поэтому очень легко запрограммировать несколько задач, которые выполняются параллельно с помощью многопоточности. Например, это легко сделать, нарисовав два или более параллельных цикла while и соединив их с двумя отдельными узлами. Это большое преимущество для автоматизации тестовой системы, где обычно выполняется параллельное выполнение таких процессов, как определение последовательности тестов, запись данных и аппаратный интерфейс.

Экосистема

Благодаря долговечности и популярности языка LabVIEW, а также способности пользователей расширять его функции, большая экосистема сторонних надстроек была разработана благодаря вкладам сообщества. Эта экосистема доступна в сети LabVIEW Tools Network, которая представляет собой рынок как бесплатных, так и платных надстроек LabVIEW.

Сообщество пользователей

Существует недорогая версия LabVIEW Student Edition, предназначенная для учебных заведений. Существует также активное сообщество пользователей LabVIEW, которые общаются через несколько электронных списков рассылки (группы электронной почты) и Интернет-форумы .

Издание Home Bundle Edition

National Instruments предоставляет недорогую версию LabVIEW Home Bundle Edition.

Community Edition

National Instruments предоставляет бесплатную для некоммерческого использования версию под названием LabVIEW Community Edition. Эта версия включает все, что есть в профессиональных редакциях LabVIEW, не имеет водяных знаков и включает модуль LabVIEW NXG Web для некоммерческого использования. Эти выпуски могут также использоваться школами K-12.

Критика

LabVIEW является запатентованным продуктом National Instruments . В отличие от распространенных языков программирования, таких как C или Fortran , LabVIEW не управляется и не определяется каким-либо сторонним комитетом по стандартам, таким как Американский национальный институт стандартов (ANSI), Институт инженеров по электротехнике и электронике (IEEE), Международная организация по стандартизации (ISO).

Нетекстовый

Поскольку язык G не является текстовым, программные инструменты, такие как управление версиями, параллельное (или различное) сравнение и отслеживание изменений кода версии, не могут применяться так же, как для текстовых языков программирования. Есть несколько дополнительных инструментов для сравнения и объединения кода с инструментами управления исходным кодом (версией), такими как Subversion, CVS и Perforce.

Без функции масштабирования

Невозможно увеличить (или увеличить) виртуальный инструмент (VI), который будет трудно увидеть на большом мониторе с высоким разрешением. Однако в LabVIEW NXG добавлена ​​возможность масштабирования.

История выпуска

В 2005 году, начиная с LabVIEW 8.0, основные версии выпускаются примерно в первую неделю августа, что совпадает с ежегодной конференцией National Instruments NI Week, а в феврале следующего года следует выпуск с исправлением ошибок.

В 2009 году National Instruments начала называть релизы после года, в котором они были выпущены. Исправление ошибки называется пакетом обновления, например, пакет обновления 1 2009 года был выпущен в феврале 2010 года.

В 2017 году National Instruments перенесла ежегодную конференцию на май и выпустила LabVIEW 2017 вместе с полностью переработанной LabVIEW NXG 1.0, построенной на Windows Presentation Foundation (WPF).

Название и версия Номер сборки Дата Примечания
Проект LabVIEW начинается Апрель 1983 г.
LabVIEW 1.0 Октябрь 1986 для Macintosh
LabVIEW 2.0 Январь 1990
LabVIEW 2.5 Август 1992 г. первый выпуск для Sun и Windows
LabVIEW 3.0 Июль 1993 г. Мультиплатформенность
LabVIEW 3.0.1 1994 г. первый выпуск для Windows NT
LabVIEW 3.1 1994 г.
LabVIEW 3.1.1 1995 г. первый выпуск с возможностью "конструктора приложений"
LabVIEW 4.0 Апрель 1996 г.
LabVIEW 4.1 1997 г.
LabVIEW 5.0 Февраль 1998 г.
LabVIEW RT Май 1999 г. В реальном времени
LabVIEW 6.0 (6i) 6.0.0.4005 26 июля 2000 г.
LabVIEW 6.1 6.1.0.4004 12 апреля 2001 г.
LabVIEW 7.0 (Экспресс) 7.0.0.4000 Апрель 2003 г.
Модуль LabVIEW для КПК Май 2003 г. первый выпуск модуля
Модуль LabVIEW FPGA Июнь 2003 г. первый выпуск
LabVIEW 7.1 7.1.0.4000 2004 г.
Встроенный модуль LabVIEW Май 2005 г. первый выпуск
LabVIEW 8.0 8.0.0.4005 Сентябрь 2005 г.
LabVIEW 8.20 Август 2006 г. родное объектно-ориентированное программирование
LabVIEW 8.2.1 8.2.1.4002 21 февраля 2007 г.
LabVIEW 8.5 8.5.0.4002 2007 г.
LabVIEW 8.6 8.6.0.4001 24 июля 2008 г.
LabVIEW 8.6.1 8.6.0.4001 10 декабря 2008 г.
LabVIEW 2009 9.0.0.4022 4 августа 2009 г. 32-битный и 64-битный
LabVIEW 2009 с пакетом обновления 1 (SP1) 9.0.1.4011 8 января 2010 г.
LabVIEW 2010 10.0.0.4032 4 августа 2010 г.
LabVIEW 2010 f2 10.0.0.4033 16 сентября 2010 г.
LabVIEW 2010 с пакетом обновления 1 (SP1) 10.0.1.4004 17 мая 2011 года
LabVIEW для LEGO MINDSTORMS Август 2011 г. 2010 SP1 с некоторыми модулями
LabVIEW 2011 11.0.0.4029 22 июня 2011 г.
LabVIEW 2011 с пакетом обновления 1 (SP1) 11.0.1.4015 1 марта 2012 г.
LabVIEW 2012 12.0.0.4029 Август 2012 г.
LabVIEW 2012 с пакетом обновления 1 (SP1) 12.0.1.4013 Декабрь 2012 г.
LabVIEW 2013 13.0.0.4047 август 2013
LabVIEW 2013 с пакетом обновления 1 (SP1) 13.0.1.4017 Март 2014 г.
LabVIEW 2014 14.0 Август 2014 г.
LabVIEW 2014 с пакетом обновления 1 (SP1) 14.0.1.4008 Март 2015 г.
LabVIEW 2015 15.0f2 Август 2015 г.
LabVIEW 2015 с пакетом обновления 1 (SP1) 15.0.1f1 Март 2016 г.
LabVIEW 2016 16.0.0 Август 2016 г.
LabVIEW 2017 17.0f1 Май 2017 г.
LabVIEW NXG 1.0 1.0.0 Май 2017 г.
LabVIEW 2017 с пакетом обновления 1 (SP1) 17.0.1f1 Янв 2018
LabVIEW NXG 2.0 2.0.0 Янв 2018
LabVIEW 2018 18.0 Май 2018 г.
LabVIEW NXG 2.1 2.1.0 Май 2018 г.
LabVIEW 2018 с пакетом обновления 1 (SP1) 18.0.1 Сен 2018
LabVIEW NXG 3.0 3.0.0 Ноя 2018
LabVIEW 2019 19.0 Май 2019
LabVIEW NXG 3.1 3.1.0 Май 2019
LabVIEW 2019 с пакетом обновления 1 (SP1) 19.0.1 Ноя 2019
LabVIEW NXG 4.0 4.0.0 Ноя 2019
LabVIEW 2020 и
LabVIEW NXG 5.0 Community Edition
Апрель 2020 г. первые релизы
LabVIEW 2021 21,0 Август 2021 г.

Репозитории и библиотеки

OpenG , а также репозиторий кода LAVA (LAVAcr) служат репозиториями для широкого спектра приложений и библиотек LabVIEW с открытым исходным кодом . В SourceForge LabVIEW указан как один из возможных языков, на которых можно писать код.

VI Package Manager стал стандартным менеджером пакетов для библиотек LabVIEW. По своему назначению он очень похож на RubyGems Ruby и CPAN Perl , хотя предоставляет графический пользовательский интерфейс, аналогичный Synaptic Package Manager . VI Package Manager обеспечивает доступ к репозиторию библиотек OpenG (и других) для LabVIEW.

Существуют инструменты для преобразования MathML в код G.

Связанное программное обеспечение

National Instruments также предлагает продукт под названием Measurement Studio , который предлагает многие из возможностей LabVIEW по тестированию, измерению и управлению в виде набора классов для использования с Microsoft Visual Studio . Это позволяет разработчикам использовать некоторые сильные стороны LabVIEW в текстовой платформе .NET Framework . National Instruments также предлагает LabWindows / CVI в качестве альтернативы для программистов ANSI C.

Когда приложениям требуется секвенирование, пользователи часто используют LabVIEW с программным обеспечением для управления тестированием TestStand, также от National Instruments.

Интерпретатор Ch является C / C ++ интерпретатор , который может быть встроен в LabVIEW для написания сценариев.

FlowStone DSP от DSP Robotics также использует форму графического программирования, аналогичную LabVIEW, но, соответственно, ограниченную отраслью робототехники.

LabVIEW имеет прямой узел с modeFRONTIER , междисциплинарной и многоцелевой средой оптимизации и проектирования, написанной для обеспечения связи практически с любым инструментом автоматизированного проектирования . Оба могут быть частью одного и того же описания рабочего процесса и могут виртуально управляться технологиями оптимизации, доступными в modeFRONTIER.

Смотрите также

Связанные названия программного обеспечения
Бесплатные пакеты и пакеты с открытым исходным кодом
  • PWCT - лицензия GPL
  • ДРАКОН - общественное достояние, с некоторыми компонентами с открытым исходным кодом

использованная литература

дальнейшее чтение

  • Бресс, Томас Дж. (2013). Эффективное программирование LabVIEW . [Sl]: NTS Press. ISBN 978-1-934891-08-7.
  • Блюм, Питер А. (2007). Книга стилей LabVIEW . Река Аппер Сэдл, штат Нью-Джерси: Prentice Hall. ISBN 978-0-13-145835-2.
  • Трэвис, Джеффри; Кринг, Джим (2006). LabVIEW для всех: простое и увлекательное графическое программирование (3-е изд.). Река Аппер Сэдл, штат Нью-Джерси: Prentice Hall. ISBN 0-13-185672-3.
  • Конвей, Джон; Уоттс, Стив (2003). Подход к LabVIEW в программной инженерии . Река Аппер Сэдл, штат Нью-Джерси: Prentice Hall PTR. ISBN 0-13-009365-3.
  • Олансен, Джон Б .; Росоу, Эрик (2002). Виртуальный биоинструмент: биомедицинские, клинические и медицинские приложения в LabVIEW . Река Аппер Сэдл, штат Нью-Джерси: Prentice Hall PTR. ISBN 0-13-065216-4.
  • Бейон, Джеффри Ю. (2001). LabVIEW Программирование, сбор и анализ данных . Река Аппер Сэдл, штат Нью-Джерси: Prentice Hall PTR. ISBN 0-13-030367-4.
  • Трэвис, Джеффри (2000). Интернет-приложения в LabVIEW . Река Аппер Сэдл, штат Нью-Джерси: Prentice Hall PTR. ISBN 0-13-014144-5.
  • Эссик, Джон (1999). Расширенные лаборатории LabVIEW . Река Аппер Сэдл, штат Нью-Джерси: Prentice Hall. ISBN 0-13-833949-X.

Статьи о конкретных применениях

Статьи об образовании

  • Беллетти А., Борромеи Р., Инглетто Г., А .; Borromei, R .; Инглетто, Г. (сентябрь 2006 г.). «Обучение физико-химическим экспериментам с компьютерным моделированием в LabVIEW». Журнал химического образования . ACS. 83 (9): 1353–1355. Bibcode : 2006JChEd..83.1353B . DOI : 10.1021 / ed083p1353 .CS1 maint: несколько имен: список авторов ( ссылка )
  • Мориарти П.Дж., Галлахер Б.Л., Меллор С.Дж., Бейнс Р.Р., П.Дж.; Галлахер, Б.Л .; Меллор, CJ; Бейнс, Р.Р. (октябрь 2003 г.). «Графические вычисления в студенческой лаборатории: обучение и взаимодействие с LabVIEW» . Американский журнал физики . AAPT. 71 (10): 1062–1074. Bibcode : 2003AmJPh..71.1062M . DOI : 10.1119 / 1.1582189 .CS1 maint: несколько имен: список авторов ( ссылка )
  • Лаутербург, Урс (июнь 2001 г.). "LabVIEW в физическом образовании" (PDF) . Белая книга об использовании LabVIEW в физических демонстрациях и лабораторных экспериментах и ​​моделировании .
  • Дрю С.М., Стивен М. (декабрь 1996 г.). «Интеграция программного обеспечения LabVIEW от National Instruments в учебную программу по химии». Журнал химического образования . 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 .; Грей, Терри М. (декабрь 1996 г.). «Сбор данных в химической лаборатории с использованием программного обеспечения LabVIEW». Журнал химического образования . ACS. 73 (12): 1112–1114. Bibcode : 1996JChEd..73.1112M . DOI : 10.1021 / ed073p1112 .CS1 maint: несколько имен: список авторов ( ссылка )
  • Огрен П.Дж., Джонс Т.П., Пол Дж .; Джонс, Томас П. (декабрь 1996 г.). «Лабораторный интерфейс с использованием программного пакета LabVIEW». Журнал химического образования . ACS. 73 (12): 1115–1116. Bibcode : 1996JChEd..73.1115O . DOI : 10.1021 / ed073p1115 .
  • Тревельян, JP (июнь 2004 г.). «10-летний опыт работы с удаленными лабораториями» (PDF) . Международная конференция по исследованиям в области инженерного образования . ACS.

внешние ссылки