LabVIEW es un entorno
de desarrollo integrado y diseñado específicamente para ingenieros y
científicos que desarrollan sistemas de medidas y control.
En esta entrada trataremos la recepción
por el protocolo RS232, este es uno de los más antiguos y
a pesar del paso del tiempo aún persiste su comunicación en algunos
dispositivos. Aunque ya va en decadencia siempre es bueno saber cómo
utilizarlo.
Crear enlace en
Labview
1. Lo que
primero se debe de realizar en Labview es crear un <New VI> después
al abrirse las dos ventas de Block diagram y Front Panel, nos pasaremos a la
ventana de Block Diagram del cual buscaremos la opción de SERIAL,
que está ubicado en <View> <Functions Palette>
<Instrument I/O> <Serial> y seleccionamos la opción de VISA
Configure Serial Port que nos servirá para configurar los baudios, bits de
paridad entre varias opciones más.
2. Al agregar el
control de configuración de puerto agregaremos 4 controles que harán la función
de buscar el puerto estas son: VISA resource name que cada vez que exista un
puerto disponible, este lo visualizara, baud
rate que por defecto está a 9600 y podemos cambiar fácilmente
escribiendo sobre la velocidad de recepción, Enable Event que nos habilitara los eventos de recepción serial y Discard Events que limpiara el evento
una vez culminado. Para ello vamos a <View> <Functions
Palette> <Instrument I/O> <VISA> <VISA advanced> <Event
Handlng > y seleccionamos Enable Event, Discard Events y Select
Event al cual con un click seleccionamos Serial Character.
3. Después de
configurar correctamente el puerto, ahora podemos hacer un ciclo infinito
hasta que salgamos con un stop. Para ello buscaremos la opción de While Loop, Case Structure,
que están ubicado en <View> <Functions Palette> <Programming>
<Structures> y seleccionamos
las opciones While Loop y Case Structure.
4. Ahora buscaremos
la opción de leer en el puerto, que está ubicado en <View> <Functions
Palette> <Instrument I/O> <Serial> y seleccionamos la opción
de <Read> que nos permite recibir cadenas de caracteres, la misma
paleta seleccionamos la opción <Close> que nos permite cerrar la sesión
del objeto o visa creado. Volvemos a <View> <Functions
Palette> <Instrument I/O> <VISA> <VISA advanced> <Event
Handlng > y seleccionamos Enable Event, Discard Events y Select
Event al cual con un click seleccionamos Serial Character.
Pasamos a la opción True del Case Structure y
conectamos como se muestra en la figura.
En este ejemplo recibiremos
un byte por el puerto RS232, pero solo tomaremos los 4 bits de menor
peso de unos de los puertos del microcontrolador este solo lo enviaremos cada 100ms
que servirán para sincronización.
5. Lo primero que haremos es pasarnos
a la ventana Front Panel, del cual buscaremos la opción de Boolean,
que está ubicado en <View> <Controls Palette>
<Modern> <Boolean> y seleccionamos la opción de Round
LED.
6. En este punto nos
necesitamos convertir es Booleano en un array de Booleanos y para eso
necesitamos ir a <View> <Controls Palette> <Modern>
<Array, Matrix & Cluster> y seleccionamos la opción de Array,
introducimos el Rond LED dentro de la caja de Array y extendemos
hasta tener 4 (cuatro) Round LED que conformaran el byte a recibir.
7. Bien ya tenemos
nuestro panel de configuración para la comunicación RS232 y el Array de
Booleanos que enviaremos solo nos faltaría un Botón para detener la aplicación
cuando se requiera, en este caso vamos a <View> <Controls
Palette> <Modern> <Boolean> y seleccionamos la opción de Stop
Button.
8. Nos pasaremos a la ventana de Block
Diagram, ubicamos el Stop Button y el Array con click derecho
mostramos un menú del objeto y destildamos la opción View As Icon.
Como se dijo
anteriormente el objeto Read nos permite recibir cadenas de caracteres
por lo tanto hay que hacer un arreglo que nos convierta nuestro String en un Boolean Array para esto
tendemos que hacer varias cosas:
- <View> <Functions
Palette> <Mathematics> <Numeric> <Conversion> y
seleccionamos String To Byte Array
- <View> <Functions Palette>
<Programming> <Array> y seleccionamos Index Array
- <View> <Functions
Palette> <Mathematics> <Numeric> <Conversion> y
seleccionamos Number To Boolean Array y conectamos al Array de LED.
9. Ahora necesitamos saber cuándo
ocurre un error de recepción de datos por el puerto RS232, labVIEW también
nos brinda una función para saberlo, dando click derecho sobre el cable
amarillo del Visa Read mostramos un menú del objeto y seleccionamos Cluster,
Class & Variant Palette y unbundle By Name, nos saldrá la función
status.
También es
necesario darle un retardo a la aplicación y decirle que tipo de información va
a leer para eso vamos a:
a. <View> <Functions Palette>
<Instrument I/O> <VISA> <VISA advanced> <Event Handlng > Visa Wait on Event y le creamos una constante de tiempo.
b. <View> <Functions Palette>
<Instrument I/O> <VISA> <VISA advanced> y seleccionamos Property Node de la
cual seleccionaremos <Serial Settings> Number of Bytes at Serial Ports
La función status nos informa si ocurrió o no un error con un bit
que será True o False (1 ó 0). Si
es True se activara el Case Structure y simplemente no hará nada
en caso contrario ejecutaran las funciones.
10. Bien es hora de configurar nuestro botón
de stop que ya lo teníamos olvidado para eso vamos a <View> <Functions
Palette> <Programming> <Boolean> y seleccionamos OR,
una vez hecho esto unimos las salidas de status y stop button
a cada una de las entradas de la función de booleana OR y esta nos devolverá
False mientras ambas entradas sean False (0) y nos devolverá True
(1) si alguna de las entradas cambia.
Ya tenemos todo lo necesario para poder recibir en labVIEW desde un
microcontrolador por RS232, si han seguido los pasos al pie de la
letra deberían tener algo como esto.
Muy bien amigos
esto ha sido todo por este tutorial, configuren su microcontrolador para
recibir datos por el puerto serial y disfruten de la experiencia.
Es bastante difícil hacer cada entrada, puedes agradecerlo fácilmente con un comentario así que no lo olvides.
!!.. Likeenme, Compartanme , Comentenme .!!