Mostrando entradas con la etiqueta Tutoriales LabVIEW. Mostrar todas las entradas
Mostrando entradas con la etiqueta Tutoriales LabVIEW. Mostrar todas las entradas

sábado, 3 de septiembre de 2016

Tutorial 2 LabVIEW: Recepción Serial RS232

  

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:
  1.  <View> <Functions Palette> <Mathematics> <Numeric> <Conversion> y seleccionamos String To Byte Array
  2.  <View> <Functions Palette> <Programming> <Array> y seleccionamos Index Array
  3. <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  .!!





Tutorial 1 LabVIEW: Transmisión Serial RS232

 

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 transmisión  por el protocolo RS232, este es uno de los mas antiguos y a pesar del paso del tiempo aun persiste su comunicación en algunos dispositivos. Aunque ya va en decadencia siempre es bueno saber como 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 dos controles que harán la función de buscar el puerto que es VISA resource name que cada vez que exista un puerto disponible, este lo visualizara. En baud rate por defecto esta a 9600 que podemos cambiar fácilmente escribiendo sobre la velocidad de transmisión.
 
 

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, que esta ubicado en <View> <Functions Palette> <Programming> <Structures> <While Loop>.

 
   
4. Ahora buscaremos la opción de escribir en el puerto, que está ubicado en <View> <Functions Palette> <Instrument I/O> <Serial> y seleccionamos la opción de <Write> que nos permite solo enviar cadenas de caracteres, la msma paleta seleccionamos la opcion <Close> que nos permite cerrar la sesion del objeto o visa creado. 

 


En este ejemplo enviaremos un byte por el puerto RS232, este byte sera de un arreglo de switches pero para enviar este dato debe de transformarse de un arreglo booleano a numero y de este a un arreglo de caracteres. 
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 Vertical Toogle switch.
  
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 Vertical Toogle switch dentro de la caja de Array y extendemos hasta tener 8 (ocho) Vertical Toogle switch que conformaran el byte a enviar.
 

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 Write nos permite enviar cadenas de caracteres por lo tanto hay que hacer un arreglo que nos convierta nuestro Array de Booleanos a String para esto tendemos que hacer varias cosas:

     a.  <View> <Functions Palette> <Mathematics> <Numeric> <Conversion> y seleccionamos                     Boolean Array To Number
     b.  <View> <Functions Palette> <Programming> y seleccionamos Build Array
     c.  <View> <Functions Palette> <Mathematics> <Numeric> <Conversion> y seleccionamos Byte           Array To String

 

9. Ahora necesitamos saber cuando ocurre un error de transmisió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 Write mostramos un menú del objeto y seleccionamos Cluster, Class & Variant Palette y unbundle By Name, nos saldrá la función status. En ese momento el cable de conexión de Visa Write y Close se rompe debemos volver a conectarlo.


 
      
10. La función status nos informa si ocurrió o no un error con un bit que sera True o False ( 1 ó 0 ).
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.


11. Por ultimo le daremos un retardo para que se ejecuten las funciones y para eso nos dirigimos a  <View> <Functions Palette> <Programming> <Timming> y seleccionamos Wait (ms), le agregamos una constante de 250 para que repita el proceso cada 250 ms, click derecho Create Constant.



Ya tenemos todo lo necesario para poder trasmitir desde labVIEW hasta un microcontrolador por RS232, si han seguido los pasos al pie de la letra deberían tener algo como esto.


Muy bien amigos esto a 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  .!!