Página 1 de 1
Balanca Filizola
Enviado: 07 Jul 2004 01:09
por José Pereira
Tenho um aplicativo PDV e nao consigo ler o peso da balança Filizola BP15. Uso o programa LEBAL.EXE da propria Filizola, mas nao tenho o peso. Alguem tem outra solução?
Pereira

Re: Balança Filizola
Enviado: 07 Jul 2004 13:07
por binho_fasa
Eu efetuo a leitura do peso da balança no próprio sistema. Para isso, será necessário obter o protocolo de comunicação da balança (Velocidade da porta, bits de parada, formato da string, etc) na FILIZOLA. A balança deve estar configurada para enviar a informação a porta serial, o que também deve ser verificado com o fabricante.
[]´s
Fabio Souza.
Enviado: 09 Jul 2004 01:31
por José Pereira
OLá
Tudo bem Fábio, seu que é necessario fazer isto, mas como? Qual funcao ou aplicativo você usa? Pode me enviar seus recursos?
Pereira
Enviado: 09 Jul 2004 11:56
por binho_fasa
Caro amigo, eu utilizo a IOLIB para comunicação serial com balanças. Você precisará do protocolo de comunicação da balança (Velocidade, bits de parada, etc) para funcionar. No exemplo abaixo, eu estou usando COM1, velocidade 9600, 8 bits de dados, sem paridade e 1 bit de parada).
#include "Iolib.Ch"
FUNCTION LerPeso()
LOCAL FSerial, Buffer := "", x, nBuffer := 512, nTamanho, nTentativa := 0
LOCAL nVeloci, nPorta, cPorta, nIrQ, cPortaSer
nTamanho := 7
cPorta := "COM1"
nPorta := Val(Right(cPorta, 1)) // Pego a porta de comunica‡„o
cPortaSer := 1016 // COM1
nVeloci := 12 // 9600
/// Captura a Irq da porta de comunicacao
nIrQ := COM_GETIRQ(nPorta)
If nIrQ == -1
Tone(300,2)
Alert(,, "Problemas com a porta serial COM" + Alltrim(Str(nPorta)))
RETURN 0
Endif
/// Inicializo a porta de comunicacao
If !INIT_PORT(cPortaSer, nVeloci, EIGHT_DATA_BITS , NO_PARITY, ONE_STOP_BIT , nIrQ, nBuffer)
Alert(,,"Erro ao inicializar a porta serial COM" + Alltrim(Str(nPorta)))
RETURN 0
Endif
INBUFCLR() // Limpo o Buffer
OUTBUFCLR()
// Efetuo a leitura de 1 caracter de cada vez até encontrar o final ou o
// número de tentativas chegar a 50
While ++nTentativa < 50
Millisec(20)
Buffer := INCHR(1)
If Buffer == Chr(2) // Ultimo caracter da string
EXIT
Endif
End While
MILLISEC(70)
Buffer := INCHR(nTamanho)
Buffer := If(!Empty(Buffer), Buffer, "1") // Se falhar, retorna 1
UNINT_PORT() // Fecho a porta serial
RETURN Val(Buffer)
Se não tiver a IOLIB, me informe um endereço de e-mail que eu te envio.
[]´s
Fabio Souza.
Enviado: 12 Jul 2004 14:14
por José Pereira
oBRIGADO PELA AJUDA.
Me mande a IOLIB por favor, para que eu possa fazer os teste.
Pereira
Enviado: 12 Jul 2004 14:17
por binho_fasa
Me informe um endereço de e-mail que eu te envio.
[]´s
Fabio Souza.
Enviado: 12 Jul 2004 14:18
por José Pereira
Favor me enviar o IOLIB para fazer os testes
Pereira
jpereira@meg.org.br
nIrQ := COM_GETIRQ(nPorta)
Enviado: 13 Jul 2004 09:27
por filizola
grande amigo, testando a iolib nao encontrei este comando, vc pode me ajudar

Enviado: 13 Jul 2004 14:11
por binho_fasa
Esta função (COM_GETIRQ( )) está na Clipper Tools (CT.LIB). Se precisar eu te envio a lib e os NGs.
[]´s
Fabio Souza.
entendamos o seguinte...
Enviado: 13 Jul 2004 16:37
por filizola
se por padrao, a com1 é sempre utilizada pela irq4, não será necessário que eu busque o irq não é mesmo???
me corrijam por favor se estiver errado.
Enviado: 14 Jul 2004 09:57
por José Pereira
OLá amigos.
Realmente preciso da lib CT e do seu NG.
Pereira
jpereira@meg.org.br
RE: entendamos o seguinte...
Enviado: 14 Jul 2004 18:35
por binho_fasa
Em geral sim. Mas se você tiver na máquina uma palca controladora ou multiserial, ai as coisas já mudam. Por via das dúvidas, é melhor sempre verificar a IRQ.
[]´s
Fabio Souza.