Sunteți pe pagina 1din 4

Los 5 principales errores del novato de LabVIEW

Fecha de Publicacin: abr 17, 2013

Contenido
1. El uso excesivo de estructuras Flat Sequence
2. El mal uso de las variables locales
3. Ignorar la modularidad del cdigo
4. Crear diagramas de bloques enormes
5. No tener en cuenta la necesidad de la documentacin
Aunque el software NI LabVIEW siempre ha ayudado a ingenieros y cientficos a desarrollar rpidamente aplicaciones funcionales de
medida y control, no todos los nuevos usuarios siguen las mejores prcticas de programacin de LabVIEW. La programacin grfica de
LabVIEW es relativamente nica en que resulta rpidamente evidente la falta de adherencia a las mejores prcticas de codificacin con
solo echar un vistazo a la aplicacin del usuario. Algunos usuarios cometen estos errores porque realmente no entienden las reglas del
flujo de datos en un diagrama de LabVIEW, mientras que otros son slo conscientes de las caractersticas diseadas para mejorar la
calidad de un programa de LabVIEW.
Este artculo revisa los errores de programacin ms comunes cometidos por los programadores sin experiencia de LabVIEW, junto con
las recomendaciones sobre el mtodo de la programacin correcta de LabVIEW a usar en su lugar.

[+] Ampliar Imagen

Figura 1. Cdigo completo de errores de "novato" con LabVIEW

1. El uso excesivo de estructuras Flat Sequence


Muchos de los nuevos programadores de LabVIEW no entienden completamente los conceptos que hay detrs de la ejecucin del
"flujo de datos", lo cual es fundamental para la programacin de LabVIEW. Un indicio de ello es que los usuarios suelen abusar de las
estructuras flat sequence en sus diagramas de bloques. Los usuarios a menudo se basan en estas estructuras para forzar la ejecucin
en serie del cdigo en el diagrama de bloques, en lugar de utilizar el flujo de datos con conexiones entre nodos.

[+] Ampliar Imagen

Figura 2. Los usuarios a menudo se basan en estructuras flat sequence en lugar de desarrollar una comprensin completa de los
conceptos de programacin del flujo de datos.
La programacin del flujo de datos significa que un nodo en el diagrama de bloques (subVI, estructura primitiva y as sucesivamente) no
se ejecutar hasta que todos los datos de entrada necesarios estn presentes. Esto beneficia a los programadores de LabVIEW porque
los procesos independientes estn configurados de forma nativa para ejecutarse en paralelo, mientras que los lenguajes imperativos
requieren una configuracin adicional para la ejecucin en paralelo. En tanto que los ordenadores siguen aadiendo ms CPUs,
LabVIEW los utiliza para hacerlos trabajar automticamente con procesos paralelos obteniendo un rendimiento mayor del cdigo sin
desarrollar ningn cdigo extra por parte de sus usuarios. Forzar la ejecucin del diagrama de bloques por el uso excesivo de las
estructuras flat sequence puede constreir la paralelizacin e inhibir esta ventaja. La limitacin de las estructuras innecesarias en el
diagrama de bloques contribuye a la legibilidad global y mantiene tambin los diagramas ms pequeos.

Los cables de error son una buena manera de forzar el flujo de datos en el diagrama de bloques, en lugar de depender de las
estructuras flat sequence y se benefician tambin de una estrategia de control de errores.
Cundo se debera usar una estructura flat sequence?
Forzar la ejecucin de una estructura flat sequence es til para la evaluacin comparativa del rendimiento del cdigo. Mediante el uso
de una estructura flat sequence con un contador dentro de su marco, se puede determinar el tiempo necesario para ejecutar cdigo
entre dos marcas de tiempo. Esto no puede lograrse mediante la ejecucin del flujo de datos normal.

[+] Ampliar Imagen

Figura 3. La utilizacin de estructuras de secuencia plana y los VIs de medida de tiempos resulta til para la medida comparativa del
rendimiento del cdigo.
Para obtener ms informacin sobre la programacin del flujo de datos, acceda a la formacin autodidacta en lnea (ni.com/self-pacedtraining) para LabVIEW Core 1 en Data Flow. La formacin autodidacta en lnea es gratuita para cada compra de LabVIEW o para los
usuarios actuales del Standard Service Program (ni.com/ssp).

2. El mal uso de las variables locales


