Jump to content
Fivewin Brasil

LER PESO DA BALANCA TOLEDO PRIX 2098 (RESOLVIDO)


PJINFO

Recommended Posts

Olá colegas!
Preciso de ajuda.
Não estou conseguindo ler o peso de uma balança nova que o cliente comprou.
Toledo prix 2098   TI 200.

Tudo correto nas configurações da balança e da porta conforme configurado abaixo.
Código bem simples e sempre funcionou

Agradeço a quem possa ajudar.

 

*----------------------------------------------------------------
function RECEBEPESO
*----------------------------------------------------------------

local XPorta       := TESTA_VAR('W_BALANCA_PORTA','PORTA SERIAL DA BALANCA' ,'1','N')  // 1=com1; 2=com2; 3=com3           
local XBaudrate := TESTA_VAR('W_BALANCA_BOUND','BAUND DA BALANCA'        ,'2','N')  // 0=2400 1=4800 2=9600                              
local XDatabits := TESTA_VAR('W_BALANCA_DATABIT','DATA BIT DA BALANCA'   ,'1','N')  // 0=7; 1=8                                           
local XParidade := TESTA_VAR('W_BALANCA_PARID  ','PARIDADE DA BALANCA'   ,'0','N')  // 0=nenhum 1=impar 2=par 3=espaço 
local nPeso                                            
private peso:=space(5)

xDllBal := LoadLibrary(W_CAMINHO_SYS+"DLL32\P05.DLL" )

nret:=AbrePorta( xporta, XBaudrate,XDatabits,XParidade )

IF VALTYPE(NRET)="N"
   if nret>=1
      PegaPeso( 0, @Peso, "" )
   end
END

npeso:=val(transform( peso, "@R 99.999" ))

FechaPorta()

RETURN(npeso)

DLL32 function AbrePorta( Porta AS LONG, BaudRate AS LONG, DataBits AS LONG, Paridade AS LONG, stopbit AS LONG ) AS LONG PASCAL  lib xDllBal
DLL32 function PegaPeso( OpcaoEscrita AS LONG, Peso AS STRING, Diretorio AS STRING ) AS LONG PASCAL  lib xDllBal
DLL32 function FechaPorta() AS LONG PASCAL  lib xDllBal

*-FIM-------------------------------------------------------
 

Link to comment
Share on other sites

Obrigado a todos!
Mas consegui resolver
Usei a HBCOMM.LIB

 

func recebepeso(cPorta,nBound,nDataBit,nstop,nBuffer)
   NHANDLE:=Init_Port(cPorta,nBound,nDataBit,0,nstop,nBuffer)
   OutBufClr(NHANDLE) // Limpa o Buffer de Saida
   OUTCHR(NHANDLE,CHR(5))
   SysWait(0.3)
   Bytes := InbufSize(NHANDLE)
   DADOS=SPACE(20)

   Buffer := InChr( NHANDLE, Bytes, @DADOS) //LER BUFFER DE ENTRADA DA BALANCA
   UnInt_Port(nHandle)

   dados=alltrim(dados)

    nPeso:=val(substr(dados,4,6))/1000
 return(nPeso)

Link to comment
Share on other sites

  • PJINFO changed the title to LER PESO DA BALANCA TOLEDO PRIX 2098 (RESOLVIDO)
  • 8 months later...

Olá a todos

Essa é a minha primeira integração Balança no PDV.

Testei essa rotina com a Balança Toledo 8217 USB TOLEDO, FiveWin 16.8

Mas o dado de retorno estão vindo em branco.

 image.png.8c890862337bf4833c17295af999dc8c.png

FUNCTION LER_PESO_BALANCA()
    nHandle    := Init_Port("COM2",9600,8,0,1,8000) // conf da porta serial
   OutBufClr(nHandle) // Limpa o Buffer de Saida
   OUTCHR(nHandle,CHR(5))
   SysWait(0.3)
   Bytes := InbufSize(nHandle)
   DADOS=SPACE(20)

   Buffer := InChr( nHandle, Bytes, @DADOS) //LER BUFFER DE ENTRADA DA BALANCA
   UnInt_Port(nHandle)

   dados=alltrim(dados)

   nPeso:=val(substr(dados,4,6))/1000
