Documente Academic
Documente Profesional
Documente Cultură
Objetivo
El alumno desarrollar instrumentos virtuales a travs de software de instrumentacin virtual y lenguajes de programacin de alto nivel en aplicaciones de adquisicin de datos para monitorear y controlar las variables del proceso.
Ing. Juan Carlos Prez Lujn
Polticas de clase
Tolerancia para entrar al aula o laboratorio: 10 min, despus de ese tiempo el alumno no tendr derecho a entrar a la clase. Entregar el 70% de las prcticas para tener derecho al examen Remedial en la ltima semana de clases, en caso contrario, el alumno deber presentar el examen extraordinario correspondiente a (los) periodo(s) que reprob. Lmite de faltas por perodo de evaluacin: 3, con ms de tres faltas en un perodo de evaluacin, el alumno NO ACREDITAR dicho perodo y lo deber presentar en extraordinario.
Reportes
- Tener buena presentacin - Entregarse puntualmente - Contener la siguiente informacin: a) Nmero de equipo y nombre de integrantes b) Objetivo c) Justificacin d) Alcance e) Marco terico y/o estado del arte f) Material y/o equipo utilizado g) Desarrollo h) Resultados y conclusiones
Ing. Juan Carlos Prez Lujn
Prcticas y Ejercicios
Debe cumplir con un 80% de los requisitos solicitados como mnimo. Debe tener una buena presentacin. Debe de estar ordenados los controles e indicadores. Entregarse puntualmente. Se revisara el historial de la misma. Si el historial corresponde a otro alumno se anulara la prctica o ejercicio. El profesor asignara un numero de entregado y fecha. Al final del cuatrimestre se entregara un disco con las prcticas del cuatrimestre. Las prcticas se debern subir al sitio de la carrera.
Ing. Juan Carlos Prez Lujn
EA51V
Ing. Juan Carlos Prez Lujn
Laboratorio
Orden Limpieza Acomodo de equipos, accesorios, mobiliario. No jugar Revisar el equipo al inicio de la prctica No alimentos
Ing. Juan Carlos Prez Lujn
Criterios de evaluacin
Se vern durante el curso tres unidades con las siguientes ponderaciones. Instrumentos virtuales - 35% Adquisicin de datos - 45% Control de instrumentos - 20% Sern sujetos de evaluacin los ejercicios y prcticas realizados durante el curso. Las prcticas de la asignatura estarn orientadas a cumplir algunas necesidades concretas de los proyectos de la asignatura Integradora II. Durante la tercera unidad se har un examen de sondeo compuesto por reactivos terico-prcticos. Este examen ser individual. La calificacin de todos los trabajos, prcticas y exmenes se har en correspondencia con el modelo de competencias profesionales. De 80 a 89 -SA De 90 a 94 - DE De 95 a 100 AU
Unidades
Instrumentos Virtuales El alumno elaborar programas de computadora que simulen las funciones de un instrumentos para la automatizacin de procesos de medicin
Instrumentos
Fsico
Virtual
Instrumentos virtuales
Las aplicaciones en LabView son llamados Instrumentos Virtuales (Vis), ya que su apariencia y operacin imita a los instrumentos fsicos, tales como osciloscopios, termmetros, barmetros, multmetros. Se cuentan con herramientas para adquirir, analizar, desplegar y almacenar datos.
Inicio de LabView
Seleccionar el VI en blanco
Inicio
Control + T
Acomoda las pantallas de panel y bloques a lo largo y ancho de pantalla
Tarea Individual
Uno: Investigar los accesos rpidos del labview Ejemplo Control+T, shift+derecho Dos: protocolo RS232
Panel frontal
Es la interfaz de usuario para el VI. El usuario construye el panel frontal con controles e indicadores, los cuales son las terminales interactivas de entrada y salida del VI.
Diagrama de bloques
Despus de que se construye el panel frontal, usted adiciona cdigo agregando representaciones grficas de funciones para controlar los objetos del panel frontal.
Nodos
Entradas y/o salidas y ejecucin de operaciones cuando un VI corre.
Cables
Transferencia de datos entre los componentes del diagrama de bloques
Ing. Juan Carlos Prez Lujn
Otros componentes
Controles
Barra de herramientas
Abra un nuevo VI
Desde el diagrama de bloque conect los dos elementos colocando el puntero sobre uno de los tringulos blancos y arrastre Ing. Juan Carlos Prez Lujn
Ejecute el programa usando el botn de run, observe los cambios del led
En el panel frontal, usamos el botn derecho y en controles buscamos modern y el icono de decoraciones
Desde la barra de herramientas seleccione el icono de reordenamiento para mover a la parte de atrs a la decoracin Ing. Juan Carlos Prez Lujn
Enseguida de hacer esta operacin tanto el botn como el led quedan puestos dentro de la decoracin
e82
Ing. Juan Carlos Prez Lujn
e79
Ing. Juan Carlos Prez Lujn
E82
Operaciones booleanas Estas operaciones aparecern en color verde y solo pueden tomar dos valores, verdadero y falso
El color indica el tipo de dato Indica si es un control o indicador Indicador
Control
Ing. Juan Carlos Prez Lujn
Ejercicio 3
Abrimos un nuevo VI
Ya teniendo los dos controles de numero en el panel frontal pase al diagrama de bloques
Haga clic derecho sobre cualquier block de control numrico y seleccione la opcin de crear indicador
Ing. Juan Carlos Prez Lujn
Realice lo mismo para los dos controles, observe que se conectan en forma automtica
En la pantalla de bloques localice las funciones matemticas utilizando el botn derecho del mouse
E79
E71 E72 E74 E75
E82
Funciones
Las funciones se encuentran en la pantalla de bloques de diagrama. Usando ctrl + h se obtiene la ayuda de los componentes seleccionado. Con el men secundario podemos ver las terminales de las funciones.
Opciones de Ayuda
Simulacin
Se puede simular el Vi en pasos, con el fin de ver la transicin de los datos en el diagrama de bloques. El diagrama de bloque se ejecuta dependiendo del flujo de los datos; el diagrama de bloques NO se ejecuta de izquierda a derecha. El Nodo se ejecuta cuando los datos estn disponibles para TODAS las terminales de entrada. Los nodos suministran datos a todas las terminales de salida cuando termina.
Constantes
Son valores fijos tanto numricos, flotantes, bolanos de indicadores o controles que se utilicen para acondicionar seales de entrada o salida de los VI
Funcin de Formula
Es un Vi express que permite contar con una calculadora programable, interna en el VI. Se puede programar con formulas, para reducir el tamao de los bloques utilizados para una aplicacin. Es configurable y puede manejar hasta ocho variables
Ing. Juan Carlos Prez Lujn
Ejercicio 5
Los mismos conceptos del ejercicio 4, pero solo usando la funcin de formula
Conectar Bloques
Espacio Se puede ahorrar espacio en el diagrama de bloques deshabilitando Mostrar como un icono.
Herramienta de prueba.
Haga clic con el botn derecho sobre el cable para exhibir la ventana de prueba y as mostrar los datos mientras fluyen por el segmento de cable. Tambin puede seleccionar la herramienta de prueba desde la paleta de herramientas y hacer un clic en el cable.
Ing. Juan Carlos Prez Lujn
Punta de prueba
Cadenas
Son datos de texto.
e82
Ing. Juan Carlos Prez Lujn
e79
Ejercicio 7
Uso de cluster
Ejercicio 8
Ejercicio 9
Ejercicio 9
Crear un control de temperatura con cuatro estaciones de monitoreo. Las cuatro dan la informacin en forma automtica y variable. Deben de desplegar alarma cuando sea igual o mayor de los siguientes valores, T1=45C, T2=55C, T3=58C y T4=60C. Deben de tener cada uno un led indicador que se encienda cuando este la alarma. La toma de datos debe ser cada 2 segundos Debe de contener cada alarma dos mensajes, Alarma# y Todo en orden#. Por cada termmetro. Debe desplegarse la etiqueta cuando exista una alarma o cuando este en orden. El VI debe escribir la informacin de todos los termmetros en un archivo de texto. Se debe mostrar el estado del termmetro. Se debe obtener el promedio de los cuatro instrumentos. Los termmetros deben marcar de 0 a 70C El archivo de texto debe tener la fecha y hora. Las temperaturas deben variar entre 50 a 60 grados, Excepto el primero de 40 a 50. Se debe guardar en el archivo de texto la fecha y hora, el estado de las alarmas, el promedio y la temperatura de cada termmetro.
Ing. Juan Carlos Prez Lujn
SubVis
SubVIs
Un SubVI es un VI que puede ser utilizado dentro de otro VI. Es muy similar a un subrutina. Ventajas
Modular, se pueden conectar varios Fcil para eliminar errores No se tiene que crear cdigos Requieren menos memoria.
Panel Conector
Se puede usar un Vi como un subVi. Un subVi es un Vi que se usa dentro de otro Vi. Para usar un Vi como un subVi, este debe poseer un icono y un panel conector.
Icono y Conector
Un icono representa un VI en otro diagrama de bloque. El conector muestra las terminales disponibles para transferir datos.
Crear el icono. Crear el conector. Asignar las terminales. Salvar el VI. Insertar el VI dentro del VI principal.
Ing. Juan Carlos Prez Lujn
Crear el icono
Haga clic derecho sobre el icono en el diagrama de bloque o panel frontal. Y seleccione la opcin de Edicin de icono.
Definicin de terminales
En el panel frontal da un click derecho sobre el icono y aparecer un men. Seleccione la opcin de mostrar terminales. Seleccione una terminal en blanco y despus un control o indicador. Repita el paso anterior para cada control o indicador del programa. Cuando termine cada control e indicador, cambie de nuevo a icono. Salve el VI.
Atajos
Ctrl + H activa/desactiva la ventana de ayuda Ctrl + B remueve todos los cables rotos del diagrama de bloques. Ctrl + T acomoda las pantallas frontal y bloques en el monitor. Ctrl + E cambia entre el panel frontal y el de bloques. Ctrl + Z deshacer cambios.
Ing. Juan Carlos Prez Lujn
Ejercicio 10
Crear utilizar el ejercicio nueve como subvi y conectarlo en un nuevo VI con un conversor de temperatura. Realizar un conversor de unidades de C a F y hacerlo SubVi
Sentencias de Control
While
.While
El While Loop est localizado en la paleta de Structures en el diagrama de bloques. Seleccione While Loop desde la paleta y use el cursor para arrastrar un rectngulo de seleccin alrededor de la seleccin del diagrama de bloques que desea que se repita.
Ing. Juan Carlos Prez Lujn
While Loop
While
El While Loop siempre se ejecuta al menos una vez. El While Loop ejecuta el sub diagrama hasta que la terminal de condicin, una terminal de entrada, reciba un valor Booleano especifico. El comportamiento y apariencia por defecto de la termina es STOP IF TRUE
While
Cuando un terminal condicional es Continue if True, el While Loop ejecuta su subdiagrama hasta que la terminal condicional reciba un valor FALSE
..While
Ejemplo de While
.While
La cuenta de iteracin siempre inicia en cero. Durante la primera iteraccin la terminal de iteracin entrega un 0. En el siguiente diagrama de bloques, el While Loop se ejecuta hasta que la salida del subVi sea mayor o igual a 10 y el control Enable sea True. La Funcin And regresa True solo si ambas entradas son True. De lo contrario, retorna False.
Tneles de estructura
Los tneles alimentan datos hacia dentro y hacia fuera de las estructuras. Los tneles aparecen como un bloque slido en el borde del While Loop. El bloque es del color del tipo del dato cableado al tnel. Los datos pasan fuera del ciclo luego que este termina.
Tnel de estructura
Cuando un tnel pasa datos dentro de un ciclo, el ciclo se ejecuta solo luego que el dato llega al tnel. En el siguiente diagrama de bloques, la terminal de iteracin est conectada al tnel. El valor en el tnel no ingresara al indicador Iterations hasta que el ciclo While Loop termina su ejecucin.
Ing. Juan Carlos Prez Lujn
Tnel
Ejercicio 11
Construir un VI que genere continuamente nmeros aleatorios entre 0 y 1000 hasta que genere un nmero que coincida con un nmero seleccionado por el usuario. Determine cuantos nmeros aleatorios gener el VI antes de encontrar el nmero.
Ejercicio 12
A todos los ejercicios anteriores agrgueles un While Loop, para que solamente terminen su ejecucin con el botn stop. Nota; tenga cuidado al borrar esta estructura debido que tambin lo que este dentro de esta se borrara.
Case Estructura
Es una estructura secuencial donde pueden colocarse varias acciones del mismo proceso. Se localiza en la subpaleta de estructura. Encerramos los nodos o arrastrarnos dentro de la estructura para que sean afectado en esta seccin. Se utiliza como si usramos cartas para acomodar acciones. Solo es un caso a la vez de ejecucin.
Ing. Juan Carlos Prez Lujn
Selector de Case
Son muchos los tipos de controles que pueden seleccionar el Case que utilicemos. Booleano Cadena Numrico Realizar un VI con ejemplos de los tipos de control.
Ejercicio 13
Construir un VI que con interruptor habilite y deshabilite 4 interruptores que controlan 4 salidas. Adems que muestre el estado de los interruptores. Solo se pueden encender los leds con los botones. Solo funcionan los botones con el interruptor de habilitado. Debe contar con:
Los botones deben tener, temperatura, humedad y nivel 4 leds. 4 botones con indicador. 1 interruptor de 2 posiciones. 1 botn de paro. Un indicador de texto. Decoraciones
Ing. Juan Carlos Prez Lujn
presin,
Ejercicio 14
Realizar un modulo con cuatro operaciones suma, resta, multiplicacin, divisin. Con un selector de 4 posiciones se debe seleccionar la operacin deseada. Se debe mostrar el tipo de operacin en la caratula de la aplicacin. Debe contar con un botn de paro. Un selector de operacin. Un indicador del resultado. Dos casillas para la captura de los nmeros.
31-0112 E79
Ejercicio 15
Realizar el ejercicio 4 usando While y Case. Debe tener un men para seleccionar el tipo de operacin que se este realizando Una casilla que nos indique el tipo de operacin que estemos realizando. Solo se puede realizar una operacin a la vez. Debe de contar con un botn de paro. Decore y combine colores. Deber de contar con 10 operaciones matemticas. Deber de contar con 10 operaciones de comparacin
Examen
Realizar un VI con las siguientes caractersticas
Contar con una clave de acceso codificada que de acceso a todas las funciones del VI. Al digitalizar la clave debe mostrar cualquiera de estas dos leyendas acceso correcto acceso incorrecto, segn sea el caso. Acceso correcto. Debe activar un modulo de calculo del RFC de cualquier persona sin la homoclave, tomando en cuenta las 2 primeras letras del apellido paterno, la primera del apellido materno, la primera letra del primer nombre, los 2 ltimos dgitos del ao de nacimiento, los 2 dgitos del mes y los 2 dgitos del da de nacimiento, todo en maysculas. El modulo de RFC debe contar con un botn selector para dar inicio al calculo del mismo Debe mostrar en la casilla del RFC lo siguiente segn sea el caso RFC o la leyenda No calculado Debe activar con un modulo de calculadora, con las siguientes operaciones suma resta, multiplicacin y divisin, este debe ser un subVi El modulo de suma debe tener 2 casillas para la captura de datos, una casilla donde muestre el resultado, una casilla que muestre error en alguna operacin y un selector para seleccionar las operaciones. Debe guardar la informacin de todos los mdulos, RFC, operacin, resultado, etc Acceso Incorrecto Debe tener un led indicador marcado con la leyenda error. El indicador debe estar parpadeando en color rojo cuando la clave sea incorrecta ha intervalos de medio segundo. Debe se guardado como E-Apellido paterno-Apellido materno-Nombres-grupo. Debe tener decoraciones. Debe tener una presentacin esttica. Debe de tener por lo menos tres colores diferentes en su presentacin. Debe ser amigable para el usuario. No debe perderse en texto.
E x a m e n 2
Examen
E72 28-01-11
E74 28-01-11
E75 27-01-11
Variables locales
Una variable local, es un nodo con la informacin de un indicador que se puede usar para cambiar el estado o tomar la informacin de este.
Cambio de estado
Este cdigo es un ejemplo como se puede hacer el cambio de estado a otro de un elemento utilizado un conteo ciclado.
Estructura de Secuencia En la subpaleta de control de ejecucin. Ejecuta diagramas secuencialmente. Puede agregar tantas secuencias se necesite
Estructura de secuencia
Es como ver fotografas en secuencia, una detrs de la otra, lo limita el tiempo de espera que le establecemos. Al igual que Case se le puede agregar Frame, para aumentar el numero de secuencias. Y se puede acomodar como el Case como si fuera una baraja Pero a diferencia esta condicionado al cambio de frame no por un condicin externa si no por la terminacin de su proceso interno.
Ing. Juan Carlos Prez Lujn
Condiciones
Al igual que el Case, el frame necesita forzosamente para funcionar un ciclo While
Estado dos.
Al termino del tiempo de la luz roja se enciende la luz verde por un tiempo determinado. Las luz roja se apaga al mismo tiempo. La luz amarrilla queda apagada.
Estado tres.
Termina el tiempo de encendido de la luz verde. Sigue apagada la luz roja. Enciende la luz amarrilla por un lapso de tiempo determinado.
Diagrama
Estado 1 Roja=1
Amarrillo=0 Verde=0
T2=y
Semforo
Tenemos aqu la imagen del panel frontal del instrumento virtual. Simplemente son tres indicadores que modificamos su colores tanto en el estado on y off. Lo importante es cambiar el estado del indicador. Por lo tanto tenemos que usar variables locales para modificar su ultimo estado de la variable seleccionada.
Ing. Juan Carlos Prez Lujn
Ejercicios 16, 17 y 18
E71 01-02-11
E72 31-01-11
E74
E75 31-01-11
Ejercicio 16
Utilizando 8 indicadores realizar Vi con:
Corrimiento a la izquierda a derecha Con un desplazamiento de segundo por indicador. Debe de contar con un botn de paro. Es continuo. Realice este ejercicio usando Case y secuencia
E71 Ing. Juan Carlos Prez Lujn 01-02-11 E72 31-01-11 E74 01-02-11 E75 31-01-11
Ejercicio 17
Utilizando 8 indicadores realizar tres Vi con:
Corrimiento a la derecha a izquierda Con un desplazamiento de segundo por indicador. Debe de contar con un botn de paro. Es continuo. Realice este ejercicio usando Case y secuencia
E71 02-02-11
Ing. Juan Carlos Prez Lujn
E72 02-02-11
E74 03-02-11
E75 01-02-11
Ejercicio 18
Utilizando 8 indicadores realizar Vi con:
Corrimiento ambos lados Con un desplazamiento de segundo por indicador. Debe de contar con un botn de paro. Es continuo. Realice este ejercicio usando Case y secuencia
E71 02-03-11
Ing. Juan Carlos Prez Lujn
E72 02-03-11
E74 03-02-11
E75 01-02-11
Ejercicio 19
Parte A agregar dos estados mas al semforo que hicimos en clase.
Parpadeo de la luz verde. Parpadeo de la luz amarrilla. Frecuencia de parpadeo 0.5 segundo Elaborar el diagrama de estados Solo cinco etapas ( no mas de 5 case o 5 frame principales). Se debe realizar un Vi con 19case y otro con 19frame.
E71
E72
E74
E75
Hardware
Las conexiones externas son:
USB DB25 digital I/O (D lneas) Status LED 30 terminales tipo clema.
La conexin USB proporciona alimentacin y comunicacin. Ninguna fuente de alimentacin externa es necesaria. Los 5 voltios estn disponibles en varios lugares son salidas. No conecte una fuente de alimentacin.
Desarrollo
Tome un pedazo de cable y conecte uno de sus extremos a la clema 5V, dejando el otro extremo libre. Ejecute el programa que acaba de hacer. Observe en la ventana de Panel frontal que el indicador esta apagado, es decir est registrando un cero lgico en la entrada IO0. Introduzca el extremo libre del cable en una de las clemas IO0 en la interfaz. Observe que el LED se enciende, mostrando as que se est registrando un uno lgico en la entrada IO0. Detenga la corrida del programa.
Ing. Juan Carlos Prez Lujn
Desarrollo
Cambie en el cdigo del programa el nmero del canal de entrada, por ejemplo, puede seleccionar IO3. Ejecute el programa nuevamente. Cambie el cable de la entrada de IO0 y conctelo a la entrada IO3. Observe en el panel frontal que el LED indica el estado del mismo. Desconecte el cable.
Desarrollo
Ejecute el programa que acaba realizar. Con el multimetro mida la tensin entre las clemas GND y IO0, debe estar en 0.0V o muy cercano, correspondiente a un cero lgico. Cambie el estado del interruptor. Mida nuevamente con el multimetro la tensin entre las clemas GND y IO0, est debe ser 5V o yn valor muy cercano a ste, correspondiente a un uno lgico. Detenga el programa. Ahora conecte un LED de cualquier color a las terminales IO0 y GND. Ejecute el programa y cambie el estado del interruptor. Detenga el programa.
Ejercicio 20
Usando el ejercicio 19 cree un nuevo VI. Implemente el sub necesarios para que sea funcional en la tarjeta labjack. Material necesario.
Multmetro. Pinzas de punta. Cable calibre 22. Labjack Resistencias de 330 ohm (3). Leds rojo, amarrillo verde uno de cada uno Utileras de Labjack cargadas en PC.
E71 08-02-11
E72 09-02-11
E74 08-02-11
E75 08-02-11
Ejercicio 21
Parte B con un selector tener las siguientes opciones.
Trafico Mantenimiento todas prendidas. Precaucin todas parpadeando. Revisin todas apagadas
Parte C
Realizar un circuito de potencia para conectar la tarjeta a tres lmparas de alterna.
E71 09-02.11
E72 14-02-11
E74 11-02-11
E75 14-02-11
E71 14-02-11
E72 14-02-01
E74 14-02-11
E75 14-02-11
Calibracin
1.
1.
2. 3.
4. 5. 6.
Ejemplo LJ EAO
Reproduzca el siguiente cdigo
E71 16-02-11
E72 16-02-11
E74 16-02-11
E75 16-02-11
Salidas Analgicas
Conecte las clemas de AO0 con la clema AI0. Haga lo mismo con la clema AO1 y la AI1 usando dos pedazos de cable. Ejecute el programa que acaba de hacer. En la ventana Frontal establezca en los controles de salida analgica 0 y salida analgica 1, es muy cercano a los establecidos en los controles. Observe que el valor mostrado por los indicadores salida 0 y salida 1 es muy cercano al establecido en los controles. Repita los dos puntos anteriores para diferentes valores de tensin entre 0 y 5 volts. Detenga el programa y desconecte.
Ejercicio 22
Usando cuatro estaciones de temperatura crear un VI
Ejercicio 22
Usando cuatro estaciones de temperatura crear un VI :
Debe de calibrar la seal del sensor con la temperatura real. Caracterice los sensores. Utilice un bao trmico. Muestree la temperatura de cada sensor en tiempo real. De el promedio de la temperatura. De alarmas a diferentes. Acceso con un usuario y contrasea especifica. Modulo de conversin de unidades subVi. Graficar las temperaturas y el promedio. El Vi podr ajustar el disparo de las alarmas. Debe encender un ventilador cuando una de las temperaturas exceda. Utilice los ejercicios 9 y 10 como referencia. La informacin debe estar en un archivo de texto. Proporcionar una alarma sonora por sensor. 30, 50, 52,55 Proporcionar una alarma luminosa por sensor. 45,55,58,60 Tolerancia del sensor 3. Intervalo de 0 a 100 Remedial Incluir un reporte y desviacin de 1
Ing. Juan Carlos Prez Lujn
E71 1-03-11
E72 1-03-11
E74 1-03-11
E75 1-03-11
Diagrama de bloques
Tarjeta de adquisicin de datos LabJack
PC LABVIEW
Remedial
Remedial
E71
E72
E74
E75
U s a n d o c u a t r o e
Remedial
Remedial
Ejercicio 23
Manipulacin de informacin en forma remota
Comunicar dos computadoras por medio del puerto serial. La computadora 1 ser la que manipule una tarjeta de adquisicin de datos que se encuentre montada en la computadora 2. Se debe manipular dos salidas digitales y dos entradas analgicas. Se debe poder manipular las salidas digitales desde la PC1. La tarjeta debe estar montada en la PC2. Se debe graficar las entradas analgicas desde la PC1 en una sola grafica.
E71
E72
E74
E75
Comunicacin serial
El protocolo de comunicacin RS232 es conocido como el puerto serial de las computadoras, este permite la comunicacin entre otros dispositivos tales como otra computadora, el mouse, impresora, para los microcontroladores, etc. La comunicacin RS232 es de tipo serial, ya que los bits vienen uno detrs de otro. El protocolo de comunicacin ms comn de los mtodos de comunicaciones el RS232. Para la comunicacin se utiliza un cable en el cual se encuentra un conector llamado DB9, se llama as por que tiene la forma de D y tiene 9 patitas o 9 entradas.
Serial
Utilizaremos el ejemplo que tiene el LabView para implementar la comunicacin serial. Basic Serial Write and Read.vi, el cual encontramos desde los ejemplos ya instalados. Se necesita un cable serial uno a uno.
Cuando en el panel frontal se tiene demasiados controles, indicadores, graficas, etc. Se vuelve complicado y cansado la pantalla. Existen varias herramientas que mejora el aspecto y administracin de la pantalla frontal. Una de ellas son los contenedores, los cuales ayudan a simplificar las pantallas del labview.
Tab Control
El Tab Control lo encuentras en contenedores. Funciona como un archivador que puede visualizar distintas condiciones en un mismo espacio. Este se debe concetar a
Ejercicio 24 comunicacin tcp entre varios usuarios Ejercicio 25 comunicacin TCP entre equipos y labjack control de un motor a pasos
Otro mtodo
El Nodo Feedback es otro mtodo usando en LabVIEW para retener informacin desde una iteracin previa.
E71
E72
E74
E75
Los registros de desplazamiento son similares a las variables estticas en los lenguajes de programacin basados en texto. Use registros de desplazamiento cuando desee pasar valores desde iteraciones previas a travs del ciclo a la iteracin siguiente. Un registro de desplazamiento aparece como un par de terminales, como se muestra a continuacin, directamente opuestos uno con el otro a los lados verticales del borde del ciclo.
Registro previo
La terminal del lado derecho del ciclo contiene una flecha hacia arriba y almacena el dato a la terminacin de una iteracin. LabVIEW transfiere el dato conectado al lado derecho del registro a la siguiente iteracin. Luego que el ciclo se ejecuta, la terminal en el lado derecho del ciclo retorna el ltimo valor almacenado en el registro de desplazamiento.
Creando Cree un registro de desplazamiento haciendo clic derecho en el borde izquierdo o derecho de un ciclo y seleccionando Add Shift Register desde el men rpido.
E71
E72
E74
E75
Los registros de desplazamiento apilados pueden ocurrir solo en el lado izquierdo del ciclo ya que el terminal derecho transfiere el dato generado solo desde la iteracin actual a la iteracin siguiente, como se muestra en la siguiente figura.
Ejemplo
E71
E72
E74
E75
Ejemplo
E71
Ing. Juan Carlos Prez Lujn
E72
E74
E75
Ejercicio 27
Ciclo For
Un For Loop, mostrado a continuacin, ejecuta un subdiagrama un nmero fijo de veces. La siguiente ilustracin muestra un For Loop en LabVIEW, un diagrama de flujo equivalente de la funcionalidad del For Loop y un ejemplo de pseudocdigo de la funcionalidad del For Loop.
FOR LOOP
El For Loop est localizado en la paleta FunctionsAll Functions Structures. Tambin puede colocar un While Loop en el diagrama de bloques, hacer clic derecho en el borde del While Loop y seleccionar Replace with For Loop desde el men rpido para cambiar un While Loop por un For Loop. El valor en el terminal de cuenta (una terminal de entrada), mostrado a continuacin, indica cuantas veces se repite el subdiagrama. El terminal de iteracin (un terminal de salida), mostrado a continuacin, contiene el nmero de iteraciones realizadas.
For
La terminal de cuenta siempre inicia en cero. Durante la primera iteracin, la terminal de iteracin entrega 0.
For
El For Loop difiere del While Loop en que el For Loop se ejecuta un nmero fijo de veces. Un While Loop para su ejecucin del subdiagrama solo si existe el valor en el terminal condicional.
Ejemplo 28
E71
E72
E74
E75
Ing. Juan Carlos Prez Lujn
Ejercicio 29
Contador
El contador con un pulso deber de ir incrementando en cuenta de uno. Al llegar el conteo a 10 deber de decrementar en uno. Cuando llegue a cero deber de reiniciar el contador ascendente y comenzar de nuevo
30
Control de iluminacin de una casa.
4 habitaciones, 3 baos, Sala, Comedor, Cocina, Cochera, Patio trasero. Solo lo pueden modificar con calve de acceso. El control debe tener dos modos, manual y automtico. Modo manual.
Cada sitio se puede prender y apagar en forma independiente, con un interruptor.
Modo automtico.
Estarn encendiendo en forma aleatoria siguiendo lo siguiente:
Habitacin1-Bao1 Habitacin3-Comedor Habitacin2-Sala Habitacin4-Cochera Cocina-Bao2-patio trasero.
For
El siguiente For Loop genera un nmero aleatorio cada segundo durante 100 segundos y muestra los nmeros aleatorios en un indicador numrico.
Conversin Numrica
LabVIEW puede representar tipos de datos numricos como enteros con signo y sin signo, valores numricos de punto flotante o valores numricos complejos. Normalmente, cuando usted cablea diferentes tipos de representacin a las entradas de una funcin, la funcin regresa una salida en el formato ms largo o amplio. LabVIEW selecciona la representacin que emplee ms bits. Si el nmero de bits es el mismo, LabVIEW selecciona sin signo sobre con signo. Por ejemplo, si usted cablea un DBL y un I32 a una funcin Multiply, el resultado es un DBL, como se muestra en la Figura siguiente. El entero con signo de 64 bits es coercionado ya que este emplea menos bits que el valor numrico de punto flotante y precisin doble. La entrada menor de la funcin Multiply muestra un punto gris, llamado punto de coercin, que indica la ocurrencia de la coercin de un nmero.
Sin embargo, el terminal de cuenta del For Loop trabaja de manera opuesta. Si usted cablea un valor numrico de precisin doble y punto flotante al terminal de cuenta de 64 bits, LabVIEW convierte el valor numrico largo a un entero con signo de 32 bits. Aunque la conversin es contraria a la conversin estndar normal, esta es necesaria, ya que un For Loop solo se puede ejecutar un nmero entero de veces.
Temporizando un VI
Cuando un ciclo termina de ejecutar una iteracin, inmediatamente inicia la ejecucin de la siguiente, a menos que alcance una condicin de paro. Muy frecuentemente, usted requiere controlar la frecuencia o temporizacin de la iteracin. Por ejemplo, si est adquiriendo datos, y desea adquirirlos una vez cada 10 segundos, necesita de una forma para temporizar las iteraciones del ciclo para que ellas ocurran una vez cada 10 segundos.
Funciones de Espera
Una funcin de espera se coloca dentro de un ciclo para permitir que el VI duerma por una cantidad determinada de tiempo. Esto permite que su procesador conduzca otras tareas durante el tiempo de espera. Las funciones de espera usan el reloj de milisegundos del sistema operativo
La funcin Wait Until Next ms Multiple, mostrada a la izquierda, monitorea un contador en milisegundos y espera hasta que este alcance un mltiplo de la cantidad que usted especifica. Use esta funcin para sincronizar actividades. Coloque esta funcin en un ciclo para controlar su velocidad de ejecucin. Para que esta funcin sea efectiva, su tiempo de ejecucin del cdigo debe ser menor al tiempo especificado para esta funcin. La velocidad de ejecucin para la primera iteracin del ciclo es indeterminada.
La funcin Wait (ms), mostrada a la izquierda, espera hasta que el contador de milisegundos cuente en una cantidad igual a la entrada que usted especifica. Esta funcin garantiza que la velocidad de ejecucin del ciclo es al menos la cantidad en la entrada que usted especifica.
Ejercicio
Realizar varios vis para ver la diferencia entre cada uno de los temporizadores.
Realizar cierto ciclo con un cdigo y temporizarlo con las distintas funciones y ver las diferencias.
Use un registro de desplazamiento sin inicializar para preservar el estado de la informacin entre subsecuentes ejecuciones de un VI. La siguiente figura muestra un registro de desplazamiento sin inicializar.
Ejercicio
Realizar el promedio de los 3 ltimos nmeros (simulate signal, random number, cualquier nmero), utilizando shift registers y feedback nodes.
Manejo de arreglos
Arreglos
Un arreglo consiste de elementos y dimensiones.
Los elementos son los datos que conforman el arreglo. La dimensin es la longitud, altura o profundidad de un arreglo.
Un arreglo puede tener una o ms dimensiones y tantos como 231, pero solo un elemento por dimensin, permitidos por memoria. Se puede construir arreglos con tipos de datos numricos, booleanos, rutas, cadenas, formas de onda y clusters. Considere el uso de arreglos cuando trabaje con una con una coleccin de datos similares y cuando realice evaluaciones repetitivas. Los arreglos son ideales para almacenar datos que se recolecta desde forma de onda o datos generados en ciclos, donde cada iteracin de un ciclo produce un elemento del arreglo.
Arreglos
Datos Relacionados
Algunas veces es benfico agrupar datos relacionados entre s. Los arreglos y los clusters se usan para este propsito. Los arreglos combinan datos del mismo tipo en una estructura de dato, y los clusters combinan datos de mltiples tipos en una estructura de dato. Las definiciones de tipo se usan frecuentemente para definir arreglos y clusters personalizados.
Arreglos
Un arreglo consiste de elementos y dimensiones. Los elementos son los datos que conforman el arreglo. Una dimensin es la longitud, altura o profundidad de un arreglo. Un arreglo puede tener una o ms dimensiones y tantos como (2 a la 31) 1 elementos por dimensin, permitidos por memoria. Usted puede construir arreglos con tipos de datos numricos, Booleanos, rutas, cadenas, formas de onda y clusters. Considere el uso de arreglos cuando trabaje con una coleccin de datos similares y cuando realice evaluaciones repetitivas. Los arreglos son ideales para almacenar datos que usted recolecta desde formas de onda o datos generados en ciclos, donde cada iteracin de un ciclo produce un elemento del arreglo.
Restricciones
Usted no puede crear arreglos de arreglos. Sin embargo, puede usar un arreglo multidimensional o crear un arreglo de clusters donde cada cluster contiene uno a ms arreglos. Tambin, no puede crear arreglos de controles de subpanel, controles tab, controles .NET, controles ActiveX, mapas o grficos multiploteo XY.
Panel frontal
Arreglos de Dos-Dimensiones
Los ejemplos anteriores usan arreglos 1D. Un arreglo 2D almacenan elementos en una grilla. Esto requiere un ndice de columna y uno de fila para localizar un elemento, los cuales ambos se basan en cero. La siguiente figura muestra un arreglo 2D de 8 columnas por 8 filas, el cual contiene 8 8 = 64 elementos.
Inicializando Arreglos
Puede inicializar un arreglo o dejarlo sin inicializar. Cuando un arreglo se inicializa, usted define el nmero de elementos en cada dimensin y el contenido de cada elemento. Un arreglo sin inicializar posee dimensiones ms no elementos. La Figura siguiente muestra un control de arreglo 2D sin inicializar. Observe que los elementos estn todos oscurecidos. Esto indica que el arreglo est sin inicializar.
Para crear una constante de arreglo en el diagrama de bloques, seleccione una constante de arreglo en la paleta Functions, coloque el armazn de arreglo en el diagrama de bloques y ponga una constante de cadena, constante de nmero o constante de cluster en el armazn del arreglo. Puede usar una constante de arreglo para almacenar datos constantes o como base en la comparacin con otro arreglo. Las constantes de arreglo tambin son tiles para pasar datos hacia un subVI.
Entradas de Arreglos
Si habilita el auto-indexado en un arreglo cableado a un terminal de entrada en un For Loop, LabVIEW fija el terminal de cuenta para el tamao del arreglo, as usted no requiere cablear el terminal de cuenta. Ya que puede usar los For Loops para procesar un elemento a la vez en los arreglos, por defecto LabVIEW habilita el auto-indexado para cada arreglo que cablee a un For Loop. Deshabilite el auto-indexado si no requiere procesar un elemento a la vez del arreglo.
Salidas de Arreglos
Cuando auto-indexa un tnel en un arreglo de salida, este arreglo de salida recibe un nuevo elemento desde cada iteracin del ciclo. Por tanto, los arreglos de salida autoindexados siempre son iguales en tamao al nmero de iteraciones. El cable desde el tnel de salida hacia el indicador de arreglo se vuelve ms grueso a medida que cambia a un arreglo en el borde del ciclo, y el tnel de salida contiene corchetes cuadrados representando un arreglo, como se muestra en la Figura
Puede usar dos For Loops, uno dentro de otro, para crear arreglos 2D. El For Loop exterior crea los elementos en las filas y el For Loop interior crea los elementos en las columnas, como se muestra en la Figura
En el panel frontal agregue una intensity chart y una graph, vea que tipo de datos se le tienen que enviar y grafique algun numero aleatorio, tambien grafique el resultado de una funcion seno con 2 ciclos for anidados, vea que es lo que pasa y experimente con los controles e indicadores disponibles, ademas de las funciones de arreglo.
TARJETA DAQ
CARACTERSTICAS GENERALES
LAS SEALES ANALGICAS GENERALMENTE SON UTILIZADAS PARA MEDIR FENMENOS FSICOS QUE CONTINUAMENTE VARAN ENTRE VALORES, COMO LO ES LA TEMPERATURA, PRESIN, FLUJO.
6.
CANAL y MUESTRA
ES LA CONEXIN ELCTRICA A UNA SEAL. MUESTRA ES LA CONVERSIN DE UNA SEAL ELCTRICA A UN VALOR DIGITAL.
BUSQUEDA (SCAN)
ES LA CONEXIN DE UNA O MAS MUESTRAS, EN UNA O MAS CANALES, HABLANDO DEL MISMO TIEMPO (O CERCA DE EL MISMO TIEMPO EN LA ADQUISICIN). ALGUNAS TARJETAS DAQ PUEDEN TENER CERCA DE UNOS CUANTOS MICROSEGUNDOS DE RETRASO ENTRE CANALES. PARA REDUCIR ESTE TIEMPO HAY QUE UTILIZAR SISTEMAS DAQ CON MUESTREO SIMULTANEO.
MULTIPLEXORES
SON USADOS PARA UTILIZAR UN SOLO AMPLIFICADOR DE INSTRUMENTACIN EN VEZ DE UTILIZAR UNO POR CANAL SE UTILIZA UN MULTIPLEXOR PARA PODER AHORRAR DINERO EN COMPONENTES.
PGIA (programable gain instrumentation amplifier) multiplica un voltaje por un factor programado por el usuario
LA TIERRA DE LA SEAL QUE ESTAS MIDIENDO, PUDE SER UN VOLTAJE DIFERENTE QUE LA TIERRA DE NUESTRA DAQ. ESTO PUEDE CAUSAR INCONGRUENCIAS EN LA MEDICIN FINAL, COMO EXISTE DIFERENCIA DE POTENCIAL ENTRE TIERRAS OCASIONA LO QUE SE LLAMA GROUND LOOP
DE
EN PALABRAS TCNICAS ES LA RESISTENCIA QUE TENEMOS EN LA EQUIVALENCIA DE THEVENING. A MENOS IMPEDANCIA MAS FUERTE ES LA FUENTE DE LA SEAL. HAY QUE MANTENER EL MENOR RANGO DE IMPEDANCIA ENTRE LA FUENTE Y NUESTRO SISTEMA DAQ PARA PODER TENER MEJORES MEDICIONES Y MENOR ERROR.
GENERALMENTE ESTO NO ES UN PROBLEMA, LAS FUENTES TIPICAS DE SEAL COMO RTD, GALGAS, TERMOPARES, TERMISTORES TIENEN UNA MUY BAJA IMPEDANCIA COMPARADA CON LA DE LAS DAQ, LAS CUALES ESTN DISEADAS PARA TENER IMPEDANCIAS DE G OHM.
UNA CONEXIN REFERENCIADA ES LA CUAL EN LA QUE TENEMOS VARIAS SEALES ANALGICAS COMPARTIENDO LA MISMA REFERENCIA CON UN CABLE POR SEAL Y UN COMN PARA TODAS LAS SEALES ANALGICAS.
RSE Y NRSE
RSE
NRSE
RESOLUCIN
ES LA MENOR DIFERENCIA EN UN VALOR MEDIDO POR NUESTRO SISTEMA (EL MNIMO CAMBIO QUE PUEDE DETECTAR).
TIEMPO DE ESCANEO
ES SIMPLEMENTE EL NMERO DE VECES POR SEGUNDO QUE EL ADC MIDE EL VALOR DE ENTRADA. COMUNMENTE LLAMADO: (PARTICIPACIN GRUPAL)
ALIASING
ES UN EFECTO EL CUAL SE DA CUANDO LA FRECUENCIA DE MUESTREO NO ES AL MENOS 2 VECES MAYOR A LA FRECUENCIA DE LA SEAL A MUESTREAR O CONVERTIR.
EL ALIASING DA COMO RESULTADO OTRA SEAL DE MENOR FRECUENCIA A LA SEAL ACTUAL. NO EXISTE MODO DE REPONER O REPARAR CON ALGO EN LA COMPUTADORA CUANDO YA SE HA HECHO LA CONVERSIN. EXISTEN DAQS CON FILTROS ANTIALIASING.
WAVEFORM
TRIGGERING
SIGNIFICA UNA SEAL DE INICIO PARA LA DAQ (LA USB SI TIENE UN TRIGGER PFI0). ESTA SEAL INDICA A LA DAQ EL INICIO DE ALGO CUANDO EL VOLTAJE EXCEDE (BORDE DE DISPARO POSITIVO O NEGATIVO).
Variables
En LabVIEW, es el flujo de datos en lugar del orden secuencial de comandos quien determina el orden de ejecucin de los elementos del diagrama de bloques. Por tanto, usted puede crear diagramas de bloques que poseen operaciones simultneas. Por ejemplo, puede ejecutar dos For Loops simultneamente y desplegar los resultados en el panel frontal, como se muestra en el siguiente diagrama de bloques.
Sin embargo, si usted usa cables para pasar datos entre diagramas de bloques paralelos, ellos ya no operarn en paralelo. Los diagramas de bloques en paralelo pueden ser dos ciclos paralelos en el mismo diagrama de bloques sin ninguna dependencia del flujo de datos o dos VIs separados que son llamados al mismo tiempo. El diagrama de bloques en la Figura no ejecuta los dos ciclos en paralelo debido al cable entre los dos subVIs.
Los cables crean una dependencia de dato, ya que el segundo ciclo no se inicia hasta que el primer ciclo termine y pase el dato a travs de su tnel. Para asegurarse que los dos ciclos se ejecuten concurrentemente, remueva el cable. Para pasar datos entre los subVIs, use otra tcnica, tal como una variable.
En LabVIEW, las variables son elementos del diagrama de bloques que le permiten acceder o almacenar datos en otra localizacin. La localizacin actual del dato vara dependiendo del tipo de variable. Las variables locales almacenan datos en controles e indicadores del panel frontal. Las variables globales y variables compartidas en procesos simples almacenan datos en depsitos especiales que usted puede acceder desde mltiples VIs. Las variables globales funcionales almacenan datos en registros de desplazamiento de while loops. Independiente de donde la variable almacena los datos, todas las variables le permiten saltar el flujo normal de datos al pasar datos desde un lugar a otro sin conectarlos con un cable. Por esta razn, las variables son tiles en las arquitecturas paralelas, pero tambin poseen ciertos inconvenientes, tal como condiciones de ejecucin.
Por ejemplo, suponga que posee dos VIs ejecutndose simultneamente. Cada VI contiene un While Loop y escribe puntos de datos a una grfica de forma de onda. El primer VI contiene un control Booleano para terminar ambos VIs. Usted debe usar una variable global para terminar ambos ciclos con un solo control Booleano. Si ambos ciclos estuvieran en un solo diagrama de bloques dentro del mismo VI, podra usar una variable local para terminar los ciclos.
Seleccione una variable global, mostrada a continuacin, desde la paleta Functions y colquela en el diagrama de bloques.
Haga doble clic en el nodo de la variable global para mostrar el panel frontal del VI global. Coloque controles e indicadores en este panel frontal de la misma forma que lo hace en un panel frontal estndar. LabVIEW usa etiquetas propias para identificar las variables globales, as etiquete los controles e indicadores del panel frontal con etiquetas propias descriptivas.
Puede crear varios VIs globales simples, cada uno con un objeto de panel frontal, o puede crear un VI global con mltiples objetos de panel frontal. Un VI global con mltiples objetos es ms eficiente ya que usted puede agrupar entre s variables relacionadas. El diagrama de bloques de un VI puede incluir varios nodos de variables globales que estn asociados con controles e indicadores en el panel frontal de un VI global. Estos nodos de variables globales pueden ser ya sea copias del primer nodo de variable global que usted coloc en el diagrama de bloques del VI global, o nodos de variable global de VIs globales que coloc en el VI actual. Usted coloca VIs
globales en otros VIs de la misma forma que coloca subVIs en otros VIs. Cada vez que coloque un nuevo nodo de variable global en un diagrama de bloques, LabVIEW crea un nuevo VI asociado solo con este nodo de variable global y las copias de este
Luego que termine de colocar objetos en un panel frontal de un VI global, gurdelo y regrese al diagrama de bloques del VI original. Entonces debe seleccionar el objeto en el VI global que desea acceder. Haga clic derecho en el nodo de la variable global y seleccione el objeto de panel frontal desde el men rpido Select Item. El men rpido lista todos los objetos del panel frontal en el VI global que poseen etiquetas propias.
Tambin puede usar la herramienta Labeling para hacer clic en el nodo de la variable global y seleccionar el objeto del panel frontal desde el men que se despliega.
Si desea usar esta variable global en otros VIs, seleccione FunctionsAll FunctionsSelect a VI. Por defecto, la variable global est asociada con el primer objeto del panel frontal con una etiqueta propia que usted haya colocado en el VI global. Haga clic derecho en el nodo de la variable global que coloc en el diagrama de bloques y seleccione un objeto del panel frontal desde el men rpido Select Item para asociar la variable global con el dato desde otro objeto de panel frontal
En Variable Type, seleccione Single Process. Dele a la variable un nombre y un tipo de dato. Luego que cree la variable global, esta automticamente aparece en una nueva librera en su archivo de proyecto. Guarde la librera. Puede adicionar variables globales a esta librera de acuerdo a las necesidades. Usted puede arrastrar y liberar la variable desde la lista en laventana Project Explorer, directamente al diagrama de bloques. Use el men rpido para conmutar entre escritura y lectura. Use los clusters de error en la variable para imponer el flujo de datos.
Las variables se usan frecuentemente de forma innecesaria. El ejemplo en la Figura de la siguiente diapositiva muestra una aplicacin de luz de trfico implementada como una mquina de estados. Cada estado actualiza la luz para el siguiente estado de la secuencia de luz. En el estado mostrado, el trfico de este y oeste poseen una luz verde, mientras el trfico norte y sur poseen una luz roja. Este estado espera por 4 segundos, como se muestra con la funcin Wait (ms).
El ejemplo mostrado en la Figura siguiente cumple exactamente con la misma tarea, pero de forma ms eficiente y usando un mejor diseo. Observe que este ejemplo es mucho ms fcil de leer y entender que el ejemplo anterior, en gran parte reduciendo el uso de variables. Colocando los indicadores en el While Loop fuera de la estructura Case, los indicadores pueden actualizarse despus de cada estado sin el uso de una variable. Este ejemplo es menos difcil de modificar para mayor funcionalidad, tal como la adicin de seales de giro a izquierda, que el ejemplo anterior
Inicializando Variables
Verifique que las variables locales y globales contengan valores de datos conocidos antes de ejecutar el VI. De lo contrario, las variables pueden contener datos que causen comportamiento incorrecto del VI. Si no inicializa la variable antes que el VI la lea por primera vez, la variable contiene el valor por defecto del objeto de panel frontal asociado. La Figura sig. muestra un error comn en el uso de variables. Una variable compartida sincroniza las condiciones de paro para los dos ciclos. Este ejemplo opera la primera vez que se ejecuta, ya que el valor por defecto de un Booleano es False. Sin embargo, cada vez que este VI se ejecuta el control Stop escribe un valor True en la variable. Por consiguiente, la segunda vez y subsecuentes veces que este VI se ejecuta, el ciclo inferior se para luego de solo una sola iteracin a menos que el primer ciclo actualice la variable lo suficientemente rpido.
error
solucin
los datos en el registro de Desplazamiento. La forma general de una variable global funcional incluye un registro de desplazamiento sin inicializar con una iteracin simple For o While Loop, como se muestra en la Figura siguiente
Aunque puede usar las variables globales funcionales para implementar variables globales simples, como se muestra en el ejemplo anterior, ellas son especialmente tiles cuando se implementa estructuras ms complejas de datos, tales como una pila o un buffer de fila. Tambin puede usar las variables globales funcionales para proteger el acceso a recursos globales, tales como archivos, instrumentos y dispositivos de adquisicin de datos, que usted no puede representar con una variable global.
Condiciones de Ejecucin
Una condicin de ejecucin es una situacin donde la temporizacin de eventos o el calendario de tareas puede afectar involuntariamente una salida o un valor de dato. Las condiciones de ejecucin son un problema comn para programadores que ejecutan mltiples tareas en paralelo y comparten datos entre ellas. Considere el siguiente ejemplo en las Figuras siguientes
Los dos ciclos incrementan ambos una variable compartida durante cada iteracin. Si usted ejecuta este programa, el resultado esperado luego de presionar el botn Stop es que Total Count sea igual a la suma de Count 1 y Count 2. Si ejecuta el programa por un corto periodo de tiempo, usted generalmente ve el resultado esperado. Sin embargo, si ejecuta el programa por un periodo largo de tiempo, Total Count es menor que la suma de Count 1 y Count 2, ya que este programa contiene una condicin de ejecucin. En un computador de un solo procesador, las acciones en un programa multi-tarea como este actualmente ocurren de forma secuencial, pero LabVIEW y el sistema operativo conmutan rpidamente las tareas para que as efectivamente se ejecuten al mismo tiempo. Las condiciones de ejecucin en este ejemplo ocurren cuando conmutar de una tarea a otra
ocurre en un cierto tiempo. Observe que ambos ciclos realizan las siguientes operaciones: Leer una variable compartida. Incrementar el valor ledo. Escribir el valor incrementado a la variable compartida. Ahora considere que sucede si las operaciones de los ciclos fueran ejecutadas en el siguiente orden: 1. Loop 1 lee la variable compartida. 2. Loop 2 lee la variable compartida. 3. Loop 1 incrementa el valor que lee. 4. Loop 2 incrementa el valor que lee. 5. Loop 1 escribe el valor incrementado a la variable compartida. 6. Loop 2 escribe el valor incrementado a la variable compartida.
En este ejemplo, ambos ciclos escriben el mismo valor a la variable, y el incremento del primer ciclo es efectivamente sobrescrito por Loop 2. Esto genera una condicin de ejecucin, la cual puede causar serios problemas si usted intenta que el programa calcule una cuenta exacta
En este ejemplo particular, existen pocas instrucciones entre cuando la variable compartida es leda y cuando es escrita. Por tanto, para el VI es menos probable que conmute entre los ciclos en un mal instante. Esto explica por que este VI se ejecuta bien por un corto periodo de tiempo y solo pierde unas pocas cuentas para periodos largos.
Las condiciones de ejecucin son difciles de identificar y depurar, ya que el resultado depende del orden en el cual el sistema operativo ejecuta las tareas programadas y el tiempo de los eventos externos. La forma en la cual las tareas interactan entre ellas y con el sistema operativo, as como el tiempo arbitrario de los eventos externos, convierten a este orden en esencialmente aleatorio. Frecuentemente, el cdigo con una condicin de ejecucin puede regresar el mismo resultado miles de veces en las pruebas, pero incluso puede regresar un resultado diferente, lo cual puede ocurrir cuando el cdigo est en uso.
La mejor forma para evitar una condicin de ejecucin es usar las siguientes tcnicas:
Controlar y limitar los recursos compartidos. Identificar y proteger las secciones crticas dentro de su cdigo. Especificar el orden de ejecucin.
Entrega de evidencia
7 de abril Disco con todos los ejercicios que se han realizado. Reportes de las practicas Reporte de proyecto final E74 Arturo Carbajal E72 Mario E71 Mara Jos E75 ALFREDO
Hacer un conversor de binario a decimal con arreglos. Utilizar time loop para generar ciclos. Comunicacin en paralelo.
Examen
Investigacin
Resume aqu tu investigacin con entre tres y cinco puntos principales:
Variables
Variables controladas: stos son los aspectos que no cambian en todos los experimentos. Variable independiente: la nica variable que cambias y pruebas a propsito. Variable dependiente: la medicin de los cambios observados a causa de la variable independiente. Es importante decidir cmo se va a medir el cambio.
Hiptesis
Tomando como base la investigacin que has realizado, escribirs una respuesta o una solucin (tu suposicin ms fundamentada) para tu pregunta. Asegrate de escribir tu hiptesis antes de comenzar el experimento.
Materiales
Escribe una lista detallada de los artculos necesarios para realizar los experimentos. Especifica las cantidades utilizadas.
Procedimiento
Enumera todos los pasos seguidos para realizar el experimento. No olvides numerar los pasos. Agrega fotografas de tus experimentos.
Datos u observaciones
Resulta ms fcil comprender los datos si se colocan en una tabla o en un grfico. Crea un grfico en Microsoft Excel e imprtalo aqu. Asegrate de que todos los datos estn claramente etiquetados.
Conclusin
Escribe un breve resumen de los descubrimientos en funcin de los resultados de los experimentos. Es necesario indicar si los datos refuerzan la hiptesis y explicar las razones para que lo hagan o no.
Obras citadas
No olvides incluir las fuentes de informacin en formato impreso y electrnico y clasificarlas en orden alfabtico.