Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

consultoria_sticker.png

Conteúdo para desenvolvedores
 ao vivo de terça a quinta!
Saiba mais

dev.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


botao.png

beneficios.png

Leitura de balança retorna última pesagem com -9 várias vezes seguidas ao realizar pesagem.


Recommended Posts

  • Usuários SAC

Boa tarde, 
Possuo dois módulos no sistema, um cadastro de balança onde é possível realizar a configuração da balança e testes de conexão e pesagem e um módulo de produção onde o peso da balança será utilizado de fato. 
No meu módulo de cadastro de balança eu consigo conectar normalmente e realizar pesagens de teste sem nenhum erro ou retorno estranho da balança. Porém no módulo de produção a pesagem da balança retorna -9 diversas vezes seguidas e depois de muitas tentativas retorna um peso válido. 
Ambos os módulos chamam a classe de balança, para conectar tenho a seguinte função: 
 

FACBrBAL1 := TACBrBAL.Create(nil);
  FACBrBAL1.OnLePeso := OnLePeso;

  // se houver conexão aberta, Fecha a conexão
  if FACBrBAL1.Ativo then
    FACBrBAL1.Desativar;

  // configura porta de comunicação
  FACBrBAL1.Modelo           := TACBrBALModelo(GetIndexBalanca(FBalancaUtilizada.Balanca));
  FACBrBAL1.Device.HandShake := TACBrHandShake(GetIndexHandShake(FBalancaUtilizada.Handshaking));
  FACBrBAL1.Device.Parity    := TACBrSerialParity(GetIndexParity(FBalancaUtilizada.Parity));
  FACBrBAL1.Device.Stop      := TACBrSerialStop(GetIndexStopBits(FBalancaUtilizada.StopBits));
  FACBrBAL1.Device.Data      := FBalancaUtilizada.DataBits;
  FACBrBAL1.Device.Baud      := FBalancaUtilizada.BaudRate;
  FACBrBAL1.Device.Porta     := FBalancaUtilizada.PortaSerial;
  FACBrBAL1.ArqLOG           := FBalancaUtilizada.ArquivoLog;

  // Conecta com a balança
  try
    FACBrBAL1.Ativar;
  except
    raise EKorpMensagem.Create('Atenção! Não foi possível realizar a conexão com a balança. Verifique os parâmetros cadastrados.');
  end;

Função OnLePEso
 

SetRespostaBalanca('Resposta da Balança: ' + String(resposta));
  if (not FBalancaUtilizada.ByteInicial.IsNull) and (not FBalancaUtilizada.ByteFinal.IsNull) then
  begin
    if (FBalancaUtilizada.ByteInicial.ValueOrDefault >= FBalancaUtilizada.ByteFinal.ValueOrDefault) then
      raise EKorpMensagem.Create('Atenção! O Byte inicial não pode ser maior ou igual que o Byte final.');

    tamanhoByte  := FBalancaUtilizada.ByteFinal.ValueOrDefault - FBalancaUtilizada.ByteInicial.ValueOrDefault;

    unidadesInteiras := Trunc(Log10(FBalancaUtilizada.LeituraMaxima.Value));

    palavraCapturada := Copy(String(resposta), FBalancaUtilizada.ByteInicial.ValueOrDefault, tamanhoByte);

    SetRespostaBalanca('Resposta da Balança:' + sLineBreak + String(resposta) + sLineBreak + 'Palavra capturada:' + sLineBreak + palavraCapturada);

    respostaTratada := Copy(palavraCapturada, 1, unidadesInteiras) + ',' +
      Copy(palavraCapturada, unidadesInteiras + 1, length(palavraCapturada));

    FPeso := DecimalRoundDbl(StrToFloatDef(respostaTratada,0), FBalancaUtilizada.Precisao.ValueOrDefault);
  end
  else
    FPeso := peso;

  if not(FPeso > 0) then
  begin
    parteInteiraPeso := Trunc(FACBrBAL1.UltimoPesoLido);
    case parteInteiraPeso of
       0: mensagem := 'Atenção! Não foi possível ler o peso da balança. Verifique os parâmetros cadastrados.';
      -1: mensagem := 'Atenção! Peso instável, tente novamente.';
      -2: mensagem := 'Atenção! Peso negativo.';
      -9: mensagem := 'Atenção! Tempo de resposta expirado.';
     -10: mensagem := 'Atenção! O peso excede a capacidade da balança.';
     else mensagem := 'Atenção! Não foi possível ler o valor: [' + palavraCapturada + ']. Verifique a configuração da balança.';
    end;
    raise EKorpMensagem.Create(mensagem);
  end;

Função LerPeso 
 

Result := 0;
  if Assigned(FBalancaUtilizada) then
  begin
    FACBrBAL1.LePeso(timeOut);
    Result := FPeso;
  end;

Possuo o seguinte LOG da balança onde é possível observar na pesagem de 12:05 o resultado correto feito no módulo de configuração e na pesagem de 12:07 o retorno -9 no último peso lido, essa leitura foi feita no módulo de produção. 

logbalanca

Link to post
Share on other sites
  • Fundadores

São equipamentos (balanças) diferentes, ou ambos os programas estão conectados na mesma balança ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to post
Share on other sites
Guest
This topic is now closed to further replies.
×
×
  • Create New...