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.
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
Gracias.
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.
gracias
gracias
Gracias
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.
gracias
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
COPIA TE LO AGRADECERE TODA LA VIDA
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
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
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
llevo tiempo detras de una aplicacion para leer el puerto serie de una balanza.
Te agradeceria que me la facilitaras.
Gracias
Tambien yo estoy intentando encontrar una aplicacion que obtenga datos de una balanza
Te agradecerias me la mandaras a [email protected]
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
de ante mano muchas gracias
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
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.
gracias
de ante mano gracias
mis correos son [email protected] y [email protected]
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
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
gracias
necesito controlar accesos a puertas digitales y llevarregistros de accesos...
Tambien un documento o un manual de comunicaciones
Gracias
Si me enviaras el codigo para poderlo emplear te lo agradeceria mucho.
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!!!
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.
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