Comunicación Serie Con
Comunicación Serie Con
Comunicación Serie Con
En este ejercicio, usted estar escribiendo una sencilla aplicacin para Windows en VB.NET que permite sencillo de 2 vas de comunicacin o la transferencia de datos a travs del puerto de comunicaciones serie (COM1). 1. Abra Visual Studio 2005 2. Ir a Archivo -> Nuevo -> Proyecto 3. El nombre de su SpAPP proyecto y colocarlo en cualquier lugar que desee, siempre y cuando que sea fcilmente accesible. 4. A continuacin, vers Form1.vb [Diseo] en la ventana principal de Visual Studio. 5. Rollover el puntero del ratn sobre la caja de herramientas, desplcese a la seccin Componentes. Arrastre y suelte SerialPort en el formulario. Esto crear una instancia de un objeto de SerialPort en su aplicacin. SerialPort que aparecen en la parte inferior de Form1.vb 6. Si hace clic derecho sobre SerialPort e ir a Propiedades. En la parte inferior derecha de Visual Studio habr un panel de propiedades que te permitir cambiar la configuracin de SerialPort. Por ahora el nombre del puerto debe ser COM1. WriteTimeout y ReadTimeout alrededor de 500 ms. 7. Despus de que vaya a caja de herramientas de nuevo y arrastrar un botn al formulario. Establecer el texto del botn (utilizando el panel de propiedades) para abrir el puerto. 8. Haga doble clic en el botn Abrir el puerto y va a traer a la vista de cdigo de su formulario de solicitud. 9. Cortar y pegar estas lneas de cdigo en el Sub Button1_Click. Este cdigo esencialmente abierta y se cierra el puerto de comunicaciones serie, haga clic en el botn. Tambin cambiar de estado como en el texto del botn coincide con el de accin actual, que ser permitido. Asimismo, habilitar o deshabilitar el botn de Enviar (aadido en el paso siguiente) para evitar una operacin ilegal.
Si Button1.Text Es "Puerto Abierto" Entonces SerialPort1.Open () Button1.Text = "puerto cercano" Button2.Enabled = True ElseIf Button1.Text es "puerto cercano" Entonces SerialPort1.Close () Button1.Text = "Puerto Abierto"
10. Despus de que vaya de nuevo a la vista de diseo de Form1.vb. Arrastre y suelte otro botn en el formulario. Establecer el texto del botn de Enviar. 11. Haga doble clic en el botn Enviar y llenar este cdigo en el Sub Button2_Click. Esta funcin del fragmento de cdigo como los datos de envo de parte de la solicitud y que va a registrar en el ListBox que vamos a aadir ms tarde.
SerialPort1.WriteLine (TextBox1.Text) ListBox1.Items.Add ("Sent:" + TextBox1.Text)
12. A continuacin, volver a la vista de diseo y vamos a arrastrar y soltar un control ListBox en el formulario. Cambiar el tamao como necesaria para adaptarse a la forma. 13. Arrastre y suelte un control TextBox en el formulario. 14. Por ltimo a la izquierda, haga clic una vez en el SerialPort en la parte inferior. A continuacin, vaya al panel Propiedades, haga clic en el smbolo de un rayo. Vers varios, DataReceived, PinChanged ErrorReceived,. Haga doble clic en DataReceived y llenar los sub con este cdigo.
ListBox1.Items.Add ("Recibido:" + SerialPort1.ReadLine ())
Esta funcin se llamar cada vez que hay datos almacenados en el buffer de entrada. Es para mostrar los datos de entrada del puerto de comunicacin serial. 15. Usted ha completado la seccin de codificacin. A continuacin, pulse Ctrl-F5 para Iniciar sin depurar. La aplicacin debe ejecutarse. Prueba de la aplicacin haciendo clic en Puerto abierto, teclear algunos datos en el cuadro de texto y haga clic en Enviar. Asegrese de que el cable RS232 se conecta entre 2 ordenadores oa travs de un mdem nulo. Si ha conectado a un mdem, puede introducir "ATDT" para obtener una respuesta del mdem. Va a responder "ATDT" al ListBox <- esto demuestra que el programa se est comunicando a travs del puerto serie. ATDT es un protocolo de mdem estndar para diaing. Felicidades, usted acaba de xito escrito un programa de comunicaciones serie que utiliza la clase SerialPort en VB.NET (Visual Studio 2005)!
Para obtener acceso a los puertos serie mediante Visual Basic 2005, siga estos pasos: 1. Inicie Microsoft Visual Studio 2005. 2. En el men archivo , seleccione nuevo y, a continuacin, haga clic en proyecto . 3. En Tipos de proyecto , expanda Visual Basic y, a continuacin, haga clic en Windows . 4. En plantillas , haga clic en Console Application . 5. En el cuadro nombre , escriba MyConsoleApplication y, a continuacin, haga clic en Aceptar .
De forma predeterminada, se crea el archivo Module1.vb. 6. Para escribir datos en un puerto serie, agregue el siguiente mtodo SendSerialData al archivo Module1.vb.
7. Sub SendSerialData(ByVal data As String) 8. 9. 10. 11. ' Send strings to a serial port. Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM1") com1.WriteLine(data)
15. Function ReceiveSerialData() As String 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Loop Else returnStr &= Incoming & vbCrLf End If Do Dim Incoming As String = com1.ReadLine() If Incoming Is Nothing Then Exit Do Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM1") ' Receive strings from a serial port. Dim returnStr As String = ""
32.
33. Para leer y escribir datos en un puerto serie, agregue el cdigo siguiente al procedimiento Sub Main .
34. Dim Data As String 35. Data = "Test" 36. 37. Console.WriteLine("Writing the following data to COM1: " & Data) 38. SendSerialData(Data) 39. 40. Console.WriteLine("Read the following data from COM1: " & ReceiveSerialData()) 41. 42. Console.WriteLine("Press ENTER to quit") Console.ReadLine()
43. Para ejecutar la solucin, presione CTRL + F5.
9.
Gris
En el extremo que cortamos, vamos a cruzar el cable 2 y 3. Entonces tomamos un conector DB9 y comenzamos a soldar los cables, teniendo en cuenta el cruce, es decir, el cable 2 lo soldaremos en el pin 3 del DB9 y el cable 3 en el pin 2. Por ltimo medimos nuevamente la continuidad entre ambos extremos, pero ahora cuando en un extremo midamos el pin 2, en el otro extremo tendremos que medir el PIN 3 y viseverza. Como una simple prueba, podemos enviar datos desde el DEBUG. InicioEjecutar y escribimos DEBUG. Ahora escribiremos la Instruccin OUT: - O 03F8 A5 Previamente deberemos verificar que 3F8 es en efecto la direccin del Puerto COM1. Una vez que ya estamos seguros en la direccin del Puerto, ya podemos probar con la instruccion anterior. A5 es un valor Hexadecimal que enviamos. Luego, desde la otra PC, abrimos tambin el DEBUG y teclearemos la instruccion IN: - I 03F8 Con esto, leeremos el valor que enviamos desde PC 1. Luego desde esta PC 2, enviamos un valor y ahora vamos a la otra PC 1 y recogemos el dato. Si todo salio correcto, ya estamos listos para pasar al siguiente paso. El ejercicio consistir en que desde la PC 1 enviemos datos aleatorios, con la particularidad de que se envie un cierto codigo que simule un equipo del 1 al 6 y que desde la PC 2 observemos el valor de ese equipo. Es decir, si desde la PC 1 enviamos el valor 5368 en la PC 2 recogeremos ese valor y tomaremos el primer digito que es 5 correspondiente el Equipo 5 a simular con un valor de 368. Luego entonces, estableceremos el 368 como valor de un ProgressBar que corresponda al Equipo 5. Entonces, necesitamos dos programas, uno que enviara los datos, y otro programa que los reciba. El que recibe los datos, constar de un formulario con 6 ProgressBar, de esta forma, la PC1 estar enviando datos cada segundo, la PC2 los estar recibiendo e ira graficando en los ProgressBar dicho valor, segn el nmero de equipo corresponda. El cdigo referente al programa que enviar los datos es:
Ahora, el otro programa que deberemos ejecutar en la PC que reciba los datos, es como sigue
Dicho cdigo debe ir en el evento Tick de un Timer. Obviamente, en el evento Load y Closing del Formulario deberemos poner el mismo codigo para abrir el Puerto COM1. Ah y por si no se han dado cuenta, hay que agregar los 6 ProgressBar en el formulario. Finalmente ya solo resta ejecutar el programa que enviar los datos y luego ejecutar el que los recibir y listo!!! Ya tenemos a dos computadoras comunicandos por el puerto serie mediante un sencillo programa que hemos hecho en Visual Basic 2005.