comunicacion serie en vb2008-john caipa
DESCRIPTION
Este documento es un pequeño ejemplo para realizar una aplicacion de comunicacion bidireccional serie (COM1) utilizando VB.NET (Visual Basic 2008), la cual puede utilizar en comunicación serial entre dos computadores o con un microcontrolador PIC.TRANSCRIPT
5/5/2018 Comunicacion Serie en VB2008-John Caipa - slidepdf.com
http://slidepdf.com/reader/full/comunicacion-serie-en-vb2008-john-caipa 1/4
Introducción a la Comunicación serie en VB.NET (Visual 2008)
utilizando el Componente SerialPort
John Caipa Roldan1
En este ejemplo, vamos a escribir una sencilla aplicación de Windows en VB.NET que permite la comunicaciónbidireccional a través del puerto serie de comunicaciones (COM1). Esta aplicación por ejemplo la podemos utilizar para
comunicarnos con un microcontrolador o con otro computador.
1. Abra Visual Studio 2008
2. Vaya a archivo - > Nuevo proyecto - > Aplicación de Windows Forms (proyecto de Visual Basic)
3. Nombre su proyecto, por ejemplo: ComSerialApp y clic en Aceptar
4. A continuación, verá Form1.vb [Design] en la ventana principal de Visual Studio.
5. Pasar el ratón sobre el cuadro de herramientas (parte izquierda), vaya a la sección de componentes. Arrastrar
y soltar el componente SerialPort en su formulario. Esto creara una instancia de un objeto SerialPort dentro de
su aplicación.
SerialPort aparecerá en la parte inferior de Form1.vb
6. Haga clic con el botón derecho en SerialPort y vaya a propiedades. En la parte inferior derecha de VisualStudio, habrá un panel de propiedades que le permiten cambiar la configuración de SerialPort. Por ahora la
propiedad PortName debe estar con COM1. WriteTimeOut y ReadTimeOut en 500ms (opcional).
BaudRate en 9600 y StopBits en Two.
1E-mail: [email protected]
5/5/2018 Comunicacion Serie en VB2008-John Caipa - slidepdf.com
http://slidepdf.com/reader/full/comunicacion-serie-en-vb2008-john-caipa 2/4
7. Después pase de nuevo al cuadro de herramientas y arrastre un control Button al formulario. Establezca la
propiedad Text del control (en el panel de propiedades) con la frase: Abrir Puerto.
8. Haga doble clic en el botón Abrir puerto y al instante será trasladado a la vista de código de la aplicación.
9. Cortar y pegar estas líneas de código en el interior del Sub Button1_Click. Este código esencialmente abre y
cierra el puerto COM serie haciendo clic en el control Button que acabamos de colocar (llamado Button1).
Además cambiará los estados en el texto del botón para que coincida con la acción actual que realice (abrir o
cerrar el puerto). También activa o desactiva el control Button2 (que añadiremos en el siguiente paso) que
utilizaremos para dar la orden de enviar los datos, esto con el fin evitar una operación no válida.
If Button1.Text Is "Abrir Puerto" Then
SerialPort1.Open()
Button1.Text = " Cerrar Puerto "
Button2.Enabled = True
ElseIf Button1.Text Is "Cerrar Puerto" Then
SerialPort1.Close()
Button1.Text = " Abrir Puerto "
Button2.Enabled = False
End If
10. Después vaya a la vista de diseño de Form1.vb. Arrastrar y soltar otro control Button en el formulario.
Establecer el texto del Button2 con Enviar. Además arrastre y suelte un control TextBox
5/5/2018 Comunicacion Serie en VB2008-John Caipa - slidepdf.com
http://slidepdf.com/reader/full/comunicacion-serie-en-vb2008-john-caipa 3/4
11. Haga doble clic en el botón Enviar y llénelo con el siguiente código dentro del Sub Button2_Click. Este
fragmento de código funciona para enviar los datos que se encuentren escritos en el control TextBox que
añadimos en el paso anterior, además muestra un historial de lo que se ha enviado en un control ListBox que
vamos a agregar en el paso siguiente.
SerialPort1.WriteLine(TextBox1.Text)
ListBox1.Items.Add("enviado:" + TextBox1.Text)
12. A continuación, volver a la vista Diseño y arrastrar y soltar dos controles ListBox en el formulario. Cambiar el
tamaño como necesarias para adaptarse a la forma.
13. Por último haga clic una vez en el SerialPort en la parte inferior. A continuación, vaya al panel de
propiedades, haga clic en el símbolo del relámpago. Verá Misc, DataReceived, ErrorReceived, PinChanged.
Haga doble clic en DataReceived y coloque dentro del sub este código.
ListBox2.Items.Add("recibido:" + SerialPort1.ReadExisting())
Esta función se ejecutará o llamará siempre que existan datos almacenados en el búfer de entrada. Laemplearemos para mostrar los datos de entrada desde el puerto de comunicaciones serie en el control ListBox2
que añadimos en el formulario en el paso anterior.
14. Has completado la aplicación. Ahora presione Ctrl-F5 para iniciar sin depurar. La aplicación se debe ejecutar.
Prueba la aplicación, haga clic en Abrir puerto, escriba algunos datos en el cuadro de texto y, a continuación,
haga clic en Enviar. Asegúrese de que esté conectado el cable Rs232 entre 2 equipos o al MAX si está
utilizando microcontroladores PIC.
OJO: Si por alguna razón al momento de RECIBIR datos en la aplicación se produce el siguiente error:“Operación no válida a través de subprocesos: Se tuvo acceso al control 'ListBox2' desde un subproceso
distinto a aquel en que lo creó.”, hay que deshabilitar la excepción System.InvalidOperationException dela siguiente manera:
Control.CheckForIllegalCrossThreadCalls = False
Enhorabuena, has escrito correctamente un programa de comunicaciones serie que utiliza la claseSerialPort en VB.NET (Visual Studio 2008)!!
5/5/2018 Comunicacion Serie en VB2008-John Caipa - slidepdf.com
http://slidepdf.com/reader/full/comunicacion-serie-en-vb2008-john-caipa 4/4
Cuando conozca mejor el entorno de trabajo, puede intentar mejorar su aplicación colocando un botón para salir, o tal
vez colocar 2 controles ComboBox para que el usuario pueda seleccionar los baudios y el puerto de comunicaciones,
etc. Al final con algo de trabajo obtendrá algo como lo siguiente:
INTENTALO!
REFERENCIAS:
http://blogs.msdn.com/b/tolong/archive/2006/08/07/690851.aspx
VERSION #3