Как сделать игру в labview

Добавил пользователь Skiper
Обновлено: 19.09.2024

/ Май 2020 ; 10 месяцев назад ( 2020-05 )

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

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

СОДЕРЖАНИЕ

  • 4.1 Нетекстовый
  • 4.2 Нет функции масштабирования
  • 10.1 Статьи о конкретных применениях
  • 10.2 Статьи об использовании в образовании

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

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]

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

Название и версияНомер сборкиДатаПримечания
Проект 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.400526 июля 2000 г.
LabVIEW 6.16.1.0.400412 апреля 2001 г.
LabVIEW 7.0 (Экспресс)7.0.0.4000Апрель 2003 г.
Модуль LabVIEW для КПК Май 2003 г.первый выпуск модуля
Модуль LabVIEW FPGA Июнь 2003 г.первый выпуск
LabVIEW 7.17.1.0.40002004 г.
Встроенный модуль LabVIEW Май 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 20099.0.0.40224 августа 2009 г.32-битный и 64-битный
LabVIEW 2009 с пакетом обновления 1 (SP1)9.0.1.40118 января 2010 г.
LabVIEW 201010.0.0.40324 августа 2010 г.
LabVIEW 2010 f210.0.0.403316 сентября 2010 г.
LabVIEW 2010 с пакетом обновления 1 (SP1)10.0.1.400417 мая 2011 года
LabVIEW для LEGO MINDSTORMS Август 2011 г.2010 SP1 с некоторыми модулями
LabVIEW 201111.0.0.402922 июня 2011 г.
LabVIEW 2011 с пакетом обновления 1 (SP1)11.0.1.40151 марта 2012 г.
LabVIEW 201212.0.0.4029Август 2012 г.
LabVIEW 2012 с пакетом обновления 1 (SP1)12.0.1.4013Декабрь 2012 г.
LabVIEW 201313.0.0.4047август 2013
LabVIEW 2013 с пакетом обновления 1 (SP1)13.0.1.4017Март 2014 [19]
LabVIEW 201414.0Август 2014 г.
LabVIEW 2014 с пакетом обновления 1 (SP1)14.0.1.4008Март 2015 г.
LabVIEW 201515.0f2Август 2015 г.
LabVIEW 2015 с пакетом обновления 1 (SP1)15.0.1f1Март 2016 г.
LabVIEW 201616.0.0Август 2016 г.
LabVIEW 201717.0f1Май 2017 г.
LabVIEW NXG 1.01.0.0Май 2017 г.
LabVIEW 2017 с пакетом обновления 1 (SP1)17.0.1f1Янв 2018 [20]
LabVIEW NXG 2.02.0.0Янв 2018 [21]
LabVIEW 201818.0Май 2018 г.
LabVIEW NXG 2.12.1.0Май 2018 [22]
LabVIEW 2018 с пакетом обновления 1 (SP1)18.0.1Сен 2018 [23]
LabVIEW NXG 3.03.0.0Ноя 2018 [24]
LabVIEW 201919.0Май 2019
LabVIEW NXG 3.13.1.0Май 2019 [25]
LabVIEW 2019 с пакетом обновления 1 (SP1)19.0.1Ноя 2019
LabVIEW NXG 4.04.0.0Ноя 2019 [26]
LabVIEW 2020 и
LabVIEW NXG 5.0 Community Edition
Апрель 2020 [27] первые релизы

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]

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

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

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

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

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

Некоторые пишут подобное ПО самостоятельно на каком либо языке программирования (Delphi, C++), наделяя необходимым функционалом. Но эта задача не из легких, нужно знать, помимо самого языка, устройство операционной системы, способы работы с комуникационными портами, множество других технических тонкостей, которые отвлекают от главного — реализации алгоритма программы. В общем, быть попутно еще Windows/Unix программистом.

На фоне этих подходов резко отличается концепция виртуальных приборов (vi). В этой статье пойдет речь о программном продукте LabView фирмы Nationals Instruments. Я только начинаю осваивать этот замечательный продукт, поэтому могу допускать неточности и ошибки. Спецы поправят :-)) Собственно что такое LabView?

