Pregunta

Estoy aprendiendo a usar LabVIEW como parte de mi proyecto de honores, y me preguntaba qué beneficios tiene el lenguaje de programación gráfica sobre uno textual.

¿Fue útil?

Solución

Se trata de los controladores de los equipos y las capacidades del usuario. NI (Labview) tiene un conjunto bien soportado de controladores de equipos de laboratorio que se interconectan fácilmente. Un operador de prueba (no un desarrollador) necesita una interfaz gráfica de usuario con un gran botón verde para pasar / fallar. He implementado una automatización complicada a través de python en cygwin. Un desarrollador de Labview pudo invocar el sistema cygwin / python y extraer datos de los archivos de registro. Así que puedes hacer ambas cosas. El sistema Python es portátil, fácil de mantener, extensible, utilizable y, lo mejor de todo, gratis.

Otros consejos

Para mí, el beneficio de LabVIEW no está en el gráfico ni en el textual.

Es flujo de datos vs. imperativo.

Programación de flujo de datos se presta a la concurrencia, porque su ejecución se modela como cajas negras que se ejecutan cuando sus entradas son válidas, cuyas entradas / salidas están conectadas entre sí. Esto a diferencia del estado implícito con una lista de instrucciones sobre cómo modificarlo. (Parafraseando libremente 'kipedia, el artículo vinculado arriba es mejor.)

Cada caja negra puede ejecutarse en un núcleo / procesador / nodo separado, lo que le brinda, de manera efectiva, una concurrencia gratuita si organiza su programa a la manera del flujo de datos.

Desafortunadamente (y esto es un inconveniente paralizante de la programación de flujo de datos en general) la mejor manera de visualizar y editar programas de flujo de datos es de manera gráfica, no textual. Esto hace que el uso de herramientas como el control de revisiones y los generadores de código sea muy difícil.

La pregunta es: ¿las ventajas del flujo de datos superan los inconvenientes, para usted y su proyecto?

Una de las principales ventajas de la programación gráfica con LabVIEW es que el código fuente es muy similar a los diagramas de circuitos, por lo que es un lenguaje muy fácil de aprender para los ingenieros eléctricos / electrónicos. Esta es una de las razones por las que LabVIEW se ha vuelto tan popular en los campos de adquisición de datos y automatización, donde los EE son abundantes.

Otra ventaja que encontré fue la velocidad bruta del desarrollo. Ensambla sus GUI desde una paleta de controles disponibles en el panel frontal, muy similar a cómo lo hace en Visual Studio. El código fuente está escrito de manera similar, con muchos componentes predefinidos que puede colocar desde los menús y conectar juntos.

Una tercera ventaja es la compatibilidad con hardware. El negocio principal de National Instruments es el hardware de adquisición de datos, y hacen todo lo posible para asegurarse de que todos sus productos puedan comunicarse con el software LabVIEW de manera inmediata. Muchos otros proveedores de hardware en la industria de control de automatización y adquisición de datos están haciendo lo mismo.

He usado Labview antes para calcular parámetros para sintonizar una máquina nMRI. Existen porque en teoría es más fácil para alguien con poca experiencia en lenguaje de programación crear un programa. El flujo de control y las estructuras de decisión se pueden organizar gráficamente y pueden escribir sus fórmulas donde lo deseen.

Para profesores y asistentes de laboratorio ... útil. Para los desarrolladores de software reales ... sería más fácil escribir en otro idioma.

He usado LabView en el pasado, y para la adquisición de datos, instrumentación virtual, etc., no hay nada mejor. La última vez que lo usé fue hace 10 años, y nada de lo que he visto desde entonces ha coincidido con el nivel que tenía a mediados de los 90.

Algunas de las ventajas de LabVIEW en mi opinión son:

  • Los componentes de la interfaz de usuario incorporados, como botones, gráficos, etc., literalmente no requieren programación alguna; simplemente colóquelos en el panel frontal y los terminales de datos aparecen en el diagrama de bloques.

  • Hay una gran biblioteca de controladores para hardware de adquisición de datos e instrumentos de prueba. Si su tarea consiste básicamente en obtener datos de estos y en colocarlos en una interfaz de usuario, puede lograrlos casi sin programación.

  • La ejecución paralela de múltiples tareas se maneja automáticamente: coloque dos bucles independientes en el diagrama y se ejecutarán simultáneamente. Esto suele ser un requisito en las aplicaciones de control y adquisición de datos.

Muchas personas, incluidos los "desarrolladores de software reales", sienten que el paradigma gráfico se adapta a la forma en que piensan y visualizan su software mejor que el textual. Indudablemente hay cosas para las que los lenguajes de texto son mejores que LabVIEW (cubierto en otra discusión en este sitio), pero donde LabVIEW es adecuado, es muy bueno para hacer el trabajo.

Para mí, todo se reduce a lo que usted se siente cómodo, si se siente cómodo en los idiomas basados ??en texto, probablemente encontrará que Labview solo introduce otra curva de aprendizaje. A menos que tenga un objetivo específico para aprender y usar Labview, no veo ningún punto para su proyecto.

Por otra parte, si no se siente especialmente cómodo en los idiomas basados ??en texto, tiendo a opinar que Labview es más fácil de aprender y aprender, especialmente para los ingenieros que no son de software.

Uso lenguajes basados ??en texto para la ingeniería de pruebas, así como Labview y TestStand con bastante frecuencia, y para mí es más sobre quién más usará mi software que sobre mí. Algunas compañías tienen varias personas capacitadas en Labview y otras prefieren escribir en lenguajes basados ??en texto. La capacitación para otro idioma puede ser muy costosa en una escala de la empresa y cambia los requisitos de contratación para los puestos dentro de una empresa, por lo que algunas empresas están prácticamente "limitadas" a un paradigma u otro. Yo diría que lo mejor que puede hacer si tiene la intención de trabajar en la industria es ser versado en ambos, de esa manera usted es flexible. Si ese es el caso y usted tiene tiempo para aprender, yo diría que trabaje en el que le resulte menos cómodo y amplíe su conocimiento, ¿para eso está la escuela?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top