Ir para conteúdo
  • Cadastre-se

dev botao

Bematech MP-4000 TH FI não consegue finalizar o cupom fiscal


Intelliware
  • Este tópico foi criado há 3073 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, estamos com um problema intermitente em um cliente nosso que utiliza a Bematech MP-4000 TH FI.

Segundo o cliente têm hora que o ECF funciona perfeitamente o dia inteiro, mas têm dia que ocorre vários erros ocorrem durante o dia.

Analisamos várias vezes os logs do nosso sistema e do ECF, mas infelizmente não conseguimos identificar algum problema. Hoje porém encontramos algumas informações:

1) O cliente reclamou que o ECF não conseguiu fechar o cupom fiscal, no log havia:

-- Ativando a porta: COM3
-- 08:36:26:924 CarregaTotalizadoresNaoTributados
                TX -> [STX]g[NUL][FS]?FF0000000500001000000000000000000000000100000000000000000000UN00000000003032[NUL]BALAS SORTIDA 3/ 0,10[NUL][WAK][20]
   08:36:27:031 RX <- ACK = 6 Falha: 0
   08:36:27:062 RX <- [NUL][SOH]@[NUL]
-- Desativando a porta: COM3
----------------- ERRO -----------------
Erro retornado pela Impressora: Bematech

Forma de pagamento aberta

----------------------------------------

    Observando mais acima, podemos verificar que parece que houve interrupção ao subtotalizar o cupom anterior:

-- 08:30:58:859 EfetuaPagamento( 01 , 50 , , 0, 0 )
                TX -> [STX][20][NUL][FS]H0100000000005000j[ETX]
   08:30:58:875 RX <- ACK = 6 Falha: 0
   08:30:59:015 RX <- [NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:30:59:218 Estado
                TX -> [STX][ENQ][NUL][FS]#[WAK]P[NUL]
   08:30:59:218 RX <- ACK = 6 Falha: 0
   08:30:59:343 RX <- #[NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:30:59:546 Subtotal
                TX -> [STX][ENQ][NUL][FS]#A[128][NUL]
   08:30:59:546 RX <- ACK = 6 Falha: 0
   08:30:59:672 RX <- [NUL][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:30:59:875 
                TX -> [STX][4][NUL][FS][GS]9[NUL]
   08:30:59:875 RX <- ACK = 6 Falha: 0
   08:31:00:015 RX <- [NUL][NUL][NUL][NUL][NUL][7][136][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:31:00:218 TotalPago
                TX -> [STX][ENQ][NUL][FS]#[22]U[NUL]
   08:31:00:218 RX <- ACK = 6 Falha: 0
   08:31:00:359 RX <- [NUL][NUL][NUL][NUL][NUL]P[NUL][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:31:00:562 Estado
                TX -> [STX][ENQ][NUL][FS]#[WAK]P[NUL]
   08:31:00:562 RX <- ACK = 6 Falha: 0
   08:31:00:687 RX <- #[NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:31:00:906 CNPJ
                TX -> [STX][ENQ][NUL][FS]#*i[NUL]
   08:31:00:906 RX <- ACK = 6 Falha: 0
   08:31:01:062 RX <- 08.835.222/0001-36  [NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:31:01:266 DataHora
                TX -> [STX][ENQ][NUL][FS]#[23]V[NUL]
   08:31:01:266 RX <- ACK = 6 Falha: 0
   08:31:01:406 RX <- #[16][NAK][BS])[23][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:31:01:609 Subtotal
                TX -> [STX][ENQ][NUL][FS]#A[128][NUL]
   08:31:01:609 RX <- ACK = 6 Falha: 0
   08:31:01:734 RX <- [NUL][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:31:01:937 
                TX -> [STX][4][NUL][FS][GS]9[NUL]
   08:31:01:937 RX <- ACK = 6 Falha: 0
   08:31:02:078 RX <- [NUL][NUL][NUL][NUL][NUL][7][136][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:31:02:265 Subtotal
                TX -> [STX][ENQ][NUL][FS]#A[128][NUL]

--------------------------------------------------------------------------------
ATIVAR - 23/10/15 08:33:51:246 - Modelo: Bematech - Porta: COM3 - TimeOut: 30
         Device: BAUD=9600 DATA=8 PARITY=N STOP=1 HANDSHAKE= MAXBANDWIDTH=0
--------------------------------------------------------------------------------

2) O cliente reportou que houve o registro do item no ECF, mas antes apareceu que houve Falta de energia, no nosso sistema foi registrado o item, mas o cliente não conseguiu fechar o cupom. Observamos no log:

-- Ativando a porta: COM3
-- 09:11:15:352 CarregaTotalizadoresNaoTributados
                TX -> [STX]g[NUL][FS]?FF0000000500001000000000000000000000000100000000000000000000UN00000000003032[NUL]BALAS SORTIDA 3/ 0,10[NUL][WAK][20]
   09:11:15:461 RX <- ACK = 6 Falha: 0
   09:11:15:625 RX <- [NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 09:11:37:302 NumUltimoItem
                TX -> [STX][ENQ][NUL][FS]#[FF]K[NUL]
   09:11:37:302 RX <- ACK = 6 Falha: 0
   09:11:37:443 RX <- [NUL][STX][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 09:11:37:708 Subtotal
                TX -> [STX][ENQ][NUL][FS]#A[128][NUL]
   09:11:37:708 RX <- ACK = 6 Falha: 0
   09:11:37:849 RX <- [NUL][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3

Neste momento o comando VendeItem que era para ser chamado a seguir, até as 09:13:03:101 não apareceu no log do ECF.

Já trocamos a DLL da Bematech, já inclusive levamos um cabo serial nosso para o cliente e já tentamos várias vezes abaixar e aumentar o buffer da porta serial. Este caixa utiliza o Windows 8 e um cabo de conversão USB-SERIAL. Antes utilizava uma placa PCI Express-SERIAL, mas estava dando muito erro.

Gostaríamos da opinião de vocês sobre estes dois casos, uma vez que o problema com este caixa já persiste por um tempo. Estou anexando o log completo para melhor compreensão.

Desde já agradeço.

LOG_20151023.ecflog

Link para o comentário
Compartilhar em outros sites

  • Fundadores

O Log indica certa instabilidade na Porta Serial... (erros ao tentar acessá-la)

Se você já trocou de porta serial, desconfie do cabo..

 

O Erro no inicio do seu Post... pode significar que você está chamando "CarregaTotalizadoresNaoTributados" em um momento que o ECF não está pronto para responder a ele (parece ter um cupom aberto)

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

  • Membros Pro

Daniel, boa tarde.

Pesquisei no nosso source aqui e em nenhum momento chamamos a função CarregaTotalizadoresNaoTributados.

Analisando novamente o log de outro cliente que utiliza a Bematech MP-4000 que funciona normalmente, entre a AbreCupom e o primeiro VendeItem raramente encontramos a função acima.

1) Caixa com problema:

-- 08:13:09:528 AbreCupom( , ,  )
                TX -> [STX][4][NUL][FS][NUL][FS][NUL]
   08:13:09:528 RX <- ACK = 6 Falha: 0
   08:13:09:543 VerificaFimImpressao: Pedindo o Status (19)
   08:13:10:428 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   08:13:10:871 RX <- @[NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:13:11:874 CarregaAliquotas
                TX -> [STX][ENQ][NUL][FS]#[GS]\[NUL]
   08:13:11:920 RX <- ACK = 6 Falha: 0
   08:13:12:077 RX <- [NUL][SOH]@[NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:13:12:282 
                TX -> [STX][4][NUL][FS][26]6[NUL]
   08:13:12:282 RX <- ACK = 6 Falha: 0
   08:13:12:444 RX <- [ENQ][7][NUL][18][NUL][24][NUL]%[NUL]0[NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL]@[NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:13:12:647 CarregaTotalizadoresNaoTributados
                TX -> [STX]p[NUL][FS]?FF0000011900001000000000000000000000000100000000000000000000UN07896524721018[NUL]LAVA LOUCAS SUPREMA NEUTRO 500[NUL]M[23]
   08:13:12:763 RX <- ACK = 6 Falha: 0
   08:13:12:935 RX <- @[NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:13:13:357 VendeItem( 07896524721063 , LAVA LOUCAS SUPREMA CLEAR 500M , FF , 1 , 1,19 , 0 , UN , $ , D , -1 )
                TX -> [STX]p[NUL][FS]?FF0000011900001000000000000000000000000100000000000000000000UN07896524721063[NUL]LAVA LOUCAS SUPREMA CLEAR 500M[NUL]$[23]
   08:13:13:481 RX <- ACK = 6 Falha: 0
   08:13:13:645 RX <- @[NUL][NUL][NUL]
-- Desativando a porta: COM3

2) Caixa sem problema:

-- 08:16:40:171 AbreCupom( , ,  )
                TX -> [STX][4][NUL][FS][NUL][FS][NUL]
   08:16:40:191 RX <- ACK = 6 Falha: 0
   08:16:40:206 VerificaFimImpressao: Pedindo o Status (19)
   08:16:41:193 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   08:16:41:834 RX <- [NUL][NUL][NUL][NUL]
-- Desativando a porta: COM1
-- Ativando a porta: COM1
-- 08:16:41:990 VendeItem( 00000000000934 , PAO QJO GRANEL , T01 , 0,194 , 19,98 , 0 , KG , $ , D , -1 )
                TX -> [STX]?[NUL][FS]>I0000000000093401KG0000194000199800000[NUL]0000[NUL]PAO QJO GRANEL[NUL][130][FF]
   08:16:42:069 RX <- ACK = 6 Falha: 0
   08:16:42:194 RX <- [NUL][NUL][NUL][NUL]
-- Desativando a porta: COM1

Para chamar a função acima, seria o comando:

ecf.ACBrECF.CarregaTotalizadoresNaoTributados;

Correto?

Verificando o log do caixa com problema, encontramos também o seguinte erro retornado pelo ECF:

-- Ativando a porta: COM3
-- 08:34:59:181 NumSerie
                TX -> [STX][ENQ][NUL][FS]#(g[NUL]
   08:34:59:181 RX <- ACK = 6 Falha: 0
   08:34:59:337 RX <- BE091410100011247497[NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:34:59:540 GrandeTotal
                TX -> [STX][ENQ][NUL][FS]#[ETX]B[NUL]
   08:34:59:540 RX <- ACK = 6 Falha: 0
   08:34:59:712 RX <- [NUL][NUL][NUL][NUL][STX]2Sc6[NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:36:26:924 CarregaTotalizadoresNaoTributados
                TX -> [STX]g[NUL][FS]?FF0000000500001000000000000000000000000100000000000000000000UN00000000003032[NUL]BALAS SORTIDA 3/ 0,10[NUL][WAK][20]
   08:36:27:031 RX <- ACK = 6 Falha: 0
   08:36:27:062 RX <- [NUL][SOH]@[NUL]
-- Desativando a porta: COM3
----------------- ERRO -----------------
Erro retornado pela Impressora: Bematech

Forma de pagamento aberta

----------------------------------------

-- Ativando a porta: COM3
-- 08:36:30:724 NumUltimoItem
                TX -> [STX][ENQ][NUL][FS]#[FF]K[NUL]
   08:36:30:724 RX <- ACK = 6 Falha: 0
   08:36:30:849 RX <- [NUL][STX][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:36:31:163 NumUltimoItem
                TX -> [STX][ENQ][NUL][FS]#[FF]K[NUL]
   08:36:31:163 RX <- ACK = 6 Falha: 0
   08:36:31:295 RX <- [NUL][STX][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:36:31:498 NumUltimoItem
                TX -> [STX][ENQ][NUL][FS]#[FF]K[NUL]
   08:36:31:498 RX <- ACK = 6 Falha: 0
   08:36:31:631 RX <- [NUL][STX][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3
-- Ativando a porta: COM3
-- 08:36:35:334 NumUltimoItem
                TX -> [STX][ENQ][NUL][FS]#[FF]K[NUL]
   08:36:35:334 RX <- ACK = 6 Falha: 0
   08:36:35:459 RX <- [NUL][STX][NUL][NUL][NUL][NUL]
-- Desativando a porta: COM3

E também antes dele temos uma nova chamada para a função CarregaTotalizadoresNaoTributados.

Desde já agradecemos a ajuda.

Link para o comentário
Compartilhar em outros sites

  • Consultores

O log em si não apresenta nenhum erro. Está faltando alguma parte importante?

No último log o programa parece que entrou em loop pedindo o NumUltimoItem. Pode ser algum problema de sua aplicação ao tratar algum erro nessa situação. Eu começaria por esta parte.

Não estou certo, mas minha memória acusa que o ACBrECF precisa chamar pelo menos uma vez durante seu funcionamento o método CarregaTotalizadoresNaoTributados para carregar os tributos não padrões (isto é, diferentes de II,FF e NN). Então isso pode ser o que está disparando esse carregamento. Verifique se ele está sendo chamado várias vezes durante o funcionamento do programa.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Você poderia, no inicio da aplicação, após chamar o "ACBrECF.Ativar", efetuar uma chamada a "CarregaTotalizadoresNaoTributados" e os demais métodos "Carrega..." (para forma de pagamentos, aliquotas etc)... Isso garantirá que o ACBrECF já tem os dados necessários em memória, e evitará que ele chame (por algum motivo) um método "Carrega..." no meio da venda...

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

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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