Você está na página 1de 48

Impressora Fiscal :: MP-40 FI II

Revisão 1.0 :: cód. 5714

Leia atentamente
este manual antes de
utilizar este produto.
:: Impressoras Fiscais

:: Mini Impressoras

:: Leitores

:: Microterminais
::Impressora Fiscal

MP-40 FI II
:: Pinpad

:: Customer Display

:: Gaveta

:: Blocos Impressores

:: Terminal de Consulta

:: Mecanismos Impressores

Bematech Ind. e Com. de Equip. Eletrônicos S.A.


Estrada de Santa Cândida, 263
Curitiba / PR / Brasil / 82630-490
tel.: 0800 41 6444 / fax.: 41 356 9579
sac@bematech.com.br
www.bematech.com.br
BemaTECH
Tecnologia em Automação
CERTIFICADO DE GARANTIA

AT E N Ç Ã O

Este certificado é uma vantagem adicional oferecida ao consumidor pela BEMATECH Indústria e Comércio
de Equipamentos Eletrônicos S/A. Para que as condições de garantia nele previstas tenham validade, é
indispensável a apresentação da Nota F iscal de venda ao Consumidor,
Fiscal Consumidor e ao cumprimento de todas as
recomendações expressas no Manual do Usuário que acompanha o produto, cuja leitura é recomendada.

1. Este CERTIFICADO DE GARANTIA garante o produto contra eventuais defeitos de fabricação


que por ventura venham a ocorrer no prazo de 1 (um) ano a partir da data de emissão da Nota Fiscal de
venda ao Consumidor. A Nota Fiscal de venda passa a fazer parte integrante deste Certificado.

2. Constatado o eventual defeito de fabricação, o Consumidor deverá entrar em contato com um dos
Postos de Serviços Autorizados de Assistência Técnica. O exame e reparo do produto, dentro
do prazo de garantia, só poderá ser efetuado por estes Postos. Todos os contatos com os
Postos de Serviços Autorizados, bem como o encaminhamento para reparos e a retirada do
produto destes Postos devem ser feitos exclusivamente pelo Consumidor, não estando nenhum
revendedor autorizado a executar estas ações em seu lugar. Todos os eventuais danos ou
demoras resultantes da não observância destas recomendações fogem à responsabilidade da
BEMATECH.

3. Dentro do prazo de garantia, a troca de partes, peças e componentes eventualmente defeituosos


será gratuita, assim como a mão-de-obra aplicada. Esta garantia não cobre, no entanto, atendimento
domiciliar. Caso o Consumidor deseje ser atendido em sua residência/empresa, deverá entrar em
contato com um dos Postos de Serviços Autorizados de Assistência Técnica e consultá-lo sobre a
taxa de visita. A cobrança ou não desta taxa fica a critério de cada Posto.

4. Caso não haja Posto de Serviços Autorizados de Assistência Técnica em sua localidade, o Consumidor
será responsável pelas despesas e pela segurança do transporte de ida e volta do produto a um
Posto situado em outra localidade.

5. Por tratar-se de garantia complementar à legal, fica convencionado que a mesma perderá totalmente
sua validade se ocorrer uma das hipóteses expressas a seguir:

a) Se o defeito for ocasionado pelo mau uso do produto pelo consumidor ou terceiros estranhos à
BEMATECH.
b) Se o produto for examinado, alterado, ajustado ou consertado por pessoa não autorizada pela
BEMATECH.
c) Se ocorrer ligação deste produto em instalações elétricas inadequadas, diferentes das
recomendadas no Manual do Usuário.
d) Se o dano tiver sido causado por acidentes (queda), fogo, raios, inundações, desabamentos,
produtos químicos, terremotos, explosões.
e) Se o número de série, que identifica o produto, estiver adulterado ou rasurado.
f) Se a Nota Fiscal de compra apresentar rasuras ou modificações.

6. Excluem-se da garantia os itens consumíveis, tais como: fita de impressão e bobina de papel (se
existirem).

7. Estão excluídos desta GARANTIA os eventuais defeitos decorrentes da negligência do Consumidor


no cumprimento das instruções contidas no Manual do Usuário e também os defeitos decorrentes do
uso do produto fora das aplicações regulares para as quais foi projetado. Estas aplicações estão
contidas no Manual do Usuário.

Número de Série Modelo Data da Compra Número da N.F.


/ /
Comandos das Operações Não Fiscais ........................................... 34
Comandos de Autenticação ............................................................. 36
Comandos de Gaveta de Dinheiro ................................................... 37
Comandos de Informações da Impressora ..................................... 38

Capítulo 8 – Comandos para a Impressão de Cheques


Capítulo 1 - Apresentação ............................................................................................................ 42

Modelos de Impressoras Fiscais ........................................ 1 Capítulo 9 – Comandos de impressão


A Impressora Fiscal ............................................................ 2
Modos de Impressão .......................................................................... 45
Capítulo 2 - Instalação Comandos de Impressão .................................................................. 45
Usando o Sumário de Comandos de Impressão ............................. 46
Retirando da Embalagem .................................................. 3 Tabelas de Comandos de Impressão ............................................... 46
Instalando a Impressora ..................................................... 3
Conectando à Rede Elétrica ............................................... 3
Capítulo 10 – Tabelas de Caracteres
Colocando a Fita ................................................................. 4
Colocando o Papel .............................................................. 5
Tabela ASCII ...................................................................................... 48
Tabela de Caracteres CODE PAGE 850 ............................................ 48
Capítulo 3 - Operação

Comunicação Com o Operador ......................................... 6 Capítulo 11 – Cuidados Especiais


Sensores ............................................................................. 6
Limpeza da Impressora .................................................................... 49
Local de Uso ...................................................................................... 49
Capítulo 4 - Interfaces de Comunicação

Interface Serial .................................................................... 7 Capítulo 12 – Especificações Técnicas


Ligação dos Cabos ............................................................. 8
Protocolo de Comunicação Serial ...................................... 8 Impressão .......................................................................................... 50
Retornos dos Comandos .................................................... 9
Capítulo 13 – Problemas
Capítulo 5 – Modo de Treinamento
............................................................................................. 11 A Impressora não liga ........................................................................ 52
A Impressão sai fraca ........................................................................ 52
Não há correta comunicação pela Porta Serial ................................ 53
Capítulo 6 – Comandos Fiscais

O Cupom Fiscal ................................................................... 12 Capítulo 14 – Acionamento de gaveta


A Fita Detalhe ...................................................................... 13
A Leitura “X” ......................................................................... 13 ............................................................................................................ 54
A Redução “Z” ..................................................................... 13
Leitura da Memória Fiscal ................................................... 15 Capítulo 15 – Impressora para Emissão de Passagem Rodoviária

Capítulo 7 – Comandos Comandos do Bilhete de Passagem ................................................. 56

Comandos ........................................................................... 17 Capítulo 16 – Roteiro Básico para Desenvolvimento do Aplicativo


Comandos de Inicialização ................................................ 18
Comandos do Cupom Fiscal .............................................. 21 ........................................................................................................... 58
Comandos de Relatórios Fiscais ........................................ 30 Incompatibilidades com Versões Anteriores .................................... 60
Comentários Gerais ........................................................................... 61

Capítulo 17 – Capacidade de Dígitos dos Contadores e Totalizadores


............................................................................................................ 62
Condições Gerais para a Execução dos Comandos ........................ 63

Capítulo 18 – O Driver DOS Residente

Definindo a Porta de Comunicação .................................................. 65


Como utilizar o DRIVER em Linguagens para DOS ........................ 66
SEÇÃO
Funções de exemplo em CLIPPER 5.x para Comunicação com a

1
Impressora ................................................................................... 67

Capítulo 19 – DLL de 16 e 32 Bits para Ambiente Windows

Funções Disponíveis .......................................................................... 70


Funções .............................................................................................. 70
Como Declarar a Utilização da DLL .................................................. 73
Padrão de Chamada .......................................................................... 74

OPERAÇÃO
Capítulo 20 – Utilizando a Comunicação Direta com a Impressora

Protocolo de Comunicação Serial ..................................................... 75


Importante .......................................................................................... 76

Apêndice I

Filosofia de Funcionamento .............................................................. 80


Emissão do Cupom Fiscal ................................................................. 81
Comentários Gerais ........................................................................... 82

Apêndice II

Tratamento de Retornos .................................................................... 83


Definição dos Bytes de Retorno ........................................................ 83
Lógica de Tratamento ........................................................................ 84
Tabela de Caracteres - ASCII, Decimal e Hexadecimal .................. 85

Esta seção contém informações


sobre o funcionamento da impressora,
suas características, configurações e
principais comandos.
CAPÍTULO 1 ................................................. A IMPRESSORA FISCAL

APRESENTAÇÃO Você encontrará as explicações de funcionamento de cada uma das partes da


impressora fiscal no decorrer deste manual.

Parabéns, você acaba de adquirir um equipamento de última geração, que pode


ser interligado a qualquer sistema, garantindo validade fiscal e modularidade à sua solução,
pois sua impressora atende ao convênio do ICMS 156/94, que é válido em todo o território
nacional.

A sua impressora possui os seguintes recursos. 1 Serrilha

2 Sensor de Fim de Papel


ACESSÓRIOS APLICAÇÃO 3 Led POWER
TIPO DE IMPRESSÃO Autenticação Gaveta
4 Led ERROR (tampa aberta)
Possibilidade e autenticação
de documentos e acionamen-
CUPOM FISCAL ! ! to de gaveta de dinheiro caixa 1 2
5 Led JOURNAL OUT

e balcão. 6 Led Validation/slip


BILHETE DE Possibilidade de impressão
PASSAGEM ! ! de passagem rodoviária. 7 Tecla PAPER FEED

Os dois modelos acima 8 Tecla RELEASE


IMPRESSÃO DE
possuem o modo de impres-
CHEQUES
são de cheques.

Sendo que a inicialização do equipamento será realizada em uma assistência


técnica autorizada e a utilização da mesma será definida em fábrica, para impressão de 9 Conector DB-9 (serial)
PAPER FEED RELEASE

cupom fiscal ou para emissão de passagem rodoviária. POWER ERROR JOURNAL


OUT
VALIDATION
SLIP

10 Botão de Leitura "X" e 3 4 5 6 7 8


Memória Fiscal
A impressão de cheques poderá ser utilizada nos dois modelos, tanto para a
impressora de cupom fiscal, como para a impressora da passagem rodoviária. 11 Led de falha/transmissão
(vermelho)
12 Led de on-line (verde) 14 15
9 10 11 12 13
13 Led power (verde)

14 Conector de gaveta 2

3 1

15 Entrada DC 15

01 02
CAPÍTULO 2 ............................................... COLOCANDO A FITA

INSTALAÇÃO
Para colocar a fita abra a
tampa frontal conforme a figura
RETIRANDO DA EMBALAGEM ao lado. Seguindo os passos 1
e 2.
Retire a impressora da embalagem e verifique se todos os componentes abaixo
relacionados estão presentes e em perfeitas condições:
1 levante
" impressora; 2 levante
" cabo de força; Guarde a
2
" cabo de comunicação serial; embalagem para
" fita de impressão; um eventual 1

" bobina de papel (duas vias);


transporte.
" manual do usuário;
" fonte de alimentação;

INSTALANDO A IMPRESSORA
1 dissipador de calor
Coloque o cartucho da fita de
Conectando à Rede Elétrica 2 fita tintada impressão, conforme a figura mostrada
3
3 guia da fita 1 anteriormente; passe a fita pela frente
Certifique-se de que a impressora esteja desligada e, em caso afirmativo, ligue
das agulhas de impressão e entre a guia
o plug de força à rede. Observe que a tomada para o plug de força deve ser de três
2 da fita.
pinos, sendo que o pino central (ver figura abaixo) deve ser conectado à terra. A fonte
externa abrange 95-240volts.

Ligue o cabo da fonte de alimentação na impressora, observe os pinos para


encaixar corretamente o mesmo conforme o desenho acima.

Ligue a impressora através do botão de liga/desliga localizado na frente da


impressora.

Verifique se o led POWER (localizado na tampa


frontal) está aceso (impressora ligada). Se não houver
Verifique se o tracionador encaixou,
papel, o led JOURNAL OUT acenderá.
girando o botão da fita tintada em sentido
1 horário (2 ou 3 voltas).

1 botão (2 a 3 voltas)

03 04
COLOCANDO O PAPEL
CAPÍTULO 3 ...............................................
OPERAÇÃO
Para colocar a bobina de papel (duas vias), COMUNICAÇÃO COM O OPERADOR
abra a tampa conforme o desenho ao lado, coloque
a bobina no berço, dobre a ponta do papel e depois
Painel Dianteiro.
insira na entrada de papel (estas informações
também estão na tampa da impressora). Led POWER - Indica se a impressora esta ligada.
correto
Led Error - Se estiver aceso a impressora não está pronta
para imprimir (tampa pode estar aberta) se
Não Não Correto estiver piscando a cabeça de impressão pode
estar muito quente.
Led JOURNAL OUT - Se aceso, indica Fim de Papel na impressora
(bobina).
Validation/slip - Este indicador estará piscando quando a
impressora receber comandos de autenticação
(ou cheque) e aceso se o documento estiver
inserido na máquina.
Tecla PAPER FEED - Use esta tecla para avançar o papel .
Release - Esta tecla solta os roletes de papel para
Depois de inserir o papel na calha
impressão de cheques.
pressione a alavanca (carrega papel) para
que o papel seja tracionado até o ponto
1 serrilha Painel Traseiro.
de impressão, coloque o início do rolo de
2 carrega papel papel no rebobinador, girando três vezes, botão de leitura ”X”
feche a impressora e ela estará pronta
led de falha Indica se a impressora está em falha.
para imprimir. Certifique-se que a dobra
(vermelho)
está bem definida, para que o papel não
1
enrosque na guia da fita de impressão. led de on-line Indica que a impressora está pronta para receber
(verde) comandos.
2
led power - (verde) Indica se a placa fiscal recebendo a alimentação
do sistema.

SENSORES

3 voltas
A MP40 possui dois sensores que permitem o monitoramento das condições de
papel na máquina.
O Sensor de Pouco Papel, localizado sob a bobina, detecta quando a bobina
está em seu final.
Esta é a forma de colocar o documento na
impressora, para a impressão de cheques, O Sensor de Fim de Papel, localizado sobre a calha de entrada do papel, indica
sendo o pré-impresso para cima e o campo se existe papel inserido ou não no mecanismo.
numérico primeiro. O estado destes sensores pode ser obtido através dos bits 6 e 7 da palavra de
status ST1 (ver Capítulo 4).

05 06
CAPÍTULO 4 ............................................... LIGAÇÃO DOS CABOS

INTERFACE DE COMUNICAÇÃO A seguir é apresentada a forma como devem ser interligados os pinos dos
conectores caso seja utilizado um computador compatível com o IBM-PC.

INTERFACE SERIAL Nota: A maioria dos problemas de comunicação pela interface serial é causada
pela ligação errada dos pinos dos conectores.

Os níveis de tensão da PC Impressora PC Impressora


A impressora fiscal possui interface serial
no padrão RS 232 C. Operando com protocolo interface de comunicação são: 2 - RxD 2 - RxD 3 - RxD 2 - RxD
RTS/CTS, 8 bits de dados, sem paridade, um 3 - TxD 3 - TxD 2 - TxD 3 - TxD
Nível Nível de 7 - RTS 7 - RTS 4 - RTS 7 - RTS
start bit, um stop bit.
Lógico Tensão 8 - CTS 8 - CTS 5 - CTS 8 - CTS
6 - DTR 20 - DTR
A velocidade de comunicação é de RS 232 C 0 + 12 V
4 - DSR 6 - DSR
9600bps. 1 - 12 V 1 - DCD 8 - DCD
5 - GND 5 - GND 7 - GND 5 - GND
DB - 9 DB - 9 DB - 25 DB - 9
O conector utilizado pode ser do tipo DB-9, com a seguinte pinagem:
PROTOCOLO DE COMUNICAÇÃO SERIAL
5 4 3 2 1