Задача
У нас есть плата с микроконтроллером AVR, соединенная с компьютером по RS232. В контроллер залита прошивка, согласно которой контроллер измеряет значение напряжения на одном из входов АЦП, и передает код АЦП (от 0 до 1023) в компьютер по последовательному каналу. Необходимо написать программу для ПК, которая будет принимать поток данных от АЦП, отображать код АЦП, преобразовывать код АЦП в значение напряжения в вольтах, отображать значение напряжения в вольтах, строить график изменения напряжения во времени.

Ну наверное хватит лирики, начнем пожалуй!

Итак что нам потребуется для работы:

Первым делом нам нужно убедится, что VISA нашла в системе COM порт и корректно с ним работает. Проверить это можно так: запускаем программу Measurement & Automation. Она ставится вместе с LabView. Если она не установилась, установить можно вручную. На диске (образе с LabView она есть).


Запускаем LabView. В окне Getting Started выбираем пункт Blank Vi, тобишь новый виртуальный прибор.


Получаем вот такую штуку:


Итак что мы имеем. Рабочая область состоит из двух больших панелей Front Panel и Block Diagram. На лицевой панели мы будем составлять интерфейс нашей программы, используя элементы управления с панели Controls. Эти элементы представляют собой привычные нам ручки переменных резисторов, светодиоды, кнопки, стрелочные приборы, экран осциллографа и т.п. Они служат для ввода информации в программу и отображения результатов выполнения. На панели Block Diagram распологается непосредственно программный код. Тут надо немного отступить и пояснить принцип программирования на LabView. Небольшой пример. Принято работу над прогой начинать с оформления интерфейса, а затем реализации алгоритма работы на блок-диаграмме. Сделаем простейшую прогу умножения двух чисел. Для этого разместим на лицевой панели путем перетаскивания три элемента управления, скажем элементы Knob и Numeric Indicator для отображения результата.


Сформируем интерфейс как душа пожелает, например вот так:



Теперь нужно добавить на блок-диаграмму функцию умножения. Щелкаем ПКМ на блок-диаграмме и из палитры Numeric выбираем функцию умножения Multiply. Преносим ее на диаграмму. Стоит заметить, что LabView имеет просто огромный набор функций. Это и различная математика, статистика, анализ сигналов, PID регулирование, обработка видео, звука и изображений. Всего не перечислишь.


Важнейшей концепцией программирования на LabView является концепция потоков данных DataFlow. Суть такова: В отличие от императивных языков программирования, где операторы выполняются в порядке следования, в LabView функции работают только если на всех входах функции есть информация (каждая функция имеет входные и выходные значения). Только тогда функция реализует свой алгоритм, а результат направляет на выход, который может быть использован другой функцией. Таким образом в пределах одного виртуального прибора функции могут работать независимо друг от друга.

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

Для соединения элементов на блок-диаграмме используется инструмент Connect Wire с панели Tools. Выбираем его и рисуем наши соединения.


Собственно все, можно запустить эту тупую программку на циклическое выполнение и покрутить ручки, наблюдая результат умножения.


Как видно, ничего сложного вроде бы нет. Но в то же время LabView позволяет решать задачи любой сложности! Епт, система управления БАК на нем сделана! Так то.

Ну а теперь займемся более интересными вещами, а именно сделаем наш простейший вольтметр, о котором я говорил в самом начале.

Итак, что нам необходимо сделать. Сначала нужно настроить и проинициализировать последовательный порт. Запустить бесконечный цикл . В цикле мы используем функцию чтения из порта и принимаем информацию. Преобразуем инфу для отображения на графике, пересчитываем код АЦП в значение напряжения в вольтах. При выходе из цикла закрываем порт.
Так в интерфейсе нашей проги не будет никаких управляющих элементов кроме кнопки Стоп, а будет лишь отображение результата, мы поступим так: сначала создадим блок-диаграмму, а потом добавим недостающие элементы на лицевую панель. Хотя делать нужно наоборот! Но в данном случае так удобнее.

На панели блок-диаграммы помещаем из палитры Structures элемент While Loop, это наш бесконечный цикл. Обводим рамкой цикла область, достаточную для размещения внутри алгоритма. В правом нижнем углу есть красная точка, щелкнем по ней ПКМ и выберем Create Control. На лицевой панели у нас тут же появится кнопка Stop. При щелчке на ней наша прога завершится.