return(nPeso)

 

Link to comment
Share on other sites

Resolvi assim

Informações no grupo

P05.DLL a Toledo não deixa disponível no site, tem que solicitar ao suporte 

{Atenção!!! Os parâmetros do P05 possuem a seguinte ordem:
1o. Parâmetro   = Porta COM             => 1 = COM 1, 2 = COM 2, 3 = COM 3, 4 = COM 4
2o. Parâmetro   = BaudRate              => 0 = 2400, 1 = 4800, 2 = 9600, 3 = 1200, 4 = 19200
3o. Parâmetro   = Data Bits             => 0 = 7 bits, 1 = 8 bits
4o. Parâmetro   = Paridade              => 0 = Nenhum, 1 = Ímpar, 2 = Par, 3 = Espaço
5o. Parâmetro   = Disponibilizar em     => 0 = Arq Texto, 1 = Área de Transferência
6o. Parâmetro   = Diretorio onde será gravado o arquivo. Se vazio significa o diretorio local do programa
7o. Parâmetro   = Tipo de leitura    => 0=P05/P05A, 1=P05B sem tara, 2=P05B com tara
8o. Parâmetro   = Utilizar 1 stop bit   => 0=não utiliza; 1=utliliza (Opcional)
}    
*/
FUNCTION PegaPesoBalanca(vpeso_balanca)

   LOCAL retorno
   LOCAL Peso := Space(5)

   XPorta    := 2 // 1=com1; 2=com2; 3=com3
   XBaudrate := 2 // 0=2400 1=4800 2=9600
   XDatabits := 1 // 0=7; 1=8
   XParidade := 0 // 0=nenhum 1=impar 2=par 3=espaço

   IF ! FILE("P05.DLL")
      MSGINFO("O Arquivo P05.DLL não foi encontrado, solicite a Empresa Desenvolvedora","Atenção" )
      RETURN( 1 )
   ENDIF

   xDllbToledo := LoadLibrary( "P05.DLL" )

    RETORNO := AbrePorta( XPorta, XBaudrate, XDatabits, XParidade )

//    ? RETORNO

   If Retorno # 1
      RETORNO := FechaPorta()
      FreeLibrary( xDllbToledo )
      MsgInfo( "O Sistema não conseguiu abrir a porta COM.","Erro" )
      RETURN( 0 )
   Endif

   Retorn1 := PegaPeso(0, @Peso, "c:\" )
   xQtd := val(peso)
   xQtd := Round(xQtd/1000,3)
   If xQtd <= 0
      If MsgNoYes( "O Sistema Não Conseguiu Ler o Peso da Balança." + CRLF + ;
         "Retire o produto da balança e coloque novamente para nova leitura."+ CRLF + ;
         "Deseja Digitar o Peso do Produto?","Erro na Leitura da Balança" )
      Else
         Peso := Space(5)
         Retorno := PegaPeso( 0, @Peso, "c:\" )
         xQtd := val(peso)
      Endif
   Endif
   Retorno := FechaPorta()
   FreeLibrary( xDllbToledo )

   MsgInfo("Peso "+alltrim(str(xQtd)), "Aviso")
    vpeso_balanca := xQtd
//Return( xQtd )
Return( vpeso_balanca )

    DLL32 FUNCTION AbrePorta( Porta AS LONG, BaudRate AS LONG, DataBits AS LONG, Paridade AS LONG ) AS LONG PASCAL  lib xDllbToledo
    DLL32 FUNCTION PegaPeso( OpcaoEscrita AS LONG, Peso AS STRING, Diretorio AS STRING ) AS LONG PASCAL  lib xDllbToledo
    DLL32 FUNCTION FechaPorta() AS LONG PASCAL  lib xDllbToledo
 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...