Lenguaje de programación grafica

   
    Todos hacemos parte del desarrollo de la ciencia, se aceptan las recomendaciones para mejorar    
   

LabVIEW (Laoratory Virtual Instrument Engineering Workbench) es un sistema de desarrollo basado en programación gráfica, orientado a desarrollar aplicaciones para instrumentación, el cual integra una serie de librerías para comunicación con instrumentos electrónicos como GPIB, RS232  o RS485 con tarjetas de adquisición de datos, con sistemas de acondicionamiento como VXI  o SCXI, comunicaciones en redes TCP/IP, UP, o en los estándares de software .COM, .OLE, .DDE, .DDL o ActiveX para Windows, así como AppleEvents para MacOS o PIPE para UNIX.

 Los programas utilizados en LabVIEW se llaman instrumentos virtuales  “VIs”, ya que tienen la apariencia de los instrumentos reales, sin embargo, poseen analogías con funciones provenientes de lenguajes de programación convenientes.

Los VIs se compones de:

Panel frontal: Interfase gráfica que simula el panel de un instrumento real, el cual permite entrada y salida de datos, incluye; perillas, pulsadores, botones, gráficos, controles e indicadores.

Figura 6.1 panel frontal de LabVIEW

 Diagrama de Bloques: Contiene el código fuente gráfico de VI, posee funciones y estructuras que relacionan las entradas con las salidas creadas en el panel frontal.

Figura 6.2 diagrama de bloques de LabVIEW

Herramientas: Contienen las herramientas necesarias para editar y depurar los objetivos tanto del panel frontal como del diagrama de bloques. Tools Palette, Controls Palette, Functiones palette:

Para activar cualquiera de estas herramientas se debe hacer clic sobre Windows en la barra superior oprima Show Tools Palette o la que necesite:

 

Figura 6.3 paleta de herramientas

Paleta de Herramientas (Tools Palette):

Asigna valores a los controles del panel frontal, se encuentra disponible cuando se corre y edita la aplicación. Cuando edita objeto basados en texto o números, cambia el icono del puntero por le que se muestra.

Selecciona, mueve y redimensiona objetos.  La herramienta cambia el icono del puntero cuando pasa por encima de objetos que pueden modificar su tamaño.

Crea y edita textos tanto en el panel frontal como en el diagrama de bloques.

  Utilizado para generar la estructura lógica de eventos mediante la conexión de los terminales de cada objeto.  Los cables determinan el flujo de los datos.

Permite tener el menú de opciones de un objeto. Esta misma función se puede realizar haciendo un clic derecho del ratón sobre el objeto.

Mueve todos los objetos dentro de la ventana activa.

  Detiene la ejecución del programa en el punto del diagrama donde se coloque.  Se utiliza con fines de depuración.

Se coloca sobre algún conductor o hilo de conexión para verificar de forma temporal el valor que fluye a través de este

  Obtiene el color del objeto que se señale.

  Cambia los colores de objetos y de fondos.

  

Figura 6.4 Paleta de controles

Paleta de controles (Palette  Controls):

Se utiliza únicamente en el panel frontal y contiene los objetos necesarios para crear una interfase de entrada y salida de datos (controles e indicadores).

Presionando el icono representativo por la figura, allí se encontrarán varios y se obtendrá el control deseado haciendo clic sobre este

“Numeric” Controles e indicadores Numéricos como: Dispositivos de medida (metros) digitales o análogos.

“Boolean” Controles e indicadores Booleanos, simplemente swiches o interruptores.

“String y Path” Controles e indicadores de cadenas y caminos

 “Array y Cluster” manejo de Arreglos

 “List y Table” manejo de listas y tablas.

 “Graph” Graficas, normalmente las que saca el osciloscopio o gráficas en tercera dimensión, muy utilizada en Instrumentación.

 “Ring y Enum”

“I/O” entradas y salidas, puede incluir tarjetas o puertos.

 “Refnum” hace referencias numéricas.

 “Dialog Controls” realiza controles de dialogo.

“Classic Controls” Controles clásicos

 “Activex” (Contenedor, Variantes y automatización de referencias)

