Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Crear subbloques de código

Buenos días,

 

¿Hay alguna manera de crear subbloques de código al modo de funciones con entradas y salidas para poder simplificar el diagrama de flujo?.

Una solución posible es crear un subvi, pero aparte de que requiere tener ficheros independientes dicho subvi genera su propio front panel. Sé que este front panel se puede incrustar en otro mediante un control panel, pero complica más aún las cosas y además, y más importante, no sé cómo poder utilizar las conexiones de entrada/salida propias de ese nuevo subvi.

 

Gracias.

0 kudos
Mensaje 1 de 7
3.951 Vistas

Hola,

 

        Los sub-bloques que te refieres son exactamente los subVI, un subVI es otro VI al que en el front panel donde esta el icono le marcas unas entradas (controles) y salidas (indicadores), a pesar de tener un front panel este no se tiene que mostrar necesariamente al ser llamado, que lo puedes ajustar segun tu conveniencia en las propiedades del subVI.

 

         Para agregar tu subVI lo puedes arrestrar desde el proyecto o el explorador de windows hasta tu diagrama de bloques.

 

         Aquí te dejo esto Tutorial: SubVIs para que te guies un poco.

 

        Cualquier duda o inquietud no dejes de preguntar.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 2 de 7
3.942 Vistas

Ante todo gracias por la respuesta.

 

El problema es que quiero que el front panel del SubVI si que se muestre pero insertado en un contenedor, no en una ventana diferente. Y es al intentar utilizar el control Subpanel cuando no encuentro la forma de utilizar las entradas y salidas como si fuera un subvi normal y corriente con front panel oculto.

 

Perdona si tardo un poco en contestar estos dias, estaré menos conectado de lo normal.

0 kudos
Mensaje 3 de 7
3.935 Vistas

Harlock En ese caso es necesario trabajar con VI server y sus "Property Node" y "Invoke node", para obtener e ingresar datos desde y hacia el subpanel. específicamente con el método "Ctrl Val". Ahora bien no es una practica recomendada ya que la actualización de los indicadores no es tan eficiente como con los cables y variables locales. ( Observe el adjunto que muestra un ejemplo donde se llama a un subpanel donde se pueden ingresar y obtener datos hacia el mismo ).

 

Sub_panel.png



Ing. Jonathan E. Cruz Ortiz

ENERGÍA PROACTIVA S.A.S

Cel : (+57) 3173669343 - (+57) 3124451894

Descargar todos
0 kudos
Mensaje 4 de 7
3.914 Vistas

Gracias JokeInice por la explicación, de todos modos veo que esta forma complica más aún el código y mi intención era tenerlo más simplificado.

 

Bueno, tendré que buscar alternativas pero dejo petición al equipo de desarrollo ( si les llega ) de mejorar este tema. No soy especialmente experto, pero he programado en muchos lenguajes y lo mejor es buscar la simplicidad que a veces hecho en falta en Labview.

 

Seguiré con el tema, gracias de nuevo.

0 kudos
Mensaje 5 de 7
3.872 Vistas

Ciertamente es mas complicado y como te decía no es la mejor forma de hacerlo, pero la pregunta es porque se rechazo tajantemente el uso de "SubVI's", si precisamente estos lo que hacen es organizar el código, ademas esta estrategia se usa en otros lenguajes de programación cuando se crean funciones que también son ficheros externos que se utilizan mediante un llamado a una librería y estos permiten la organización de el código para que sea mas legible.

 

Mis consejos para mantener el orden y por consiguiente simplificar el código son :

1. Trabajar como un proyecto, y no con programas separados eso le permitirá mantener el orden .

2. Use SubVIs ( claramente ) donde se identifique su función.

3. Usar carpetas ( Virtual Folder o Autopupulating folder ) para distinguir los diferentes componentes de su proyecto ( Controles, SubVIS, etc)

4. Agrupar los controles, para esto existen estructuras como los Cluster; de esta manera ahorrara espacio.

5 . Use alguna lógica de programación, maquinas de estado, estructura de eventos. Por ejemplo

6. y finalmente lo mas importante tal vez es leer las guiás de inicio o libros, los cursos etc. para comenzar a trabajar con LabVIEW.

 

Saludos. Harlock



Ing. Jonathan E. Cruz Ortiz

ENERGÍA PROACTIVA S.A.S

Cel : (+57) 3173669343 - (+57) 3124451894

Mensaje 6 de 7
3.863 Vistas

Es que se van juntando piedras en el camino, si creo una estructura como por ejemplo un case me encuentro que en una opción no tengo apenas código mientras en otra ocupa toda la pantalla, pero el diagrama del case coge el tamaño del caso más grande con lo que sigo teniendo toda la pantalla ocupada con una porción del programa. La solución parece ser crear "cajas negras" de código como subvis, pero entonces el lio se monta con el front panel, a no ser que el subvi sea del tipo entrada-salida sin mostrar nada por pantalla, que no tarde demasiado y sin ejecutarse como bucle independiente.

Un claro ejemplo de lo que quiero hacer sería un vi que fuera un teclado que se pudiera incrustar en un front panel y que estuviera funcionando en un bucle independiente a la espera a que pulsase una tecla y entonces generar una salida, pero que después no se pare, que siga en marcha hasta que el programa padre lo cierre. Eso si, sin bloquear el resto del programa.

 

Llevo tiempo dando vueltas a un tipo de programación "orientada a dispositivo" del tipo esquema electrónico, en el cual hay componentes con entradas y salidas que funcionan independientemente, que se pueden sincronizar y que se pueden comunicar con lineas de buses sin tener que acabar su ejecución. Ésto lo he pseudo-emulado con queues, pero no acaba de gustarme. Ahí lo dejo para ver si alguien lo considera una buena idea.

 

Por ahora intentaré cambiar el chip otra vez para ver si puedo sacar adelante los proyectos pendientes. Gracias por la ayuda.

0 kudos
Mensaje 7 de 7
3.853 Vistas