Ir para conteúdo
  • Cadastre-se

dev botao

ACBrMTer Ler peso balança


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 2104 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Estou usando uma balança toleto prix 3 fit e quando uso o exemplo do ACBRMTer, o botão Solicitar Peso:
 

procedure TForm1.btSolicitarPesoClick(Sender: TObject);
var
  I: Integer;
  wIP: String;
begin
  VerificaSelecionado;

  if (cbBalanca.ItemIndex = 0) then
  begin
    MessageDlg('Selecione o Modelo', mtError, [mbOK], 0);
    cbBalanca.DroppedDown := True;
    Exit;
  end;

  ACBrBAL1.Modelo := TACBrBALModelo(15);

  for I := 0 to clbConectados.Count - 1 do
  begin
    wIP := clbConectados.Items;

    if clbConectados.Checked then
      ACBrMTer1.SolicitarPeso(wIP, edSerialPeso.Value); //<----Nada acontece, debuguei o código e notei que não tem rotinas para ler o retorno da balança
  end;
end;

 

mesmo se trato o evento ACBrBAL1LePeso(Peso: Double; Resposta: AnsiString);

não retorna nada, o componente ACBrBAL1, esta setado corretamente com a balança toleto
 image.png.9f7256af3e9ac1717793bad403d1beb3.png

Estou fazendo alguma coisa de errado?

  • Membros Pro
Postado

Rafael, bom dia!

Depois de passar muito tempo realizando testes, atualizei hoje novamente o ACBr e o projeto de exemplo do ACBrMTer, ele não esta nem copilando, os eventos de OnConecta, OnDesconecta, e OnRecebeDados estão com seus parâmetros em string e o componente esta com AnsiString.
Então já se da para ver que vocês não estão realizando testes com ele.

No protocolo VT100 usando um micro terminal WilTech, até consegui comunicar com a balança, porem o peso na balança é 0,106 e o evento OnRecebePeso, tem horas que ele recebe 0,600, 1,6000, 6,000 ou até mesmo 10,000, se você manda ler o peso 3 vezes da erro no memo do output e a conexão com o micro terminal termina.

Os demais protocolos nem se comunicam com a balança, tenho um outro micro terminal GerTec que estou testando e também não comunica.

Tanto o terminal Wiltech e o GerTec, pelos demos dos fabricantes, se comunicam novamente com a balança.

Sobre a sua pergunta que configurei o componente ACBrMTer com a balança, sim esta configurado.

Os erros que estou tendo aqui, são os mesmos que achei pessoas falando no fórum, acredito que estes erros ainda não tenham sido corrigidos.

  • Fundadores
Postado
4 horas atrás, marcellocainelli disse:

os eventos de OnConecta, OnDesconecta, e OnRecebeDados estão com seus parâmetros em string e o componente esta com AnsiString.

Qual a versão da sua IDE ?

Os parâmetros são realmente em AnsiString... o que ocorre, é que o (bom e velho) D7, entende que String = AnsiString... e nos Delphis mais novos isso não é verdade...

Por favor anexe o log gerado pelo ACBrMTER

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.

  • 2 semanas depois ...
  • Fundadores
Postado

Apliquei várias modificações nos fontes, para que a leitura da Balança funcione adequadamente...

Citar

-- ACBrMTer, ACBrMTerClass, ACBrMTerSB100 --
[+] Ajustes recebidos de Elias, e novo modelo sb100 (Bematech Fit)
    https://www.projetoacbr.com.br/forum/topic/38899-testes-microterminal-bematech-fit-básico/
[*] Remoção de uso densnecessário de AnsiString, de vários eventos e métodos
[+] Adicionada a propriedade "TerminadorBalanca: AnsiString", para permitir ao
    componente compreender quando a Balança terminou de enviar seus dados
[+] Adicionada a propriedade "TimeOutBalanca: Integer default 1000" que permite
    Definir o tempo que o componente deve aguardar o envio de dados da Balança
    Se nada for retornado no periodo, será retornado peso -9 = Timeout
[+] Adicionada as propriedades:
    DisplayLinhas : Integer default 4;
    DisplayColunas: Integer default 20;
    (por: DSA e Elias)  

Fique atento a definição de TerminadorBalanca e TimeOutBalanca... O Terminador da Balança pode depender do protocolo usado pelo equipamento, mas será facilmente identificado, após receber algumas leituras da balança...

