Discusiones sobre Productos NI

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

crio property node

Hola,

 

He desarrollado una aplicación consistente en un VI que se ejecuta en un sistema CompactRIO. En él he utilizado algunos indicadores y nodos de propiedad (property nodes) para llevar su valor a otras partes del código.

 

En modo desarrollo, el código me ha funcionado tal y como esperaba. Sin embargo he generado una aplicación "stand alone", y en ella los nodos de propiedad no funcionan. Sin embargo, sustituyendo los nodos de propiedad "Value" por "variables locales", el VI sí funciona.

 

Mi pregunta es la siguiente: ¿No funcionan los nodos de propiedad en las aplicaciones del cRIO, o sólo funcionan algunas de ellas? Agradecería que me aclaraseis esto, ya que no he visto información en los foros y es probable que pueda tener problemas en otras partes de mi código al trabajar con los nodos de propiedad.

 

 

Un saludo, y gracias de antemano.

 

Víctor Martínez

0 kudos
Mensaje 1 de 4
3.187 Vistas

Hola Victor, en general en LabVIEW si vas a pasar los datos de un lugar a otro es mejor usar variables locales mas que nodos de propiedad con Value, ya que es mas rápido que estos. Aun así en general lo ideal es si el valor puede ser pasado por un cable utilizar cables ya que es mas rápido, reduce el número de copias en memoria del dato, y evitas romper el flujo de datos lo que reduce la posibilidad de bugs como race conditions.

 El probelma con los nodos de propiedad los estas teniendo en FPGA o RT?

 En general en RT no debes de tener nodos de propiedad que afecten el Panel frontal de tu aplicación ya esta diseñado para correr sin interface de usuario, así que debes de evitar usar diálogos y nodos de propiedad que afecten la parte visible del control como blinking.

Aquí hay un par de presentaciones que se dieron en NI Week 2011 que te pueden ser de utilidad:

Changing Your Mindset for NI LabVIEW Real-Time and LabVIEW FPGA Programming

Best Practices for NI LabVIEW Real-Time Development

Saludos

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 2 de 4
3.185 Vistas

Gracias por la respuesta. El problema que describí lo tenía en RT, y al utilizar Variables Locales el problema se elimina. Revisaré también las dos presentaciones ya que me pueden ayudar en mi trabajo.

Respecto a utilizar cables en lugar de variables locales, ¿existe alguna solución para que el "Block Diagram" se pueda entender de una manera sencilla? Lo digo porque para VIs en los que hay varios datos del mismo tipo (y por lo tanto tienen el mismo color de cable) que se utilizan en diferentes puntos del programa y es posible por lo tanto llevarlos por medio de cables, es difícil seguir el dato que va por cada cable, sobre todo si el tamaño del "Block Diagram" es grande. He intentado buscar alguna herramienta de ayuda, pero lo único que he visto es utilizar etiquetas sobre los cables indicando la variable que va por cada uno de ellos. Agradecería que me indicasen si hay alguna forma de ordenar estos cables más eficiente.

 

 

Un saludo,

 

Víctor Martínez

0 kudos
Mensaje 3 de 4
3.161 Vistas

Hola Víctor en general el LabVIEW una buena tecina de programación es hacer que el VI quede en una sola pantalla, esto no implica amontonar todo sino ordenarlo mediante el uso de subVIs o arquitecturas como la máquina de estados o productor consumidor. El reducir le tamaño del código en el diagrama de bloques, te ayuda a que sea mas fácil ver que estás haciendo en tu código, y ayuda mucho para debug.

 Ahora para ordenar los cables una opción muy práctica es utilizar los clúster. Cuando utilizas los clusters con la función de Bundle y Unbundle by Name, puedes pasar todos los cables por un solo cluster y solo sacarlos cuando los necesitas, estos al contener el nombre te indican que parte del cable esta saliendo, funcionaria en forma similar a lo que logras con una canaleta en cableado físico. El uso de clusters te ayuda mucho a mantener claro el diagrama de bloques y libera espacio.

 Algunas de estas practicas las puedes encontrar en las guías de desarrollo de LabVIEW:

    LabVIEW Development Guidelines: LabVIEW Style Guide (Chapter 6)

Saludos

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 4 de 4
3.153 Vistas