Теперь вне цикла мы должны разместить функции инициализации и закрытия порта. Слева инициализация, справа закрытие. Опять же щелкаем ПКМ и выбираем функции Configure Port, Read и Close. Эти функции находятся в палитре Instrument I/O —> Serial. Функцию чтения помещаем внутрь цикла. Соединяем с помощью катушки с проводами выходы и входы функций. Для функции Read мы должны задать количество байт, которая она будет принимать. Щелкаем ПКМ на среднем входе функции Read и выбираем Create->Constant, вводим значение, например 200. На данном этапе должно получится как на скрине.


Нужно создать контролы для функции инициализации порта. Нам вполне хватит двух — скорость порта и имя порта. Точно так же как мы создавали константу для функции чтения, создаем контролы. ПКМ на нужных входах функции инициализации и пункт

Нас интересуют два входа: Visa resourse name и Baud Rate (по умолчанию 9600). Таперь перейдем на лицевую панель и добавим необходимые компоненты, а именно экран отрисовки графика и метки для отображения кода АЦП и напряжения в вольтах.
Соответственно это элементы Waweform Chart c палитры Graph и два элемента Numeric Indicator с палитры Numeric.

Вернемся к блок-диаграмме и переместим появившиеся элементы внутрь цикла. Мы близимся к завершению! Единственное, нам нужно еще преобразовать строку символов, поступающих с выхода функции Read к формату, который переварят наши индикаторы. И еще реализовать простейшую математику по переводу кода АЦП в вольты. Ниже скрины лицевой панели и блок-диаграммы на данном этапе:



Для преобразования строки мы воспользуемся функцией Scan from string из палитры String. Помещаем ее внутрь цикла. Теперь математика. Для того чтобы преобразовать код АЦП в значение напряжения в вольтах нужно умножить код на величину опорного напряжения (в моем случае это пять вольт) и получившееся значение разделить на 1023 (так как АЦП имеет разрядность 10 бит). Необходимые функции умножения и деления, а также константы (5 и 1023) разместим в цикле. Скрины каждого соединения делать не буду, ибо и так картинок дофига. Приведу финальный скрин всех соединений. Там все предельно просто.


Я думаю все понятно, если будут вопросы спрашивайте в каментах. Вместе разберемся :-))) Тем временем прога готова.

Перейдем к нашему интерфейсу и немного настроим график. Выделим нижнее значение по оси Y и поставим 0. Выделем верхнее и поставим 5. Таким образом наша шкала по оси Y в диапазоне 0-5 вольт. Ну что, выбираем COM порт, вводим скорость обмена, запускаем по кнопке со стрелкой нашу прогу и яростно крутим резистор на плате, невозбранно наблюдая при этом на экране результат нашего труда. Щелкаем на кнопке Stop чтобы остановить прогу.


Как видите все достаточно просто. Данный пример это лишь мизерная часть всех возможностей LabView. Если кому поможет данная статья, буду рад. Только в коментах сильно не бейте я же не профи. Еще один маленький трюк. Если диаграмма стала похожа на Ктулху, можно попробовать воспользоваться кнопкой CleanUp Diagram. Она приведет диаграмму в более-менее божеский вид, но пользоваться надо осторожно. Вот результат ее работы


А еще можно куски объединять в функциональные блоки, чтобы они не загромождали схему.

Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.

198 thoughts on “Знакомимся с LabView”

Спасибо за статью!
Весьма интересная вещь, можно замутить удобную отладку через ком-порт с визуализацией, графиками. Просто про возможности LV слышал, а только сейчас начало доходить возможное реальное применение)

Автору Спасибо! Хорошая статья для начала.
Прочитал, и уже чтото да стало ясно.
Если я верно помню(не помню гто читал или говорили), то можно результаом делать в .EXE?

ТАм как то можно компилировать эти виртуальные приборы, что получается экзешник.

Это так, но для того чтобы перенести на другой комп нужно создавать не exe, а инсталлятор куда включен Run-Time Engine и другие используемые компоненты (если есть). Нужно поставить Run-Time Engine, а затем проинсталлировать прогу.

Разве? А у нас в виртуальной лаборатории оно работало экзешниками. Причем ничего предыварительно ставить не надо было.

Не не не, без Runtime engine на компе без LabView виртуальный прибор никогда не стартует. Видимо всетаки либо сама LabView, либо RT engine было там. Но более вероятно, что прога была написана не на LabView, а на LabWindows/ Там таки да, компилируется в exe, который можно запустить где угодно.

