none
DECODIFICAR O INTERPRETAR VALORES OBTENIDOS DESDE PUERTO SERIE RRS feed

  • Pregunta

  • Estimados, Muy buenos días a todos. estoy desarrollando una aplicación en Visual Basic Windows forms en Visual Studio 2010 la cual debe leer desde puerto serie RS-232 los datos que le envió desde una balanza.

    Ya tengo un prototipo de esta aplicación la cual cumple con los requisitos, pero este prototipo se creo utilizando un indicador de balanza TI-500e, el problema me viene ahora ya que esta vez se necesitan utilizar balanzas colgantes las cuales son de la marca Crane Scale modelo OCS-M (0,5 y 1 Tonelada).

    La configuración que el fabricante me indica es: BAUDRATE 9600; PARITY  NONE; DATABITS  8;  STOPBITS 1

    Pero con la configuración indicada por el fabricante solo obtengo símbolos como ⌂ 8)   Ix en vez de recibir un numero como 0,8.

    El fabricante me indica que es por que la balanza solo entrega HEXADECIMAL.

    Lo que necesito es ayuda para poder interpretar este string que me entrega la balanza y entregar el numero que corresponde a VB para poder posteriormente imprimir el valor en una impresora.

    de antemano les agradezco su ayuda, ya que con la ayuda de este foro he logrado avanzar bastante en temas de desarrollo en Visual Studio.

    viernes, 24 de mayo de 2013 13:49

Todas las respuestas

  • Buenas,

    Si lo tienes todo y te comunicas con la balanza tienes lo mas difícil ya.

    si la balanza te da los datos en Hexadecimal, para pasarlos a decimal es sencillo

    int ValorDecimal = Convert.ToInt32(ValorHexadecimal, 16);

    otra cosa, es que no le estés pasando los comandos correctamente, y la bascula no te retorne el peso si no otra cosa.

    Saludos.

    jueves, 30 de mayo de 2013 21:03
  • Hola Patricio,

    Debes intentar revisar el manual del fabricante donde se detalla como empaquetamos el dato. debes intentar averiguar si lo que esta enviando en forma string ASCII o encapsulado en un Byte... o alguna forma particular, pues esto determinara como deberemos procesar el dato.

    Si por ejemplo es en formato ASCII, deberías recibir dos bytes conteniendo caracteres entre 0-9 y A-F, en formato binario a veces se codifican en nibbles (4 bits alto y 4 bits bajo) y con varios bytes dependiendo del rango... cada uno de ellos representara el valor del 0-F, luego una vez compuestos los debes convertir a Decimal.

    Espero que esto de ofrezca una pista, en otro caso deberías concretar un poquito mas para que podamos ayudarte.

    Saludos,
    PepLluis,


    MVP - Visual Developer



    martes, 11 de junio de 2013 16:52
    Moderador