“Decorations” Decoraciones, muy utilizado para decorar el Panel Frontal, como la superficies en altorrelieve o contornos.

 “Select a Controls”  Selector de Controles, Se realiza por pasos.

 “User Controls” Controles nuevos o implementados por el usuario 

  

Figura 6.5 paleta de funciones

Paleta de funciones (Palette Functions).

El segundo icono muestra “Numerics”: Suma, resta, multiplica , divide, Incremento, decremento, sumatoria, multiplicatoria, valor absoluto, redondeo próximo, redondeo a –infinito, redondeo a +infinito, Raíz cuadrada, signa negativo, escala en potencias de 2, signado, Componentes aritméticas, randum (aleatorio), recíproco,  convertidores, funciones trigonométricas, funciones logarítmicas, funciones complejas, constantes, cantantes numéricas adicionales.

El tercer icono muestra “Booleans” Compuertas lógicas; And, Nand, Or, Nor, Or exclusivo, Nor Exclusivo, Yes, Not, Componentes aritméticos, And de arreglo de elementos, Or de arreglo de elementos,    

 

Detalles y herramientas empleados en el proyecto  QTc (Anexo) 

Build Array

Concatena múltiples conjuntos o agrega elementos a un conjunto de n dimensiones.  También se puede reemplazar la función de un Subconjunto al modificar un conjunto existente.

Figura 6.6 Build Array

 

Index Array

Retorna los elementos o subconjuntos de un conjunto de n-dimensiones a una lista. Cuando se alambra un conjunto a esta función, la función se dimensiona automáticamente.  Se pueden anexar adicionalmente elementos o subconjuntos terminales redimensionando la función.

Figura 6.7 Index Array

 Delete From Array

Borrar un elemento del subconjunto para un conjunto de n-dimensiones y retorna el conjunto editado en array w/ subset deleted y el elemento borrado o subconjunto en  una porción Borrada.

Figura 6.7 Delete From  Array

Array Subset

Retorna una porción del comienzo del arreglo empieza indexarlo contiendo la longitud de del arreglo.

Figura 6.8 Array Subset

Build waveform

Waveform: es la forma de onda que se desea editar.  Si se desea alambrar una forma de onda existente, construir una forma de onda, crear a nueva forma de onda sobre los componentes alambrados.

Figura 6.9 Build waveform

 

Select item:

t0: es el tiempo de arrranque de la forma de onda.

Dt: es el intervalo de tiempo, o duración, entre la forma de onda y los datos.

Y:  contiene  el valor de los datos de la forma de onda.

waveform es el resultado de la forma de onda. Si se desea alambrar una forma de onda existente, construir una forma de onda, crear a nueva forma de onda sobre los componentes alambrados.

 

Graphing Waveform Data

Realiza  el desarrollo por pasos, los datos en forma de onda en una serie de puntos mostrados en  waveform graph.

Figura 6.10 Graphing Waveform data

 

Ubica la forma de onda sobre el panel forntal.

Construye un diagrama de bloques con el objeto desarrollado

  • función División.

  • Función Seno.
     

Get Waveform Components

Retorna los componentes de la forma de la onda (señal) que se especifiquen. Se pueden especificar  los componentes hacienda click derecho y seleccionando Add Element y creando un indicador.

Figura 6.11 Get Waveform Componentes

Wavelet Transform Daubechies4 

Ejecuta la transformada Wavelet Daubechies4 sobre la función 

Figura 6.12 Waveform Transform Daubechies4

 

Wavelet Transform Daubechies4 Inverse

Ejecuta la inversa de la transformada base Wavelet Daubechies4 sobre la función 

Figura 6.13 Waveform Transform Daubechies4 Inverse

 

Waveform Peak Detection

Encuentra la localización, amplitud, y segunda derivada de picos y valles en la señal de entrada.  Se puede utilizar este VI poliformico para encontrar picos y valles en una waveform o un array of waveforms. Este tipo de datos que se alambra a la señal entrante, entra determinando la instancia del polifórmico a usar.  Este VI es similar al detector de picos (Peak Detector).

 

Figura 6.14 Waveform  Peak Detection

 

For Loop

