Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccion A LabVIEW
Introduccion A LabVIEW
Este manual técnico introduce a los conceptos requeridos para desarrollar un sistema básico con LabVIEW.
Recomendamos que los nuevos usuarios pasen tiempo aprendiendo las herramientas y los conceptos básicos
necesarios para utilizar y navegar en el entorno antes de desarrollar sus primeras aplicaciones.
Panel Frontal
Cuando abre un VI nuevo o existente, aparece la ventana del panel frontal del VI. La ventana del panel frontal es la
interfaz de usuario para el VI. La Figura 1 muestra un ejemplo de una ventana del panel frontal.
(1) Ventana de Panel Frontal | (2) Barra de Herramientas | (3) Paleta de Controles
Figura 1. Ejemplo de un Panel Frontal
Paleta de Controles
La paleta de Controles contiene los controles e indicadores que utiliza para crear el panel frontal. Puede tener acceso
a la paleta de Controles de la ventana del panel frontal al seleccionar View»Controls Palette o al dar clic con botón
derecho en cualquier espacio en blanco en la ventana del panel frontal. La paleta de Controles está dividida en varias
categorías; puede exponer algunas o todas estas categorías para cumplir con sus necesidades. La Figura 2 muestra
la paleta de Controles con todas las categorías expuestas y la categoría Moderna expandida.
Figura 2. Paleta de Controles
Para ver o esconder categorías (subpaletas), haga clic en el botón Customize y seleccione Change Visible Palettes.
Controles e Indicadores
Cada VI tiene un panel frontal que usted puede diseñar como una interfaz de usuario. Usted también puede usar
paneles frontales como la manera de transmitir entradas y recibir salidas cuando se llama al VI desde otro diagrama
de bloque. Usted crea la interfaz de usuario de un VI al colocar controles e indicadores en el panel frontal de un VI.
Cuando interactúa con un panel frontal como una interfaz de usuario, puede modificar los controles para transmitir
entradas y ver los resultados en los indicadores. Los controles que definen las entradas y los indicadores muestran
las salidas.
Los controles generalmente son perillas, botones, perillas, deslizadores y secuencias. Simulan dispositivos de
entrada de instrumentos y suministran datos al diagrama de bloques del VI. Los indicadores generalmente son
gráficas, tablas, LEDs y secuencias de estado. Los indicadores simulan dispositivos de salida de instrumentos y
muestran los datos que diagrama de bloques adquiere o genera.
La Figura 1 tiene dos controles: Number of Measurements y Delay (sec). Tiene un indicador: una gráfica XY llamada
Temperature Graph.
El usuario puede cambiar el valor de entrada para los controles Number of Measurements and Delay (sec). El usuario
puede ver el valor generado por el VI en el indicador Temperature Graph. El VI genera los valores para los
indicadores basados en el código creado en el diagrama de bloques.
Cada control o indicador tiene un tipo de datos asociado con él. Por ejemplo, el slide horizontal Delay (sec) es un tipo
de datos numérico. Los tipos de datos utilizados con mayor frecuencia son numéricos, Booleano y cadena de
caracteres.
Para proporcionar o cambiar valores en un control numérico, haga clic en el botón de incremento y reducción o haga
doble clic en el número, introduzca un nuevo número y presione la tecla <Enter>.
Diagrama de Bloques
Los objetos del diagrama de bloques incluyen terminales, subVIs, funciones, constantes, estructuras y cables, los
cuales transfieren datos junto con otros objetos del diagrama de bloques.
(1) Terminales de Indicador | (2) Cables | (3) Nodos | (4) Terminales de Control
Figura 6. Ejemplo de un Diagrama de Bloques y Panel Frontal Correspondiente
Después de que crea la ventana del panel frontal, añade código usando representaciones gráficas de funciones para
controlar los objetos del panel frontal. La ventana del diagrama de bloques contiene este código de fuente gráfica.
Terminales
Los objetos en la ventana del panel frontal aparecen como terminales en el diagrama de bloques. Las terminales son
puertos de entrada y salida que intercambian información entre el panel frontal y diagrama de bloques. Son análogos
a parámetros y constantes en lenguajes de programación basados en texto. Los tipos de terminales incluyen
terminales de control o indicador y terminales de nodo. Las terminales de control e indicador pertenecen a los
controles e indicadores del panel frontal. Los puntos de datos que usted proporciona en los controles del panel frontal
(a y b en el panel frontal anterior) pasan al diagrama de bloques a través de las terminales de control. Entonces los
puntos de datos ingresan las funciones de Suma y Resta. Cuando las funciones de Suma y Resta terminan sus
cálculos, producen nuevos valores de datos. Los valores de datos van a las terminales de indicador, donde actualizan
los indicadores del panel frontal (a+b y a-b en el panel frontal anterior).
Controles, Indicadores y Constantes
Los controles, indicadores y constantes se comportan como entradas y salidas del algoritmo del diagrama de
bloques. Considere la implementación del algoritmo para el área de un triángulo:
El usuario no cambiará o tendrá acceso a la constante 0.5, así que no aparecerá en el panel frontal a menos que se
incluya como documentación del algoritmo.
La Figura 9 muestra una posible implementación de este algoritmo en un diagrama de bloques de LabVIEW. Este
diagrama de bloques tiene cuatro terminales diferentes creadas por dos controles, una constante y un indicador.
Note que las terminales del diagrama de bloques Base (cm) y Altura (cm) tienen una apariencia diferente de la
terminal Área (cm2). Existen dos características distintivas entre un control y un indicador en el diagrama de bloques.
La primera es una flecha en la terminal que indica la dirección del flujo de datos. Los controles tienen flechas que
muestran los datos que salen de la terminal, mientras que el indicador tiene una flecha que muestra los datos que
entran a la terminal. La segunda característica distintiva es el borde alrededor de la terminal. Los controles tienen un
borde grueso y los indicadores tienen un borde delgado.
Puede ver terminales con o sin vista de íconos. La Figura 10muestra el mismo diagrama de bloques sin usar la vista
de ícono de las terminales; sin embargo existen las mismas características distintivas entre los controles y los
indicadores.
Figura 10. Diagrama de Bloques del Área de un Triángulo sin Vista de Terminal de Ícono
Funciones
Las funciones son los elementos de operación fundamentales de LabVIEW. Las funciones de Suma y Resta en
la Figura 6 son nodos de función. Las funciones no tienen ventanas del panel frontal o ventanas del diagrama de
bloques pero no tienen paneles conectores. Al hacer doble clic en la función solamente selecciona la función. Una
función tiene un fondo amarillo pálido en su ícono.
SubVIs
Después de desarrollar un VI, usted puede usarlo en otro VI. Un VI llamado desde el diagrama de bloques de otro VI
es llamado un subVI. Usted puede reutilizar un subVI en otros VIs. Para crear un subVI, necesita desarrollar un panel
conector y crear un ícono.
Un nodo de subVI corresponde a una llamada de subrutina en lenguajes de programación basados en texto. El nodo
no es subVI, solamente una instrucción de llamada de subrutina en un programa que no es la propia subrutina. Un
diagrama de bloques que contiene varios nodos de subVI idénticos llama al mismo subVI varias veces.
Los indicadores y controles de subVI reciben datos y regresan datos al diagrama de bloques del VI que hace el
llamado. Cuando hace doble clic en un subVI en el diagrama de bloques, aparece la ventana del panel frontal. El
panel frontal incluye controles e indicadores. El diagrama de bloques incluye cables, íconos, funciones, subVIs
probables u otros objetos de LabVIEW.
Cada VI muestra un ícono en la esquina superior derecha de la ventana del panel frontal y la ventana del diagrama
de bloques. Un ejemplo del ícono predeterminado se muestra aquí. Un ícono es una representación gráfica de un VI.
El ícono puede contener texto e imágenes. Si usa un VI como un subVI, el ícono identifica al subVI en el diagrama de
bloques del VI. El ícono predeterminado contiene un número que indica cuántos nuevos VI abrió después de iniciar
LabVIEW.
Para usar un VI como un subVI, necesita construir un panel conector, como se muestra arriba. El panel conector es
un conjunto de terminales en el ícono que corresponde a los controles e indicadores de ese VI, similares a la lista de
parámetros de una función llamada en lenguajes de programación basados en texto. Obtenga acceso al panel
conector al dar clic con botón derecho en el ícono en la parte superior derecha de la ventana del panel frontal. Usted
puede tener acceso al panel conector desde el ícono en la ventana del diagrama de bloques. Un ícono de subVI tiene
un fondo blanco en su ícono.
Express VIs
Los Express VIs son nodos que requieren cableado mínimo ya que usted los configura con ventanas de diálogo. Use
Express VIs para tareas de medidas comunes. Consulte el tema de Express VIs de la Ayuda de LabVIEW para más
información. Aparecen en el diagrama de bloques como nodos expandibles con iconos rodeados por un campo azul.
Paleta de Funciones
La paleta de Funciones contiene los VIs, funciones y constantes que usted utiliza para crear el diagrama de bloques.
Usted tiene acceso a la paleta de Funciones del diagrama de bloques al seleccionar View»Functions Palette. La
paleta de Funciones está dividida en varias categorías; usted puede mostrar y esconder categorías para cumplir con
sus necesidades. La Figura 11 muestra la paleta de Funciones con todas las categorías expuestas y la categoría de
Programación expandida.
Para ver o esconder categorías, haga clic en el botón Customize y seleccione Change Visible Palettes.
Search—Cambia la paleta para el modo buscar, así usted puede realizar búsquedas basadas en texto para ubicar los
controles, VIs o funciones en las paletas. Mientras una paleta está en modo de búsqueda, haga clic en el botón
Return para salir del modo de búsqueda y regresar a la paleta.
Customize—Proporciona opciones para seleccionar un formato para la paleta actual, mostrar y esconder categorías
para todas las paletas y clasificar alfabéticamente elementos en los formatos de Texto y Árbol. Seleccione Options
del menú de acceso directo para mostrar la página Controls/Functions Palettes de la ventana de diálogo Options, en
la cual puede seleccionar un formato para todas las paletas. Este botón aparece solamente si hace clic en la tachuela
en la esquina superior izquierda para prender la paleta.
Hasta que se familiarice con la ubicación de los VIs y funciones, busque la función o VI usando el botón Search. Por
ejemplo, si desea encontrar la función Random Number, haga clic en el botón Search en la barra de herramientas de
la paleta de Funciones y comience a escribir Random Number en la ventana de diálogo en la parte superior de la
paleta. LabVIEW enlista todos los elementos parecidos que comienzan con o contienen el texto que escribió. Puede
dar clic en alguno de los resultados de búsqueda y arrástrelo al diagrama de bloques, como se muestra en la Figura
12.
Quick Drop
O bien, usted puede encontrar y colocar VIs y objetos del panel frontal por nombre en la ventana de diálogo Quick
Drop. Para iniciar Quick Drop, presione las teclas <Ctrl-Space>.
Quick Drop es especialmente útil al buscar una función u operación muy específica. Conforme escribe, Quick Drop
completa automáticamente el nombre con las funciones que coinciden. Después de seleccionar la función apropiada,
haga clic en el diagrama de bloques o en el panel frontal para colocar el objeto en ese lugar.
Fundamentos de la Programación Gráfica
funciones y trabajar con una variedad de tipos de datos al desarrollar aplicaciones.
LabVIEW sigue un modelo de flujo de datos para ejecutar VIs. Un nodo de diagrama de bloques se ejecuta cuando
recibe todas las entradas requeridas. Cuando el nodo se ejecuta, produce datos de salida y pasa los datos al
siguiente nodo en la trayectoria del flujo de datos. El movimiento de datos a través de los nodos determina el orden
de ejecución de los VIs y las funciones en el diagrama de bloques.
Visual Basic, C++, Java y la mayoría de otros lenguajes de programación basados en texto siguen un modelo de flujo
de control para ejecución del programa. En el flujo de control, el orden secuencial de los elementos del programa
determina el orden de ejecución de un programa.
Para un ejemplo de programación de flujo de datos, considere un diagrama de bloques que suma dos números y
después resta 50.00 del resultado de la suma, como se muestra en la Figura 1. En este caso, el diagrama de
bloques se ejecuta de izquierda a derecha, no porque los objetos están colocados en ese orden, sino porque le
función de Resta no puede ejecutarse hasta que la función de Suma termina ejecutarse y pasa los datos a la función
de Resta. Recuerde que un nodo se ejecuta solamente cuando los datos están disponibles en todas sus terminales
de entrada y proporciona los datos a las terminales de salida solamente cuando el nodo termina la ejecución.
En la Figura 2, considere cuál segmento de código debe ejecutarse primero—la función de Suma, Número Aleatorio
o División. No se puede saber porque las entradas a las funciones de Suma y División están disponibles al mismo
tiempo y la función de Números Aleatorios no tiene entradas. En una situación donde un segmento de código debe
ejecutarse antes que otro y no existe ninguna dependencia de datos entre las funciones, use otros métodos de
programación como estructuras de secuencia o clusters de error para forzar el orden de la ejecución.
Cables
Transfiere datos entre objetos del diagrama de bloques a través de cables. En las figuras 1 y 2, los cables conectan
las terminales de control e indicador a la función de Suma y Resta. Cada cable tiene una sola fuente de datos, pero
puede cablearlo a varios VIs o funciones que leen los datos. Los cables son de diferentes colores, estilos y grosores
dependiendo de sus tipos de datos.
Un cable roto aparece como una línea negra punteada con una X roja a la mitad, como se muestra arriba. Los cables
rotos ocurren por una variedad de razones, como cuando intenta cablear dos objetos con tipos de datos no
compatibles.
La Tabla 1 muestra los cables más comunes.
Tipo de
Cable Escalar Arreglo de 1D Arreglo en 2D Color
Booleano Verde
Cadena de Rosa
caracteres
Tabla 1. Tipos Comunes de Cable
En LabVIEW, puede usar cables para conectar múltiples terminales para pasar datos en un VI. Debe conectar los
cables a las entradas y salidas que son compatibles con los datos que son transferidos con el cable. Por ejemplo, no
puede cablear una salida de tipo arreglo a una entrada numérica. Además la dirección de los cables debe ser
correcta. Debe conectar los cables solamente a una entrada y por lo menos a una salida. Por ejemplo, no puede
cablear dos indicadores juntos. Los componentes que determinan la compatibilidad del cableado incluyen los tipos de
datos del control y/o el indicador y los tipos de datos de la terminal. Por ejemplo, si un interruptor tiene un borde
verde, puede cablear un interruptor a cualquier entrada con una etiqueta verde en un VI Express. Si una perilla tiene
un borde naranja, puede cablear una perilla a cualquier entrada con una etiqueta naranja. Sin embargo, no puede
cablear una perilla naranja a una entrada con una etiqueta verde. Note que los cables son del mismo color que la
terminal.
En un lenguaje de programación gráfica como el software LabVIEW, el mouse es la manera principal de interactuar
con el entorno de programación. Dicho esto, el cursor del mouse debe ser capaz de completar diferentes tareas,
como seleccionar, cablear, resaltar texto y demás. Este módulo examina no solamente las diferentes funciones que el
mouse puede realizar en LabVIEW, sino también cómo realizar dichas tareas.
Este módulo también habla sobre algunas otras maneras de modificar sus VIs: menús de acceso directo, ventanas
de diálogo de propiedades y la barra de herramientas.
Puede escoger manualmente la herramienta que necesita al seleccionarla en la paleta Tools. Seleccione View »
Tools Palette para mostrar la paleta Tools.
A continuación se mencionan algunas de las herramientas más comunes que puede encontrar en LabVIEW. Note
que cuando el botón de Selección Automática de Herramientas está habilitado, el mouse cambia una de las
siguientes herramientas para realizar las tareas más comunes en LabVIEW.
Herramienta de Operación
Use la herramienta de Operación para cambiar los valores de un control. Por ejemplo, en la Figura 3 la herramienta
de Operación mueve el puntero en la Horizontal Pointer Slide. Cuando el mouse está sobre el puntero, el cursor
automáticamente obtiene acceso a la herramienta de Operación.
Figura 3. Usar la Herramienta de Operación
La herramienta de Operación es usada generalmente en la ventana del panel frontal, pero también puede usar la
herramienta Operativa en la ventana del diagrama de bloques para cambiar el valor de una constante Booleana.
Herramienta de Posicionamiento
Use la herramienta de Posicionamiento para seleccionar o cambiar el tamaño de los objetos. Por ejemplo, en
la Figura 4 la herramienta de Posicionamiento selecciona el control numérico Number of Measurements. Después
de seleccionar un objeto, puede mover, copiar o eliminar el objeto. Cuando el mouse está sobre la orilla de un objeto,
el cursor automáticamente obtiene acceso a la herramienta de Posicionamiento.
Puede usar la herramienta de posicionamiento en la ventana del panel frontal y del diagrama de bloques.
Herramienta de Etiquetado
Use la herramienta de Etiquetado para proporcionar el texto en un control, para editar texto y para crear etiquetas.
Por ejemplo, en la Figura 6 la herramienta de Etiquetado proporciona el texto en el control numérico Number of
Measurements. Cuando el mouse está sobre el interior del control, el cursor automáticamente obtiene acceso a la
herramienta de Etiquetado. Haga clic para colocar un cursor dentro del control. Después haga doble clic para
seleccionar el texto actual.
Herramienta de Cableado
Use la herramienta de Cableado para cablear objetos juntos en el diagrama de bloques. Por ejemplo, en la Figura 7,
la herramienta de Cableado cablea la terminal Number of Measurements a la terminal de conteo del Ciclo For.
Cuando el mouse está sobre la salida o entrada de una terminal o sobre un cable, el cursor automáticamente obtiene
acceso a la herramienta de Cableado.
La herramienta de Cableado funciona principalmente con la ventana del diagrama de bloques y cuando crea un panel
conector en la ventana del panel frontal.
Desplazamiento Para desplazarse a través de las ventanas sin usar barras de desplazamiento.
Breakpoint Use esta herramienta para establecer puntos de pausa en VIs, funciones, nodos
y estructuras para detener la ejecución en esa ubicación.
Copiar Color Use la herramienta de Copiar Color para copiar colores y después pegarlos con
la herramienta de Coloreo.
Ventanas de Propiedades
Los objetos en la ventana del panel frontal también tienen ventanas de diálogo de propiedades que usted puede usar
para cambiar la apariencia o el comportamiento de los objetos. Haga clic con botón derecho en un objeto y
seleccione Properties en el menú de acceso directo para tener acceso a la ventana de diálogo de un objeto.
La Figura 9 muestra la ventana de diálogo de propiedades para el medidor que se muestra en la Figura 8. Las
opciones disponibles en la ventana de diálogo de propiedades de un objeto son similares a las opciones disponibles
en el menú de acceso directo de ese objeto.
Puede seleccionar múltiples objetos en el panel frontal o el diagrama de bloques y editar cualquier propiedad que los
objetos compartan. Para seleccionar múltiples objetos, use la herramienta de Ubicación para arrastrar un rectángulo
de selección alrededor de todos los objetos que desea editar o mantenga apretada la tecla <Shift> al hacer clic en
cada objeto. Haga clic con botón derecho en un objeto y seleccione Properties en el menú de acceso directo para
mostrar la ventana de diálogo Properties. La ventana de diálogo Properties solamente muestra secciones y
propiedades que comparte el objeto que seleccionó. Seleccione objetos similares para mostrar más secciones o
propiedades. Si selecciona objetos que no comparten propiedades comunes, la ventana de diálogo Properties no
muestra ninguna sección o propiedad.
Haga clic en el botón Run button to run a VI. LabVIEW compila el VI, si es
necesario. Puede ejecutar un VI si el botón Run aparece como una flecha en
blanco, como se muestra a la izquierda. La flecha blanca también indica que usted
puede usar el VI como subVI si crea un panel conector para el VI.
El botón Run aparece roto cuando el VI que está creando o editando contiene
errores Si el botón Run aún aparece roto después de que termino de cablear el
diagrama de bloques, el VI está roto y no se puede ejecutar. Haga clic en este botón
para mostrar la ventana Error list, la cual enlista todos los errores y advertencias.
Haga clic en el botón Run Continuously para ejecutar el VI hasta que usted finalice
o detenga la ejecución. También puede hacer clic en el botón otra vez para
deshabilitar la ejecución continua.
Hasta que el VI se ejecuta, aparece el botón Abort Execution. Haga clic en este
botón para detener el VI inmediatamente si no hay otra manera de detener el VI. Si
más de uno de los VIs de alto nivel ejecutándose utiliza el VI, el botón está en color
tenue.
Haga clic en el botón Pause para detener un VI ejecutándose. Cuando hace clic en
el botón Pause, LabVIEW resalta en el diagrama de bloques la ubicación donde
usted detuvo la ejecución y aparece en rojo el botón Pause. Haga clic en el
botón Pause otra vez para continuar ejecutando el VI.
Seleccione el menú desplegable Align Objects para alinear los objetos a lo largo
de los ejes, incluyendo vertical, orilla de arriba y así sucesivamente.
Enter Text aparece para recordarle que un nuevo valor está disponible para
reemplazar uno viejo. El botón Enter Text desaparece cuando hace clic en él,
presiona la tecla <Enter> o hace clic en el área del panel frontal o del diagrama de
bloques.
Nota: El botón Abort Execution detiene al VI inmediatamente, antes que el VI termine la actual iteración. Al detener
un VI que utiliza recursos externos, como hardware externo, puede dejar los recursos en un estado desconocido sin
restablecerlos o liberarlos adecuadamente. Diseñe VIs con un botón de paro para evitar este problema.
Herramientas de Depuración
—Aprenda cómo usar herramientas y técnicas sencillas para comprender el comportamiento del código y resolver problemas o bugs.
El software LabVIEW contiene potentes herramientas de depuración para ayudarle a identificar las áreas
problemáticas en su código y poder realizar los cambios adecuados. Puede encontrar dos tipos generales de bugs de
software: aquellos que impiden que el programa se ejecute y aquellos que generan malos resultados o
comportamiento incorrecto. Este módulo le enseña cómo identificar y solucionar ambos tipos de errores.
Si LabVIEW no puede ejecutar su VI, le informa al cambiar la Run Arrow por un ícono roto y la ventana Error List
enlista las razones específicas por las que el VI está roto. El segundo tipo de bug generalmente es más difícil de
rastrear, pero LabVIEW tiene varias herramientas que usted puede usar para vigilar su código mientras se ejecuta, lo
cual hace el proceso mucho más fácil.
Si un VI no se ejecuta, es un VI roto o no ejecutable. El botón Run aparece roto cuando el VI que está creando o
editando contiene errores.
Generalmente, esto significa que una entrada requerida no está cableada o un cable está roto. Presione el botón de
ejecutar roto para tener acceso a la ventana de lista de Errores. La ventana de lista de Errores muestra cada error y
describe el problema. Puede dar doble clic en un error para ir directamente al error.
Haga clic en el botón Highlight Execution para mostrar una animación de la ejecución del
diagrama de bloques cuando ejecute el VI. Note el flujo de datos a través del diagrama de
bloques. Haga clic en el botón otra vez para deshabilitar la ejecución animada.
La ejecución resaltada muestra el movimiento de los datos en el diagrama de bloques desde un nodo a otro usando
burbujas que se mueven a lo largo del cable. Use la ejecución resaltada con la herramienta single-stepping para ver
cómo los valores de los datos se mueven de nodo a nodo a través del VI.
Haga clic en el botón Retain Wire Values para guardar los valores del cable en cada punto en el flujo
de ejecución para que cuando coloque una sonda de prueba en el cable pueda retener
inmediatamente los valores más recientes de los datos que pasaron a través del cable. Debe
ejecutar con éxito el VI por lo menos una vez antes de que pueda retener los valores del cable.
Haga clic en el botón Step Into para abrir un nodo y hacer pausa. Cuando hace clic en el botón Step
Into otra vez, ejecuta la primera acción y hace pausa en la siguiente acción del subVI o estructura.
También puede presionar el <Ctrl> y la flecha hacia abajo. Avance a través de los pasos de VI por
medio del VI nodo por nodo. Cada nodo se prende para denotar cuando está listo para ejecutarse.
Haga clic en el botón Step Over para abrir un nodo y hacer pausa al siguiente nodo. También puede
presionar el <Ctrl> y la flecha hacia arriba. Al presionar el nodo, ejecuta el nodo sin avance simple a
través del nodo.
Haga clic en el botón Step Out para terminar de ejecutar un nodo actual y hacer pausa. Cuando el
VI termina se ejecutarse, el botón Step Out está en color tenue. También puede presionar el <Ctrl> y
la flecha hacia arriba. Al presionar un nodo, completa el avance en el nodo y navega al siguiente
nodo.
El botón de Advertencia aparece si un VI incluye una advertencia y si colocó una marca en la casilla
Show Warnings en la ventana Error List. Una advertencia indica que hay un problema potencial con
el diagrama de bloques, pero no detiene al VI.
Use la herramienta Probe para verificar los valores intermedios en un cable mientras un VI se ejecuta.
Use la herramienta de Sonda de Prueba si tiene un diagrama de bloques complicado con una serie de operaciones y
cualquiera de ellas puede regresar datos incorrectos. Use la herramienta de Probe con la identificación de ejecución,
avance simple y puntos de paro para determinar donde están los datos incorrectos. Si los datos están disponibles, la
punta de prueba se actualiza inmediatamente y muestra los datos en laProbe Watch Windowdurante la
identificación de ejecución, avance simple o cuando hace pausa en un punto de paro. Cuando la ejecución hace
pausa en un nodo por avance simple o un punto de paro, también puede medir el cable que se ejecutó para ver el
valor que fluye a través de ese cable.
Programar en LabVIEW
Estructuras de Datos
Arreglos, clusters y datos enumerados
Una cadena es una secuencia de caracteres ASCII visibles o no visibles. Las cadenas de caracteres ofrecen un
formato independiente a la plataforma para información y datos. Algunas de las aplicaciones más comunes de
cadena de caracteres incluyen las siguientes:
tipo Tipo de
Descripción Mensaje
Glifo visualización
norte Pantalla normal Muestra los caracteres imprimibles utilizando Hay cuatro tipos de pantalla.
la fuente del control. caracteres no \ Es una barra invertida.
visualizables generalmente aparecen como
cajas.
\ '\' Códigos de la Muestra la barra invertida códigos para todos Hay \ Sare \ sfour \ sdisplay \ stypes. \ N
pantalla los caracteres no visualizables. \\\ sis \ sa \ sbackslash.
PAG Mostrar Muestra un asterisco ( * ) para cada carácter, ****************************
contraseña incluidos los espacios. *****************
* hex Display Muestra el valor ASCII de cada carácter en 5468 6572 6520 6172 6520 7572 2064
hexadecimal en lugar del carácter propio. 6973 666F 706c 6179 2074 7970 6573
2061 6973 2E0A 5C20 2062 6163 7368
6B73 6C61 2E
Mesas
Utilice el control de tabla para crear una tabla en el panel frontal. Cada celda de una tabla es una cadena, y cada
célula reside en una columna y una fila. Por lo tanto, una tabla es una pantalla para una 2D matriz de cadenas.
La ilustración siguiente muestra una tabla y todas sus partes.
Edición, Formato y procesar las cadenas
Utilice las funciones de cadena para editar las cadenas de manera similar a lo siguiente:
Buscar, recuperar y reemplazar caracteres o subcadenas dentro de una cadena.
Cambiar todo el texto en una cadena a mayúsculas o minúsculas.
Encontrar y recuperar patrones coincidentes dentro de una cadena.
Recuperar una línea de una cadena.
Rotar y revertir el texto dentro de una cadena.
Concatenar dos o más cadenas.
Eliminar caracteres de una cadena.
Consulte la Lista de verificación de estilo LabVIEW para obtener más consejos acerca de cómo minimizar el uso de
memoria durante la edición de cadenas mediante programación. Consulte el LabVIEW \ ejemplos \ Strings \
Strings.lvproj de ejemplos del uso de las funciones de cadena para editar cuerdas.
Busca Cuerdas
Use las cuerdas Funciones para buscar cadenas de caracteres, palabras, frases o números con expresiones
regulares. Se pueden utilizar expresiones regulares para buscar cadenas literales en el texto, como por ejemplo la
palabra "gato", o buscar cadenas en el texto que coinciden con un patrón particular, tales como las palabras que
comienzan con la letra "c" y termina con la letra "t" o subseries que comienzan con una letra seguida de uno o más
dígitos.
Utilice el patrón de ajuste de la función y la búsqueda y reemplazo del patrón VI para buscar cadenas mediante la
introducción de cadenas literales o caracteres especiales en la expresión normal de entrada. Utilice la búsqueda y
reemplazo de cuerdas función para buscar y reemplazar texto en una cadena.
Utilice la coincidencia de expresiones regulares función y la búsqueda y reemplazo de cuerdas función de patrón
regular más complejo juego utilizando el estándar de sintaxis de expresiones regulares compatibles con Perl
(PCRE) . Haga clic en el Buscar y reemplazar la función de cuerdas y seleccione de expresiones regulares en el
menú contextual para configurar la función de búsquedas de expresiones regulares avanzadas y la sustitución de
coincidencia parcial en la cadena de reemplazo. Cambiar el tamaño de la función de ajuste de expresiones regulares
para ver las coincidencias parciales que se encuentran en la cadena . Se puede utilizar el patrón de ajuste de función
o la función de coincidencia de expresiones regulares en cadenas para buscar expresiones regulares. La función de
coincidencia de expresiones regulares le da más opciones para las cadenas coincidentes pero funciona más
lentamente que la función Patrón de ajuste.
Se produce un error en el siguiente VI debido a la distancia tiene un tipo de unidad de segundos. Para corregir el
error, cambie segundos a una unidad de distancia, tales como kilómetros, como se muestra en la VI anterior.
Algunos VIs y funciones son ambiguas con respecto a las unidades. No puede utilizar estos VIs y funciones con otros
terminales que tienen unidades. Por ejemplo, el Incremento función es ambigua con respecto a las unidades. Si
utiliza unidades de distancia, la función de incremento no puede decir si se debe añadir un metro, un kilómetro, o un
pie. Debido a esta ambigüedad, no se puede utilizar la función de incremento y otras funciones que se incrementan o
disminuir valores con los datos que se han asociado unidades.
Para evitar la ambigüedad en este ejemplo, utilice una constante numérica con la unidad adecuada y
el Agregar función para crear su propia función de la unidad de la subasta, como se muestra en el siguiente diagrama
de bloques.
También puede configurar LabVIEW para representar el mismo número racional como un número de coma fija con 16
el total de bits y 8 bits enteros.
Los números de punto fijo difieren de los números de coma flotante en el que los números de coma flotante permiten
que el número de bits enteros y fraccionarios para variar cuando se realiza una operación en el número de coma
flotante. En otras palabras, el punto binario se puede mover, o flotar, en un número de coma flotante.
Nota: Si no se especifica el número exacto de bits que desea utilizar para representar el punto fijo equivalente a un
número racional, LabVIEW ajusta el número de bits para evitar la pérdida de datos, si es posible. LabVIEW no puede
manejar números de más de 64 bits.
Configuración de números de punto fijo
Para establecer un número a la representación de punto fijo, haga clic en el objeto numérico y
seleccione Representación en el menú contextual para cambiar el tipo de datos del objeto. Puede configurar la
codificación para los números de punto fijo. También puede especificar si se debe incluir un estado de
desbordamiento con números de punto fijo y cómo numérico funciones manejar desbordamiento de redondeo
y condiciones para los números de punto fijo. Para configurar un número de coma fija, haga clic en una constante, el
control, indicador o la función numérica y seleccione Propiedades en el menú contextual para mostrar las
propiedades numéricas , propiedades constantes numéricas , o las propiedades numéricas de nodo cuadro
de diálogo.
Codificación
Especificar la codificación binaria de un número de coma fija cuando se desea que el número de ajustarse a un
tamaño determinado de bits.
Firmado -La opción que determina si se firma el dato de punto fijo. Si selecciona iniciado sesión, el bit de
signo es siempre el primer bit de la cadena de bits que representa los datos.
Sin firmar opción -El que determina si los datos de punto fijo no está firmado.
Longitud de palabra total -La de bits en la cadena de bits que LabVIEW utiliza para representar todos los
valores posibles de los datos de punto fijo. LabVIEW acepta una longitud máxima de palabra de 64 bits. Ciertos
objetivos pueden limitar los datos a longitudes de palabra más pequeñas . Si abre un VI en un objetivo y el VI
contiene datos de coma fija con longitudes de palabra más grande que el destino puede aceptar, la VI contiene
cables rotos. Consulte la documentación para un objetivo de determinar la longitud máxima de palabra acepta
el objetivo.
Palabra de enteros longitud -El número de bits de enteros en la cadena de bits que LabVIEW utiliza para
representar todos los valores posibles de los datos de punto fijo, o, dada una posición inicial a la izquierda o a la
derecha del bit más significativo, el número de bits a desplazar el punto binario para alcanzar el bit más
significativo. La palabra entera de longitud puede ser mayor que la longitud de la palabra, y puede ser positivo o
negativo.
LabVIEW muestra esta configuración en el siguiente formato en el Contexto Ayuda ventana al mover el cursor sobre
un cable que transporta datos de punto fijo:
< Codificación , longitud de palabra , longitud de palabra número entero >
Por ejemplo:
<s, 16, 8> es un número de 16 bits con ocho bits enteros. La siguiente imagen representa un número firmado con
una longitud de palabra de 16 y una longitud de palabra de entero de 8.
1 longitud de palabra (16 bits)
2 longitud de palabra de entero (8 bits)
3 bit de signo
4 punto binario
Si la palabra entera de la longitud es negativa, LabVIEW no almacena ningún bit entero y no almacena el número de
bits fraccionarios igual al número negativo, a partir del punto binario. La siguiente imagen representa un número con
una longitud de palabra de 8 y una longitud de palabra de enteros de -2.
1 longitud de palabra (8 bits)
2 longitud de palabra de entero menos la longitud de palabra (8 bits menos -2 bits)
3 los bits fraccionarios no se almacenan
4 punto binario
Distancia
LabVIEW calcula la gama y delta para un número de coma fija de acuerdo con los valores especificados para la
codificación del número de punto fijo.
Mínimo valor mínimo -La para el rango de datos de punto fijo.
Máximo valor máximo -La para el rango de datos de punto fijo.
Delta incremento -La entre los números dentro del rango especificado.
LabVIEW expresa esta configuración en el siguiente formato en el Contexto Ayuda ventana al mover el cursor sobre
un cable que transporta datos de punto fijo:
[ Mínimo , máximo ]: Delta
Por ejemplo:
[-4, 4]: 1 tiene un valor mínimo de -4, un valor máximo de 4, y un delta de 1.
Aritmética de punto fijo
Cuando se realiza una operación aritmética con números de punto fijo para el que haya especificado una longitud de
palabra, la posición del punto binario no cambia desde la posición que especifique antes de ejecutar el VI. Este
comportamiento contrasta con los números de punto flotante, donde la posición del punto binario o decimal pueden
cambiar en tiempo de ejecución debido a una operación aritmética. Si el resultado de una operación aritmética
requiere una longitud de palabra mayor que la configuración de punto fijo permite, es posible que pierda los datos a
partir del resultado de la operación.
LabVIEW ajusta la longitud de palabra de valores de salida de numéricas funciones para evitar la pérdida de datos, si
es posible. Sin embargo, LabVIEW no puede evitar la pérdida de datos si la palabra necesaria para representar el
valor de salida de longitud excede el número máximo especificado o el LabVIEW máximo de 64 bits. Para configurar
los ajustes de salida para una función numérica, haga clic en la función y seleccione Propiedades en el menú
contextual para mostrar las propiedades numéricas de nodo cuadro de diálogo.
Desbordamiento y redondeo
Desbordamiento y condiciones de redondeo pueden ocurrir cuando se realiza una operación aritmética de números
de punto fijo o cuando se utiliza el a-Punto Fijo función para convertir datos numéricos en datos de coma
fija. LabVIEW configura las salidas de las funciones numéricas para evitar desbordamiento o redondeo de los datos
de punto fijo, si es posible. Sin embargo, LabVIEW no puede evitar el desbordamiento de redondeo o bajo ciertas
condiciones.
Por ejemplo, si los valores de punto fijo de alambre a funciones numéricas tales como Añadir , Restar , Multiplicar ,
y la plaza , LabVIEW aumenta la longitud de palabra del valor de salida para acomodar el resultado de la operación
por defecto. Este comportamiento es similar al comportamiento de los valores de punto flotante. Sin embargo, si
evitar desbordamiento o redondeo requiere un valor de salida que supera la longitud máxima de palabra que
LabVIEW acepta o la longitud máxima de palabra que especifique, desbordamiento o pueden producirse condiciones
de redondeo. LabVIEW acepta una longitud máxima de palabra de 64 bits.
Nota: Si usted valores de punto fijo de alambre a la divisoria función, el recíproco función, o la raíz cuadrada función
de redondeo, las condiciones siempre se producen debido a la precisión de los resultados puede ser infinita.
Otras condiciones se puedan producir desbordamientos o redondeo incluyen ciclos de tipo y los valores que no se
puede representar exactamente en un sistema de base 2 número.
Rebosar
Desbordamiento se produce cuando el resultado de una operación está fuera del rango de valores que el tipo de
salida puede representar. Puede seleccionar entre los siguientes modos de desbordamiento para manejar el
desbordamiento:
Sature -Si el valor es mayor que el valor máximo en el intervalo deseado del tipo de salida, LabVIEW
coacciona, o rondas, el valor que el máximo especificado. Si el valor es menor que el valor mínimo en el rango
deseado del tipo de salida, LabVIEW coacciona el valor al mínimo especificado.
Envuelve -Si el valor está fuera del intervalo deseado del tipo de salida, LabVIEW descarta bits
significativos del valor hasta que el valor está en el rango deseado del tipo de salida. Esta opción requiere que
el valor de salida para adaptarse a la codificación que se especifique. No se puede especificar un rango
deseado si se selecciona esta opción, porque LabVIEW establece automáticamente la gama para adaptarse a
la codificación.
Nota: Normalmente, el modo Saturar requiere recursos de hardware adicionales en una FPGA.
Para determinar si se produce un desbordamiento, se puede configurar un número de coma fija para incluir una
condición de desbordamiento. Cuando se incluye un estado de desbordamiento en un número de punto fijo,
LabVIEW asigna espacio de almacenamiento adicional para realizar un seguimiento de si el número de punto fijo es
el resultado de una operación que se desbordó. Después de configurar un número de coma fija para incluir una
condición de desbordamiento, puede mostrar un estado de desbordamiento LED en los controles de punto fijo,
constantes e indicadores. Este LED se ilumina cuando la condición de desbordamiento del número de punto fijo es
TRUE. También puede utilizar el punto fijo de desbordamiento? Funcionar para determinar el estado de
desbordamiento de un número de coma fija. Usa los de punto fijo de funciones para manipular el estado de
desbordamiento de un número de coma fija.
Nota: LabVIEW no comprueba las condiciones de flujo inferior en números de punto fijo.
Cuando se utiliza la comparación de funciones para comparar los números de punto fijo, LabVIEW hace caso omiso
de la condición de desbordamiento y compara solamente los números. Por ejemplo, si se utiliza
la Igualdad? Funcionar para comparar un valor de punto fijo de 1,5 con un estado de desbordamiento de TRUE para
un valor de punto fijo de 1,5 sin estado de overflow, LabVIEW devuelve TRUE.
Para configurar los ajustes de salida para una función numérica, haga clic en la función y seleccione Propiedades en
el menú contextual para mostrar las propiedades numéricas de nodo cuadro de diálogo. Puede utilizar este cuadro
de diálogo para configurar cómo LabVIEW maneja desbordamiento y las condiciones de redondeo.
Redondeo
El redondeo se produce cuando la precisión del valor de entrada o el resultado de una operación es mayor que la
precisión del tipo de salida. LabVIEW coacciona el valor de entrada en un valor con la misma precisión que el tipo de
salida. Por ejemplo, suponga que el tipo de salida puede representar los sucesivos valores de s y t. Si el resultado de
una operación es el valor x , y x es entre s y t tal que s < x < t , el redondeo se debe a que el tipo de salida no puede
representar x exactamente.
Puede elegir entre los siguientes modos de redondeo para manejar redondeo:
Truncar o manos el valor hasta el valor más cercano que el tipo de salida puede representar. LabVIEW
descarta los bits menos significativos del valor. Este modo de redondeo tiene el mejor rendimiento, pero
también produce los valores de salida menos precisos.
Por ejemplo, si el valor de salida x se encuentra entre los sucesivos valores de s y t tal que
s<x<t,
Por ejemplo, si el valor de salida x se encuentra entre los valores sucesivos s y t tal que
s<x<t,
s < x < t,
La siguiente tabla muestra los tipos de datos numéricos disponibles en LabVIEW. LabVIEW tiendas de cada
tipo de datos de una manera diferente.
LabVIEW almacena datos Booleanos como valores de 8 bits. Usted puede usar un Booleano en LabVIEW para
representar un 0 o 1 o un TRUE o FALSE. Si el valor de 18 bits es cero, el valor Booleano es FALSE. Cualquier valor
no igual a cero representa TRUE. Las aplicaciones comunes para datos Booleanos incluyen representar datos
digitales y servir como un control de panel frontal que actúa como un conmutador que tiene una acción mecánica
generalmente usada para controlar una estructura de ejecución como una estructura de Caso. Un control Booleano
generalmente es usado como la declaración condicional para terminar un Ciclo While. En LabVIEW el color verde
representa datos Booleanos.
Si intenta arrastrar un control inválido o indicador en la estructura del arreglo, no podrá colocar el control o indicador
en la estructura del arreglo.
Debe insertar un objeto en la estructura del arreglo antes de usar el arreglo en el diagrama de bloques. De lo
contrario, la terminal del arreglo aparece en negro con un paréntesis vacío y no tiene tipo de datos asociado.
Para añadir un arreglo multidimensional al panel frontal, haga clic con botón derecho en la imagen del índice y
seleccione Añadir Dimensión desde el menú de acceso directo. También puede cambiar el tamaño de la imagen
índice del arreglo hasta que obtenga la cantidad de dimensiones que desea.
Iniciar Arreglos
Puede iniciar un arreglo o dejarlo sin inicializar. Cuando un arreglo es iniciado, usted define el número de elementos
en cada dimensión y el contenido de cada elemento. Un arreglo sin inicializar contiene un número fijo de dimensiones
pero no elementos. La Figura 4muestra un control arreglo en 2D sin configurar. Note que todos los elementos están
atenuados. Esto indica que el arreglo no está configurado.
En un arreglo en 2D, después de que inició un elemento, cualquier elemento no iniciado en esa columna y en
columnas previas es iniciado y publicado con el valor predeterminado para el tipo de datos. En la Figura 5, un valor
de 4 fue proporcionado en la columna 2, del arreglo basado en 0. Los elementos previos en la columna 0, 1 y 2 son
iniciados en 0, el cual es el valor predeterminado para el tipo de dato numérico.
Entradas de Arreglo
Si habilita auto-indexing en un arreglo cableado a una terminal de entrada de Ciclo For, LabVIEW establece la
terminal de conteo al tamaño del arreglo para que no tenga que cablear la terminal de conteo. Ya que puede usar
Ciclos For para procesar los arreglos de un elemento al mismo tiempo, LabVIEW habilita auto-indexing de forma
predeterminada para cada arreglo que cablee a un Ciclo For. Puede deshabilitar auto-indexing si no necesita
procesar arreglos de un elemento a la vez.
En la Figura 6, el Ciclo For se ejecuta un número de veces igual al número de elementos en el arreglo.
Normalmente, si la terminal de conteo del Ciclo For no está cableada, el botón de ejecución esta roto y no permite la
ejecución del VI. Sin embargo, en este caso el botón de ejecución no aparece roto.
Si habilita auto-indexing para más de un túnel o si cablea la terminal de conteo, el número actual de iteraciones se
ejecuta la opción menor. Por ejemplo, si dos arreglos de auto-indexing entran en el ciclo, con 10 o 20 elementos
respectivamente y cablea un valor de 15 a la terminal de conteo, el ciclo solamente se ejecuta 10 veces, incluyendo
todos los elementos del primer arreglo pero solamente los primeros 10 del segundo arreglo.
Salidas de Arreglo
Cuando aplica auto-indexing a un túnel de salida de arreglo, el arreglo de salida recibe un nuevo elemento desde
cada iteración del ciclo. Por lo tanto, los arreglos de salida de auto-indexing son siempre iguales en tamaño al
número de iteraciones.
El cable desde el túnel de salida al indicador del arreglo se vuelve más grueso conforme cambia a un arreglo en el
borde del ciclo y el túnel de salida contiene paréntesis cuadrados representando un arreglo.
Clusters
Los clusters agrupan elementos de datos de diferentes tipos. Un ejemplo de un cluster es el cluster de error de
LabVIEW, el cual combina un valor Booleano, un valor numérico y uno de cadena de caracteres. Un cluster es similar
a un registro o a una estructura en lenguajes de programación basados en texto.
Construir varios elementos de datos en clusters elimina el desorden de cables en el diagrama de bloques y reduce el
número de terminales del panel conector que los subVIs necesitan. El panel conector tiene, a lo más, 28 terminales.
Si su panel frontal contiene más de 28 controles e indicadores que quiera pasar a otro VI, agrupe algunos de ellos en
un cluster y asigne el cluster a una terminal en el panel conector.
La mayoría de los clusters en el diagrama de bloques tienen un patrón de cable rosa y terminal de tipos de datos. Los
clusters de error tienen un patrón de cable amarillo obscuro y terminal de tipo de datos. Los clusters de valores
numéricos, algunas veces conocidos como puntos, tienen un patrón de cable café y terminal de tipo de datos. Puede
cablear clusters numéricos cafés a funciones Numéricas, como Suma o Raíz Cuadrada, para realizar la misma
operación simultáneamente en todos los elementos del cluster.
La Figura 10 es un ejemplo de un cluster que contiene tres controles: una cadena de caracteres, un interruptor
Booleano y un numérico.
Ensamblar Clusters
Use la función Bundle para ensamblar un cluster desde elementos individuales o para cambiar los valores de los
elementos individuales en un cluster existente sin tener que especificar los nuevos valores para todos los elementos.
Use la herramienta de Posición para cambiar el tamaño de la función o haga clic con botón derecho en una entrada
de elemento y seleccione Añadir Entrada desde el menú de acceso directo.
Figura 11. Ensamblar un Cluster en el Diagrama de Bloques
Modificar un Cluster
Si cablea la entrada de cluster, puede cablear solamente los elementos que desea cambiar. Por ejemplo, el Cluster
de Entrada que se muestra en la Figura 12 contiene tres controles.
Si conoce el orden del cluster, puede usar la función Bundle para cambiar el valor del Comando al cablear los
elementos que se muestran en la Figura 12.
También puede usar la función Bundle By Name para reemplazar o tener acceso a elementos etiquetados de un
cluster existente. La función de ABundle by Name funciona como la función de Bundle, pero en lugar de relacionar
los elementos del cluster por su orden de cluster, los relaciona por sus etiquetas. Solamente puede tener acceso a
elementos con etiquetas propias. El número de entradas no necesita ser igual al número de elementos en un cluster
de salida.
Use la herramienta de Operación para hacer clic en una terminal de entrada y seleccionar un elemento en el menú
desplegable. También puede hacer clic con botón derecho en la entrada y seleccionar el elemento con Seleccionar
Elemento en el menú de acceso directo.
En la Figura 13, puede usar la función de Bundle by Name para actualizar los valores de Comando y Función con los
valores del Nuevo Comando y Nueva Función.
Use la función de Bundle by Name para estructuras de datos que pueden cambiar durante el desarrollo. Si añade un
nuevo elemento al cluster o modifica su orden, no necesita reescribir la función de Bundle by Name ya que los
nombres siguen siendo válidos.
Desensamblar Clusters
Use la función Unbundle para separar un cluster en sus elementos individuales.
Use la función Unbundle By Name para regresar los elementos del cluster de los cuales especificó los nombres. El
número de terminales de salida no depende del número de elementos en el cluster de entrada.
Use la herramienta de Operación para hacer clic en una terminal de salida y seleccionar un elemento en el menú
desplegable. También puede hacer clic con botón derecho en la terminal de salida y seleccionar el elemento con
Seleccionar Elemento en el menú de acceso directo.
Por ejemplo, si usa la función Unbundle con el cluster en la Figura 14, tiene cuatro terminales de salida que
corresponden a los cuatro controles en el cluster. Debe conocer el orden del cluster para que pueda asociar la
terminal Booleano correcta del cluster desagrupado con el interruptor correspondiente en el cluster. En este ejemplo,
los elementos están ordenados de arriba hacia abajo comenzando con el elemento 0. Si usa la función Unbundle by
Name, puede tener un número arbitrario de terminales de salida y tener acceso a elementos individuales por nombre
en cualquier orden.
Enums
Un enum (control, constante o indicador enumerado) es una combinación de tipos de datos. Un enum representa un
par de valores, una cadena de caracteres y un valor numérico, donde el enum puede ser uno de una lista de valores.
Por ejemplo, si usted creó un tipo de enum llamado Mes, los pares de valores posibles para una variable Mes son
Enero-0, Febrero-1 y así hasta Diciembre-11.LaFigura 15 muestra un ejemplo de estos pares de datos en la ventana
de diálogo de Propiedades para un control enumerado. Se obtiene acceso al dar clic con botón derecho en el control
enum y al seleccionar Edit Items.
Los enums son útiles porque es más fácil manipular números en el diagrama de bloques que cadena de caracteres.
La Figura 16muestra el control enumerado Mes, la selección de un par de datos en el control enumerado y la
terminal del diagrama de bloques correspondiente.
(1) Control de Panel Frontal | (2) Seleccionar un Elemento | (3) Terminal de Diagrama de Bloques
Figura 16. Control Enumerado Mes
Use la herramienta Probe para verificar los valores intermedios en un cable mientras un VI se ejecuta.
Use la herramienta de Sonda de Prueba si tiene un diagrama de bloques complicado con una serie de operaciones y
cualquiera de ellas puede regresar datos incorrectos. Use la herramienta de Probe con la identificación de ejecución,
avance simple y puntos de paro para determinar donde están los datos incorrectos. Si los datos están disponibles, la
punta de prueba se actualiza inmediatamente y muestra los datos en laProbe Watch Windowdurante la
identificación de ejecución, avance simple o cuando hace pausa en un punto de paro. Cuando la ejecución hace
pausa en un nodo por avance simple o un punto de paro, también puede medir el cable que se ejecutó para ver el
valor que fluye a través de ese cable.
Estructuras de Ejecución
Las estructuras de ejecución contienen secciones de código gráfico y controlan cómo y dónde el código dentro se
ejecuta. Las estructuras de ejecución más comunes son Ciclos While, Ciclos For y Estructuras de Casos los cuales
puede usar para ejecutar la misma sección del código varias veces o para ejecutar una sección diferente del código
basada en alguna condición.
Ciclos
Ciclos While
Similar a un Ciclo Do o a un Ciclo Repeat-Until en lenguajes de programación basados en texto, un Ciclo While, que
se muestra en laFigura 1, ejecuta el código que contiene hasta que ocurre una condición.
(1) Ciclo While de LabVIEW | (2) Diagrama de Flujo | (3) Código Pseudo
La Figura 1 muestra un Ciclo While en LabVIEW, un diagrama de flujo equivalente a la funcionalidad de Ciclo While
y un código de ejemplo pseudo de la funcionalidad del Ciclo While.
El Ciclo While está ubicado en la paleta Structures. Seleccione el Ciclo While en la paleta y después use el cursor
para arrastrar una selección rectangular alrededor de la sección del diagrama de bloques que desea repetir. Cuando
suelte el botón del mouse, un borde del Ciclo While encierra la sección que seleccionó.
Añada objetos del diagrama de bloques al Ciclo While al arrastrarlos dentro del Ciclo While.
El Ciclo While ejecuta el código que contiene hasta la terminal condicional, una terminal de entrada, recibe un valor
Booleano específico.
También puede realizar manejo básico de error usando la terminal condicional de un Ciclo While. Cuando cablea un
cluster de error a la terminal condicional, solamente el valor True o False del parámetro de estatus del cluster de error
pasa a la terminal. También, los elementos del menú Stop if True y Continue if True cambian a Stop if Error y
Continue while Error.
La terminal de iteración es una terminal de salida que contiene el número de iteraciones terminadas.
Ciclos Infinitos
Los ciclos infinitos son un error común de programación que involucra un ciclo que nunca se detiene.
Si la terminal condicional es Stop if True, usted coloca la terminal de un control Booleano afuera de un Ciclo While. Si
el control es FALSE cuando el ciclo comienza, provoca un ciclo infinito.
Figura 2. Control Booleano Fuera del Ciclo While
Cambiar el valor del control no detiene al ciclo infinito ya que el valor es de lectura una vez y eso sucede antes que el
ciclo inicie. Para usar un control para detener un Ciclo While, debe colocar la terminal del control dentro del ciclo.
Para detener un ciclo infinito, debe abortar e VI al dar clic en el botón Abort Execution de la barra de herramientas.
En la Figura 3 el Ciclo While se ejecuta hasta que la salida de la función Random Number es mayor o igual que
10.00 y el control Enable esTrue. La función Añadir regresa True solamente su ambas entradas son True. De lo
contrario, regresa False.
En la Figura 3, hay un ciclo infinito ya que la función Random nunca generara un valor igual o mayor que 10.0 0.
Túneles de Estructura
Los túneles alimentan datos desde y hacia estructuras. El túnel aparece como un bloque sólido en el borde el Ciclo
While. El bloque es el color del tipo de datos cableado al túnel. Los datos salen fuera de un ciclo después de que el
ciclo termina. Cuando un túnel pasa datos a un ciclo, el ciclo se ejecuta solamente después que los datos llegan al
túnel.
En la Figura 4, la terminal de iteración está conectada a un túnel. El valor en el túnel no pasa al indicador de
iteraciones hasta que el Ciclo While termina de ejecutarse.
Figura 4. Túnel de Ciclo While
Ciclos For
Un Ciclo For ejecuta un subdiagrama un número de veces establecido. La Figura 5muestra un Ciclo For en
LabVIEW, un diagrama de flujo equivalente a la funcionalidad de Ciclo For y un código de ejemplo pseudo de la
funcionalidad del Ciclo For.
(1) Ciclo For de LabVIEW | (2) Diagrama de Flujo | (3) Código Pseudo
Figura 5. Ciclo For
El Ciclo For está en la paleta Structures. También puede colocar un Ciclo While en el diagrama de bloques, dar clic
con botón derecho en el Ciclo While y seleccionar Replace with For Loop en el menú de acceso directo para cambiar
un Ciclo While Loop a Ciclo For.
La terminal de conteo es una terminal de entrada cuyos valores indican cuantas veces se repite el subdiagrama.
La terminal de iteración es una terminal de salida que contiene el número de iteraciones terminadas.
Función de Espera
Coloque una función de Espera dentro del ciclo para permitir que un VI se duerma por un cierto tiempo. Esto permite
que su procesador maneje otras tareas durante el tiempo de espera. Las funciones de espera utilizan el reloj de
milisegundos del sistema operativo.
La función de Espera (ms) espera hasta que el contador de milisegundos cuenta una cantidad igual a la entrada que
usted especificó. Esta función garantiza que la razón de ejecución del ciclo sea por lo menos la cantidad de la
entrada que usted especificó.
Estructuras de Casos
Solamente un subdiagrama es visible a la vez y la estructura ejecuta solamente un caso a la vez. Un valor de entrada
determina cual subdiagrama se ejecuta. La estructura de Caso es similar a las instrucciones del interruptor o las
instrucciones si...después... en lenguajes de programación basados en texto.
La etiqueta del selector de caso en la parte superior de la estructura de Caso contiene el nombre del valor del
selector que corresponde al caso en el centro y a las flechas de incremento y reducción a cada lado.
Haga clic en las flechas de incremento y reducción para desplazarse en los casos disponibles. También puede hacer
clic en la flecha hacia abajo a lado del nombre del caso y seleccionar un caso en el menú desplegable.
Cablee un valor de entrada o selector a la terminal del selector para determinar qué caso se ejecuta.
Debe cablear un entero, valor Booleano, secuencia o valor de tipo enumerado a la terminal del selector. Puede
colocar la terminal del selector en cualquier parte del borde izquierdo de la estructura de Casos. Si el tipo de datos de
la terminal del selector es Booleano, la estructura tiene un caso True o un caso False. Si la terminal del selector es un
entero, secuencia o valor de tipo enumerado, la estructura tiene cualquier número de casos.
Nota: Los valores de cadena de caracteres que cablea a la terminal del selector son sensibles a las
mayúsculas/minúsculas de forma predeterminada. Para mostrar resultados no sensibles a las
mayúsculas/minúsculas, cablee un valor de caracteres a la terminal del selector, haga clic con botón derecho en el
borde de la estructura de Casos y seleccione Case Insensitive Match del menú.
Si no especifica un caso de forma predeterminada para la estructura de Casos para manejar los valores fuera del
rango, debe enlistar de forma explícita cada valor de entrada. Por ejemplo, si el selector es un entero y usted
especifica los casos para 1, 2 y 3, debe especificar un caso de forma predeterminada a ejecutar si el valor de entrada
es 4 o cualquier otro valor entero no especificado.
Nota: Usted no puede especificar un caso de forma predeterminada si cablea un control Booleano al selector.
Si hace clic con botón derecho en la etiqueta del selector de casos, Make This The Default Case no aparece en el
menú. Haga el control Booleano TRUE o FALSE para determinar cuál caso se ejecuta.
Haga clic con botón derecho en el borde de la estructura para añadir, duplicar, eliminar o reorganizar casos y para
seleccionar un caso predeterminado.
Seleccionar un Caso
La Figura 7 muestra un VI que utiliza una estructura de Caso para ejecutar código diferente dependiendo si el
usuario selecciona °C o °F para las unidades de temperatura. El diagrama de bloques de arriba muestra el caso True
en primer plano. En el diagrama de bloques del centro, el caso Falso es seleccionado. Para seleccionar un caso,
proporcione el valor en el identificador del selector de casos o use la herramienta de Etiquetado para editar los
valores. Después que seleccionó otro caso, ese caso se ve en el diagrama de bloques, como se muestra en la parte
inferior del diagrama de bloques Figura 7.
Si usted proporciona un valor de selector que no es del mismo tipo que el objeto cableado a la terminal del selector,
el valor aparece en rojo. Esto indica que el VI no se ejecutará hasta que elimine o edite el valor. También, por el
posible redondeo de error inherente a la aritmética de punto flotante, no puede usar los números de punto flotante
como valores de selector de casos. Si cablea un valor de punto flotante al caso, LabVIEW redondea el valor al entero
más cercano. Si escribe un valor de punto flotante en la etiqueta del selector de casos, el valor aparece en rojo para
indicar que debe eliminar o editar el valor antes que la estructura pueda ejecutarse.
Numérico 0
Booleano FALSE
Otras Estructuras
LabVIEW tiene otros tipos más avanzados de estructuras de ejecución como estructuras de Eventos (usadas para
manejar tareas dirigidas por interrupciones como interacción UI) y estructuras de Secuencia (usadas para forzar el
orden de ejecución), las cuales están fuera del alcance de este material introductorio. Para aprender más sobre estas
estructuras, consulte el tema apropiado en LabVIEW Help.
Pasar Datos entre Iteraciones de Ciclo
Al programar con ciclos, generalmente debe tener acceso a datos desde iteraciones anteriores del ciclo en LabVIEW.
Por ejemplo, si está adquiriendo un elemento de los datos en cada iteración de un ciclo y debe promediar cada cinco
elementos, debe retener los datos de iteraciones anteriores del ciclo.
Registros de Desplazamiento
Use los registros de desplazamiento cuando quiera pasar valores de iteraciones anteriores a través del ciclo a la
siguiente iteración. Un registro de desplazamiento aparece como un par de terminales directamente opuestas en las
partes verticales del borde del ciclo.
La terminal en la parte derecha del ciclo contiene una flecha hacia arriba y almacena datos de la terminación de una
iteración. LabVIEW transfiere los datos conectados en la parte derecha del registro a la próxima iteración. Después
que el ciclo se ejecuta, la terminal en la parte derecha del ciclo regresa al último valor almacenado en el registro de
desplazamiento.
Cree un registro de desplazamiento al dar clic con botón derecho en el borde izquierdo o derecho y seleccione Add
Shift Register desde el menú de acceso directo.
Un registro de desplazamiento transfiere cualquier tipo de datos y cambia automáticamente al tipo de datos del
primer objeto cableado al registro de desplazamiento. Los datos que usted cablea a las terminales de cada registro
de desplazamiento deben ser del mismo tipo.
Puede añadir más de un registro de desplazamiento a un ciclo. Si tiene múltiples operaciones que usan valores de
iteraciones anteriores en su ciclo, use múltiples registros de desplazamiento para almacenar los valores de datos
desde esos procesos en la estructura, como se muestra en la Figura 1.
En la Figura 3, el Ciclo For se ejecuta cinco veces, incrementando el valor que el registro de desplazamiento
contiene por uno cada vez. La primera vez que ejecuta el VI, el registro de desplazamiento comienza con un valor de
0, el cual es el valor predeterminado para un entero de 32 bits. Después de cinco iteraciones del Ciclo For, el registro
de desplazamiento pasa el valor final, 5, al indicador y el VI se detiene. La próxima vez que ejecuta el VI, el registro
de desplazamiento comienza con un valor de 5, el cual es el último valor de la ejecución anterior. Después de cinco
iteraciones del Ciclo For, el registro de desplazamiento pasa el valor final, 10, al indicador. Si ejecuta el VI otra vez, el
registro de desplazamiento comienza con un valor de 10 y así sucesivamente. Los registros de desplazamiento no
iniciados retienen el valor de la iteración anterior hasta que usted cierra el VI.
Si añade otro elemento a la terminal izquierda en el diagrama de bloques anterior, los valores desde las últimas dos
iteraciones se llevan a la siguiente iteración, con el valor de la iteración más reciente almacenado en el último registro
de desplazamiento. La primera terminal almacena los datos pasados a ella desde la iteración anterior.
Manejo de Errores
No importa qué tanto confía en el VI que creó, puede predecir cada problema que un usuario puede encontrar. Sin un
mecanismo que verifica errores, solamente usted sabe que el VI no funciona adecuadamente. La detección de
errores le dice por qué y donde ocurren los errores.
Clusters de Error
El manejo de error en LabVIEW sigue el modelo del flujo de datos. Como los valores de datos fluyen a través de un
VI. Cablee la información del error desde el inicio del VI hasta el final. Incluya un VI para manejo de error, como el
Simple Error Handler VI, al final del VI para determinar si el VI se ejecutó sin errores. Use los clusters error in y error
out en cada VI que utilice o construya para pasar la información del error a través del VI.
Conforme el VI se ejecuta, LabVIEW hace pruebas para errores en cada nodo de ejecución. Si LabVIEW no
encuentra ningún error, el nodo se ejecuta normalmente. Si LabVIEW detecta un error, el nodo pasa el error al
siguiente nodo sin ejecutar la parte del código. El siguiente código hace lo mismo y así sucesivamente. Al final del
flujo de ejecución, LabVIEW reporta el error.
Use los controles e indicadores del cluster de error para crear entradas y salidas de error en los subVIs.
Los clusters error in y error out incluyen los siguientes componentes de información:
status es un valor Booleano que reporta TRUE si ocurre un error.
code es un entero firmado de 32 bits que identifica el error de forma numérica. Un código de error no igual a
cero unido a un estatus FALSE emite una advertencia más que un error.
source es una cadena de caracteres que identifica donde ocurrió el error.
Explicar Error
Cuando ocurre un error, haga clic con botón derecho en la orilla del cluster y seleccione Explain Error en el menú de
acceso directo para abrir la ventana de diálogo de Explain Error. La ventana de diálogo de Explain Error contiene
información sobre el error. El menú de acceso directo incluye una opción de Explicar Advertencia si el VI contiene
advertencias pero no errores.
Usted también puede tener acceso a la ventana de diálogo Explain Error en el menú Help»Explain Error.
NI Example Finder
Use el NI Example Finder para encontrar ejemplos instalados en su PC. Estos ejemplos demuestran cómo usar
LabVIEW para realizar una amplia variedad de tareas de pruebas, medidas, control y diseño. Seleccione Help»Find
Examples o haga clic en el enlace Encontrar Ejemplos en la sección de Ejemplos de la ventana de Getting Started
para iniciar el NI Example Finder.
Los ejemplos pueden mostrarle cómo usar VIs o funciones específicas. Puede dar clic con botón derecho en un VI o
función en el diagrama de bloques o en una paleta y seleccionar Ejemplos en el menú de acceso directo para
visualizar un tema de ayuda con enlaces a ejemplos para ese VI o función. Puede modificar un ejemplo de VI para
cumplir con una aplicación o puede copiar y pegar desde uno o más ejemplos en un VI que usted cree.
ni.com/examples
Además de los ejemplos que se instalan con LabVIEW, existen miles más disponibles en línea en ni.com/examples.
Los ejemplos en línea incluyen códigos de la comunidad y contribuidos que puede descargar y usar como punto de
inicio para sus propias aplicaciones.
La ventana de Context Help muestra información básica sobre objetos de LabVIEW cuando mueve el cursor sobre
cada objeto. Para activar la visualización de la ventana de Context Help seleccione Help»Show Context Help,
presione las techas <Ctrl-H> o haga clic en el botón de Show Context Help Window en la barra de herramientas.
Cuando mueve el cursor sobre el panel frontal y objetos del diagrama de bloques, la ventana Context Help muestra el
ícono para subVIs, funciones, constantes, controles e indicadores con cables sujetos a cada terminal. Cuando mueve
el cursor sobre las opciones de ventana de diálogo, la ventana Context Help muestra descripciones de esas
opciones.
Haga clic en el botón Show Optional Terminals and Full Path ubicado en la esquina inferior izquierda de la
ventana Context Help para mostrar las terminales opcionales de un panel conector y para mostrar la trayectoria
completa a un VI. Las terminales opcionales se muestran por puntas de cable, informando que existen otras
conexiones. El modo detallado muestra todas las terminales, como se muestra en la Figura 2. Las etiquetas de las
terminales requeridas aparecen en negrita, las terminales recomendadas aparecen como texto sencillo y las
terminales opcionales aparecen en color tenue. .
Haga clic en el botón Lock Context Help para bloquear el contenido actual de la ventana Context Help. Cuando el
contenido es bloqueado, al mover el cursor sobre otro objeto no se cambia el contenido de la ventana. Para
desbloquear la ventana, otra vez haga clic en el botón. Puede tener acceso a esta opción desde el menú Help.
Si existe un tema en LabVIEW Help correspondiente a un objeto que describe la ventana Context Help, aparece un
enlace azul Detailed help en la ventana Context Help. También es habilitado el botón Detailed help. Haga clic en el
enlace o el botón para visualizar LabVIEW Help para obtener más información sobre el objeto.
Ayuda de LabVIEW
LabVIEW Help es el mejor recurso para obtener información detallada sobre características o funciones específicas
en LabVIEW. LabVIEW Help ofrece temas conceptuales, con instrucciones paso por paso para usar las
características de LabVIEW e información de referencia completa.
Usted puede tener acceso a LabVIEW Help al dar clic en el enlace azul Detailed help o en el botón en la ventana
Context Help o al seleccionar Help»LabVIEW Help. También puede hacer clic con botón derecho en un objeto y
seleccionar Ayuda en el menú de acceso directo.
Después de instalar un complemento de LabVIEW como una juego de herramientas, módulo o controlador, la
documentación para ese complemento aparece en LabVIEW Help o aparece en un sistema de ayuda separado al
que tiene acceso al seleccionar Help»Add-On Help, donde Add-On Help es el nombre del sistema de ayuda para el
complemento.