Что такое виртуальный прибор в программу labview

Виртуальные приборы (англ. Virtual Instrumentation) — концепция, в соответствии с которой организуются программно-управляемые системы сбора данных и управления техническими объектами и технологическими процессами.

Сущность: система организуется в виде программной модели некоторого реально существующего или гипотетического прибора, причём программно реализуются не только средства управления (рукоятки, кнопки, лампочки и т.п.), но и логика работы прибора. Связь программы с техническими объектами осуществляется через интерфейсные узлы, представляющие собой драйвера внешних устройств — АЦП, ЦАП, контроллеров промышленных интерфейсов и т.п.

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

Концепция виртуальных приборов применяется в качестве базовой в таких продуктах, как:

002.1 LabVIEW Создание виртуального прибора на примере Амперметра

· LabVIEW фирмы National Instruments (США) (http://www.natinst.com);

· DASYLab фирмы DATALOG GmbH (Германия) (http://www.dasylab.com);

· DIAdem фирмы GfS mbH (Германия).

В настоящее время торговые марки DASYLab и DiaDem также принадлежит National Instruments.

Программный комплекс LabVIEW

LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) — это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments (США). Первая версия LabVIEW была выпущена в 1986 году для Apple Macintosh, в настоящее существуют версии для UNIX, GNU/Linux, Mac OS и пр., а наиболее развитыми и популярными являются версии для Microsoft Windows.

LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами. Идеологически LabVIEW очень близка к SCADA-системам, но в отличие от них в большей степени ориентирована на решение задач не столько в области АСУ ТП, сколько в области АСНИ.

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

Графический язык программирования «G», используемый в LabVIEW, основан на архитектуре потоков данных. Последовательность выполнения операторов в таких языках определяется не порядком их следования (как в императивных языках программирования), а наличием данных на входах этих операторов. Операторы, не связанные по данным, выполняются параллельно в произвольном порядке.

В основе программирования в LabVIEW лежит понятие Виртуальных приборов (Virtual Instruments, VI). На лицевой панели, как и положено, располагаются элементы управления программой — кнопки, графики, выключатели и тому подобное. Блок-схема — это, по сути, и есть сама программа.

При написании (а вернее создании, потому что писать приходится не так уж и много) программы используется такое понятие, как «поток данных» (Data Flow). Суть его в том, что все элементы программы (которые представлены графически) связываются между собой связями (проводами, нитками) по которым и происходит передача данных. В общем, описать это довольно сложно, лучше посмотреть на картинку, рис. 3.

LabView. Создание Виртуального Прибора (Virtual Instrument creation)

Простейший прибор

Рис. 3. Простейший прибор.

· Точки, элементы программы (Nodes)

· Терминалы индикаторов (Indicator Terminals)

· Терминалы управляющих элементов (Control Terminals)

Итак, в LabVIEW вы создаете пользовательский интерфейс (лицевую панель), с управляющими элементами и индикаторами. Управляющие элементы — это тумблеры, кнопки, поля ввода и прочие устройства ввода. Индикаторы — это графики, шкалы, лампочки, текстовые поля и тому подобное.

После создания пользовательского интерфейса, вы добавляете программный код, который управляет объектами на лицевой панели. Этот код содержится в схеме (block diagram). Этот код чем-то напоминает собой блок-схему, хотя отличий много.

LabVIEW можно использовать для того, чтобы управлять различным оборудованием, таким, как, устройства сбора данных, различные датчики, устройства наблюдения, двигательные устройства (например, шаговые моторы) и тому подобное, а так же GPIB, PXI, VXI, RS-232 b RS-484 устройства. Также в LabVIEW имеются встроенные средства для подключения созданных программ к сети, используя LabVIEW Web Server и различные стандартные протоколы и средства, такие как TCP/IP и ActiveX.

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

Источник: studentopedia.ru

1 Виртуальные приборы (VI –Virtual Instrument)

Любая программа, созданная в системе LabVIEW, называется виртуальный прибор (ВП) или виртуальный инструмент (ВИ -дословный перевод с английского языка: VI-Virtual Instrument).

Вход в программу LabVIEW осуществляется быстрым двойным щелчком ЛКМ (левой клавиши мыши) на пиктограмме LabVIEW. На экране появляются две совмещенные панели, расположенные каскадом. Одна из них имеет серый фон рабочего пространства, другая – белый.(рисунок 1.1).

Рисунок 1.1 – Положение панелей после вызова LabVIEW

Читайте также:
Как работать в программе редактор dbf

Для развертывания панелей на две половины экрана нужно одновременно нажать на клавиатуре Ctrl+T. После этой команды пустые панели будут расположены на экране слева и справа(возможен вариант сверху и снизу). На рисунке 1.2 изображено положение панелей.

Рисунок1.2 – Положение панелей слева и справа

По своему назначению левую панель называют панелью управления (Controls), правую панель называют функциональной панелью (Functions). Внешними отличительными признаками пустых панелей являются следующие три признака:

1) цвет фона рабочего пространства панели управления – серый, функциональной – белый;

2) в строке заголовка панели управления записывается имя файла, под которым обе панели нового виртуального инструмента будут сохранены, в строке заголовка функциональной панели записывается также имя файла с добавлением слова Diagram;

3) главные меню панелей отличаются только средней опцией: Controls – у панели управления, Functions – у функциональной панели.

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

В первых двух вариантах осуществляется выбор нужного файла и его вызов. Для этого из главного меню любой панели командой FileOpen вызываем каталог LabVIEW, находим нужный файл, выделяем его курсором мыши и командой «ОК» вызываем обе панели виртуального прибора. Вначале появляется панель управления, для вызова функциональной панели необходимо нажать Ctrl+Е.

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

По окончании работы, перед выходом из LabVIEW, бывает необходимо сохранить не только схему, но и численные значения независимых величин, установленных задатчиками, и результаты эксперимента. Эта цель достигается командой из главного меню OperateMake Current Values Default (ВыполнитьСохранить текущие значения по умолчанию).

1.1 Структура LabView

Структура ВИ может быть представлена следующими элементами:

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

2) ВИ получает команды от структурной схемы, которую Вы создаете в графическом языке. Структурная схема представляет собой наглядное представление решения вашей задачи. Структурная схема также содержит исходные коды для ВИ.

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

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

Источник: studfile.net

ЦП Автоматизированные системы управления и промышленная безопасность

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Практически у всех разработчиков устройств на микроконтроллерах, будь то любители или профессионалы, рано или поздно возникает необходимость подключить микроконтроллерный девайс к его “старшему брату”, а именно к PC. Вот тогда и встает вопрос, а какой софт использовать для обмена с микроконтроллером, анализировать и обрабатывать полученные от него данные? Часто для обмена МК с компьютером используют интерфейс и протокол RS232 — старый добрый COM порт в той или иной реализации.

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

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

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

LabView — это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments.

Читайте также:
Какая программа открывает рар файлы на компьютере

Говоря простым языком, LabView — Это среда создания приложений для задач сбора, обработки, визуализации информации от различных приборов, лабораторных установок и т.п. А также для управления технологическими процессами и устройствами. Однако с помощью LabView можно создавать вполне себе обычное прикладное ПО. У меня нет цели подробно описывать этот продукт и работу с ним.

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

Цель статьи — показать насколько просто и удобно, по сравнению с традиционным программированием, можно создавать приложения для ПК и какую мощь несет в себе LabView. (На самом деле спорно, т.к. в традиционном программировании, на той же Delphi сделать не сложней. И по эффективности вряд ли хуже, если не лучше. Но для этого дельфу надо гораздо дольше изучать.

Тут же все быстро и понятно почти сразу. Пару методичек проштудировал и вперед городить циферблаты всякие. Так что для программистов оно как собаке пятая нога, а вот таким далеким от компа товарищам как я — самое то. Я когда то, за полчаса, впервые увидев LabView, по тоненькой методичке сваял зверскую систему управления поливом и отоплением для конопляной теплицы.

С ПИД регуляторами всякими. Вывел на потенциометры и датчики лабораторного стенда, что стоял в нашем технаре и запустил этот адский агрегат. Причем все заработало сразу, без отладки. Кстати, на LabView работает вся аппаратура адронного коллайдера, а также очень много научной аппаратуры. прим. DI HALT) Ведь большинству электронщиков чуждо программирование для PC, верно?

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

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

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

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

  • Собственно сама LabView. Можно скачать с сайта NI триал версию: http://www.ni.com/trylabview/. Также без проблем нагугливается пиратская версия. Кстати, на rutracker.org, помимо прорвы пиратских, лежит и версия под Linux на которую регистрация вроде как не требуется вообще. NI решила пойти навстречу опенсорцу?
  • Также обязательно необходимо скачать компонент NI VISA. Без этой программы LabView не “увидит” COM порт на компьютере. VISA содержит в себе функции для работы с комуникационными портами и много чего еще. Скачать ее можно с joule.ni.com. Устанавливаем LabView и VISA. Установка этого ПО стандартная, каких либо особенностей не имеет.

Первым делом нам нужно убедится, что VISA нашла в системе COM порт и корректно с ним работает. Проверить это можно так: запускаем программу Measurement Options, слева выбрать Block diagram и снять галку Place front panel terminals as icons. Очень полезно вывести контекстной справки. Вывести его можно комбинацией Ctrl+H.

В этом окошке отображается информация о объекте на котором в данный момент налодится курсор. Мега удобная вещь.

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

Всего не перечислишь.

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

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

Читайте также:
Для чего на компьютере программа java

Для соединения элементов на блок-диаграмме используется инструмент 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.

Она приведет диаграмму в более-менее божеский вид, но пользоваться надо осторожно. Вот результат ее работы

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

Источник: www.automationlab.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru