Página 1 de 3
Balanca Toledo 9090 - Colocar PDV para comunicar com ela
Enviado: 19 Jul 2007 09:51
por rubens
Olá. pessoal..
Chegou o fatídico dia... tenho um cliente que usa uma balanca no pdv mas ele digita manualmente o peso e o código e o programa calcula...
Agora o cara comprou uma TOLEDO 9090 e quer que ela comunique com o pdv..
Pedi suporte na TOLEDO mas eles não tem suporte para o clipper.. entao gostaria da ajuda dos colegas para essa tarefa...
Alguem tem as rotinas de comunicação..
Podem me passar ??
Obrigado
Rubens
Enviado: 19 Jul 2007 10:06
por Pablo César
Caro Rubens,
Lamentavelmente eu não tenho nada feito encima disso. Mas acredito que a balança deve ter uma saída serial e com ela deve acompanhar algum software que interprete ou até mesmo grave em disco a informação. Se for assim, seria questão de ler o arquivo ou capturar essas informações. Se precisar alguma indicação de leitura para serial tem IOLIB que é a mais indicada para trabalhar com Clipper (na minha opinião). Se você tiver algum exemplo do produto do software interpretador ou até mesmo se o suporte do Toledo (me refiro das balanças, não do Paulo César daqui, hihihi) puderem te apresentar outras soluções e você postar exemplos, quem sabe podemos fazer uma ponte para utdo isso.
Enviado: 19 Jul 2007 10:43
por rubens
O Suporte da Toledo me enviou umas DLLs,e um programa exemplo... quando rodo o programa exemplo e mando capturar ele exibe o peso e gera um arquivo texto chamado peso.txt, eu poderia mandar ler esse arquivo txt mas como ele ficar capturando não dá para confiar... precisava de confirmacao que o que foi gerado naquele instante é o peso real...
De repente algum colega do Fórum ainda dê uma solução...
Enviado: 19 Jul 2007 10:50
por Maligno
Não seria a MU9091? Eu fiz um serviço outro dia pra um amigo, que aliás nem chegou a usar. O cliente dele desistiu. Mas se bem me lembro, há um protocolo específico em que os dados são continuamente passados da balança para o computador. Você só precisará se comunicar pela serial (CATools) e ficar monitorando o buffer de entrada.
Exemplo: no protocolo P01 (veja o manual), a comunicação tem uma interface específica (7N2, por exemplo - não lembro). Você configura a porta para monitoração e começará a receber os dados, sempre num formato rígido:
STX
BBBBBBBkgSPC TR SI SPC
LLLLLLLkgSPC LIQ
(SO)CR(CS)LF
Os detalhes, claro, você deverá obter do manual da impressora alvo, no site da Toledo. O exemplo acima é da impressora MU9096. Pode haver diferenças.
Enviado: 19 Jul 2007 12:40
por sygecom
De uma olhada no exemplo do link abaixo, junto aconpanha a IOLIB e mais um tutorial do Moderador do Forum....explicando como usar a IOLIB....outra coisa...veja com a Toledo...qual o comando devemdo enviar para essa balança....cada modelo tem um tipo de comunicação diferente....ex: a 9091,9094,8132,8510,8530,ID1,2090.......le de um jeito......jah as 9096,8530...le de outro jeito...qualquer coisa prende o grito que acho que tenho mais uns exemplos...mas a idéia inicial é abriar a porta de comunicação, enviar um comando para a balança e ela retorna com o peso pra vc.
www.sygecom.com.br/xharbour/balanca.zip
Abraços
Leonardo Machado
Enviado: 19 Jul 2007 13:36
por rubens
Gente que vacilo.. passei batido aqui.. o modelo da balança é 9094 e não 9090.
Estive olhando manual e diz o seguinte...
" A balança aguarda uma solicitação do dispositivo externo, para iniciar a transmissão de dados, relativa ao peso.
Este protocolo de comunicação utiliza:
1 Stop Bit;
8 Bit de dados;
Sem paridade;
O envio dos dados é iniciado, quando a balança receber o sinal de controle ENQ.
ENQ=Caracter ASCII (05H), enviado pelo dispositivo externo.
A partir deste comando, a balança estará enviando ao dispositivo externo, o seguinte pacote de dados:
[STX] [PPPPP] [ETX] - peso estável;
[STX] [IIIII] [ETX] - peso instável;
[STX] [NNNNN] [ETX] - peso negativo;
[STX] [PPPPP] [ETX] - peso acima;
onde:
STX = Caracter ASCII (02H) - início da transmissão
P = 5 caracteres ASCII relativos ao peso sem ponto decimal. o ponto deve ser tratado via software.
I = Caracter ASCII "I"
N = Caracter ASCII "N"
S = Caracter ASCII "S"
ETX = Caracter ASCII (03H) - Término da trasnmissão...
mas não diz nada relativo a com comunicar com a balança.. o que preciso é saber como fazer isso.. tipo assim, quais comandos usar para iniciar, fechar a transmissão.. porque nao sei nada sobre comunicacao serial.. vou dar uma olhada no link que voce me pasou Leonardo.. e posto um retorno aqui..
Obrigadao, gente...
Enviado: 19 Jul 2007 14:12
por Stanis Luksys
Olá,
Não tenho condições agora de te ajudar completamente, mas procure no NG da CA-Tools por COM_INIT() e COM_SEND()...
É mais simples do que você imagina!
Falou!
Enviado: 19 Jul 2007 14:21
por Maligno
sygecom escreveu:De uma olhada no exemplo do link abaixo, junto aconpanha a IOLIB
Mas essa biblioteca é pra Clipper também? Se for, desconheço. De qualquer modo, acho que a maioria utiliza a CATools.
Enviado: 19 Jul 2007 14:34
por Maligno
rubens escreveu:" A balança aguarda uma solicitação do dispositivo externo, para iniciar a transmissão de dados, relativa ao peso.
Esse é o protocolo Prt3. Talvez o Prt2 seja mais interessante, pois, pelo que entendi, ele só envia quando o peso estiver estável.
Este protocolo de comunicação utiliza:
1 Stop Bit;
8 Bit de dados;
Sem paridade;
Essa é a geometria da comunicação serial. Na CATools você teria que fazer algo semelhante a:
Código: Selecionar todos
if COM_Open(1,1024,1024) // abre COM1 e aloca 1KB para buffers
if COM_Init(1,19200,"N",8,1) // porta, velocidade, paridade, bits e stop bits.
// Envio do comando de ativação: COM_Write()
// Rotina de leitura do retorno: COM_Read()
end
end
COM_Close(1) // fecha a porta
Isso a grosso modo, claro. Você precisa ler o manual (NG) e tentar implementar as rotinas. Se quiser, tenho a CATools no meu site. Diretório Clipper/Libs.
Enviado: 19 Jul 2007 15:14
por rubens
Isso aí Maligno.. valeu... tá começando a tomar forma... vou baixar a Catolls.. e verificar.. aqui..
Daí posto o resultado...
Rubens
Enviado: 19 Jul 2007 15:31
por Maligno
rubens escreveu:Isso aí Maligno.. valeu... tá começando a tomar forma... vou baixar a Catolls.. e verificar.. aqui..
Lembra que comentei que fiz um programa para um amigo. Subi fonte e executável para a área pub do meu site. Diretório Clipper/Sources. O arquivo é serial_to_text.zip. Dê uma olhada. Acho que é mais ou menos o que você vai precisar. Mas já aviso: fiz numa tarde de domingo e sequer vi a cara da balança. Só testei a interface. Ele pode ser configurado em linha de comando com os parâmetros necessários. Conforme lê, mostra a leitura no vídeo ou, opcionalmente, grava em arquivo. Acho que é mais ou menos o que você vai precisar. Leia o README.
Enviado: 19 Jul 2007 15:59
por sygecom
Maligno escreveu:sygecom escreveu:De uma olhada no exemplo do link abaixo, junto aconpanha a IOLIB
Mas essa biblioteca é pra Clipper também? Se for, desconheço. De qualquer modo, acho que a maioria utiliza a CATools.
Sim esse Lib é para CLIPPER.
Eu tb. uso a Ca-tools....segue abaixo um exemplo plea CTP.LIB
Código: Selecionar todos
Func chamabal
LIQ =0
WDIV=10 // variavel de divisão de gramas
COM_CLOSE(1)
COM_OPEN(1, 1, 1)
COM_INIT(1, 1200, "N", 8, 1)
COM_HARD(.F.)
W_PESO:=""
W_LETRA:=""
DO WHILE .T.
IF COM_COUNT(1) > 0
W_LETRA := COM_READ(1, 1)
IF !W_LETRA$"0123456789"
W_PESO := ""
ELSE
W_PESO = W_PESO+W_LETRA
ENDIF
ENDIF
IF LEN(ALLTRIM(W_PESO)) = 6
EXIT
ENDIF
ENDDO
W_PESO = ALLTRIM(W_PESO)
COM_CLOSE(1)
liq=VAL(W_PESO)/WDIV // resultado para o liquido
@ 10,10 SAY LIQ
INKEY(0)
RETURN
Abraços
Leonardo Machado
Enviado: 20 Jul 2007 08:31
por Maligno
Seu exemplo já ajuda bastante. O único senão é quanto ao handshake. Você desligou por hardware, mas não desligou por software (COM_Soft(1,.F.)). O NG não diz qual é a ação default. Provavelmente é FALSE mesmo. Mas por garantia, seria melhor desligar explicitamente. A não ser, claro, que a balança em questão aceite handshake no seu protocolo. E talvez até aceite, uma vez que há um modo de transmissão contínua dos valores.
Enviado: 20 Jul 2007 09:14
por sygecom
Vamor esperar os resultados do nosso colega....espero que ele post como uso para outros futuramente quiser...jah ter por aqui....
Abraços
Leonardo Machado
Enviado: 20 Jul 2007 10:01
por Maligno
A única coisa chata com comunicação serial é essa penca de pequenos detalhes que acabam confundindo bastante quem nunca usou. Me lembro uma vez que fiz um chat pelo Clipper com comunicação modem-modem. Até pegar o jeito da coisa demorou. Mas funcionou bem, apesar da velocidade limitada imposta pela CATools.