Skip to main content

Stampanti Fiscali Epson FP: Protocollo e Configurazione

Questa guida copre la configurazione e il protocollo di comunicazione delle stampanti fiscali Epson FP-81II e FP-90III utilizzate dalla piattaforma POS. Il driver EpsonFpDriver comunica via socket TCP sulla porta 9100.

Connessione TCP Socket

La stampante viene raggiunta via rete TCP. I parametri di connessione sono:

  • Porta: 9100 (default Epson FP)
  • Timeout connessione: 5 secondi
  • Timeout risposta: 10 secondi per singolo comando

Il driver apre una connessione per ogni transazione e la chiude al termine. Non mantiene connessioni persistenti per evitare conflitti con altri client.

Formato PDU (Protocol Data Unit)

Ogni comando segue il formato:

STX (0x02) + CNT (2 char) + IDEN ('E') + CMD (4 char) + DATA + CKS (2 char) + ETX (0x03)
  • CNT: contatore sequenziale (01-99, ciclico)
  • IDEN: identificativo mittente, fisso E
  • CMD: codice comando a 4 cifre
  • DATA: payload specifico del comando
  • CKS: checksum = somma ASCII del payload % 100, codificato come 2 cifre ASCII

Comandi Principali

ComandoDescrizioneData format
1074Status inquiryOP (2 char)
1080Riga venditaOP + DESC (20) + QTY (7) + PRICE (9) + DEP (2) + ALIGN (1)
1083Sconto/maggiorazioneOP + DESC (20) + AMN (9) + TYPE (1) + DEP (2) + ALIGN (1)
1084PagamentoOP + LABEL (20) + AMOUNT (9) + CODE (3) + ALIGN (1)
1085Apertura scontrinoOP (2 char)
1086SubtotaleOP + FLAG (1) + DEP (2)
1087Chiusura scontrinoOP (2 char)
2001Rapporto XOP (2 char)
3001Chiusura ZOP (2 char)

Regola critica: DESC a 20 caratteri

Per i modelli FP-81II, il campo descrizione (DESC) deve essere esattamente 20 caratteri, troncato e con padding a destra. Usare una lunghezza diversa (es. 42 caratteri) causa l'errore ERR01.16 ("NON PREVISTO").

Formato AMN per comando 1083

Il valore AMN (importo sconto) e espresso in centesimi come intero a 9 cifre. Lo stesso formato si applica al campo PRICE del comando 1080 e AMOUNT del comando 1084. Esempio: 5.50 euro = 000000550.

Codici pagamento (comando 1084)

CodiceMetodo
000Contanti
001Pagamento elettronico (carta)
002Buono pasto / Ticket

Formato Risposta e Rilevamento Errori

La risposta segue lo stesso formato PDU. Per distinguere una risposta OK da un errore:

Risposta OK: STX + CNT(2) + IDEN(1) + CMD(4) + DATA + CKS(2) + ETX

Risposta Errore: STX + CNT(2) + IDEN(1) + "ERR" + TIPO(2) + CODICE(2) + CKS(2) + ETX

Per rilevare un errore, rimuovere STX/ETX, saltare i primi 3 caratteri (CNT + IDEN) e verificare se il corpo inizia con ERR.

Errori comuni

CodiceSignificatoCausa tipica
ERR01.16NON PREVISTOLunghezza dati errata (DESC non 20 char)
ERR01.01Comando non riconosciutoCMD invalido
ERR03.xxStato stampanteCoperchio aperto, carta esaurita, memoria piena

Status Inquiry (1074)

Il comando 1074 restituisce un campo fpStatus di 5 cifre:

PosizioneSignificatoValori
0Stampante0=OK, 2=carta quasi finita, 3=offline
1Memoria0=OK, 2=da formattare, 5=piena
2Giornata0=aperta, 1=chiusa
3Documento0=fiscale aperto, 1=chiuso
4Registrazionestato registrazione

FAQ

Quale porta di rete usano le Epson FP? La porta standard e 9100. Verificare che non sia bloccata dal firewall e che la stampante sia sulla stessa VLAN del POS.

Perche ricevo ERR01.16 su ogni riga? Il campo DESC deve essere esattamente 20 caratteri. Verificare che il padding sia corretto: desc.padRight(20) in Dart, non padEnd(42).

Come configuro i reparti IVA? Nel fiscalConfigJson del PrinterDevice, impostare la mappa vat_map (es. {"22": 1, "10": 2, "4": 3, "0": 4}) che associa l'aliquota IVA al numero di reparto della stampante.

Vedi Anche

Questa pagina ti è stata utile?