Comunicación serie con visual basic

Buenas tardes, necesito saber exactamente las instrucciones necesarias para enviar y recibir datos por el puerto serie del ordenador a través de un programa en Visual Basic.

1 Respuesta

Respuesta
1
Para establer una comunicación serial por medio del VB te recomiendo usar el Componente MSComm.
En principio cuando cargas la forma principal o cuando inicias el puerto, por medio de un botón debes abrir el puerto:
Private Function AbrirPuerto (Byval nPuerto as integer) as boolean
On Error goto Err_Handler
' Búfer para almacenar la cadena de entrada
Dim Instring As String
' Usar COM1.
MSComm1.CommPort = 1
' 9600 baudios, sin paridad, 8 bits de datos y 1
' bit de parada.
MSComm1.Settings = "9600,N,8,1"
' Indicar al control que lea todo el búfer al usar
' Input.
MSComm1.InputLen = 0
' Abrir el puerto.
MSComm1.PortOpen = True
AbrirPuerto=true
Exit function
Err_Handler
AbrirPuerto=False
End function
Para cerrar el puerto solo debes usar la sig instrucción:
MSComm1.Portopen = False
Ahora, para manejar los datos que vienen desde el puerto debes usar la instrucción:
Buffer= MSComm1.Input
Si tu comunicación es síncrona introduce esta instrucción en un Timer. Ahora si es asíncrona, te recomiendo que uses el evento OnComm:
Private Sub MSComm_OnComm ()
Select Case MSComm1.CommEvent
' Controlar cada evento o error escribiendo
' código en cada instrucción Case
' Errores
Case comBreak ' Se ha recibido una interrupción.
Case comEventFrame ' Error de trama
Case comEventOverrun ' Datos perdidos.
Case comEventRxOver ' Desbordamiento del búfer
' de recepción.
Case comEventRxParity ' Error de paridad.
Case comEventTxFull ' Búfer de transmisión lleno.
Case comEventDCB ' Error inesperado al recuperar DCB.
' Eventos
Case comEvCD ' Cambio en la línea CD.
Case comEvCTS ' Cambio en la línea CTS.
Case comEvDSR ' Cambio en la línea DSR.
Case comEvRing ' Cambio en el indicador de
' llamadas.
Case comEvReceive ' Recibido nº SThreshold de
' caracteres.
Case comEvSend ' Hay un SThreshold
' caracteres en el búfer
' de transmisión.
Case comEvEof ' Se ha encontrado un carácter
' EOF en la entrada.
End Select
Por último para leer el puerto usas:
MSComm1.Ouput= SalidaPrograma
Bien, los extractos de estos ejemplos los obtuve de la librería de Microsoft.
Puedes encontrar más detalles en su página web:
http://www.msdn.microsoft.com/library/default.asp
Espero que esta info te halla sido de ayuda.
Suerte,
H.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas