Sie sind auf Seite 1von 37

1 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

ESTRUCTURAS DE LABVIEW-MAQUINAS DE ESTADO

SERGIO HERNANDO BEDOYA ANAVE COD 1121830878 INGENIERA ELCTRICA

ING. ELECTRNICO IVALDO TORRES ELECTIVA III

UNIVERSIDAD DE PAMPLONA FACULTAD DE INGENIERAS Y ARQUITECTURA PAMPLONA-NORTE DE SANTANDER 11-04-2013

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

2 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

INTRODUCCIN LabVIEW (acrnimo de Laboratory Virtual Instrumentation Engineering Workbench) es una plataforma y entorno de desarrollo para disear sistemas, con un lenguaje de programacin visual grfico. Recomendado para sistemas hardware y software de pruebas, control y diseo, simulado o real y embebido, pues acelera la productividad. El lenguaje que usa se llama lenguaje G, donde la G simboliza que es lenguaje Grfico. Este programa fue creado por National Instruments (1976) para funcionar sobre mquinas MAC, sali al mercado por primera vez en 1986. Ahora est disponible para las plataformas Windows, UNIX, MAC y GNU/Linux. La ltima versin es la 2012, con la increible demostracin de poderse usar simultneamente para el diseo del firmware de un instrumento RF de ltima generacin, a la programacin de alto nivel del mismo instrumento, todo ello con cdigo abierto. La estructura es la disposicin y orden de las partes dentro de un todo. Tambin puede entenderse como un sistema de conceptos coherentes enlazados, cuyo objetivo es precisar la esencia del objeto de estudio. Tanto la realidad como el lenguaje tienen estructura. Uno de los objetivos de la semntica y de la ciencia consiste en que la estructura del lenguaje refleje fielmente la estructura de la realidad. Se denomina mquina de estados a un modelo de comportamiento de un sistema con entradas y salidas, en donde las salidas dependen no slo de las seales de entradas actuales sino tambin de las anteriores. Las mquinas de estados se definen como un conjunto de estados que sirve de intermediario en esta relacin de entradas y salidas, haciendo que el historial de seales de entrada determine, para cada instante, un estado para la mquina, de forma tal que la salida depende nicamente del estado y las entradas actuales.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

3 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

OBJETIVOS Conocer las funciones de cada una de las estructuras de LabVIEW, sus usos y aplicaciones. Diferenciar las ventajas y desventajas que poseen las estructuras de LabView con respecto a otros lenguajes de programacin. Conocer los diferentes modelos de mquinas de estado, con sus funciones y posibles aplicaciones.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

4 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

LabVIEW es una herramienta de programacin grfica. Originalmente este programa est orientado a aplicaciones de control de instrumentos electrnicos usadas en el desarrollo de sistemas de instrumentacin, lo que se conoce como instrumentacin virtual. Por este motivo los programas creados en LabVIEW se guardaran en ficheros llamados VI y con la misma extensin, que significa instrumento virtual. Tambin relacionado con este concepto se da nombre a sus dos ventanas principales un instrumento real tendr un panel frontal donde estarn sus botones, pantallas, etc. Y una circuitera interna. En LabVIEW estas partes reciben el nombre de panel frontal y Diagrama de bloques. 1. ESTRUCTURAS Una estructura es un elemento de control del programa. Las estructuras controlan el flujo de datos en un VI. G tiene varias estructuras: 1.1 SECUENCIA En los lenguajes tradicionales basados en texto, el orden de ejecucin se corresponde con el orden en que las instrucciones estn escritas. Ya se ha visto que el sistema de ejecucin de LabVIEW sigue el modelo de flujo de datos, un nodo necesita tener disponibles los datos en todas sus entradas para ejecutarse, pero si hay dos nodos en condicin de ejecutarse no se podr determinar, en principio, el orden de ejecucin; esto en la mayora de los casos no ser un problema, es ms, ser incluso beneficioso. No obstante puede haber ocasiones en que haya nodos independientes, ambos en situaciones de ejecutarse, pero se necesita fijar el orden de los mismos. Las estructuras de tipo Secuencia sirven precisamente para esto: Ordenan el orden de ejecucin del cdigo que est en su interior. Su diseo recuerda a los fotogramas de una pelcula. En una pelcula los fotogramas colocados al principio se visualizaran antes que los siguientes, con un orden secuencial. Las estructuras secuencia tambin tienen fotogramas, en el interior de cada frame se situara una seccin de cdigo. La ejecucin comenzara por el primer frame y cuando se pasara a ejecutar el siguiente, y as sucesivamente.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

