13-Puerto Digital DAQ desde LabVIEW




1-UN CANAL UNA LINEA 



En esta entrada vamos a hablar de como utilizar los canales digitales del DAQ 6008 desde LabVIEW.

En primer lugar, haremos un ejercicio en el que utilizaremos una sola línea de salida y otra de entrada.

Conectamos nuestro DAQ y creamos un nuevo VI.

Nos situamos en el panel frontal donde colocaremos un control que hará de STOP, otro control para el estado de la salida y un indicador para la entrada.




Hecho esto, vamos al diagrama de bloques donde comenzaremos a trabajar con las herramientas que tenemos en “Measurement I/O  /  NI- DAQmx”.

Seleccionamos en primer lugar “Create Channel” para crear el canal .




Crearemos dos canales, uno le configuramos como salida digital y el otro como entrada digital.



En el superior “Digital Output” he seleccionado la línea 0 del puerto 0 “Dev1/port0/line0”, en la parte inferior “Digital Input” he seleccionado la línea 1 del puerto 0 “Dev1/port0/line1”.

Seguidamente de los dos he puesto la función de “START”, aunque no es necesaria dado que las funciones de lectura y escritura que utilizaremos a continuación realizan el start solas.



Después de las funciones de inicio colocamos un “While Loop” con un retardo de 10 milisegundos para evitar la saturación del sistema.



Dentro del "while loop" tenemos la función de escritura “Write” en la parte superior, la cual va conectada a la línea de salida y al control que creamos antes, de esta manera el valor de la salida del DAQ va a ser el estado del control booleano.








En la parte inferior tenemos la función de lectura “Read”, la cual va configurada, al igual que la anterior, como “Digital/Un solo canal/Una sola muestra / Booleano” y conectada al indicador LED que creamos al principio.



Finalmente salimos del “While Loop” con una función “OR” que será o bien con el pulsador de STOP o un error en la lectura y limpiamos los errores fuera con la función “Clear”.




Así quedaría todo el diagrama de bloques.





Conectamos la entrada a la salida, al poner la salida a 1 con el pulsador la entrada también se pondrá a 1.




Aquí dejo el VI para dercargarlo.


                                                  DESCARGA VI.
                                                 





2-UN CANAL VARIAS LINEAS 



Siguiendo con el puerto digital, esta vez vamos a leer todo el puerto entero.

En el panel frontal vamos a colocar un array de LEDs para que se encienda o apague el que corresponda a cada canal.









Vamos al diagrama de bloques y seleccionamos la función de crear canal “Create Channel” como hicimos anteriormente, pero esta vez en la constante “lines” ponemos todas las líneas de entrada digitales, lo configuramos como “Digital Input”  y “one cannel for all lines” en su pin “line grouping”, esto quiere decir que vamos a leer todo el canal por esta línea.




A continuación ponemos la función “Start” y ya nos vamos al “While Loop”.







En el “While Loop” hemos puesto la función “Read” para leer el todas las líneas, lo configuramos como “ Digital/ Single Channel / Single Sample/ 1D Boolean (N lines) “ esto significa que el resultado va a ser un array de booleanos con los valores de todas las líneas asociadas a este canal.







Utilizamos la función “Reverse 1D array” para invertir la posición horizontal del array y así colocar el bit de mayor peso a la izquierda.








El “While Loop” lo configuramos en bucle continuo poniendo un “false” en su condición de final, aunque lo recomendable era poner un pulsador de STOP para poder acabar el programa de forma correcta y así utilizar el limpiador de errores “Clear” que hemos colocado al final dado que de esta forma nunca llegará a él .



Así al hacer “Run” al programa, si tenemos todas las patillas al aire, estarán todos los LEDs encendidos.






En el momento que unimos un pin a masa su LED correspondiente se apagará.






Con esto finaliza esta prueba de utilizar todas las líneas en un canal, aquí dejo el VI para la descarga.

                                             

                                                DESCARGA VI