Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-03-2009
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 238
Poder: 16
espinete Va camino a la fama
Exclamation Envío de datos a balanza puerto serie

Hola...

Llevo varios días peleándome con una balanza por puerto serie. La comunicación funciona, ya que he conseguido enviar y recibir respuesta. El problema es que no siempre recibo respuesta, y seguramente se debe a que estoy enviando mal la cadena HEX a la balanza.

La balanza es de la marca DIBAL. Utilizo el protocolo TISA.
El formato de envío es el siguiente:

9 8 P P P P P C Cr Lf

Los dos primeros dígitos (9 y 8) son fijos.
PPPPP son los 5 dígitos para el precio
Cr es el retorno de carro (0D en HEX)
Lf es el Line Feed (0A en HEX)

El problema está en la posición "C".
Ahí debo poner la suma lógica (XOR) de todos los números anteriores.

Con algunas pruebas sí me responde la balanza, pero con otras no. Depende del peso/precio/etc... que devuelva la balanza, lo cual indica que, o bien estoy haciendo mal la suma XOR, o la balanza no me hace caso.

El siguiente ejemplo funciona:

ASCII: 98001505 + CR + LF

HEX: 39 38 30 30 31 35 30 35 0D 0A

En este ejemplo, la suma XOR es 5 (35 HEX).
La he obtenido con Delphi de la siguiete forma:

x := 39 xor 38 xor 30 xor 30 xor 31 xor 35 xor 30

Eso devuelve 35, y enviando esa cadena, la balanza responde perfectamente.

Sin embargo, si envío otra cadena, por ejemplo si el precio es 9,50, quedará de la siguiente forma:

HEX: 39 38 30 30 39 35 30 0D 0D 0A

¿Se hace así la suma lógica? ¿O hay que hacer algo más?
Puede incluso que en el manual de la balanza esté mal explicado. Dice textualmente "C es la suma lógica (XOR) de todos los números anteriores".
Y a saber si hay que contar el 98 del principio o no.

Muchas gracias por anticipado. Llevo varios días y sólo veo números cuando cierro los ojos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recibir datos del puerto serie en bytes. REHome .NET 1 31-10-2008 17:50:10
Puerto Serie / Envio De Datos alebarto C++ Builder 4 07-09-2008 22:46:58
Quiero tomar datos de puerto serie con Delphi4PHP lsg PHP 1 09-08-2008 03:24:37
Capturar datos por el puerto serie mierda Varios 8 05-12-2007 18:23:29
Envio de datos al puerto serie COM1 Niko Varios 5 15-03-2005 18:38:21


La franja horaria es GMT +2. Ahora son las 10:17:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi