Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

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

  • Fundadores
Postado

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.

Postado

@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

 

 

 

  • 11 meses depois ...
Postado
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.

  • Fundadores
Postado

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.

Postado

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.

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

Postado

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

  • Fundadores
Postado

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.

Postado

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!

 

 

 

 

 

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

Postado

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

Postado

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.

Postado

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!

 

  • Fundadores
Postado

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.

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