Jump to content

dev botao

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


  • Este tópico foi criado há 1214 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

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 comment
Share on other sites

  • Este tópico foi criado há 1214 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...