уточнил я сегодня у спецов по лабвью, для того чтобы екзешники делатьь, есть спец тулза от NI и стоит она около 10Куе. ну или закормить таблетками естно.

Возможно. Я не в курсе. Но, по моему проще поставить бесплатную RT Engine и дело в шляпе. Кроме того, есть такая вещь, как LabView Player, тоже вроде позволяет запускать программы на других компах, но я пока не пробовал. На днях постараюсь поэкспериментировать.

РАСШИФРОВКА ВИДЕОУРОКА ПО СОЗДАНИЮ ФАЙЛА .exe в Labview начиная с 55 секунды просмотра:
-проверить правильность работы программы;
-остановить работу программы;
File> Save As…> в появившемся окне уточнить (задать) имя файла с расширением .vi > OK > Project > New Project… > Add >
в появившемся окне выбрать Build Specifications > Правая Кнопка Мыши (ПКМ) > New -> Application (EXE) > в появившемся окне Save > OK > Source Files > выделить файл с расширением .vi => Previent > Build > Done > My Application > ПКМ > Explore > выделить Application.exe > Enter >
-убедиться, что программа по прежнему работает;
-остановить программу;
-закрыть программу кликом по красному кресту;
-закрыть окно из которого запустили Application.exe кликом по красному кресту;
-В окне Project Explore выделить > Build Specifications > ПКМ > New -> Installer >
выделить Source Files > перейдя в среднее окно выделить My Application => OK > My Installer > ПКМ > Build > Done > My Application ПКМ > Explore > Volume > Enter > Setup.exe > Next
НА ЭТОМ ВИДЕОУРОУК ЗАКАНЧИВАЕТСЯ.

Спасибо большое за статью! У меня вопрос,
1.Количество байт что задает ? .
2.Если мы задали 200 то только когда Функции чтения приймет 200 байт дале будет выполняеться функция Scan from string ?

Большое спасибо ) Буду ждать с нетерпением следующих статей .

1. Ну собственно и задает количество байт, которое будет прочитано из порта. Я просто для примера 200 поставил. Эту константу можно заменить на контрол, и выбирать необходимое количество байт с лицевой панели.
2. Все верно, считывается заданное количество байт, и передается в буфер. Там данные доступны для других функций.

Риспект за статью!
Уже давно назревало испытать лаб вью для похожих дел.
Хотя, весьма успешно до этого юзал visual basic 6. Но там красивые контролы-приборы надо рисовать самому, а тут все годово! Кул!

Ага. Писал диплом. Приём\обработка в пару строчек влезла, а вот отрисовка\визуализация — несколько десятков страниц. При этом так и не смог сделать человеческого вида развёртку как в осциллографе.

О госпади. Наконец-то статья о LabView)))))
Очень полезная штука+к ней материала полно на официальном сайте!

Интересно, конечно. Только одного не пойму: она создает какой нить exe-шник, чтобы можно было не в среде запускать, а отдельно, без Lab?

Да, конечно. Можно прямо из LabView создать инсталлятор. Для того чтобы запускать программы, созданные в LabView на машине где она не установлена, необходимо установить на этот компьютер среду NI Run-Time Engine. Ее можно скачать с сайте National Instruments.

Спасибо! Хорошая статья для начала.
я уже больше года не могу приступить к изучению, из-за нехватки времени, хоть и тянет периодически. А тут раз прочитал, и уже чтото да стало ясно.
Чувство что как будто 30% сам уже сделал :) шучу.

Я года 3 назад тож взялся, накупил книг, потом как то забросил. Сейчас плотно занялся изучением.

Круче только !а_н_дронный! коллайдер.

А я уже 6 лет активно использую LabWindows от NI, вот только 8 и выше версии сильно не понравились, так и сижу на 7-ой. Очень удобная штука, и не очень сложная.

В принципе, если знать C, то почему бы и нет. А можно ужнать что не понравилось в версиях выше 7?

Да уже точно и не помню, давно дело было. Сначала сидел на 5 версии, потом 5.5, семёрка была лучшая, а как только восьмая вышла — поставил, попробовал работать, и через недельку снёс. Возможно не понравилась монструозность разросшейся программы, а может и сильная нагрузка на слабенький процессор.