5 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

1.1.1 STACKED SECUENCIA Disponible en versiones antiguas de LabVIEW, tiene un men en la parte superior donde se indica la numeracin del frame que se muestra, el nmero total de frame que contiene y adems de la opcin se situarse en otro. En la figura 1 se muestra superpuestos los dos frames.

Figura 1 En el men contextual (figura 2) puede desplegarse presionando con el botn secundario del ratn en el borde de la estructura, este men permite crear frames y despus del mostrado, adems de otras opciones. La opcin Sequence Local crea unos tneles entre frames y los dems para compartir datos, en uno de ellos se escribir un valor (simbolizado con una flecha hacia el exterior del frame) y en los posteriores podr leerse (con una flecha hacia el interior), no podra leer en frames anteriores al de escritura.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

6 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Figure 2. Men Figura 4. a) De un solo frame, b) Figura 3. Estructura De dos frames

1.1.2 FLAT SEQUENCE Funciona de igual forma, solo que es ms visual, los frames se ven uno a continuacin del siguiente, el orden de ejecucin ser de izquierda a derecha. En cada caso no hay sequence local y los datos podrn cablearse directamente desde un frame a otro a travs de tneles. El men contextual tambin ser el que permita aadir y eliminar frames, tambin se puede cambiar de un tipo de SEQUENCE a otro de forma automtica. Figura 5

. Figura 5. FLAT SEQUENCE


Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

7 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Figura 6. FLAT SEQUENCE Los datos en los tneles de entrada estn disponibles para todos los frames. Un tnel de salida solo puede tener una fuente de dato. Un tnel de salida puede ser emitido por cualquier frame, pero los datos solo estarn disponibles cuando se termine de ejecutar toda la secuencia de frames. Para pasar datos entre frames se puede utilizar un terminal denominado sequence local.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

8 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Figura 6. Tneles de entrada y salida 1.1.3 EJEMPLO

1.2 CASE Es el equivalente a varias de los lenguajes basados en textos: IF, SWITCH Y TRY. Su utilidad es ejecutar un cdigo u otro dependiendo de una condicin. Al igual que una estructura SEQUENCE, en este caso tambin se tiene un men en la parte superior donde se puede elegir el subdiagrama que se muestra. En este men se puede ver la condicin para ejecutar el cdigo del subdiagrama correspondiente. Una variable booleana controla el selector de subdiagrama. Solo hay dos subdiagrama.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

9 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Figura 7. Estructura CASE El valor que llega al selector es la condicin que se evalan para seleccionar el subdiagrama a ejecutar. Si el tipo de datos que se conecta al selector del case en booleano, este actuara como una sentencia if, then, else de un lenguaje de texto tradicional. Tambin puede conectarse con otro tipo de datos, en este caso actuara como un switch, case. Pueden conectarse al selector datos booleanos, numricos (incluidos enum y ring), strings y clusters de error. Una variable numrica controla el selector de subdiagrama. Pueden existir dos o ms subdiagrama. Figura 8
Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

10 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Figura 8. Control de selector de subdiagrama Una variable tipo ENUM (numrica) controla el selector de subdiagrama. Pueden existir dos o ms subdiagrama Subdiagrama 0 (default) Subdiagrama 1 Subdiagrama 2 Subdiagrama 3

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

