2009-08-04 4 views
19

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

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

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

+0

Duplicate: http://stackoverflow.com/questions/226010/why-use-labview (и вроде этого тоже http://stackoverflow.com/questions/372557/what-specific-features-of-labview- разочаровывают вас) – gnovice

+3

Что вы на самом деле после этого - аргументы против LabVIEW, чтобы помочь вам построить против него дело? пытается передумать? или что? – nekomatic

+2

@nekomatic, ни. – Anzurio

ответ

25

Labview фантастичен, если у вас есть оборудование National Instruments, и вы хотите сделать что-то вроде приобретения, построения и регистрации данных.

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

На моем месте работы мы обнаружили, что нас раздражает необходимость создания массивных сложных ВП для взаимодействия с устройствами и начала их писать в .NET и связывать их с Labview.

В конце концов, мы закончили тем, что вместе со всеми рассмотрели LabView и использовали NI Measurement Studio для Visual Studio, чтобы предоставить нам все прекрасные NI-элементы управления (график осциллограммы, цистерна, датчики, переключатели и т. Д.) С гибкостью C#.

Таким образом, даже при наличии нескольких 24-дюймовых экранов иногда проводка для кода Labview может стать слишком сложной и становится невозможной для комментариев, отладки и расширения для любых будущих изменений. Предлагаю взглянуть на Measurement Studio для Visual Studio и использования вашего любимого языка .NET с красивыми элементами управления NI.

+8

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

+6

Я пробовал делать это несколькими способами Nekomatic, но действительно нет способа сделать набор событий, в котором он находится, и в нем есть несколько условий, чтобы выглядеть красиво. Большинство моих проблем приходят с сохранением «кода» Labview, сделанного учеными с небольшим опытом кодирования, чтобы выполнить свою работу (потому что именно так оно продается), и без заботы и внимания их проводка просто сходит с ума очень быстро! – Fuzz

+4

Если я понял вашу попытку объяснить, что вы пытаетесь сделать, я мог бы помочь. Я полностью согласен с вами в отношении неопытных программистов, создающих беспорядок - но это не значит, что LabVIEW не является хорошим инструментом для людей, которые хотят писать хороший код. – nekomatic

17

Мои два опыта с «графической альтернативой традиционным текстовым программированием» были ужасными. Я нахожу такие языки медленными в использовании, трудно редактировать и невыразительными. Отладка их - это кошмар. И они не дают никаких реальных преимуществ.

Уверен, прошло довольно много времени с тех пор, как я посмотрел на него, но мнения других, о которых я спрашивал, были только теплыми, поэтому я никогда не тратил время на просмотр. Причины повторного рассмотрения приветствуются и будут приняты на борту ...

+3

Я думаю, это честный и буквальный ответ на вопрос, но я не вижу, что он добавляет много споров о достоинствах LabVIEW. – nekomatic

+0

У меня нет опыта работы со старыми версиями LabVIEW, но в последних версиях очень легко отладить вашу систему (программное обеспечение/аппаратное обеспечение). –

6

Я думал, что LabVIEW был мечтой для программирования ПЛИС. Независимые исполняемые блоки просто ... работают. В общем, я использую LabVIEW для различных задач, взаимодействующих с оборудованием DAQ и FPGA, но об этом. Кажется (опять же мне), что это точка зрения LabVIEW и причина, по которой она была построена, но вне этой арены она кажется «громоздкой». Что касается проделанной работы, то это похоже на любой другой язык с кривой обучения - как только вы поймете это, это не так уж плохо для выполнения работы. Я видел, как несколько человек сдавались, прежде чем думать, что кривая обучения была постоянной или что-то еще.

Подняв 30" монитор сделал огромную разницу

Я знаю одно, что люди не любят это интеграция контроля версий

Edit:.. LabVIEW/аппаратное Хелла дорогим «только для весело»использование. Я упал $ 10K на своем оборудовании (цены студента) и получил программное обеспечение бесплатно от школы для изготовления игрушек по всему дому.

+2