Otro error comn en los programas de LabVIEW es un uso excesivo de variables locales. Las variables locales son una parte de
memoria compartida utilizada para comunicar datos entre las diferentes secciones de un programa informtico. De uso comn en
lenguajes basados en texto, las variables pueden ser muy enriquecedoras, pero tambin pueden dar lugar a problemas cuando dos o
ms hilos tratan de acceder al mismo tiempo a un dato para cambiarlo (condiciones de carrera).
A diferencia de otros lenguajes de programacin donde la comunicacin de datos a travs de variables es esencial, LabVIEW
proporciona el mtodo del flujo de datos para transferir datos de una parte de un programa a otro. El paralelismo inherente a LabVIEW
hace que un uso excesivo de las variables sea problemtico porque la memoria compartida puede ser accedida por ubicaciones de
cdigo diferentes al mismo tiempo. Si esto ocurre, una lectura/escritura gana la "carrera" y la otra la pierde, por lo que el uso excesivo
de las variables de LabVIEW puede conducir, en ltima instancia, a la prdida de datos.
Se pueden comunicar con seguridad los datos de una parte de un programa de LabVIEW a otro usando diversos mtodos, entre los
que se incluyen cables, colas, eventos, notificadores, variables funcionales globales y otras ms. Estos mecanismos son diseados
individualmente para casos de uso especfico, pero todos tienen la ventaja de eliminar los problemas de condiciones de carrera.
Para obtener ms informacin sobre las tcnicas adecuadas de comunicacin de datos dentro de un programa de LabVIEW, acceda a
la formacin autodidacta en lnea (ni.com/self-paced-training) para LabVIEW Core 1 en Local Variables y para LabVIEW Core 2 en
Notifiers, Queues, and Events.

3. Ignorar la modularidad del cdigo


A menudo, los nuevos usuarios de LabVIEW crean aplicaciones de "dispara y olvida" para llevar a cabo tareas simples y no piensan
que ese cdigo se puede llegar a utilizar en el futuro. Cuando los usuarios comienzan a programar ms a menudo, pueden encontrarse
reescribiendo el mismo cdigo una y otra vez. Se puede ahorrar un montn de tiempo de desarrollo mediante la creacin de subVIs
modulares de partes del cdigo que pueden ser reutilizados ms adelante en otras aplicaciones.
Si se sabe que una parte particular del cdigo ser utilizada nuevamente dentro de la misma aplicacin o se presiente que podra ser
reutilizada en una futura aplicacin, entonces se debe dedicar un tiempo adicional para convertirla en un subVI. Para preparar una
porcin de cdigo con el fin de que se convierta en un subVI, las principales cosas que se necesitan hacer son: aadir documentacin,
utilizar el panel de conectores y desactivar algunas propiedades del VI. Una de las maneras ms fciles de comenzar a crear un subVI
consiste en resaltar una porcin del cdigo en un diagrama de bloques y luego seleccionar Edit>>Create SubVI desde la barra del
men. Esto describe el proceso de poner la parte del cdigo en un VI separado y usar el conector. Aun ser necesario: editar el icono
para obtener algo que tenga sentido, aadir la documentacin al diagrama de bloques y VI Properties y desactivar algunos ajustes del
VI, pero Edit>>Create SubVI es un gran punto de partida para lograr la modularidad del cdigo.

Figura 4. Se puede ahorrar mucho tiempo de desarrollo mediante el establecimiento de las adecuadas prcticas de modularidad del
cdigo de LabVIEW.
Uno de los ajustes del VI que se debe estar seguro de desactivar cuando se prepara el cdigo para su reutilizacin es Allow
Debugging. Esta opcin se encuentra dentro de VI Properties (File>>VI Properties) en la categora de Execution. Una vez que el cdigo
es completamente funcional y ya no necesita ms capacidades de depuracin, como Highlight Execution, se debe desactivar Allow

Debugging en la configuracin de ejecucin y ejecutar otra vez el VI. Esto es beneficioso porque tienen lugar ms optimizaciones
durante el proceso de compilacin para que la aplicacin se ejecute ms rpido y el VI tendr un tamao fsico ligeramente ms
pequeo en el disco porque el cdigo adicional que permite la depuracin se ha eliminado.
Para obtener ms informacin sobre la modularidad del cdigo, acceda a la formacin autodidacta en lnea (ni.com/self-paced-training)
para LabVIEW Core 1 en Understanding Modularity.

4. Crear diagramas de bloques enormes