LabWindows/CVI — Full Development System with 1 Year SSP
Цена: 110291.53 руб.
Lite верстя 50 000, почти даром )))

Спасибо за статью, если бы еще кто-то набрался храбрости и выдал подобное про Matlab, особенно в связке с DSP :).

Я считаю, что подобные пакеты нужны не разработчикам, а ученым, у которых есть какой-то прибор для измерения определённых параметров, подрубаемый к ПК, у которого нет определённого удобного способа вывода информации. Разработчик же всегда движется к уменьшению себестоимости и надёжности, в чем дорогие и нагруженные сторонние пакеты не помошники. Человеку, который способен быстро и качественно написать прошивку для сложного устройства не составляет большого труда разобраться в нужной теме и так же быстро и качественно написать легкую, стабильную и удобную программу выполняющую нужную задачу.
Это было имхо. не призываю этому свято следовать.
ЗЫ: Мне кажется, что я заболел программированием для любой архитектуры, с использованием наименьшего числа сторонних библиотек. У такого подхода есть большие плюсы в виде легковесности, скорости и простоте программ.

Вы совершенно правы. Я как раз и интересуюсь лабораторными измерениями, и во время учебы даже делал для кафедры некоторые простые приборы, которые весьма облегчали жизнь ввиду отсутствия финансирования. Я далек от программирования под PC на стандартных языках, поэтому пробую использовать LabView.

Кто-нибудь пытался поставить Labview на Ubuntu? Точнее Visa…собственно Labview отлично ставится и работает, а вот в конфигурационных файлах Visa я уже з….лся копаться….Или есть другой способ работы с портами?

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

Константин Хазман

Константин Хазман запись закреплена

Артём Шевелёв

Артём Шевелёв запись закреплена

Дмитрий Шварев

Дмитрий Шварев
запись закреплена

Артём Шевелёв

Артём Шевелёв запись закреплена

Артём Шевелёв

Артём Шевелёв запись закреплена

Артур Костанян

Артур Костанян запись закреплена

Помогите пожалуйста, какой объект нужно поставить в Labview в системе стабилизации, чтобы программа работала без знаменателя ПИД регулятора. Константу в первый блок не добавить пытался сунуть массив, получается уже другая система. Если ставлю 0 в знаменателе не снимаются данные.

Артём Шевелёв

Faisal Ramdan

Faisal Ramdan запись закреплена

These tips are very useful for any Flutter developers. All the Flutter Tips inside this video can be Widgets, plugin or even little tips in order to enhance your Flutter Journey. We really hope that you will enjoy this Top 10 Flutter Tips & Tricks.

Our mission at Coding Your Life is to help purposeful Flutter developers do what they love and produce results through coding. We achieve this with a useful Flutter tip and a clean UI design app.

Артём Шевелёв

Артём Шевелёв запись закреплена

Давид Сокур

Давид Сокур запись закреплена

Артём Шевелёв

Артём Шевелёв запись закреплена

LabVIEW programming

LabVIEW programming запись закреплена

Первый этап стартует 14 ноября.
Показать полностью.

Итак, добро пожаловать!
Правила в приложении.

Евгений Адаев


Евгений Адаев

Не могли бы вы выложить правила в файле с каким-нибудь более общепринятым форматом? Ничем не открыть.

LabVIEW programming

LabVIEW programming запись закреплена
Ольга Мукукенова

LabVIEW programming

LabVIEW programming запись закреплена

Начали сотрудничество с ЦИТ города Электростали! Пожелаем ребятам удачи, и новых интересных проектов!

ЦИТ | Центр Интеллектуального Творчества | IDC

LabVIEW programming

LabVIEW programming запись закреплена
Фестиваль образовательной робототехники. ЦИТ

На фестивале познакомились с представителем компании National Instruments. Надеемся на сотрудничество и новые образовательные программы в сфере робототехники!

Павел Кривозубов

LabVIEW programming

LabVIEW programming запись закреплена

LabVIEW programming

LabVIEW programming запись закреплена

Требования к кандидату:
- возраст от 22 лет;
- высшее техническое образование (желательно в области радиотехники и электроники);
- опыт программирования в LabVIEW от года и более, желательно опыт работы с оборудованием National Instruments;
- знания основ работы с ВЧ-оборудованием;
- знания основ микроэлектроники, цифровой и аналоговой схемотехники;
- умение работать в MS Office, AutoCAD.