«Аппаратное обеспечение - это« hella »дорого» AFAIK, что верно для всех достойных передач DAQ. – dmckee

0

Я сделать использовать LabView дома, так как это часть Lego Mindstorms, которую любит мой сын. И мне очень нравится, как создавать такие системы.

Однако в моей работе (встраиваемых системах) это обычно ограничивает. Но и здесь, я пытаюсь двигаться вверх в абстракции: - контроль и состояние поведение: дизайн модели на основе (т.е. Rhapsody) - алгоритмы передачи данных и т.д. Simulink

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

2

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

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

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

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

Я хотел бы использовать LabVIEW над Visual Studio для большинства проектов.

0

I используют LabVIEW в течение примерно двух лет для разработки автоматизации. Если мы должным вниманием и надлежащим дизайном, мы с уверенностью можем разработать поддерживающее и действительно хорошее приложение в LabVIEW. Я думаю, что это то же самое для всех других языков. плохой код в LabVIEW в первую очередь от людей, которые используют его только для разработки быстрой и грязной автоматизации работы. IMHO Графическое программирование намного проще кодировать и понимать, если это правильно сделано. Но это говорит о том, что текстовое программирование «чувствует» более мощное! LabVIEW в основном продается для промышленной автоматизации, имеет неотъемлемую поддержку множества аппаратных средств NI, и вы можете быстро работать с ним сторонними разработчиками. Я думаю, именно по этой причине вы видите это только в области автоматизации. Кроме того, это довольно дорого, и вы заблокированы NI, поскольку вы даже не можете открыть свой код, если вы не покупаете у них программное обеспечение!

6

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

Ton

2

Но люди используют LabView для целей, отличных сбора данных и виртуализации целей. Конечно, LabVIEW в основном используется в лабораториях и производственных средах, потому что это (или была) одной из основных целей клиента NI.

Однако вы можете делать много разных вещей с помощью LabVIEW, например, программировать робота, который будет выполнять много анализа изображений, а затем чирикать результаты. Посмотрите видео с NI Week 2009 на you-tube, и вы увидите, насколько мощный этот инструмент. Например, есть возможность написать код и развернуть его на ARM MCU (см. Это Dev Monkey article от 2009.08.10).

И, наконец, проверить это LabVIEW DIY group

+4

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

1

Я думал над этим вопросом в течение десятилетий (да, начиная с 1989 года ...)

Как и во всех языках программирования, LabVIEW является инструментом высокого уровня, используемый для манипулировать потоком электронов. Если вы не пурист и не хотите использовать ничего, кроме макета и проводов; транзисторы, интегральные схемы и языки программирования, вероятно, хорошо, если вы хотите что-то построить.

Но, как и все высокоуровневые инструменты, только один из них не делает вас профессиональным мастером. В тот же день, когда паяльники, операционные усилители и UART-устройства потребовали тщательного изучения, прежде чем вы сможете создать систему, которая фактически функционировала. Современная область текстовых языков настолько чересчур доминирует в синтаксисе, что программист должен получить ее прямо перед ее компиляцией и запуском. Чтобы написать код, который работает, программист должен повысить свой уровень мастерства, чтобы создать системы, намного превышающие «Hello World».

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

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

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

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

11

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

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

1) Он нестабилен и пронизан ошибками. Есть тысячи ошибок, которые были опубликованы на форумах поддержки labview, которые еще не исправлены. Некоторые из них довольно серьезны, например утечки памяти или математические ошибки в основных функциях.

2) Документация является жестокой. Чаще всего, когда вы ищете помощь с функцией labview в локальном файле справки, вы найдете предложение, которое просто повторяет имя элемента, который вы пытаетесь найти. например Пользователь просматривает файл справки по настройке режима фильтра текстуры, и единственное, что записано в файле справки, - «Режим фильтра текстуры» - выбирает режим, используемый для фильтрации текстур ». Благодарю. Это все исправляет, не так ли? Проблема в этом гораздо глубже; довольно часто, когда вы обращаетесь к техническому представителю из национальных инструментов с просьбой предоставить критические сведения о функциональности labview или конкретном поведении математических функций, они просто не знают, как работают функции в их собственной библиотеке. Это может показаться преувеличением, но поверьте мне, это не так.

