Autor Tema: comunicacion RS232 en Visual Basic  (Leído 341250 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Blanca Sánchez

  • PIC16
  • ***
  • Mensajes: 108
    • PicsMexico: Programación con Microcontroladores
Re: comunicacion RS232 en Visual Basic
« Respuesta #165 en: 10 de Marzo de 2008, 17:04:36 »
 :D :D :D :D

Bah, café. Se nota que sois principiantes. Lo mejor para la nocturnidad es el ron  :D

 :D :D :D :D

Con ron no vería ni el teclado!!!  :D :D :D

Pero lo tomaré en cuenta cuando ya no me haga el café...

Desconectado Perro75

  • PIC10
  • *
  • Mensajes: 1
Re: comunicacion RS232 en Visual Basic
« Respuesta #166 en: 12 de Junio de 2008, 13:51:13 »
Estimado como puedo descagar el archivo........ :?

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: comunicacion RS232 en Visual Basic
« Respuesta #167 en: 14 de Junio de 2008, 14:20:45 »
Hola:

Haz click en el link de archivo adjunto y le das guardar, así de fácil, si te refieres al archivo de huichoman.

Desconectado M3LEB

  • PIC10
  • *
  • Mensajes: 1
Re: RE: comunicacion RS232 en Visual Basic
« Respuesta #168 en: 24 de Junio de 2008, 20:39:58 »
Que tal
 
Es la primera vez que entro a un foro , he revisado lo amplio e informativo que es este web site .
por otra parte quiero pedrile ayuda para crear un codigo de comunicacion RS232 usando una interfases MAX232 en Visual C++
me pueden ayudar por favor ?

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: comunicacion RS232 en Visual Basic
« Respuesta #169 en: 25 de Junio de 2008, 18:17:28 »
Hola:

estás en el subforo equivocado este es dedicado a Visual Basic, escribe tu duda en el foro dedicado a C para computador.

Desconectado misterweb

  • PIC16
  • ***
  • Mensajes: 128
Re: comunicacion RS232 en Visual Basic
« Respuesta #170 en: 14 de Julio de 2008, 03:34:47 »
 No se que tal la experiencia de otra gente pero mi experiencia con el puerto serie y Visual es que aunque funciona nunca es satisfatorio, siempre se pierden cadenas, e seguido los programas y ideas de este foro, pero a la hora de impementarlo en el Pic nunca llega a convercerme,  No se por que en el buffer siempre se queda mierda y no se por que nunca tengo forma de reiniciar el buffer, ni abriendo ni cerrando el puerto ni, ni reseteando mediante la instruccion de visual Inbuffer.. = 0 , yo no entiendo cuando le meto un mensaje desde el pic largo y repetido indefinidamente al Hiperterminal de Windows no pierde ni un solo byte, pero cuando lo hago a un programa de Visual Basic, siempre se acaba perdiendo informacion............. NO SE LA EXPERIENCIA GENTE pero me gustaria contrastarla.

Desconectado pabloquimbar

  • PIC10
  • *
  • Mensajes: 5
Re: comunicacion RS232 en Visual Basic
« Respuesta #171 en: 26 de Agosto de 2008, 12:02:48 »
Hola amigos... os cuento lo que me pasa:
Estoy haciendo el proyecto fin de carrera y trata sobre la medición de la temperatura y la humedad y su procesamiento con un PIC16F877A.
Tengo un pequeño problemilla... al PIC se puede acceder a través de teclado matricial y por teclado de pc por puerto serie, y las lecturas de la temperatura se pueden ver tanto en la pantalla del pc (puerto serie) como en un lcd. Para manejar el puerto serie empecé con el hyperterminal y funciona perfectamente, pero la verdad que no es muy bonito de ver, jeje y me gustaría hacer una aplicación en visual basic para que quedara mejor.
El caso es que no sé nada de visual basic y me bajé el prueba.zip a ver qué tal pero no me funciona. Mis dudas son las siguientes:

-En el código fuente del PIC hay que cambiar algo? Es decir, yo tengo un printf("Introduzca la temperatura deseada"); y me aparece en el hyperterminal... pasará lo mismo con el VB?
-Tengo q hacer alguna modificación en el prueba.zip (bueno, en el proyecto q trae dentro) para poder leer los datos? Es q ví los comentarios del cajetin recibir y parece q no, pero no lo sé... por lo menos, los baudios son los q necesito :)

Si alguien me ayudase estaría muy agradecido.

Un saludo y gracias de nuevo.  ^^

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: comunicacion RS232 en Visual Basic
« Respuesta #172 en: 15 de Marzo de 2009, 20:48:51 »
Buenas noches aqui desde venezuela, señores quisiera decirles primero y principal que soy nuevo en esto de la electronica aun no estoy viendo en mi universidad Micros... en el cual se usan pic pero estoy de antemano interesado en aprender todo al respecto del mismo.... entonecs si tienen aun manual o algo que me ayude a empezar desde 0 seria de gran utilidad.... ahora a lo que vine a preguntar...

Veo una materia llamada interfaces eletroncicas y acabo de terminar una practica por puerto paralelo en MATLAB y me toca hacer la RS232 en Visual basic o en Matlab ahora mi problema es esto... tengo que establecer comunicacion por medio de un programa echo por mi en cualquier de estos lenguajes con un hardware en el protoborard, que se yo un ejemplo sencillo que seria mandar un dato por el programa y visualizarlo en uno leds o unos display 7 segmentos...

ahora la cosa es que dicho puerto tiene niveles de voltajes muy extraños y se transmiten en forma serial con unos bits de inicio y bits de final que tengo que eliminar para poder utilizar solo los datos que quiero que reciba el hardware entonces mi pregunta es como hago parar eliminarle esos bits de informacion de la trama solo para utilizar los bits de datos???

gracias por las respuesta no se si me exprese bien....

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: comunicacion RS232 en Visual Basic
« Respuesta #173 en: 15 de Marzo de 2009, 22:25:04 »
Los bit que dices, el protocolo lo utiliza para determinar cuando se inica y termina el envio de datos de un transmisor a un receptor. Visual Basic y dependiendo del PIC que utilices esto ya esta implementado. Lee el siguiente articulo para aclarar lo que he dicho: RS232
No contesto mensajes privados, las consultas en el foro

Desconectado Goodfrey

  • PIC12
  • **
  • Mensajes: 87
Re: comunicacion RS232 en Visual Basic
« Respuesta #174 en: 16 de Marzo de 2009, 09:23:34 »
Disculpame Suky en efecto se que el pic tiene su usart interno y maneja todos esos niveles de voltajes ahora pregunto si conoces alguna manera de eliminarle esos bits de inicio y final sin usar el pic es decir puro hardware sin usar pic...

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: comunicacion RS232 en Visual Basic
« Respuesta #175 en: 16 de Marzo de 2009, 12:23:03 »
Bueno, no se entendía!  :mrgreen:
He visto que utilizan el 74LS164N, pero no tengo mucha información sobre eso. Creo que la consulta la deberías haber realizado en el subforo Foro Técnico. Realízala allí, explicando bien cual es la idea, ósea un conversor serie/paralelo sin PIC y allí tendras mejores resultados.
No contesto mensajes privados, las consultas en el foro

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: comunicacion RS232 en Visual Basic
« Respuesta #176 en: 20 de Abril de 2009, 00:07:25 »
Si necesitás eliminar los bits de inicio y fin ,me parece que vas a tener que entrar a controlar directamente el puerto serie mediante llamadas a la API. Desconozco del tema, pero seguramente puedas tomar control usando alguna .dll ya hecha en la web, o haciendo las llamadas a la API
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado nmpa33

  • PIC10
  • *
  • Mensajes: 1
Re: comunicacion RS232 en Visual Basic
« Respuesta #177 en: 29 de Abril de 2009, 08:05:50 »
Hola,

Tengo un problema con la comunicación rs485 en modbus rtu (PC con PLC).
Tienes algun ejemplo de como debo hacerlo? hice un código para rs232 y me funciona excelente, a este solo le añadí la habilitación del RTS para controlar el conversor rs232/485 pero no me funciona nada bien... como debe ser mi código para comunicarme en rs485?

Desconectado Rodricity

  • PIC10
  • *
  • Mensajes: 43
Re: comunicacion RS232 en Visual Basic
« Respuesta #178 en: 28 de Mayo de 2009, 13:11:17 »
 Es mas sencillo con un timer.

 En el timer, cada vez que produzca el evento revisas algun flag (que se setee cuando recibes tu "mensaje" que signifique que envie tu siguiente caracter), envias el caracter y desactivas el flag.
