Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

consultoria_sticker.png

Conteúdo para desenvolvedores
 ao vivo de terça a quinta!
Saiba mais

dev.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

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


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

Recommended Posts

  • Usuários SAC

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 to post
Share on other 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 to post
Share on other sites
  • Usuários SAC

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 to post
Share on other sites

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.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

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 to post
Share on other sites
  • Usuários SAC

Entendi EMBarbosa. Esta é a parte que apresenta diferenças, nas outras não encontramos nada de suspeito.

Vou dar uma olhada no tratamento do NumUltimoItem e no CarregaTotalizadoresNaoTributados. Agradeço a ajuda.

Link to post
Share on other 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...

  • Like 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 to post
Share on other sites
  • Este tópico foi criado há 1997 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...