11 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Una variable tipo string controla el selector de subdiagrama. Pueden existir dos o ms subdiagrama. Ahora cada subdiagrama se identifica a travs de una cadena de caracteres.

Se pueden pasar datos a los subdiagrama de CASE a travs de tneles. En el caso de datos de salida, todos los subdiagrama deben proporcionar un valor, hasta que esto no ocurra LabVIEW indicara el error missing assignament to tnel y aparecer el tnel con el interior vaco. Tambin existe la opcin de marcar sobre el tnel Use Default if Unwired, con esto se consigue que se asigne el valor por defecto para todos aquellos casos que no se ha cableado un valor en el tnel de salida.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

12 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Cuando el selector de subdiagrama es un dato numrico, el identificador de subdiagrama puede ser: un nmero, una lista, un rango o una lista y un rango.

1.2.3 EJEMPLO Para comprobar el funcionamiento crearemos un VI que dependiendo del nmero en una entrada de control, realizar una operacin matemtica diferente (0=suma, 1=resta, 2=multiplicacin, 3=divisin).

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

13 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

14 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

15 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

1.3 WHILE

El terminal de iteracion es el cuadro azul con el simbolo <i>. El valor de este terminal es un numero entero que ira auemntadno en una unidad por cada iteracion del bucle, empezando a contar desde cero. La condicion stop es el terminal verde de la esquina inferior derecha de la imagen. a este terminal se podra conectar un valor booleano, bien un cluster de error. A travs del menu contextual podra elegirse para los booleanos que el bucle se detenga cuando el valor sea true (stop if true) o false( continue if true), en el caso de los cluster de error sucede algo parecido con stop on error y continue while error.

Otra de las opciones que muestra el menu contextual es Add Shift Register. Esta herramienta aade dos terminales a cada lado de la estructura, estos terminales sirven para transferir un valor desde una
Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

16 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

iteracion del bucle a la siguiente. Los valores se pasarn a la siguiente iteracin en el terminal de la derecha y se leeran en el de la izquierda.

Out Tunnel o tnel de salida: Terminal colocado en el borde de la estructura (generalmente en la derecha) para que otros nodos puedan utilizar los datos generados durante las ejecuciones del subdiagrama en el interior de la estructura.

Existen dos tipos de tneles de salida: Tunnel de salida no indexado: terminal que entrega solo el dato que llego a l en la ltima iteracin. Tunnel de salida indexado: terminal que entrega los datos que llegaron a l en cada una de las iteraciones. Este terminal entrega un array del tipo de dato que tiene conectado.

El tunnel indexado entrega los cinco nmeros aleatorios generados durante las cinco iteraciones. El tunnel no indexado entrega solo el nmero aleatorio generado durante la ltima iteracin.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

17 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Utilizacin de los In tunnel en las estructuras iterativas In Tunnel o tnel de entrada: terminal colocado en el borde de la estructura (generalmente en la izquierda) para que el subdiagrama colocado en el interior de la estructura iterativa pueda utilizar este dato. Cuando el In Tunnel o tnel de entrada corresponde a un array, el mismo se puede configurar como indexado o como no indexado. Tnel de entrada no indexado en el interior del subdiagrama se tienen disponibles todos los elementos del array en cada iteracin. Tnel de entrada indexado en el interior del subdiagrama solo se tiene disponible el elemento del array cuyo ndice corresponde con el nmero de iteracin 1.3.2 EJEMPLO

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

18 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

1.4 FOR 1.4.1 ESTRUCTURA For Loop : Estructura de iteracin. Permite ejecutar N veces todas las operaciones colocadas dentro de su subdiagrama. Se utiliza cuando previamente se conoce la cantidad de veces que se desea ejecutar un subdiagrama.

Ejecuta su subdiagrama n nmero de veces, donde n es el valor conectado a la terminal n, el terminal de iteracin i proporciona el conteo actual del bucle cuyo rango va de 0 a n-1. 1.4.2 EJEMPLO Para comprobar el funcionamiento de la estructura FOR LOOP simularemos el llenado de un tanque, para ello implemente el siguiente VI:

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

19 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

1.5 EVENT La estructura EVENT fue introducida por primera vez en la versin 6.1 de LabVIEW. Es una estructura muy til en Vis con los que interacta el usuario porque mejora la eficiencia del programa. Al igual que la estructura CASE tiene varios subdiagrama y un men en la parte superior para cambiar el que s e muestra. En este men tambin se tiene una condicin que hace que el cdigo del subdiagrama correspondiente se ejecute. La diferencia con CASE es que EVENT detiene la ejecucin del hilo del programa hasta que se da esa condicin, es decir, congela el programa hasta que ocurre un evento. En la esquina superior izquierda un terminal llamado Event Timeout que se usa en el evento por defecto: el Timeout del diagrama para el evento timeout se ejecutara cuando pase el nmero de milisegundos indicados en el terminal Event Timeout.

Para aadir ms subdiagrama hay que proceder de igual manera que con CASE, es decir, a travs del men contextual. Cada diagrama debe tener asociados uno o varios eventos, estos se configuran desde la ventana Edit Events, como se puede ver en la figura.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

20 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

EJEMPLO Se muestra el uso de los filters events para descartar un evento, en este caso sirve para impedir que el usuario cierre el panel frontal del VI.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

21 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

1.6 TIMED LOOP Y TIMED SEQUENCE 1.6.1 TIMED LOOP Es una estructura que aparecio en la version 7.1. su funcionamiento consiste en repetir el cdigo de su interior con unas determinadas especificaciones de tiempo o hasta que se cumpla cierta condicin, por todo ello es muy usado en aplicaciones de tiempo real. Su dibujo recuerda a un WHILE circundado por un halo azul, aunque a diferencia de este, no es necesario establecer una condicin de parada o continuacin. Tambin presenta varios nodos, estos son (de izquierda a derecha). Input: permite configurar el funcionamiento del bucle por medio de un asistente o cableando los lados. Este nodo puede extenderse para cablear ms datos de los mostrados. Left Data: Proporciona informacin sobre la iteracin anterior, por ejemplo el tiempo que ha tardado (Iteration Duration), si le ha dado tiempo a acabar la tarea antes de que empiece una nueva ejecucin. Right Data: Se trata de una configuracin dinmica, permite modificar los parmetros de configuracin de la estructura para la siguiente iteracin. Los parmetros son prcticamente el mismo que en el Input Node, excepto el nombre del bucle y el origen del reloj. Output: Al igual que el left data Node, el output Node proporciona informacin, pero en este caso la informacin se genera despus de que el bucle se haya detenido.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

22 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

1.7 DISABLE ESTRUCTURE Estas estructuras tambin a aparecido, recientemente, se usaron por primera vez en la versin 8.0. Sirven para comentar el cdigo, por lo que son muy tiles en la depuracin de programas. Hay dos tipos de estructuras de des habilitacin: la incondicional y la condicional. La incondicional es una estructura que como CASE, STACKED SEQUENCE o EVENT se compone de varios subdiagrama. Uno de ellos estar habilitado y el resto estarn deshabilitados, lgicamente el habilitado ser el nico que se ejecute y el resto no llegaran a compilarse. Para cambiar el subdiagrama habilitado hay que hacer uso del men contextual.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

23 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

2. VENTAJAS Y DESVENTAJAS DE LAS ESTRUCTURAS DE LabVIEW. Ventajas: Las ventajas que proporciona el empleo de LabVIEW se resumen en las siguientes: Se reduce el tiempo de desarrollo de las aplicaciones al menos de 4 a 10 veces, ya que es muy intuitivo y fcil de aprender. Dota de gran flexibilidad al sistema, permitiendo cambios y actualizaciones tanto del hardware como del software. Da la posibilidad a los usuarios de crear soluciones completas y complejas. Con un nico sistema de desarrollo se integran las funciones de adquisicin, anlisis y presentacin de datos. El sistema est dotado de un compilador grfico para lograr la mxima velocidad de ejecucin posible. Tiene la posibilidad de incorporar aplicaciones escritas en otros lenguajes.

