Почему люди не используют LabVIEW для других целей, кроме сбора данных и виртуализации?
Это помечено как субъективный вопрос, я надеюсь, что я не получу слишком много отрицательных голосов, хотя.
LV, кажется, предлагает хорошую графическую альтернативу традиционному текстовому программированию. Как я понимаю, это не просто язык программирования виртуализации / сбора данных. Тем не менее, похоже, что эта парадигма привязана к имени ее создателя.
У меня возникает вопрос, потому что он, кажется, не используется широко для многоцелевых приложений. Я не специалист по LV, я больше похож на ученика. Я все еще привыкаю к LV.
14 ответов
Labview - это замечательно, если у вас есть оборудование National Instruments, и вы хотите что-то вроде сбора, печати и регистрации данных.
Когда вы начинаете взаимодействие с пользовательскими устройствами, разводка между модулями усложняется тем, что приходится выполнять всю работу по манипуляции со строками для ввода и вывода на устройство.
На моем рабочем месте мы обнаружили, что нас раздражает необходимость создавать массивные и сложные ВП для взаимодействия с устройствами, и мы начали писать их в.NET и связывать их с Labview.
В конце концов мы все вместе удалили Labview и использовали NI Measurement Studio для Visual Studio, чтобы предоставить нам все красивые элементы управления NI (график формы, резервуар, датчики, переключатели и т. Д.) С гибкостью C#.
Таким образом, даже с парой 24-дюймовых экранов иногда разводка для кода Labview может быть слишком сложной и становится невозможной для комментариев, отладки и расширения для любых будущих изменений. Я предлагаю взглянуть на Measurement Studio for Visual Studio и используя ваш любимый язык.NET с симпатичными элементами управления NI.
Мои два опыта работы с "графической альтернативой [s] традиционному текстовому программированию" были ужасны. Я считаю такие языки медленными в использовании, сложными для редактирования и невыразительными. Отладка их - это кошмар. И они не дают никаких реальных преимуществ.
Конечно, прошло довольно много времени с тех пор, как я смотрел на них, но мнения других, которые я спрашивал о них, были только теплыми, поэтому я никогда не удосужился взглянуть снова. Причины, чтобы посмотреть снова приветствуются и будут приняты на борт...
Labview можно использовать для создания больших и сложных программных проектов. Labview, несомненно, гораздо интереснее в использовании, чем язык на основе синтаксиса. Я запрограммировал математически плотные, динамические симуляции с использованием labview. Новые версии Labview включают множество интересных функций, особенно для использования нескольких процессоров. Мне очень нравится Labview. Но я не рекомендую это никому.
К сожалению, это абсолютный кошмар для всего, кроме простого захвата и отображения. Однажды он может быть достаточно развит, чтобы считаться жизнеспособной альтернативой текстовым языкам. Тем не менее, разработчики из NI постоянно предпочитают игнорировать три фундаментальные проблемы, которые мешают работе лаборатории.
1) Он нестабилен и изобилует ошибками. На форумах поддержки labview опубликованы тысячи ошибок, которые еще предстоит исправить. Некоторые из них довольно серьезные, такие как утечки памяти или математические ошибки в основных функциях.
2) Документация зверская. Чаще всего, когда вы ищете справку по функции labview в локальном файле справки, вы обнаруживаете предложение, которое просто повторяет название элемента, в котором вы пытаетесь найти некоторые детали. Например, пользователь ищет файл справки в настройках режима фильтра текстур, и единственное, что записано в файле справки, это "Режим текстурного фильтра - выбирает режим, используемый для фильтрации текстур". Ну и дела, спасибо. Это все проясняет, не так ли? Проблема гораздо глубже в этом; довольно часто, когда вы просите технического представителя из национальных инструментов предоставить критически важную информацию о функциональных возможностях лабораторного обзора или конкретном поведении математических функций, они просто не знают, как работают функции в их собственной библиотеке. Это может звучать как преувеличение, но поверьте мне, это не так.
3) Хотя поддерживать графический код в чистоте и хорошо документировать невозможно, Labview разработан для того, чтобы сделать эти задачи сложными и неэффективными. Чтобы ваш код не превратился в запутанный, запутанный беспорядок, вы должны регулярно (каждые несколько операций) использовать такие структуры, как кластеры, а также элементы управления, определяемые подвидом и гигантским типом (которые могут занимать несколько экранов в большом проекте). Эти структуры пожирают память и снижают производительность, вынуждая labview делать несколько копий данных в памяти и выполнять необязательные операции - все для того, чтобы графическая диаграмма не выглядела как спагетти радужного цвета без каких-либо комментариев или текста в поле зрения. Программирование в labview похоже на игру в pictionary с дьяволом. Представьте себе ваш гигантский программный проект, написанный в виде настенной блок-схемы без слов вообще. Теперь представьте, что все линии пересекаются друг с другом тысячу раз, так что отслеживание потока данных совершенно невозможно. Вы только что представили наиболее естественный и эффективный способ программирования в labview.
Labview это круто. Labview становится лучше с каждым новым выпуском. Если National Instruments продолжит улучшать его, это будет замечательно в один прекрасный день в качестве общего языка программирования. В настоящее время это крайне плохой выбор в качестве платформы разработки программного обеспечения для крупных или логически сложных проектов.
Я ** пишу в LabVIEW уже почти 20 лет. Я разрабатываю автоматизированные тестовые системы. Я разработал RF, Vison, высокоскоростные цифровые и много разных систем тестирования смешанных сигналов. Я был программистом на C, прежде чем переключился на LabVIEW.
Это правда, что вы можете быстро создавать некоторые программы в LabVIEW, но, как и на любом другом языке, требуется много усилий, чтобы научиться создавать большие приложения, которые легко поддерживать с помощью кода многократного использования. За 20 лет у меня никогда не было ошибок LabVIEW, которые мешали мне закончить проект.
В свое время NIWEEK будет проводить перестрелки с программным обеспечением каждый год. Программистам LabVIEW и LabWINDOWS (версия "C" от NI) будет поставлена одна и та же проблема, и они поспешат посмотреть, какая группа финишировала первой. Каждый год все программисты LabVIEW были заняты задолго до того, как закончил 1-й сотрудник LabWINDOW. Я бросил вызов многим из моих преданных друзей в области текстового программирования в перестрелках, и все они признают, что у них нет шансов, даже если я позволю им определить проблему с программным обеспечением.
Поэтому я чувствую, что LabVIEW - отличный инструмент программирования. Это определенно способ, если вы взаимодействуете с любым типом оборудования NI. Это не ответ на все вопросы, но я уверен, что многие люди не используют его только потому, что не считают LabVIEW "настоящим языком программирования". В конце концов, мы просто соединяем вместе кучу блоков, верно? Мне действительно смешно, что многие текстовые программисты пренебрегают этим, поскольку они настолько гордятся созданным ими беспорядком текстового кода, что только они могут понять. Хороший программист на любом языке должен писать код, который другие могут легко прочитать. Написание слишком сложного кода, которому невозможно следовать, не делает программиста гением. Это означает, что программист является "компилятором" (человеком, который может взять простую задачу и усложнить ее). Я верю в принцип KISS (ДЕРЖИТЕ ЭТО ПРОСТО ГЛУПОЙ).
Во всяком случае, стоит мои два цента!**
Я думал, что LabVIEW - это мечта для программирования на ПЛИС. Независимые исполняемые блоки просто... работают. В общем, я использую LabVIEW для различных задач, взаимодействующих с моим оборудованием DAQ и FPGA, но это все. Мне кажется (снова мне), что это сильная сторона LabVIEW и причина, по которой он был построен, но за пределами этой арены он чувствует себя "громоздким". Что касается выполнения задач, это похоже на любой другой язык с кривой обучения - как только вы поймете это, это не так уж плохо для выполнения работы. Я видел, как несколько человек сдавались до этого, думая, что кривая обучения была постоянной или что-то вроде
Подъем 30"монитора имел огромное значение.
Я знаю одну вещь, которая не нравится людям, это интеграция контроля версий.
Изменить: LabVIEW/ аппаратное обеспечение дорого для использования "просто для удовольствия". Я потратил 10 тысяч долларов на их оборудование (цены для студентов) и бесплатно получил в школе программное обеспечение для изготовления игрушек по дому.
Наша компания использует LabVIEW в течение последних 10 лет для измерения, мониторинга и отчетности по нашему предмету (поездам).
Недавно мы начали использовать LabVIEW в качестве графического интерфейса для баз данных с большим количеством данных. Мощности LabVIEW с недавними новыми функциями (Classes, XControls) позволяют использовать такие графические интерфейсы для снижения затрат на разработку на других платформах. Пока нам не нужны сторонние программисты на уровне консультирования.
тонна
Я впервые начал использовать Labview в лаборатории физики в колледже. Сначала я думал, что это медленно и громоздко по сравнению с другими текстовыми языками. Было слишком сложно создавать сложную логику, и код становился очень неаккуратным (провода повсюду).
Затем, несколько лет спустя, я узнал об использовании sub-vi и пакетов. Какая разница! В этот момент я использовал labview для функций очень высокого уровня. Я брал исходные данные с камеры, используя всевозможные фильтры и обработку изображений, чтобы в конечном итоге разобрать линии на дороге, чтобы транспортное средство могло вести себя по этой дороге без водителя - это было для DARPA URBAN CHALLENGE. Я также генерировал карты из текстовых данных о путевых точках, выполнял высокоуровневые функции синтаксического анализа и множество других приложений, которые не имели ничего общего с обработкой данных с устройств ввода. Это было действительно очень весело. и БЫСТРО.
После окончания колледжа я снова использую текстовые языки. Я использую: PHP, Javascript, VBA, C#, VBscript, VB.net, Matlab, Epson RC+, Codeigniter, различные API, и я уверен, что некоторые другие. Я часто очень расстраиваюсь из-за количества синтаксиса, который мне приходится запоминать, чтобы программировать с любой значительной скоростью. Меня раздражает необходимость переключаться между школами мысли на основе языка, который я использую... когда все языки программирования по сути делают одно и то же! Мне нужен второй монитор, чтобы постоянно помогать, чтобы я мог найти синтаксис для одних и тех же функций на разных языках. Я очень скучаю по Labview, это очень плохо, это так дорого, иначе я бы использовал это для всего.
Графическое программирование, я думаю, имеет огромный потенциал. Не ограничиваясь синтаксисом, вы можете сосредоточиться на логике, а не на коде. Сам Labview, возможно, все еще находится в зачаточном состоянии с точки зрения поддержки и отладки, но я считаю, что концептуально он побеждает конкурентов. Это просто более интуитивный способ программирования.
Но люди используют LabView для других целей, чем сбор данных и виртуализация. Конечно, LabVIEW в основном используется в лабораториях и производственных средах, потому что он является (или был) одной из основных целей NI для клиентов.
Однако вы можете делать много разных вещей с LabVIEW, например, программировать робота, который будет выполнять большой анализ изображений, а затем сообщать в Твиттере результаты. Посмотрите видео с NI Week 2009 на you-tube, и вы увидите, насколько мощным является этот инструмент. Например, есть возможность написать код и развернуть его на микроконтроллерах ARM (см. Эту статью Dev Monkey от 2009.08.10).
И, наконец, проверьте эту группу LabVIEW DIY
Мы используем LabVIEW для запуска нашего испытательного оборудования, и оно идеально подходит для сбора и контроля данных. Обычно измерение от 15 до 80 дифференциальных напряжений и управление камерами окружающей среды, контроллерами массового расхода и различными последовательными устройствами LabVIEW более чем способно.
Взаимодействие с пользовательскими устройствами может быть значительно упрощено с помощью мастера драйвера инструмента NI для создания многократно используемых ВП, при необходимости взаимодействуя с пользовательскими библиотеками DLL. В ряде проектов мы создали такие драйверы для нестандартного оборудования, и после их создания они могут использоваться в будущих проектах без изменений.
Используя управляемые событиями структуры, пользовательские интерфейсы отзывчивы, и мы регулярно используем приложения LabVIEW для взаимодействия с базой данных.
Независимо от среды программирования, которую вы выбираете, наиболее важным является процесс разработки приложения. Я согласен, что вы можете создавать некоторые действительно ужасные и нечитаемые блок-схемы в LabVIEW, но затем вы также можете создавать нечитаемый код в Visual studio. Немного подумав и спланировав блок-схему LabVIEW, можно разместить ее на одном 24-дюймовом мониторе с достаточным пространством для добавления комментариев.
Я бы использовал LabVIEW поверх Visual Studio для большинства проектов.
Я использую LabVIEW около двух лет для разработки автоматизации. Если нам уделить должное внимание и правильно спроектировать, мы, несомненно, сможем разработать в LabVIEW поддерживаемое и действительно хорошо выглядящее приложение. Я видел столь же плохой код в LabVIEW прежде всего от людей, которые используют его только для разработки быстрой и грязной автоматизации работы. ИМХО Графическое программирование намного проще в кодировании и понимании, если все сделано правильно. Но, тем не менее, я чувствую, что текстовое программирование кажется более мощным! LabVIEW в первую очередь продается для промышленной автоматизации, имеет встроенную поддержку большого количества оборудования NI, и вы можете довольно быстро подключить стороннее оборудование. Я думаю, что по этой причине вы видите это только в области автоматизации. Более того, это довольно дорого, и вы заблокированы NI, поскольку вы даже не можете открыть свой код, если не покупаете у них программное обеспечение!
Я думал об этом вопросе десятилетиями (да, с 1989 года...)
Как и все языки программирования, LabVIEW - это инструмент высокого уровня, используемый для управления потоком электронов. Если вы не пурист и не отказываетесь от использования чего-либо, кроме макета и проводов; транзисторы, интегральные схемы и языки программирования - это, пожалуй, хорошая вещь, если вы хотите что-то построить.
Но, как и все высокоуровневые инструменты, просто владение им не делает вас профессиональным мастером. Еще во времена паяльников, операционных усилителей и UART требовалось тщательное изучение, прежде чем вы смогли создать систему, которая действительно работала бы. Современная сфера текстовых языков настолько сильно доминирует синтаксис, что программист должен понять его прямо перед тем, как он скомпилируется и запустится. Чтобы написать работающий код, программист должен повысить уровень своего мастерства, чтобы создавать системы, намного превышающие "Hello World".
В LabVIEW доминирует не синтаксис, а поток данных. Когда-то работа над шаблоном блок-схемы и разработка хорошо сбалансированной информационной системы были частью искусства и красоты. Только после того, как у вас будет в наличии проверенная блок-схема, вы сможете даже подумать о том, чтобы проделать тяжелую работу по созданию кода. (да... перфокарты)
LabVIEW - это система разработки, которая позволяет программисту использовать инструменты построения диаграмм потоков для составления схемы всей информационной системы и нажатия "запустить"..... LabVIEW "выберет код" и скомпилирует его для вас. Не нужно бороться с синтаксисом текстового языка A или языка B.
С помощью такого мощного инструмента новички могут быстро создавать большие работающие программы, что подразумевает определенный уровень профессионального мастерства, поскольку он работает вообще. Однако, если система не работает элегантно, или диаграмма исходного кода является беспорядком, это не ошибка LabVIEW.
Люди часто говорят: "LabVIEW хорош только для разработки больших систем сбора данных". Возможно, эти люди должны учитывать профессионализм ученых и инженеров, которые работают в области сбора данных. Если они знают достаточно, чтобы правильно подобрать фактические провода для датчиков и преобразователей, возможно, стоит поспорить, что они также являются экспертами в разработке схем соединений LabVIEW.
Кто-то сказал, что LabView используется только в области автоматизации. Просто не пиши вообще. Он имеет приложения в области цифровой обработки сигналов, систем управления, связи, веб-технологий, математики, обработки изображений и так далее. Это началось как метод сбора данных, и они изобрели название Virtual Instrumentation, но теперь оно вышло далеко за рамки этого. Это научный язык программирования с непревзойденным графическим интерфейсом. Это намного больше, чем Simulink, и если вам нравится Matlab, то в него встроен тип сценариев Matlab для тех, кто любит такие способы программирования. Он постоянно развивается. Единственное, что я нашел трудным, - это написать код для Compact Rio - хитро, но гораздо проще, чем альтернатива. Это дорого, но вы получаете качественный продукт. Я лично не нашел никаких ошибок в обычном программировании. Это язык инженеров, но любой может использовать его для программирования.
Я использую LabView дома, так как это часть Lego Mindstorms, которую любит мой сын. И мне очень нравится способ составления подобных систем.
Тем не менее, в моей работе (встроенные системы) это, как правило, ограничительное. Но и здесь я пытаюсь двигаться вверх по абстракции: - управление и поведение состояний: модельно-ориентированное проектирование (т. Е. Rhapsody) - алгоритмы данных и т. Д. Simulink
Иногда графическая модель может потребовать больше кликов, чем кусок кода. Но это также включает в себя работу, которую хороший программист должен выполнить в области дизайна и документации; не только ввод кода. Графическая система обозначений избавляет от многих неприятностей и, как правило, работает намного быстрее, если инструмент достаточно мощный для обеспечения сложности. Поэтому я ожидаю, что подобные инструменты станут более популярными в ближайшие годы, когда они повзрослеют, и люди знакомятся с ними.
Я использовал LabView в течение 10 лет. Это великолепно для научного проргаминга, например, Matlab или Simulink, но в 10 раз лучше. Если у вас есть проблемы, значит, вы делаете что-то не так. Требуется время, чтобы выучить как любой язык. Что касается использования.Net вместо этого - эти люди даже на той же планете? Зачем вам писать все с нуля, когда вы можете сказать, что вы можете использовать FFT и т. Д. И использовать уже написанный код?.NET хорош для простых программ, но не так хорош для научной обработки. да, вы можете сделать это, но не без множества дополнений для графики и т. д. Проговорить в G гораздо проще, чем текст, основанный на научных задачах. Конечно, вы можете программировать на c, если вы взаимодействуете и используете dll. Теперь есть вещи, которые я бы не использовал для LabView - например, распознавание речи может быть немного запутанным. Более того, почему людям нравится программировать в устаревшей текстовой форме, когда есть легкая альтернатива. Как будто люди хотят усложнить ситуацию, чтобы как-то оправдать свою работу. Упростить Упростить!