LabVIEW

редактировать
LabVIEW
Логотип LabVIEW.
Разработчик (и) National Instruments
Первый выпуск1986; 34 года назад (1986)
Стабильный выпуск LabVIEW NXG 5.0

LabVIEW 2020

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

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

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

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

Содержание
  • 1 Программирование потока данных
  • 2 Графическое программирование
    • 2.1 Широко распространенные шаблоны проектирования
  • 3 Преимущества
    • 3.1 Взаимодействие с устройствами
    • 3.2 Компиляция кода
    • 3.3 Большие библиотеки
    • 3.4 Параллельное программирование
    • 3.5 Экосистема
    • 3.6 Сообщество пользователей
    • 3.7 Home Bundle Edition
    • 3.8 Community Edition Edition
  • 4 Критика
    • 4.1 Медленно
    • 4.2 Нетекстовый
    • 4.3 Нет функции масштабирования
  • 5 История выпуска
  • 6 Репозиторий и библиотека ies
  • 7 Сопутствующее программное обеспечение
  • 8 См. также
  • 9 Ссылки
  • 10 Дополнительная литература
    • 10.1 Статьи по конкретному использованию
    • 10.2 Статьи по использованию в образовании
  • 11 Внешние ссылки
Поток данных программирование

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

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

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

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

Широко распространенный дизайн шаблоны

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

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

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

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

LabVIEW включает встроенную поддержку аппаратных платформ NI, таких как CompactDAQ и CompactRIO, с большим количеством специфичных для устройства блоков для такого аппаратного обеспечения, измерений и Наборы инструментов 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 Edition

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

Критика

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

Медленно

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

Нетекстовый

Поскольку язык 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 (для Macintosh)??Октябрь 1986 г.
LabVIEW 2.0??Январь 1990 г.
LabVIEW 2.5 (первый выпуск для Sun и Windows)??август 1992 г.
LabVIEW 3.0 (мультиплатформенный)??июль 1993 г.
LabVIEW 3.0.1 (первый выпуск для Windows NT)??1994
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.400526 июля 2000 г.
LabVIEW 6.16.1.0.400412 апреля 2001 г.
LabVIEW 7.0 (Express)7.0.0.4000апрель 2003 г.
Первый выпуск модуля LabVIEW PDA??Май 2003 г.
Первый выпуск модуля LabVIEW FPGA??Июнь 2003 г.
LabVIEW 7.17.1.0.40002004
Первый выпуск модуля LabVIEW Embedded??май 2005 г.
LabVIEW 8.08.0.0.4005сентябрь 2005 г.
LabVIEW 8.20 (родное объектно-ориентированное программирование)??август 2006 г.
LabVIEW 8.2.18.2.1.400221 февраля 2007 г.
LabVIEW 8.58.5.0.40022007
LabVIEW 8.68.6.0.400124 июля 2008 г.
LabVIEW 8.6.18.6.0.400110 Декабрь 2008 г.
LabVIEW 2009 (32- и 64-разрядная версии)9.0.0.40224 августа 2009 г.
LabVIEW 2009 SP19.0.1.40118 января 2010 г.
LabVIEW 201010.0.0.40324 августа 2010 г.
LabVIEW 2010 f210.0.0.403316 сентября 2010 г.
LabVIEW 2010 SP110.0.1.400417 мая 2011 г.
LabVIEW для LEGO MINDSTORMS (2010 SP1 с некоторыми модулями)август 2011 г.
LabVIEW 201111.0.0.402922 июня 2011 г.
LabVIEW 2011 SP111.0.1.40151 марта 2012 г.
LabVIEW 201212.0.0.4029август 2012
LabVIEW 2012 SP112.0.1.4013декабрь 2012
LabVIEW 201313.0.0.4047Август 2013 г.
LabVIEW 2013 SP113.0.1.40 17март 2014 г.
LabVIEW 201414.0август 2014 г.
LabVIEW 2014 SP114.0.1.4008Март 2015 г.
LabVIEW 201515.0f2Август 2015 г.
LabVIEW 2015 SP115.0.1f1Март 2016 г.
LabVIEW 201616.0.0август 2016
LabVIEW 201717.0f1май 2017 г.
LabVIEW NXG 1.01.0.0май 2017 г.
LabVIEW 2017 SP117.0.1f1январь 2018 г.
LabVIEW NXG 2.02.0.0янв 2018
LabVIEW 201818.0май 2018
LabVIEW NXG 2.12.1.0май 2018
LabVIEW 2018 SP118.0.1сен 2018
LabVIEW NXG 3.03.0.0ноя 2018
LabVIEW 201919.0май 2019
LabVIEW NXG 3.13.1.0май 2019
LabVIEW 2019 SP119.0.1ноябрь 2019 г.
LabVIEW NXG 4.04.0.0ноябрь 2019 г.
Первый выпуск LabVIEW 2020 и LabVIEW NXG 5.0 Community Editionsапрель 2020
Репозитории и библиотеки

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

