Está en la página 1de 4

MANEJO DE LA DAQ DESDE MATLAB USANDO LA INTEFACE BASADA EN SESIÓN (SESSION‐BASED INTERFACE) 

Se puede utilizar en versiones instaladas de MATLAB a 32 o 64 bits, pero SOLO trabaja con dispositivos National 
Instruments®. Las siguientes son algunas de las funciones y propiedades más útiles para crear una sesión típica 
de adquisición de datos en MATLAB: 
1. Para descubrir dispositivos DAQ en el sistema: 
disp=daq.getDevices 
disp =  
 
Data acquisition devices: 
 
index Vendor Device ID          Description           
‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
1     ni     Dev2      National Instruments USB‐9201 
2     ni     Dev3      National Instruments PCI‐6024E 
3     ni     myDAQ1    National Instruments NI myDAQ 
 
De esta lista, es muy importante mirar el identificador de la DAQ de interés, en este caso ‘myDAQ1’. Para 
solicitar información de una DAQ en particular, se indexa la variable disp como sigue: 
 
disp(3) 
 
ans =  
 
ni: National Instruments NI myDAQ (Device ID: 'myDAQ1') 
   Analog input subsystem supports: 
      ‐2.0 to +2.0 Volts,‐10 to +10 Volts ranges 
      Rates from 0.1 to 200000.0 scans/sec 
      2 channels ('ai0','ai1') 
      'Voltage' measurement type 
    
   Analog output subsystem supports:  
      ‐2.0 to +2.0 Volts,‐10 to +10 Volts ranges 
      Rates from 0.1 to 3571428.6 scans/sec 
      2 channels ('ao0','ao1') 
      'Voltage' measurement type 
    
   Digital subsystem supports: 
      8 channels ('port0/line0' ‐ 'port0/line7') 
      'InputOnly','OutputOnly','Bidirectional' measurement types 
    
   Counter input subsystem supports: 
      Rates from 0.1 to 100000000.0 scans/sec 
      1 channel ('ctr0') 
      'EdgeCount','PulseWidth','Frequency','Position' measurement types 
    
   Counter output subsystem supports: 
      Rates from 0.1 to 100000000.0 scans/sec 
      1 channel ('ctr0') 
      'PulseGeneration' measurement type 
 
2. Crear una sesión de adquisición de datos: 
s=daq.createSession(vendor) 
donde:  s ‐ es el objeto de adquisición 
    vendor – fabricante, tipo string 
s=daq.createSession(‘ni’) 
s =  
 
Data acquisition session using National Instruments hardware: 
   Will run for 1 second (1000 scans) at 1000 scans/second. 
   No channels have been added.  
 
Nótese  que  esta  función  entrega  los  parámetros  de  adquisición  por  defecto,  en  este  caso:  Número  de 
muestras (N) igual a 1000 muestras y frecuencia de muestreo (Fs) igual a 1000 muestras/s. Lo que da un 
tiempo de adquisición de 1s, que también es especificado. Si se desea, en este punto también se pueden 
cambiar los parámetros de adquisición de datos modificando la propiedad correspondiente, para lograrlo se 
utiliza la notación de punto: 
s.Rate=2000 
s.NumberOfScans=10 
Con esto se re‐calcula el tiempo de adquisición de datos a 10/2000=0.005s (prop. ‐> DurationInSeconds) 
3. Adicionar canales a la sesión de adquisición de datos: 
addAnalogInputChannel(s,deviceID,channelID,measurementType) 
donde:  s ‐ es el objeto de adquisición 
    deviceID – Identificador de la DAQ, tipo string 
    channelID – Identificador del canal a usar, tipo numérico 
    measurementType – tipo de medición, tipo string 
 
addAnalogInputChannel(sesion,'myDAQ1',0,'Voltage')  
ans = 
 
Data acquisition session using National Instruments hardware: 
   Will run for 10 scans (0.005 seconds) at 2000 scans/second. 
   Number of channels: 1 
      index Type Device Channel MeasurementType      Range       Name 
      ‐‐‐‐‐ ‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐ 
      1     ai   myDAQ1 ai0     Voltage (Diff)  ‐10 to +10 Volts 
 
Nótese que la función entrega varia información. Por ejemplo el rango del canal por defecto y el tipo de 
conexión del canal, en este caso: diferencial (Diff) 
4. Adquirir datos: 
Si se desea una sola muestra 
data=inputSingleScan(s); 
donde:  s ‐ es el objeto de adquisición 
    data – el dato en el tipo de medición solicitada 
 
dato=inputSingleScan(s) 
dato = 
 
    0.0095 
Si desean adquirir varias muestras 
data=startForeground(s); 
donde:  s ‐ es el objeto de adquisición 
    data – el dato en el tipo de medición solicitada 
 
datos=startForeground(s) 
datos = 
 
    0.0339 
    0.0339 
    0.0336 
    0.0329 
    0.0329 
    0.0313 
    0.0303 
    0.0290 
    0.0280 
    0.0267 
5. Remueve canales y borra el objeto de adquisición: 
removeChannel(s,1) 
delete(s); 

También podría gustarte