Por favor atualize seus fontes, e faça um novo teste...

  • Curtir 3
  • Confuso 1
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.

  • Membros Pro
Postado

Daniel bom dia!

Fui atualizar o ACBr e esta dando o erro abaixo:

C:\ACBr\Fontes\ACBrTCP\ACBrMTer.pas(97) Error: E2029 'END' expected but '<' found
C:\ACBr\Fontes\ACBrTCP\ACBrMTer.pas(98) Error: E2029 ',' or ':' expected but 'PROCEDURE' found
C:\ACBr\Fontes\ACBrTCP\ACBrMTer.pas(98) Error: E2029 ';' expected but '(' found
C:\ACBr\Fontes\ACBrTCP\ACBrMTer.pas(98) Error: E2029 '=' expected but ')' found
C:\ACBr\Fontes\ACBrTCP\ACBrMTer.pas(102) Error: E2029 'END' expected but '=' found
C:\ACBr\Fontes\ACBrTCP\ACBrMTer.pas(105) Error: E2029 'END' expected but '>' found
C:\ACBr\Fontes\ACBrTCP\ACBrMTer.pas(106) Error: E2029 ',' or ':' expected but identifier 'public' found
C:\ACBr\Fontes\ACBrTCP\ACBrMTer.pas(107) Error: E2029 ',' or ':' expected but 'CONSTRUCTOR' found
C:\ACBr\Fontes\ACBrTCP\ACBrMTer.pas(2436) Fatal: F2063 Could not compile used unit 'ACBrMTerVT100.pas'
Compilation failure
Erro ao compilar o pacote "ACBr_MTER.dpk".
Abortando... Ocorreram erros na compilação dos pacotes.

Segue o arquivo log em anexo

log_Delphi_10.2_Tokyo.txt

  • Membros Pro
Postado

Daniel bom dia!

O micro terminal Willtech usando o protocolo VT100 se comunica com a balança sem problemas, já o micro terminal Gertec que usa o protocolo PMTG não se comunica com a balança por nada, já testei todas as configurações de terminal da balança e terminal do micro terminal, timeout e tudo mais.

Usando o programa de teste do Gertec ele se comunica normal com a balança.
Os teste que você realizou ai foram com o protocolo PMTG?

  • 3 semanas depois ...
  • Fundadores
Postado

Me enrolei demais com esse assunto...

Acabei por fazer uma ampla reforma na maneira de funcionamento do ACBrMTer...

Notei que em vários pontos, ele não estava amigável para uma aplicação que pode receber múltiplas conexões simultâneas... e modifiquei o mesmo, para que implemente uma Fila de Comandos, e processe melhor os protocolos que possuam retorno de dados (como é o caso do PMTG da Gertec)...

Precisei reescrever toda a lógica do comando "OnLine", pois ele simplesmente desligava toda a Thread de recebimento de dados...

Ainda não enviei ao SVN, pois preciso testar melhor no D7, e ajustar o Demo em Delphi...

Enquanto isso, anexei um ZIP com todos os fontes modificados

 

 

  • Curtir 2
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.

  • Fundadores
  • Solution
Postado

Ok, commits efetuados... Fontes e Demos atualizados...

Citar

-- ACBrMTER --
[*] Amplo refactoring no componente, com o intuito de melhorar o uso de várias
    conexões simultâneas e permitir o melhor controle de Protocolos que
    emitem Respostas para os comandos enviados (Ex: PMTG)
[+] Implementação de Fila de Comandos a serem processados, permitindo a verificação
    do retorno de cada comando.
[*] Assinatura do Evento "OnRecebeDados", modificada, removendo diretiva "VAR"
[*] function "OnLine", removida e substituída pelo método: "VerificarOnLine"
[+] Adicionado o Evento "OnRecebeOnLine", para trabalhar em conjunto com o
    comando "VerificarOnLine"
[-] Removida a propriedade "TimeOutBalanca", pois será usado o mesmo valor
    definido em "TimeOut"
[+] Adicionada a propriedade "WaitInterval: Integer default 200", que permite
    causar uma espera de alguns milisegundos, após o inicio da recepção de algum
    dado pela Serial. Isso pode prevenir recebimento de dados truncados ou
    quebrados em várias segmentos. O Valor 0 desativa o atraso.

-- ACBrMTerPMTG --
[*] Revisão, e melhorias no Protocolo Gertec
[-] Possível ajuste, para correção de erro na leitura da balança
    (por: DSA)                      

 

  • Curtir 2
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.

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.