Ejecuta estos subdiagramas n veces, cuando n es el valor alambrado al conteo (N) terminal. El terminal de iteraciones (i),  brinda el conteo iterativo cíclico, el cual tiene un rango desde 0 hasta n-1.  A este se le pueden inyectar Shif Register es una conexión entre el mundo interior y el exterior.

Figura 6.15 For Loop

 

While Loop

Ejecuta estos subdiagramas hasta la condición terminal, recibe un valor Booleano particular. El valor Booleano depende de la continuación del comportamiento del While Loop. Click derecho el condicionamiento del terminal y seleccione Stop si es Verdad o Continúe es verdad para el menú corto.

Figura 6.16 While Loop

Case Structure

Tiene uno o más subdiagramas, o casos, exactamente uno de los cuales se ejecuta cuando la estructura se está ejecutando. El valor alambrado al selector terminal determina cual caso se va a ejecutar y cual caso puede ser Booleano, string, integer, o tipo de enumeración. El clic derecho al borde de la estructura adiciona o borra casos.  El Labeling tool se usa para entrar valores en el caso  del rótulo selector de casos y configuración, los valores escogen para cada caso.

Figura 6.17 Case Structure

 

Wait Until Next ms Multiple.

Espera hasta el valor de los milisegundos, multiplicando por millisecond multiple especificado.  Se usa esta función para actividades de sincronización. Se puede utilizar esta función en un loop de control:

Figura 6.18 Wait Until

 

Mean

Computa el mean (significado) de los valores de la secuencia de entrada X.

Figura 6.19 Mean

Operaciones Numéricas Realiza operaciones numéricas.

Figura 6.20 Operaciones numéricas

 

Peak Detector  (detector de picos) 

Detector de Picos: Encuentra la localización, amplitud y segundas derivadas de picos o valles en los arreglos de entrada.

 

Figura 6.21 Peak Detector

“X es la entrada que contiene el dato a ser procesado.  El dato puede ser un arreglo individual o un bloque de datos.  Los bloques de datos consecutivos son útiles para arreglos  largos de datos o para procesos en tiempo real. Avisa que en procesamiento de tiempo real, no son detectados los picos/valles hasta aproximadamente Ancho/2 puntos de un dato pasado el pico o valle”.

Threshold  (límite) rechaza picos y valles muy pequeños.  Para picos, el VI ignora cualquier pico encontrado con una medida de amplitud que sea menor al límite. El VI ignora valles si la medida de la hondonada en mayor que el límite.

width especifica el número de data points consecutivos a usar en los mínimos cuadrados cuadráticos ajustados. width está ajustado al valor mayor o igual a 3. El valor podría ser no más de un cuarto del ancho de los picos/valles y podría ser mucho más grande (pero >2) para un dato libre de picos.

peaks/valleys: especifica si los VI son vistos como picos (positive-going bumps) o valles (negative-going bumps). La asignación para este control es 0 (picos) y 1 (valles).

initialize, cuando está en TRUE, especifica el procesamiento del primer bloque de datos. El VI requiere alguna asignación interna al comenzar la propia operación. Si se desea únicamente el proceso de un bloque de datos, autoriza y empieza a desalambrar, o asigna por defecto el estado a TRUE. Si se desea el proceso consecutivo de los bloques de datos, se inicializa en TRUE para el primer bloque y falso para todos los otros bloques de datos.

end of data, cuando se asigna a TRUE, especifica el procesamiento del ultimo bloque de datos. Después de procesar el último bloque de datos el VI administra los datos internos. Si se desea procesar únicamente un solo bloque de datos, deje desalambrado end of data, o asigne por defecto TRUE. Si se desea procesar bloques de datos consecutivamente, asigne end of data o FALSE para todos hasta el último bloque de datos.

# found es el número de picos/valles encontrados en los bloques de datos. # found es el tamaño de la localización de los arreglos, Amplitudes, y 2nd Derivativas.

end of data, #found (#encontrado): es el número de picos/valles encontradas en las bases de datos. #found es el tamaño del arreglo Localización, Amplitudes, y 2das Derivadas.

Location: (localización): contiene la localización de los picos/valles encontradas en las bases de datos.