Muchos de los nuevos usuarios de LabVIEW tienen diagramas de bloques que pueden llegar a ser enormes. Algunas aplicaciones son
complejas y no se puede evitar tener un esquema general, pero tambin puede indicar la falta de una arquitectura de programacin.
Sin una arquitectura subyacente, es difcil mantener un programa a lo largo del tiempo y puede ser costoso agregar ms tarde una
nueva funcionalidad. Al igual que la construccin de un marco apropiado construye una casa en buenas condiciones estructurales, una
buena arquitectura de programacin proporciona un marco seguro para la construccin de la aplicacin.
Las arquitecturas de software son marcos comunes que casi todos los programadores encuentran tiles. Muchas de las arquitecturas
dentro de LabVIEW, tales como productor/consumidor y las mquinas de estado, son similares a los encontrados en otros lenguajes de
programacin.
La comprensin de las arquitecturas de LabVIEW reduce el tiempo de desarrollo y mejora la escalabilidad de la aplicacin. LabVIEW
2012 hizo ms fcil an la comprensin de las arquitecturas mediante la inclusin de plantillas y ejemplos de proyectos en dicha
versin. Las plantillas explican las diferentes arquitecturas y cundo deben usarse. Los proyectos de ejemplo son aplicaciones ms
grandes construidas sobre las plantillas y demuestran cmo las plantillas se pueden utilizar para hacer frente a retos del mundo real. Se
puede conectar hardware en un proyecto de ejemplo y utilizarlo como una aplicacin llave en mano, si es necesario, pero a pesar de
ello, es todava abierto y bien documentado para que pueda personalizarse para una aplicacin especfica.

[+] Ampliar Imagen

Figura 5. Las plantillas y los proyectos de ejemplo disponibles en LabVIEW 2012 hacen que la comprensin de las arquitecturas de
software sea ms fcil que nunca
Para obtener ms informacin sobre las arquitecturas de LabVIEW, acceda a la formacin autodidacta en lnea (ni.com/self-pacedtraining) para LabVIEW Core 2 en Design Patterns.

5. No tener en cuenta la necesidad de la documentacin


Para tratar de discernir lo que hace realmente un programa escrito por otra persona resulta de gran ayuda la buena documentacin del
cdigo. Desafortunadamente, la documentacin se deja normalmente hasta el final del ciclo de desarrollo una vez que se ha
completado la funcionalidad. Esto deja poco tiempo para documentar el cdigo correctamente. En lugar de ello, se debera fijar el
momento para iniciar el proceso de documentacin durante el desarrollo. La documentacin beneficia enormemente a la persona que
escribi el cdigo cuando la vuelve a consultar ms tarde y no puede recordar cuales eran sus pensamientos cuando eligi ciertos
aspectos del cdigo. Tomar caf y programar por la noche hasta tarde es un rasgo comn de los programadores, que puede dar lugar,
en broma, a la prdida temporal de la memoria. La documentacin puede ayudar a los programadores a recordar.
En general, la naturaleza grfica de LabVIEW hace que la lectura de cdigo sea ms fcil que los programas basados en texto, pero
una buena documentacin puede reducir el tiempo necesario para "descodificar" un programa an ms. La forma ms fcil de aadir
documentacin a un diagrama de bloques es mediante el uso de etiquetas libres. Estas se pueden aadir haciendo doble clic con el
botn izquierdo en un espacio vaco en el diagrama de bloques e introducir algn texto. A continuacin, utilice una flecha de decoracin
para apuntar al cdigo especfico al que hace referencia la etiqueta libre. Aada fotos copindolas en el portapapeles y pguelas en el
diagrama de bloques. Las imgenes de los sistemas fsicos o las frmulas matemticas pueden ayudar a los usuarios a formular el
contexto del cdigo en el diagrama de bloques.

[+] Ampliar Imagen

Figura 6. Un cdigo correctamente diseado y documentado ayuda a otras personas que utilizan su cdigo, pero tambin ayuda a
entender mejor el propio cdigo.
La documentacin del cdigo no es slo para las libreras de reutilizacin, sino que debera hacerse para cada programa. Los seres
humanos aprenden mucho ms acerca de un tema cuando se ven obligados a ensear a los dems. Cuando se escribe la
documentacin se obliga esencialmente a este proceso de enseanza y puede ayudar a los programadores a entender mejor su propio
cdigo.
Para obtener ms informacin sobre la documentacin del cdigo, acceda a la formacin autodidacta en lnea para LabVIEW Core 1 en
Documenting Code.
LabVIEW fue creado para hacer que los ingenieros y cientficos tuviesen ms xito al enfrentarse a los difciles retos del mundo. La
ventaja de tener una gran comunidad de programadores de ingenieros y cientficos es que a ellos les gusta compartir sus
conocimientos con los dems. Si ha tenido su propio error de novato de LabVIEW y le gustara compartirlo, por favor aada su voz al
visitar bit.ly/lvrookiemistakes.
Para echar un vistazo ms a fondo a cada uno de estos errores de novato de LabVIEW en futuros artculos, estn atentos a las noticias
de NI.

S-ar putea să vă placă și