LabVIEW

Материал из wikixw
Версия от 04:33, 9 мая 2022; Cc82737 viki (обсуждение | вклад) (Новая страница: «Laboratory Virtual Instrument Engineering Workbench (LabVIEW)[1]: 3 - это платформа системного проектирования и среда р…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

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

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

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

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

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

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

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

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

Общепринятые шаблоны проектирования

Приложения в LabVIEW обычно разрабатываются с использованием известных архитектур, известных как шаблоны проектирования. Наиболее распространенные шаблоны проектирования графических приложений 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 включает в себя компилятор, который создает собственный код для платформы CPU. Графический код преобразуется в промежуточное представление потока данных, а затем переводится в куски исполняемого машинного кода компилятором на основе LLVM. Механизм времени выполнения вызывает эти куски, что позволяет повысить производительность. Синтаксис LabVIEW строго соблюдается в процессе редактирования и компилируется в исполняемый машинный код по запросу для запуска или при сохранении. В последнем случае исполняемый файл и исходный код объединяются в один двоичный файл. Выполнение контролируется механизмом выполнения LabVIEW, который содержит некоторый предварительно скомпилированный код для выполнения общих задач, определенных языком G. Механизм времени выполнения управляет потоком выполнения и обеспечивает согласованный интерфейс для различных операционных систем, графических систем и аппаратных компонентов. Использование среды выполнения делает файлы исходного кода переносимыми на всех поддерживаемых платформах. Программы LabVIEW работают медленнее, чем эквивалентный скомпилированный код на языке Си, хотя, как и в других языках, оптимизация программ часто позволяет смягчить проблемы со скоростью выполнения[10]. Большие библиотеки

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

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

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

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

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

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

Критика

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

Нетекстовый

Поскольку язык G не является текстовым, такие программные средства, как управление версиями, параллельное (или дифференциальное) сравнение и отслеживание изменений кода версий, не могут применяться так же, как для текстовых языков программирования. Существуют некоторые дополнительные инструменты для сравнения и объединения кода с инструментами управления исходным кодом (управления версиями), такими как subversion, CVS и Perforce. [15][16][17] Нет функции масштабирования

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

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

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

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

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

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

OpenG, а также LAVA Code Repository (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]

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

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

См. Также

  • Сравнение программ для численного анализа
  • Программирование потоков данных
  • Язык программирования четвертого поколения
  • Графическое программирование
  • Графический дизайн системы

Похожие программы

   Lego Mindstorms NXT, чья среда программирования NXT-G основана на LabVIEW и может быть запрограммирована в LabVIEW.
   20-sim
   LabWindows/CVI
   MATLAB/Simulink
   Виртуальное приборостроение
   CompactDAQ
   CompactRIO
   TOMVIEW

Бесплатные и открытые пакеты

   Лицензия PWCT — GPL
   DRAKON — общественное достояние, с некоторыми компонентами с открытым исходным кодом

Читать далее

   Бресс, Томас Дж. Эффективное программирование LabVIEW. ISBN 978-1-934891-08-7.
   Блюм, Питер А. (2007). Книга о стиле LabVIEW. Upper Saddle River, NJ: Prentice Hall. ISBN 978-0-13-145835-2.
  • Трэвис, Джеффри; Кринг, Джим (2006). LabVIEW для всех: графическое программирование легко и весело (3-е изд.). Upper Saddle River, NJ: Prentice Hall. ISBN 0-13-185672-3.
  • Конвей, Джон; Уоттс, Стив (2003). Подход к разработке программного обеспечения для LabVIEW. Upper Saddle River, NJ: Prentice Hall PTR. ISBN 0-13-009365-3.
  • Olansen, Jon B.; Rosow, Eric (2002). Виртуальная био-аппаратура: биомедицинские, клинические и медицинские приложения в LabVIEW. Upper Saddle River, NJ: Prentice Hall PTR. ISBN 0-13-065216-4.
   Бейон, Джеффри Й. (2001). LabVIEW Программирование, сбор и анализ данных. Upper Saddle River, NJ: Prentice Hall PTR. ISBN 0-13-030367-4.
   Трэвис, Джеффри (2000). Интернет-приложения в LabVIEW. Upper Saddle River, NJ: Prentice Hall PTR. ISBN 0-13-014144-5.
   Эссик, Джон (1999). Advanced LabVIEW Labs. Upper Saddle River, NJ: Prentice Hall. ISBN 0-13-833949-X.

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

   Desnica V, Schreiner M, Vladan; Schreiner, Manfred (October 2006). "Портативный рентгенофлуоресцентный спектрометр для анализа предметов искусства". Рентгеновская спектрометрия. 35 (5): 280–286. Bibcode:2006XRS....35..280D. doi:10.1002/xrs.906. Архивировано с оригинала 2010-08-18.
   Keleshis C, Ionita C, Rudin S, C.; Ionita, C.; Rudin, S. (июнь 2006). "Графический интерфейс пользователя Labview для микроангио-флюороскопического детектора высокого разрешения". Медицинская физика. 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. (май 2003). "Автоматизация эксперимента Франка-Герца и рентгеновского аппарата Tel-X-Ometer с использованием LABVIEW". Американский журнал физики. AAPT. 71 (5): 501–506. Bibcode:2003AmJPh..71..501F. doi:10.1119/1.1527949.

Статьи об использовании образования

Беллетти А., Борромеи Р., Инглетто Г., А.; Борромеи Р.; Инглетто Г. (сентябрь 2006). "Обучение физико-химическим экспериментам с компьютерным моделированием LabVIEW". Journal of Chemical Education. ACS. 83 (9): 1353-1355. Bibcode:2006JChEd..83.1353B. doi:10.1021/ed083p1353. Мориарти П.Дж., Галлахер Б.Л., Меллор К.Дж., Бейнс Р.Р., П. Дж.; Галлахер Б. Л.; Меллор К.Дж.; Бейнс Р. Р. (октябрь 2003). "Графические вычисления в лаборатории бакалавриата: обучение и взаимодействие с LabVIEW". Американский журнал физики. AAPT. 71 (10): 1062–1074. Bibcode:2003AmJPh..71.1062M. doi:10.1119/1.1582189. Lauterburg, Urs (июнь 2001). "LabVIEW в физическом образовании" (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.1112M. doi:10.1021/ed073p1112. Ogren PJ, Jones TP, Paul J.; Jones, Thomas P. (декабрь 1996). "Лабораторное взаимодействие с использованием программного пакета LabVIEW". Journal of Chemical Education. ACS. 73 (12): 1115-1116. Bibcode:1996JChEd..73.1115O. doi:10.1021/ed073p1115. Trevelyan, J.P. (июнь 2004). "10-летний опыт работы с удаленными лабораториями" (PDF). Международная конференция по исследованию инженерного образования.

Пруф

/labviewwiki.org/