Apuntes de la Tarjeta de Adquisición y Control

Anuncio
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
Apuntes de la Tarjeta de Adquisición y Control
1. Resumen
Estos apuntes describen el modo de operación de una tarjeta digitalizadora de señales y conjunto de rutinas de
software desarrolladas para el manejo de la misma. En estos apuntes la tarjeta digitalizadora o de adquisición de
datos será referida como DAC, abreviación común que proviene de sus nombres más frecuentes en inglés: Data
Acquisition Card (DAC) o Data Acquistion and Control Card (DACC). El software asociado a la DAC incluye los
drivers de control de la tarjeta, librerías con rutinas para acceder a las funciones de lectura y escritura, y ejemplos.
Los ejemplos pueden ser fácilmente compilados en el ambiente Visual .NET (Visual C++, Visual Basic, C#) u otros
compiladores. Además pueden emplearse como referencia para construir aplicaciones de despliegue gráfico y
procesamiento de datos.
Figura 1: Tarjeta de adquisición de datos Measurement Computing PCI-DAS6014.
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
1
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
2. Características de la DAC
2.1. Especificaciones de la DAC
La tarjeta digitalizadora PCI-DAS6014 que se muestra en la Figura 1 está concebida para la conversión analógica a
digital (A/D) y digital a analógica (D/A) de señales. Para ello cuenta con un conjunto de entradas y salidas, cuyas
especificaciones técnicas se resumen en la siguiente tabla. Detalles adicionales pueden encontrarse en y .
Entradas Analógicas
Número de canales
Rangos de Voltaje
Resolución
Frecuencia de Muestreo
Streaming-to-disk
Tipo de Conversor A/D
Salidas Analógicas
Número de canales
Rangos de Voltaje
Resolución
Frecuencia de Muestreo
Streaming-to-disk
Tipo de conversor D/A
Entradas/Salidas Digitales
Número de canales
Configuración
Entrada 0 lógico
Entrada 1 lógico
Salida 0 lógico
Salida 1 lógico
Tipo de Lógica
Otras Carácterísticas
Contadores
Interrupciones
Trigges/Clocks
8 (modo diferencial)
16 (modo conector-único)
-5 a 5 V, -10 a 10 V, -500 a 500 mV, -50 a 50 mV
16 bits
Hasta 200 kMuestras/s (dependiendo del sistema)
Aproximaciones sucesivas (successive approximation)
2
-10 a 10 V
16 bits
Hasta 200 kMuestras/s (dependiendo del sistema)
Doble-buffer con multiplicador, (double-buffered, multiplying)
8
Todos los pins con pull-up a +5 V a través de resistencia de 47 kΩ. Posibilidad de
reconfigurar como pull-down a tierra por hardware (ver manual del usuario, ).
-0.5 (mínimo absoluto) a 0.8 V
2.0 a 7.0 V (máximo absoluto)
0.22 – 0.55 V
3.8 – 4.20 V
Discreta de 5 V compatible con TTL
2 de 16 bits, 5 V/TTL
Programables via bus PCI.
Programables por software (ver detalles en el manual del usuario, ).
Tabla 1: Especificaciones de la DAC Measurement Computing PCI-DAS6014.
ATENCION

Antes de conectar una fuente a la tarjeta
de adquisición asegúrese que la magnitud
del voltaje no supere los 10 V. Respete
siempre los rangos de voltaje (ver Tabla 1)
para no dañar la tarjeta de adquisición.
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009

2
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
3. Instalación y configuración de la DAC
Para instalar la DAC debe seguir los siguientes pasos:
1. Instale los drivers de la tarjeta del CD MCC PCI-DAS6014 Drivers. Nota: Deberá instalar los drivers antes
de colocar la tarjeta en un bus PCI.
2. Instale la tarjeta.
3. Instale InstaCal ver 5.7.2 (disponible en la página web del fabricante o del curso).
4. Ejecute InstaCal y agregue la tarjeta PCI-DAS6014. Nota: Es importante que agregue una tarjeta a la lista
de dispositivos en InstaCal para generar un archivo de configuración CB.CFG. La Universal Library no
funcionará si no ha completado este paso.
5. Instale MS Visual .NET 2003, Visual C++ o Borland C++.
6. Instale la Universal Library.
IMPORTANTE

La instalación de los componentes de
hardware y software es sencilla. Si ud. no
está familiarizado con la instalación de
componentes de hardware en un PC, o si
desea conocer los detalles sobre el
funcionamiento,
operación
y
otras
características técnicas de la DAC,
consulte , , y .

4. Conexión y operación de la DAC
Para acceder a las entradas y salidas de la tarjeta digitalizadora, ésta se conecta a un par de circuitos impresos que
poseen conectores para cada una de las entradas y salidas. Estos conectores facilitan la implementación de
conexiones de la DAC con dispositivos sensores y actuadores usando cables estándares del laboratorio. En la Figura
2 se muestra la disposición de los pines en un par de cables planos. Notar que cada circuito impreso tiene una
numeración de 1 a 50, sin embargo cada conector header de 50 pines tiene un estampado en relieve indicando su
correspondencia a los pines 1-50 o 51-100 de la DAC.
En la Tabla 2, y Tabla 3 se muestra la asignación de pines en modo diferencial (8 canales) y modo entrada-única (16
canales), respectivamente. Estos modos son configurables en InstaCal o mediante funciones de la Universal Library.
Los terminales 36 y 38 corresponden a las salidas analógicas de la tarjeta con tierra en el terminal 37. Los terminales
85 al 92 pueden funcionar como entradas o salidas digitales dependiendo como se configuren ciertos registros de la
tarjeta. Como los terminales digitales pueden funcionar bidireccionalmente se debe tener mucho cuidado en
las conexiones que se realicen para no dañar los registros internos en la tarjeta. En modo diferencial, (2, 3),
(4, 5), ..., (16, 17) corresponden a los pares de entradas analógicas (V_HI,V_LO). En modo entrada-única, los
terminales de entrada 2, 4, 6, 8, ..., 16 y 3, 5, 7, ..., 17, corresponden a los canales 0, 1, 2, 3,..., 15, con tierra en los
terminales 1 o 18.
La manera de realizar las conexiones para las entradas analógicas de la DAC en modo entrada-única y en modo
diferencial se indican en las figuras Figura 3 y Figura 4, respectivamente. Note que en modo diferencial, las tierras del
dispositivo que general la señal y la tierra Low-Level Ground (LLGND) de conversor A/D de la DAC no deben
presentar un potencial superior a los ±10 V. Asegúrese de esto antes de realizar cualquier conexión. Para detalles
adicionales sobre otras maneras de realizar las conexiones entre los dispositivos de señal y las entradas de la DAC
consulte .
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
3
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
Recuerde que al realizar mediciones con la DAC de múltiples dispositivos, es importante que todos tengan la misma
tierra de referencia. De no ser así, no emplee el modo entrada-única, utilice en vez el modo diferencial. El modo
diferencial ofrece una mayor inmunidad al ruido, ya que por lo general cuando las tierras no son comunes los voltajes
estarán referidos a potenciales distintos y serán susceptibles a ruido en las fases de tierra distintos.
IMPORTANTE
El caso más simple, pero el menos
probable, es aquel en el que la fuente de
la señal tiene el mismo potencial de tierra
que el de la tarjeta.
Esto sucede
usualmente cuando se alimenta la fuente
de señal directamente desde la tarjeta.

Es importante notar que cualquier voltaje
entre la tierra de la tarjeta y la tierra de la
señal es potencialmente un error de
voltaje si ud. configura el sistema
asumiendo que las tierras son comunes.
Evite usar conexiones a la tierra de la red
220 VAC para conexiones de tierra de
fuentes de señal. Distintas fases de tierra
pueden tener diferencias de voltaje
grandes y potencialmente peligrosas.
Recuerde que las patas de tierra en los
tomacorrientes de 220 VAC pueden estar
conectados entre sí en un punto que se
encuentra fuera de la sala. Por lo tanto es
muy posible que dentro de una misma
sala, dos o más tomacorrientes tengan
cables de la fase tierra distintos.

Para modificar el rango de la tensión de entrada puede emplearse InstaCal o las funciones de la Universla Library:
int cbSetConfig(int InfoType, int BoardNum, int DevNum,
int ConfigItem, int ConfigVal)
int cbGetConfig (int InfoType, int BoardNum, int DevNum,
int ConfigItem, int *ConfigVal)
Revise los ejemplos de uso en las págs. 36-39 y 45-47 de .
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
4
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
Figura 2: Disposición de los pines en cada conector header de la DAC.
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
5
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
Figura 3: Conexión de un canal de entrada de la DAC en modo entrada-única.


ATENCION
El voltaje de modo común, es decir
entre el GND del dispositivo que
genera la señal (sensor o generador
de señales) y el LLGND de la DAC, no
debe ser superior a los ±10 V.
Figura 4: Conexión de un canal de entrada de la DAC en modo diferencial.
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
6
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
Asignación de pines en modo diferencial de 8 canales
Low-Level Ground DAC
V_HI
V_LO
Tierra PC
Tabla 2: Tabla de pines de la DAC en modo diferencial de 8 canales.
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
7
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
Asignación de pines en modo tierra común de 16 canales (conector-único)
0V
± 10 V
Tierra PC
Tabla 3: Tabla de pines de la DAC en tierra común de 16 canales.
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
8
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
5. Programación de la tarjeta en C/C++
El lenguaje C/C++ es el que más se utiliza en aplicaciones industriales que requieren ejecución en tiempo-real por su
flexibilidad y eficiente desempeño. Para programar la DAC en ambiente Windows o DOS deberá contar con un
compilador como el MS Visual C++, Borland C++ u otros indicacos en . Además deberá seguir los pasos de
instalación del software descritos en la sección 3.
IMPORTANTE

Ud. puede desarrollar programas en un
computador que no tenga una DAC. Para
ello ud. deberá añadir una DEMO-BOARD a
la lista de tarjetas en InstaCal mediante la
opción <Install/Add Borrad> y selecciónando DEMO-BOARD de la seccion ISA.

Para usar la Universal Library con MS Visual C++, incluya el archive header de la Universal Library CBW.H en su
programa en C/C++ y agregue la librería CBW32.LIB a la lista de librerías a ser enlazadas con CBW32.DLL.
5.1. Ejemplos
El directorio C:\MCC\CWIN de la instalación de la Universal Library contiene tres ejemplos de programas: Wincai01,
Wincai02 y Wincai03. Cada uno de estos en un ejemplo de un programa simple que llama algunas funciones de la
Universal Library desde una aplicación de Windows. Utilice el archivo .DSP para construir las aplicaciones de 32-bit o
el .MAK para las apliaciones de 16-bit. Los ejemplos en C no-Windows se encuentran en el directorio C:\MCC\C.
Estos constituyen un set más completo de ejemplos. Estos ejemplos se pueden compilar como aplicaciones de
consola (ventana de commando) de 32-bit para Windows ejecutando el archivo MAKEMC32.BAT.
5.2. Estructura de un programa
La estructura general de un programa de adquisición, control y despliegue de datos constará de las siguientes partes
•
•
•
•
•
Preámbulo: En este se definen variables de configuración de la tarjeta y prototipos de la funciones.
Rutina de Escritura: Este es el segmento de código que realiza la conversión D/A.
Rutina de Lectura: Este es el segmento de código que realiza la conversión A/D.
Funciones de Monitoreo de Tiempo: Son aquellas que verifican que la ejecución del programa se realice en
tiempo real (hard real-time).
Funciones de Despliegue Gráfico: Son aquellas que deben repintar la pantalla con los nuevos valores
medidos por la DAC.
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
9
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
5.2.1. Preámbulo en C/C++
En este se definen parámetros y constantes de inicialización de la tarjeta. En el siguiente recuadro se muestran las
líneas principales de un preámbulo estándar para utilizar la DAC PCI-DAS6014.
PREAMBULO EN C
/* Memory addresses of the card registers */
#include
#include
#include
#include
#define
#define
#define
#define
<windows.h>
<string.h>
<stdio.h>
"..\cbw.h"
BOARD_NUM
CHANNEL
ADRANGE
DARANGE
/* Compiler's include files's */
/* Universal Library's include file */
0
0
BIP5VOLTS
BIP10VOLTS
/*
/*
/*
/*
Number of A/D board as defined with InstaCal */
Number of A/D channel to read */
A/D voltage range */
D/A voltage range */
/* Function prototypes */
void escribe(float *Vout);
void lee(float *Vin);
Nota: El preámbulo puede ser guardado en un archivo de encabezado (header) e incluido en el código principal del
programa mediante el pragma #include “dac.h” en C/C++.
5.2.2. Escritura
El procedimiento de escritura en C/C++ se muestra en el siguiente recuadro.
ESCRITURA EN C
void escribe(float Vout)
{
/* Realiza la conversión D/A del voltaje Vout pasado a la función. */
int ULStat = 0;
WORD DataValue; /* También podría usarse: static unsigned short DataVal; */
/* Convert Vout value given in Volts to a 16-bit binary number */
ULStat = cbFromEngUnits(BoardNum, DARANGE, Vout, &DataValue);
/* Perform the D/A conversion of the 16-bit binary number in DataValue */
ULStat = cbAOut (BOARD_NUM, CHANNEL, DARANGE, DataValue);
}
Nota: Es importante emplear la definición de rango adecuado a las capacidades de la tarjeta. En el caso del
conversor D/A de la PCI-DAS6014 este sólo soporta la definición de DARANGE en el preámbulo. Otros rangos
de voltaje causaran un funcionamiento erróneo del programa.
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
1
IEE2682 Laboratorio de Control Automático
Departamento de Ingeniería Eléctrica
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE
Apuntes de la Tarjeta
de Adquisición y Control
5.2.3. Lectura
El procedimiento de lectura en C/C++ se muestra en el siguiente recuadro.
LECTURA EN C
void lee(float *Vin)
{
int UDStat = 0;
WORD DataVal = 0; /* También podría usarse: static unsigned short DataVal; */
UDStat = cbAIn (BOARD_NUM, CHANNEL, ADRANGE, &DataVal);
sprintf (OutString,"Raw A/D value = %u
", DataVal);
UDStat = cbToEngUnits (BOARD_NUM, ADRANGE, DataVal, Vin);
sprintf (OutString,"Voltage = %.2f
", Vin);
}
5.3. Ejemplos de Programación en Visual C++ .NET
Existe una gran cantidad de libros sobre como crear programas para Windows empleando Visual C++. Dos libros que
le pueden ayudar empezar rápidamente y guiándolo paso a paso en la creación de una aplicación son , . A diferencia
de otro libros, , son muy concisos y claros. El código fuente de numerosos ejemplos que lo llevarán paso a paso
desde desde aplicaciones sencillas hasta las más avanzadas se puede encontrar en Microsoft Developer Network
(MSDN). Todos lo ejemplos que podría necesitar para esta experiencia se encuentra en MSDN (www.msdn.com). ¡Es
cuestión de que los busque para encontrarlos!... Si aún así considera necesarios más ejemplos, tiene distintas
opciones:
 Ejemplos en http://www.cplusplus.com/src/
 Ejemplos en http://www.engin.umd.umich.edu/CIS/course.des/cis400/vcpp/vcpp.html
 Ejemplos en MSDN para Visual C++ .NET 2003:
 http://www.microsoft.com/downloads/details.aspx?familyid=6e6fac4b-5b51-41fe-96041d9752e8a71a&displaylang=en#QuickInfoContainer
 Buscar otros en Internet.
6. Referencias
[1] Measurement Computing. PCI-DAS6013 & PCI-DAS6014 Analog and Digital I/O Boards User’s Gude. Revision 5,
September, 2006.
Disponible en: www.mccdaq.com/PDFmanuals/PCI-DAS6013-6014.pdf.
[2] Measurement Computing. Universal Library – Data Acquisition and Control Programming Tools User’s Guide.
Revision 6.9, March, 2006.
Disponible en: www.mccdaq.com/PDFmanuals/sm-ul-user-guide.pdf.
[3] Measurement Computing. Universal Library – Data Acquisition and Control Programming Tools Function
Reference. Revision 6.8, March, 2006.
Disponible en: www.mccdaq.com/PDFmanuals/sm-ul-functions.pdf.
[4] Measurement Computing. PCI-DAS6013 & PCI-Specifications. Revision 1.1, September, 2006.
Disponible en: www.mccdaq.com/pdfs/PCI-DAS6013-6014.pdf.
[5] Measurement Computing. Guide to Signal Connections. Revision 4, October, 2006.
Disponible en: www.mccdaq.com/signals/signals.pdf.
[6] Davis Chapman. Sams Teach Yourself Visual C++ 6 in 21 Days. Sams, 1998.
[7] Richard Simon, Mark Schmidt. Sam Teach Yourself Visual C++.Net in 24 Hours. Sams, 2002.
IEE2682_APUNTES_ADQUISICION.doc
REV. 1 – 2009
1
Descargar