Менеджер пакетов VI стал стандартным менеджером пакетов для библиотек LabVIEW. По своему назначению он очень похож на Ruby RubyGems и Perl CPAN, хотя предоставляет графический пользовательский интерфейс, аналогичный 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.

См. Также
Ссылки
Дополнительная литература
  • Bress, Thomas J. (2013). Эффективное программирование LabVIEW. [S.l.]: НТС Пресс. 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.
  • Olansen, Jon B.; Росоу, Эрик (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.

Статьи по конкретному использованию

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

  • Беллетти А., Борромеи Р., Инглетто Г., А.; Борромеи, Р.; Инглетто, Г. (сентябрь 2006 г.). «Обучение физико-химическим экспериментам с компьютерное моделирование LabVIEW ". Журнал химического образования. ACS. 83 (9): 1353–1355. Bibcode : 2006JChEd..83.1353B. doi : 10.1021 / ed083p1353. CS1 maint: несколько имен: список авторов (ссылка )
  • Мориарти П.Дж., Галлахер Б.Л., Мел lor C.J., Baines R.R., P.J.; Gallagher, B.L.; Mellor, C.J.; Бейнс, Р. Р. (октябрь 2003 г.). «Графические вычисления в студенческой лаборатории: обучение и взаимодействие с LabVIEW». Американский журнал физики. AAPT. 71 (10): 1062–1074. Bibcode : 2003AmJPh..71.1062M. doi : 10.1119 / 1.1582189. CS1 maint: несколько имен: список авторов (ссылка )
  • Лаутербург, Урс (июнь 2001 г.). "LabVIEW in Physics Education » (PDF). Белая книга об использовании LabVIEW в физических демонстрациях и лабораторных экспериментах и ​​моделировании.
  • Дрю С.М., Стивен М. (декабрь 1996 г.).« Интеграция программного обеспечения LabVIEW от National Instruments в систему Учебная программа по химии ". 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. (декабрь 1996). «Сбор данных в химической лаборатории с использованием программного обеспечения LabVIEW». Journal of Chemical Education. ACS. 73 (12): 1112–1114. Bibcode : 1996JChEd..73.1112 M. doi : 10.1021 / ed073p1112. CS1 maint: несколько имен: список авторов (ссылка )
  • Огрен П.Дж., Джонс Т.П., Пол Дж..; J one, Томас П. (декабрь 1996 г.). «Лабораторный интерфейс с использованием программного пакета LabVIEW». Журнал химического образования. ACS. 73 (12): 1115–1116. Bibcode : 1996JChEd..73.1115O. doi : 10.1021 / ed073p1115.
  • Trevelyan, J.P. (июнь 2004 г.). «10 лет опыта работы с удаленными лабораториями» (PDF). Международная конференция по исследованиям в области инженерного образования. ACS.
Внешние ссылки
Последняя правка сделана 2021-05-26 10:16:06
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте