Знакомимся с LabView

Распечатать

Практически у всех разработчиков устройств на микроконтроллерах, будь то любители или профессионалы, рано или поздно возникает необходимость подключить микроконтроллерный девайс к его «старшему брату», а именно к 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 & Automation. Она ставится вместе с LabView. Если она не установилась, установить можно вручную. На диске (образе с LabView она есть).

В левой части окна мы видим оборудование, обнаруженное в системе. Среди всего прочего находим наш COM порт. Справа есть кнопка Open Visa test panel. С помощью нее можно протестировать выбранное устройство. В случае с COM портом там можно отправить или принять заданную по умолчанию или произвольную последовательность символов. Если с портом все в порядке, можно приступать к непосредственно созданию нашей программы.

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

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

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

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

Ок, теперь нам необходимо реализовать собственно умножение. Переходим на панель Block diagram и видим что для каждого из наших контролов создался соответствующий значек. Лучше всего сразу перевести режим отображения в виде терминалов. Не будет так загромождаться диаграмма. Кроме того в терминалах виден тип данных, которыми оперирует тот или иной контрол. Для этого щелкаем ПКМ по значку и снимаем галку View as icon. Вверху на скрине контрол в виде терминала, внизу и справа в виде иконки. Для того чтобы настроить вид на блок-диаграмме в виде терминалов по умолчанию, нужно выбрать пункт меню Tools->Options, слева выбрать Block diagram и снять галку Place front panel terminals as icons. Очень полезно вывести контекстной справки. Вывести его можно комбинацией Ctrl+H. В этом окошке отображается информация о объекте на котором в данный момент налодится курсор. Мега удобная вещь.

Теперь нужно добавить на блок-диаграмму функцию умножения. Щелкаем ПКМ на блок-диаграмме и из палитры 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. На данном этапе должно получится как на скрине.

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

Create->Control.

Нас интересуют два входа: 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. Она приведет диаграмму в более-менее божеский вид, но пользоваться надо осторожно. Вот результат ее работы

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

Много книжек по LabView можно качнуть на automationlabs.ru

Bomond для Easyelectronics.ru

Запись опубликована в рубрике Софт с метками , , . Добавьте в закладки постоянную ссылку.

191 комментарий: Знакомимся с LabView

  1. A-10 говорит:

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

    • projects.org.ua говорит:

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

      • DI HALT говорит:

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

        • bomond говорит:

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

          • DI HALT говорит:

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

            • bomond говорит:

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

              • projects.org.ua говорит:

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

                • bomond говорит:

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

      • Sergey_F говорит:

        Видеоурок по созданию exe файла.
        http://labviewportal.eu/ru/sozdanieapplikacij/exe

        • Aks говорит:

          РАСШИФРОВКА ВИДЕОУРОКА ПО СОЗДАНИЮ ФАЙЛА .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
          НА ЭТОМ ВИДЕОУРОУК ЗАКАНЧИВАЕТСЯ.

    • alexei888 говорит:

      Здравствуйте bomond Очень нужна помощь Новичку по связи с USB-портом
      Есть программа Счетчика расхода жидкости. Принцип работы ее основан на перепаде давлений допустим устанавливаем Нижний придел давления 3кг/см Вкл клапана и 5кг/см Откл клапана Когда давление падает до 3кг/см Вкл клапан подает давление в сосуд(в этот момент програма подсчитывает+ Цена импульса и происходит счет) в 5кг/см клапан отключается
      Датчик давления автомобильный ММ370 я переделал его на напряжение до 5вольт для использования с работой на USB так как у меня на Ноутбуке нет КОМ-порта
      Заранее Вас благодарю с Уважением Алексей alexey_kushnir@mail.ru

  2. Gordienko Victor говорит:

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

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

    • bomond говорит:

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

      • labview говорит:

        Должен добавить, что число 200 в данном примере большой роли не играет. Функция прекращает чтение либо если «увидит» конец строки, либо если количество байт достигнет указаноого значения 200. В данном примере я так понимаю, что строка короче 200 символов.
        И да, есть ещо и третье условие для прекращения чтения строки — это таймаут, который указывается при конфигурации порта.

  3. vasiliok говорит:

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

    • ProgrammerForever говорит:

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

  4. Bkmz говорит:

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

  5. Vladigit говорит:

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

    • bomond говорит:

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

  6. projects.org.ua говорит:

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

  7. bomond говорит:

    Кстати, для тех кто хорошо знаком с программированием на C++, С#, Visual Basic возможно есть смысл ознакомится с продуктом NI Measurement Studio.

  8. DenisMale говорит:

    Да «управление поливом и отоплением для конопляной теплицы» это круто ;))

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

  9. Vitaha говорит:

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

    • bomond говорит:

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

      • Vitaha говорит:

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

        • SIM говорит:

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

          Интересно, а Borland C++ под ДОС 1993 года платный или нет? У нас на нем многие проекты, компилируем .exe файлы и прошиваем в контроллеры такие вот:
          http://www.promsat.com/page/337/
          стоят 5000 руб, тайваньские, нам удобны для опроса устройств по RS232 и передачи данных по Ethernet (Modbus TCP). Есть платы расширения, можно к ним датчики цеплять, но я не пробовал.

  10. General Dead говорит:

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

  11. alex_ac говорит:

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

    • bomond говорит:

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

  12. mahajrod говорит:

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

    • bomond говорит:

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

  13. SWG говорит:

    Кому как, а мне так и DELPHI для моих виртуальных отладочных пультов хватает. Есть и графики, и шкалы, как линейные, так и круговые, и регуляторы всякие. И для программирования в целом возможностей гораздо больше. И EXEшник делается, для сложных программ можно и инсталляшку сделать. Зато универсальный и довольно серьезный продукт.
    А пользоваться всякими полумультяшными специализированными продуктами, вроде Алгоритм Буилдера или LabView — так толком ничему и не научишься. Это как в кубики играть. Простые учебные примеры делаются легко, а как что серьезное — так все равно намаешься…

    • bomond говорит:

      SWG, я не буду с Вами спорить, каждому свое. Все здесь знают, как Вы относитесь к подобного рода вещам. Скажу лишь одно — Вы не правы.

    • yaminov говорит:

      а какже БАК? Или это тоже учебные примеры?

    • alex_ac говорит:

      Думаю, что если бы БАК управлялся нативным специально для этого спроектированным софтом он бы так часто и не ломался.

      • DI HALT говорит:

        Ломался бы, куда бы он делся. Там же не только навороченный софт, но и невьебенно сложные датчики и электроника.

        • bomond говорит:

          Это все чушь, нет никаких данных что БАК сбойнул по вине ПО

          • SIM говорит:

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

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

            Интересный пример с вояджерами, в 1975 году что-ли, на орбите Плутона из-за какой-то шальной частицы сгорел один из битов регистров 8080 или подобного процессора, контроллер по сути, программисты подправили код и обновили прошивку удаленно, чтобы не использовать тот регистр, вот это круто, и для того времени, и для нашего. Сэкономили сотни миллионов долларов, проект продолжился успешно. В интернете подробности есть все. Программисты вычислили и исправили аппаратный сбой, в наше время всё наоборот, в процессоры встраивают системы контроля за программистами и не помогает, память утекает, стеки переполняются, порты уязвимы :)

      • kamil yaminov говорит:

        1. Обе приины поломки БАК — неправильно спроектированные магниты, просто забыли учесть пару простых эффектов.
        2. Всегда есть человеческий фактор. Как и в случае использования лабвью, так и в случае использования собственных разработок. Так что, ломался бы так и так.
        3. Насчет меньше — спорный вопрос, ибо лабвью — продукт, над которым ведется постоянная работа: что-то исправляется, улучшается. В случае, когда пишут самостоятельно (имею в виду софт для такого рода установок), бесконечно отлаживаться не получится — все таки эта машинка не стенд для испытания софта.

    • DI HALT говорит:

      Ну как сказать. Я на лабвью видел очень сложные проекты. Т.е. с платы АЦП в комп идет поток данных, тут же на лету проводится его матобработка, результаты по весьма сложным алгоритмам сортируются и часть из них уходит в цепи регулирования (всякие ПИДы там просто гроздьями) и потом идет обратно, в плату вывода. И все это рулит весьма нешуточной установкой электромеханической (вроде небольшой электростанции).

      Причем софт был написан и отлажен примерно за неделю. Думаю что на дельфи они бы возились в разы если не в порядке дольше. Т.к. там одна отладка бы сколько всего заняла.

    • SIM говорит:

      Мне Дельфи тоже кажутся удобными. Без пример наверное сложно, но пример у меня есть, работа с СОМ портом простейшая, интерфейс удобный.
      Предлагаю кому-нибудь выложить пример на Дельфи подобный, считывание данных с СОМ порта и вывод графика. Для СОМ порта у меня нестандартные библиотеки, обычная работа с портом кажется неудобной…

  14. alex_ac говорит:

    Я считаю, что это разработчику не лишне — на самом деле работа с портами в любой ос организована одинаково — специальный файл для записи и чтения и спец функции для регулирования скорости/разрядности. Всё устроенно очень просто, да и освоить C
    после ассемблера очень просто.

  15. lexussc говорит:

    Классная штука, у нас в универе предмет связанный с LV преподают

  16. and говорит:

    Хорошая статья! Как раз в тему. Как раз стоит задача автоматизации производства -организовать связь калибруемых датчиков с компом.
    Тоже немного покомментирую. Сложно определится, какое решение выбрать.
    Дело в том, что на дельфи можно что то написать,есть книжки с примерами для com порта, но требуется лицензия, а то ходят тут всякие :)
    Лабвью лицензионный стоит 18 тыс. Хотя вещь конечно, хорошая и что важно много по нему информации.
    С++ с QT опенсорсные долго изучать.
    Вот если что нибудь на питоне написать… Вроде бы самый простой вариант. Он чем хорош, есть библиотека serial, + библиотеки визуализации данных, и язык проще чем Си.
    Вообще же складывается ощущение, что тема простой опенсорсной лабораторной автоматизации как то не развита. Не всегда же нужны монструозные и дорогие инструменты, если достаточно поддержки 2-х 3-х распространенных протоколов и вывод нескольких простых графиков.

    • SIM говорит:

      Дельфи ставите на ноутбуке с паролем, а скомпилированная программа по опросу датчиков получается бесплатная, проверяющим говорите что писали в машинных кодах в блокноте :)

      Есть бесплатные сборки дельфей, Lite версии, урезаны ненужные функции работы с базами данных и интернетом.

    • Насчет лицензии и денег — для простых, на скорую руку, проектов я использую Microsoft Visual Studio Express — бесплатная лицензия http://www.microsoft.com/express/Downloads/ Си шарп мне показался даже проще, чем дельфи. Для фанатов или начинающих опять же есть Вижуал Бейсик (бейсик в школе вроде как преподают).
      P.S. EXEшники делает сразу же:))) хотя для их работы скорей всего нужно будет ставить .NET Framework — тоже бесплатный ессно.

  17. Gordienko Victor говорит:

    как сделать у Waveform Chart сетку, и что бы внизу было например дискретное значение 1, 2, 3, …. как у осциллографа ?

    • bomond говорит:

      Сетка настраивается в свойствах компонента Waveform Crart, а чтобы по оси X добавить значения — щелкаем ПКМ по Waveform Chart, выбираем X Scale->Marker Spacing->Uniform/

      Можно воспользоваться компонентом Waveform Graph, там и сетка и числа сразу стоят.

    • Gordienko Victor говорит:

      Спасибо… Waveform Graph то что нужно хочу подключить Waveform Graph к Scan from string ничего не получаеть ????

  18. Gordienko Victor говорит:

    Спасибо… Waveform Graph то что нужно хочу подключить Waveform Graph к Scan from string ничего не получаеть ????

    • bomond говорит:

      ага, тип данных не совместим. Ну тут можно заюзать функцию String To Byte Array. Она находится в палитре Numeric->Conversion. Ко входу подключаете строку с выхода VISA Read, а к выходу Waveform Graph. Попробуйте, посмотрите на результат и сразу будет понятна разница между Waveform Chart и Waveform Graph. Еще можно примеры к LabView посмотреть. Весьма удобно то, что открыть пример можно прямо из хелпа на тот или иной объект.

  19. gari говорит:

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

  20. gari говорит:

    америкосы умеют делатьпрограммы

  21. mak_mak60 говорит:

    Вместо громоздкой VISA, если нужно работать только с COM портом можно установить дополнительный компонент сторонних разработчиков lvserial http://www.mhst.de/downloads.htm, для её работы нужна всего одна Dll размером около 200 кБ. После установки в палитре Instrument Drivers появится подпалитра lvserial. Возможностей даже больше чем в стандартной палитре VISA для работы с COM портом. Сам помаленьку осваиваю LabVIEW. Сначала сделал самодельную ISA плату на ней 12 разрядный ЦАП и 8 битный порт ввода/вывода, сейчас работаю через USB на FT232.

  22. SIM говорит:

    А контроллер в каком формате передает данные? Чтобы на контроллер прописать стандартный модбас какой-нибудь свихнуться можно :) А вот несколько байт выплюнуть проще, но не все программы их поймут. Про возможности блока захвата данных с СОМ порта не расказали. Как данные расшифровываются? :)

    Работал с СОМ портом на дельфях, всё просто, но использовал нестандартный компонент, жизнь упростилась, использовал несколько команд типа
    InstallCom(port1, 9600, 8,N,1), ToCom1(байт), FromCom(байт) и т.п.

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

    Данный проект тоже интересен, в идеале можно взять контроллер за 0.25$ tiny какой-нибудь, прилепить к нему датчик температуры, СОМ порт (или лучше преобразователь СОМ в Ethernet) пару реле и будет аналог промышленного контроллера за 1000$, для каких-то целей и лучше. У меня например проблема, в офисном здании нет датчиков температуры, сеть везде, а мерять нечем, или не знаю чем чтобы недорого :) Давно обдумываю как бы что-то придумать простое.

    Если народу интересны ARM, LabView, можно описать работу со SCADA системами, и простейшими контроллерами? Российские Сегнетиксы вот собраны на атмеловских контроллерах и по цене сравнимы с ценой деталей, но это промышлненный контроллер, корпус, блок питания, экранчик, кнопки, реле, часики, АЦП, ЦАП, эзернет опционельно при цене 4500 руб:
    http://www.segnetics.com/main.aspx?Page=349
    Цепляется к любым серьезным программам через Modbus RTU, для лабораторий помоему идеальное решение.
    Образцы не высылают, даже хуже, очередь за ними 4-6 недель(!)
    И программируется в своей среде функциональными блоками, плюсы не завесить программами неуловимыми ошибками (стеки, оптимизация, утечки памяти), простое программирование (студент за несколько часов кликания написал простую программу), минусы меньшее быстродействие, сотни миллисекунд.
    Помоему этот контроллер идеален чтобы по быстрому сделать законченное промышленное решение, хоть программу работы котла задать дома, хоть самогонный аппарат автоматизировать :)

    Кроме LabView можно взять SCADA системы, в деморежиме там 32-64 тэга поддерживаются, для простых работ хватит, и ключей полный интернет :) Работал с Inouch 8.0 если разобраться красиво, и параметры отображаются, и трэнды, и архивы все, и скрипты можно делать, и графика динамическая, выглядит серьезнее LabView. Недостатки мало встроенных протоколов обмена данными, свой контроллер подключить сложно, если тот же Модбас в него запрограммировать, или делать связку программ… Хорошие отзывы встречал о Genesis 32, всё встроенно, но не работал с ней. Вобщем и сам в поисках «смотрелки» данных, много непонятного всего )))

  23. ASV говорит:

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

    • bomond говорит:

      На LabView можно делать системы жесткого реального времени, как раз для ответственных задач. Есть модуль labview real-time module. Правда и аппаратура должна быть соответствующей.

      • ASV говорит:

        Я не в коем случае не против LabView, я против винды в управляющих (не мониторинговых) системах. Ну и еще один аспект: на промышленном предприятии управляющий компьютер (контроллер) не должен выглядеть как обычный ПК, дабы не искушать всяких «товарищей» играть в косынку на компьютере, управляющем подачей материала в обжиговую (бывают и такие придурки).

  24. and говорит:

    Для альт линукса есть проект openscada. Правда я так и не понял как с ним работать. и еще древняя версия лабвью 6.1 на сайте немецкого журнала СT, но неясно, можно ли ей бесплатно пользоваться на предприятии.

  25. Aneg говорит:

    Микроконтроллер выдает 10 разрядные результаты работы АЦП. Вначале 8-бит, а потом еще 2, ведь так? Тогда каким образом программа из статьи распознает, что данные из COM порта поступают в формате по 2 байта на один отсчет?

    • bomond говорит:

      Я не знаю что и как там распознает, никода не думал об этом. Работает по крайней мере так как нужно.

      • Aneg говорит:

        А в каком формате ты передаешь данные по СОМ порту от контроллера в РС?

        • bomond говорит:

          $regfile = «m8def.dat»
          $crystal = 8000000
          $baud = 19200
          $hwstack = 32
          $swstack = 8
          $framesize = 24

          Config Adc = Single , Prescaler = Auto , Reference = Avcc

          Start Adc

          Dim W As Word , Channel As Byte
          Do
          W = Getadc(4)
          Print W
          Waitms 50
          Loop
          End

          Это программа на BASCOM AVR залита в контроллер. Обычная терминалка принимает код в диапазоне от 0 до 1023. То есть если апряжение на входе АЦП будет 2,5 вольт терминал примет код 511. Они то из контроллера в ASCII идут как я понимаю. Точно также принимает и функция VISA Read. Тоесть из контроллера идет строка символов, если смотреть на тип данных.

  26. foxit говорит:

    Статья получилась отличной.
    Где можно посмотреть файлы проекта?

    Какие дальше планы по поводу статей про Labview?

    • bomond говорит:

      Файлы могу замылить вам. Дайте только почту. Планы туманные, так как я пока учусь и честно сказать я еще просто нуб, но есть у меня задумка сделать плату ввода-вывода, которая будет управляться LabView. Как сделаю, отпишусь :-))

      • foxit говорит:

        foxitсобакаgala.net

        По-моему, так Учебный курс по Labview лишним не будет.

        А можно подробней про про плату ввода-вывода.
        Тоже есть желание сделать что-то подобное.

        • bomond говорит:

          Учебный курс это уж слишком для меня. Могу посоветовать книгу Д.Трэвис. LabView для всех. Весьма толковое чтиво для начала. качнуть можно тут: http://www.automationlabs.ru/forum/showthread.php?t=1672

          Ну а плата, я думаю будет простая — Mega128 (может ARM если раскурю). Микросхемы АЦП, ЦАП, ну и линии дискретных входов-выходов. Или вообще пошлю эти AVR, ARM да и соберу на старом, добром 8051 кристалле. Есть у меня парочка MSC1211Y5

          • mak_mak60 говорит:

            Плату ввода-вывода я уже делал. Использовал 572ПВ1 и несколько мультиплексоров, кажется КП11. 572 в качестве ЦАП (АЦП мне был не нужен), КП11 для ввода — вывода дискретных сигналов. Интересна технология :) Берём ненужную ISA плату 16 разрядную, отрезаем ножничками по металлу верхнюю часть, к оставшейся части с разъёмом прикручиваем кусок фольгированного располосованный в нужных местах с шагом 2.5 мм резаком из ножовочного полотна, распаиваем микросхемы и соединяем что нужно МГТФом, всё, ISA контроллер готов. И как ни странно всё это работало под LabVIEW весьма стабильно, жаль что те компы уже на свалке. С PCI такой номер не прокатит!

  27. geovas говорит:

    Отличная стать!

    Только у меня программа по работе с АЦП ругается на:
    Error 85 occurred at Scan From String (arg 1) in Untitled 1.vi
    Что может быть не так?

  28. labview говорит:

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

    Чтобы не быть голословным, вот последний урок по созданию DLL в Qt и использовании оного в LabVIEW
    http://labviewportal.eu/ru/softinterfejsy/dll

  29. foxit говорит:

    А проги для gps с помощью labview никто не делал?
    Как декодировать NMEA и TSIP?

  30. indey говорит:

    Здорово, что выбрали LabVIEW в качестве среды разработки! В контексте обсуждаемой тематики она вписывается как нельзя лучше.
    Ну а если будут вопросы, заходите, поможем:
    http://labviewportal.eu/index.php
    Кстати решения и проекты на LabVIEW можно выкладывать на обсуждение здесь:
    http://labviewportal.eu/viewforum.php?f=142
    в наиболее успешных проектах можно будет обсудить их коммерческую реализацию.

  31. treestene говорит:

    Error 85 occurred at Scan From String (arg 1) in Untitled 3.vi

    Possible reason(s):

    LabVIEW: Scan failed. The input string does not contain data in the expected format.

    как это победить ?

    • bomond говорит:

      Это означает что с порта ничего не прочитано. И функция Scan from string не выполняется. У меня такое было, когда с моей платы улетело питание, соответственно она ничего не отправляла по RS232. Убедитесь с помощью терминалки любой, что устройство отправляет инфу. Если все в норме, то проверьте еще скорости. Должны совпадать в программе и в настройках порта.

      • treestene говорит:

        Специально поставил окошко отображения инфы(String) с ком порта, информация валится и та которую задаю, скорости в норме. Для проверки вывожу в порт число каждую секунду. Не понял как бы преобразовывалось 10ти битное число в ЛАБе

        • labview говорит:

          Вопрос в том, в каком виде передаётся 10 битное число на ком-порт? Вообще то ком-порт обычно передаёт информацию побайтно, то есть по 8 бит.

          • treestene говорит:

            В том то и дело. Я так подумал, что 10битное число нужно передать за два раза (HI и LO) и не поняв как это дело преобразуется в ЛАБе решил попробовать с одного 8битного байта. И ни как не могу добиться выполнения без ошибки.

            • labview говорит:

              Я так понимаю протокол не ASCII (не текстовый), если да, то можно использовать Type Cast или Unflatten from String.

              • treestene говорит:

                Неполучается. Можно рабочий файл проэкта ?

                • bomond говорит:

                  А что у вас за устройство шлет информацию?

                  • treestene говорит:

                    Мега644 на макетке. Специально сейчас в КВАВРе визартом зделал установки УАРТа, чтоб вам показать.
                    // USART initialization
                    // Communication Parameters: 8 Data, 1 Stop, No Parity
                    // USART Receiver: Off
                    // USART Transmitter: On
                    // USART0 Mode: Asynchronous
                    // USART Baud Rate: 19200
                    UCSR0A=0×00;
                    UCSR0B=0×08;
                    UCSR0C=0×06;
                    UBRR0H=0×00;
                    UBRR0L=0×19;

                    выдаю раз в секунду число 0х41, в терминале читается нормально, в ЛАБе тоже читается и выводится на показыватель STRINGов(интересное выражение получилось) в правильном виде.
                    Я так понимаю что мне нужно в каком то другом виде посылать данные что бы СКАН ФРОМ СТРИНГ читал нормально ?

                    • bomond говорит:

                      Преобразовать в строку. Кстати, на графике его и в таком виде можно отобразить. Функция преобразования находится в палитре Conversions по моему.

                    • labview говорит:

                      Вот так должно преобразовываться:
                      http://dropmocks.com/mKdI8

                    • treestene говорит:

                      Скомпилил БАСКОМовский вариант — работает. Понял что от меня требовалось :)) Посылаю число(например число 232) строкой вида:
                      SendStr(«232\r\n»);
                      2labview спасибо, попробую.

                    • Aneg говорит:

                      SendStr(”232\r\n”);

                      Что означает \r\n ?

                      Я тоже не могу побороть: Error 85 occurred at Scan From String (arg 1) in Untitled 1.vi

                    • DI HALT говорит:

                      \r это вроде бы код возврата каретки. \n код перехода на новую строку

  32. malysh76 говорит:

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

  33. Gudd-Head говорит:

    Т.е. для того, чтобы перенести проект с одного компа на другой, на нём тоже должна быть установлена ЛабВью?
    Было бы интересней, если бы компилировался ЕХЕ-шник с возможностью работы как с самостоятельной программой =)))

    • bomond говорит:

      Чтобы запустить на другом компе нужно поставить NI RunTime Engine. Это чтото вроде майкрософтовской .NET Framework.

      По поводу запрос-ответ что вы имеете ввиду? Типа, программа отправляет инфу, контроллер ее принимает и каким то образом отвечает? Если это так, то все реализуется очень просто.

      • malysh76 говорит:

        да, именно так, что бы принимать и выводить различные данные

        • bomond говорит:

          Понятно, я могу попозже сделать примерчик. Сейчас просто нету LabView на компе, но вообще среди стандартных примеров, которые идут с LabView есть пример работы с RS232, там и чтение и запись сделаны. Вы можете подточить этот пример под себя, ну и софт для контроллера написать останется. Почти готовый софт есть тут на сайте. DiHalt в своих уроках по C приводил пример приема байта по RS232 и в зависимости от того какой байт пришел по моему светодиодами мигал. Вот вам практически готовое решение.

  34. marshallab говорит:

    Очень заинтереслвала тема — скачал, изучаю. С первого взгляда все быстро и красиво (внешне). Все для железа.

  35. foxit говорит:

    Привет.
    Для начала сделал вот такой проектик
    При приходе по COM порту единички (код 0х31) будем зажигать диодик, а при приходе нуля (код 0х30) гасить. Фоновой задачей будет мигание другого диода. Взят проект из http://easyelectronics.ru/avr-uchebnyj-kurs-programmirovanie-na-si-chast-1.html.

    http://filebox.od.ua/?file=a18338fe673defc8315b3a2d1d821e55

    p.s. Может есть смысл создать тему на форуме.

  36. PixRaider говорит:

    Хороший ликбез по возможностям LabVIEW.
    В статью хотелось бы еще добавить пару предложений/примеров по оборудования от NI на которое собственно LabVIEW и подвязывается, так сказать для широты представления.
    На первый взгляд реализовывать какую-либо систему мониторинга/управления на LabVIEW будет сплошным удовольствием: тут и быстрота, и дружелюбность.

    Сам на предприятии программирую управление контроллерами на C++/Qt.
    Плюсов тут конечно много, и гибкость, какая захочешь, и кроссплатформенность, что тоже немаловажно. Минус же длительной разработки компенсируется тем, что реализовав пару проектов потом просто слегка перерабатываешь уже известный код под другую задачу, да и библиотек связи по разным протоколам хватает.
    Слабое место тут конечно в представлении: нужный GUI писать, например тот же вывод графика — полный геморр, особенно если ты не высокоуровневый прогер, хотя в этом плане библиотеки тоже растут.
    В дельфи было все поудобнее, но там своих костылей море.

    • bomond говорит:

      Да, с родными платами и модулями от NI было бы вообще классно. Там есть такая штука, DAQ Assistant, очень удобно конфигурировать аппаратуру от NI, вот только стоит эта аппаратура негуманно для нас, радиолюбителей. Мне довольно часто приходилось делать софтины с графиками, в основном для лабораторных приборов. Так вот именно из-за гемора с их реализацией я разбираюсь LabView. На мой взгляд это очень мощная система, можно сделать все что угодно. Если надо код на C, например

      • PixRaider говорит:

        А можно ли налидить прием по UART, но в своем формате? Например, у меня от МК идут пакеты, в которых и служебная информация, и измерительная, и контрольные суммы — график мне необходимо строить только по измерительной, служебные данные тоже хорошо бы отображать где-либо, да еще и проверять пару байт контрольной суммы.

        • foxit говорит:

          Расскажите, что за система.
          Как организован протокол?
          Можно ли увидеть проект и его исходники?
          С помощью labview реализовать можно, только надо знать, что
          же необходимо сделать.

          • PixRaider говорит:

            На пальцах, система сбора информации с каналов(датчиков), каждый канал оцифровывает свой МК(пусть будет кМК) и передает информацию по UART в управляющий ведущий МК(вМК), а потому уже этот управляющий вМК пересылает пакет информации по RS-232(еще один UART) в компьютер(собственно это и есть момент возможного включения сюда labview).
            Управляющий пакет от компьютера состоит из 5 байт: 2б(признак начала) + 1б(команда)+1б(канал)+1б(контр.сумма)
            Инф.пакет от вМК из ~75 байт: 2б(признак начала) + 24б(служебная инф.) + 48б(результаты измерений) + 1б(контр.сумма)
            Исходники лежит на sourceforge, но это программа для компа, не думаю что вам есть резон в ней ковыряться.

  37. rafu63 говорит:

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

  38. UNiQuE говорит:

    Есть вопрос. Ситуация такая: по уарту (9600 бод) передаю пилу от 0 до 255. Раз в 1/64 секунды выдается 1 байт. Контроллер с этой прошивкой подключил через переходник на max232 к com порту, составил программу как у вас. Но в лабвью и терминале выдает не чистую пилу, вот скрин:
    http://img641.imageshack.us/i/36876833.jpg/
    Кто-нибудь знает почему так выходит?
    Контроллер работает от внутреннего источника импульсов на 1МГц

  39. UNiQuE говорит:

    Народ, подскажите, пожалуйста, в чем проблема. Я еще экспериментировал: замкнул RX на TX у контроллера, на выход uart подавал старший байт с ацп, а контроллер все это принимает и отображает на 3-х сегментном дисплее, все было норм. Потом я в схеме переходника у микрухи max232 замкнул rx на tx и отправлял данные через терминал. Все данные приходили без искажений. То есть по отдельности и переходник и контроллер работают нормально.
    Решил по другой схеме потестить еще…Я контроллер подключил через переходник к компу. контроллер все что получает выводит на индикатор и отсылает обратно. Потом в лабвью сделал программу, которая шлет пилу в ком порт и то что принимает выводит на график, график получился такой(схема прибора там же):
    http://img17.imageshack.us/i/75420623.jpg/
    красный — то что шлет лабвью, а белый то что приходит. странно что обратно не пришел ни один байт <128

  40. UNiQuE говорит:

    Разобрался в чем проблема. Видимо все дело было в нестабильности частоты, вообщем выставил в фузах 8МГц, заново пересчитал делитель для уарта и все запахало четко

  41. UNiQuE говорит:

    А вообще наверно лучше спец кварц поставить

  42. bomond говорит:

    Вот и чудненько! Вообще лучше вопросы по LabView задавать на форуме, там ветку сделали в разделе Наш софт. Просто оперативнее ответы будут.

  43. stvor говорит:

    Замечательная статья!
    Есть ли продолжение по этой тематике?

    • bomond говорит:

      Продолжения пока не нет, так как я не знаю о чем можно написать. Рекомендую посмотреть ветку про LabView на форуме в разделе Наш софт, там много уже интересного.

  44. eric говорит:

    Скачал LabView 2010 v1.10 Visa Всё понятно,но не могу понять как можно удалить элемент если ошибочно ввёл? Там в Хелпе только замена на что-то другое. Можно ли вращать элементы?

  45. Gordienko Victor говорит:

    Приходят последовательно значение с сом порта, нужно записать их в два массива х и у, например приходит 1,2,3,4,5,6
    для массива х нужно записать х=[1,3,5] для массива у=[2,4,6]. Вроде для этого есть встроеная функция Decimate 1D Array.
    Не могу подключить Decimate 1D Array к VISA Read Function ? Подскажите как можно пожалуйста.

  46. Si-Soft говорит:

    А как можно разделять данные. Например, если в начале строки x, то на один график, а если y, то на второй.

  47. Slavast говорит:

    Ребята! Я не нашел функции Scan from string из палитры String. Где ее найти?
    Помогите плиз!

  48. UNiQuE говорит:

    >Slavast
    Смотри лучше палитру Programming->String.

    >Si-Soft Тебе нужно это Programmgin->Structures->Case Structure. Работает как case в дельфи или как switch в с++

    >Gordienko Victor да она делит массив на части, но для начала надо заполнить массив значениями. Или юзай case структуру и заведи счетчик х. Если х нечетное, то вставляешь элемент в первый массив, иначе во второй.

  49. Piterfm8 говорит:

    можна написать програму про обратную ситуацию, тобто вивод даных на компорт

  50. Developer говорит:

    Что вы подавали с МК, какой формат посылки?

  51. basil говорит:

    LabView прекрасная вещь один недостаток, в винде без плат расширения просто через com порт невозможна обработка потоковых данных, такая же хрень с Proteusom — хотел сделать управление двигателем через com порт — и шиш но это как я понял свойство самой винды потому что она не реалтайм.

  52. Leonard_magnum говорит:

    Лично я пытался организовать двустороннюю передачу) Но пока что -то не выходит
    Только одностороняя
    Кстати кому интересна тема https://decibel.ni.com/content/groups/labview-interface-for-arduino

  53. Leonard_magnum говорит:

    Да и спасибо авторам за статью

    Я делал это с Arduino, а сейчас нашел Вышеупомянутую ссылку. Оказалось «все уже придумано за нас». В Labview уже есть библиотеки для Arduino, которые можно скачать и почувствовать облегчение (для новичка, как я :) )

  54. AleksanderG говорит:

    Для преобразования строки мы воспользуемся функцией Scan from string из палитры String
    Все делаю точно так как на картинке вход стринга — розовый, выход — оранжевый.
    Прога пишет ошибка во входном сигнале Scan from string. Разъясните пожалуста.

  55. John Warner говорит:

    Мужики, по данной в статье ссылке все сыылки на файлообменники сдохли, в начале статьи, а дальше сполшь спам.
    Где можно мурзилку скачать?
    И прогу, кстати, тоже, где можно скачать?

  56. vmalush говорит:

    Labviev 2011 оригинал с лекарством лежит здесь http://depositfiles.com/files/0u2s3dwvy драйвера можно скачать с ni.com

  57. folk_fox говорит:

    Кто-нибудь пробовал эту программу на LabView с PinBoard’ом..?
    На пинборде 1.1 по-умолчанию прошивка передаёт по значения потенциометра, подключённого к АЦП…
    В обычном терминале всё отображается… в лабвью — прямая линия…. Лабвью виртуальный компорт обнаружил и протестил саксессфул…
    Схема из основной статьи ругалась, мол тип данных не тот…
    Когда поставил Decimal String To Number Function по совету Leonard_magnum из комментов выше — ругаться перестал, но по-прежнему ничего не отображает…
    Параметры порта в лабвью сверил с параметрами из обычного терминала — всё сходится…
    Перед тем как подцеплять лабвью дисконектнуть терминал я не забыл….
    Если кто-нибудь юзал с пинбордом — поделитесь опытом, мож там ньюансы какие? Возможно в настройках Visa Serial на Block Diagram в лабвью надо что-то прописать или поставить..

  58. zolt говорит:

    Хорошая статья для новичков вроде меня, спасибо!
    По образу и подобию данной схемы я собрал свою. Принцип такой же — отправка результата 10-битного АЦП контроллера на экран, с отображение его на графике, но я пользовался функциями перебора массива, выделения старшего и младшего байт с последующей их склейкой, можно сказать, вручную :)
    Решив усложнить схему добавлением датчика освещённости, работающего одновременно с температурным датчиком, наткнулся на препятствие — не могу придумать как различать байты с информацией. Мне советовали ставить маркеры на каждый байт, но как это реализовать я не знаю.
    Интересно, а можно ли реализовать такую сортировку байт блок-диаграммами в ЛабВью?
    Может быть кто-то уже решал с подобную задачу. Нуждаюсь в дельном совете ;)

  59. Hi_im_Oleg говорит:

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

  60. Hi_im_Oleg говорит:

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

  61. CrazyFizik говорит:

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

  62. knik говорит:

    Спасибо за статью!
    При написании программы у меня возникли проблемы при конвертировании строковых данных из Read в формат «перевариваемый нашими измерительными приборами». При запуске появляется сообщение об ошибках:
    Error 1 occurred at Scan From String (arg 1) in ADCtest.vi

    Possible reason(s):

    LabVIEW: An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @. »
    В качестве передающего устройства использовал UART-USB FT232RL (http://easyelectronics.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspomogatelnogo-kontrollera.html)

    Прогмма Measurement&Automation видет и определяет устройство правильно.
    И еще, я хотел попросить файл с проектом, если это возможно. Спасибо)

  63. harut говорит:

    Большое спасибо за статью.

    Я хотел узнать об AVR устройстве который преобразует аналоговый сигнал в цифровой код, и отправляет на com порт.
    Где можно найти схему и прoшивку ?

    Спасибо Harut.

  64. lodger говорит:

    Доброго времени суток,….
    поставил качать данный программный пакет
    Думаю разбирать его по немногу…
    подскажите, здесь можно организовывать отправку данных в СОМ порт(для микроконтроллера) и по принятой информации из СОМ порта выполнять различные switch-case конструкции???

  65. Tidy говорит:

    Кто-нибудь может подсказать как построить не одно значение для графика, а два? То есть одновременно подавать значения на ось X и Y.

  66. alexei888 говорит:

    Здравствуйте bomond Очень нужна помощь Новичку (Я по специальности техник-мехайник немног далек от этого) по связи с USB-портом
    Есть программа Счетчика расхода жидкости. Принцип работы ее основан на перепаде давлений допустим устанавливаем Нижний придел давления 3кг/см Вкл клапана и 5кг/см Откл клапана Когда давление падает до 3кг/см Вкл клапан подает давление в сосуд(в этот момент програма подсчитывает+ Цена импульса и происходит счет) в 5кг/см клапан отключается
    Датчик давления автомобильный ММ370 я переделал его на напряжение до 5вольт для использования с работой на USB так как у меня на Ноутбуке нет КОМ-порта
    Заранее Вас благодарю с Уважением Алексей alexey_kushnir@mail.ru

  67. Mihail1987 говорит:

    а можно попросить о помощи? никак не могу программу Lab View. занимаюсь программированием с 2011 года. посмотрев эту статью мне понравилась эта программа а найти не могу как бесплатно скачать. у кого есть установочный фаил этой программы? заранее спасибо. мой майл: mihai-27.87@mail.ru

Добавить комментарий