Leer de una balanza

17/11/2004 - 15:54 por Mary | Informe spam
Saludos!

Alguien sabe como leer del puerto serial lo que manda una balanza?. Yo tengo
un programa que me lee bien el RS232, pero si lo coloco en dos maquinas y
comienzo a transmitir, pero a la hora de poner con la bascula no me recibe
nada. Alguna idea o recurso que me puedan ofrecer.


Gracias

Preguntas similare

Leer las respuestas

#1 Polaris
17/11/2004 - 20:28 | Informe spam
Supongo que dependerá del protocolo que utilice la balanza.
Hace tiempo hice un programa de TPV que leía una.
Utilizaba un protocolo llamado "$" de lo más simple.
Revisa la documentación del fabricante de la balanza, en cualquier caso te
adjunto el código que utilizo para probar el correcto funcionamiento de la
lectura de la balanza.
Utiliza un recordset de Preferencias donde se graba previamente la
configuración de la báscula y lee el puerto a través del control MSComm.
Sencillamente envía el caracter $ y espera la lectura. El problema residía
en que envía muchas lecturas basura hasta que la báscula se estabiliza.
Espero que te pueda ayudar
Un saludo y suerte.

Private Sub CmdProbarBalanza_Click()
On Error Resume Next
SwParar = False
CmdPararPrueba.Visible = True
LblTipoLecturaBascula.Caption = ""
Dim Entrada As String
Dim Puerto As Integer
Dim Configuracion As String
Dim Valor As Currency
'Abrir el puerto
Select Case rPreferencias("Puerto Balanza")
Case "COM1"
MSComBascula.CommPort = 1
Case "COM2"
MSComBascula.CommPort = 2
Case "COM3"
MSComBascula.CommPort = 3
Case "COM4"
MSComBascula.CommPort = 4
Case Else
MsgBox "No están configurados los parámetros de comunicación con
la balanza.", vbCritical
Exit Sub
End Select
'Configurar el puerto
Configuracion = Trim(Str(rPreferencias("Velocidad Balanza"))) + ","
Configuracion = Configuracion + rPreferencias("Paridad Balanza") + ","
Configuracion = Configuracion + Trim(Str(rPreferencias("Datos
Balanza"))) + ","
Configuracion = Configuracion + Trim(Str(rPreferencias("Bit Stop
Balanza")))
MSComBascula.Settings = Configuracion
'MSComBascula.DTREnable = True
MSComBascula.InputLen = 0
MSComBascula.PortOpen = True
'MSComBascula.Output = "#"
MSComBascula.Output = "$"

Dim Lectura As Long
Dim Contador As Long
Do
If SwParar Then
Exit Do
End If
DoEvents
MSComBascula.InputLen = 0
Entrada = MSComBascula.Input
MSComBascula.Output = "$"
If IsNumeric(Entrada) = True Then
Lectura = CCur(Entrada)
End If
If Len(Entrada) <> 8 Then
Lectura = 0
End If
If Asc(Mid$(Entrada, 1, 1)) = 13 Then
Lectura = 0
End If
Contador = Contador + 1
DoEvents
Label40.Caption = Contador
Loop Until Lectura <> 0
MSComBascula.PortOpen = False

Dim WEntrada As String
WEntrada = Entrada
Entrada = Mid$(Entrada, 1, 7)


If IsNumeric(Entrada) = False Then
LblTipoLecturaBascula.Caption = "LECTURA ERRONEA"
Else
LblTipoLecturaBascula.Caption = "¡¡ CORRECTO ¡¡"
End If
TxtEntradaBalanza.Text = WEntrada
TxtLongitudEntradaBalanza.Text = Len(WEntrada)
TxtValorNumerico.Text = Lectura / 1000
CmdPararPrueba.Visible = False
End Sub
Respuesta Responder a este mensaje
#2 Mary
18/11/2004 - 20:49 | Informe spam
Muchas Gracias.;)

"Polaris" wrote:

Supongo que dependerá del protocolo que utilice la balanza.
Hace tiempo hice un programa de TPV que leía una.
Utilizaba un protocolo llamado "$" de lo más simple.
Revisa la documentación del fabricante de la balanza, en cualquier caso te
adjunto el código que utilizo para probar el correcto funcionamiento de la
lectura de la balanza.
Utiliza un recordset de Preferencias donde se graba previamente la
configuración de la báscula y lee el puerto a través del control MSComm.
Sencillamente envía el caracter $ y espera la lectura. El problema residía
en que envía muchas lecturas basura hasta que la báscula se estabiliza.
Espero que te pueda ayudar
Un saludo y suerte.

Private Sub CmdProbarBalanza_Click()
On Error Resume Next
SwParar = False
CmdPararPrueba.Visible = True
LblTipoLecturaBascula.Caption = ""
Dim Entrada As String
Dim Puerto As Integer
Dim Configuracion As String
Dim Valor As Currency
'Abrir el puerto
Select Case rPreferencias("Puerto Balanza")
Case "COM1"
MSComBascula.CommPort = 1
Case "COM2"
MSComBascula.CommPort = 2
Case "COM3"
MSComBascula.CommPort = 3
Case "COM4"
MSComBascula.CommPort = 4
Case Else
MsgBox "No están configurados los parámetros de comunicación con
la balanza.", vbCritical
Exit Sub
End Select
'Configurar el puerto
Configuracion = Trim(Str(rPreferencias("Velocidad Balanza"))) + ","
Configuracion = Configuracion + rPreferencias("Paridad Balanza") + ","
Configuracion = Configuracion + Trim(Str(rPreferencias("Datos
Balanza"))) + ","
Configuracion = Configuracion + Trim(Str(rPreferencias("Bit Stop
Balanza")))
MSComBascula.Settings = Configuracion
'MSComBascula.DTREnable = True
MSComBascula.InputLen = 0
MSComBascula.PortOpen = True
'MSComBascula.Output = "#"
MSComBascula.Output = "$"

Dim Lectura As Long
Dim Contador As Long
Do
If SwParar Then
Exit Do
End If
DoEvents
MSComBascula.InputLen = 0
Entrada = MSComBascula.Input
MSComBascula.Output = "$"
If IsNumeric(Entrada) = True Then
Lectura = CCur(Entrada)
End If
If Len(Entrada) <> 8 Then
Lectura = 0
End If
If Asc(Mid$(Entrada, 1, 1)) = 13 Then
Lectura = 0
End If
Contador = Contador + 1
DoEvents
Label40.Caption = Contador
Loop Until Lectura <> 0
MSComBascula.PortOpen = False

Dim WEntrada As String
WEntrada = Entrada
Entrada = Mid$(Entrada, 1, 7)


If IsNumeric(Entrada) = False Then
LblTipoLecturaBascula.Caption = "LECTURA ERRONEA"
Else
LblTipoLecturaBascula.Caption = "¡¡ CORRECTO ¡¡"
End If
TxtEntradaBalanza.Text = WEntrada
TxtLongitudEntradaBalanza.Text = Len(WEntrada)
TxtValorNumerico.Text = Lectura / 1000
CmdPararPrueba.Visible = False
End Sub



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida