uen día damas y caballeros del foro.

He conectado a un P.C., un indicador de peso (balanza) genérico, el cual tiene configurada su comunicación por puerto RS232 a 4800 baudios a través del puerto serial COM1.

He logrado leer la información que este dispositivo envía en código ASCII con 4 programas diferentes. A saber: RS232 Data Loger, Look RS232, Access Port,y Free Serial Port Monitor.

Se presentan dos retos a resolver:

1. El indicador envía datos continuamente (calculo que cada 200 msg.), por lo que se satura el monitor con la repetición del mismo dato. 

2. No se puede trabajar (guardar, sumar, multiplicar, promediar, relacionar con hora y fecha, etc) con los datos obtenidos.

Soy profesional en electrónica titulado desde el año 2000. En aquella época algo básico de programación aprendí con Borland C y Q Basic. Durante mi desempeño profesional nunca he necesitado aplicar tales conocimientos, Cuando intenté (desempolvando mis notas) implementar un programa en aquellos lenguajes, el equipo ni siquiera reconoció el formato de los dispositivos de almacenamiento.... Investigando un poco, he sido sorprendido con la gran evolución que este tema ha presentado.

Retomando la situación técnica que interesa, he obtenido información sobre como programar en Visual Basic e instalé la versión 6 en mi P.C. Leyendo tutoriales y un superficial libro he generado un programa con el cual pretendo seguir el siguiente procedimiento:

1. Cuando se cargue la ventana, se configurará el puerto serie (Com1) a 4800 baudios, no paridad, 8 bits de datos y 1 bit de parada. (Con esta configuración logré leer en los programas arriba mencionados.)

2. Clickeando el botón de comando Leer (cmdLeer), se debe abrir el puerto. Esperar 50 milisegundos y luego cargar el valor de el registro INPUT del puerto en la ventana de texto Peso (txtPeso).

3. El valor de esta última ventana será multiplicado por un valor ingresado por el usuario en la ventana de texto Valor (txtValor), cuando el usuario clickee sobre el botón Liquidar (cmdLiquidar), y el resultado será mostrado en la ventana Precio (txtPrecio).

4. Hay un boton de salida, el cual finaliza el programa (cmd Salir).

Incluí los componente MSComm y Timer en el formulario dejando sus valores por defecto, y posteriormente generé el siguiente código: (No hay absolutamente
nada más escrito).

Private Sub Form_Load()

MSComm1.CommPort = 1
MSComm1.Settings = "4800,N,8,1"
MSComm1.RTSEnable = True

End Sub

Private Sub cmdLeer_Click()

MSComm1.PortOpen = True
Timer1.Interval = 50
Timer1.Enabled = True
txtPeso.Text = MSComm1.Input
MSComm1.PortOpen = False

End Sub

Private Sub cmdLiquidar_Click()

txtPrecio.Text = Val(txtPeso.Text) * Val(txtValor.Text)

End Sub

Private Sub cmdSalir_Click()

End

End Sub

El programa multiplica. El botón Salir funciona. Pero "NO LEE NADA DEL PUERTO", o por lo menos no lo muestra.

Creo que además es necesario cerrar el puerto después de cada lectura.

De antemano agradezco su posible colaboración y observaciones para culminar adecuadamente este proyecto.

Estoy seguro ha de ser una duda frecuente ya que en muy alto porcentaje de tutoriales y manuales, jamás describen el componente MSComm.