Você está na página 1de 4

Los 5 principales errores del novato de LabVIEW - National Instruments http://www.ni.

com/newsletter/51735/es/

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 (http://www.ni.com/labview/esa/) 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.

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.

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.

1 de 4 22/7/17 12:42
Los 5 principales errores del novato de LabVIEW - National Instruments http://www.ni.com/newsletter/51735/es/

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-paced-training) para LabVIEW Core 1 (http://sine.ni.com/tacs/app/overview/p/ap/of/lang/en/ol/en/oc/us/pg/1/sn
/n24:12725,n5:selfpacedonline/id/1582/) 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 (http://sine.ni.com/tacs/app/overview/p/ap/of/lang/en/ol/en/oc/us/pg/1/sn
/n24:12725,n5:selfpacedonline/id/1582/) 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

2 de 4 22/7/17 12:42
Los 5 principales errores del novato de LabVIEW - National Instruments http://www.ni.com/newsletter/51735/es/

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.

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-
paced-training) para LabVIEW Core 2 (http://sine.ni.com/tacs/app/overview/p/ap/of/lang/en/ol/en/oc/us/pg/1/sn
/n24:12753,n5:selfpacedonline/id/1583/) 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.

3 de 4 22/7/17 12:42
Los 5 principales errores del novato de LabVIEW - National Instruments http://www.ni.com/newsletter/51735/es/

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
(https://lumen.ni.com/nicif/ESA/LMS_LOGIN/content.xhtml?du=http%3A%2F%2Fsine.ni.com%3A80%2Fmyni%2Fself-paced-
training%2Fapp%2Fmain.xhtml) 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 (http://zone.ni.com/devzone/cda/pub/p/id/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.

4 de 4 22/7/17 12:42

Você também pode gostar