Labview от входа до использования (1) -создание файлов данных

Из этой статьи вы узнаете, как использовать Labview для создания файлов данных.
Для получения подробного исходного кода, анализа программы и других документов, пожалуйста, подпишитесь на официальный аккаунтКласс песни
Чтобы получать больше интересных материалов, подпишитесь на официальный аккаунт, мы будем учиться и расти вместе
Укажите источник для перепечатки

Во-первых, построить путь

1.1 Введение в функцию Build Path

Создавайте новые пути, объединяя имена или относительные пути в существующих путях. Для этого в Labview будут созданы связанные VI. Сначала представьте две важные функции.

1) Построить путь (создать путь), чтобы объединить входной путь и строку в новый путь, как показано ниже,


base path Укажите корневой путь для сращивания других имен или относительных путей. По умолчанию - пустой путь. Если базовый путь недействителен, эта функция будет appended path Установите значение .

name or relative path Должен быть соединен с base path Часть нового пути. в случае name or relative path Пустая строка или недопустимый путь, эта функция appended path Установите значение .

appended path Основано на вводе base path с участием name or relative path Путь, созданный значением.

Предположим, мы хотим построить путь F:\ dir1 \ dir2 \file.txt . Тогда нам нужно Build Path Два входных порта этой функции настроены следующим образом:

действующий base path name or relative path
Укажите имя файла F:\ dir1 \ dir2 file.txt
Укажите относительный путь F:\ dir1 dir2 \file.txt
Укажите абсолютный путь F:\ dir1 \ dir2 \file.txt

2) Application Directory: возвращает путь к каталогу, содержащему приложение. Положение этой функции в Labview следующее:


1.2 Использовать демо

Я создал новый файл с именем Labview example Папка, откройте Labview, чтобы создать пустой ВП, добавьте функции, как показано ниже,


Запустите программу, вы увидите ее на передней панели,


Итак, если я изменю программу на,


После запуска программы вы можете увидеть,


Очевидно, Build Path Функция может помочь нам построить требуемый путь

Два, создайте папку

После построения пути в первом разделе вы можете попробовать создать папку. Функция создания папки показана ниже.


path Абсолютный путь к создаваемой папке. Если данные не подключены к path , Функция отобразит диалоговое окно, в котором вы можете выбрать папку. Если вы укажете пустой путь или относительный путь, эта функция вернет ошибку.

created path Путь к выходной папке. Если операция не удалась, эта функция created path Установите значение .

Например, я Labview example Создайте папку с именем dir В папке Word вы можете написать программу на задней панели следующим образом:


После запуска программы вы можете увидеть на передней панели,


Войдите под D диск Labview example Папка, вы можете видеть, что программа создала подпапки,


В-третьих, создайте путь к файлу txt

Иногда при тестировании алгоритмов необходимо создавать файлы для сохранения данных. В это время вам нужно подумать, как задать имя файла, как сделать так, чтобы он автоматически генерировался, а также иметь определенные правила и удобочитаемость. Например, имя файла: данные собранные 16-19 марта 1618 года, как их автоматически сгенерировать в программе?

3.1 Формат строки даты / времени Функция Функция

Эта функция использует код формата времени для отображения значения отметки времени или числового значения в качестве времени в указанном формате, как показано ниже.


time format string Укажите формат выходной строки. time format string (Начните с%). Код по умолчанию -% c, который соответствует представлению даты и времени часового пояса, применимого к конфигурации компьютера. в случае time format string Это пустая строка, функция использует значение по умолчанию.

time stamp Может быть меткой времени или числом. Если это число, то это число представляет собой количество секунд, прошедших с 00:00 в пятницу, 1 января 1904 г. (мировое время [01-01-1904 00:00:00]), независимо от часового пояса.Значение по умолчанию - текущая дата и время.. Если год до 1904 года, то time stamp Отрицательный.

date/time string Форматированная строка даты и времени.

3.2 Функция форматирования в строку

initial string Укажите базовую строку, и любые параметры могут быть соединены с базовой строкой, чтобы сформировать строку результата.

input n Укажите входные параметры, которые должна преобразовать функция. Этот параметр принимает строку, путь, перечислимый тип, метку времени, логическое значение или любой числовой тип данных. Для каждого входа можно указать до 4096 символов.
Если вы укажете логическое значение для этого параметра и% s указан как код формата, функция Format Into String выведет значение как TRUE или FALSE. Если вы укажете логическое значение для этого параметра и любой код числового формата, функция Format Into String выведет 1 для TRUE и 0 для FALSE. Например, если% f указан как код формата, функция выводит 1,00000. Если указан% d, функция выводит 1.

resulting string да initial string с участием input n Строка объединена в соответствии с форматом.

Напишите программу на задней панели пустого ВП,


Запустите программу, вы увидите ее на передней панели,


Очевидно, что три входные строки напрямую объединяются в новую строку.

3.3 Построить путь к файлу

Объединив знания во втором разделе и снова используя функцию Build Path, вы можете построить путь к txt-файлу для сохранения данных. Напишите программу в VI, как показано ниже,


Запустите программу, вы увидите на передней панели,


Очевидно, необходимое построение пути к файлу завершено.

В-четвертых, создайте текстовый файл


file path Абсолютный путь к файлу. Если путь к файлу не связан, функция отобразит диалоговое окно, в котором вы можете выбрать файл. Если вы укажете пустой путь или относительный путь, эта функция вернет ошибку. Если путь к файлу - это путь к несуществующему каталогу, эта функция возвращает ошибку.

  • 0: (по умолчанию) открыть существующий файл. Если файл не может быть найден, появится ошибка 7.
  • 1: Замените существующий файл, открыв файл и установив конец файла на 0.
  • 2: Создайте новый файл. Если файл уже существует, появится ошибка 10.
  • 3: Открыть или создать - открыть существующий файл или создать новый файл (если он не существует).
  • 4: Заменить или создать - создать новый файл или заменить файл (если он существует).
  • 5: Заменить или создать подтверждение - создать новый файл или заменить файл (если он существует) и предоставить вам разрешение.
  • 0: чтение / запись
  • 1: только чтение
  • 2: только писать

В VI напишите программу следующим образом:


Запустите программу, вы увидите, что на диске D Labview example В подпапке dir папки создается текстовый файл,


На этом этапе файл создается автоматически. В следующий раз узнайте, как писать содержимое.

Интеллектуальная рекомендация

UIWebView-OC и взаимодействие JS

1. Перехватить указанный URL-адрес в прокси-методе webView. 2. По перехваченному URL-адресу определите специальное поле, указанное в URL-адресе, для обработки соответствующего события. 3. Передайте ис.

Реализация стека


[Libuv эффективное программирование] Libuv обучение супер подробный учебник 2 - основы Libuv

Каталог статьи рамки Libuv Синхронный I / O Асинхронный ввод / вывод Ручки и просит цикл событий Ссылаться на рамки Libuv Из официальной документации, вы можете найти картину дизайн рамы:libuv/docs/sr.

Ваш городской слоган? Python Trawly Анализ национальных купонов выпустил данные

| Лю рано Источник | Ранний Python (ID: Zaoqi-Python) Недавно в различных формах поощряется более разнообразные формы купонов потребления и субсидии потребления, а некоторые города постоянно добавляют.


Нажмите на картинку, чтобы выделить картинку

Код Поскольку включенные js и css больше, нелегко копировать, пожалуйста, загрузите интерфейс загрузки "Мышь Нажмите на картинку, изображение большой .rar" для загрузки.

Более 35 лет инженеры и ученые используют NI LabVIEW для разработки измерительных систем, испытательных стендов и систем управления. В основе LabVIEW лежит графический язык программирования G. Помимо самой возможности программирования среда LabVIEW предоставляет в распоряжение пользователя широкий спектр инструментов и библиотек: от интерактивных мастеров настройки и пользовательских интерфейсов до встроенных компилятора, компоновщика и средств отладки.

Краткая история развития высокоуровневого программирования

Чтобы лучше понять основные преимущества концепции графического программирования, стоит обратиться к истории появления первого высокоуровневого языка. В середине 50-х годов XX века, на заре развития компьютерной техники, небольшое подразделение в IBM разработало альтернативный способ программирования суперкомпьютеров IBM 704 – язык FORTRAN. В отличие от существовавшего в то время низкоуровневого языка, предложенный специалистами язык был ближе к прикладной области, проще воспринимался человеком и позволял ускорить процесс разработки.

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

Несмотря на то, что высокоуровневые языки все время совершенствуются, вопрос повышения удобства и скорости работы остается актуальным и на сегодняшний день. Это объясняет популярность и широкое распространение языка G, с тех пор как он появился в 1986 году. Этот язык предоставляет максимально возможный уровень абстракции, что позволяет пользователям работать более эффективно, практически не проигрывая в производительности кода таким языка как FORTRAN, C и C++.

LabVIEW: графическое потоковое программирование

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


Вторая отличительная особенность LabVIEW - это поддержка выполнения кода, написанного на языке G, в режиме потока данных (потоковое программирование), в то время как традиционные текстовые языки (например, C и C++) обеспечивают выполнение кода в виде последовательности команд. В основе языков потокового программирования (таких как G, Agilent VEE, Microsoft Visual Programming Language и Apple Quartz Composer) лежит концепция потока данных, который и определяет последовательность выполнения функциональных узлов программы.

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

Интуитивное использование средств графического языка

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

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

Интерактивные средства отладки

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


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

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

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

Автоматическое распараллеливание


Параллелизм также позволяет увеличить производительность программ. В настоящее время становится все более популярной новая архитектура процессоров - многоядерные процессоры.

Чтобы до конца использовать все преимущества многоядерной архитектуры процессора, программы должны содержать участки кода, которые могут выполняться независимо (т.е. быть многопоточными). В обычных текстовых языках создание и управление потоками является сложной задачей для неопытного специалиста в программировании.

Помимо поддержки многопоточности на многоядерных системах, LabVIEW позволяет создавать приложения для параллельных вычислений на ПЛИС – интегральных микросхемах с программируемой логикой, в которых выполнение независимых участков кода организуется абсолютно независимыми участками микросхемы, которые не влияют на производительность друг друга. LabVIEW очень хорошо подходит для программирования ПЛИС, потому что в его основе лежит работа с параллельными потоками данных. Именно поэтому он становится всё более популярным среди разработчиков, которым требуются параллельные детерминированные вычисления.


Уровень абстракции низкоуровневых операций

В примере с языком FORTRAN было показано, что уровни абстракции, обеспечиваемые языками высокого уровня – их главное преимущество, которое проявляется в более наглядном виде кода по сравнению с низкоуровневыми языками. LabVIEW автоматически обеспечивает выполнение ряда задач (например, управление памятью), которое в текстовых языках обычно ложится на плечи разработчика. В подобных случаях вы самостоятельно должны обеспечить выделение памяти перед ее использованием и освобождение – после, а также следить за тем, чтобы не выйти за границы выделенной области.

Автоматическое управление памятью – одно из главных преимуществ языка LabVIEW. Когда вы пишите программу на графическом языке программирования, вам не нужно ни выделять память для переменных, ни присваивать им значения. Вместо этого, вы создаете блок-диаграмму, отражающую движение данных. Узлы блок-диаграммы, которые генерируют данные, автоматически обеспечивают выделение памяти для данных. Высвобождение памяти происходит автоматически после того как данные оказываются не нужны. Как только вы добавляете дополнительные данные в массив или строку, вызываются процедуры выделение дополнительного объема памяти. Таким образом, вы можете сосредоточиться на решении поставленной задачи, а не разбираться в тонкостях языка и не допускать ошибок при программировании.

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

Если программа на LabVIEW демонстрирует неожиданные результаты, вы можете воспользоваться как упомянутыми выше средствами отладки, так и инструментарием для продвинутых пользователей, а именно – тулкитом Desktop Execution Trace Toolkit, который позволяет провести динамический анализ кода на наличие:

• Утечек памяти и ошибки ссылок/указателей
• Участков кода, вызывающих не желаемое поведение программы
• Участков программы, на которых может быть увеличена производительность
• Определение вызова предшествующего ошибке
• Сравнение работы кода на разных платформах


Интеграция LabVIEW с другими языками

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

Например, в LabVIEW есть узел, называющийся Formula Node, который позволяет рассчитывать значения по текстовым формулам и выполнять текстовые программы с C-подобным синтаксисом.


Оптимальный способ решения ваших задач

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

Читайте также: