Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) ACBrBal com balança Rodoviária


arce

Pergunta

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 para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...