Amplitudes (Amplitud): contiene las amplitudes de los picos/valles encontradas en la corriente de la base de datos.

2nd Derivatives: (Segundas derivadas): contiene las segundas derivadas de los picos/valles

Error: retorna cualquier error advertencia del VI. Refiere a SPEC (Signal Processing Error Codes) para mayor información a cerca de esta condición.

Los registros pueden ser pasados por el detector de picos VI  como un simple arreglo o como un bloque de datos consecutivos. Este detector de picos VI  está basado en un algoritmo que adecua un polinomio cuadrático a un grupo secuencial de registros. El número de registros usado en el acople es especificado por width.

Para cada pico o valle, el ajuste cuadrático es evaluado de forma contraria al nivel límite. Los picos  más largos que el nivel límite o valle más anchos que el nivel límite son ignorados. picos/valles son detectados únicamente después de aproximadamente width/2 registros que han sido procesados más allá de la localización de picos/valles. Este retardo tiene implicaciones únicamente para procesos de tiempo real.  El detector de picos VI  podría notificar cuando el primero y el ultimo bloque han pasado por el  VI, como el VI puede inicializar y entonces libera datos internos al algoritmo detector de picos.

Quieres tener el programa comunícate con  www.ni.com

página principal

 

Guías prácticas de LabVIEW 

Una forma práctica y sencilla de introducirse en el lenguaje de LabVIEW.

Guía No 1

Para dar comienzo al trabajo con LabVIEW se debe ejecutar LabVIEW.exe, sale el plano Block Diagram que es donde se elaborarán los circuitos, para ver como están quedando en en panel frontal se oprimen las teclas Ctrl E y sale Front Panel,

La siguiente figura muestra el plano circuital (Block Diagram) o diagrama de bloques,

La siguiente figura muestra el plano frontal (Front Panel),

Un ejemplo muy básico, realizar una suma elemental entre dos variables

  1. insertar el operador suma

  2. insertarle entre los nodos de entrada dos controles

  3. insertar en la salida un indicador

el circuitos en el diagrama de bloques quedará

En el plano frontal se verá de la siguiente forma:

Al hacer clic sobre uno de los controles variará el número de entrada y se sumará con el otro y en x+y se verá el resultado.

así sucesivamente, se pueden realizar operaciones y programas sin límites. 

página principal

Guía No 2

Un programa que muestre en instrumentos virtuales el voltaje variable y la corriente resultante 

Descripción:                                                                                      

1. Dibujar el siguiente circuito en Paint (.bmp)

 2.Una vez resuelto a mano el circuito eléctrico, resolverlo en lenguaje gráfico en el Diagrama de Conexiones de LabVIEW

 Procedimiento:

  1. Iniciar el programa LabVIEW,  (New VI)
  2. Copiar y pegar en el panel frontal de LabVIEW  el circuito hecho en Paint.
  3. Para pasar de una ventana a otra (Panel o Diagrama de Conexiones) se presionan las teclas Ctrl E.
  4. En el diagrama de conexiones de LabVIEW  hace clic con la tecla derecha del Mouse y aparece la paleta de herramientas de funciones, allí escoge el icono de Numeric  donde aparecerán las funciones, hace clic sobre la que necesite aparece la mano con la función deseada, hace de nuevo clic sobre el punto que desea posicionarla.
  5. Presionando la barra espaciadora hasta que salga la carreta de hilo (cableador) hace clic en las puntas de las funciones y la lleva hasta el conector donde desee conectarla (hasta que parpadee la punta) hace de nuevo clic y queda conectada, en las patas de la primeras funciones haga clic con la tecla derecha del Mouse aparece un menú escoge Create luego Control, cambiar el nombre con (AI) de la paleta de herramientas.
  6. Presione ctrl E pasa al panel frontal y arregla la figura para que quede la siguiente forma: En la barra menú oprima la flecha para correrlo.

Página principal 

 

Guía No 3

  1. Realizar un programa en lenguaje gráfico, que maneje secuencias lógicas como un ciclo FOR

Descripción:                                                               

  1. Realizar una sumatoria con la  siguiente condición
  2. Una variable i, que varíe entre 0 y 50
  3. Que se incremente en 2
  4. Que la respuesta de 50

  Procedimiento:

  1. Se procede indicando la forma del ciclo For:    (i=0; i<=50; i=i+2)
  2. Se pasa con teclas Ctrl E, para desarrollar el circuito virtual.
  3. Para desarrollar el circuito virtual hay que ver que se necesita:
    1. Dos constante (N=49), y el incremento en 2.
    2. Un sumador (Add) para ir sumando la variable.
    3. Un indicador que va mostrando el resultado.
  4. En el diagrama de conexiones de LabVIEW  se hace clic con la tecla derecha del Mouse y aparece la paleta de herramientas de funciones, allí escoge el icono de (Numeric)  donde aparecerán las funciones, se escoge el de (Add)  se hace nuevo clic sobre el punto que desea posicionarla.
  5. Presionando la barra espaciadora hasta que salga la carreta de hilo (cableador) hace clic en las puntas de las funciones y la lleva hasta el conector donde desee conectarla (hasta que parpadee la punta) hace de nuevo clic y queda conectada, en las patas de la primeras funciones haga clic con la tecla derecha del Mouse aparece un menú escoge Create luego Control, cambiar el nombre con (AI) de la paleta de herramientas.
  6. Presione Ctrl E pasa al panel frontal y arregla la figura para que quede la siguiente forma: En la barra menú oprima la flecha para correrlo.

Página principal 

 

Guía No 4

 1. Realizar un programa en lenguaje gráfico, que maneje secuencias lógicas como un ciclos FOR

A Descripción del circuito 1:                                                              

  1. Realizar una sumatoria con la  siguiente condición
  2. Una variable i, que empiece en 7,  2. Que se incremente en 0,01, y 3.Que la respuesta es menor o igual a 10

 Procedimiento:

  1. Con clic derecho en el plano de diagramas, seleccionar Funtions, luego Structures, allí mismo escoger (For Loop),  en uno de los lados del ciclo, se adiciona (Add Shift Register) y aparecerán las flechas naranja a los lados, (lo que se haga en la salida incide en la entrada).
  2. Se introducen todos los elementos dentro del ciclo, y luego se conectan.
    1. Un sumador (Add) para ir sumando la variable y divisor (Divide) para dividir el incremento de la variable, se le adicionan:
    2. Tres constantes (N=300), constante divisor (100) que es el incremento en 0,01.
    3. .Un indicador que va mostrando el resultado.
  3. Sobre el Shift Register de la salida se hace Clic derecho, escogiendo (Create), luego (Indicador), dentro de las herramientas del (Tools Palette) se escoge (A), luego se hace Clic sobre (Numeric) que es el Label del indicador, allí se coloca (i=7; i<=10; i=0,01),

.B Descripción del circuito 2

  1. Este punto es el mismo primero anterior, luego se insertan funciones y constantes: 
    1. Un sumador (Add) para ir sumando la variable y divisor (Divide) para dividir el incremento de la variable, se le adicionan: Tres constantes (N=19), constante múltiplo (5) que es el decremento en 0,01, y (100)
    2. Un indicador que va fuera del For Loop y que mostrando el resultado.

  2. En el Label de indicardor de la misma forma que el anteior pero con lo siguiente:
  3. Realizar una sumatoria con la  siguiente condición, Una variable i, empiece en 100, que itere 19 veces, Que se decremente en 5 y que la respuesta de >=10 Se procede indicando la forma del ciclo For:    (i =  100; i>=10; i = i-5)
    1. Tres constantes (N=19), (100) constante divisor y el incremento en por 5.
    2. Un sumador (Add) para ir sumando la variable y divisor (Divide) para dividir el incremento de la variable.

Página principal 

 

Guía No 5

1. Realizar un programa en lenguaje gráfico, que maneje secuencias lógicas como un ciclo Estructura Case, este consta de: uno o más subdiagramas o Cases, exactamente uno de los cuales se ejecuta cuando la estructura se está ejecutando, el selector determina que caso se ejecuta, y puede ser Booleano, (String) una cadena, un número entero, o un tipo de enumerador, el Clic derecho del borde de la estructura adiciona o borra casos, usando la herramienta del Label para entrar valores.  