O Protocolo de Comunicação serial da sua impressora fiscal é estruturado em


blocos, e possui a seguinte forma:

a) O aplicativo deverá transmitir à impressora fiscal a seguinte seqüência de


9 8 7 6 bytes:

Pino Sinal Direção Descrição Obs: Em negrito está o protocolo e abaixo está um exemplo de emissão de
Leitura “X”.
2 Rx IN Através deste pino os dados são recebidos pela
impressora. STX NBL NBH CMD CSL CSH
3 Tx OUT Através deste pino são transmitidos os dados da HEX 02 04 00 1B 06 21 00
impressora ao dispositivo a ela conectado. ASCII . . . . . % .
DEC 2 4 0 27 6 33 0
7 RTS OUT Baixo, a impressora pode receber dados.
Alto, a impressora não pode receber dados.
Onde:
8 CTS IN Baixo, a impressora envia dados (se houver).
Alto, a impressora para de enviar dados, se estiver STX - byte indicativo de início de transmissão (02h).
enviando.
NBL - byte menos significativo, da soma do número de bytes que serão
5 GND Terra lógico.
enviados (soma do Byte CMD, CSL e CSH).

NBH - byte mais significativo, da soma do número de bytes que serão


Observação: Os demais pinos não são conectados.
enviados (soma do Byte CMD, CSL e CSH).

CMD - Seqüência de bytes que compõem o comando e seus parâmetros.

CSL - byte menos significativo, da soma dos valores dos bytes que
compõem o comando e seus parâmetros(CMD).

07 08
CSH - byte mais significativo, da soma dos valores dos bytes que compõem Leitura da Memória Fiscal, Retorno de Alíquotas, Retorno dos Totalizadores
o comando e seus parâmetros(CMD). Parciais, Retorno do Subtotal, Retorno do Número do Cupom e Retorno de Variáveis,
estes comandos estão exemplificados no CAPÍTULO 5.
Os exemplos de utilização deste Protocolo podem ser observados no CAPÍTULO
21. c) Se a seqüência enviada estiver incorreta, ou ocorra um timeout na recepção
dos dados pela impressora, a mesma responderá ao aplicativo da seguinte
b) Se a seqüência enviada estiver correta, a impressora responderá ao aplicativo maneira:
da seguinte maneira:
NAK
ACK ST1 ST2
Onde:
Onde:
NAK - byte indicativo de recebimento incorreto (15h - 21d)
ACK - byte indicativo de recebimento correto (06H).
Observações:
ST1 e ST2 - bytes de estado da impressora fiscal.
Um erro de timeout ocorre quando o intervalo de tempo, entre o envio de um byte
Em ST1: e o seguinte dentro da seqüência do protocolo, for maior que 2 segundos
bit 7 128 fim de papel.
Sendo que o erro A impressora retorna ACK ou NAK no momento em que ela recebe o ultimo byte
bit 6 64 pouco papel.
retornado pode ser a de check-sum; os bytes ST1 e ST2 são retornados após o tratamento do comando,
bit 5 32 erro no relógio.
soma de dois ou mais bits, portanto o intervalo de tempo entre o envio do ACK e dos bytes ST1 e ST2 pode variar de
bit 4 16 impressora em erro.
se o valor de retorno for 129 alguns milisegundos (tipicamente) até alguns segundos (principalmente para os
bit 3 8 primeiro dado de CMD não foi ESC (1BH).
(128 + 1) ocorreram dois comandos de leitura “X” e redução “Z”.
bit 2 4 comando inexistente.
erros do bit 7 e do bit 0.
bit 1 2 cupom aberto.
bit 0 1 número de parâmetros de CMD inválido.

Em ST2:
bit 7 128 tipo de parâmetro de CMD inválido.
bit 6 64 memória Fiscal lotada.
bit 5 32 erro na Memória RAM CMOS Não Volátil.
bit 4 16 alíquota não programada.
bit 3 8 capacidade de alíquotas programáveis lotada.
bit 2 4 cancelamento não permitido.
bit 1 2 CGC/IE do proprietário não programados.
bit 0 1 comando não executado.

Existe a hipótese de retornar dois ou mais bits, neste caso o


resultado será a soma dos mesmos, exemplo: o Driver retornou
17, sabemos que 16 + 1 é igual a 17, ou seja, bit 4 + bit 0.

Observações:

Os bytes ST1 e ST2 apenas serão enviados após a completa execução do


comando, porém antes da impressão.

Entretanto alguns comandos retornam dados da impressora, estes comandos


são:

09 10
CAPÍTULO 5 ............................................... CAPÍTULO 6 ...............................................
MODO TREINAMENTO COMANDOS FISCAIS
A impressora fiscal sai de fábrica no modo treinamento, neste modo é possível Antes de mostrarmos a operação de sua impressora fiscal no modo fiscal,
utilizá-la para fins de teste e desenvolvimento de aplicações, possuindo toda a vamos detalhar todos os documentos fiscais emitidos pelo equipamento para que a
funcionalidade da impressora em modo normal de operação, porém com as seguintes apresentação dos comandos seja melhor compreendida. Os demais cupons / relatórios
características: serão descritos nos comandos.

O CUPOM FISCAL
1) Imprime a expressão “Trei” no lugar do logotipo fiscal “BR”.

Cupom fiscal é definido como sendo o documento emitido por um equipamento


2) Imprime a expressão “MODO TREINAMENTO” no início dos documentos eletro-mecânico em substituição à nota fiscal. Tem a mesma validade da nota fiscal,
emitidos. mas possui algumas características diferentes. Abaixo detalhamos estas características.

Lembramos que as explicações a seguir constam no convênio 156/94, que é o


3) Substitui os espaços em branco das linhas impressas com o símbolo de “?”. documento oficial que regulamenta impressoras fiscais, como a impressora fiscal:

1 - Inscrição “CUPOM FISCAL”,


4) Possibilita a emissão de mais de uma Redução “Z” por dia.
2 - Razão social, endereço e números de CGC e Inscr. Estadual da empresa
emitente do cupom,
5) Imprime a expressão “NÃO SUJEITO AO ICMS” nos documentos emitidos, no
início, no fim e a cada 10 linhas. 3 - Dia, mês e ano, hora de início e término da emissão do cupom,

4 - CGC/CPF do Consumidor,
6) Grava os dados de intervenção técnica e Redução “Z” na EPROM FISCAL.
5 - Contador Geral de Comprovante Não Fiscal (GNF).

A impressora sai do modo treinamento quando é efetuada a gravação na 6 - Número seqüencial de cada cupom (COO),
memória fiscal do CGC/IE primeiro proprietário, encerrando-se assim definitivamente o
Modo de Treinamento. 7 - Número seqüencial do equipamento, atribuído pela empresa (número do
caixa(ECF) e loja(LJ)),

8 - Indicação da tributação de cada item vendido,

9 - Símbolos identificadores dos totalizadores (os mesmos usados nas máquinas


registradoras),
Tnn – Tributado (sujeito ao ICMS)
ISnn – Tributado (sujeito ao ISS)
F - Substituição Tributária
I - Isenção
N - Não incidência,

10 - Discriminação, código, quantidade e valor unitário do produto ou serviço,

11 - Valor total da venda,

11 12
12 - Mensagem promocional, 5 - Logotipo Fiscal (BR estilizado)

13 - Denominação do ECF (Ex: BEMATECH MP-20 FI II...), 6 - Dia, Mês e Ano,

14 - Versão do Software Básico 7 - COO,

15- Número do Série do ECF, 8 - GNF,

16 - Grande Total codificado e 9 - Número de Série do ECF,

17 - Logotipo Fiscal (BR estilizado). 10 - Denominação do ECF,

Obs: Os itens 2, 7, 8 e 12 são programáveis. Os demais são automaticamente 11 - Versão do Software Básico e
impressos quando os comandos de ABERTURA DE CUPOM e VENDA DE
ITEM forem enviados à impressora fiscal. 12 - GT codificado.

Obs. : As informações acima são impressas logo após o envio do comando de


A FITA DETALHE emissão da Leitura “X”. Sendo assim, nenhuma destas informações pode
ser programável.
A Fita detalhe é definida como sendo a bobina de papel rebobinada pela sua Para emitir a Leitura “X”, ligue a impressora fiscal com papel inserido e
impressora fiscal. Esta bobina contém uma cópia de todas as operações efetuadas, com a tecla paper feed ou on line pressionada, ou através do seu aplicativo.
durante o uso de sua impressora fiscal. A legislação (convênio ICMS 156/96 - capítulo IV Este cupom tem o mesmo formato da redução “Z”, porém não grava dados
- seção V) prevê alguns cuidados com este documento: na memória fiscal.

Importante:
A REDUÇÃO “Z”
1) Deverá ser efetuada uma leitura ”X” no início e outra no fim de cada Fita
Detalhe. A REDUÇÃO “Z” é um relatório emitido por sua impressora fiscal que, quando
executado, envia o conteúdo do Grande Total para a Memória Fiscal e zera todos os
2) As bobinas da Fita Detalhe devem ser mantidas em ordem cronológica pelo totalizadores parciais.
prazo de 10 anos, contados à partir do último registro.
Este relatório deve ser mantido à disposição dos fiscais, junto ao estabelecimento
por 10 anos. Após a redução “Z” a impressora fiscal não permite mais operações
A LEITURA “X” fiscais, como abertura de cupons fiscais, até que seja alterada a data de seu relógio
interno (que é automático), ou seja até o dia seguinte. Contém as seguintes informações:
A LEITURA “X” é um relatório emitido por sua impressora fiscal, que deve ser
executado no início de cada dia de trabalho. A função principal deste relatório é a de dar 1 - Inscrição REDUÇÃO “Z”
uma “fotografia” do movimento diário da impressora no momento em que o mesmo foi
emitido.Este relatório deve ser mantido junto à impressora durante o decorrer do dia, 2 - Razão social, endereço e números de CGC e Inscr. Estadual da empresa
para exibição aos fiscais. Contém as seguintes informações: emitente do cupom,

1 - Inscrição LEITURA X; 3 - Dia, mês, ano e hora da emissão do relatório,

2 - Razão social, endereço e números de CGC e Inscr. Estadual da empresa 4 - Número indicado no Contador de Ordem de Operação (COO) e do Contador
emitente do cupom; Geral de Comprovante Não Fiscal (GNF) (números gravados na memória do
equipamento),
3 - Valores acumulados em cada totalizador parcial de operação separadamente;
5 - Número seqüencial do equipamento, atribuído pela empresa (número do
4 - Versão do programa fiscal utilizado e; caixa (ECF) e loja (LJ)),

13 14
6 - Número seqüencial do relatório ( número indicado no Contador de 1 - Inscrição “Leitura da Memória Fiscal”,
Reduções),
2 - Número de série do equipamento (FAB),
7 - Do Totalizador Geral:
a - valor acumulado no final do dia e 3 - Número da Inscrição Estadual e CGC do usuário atual e dos anteriores, se
b - diferença entre os valores do acumulado no final do dia e no final do dia existirem, com a respectiva data e hora de gravação, em ordem, no início de
anterior (venda bruta). cada cupom,

8 - Valor acumulado no totalizador parcial de cancelamento; 4 - Logotipo Fiscal (BR estilizado ou TREI, se estiver em modo Treinamento),

9 - Valor acumulado no totalizador parcial de desconto; 5 - Valor total da venda bruta diária, data e hora em que o total foi gravado,

10 - Diferença entre o item 7b e a soma dos itens 8 e 9 [resultado = 7b - (8+9)], 6 - Soma das vendas brutas diárias do período relativo à leitura solicitada,
isto é, venda líquida;
7 - Número do Contador de Reduções,
11 - Valores acumulados nos totalizadores parciais de operações;
a - com substituição tributária; 8 - Contador de Reinicio de Operação com a data da intervenção,
b - isentas;
c - não-tributadas e; 9 - Contador de Ordem de Operação,
d - tributadas.
10 - Número seqüencial do equipamento, atribuído pela empresa (número do
12 - Valores em que incide o ICMS, o montante e as alíquotas incidentes em caixa e loja),
cada um, do correspondente imposto debitado;
11 - Dia, mês, ano e hora da emissão da leitura,
13 - Totalizadores Parciais e contadores de operações não-sujeitas ao ICMS;
12 - Versão do programa fiscal e
14 - Versão do programa fiscal utilizado e;
13 - Valor acumulado nos Totalizadores e Alíquotas.
15 - Logotipo Fiscal (BR estilizado ou TREI, se estiver em modo Treinamento).
Observação:
Observação:
As informações acima são impressas, logo após o envio do comando de emissão
As informações acima, são impressas logo após o envio do comando de emissão da “Leitura da Memória Fiscal”. Sendo assim, nenhuma destas informações pode ser
da Redução “Z”. Sendo assim, nenhuma destas informações pode ser programável. programável.

A Redução “Z” deve ser executada diariamente, caso haja movimento no dia ( por A Leitura da memória fiscal é feita através do seu aplicativo, ou pode ser obtida
movimento entende-se emissão de cupom fiscal ou recebimentos não sujeitos ao logo após a Leitura “X”, automaticamente (pressionando se o teclado ao ligar a
ICMS), a impressora possui uma tolerância para a emissão deste relatório até as 6:00 impressora com papel).
horas. do dia seguinte à data do movimento. Caso a impressora esteja ligada após às
6:00 horas. e ainda não tenha sido efetuada a Redução “Z” relativa ao movimento do dia
anterior a mesma irá efetuar automaticamente o fechamento do cupom em andamento
seguido de seu cancelamento (caso esteja aberto ) e emitirá uma Redução “Z”
automaticamente.

LEITURA DA MEMÓRIA FISCAL

A LEITURA DA MEMÓRIA FISCAL é um relatório que deve ser emitido ao final de


cada período de apuração fiscal. Ele contém as seguintes informações:

15 16
CAPÍTULO 7 ............................................... COMANDOS DE INICIALIZAÇÃO

COMANDOS
""ALTERAÇÃO DO SÍMBOLO DA MOEDA CORRENTE
!""
A seguir apresentamos todos os comandos fiscais de sua impressora fiscal.
Com eles você poderá operá-la. Comando ESC 01 Parâmetro (obrigatório)
Símbolo da Moeda (ASCII) com tamanho de 2 bytes.
Os comandos são classificados segundo os seguintes grupos:
Descrição
Caso seja passado “ R” a impressora apresentará
!""
""COMANDOS
"" DE INICIALIZAÇÃO
nos cupons o símbolo “ R$”. O default é “ R”.
!""
""COMANDOS
"" DO CUPOM FISCAL Tamanho de Retorno
3 bytes (Status)
""""COMANDOS DOS RELATÓRIOS FISCAIS
!""
""""COMANDOS DAS OPERAÇÕES NÃO FISCAIS
!"" !""""ADIÇÃO DE ALÍQUOTA TRIBUTÁRIA

!""
""COMANDOS
"" DE INFORMAÇÕES DA IMPRESSORA Comando ESC 07 Parâmetro 1 (obrigatório)
Percentual da alíquota da situação tributária. ASCII
""COMANDOS DE AUTENTICAÇÃO
!""
"" numérico no formato XX,XX% com tamanho de 4
bytes.
""""COMANDOS DE GAVETA DE DINHEIRO
!""
Parâmetro 2 (opcional)
""COMANDOS DE IMPRESSÃO
!""
"" DE CHEQUE Com tamanho de 1 byte, sinaliza se a nova situação
tributária é relativa ao ISS ou ao ICMS. “0” para ICMS
!""
""COMANDOS
"" DE IMPRESSÃO ou “1” para ISS. O default é ICMS.

Tamanho de Retorno
3 bytes (Status)
IMPORTANTE
Observação: Uma vez programada só poderá ser retirada com uma Intervenção
O Tamanho de Retorno que está sendo descrito junto aos comandos, Técnica.
pode variar de acordo com o forma de programação.
Através deste comando, será programada a alíquota Tnn, se o comando for
executado novamente será programada a próxima alíquota Tnn, em ordem crescente,
#" Se for utilizado o DRIVER DOS (Capítulo 18), os Retornos virão na automaticamente. Exemplo: T01, T02, T03, T04 ... T16.
seqüência do ACK, ST1 e ST2.
""PROGRAMAÇÃO DO HORÁRIO DE VERÃO
!""
#" Se for utilizado a DLL (Capítulo 19), os Retornos virão em arquivos
como: STATUS.RET (retorno em forma de texto), STATUS.BIN (retorno Comando ESC 18 Descrição
em forma binária) e MP20FI.RET (retorno de informações da Ativa/Desativa o horário de verão na impressora.
impressora).
Tamanho de Retorno
#" Se for utilizado Comunicação Direta (Capítulo 20), os Retornos virão 3 bytes (Status)
na ordem: ACK, [retorno], ST1 e ST2
Observação: Se o relógio interno já estiver no horário de verão, o equipamento

17 18
irá atrasar o relógio em 1 (uma) hora, caso contrário irá adiantá-lo em 1 (uma) ""PROGRAMAÇÃO DE ESPAÇO ENTRE LINHAS
!""
hora.
Comando ESC 60 Parâmetro (obrigatório)
A impressora só executará o comando, caso não tenha havido nenhuma
Espaçamento em dots entre as linhas, com o
movimentação no dia, ou logo após a Redução “Z”.
tamanho de 1 byte.
Para entrada do Horário de Verão, basta não ter movimentação no dia, ou após
Tamanho de Retorno
a Redução “Z”.
3 bytes (Status).
Para saida do Horário de Verão, execute o comando 1 (uma) hora após a Redução
Observação: Este comando só será executado caso não tenha havido movimento
“Z”.
no dia, ou logo após a Redução “Z”.
Aparecerá a letra “v” minúscula entre a DATA e a HORA no final do Cupom Fiscal,
caso a impressora estiver em horário de verão. !""PROGRAMAÇÃO DE LINHAS ENTRE CUPONS

""NOMEIA TOTALIZADORES PARCIAIS NÃO SUJEITOS AO ICMS


!"" Comando ESC 61 Parâmetro (obrigatório)
Espaçamento em linhas entre os cupons, com o
tamanho de 1 byte.
Comando ESC 40 Parâmetro 1 (obrigatório)
Índice do totalizador parcial a ser nomeado, com o
Tamanho de Retorno
tamanho de 2 bytes. “#1” até “#9” ou “01” até “50”. Os
3 bytes (Status)
totalizadores #1 até #9 são os mesmos que os de
“01” até “09”.
Observação: Esta programação deve ser configurada no início das operações
Parâmetro 2 (obrigatório) com a impressora, sendo que possibilita a impressão de um Relatório Gerencial ou
Descrição do Totalizador no formato ASCII, com o Comprovante Não Fiscal, logo após a impressão do Cupom Fiscal sem espaços em
tamanho de 19 bytes. branco.

Tamanho de Retorno
3 bytes (Status)

Observação: Este comando só será executado caso não tenha havido movimento
no dia, ou logo após a Redução “Z”. É possível adicionar novos totalizadores, porém só
é possível alterá-las mediante Intervenção Técnica.

