como obtener datos de una balanza conectada al puerto serie desde visual basic

Juan Pablo
15 de Noviembre del 2005
He desarrollado una pequeña aplicacion en visual basic 6, a traves del control MSComm, para leer los datos que se encuentran en un display de una balanza que esta conectada al puerto serie de la cmputadora, y bueno hasta la fecha no he tenido exito. He consultado varia informacion del manejo del puerto serie con visual basic, usando el control MSComm, sin embargo, he programado una pequeña aplicacion considerando todos aquellos comentarios que he leeido en varios links de Internet y aun no he podido conseguir tomar los datos del display de la balanza y llevarlos a un cuadro de texto en mi aplicacion.

Si alguien tiene algun tip o sugerencia que me pueda orientar a resolver mi problema, por favor escriban una nota en este foro, me seria de mucha ayuda.

y si alguien quiere que le mande mi programita para que lo puedan analizar, con el que intento de leer el puerto serie, mandenme una nota a mi correo.

De antemano gracias por leer mi nota, se que a otros colegas a qui en la red, tambien les ayudara a resolver algunas dudas.

Gracias y Un saludo.

Sergio
15 de Noviembre del 2005
Juan Pablo me encuentro en la misma laguna que te enco encontrabas por aquel entonces.

Pero yo no tengo que obtener informacion de una balanza, sino de un sensor de temperatura,humedad y presencia.

Me encantaría (si fuera posible) que me indicaras la solucion que tomaste con el tema de balanza, para ver si es posible que lo pueda aplicar a mi proyecto.

Grácias ante todo por leer mi e-mail .

Un saludo,
Sergio

Jose
15 de Noviembre del 2005
Juan Pablo, tengo tu mismo problema, si lo resolviste y no te importa, podrías mandarme algo?

Gracias.

Erick H
15 de Noviembre del 2005
Hola Amigos, yo tengo su solucion les puedo mandar el codigo fuente y listo.

solo tiene q escribirme a mi direccion y estamos

pero eso si. esa aplicacion yo la desarrolle hace unos 3 annos q estuve aprendiendo visual basic y lo unico q les pido es que me ayuden con una modificacion sencilla.

yo abro el puerto y capturo toda la informacion continuamente, pero en mi caso necesito que la aplicacion capture una sola linea y salga, osea entra captura y sale, que no tenga q abrir manualmente el puerto ni cerrarlo q sea un programa lo ejecuto capturo y salgo.

gracias.

kidlucas1
15 de Noviembre del 2005
disculpa no tener respuesta a tu pregunta, estoy un poco mas básico que tu. me gustaria saber como conectaste la balanza con el puerto serial (electronicamente).

gracias

kidlucas1
15 de Noviembre del 2005
disculpa no tener respuesta a tu pregunta, estoy un poco mas básico que tu. me gustaria saber como conectaste la balanza con el puerto serial (electronicamente).

gracias

Django
15 de Noviembre del 2005
Hola Erick, serias tan amable de envierme el codigo que ofreces?

Gracias

enzogb
15 de Noviembre del 2005
Hola Erick, te agradecería que me enviaras el código y trateré de ayudarte con la aplicación

karkamulsa
15 de Noviembre del 2005
A ver si esto os sirve:

Private Sub Leer()
Dim I As Double, J As Long, Data232 As String, Cadena As String
Do
While FMain.Comm.InBufferCount = 0
DoEvents
Wend
Data232 = ""
If FMain.Comm.InBufferCount Then
For I = 0 To 300000
For J = 0 To 100
Next J
Next I
Data232 = FMain.Comm.Input
If InStr(Data232, vbCrLf) = 0 Then
Text27.Text = Text27.Text & Data232
Else
Text27 = Text27 + Mid(Data232, 1, InStr(Data232, vbCr) - 1)
Text27 = ""
End If
End If

Loop Until Fin = True
End Sub


Nota: FMain es el formulario principal y Comm es el objeto MsComm.

Aitor
15 de Noviembre del 2005
alguien puede mandarme la rutina que lea de una balanza y se pueda tratar el peso. lector v2000 , conectada a com1.
gracias

LLUIS VICTORI
15 de Noviembre del 2005
Saludos

Me llamo Lluís Victori y estoy realizando una investigación sobre
las balanzas de precisión en España...

Sabrían ustedes decirme nombre de distribuidores de este
producto en este país ?

Muchas gracias por su atención

Lluís Victori

renee
15 de Noviembre del 2005
Si me envias tu programa para capturar datos lo podria revisar, y talvez pueda ayudarte, en realidad yo también estoy interesado en capturar datos con un interface

alonson jose rodriges
15 de Noviembre del 2005
POR FAVOR YO TAMBIEN NECESITO SABER COMO LEER DATOS DESDE EL PUERTO SERIE ,SI ME MANDAS UNA
COPIA TE LO AGRADECERE TODA LA VIDA

Fco Javier
15 de Noviembre del 2005
Yo también necesito saber cómo capturar datos del puerto serie con visual basic. Es para una aplicación fotovoltaica con conexión a red y necesito presentar datos en tiempo real. Si me mandais como se hace, os lo agradecería.

KlausD
15 de Noviembre del 2005
Inc = 1
Rutina de envio de datos

Do
MSComm1.Output = Mid(Pp, Inc, 1)
Inc = Inc + 1
Loop Until Inc > Len(Pp)

Rutina de lectura

Dim Caracter, Repetir As Integer
Repetir = 0
Palabra = ""
Datos = ""
ErrorCOM = False

Do
Datos = ""
Datos = (MSComm1.Input)
If Datos <> "" Then
Call ConversionLeer(Datos, Palabra)
End If
Repetir = Repetir + 1
Loop Until (Datos <> "") Or (Repetir > 4096)

If Repetir > 4096 Then
ErrorCOM = True
End If

renee
15 de Noviembre del 2005
Si me lo envias te lo agredeceria mucho.....

[email protected]

krizall
15 de Noviembre del 2005
hola a todos, asi como ustedes yo tambien tube problemas para capturar el peso de una bascula "REVUELTA" es la marca de la empresa

el caso es que para poder obtener el peso hay que decodificar las entradas que nos manda el mscomm, ya que no te lo mandara como lo muestra el display
asi que primero que nada tube que obtener varias pesadas con los valores que me arrojaba, pero cada una de ellas tenia que tener un numero diferente por ejemplo
1
2
3
4
5
6
7
8
9
0

de esa manera me puse a trabajar un rato y logre decifrar que caracter que me enviava el mscomm, tenia relacion con cada uno de estos numeros por ejemplo
obtenia codigos raros y al final siempre aparecian dos caracteres, este era el final del peso

????????????????=1840... por ejemplo
????????????????=1200...
...
...
..
ahora cuando tube los valores averigue que caracter correspondia a cada numero, posteriormente teniendo una tabla de valores, pude crear un modulo que hiciera las comparaciones pertinentes antes de mostrar el resultado, y la verdad me ha funcionado correctamente. hasta ahora no he tenido problem, pero todo depende de la configuracion del display

basta con obtener los datos que leemos del mscomm y hacer unas cuantas comparaciones para sacar nuestra tabla de configuracion.. y es todo

creo que deberian tratar de realizar unas capturas que contengas todos los digitos decimales, mas o menos asi:
peso decimal=codigo que envia mscomm
buscar en todas los dos ultimos bits de parada que son los mismos en cada peso
y trabajar desde ahi

de hecho ahora siempre que obtengo el peso lo hago de manera que siempre obtenga los caracteres correctos para no tener problema...}

este es mi comentario, se que no es algo concreto y puede variar de acuerdo a cada bascula conectada y a su configuracion, pero podrian intentar de esta forma, posiblemente funcione tambien para cualquiera de ustedes

suerte y espero que mi comentario les sirva de algo

JULIAN GONZALEZ
13 de Noviembre del 2013
krizall buen día.

Tengo el problema que comentabas cobre las basculas revuelta pero hay un detalle como lo e che-cando siempre me manda datos distintos aunque sea el mismo valor el que esta en el modulo me podrías apoyar con ese detalle agradecería mucho tu apoyo

ivan
15 de Noviembre del 2005
hola Juan Pablo
llevo tiempo detras de una aplicacion para leer el puerto serie de una balanza.
Te agradeceria que me la facilitaras.
Gracias

jabe
15 de Noviembre del 2005
Hola Juan Pablo

Tambien yo estoy intentando encontrar una aplicacion que obtenga datos de una balanza

Te agradecerias me la mandaras a [email protected]

Toni
15 de Noviembre del 2005
Yo conecté con una bascula TOLEDO en una hora des de un programa en Visual Basic utilizando una conexión DDE con este otro fantástico programa http://www.windmill.co.uk/install.html Ahora voy a intentarlo con una Cobos. Saludos.

marcocu
15 de Noviembre del 2005
no pude bajar el labiml como lo puedo lograr

gerardo
15 de Noviembre del 2005
Que tal igualmente yo estoy desarrollando en visual basic una aplicacion que tenga esa ventaja de mostrar el peso de una una bascula mas sin embargo no lo he logrado

Vlady
15 de Noviembre del 2005
Espero les sirva este codigo, he omitido la rutina de conversion de hexadecimal a decimal debido a que no la encontre, pero por lo demas el programa lee cualquier dato del puerto serial, lo pasa a hexadecimal y lo muestra.

Private Sub Form_Load()
MSComm1.CommPort = 1 'Eleccion de cual com se utiliza
MSComm1.RTSEnable = False
MSComm1.RThreshold = 1
MSComm1.Handshaking = 0
MSComm1.Settings = "1200,n,8,1" 'Configuracion del puerto, 1200 baudios

If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
Label2.Caption = "00"
End If

End Sub

Private Sub MSComm1_OnComm() 'Evento para capturar datos

If MSComm1.CommEvent = 2 Then
dato = MSComm1.Input 'dato leido del puerto
RtnStr = RtnStr & Right$("00" & Hex$(Asc(Mid$(dato, 1, 1))), 2) 'Convierte a
'hexadecimal el
'resultado
'dato1=ConverHexadecimalToDecimal(dato) 'Rutina para convertir a decimal
Label2.Caption = dato1 'muestra el dato
End If

End Sub

Leonardo
15 de Noviembre del 2005
me interesa mucho aprender a manejar el puerto serial en visual basic seria un gran favor que me dieras una copia de como hacerlo.
de ante mano muchas gracias

weweew
15 de Noviembre del 2005
sasas

Guillermo
15 de Noviembre del 2005
Hola, mi nombre es guillermo y estoy desarrollando una aplicación en delphi que lea por el puerto serie, pero no encuentro ninguna dll que pueda utilizar para controlar el puerto serie. Si me puedes enviar algo te lo agradeceré.

Jos?odriguez
15 de Noviembre del 2005
Hola yo he realizado algo parecido pero usanod vb.net
que me lee las llamadas realizadas, la información lo obtengo a traves del puerto COM1 y lo grabo en un archivo txt, lo malo de esto es que lo hago manualmente mediante un evento click de un button y no se como hacer lo de manera automaticamente si tienes alguna info te lo agradeceria mucho
Salu2

Newlin Nieves
15 de Noviembre del 2005
Saludos a todos
Soy tecnico de Laboratoio en Balanzas, en Maracaibo Edo. Zulia, y quiero especializarme en comunicacion, poseo algunos programas bajo clipper que comunica el puerto serie con una balanza y captura el peso leido por el visor.
Pero no manejo muy bien clipper asi que necesito rutinas o librerias en turbo pascal para comenzar mis practicas de comunicacion si alguno necesita la software que poseo me puede escribir y se lo envio.