Código: [Seleccionar]
Public linea As String
Public incoming As String
Public flag As Boolean

Private Sub Form_Load()
linea = "Mensaje a guardar en EEPROM"
End Sub

Private Sub MSComm1_OnComm()
If (MSComm1.CommEvent = comEvReceive) Then
    incoming = MSComm1.Input
    If (incoming = "K") Then
        flag = True                                                        'Indica si recibimos el caracter que nos dice que está listo el PIC
    End If
End If
End Sub

Private Sub Timer1_Timer()
If (flag = True) Then
    flag = false
    MSComm1.Output = Left(linea, 1)                    'Enviamos solo 1 letra (la primera)
    If (Len(linea) <> 0) Then
        linea = Right(linea, Len(linea) - 1)                'Con esto le vamos quitando la letra enviada
    End If
End If
End Sub

 De esta forma, cuando tu PIC esté listo para guardar el siguiente caracter en EEPROM, le envias al PC la letra "K", o lo que se te ocurra.

 Y cada vez que el timer genere su evento, revisamos si recibimos el caracter que nos dice que enviemos la siguiente letra, obviamente, enviamos solamente una, y luego le quitamos la letra enviada al mensaje original, para no repetirla.

Desconectado dgawd

  • PIC10
  • *
  • Mensajes: 11
    • Ingenegros
Re: comunicacion RS232 en Visual Basic
« Respuesta #179 en: 06 de Julio de 2009, 04:59:12 »
Hola, buenos dias amigos, les comento un problema que para uds seguramente sea una tonteria pero me ha hecho pelear muchas horas.

Estoy tratando de recibir datos a traves de VBA para graficar en el Excel. Actualmente estoy enviando una cadena de texto que imprime la variable millis y los datos de unos potes cuando se le envia la letra "D" mediante un boton. Se lee de la siguiente manera: millis,datos pote 1,datos pote 2+[CR]

Estoy usando el NETComm que es similar al MSComm, y tengo lo siguiente

..
    NETComm1.RThreshold = 1
    NETComm1.InputLen = 0
..

Código: [Seleccionar]
Private Sub Netcomm1_OnComm()
   
    If NETComm1.CommEvent = NETComm_EV_RECEIVE Then
        'recoge valor de entrada
        datos = NETComm1.InputData
        'busca la posición del caracter de salto de linea
        i = InStr(datos, Chr(13))
       
    If i <> 0 Then
       
        buffer = buffer & datos
        Sheet1.Range("E12").FormulaR1C1 = buffer
       
    End If

End If

Con eso lo que hago es ver como se obtiene la cadena de texto. Y se recibe a veces bien, y otra veces recibe partes en blanco o no lo lee bien.

Enviando 2 datos, esto es algo que ahora me esta funcionando:

Código: [Seleccionar]
Private Sub NETComm2_OnComm()
If NETComm2.CommEvent = NETComm_EV_RECEIVE Then
    datos232 = NETComm2.InputData
    If ((Asc(datos232) > 13) And (Asc(datos232) <> 44)) Then
        trama = trama & datos232
    End If
    If (Asc(datos232) = 44) Then
        tiempo = (trama)
        trama = ""
    End If
    If ((Asc(datos232) = 10)) Then
        dato = (trama)
        trama = ""
        Hoja2.Range("F9").FormulaR1C1 = tiempo
        Hoja2.Range("G9").FormulaR1C1 = dato
    End If

End If

End Sub

Pero no se como ponerlo para funcionar con 3 o mas variables dentro de la cadena de texto

Mi idea, era recibir la cadena de texto completo separada por comas completa sin perdidas de caracteres y ahi utilizar la funcion Split() para separarlo y mostrarlos en las celdas del Excel, pero las veces que recibia la cadena bien (usando el InStr para buscar el char(13)) despues me decia que luego del Split, la 2da variable generada tenia un "subscript out of range"  :?
Supongo porque algunas veces no la leia del todo bien a la cadena, :/

Podrian por favor indicarme como es el codigo para saber cuando una cadena ha ingresado completamente y sin errores? Y luego que forma utilizarian para separarlo en 3 o mas variables para ser luego mostradas.


Muchas gracias por su ayuda, saludos!!  :mrgreen: