Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad I
Introducción a la
Instrumentación Virtual
I Introducción a la Instrumentación Virtual
• Desempeño
• Naturaleza Independiente de la Plataforma
• Flexibilidad
• Bajo Costo
• Hardware conectado y en red
• Reducción de costos en aplicaciones de medición, tiempo
de especificación, implementación y configuración, y
desarrollo de software.
Componentes de un Sistema de
Instrumentación Virtual
Un instrumento virtual se compone de los
siguientes bloques:
• Módulo sensor
• Interface del sensor
• Interface de los sistemas de información
• Módulo de procesamiento
• Interface de la base de datos
• Interface de usuario
Componentes de un Sistema de
Instrumentación Virtual
Componentes de un Sistema de
Instrumentación Virtual
El módulo de sensor realiza el acondicionamiento de señal y la
transforma en una forma digital para su posterior manipulación.
Una vez que los datos están en formato digital en un ordenador, se
pueden visualizar, procesar, mezclados, comparados, almacenados
en una base de datos, o convertida de nuevo al formato analógico
para control del proceso. El módulo de sensor Interfaces de un
instrumento virtual con el mundo exterior, en su mayoría analógico
transformar señales medidas en forma legible por ordenador. Un
módulo sensor consta principalmente de tres partes principales:
- El sensor
- La parte de acondicionamiento de señal
- El convertidor A / D
Componentes de un Sistema de
Instrumentación Virtual
El sensor detecta señales físicas del medio ambiente. Si el
parámetro que se mide no es eléctrico, el sensor debe
incluir un transductor para convertir la información en
una señal eléctrica. El módulo de acondicionamiento de
señal antes de la conversión A/D usualmente hace la
amplificación, excitación del transductor, linealización, el
aislamiento, o el filtrado de las señales detectadas. El
convertidor A / D cambia el voltaje detectado y
acondicionado en un valor digital. El convertidor se define
por su resolución y la frecuencia de muestreo.
Componentes de un Sistema de
Instrumentación Virtual
Interfase de sensor
Hay muchas interfaces necesarias para la comunicación
entre los módulos de sensores y la computadora. Según el
tipo de conexión, interfaces de sensores pueden ser
clasificados como cableadas e inalámbricas.
- Interfaces con cable son generalmente interfaces estándar
paralelas, como GPIB, Small Computer Systems Interface
(SCSI), los buses del sistema (extensión PCI para
instrumentación PXI o VME extensiones de Instrumentación
(VXI), o buses serie (interfaces RS232 o USB).
Componentes de un Sistema de
Instrumentación Virtual
- Interfaces inalámbricas son cada vez más
utilizados por conveniencia. Las interfaces
típicas incluyen 802,11 familia de normas,
Bluetooth o GPRS / GSM interfaz. La
comunicación inalámbrica es especialmente
importante para los sensores implantados en la
conexión del cable es práctico o no es posible.
Componentes de un Sistema de
Instrumentación Virtual
Interface de base de datos
La instrumentación computarizada permite que
los datos medidos sean almacenados para su
procesamiento fuera de línea, o para mantener
registros como parte de la historia. Hay varias
tecnologías de bases de datos actualmente
disponibles que se pueden utilizar para este
propósito.
Componentes de un Sistema de
Instrumentación Virtual
Interface del sistema de Información
Instrumentos virtuales se integran cada vez más con otros sistemas
de información médica, como los sistemas de información del
hospital. Se pueden utilizar para crear cuadros de mando ejecutivos,
apoyando a las decisiones, alertas en tiempo real, y las advertencias
de predicción. Algunas interfaces de herramientas virtuales, como
LabVIEW, proporcionan mecanismos para componentes
personalizados, como los objetos ActiveX, que permite la
comunicación con otros sistemas de información, ocultando los
detalles de la comunicación de código de interfaz virtual. En las
aplicaciones basadas en la Web esta integración se lleva a cabo
normalmente utilizando localizadores de recursos unificadas (URL).
Aplicaciones de la Inst. Virtual
La instrumentación virtual involucra muchas
áreas de conocimiento mediante las cuales se
puede realizar un sinnúmero de aplicaciones.
Para poder desarrollar dichas aplicaciones se
requiere la ejecución de tres etapas básicas:
• Adquisición de señales
• Procesamiento de datos
• Despliegue de resultados
Aplicaciones de la Inst. Virtual
Para la adquisición de señales se requiere utilizar
algún método de captura de parámetros físicos en la
computadora descritos anteriormente (Santori, 1990).
Posteriormente, ya que se tienen los datos en la
computadora, se requiere procesar dicha información
mediante el uso de algoritmos o técnicas de análisis y
procesamiento de señales de acuerdo al área de
aplicación requerida. Dentro de los algoritmos
utilizados para procesamiento de señales en un
sistema de instrumentación virtual se tienen:
Aplicaciones de la Inst. Virtual
• Análisis espectral (transformadas, JTFA,
estimaciones, espectrogramas Fourier, Gabor,
Choi-Williams, Wigner-Ville).
• Filtrado digital (FIR, IIR, adaptivos-LMS).
• Filtrado punto a punto (Butterworth, Chebyshev,
Chebyshev inverso, elíptico, Savitzky-Golay).
• Métodos de ventanas (Hanning, Hamming,
Blackman, Parzen, flat top, KaiserBessel, Bohman,
Welch, Barlett-Hanning, Blakman-Harris, Parzen).
Aplicaciones de la Inst. Virtual
• Ecuaciones diferenciales (Radau IIA, cash carp,
Euler, Runge Kutta, Rosenbrock, Adams-Moulton).
• Interpolación y extrapolación (polinomiales,
racionales, grids, Lagrange, Hermite).
• Operaciones con señales (convolución,
autocorrelación, correlación cruzada,
deconvolución, decimación, normalización).
• Análisis de distorsión y ruido (SINAD, THD,
potencia de espectro, densidad espectral).
Aplicaciones de la Inst. Virtual
• Generación de señales y ruido (Gaussiano, Bernoulli,
gamma, binomial, Poisson).
• Probabilidad y estadística (histogramas, momentos, media,
mediana, moda, varianza, desviación estándar, correlación,
percentiles, coeficientes Spearman, Kendall’s Tau).
• Transformadas (Hilbert, Fourier FFT, DFT, DCT, DST, Laplace,
Wavelet, WalshHadamard, Chirp, Hartley, Dauvechies).
• Integración y diferenciación (trapezoidal, regla de Simpson,
regla de Bode).
Aplicaciones de la Inst. Virtual
• Funciones polinomiales y solución de raíces
(máximo común divisor, mínimo común
múltiplo, euclideano, raíces reales, complejas,
pares conjugados).
• Mediciones de amplitud y niveles (DC, RMS,
pico, promedio, trigger, duty cycle).
• Optimización (lineal, cuadrática, Brent,
Golden, aproximación de Chebyshev).
Aplicaciones de la Inst. Virtual
Dentro de las áreas de aplicación en las cuales se utiliza
la instrumentación virtual se encuentran las
relacionadas con la ingeniería:
• Eléctrica • Ciencias computacionales
• Electrónica • Telecomunicaciones
• Mecatrónica • Robótica
• Mecánica • Diseño y manufactura
• Biomédica • Automotriz
• Biomecánica • Aviónica y aeroespacial
• Biotecnología
Aplicaciones de la Inst. Virtual
Las tendencias actuales de la instrumentación
incluyen aplicaciones en áreas de:
• Algoritmos genéticos • Inteligencia artificial y redes
• Eficiencia energética y neuronales
sistemas sustentables • Interfaces hápticas inteligentes
• Programación dinámica • Controladores programables
• Programación lineal y no • Energía renovable y sistemas
lineal • ambientales
• Control y automatización de • Sistemas de energía nuclear
procesos • Redes de sensores
• Sistemas embebidos y lógica
• Manufactura inteligente
reconfigurable
• Tecnologías inalámbricas
• Reconocimiento de patrones
• Aplicaciones médicas
• Robótica y visión artificial
Partes del Ambiente
Partes del Ambiente
Control Panel
Nota: Los valores de cadena de caracteres que cablea a la terminal del selector son
sensibles a las mayúsculas/minúsculas de forma predeterminada. Para mostrar
resultados no sensibles a las mayúsculas/minúsculas, cablee un valor de caracteres
a la terminal del selector, haga clic con botón derecho en el borde de la estructura
de Casos y seleccione Case Insensitive Match del menú.
Si no especifica un caso de forma predeterminada para la estructura de Casos
para manejar los valores fuera del rango, debe enlistar de forma explícita cada
valor de entrada. Por ejemplo, si el selector es un entero y usted especifica los
casos para 1, 2 y 3, debe especificar un caso de forma predeterminada a
ejecutar si el valor de entrada es 4 o cualquier otro valor entero no
especificado.
haga clic con botón derecho en el borde de la estructura para añadir, duplicar,
eliminar o reorganizar casos y para seleccionar un caso predeterminado.
Si usted proporciona un valor de
selector que no es del mismo tipo que
el objeto cableado a la terminal del
selector, el valor aparece en rojo. Esto
indica que el VI no se ejecutará hasta
que elimine o edite el valor. También,
por el posible redondeo de error
inherente a la aritmética de punto
flotante, no puede usar los números de
punto flotante como valores de selector
de casos. Si cablea un valor de punto
flotante al caso, LabVIEW redondea el
valor al entero más cercano. Si escribe
un valor de punto flotante en la
etiqueta del selector de casos, el valor
aparece en rojo para indicar que debe
eliminar o editar el valor antes que la
estructura pueda ejecutarse.
Túneles de Estructura
Los túneles alimentan datos desde y hacia estructuras. El túnel
aparece como un bloque sólido en el borde el Ciclo While. El
bloque es el color del tipo de datos cableado al túnel. Los datos
salen fuera de un ciclo después de que el ciclo termina. Cuando
un túnel pasa datos a un ciclo, el ciclo se ejecuta solamente
después que los datos llegan al túnel.
While
La terminal de iteración es una
terminal de salida que contiene el
número de iteraciones terminadas.
La cantidad de iteraciones para el
Ciclo While siempre comienza en
cero.
Nota: El Ciclo While siempre se
ejecuta por lo menos una vez.
While
Ciclos Infinitos
Los ciclos infinitos son un error común de programación
que involucra un ciclo que nunca se detiene.
Ejem:
Serie de Fibonacci
Razón Dorada
For
•Ejercicio
Realice un VI que grafique un toroide, con las
matrices
• Nodo de Propiedad
– Implícito
– Explícito (Refnum)
• Variables locales
• Variables Globales
• Condición de Carrera
• Type definition
• Adición de imágenes
Variables
Son elementos de un diagrama de bloques que
acceden o almacenan datos en otra localización.
Variable Local Variable Global
Código
Código de
funcional
transición
del estado
Máquina de Estados
Unidad III
Adquisición de Datos
• Introducción a los sistemas de adquisición de datos.
• Conceptos relacionados a la adquisición de datos:
resolución, rango, frecuencia de la señal, razón de Nyquist,
etc.
• Acondicionamiento de señales:
amplificación, aislamiento, filtrado, linealización, etc.
• Tarjetas de adquisición de datos.
• Adquisición de datos usando hardware:
análisis y presentación, conversión, almacenamiento,
comunicación, y transmisión de datos
Un canal físico es un terminal o pin en el que puede medir o
generar una señal analógica o digital.
Un canal virtual asigna un nombre a un canal físico y su
configuración, como conexiones de terminales de entrada, el
tipo de medición o generación, y la información de escala. En NI-
DAQmx, los canales virtuales son integrales para cada medida.
Una tarea es uno o más canales virtuales con sincronización,
activación y otras propiedades. Conceptualmente, una tarea
representa una medida o generación para realizar. Puede
configurar y guardar información de configuración en una tarea y
usa la tarea en una aplicación.
DAQ Assistant es una interfaz gráfica para crear, editar y
ejecutar de manera interactiva canales y tareas virtuales de
NI-DAQmx.
Un canal virtual NI-DAQmx consiste en un canal físico en un
dispositivo DAQ y la información de configuración para este
canal físico, como el rango de entrada y la escala
personalizada.
Una tarea NI-DAQmx es una colección de canales virtuales,
información de sincronización y disparo, y otras
propiedades relacionadas con la adquisición o generación.
DAQ Assistant también puede generar código para
configurar y / o realizar la adquisición o generación
especificada.
Crea un canal virtual o conjunto de canales virtuales y los agrega
a una tarea. Las instancias de este VI polimórfico corresponden al
tipo I / O del canal, tal como entrada analógica, salida digital o
salida de contador; La medición o generación a realizar, como
medición de temperatura, generación de voltaje o conteo de
eventos; Y en algunos casos, el sensor a utilizar, tal como un
termopar o RTD para mediciones de temperatura.
Si utiliza este VI dentro de un lazo sin especificar una tarea, NI-
DAQmx crea una nueva tarea en cada iteración del bucle. Utilice
el DAQmx Clear Task VI dentro del lazo después de que haya
terminado con la tarea para evitar la asignación de memoria
innecesaria.
Configura el disparo de la tarea. Las instancias de este VI
polimórfico corresponden al disparo y tipo de disparo a
configurar.
Formatos de
Función Tipo de Dato
Archivo
Sin Header
24.45 34.54
23.41 35.32
22.97 35.98
21.56 36.76
Con Headers
Operator David
Name
UUT S/N A1234
24.45 34.54
23.41 35.32
22.97 35.98
21.56 36.76
Creando Archivos de Texto con
Headers – Hard Coding
• Propiedades • Atributos
• Datos • Apuntadores
a los Datos
.tdms .tdms_index
Formato de Archivos TDMS
Write To Measurement File Express VI
Son muy útiles protegiendo dos o más secciones críticas del código
que no deben de ser llamadas concurrentemente. Antes de hacer
uso de una parte crítica del código, el hilo de ejecución debe de
adquirir un semáforo. Si el código crítico se encuentra en el
momento ejecutando un hilo, el hilo entrante debe esperar hasta
que el hilo en ejecución libere el semáforo para poder entrar en
forma inmediata.
Para lograr lo mencionado anteriormente, se debe de crear un
semáforo y poner la función de adquirir y de liberar el
semáforo (Acquire Semaphore y Release Semaphore) al inicio y
final de los códigos críticos, respectivamente. De esta forma,
cada subVI puede obtener y liberar el semáforo uno a la vez,
para asegurar el flujo de datos apropiado. Al final de la sección,
la referencia del semáforo debe de ser liberada haciendo uso
de la función "Release Semaphore Reference VI".
Variable Funcional Global (FGV)
Es un VI no reentrante que usa shift registers no
inicializados para almacenar datos globales.
Patrones de Diseño
Patrones de Diseño: Son técnicas e implementaciones
de código que son soluciones a problemas específicos
en diseño de software.
Beneficios:
• Evolucionar a través de los esfuerzos de múltiples
desarrolladores.
• Son afinados para simplicidad, mantenibilidad y
legibilidad.
Patrones de Diseño
1. Patrones de Diseño Simple
A. Patrón de VI Simple
B. Patrón de VI General
C. Máquina de Estados
D. Máquina de Estados Basada en Eventos
2. Patrones de Diseño de Múltiples Lazos
A. Productor-Consumidor
B. Variable Funcional Global
Patrón de VI Simple
Consiste de un solo VI que toma una medición, realiza cálculos
y despliega los resultados o los guarda en disco. Use esta
arquitectura para aplicaciones simples o componentes
funcionales dentro de aplicaciones más grandes.
Patrón de VI Simple
Beneficios:
• Puede realizar cálculos y hacer rápidas mediciones
de laboratorio sin una arquitectura complicada.
• No requiere una acción específica de inicio o paro
del usuario, quien sólo utiliza el botón Run.
• Puede convertir estos simples VIs en SubVIs que
se utilizan como bloques para construir
aplicaciones más grandes.
Patrón de VI General
Tiene tres fases:
• Arranque: Inicializa hardware, lee información de
configuración desde archivos o solicita al usuario
localizaciones de archivos de datos.
• Aplicación principal: Consiste de al menos un lazo que se
repite hasta que el usuario decida salir del programa o el
programa termina por otras razones, como la
terminación de I/O.
• Paro: Cierra archivos, escribe información de
configuración al disco o reinicia I/O a los estados default.
Estructura del VI General
Código
Código de
funcional
transición
del estado
Máquina de Estados Basada en Eventos
Inicializar
Estado 2
Patrón de Diseño
Productor / Consumidor
El patrón de diseño Productor / Consumidor
separa tareas que producen y consumen datos a
diferentes ritmos. Use este patrón de diseño
para adquirir múltiples conjuntos de datos que
deben ser procesados en orden. Use queues
para comunicar y bufferear datos entre lazos.
Variable Funcional Global (FGV)
Es un VI no reentrante que usa shift registers no
inicializados para almacenar datos globales.
Patrón de Uso Ventaja Desventaja
Diseño
Simple SubVIs estándar Permite aplicaciones No es adecuado para
Cálculos/algoritmos; modulares diseño de interfaces de
procesamiento modular usuario o Vis de nivel
Equivalente LabVIEW a principal
subrutinas en otros lenguajes
General Flujo de control estándar Fases distintas de Incapaz de regresar a una
Bueno para prototipos rápidos o inicialización, proceso y paro. fase previa
simples, aplicaciones directas
que no crecerán en complejidad
Máquina de Controla la funcionalidad de un Controla secuencias UI basado en polling no es
Estados VI por medio de crear una Mantenimiento del código es escalable conforme a
(Polling) secuencia de sistema. fácil porque se pueden aplicación crece
agregar nuevos estados Este patrón de diseño no
fácilmente es inherentemente
paralelo
Máquina de Controla la funcionalidad de un Controla secuencias Este patrón de diseño no
Estados VI por medio de crear una Mantenimiento del código es es inherentemente
(Basada en secuencia de sistema. fácil porque se pueden paralelo
eventos) agregar nuevos estados
fácilmente
Es más eficiente que el
control por polling
Patrón de Uso Ventaja Desventaja
Diseño
Productor / Procesa o analiza datos en Comunicación Buffereada No provee sincronización
Consumidor paralelo con otros elementos de entre procesos de la de lazo
(Datos) análisis o procesamiento aplicación Limitado a un tipo de
datos, a pesar de que los
datos se pueden insertar
en un cluster
Productor / Responde a la interface de Separa la interface de No integra bien eventos
Consumidor usuario con aplicaciones usuario del código intensivo que no sean de la
(Eventos) intensivas para el procesador para el procesador interface de usuario
Variable Uso como subVI para almacenar Almacena datos mientras el No es adecuado para Vis
Funcional datos globales y realizar acciones VI esté en la memoria reentrantes
Global (FGV) sobre los datos Ejecuta operaciones basadas Es problemático cuando
en la selección de la entrada se duplican o escalan
Buena manera de proteger datos globales con
secciones críticas de código múltiples copias y se
para eliminar condiciones de realizan acciones sobre las
carrera copias
Creando y Distribuyendo Aplicaciones