Balanca Toledo 9090 - Colocar PDV para comunicar com ela

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Balanca Toledo 9090 - Colocar PDV para comunicar com ela

Mensagem 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
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem 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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mensagem 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...
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mensagem 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...
"Eu e minha casa servimos ao Senhor e você ???"
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mensagem por rubens »

Isso aí Maligno.. valeu... tá começando a tomar forma... vou baixar a Catolls.. e verificar.. aqui..
Daí posto o resultado...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder