Como comunicarme con una Bascula

'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

 

Comments

# re: Como comunicarme con una Bascula

Friday, April 23, 2010 3:07 PM by Joehit

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

# re: Como comunicarme con una Bascula

Sunday, April 25, 2010 2:14 PM by peplluis

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,

# re: Como comunicarme con una Bascula

Monday, April 26, 2010 12:04 PM by Joehit

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

# re: Como comunicarme con una Bascula

Monday, April 26, 2010 1:30 PM by peplluis

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,

# re: Como comunicarme con una Bascula

Monday, April 26, 2010 1:42 PM by Joehit

Gracias Pep, estoy revisando lo del protocolo cualquier cosa aviso

Saludos desde Panamá

# re: Como comunicarme con una Bascula

Wednesday, May 12, 2010 9:38 AM by Joehit

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.

# re: Como cerrar correctamente el puerto

Wednesday, July 14, 2010 6:30 AM by Joehit

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

# re: Como comunicarme con una Bascula

Friday, July 23, 2010 5:17 AM by peplluis

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,

# re: Como comunicarme con una Bascula

Friday, September 17, 2010 12:10 PM by Jose Carlos

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

# re: Como comunicarme con una Bascula

Monday, September 20, 2010 4:33 AM by peplluis

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,

# re: Como comunicarme con una Bascula

Tuesday, September 21, 2010 4:59 PM by Grego

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

# re: Como comunicarme con una Bascula

Wednesday, September 22, 2010 2:38 AM by peplluis

Gracias Grego,

En todo caso deberias concretar como puedo ayudarte o que pregunta sobre el post.

Espero tus noticias,

Pep Lluis,

# re: Como comunicarme con una Bascula

Friday, February 04, 2011 4:49 PM by Fernando Renteria

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.

# re: Como comunicarme con una Bascula

Friday, February 11, 2011 11:56 AM by peplluis

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,

# re: Como comunicarme con una Bascula

Monday, February 14, 2011 3:46 PM by Grimaldo

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

# re: Como comunicarme con una Bascula

Tuesday, February 15, 2011 4:45 PM by Grimaldo

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

# re: Como comunicarme con una Bascula

Friday, February 18, 2011 5:02 PM by peplluis

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

# re: Como comunicarme con una Bascula

Thursday, March 17, 2011 3:05 PM by Al

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.

# re: Como comunicarme con una Bascula

Thursday, June 23, 2011 1:45 AM by 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

# re: Como comunicarme con una Bascula

Monday, August 15, 2011 3:11 PM by peplluis

Hola Raul,

Si te parece bien explicame como ayudarte usando la opcion [Contact].

Saludos,

PepLluis

# re: Como comunicarme con una Bascula

Sunday, April 22, 2012 9:30 PM by emdavid87

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

# re: Como comunicarme con una Bascula

Monday, April 30, 2012 3:54 AM by peplluis

Puedes contactar a traves la opcion [contact] para continuar la conversación.

Saludos,

PepLluis,

# re: Como comunicarme con una Bascula

Tuesday, May 15, 2012 10:14 AM by Erika

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

# re: Como comunicarme con una Bascula

Tuesday, May 22, 2012 1:56 PM by peplluis

Erika,

Creo que ya conteste a tu pregunta en los correos que cruzamos. En otro caso contactame de nuevo.

Saludos,

PepLluis,

Leave a Comment

(required) 
(required) 
(optional)
(required) 
If you can't read this number refresh your screen
Enter the numbers above: