Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

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

Графическое программирование [ править ]

Пример кода LabVIEW

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

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

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

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

Преимущества [ править ]

Взаимодействие с устройствами [ править ]

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). [9]

Компиляция кода [ править ]

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

Большие библиотеки [ править ]

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

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

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

Экосистема [ править ]

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

Сообщество пользователей [ править ]

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

Домашняя версия пакета [ править ]

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

Community Edition Edition [ править ]

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

Критика [ править ]

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

Нетекстовый [ править ]

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

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

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

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

В 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).

Хранилища и библиотеки [ править ]

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

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

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

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

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 для написания сценариев. [29]

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

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

См. Также [ править ]

  • Сравнение программ численного анализа
  • Программирование потока данных
  • Язык программирования четвертого поколения
  • Графическое программирование
  • Графический дизайн системы
Связанные названия программного обеспечения
  • Lego Mindstorms NXT , среда программирования NXT-G которого основана на LabVIEW и может быть запрограммирована в LabVIEW.
  • 20-сим
  • LabWindows / CVI
  • MATLAB / Simulink
  • Виртуальная аппаратура
  • CompactDAQ
  • CompactRIO
  • ЗАВТРА
Бесплатные пакеты с открытым исходным кодом
  • PWCT - лицензия GPL
  • ДРАКОН - общественное достояние, с некоторыми компонентами с открытым исходным кодом

Ссылки [ править ]

  1. ^ Джеффри., Трэвис (2006). LabVIEW для всех: графическое программирование стало простым и увлекательным . Кринг, Джим. (3-е изд.). Река Аппер Сэдл, штат Нью-Джерси: Prentice Hall. ISBN 0131856723. OCLC  67361308 .
  2. ^ "Синтез программного обеспечения из моделей потока данных для G и LabVIEW" .
  3. ^ «Анонсирование LabVIEW 2019 SP1 и LabVIEW NXG 4.0» . Форумы . Национальные инструменты.
  4. ^ "NI выпускает бесплатные версии флагманского программного обеспечения: LabVIEW" . www.businesswire.com . 2020-04-28 . Проверено 28 апреля 2020 .
  5. Перейти ↑ Bress, Thomas J. (2013). Эффективное программирование LabVIEW . [Sl]: NTS Press. ISBN 978-1-934891-08-7.
  6. ^ "Шаблоны проектирования приложений: конечные автоматы" . Официальные документы National Instruments . 8 сентября 2011. Архивировано 22 сентября 2017 года . Проверено 21 сентября 2017 года .
  7. ^ «Шаблоны проектирования приложений: главный / подчиненный» . Официальные документы National Instruments . 7 октября 2015. Архивировано 22 сентября 2017 года . Проверено 21 сентября 2017 года .
  8. ^ «Шаблоны проектирования приложений: производитель / потребитель» . Официальные документы National Instruments . 24 августа 2016 года. Архивировано 22 сентября 2017 года . Проверено 21 сентября 2017 года .
  9. ^ «Сторонние драйверы инструментов - National Instruments» . www.ni.com . Архивировано 28 ноября 2014 года.
  10. ^ "Компилятор NI LabVIEW: Под капотом" . ni.com . 4 февраля 2020.
  11. ^ "Модуль LabVIEW MathScript RT" . www.ni.com . Архивировано 5 августа 2016 года.
  12. ^ «Домашний пакет LabVIEW для Windows - National Instruments» . sine.ni.com . Архивировано 4 июля 2016 года.
  13. ^ "LabVIEW Community Edition - National Instruments" . www.ni.com . Проверено 28 апреля 2020 .
  14. ^ «Подробности использования LabVIEW Community Edition - National Instruments» . www.ni.com . Проверено 28 апреля 2020 .
  15. ^ "Архивная копия" . Архивировано 28 октября 2016 года . Проверено 28 октября 2016 .CS1 maint: archived copy as title (link)
  16. ^ «Управление конфигурацией программного обеспечения и LabVIEW - National Instruments» . www.ni.com . Архивировано 29 октября 2016 года.
  17. ^ «Настройка LabVIEW Source Code Control (SCC) для использования с Team Foundation Server (TFS) - National Instruments» . www.ni.com . Архивировано 28 октября 2016 года.
  18. ^ «Настройка поведения колесика мыши - Руководство по LabVIEW NXG 5.0 - National Instruments» . www.ni.com . Проверено 28 апреля 2020 .
  19. ^ «Что нового в NI Developer Suite - National Instruments» . www.ni.com . Архивировано из оригинала на 2014-03-31 . Проверено 31 марта 2014 .
  20. ^ «Подробная информация о патче LabVIEW 2017 SP1 - National Instruments» . www.ni.com . Проверено 28 мая 2018 .
  21. ^ "Ознакомительные сведения о LabVIEW NXG 2.0 - National Instruments" . www.ni.com . Проверено 28 апреля 2020 .
  22. ^ "LabVIEW NXG 2.1 Readme - National Instruments" . www.ni.com . Проверено 28 апреля 2020 .
  23. ^ «LabVIEW 2018 SP1 Readme для Windows - National Instruments» . www.ni.com . Проверено 28 апреля 2020 .
  24. ^ "Ознакомительные сведения о LabVIEW NXG 3.0 - National Instruments" . www.ni.com . Проверено 28 апреля 2020 .
  25. ^ "Ознакомительные сведения о LabVIEW NXG 3.1 - National Instruments" . www.ni.com . Проверено 28 апреля 2020 .
  26. ^ "Ознакомительные сведения о LabVIEW NXG 4.0 - National Instruments" . www.ni.com . Проверено 28 апреля 2020 .
  27. ^ "NI выпускает бесплатные версии флагманского программного обеспечения: LabVIEW" . www.businesswire.com . 2020-04-28 . Проверено 28 апреля 2020 .
  28. ^ «Math Node - новый способ делать математику в LabVIEW» . ni.com . 25 октября 2010 г. Архивировано 25 февраля 2011 г.
  29. ^ «Встраивание Ch интерпретатора C / C ++ в LabVIEW для написания сценариев» . iel.ucdavis.edu . Архивировано 15 мая 2011 года.

Дальнейшее чтение [ править ]

  • Бресс, Томас Дж. (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.

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

  • Десница В., Шрейнер М., Владан; Шрайнер, Манфред (октябрь 2006 г.). «Портативный рентгенофлуоресцентный спектрометр под управлением LabVIEW для анализа предметов искусства» . Рентгеновская спектрометрия . 35 (5): 280–286. Bibcode : 2006XRS .... 35..280D . DOI : 10.1002 / xrs.906 . Архивировано из оригинала на 2010-08-18.
  • Келешис Ц., Ионита Ц., Рудин С., Ц .; Ionita, C .; Рудин, С. (июнь 2006 г.). «Графический интерфейс пользователя Labview [sic] для микроангио-флюороскопического детектора высокого разрешения» . Медицинская физика . 33 (6): 2007. DOI : 10,1118 / 1,2240285 .CS1 maint: multiple names: authors list (link)
  • Fedak W., Bord D., Smith C., Gawrych D., Lindeman K., W .; Bord, D .; Smith, C .; Gawrych, D .; Линдеман, К. (май 2003 г.). «Автоматизация эксперимента Franck-Hertz и рентгеновского аппарата Tel-X-Ometer с использованием LABVIEW» . Американский журнал физики . AAPT. 71 (5): 501–506. Bibcode : 2003AmJPh..71..501F . DOI : 10.1119 / 1.1527949 .CS1 maint: multiple names: authors list (link)

Статьи об образовании [ править ]

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

Внешние ссылки [ править ]

  • Официальный сайт , National Instruments