Ir para conteúdo
  • Cadastre-se

dev botao

AcbrMonitor - ERRO: Communication error 9997: Timeout during operation


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

Recommended Posts

  • Membros Pro

Bom dia pessoal,

Estou com um problema em um cliente na seguinte situação:

PDV com Sat Sweda e impressora Daruma DR800.

Se a impressora está configurada como "compartilhada" no Windows funciona perfeitamente no AcbrMontior.

Mas quando está configurada no AcbrMonitor direto na COM a impressão do Sat se for uma venda pequena sai normalmente, mas quando é uma venda com muitos itens, mais de 20 itens, o cupom não sai por inteiro e no log é exibido:

ERRO: Communication error 9997: Timeout during operation

 

Segue em anexo um log do acbrmonitor.

 

Obrigado.

 

LOG.TXT

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Nos componentes, seria necessário, diminuir o tamanho do Buffer de envio da Serial ... algo como:

  ACBrPosPrinter1.Device.SendBytesCount := 8192;  // 8KB

No MonitorPLUS ainda não há configuração para isso... mas não é difícil de implementar... o @Celso, já está analisando o caso...

 

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

Link para o comentário
Compartilhar em outros sites

@Klayton Fratoni, seria nessa tela mesmo, na parte inferior no grupo Envio de Dados o parâmetro Buffer de Envio.

O valor ali carregado vem do device, então parece que o valor já é 8192. Tente ajustar este valor. O parâmetro seguinte, é o de espera, é o intervalo entre o envio dos comandos, depende do tempo de resposta da ECF. Novamente, faça alguns testes de valores para ver se resolve seu problema.

Consultor SAC ACBr

Celso Marigo Junior

Conheça o Portal do Projeto ACBr
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Utilizar o Handshaking correto, também pode ajudar... é através dele que o ACBrDevice sabe se o Hardware está ou não pronto para receber dados...

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

Faltou um trecho de código para gravar os dados configurados para a PosPrinter, isso ocorreu porque os outros dados não estavam sendo salvos anteriormente para este componente, a nova versão que acabo de enviar já contém a alteração.

 

Consultor SAC ACBr

Celso Marigo Junior

Conheça o Portal do Projeto ACBr
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 11 meses depois ...
Em 24/04/2017 at 10:04, Daniel Simoes disse:

Utilizar o Handshaking correto, também pode ajudar... é através dele que o ACBrDevice sabe se o Hardware está ou não pronto para receber dados...

Oi pessoal boa noite,

Daniel qual seria o HandShaking correto? Em alguns clientes está dando a mensagem "ERRO: Communication error 9997: Timeout during operation" vou colocar essas configs pra ver se resolve.

Obrigado, abraço a todos.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Handshake é uma característica da conexão serial... se ele estivesse errado, você não teria uma conexão valida...

Qual é o Timeout que você está usando ?

Anexe o Log gerado pelo ACBrECF

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

Oi, eu uso impressora não fiscal DR800 pra emitir NFC-e e uso o ACBrMonitor-DF-e e ACBrMonitor-PosPrinter.

Alterei nas configurações do posprinter a propriedade "LinhasBuffer" para 100 e "SENDBYTESCOUNT" para 8192 conforme orientação de alguns fóruns daqui e até agora não deu mais o problema, estou acompanhando.

No posprinter tem como configurar timeout também?

Segue ACBrMonitor.ini  anexo.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • Fundadores
23 minutos atrás, tiyoung disse:

No posprinter tem como configurar timeout também?

Você diz no componente em Delphi ?

  • ACBrPosPrinter.Device.SendBytesCount: Determina o número máximo de bytes a serem enviados pela porta.
  • ACBrPosPrinter.Device.SendBytesInterval: Determina o número de milissegundos a aguardar, antes de enviar o próximo Buffer de dados
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 para o comentário
Compartilhar em outros sites

Boa tarde,

acabou de dar o problema novamente.O Erro no LOG fica assim: "18/04/2018 12:44:15 - ERRO: Communication error 9997: Timeout during operation"  Depois que dar esse erro não consigo mais imprimir nada pelo sistema.. pra voltar eu tenho que fechar o acbrmonitor, desligar a impressora, ligar novamente, abrir o acbrmonitor e tentar a impressão novamente pelo sistema que funciona.

As configurações do posprinter do meu acbrmonitor está assim:

[PosPrinter]
Modelo=3
Porta=COM3
Colunas=48
EspacoEntreLinhas=0
LinhasBuffer=100
LinhasPular=3
PaginaDeCodigo=2
ControlePorta=0
CortarPapel=1
TraduzirTags=1
IgnorarTags=0
ArqLog=
SerialParams=BAUD=115200 SENDBYTESCOUNT=8192 SENDBYTESINTERVAL=0

Essa é a configuração ideal? 

Segue anexo LOG.txt da maquina do cliente.

 

LOG.TXT

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Tente diminuir para 1K

SENDBYTESCOUNT=1024

Deixe um Sleep de 50 a 100, entre cada bloco enviado...

SENDBYTESINTERVAL=100

Experimente alternar o "ControlePorta", de Desligado para Ligado

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

Boa tarde pessoal,

Obrigado pelas dicas Daniel!

