Usuários SAC Alexandre Felippeto Henzen 2 Posted December 15, 2020 Usuários SAC Report Share Posted December 15, 2020 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
antonio.carlos 65 Posted December 15, 2020 Report Share Posted December 15, 2020 Tópico movido para a área do SAC, para que o SLA de respostas seja considerado Link to post Share on other sites
Fundadores Daniel Simoes 8,704 Posted December 16, 2020 Fundadores Report Share Posted December 16, 2020 São equipamentos (balanças) diferentes, ou ambos os programas estão conectados na mesma balança ? Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to post Share on other sites
antonio.carlos 65 Posted December 22, 2020 Report Share Posted December 22, 2020 Tópico fechado por falta de retorno do usuário Link to post Share on other sites
Recommended Posts