LabVIEW es un entorno de programacin destinado al desarrollo de aplicaciones, similar a los sistemas de desarrollo comerciales que utilizan el lenguaje C o BASIC. Sin embargo, LabVIEW se diferencia de dichos programas en un importante aspecto: los citados lenguajes de programacin se basan en lneas de texto para crear el cdigo fuente del programa, mientras que LabVIEW emplea la programacin grfica o lenguaje G para crear programas basados en diagramas de bloques. Desventajas: Si dos eventos ocurren al mismo tiempo, solamente el primer evento ser manejado y el segundo se perder.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

24 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

3. MAQUINAS DE ESTADO DEFINICIN Son ciertos circuitos secuenciales que tienen un nmero determinado de estados (2n). Pueden ser retroalimentados (flip flops, biestables) o mquinas sincrnicas temporizadas cuando utilizan las primeras para crear circuitos cuyas entradas son examinadas y cuyas salidas cambian con respecto a una seal de reloj controlada. En cualquier caso, se tienen unas entradas, unas salidas y unos estados. Tres bloques tpicos: Lgica de estado siguiente Registro de estado actual Lgica de salida

Partiendo del diagrama de estados: 1. Codificacin de estados creacin de un tipo 2. Registro para el vector estado actual 3. Realizacin de la lgica de prximo estado 4. Realizacin de la lgica de las salidas

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

25 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

ESTRUCTURA

Lgica de estado siguiente (F): Una funcin de las entradas y del estado actual. ? Memoria de estados: Es un conjunto de n fil flops que almacenan el estado presente de la mquina, que tiene 2n estados diferentes. La seal de reloj controla el cambio de estado en tales flip flops. ? La seal de reloj: dispone el funcionamiento de los flip flops ya sea por disparo de flanco o por disparo de pulso. ? Lgica de salida (G): Una funcin del estado actual y/o de las entradas. 3.1. Mquina de Mealy: Es la mquina de estado en la cual la salida depende tanto del estado presente como de las entradas externas. (Es el representado en la figura 1). 3.2 Mquina de Moore: Es la mquina de estado en la cual las salidas solo dependen del estado presente. Su estructura se muestra en la figura 2.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

26 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Ventajas de los sistemas sncronos: Las seales se muestrean en instantes de tiempo conocidos y bien definidos. Inmunes a glitches si la frecuencia de reloj es adecuada. Se evitan los problemas debidos a variacin de retardos en los diferentes caminos de lgica Estables frente a cambios de temperatura, tensin o proceso de fabricacin. Interfaces sencillas entre distintas entidades Gran disponibilidad de herramientas de sntesis y simulacin

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

27 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Diseo del control Entradas, salidas, estados, transiciones

Tipo enumerado Util para especificar los valores que toma el estado

architecture Enc1 of StateMachine is type State is ( Idle, S1, S2, S3, S4, S5 ); signal PresentState, NextState : State; begin ... end architecture Enc1;

Se puede definir en un package


package estados is type tipo_estado is (Q0,Q1,Q2,Q3); end estados;

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

28 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Mquina de estados de Moore

MOORE Y MEALY COMBINADAS

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

29 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

MAQUINAS DE ESTADO EN LABVIEW La plantilla de Mquina de Estados Simple le facilita definir la secuencia de ejecucin de las secciones de su cdigo. Esta implementacin particular se llama comnmente mquina de Moore, la cual determina el siguiente estado basado en las decisiones tomadas en el actual. El diseo de esta plantilla hace muy fcil insertar nuevas secciones de cdigo, removerlas o cambiar el orden en cmo las secciones se ejecutan todo sin hacer modificaciones mayores a la estructura de la aplicacin.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

30 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Notas: 1. 2. Cada estado en el diagrama de arriba corresponde a un subdiagrama de la estructura Case en Main.vi. Cada estado: Realiza una accin Le dice a la mquina de estados cul es siguiente estado al pasar una instruccin al registro de corrimiento del ciclo While. Despus de la inicializacin, la mquina de estados cambia al estado Wait for Event. Este contiene una estructura de eventos que espera cambios en el panel frontal. Cuando un usuario presiona un botn, LabVIEW reconoce el evento y cambia al subdiagrama apropiado de la estructura de eventos. Este subdiagrama inicia la transicin al estado apropiado. Cada estado puede ver la informacin del clster. Los tipos de datos contenidos en el clster se definen en Data.ctl. Los estados vlidos se listan en State.ctl, que es un typedef. Utilizar un typedef para las transiciones entre estados restringe las transiciones que se pueden utilizad, reduciendo la posibilidad de que la mquina de estados llegue a un estado no reconocido.
Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

31 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Slo el estado Stop puede detener la aplicacin. Este diseo previene paros accidentales o parciales al garantizar que: El cdigo de paro slo se ejecuta cuando el usuario lo desea. El cdigo de paro siempre se ejecuta hasta terminar.

Slo un estado se ejecuta en cada momento, y el ciclo While nico significa que todas las tareas corren a la misma tasa de velocidad. I necesita diferentes tasas o tareas en paralelo, considere las plantillas Queued Message Handler o Actor Framework, disponibles tambin en la ventana de Create Project. El estado de Wait for Event es el nico que reconoce una entrada del usuario. La mquina de estados debe estar en este estado para que pueda aceptar cualquier informacin del usuario.

Ejecutar estas Plantillas 1. En la ventana de Project Explorer abra y ejecute el Main.vi 2. D clic en los controles del panel frontal para mostrar las diferentes ventanas de dilogo

Modificar esta Plantilla Determinando sus Necesidades Antes de personalizar esta plantilla, hgase las siguientes preguntas: De qu estados consiste mi aplicacin? La respuesta determina los estados por agregar

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

32 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Para cada estado, cul debe ser el siguiente? La respuesta determina el valor del enum Next State al que cada estado enva a travs del registro de corrimiento del ciclo While

Un mismo estado puede transferir a mltiples estados dependiendo de una condicin. Un ejemplo es el Wait for Event en la plantilla, que enva al estado correspondiente, basndose en la informacin que brinda el usuario. Qu tipo de datos requiere tener cada estado? La respuesta determina qu tipo de datos agregar a Data.ctl Qu errores pueden ocurrir y cmo debe responder la aplicacin? La respuesta determina la cantidad de manejo de errores que necesita.

Agregar Cdigo de Inicializacin Siga estos pasos para agregar el cdigo de inicializacin de su aplicacin: 1. Ubique el subdiagrama Initialize de la estructura Case. 2. Agregue cdigo que inicialice su aplicacin. Por ejemplo, puede querer abrir un archive para registrar datos, inicializar los datos en Data.ctl en valores especficos, etc. 3. Decida a qu estado la aplicacin debe moverse. De manera predeterminada, el estado Initialize lleva al estado Wait for Event:

Agregar un Control que Inicia la Transicin entre Estados 1. Agregue un control al panel frontal 2. Ubique el subdiagrama Wait for Event de la estructura Case 3. Agregue un evento a la estructura de eventos 4. Configure el disparo del evento cuando el valor del control cambie. Por ejemplo:
Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

33 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

5. D clic en OK. LabVIEW crea un subdiagrama en la estructura de eventos. 6. Arrastre la terminal del diagrama de bloques para el nuevo control dentro del subdiagrama. 7. Decida a qu estado quiere ir como resultado de que el usuario interacte con el control y conecte un enum con este estado a la salida Next State:

Agregar un Estado Siga los siguientes pasos para agregar un estado: Actualice States.ctl, el typedef que contiene los estados vlidos: 1. Ubique el enum States.ctl y abra el typedef:

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

