Página 1 de 1

Leitura de BALANCA via Serial - As vezes nao captura!

Enviado: 05 Abr 2016 20:45
por ANDRIL
Faço a captura através da serial do peso de uma ELGIN 15Kg. No início começa bem, depois de algumas pesagens começa a demorar para trazer o resultado, tendo que fazer de 3 a 5 tentativas para retornar o peso. Quando saio e entro no sistema volta ao normal e repete o problema novamente.
Não sei se há algum problema com a configuração da balança (setup dela que requer algum configuração) ou se são os comandos que uso no HARBOUR para uso da serial.

Código: Selecionar todos

//--iniciando a porta
nPorta=2 //COM2
nVeloc=9600
cParid="N"
nBits=8
nParad=1
cInicia="P"
nTemp=0.5
nTama=15

DO WHILE .T.
   COM_HARD(.T.)
   
   nConf := Com_Init(nPorta,nVeloc,cParid,nBits,nParad)

   if .not. nConf
      COM_CLOSE(nPorta)
      Wait "Falha na inicializacao da porta"
      EXIT
      
   endif

   //--envia o caracter de inicio para a balanca
   nRest= COM_SEND(nPorta,cInicia) //CHR(80))

   //--aguarda um tempo para a leitura
   inkey(nTemp)
   
   //--recebe os dados da porta COM
   resulta=COM_READ(nPorta,nTama)
   
   //--limpa o buffer
   COM_FLUSH(nPorta)

   COM_HARD(.F.)

   //--fecha a porta
   COM_CLOSE(nPorta)
   ? resulta
   wait"Resultado da pesagem"   
EXIT
ENDDO

No meu HBP esta

Código: Selecionar todos

-lhbct
-lxhb
Acontece com mais alguém? Alguma idéia do que pode ser?
Até+

Leitura de BALANCA via Serial - As vezes nao captura!

Enviado: 05 Abr 2016 22:46
por sygecom
Andril,
Esse negocio de balança é complicado quando se fala em confiança,não da para confiar no que está vindo no buffer da porta, tem que verificar tudo,por exemplo veja quando usar COM_SEND() veja se realmente conseguiu enviar :
com_Send( <nComPort>, <cString|nChar> ) -> <nNotSendLength>

O mais importante de todos: COM_READ(), veifique se realmente retornou o que pediu, caso contrario lima(COM_FLUSH()) e recomece o processo.
com_Read( <nComPort>, [<nLength>], [<lNoDelete>] ) -> <cCharacterstring>

Basicamente é isso que faço nas leituras de balança,por que não da para confiar 100% no retorno dessas biroscas, quando está usando uma DLL do fabricante é basicamente isso que eles fazem na DLL para garantir o retorno, já desenvolvi DLL para fabricante de balança.