Скачать книгу

esquema de los menús de las paletas se guarda en un fichero con extensión *.MNU. Una vez que se han realizado y guardado los cambios, ya están disponibles los nuevos menús y se podrán utilizar como cualquier menú nativo de LabVIEW.

Images

       Figura 1-20. Submenú de la librería de usuario.

      También en Tools > Options > Control/Function Palettes hay varios parámetros para cambiar su aspecto. Por último hay que decir que si no se encuentra un VI entre todos esos menús o submenús también se dispone de la opción de buscar un VI o control por su nombre mediante el botón Search de la parte superior de las paletas.

      Una opción avanzada y poco conocida es personalizar el menú Tools, para lo cual simplemente hay que guardar los programas que queramos que aparezcan en el directorio Project de la carpeta de instalación de LabVIEW.

      En LabVIEW la programación se realiza en el Diagrama de Bloques. Un programa habitualmente está formado por:

      • Controles: sirven de entrada para los datos.

      • Funciones, VI y estructuras: realizan una o varias operaciones con esos datos.

      • Indicadores: sirven de salida para los datos.

      Los datos ‘circulan’ por el programa mediante cables, que sirven para unir unos elementos con otros. Para realizar la conexión se utiliza la herramienta Connect Wire de la paleta de herramientas. Un cable tendrá una única fuente (control, constante o salida de otro elemento) y uno o varios destinos (indicador o entradas de otros elementos) de tipos compatibles. El cableado, en general, debe ser lo más corto posible manteniendo una claridad suficiente. Una opción útil que aparece en el menú contextual de los cables es Clean Up Wire que realiza un trazado automático de la ruta del cable. También se puede hacer un cableado automático de todo el diagrama en Edit > Clean Up Diagram. Un buen trazado del cableado no sólo es más elegante sino que también puede hacer que el programa tenga unas prestaciones superiores en cuanto a memoria utilizada, pero sobre todo será más fácil de mantener y modificar.

      En la figura 1-21 puede verse un programa en LabVIEW. Consta de dos entradas, una de tipo string (String de entrada) y otra numérica (Número de entrada). La función String Length (puede encontrarse en el menú Programming > String de la paleta de funciones) obtiene el número de caracteres de la entrada de texto; esa cantidad es numérica y se suma a la otra entrada mediante la función Add (Programming > Numeric). El programa tiene dos salidas: la primera de ellas es una copia duplicada de la entrada tipo string, y la segunda es la suma de la longitud de la anterior más la entrada numérica. Los Label de ambas funciones se han mostrado mediante su menú contextual > Visible Items.

Images

       Figura 1-21. Programa sencillo en LabVIEW.

      Una vez creado el programa, se deben introducir los datos iniciales en los controles del Panel Frontal, ejecutarlo presionando el botón Run (CTRL+R) y, cuando acabe, ver los resultados en los indicadores. La figura 1-22 muestra la ejecución del programa anterior.

Images

       Figura 1-22. Ejecución del programa anterior.

      LabVIEW es un lenguaje compilado para obtener un alto rendimiento. Cuando un programa ha sido modificado y se va a guardar o ejecutar, generalmente se recompila. Al compilar el código del Diagrama de Bloques pasa a código máquina. El código compilado hará llamadas a otras funciones de librerías externas (LabVIEW Run-Time Engine) para tareas como dibujar gráficos o acceso a ficheros.

      Al lenguaje de programación que usa LabVIEW también se le llama lenguaje G. La mayoría de los lenguajes se basan en una programación imperativa, que es simplemente una sucesión de operaciones. Sin embargo, el lenguaje G no usa una programación imperativa sino una ejecución basada en el flujo de datos (dataflow).

      Un programa en LabVIEW consiste básicamente en una serie de funciones unidas mediante cables. Los datos ‘circulan’ o ‘fluyen’ por los cables. Una función sólo podrá ejecutarse cuanto tenga disponibles todos los datos que le sirven como entradas. Esta forma de ejecutar un programa favorece el paralelismo y es más apropiada para sistemas multiprocesador y multihilo, y también es más parecida al funcionamiento de los circuitos hardware e incluso al lenguaje VHDL.

      A continuación se mostrarán una serie de imágenes para explicar el flujo de ejecución de LabVIEW mediante un ejemplo.

      El programa consiste en dos operaciones matemáticas: la suma de dos números y la multiplicación del resultado de ésta por un tercer número. En la figura 1-23 se puede ver el programa y los datos de entrada en el Panel Frontal.

Images

       Figura 1-23. Programa para analizar el flujo de ejecución.

      El primer paso de la ejecución llevará los datos de los controles Operando A, Operando B y Operando C a las entradas de las funciones Add y Multiply. En la figura 1-24 puede verse que las entradas disponibles están marcadas con un punto. El flujo de datos se indica con flechas en paralelo a los cables.

Images

      Figura 1-24. Valores disponibles en las entradas de la función Add.

      La función Add tiene disponibles los valores de sus dos entradas; sin embargo, la función Multiply necesita el valor de otra entrada que no tiene disponible. Por lo tanto, en el siguiente paso se podrá ejecutar la función Add pero no Multiply. Cuando se ejecute el resultado de la suma, su valor pasará al indicador A+B, que lo mostrará en el Panel Frontal, y también circulará hasta la entrada que faltaba de la multiplicación, lo que permite que en el siguiente paso pueda ejecutarse.

Images

       Figura 1-25. Siguiente paso de la ejecución.

      Finalmente, el resultado de la multiplicación pasa al indicador (A+B)*C y el programa finaliza.

      En el ejemplo anterior el orden de ejecución es fijado por la forma de cablear unas funciones con otras. En la figura 1-26 pueden verse dos programas. En el primero ocurre lo mismo; el orden de ejecución lo fija el cableado: primero se ejecutará Increment y después Square Root. En el segundo programa hay dos funciones pero entre ellas no existe ninguna dependencia de datos, por lo que no habrá ningún orden en la ejecución de Decrement y Square; podemos considerar que ambas se ejecutan en paralelo.

Images

       Figura 1-26. Flujo de ejecución.

      Los ficheros con los programas creados en LabVIEW se llaman VI (Virtual Instrument). En muchas ocasiones un programa será de un tamaño tal que habrá que separarlo en varios ficheros o habrá alguna sección de código que convenga reutilizarla varias veces. Un VI puede contener a otro de forma que el segundo sería un subVI del primero; el concepto es equivalente a las funciones o procedimientos de un lenguaje tradicional.

Images

      

Скачать книгу