Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA 4
Contenidos
1 - OBJETIVOS
2 - INTRODUCCIÓN
NECESIDAD DE LA INTERFAZ CON EL PROCESO
QUÉ CONSTITUYE LA INTERFAZ
SENTIDO DE LA COMUNICACIÓN
3 - ADQUISICIÓN DE DATOS
TIPOS DE SEÑALES
SEÑALES DIGITALES
TARJETA DE E/S NI USB-6008
SEÑALES ANALÓGICAS
5 - BIBLIOGRAFÍA
TEMPERATURA (EA)
100ºC
REBOSE (ED)
0ºC
NIVEL (EA)
BOMBA (SA)
VALVULA (SD)
Deposito
SOBRECALENTAMIENTO (ED)
CALEFACTOR (SD)
double Nivel,Temperatura;
int Valvula=CERRADA;
Sistema informático
Sensores
Imagen Proceso
Interfaz Proceso Interfaz
Sistema
Sistema
operador proceso
Industrial Industrial
Actuadores
double Nivel;
int Valvula;
Temperatura=27.0;
Termómetro
(Sensor)
DECISIÓN
if(Temperatura<30.0)
Calefactor=ENCENDIDO;
Calefactor
ACCIONAMIENTO (Accionador)
(SALIDA)
INFORMÁTICA Interfaz con el Proceso 8
INDUSTRIAL
2 - Introducción
Imagen Interna
if(PosEstimada<PosObjetivo)
Pasos=PosObjetivo-PosEstimada; Motor Paso a Paso
en un Posicionador Lineal
no realimentado
Imagen Interna
Sensor de Presencia
en la puerta de un museo
Visitantes++; (Sensor de paso de vehículos en
una carretera)
Tipos de Señales
• Las variables en el proceso pueden ser de distinta naturaleza:
– Temperatura, velocidad, presión, válvula, bomba, persiana, etc.
15.0 mV
Función de Transferencia de un Termopar
(Transductor)
Tensión = Tensión (Temperatura)
5.0 mV
Temperatura (ºC)
-100.0 ºC 0.0 ºC 100.0 ºC
Tipos de Señales
Dir x
controlador
Monedero
Bits asignados al Monedero
Afecta al Puerto
Manipulación de Puertos
=
7 6 5 4 3 2 1 0
x x x x x x 1 x PuertoSalida (Después)
Puerto de 8 bits
7 6 5 4 3 2 1 0
x x x x x y x x PuertoSalida (Antes)
AND
7 6 5 4 3 2 1 0
1 1 1 1 1 0 1 1 Máscara: FFFBH
=
7 6 5 4 3 2 1 0
x x x x x 0 x x PuertoSalida (Después)
Puerto de 8 bits 7 6 5 4 3 2 1 0
x x x y y y x x PuertoEntrada
AND
7 6 5 4 3 2 1 0
0 0 0 1 1 1 0 0 Máscara: 001CH
>>2
7 6 5 4 3 2 1 0
0 0 0 0 0 y y y Código
Puerto de 8 bits
7 6 5 4 3 2 1 0
x x x 1 1 1 x x PuertoEntrada
AND
7 6 5 4 3 2 1 0
0 0 0 1 1 1 0 0 Máscara: 001CH
>>2
7 6 5 4 3 2 1 0 Valor 7 que
0 0 0 0 0 1 1 1 corresponde a la
moneda de 2 Euros
analógica de 12 bits
• Tarea (task):
– Conceptualmente una tarea representa una medida o una generación de señal que
se desea llevar a cabo.
– En este caso es una colección de uno o más canales virtuales, con temporización,
disparo y otras propiedades.
– Todos los canales incluidos en una tarea deben ser del mismo tipo, como entrada
analógica, salidas digitales, salidas de contador ...
– Para llevar a cabo una medida o generar una señal con una tarea, hay que seguir
estos pasos:
• 1. Crear una tarea (o re-cargar una ya existente).
• 2. Configurar el canal y, si es necesario, la temporización y el disparo.
• 3. Leer o escribir las muestras.
• 4. Eliminar la tarea.
– Si se va a repetir más de una vez la tarea (i.e. un bucle), SÓLO se repite el paso 3!
• Canal (“channel”):
– Dos tipos: canales físicos y canales virtuales.
– Un canal físico es un terminal, o pin, a través del cual se puede medir o generar una
señal analógica o digital. Cada canal físico tiene el formato básico:
"nombre dispositivo /nombre canal físico",
por ejemplo: Dev2/ao5 ó Dev6/ctr3.
– Los canales virtuales son entidades software que encapsulan el canal físico con
otra información específica del canal, (rango, configuración de terminales, escala,
etc.), que formatea el dato.
– Se pueden crear diferentes tipos de canales virtuales en función del tipo de señal –
analógica, digital o contador – y la dirección de la misma (entrada o salida):
• Canales de Entrada Analógicos.
• Canales de Salida Analógicos.
• Canales de Entrada/Salida Digital (basados en líneas o en puertos)
• Canales de Entrada/Salida de Contador.
•Para hacer una lectura de un puerto digital hay que primero crear un
canal, usando la función:
– DAQmxCreateDIChan()
daq_error = DAQmxCreateDIChan(sensor_rebose,”Dev0/port1”,"",DAQmx_Val_ChanForAllLines);
• Después se puede realizar “la lectura” de ese canal con las funciones:
– DAQmxReadDigitalScalarU32() -> para leer un puerto completo
– ...
TEMPERATURA (EA)
100ºC
REBOSE (ED)
NIVEL (EA) 0ºC
int32 daq_error;
Nombre Almacena
uInt32 data; Tarea Lectura
daq_error = DAQmxReadDigitalScalarU32 (sensor_rebose, 0.0, &data, NULL);
if (daq_error != 0)
process_error(daq_error,"proceso_leer_rebose()");
if ((data & 0x01) == 0){ //extraemos el bit 0 del puerto P1, REBOSE es activo a nivel bajo!!!
Datos_Escribir_Rebose(REBOSE_HAY);
else {
Datos_Escribir_Rebose(REBOSE_NO_HAY);
– ...
TEMPERATURA (EA)
100ºC
REBOSE (ED)
0ºC
NIVEL (EA)
BOMBA (SA)
VALVULA (SD)
Deposito
SOBRECALENTAMIENTO (ED)
CALEFACTOR (SD)
Actividad Depósito:
entrada digital
Las señales analógicas deben ser discretizadas, pues los procesadores trabajan
sólo sobre conjuntos discretos (datos)
DATOS
......
0000011101
0011011011
0011100000
0011101111
INFORMÁTICA Interfaz con el Proceso 44
INDUSTRIAL
3 - Adquisición de Datos: Señales analógicas
Tensión (mV)
15.0 mV
Conversor
00011101
A/D 5.0 mV
11011011
11100000 -100.0 ºC 0.0 ºC 100.0 ºC
Temperatura (ºC)
11101111
Salida Entrada
Digital Analógica
INFORMÁTICA Interfaz con el Proceso 45
INDUSTRIAL
3 - Adquisición de Datos: Señales analógicas
Sistema Típico A/D
Tensión
00011101
11011011 Conversor
11100000 A/D
11101111
Tiempo
Disparo Muestreador/ Filtro/
Retenedor Amplificador
1. Inicio de Conversión (Disparo)
2. Proceso de Conversión (Tiempo de Conversión)
Muestreo y Retención. Cuantificación y Codificación
3. Espera Fin de Conversión (Sincronización)
4. Adquisición y Uso del Dato Digital (Transferencia)
Proceso de Conversión
Muestreo Cuantificación Tiempo
Inicio de Conversión Fin de Conversión. Dato Disponible
INFORMÁTICA Interfaz con el Proceso 46
INDUSTRIAL
3 - Adquisición de Datos: Señales analógicas
Interpretación en A/D
Dato
Tensión (mV)
111
110
15.0 mV
101
100
011 5.0 mV
010 Temperatura (ºC)
001 -100.0 ºC 0.0 ºC 100.0 ºC
000 V
0V 5V
Tensión = F(Temperatura)
Dato = G(Tensión)
– DAQmxCreateAIStrainGageChan()
– ...
– ...
SA
Tensión
00011101
11011011 Conversor
11100000 D/A
Tiempo
11101111
Entrada Salida
Digital Analógica
INFORMÁTICA Interfaz con el Proceso 53
INDUSTRIAL
3 - Adquisición de Datos: Señales analógicas
Vgnd
Dato_Digital
00...0 ..........din FF...F
2n datos
...
...
SA
daq_error=DAQmxCreateAOVoltageChan(pump_actuator_task,“ Dev0/ao0”,””,0.0,5.0,DAQmx_Val_Volts,NULL);
...
}
// funcion de escribir actuador analógico (la bomba de subir liquido) -----------
Preparar
void proceso_escribir_bomba(double potencia) {
canal
double volts;
int32 daq_error;
volts = 5.0*(potencia/100.0); // 0.0V->0%, 5.0V->100%
Ejemplo depósito
para el miniproyecto.
Actividad
A) 0.5 m/s
B) 1 m/s
C) 1.25 m/s
Solución
Actividad
Solución
INFORMÁTICA Interfaz con el Proceso 62
INDUSTRIAL
Actividades
Actividad
Un sensor mide la cantidad de líquido de un depósito entregando una
tensión directamente proporcional a la cantidad de líquido según
la función de transferencia:
Nivel (litros) = Tensión (voltios) * 100.0
La capacidad del depósito estará entre 0 y 500 litros, por lo que el
sensor entrega una tensión entre 0 y 5 voltios.
La salida del sensor se conecta a un conversor A/D lineal de 8 bits
(2^8=256) ajustado de manera que el valor binario 0000 0000
equivale a 0 Voltios y el valor binario 1111 1111 equivale a 5
voltios.
Suponiendo que se lee el conversor A/D y se deposita la lectura en la
variable unsigned int dato, determinar la expresión que
facilita el nivel a partir de la lectura del conversor A/D
double nivel, tension;
unsigned int dato;
// pasar de dato a tension
// pasar de tension a nivel
Solución
INFORMÁTICA Interfaz con el Proceso 63
INDUSTRIAL
Actividades
Actividad
Un termopar mide la temperatura del agua en el depósito, pudiendo
variar entre 0 ºC y 100 ºC. Su función de transferencia es lineal:
Tensión (mV) = 5.0 (mV) + 9 (mV/ºC) * Temperatura (ºC)
Solución
INFORMÁTICA Interfaz con el Proceso 64
INDUSTRIAL
Actividades
Actividad
Realizar una función con la cabecera siguiente:
maxv
minv
10V 10V
V V
0 dato_dig
0
0 4095 dato_dig 0 2m/s
Vanalog = 10/4095 * dato_dig Vanalog = 5 * Velocidad
Vanalog = Vgnd+((Vref-Vgnd)/2n)*Dato
= 0 + ((10-0)/ (212-1) )*Dato
= 0.00244*Dato
10V
0
Dato = 409.5 * Vanalog
0 2m/s
Vanalog = 5 * Velocidad
Tensión _ Amplificador
5
Tensión _ Termopar 5 10
Temp(º C )
9 9