You are on page 1of 4

Introduccin a la Comunicacin serie en VB.

NET (Visual 2008) utilizando el Componente SerialPort


John Caipa Roldan1
En este ejemplo, vamos a escribir una sencilla aplicacin de Windows en VB.NET que permite la comunicacin bidireccional a travs del puerto serie de comunicaciones (COM1). Esta aplicacin por ejemplo la podemos utilizar para comunicarnos con un microcontrolador o con otro computador. 1. Abra Visual Studio 2008

2. 3.

Vaya a archivo - > Nuevo proyecto - > Aplicacin de Windows Forms (proyecto de Visual Basic) Nombre su proyecto, por ejemplo: ComSerialApp y clic en Aceptar

4. 5.

A continuacin, ver Form1.vb [Design] en la ventana principal de Visual Studio. Pasar el ratn sobre el cuadro de herramientas (parte izquierda), vaya a la seccin de componentes. Arrastrar y soltar el componente SerialPort en su formulario. Esto creara una instancia de un objeto SerialPort dentro de su aplicacin. SerialPort aparecer en la parte inferior de Form1.vb

6.

Haga clic con el botn derecho en SerialPort y vaya a propiedades. En la parte inferior derecha de Visual Studio, habr un panel de propiedades que le permiten cambiar la configuracin de SerialPort. Por ahora la propiedad PortName debe estar con COM1. WriteTimeOut y ReadTimeOut en 500ms (opcional). BaudRate en 9600 y StopBits en Two.

E-mail: John.caipa@uptc.edu.co

7.

Despus 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. 9.

Haga doble clic en el botn Abrir puerto y al instante ser trasladado a la vista de cdigo de la aplicacin. Cortar y pegar estas lneas de cdigo en el interior del Sub Button1_Click. Este cdigo esencialmente abre y cierra el puerto COM serie haciendo clic en el control Button que acabamos de colocar (llamado Button1). Adems cambiar los estados en el texto del botn para que coincida con la accin actual que realice (abrir o cerrar el puerto). Tambin activa o desactiva el control Button2 (que aadiremos en el siguiente paso) que utilizaremos para dar la orden de enviar los datos, esto con el fin evitar una operacin no vlida. 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. Despus vaya a la vista de diseo de Form1.vb. Arrastrar y soltar otro control Button en el formulario. Establecer el texto del Button2 con Enviar. Adems arrastre y suelte un control TextBox

11. Haga doble clic en el botn Enviar y llnelo con el siguiente cdigo dentro del Sub Button2_Click. Este fragmento de cdigo funciona para enviar los datos que se encuentren escritos en el control TextBox que aadimos en el paso anterior, adems 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 continuacin, volver a la vista Diseo y arrastrar y soltar dos controles ListBox en el formulario. Cambiar el tamao como necesarias para adaptarse a la forma.

13.

Por ltimo haga clic una vez en el SerialPort en la parte inferior. A continuacin, vaya al panel de propiedades, haga clic en el smbolo del relmpago. Ver Misc, DataReceived, ErrorReceived, PinChanged. Haga doble clic en DataReceived y coloque dentro del sub este cdigo. ListBox2.Items.Add("recibido:" + SerialPort1.ReadExisting()) Esta funcin se ejecutar o llamar siempre que existan datos almacenados en el bfer de entrada. La emplearemos para mostrar los datos de entrada desde el puerto de comunicaciones serie en el control ListBox2 que aadimos en el formulario en el paso anterior.

14. Has completado la aplicacin. Ahora presione Ctrl-F5 para iniciar sin depurar. La aplicacin se debe ejecutar. Prueba la aplicacin, haga clic en Abrir puerto, escriba algunos datos en el cuadro de texto y, a continuacin, haga clic en Enviar. Asegrese de que est conectado el cable Rs232 entre 2 equipos o al MAX si est utilizando microcontroladores PIC. OJO: Si por alguna razn al momento de RECIBIR datos en la aplicacin se produce el siguiente error: Operacin no vlida a travs de subprocesos: Se tuvo acceso al control 'ListBox2' desde un subproceso distinto a aquel en que lo cre., hay que deshabilitar la excepcin System.InvalidOperationException de la siguiente manera: Control.CheckForIllegalCrossThreadCalls = False

Enhorabuena, has escrito correctamente un programa de comunicaciones serie que utiliza la clase SerialPort en VB.NET (Visual Studio 2008)!!

Cuando conozca mejor el entorno de trabajo, puede intentar mejorar su aplicacin colocando un botn 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

You might also like