Manual DAQ 6009
Manual DAQ 6009
Manual DAQ 6009
Descripción breve
El presente documento contiene una breve descripción de la Tarjeta de Adquisición de datos
USB, NI-6009, las conexiones a instrumentos y la forma de insertarlos en un programa en
LabVIEW, así como ejercicios de programación.
Pág. 1
La tarjeta NI USB 6009
La tarjeta está compuesto de tres elementos, el elemento principal de la DAQ (de aquí en adelante la DAQ se
refiere a la tarjeta NI USB-6009) y dos grupos de borneras, tal como se observa a continuación:
Un grupo de borneras corresponden a las entradas y salidas analógicas y el grupo opuesto corresponden a las
entradas y salidas digitales, entrada de trigger o contador, +5 V y tierra, como se indica a continuación:
Para poder trabajar con la tarjeta de adquisición de datos NI USB-6009 es necesario disponer de los
siguientes elementos:
1
NI LabVIEW es marca registrada de National Instruments Corporation. Todos los derechos reservados
2
NI-DAQmx es marca registrada de National Instruments Corporation. Todos los derechos reservados
3
NI USB-6009 es marca registrada de National Instruments Corporation. Todos los derechos reservados
Pág. 2
Las especificaciones completas de la tarjeta se encuentran disponibles en el internet, en los siguientes enlaces:
http://www.ni.com/pdf/manuals/371303m.pdf
http://www.insdecem.com/archivos/documentos/NIUSB6009.pdf
La conexión de sensores y actuadores analógicos y digitales está claramente indicada en el manual del usuario
de la tarjeta DAQ, de la que extraemos la siguiente información:
Entradas analógicas en
modo diferencial
Entradas analógicas en
modo simple o
referenciada a tierra
Salidas analógicas
Pág. 3
Entradas y salidas digitales
Vamos a simular sensores y actuadores mediante dispositivos sencillos fáciles de encontrar en cualquier
almacén de electrónica. Los elementos que se necesitaran son:
Un sencillo circuito que opera como un sensor digital del tipo ON/OFF contiene un interruptor, una resistencia
de 2.2 K y una señal de 5 Vdc. La conexión es la siguiente:
Pág. 4
Utilizamos la salida de 5 Vdc, de la tarjeta para alimentar el circuito, llevamos la fuente y la tierra a los buses
largos para poder distribuir fácilmente 5V y GND a los elementos del circuito. Esto será muy conveniente
cuando dispongamos de varios elementos e instrumentos en el mismo protoboard.
La forma como cada uno de los agujeros de un protoboard están conectados, es importante para evitar un
cortocircuito en la fuente o una mala conexión. Las conexiones se las puede observar en el siguiente esquema:
Pág. 5
Simulando un actuador digital ON/OFF
Un sencillo circuito, que simula el encendido o apagado de un actuador, lo podemos realizar con un LED y una
resistencia de 220 Ω. La conexión a realizar es la siguiente:
Para poder simular un sensor analógico, utilizamos el potenciómetro de 10 KΩ y la batería de 9 V, para lo cual
armamos el siguiente circuito:
Pág. 6
Entonces los tres dispositivos quedarían así, conectados a la DAQ:
Pág. 7
El circuito armado queda entonces así:
Pág. 8
Arranque del Measurement & Automation Explorer
En Devices and Interfaces, debe indicar la tarjeta DAQ como NI USB-6009 “Dev1” o el nombre que le hayas
dado a la tarjeta en el campo Name, en este caso aparece como Tarjeta1.
Para comprobar las conexiones realizadas hacemos clic en la pestaña que dice Test Panels…, entonces aparece
la ventana de pruebas, tal como se observa en la figura 4a. Esta ventana contempla cuatro pestañas: Analog
Input, Analog Output, Digital I/O y Counter I/O.
Esta pestaña, que es la primera que se aparece, y se observa en la figura 4a, nos permite observar la señal
que llega a la DAQ, para lo cual tenemos que indicar el canal por el que se encuentra conectado el sensor
(Channel Name), en nuestro caso el AI0, en el modo de adquisición (Mode) hay tres tipos: adquisición de
una muestra (On Demand), adquisición de n muestras, donde n es definida por # Points to Read (Finite) y
adquisición continua de muestras, hasta que se aplique Stop (Continuous), escogemos On Demand. En
Input Configuration, tenemos dos modos diferencial (Differential) y señal simple referenciada a tierra
(RSE), usamos modo diferencial.
En el valor máximo de voltaje (Max Input Limit) colocamos 10 y en el valor mínimo (Min Input Limit), 0.
Suprimimos el √ en la opción de auto escalamiento (Auto-scale chart) y presionamos el botón Start.
Pág. 9
Figura 4a) Test Panels: Analog Input
La segunda pestaña, aparece en la figura 4b. Para poder tomar la señal analógica de salida, es suficiente ubicar
un multímetro. En primer lugar escogemos el canal de salida (Channel Name), en nuestro caso AO0. Luego de
lo cual indicamos los límites de voltaje, Max Output Limit (V) para el máximo y Min Output Limit (V) para el
mínimo, en este caso mantenemos 5 y 0 respectivamente.
Las otras opciones (Mode, Transfer Mechanism y Rate) están desactivadas y no son aplicables a la NI USB-
6009. En la parte derecha de la ventana, podemos observar una corredera, que se va desplazando desde el
valor mínimo hasta el valor máximo de voltaje, esto es entre 0 y 5 V. El valor indicado en Output Value (V), es
el valor al cual mantiene su salida analógica la DAQ, y es el valor que debe indicarnos el voltímetro. Cada vez
que movemos la corredera y cambia el valor del voltaje virtual generado, es necesario presionar el botón
Update, para que el mismo pueda ser actualizado en la salida.
Pág. 10
Figura 4b) Test Panel: Analog Output
Lectura en la
Salida AO0
Salida AO0
Pág. 11
Test Panel: Digital I/O.
Representa la tercera pestaña y se observa en la figura 4c. Como se observó en el punto 2) de este
documento, una entrada/salida digital esta denominada por la combinación de dos números x e y junto a
la letra P, así:
Px.y
Como por ejemplo P0.0, P0.2, P1.6, etc. En la ventana de la figura 4c, el número x es identificado como
puerto (Port) mientras que el número y representa la línea (Line). Entonces primero identificamos el
puerto (1. Select Port) en Port Name. La tarjeta NI USB-6009 tiene solo dos puertos el 0 y el 1, para el
caso de este tutorial colocamos port0. A continuación en 2. Select Direction, determinamos el tipo de
acceso para cada una de las líneas (entrada o salida) a través de los círculos de selección. Si queremos
que todas sean entradas presionamos All Input, o solo salidas con All Output. En la casilla port0
Direction 1 representa entradas y 0 representa salidas. En nuestro caso, en P0.0 tenemos una entrada
y en P0.1 una salida, entonces el puerto 0 línea 0, mantenemos la selección donde esta y en puerto 0
línea 1, cambiamos al radio botón inferior, obteniendo la siguiente variación:
P0.1 P0.0
Pág. 12
Obsérvese que en 3. Select State, las entradas son representadas por LED, y las salidas por interruptores.
Al presionar el botón Start, se inicia la comunicación con los instrumentos digitales y con el interruptor
virtual podremos encender el LED externo, mientras que con el interruptor externo prenderemos y
apagaremos el LED virtual.
Representa la última pestaña cuya ventana la observamos en la figura 4d. La tarjeta NI USB-6009 tiene
una sola entrada de pulsos, denominada PFI0.
En Channel Name, la única opción válida es ctr0, el único modo reconocido de conteo para esta entrada
es por flanco, entonces en Mode mantenemos la opción Edge Counting y en la fuente de los flancos
tenemos dos opciones validas, cuando el flanco en PFI0 da de inicio al proceso adquisición de datos por
las entradas analógicas AI, escogemos ai/StartTrigger, pero si buscamos contra pulsos de una fuente de
pulsos como puede ser un tacómetro usamos /PFI0. En nuestro caso la segunda opción es la utilizada. La
presionar el botón Start, en Counter Value, irán indicándose el número de pulsos, que van llegando a PFI0.
Externamente podemos crear un generador de pulsos con un circuito idéntico al de la entrada digital, pero
conectada al borne PFI0, y en lugar del interruptor es más conveniente utilizar un pulsador, como se indica
a continuación:
Pág. 13
Insertando instrumentos en un programa de LabVIEW
Para poder insertar instrumentos en un programa es importante tener los dispositivos conectados a la
tarjeta y comprobada su conexión. A continuación iniciamos una aplicación en blanco en LabVIEW, así:
a. Arrancamos LabVIEW
c. Se crean entonces la ventana de diagrama de bloque (Block Diagram) y panel frontal (Front
Panel).
Pág. 14
La comunicación con la DAQ y los instrumentos se lo hace sobre el diagrama de bloques. Hay dos
formas de establecer esta comunicación: mediante el DAQ Assist y a través de VIs. La primera
opción es la más fácil pero involucra macros grandes y programación de procesos que a veces no
se utilizan, salvo para el contador, el resto de instrumentos se conectaran mediante los VIs del
menú NI-DAQmx ubicado en Measurement I/O como se observa en la figura 6.
Pág. 15
Los VIs a utilizar en el proceso son:
Iniciamos la programación ubicando el lazo While y el botón de control general del programa:
Arrastramos un DAQmx Global Channel y un DAQmx Read vi mediante el cual leeremos la señal analógica y
llevarla a un registrador.
Pág. 16
Llevamos el cursor a la flecha del DAQmx Global Channel hasta que el cursor cambie de flecha a una mano,
entonces hacemos clic, y aparece un menú del cual escogemos Browse….:
Pág. 17
Al hacer clic en este botón aparece un menú, del cual escogemos MAX Channel
Pág. 18
En la parte derecha de esta ventana tenemos dos menús que son Acquire Signals (leer señales desde sensores)
y Generate Signals (escribir señales a actuadores). En Acquire Signals tenemos las siguientes posibilidades:
Voltaje
Temperatura Iex Thermistor
RTD
Thermocouple
Vex Thermistor
Strain
Current
Resistance
Frecuency
Position LVDT
RVDT
Analog Input Eddy Current Proximity Probe
Acquire Signals
Sound Pressure
Acceleration
Velocity (IEPE)
Force Force (Bridge)
Force (IEPE)
Pressure Pressure (Bridge)
Torque Torque (Bridge)
Bridge (V/V)
Custom Voltage with Excitation
Pág. 19
Frecuency
Period
Pulse Width
Semi Period
Two Edge Separation
Position Linear
Angular
Digital Input Line Input
Port Input
TEDS (Sensores
virtuales)
Voltage
Analog Output
Current
Generate signals Counter Output Pulse Output
Line Output
Digital Output
Port Output
Como vamos a leer la señal del potenciómetro conectado a una fuente de 9 voltios que nos genera un voltaje
entre 0 y 9V, entonces, para nuestro caso escogemos Voltage de Analog Input en Acquire Signals y
presionamos el botón Next.
Luego de lo cual, continuará el proceso preguntándonos por el puerto en el que está conectado el sensor:
Pág. 20
Escogemos ai0, y presionamos el botón Next.
Finalmente presionamos el botón Finish. Al finalizar el proceso de “conexión” con la tarjeta aparece la última
ventana, que se conoce como la ventana de asistencia del DAQ (DAQ Assistant), para configurar parámetros
adicionales de la señal.
La ventana del asistente de configuración tiene tres pestañas, en la primera tenemos: en la parte superior
herramientas para monitorear la señal de entrada y su presentación en tabla o gráfico:
Pág. 21
Visualización en tabla
Para poder apreciar si la señal está, presente efectivamente en la entrada AI0, presionamos el botón Run y lo
apagamos con Stop.
En la parte inferior de la configuramos los parámetros del canal como el rango de entrada, en Signal Input
Range: Max y Min, las unidades de la señal en Scale Units, el tipo de conexión en Terminal Configuration y el
escalamiento de señal de usuario en Custom Scaling.
La opción de escalamiento nos permite ajustar, la salida a la realidad de la señal física (característica estática
del sensor) a través de ajustes lineales, polinomiales, por mapeo y tablas. La ventana que sale al escoger Create
New de Custom Scaling es:
Escogemos Linear, suponiendo una relación lineal entre la señal física de temperatura y la salida de voltaje,
entonces nominamos la escala, presionando Next:
Pág. 22
Finalmente presionamos el botón Finish para terminar.
Si suponemos que la salida de voltaje de 0 a 9V, corresponde a una señal de temperatura que varía entre 0 y
200 °C, la relación °C vs. V será:
Pág. 23
Finalmente la el rango de entrada lo fijamos entre 0 y 10V y la pestaña de configuración nos quedará así:
Entonces en la lista de canales que se presentó al inicio ahora ya aparece el canal creado:
Lo escogemos simplemente presionando el botón OK. Entonces en la ventana del diagrama de bloques
aparece ya el canal creado.
A continuación unimos la salida del canal con la entrada del VI de lectura nominada task/channels in, así:
Pág. 24
Y la salida data del Vi de lectura con la entrada de dato del indicador de gráficos, así:
Pág. 25
A continuación llevamos el cursor a la flecha del DAQmx Global Channel hasta que el cursor cambie de
flecha a una mano, entonces hacemos clic, y aparece un menú del cual escogemos Browse….:
Pág. 26
De la ventana adicional que se abre, escogemos Create New…
Al hacer clic en este botón aparece un menú, del cual escogemos MAX Channel
Aparecerá entonces la ventana para establecer el canal de comunicaciones. De esta ventana escogemos la
opción Line Input, del submenú Digital Input en Acquire Signals:
Pág. 27
Si desearíamos leer todo un puerto, utilizaríamos la opción Port Input.
Escogemos el puerto y línea donde se encuentra la señal, en nuestro caso P0.0 (puerto 0 y línea 0):
Le asignamos un nombre:
Pág. 28
Al igual que el asistente para el analógico, en este caso en la parte superior un LED virtual nos permite
determinar la correcta conexión del interruptor externo, al presionar Run, el LED se encenderá, si el interruptor
externo se enciende y se apagara si el interruptor externo se apaga. Si queremos que el LED este encendido
mientras el interruptor este apagado o se apague si en interruptor externo está presionado (lógica inversa),
seleccionamos Invert Line. Al presionar Ok, regresamos a la primera ventana, la de asignación de canales, se
encuentra marcado SW2.
A continuación y antes de unir los elementos el VI de lectura que indica Analog DBL 1 Chan 1 Samp, que estaba
bien para analógicos, debe cambiarse a Digital para lo cual presionamos con el cursor en forma de mano sobre
la flecha .
Pág. 29
Y escogemos Boolean (1 Line) de Single Sample que se encuentra en Single Chanel de la opción Digital.
Una vez finalizada la conexión, presionamos el interruptor y el LED en el panel frontal del programa se
encenderá.
Arrastramos un DAQmx Global Channel y un DAQmx Write vi, mediante el cual enviaremos el estado de un
interruptor virtual a un LED real.
Pág. 30
A continuación llevamos el cursor a la flecha del DAQmx Global Channel hasta que el cursor cambie de
flecha a una mano, entonces hacemos clic, y aparece un menú del cual escogemos Browse….:
Pág. 31
Al hacer clic en este botón aparece un menú, del cual escogemos MAX Channel
Aparecerá entonces la ventana para establecer el canal de comunicaciones. De esta ventana escogemos la
opción Line Output, del submenú Digital Output en Generate Signals:
Pág. 32
A continuación escogemos el puerto y la línea a donde se conecta el LED externo, para nuestro caso P0.1
(puerto 0 y línea 1):
Presionamos el botón Next para nominar al canal de salida, en la ventana que aparece en el campo Enter
Name:
Pág. 33
En la parte superior de la ventana tenemos la zona de prueba, que se activa al presionar el botón Run, luego
de lo cual puedo seleccionar el círculo, y el LED externo, si se encuentra bien conectado debe prenderse y
apagarse. En la pestaña Settings podemos cambiar la lógica de operación del canal de salida digital. Una vez
terminada la configuración presionamos Ok o simplemente cerramos la ventana.
Entonces regresamos a la primera ventana del proceso, donde aparecerá el canal creado:
A continuación y antes de unir los elementos, el VI de escritura que indica Analog DBL 1 Chan 1 Samp, que
estaba bien para analógicos, debe cambiarse a Digital para lo cual presionamos con el cursor en forma de
mano sobre la flecha
Pág. 34
Escogemos Boolean (1 Line) de Single Sample que se encuentra en Single Chanel de la opción Digital.
Quedándonos finalmente:
Una vez finalizada la conexión, al ejecutar la aplicación, presionamos el interruptor virtual y el LED en el
protoboard se encenderá.
Arrastramos un DAQmx Global Channel y un DAQmx Write vi, mediante el cual indicaremos el valor de la salida
que quiero enviar, cuyo valor lo ingresamos en un cuadro numérico.
Pág. 35
Configuramos canal de salida:
Pág. 36
Para el caso de las salidas analógicas, como se ve en la última ventana, hay solo dos posibilidades: voltaje
(Voltage) y corriente (Current). Escogemos voltaje.
Pág. 37
Y terminamos de configurar la salida:
Para poder chequear la salida analógica, en el cuadro numérico, junto al botón Apply Value to Channel,
colocamos un valor dentro del rango de la señal de salida indicada en Signal Output Range. Para que el voltaje
salga efectivamente al canal tenemos que presionar el botón citado. El rango indicado en Signal Output Range
y lo podemos cambiar variando los valores de Max y Min. En Terminal Configuration escogemos el tipo de
conexión real de la salida, la DAQ que utilizamos solo tiene salida simple referenciada a tierra o RSE, finalmente
como en el caso de las entradas digitales, podemos aplicar nuestra propia escala, escogiendo la opción Create
New… en Custom Scaling.
Pág. 38
Entonces procedemos a conectar:
La salida del cuadro numérico con la entrada de data del VI y la salida del canal creado con tasks/channels in
en el VI.
Para insertar esta entrada, y dado la complejidad del procesamiento de los datos, es preferible hacerlo a través
del DAQ Assist, para lo cual en el menú DAQmx de Measurement I/O, escogemos el icono:
Y lo arrastramos al programa, entonces aparece la ventana del asistente, donde escogemos Edge Count, del
menú Counter Input en Acquired Signal. Las otras opciones no están habilitadas para la USB 6009.
Pág. 39
Entonces seleccionamos el único canal de entrada de pulsos que tiene la tarjeta, indicado como ctr0 y cuyo
borne físico es PFI0:
Entonces presionamos el botón Finish, para que nos aparezca la ventana de configuración.
Pág. 40
Las opciones indicadas por el cuadro las mantenemos, pues son las únicas que se pueden aplicar para la USB
6009. Finalmente presionamos el botón Ok y nos queda así el diagrama de bloques.
Para observar el número asociado al conteo de pulsos en el panel frontal ubicamos un indicador numérico y
el diagrama de bloques lo conectamos a la salida de datos del VI creado.
Pág. 41
Al ejecutar la aplicación, y en función de los pulsos ingresados a la tarjeta, un numero decimal aparecerá en el
indicador relacionado con el número de flancos negativos de la señal. Hay que tomar en cuenta el rebote en
el caso de utilizar un interruptor para generar los pulsos.
Pág. 42
Figura 8: Proceso con medida analógica de nivel
La detección de nivel de líquido se la puede realizar mediante sensores analógicos, como por interruptores
digitales, en ambos casos se puede aplicar los estados del proceso.
Para obtener la expresión de control hay que considerar que el proceso tiene cuatro estados diferentes pues
el 5to y el 1ero son los mismos.
𝑉𝐸 = ̅̅̅̅̅̅̅̅
𝑆𝑀𝐼𝑁. ̅̅̅̅̅̅̅̅
𝑆𝑀𝐴𝑋. ̅̅̅̅
𝑉𝑆 + 𝑆𝑀𝐼𝑁. ̅̅̅̅̅̅̅̅
𝑆𝑀𝐴𝑋. ̅̅̅̅
𝑉𝑆
̅̅̅̅̅̅̅̅. 𝑉𝑆
𝑉𝐸 = 𝑆𝑀𝐴𝑋 ̅̅̅̅ (𝑆𝑀𝐼𝑁
̅̅̅̅̅̅̅̅ + 𝑆𝑀𝐼𝑁)
Y para VS tenemos
𝑉𝐸 + 𝑆𝑀𝐼𝑁. ̅̅̅̅̅̅̅̅
𝑉𝑆 = 𝑆𝑀𝐼𝑁. 𝑆𝑀𝐴𝑋. ̅̅̅̅ 𝑆𝑀𝐴𝑋. ̅̅̅̅
𝑉𝐸
̅̅̅̅̅̅̅̅)
̅̅̅̅ (𝑆𝑀𝐴𝑋 + 𝑆𝑀𝐴𝑋
𝑉𝑆 = 𝑆𝑀𝐼𝑁. 𝑉𝐸
Pág. 43
El resultado de la ejecución del programa es:
Pág. 44
Condición Resultado
Tanque vacío. VE
encendida
Líquido a SMIN.
Llenando. VE
encendida
Líquido a SMAX. VE
cerrado. VS abierto
Pág. 45
SMAX desactivado.
Liquido bajando
Líquido bajo de
SMIN. VE abierta. Se
repite el ciclo.
Aplicando dos interruptores y dos LEDs externos que represente la instrumentación, nos quedaría:
Pág. 46
Para correr el programa con los dispositivos reales se ha hecho la sustitución:
Cuando utilizamos un sensor analógico, es necesario establecer valores de nivel mínimo y máximo, que son
las alturas a las que estaban ubicados los dispositivos digitales del ejercicio anterior. El programa al
comparar el valor arrojado por el sensor analógico con las referencias establecerá un valor de verdad que se
lo puede involucrar en la tabla de valores de estados para establecer la ecuación del proceso para las
válvulas.
Para este ejemplo las referencias serán NMIN = 0.5 m y NMAX = 11.5 m.
Pág. 47
CON2 = TNC ≤ NMAX (condición 2)
Los estados 1 y 5 son los mismos por lo tanto, el proceso nuevamente tiene 4 estados, de donde obtenemos
las ecuaciones para VE y VS:
̅̅̅̅ + CON1
𝑉𝐸 = CON1. CON2. VS ̅̅̅̅̅̅̅̅. CON2. VS
̅̅̅̅
𝑉𝑆 = ̅̅̅̅̅̅̅̅
𝐶𝑂𝑁1. ̅̅̅̅̅̅̅̅ 𝑉𝐸 + ̅̅̅̅̅̅̅̅
𝐶𝑂𝑁2. ̅̅̅̅ 𝐶𝑂𝑁1. 𝐶𝑂𝑁2. ̅̅̅̅
𝑉𝐸
Para simular el sensor de nivel capacitivo, utilizo un Dial de 0 a 12. El programa en su panel frontal y
diagrama de bloques quedaría entonces así:
Pág. 48
El resultado de la ejecución del programa es:
Condición Resultado
El tanque se
encuentra vacío. El
líquido comienza a
ingresar. El líquido
está bajo la
referencia mínima
Pág. 49
El líquido sobrepasa
la referencia
mínima
El líquido ha subido
a medio tanque
El líquido sobrepasa
la referencia
máxima y ha
comenzado a salir.
Pág. 50
El líquido baja del
nivel máximo
El líquido llega
nuevamente a
medio tanque al
salir.
Pág. 51
Puedo reemplazar el Dial, con un potenciómetro externo e incluir dos LEDs externos como válvulas de entrada
y salida, a través de la NI USB-6009, para lo cual es necesario realizar los cambios indicados a continuación:
Pág. 52
Elemento de salida virtual Elemento de salida real
Los parámetros más importantes son: Time Target (s), Reset, Auto Reset, Elapsed Time (s) y Time has Elapsed.
Time Target (s) representa el tiempo de temporización, Reset permite iniciar o detener la temporización, se
inicia con 0 y se detiene y reinicia con 1, Auto Reset permite reiniciar el conteo una vez finalizado el tiempo
indicado en Time Target (s), si este está 1 (V), pero si esta en 0 (F) no actúa, Elapsed Time (s) es el tiempo que
pasa desde iniciado el conteo y Time has Elapsed pasa a 1 cuando el conteo está habilitado y se ha llegado al
final de la cuenta.
RESET
TIME
TARGET
1
ZONA DE TEMPORIZACION
0
TIME HAS
ELAPSED
1
Pág. 53
Proceso con temporización.
Se dispone de un tanque de almacenamiento de agua, donde se quiere controlar el llenado y vaciado
automático del tanque, realizar el programa en LabVIEW, para cumplir con este objetivo. En tanque de 12 m.
de altura dispone de una válvula de entrada y una de salida. El tanque inicialmente vacío, se llena hasta un
nivel máximo, por medio de la válvula de entrada, se mantiene lleno por un lapso de 10 seg. y posteriormente
se vacía hasta el nivel mínimo, para volver nuevamente a llenar y continuar el proceso continuamente.
Donde RES es Reset y THE es Time has Elapsed. RES se puede considerar como una entrada mientras que THE
puede considerarse como una salida. A partir del estado 7 se repite nuevamente el 2 y así continua
indefinidamente.
Pág. 54
Para plantear las ecuaciones hay que realizar las siguientes consideraciones:
Pág. 55
Nótese que en el diagrama de bloques no utilizamos la operación AND común ( ), sino la operación
compuesta, denominada Compound Arithmetic ( ). La ventaja de utilizar esta última operación, sobre la
AND standard es el hecho que puedo manejar varias entradas con un solo símbolo y puedo “negar las
entradas”, como que si las señales de entrada pasarían primero por un NOT ( ). Entonces por ejemplo para
representar la operación 𝐴̅. 𝐵. 𝐶̅ , seguimos los siguientes pasos:
Pág. 56
Elemento de salida virtual Elemento de salida real
Un contador ascendente
Lo primero a realizar para resolver este problema es definir un contador, en este caso lo haremos con un
contador ascendente, mediante el programa que vemos a continuación:
Pág. 57
El contador comprende tres etapas, el tratamiento de los pulsos, a través del nodo de realimentación y el
comparador >,
RESET
CUENTA
1
ZONA DE CONTEO
0
FINAL
CUENTA
1
Pág. 58
Para poder contar las veces que giran las paletas de mezcla unidas al motor del mezclador (M), es necesario
disponer de un sistema tacométrico, como el siguiente:
Cada vez que la luz pasa por el orificio, de una placa sujeta al eje se genera una señal paso, sin embargo no es
práctico e involucra problemas en la programación contar los pasos, lo más practico es contar las transiciones
de 0 a 1 o las transiciones de 1 a 0, conocidos como flancos positivos y flancos negativos respectivamente.
Dado que en toda una vuelta se generaran un flaco positivo y un flanco negativo, entonces n flancos
representaran n vueltas. La primera parte del circuito, en el procesamiento se encarga de contar los flancos
positivos. Fíjese bien que en este caso, por la estructura del tacómetro resulta ser un flanco por vuelta, pero
si la placa tendría más de un agujero habría que determinar cuántos flancos se generan por vuelta, y por lo
tanto cuantos pulsos hay que contar para el número de vueltas que se quiere controlar.
El primer selector permite poner un cero en la cuenta, si llega un uno a la señal de RESET o mantiene la cuenta
y el segundo selector permite mantener la cuenta o incrementarla en una unidad controlada por los flancos.
El circuito contador podemos utilizarlo incluyendo todos los elementos en el programa final o transformándolo
en un SubVI, de acuerdo a lo que se explica en
http://www.insdecem.com/archivos/documentos/NI-Tutorial-7593-en.pdf
RESET Cuenta
PULSOS Final Cuenta
Limite Cuenta
Cuyas entradas son RESET, PULSOS y Limite Cuenta, mientas las salidas son Cuenta y Final Cuenta.
RESET inicializa la cuenta con 1, no hace nada con 0, PULSOS es la entrada para la señal que viene del
tacómetro, Limite Cuenta es un numérico que indica hasta que valor el contador llegará, por Cuenta sale un
valor que va de 0 al número ingresado en Limite Cuenta y por Final de Cuenta sale un 1 cuanto Cuenta es
mayor o igual al numérico en Limite de Cuenta.
Entonces con este SubVI, podemos ya desarrollar el programa, primero planteamos los estados y sus valores
y hallamos las ecuaciones para los actuadores y para el RESET del SubVI.
Las condiciones generados por el sensor de nivel analógico las tomaremos ahora como:
Pág. 59
Condición de los instrumentos
Estados
No. CON1 CON2 VE VS M FC RES CONT
1 El tanque se encuentra vacío. El líquido 0 0 1 0 0 0 1 0
comienza a ingresar. El líquido está bajo la
referencia mínima.
2 El líquido sobrepasa la referencia mínima 1 0 1 0 0 0 0 0
3 El líquido sobrepasa la referencia máxima. 1 1 0 0 1 0 0 0/1
Comienza el conteo. Se generan los pulsos
desde el dispositivo tacométrico
9 cuentas con el estado anterior
4 Finaliza el conteo 1 1 0 1 0 1 0 0
5 El líquido está bajo la referencia máxima 1 0 0 1 0 1 0 0
6 El líquido está bajo la referencia mínima 0 0 1 0 0 0 1 0
Como en casos anteriores, el estado 1 y el 6 son los mismos, por lo que el proceso tiene 5 estados. Es
importante observar que los únicos actuadores condicionado por el contador son VS y el motor de la
mezcladora M, por lo tanto el final de cuenta FC, afectará solo a ellos. Por lo tanto las ecuaciones quedan así:
𝑉𝐸 = ̅̅̅̅̅̅̅̅
𝐶𝑂𝑁1. ̅̅̅̅̅̅̅̅
𝐶𝑂𝑁2. ̅̅̅̅
𝑉𝑆. 𝑀̅ + 𝐶𝑂𝑁1. ̅̅̅̅̅̅̅̅
𝐶𝑂𝑁2. ̅̅̅̅ ̅ = ̅̅̅̅̅̅̅̅
𝑉𝑆. 𝑀 𝐶𝑂𝑁2. ̅̅̅̅ ̅
𝑉𝑆. 𝑀
̅̅̅̅ . 𝑀
𝑉𝑆 = 𝐶𝑂𝑁1. 𝐶𝑂𝑁2. 𝑉𝐸 ̅̅̅̅̅̅̅̅. 𝑉𝐸
̅ . 𝐹𝐶 + 𝐶𝑂𝑁1. 𝐶𝑂𝑁2 ̅̅̅̅ . 𝑀
̅ . 𝐹𝐶 = 𝐶𝑂𝑁1. 𝑉𝐸
̅̅̅̅ . 𝑀
̅ . 𝐹𝐶
𝑉𝐸 . ̅̅̅̅
𝑀 = 𝐶𝑂𝑁1. 𝐶𝑂𝑁2. ̅̅̅̅ 𝑉𝑆. ̅̅̅̅
𝐹𝐶
̅̅̅̅̅̅̅̅. 𝐶𝑂𝑁2
𝑅𝐸𝑆 = 𝐶𝑂𝑁1 ̅̅̅̅̅̅̅̅. 𝑉𝐸. 𝑉𝑆
̅̅̅̅ . 𝑀
̅
Pág. 60
Borrando etiquetas asignadas a un dirección de la NI 6009
Cada vez que conectamos la tarjeta Ni UBD 6009 a un computador, y aún más si utilizamos diferentes
puertos USB, los nombres automáticos definidos para el dispositivo serán Dev1, Dev2, Dev3,…..Devx. Y las
etiquetas o nombres de los canales de acceso a los sensores estarán definidos por estos nombres.
Para poder observar los nombres de los canales de comunicación a los sensores desde LabVIEW, arrancamos
el programa NI MAX, ante lo cual obtenemos lo siguiente:
Pág. 61
En la parte izquierda de la ventana podemos encontrar, desplegando Data Neighborhood y NI-DAQmx Global
Virtual Channels, los diferentes canales creados durante la programación en el entorno de LabVIEW, asi:
Al hacer clic sobre el nombre de cualquier canal, se despliega al lado derecho de la lista las características del
canal y la posibilidad de probar su funcionamiento, así:
Pág. 62
Al hacer clic botón derecho sobre el canal indicado, nos aparecerá en el menú la opción Delete, que nos
permitirá borrarlo, así:
Para poder resetear los canales a la configuración inicial de LabVIEW, esto es sin ninguno definido, podemos
utilizar la opción Reset Configuration Data, al aplicarla el programa nos advierte que luego de lo cual será
necesario resetear el sistema, así:
También desde NI-DAQmx Global Virtual Channels, al hacer clic botón derecho podemos directamente desde
aquí y sin entrar a LabVIEW crear canales que luego pueden ser usados en la programación, así:
Pág. 63