!""""PROGRAMA TRUNCAMENTO/ARREDONDAMENTO

Comando ESC 39 Parâmetro (obrigatório)


Com o tamanho de 1 byte, se for impar a impressora
arredonda (Ex. 1), do contrário trunca (Ex: 0).

Tamanho de Retorno
3 bytes (Status)

Observação: Este comando só será executado caso não tenha havido movimento
no dia, ou logo após a Redução “Z”. Uma vez programado, ficará residente na memória
da impressora. O padrão da impressora é Truncamento.

19 20
!""HABILITA CUPOM ADICIONAL Os Comandos de Programação de Unidade de Medida e de Descrição de item
com até 200 caracteres atuam como modificadores, se executados imediatamente
antes dos comandos de Venda de Item (09), Venda de Item com 3 casas no valor
Comando ESC 68 Parâmetro (obrigatório)
Se ímpar habilita o cupom adicional, do contrário unitário (56). É sugerido a utilização de Venda de Item com Entrada de Departamento
desabilita. Tamanho de 1 byte (“1” ou “0”). (63), pois possui como parâmetro estes modificadores.

Tamanho de Retorno !""ABERTURA DE CUPOM FISCAL


3 bytes (Status)
Comando ESC 00 Parâmetro (opcional)
Observação: O cupom adicional é emitido logo após o término de um cupom Com o tamanho de 29 bytes (CGC/CPF do
fiscal ou bilhete de passagem. consumidor). Caracteres ASCII. Se não utilizado
não será impresso no cupom.
Ele só será programado caso a impressora estiver sobre Intervenção Técnica.
Tamanho de Retorno
Este Cupom Adicional conterá a data, a hora o COO do Cupom Fiscal emitido o 3 bytes (Status)
número do ECF e o Valor do Cupom Fiscal emitido.
Observações: Não é possível fechar ou cancelar o cupom caso não tenha sido
!""RESET EM CASO DE ERRO registrado pelo menos um item. Se todos os itens registrados no cupom foram
cancelados (Cupom Totalizado em zero) o Cupom é cancelado automaticamente ao
iniciar o seu fechamento.
Comando ESC 70 Tamanho de Retorno
3 bytes (Status) Abaixo, o exemplo de um Cupom Fiscal típico.

Observação: Caso a impressora esteja em erro inicializa a mesma. Desta forma


alguns erros podem ser recuperados em modo Remoto.

COMANDOS DO CUPOM FISCAL

Os comandos do cupom fiscal obedecem a seguinte hierarquia:

$ Abertura de cupom fiscal [00]


$ Venda de Item [09]
$ Venda de item com 3 casas no valor unitário. [56]
$ Venda de item genérico com departamento [63]
$ Cancelamento de Item anterior [13]
$ Cancelamento de Item Genérico [31]
$ Cancelamento de Cupom [14]
$ Acréscimo IOF [62 50]
$ Inicia Fechamento de Cupom com Forma de Pgto. [32]
$ Cancelamento de Cupom [14]
$ Efetua forma de pagamento [72]
$ Termina Fechamento [34]
$ Cancelamento de Cupom [14]

21 22
!""VENDA DE ITEM

Comando ESC 09 Parâmetro 1 (obrigatório) !""VENDA DE ITEM COM 3 CASAS NO VALOR UNITÁRIO
Código do Produto (ASCII alfanumérico), com tamanho
de 13 bytes. Comando ESC 56 Parâmetro 1 (obrigatório)
Código do Produto (ASCII alfanumérico), com
Parâmetro 2 (obrigatório) tamanho de 13 bytes.
Descrição do Produto (ASCII), com o tamanho de 29
bytes. Parâmetro 2 (obrigatório)
Descrição do Produto (ASCII), com o tamanho
Parâmetro 3 (obrigatório) de 29 bytes.
Indice da situação tributária (ASCII) de “01” até “16”
para tributados ; “II”, “FF”, “NN” para isenção, substituição Parâmetro 3 (obrigatório)
tribu tária e não incidência respectivamente. Índice da situação tributária (ASCII) de “01” até
Tamanho de 2 bytes. “16” para tributados ; “II”, “FF”, “NN” para isenção,
substituição tributária e não incidência
Parâmetro 4 (obrigatório) respectivamente. Tamanho de 2 bytes.
Quantidade Inteira (ASCII numérico no formato XXXX)
com o tamanho de 4 bytes, ou Quantidade Fracionária Parâmetro - 4 (obrigatório)
(ASCII numérico no formato XXXX,XXX) com o tamanho Quantidade Inteira (ASCII numérico no formato
de 7 bytes. XXXX) com o tamanho de 4 bytes, ou Quantidade
Fracionária (ASCII numérico no formato
Parâmetro 5 (obrigatório) XXXX,XXX) com o tamanho de 7 bytes.
Valor Unitário (ASCII numérico no formato XXXXXX,XX)
com o tamanho de 8 bytes. Parâmetro 5 (obrigatório)
Valor Unitário (ASCII numérico no formato
Parâmetro 6 (obrigatório) XXXXX,XXX) com o tamanho de 8 bytes.
Desconto Percentual (ASCII numérico no formato
XX,XX%) com o tamanho de 4 bytes, ou Desconto por Parâmetro 6 (obrigatório)
Valor (ASCII numérico no formato XXXXXX,XX) com o Desconto Percentual (ASCII numérico no
tamanho de 8 bytes. formato XX,XX%) com o tamanho de 4 bytes, ou
Desconto por Valor (ASCII numérico no formato
Tamanho de Retorno XXXXXX,XX) com o tamanho de 8 bytes.
3 bytes (Status)
Tamanho de Retorno
3 bytes (Status).

Observação: Este comando também é afetado pelo flag de truncamento.

!""CANCELAMENTO DO ITEM ANTERIOR Descrição


Cancela o último item vendido.
Comando ESC 13
Tamanho de Retorno
3 bytes (Status)

23 24
!""VENDA DE ITEM COM ENTRADA DE DEPARTAMENTO, DESCONTO E UNIDADE !""CANCELAMENTO DE ITEM GENÉRICO
DE MEDIDA
Comando ESC 31 Parâmetro 1 (obrigatório)
Parâmetro 1 (obrigatório) Número do item a ser cancelado (ASCII numérico),
Comando ESC 63
Índice da situação tributária. ASCII de “01” até “16” para com o tamanho de 4 bytes.
tributados; “II”, “FF”, “NN” para isenção, substituição
tributária e não incidência respectivamente. Com Tamanho de Retorno
o tamanho de 2 bytes. 3 bytes (Status)

Parâmetro 2 (obrigatório) Observação: O item só é cancelado nas seguintes condições:


Valor Unitário (ASCII numérico no formato XXXXXX,XXX),
com o tamanho de 9 bytes. a) Não tenha sido cancelado previamente
b) Esteja dentro do limite dos 100 últimos itens.
Parâmetro 3 (obrigatório)
Quantidade Fracionária (ASCII numérico no formato
XXXX,XXX), com o tamanho de 7 bytes. !""INICIA FECHAMENTO DE CUPOM
Parâmetro 4 (obrigatório) 1) Com Acréscimo ou Desconto Percentual.
Desconto por Valor (ASCII numérico no formato
XXXXXXXX,XX), com o tamanho de 10 bytes. Comando ESC 32 Parâmetro 1 (obrigatório)
“A” para Acréscimo ou “D” para Desconto, no
Parâmetro 5 (obrigatório) tamanho de 1 byte.
Acréscimo por Valor (ASCII numérico no formato
XXXXXXXX,XX), com o tamanho de 10 bytes. Parâmetro 2 (obrigatório)
Percentual (ASCII no formato XX,XX%), com o
Parâmetro 6 (obrigatório) tamanho de 4 bytes.
Departamento (ASCII numérico de “01até “20”), com o
tamanho de 2 bytes. O Departamento deve estar Tamanho de Retorno
programado. 3 bytes (Status)
Parâmetro 7 (obrigatório)
Não Usado (Preenchimento obrigatório com “0”), com o 2) Com Acréscimo ou Desconto por Valor.
tamanho de 20 bytes.
Comando ESC 32 Parâmetro 1 (obrigatório)
Parâmetro 8 (obrigatório) “a” para Acréscimo ou “d” para Desconto, no
Unidade de Medida (ASCII), com o tamanho de 2 bytes. tamanho de 1 byte.
Caso seja enviado o 0 (nulo) como primeiro parâmetro
não será impressa a unidade de medida e como Parâmetro 2 (obrigatório)
segundo parâmetro unidade de medida com somente Valor (ASCII no formato (XXX.XXX.XXX.XXX,XX), com o
um caracter. tamanho de 14 bytes.
Parâmetro 9 (obrigatório)
Código do produto (ASCII com terminador de string 0 Tamanho de Retorno
(nulo)), com até 49 bytes. 3 bytes (Status)

Parâmetro 10 (obrigatório) Observação: No caso de Acréscimo ou Desconto por Valor , o valor descontado
Descrição do produto (ASCII com terminador de string ou acrescido deve ser menor que o subtotal do cupom.
0 (nulo)), com até 201 bytes.

Tamanho de Retorno
3 bytes (Status)

25 26
!""PROGRAMA/VERIFICA FORMA DE PAGAMENTO !""PROGRAMA A DESCRIÇÃO DAS FORMAS DE PAGAMENTO
Comando ESC 71 Parâmetro 1 (obrigatório) Parâmetro 1 (obrigatório)
Comando ESC 73
Descrição da forma de pagamento (ASCII), com o Descrição da forma de pagamento para o totalizador
tamanho de 16 bytes. “02”, com o tamanho de 16 bytes.

Retorno Parâmetro 2 (opcional)


A impressora retorna ACK ST1ST2 FF FF caso não haja Descrição da forma de pagamento para o totalizador
espaço para inserir a nova forma de pagamento, e se “03”, com o tamanho de 16 bytes.
ela não estiver programada. Caso o comando seja exe-
cutado com sucesso irá retornar ACK ST1 ST2 N1 N2, Parâmetro ... ... ... ... ...
onde N1 N2 contém o índice onde a forma de pagamen-
to foi inserida/localizada. Exemplo: Caso a posição seja Parâmetro 49 (opcional)
a 5 a impressora retornará “05”. Descrição da forma de pagamento para o totalizador
“50”, com o tamanho de 16 bytes.
Tamanho de Retorno
3 bytes (Status) + 2 bytes com o índice da Forma de Tamanho de Retorno
Pagamento. 3 bytes (Status).

Observações: São permitidas até 50 formas de pagamento. A Forma de Paga- Observação: A Forma de Pagamento “01” é default do equipamento e é “Dinheiro”.
mento “01” é default do equipamento e é “Dinheiro“. Este comando só será executado Este comando só será executado caso não tenha havido movimento no dia. Após a sua
após o comando 32 (Inicia Fechamento do Cupom). Após a sua totalização na Redução totalização na Redução “Z” esta Forma será apagada, tendo que ser programada
“Z” esta Forma será apagada, tendo que ser programada novamente. novamente.

!""EFETUA FORMA DE PAGAMENTO !""TERMINA O FECHAMENTO DO CUPOM COM FORMAS DE PAGAMENTO


Comando ESC 72 Parâmetro 1 (obrigatório)
Índice da Forma de Pagamento (ASCII numérico de Comando ESC 34 Parâmetro (obrigatório)
“01” até “50” ), com o tamanho de 2 bytes. Mensagem Promocional (ASCII), com até 384
caracteres.
Parâmetro 2 (obrigatório)
Valor da forma de pagamento (ASCII numérico formato Tamanho de Retorno
XXXXXXXXXXXX,XX ), com o tamanho de 14 bytes. 3 bytes (Status).

Parâmetro 3 (opcional) Observação: A impressão será limitada em até 8 linhas. Se não houver sido
Descrição opcional para a forma de pagamento vendido nenhum item não será permitido o fechamento do cupom.
(ASCII), até 80 caracteres.
!""CANCELAMENTO DE CUPOM
Tamanho de Retorno
3 bytes (Status). Tamanho de Retorno
Comando ESC 14
3 bytes (Status).
Observações: Caso a forma de pagamento exceda o valor total do cupom, não
serão mais permitidas novas formas de pagamento. Observação: Só será executado imediatamente após a emissão de um Cupom
Fiscal.
Caso a forma de pagamento não seja a “01” (Dinheiro), e o troco seja maior
que o valor na forma de pagamento Dinheiro o comando não será executado, pois o Para que o Cupom Fiscal seja cancelado logo após a sua abertura, deverá ser
troco é retirado de Dinheiro (Deve haver Dinheiro em caixa para dar o troco.). Pode vendido, pelo menos, 1 (um) item qualquer. A impressora imprimirá a mensagem
ser usado o comando de SUPRIMENTO para informar a quantidade de dinheiro em “Cupom Fiscal Cancelado”, fechando-o em seguida.
caixa no início do dia.

27 28
!""PROGRAMAÇÃO DA UNIDADE DE MEDIDA Este comando permite Estornar valores de uma Forma de Pagamento e inserir
em outra Forma de Pagamento. O valor a ser estornado não pode exceder o total da
Comando ESC 62 51 Parâmetro (obrigatório) Forma de Pagamento de origem.
Descrição da unidade de medida (ASCII), com o
tamanho de 2 bytes. COMANDOS DE RELATÓRIOS FISCAIS
Tamanho de Retorno
3 bytes (Status).
!""EMISSÃO DE REDUÇÃO “Z”

Comando ESC 05 Parâmetro (opcional)


Observações: O próximo comando de Venda de Item irá imprimir após à Campo opcional para Data e Hora no formato
quantidade da unidade passada através deste comando. Este comando tem validade DDMMAA HHMMSS para ajuste do relogio interno do
somente para a impressão de um Item, voltando ao default que são: dois espaços
equipamento.
após a impressão do Item vendido.
Tamanho de Retorno
!""AUMENTANDO A DESCRIÇÃO DO ITEM 3 bytes (Status).

Comando ESC 62 52 Parâmetro (obrigatório) Observação: Somente será aceita uma alteração de +/- 5 minutos com relação
Descrição do item (ASCII), com até 200 bytes. ao relógio interno do ECF, valores fora da faixa serão limitados a 5 minutos.

Tamanho de Retorno A emissão da Redução “Z” fecha a movimenação do ECF, liberando-o, só após a
3 bytes (Status). virada de seu relógio interno.

Observações: O próximo comando de venda de Item irá imprimir a descrição !""EMISSÃO DE LEITURA “X”
com este tamanho. O comando tem validade somente para a impressão de um Item,
voltando ao default que é de 29 caracteres, passados nos comandos de Venda de Item Comando ESC 06 Tamanho de Retorno
comum. 3 bytes (Status).

O comando de Venda de Item tem que ser utilizado normalmente, inclusive com
a sua Descrição (29 caracteres), pois esta Descrição, será substituída pela que foi !""EMISSÃO DE LEITURA DA MEMÓRIA FISCAL
programada no comando 62 52.
a) Emissão Com Intervalo de Datas:
!""ESTORNO DE FORMAS DE PAGAMENTO Parâmetro 1 (obrigatório)
Comando ESC 08
Dia inicial “DD”, com o tamanho de 2 bytes, Mês
Comando ESC 74 Parâmetro 1 (obrigatório) inicial “MM”, com o tamanho de 2 bytes e Ano inicial
Descrição da Forma de Pagamento Origem com o “AA”, com o tamanho de 2 bytes.
tamanho de 16 bytes.
Parâmetro 2 (obrigatório)
Parâmetro 1 (obrigatório) Dia final “DD”, com o tamanho de 2 bytes, Mês final
Descrição da Forma de Pagamento Destino com o “MM”, com o tamanho de 2 bytes e Ano final “AA”,
tamanho de 16 bytes. com o tamanho de 2 bytes.
Parâmetro 3 (obrigatório) Parâmetro 3 (obrigatório)
Valor a ser Estornado com o tamanho de 14 bytes. Saída “I” para impressão ou “R” para recebimento
via interface serial, com o tamanho de 1 byte.
Tamanho de Retorno
3 bytes (Status). Tamanho de Retorno
3 bytes (Status).

29 30
No caso de “R” no parâmetro 3, o recebimento será da seguinte forma:
IMPORTANTE
A impressora enviará ACK após receber o comando seguido dos dois bytes de
STATUS, [ST1] [ST2]. Após tratá-lo, enviará os dados em formato ASCII, terminando com Toda vez que o equipamento é ligado, ou a cada hora (caso esteja ligado,
ETX (03h). sem nenhum tipo de Cupom Aberto e sem Redução “Z” efetuada no dia), a
impressora imprime uma linha com as seguintes informações:
Observação: Se o ANO INICIAL for menor que “54” será considerado como
posterior a 2000. Os dados são enviados pela porta serial como um pacote ASCII. Seu COO, GNF, Venda Bruta, Total de ISS, Cancelamentos, Descontos,
aplicativo deverá tratar estes dados como um arquivo e gravá-los no formato (ASCII). Acréscimo IOF, Acréscimos. Os totalizadores parciais com alíquotas programadas
primeiramente relativos ao ICMS e após relativos ao ISS. Substituição Tributária,
b) Emissão por Intervalo de Reduções: Isenção, Não Incidência.

Comando ESC 08 Parâmetro 1 (obrigatório)


Os valores são separados por cerquilhas”#”, e valores nulos são
representados por asteriscos “*”. Não há separação por vírgula “,”. Portanto,
Com o tamanho de 2 bytes. Ex.: “00”.
quantidades como R$10,00 são representadas como 1000.
Parâmetro 2 (obrigatório)
As informações que aparecerão nesta linha são marcadas com asteriscos
Redução Inicial “XXXX”, com o tamanho de 4 bytes.
“ *” na Leitura “X”, com exceção do COO e do GNF.
Parâmetro 3 (obrigatório)
Com o tamanho de 2 bytes. Ex.: “00”.

Parâmetro 4 (obrigatório)
Redução Final “XXXX”, com o tamanho de 4 bytes.

Parâmetro 5 (obrigatório)
Saída “I” para impressão ou “R” para recebimento
via interface serial, com o tamanho de 1 byte.

Tamanho de Retorno
3 bytes (Status).

!""EMISSÃO DE LEITURA X PELA SERIAL


Comando ESC 69 Retorno
A impressora enviará ACK após receber o comando
seguido dos dois bytes de STATUS, [ST1] [ST2]. Após
tratá-lo, enviará os dados em formato ASCII,
terminando com ETX (03h).

31 32
COMANDOS DAS OPERAÇÕES NÃO FISCAIS
Exemplo de Leitura “X” !""RELATÓRIO GERENCIAL

Comando ESC 20 Parâmetro (obrigatório)


Texto a ser impresso no Relatório Gerencial, com
até 620 bytes.
Exemplo de Leitura da
Memória Fiscal Tamaho de Retorno
3 bytes (Status).

Observação: O último Cupom Fiscal


deverá estar fechado. A palavra “total”,
independentemente de estar em caracteres
maiúsculos ou minúsculos, é reservada e
será substituída pela palavra “totax” (por
solicitação do fisco). Qualquer comando
diferente do relatório gerencial, enviado com
um cupom não fiscal aberto, efetuará seu
fechamento automaticamente. Caso sejam
enviados novos dados a um relatório aberto, eles serão impressos dentro do mesmo
relatório.
Exemplo de Redução “Z”
Será impressa uma Leitura “X” antes da impressão das informações do Relatório
Gerencial. Este comando está limitado a 10 minutos de duração.

!""FECHAMENTO DE RELATÓRIO GERENCIAL

Comando ESC 21 Tamaho de Retorno


3 bytes (Status).

!""COMPROVANTE NÃO FISCAL NÃO VINCULADO

Comando ESC 25 Parâmetro 1 (obrigatório)


“SA”=Sangria ,“SU”=Suprimento, ou #1 até #9, ou
“01” até “50” para recebimento em totalizador
parcial não sujeito ao ICMS, em ASCII com o
tamanho de 2 bytes.

Parâmetro 2 (obrigatório)
Valor, com o tamanho de 14 bytes.

Parâmetro 3 (opcional)
Descrição da Forma de Pagamento, com o
tamanho de 16 bytes.

Tamaho de Retorno
3 bytes (Status).

33 34
Observações: O comando para programar o nome do Totalizador Parcial Não
Sujeito ao ICMS, está descrito nos COMANDOS DE INICIALIZAÇÃO.

Caso a Descrição da Forma de Pagamento não seja passada, o recebimento


será totalizado em Dinheiro. A Sangria não acumula e nem retira de nenhuma forma
de pagamento, ela é a única que não totaliza em nenhuma forma de pagamento.

!""ABRE COMPROVANTE NÃO FISCAL VINCULADO

Comando ESC 66 Parâmetro (obrigatório)


Descrição da Forma de Pagamento, com o tamanho
de 16 bytes.

Parâmetro (opcional)
Valor da Forma de Pagamento, com o tamanho de 14
COMANDOS DE AUTENTICAÇÃO
bytes.

Parâmetro (opcional) !""AUTENTICAÇÃO DE DOCUMENTO


COO do documento que originou o vinculo, com o
tamanho de 6 bytes. Comando ESC 16 Tamaho de Retorno
3 bytes (Status).
Tamanho de Retorno
3 bytes (Status). Observação: Deverá ser executada imediatamente após um Recebimento Não
Sujeito ao ICMS ou o término de um Cupom Fiscal.
Observações: Este comando visa permitir que os Comprovantes Vinculados
possam ser emitidos mesmo sem ser imediatamente após aos cupons fiscais ou de Poderá ser repetido até 5 (cinco) vezes, para cada Recebimento. Após isso o
recebimentos (Comprovante não fiscal não vinculado), para isso é necessário saber comando será ignorado.
o COO do cupom fiscal ou do recebimento (Comprovante não fiscal não vinculado).
O equipamento irá aguardar 5 (cinco) segundos para que seja inserido o
Só pode ser emitido um Comprovante Não Fiscal por registro de Forma de documento e, quando isto ocorrer, autenticará no documento: data, hora, números da
Pagamento utilizada no cupom. loja e do caixa, e o número do último Cupom Fiscal.

!""USA COMPROVANTE NÃO FISCAL VINCULADO Se decorrido os 5 (cinco) segundos sem o posicionamento do documento, a
impressora retornará ao seu estado normal de operação, retornando “status de comando
Parâmetro (obrigatório) não executado”.
Comando ESC 67
Texto a ser impresso na Forma de Pagamento,
com o tamanho de até 620 bytes. !""PROGRAMA CARACTER GRÁFICO PARA AUTENTICAÇÃO
Tamaho de Retorno Comando ESC 64 Parâmetro (obrigatório)
3 bytes (Status). Com o tamanho de 18 bytes. *Ver explicação
abaixo.
Observações: Este comando poderá ser usado mais de uma vez durante 2
(dois) minutos após a sua abertura. É possível emitir um Comprovante Não Fiscal para Tamaho de Retorno
cada Forma de Pagamento utilizada, exceto para “Dinheiro”. Para fechar este 3 bytes (Status).
comprovante, pode ser usado o comando de Fechamento de Relatório Gerencial. As
Formas de Pagamento usadas na emissão do Comprovante Não Fiscal Vinculado
aparecerão marcadas com um “V” na Leitura “X”. Esquema representativo do parâmetro com exemplo:

35 36
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 COMANDOS DE INFORMAÇÕES DA IMPRESSORA
Bit 0 (1)
Bit 1 (2) !""LEITURA DO ESTADO DA IMPRESSORA
Bit 2 (4)
Bit 3 (8) Comando ESC 19 Tamaho de Retorno
Bit 4 (16) 3 bytes (Status).
Bit 5 (32)
Bit 6 (64) Observação: A impressora fiscal enviará o seu estado atual pela interface.
Bit 7 (128)
* |001|002|004|008|016|032|064|128|064|032|016|008|004|002|001|129|129|129| !""RETORNO DE ALÍQUOTAS
Cada byte é uma coluna, onde o bit menos Comando ESC 26 Tamaho de Retorno
significativo corresponde à agulha mais alta da cabeça 3 bytes (Status).
de impressão. Será impresso: AUT: “logo”, data, loja, 1 byte, indicando o número de Alíquotas
ECF, COO e o valor. cadastradas.
64 bytes com os valores das Alíquotas.
Observação: Uma vez programado, este caracter é mantido na memória da
impressora mesmo que a mesma seja desligada.
!""RETORNO DOS TOTALIZADORES PARCIAIS
COMANDOS DA GAVETA DE DINHEIRO
Comando ESC 27
!""ACIONAMENTO DA GAVETA DE DINHEIRO Observação: São retornados os seguintes dados:

Comando ESC 22 Parâmetro (obrigatório) Bytes de Status ............................................... : 3 bytes


Um byte (00 até FF) com o valor do Totalizadores Parciais Tributados ................. : 112 bytes(224 dígitos BCD)
tempo(ms) de acionamento do solenóide da Isenção ........................................................... : 7 bytes(14 dígitos BCD)
Gaveta de Dinheiro (0-255ms). Não Incidência ............................................... : 7 bytes(14 dígitos BCD)
Substituição ................................................... : 7 bytes(14 dígitos BCD)
Tamaho de Retorno Totalizadores Parciais Não Sujeitos ao ICMS : 63 bytes(126 dígitos BCD)
3 bytes (Status). Sangria ........................................................... : 7 bytes(14 dígitos BCD)
Suprimentos .................................................. : 7 bytes(14 dígitos BCD)
Observação: Acionamento do solenóide de abertura da Gaveta. Grande Total ................................................... : 9 bytes(18 dígitos BCD)

!""LEITURA DO ESTADO DA GAVETA DE DINHEIRO !""RETORNO DO SUBTOTAL

Comando ESC 23 Tamaho de Retorno Comando ESC 29 Tamaho de Retorno


3 bytes (Status) + 1 byte com o estado do sensor. 3 bytes (Status).
Subtotal com 14 bytes.
Se “00” Sensor em nível zero.
Se “FF” Sensor em nível um. !""RETORNO DO NÚMERO DO CUPOM
Importante: Verificar a documentação da sua gaveta para saber o nível lógico Comando ESC 30 Tamaho de Retorno
que a mesma enviará para a impressora. 3 bytes (Status).
6 bytes com o número do Cupom.

37 38
!""RETORNO DE VARIÁVEIS 23 DATA E HORA ATUAL (ORDEM DIA, MÊS, ANO, HORA,
MIN, SEG) ............................................................................. 06 BCD (6X2dígitos BCD)
Comando ESC 35 Parâmetro (obrigatório) 24 CONTADORES DOS TOTALIZADORES NÃO SUJEITOS
Seleciona informação que será retornada, com o AO ICMS 18 BCD 9X2 (9X4dígitos
tamanho de 1 byte. BCD)
25 DESCRIÇÃO DOS TOTALIZADORES NÃO SUJEITOS AO
ICMS ..................................................................................... 171 BCD 9x19 (9 strings
A seguir é apresentada uma tabela com a variável que será retornada em função com 19 caracteres)
do parâmetro 1(chamado de V), nesta tabela constam o número de bytes que compõem 26 DATA DA ÚLTIMA REDUÇÃO 06 BCD (6X2dígitos BCD)
a variável e o formato dos dados desta variável. 27 DATA DO MOVIMENTO (DIA, MÊS, ANO) 03 BCD (3X2 dígitos BCD)
28 FLAG DE TRUNCAMENTO 01 FF – arredondamento
00 – truncamento
Observação: No formato ASCII os caracteres retornados são ASCII padrão.
29 FLAGS DE VINCULAÇÃO AO ISS ....................................... 02 Bits setados indicam
que o totalizador res-
No formato BCD os caracteres retornados têm o seguinte formato: pectivo é Isnn
30 TOTALIZADOR DE ACRÉSCIMOS ........................................ 07 BCD (14 dígitos BCD)
Se uma variável retornada for de 7 bytes BCD, e seu valor for R$ 1234,56 os 7 31 CONTADOR DE BILHETES DE PASSAGEM .......................... 03 BCD (6 dígitos BCD)
bytes retornados em caracter (14 dígitos BCD) serão: 32 FORMAS DE PAGAMENTO .................................................. 1925
#""1 byte indicando se alguma Forma de Pagamento foi usada no Cupom Fiscal vinculado. (se “1” SIM, se “0”
00 00 00 00 12 34 56. NÃO).
#""16 bytes com a Descrição de cada Forma de Pagamento, incluíndo “Valor Recebido” e “TROCO”.
#""10 bytes (20 dígitos BCD) com o valor das Formas de Pagamento, usando 4 casas decimais.
Através deste exemplo podemos observar que a unidade monetária destes dados #""10 bytes (20 dígitos BCD) com o valor da forma emitida no último Cupom Fiscal, usando 4 casas decimais.
está em centavos, sendo assim estes dados devem ser interpretados pelo aplicativo e #"" 1 byte para cada Forma de Pagamento indicando se a mesma foi usada para a emissão do Cupom Não Fiscal
a posição da vírgula está sempre entre o penúltimo e o último byte enviado para todas Vinculado.

as variáveis que retornem valores monetários. Obs.: São 50 Formas de Pagamento mais o Valor Recebido e o TROCO.
33 RECEBIMENTOS(CNF NÃO VINCULADO) ........................... 1550
[V] VARIÁVEL BYTES FORMATO #""2 bytes (4 dígitos BCD) correspondendo ao Contador Não Fiscal.
00 NÚMERO DE SÉRIE ............................................................... 15 ASCII #""10 bytes (20 dígitos BCD) para cada Recebimento com o valor acumulado e com 4 casa decimais.
01 VERSÃO DO FIRMWARE ..................................................... 02 BCD (4 dígitos BCD) #""19 bytes para cada Recebimento com a sua Descrição.
Obs.: São 50 Recebimentos.
02 CGC/IE .................................................................................. 33 ASCII
03 GRANDE TOTAL ................................................................... 09 BCD (18 dígitos BCD) 34 DEPARTAMENTOS ............................................................... 600
04 CANCELAMENTOS .............................................................. 07 BCD (14 dígitos BCD) #""10 bytes (20 dígitos BCD) com a quantidade de vezes que foi usado.
05 DESCONTOS ........................................................................ 07 BCD (14 dígitos BCD) #""10 bytes (20 dígitos BCD) com o Valor.
06 CONTADOR SEQUÊNCIAL ................................................... 03 BCD (6 dígitos BCD) #""10 caracteres Departamento com a Descrição.
Obs.: São 20 Departamentos.
07 NÚMERO DE OPERAÇÕES NÃO FISCAIS ............................ 03 BCD (6 dígitos BCD)
08 NÚMERO DE CUPONS CANCELADOS ................................. 02 BCD (4 dígitos BCD) 253 RETORNA TIPO DA IMPRESSORA ....................................... Byte 1 – (00) Bilhete de Passagem
09 NÚMERO DE REDUÇÕES ...................................................... 02 BCD (4 dígitos BCD) (FF) Cupom Fiscal
10 NÚMERO DE INTERVENÇÕES TÉCNICAS ............................ 02 BCD (4 dígitos BCD) Byte 2 – (00) Presenter
11 NÚMERO DE SUBSTITUIÇÕES DE PROPRIETÁRIO .............. 02 BCD (4 dígitos BCD) (FF) Gaveta
12 NÚMERO DO ÚLTIMO ITEM VENDIDO .................................. 02 BCD (4 dígitos BCD) Byte 3 – (00) Cutter
13 CLICHÊ DO PROPRIETÁRIO ................................................. 186 ASCII (FF) Autenticação 03 Ver
14 NÚMERO DO CAIXA ............................................................. 02 BCD (4 dígitos BCD) explicação ao lado.
15 NÚMERO DA LOJA ............................................................... 02 BCD (4 dígitos BCD)
16 MOEDA ................................................................................. 02 ASCII Segue abaixo a discriminação do byte de retorno, 17 (Flags Fiscais).
17 FLAGS FISCAIS ................................................................... 01 DESCRIÇÃO ABAIXO
bit 0=1 Cupom fiscal aberto. 1
18 MINUTOS LIGADA ................................................................ 02 BCD (4 dígitos BCD)
19 MINUTOS IMPRIMINDO .......................................................... 02 BCD (4 dígitos BCD)
bit 1=1 Fechamento de formas de pagamento iniciado. 2
20 FLAG DE INTERVENÇÃO TÉCNICA ..................................... 01 55h Modo Normal bit 2=1 Horário de verão(selecionado=1). 4
AAh Intervenção Téc- bit 3=1 Já houve redução “Z” no dia. 8
nica bit 4 não existe. 16
21 FLAG DE EPROM CONECTADA ........................................... 01 55h Eprom conectada bit 5=1 Permite cancelar cupom fiscal. 32
AAh desconectada bit 6 não existe. 64
22 VALOR PAGO NO ÚLTIMO CUPOM ...................................... 07 BCD (14 dígitos BCD) bit 7=1 Memória fiscal sem espaço. 128

39 40
!""MONITORAMENTO DO ESTADO DO PAPEL
CAPÍTULO 8 ..............................................
Comando ESC 62 54
COMANDOS PARA IMPRESSÃO DE CHEQUES
Observação: Este comando só terá retorno quando a impressora indicar “Pouco
Papel”. A impressora retorna ACK ST1 ST2 n1 n2. Onde n1+(n2*256) é o número de !""PROGRAMAÇÃO DA MOEDA NO SINGULAR
linhas impressas na condição de “Pouco Papel” até o “Fim de Papel”.
Comando ESC 58 Parâmetro (obrigatório)
!""LEITURA DOS DADOS DA ÚLTIMA REDUÇÃO Nome com 19 caracteres ASCII.

Comando ESC 62 55 Tamanho de Retorno


Tamanho de Retorno 3 bytes (status)
616 bytes (BCD), com a seguinte estrutura.

!""PROGRAMAÇÃO DA MOEDA NO PLURAL


RZAUT Se 00 redução por comando, caso contrário automática. 2
GTDA GT no momento da última redução. 18 Comando ESC 59 Parâmetro (obrigatório)
CANCEL Cancelamentos 14 Nome com 22 caracteres ASCII.
DESCON Descontos 14
TR Tributos 64 Tamanho de Retorno
TP Totalizadores Parciais Tributados 266 3 bytes (status)
SANGRIA Sangria 14
SUPRIMENTOS Suprimentos 14
NSI Totalizadores não Sujeitos ao ICMS 126 !""STATUS DO CHEQUE
CNSI Contadores dos TP’s não Sujeitos ao ICMS 36
Comando ESC 62 48 Parâmetro
COO Contador de Ordem de Operação 6
Nenhum
CNS Contador de Operações não Sujeitas ao ICMS 6
AL Número de Alíquotas Cadastradas 2
Tamanho de Retorno
DATA_PC Data do Movimento 6
1 byte com os seguintes status:
ACRESC Acréscimo 14
ACRFIN Acréscimo Financeiro 14

BIT STATUS 0 1
0 Não usado Fixo em 0
1 Não usado Fixo em 1
2 Cheque em impressão Em impressão ou
aguardando inserção Não imprimindo
3 Aguardando inserção do cheque Não aguardando Aguardando
4 Não usado Fixo em 1
5 Estado do sensor de cheque Com papel Sem papel
6 Estado do sensor de cheque Com papel Sem papel
7 Não usado Fixo em 0

41 42
!""CANCELA IMPRESSÃO DO CHEQUE # Include "Fileio.ch"
Porta := 0
Parâmetro Porta := FOpen("COM1", FO_READWRITE + FO_COMPAT)
Comando ESC 62 49
Nenhum Comando:=Chr(27)+Chr(251)+"57|001|00000000015000|Bematech ”;
+”Indústria e Comércio de Equipamentos|Curitiba/Paraná/”;
Tamanho de Retorno +“Brasil |12|Abril |1999||"+Chr(27)
3 byte (status) FWrite(Porta, @Comando, Len(Comando))

Observação: Cancela a impressão do cheque que está sendo aguardado pela Usando a DLL Windows, a impressão do cheque poderá ser feita da seguinte
impressora. maneira:

!""IMPRESSÃO DO CHEQUE Private Sub Command1_Click()


Porta = IniPortaStr("COM1")
Comando ESC 57 Parâmetro buffer = Chr(27) + "|57|001|00000000001000|Bematech|Curitiba|”_
Dados dos campos “10|Fevereiro|98||" + Chr(27)
VALOR[14] – numérico ASCII Envia = FormataTX(buffer)
FAVORECIDO[45] – ASCII Fecha = FechaPorta()
LOCALIDADE[27] – ASCII End Sub
DIA[2] – numérico
MÊS[10] – ASCII
ANO[4] – numérico

Posições dos campos


VALOR_X[1]
EXT1_X[1]
EXT2_X[1]
FAV_X[1]
LOCAL_X[1]
DIA_X[1]
MÊS_X[1]
ANO_X[1]
VALOR_Y[1]
EXT1_Y[1]
EXT2_Y[1]
FAV_Y[1]
LOCAL_Y[1]
OPCIONAL [até 120 caracteres] serão impressos uma
linha após a localidade.

Tamanho de Retorno
3 bytes (Status).

Observação:

Usando o Driver DOS, a impressão do cheque poderá ser feita da seguinte


maneira:

43 44
CAPÍTULO 9 .............................................. c) Programação de clichê.

Dois tipos de comando podem ser enviados:


COMANDOS DE IMPRESSÃO
a - COMANDO DIRETO
MODOS DE IMPRESSÃO
Neste modo, o envio de um simples código é suficiente para comandar a
impressora fiscal.
A impressora fiscal permite a impressão nos modos abaixo.
ASCII: LF
Estes comandos só podem ser utilizados como parâmetros na string, do cupom
HEXADECIMAL: 0A
não fiscal, mensagem promocional e clichê do proprietário (este último somente para
o técnico).
Este comando faz com que as instruções até então armazenadas no buffer
MODO NÚMERO DE COLUNAS sejam impressas com subseqüente avanço de linha.
a Normal 40 colunas
b Expandido 20 colunas b - SEQÜÊNCIA DE CONTROLE
c Enfatizado Todos os anteriores
d Sublinhado Todos os anteriores Neste modo, deve ser enviado mais de um código para comandar ou programar
a impressora.
a - NORMAL
ASCII: ESC W 01
No modo normal, cada caracter é formado por uma matriz entrelaçada de 7x7, ou HEXADECIMAL: 1B 57 01
seja, sete colunas por sete linhas.
Este é o modo de impressão selecionado ao ligar sua impressora. Este comando faz com que as próximas impressões sejam feitas em modo
expandido.
b - EXPANDIDO
A seguir são apresentados, em forma de sumário, todos os comandos aceitos
A operação em modo expandido faz com que o espaço ocupado por cada caracter pela impressora fiscal.
seja dobrado. Sendo assim, o expandido normal terá 20 caracteres na linha.
USANDO O SUMÁRIO DE COMANDOS DE IMPRESSÃO
c - ENFATIZADO
A próxima seção lista e descreve todos os comandos não fiscais da impressora
Neste modo os caracteres são colocados em destaque. Isto é feito pela repetição fiscal. Existem comandos que necessitam do envio de bytes adicionais (parâmetros)
da impressão sem avanço da linha. que estão explicados ao lado do comando.

d - SUBLINHADO A seguir são apresentados alguns exemplos de comandos e a descrição dos


parâmetros utilizados em cada um deles:
Como no modo expandido, o sublinhado também é independente dos outros
modos. Sendo assim, qualquer um dos modos de impressão pode ser sublinhado. %& ESC P é um comando sem parâmetros.

COMANDOS DE IMPRESSÃO %& ESC W n é um comando que usa 1 para ligá-lo e 0 para desligá-lo.

Estes comandos de impressão só poderão ser utilizados dentro dos parâmetros TABELAS DE COMANDOS DE IMPRESSÃO
dos seguintes comandos fiscais.
Operação
a) Emissão de cupom não fiscal. ASCII DEC. HEX. DESCRIÇÃO
ESC @ 64 40 Reinicializa programação da impressora fiscal
b) Mensagem promocional. Retorna ao modo de 40 colunas.

45 46
Movimentação Horizontal
ASCII DEC. HEX. DESCRIÇÃO
CAPÍTULO 10 ...............................................
ESC f 0 n 102 1B 66 00 n Deslocamento horizontal
n = número de espaços
TABELA DE CARACTERES
TABELA ASCII
Tamanho da Impressão e Largura do Caracter

ASCII DEC. HEX. DESCRIÇÃO


Os códigos de 00 a 7F (hex) são independentes do modo de programação que
SO 14 0E Seleciona expandido por uma linha
se esteja utilizando e serão sempre os caracteres indicados na tabela abaixo.
ESC W n 87 1B 57 n Modo expandido (ligado n=01/desligado n=00)
ESC SO 14 1B 0E Seleciona expandido por uma linha
DC4 20 14 Cancela modo expandido de uma linha H 0 1 2 3 4 5 6 7 8 9 A B C D E F
ESC M 77 1B 4D Seleciona modo normal (programação inicial) 0 NUL BEL BS HT LF VT FF CR SO SI
1 DC1 DC2 DC3 DC4 CAN ESC
Realces de Impressão
2 SP ! “ # $ % & ‘ ( ) * + , - . /
ASCII DEC. HEX. DESCRIÇÃO 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
ESC - 1/0 45 1B 2D n Modo sublinhado (ligado=01/desligado=00) 4 @ A B C D E F G H I J K L M N O
ESC E 69 1B 45 Modo enfatizado 5 P Q R S T U V W X Y Z [ \ ] ^ _
ESC F 70 1B 46 Cancela modo enfatizado 6 ’ a b c d e f g h i j k l m n o
Movimentação Vertical 7 p q r s t u v w x y z { | } ~ DEL

ASCII DEC. HEX. DESCRIÇÃO TABELA DE CARACTERES CODE PAGE 850


ESC f 1 n 102 1B 66 01 n Deslocamento vertical
n = número de espaços CODE 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 @ P ` p Ç É á Ó
1 ! 1 A Q a q ü ae í D
2 " 2 B R b r é AE ó Ê Ô
3
3 # 3 C S c s â ô ú Ë Ò 4

4 $ 4 D T d t ä ö ñ È Õ
5 § % 5 E U e u à ò Ñ Á l
6 & 6 F V f v a û a  ã Í
7 ' 7 G W g w ç ù o À Ã Î
?
8 ( 8 H X h x ê ÿ Ï
9 ) 9 I Y i y ë Ö Ú "
A * : J Z j z è Ü Û
1
B + ; K [ k { ï 2 Ù 1
1 Ý 3
C , < L \ l | î 4

D - = M ] m } ì c | Y 2

E . > N ^ n ~ Ä Ì
F / ? O _ o A

47 48
CAPÍTULO 11 ............................................... CAPÍTULO 12 ............................................
CUIDADOS ESPECIAIS ESPECIFICAÇÕES TÉCNICAS
LIMPREZA DA IMPRESSORA IMPRESSÃO
Para manter o bom funcionamento de sua impressora você deve limpá-la
regularmente conforme procedimento a seguir: Método ..................................... matricial por impacto
Número de agulhas ................ 9 agulhas
1 - Desligue a impressora; Formato da matriz ................... 7x9
Direção .................................... bidirecional
2 - Abra a tampa frontal (4) e retire a fita de impressão; Larg. máxima da linha ............ 63 mm
Capacidade de colunas .......... 20, 40
3 - Abra a tampa traseira (2) e retire a bobina de papel; Velocidade ............................... 3,5 linhas por segundo
Vel. de avanço de papel .......... 16 linhas por segundo
4 - Utilize uma flanela ou pano macio e retire cuidadosamente a poeira Espaço entre linhas ................ 4,23 mm programável
acumulada; Dimensões do caracter .......... Altura 3,10 mm Largura 1,24 mm (a 40 cpl)
Conjunto de caracteres ........... CODE PAGE 850
5 - Se o gabinete da máquina estiver sujo, limpe-o com um pano macio umedecido Modos de impressão .............. normal, expandido, sublinhado, enfatizado.
em água ou detergente natural. Nunca use estopa quimicamente tratada ou (cupons não fiscais)
substâncias químicas de qualquer espécie. O uso destes produtos pode
fazer com que o gabinete mude de cor ou se deforme.
MODO cpp cpl
Nunca introduza objetos ou ferramentas na impressora. Normal 16 40
Expandido 8 20

LOCAL DE USO Buffers:

A impressora deve operar acomodada sobre uma superfície plana onde suas de Entrada ............................... 1 KByte
entradas de ar fiquem desobstruídas.
Papel de Impressão:

Tipo ................................................. Bobina de papel (três vias)


Evite colocar a impressora em locais
autocopiativo ou com carbono
úmidos, sujeitos à poeira ou à ação do Dimensões ..................................... Largura máxima do papel: 76 ±1 mm
calor, como luz solar e aquecedores. Espessura (por via) ........................ 0,07 a 0,09 mm
Diâmetro máximo da bobina .......... 65 mm
Capacidade de cópias ................... original mais duas cópias (três vias)

Fita de Impressão:

Tipo ............................... cartucho de fibra de nylon


Modelo .......................... EPSON ERC - 38

49 50
Interface de Comunicação Serial:
CAPÍTULO 13 ...............................................
Padrão ........................... RS-232
Protocolo ........................ RTS/CTS
PROBLEMAS
Baud Rate ...................... 9600 bauds, com 8 bits de dados, sem paridade,
dois stop bits A seguir estão descritos alguns problemas que podem ocorrer durante o
funcionamento da impressora e suas possíveis soluções.
Alimentação:
A IMPRESSORA NÃO LIGA
Tensão ........................... FULL-RANGE (95 - 240V)
Freqüência ..................... 50 / 60 Hz Possíveis causas:
Consumo ....................... Em repouso - 13W (aproximadamente)
Em operação - 55W (aproximadamente) ' Não há tensão na rede elétrica.

Confiabilidade: Procedimento:
MCBF .............................. 5 milhões de linhas Verifique se existe alguma chave geral na rede elétrica. Conecte algum outro
(exceto o cabeçote) equipamento elétrico na tomada de força e verifique o perfeito estado de funcionamento
da mesma.
MCBF do cabeçote ......... 100 milhões de caracteres
' Problemas com o cabo de força
Condições Ambientais:
O cabo pode estar rompido ou mal conectado na tomada de força e/ou na
Temperatura:
impressora.
de operação ................... +5ºC a +40ºC
de armazenagem .......... -10ºC a +50ºC
Procedimento:
Umidade:
Desligue a máquina, verifique a continuidade do cabo de força e a perfeita conexão
de operação ................... 20 a 80%
entre a impressora fiscal e a rede.
de armazenagem: ......... 20 a 90%

Dimensões: A IMPRESSÃO SAI FRACA

Altura .............................. 170 mm Possíveis causas:


Largura ........................... 186 mm
Profundidade ................. 327 mm ' A fita está gasta

Massa ............................ 4,3 kg Procedimento:

Troque-a.

' A fita está presa

Procedimento:

Retire-a, gire manualmente várias vezes o tracionador Recoloque a fita conforme


o descrito no Capítulo 1.

51 52
NÃO HÁ CORRETA COMUNICAÇÃO PELA PORTA SERIAL
CAPÍTULO 14 ...............................................
Possíveis causas: ACIONAMENTO DE GAVETA
' Há interrupção no cabo de comunicação (cabo partido). Na parte traseira de sua impressora fiscal está localizado o conector para acionar
a gaveta (gaveta MENNO). Sua pinagem é a descrita abaixo:
Procedimento:

Troque o cabo.

' A pinagem utilizada não corresponde ao protocolo usado.

Procedimento:

Verifique se a pinagem usada está de acordo com o protocolo que está sendo a) Para gaveta MENNO:
utilizado para o envio de dados. Lembre-se que a impressora utiliza o protocolo RTS/
CTS. - Pino 1 = GND
- Pino 2 = Acionamento do solenóide para abertura da gaveta.
- Pino 3 = Sensor de gaveta aberta/fechada (gaveta fechada
chave aberta).
- Pino 4 = +24V
- Pino 5 = NC
- Pino 6 = GND

Observar a marca da gaveta antes de conectá-


la à impressora, pois a inversão das gavetas pode
danificar a impressora.

53 54
CAPÍTULO 15 ............................................ COMANDOS DO BILHETE DE PASSAGEM

IMPRESSORA PARA EMISSÃO DE PASSAGEM $& Abertura do Bilhete de Passagem


$&Venda de Item
RODOVIÁRIA $& Cancelamento de Item anterior
$& Cancelamento de Item Genérico
A impressora Fiscal atende os convênios do ICMS 156/94 e Sinief 06/89 para $& Fechamento de Cupom Fiscal sem Formas de Pagamento.
emissão de bilhete de passagem Rodoviária. $& Efetua forma de pagamento
$& Termina Fechamento
A impressora Fiscal com Emissão de bilhete, possui todos os comandos $& Cancelamento de Cupom
descritos no capítulo 6, com exceção do comando de abertura de cupom fiscal, no lugar
deste comando deve ser utilizado o
Observe que à exceção do comando de abertura de cupom fiscal, os comandos
comando de abertura de bilhete de
do bilhete de passagem são exatamente os mesmos do cupom fiscal. Por isso,
Passagem, que será descrito no decorrer
refira-se ao capítulo 5 (Comandos do Cupom Fiscal) para os demais comandos.
deste apêndice.

O bilhete de passagem típico: !""ABERTURA DE BILHETE DE PASSAGEM

Abertura do Bilhete de Passagem Comando ESC 37 Parâmetro (obrigatório)


Ver tabela abaixo
Via do Passageiro
(sempre impressa) Tamanho de Retorno
3 bytes (Status).

INFORMAÇÃO NÚMERO DE BYTES FORMATO


Impressão do canhoto do 1 Não utilizado.
motorista
... Venda de Itens Impressão do valor pago 1 Se 30H (‘0’ ASCII) não imprime,
no final do cupom do contrário imprime
Enfatiza informações do 1 Se 30H (‘0’ ASCII) não enfatiza,
M P - EMBARQUE, POLTRONA do contrário.
4 0 e PLATAFORMA
Local do Embarque 40 40 caracteres ASCII
... Fechamento do Cupom Local de Destino 40 40 caracteres ASCII
Linha 40 40 caracteres ASCII
Prefixo 40 40 caracteres ASCII
Agente 40 40 caracteres ASCII
Agência 40 40 caracteres ASCII
Data de Embarque 12 Formato:
DD – dia
MM – mês
AA – ano
HH – hora
Canhoto do Motorista (opcional) MM – minuto
SS – segundo
Poltrona 2 2 caracteres ASCII
Plataforma 3 3 caracteres ASCII

55 56
Veja a anotação “Abertura do Bilhete de Passagem” na figura do Bilhete de
Passagem. CAPÍTULO 16 ...............................................
!""VENDA DE ITENS
ROTEIRO BÁSICO PARA DESENVOLVIMENTO
DO APLICATIVO
Para o registro de itens, utilize o comando ESC 09 do Capítulo 7, porém valem
algumas observações: Apesar da utilização da Impressora Fiscal praticamente isentar o aplicativo de
qualquer exigência fiscal, existem algumas condições mínimas que devem ser
O campo de código deve ser preenchido, porém não será impresso. respeitadas para que a sua solução não tenha problemas com o fisco, e que estão
relacionadas abaixo:
É obrigatório pelo convênio SINIEF 06/89 no mínimo o registro da Tarifa (num
totalizador tributado) e do Seguro (no totalizador não incidência). 1) Os registros dos itens vendidos na impressora, devem ser feitos
concomitantemente com a venda, por isso entende-se que as informações
do cupom fiscal não devem ser bufferizadas e enviadas para a impressora
somente ao final da venda ao consumidor. Isto é exigido para que não haja a
Observações Gerais: possibilidade no aplicativo da não emissão do cupom fiscal.

Caso sua impressora possua cutter, o canhoto do motorista será separado da 2) No início e término das bobinas deve ser feita uma Leitura “X”, para isso é
via de passageiro por um picote, que facilita o destaque no momento do embarque. interessante monitorar as situações de pouco papel e fim de papel.

A informação “O passageiro manterá em seu poder este bilhete para fins de 3) A Leitura da Memória Fiscal em meio magnético pode ser feita pelo aplicativo,
fiscalização em viagem” é controlada pelo software básico e é impressa sempre que ou deve existir no diretório raiz “C:\” ou em um disquete o programa para
houver fechamento do bilhete. Leitura. Este programa é fornecido no Disquete que acompanha o produto.

O canhoto do motorista só é emitido no caso de estar ativa a emissão do Cupom 4) O banco de dados dos itens que o estabelecimento comercializa deve estar
Adicional. disponível para fins de fiscalização na forma de arquivo texto com os campos
“Código do Item”, “Descrição do Item” e “Situação Tributária”. (Isto não consta
no Convênio 156/94 mas deverá constar no futuro.)

As linhas em negrito tratam de procedimentos necessários, as demais são


opcionais porém deixarão sua aplicação mais consistente.

Abertura do ECF

1. Verificar se é possível estabelecer comunicação com a impressora. (Pode se


utilizar o comando ESC 13h).

2. Verificar a data do movimento (ESC 23H 1BH), se esta for diferente de zero
ainda não foi efetuado o fechamento do ECF.

3. Verificar se a data atual do ECF (ESC 23H 17H), e compará-la com a do micro,
se existir uma diferença além de um limite tolerável (por exemplo 30 min.)
solicite intervenção técnica no equipamento ou acerto da hora do micro.

57 58
4. Leia as alíquotas programadas no ECF (ESC 1AH), verifique se as alíquotas 6. Efetue o cancelamento do cupom caso necessário.
necessárias aos itens cadastrados no sistema estão presentes na
impressora. Caso hajam alíquotas faltando adicione-as (ESC 07h). Crie uma Fechamento do ECF
tabela de referência cruzada entre as alíquotas necessárias para a aplicação
e as que estão cadastradas na impressora. 1. Este procedimento deve ser executado até às 02:00 do dia seguinte ao do
movimento.
Ex: No banco de dados existem itens em 3 classes de tributação 5,00%(ISS),
12,00% e 25,00%. Em duas impressoras diferentes as alíquotas programadas 2. Feche cupons/relatórios possivelmente abertos.
são as seguintes:
3. Emita possíveis relatórios gerenciais.
TOTALIZADOR IMPRESSORA 1 IMPRESSORA 2
01 T01=12,00% IS01=5,00% 4. Execute a Redução Z.
02 T02=05,00% T02=17,00%
03 T03=17,00% T03=12,00% INCOMPATIBILIDADES COM VERSÕES ANTERIORES
Através da leitura das informações sobre as alíquotas e vinculação ao ISS é O Comando 10 não existe mais no software básico à partir da versão 3.00, tendo
possível reprogramar no caso da impressora 1 T02 para IS02. sido retirado por ordem do COTEPE (orgão que homologa impressoras fiscais no
Brasil).
De posse das informações acima o aplicativo iria vender corretamente tanto na
impressora 1 quanto na 2, uma venda de 17,00% na impressora 1 seria feita em T03 e Para fechar o cupom, deverá ser utilizado os comandos de Fechamento com
na 2 em T02. Forma de Pagamento.

Caso hajam alíquotas ainda não programadas a aplicação pode programá-las Apesar do comando ter sido suprimido , o Driver “DOS” e a “DLL” conseguem
neste momento. interpretar este comando, enviando os 03 (três) comandos de Fechamento de Cupom
com Forma de Pagamento - Comando 32, Comando 72 (com o índice 01 que
5. Verifique as informações que possam ser relevantes do comando de retorno corresponde à Dinheiro) e Comando 34 -, sem problemas de imcompatibilidade com o
de variáveis (ESC 23H), tais como “Versão do Firmware”, “Moeda”, “Loja”, aplicativo que utiliza o Comando 10.
“Caixa”, “Clichê” etc.
O Comando 33 (Efetua Forma de Pagamento), também não existe mais no
6. Efetue as Programações Iniciais necessárias (veja no capítulo 5 os comandos software básico à partir da versão 3.00.
de inicialização.). Por exemplo horário de verão, no dia em que houver a entrada
ou a saída do horário de verão. Troca do símbolo da moeda. Deve-se, agora, cadastrá-la na impressora através do Comando 71 ou 73,
efetuando a sua Forma de Pagamento, e com o Comando 72 especificando o índice
7. Emita uma Leitura X. desta Forma.

Emissão do Cupom Fiscal ou Bilhete de Passagem Apesar do Comando ter sido suprimido, o DRIVER “DOS” e a “DLL” conseguem
interpretar este Comando, enviando o Comando 71 e o Comando 72 para a impressora.
Refira-se aos Comandos do Cupom Fiscal (Capítulo 5) ou aos do Bilhete de Deste modo, seu aplicativo poderá continuar utilizando este comando, sem problemas
Passagem Rodoviária Apêndice VII). de incompatibilidade, pois tanto o DRIVER como a DLL se encarrega de verificar se a
Forma de Pagamento está cadastrada, e enviar o novo Comando.
1. Abra o Cupom Fiscal ou Bilhete de Passagem.
Caso a Forma de Pagamento não esteja cadastrada, o DRIVER ou a DLL,
2. Registre os itens no totalizador devido. Pode ser do ICMS ou do ISS. cadastra-a, obtendo seu Índice e enviando o novo Comando de Fechamento.

3. Cancele os itens caso necessário. O “Relatório Não Sujeito ao ICMS” mudou para o título “Emite Relatório
Gerencial”.
4. Feche com formas de pagamento.
O comando não mudou, continua sendo ESC 14h ou 27 20, só que agora com
5. O campo de mensagens promocionais pode ser utilizado para a impressão o limite de 10 minutos de mensagem após a sua abertura.
de dados do consumidor.
59 60
Obs.: Será impresso uma Leitura X antes e a cada 10 linhas imprimirá “LEITURA
X COO:nnnnnn”. CAPÍTULO 17 ..............................................
O “Recebimento Não Sujeito ao ICMS” mudou para o título “Comprovante Não CAPACIDADE DE DÍGITOS DOS CONTADORES
Fiscal Não Vinculado”. O comando continuou o mesmo, só que com um parâmetro
opcional que indica a descrição do Recebimento, sendo assim, por ser opcional, não E TOTALIZADORES
incompatibilizou o comando antigo.

COMENTÁRIOS GERAIS CÓD DESCRIÇÃO DÍG TIPO


GT GRANDE TOTAL / TOTALIZADOR GERAL 18 I
- GT DO DIA ANTERIOR 18 I
1. Recebimentos Não Sujeitos ao ICMS podem ser utilizados por exemplo para - VENDA BRUTA 16 R
Conta de Luz, Água, Carnê, etc. existem contadores específicos para estas - VENDA LÍQUIDA 16 R
operações que podem servir para contar o número de operações deste tipo - CANCELAMENTOS 14 R
executadas. - DESCONTOS 14 R
- ACRÉSCIMOS 14 R
2. Com respeito ao Arredondamento/Truncamento. I TOTALIZADOR PARCIAL ISENÇÃO 14 R
F TOTALIZADOR PARCIAL SUBSTITUIÇÃO TRIBUTÁRIA 14 R
Refere-se exclusivamente à multiplicação efetuada na venda de item com N TOTALIZADOR PARCIAL NÃO INCIDÊNCIA 14 R
quantidade fracionária. T01/IS01 TOTALIZADOR PARCIAL TRIBUTADO 14 R
...
Exemplo: T16/IS16 TOTALIZADOR PARCIAL TRIBUTADO 14 R
- TOTALIZADOR PARCIAL SANGRIA 14 R
Quantidade .............. 1,249 kg - TOTALIZADOR PARCIAL SUPRIMENTO 14 R
Valor unitário ............ R$ 2,00 / kg #1 TOTALIZADOR PARCIAL NÃO SUJEITO AO ICMS 14 R
...
Com arredondamento: #9 TOTALIZADOR PARCIAL NÃO SUJEITO AO ICMS 14 R
- REGISTRO DE ITEM 8 R
Valor Total ................. R$2,50 - CONTADOR DE REDUÇÕES 4 I
IT CONTADOR DE REINÍCIO DE OPERAÇÃO (CRO) 4 I
Com Truncamento: (default) - CONTADOR DE SUBSTITUIÇÕES DE PROPRIETÁRIO 4 I
COO CONTADOR DE ORDEM DE OPERAÇÃO 6 I
Valor Total ................. R$2,49 CNS CONTADOR DE OPERAÇÕES NÃO SUJEITAS AO ICMS 6 I
LJ NÚMERO SEQUENCIAL ATRIBUÍDO PELO
3. O cálculo do desconto/acréscimo quando percentual é sempre feito truncando- ESTABELECIMENTO (LOJA) 4 I
se os restos possíveis na terceira casa. Quando for por valor, isto não ocorre. CX NÚMERO SEQUENCIAL ATRIBUÍDO PELO
ESTABELECIMENTO (CAIXA) 4 I
- NÚMERO DE CUPONS CANCELADOS 4 I
- NÚMERO DE BILHETES 6 I
ITEM CONTADOR DE ITENS 4 R

Legenda: R - Redutível
I - Irredutível

61 62
CONDIÇÕES GERAIS PARA A EXECUÇÃO DOS COMANDOS

SEÇÃO

2
PROGRAMAÇÃO

Esta seção contém informações


sobre a programação da impressora, a
utilização do DRIVER para ambiente DOS,
a DLL para ambiente Windows e o uso
do Protocolo Direto.

Para obter o Manual de Programação completo, contendo exemplos


nesses ambientes, consulte o nosso site na Internet http://
63 www.bematech.com.br
CAPÍTULO 18 ............................................... ASCII ou no formato padrão da impressora. “1” ativa o formato ASCII e “0” desativa.

O DRIVER DOS RESIDENTE Nos testes realizados em laboratório não foi detectada nenhuma interferência
nas outras portas de comunicação. O arquivo de configuração MP20.INI deve estar
O DRIVER MP20DRV.EXE foi escrito em linguagem C com o propósito de auxiliar obrigatoriamente no mesmo diretório que o arquivo do DRIVER residente, podendo ser
a comunicação com a impressora fiscal, podendo ser utilizado com os modelos normal, carregado no AUTOEXEC.BAT. Não é necessária a utilização do comando MODE para
restaurante e rodoviária. O driver ao ser inicializado se instala em modo residente, ajustes de velocidade de comunicação com a impressora, ficando o DRIVER residente
alocando aproximadamente 50 Kbytes de memória baixa (de 0 a 640k). responsável por esta função.

Sua principal função consiste em monitorar a interrupção do DOS que controla a COMO UTILIZAR O DRIVER EM LINGUAGENS PARA DOS
porta serial. Ao se detectar a abertura de protocolo com a impressora fiscal, o driver
recebe os comandos e os envia para a impressora, findo o processo com o fechamento Todo comando enviado deve ser obrigatoriamente precedido pela abertura de
de protocolo, libera-se a porta de comunicação. protocolo e seguido do fechamento de protocolo, sendo que o mesmo deve ser
direcionado para porta monitorada pelo DRIVER.
O funcionamento do driver pode ser feito dentro de uma janela em Windows 95
, 98ou NT e MSDOS 6.22 nativo, sendo que nestas plataformas foram feitos exaustivos Abertura de Protocolo
testes.
É considerada abertura de protocolo uma seqüência de caracteres especiais
IMPORTANTE contidos na tabela ASCII, a saber:
Antes de iniciar seu aplicativo leia as informações do “Apêndice I”.
27 seguido de 251
DEFININDO A PORTA DE COMUNICAÇÃO Exemplo em CLIPPER 5.x

O arquivo MP20.INI configura qual é a porta de comunicação a ser monitorada inicio_protocolo := CHR( 27 ) + CHR( 251 )
pelo DRIVER residente e outras opções. Seu conteúdo é:
Fechamento de Protocolo
[CONFIG]
NumPorta=1 É considerada fechamento de protocolo uma seqüência de caracteres especiais
Path=DEFAULT contidos na tabela ASCII, a saber:
Retorna_ASCII=0
27
A opção “NumPorta” configura o número da porta a qual a impressora está
Exemplo em CLIPPER 5.x
conectada, onde:
fim_protocolo_driver := CHR( 27 )
0 COM1:
1 COM2:
Retornos do Driver DOS
2 COM3:
3 COM4:
Todos os comandos enviados para a porta serial serão interpretados pelo
DRIVER, o mesmo sempre responderá a qualquer envio. Respostas possíveis pelo
A opção “Path” configura o caminho onde os arquivos, gerado pela aplicativo,
driver:
vão ser lidos pelo BEMATECH.EXE - utilitário usado em conjunto com linguagens que
não conseguem ler a porta serial (ver explicação na pasta COBOL após a instalação do
a) ACK ou 06d
disquete).
Significa “OK entendi o que você me mandou !”, na seqüência serão enviados 2
A opção “Retorna_ASCII” configura o DRIVER para que seja retornado no Bytes, sendo que os mesmos devem ser depurados em bits para entender o que a
comando 35 (Retorno de Variáveis) com os parâmetros 29 (Flag de Vinculação), 32 impressora esta “falando”. Veja tabelas na pagina 10 do Manual do Usuário. Estes dois
(Formas de Pagamento), 33 (Recebimentos) e 34 (Departamentos), os bytes em formato bytes são chamados de ST1 e ST2.

65 66
b) NAK ou 21d Case Contador1 = 2
St1 := Transform(Asc(Retorno_Impressora),”999")
O comando não foi entendido pela impressora fiscal. Case Contador1 = 3
St2 := Transform(asc(retorno_impressora),”999")
FUNÇÕES DE EXEMPLO EM CLIPPER 5.X PARA COMUNICAÇÃO COM A IMPRESSORA EndCase
Next Contador1
Comentário: * Pega sequencia de retorno caso necessário
Sequencia_Retorno := “”
Esta função envia os dados para a impressora, capturando o seu retorno. O For Contador2 := 1 To Tam_a_ser_ret
primeiro parâmetro é a abertura de protocolo + seqüência de comandos enviados + FRead(Numero_Abertura_Porta, @Retorno_Impressora, 1)
fechamento de protocolo. O segundo parâmetro é a quantidades de bytes retornados Sequencia_Retorno += Retorno_Impressora
pela impressora, veja tabela na pagina 10. Next Contador2
If Asc(Retorno_Impressora) # 21
Clear
Static Function
?
Comunica_com_Impressora(Buffer_a_ser_enviado,Tam_a_ser_ret)
? “ACK = [“ + Ack + “] ST1 = [“ + St1 + “] ST2 = [“+ St2 + “]”
* envia sequencia de bytes para impressora
? “Retorno = [“ + Sequencia_Retorno + “]”
FWrite(Numero_Abertura_Porta,@Buffer_a_ser_enviado,len(Buffer_a_ser_enviado))
?
* pega o retorno da impressora NAK/ACK ST1 ST2
?
Retorno_Impressora := Ack := Nak := St1 := St2 := Space(1)
Wait “Tecle algo para retornar”
For Contador1 := 1 to 3
Endif
FRead(Numero_Abertura_Porta,@Retorno_Impressora,1)
Return Sequencia_Retorno
Do Case
Case Contador1 = 1
Comentário:
Do Case
Case Asc(Retorno_Impressora) = 21 /* retorno em
Abre a comunicação com a impressora.
caracter 21d=15h=NAK */
Clear
Não esqueça que o driver deve estar carregado antes da execução desta
?
? “Atencao...A impressora retornou procedure/function.
21d=15h=NAK”
? Static Function Abre_Comunicacao_Impressora_Fiscal()
? “NAK” # Include “FILEIO.CH”
? Qout(“Um momento, abrindo porta serial (COM1:)...”)
? “Programa abortado!” Numero_Abertura_Porta := FOpen(“COM1”, FO_READWRITE + FO_COMPAT)
? If Ferror () != 0
Case Asc(Retorno_Impressora) = 06 Qout(“Problemas de comunicacao. Pressione qualquer tecla.”)
Ack := Transform(Asc(Retorno_Impressora),”99") Return .F.
Otherwise Endif
Clear Return .T.
?
? “Atencao...Provavelmente DRIVER nao foi Comentário:
carregado!”
? “Programa abortado!” Função para Fechamento da Porta Serial.
?
FClose(Numero_Abertura_Porta) Static Functio Fechar_Porta()
Quit Fclose(Numero_Abertura_Porta)
EndCase Return .T.

67 68
Comentário:
CAPÍTULO 19 ...............................................
Função para pegar o Retorno da Impressora
DLL DE 16 E 32 BITS PARA WINDOWS
********
Function PegaRetorno Para a impressora fiscal existe uma DLL específica, com o objetivo de auxiliá-lo
********************* no desenvolvimento de seus programas no ambiente Windows.

retorno := " " Esta "DLL" possui todos os comandos da impressora fiscal, que são de fácil
status := "" acesso pela função "FormataTX".

do while asc( retorno ) <> 6 ☛ DLL 16 bits:


fread( porta, @retorno, 1 ) O arquivo "MP20FI.DLL" deve estar no diretório ".\Windows\System".
enddo
☛ DLL 32 bits:
if asc( retorno ) = 21 O arquivo "MP20FI32.DLL" deve estar no diretório ".\Windows\System".
clear
@ 01,01 say “A impressora retornou NAK!!! Erro na”; FUNÇÕES DISPONÍVEIS
+ “ Comunicação."
?
? As DLL de 16 e 32 bits foram projetadas para atender as linguagens de
Return := .F. programação para ambiente Windows 3.x, Windows 95, Windows 98 ou Windows
else NT 4.0 Workstation.
for x := 1 to 2
fread( porta, @retorno, 1 ) Seu funcionamento é baseado em 6 funções:
status = status + retorno
next x FormataTX
endif IniPortaStr
FechaPorta
st1 := asc( substr( status, 1, 1 ) )
Status_Mp20FI
st2 := asc( substr( status, 2, 1 ) )
Le_Variaveis
****** Retorna_ASCII
Return
****** Para utilizarmos a função FormataTX temos que entender o conceito de Abertura
e Fechamento de Protocolo.

Abertura de Protocolo

Define-se por abertura de protocolo os seguintes caracteres ASCII:

Caracter 27 seguido de “|”, ou seja ESC seguido de PIPE.

Exemplo em Visual Basic:

abre_protocolo = Chr(27) + “|”

69 70
Fechamento de Protocolo Tipo de retorno: Inteiro

Define-se por fechamento de protocolo os seguintes caracteres ASCII: menor ou igual a 0 = problemas ao tentar abrir a porta de comunicação.
1 = porta de comunicação iniciada sem problemas.
Caracter “|” seguido de 27, ou seja PIPE seguido de ESC.
FechaPorta()
Exemplo em Visual Basic:
Esta função tem por objetivo fechar a porta serial encerrado a comunicação com
fecha_protocolo = “|” + CHR(27) a impressora.

Exemplo em Visual Basic:


FUNÇÕES
Private Sub Sair_Click()
FormataTX (comandos a serem enviados) Retorno = FechaPorta()
End
Esta função tem por objetivo enviar os comandos para impressora, sendo que End Sub
os mesmo devem usar uma formatação especial.
Tipo de retorno: Inteiro
Abertura de Protocolo + seqüência de comandos separados por PIPE +
Fecha Protocolo 0 = Problemas ao tentar liberar porta
1 = Sucesso
Exemplo em Visual Basic:
Status_Mp20Fi ( Var1 as integer, Var2 as integer, Var3 as integer, Var4 as integer )
Private Sub LeituraX_Click()
porta = IniPortaStr(“COM1”) Esta Função retorna o Status da Impressora. Ela necessita de 4 (quatro) variáveis
buffer = Chr(27) + “|06|” + Chr(27) do tipo integer.
retorno = FormataTX(buffer)
fechaFechaPorta() Descrição do conteúdo destas variáveis:
End Sub
Var1 - Retorno da Função FormataTX que poderá ser 0 ou 1 ou -2.
Tipo de retorno: Inteiro Var2 - Retorna o ACK ou NAK da Impressora
Var3 - Retorna o ST1 da Impressora
0 = Sucesso Var4 - Retorna o ST2 da Impressora
1 = Erro de comunicação física.
-2 = Parâmetro inválido. Observação: Estes parâmetros devem ser passados como ByRef, pois a DLL
-3 = Versão antiga do firmware (não suporta o novo comando) irá modificar o conteúdo real da Variável passada.

IniPortaStr (porta a ser estabelecida comuniação) Exemplo em Visual Basic:

Esta função tem por objetivo abrir a porta serial estabelecendo comunicação Private Sub Sair_Click()
com a impressora. Status = Status_Mp20FI(Retorno, Ack, St1, St2)
End
Exemplo em Visual Basic: End Sub
Sub main()
Retorno = IniPortaStr(“COM1”)
Abre_Protocolo = CHR(27) + “|”
Fecha_Protocolo = “|” + Chr(27)
Menu_Principal.Show
End Sub

71 72
Le_Variaveis (ByVal var As String) As Integer Public Declare Function FechaPorta Lib "MP20FI32.DLL" () As Integer

Esta Função retorna informações, solicitadas pelo seu aplicativo, da Impressora. Public Declare Function Status_Mp20FI Lib "MP20FI32.DLL" (ByRef Retorno
As Integer, ByRef Ack As Integer, ByRef St1 As Integer, ByRef St2 As
Escreve na variável passada o valor retornado pelo último comando de Retorno Integer) As Integer
de Variáveis enviado para a Impressora, de maneira que, para pegar o numero de série
da Impressora, envie o comando normalmente, e logo depois chame esta Função. Public Declare Function Le_Variaveis Lib "MP20FI32.DLL" (ByVal Variavel
As String) As Integer
Exemplo em Visual Basic:
Public Declare Function Retorna_ASCII Lib "MP20FI32.DLL" (ByVal Flag
Private Sub Sair_Click() As Integer) As Integer
var = Space(3000)
a = Le_Variaveis(var) PADRÃO DE CHAMADA
End
End Sub
Importante:
Observação: esta string deve ser passada como ByVal e antes da chamada à
esta função, deve ser inicializada com espaço de 3000 bytes dentro da mesma, pois As “DLLs” usam o padrão de chamada “Pascal”, na qual os argumentos das
será modificado o conteúdo real desta Variável. funções são colocados na pilha da esquerda para a direita.

Retorna_ASCII (ByVal Flag As Integer) As Integer Repare que, se você utilizar um padrão de chamada diferente, os argumentos da
função não serão corretamente lidos pela DLL, uma vez que os argumentos são
Esta Função converte os caracteres retornados pela impressora para o formato colocados na pilha de outra forma.
ASCII, usado, principalmente, com os comandos que não trazem nesse formato. Onde
“0” corresponde ao retorno no formato padrão da impressora e “1” no formato ASCII Em Delphi 32 bits, por exemplo, o padrão utilizado é “fastcall”, onde os argumentos
passado pela Função. são colocados nos registros do microprocessador. A solução é declarar o padrão “pascal”
explicitamente, utilizando a palavra reservada “stdcall”, conforme o exemplo abaixo:
Exemplo em Visual Basic:
Function ComandoTX (BufTrans:PChar; TamBufTrans:Integer):Integer; stdcall; far;
Private Sub Sair_Click() external
x = Retorna_ASCII(1)
End Sub Na linguagem “C”, o modo natural não é o formato “Pascal”. Há uma chave de
compilação que pode ser usada para transformar todas as chamadas para “Pascal”. A
rotina “main”, porém, deve estar na forma original do “C”, e, para isto, deve-se utilizar
COMO DECLARAR A UTILIZAÇÃO DA DLL
uma palavra reservada, que pode variar de compilador para compilador.

Deve ser indicada a utilização da DLL e suas respectivas funções internas. Cada Em Visual C++ 1.5, por exemplo, proceda conforme descrito a seguir:
linguagem tem seus respectivos parâmetros a serem chamados. Consulte sempre o
manual de programação de sua linguagem para Windows. Nas opções de compilação do projeto (menu “options\project\compiler\Code
Generation\Calling Convention”), alterar opção para Pascal.
Exemplo em Visual Basic utilizando DLL de 32 bit’s:
Detalhe:
Public Declare Function FormataTX Lib "MP20FI32.DLL" (ByVal Retorna
As String) As Integer A função “main” deve continuar no padrão “C”. Para isso, declare assim:

Public Declare Function IniPortaStr Lib "MP20FI32.DLL" (ByVal Abre As Void_Cdecl Main()
String) As Integer
Verifique a documentação do seu compilador quanto a este item.

73 74
CAPÍTULO 20 ............................................... IMPORTANTE
COMUNICAÇÃO DIRETA COM A IMPRESSORA !&
& STX (02): este byte, SEMPRE possui o mesmo valor, ou seja, 02.

PROTOCOLO DE COMUNICAÇÃO SERIAL !&


&NBL e NBH

É passado o byte 04 + a quantidade de parâmetros do comando.


Através deste Protocolo, você poderá obter uma comunicação direta com a
impressora, sem a utilização de DRIVERS.
Observação:
Observação: este Protocolo poderá ser utilizado somente por linguagens de
programação que consigam ler o sinal de RTS/CTS para realizar a comunicação com !"" Se o comando não possuir parâmetros, deverá ser enviado somente “04”.
impressora.
No exemplo da Leitura “X” (comando “06”), não possui parâmetros, neste caso
Este Protocolo é estruturado em blocos, e o aplicativo deverá transmitir à você expressa a quantidade 04 em dois bytes (00,04), sendo “00” o byte mais significativo
impressora Fiscal a seguinte seqüência de bytes: (NBH) e “04” o byte menos significativo (NBL).

STX (Start of Text) ....................... : Byte indicativo de início de transmissão - inicio !" Se o comando possuir parâmetros, deverá ser somado, junto ao “04”, a
do texto (02h). Sempre 02 (hexadecimal). quantidade dos parâmetros.

NBL (Número do Byte Baixo) ..... : Byte menos significativo, da soma do número Caso o resultado for maior ou igual a 256, o mesmo deverá ser dividido por 256.
de bytes que serão enviados (soma do byte Sendo a parte inteira o byte mais significativo (NBH) e o resto o byte menos significativo
CMD, CSL e CSH). (NBL).

NBH (Número do Byte Alto) ........ : Byte mais significativo, da soma do número de Exemplo:
bytes que serão enviados (soma do byte CMD,
CSL e CSH). Na Venda de um Ítem qualquer (comando 09) estão sendo passados como
parâmetros: CÓDIGO com 13 bytes, DESCRIÇÃO com 29 bytes, ALÍQUOTA com 2 bytes,
CMD (Comando) ........................ : Seqüência de bytes que compõem o comando QUANTIDADE INTEIRA com 4 bytes, VALOR UNITÁRIO com 8 bytes e o DESCONTO
e seus parâmetros. PERCENTUAL com 4 bytes. A soma resultou em 60 bytes sem o “04” (o resultado total
é 64 bytes). Você expressa 64 em dois bytes da seguinte maneira: 00,64 onde, “64” é o
CSL (Check Sum Baixo) ............ : Byte menos significativo, da soma dos valores NBL e “00” é o NBH.
dos bytes que compõem o comando e seus
parâmetros (CMD). !&
&CMD
CSH (Check Sum Alto) ............... : Byte mais significativo, da soma dos valores Comando a ser enviado mais os seus parâmetros.
dos bytes que compõem o comando e seus
parâmetros (CMD). No exemplo da Leitura “X”, o comando é 1B 06 sem parâmetros.

Veja a maneira de enviar o comando, observando o exemplo abaixo: No exemplo de uma Venda de um Item qualquer, será passado o comando 1B 09
mais os parâmetros, citados no exemplo anterior.
Leitura “X”
!&
&CSL e CSH
STX NBL NBH CMD CSL CSH Serão somados todos os valores dos bytes, desde seu comando (1B) até o
02 04 00 1B 06 21 00 último parâmetro. Neste caso, se o resultado da soma ultrapassar o valor 256, o mesmo
deverá ser dividido por este valor. A parte inteira da divisão será o CSH e o resto será
CSL.

75 76
Exemplo: Parâmetros:

Venda de Item (& CÓDIGO - “0000000000001” (total de 13 caracteres).


48 48 48 48 48 48 48 48 48 48 48 48 49
Comando: 1B 09
Parâmetros: (&DESCRIÇÃO - “Caneta” (total de 29 caracteres).
67 97 110 101 116 97 32 32 32 32 32 32 32 32 32 32 32 32 32 32
(& CÓDIGO - “0000000000001” (total de 13 caracteres). 32 32 32 32 32 32 32 32 32
30 30 30 30 30 30 30 30 30 30 30 30 31
(&ALÍQUOTA - “FF” (total de 2 caracteres).
(&DESCRIÇÃO - “Caneta” (total de 29 caracteres). 70 70
43 61 6E 65 74 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 (&QUANTIDADE INTEIRA - “15” (total de 4 caracteres).
48 48 49 53
(&ALÍQUOTA - “FF” (total de 2 caracteres).
46 46 (&VALOR UNITÁRIO - “R$ 0,12” (total de 8 caracteres)
48 48 48 48 48 48 49 50
(&QUANTIDADE INTEIRA - “15” (total de 4 caracteres).
30 30 31 35 (&DESCONTO POR PERCENTUAL - “0%” (total de 4 caracteres)
48 48 48 48
(&VALOR UNITÁRIO - “R$ 0,12” (total de 8 caracteres)
30 30 30 30 30 30 31 32 Somando apartir do comando 27 09 até o último parâmetro do DESCONTO
PERCENTUAL, chegamos ao resultado 2902.
(&DESCONTO POR PERCENTUAL - “0%” (total de 4 caracteres)
30 30 30 30 Neste caso, o resultado 2902 deverá ser dividido por 256, sendo que a parte
interia (resultante em 11) será CSH e o resto (resultante em 86) será CSL.
Somando a partir do comando 1B 09 até o último parâmetro do DESCONTO
PERCENTUAL, chegamos ao resultado B 56, ou 0B 56, onde o 56 é CSL e 0B é CSH. Observe o exemplo do cálculo:

STX = 02 27 + 09 + 48 + 48 + 48 + 48 + 48 + 48 + 48 + 48 + 48 + 48 + 48 + 48 + 49 + 67 + 97
+ 110 + 101 + 116 + 97 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 32
NBL = 40 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 32 + 70 + 70 + 48 + 48 + 49 +
53 + 48 + 48 + 48 + 48 + 48 + 48 + 49 + 50 + 48 + 48 + 48 + 48 = 2902
NBH = 00

CMD = 1B 09 30 30 30 30 30 30 30 30 30 30 30 30 31 43 61 6E 65 74
61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
46 46 30 30 31 35 30 30 30 30 30 30 31 32 30 30 30 30

CSL = 56

CSH = 0B

Caso estes valores (expressos em HEXADECIMAL) fossem somados em


valores DECIMAIS, o exemplo ficaria assim: STX = 02

Comando: 27 09 NBL = 64

NBH = 00

77 78
CMD = 27 09 48 48 48 48 48 48 48 48 48 48 48 48 49 67 97 110 101 116
97 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 APÊNDICE I.....................................................
70 70 48 48 49 53 48 48 48 48 48 48 49 50 48 48 48 48
FILOSOFIA DE FUNCIONAMENTO
CSL = 86
Apesar da utilização da Impressora Fiscal praticamente isentar o aplicativo de
CSH = 11 qualquer exigência fiscal, existem algumas condições mínimas que devem ser
respeitadas para que a sua solução não tenha problemas com o fisco, e que estão
relacionadas abaixo:
1) Os registros dos itens vendidos na impressora, devem ser feitos
concomitantemente com a venda, por isso entende-se que as informações do cupom
fiscal não devem ser bufferizadas e enviadas para a impressora somente ao final da
venda ao consumidor. Isto é exigido para que não haja a possibilidade no aplicativo da
não emissão do cupom fiscal.

2) No início e término das bobinas deve ser feita uma Leitura “X”, para isso é
interessante monitorar as situações de pouco papel e fim de papel.

3) A Leitura da Memória Fiscal em meio magnético pode ser feita pelo aplicativo,
ou deve existir no diretório raiz “C:\” ou em um disquete o programa para Leitura. Este
programa é fornecido no Disquete que acompanha o produto.

4) O banco de dados dos itens que o estabelecimento comercializa deve estar


disponível para fins de fiscalização na forma de arquivo texto com os campos “Código
do Item”, “Descrição do Item” e “Situação Tributária”. (Isto não consta no Convênio 156/
94 mas deverá constar no futuro.)

Abertura do ECF

1. Verificar se é possível estabelecer comunicação com a impressora. (Pode se


utilizar o comando ESC 19)

2. Verificar a data do movimento (ESC 35 27), se esta for diferente de zero ainda
não foi efetuado o fechamento do ECF.

3. Verificar se a data atual do ECF (ESC 35 23), e compará-la com a do micro, se


existir uma diferença além de um limite tolerável (por exemplo 30 min.) solicite
intervenção técnica no equipamento ou acerto da hora do micro.

4. Leia as alíquotas programadas no ECF (ESC 26), verifique se as alíquotas


necessárias aos itens cadastrados no sistema estão presentes na impressora. Caso
hajam alíquotas faltando adicione-as (ESC 07). Crie uma tabela de referência cruzada
entre as alíquotas necessárias para a aplicação e as que estão cadastradas na
impressora.

Ex: No banco de dados existem itens em 3 classes de tributação 5,00%(ISS),


12,00% e 25,00%. Em duas impressoras diferentes as alíquotas programadas são as
seguintes:

79 80
3. Emita possíveis relatórios gerenciais.
TOTALIZADOR IMPRESSORA 1 IMPRESSORA 2
01 T01=12,00% IS01=5,00%
4. Execute a Redução Z.
02 T02=05,00% T02=17,00%
03 T03=17,00% T03=12,00%
COMENTÁRIOS GERAIS
Através da leitura das informações sobre as alíquotas e vinculação ao ISS é
possível reprogramar no caso da impressora 1 T02 para IS02. 1. Recebimentos Não Sujeitos ao ICMS podem ser utilizados por exemplo para
Conta de Luz, Água, Carnê, etc. existem contadores específicos para estas
De posse das informações acima o aplicativo iria vender corretamente tanto na operações que podem servir para contar o número de operações deste tipo
impressora 1 quanto na 2, uma venda de 17,00% na impressora 1 seria feita em T03 e executadas.
na 2 em T02.
2. Com respeito ao Arredondamento/Truncamento.
Caso hajam alíquotas ainda não programadas a aplicação pode programá-las
neste momento. Refere-se exclusivamente à multiplicação efetuada na venda de item com
quantidade fracionária.
5. Verifique as informações que possam ser relevantes do comando de retorno
de variáveis (ESC 23H), tais como “Versão do Firmware”, “Moeda”, “Loja”, Exemplo:
“Caixa”, “Clichê” etc.
Quantidade .............. 1,249 kg
6. Efetue as Programações Iniciais necessárias (veja no capítulo 5 os comandos Valor unitário ............ R$ 2,00 / kg
de inicialização.). Por exemplo horário de verão, no dia em que houver a entrada
ou a saída do horário de verão. Troca do símbolo da moeda. Com arredondamento:

7. Emita uma Leitura X. Valor Total ................. R$2,50

EMISSÃO DO CUPOM FISCAL Com Truncamento: (default)

Valor Total ................. R$2,49


Refira-se aos Comandos do Cupom Fiscal (Seção -01- Operação).
3. O cálculo do desconto/acréscimo quando percentual é sempre feito truncando-
1. Abra o Cupom Fiscal;
se os restos possíveis na terceira casa. Quando for por valor, isto não ocorre.
2. Registre os itens no totalizador devido. Pode ser do ICMS ou do ISS;

3. Cancele os itens caso necessário;

4. Feche com ou sem formas de pagamento;

5. O campo de mensagens promocionais pode ser utilizado para a impressão


de dados do consumidor;

6. Efetue o cancelamento do cupom caso necessário;

Fechamento do ECF

1. Este procedimento deve ser executado até às 02:00 do dia seguinte ao do


movimento.

2. Feche cupons/relatórios possivelmente abertos.

81 82
LÓGICA DE TRATAMENTO
APÊNDICE II...................................................
TRATAMENTO DE RETORNO Cada byte é composto de 8 bits. Cada bit dentro do byte tem um bit 7 - 128
valor, conforme a tabela a seguir: bit 6 - 64
bit 5 - 32
O valor recebido da impressora para ST1 e/ou ST2 deve ser bit 4 - 16
comparado com cada bit. bit 3 - 8
bit 2 - 4
As linhas abaixo são uma forma de você desenvolver um trecho de bit 1 - 2
código para saber quais bits estão "setados": bit 0 - 1

If ST1 >= 128 // bit 7


Mensagem := "fim de papel"
ST1 = ST1 - 128
Todos os comandos enviados à impressora possuem bytes de retorno, que EndIf
significam o estado atual após o envio. Cada byte é tratado da seguinte maneira: If ST1 >= 64 // bit 6
Mensagem := "pouco papel"
1) Solicitando o seu estado atual: ST1 = ST1 - 64
ACK ST1 ST2 EndIf
If ST1 >= 32 // bit 5
2) Solicitando informações de retorno: Mensagem := "erro no relógio"
ACK ST1 ST2 [bytes de retorno] ST1 = ST1 - 32
EndIf
Obs.: Alguns comandos de retorno mostram seus bytes entre o ACK e o ST1.
... // Insira os demais "bits" aqui.
DEFINIÇÃO DOS BYTES DE RETORNO
If ST1 >= 2 // bit 1
Mensagem := "cupom aberto"
ACK (06) .................. Byte indicativo de recebimento correto. ST1 = ST1 - 2
ST1 e ST2 ................ Bytes de estado da impressora. EndIf
NAK (15h ou 21d) .... Byte indicativo de recebimento incorreto. If ST1 >= 1 // bit 0
Mensagem := "número de parâmetros do comando invalido"
ST1 ST2 ST1 = ST1 - 1
bit 7 fim de papel. bit 7 tipo de parâmetro do comando inválido. EndIf
bit 6 pouco papel. bit 6 memória fiscal lotada.
bit 5 erro no relógio. bit 5 erro na memória RAM CMOS não
volátil.
bit 4 impressora em erro. bit 4 alíquota não programada. Teste o exemplo acima com ST1 = 66, e repare que você terá dois erros, pouco
bit 3 primeiro dado do comando bit 3 capacidade de alíquotas programáveis papel (64) e cupom aberto (2).
não foi ESC. lotada.
bit 2 comando inexistente. bit 2 cancelamento não permitido Obs: A mesma lógica se aplica para ST2.
bit 1 cupom aberto. bit 1 CGC/IE do proprietário não programa-
dos.
bit 0 número de parâmetros do bit 0 comando não executado.
comando inválido.

83 84
TABELA DE CARACTERES - ASCII, DECIMAL E HEXADECIMAL

85
Impressora Fiscal :: MP-40 FI II
Revisão 1.0 :: cód. 5714

Leia atentamente
este manual antes de
utilizar este produto.
:: Impressoras Fiscais

:: Mini Impressoras

:: Leitores

:: Microterminais
::Impressora Fiscal

MP-40 FI II
:: Pinpad

:: Customer Display

:: Gaveta

:: Blocos Impressores

:: Terminal de Consulta

:: Mecanismos Impressores

Bematech Ind. e Com. de Equip. Eletrônicos S.A.


Estrada de Santa Cândida, 263
Curitiba / PR / Brasil / 82630-490
tel.: 0800 41 6444 / fax.: 41 356 9579
sac@bematech.com.br
www.bematech.com.br

Você também pode gostar