34 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

1. 2.

Agregue enum States

el

espacio

para

el

siguiente

estado

en

Escriba el nombre del nuevo estado. Por ejemplo:

3. De clic fuera del control para agregar el nombre a la lista de estados. 4. Seleccione FileApply Changes. 2. Agregue el estado a la mquina de estados: 1. 2. Agregue un subdiagrama a la estructura de caso en el Main.vi. Agregue el cdigo que el estado debe ejecutar. Mientras lo hace, sigua las siguientes recomendaciones:

Utilice las funciones Unbundle by Name y Bundle by Name para entrar y modificar los datos del estado:

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

35 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

Conecte las terminales de error de sus funciones al registro de corrimiento de error Conecte una constante de FALSE a la salida booleana del tnel. Slo el estado Stop debe detener el ciclo Cada estado debe especificar una transicin a otro. Conecte el valor del siguiente estado a la salida Next State. Puede hacerlo directamente o implementando cierta lgica condicional. La siguiente imagen muestra un ejemplo de esta lgica.:

En el cdigo mostrado arriba, si Data es mayor a 0, User State 1 ser el siguiente estado. De otra manera, User State 2 ser el siguiente. Para una lgica ms avanzada o compleja, puede utilizar una estructura de caso. Asegrese que la aplicacin contiene una transicin al siguiente estado Modificar los Tipos de Datos que un Estado puede Utilizar

Complete los siguientes pasos para modificar los tipos de datos que un estado puede utilizar:

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

36 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

1.

Complete

el

enum

de

Data.ctl

abra

el

typedef:

LabVIEW muestra la ventana de Control Editor. 2. 3. Personalice el control a sus necesidades. Seleccione FileApply Changes.

Agregar Cdigo de Paro Agregue cdigo de paro al subdiagrama Stop de la estructura de caso. Dado que este subdiagrama es el nico que puede detener la aplicacin, tiene la garanta que cualquier cdigo que le agregue se ejecutar antes de que se detenga la aplicacin. Este diseo previene paros accidentales y parciales. El cdigo de paro comnmente logra las siguientes tareas:

Libera memoria al cerrar cualquier referencia abierta. Vacia cualquier buffer que est en uso.

Escribe valores seguros a los canales de entrada de hardware. Agregar Manejo de Errores

De manera predeterminada, esta plantilla se detiene si cualquier funcin genera un error en su terminal error out. Usted puede elegir ignorar errores especficos o implementar un manejo de errores ms inteligente. Complete los siguientes pasos Para agregar manejo de errores: 1. 2. Agregue un estado Error En el estado Error, cree un cdigo que maneje los errores de la manera que desee

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

37 de 37

UNIVERSIDAD DE PAMPLONA
Una Universidad incluyente y comprometida con el desarrollo integral

3.

En todos los otros estados, cree una transicin al estado Error cuando un error ocurra. Por ejemplo:

Quitando la Interfaz de Usuario Si su aplicacin no necesita de una interfaz de usuario, siga los siguientes pasos para quitarla: 1. 2. 3. Borre todos los controles e indicadores del panel frontal Borre el subdiagrama Wait for Event de la estructura de caso en Main.vi. El paso previo elimina el subdiagrama Default, que es el que se ejecuta cuando el selector de caso recibe la instruccin de ir a un subdiagrama desconocido. Para propsitos de manejo de errores, haga que otro subdiagrama sea el predeterminado Corrija cualquier cable roto

4.

Tambin puede eliminar el Wait for Event de State.ctl. Este paso asegura que su mquina de estados nunca intente ir a un estado que se haya eliminado. Antes de hacer esto, tome nota de los enums en la aplicacin que llaman este estado. Despus de guardar el State.ctl actualizado, estos enums cambiarn. Asegrese que el nuevo estado es el que necesita.

Universidad de Pamplona Pamplona - Norte de Santander - Colombia Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750 - www.unipamplona.edu.co

Das könnte Ihnen auch gefallen