También se pueden añadir frames a un TIMED LOOP mediante el menú contextual del mismo modo que se hacía con un SEQUENCE, con lo que un TIMED LOOP podrá ejecutar varios subdiagramas secuencialmente, cada uno con sus propias especificaciones temporales.
Figura 2-19. TIMED LOOP con frames.
En este caso el Right Data Node de un frame cambiará los parámetros del siguiente subdiagrama a ejecutarse en lugar de la siguiente iteración y el Left Data Node proporcionará información sobre el subdiagrama anterior.
El Left Node del primer subdiagrama y el Right Node del último proporcionan más parámetros que el resto debido a que pueden afectar al siguiente/anterior subdiagrama o también a toda la estructura.
En el mismo menú, junto a TIMED LOOP se encuentra una estructura parecida llamada TIMED SEQUENCE. La principal diferencia con el TIMED LOOP es que en este caso no se repite la ejecución de los subdiagramas, por lo tanto no se podrá especificar un periodo, pero aun así sí puede tener otras características temporales como offset, deadline, etc.
Figura 2-20. Estructura TIMED SEQUENCE.
2.7. DISABLE STRUCTURE
Estas estructuras también han aparecido recientemente, pues se usaron por primera vez en la versión 8.0. Sirven para comentar el código, por lo que son muy útiles en la depuración de programas. Hay dos tipos de estructuras de deshabilitación: la incondicional y la condicional.
La incondicional es una estructura que, como CASE, STACKED SEQUENCE o EVENT, se compone de varios subdiagramas. Uno de ellos estará habilitado y el resto estarán deshabilitados; lógicamente el habilitado será el único que se ejecute, y el resto no llegarán a compilarse. Para cambiar el subdiagrama habilitado hay que hacer uso del menú contextual de la estructura.
Figura 2-21. Estructura DISABLE.
La condicional funciona de la misma forma que la anterior, excepto que el diagrama habilitado se selecciona de forma automática dependiendo del valor de unos símbolos asociados al proyecto. Algunos símbolos predefinidos son OS y CPU.
También se pueden definir nuevos símbolos en la ventana de propiedades del proyecto correspondiente, como muestra la figura 2-22.
Figura 2-22. Ventana para crear símbolos.
Una vez creados los símbolos pertinentes, hay que editar la condición de la estructura con Edit Condition For This Subdiagram… del menú contextual. Se puede añadir más de una condición con el botón «+».
Figura 2-23. Configuración de la condición DISABLE.
2.8. FORMULA NODE
La estructura FORMULA NODE puede encontrarse tanto en el menú Programming > Structures como en Mathematics > Scripts & Formulas.
A diferencia de las anteriores, FORMULA NODE no controla el flujo de ejecución, sino que evalúa una expresión matemática escrita como texto con una sintaxis parecida al lenguaje C.
El texto consistirá en una serie de sentencias finalizadas por el símbolo «;». Las sentencias normalmente son asignaciones que usan operadores o funciones, aunque también pueden ser declaraciones de variables, bucles o sentencias de condición. También pueden insertarse comentarios de la misma manera que en C.
Casi todas las funciones que se pueden usar dentro de un FORMULA NODE tienen su equivalente como VI. Éstas son: abs(x), acos(x), acosh(x), asin(x), asinh(x), atan(x), atan2(x,y), atanh(x), ceil(x), ci(x), cos(x), cosh(x), cot(x), csc(x), exp(x), expm1(x), floor(x), getexp(x), gamma(x), getman(x), int(x), intrz(x), ln(x), lnp1(x), log(x), log2(x), max(x,y), min(x,y), mod(x,y), pow(x,y), rand( ), rem(x,y), si(x), sec(x), sign(x), sin(x), sinc(x), sinh(x), sizeOfDim(array,dim), spike(x), sqrt(x), step(x), tan(x), tanh(x).
Los operadores son:
• ** exponenciación.
• +, -, ++, - -, !, ~ suma y resta, pre-post incremento-decremento, negación lógica y complemento de bits.
• *, /, %, +, - operaciones básicas.
• ≫, ≪ desplazamientos.
• <, >, >=, <=,!=, = = comparaciones
• &, ^, |, &&, || operaciones lógicas.
• …?...:… evaluación condicional.
• = asignación.
• Las estructuras son:
• If
(condición) sentencias1 else
sentencias2
• do
sentencias while
(condición)
• while
(condición) sentencias
• for
(asignación; condición; sentencia) sentencias
• switch
(condición) lista de casos
Otras palabras reservadas son: break, case, continue, default, pi. Para más información puede consultarse la ayuda.
Presionando el botón secundario en los bordes de la estructura pueden crearse variables de entrada o de salida.
En el ejemplo dado en la figura 2-24 se tiene la fórmula de Herón para calcular la superficie de un triángulo a partir de sus lados; en ella hay tres entradas (a, b, c) que corresponden a la longitud de los lados del triángulo, un resultado intermedio que se trata como una salida más (p) y una salida que es la superficie (S).
Figura 2-24. Fórmula de Herón.
2.9. Scripts
Al igual que el nodo FORMULA NODE, hay otras estructuras que también aceptan textos, de forma que se puede combinar la programación propia de LabVIEW con la más tradicional programación textual.
El MathScript Node es otra de las nuevas estructuras de LabVIEW 8.0 y mejorada en 8.20. A diferencia de otras, MathScript Node no llama a otros programas, y su código es compilado junto con el resto del VI.
En Tools > MathScript Window… puede abrirse una ventana (Figura 2-25) para ayudar a depurar el código. En el campo Command Window pueden escribirse los comandos, también puede ejecutarse un script completo desde la pestaña Script y los resultados pueden verse en la pestaña Variables.
Figura 2-25. Depuración de código con MATH SCRIPT.