Jump to content
Fórum Script Brasil
  • 0

(Resolvido) ACBrBal com balança Rodoviária


arce

Question

Olá!

Estou desenvolvendo um sistema de controle de pesagem de uma balança rodoviária Jundiaí. Utilizei o ACBrBal e com os exemplos que vem com o componente implementei no meu sistema. Consegui capturar os pesos em tempo real. O problema é que está capiturando apenas valores até 999 kg, o que é insuficiente para o meu caso.

No evento OnLePeso do componente

procedure TfrmBalanca.ACBrBAL1LePeso(Peso: Double; Resposta: String);

begin

lblBalanca.Caption := FormatFloat('#0', Peso );

end;

Fiz uns testes para checar o valor da variável Peso, e ela não está trazendo valores acima de 999kg. Tirei o formatFloat mas também não deu certo.

Nas propriedades usei a seguinte configuração:

Parity = pEven

Modelo = balFilizola

Porta = COM2

O resto deixei por default.

Acho que o problema está na configuração do componente.

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0
procedure TfrmBalanca.ACBrBAL1LePeso(Peso: Double; Resposta: String);

begin

lblBalanca.Caption := FormatFloat(',0.000', Peso );

end;

A questão não é a formatação, porque fiz o seguinte teste ...
procedure TfrmBalanca.ACBrBAL1LePeso(Peso: Double; Resposta: String);

begin

if Peso > 999 then

showmessage('valor maior q 999 kg');

lblBalanca.Caption := FormatFloat(',0.000', Peso );

end;

... assim me mostraria se o valor da variável Peso era superior a 999kg, o que não ocorreu.

Eu também tentei sem o formatFloat

lblBalanca.Caption := FloatToStr( Peso );

e o valor resultante fica sempre inferior a 999kg

Link to comment
Share on other sites

  • 0

Então tente asim

procedure TForm1.ACBrBAL1LePeso(Peso: Double; Resposta: String);
var valid : integer;
begin
   sttPeso.Caption := formatFloat('##0.000', Peso );
   sttResposta.Caption := Converte( Resposta );

   if Peso > 0 then
      Memo1.Lines.Text := 'Leitura OK !'
   else
      begin
          valid := Trunc(ACBrBAL1.UltimoPesoLido);

          case valid of
            0 : Memo1.Lines.Text := 'TimeOut !'+sLineBreak+
               'Coloque o produto sobre a Balança!'; 
           -1 : Memo1.Lines.Text := 'Peso Instavel ! ' +sLineBreak+
               'Tente Nova Leitura';
           -2 : Memo1.Lines.Text := 'Peso Negativo !';
         -10 : Memo1.Lines.Text := 'Sobrepeso !';
          end;
     end;
end;

abraço

Link to comment
Share on other sites

  • 0
Em 23/11/2010 at 12:25, arce disse:

OK.. resolvido

 

usei a formula que postei neste post (que você mesmo respondeu)

http://scriptbrasil.com.br/forum/index.php...mp;#entry612385

e apliquei na variável Resposta (string que vem da porta serial) do componente, tratei esta string e extrai o peso no formato correto.

 

obrigado

 

Desculpe-me por reabrir este post, mas estou com problemas na configuração de uma balança Jundiaí, onde não consigo pegar os dois valores iniciais. Ex: 25.640 kg trás somente 640 Kg. Poderia descrever como resolveu seu problema?

Desde já agradeço

Obrigado

 

Link to comment
Share on other sites

  • 0

o post é antigo, então é possivel que voce não tenha a resposta do arce

mas voce pode olhar esse link, e ver se ajuda

http://www.projetoacbr.com.br/forum/files/category/5-utilit%C3%A1rios-acbr/

ou veja esse programa de teste

https://github.com/GabrielF7/ACBrTrunk2/blob/master/Exemplos/ACBrSerial/ACBrBAL/Delphi/BalancaTeste1.pas

ou veja o programa Demo que vem junto com os componentes que voce esta usando

abraço

Link to comment
Share on other sites

  • 0
Em 28/06/2016 at 10:38, JoaoJunior disse:

Desculpe-me por reabrir este post, mas estou com problemas na configuração de uma balança Jundiaí, onde não consigo pegar os dois valores iniciais. Ex: 25.640 kg trás somente 640 Kg. Poderia descrever como resolveu seu problema?

Desde já agradeço

Obrigado

Bom dia

Recentemente um de meus clientes trocou a placa da balança Jundiaí, e também tive que alterar a leitura do retorno. Resolvi criando parâmetros de leitura (caracter inicial. final e qtd de caracteres para leitura), de forma que agora consigo configurar em qualquer outra balança rodoviária.

No método ACBrBAL1LePeso(Peso: Double; Resposta: String);  a variável "Resposta" retorna o conteúdo da porta, cada modelo de balança retorna de forma diferente.

Ex01: "#   00025685$#   00025685$#   00025686$" 

Ex02: "   00025685   00025685   00025686"

No evento LePeso, associei o meu método, que seria chamado no Ex01 assim, LerPesoBalanca(Resposta, '#', '$', 11) e no Ex02 LerPesoBalanca(Resposta, '', '', 11)

Algumas balanças retornam a resposta em Hexadecimal, nesses casos é necessário converter para ASCII.

 

Link to comment
Share on other sites

  • 0

Amigos, boa tarde. Estou com um probleminha com a Jundiaí também. Tenho dois clientes que compraram recentemente a balança Jundiaí, mas não estou conseguindo configurar. O modelo mais parecido que encontrei foi a da LucasTec, que faz a leitura corretamente, mas fica muito lento no monitoramento. A troca de pesos demora demais. Alguém poderia disponibilizar como configurar a Jundiaí pela AcbrBal ? O Demo não tem esse modelo infelizmente....

Tentei fazer pelo Genérico, pegando as posições iniciais e finais, mas também não deu certo...

 

 

Desde já agradeço

Link to comment
Share on other sites

  • 0
  • 0
Em 04/12/2020 em 11:38, stones disse:

Pessoal, bom dia !

Estou reabrindo o tópico, pois estou com o problema de ler a Balança Jundiaí. As configurações padrões, eu tento uma leitura de teste. Apresenta a mensagem "Acesso negado" Alguma sugestão ?

Olá Luan, tudo bem? Estou tentando desenvolver um aplicativo tambem para uma balanca jundiai, consegui ler o peso. Estou usando o MySql como BD, instalei i TCOMPORT no delphi de acordo com o video:

://youtu.be/CJbr4OZ5rKk

Depois eu criei um DBEdit onde apresento o peso lido sem formatação, pra acompanhar, daí apliquei pelo botão Peso_Entrada uma rotina para salvar no campo DBEdit Peso1 que irá salvar como Peso_entrada no BD;

procedure TForm1.Button1Click(Sender: TObject);
begin

      pesocom := Copy(Edit1.Text,3,6);
      DBEdit15.Text := FormatFloat('0', StrToFloat(pesocom));
    if (StrToInt(DBEdit15.Text)<>0)and((DBEdit16.Text)= EmptyStr) then
      begin
         DBEdit16.Text:= FormatFloat('0', StrToFloat(pesocom));
      end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
        pesocom := Copy(Edit1.Text,3,6);
        DBEdit17.Text := FormatFloat('0', StrToFloat(pesocom));
    if (StrToInt(pesocom)<>0) and ((DBEdit17.Text)= EmptyStr) then
        pesosaida:=StrToInt(pesocom);{variavel de peso de saida recebe o peso filtrado}
        DBEdit17.Text := FormatFloat('0', (Pesosaida));{Escreve Vpesosaida sem zero esquerda}
        pesoliq:= pesosaida-pesoentrada; {carrega o peso liquido para manipular}

 

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
Answer this question...

×   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.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...