Descripción:                                                               

  1. Construir un termómetro digital virtual
  2. Que seleccione entre grados Celsius y Grados Fareng.
  3. Seleccionar un indicador de barra como lo muestra la figura del panel frontal.
  4. Que el rango este entre 0 y 100

 Procedimiento:

  1. Se procede introduciendo una estructura Case para convertir el sistema de grado. N-32*5/9 en el caso (true), en el caso (false) es constante.
  2. Se le introduce un Demo Voltaje Read.vi antes de la estructura, con canal en 0 y el identificador del Board en 3.
  3. Debe guiarse por el diagrama de la figura. Para verificar que se necesita.

Seleccione el valor de False y trac

Página principal 

 

Guía No 6

 

  1. Realizar un programa en lenguaje gráfico, que maneje un menú selectivo, que a su vez maneje secuencias lógicas como un ciclo For, así mismo diseñar un Osciloscopio que reúna todo lo anterior.

Descripción:                                                               

  1. Construir un Menú con selector virtual.
  2. Hacer un Ciclo For con diferentes tipos de generadores de onda.
  3. Insertar un graficador  que muestre el tipo de onda seleccionado.
  4. Insertar un potenciómetro que varíe la amplitud.

 Procedimiento:

  1. Se procede introduciendo una estructura For para generar los datos de cada onda, y en él se integran los diferentes tipos de onda.
  2. Debe guiarse por el diagrama de la figura. Para verificar que se necesita.
  3. Para mezclar las gráficas inserte un Build Array y para entregarlas al graficador un Index Array

Página principal 

 

Guía No 7

  1. Realizar un programa en lenguaje gráfico, que maneje un menú selectivo, que a su vez maneje secuencias lógicas como un ciclo While Loop, que a su vez maneje un Case Structure, así mismo diseñar un Osciloscopio que maneje varios tipos de onda.

Descripción:                                                               

  1. Construir un ciclo Case Structure el cual albergue un Sine Waveform.vi, manejando 4 tipos de onda.
  2. A la salida del Ciclo Case Structure insertar un graficador.
  3. a la estrada del ciclo Case Structure Insertar 5 selectores para las diferentes funciones.
  4. Debe guiarse por el diagrama de la figura. Para verificar que se necesita.

 

Página principal 

 

Guía No 8

  1. Realizar un programa en lenguaje virtual, que muestre un avión deslazándose sobre una pista, mostrando así, el montaje de figuras sobre los (Slider) desplazadores.

Descripción:                                                               

  1. Dibujar un avión en Paint, resaltarlo (Ctrl E), luego copiarlo (Ctrl C), Posicionado en el Panel de LabVIEW, hacer Clic derecho, escoger (Classic Controls), luego Numeric, allí mismo (Horizontal Pointer Slider), extenderlo (estirarlo de la punta) a lo largo de la pantalla.
  2. Colocar el puntero del Mouse sobre el cursor del Slider, hacer clic exactamente sobre este, en el menú se escoge la opción (Advanced), al frente se escoge (Customize…), seleccionar en la barra superior una llave cuya función es (Edit Mode), hacer Clic sobre esta, saliendo resaltado todo sobre el Slider, sobre el cursor del Slider hacer Clic derecho y se hace Clic sobre (Import Picture), y luego se hace Clic derecho sobre el avión y se hace Clic Izq sobre (Picture Item..) escogiendo el de la derecha.  (), luego se puede salir sin grabar, pero poner Yes a la pregunta  Replace the original control Slider by control presionar.
  3. Para hacerle un control sencillo simplemente se selecciona el Connect Wire (carreta hiladora) del (Tools Palette) sobre la salida del Slider en el diagrama de conexiones, haciendo Clic derecho, se escoge (Create) y luego (Indicador).
  4. Se ha duplicado el Slider, con el (Operate Value) del  (Tools Palette; la manito) mirar cual de los dos desplaza el otro y sobre este se hace Clic derecho escogiendo (Replace) del Menú (Numeric)  se escoge en este caso (Knob).
  5. Al correrlo solo desplaza el cursor del (Knob). Y el avión se desplazará.

 La primera figura muestra el diagrama de conexiones entre el (Knob) y el (Slider)