Coloquei essas configurações conforme orientação sendo que ao usar o método NFE.ImprimirDanfe("caminhoDoXml")  pra imprimir o DANFE, o mesmo ficou sem formatação. Percebi que foi após habilitar o comando controlePorta para "Ligado", eu deixei o mesmo desligado e voltou a imprimir normal. Habilitei também o HANDSHAKE e vou ficar acompanhando para ver se volta a ocorrer o problema. O meu ACBrMonitor.ini na parte PosPrinter ficou assim:

[PosPrinter]
Modelo=3
Porta=COM3
Colunas=48
EspacoEntreLinhas=0
LinhasBuffer=100
LinhasPular=3
PaginaDeCodigo=2
ControlePorta=0
CortarPapel=1
TraduzirTags=1
IgnorarTags=0
ArqLog=
SerialParams=BAUD=115200 HANDSHAKE=RTS/CTS HARDFLOW SENDBYTESCOUNT=1024 SENDBYTESINTERVAL=100

 

Vocês acham que devo colocar também pra sempre antes de chamar esse comando NFE.ImprimirDanfe("caminhoDoXml") ou qualquer outro relatório(uso o comando NFE.ImprimirRelatorio("text..") ) eu chamar os comandos ESCPOS.setporta("COM3") e ESCPOS.ativar? 

Obrigado a todos!

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores
Em 20/04/2018 at 15:03, tiyoung disse:

Vocês acham que devo colocar também pra sempre antes de chamar esse comando NFE.ImprimirDanfe("caminhoDoXml") ou qualquer outro relatório(uso o comando NFE.ImprimirRelatorio("text..") ) eu chamar os comandos ESCPOS.setporta("COM3") e ESCPOS.ativar? 

Não creio que seja necessário... a Porta é definida pela configuração do MonitorPLUS, e repassada ao componente ACBrPosPrinter... o Ativar geralmente é chamado pelos relatórios do ACBr... mas não fará mal algum, chamá-lo...

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

Bom dia pessoal,

com as últimas configurações que coloquei acima ainda continuou dando erro(diminuiu mas continuou).

Coloquei as mesmas configurações de uma maquina aqui no cliente que, verificando nos logs, não tinha dado esse problema("ERRO: Communication error 9997: Timeout during operation") nenhuma vez.. Mesmo assim deu o mesmo erro nessa outra maquina..

Coloquei para gravar também o log da impressora e a mesma não acusa nenhum erro no horário em que ocorreu o erro no log do acbrmonitor, observem no horário do LOG.TXT anexo, exatamente às "24/04/2018 11:54:08" quando chamo o comando "NFE.ImprimirRelatorio("...texto...")" e as "24/04/2018 11:54:12" da o erro "ERRO: Communication error 9997: Timeout during operation" e no mesmo horário no LOGIMPRESSAO.TXT chama o imprimir as "24/04 11:54:08:949", traduz as tags e logo depois chama o "EnviarStringDevice" sem nenhum erro de nada, e logo depois as "-24/04 11:54:17:982" já é outro comando de impressão, dessa forma não tem como saber a causa do erro.

Hoje estou usando a seguinte configuração no ACBRMonitor PosPrinter das maquinas:

[PosPrinter]
Modelo=3
Porta=COM3
Colunas=48
EspacoEntreLinhas=0
LinhasBuffer=100
LinhasPular=3
PaginaDeCodigo=2
ControlePorta=0
CortarPapel=1
TraduzirTags=1
IgnorarTags=0
ArqLog=C:\ACBrMonitorPLUS\LOGIMPRESSORA.TXT
SerialParams=BAUD=115200 HANDSHAKE=RTS/CTS HARDFLOW SENDBYTESCOUNT=8192

E na parte de configuração das portas conforme print anexo.

image.thumb.png.6b2ae03606b8bde841e7f61bc333e2fc.png

Em todas as maquinas está com windows 7 e com a DARUMA DR800.

Se alguém puder me ajudar, já não sei mais o que fazer para resolver esse problema de perda de conexão.

Obrigado.

LOG.TXT

LOGIMPRESSORA.txt

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Parece ser um problema no Driver Serial Virtual desse fabricante...

Recomendo usar a impressão por SPOOL com essa impressora... (Fortes Report)

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

Fiz a mudança para spool e a impressão do DANFE mudou o layout mas funcionou sendo que na impressão dos meus relatórios usando o "NFE.ImprimirRelatorio("</ae><n>TEXT.......</n></lf>")" não funciona e aparece a mensagem: "Comando disponível apenas para o DANFe modelo DANFe ESCPOS" tem como eu imprimir os relatórios também em Fortes?  Se não vai continuar com o mesmo problema na impressão dos relatórios com ESCPOS.

Link para o comentário
Compartilhar em outros sites

Certo. Eu tenho que usar o ESCPOS.Imprimir("texto")... e nas configurações do posprinter no acbrmonitor colocar a porta "RAW:Daruma DR800 Spooler". Vou fazer essa mudança aqui e ver se fica ok.

Você acha melhor usar:

ESCPOS.Ativar

ESCPOS.Imprimir("texto")

ESCPOS.Desativar

ou apenas colocar o "ESCPOS.Imprimir("texto")" direto?

Obrigado Daniel!

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Melhor Ativar e Desativar, para não prender a porta e atrapalhar a impressão por Spooler...

Você está correto na definição do nome da Porta, isso é, considerando que "Daruma DR800 Spooler" é o nome da Impressora instalada...

Lembre de que você pode usar a Tag de quebra de linha <lf>, para enviar várias linhas no mesmo comando Imprimir  ( fica mais rápido)

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

×
×
  • 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.