Autor Tema: Problemas al leer datos por RS232 en Visual 6.0  (Leído 4425 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado shatfiel

  • PIC10
  • *
  • Mensajes: 4
Problemas al leer datos por RS232 en Visual 6.0
« en: 25 de Noviembre de 2008, 20:24:37 »

Hola a todos......


tengo el suguiente problema y espero que me ayuden por favor,, ya que lo he untentado casi todo y no logro que me lea visual.

Tengo el siguiente programa en el mscomm, pero no logro que visual me lea los datos por RS232, estoy enviando desde el Pic  lo siguiente

printf("SNS1= %2.1f", sensor_axila);
printf("SNS2= %2.1f", sensor_pie);..... y asi con los demas sensores, pero no logro que visual lo lea

If MSComm1.CommEvent = comEvReceive Then
   

    ReciveString = MSComm1.Input + ReciveString
    lstChar = Left(ReciveString, 1)
    If lstChar = "S" Then CutString = Left(ReciveString, 10)
   
'=====================================================================
' SENSORES DE PACIENTE
'=====================================================================
   
    'Sensor Axila
    If Left(CutString, 4) = "SNS1" Then
        Sns1Value = Val(Right(CutString, 5))
    End If
    TempInicial1.Text = Sns1Value
   
    'Sensor Pies
    If Left(CutString, 4) = "SNS2" Then
        Sns2Value = Val(Right(CutString, 5))
    End If
 TempInicial2.Text = Sn21Value


'=====================================================================
' SENSORES DE MANTA
'=====================================================================
       
    'Zona Uno
    If Left(CutString, 4) = "SNS3" Then
        Sns3Value = Val(Right(CutString, 5))
    End If
 TempInicial3.Text = Sns3Value   


    'Zona Dos
    If Left(CutString, 4) = "SNS4" Then
        Sns4Value = Val(Right(CutString, 5))
    End If
 TempInicial4.Text = Sns4Value

end sub


Por favor cualquier ayuda es buena...... :shock:


   
    'Zona Tres
    If Left(CutString, 4) = "SNS5" Then
        Sns5Value = Val(Right(CutString, 5))
    End If

 TempInicial5.Text = Sns5Value
Shatfiel

jacrmr

  • Visitante
Re: Problemas al leer datos por RS232 en Visual 6.0
« Respuesta #1 en: 25 de Noviembre de 2008, 20:37:49 »
Desafortunadamente la información que posteaste no es la importante para diagnosticar tu problema. Más bien lo que debes postear es cómo configuraste el puerto, los settings, buffers, len size, etc.
Y la forma en que lo estás detectando para abrirlo y comunicarse.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Problemas al leer datos por RS232 en Visual 6.0
« Respuesta #2 en: 25 de Noviembre de 2008, 20:38:24 »
   ReciveString = MSComm1.Input + ReciveString
    lstChar = Left(ReciveString, 1)
    If lstChar = "S" Then CutString = Left(ReciveString, 10)

Hola

¿Cuántos SNS sensores son reportados por RS232?

¿Por qué concatenas ReciveString con ReciveString?

Para mejorar la conexión puedes esperar a que el buffer de la pc se llene con 10 caracteres multiplicados por n sensores. Por ejemplo, si tuvieras 9 sensores y 10 caracteres enviados por cada sensor, deberás esperar a que el buffer tenga 90 caracteres y luego copias el buffer completo en ReciveString. Por ejemplo...

Código: [Seleccionar]
'aquí llega si el com1 tuvo cambios en rx o tx
Private Sub MSComm1_OnComm()
If (MSComm1.InBufferCount >= 90) Then 'el pic envía 90bytes si fueran 9 sensores por 10 caracteres
    cadena = MSComm1.Input

Desconectado shatfiel

  • PIC10
  • *
  • Mensajes: 4
Re: Problemas al leer datos por RS232 en Visual 6.0
« Respuesta #3 en: 27 de Noviembre de 2008, 20:22:13 »


Hola.... pues no le intentado de esa forma, y puede que funcione, aqui les envio los otros datos que me preguntan.


MSComm1.Settings = "9600,n,8,1"          'velocidad, paridad
MSComm1.CommPort = 1                     'elegir el # del puerto
MSComm1.PortOpen = True
MSComm1.InputLen = 0

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
   
'====================================================================
'ADQUISICION SEÑAL DE LOS SENSORES
'====================================================================

If MSComm1.PortOpen = False Then MSComm1.PortOpen = True

MSComm1.RThreshold = 1 'Recibir
MSComm1.SThreshold = 1 'Enviar
Shatfiel

Desconectado Toph

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 84
Re: Problemas al leer datos por RS232 en Visual 6.0
« Respuesta #4 en: 28 de Noviembre de 2008, 19:09:33 »


Hola.... pues no le intentado de esa forma, y puede que funcione, aqui les envio los otros datos que me preguntan.


MSComm1.Settings = "9600,n,8,1"          'velocidad, paridad
MSComm1.CommPort = 1                     'elegir el # del puerto
MSComm1.PortOpen = True
MSComm1.InputLen = 0

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False

Esto de que si esta abierto que lo cierre, me parece que te puede dar problemas ¿porque lo pones asi? , ¿acaso no esta constantemente leyendo el puerto?

ahora con respecto a esto:
   
MSComm1.RThreshold = 1 'Recibir

¿Por que le colocas 1 a la propiedad RThreshold?, asi cada vez que reciba un carácter se producirá el evento OnComm ejecutando el procedimiento asociado a él, lo que hará perder tiempo a la aplicación, impidiéndole realizar otras funciones ¿asi lo requiere el programa?.

Tienes que determinar en donde esta el problema en la PC,en el circuito que te convierte de TTL a RS232 o en el PIC.

para poder probar lo primero deberias de usar por ejemplo la hyperterminal que trae windows si esta recibe lo del PIC entonces el problema esta en la PC, sino entonces el problema esta en el PIC o circuito



El tiempo perdido es dificil de recuperar, trata de no desperdiciarlo
atrevete de vez en cuando a hacer algo nuevo
¿Sera este el año que tanto he deseado?


 

anything