3) Хотя это не невозможно, чтобы графический код был чистым и хорошо документированным, Labview призван сделать эти задачи трудными и неэффективными. Чтобы ваш код не становился запутанным, путаным беспорядком, вы должны регулярно (каждые несколько операций) использовать такие структуры, как кластеры, а также элементы подтипа и гигантского типа (которые могут растягиваться на нескольких экранах в большом проекте). Эти структуры питают память и разрушают производительность, заставляя labview делать несколько копий данных в памяти и выполнять бесплатные операции - все это ради того, чтобы графическая диаграмма выглядела как радужные спагетти без комментариев или текста в любом месте. Программирование в лабвью - это похоже на игру с дьяволом. Представьте, что ваш гигантский программный проект написан как блок-схема с размером стены без каких-либо слов. Теперь представьте, что все линии пересекают друг друга тысячу раз, так что отслеживание потока данных совершенно невозможно. Вы только что представили наиболее естественный и эффективный способ программирования в лабораторных условиях.

Labview - это круто. Labview улучшается с каждым новым выпуском. Если National Instruments продолжит совершенствовать его, это будет здорово в один прекрасный день в качестве общего языка программирования. В настоящий момент это очень плохой выбор в качестве платформы разработки программного обеспечения для крупных или логически сложных проектов.

+0

1) Стабильность значительно улучшилась с тех пор, как LabVIEW 2011 – CharlesB

+0

2) полностью не согласен с документацией, есть тонны ресурсов и помощь форума – CharlesB

+0

3) согласны в определенной степени; многие люди внесли свой вклад в разработку шаблонов для крупных приложений, а тщательно разработанная иерархия объектов может помочь сохранить сложность относительно низкой. – CharlesB

0

Я использовал LabView около 10 лет. Это замечательно для Scientific prorgamming, т. Е. Как Matlab или Simulink, но в 10 раз лучше. Если у вас проблемы, вы делаете что-то неправильно. Требуется время, чтобы учиться, как на любом языке. Что касается использования .Net вместо этого - эти люди даже на одной планете? Зачем вам приходить в голову писать evething с нуля, когда вы можете сказать, подтянуть БПФ и т. Д. И использовать написанный на почве код. .NET отлично подходит для простых программ, но не очень хорош для научной обработки. да, вы можете это сделать, но не без кучей надстроек для графики и т. д. Prorgamming в G намного проще, чем текст, основанный на научных проблемах. Конечно, вы можете программировать на c, если вы взаимодействуете и используете dll. Теперь есть вещи, которые я бы не использовал для LabView for - распознавание речи, например, в настоящее время могут быть немного грязными. Более того, почему люди любят программирование в устаревшей текстовой форме, когда есть легкая альтернатива. Как будто люди хотят усложнить ситуацию, чтобы каким-то образом оправдать свою работу. Упростить Упрощение!

+2

Хорошие очки. Дело, которое вы делаете, - это тот же случай, который разработчики .NET делают разработчикам на C++.Зачем усложнять ситуацию, пишите их с нуля, когда для вас сделано так много вещей, как события, сбор мусора, генерация кода и т. Д. Тем не менее, мы все должны помнить, что иногда вам действительно нужен этот низкоуровневый жесткий доступ под обложками. –

0

Кто-то сказал, что LabView подано в суд только в поле «Автоматизация». Просто не пишите вообще. Он имеет приложения в цифровой обработке сигналов, системах управления, связи, веб-сайтах, математике, обработке изображений и т. Д. Он начался как метод сбора данных, и они придумали имя Virtual Instrumentation, но оно далеко вышло за рамки этого. Это научный язык программирования со вторым графическим интерфейсом.Это далеко за пределами Simulink, и если вам нравится Matlab, то у него есть тип скриптов Matlab, встроенный для тех, кто любит такие способы программирования. Он постоянно развивается. Единственное, что мне показалось сложным, - написать код для Compact Rio, но это намного проще, чем альтернатива. Это дорого, но вы получаете качественный продукт. Я лично не обнаружил ошибок в обычном программировании. Это язык инженеров, но любой может использовать его для программирования.

