Visual Basic - MSComm

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

MSComm

Publicado por Dionipaez (4 intervenciones) el 10/02/2010 00:29:38
Buen 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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:MSComm

Publicado por ChidUng (44 intervenciones) el 10/02/2010 19:10:10
te paso unas ligas interesantes

http://wk3.iespana.es/serial.htm

http://www.proteus.110mb.com/Simulaciones_compim_Visual_Basic_p1.html

http://www.yoreparo.com/foros/programacion/166291.html

Saludos..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:MSComm

Publicado por Dionipaez (4 intervenciones) el 11/02/2010 15:20:47
Gracias mil ChidUng. Publicaré los avances, conclusiones y/o dudas que surjan de analizar esta nueva información
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:MSComm

Publicado por dionipaez (4 intervenciones) el 12/02/2010 01:52:54
Efectivamente en los links está la solución.

Aún hay un ya mínimo problema. El dato ingresado inicia con el caracter = (igual).

Es posible obviarlo o eliminarlo para que solo quede el texto (números) y así poder manipuar para efectuar operaciones matemàticas bàsicas?

15 Kilos 200 gramos lo ingresa como =15.200

Gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar