‘Respondiendo a la pregunta :
‘ ¿Cómo puedo establecer comunicación con una bascula que tiene un RS232?
‘
‘En este ejemplo podremos ver diferentes formas de enviar una petición
‘ a una bascula, simulando que nos responde al enviar el carácter ‘P’
‘ y visualizar su respuesta en una etiqueta llamada ‘Recibidos’
Public Class Form1
‘Constructores
Private BasculaCom As New System.IO.Ports.SerialPort ‘Puerto conectado a la báscula
Private Recibidos As New Label ‘Etiqueta para visualizar la recepción
Private Peticion As New Button ‘Botón para disparar el envío
Delegate Sub MostrarRecepcion(ByVal Texto As String) ‘Delegado para asignar el valor recibido
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
‘ Ajustar los parámetros de comunicaciones
‘ adaptándolos a las especificaciones o configuración
‘ de la bascula en concreto.
BasculaCom.PortName = «COM1» ‘Conectaremos la bascula al puerto COM1
BasculaCom.BaudRate = 9600 ‘La velocidad de intercambio será de 9600
BasculaCom.Parity = IO.Ports.Parity.None ‘No verificaremos la paridad
BasculaCom.StopBits = 1 ‘Final de Byte con 1 bit de Stop
BasculaCom.Open() ‘Abrir las comunicaciones con la bascula
‘
‘ marco
Dim marcoDGV = New FlowLayoutPanel ‘Conformar los controles del form
marcoDGV.BorderStyle = BorderStyle.Fixed3D
marcoDGV.Width = Me.Width
marcoDGV.Height = Me.Height
‘ Añadir el marco con el Label y el Buton
Recibidos.Text = «-«
Peticion.Text = «Enviar p»
marcoDGV.Controls.AddRange(New Control() {Peticion, Recibidos})
Me.Controls.Add(marcoDGV)
‘Dirigir los eventos a las funciones para procesarlos
AddHandler Peticion.Click, AddressOf EnviarUnaP ‘Ejecución de ‘EnviarUnaP’ al pulsar el boton
AddHandler BasculaCom.DataReceived, AddressOf Recibir ‘Ejecución de ‘Recibir’ al recibir respuesta de la bascula
End Sub
‘
‘ Enviar una solicitud a la bascula
Sub EnviarUnaP()
‘enviar una p
BasculaCom.Write(«P»)
‘tambien puede ver/probar…
BasculaCom.WriteLine(«P»)
BasculaCom.Write(Chr(80))
‘… etc
End Sub
‘al recibir de la bascula los bytesToRead indicara
‘un valor superior a 0, indicando el numero de caracteres
Sub Recibir()
‘Dim NumeroDeBytesEnBuffer As Integer = BasculaCom.BytesToRead
MostrarRececibidos(BasculaCom.ReadExisting)
End Sub
‘
‘ Mostrar los bytes recibidos en el Label recibidos
Private Sub MostrarRececibidos(ByVal [texto] As String)
If Recibidos.InvokeRequired Then
Dim delegado As New MostrarRecepcion(AddressOf MostrarRececibidos)
Me.Invoke(delegado, New Object() {[texto]})
Else
Me.Recibidos.Text = [texto]
End If
End Sub
End Class
Hola Pep, gracias ante todo por darnos ayuda.
Te explico ya yo realice un proyecto con basculas y tus ejemplos y explicaciones me sirvieron excelentes, trate de aplicar el mismo modelo a otro indicador diferente pero no me funciona nisiquiera me muestra datos.
Lo que noto es que con el otro indicador si usaba el hyperterminal enviaba los datos de la siguiente forma
0.00 kg
0.01 kg
.
.
.
1.00 kg
mientras que este otro indicador muestra
en el hyperterminal los valores pero no de forma continua si no que el valor se va sobreponiedo al anterior de modo que al final solo quedaria mostrandose el 1.00 kg como ejemplo
Estoy usando este mismo modelo que presentas en este ejemplo solo que no le envio el parametro «P»
Por favor espero puedas ayudarme saludos
Hola Joehit,
Entiendo que el otro indicador envia una secuencia que finaliza con el Chr(13) y el que estas comentando no, por lo que deberias revisar que dice el manual del fabricante que describe el protocolo.
Pep Lluis,
Ahora Pep, puede influir en la recepcion de los datos el hecho de que no tenga el CR al final de la secuencia?
Yo no le tengo seteado a la aplicacion que busque este caracter.
Es realmente necesario enviar el «P» ?
espero tus atinados comentarios
No exactamente, solo digo que quizas exista esa diferencia, aunque deberias estar visualizando los datos si estos realmente estan llegando del visualizador. Por eso deberias ver las especificaciones del fabricante para saber exactamente que protocolo esta utilizando para intercambiar datos. Es obvio que no requiere una «p», simplemente es un ejemplo, pues existen mil y un visualizadores que pueden conectarse a unas celulas de carga para realizar funciones de pesaje.
Saludos,
Pep Lluis,
Gracias Pep, estoy revisando lo del protocolo cualquier cosa aviso
Saludos desde Panamá
Listo Pep, corregi el problemita con la bascula, con el ejemplo y un par de adecuaciones para procesar la información del pesaje quedo de maravilla
Gracias por ofrecer siempre una buena guia.
Hola Pep como estas, espero bien
Ya he desarrollado por completo mi aplicacion de pesaje, pero aun hay algo que me sigue dando lata y es que al momento de intentar cerrar el puerto aveces la aplicacion tiende como a congelarce
tengo el siguiente fragmento de codigo para cerrar el puerto
‘Verifico si esta abierto para entonces
If RS232.IsOpen Then
RS232.Close()
End If
Si tienes alguna idea o sugerencia que pudiera ayudarme a corregir esta situacion
Agradecido como siempre de antemano por tu ayuda
Hola Joe,
Dependiendo de donde tengas ubicado el codigo, es correcto. En todo caso si lo incluyes en la sub de «Unload» o «Finalice» no es necesario verificar si esta abierto : con Close es suficiente.
Saludos,
Pep Lluis,
hola PepLluis,
antes que nada gracias por este fabuloso Blog e aprendido mucho gracias ati
yo ya logre la comunicacion con la bascula y me devuelve el peso en un textbox presionando un boton, ahora lo que quiero lograr es que me aparesca el peso en el textbox al subir algo a la bascula y no esperar a dar click al boton.
te dejo el codigo en vb.net 2005 que utilize para que lo cheques y si me puedes ayudar a realizar lo que te digo
Hola Juan Carlos,
Gracias por tu amables comentarios acerca del Blog, Referente a tu pregunta ya te respondi directamente a tu correo. Si no recibiste la respuesta, te ruego contactes de nuevo [Contact] (Opcion menu) en la parte superior derecha.
Saludos,
Pep Lluis,
Hola PepeLluis, es ungusto encontrar blogs y gente como tu muy intelectual y mas aun anuentes a compartir conocimientos.
Yo necesito hacer una lectura de bascula como la que realizo Juan Carlos, que me despliegueen un textbox el peso despues de hacer clir en un boton, te agradeciria si me pudieras apoyar, es para un mi proyecto de la U. Gracias
Gracias Grego,
En todo caso deberias concretar como puedo ayudarte o que pregunta sobre el post.
Espero tus noticias,
Pep Lluis,
Estimado Pep Luis
Mucho gusto, mi nombre es Fernando Renteria. Aprovecho el medio para agradecerte el post que realizaste. Quería saber si alguna vez intentaste configurar el dispositivo bluetooth como puerto com para comunicar la bascula. Yo lo intente y me hace el open, de ahí lo que no hace es mandar los parámetros. Alguna idea de lo que puedo haber sido?
De antemano muchas gracias.
Hola Fernando, Gracias por tus amables comentarios.
Si he tenido algunas experiencias con este tipo de disposivos y no existe ningun problema siempre y cuando ambos conversores esten configurados adecuandamente. Puedes contactarme directamente si lo deseas y concretarme tu problema.
Saludos,
Pep Lluis,
Que tal peplluis
oye apenas estoy entrando con esto de la bascula con VB6 y tengo una duda. tengo una bascula que pesa camiones de carga, es una bascula de marca RICE LAKE, Modelo: IQ-710-2A
y he estado notando que la bascula no da el mismo peso el ticket y el sistema pues varia generalmente 10 o 20 Kg y maximo 40 Kg. rara vez pesa lo exacto.
Es normal esto?? Como puedo corregir este tipo de detalle?
Espero puede ayudarme
Saludos
Que tal peplluis
oye apenas estoy entrando con esto de la bascula con VB6 y tengo una duda. tengo una bascula que pesa camiones de carga, es una bascula de marca RICE LAKE, Modelo: IQ-710-2A
y he estado notando que la bascula no da el mismo peso el ticket y el sistema pues varia generalmente 10 o 20 Kg y maximo 40 Kg. rara vez pesa lo exacto.
Es normal esto?? Como puedo corregir este tipo de detalle?
Espero puede ayudarme
Saludos
Hola Grimaldo,
En función a la precisión de las células de carga y su mecánica es un efecto totalmente correcto, pues debes tener en cuenta que el mínimo movimiento cuando estas pesando un camión, provoca esa oscilación de entre 10/40Kg. Una forma para evitarlo sería promediar el desvío producido por las oscilaciones manteniendo dicho dato con un refresco temporizado antes de darlo por definitivo. Con ello minimizaras esas inevitables oscilaciones.
Saludos,
Pep Lluis
Hola amigos, Estoy hacindo un programa en Visual basic .net 2005 que maneja el peso de camiones en una bascula y debo obtener el valor del peso en un textbox, vi que algunos tienen esa solución y yo he estado ya 5 dias investigando y probando y nada, si alguno de los que tienen el codigo mepuede ayudar o tu Pep tienes el codigo corregido, se los agradeceria es para un proyecto que debo entregar pronto. Yo he intentado con todo lo que he encontrado y no me lee nada, les agradeceria por favor que me envien aquellos amigos lo que lo solucionaron a mi correo y asi nos ayudamos todos y compartir mi experiencia tambien. Muchas gracias
Mi correo es: aasahito@yahoo.com.ar/shinigami_darkx@hotmail.com
Muchas gracias y espero que me puedan ayudar.
Hola Pep Luis,
He intentado unirme a tu blog, pero no he tenido la suerte, la verdad es que estoy interesado en especial en una de las necesidades en la que apoyaste en este tema de «Como comunicarme con una Báscula», y es precisamente en referencia a la consulta que te hace Jose Carlos: «ahora lo que quiero lograr es que me aparesca el peso en el textbox al subir algo a la bascula y no esperar a dar click al boton.»
Gracias de antemano por atender mi comentario, y además espero contar con tu apoyo para resolver este dilema.
Saludos,
Raúl Flores
Hola Pep Luis,
He intentado unirme a tu blog, pero no he tenido la suerte, la verdad es que estoy interesado en especial en una de las necesidades en la que apoyaste en este tema de «Como comunicarme con una Báscula», y es precisamente en referencia a la consulta que te hace Jose Carlos: «ahora lo que quiero lograr es que me aparesca el peso en el textbox al subir algo a la bascula y no esperar a dar click al boton.»
Gracias de antemano por atender mi comentario, y además espero contar con tu apoyo para resolver este dilema.
Saludos,
Raúl Flores
Hola Pep Luis,
He intentado unirme a tu blog, pero no he tenido la suerte, la verdad es que estoy interesado en especial en una de las necesidades en la que apoyaste en este tema de «Como comunicarme con una Báscula», y es precisamente en referencia a la consulta que te hace Jose Carlos: «ahora lo que quiero lograr es que me aparesca el peso en el textbox al subir algo a la bascula y no esperar a dar click al boton.»
Gracias de antemano por atender mi comentario, y además espero contar con tu apoyo para resolver este dilema.
Saludos,
Raúl Flores
Hola Raul,
Si te parece bien explicame como ayudarte usando la opcion [Contact].
Saludos,
PepLluis
Buenas tarde PepLluis muy buen aporte, pero me puedes ayudar con el codigo, porque necesito realizar un programa que lea el peso de la bascula y colocarlo en un textbox, por favor si me pueden ayudar aqui dejo mi correo.
Gracias de antemano
Puedes contactar a traves la opcion [contact] para continuar la conversación.
Saludos,
PepLluis,
Gracias por tu ayuda, corrí el código en VB y la balanza que utilizo responde bien, utilizo c# para la programación y al cambiar el código no logro que funcione bien la parte de la recepción de datos. Utilizo un evento Click de un botón para enviar la instrucción, y coloco: BasculaCom.DataReceived += new SerialDataReceivedEventHandler(BasculaCom_DataReceived);
luego tengo el evento de recepción de datos
private void BasculaCom_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
}
pero nunca se dispara este evento. La idea es que luego los datos leídos se muestren en un textbox. De antemano muchas gracias
Erika,
Creo que ya conteste a tu pregunta en los correos que cruzamos. En otro caso contactame de nuevo.
Saludos,
PepLluis,
Buenas tardes Pep, quisiera ver si me puede ayudar. Necesito hacer una aplicación en C# o VB#, en Visual Studio 2005, que pueda leer datos del pesaje de una bascula SIPEL y ponerlos en un textbox. Mi correo es lesternp@gmail.com.
Quisiera una ayuda tengo una balanza satorius y he copiado tu codigo y nunca entra al evento DataReceived no si me pudieras dar una mano
Pep,
Buen dia, genial tu blog,de verdad agradecemos mucho a las personas como tu que comparten sus conocimientos. Por fa, necesito tu ayuda, estoy realizando un sistema para una recicladora, debe pasarme el peso de la báscula CAS CI-2001A, al dar click en algun boton debe obtener el peso, y realizar los cálculos respectivos.
Agradeceria muchísmo tu ayuda.
lexy_1624@hotmail.com
Pep,
Buen dia, genial tu blog,de verdad agradecemos mucho a las personas como tu que comparten sus conocimientos. Por fa, necesito tu ayuda, estoy realizando un sistema para una recicladora, debe pasarme el peso de la báscula CAS CI-2001A, al dar click en algun boton debe obtener el peso, y realizar los cálculos respectivos.
Agradeceria muchísmo tu ayuda.
Hola Pep, gracias por tu block pero si quiero recuprerar los pesos de una balanza atravez de un convertidor rs232 via ethernet cual seria el codigo de conexion utlizando sockets?
Hola Fe,
Lamento no disponer de una respuesta concreta, pues dependerá del fabricante del conversor. Debes remitirte a la documentación del mismo, lo mas probable es que disponga de un SDK para poder integrarlo en tu aplicación.
Saludos,
PepLluis,
Me ayudarian con recomendaciones de que tipo de balanzas estan trabajando, quiero hacer un proyecto con una basica. no mas de 4Kg.
Si me ayudan con modelos que usaron o podria usar.
Buenas noches, esta estupendo el programa para probar conexion con una balanza, pero me gustaria saber como puedo realizar un programa que tenga constante comunicacion con la balanza, es decir que cuando coloque un producto en la balanza automaticamente el programa de recepcion de datos obtenga esa informacion y se pueda copiar automaticamente al programa de facturacion. Me encantaria poder saber si alguien tiene alguna solucion a esto,. Muchas gracias
Hola me podrian ayudar estoy tratando de traer los datos de un scaner/Balanza Datalogic, sucede que se bloquea al momento de traer el dato esperando la señal CTS y no me muestra nada, ¿como hago para enviarle esta señal CTS de control desde VB .NET?
Hola me podrian ayudar estoy tratando de traer los datos de un scaner/Balanza Datalogic, sucede que se bloquea al momento de traer el dato esperando la señal CTS y no me muestra nada, ¿como hago para enviarle esta señal CTS de control desde VB .NET?
HOla — Nesecito Apoyo .. Quiero Obtener el peso de una Balanza Mettle Toledo 8530 , aplique todo lo del post no me tira ningun error , pero solo me devuelve solo vacios ..
me ayudas ?
Tendras algun ejemplo de comunicacion con Basculas conexion USB para WPF en .Net Core ?
-Hola Estoy integrando una bascula EQM 400 de Torrey por el puerto rs232 pero no consigo obtener el peso, saben que parámetro se debe enviar para que responda?
Hola Pep Luis, quisieramos conectarnos a las balanzas torrey via USB desde un apk android. Podemos desarrollarlo internamente o contratarlo. Te interesaria ayudarnos con eso? Gracias!
Hola Renaud,
Puedes contactarme a traves de linkedin i continuamos la conversación.