La segunda parte muestra panel.

 

 

 

Página principal 

 

Guía No 9

 1.      manejar los puertos del computador para la entrada y salida de datos

EJERCICIO 8.1 ESCRIBIR DATOS EN EL PUERTO PARALELO

Se pretende con este ejercicio aprender la forma de escribir datos en el puerto paralelo y como utilizar la función outport.vi

1. Conectar el módulo entrenador de puerto paralelo.

2. Construir un VI con las siguientes características.

 

Figura 10.1. Panel y diagrama del ejercicio 10.1.

La dirección 0x378 según la tabla de la figura 10.2, seria el bus de datos para LPT2. Sin embargo, y aunque esta es la información oficial entregada por IBM, en la mayoría de los PCs, el puerto LPT1 viene configurado con las direcciones que aparecen como de LPT2.

Por tanto se considerara que LPT1 posee las siguientes direcciones: Bus de Datos: 0x378, Bus de Estado: 0x379, Bus de control: 0x37A. Se recomienda verificar y/o cambiar la dirección base del puerto paralelo.

3. Correr continuamente la aplicación.

4. Observar la salida del registro 0x378 en el entrenador mientras el dato en el control VALOR desde 0 hasta 255. Identifique que LED corresponde al bit MSB y cual al LSB.

5. Repetir 3 y 4 para la dirección 0x37A. Identifique MSB y LSB.

A continuación se presenta el ejercicio en lenguaje C:

 

Tabla 10.2

La función outportb() envía un byte al puerto especificado. El primer parámetro de la función es la dirección del puerto a la cual se va a escribir. El segundo parámetro es el valor del byte enviado.

 

 EJERCICIO 10.2. LEER EN EL BUS DE ESTADO DEL PUERTO PARALELO

Se busca con este ejercicio aprender la forma de leer datos enviados por el puerto paralelo y como utilizar la funcion inport.

 1. Conecte el modulo.

2. Construir un VI con las siguientes características

 Figura 10.2. Panel y diagrama del ejercicio 10.2.

 

3. Configure un dato en la entrada del puerto 0x379 del entrenador.

4. Corra la aplicación y observe el valor mostrado en VALOR.

5. Repita 3 y 4 con diferentes valores de entrada y observe la equivalencia entre el numero binario ingresado en el entrenador y el hexadecimal en el valor indicado VALOR.

A continuación se desarrolla el mismo ejercicio pero en C:

La función inportb() lee un byte del puerto especificado. La función principal se

está utilizando para mostrar el valor del byte en pantalla.

EJERCICIO 3.3 LEER EL BUS DE DATOS DEL PUERTO PARALELO

1. Activar la propiedad bidireccional del bus de datos.

Para esto se necesita colocar en “1” el bit cinco del bus de control 0x37A, lo que equivale al decimal 32 a esta dirección.

Tabla 10.3. bit 5 de 0x37A en uno.

 Recordar que esta operación debe realizarse antes de entrar datos en el bus.                               

2. Varié los datos de entrada en el bus de datos mientras utiliza el VI de la figura 10.3 para leer registro 0x378.

3. Comparar las lecturas con los valores binarios colocados en el bus de datos.

 

Recuerde que para configurar de nuevo como salida el bus de datos, debe enviar un decimal 64 al bus de control 0x37A.   Tabla 10.3

Página principal 

 

Guía No 10

Construya en simulador de los cálculos del QTc

La siguiente figura muestra el plano circuital en LabVIEW del simulador del QTc

La siguiente figura muestra el simulador como debe quedar Se oprimen las teclas Ctrl E y se hace click sobre las flechita → del panel fron

Algunos subcuadros de fondo se pueden insertar en la ventana decorations.

 

Nota: este trabajo fue realizado con el programa licenciado de la Universidad Tecnológica de Pereira, para que puedas obtener tu licencia comunícate con www.ni.com

Todos tus comentarios los puedes hacer en la dirección  caemolina@gmail.com

 

página principal