9

Я ** писал в LabVIEW уже почти 20 лет. Я разрабатываю автоматизированные тестовые системы. Я разработал, RF, Vison, высокоскоростные цифровые и многие различные варианты систем тестирования смешанных сигналов. Я был программистом «С», прежде чем переключиться на LabVIEW.

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

В один прекрасный день NIWEEK будет проводить перестрелку с программным обеспечением каждый год. Программистам LabVIEW и LabWINDOWS (NI версии «C») будет дана одна и та же проблема, и у вас будет гонка, чтобы посмотреть, какая группа закончила в первую очередь. Каждый год все программисты LabVIEW выполнялись до того, как закончил 1-го пользователя LabWINDOW. Я поставил под сомнение многие из моих посвященных текстовых друзей по программированию для перестрелок, и все они признают, что у них нет шансов, даже если я позволю им определить проблему с программным обеспечением.

Итак, я считаю, что LabVIEW - отличный инструмент для программирования. Это определенно способ пойти, если вы взаимодействуете с любым типом оборудования NI. Это не ответ на все, но я уверен, что многие люди не используют его только потому, что не считают LabVIEW «настоящим языком программирования». В конце концов, мы просто соединяем кучу блоков вместе? Мне действительно смешно, сколько программистов на основе текста оскорбляют там носы, так как они так гордятся беспорядком созданного ими текстового кода, что только они могут понять. Хороший программист на любом языке должен написать код, который другие могут легко прочитать. Написание слишком сложного кода, который невозможно выполнить, не делает программиста гениальным. Это означает, что программист является «комплиментатором» (кто-то может решить простую проблему и усложнить его). Я верю в принцип KISS (ХРАНИТЕ ЕГО ПРОСТОЙ СТУПИД).

Во всяком случае, есть мои два цента стоит! **

+1

Как вы делаете обзор кода? Программирование - это не только то, как быстро он может быть написан, но и как он взаимодействует с большим корпусом кода и насколько другие могут использовать и расширять то, что вы сделали. – EngrStudent

3

я впервые начал использовать Labview в лаборатории физики колледжа. Первоначально я думал, что это медленный и громоздкий по сравнению с другими текстовыми языками. Слишком сложно создавать сложную логику, и код стал неряшливым реальным быстрым (провода повсюду).

Затем, несколько лет спустя, я узнал об использовании суб-vi и пучков. Какая разница! На данный момент я использовал labview для очень высоких функций. Я принимал исходные данные от камеры, используя все виды фильтров и обработки изображений, чтобы в конечном счете разобрать линии на дороге, чтобы автомобиль мог проехать по этой дороге без водителя - это было для ПРОБЛЕМЫ DARPA URBAN. Я также создавал карты из текстовых путевых точек, создавал функции синтаксического анализа на высоком уровне и множество других приложений, которые не имели никакого отношения к обработке данных с устройств ввода. Это было действительно весело. и FAST.

После окончания колледжа я вернусь к использованию текстовых языков. Я использую: PHP, Javascript, VBA, C#, VBscript, VB.net, Matlab, Epson RC +, Codeigniter, различные API, и я уверен, что некоторые другие. Я часто очень расстраиваюсь в количестве синтаксиса, который я должен запомнить, чтобы запрограммировать любую значительную скорость. Мне нахожу, что мне нужно переключать школы мысли на основе языка, который я использую ... когда все языки программирования по существу делают то же самое! Мне нужен второй монитор, чтобы всегда помогать, поэтому я могу найти синтаксис для тех же функций на разных языках. Я очень скучаю по Labview, слишком жаль, что это так дорого, иначе я бы использовал его для всего.

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

 Смежные вопросы

  • Нет связанных вопросов^_^