kidlucas1
15 de Noviembre del 2005
si deseas encontrar un manual para aprender lo que necesitas, entra a la pagina www.mocosoft.com, alli lo encontraras. por otra parte me gustaria saber que cables debo conectar y a que parte de la balanza, para establecer una comunicaci{on por puerto serial al PC.

gracias

jlparajon
15 de Noviembre del 2005
Necesito leer desde clipper el puerto serie, concretamente los códigos de barras que lee un lector que envía la información al puerto serie y no tengo ni idea de como hacerlo. Te agradecería si sabes como hacerlo me enviases información. Gracias

rosalinda
15 de Noviembre del 2005
realmente me intereso tu programa, me lo prodrias mandar porfavor ya que yo tengo tambien una pequeña dificultad para ller los datos que se encuentran en un display.

de ante mano gracias

mis correos son [email protected] y [email protected]

JUAN DAVID MURILLO
15 de Noviembre del 2005
Hola Juan Pablo mira una de las formas de poder sacar los datos dela balanza es por intermedio de un pic 16f877 y una interface RS-232 si deseas mandame tu programita a mi e mail y lo analizo y con gusto te devuelvo el programa para el micro saludos juan d

kidlucas1
15 de Noviembre del 2005
estoy un poco mas básico que tu. me gustaria saber como conectaste la balanza con el puerto serial (electronicamente).

Vulcanus_28
15 de Noviembre del 2005
manda el codigo y veo que es lo que te falta, lo mas seguro es que tengas problemas de comunicacion con el puerto, osea, el dll necesario debe estar fallando

Osmambey
15 de Noviembre del 2005
Hola, hace unos años(bastantes) desarrolle un sistema para una empresa que consistia en lo que tu necesitas,estaba echo en Basic y creo que otro en pascal, tendria que buscarlo.
Te escribo a efectos de tenerte en la carta ,para acordarme de buscarlo en el trabajo, si tengo eso en un disco.Se que despues que encontre la vuelta era facil, pero como te esta pasando a ti ,sude la gota gorda.
Espero encontrarlo y poder mandartelo, creo que la sentencia se debe poder emular facilmente desde vb
Chau
Osmambey

octavio
15 de Noviembre del 2005
me puedes enviar el codigo VB tengo el miesmo problema

Selvin Barahona
15 de Noviembre del 2005
Buen dia a Todos.
Los protocolos rs-232 usan 5 pines de conexion, el 2(rx),3(tx),5(gnd) y talvez 7,8 (eso depende de la distancia, en algunas ocaciones no es necesario pero es mejor que lo uses), esos pines tienen que ir conectados inversamente en la pc (rx-tx,tx-rx,gnd-gnd), cuando ya esten conectados correctamente, tenes que saber que es lo que lel equipo escribe y lo que este espera leer, revisa la velocidad de transmision,el digito de chequeo, la paridad,etc. cuando ya tengas toda la configuracion tenes que hacer lo mismo en el mscommand de vb, los enventos mas importantes de este control son comevcb y comevreceive, no se como lo estas haciendo, tampoco que tipo de equipo es, si me pudieran enviar el modelo del equipo y el programita te podria ayudar.
PD: te sugiero que uses los modelos de PSC Magallan estos son muy buenos, faciles de configurar y de manipular.

Salu2

kidlucas1
15 de Noviembre del 2005
me gustaria que me explicaras mejor, y saber que cable debo conectar y con que parte de la balanza,

gracias

VLADIMIR RUEDA
15 de Noviembre del 2005
Por favor que direccion puedo consultar para tratar de entender el protocolo de comunicaciones que se utliza en el rs232. es conveniente en VB.net, Vb o en C++ o Fox....
necesito controlar accesos a puertas digitales y llevarregistros de accesos...

Tambien un documento o un manual de comunicaciones

Gracias

Isaias
15 de Noviembre del 2005
Hola Juan Pablo te envio este mensaje ya que entrando al foro para pedir ayuda me encontre con tu mensaje y es lo que exactamente yo busco.

Si me enviaras el codigo para poderlo emplear te lo agradeceria mucho.


Javier Diaz Cantti
15 de Noviembre del 2005
Tengo un programa en Visual, pero me falta como se la rutina de comunicación entre la PC y el indicador de de peso, se que el puerto serial del Indicador de peso es 9600,n,8,2, por favor el que tenga como obtener los datos me lo envie a mi correoelectrónico [email protected], muchas gracias .....Javier

Tango
15 de Noviembre del 2005
Hola a todos!!!!

Tengo una posible solución, me conectado con una bascula para camiones de carga y he tenido exito, saben cuantos pines estan usando en el puerto si es RS232?

chequen eso, ya que hay algunos pines que se cruzan dentro de los perifericos!

generalmente se usan solo tres, 2, 3 y 5!!!


cualquier duda!!! envienme un mail!!!

Santiago
15 de Noviembre del 2005
Hola Juan Pablo:

Llevo varios días tratando de comunicarme sin éxito con el display de una báscula.
Te agradecería muchísimo que si tienes algo, sea en el lenguaje que sea me lo enviases, ya que seguro que me será de gran ayuda.
Muchas gracias por anticipado.


19 de Septiembre del 2019

hola a todos

no soy muy buenos en visual basic pero logre hacer un sistema que me lea el peso de mi balanza torrey pero le puse un temporisador para que se actualise cada minudo o medio minuto.

le quiero quitar el temporisador por que cada ves que se actualise es un proceso y muchos procesos se bloquea el programa 

quien me colabora 

este es mi codigo

Private Sub Command1_Click()
If Command1.Caption = "Habilitar" Then
Timer1.Enabled = True
Command1.Caption = "Inhabilitar"
Else
Command1.Caption = "Habilitar"
Timer1.Enabled = False
End If

End Sub

Private Function LeerPuertoBascula() As String
On Error GoTo 0
Dim cBuffer As String
'MSComm1.PortOpen = True
With MSComm1
If .PortOpen = True Then .PortOpen = False

.CommPort = Int(Text1.Text) 'Numero de puerto que deseas capturar, puede ser cualquier otro numero
.Settings = "9600,N,8,1"
.InputLen = 0 'Leer todos los datos
.InputMode = comInputModeText 'Los datos se dan en modo texto
.Handshaking = 0
MSComm1.PortOpen = True
'.PortOpen = True

'limpiamos la variable que almacenara el peso que envie la bascula
cBuffer = ""
'En las basculas TORREY debes enviar el caracter 'P' para que te devuelva el peso, en este caso lo envio con Chr$(80)
.Output = Chr$(80)

'En este ciclo esta el truco para que tome la lectura de la bascula

'cmbio realizado para estabilizar el uso de ram del pc

Do
DoEvents
cBuffer = cBuffer & .Input
Loop Until InStr(cBuffer, "kg")
'cerramos el puerto
.PortOpen = False
End With

LeerPuertoBascula = cBuffer
'MsgBox cBuffer
Text2.Text = cBuffer

'guarda el dato en un txt
Open "C:xampphtdocsXIMER SIIMiruta.txt" For Output As #1 'Crear el archivo plano
Text2 = Trim(Text2.Text)

tt = Len(Text2.Text)
tt = Mid(Text2, 1, tt - 3)
Text2.Text = tt

Print #1, Trim(Text2.Text);
'Print #1, "Lo que quiero copiar"
Close #1


End Function

Private Sub Timer1_Timer()
LeerPuertoBascula
End Sub