ROTINA - Como pegar dados da balança FILIZOLA por FRAZATO.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

ROTINA - Como pegar dados da balança FILIZOLA por FRAZATO.

Mensagem por rochinha »

Amiguinhos

Post aqui uma solução enviada por João Frazato para trabalho com as balanças Filizola na integra.

"Blz...

Gostaria que você coloque essa rotina para o pessoal que frequenta o fórum do PcToledo, pois eu perdi a minha senha e não estou conseguindo contatar o toledo.

Esta rotina faz a comunicação entre o programa e balanças filizola da linha BP, e de fácil implementação em qualquer sistema.

Requer a biblioteca CTP.LIB

Obrigado,

Maiores dados favor entrar em contato.

Frazato"


Rotina

Código: Selecionar todos

Clear
Do While .T.
        mValor := 0
        mPeso  := 0
        Clear
        @ 01,01 say Padc("Leitura de peso na Balanca Filizola Linha BP ",80) Color("GR+/B")
        Set Key -1 to Ler_Peso()
        
        @ 12,10 say "Informe o Peso ou F2 para Ler Balanca : " Get mPeso Pict "@EZ 9999.999";
                    When (Ler_Peso()==.T.);
                    Valid(Ler_Peso(),mPeso > 0)

        @ 13,10 say "Pre‡o Produto :" Get mValor Pict "@EZ 9999.99"
        Read
        If LastKey()==27
           Exit
        Endif
        Inkey(0)
Enddo

//------------------------------------------------------------------------
Function Ler_Peso()
Local nPorta := 1     
Local cTrans := "N"
Local nBits  := 8
Local nParad := 1
Local nVeloc := 2400
Local cInicia:= Chr(05)   // Padrao utilizado pela linha BP(Filizola)
Local Erro   := .F.
Local VlrPeso:= 0
Local nRetorn:= .T.
If mPeso > 0
   Return .T.
Endif
@ 24,00 say padc("Balan‡a :"+Str(nPorta,2),80)
If Com_Open(nPorta,1000,1000) == .F.
   Erro := .T.
Else
  nConf := Com_Init(nPorta,nVeloc,cTrans,nBits,nParad)
      Com_Send(nPorta,cInicia)
      Inkey(0.10)
      Com_Count(nPorta)
      Inkey(0.10)
      nLeitura := Com_read(nPorta,10)
      If Substr(nLeitura,1,1)== Chr(02) .And. Right(AllTrim(nLeitura),1)==Chr(03)
         VlrPeso := Val(Substr(nLeitura,2,5))/1000
      Endif
      Com_Close(nPorta)
Endif
@ 24,00 say padc("",80)
If Erro == .F.
   mPeso := VlrPeso
Endif
Return (.T.)
@braços :?)
Responder