border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU

Retroceder   VB-MUNDO - Programacion Visual > Programacion - Lenguajes > Visual Basic 6.00
Registrarse FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 19-11-2007, 08:14:26
Junior Member
Site Admin
 
Registrado: nov 2007
Posts: 8
bihos2003 Valoración +2
Predeterminado Problema comunicacion puerto serie

Buenos dias, estoy realizando una aplicacion para enviar una trama a un dispositivo electronico y capturar la respuesta en una celda de excel.

Por algun motivo me esta fallando, me podeis ayudar?. Esto lo realizo con el visualBasic de excel. Con hyperterminal funciona perfectamente la trama que envío y recibo la respuesta correctamente.

Private Sub CommandButton1_Click()
Dim recibido As String
Dim ContadorBuffer, sinleer As String

MSComm1.CommPort = 6
MSComm1.Settings = "9600,e,7,2"
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
MSComm1.Output = Chr(2) & "010000101C00002000001" & Chr(3) & Chr(66)
'Enviar trama por el puerto serie
recibido = MSComm1.Input
Cells(2, 1) = recibido
ContadorBuffer = MSComm1.OutBufferCount
sinleer = MSComm1.InBufferCount
Cells(3, 3) = sinleer
Cells(3, 1) = ContadorBuffer
MSComm1.PortOpen = False
'Cierra el puerto
End Sub

Un saludo.
Gracias
Responder Con Cita
  #2 (permalink)  
Antiguo 19-11-2007, 10:49:53
Avatar de GaLLeGo
Buena Participación en el Foro
 
Registrado: nov 2007
Ubicación: Investigación y Desarrollo (I+D)
Posts: 70
GaLLeGo Aun no valorado
Predeterminado

Hola y bienvenido bihos2003,

Veo que no nos especificas en que parte del código reproduce el error.

Saludiños
Responder Con Cita
  #3 (permalink)  
Antiguo 19-11-2007, 11:56:26
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.308
acalanto ha deshabilitado la reputación
Predeterminado

Tienes que utilizar el evento del MSComm que se activa cuando recibe datos (DSR), porque si nada mas abrirlo esperas recibir información, seguramente no le das tiempo a sincronizar. Por otra parte solamente recibirás una trama de datos.


Espero te resulte útil.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #4 (permalink)  
Antiguo 19-11-2007, 14:21:32
Junior Member
Site Admin
 
Registrado: nov 2007
Posts: 8
bihos2003 Valoración +2
Predeterminado

Hola,

Gracias y muy amables por las respuestas y vuestro interés.

Realmente el código no muestra ningun mensaje de error, simplemente no puedo capturar la trama de respuesta.

Cuando hablas de los eventos, imagino te refieres a MSComm1_OnComm(), pero la verdad no sé realmente como usarlo. Solamente quiero enviar una trama, para recibir una respuesta mediante un boton. Comentar que las señales CTS, DTR, etc. estan puenteadas porque el dispositivo no lleva estas señales.

Es posible el error sea por no utilizar los eventos, pero realmente no sé como utilizarlo, me podeis ayudar?

Gracias y muy amables.
Responder Con Cita
  #5 (permalink)  
Antiguo 19-11-2007, 15:47:50
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.308
acalanto ha deshabilitado la reputación
Predeterminado

El evento OnComm se activa cuando el puerto tiene algún dato en buffer pendiente de entregar. Es en este evento en el que tienes que poner la sentencia INPUT para pasar los datos a una variable dimensionada en el formulario o pública.

También tendrás que controlar si la longitud de datos recibida se corresponde con la esperada; tienes que pensar que los puertos (todos) no tienen porqué entregar la trama de datos en un único envío, depende de su tamaño pueden enviarla en uno, dos o más paquetes de datos. Esto has de controlarlo.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #6 (permalink)  
Antiguo 19-11-2007, 16:09:37
Junior Member
Site Admin
 
Registrado: nov 2007
Posts: 8
bihos2003 Valoración +2
Predeterminado

Hola,

OK, voy a probar a poner el input en el evento OnComm1.

Un saludo y gracias.
Responder Con Cita
  #7 (permalink)  
Antiguo 19-11-2007, 17:26:12
Junior Member
Site Admin
 
Registrado: nov 2007
Posts: 8
bihos2003 Valoración +2
Predeterminado

Ok, entendido voy a probar.

Lo unico no entiendo muy bien que ocurre, porque he usado un programa para enviar la trama o el hyperterminal y inmediatamente me responde el dispositivo.

Pero usando este programa se envia correctamente la trama, pero no responde nada. He conseguido un software pare monitorear el puerto Com y he podido comprabarlo, envió exactamente lo mismo, pero no recibo nada.

No se que mas puedo hacer. He probado a poner el INPUT en el evento y tampoco me funciona.

Un saludo
Responder Con Cita
  #8 (permalink)  
Antiguo 19-11-2007, 18:03:52
Junior Member
Site Admin
 
Registrado: nov 2007
Posts: 8
bihos2003 Valoración +2
Predeterminado

Hola,

Por fin lo he resuelto. El problema que cerraba el puerto demasiado rapido. Simplemente con otro botón se soluciono el problema.

Lo único ahora me encuentro que en Excel es ilegible lo que recibo, recibo algo asi "〰〰〰〰̱", aunque monitoreando el puerto recibo los valores en hexadecimal correctamente.

Cual puede ser el problema ahora?

Un saludo
Responder Con Cita
  #9 (permalink)  
Antiguo 20-11-2007, 07:16:55
Avatar de acalanto
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.308
acalanto ha deshabilitado la reputación
Predeterminado

Verifica que en SETTINGS del MsComm tienes la velocidad, paridad y bit de stop configurados de la misma forma que el puerto que emite.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #10 (permalink)  
Antiguo 22-11-2007, 16:59:38
Junior Member
Site Admin
 
Registrado: nov 2007
Posts: 8
bihos2003 Valoración +2
Predeterminado

Hola,

Gracias por tu respuesta.

He verificado que la velocidad, etc, estan iguales en las dos partes, tambien confirmar que mediante un programa para monitorear la comunicación, los datos que devuelve el dispositivo se ven correctamente. Por lo tanto no debe ser este el problema, mas bien entiendo un fallo del programa.

Ojala que alguien me pudiese ayudar.
De todos modos gracias.

Un saludo
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Comunicacion por puerto COM con maquinarias automaticas cologti Visual Basic.NET 2003 & 2005 0 02-11-2007 23:23:20
COMUNICACION SERIE zorg VBA (Excel, Word, Outlook, Access) 2 25-01-2007 02:30:13
Comunicacion con puerto serial blois Visual Basic 6.00 2 19-02-2006 08:11:05
Comunicacion serie mediante MSComm galaicco Visual Basic 6.00 4 17-09-2004 01:00:00
Comunicación Serie y modo de compilación !? aamartin2k Visual Basic 6.00 2 18-03-1970 02:01:09


La franja horaria es GMT. Ahora son las 06:54:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right