Pereira
Balanca Filizola
Moderador: Moderadores
-
José Pereira
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 07 Jul 2004 00:58
Balanca Filizola
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
Pereira
- binho_fasa
- Usuário Nível 2

- Mensagens: 93
- Registrado em: 06 Jul 2004 12:53
- Localização: Brazil
- Contato:
Re: Balança Filizola
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.
[]´s
Fabio Souza.
-
José Pereira
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 07 Jul 2004 00:58
- binho_fasa
- Usuário Nível 2

- Mensagens: 93
- Registrado em: 06 Jul 2004 12:53
- Localização: Brazil
- Contato:
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).
Se não tiver a IOLIB, me informe um endereço de e-mail que eu te envio.
[]´s
Fabio Souza.
#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.
-
José Pereira
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 07 Jul 2004 00:58
- binho_fasa
- Usuário Nível 2

- Mensagens: 93
- Registrado em: 06 Jul 2004 12:53
- Localização: Brazil
- Contato:
-
José Pereira
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 07 Jul 2004 00:58
- filizola
- Usuário Nível 3

- Mensagens: 421
- Registrado em: 19 Ago 2003 20:10
- Localização: Belo Horizonte/MG
nIrQ := COM_GETIRQ(nPorta)
grande amigo, testando a iolib nao encontrei este comando, vc pode me ajudar 
- binho_fasa
- Usuário Nível 2

- Mensagens: 93
- Registrado em: 06 Jul 2004 12:53
- Localização: Brazil
- Contato:
- filizola
- Usuário Nível 3

- Mensagens: 421
- Registrado em: 19 Ago 2003 20:10
- Localização: Belo Horizonte/MG
entendamos o seguinte...
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.
me corrijam por favor se estiver errado.
-
José Pereira
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 07 Jul 2004 00:58
- binho_fasa
- Usuário Nível 2

- Mensagens: 93
- Registrado em: 06 Jul 2004 12:53
- Localização: Brazil
- Contato:
RE: entendamos o seguinte...
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.
[]´s
Fabio Souza.