Impresoras Fiscal EPSON con VB.NET
Publicado por Dario Almonte Alonzo (5 intervenciones) el 20/01/2012 16:10:49
Buenos Dias
He adquirido una impresora fiscal EPSON TM-T88IV(078) MODEL: M129H para integrarla con nuestro sistema.
Estoy utilizando el EpsonFPHostControlX.ocx y le envio los comandos que estan el el manual y la impresora no realiza ninguna accion.
Para probar la printer utilizamos el FPTerminal y enviamos el comando "CORTAR PAPEL" y esto es lo que estaba en el log:
20/01/2012 9:46:26
Open COM1 38400,N,8,1
HOST --> 02 E2 07 1B 02 1C 00 00 03 30 31 32 37
FP --> ACK
FP --> 02 E2 00 01 1C C0 00 1C 00 00 1C 00 00 1C 03 30 32 31 38
HOST --> 06
Estamos utilizando Visual Basic .net y queremos hacer lo mismmo para probar la comunicacion y enviarle el mismo comando a la impresora, lo hacemos me la siguiente manera:
Dim OK As Boolean
'''Aca uso la misma configuraracion que utilizo con el FPTerminal para hacer pruebas
'''BaudRate=38400,Pueto=COM1 y ProtocOLO Extendido
FPHostControl1.BaudRate = EpsonFPHostControlX.TxBaudRate.br38400
FPHostControl1.CommPort = EpsonFPHostControlX.TxCommPort.Com1
FPHostControl1.ProtocolType = EpsonFPHostControlX.TxProtocolType.protocol_Extended
OK = FPHostControl1.OpenPort() 'Abro el pueto
OK = FPHostControl1.AddDataField(Chr(&H2)) 'Agrego STX 02
OK = FPHostControl1.AddDataField(Chr(&HE2)) 'Agrego E2 numero de secuencia
OK = FPHostControl1.AddDataField(Chr(&H7)) 'Agrego 07
OK = FPHostControl1.AddDataField(Chr(&H1B)) 'Agrego 1B
OK = FPHostControl1.AddDataField(Chr(&H2)) 'Agrego 02
OK = FPHostControl1.AddDataField(Chr(&H1C)) 'Agrego 1C (FLD - Separador)
OK = FPHostControl1.AddDataField(Chr(&H0)) 'Agrego 00
OK = FPHostControl1.AddDataField(Chr(&H0)) 'Agrego 00
OK = FPHostControl1.AddDataField(Chr(&H3)) 'Agrego ETX 03
OK = FPHostControl1.AddDataField(Chr(&H30)) 'Agrego 1er byte Checksum 30
OK = FPHostControl1.AddDataField(Chr(&H31)) 'Agrego 2do byte Checksum 31
OK = FPHostControl1.AddDataField(Chr(&H32)) 'Agrego 3er byte Checksum 32
OK = FPHostControl1.AddDataField(Chr(&H37)) 'Agrego 4to byte Checksum 37
OK = FPHostControl1.SendCommand() 'Envio Comando
OK = FPHostControl1.AddDataField(Chr(&H6)) 'Si se ejecuta corectamente envio un ACK
OK = FPHostControl1.SendCommand() 'Envio el ACK 06
OK = FPHostControl1.ClosePort() 'Cierro el puerto
La variable OK siempre retorna true lo que indica que no hay error en las instrucciones pero aun asi la impresora no realiza ninguna accion.
Espero que puedan ayudarme con este problema o decirme que estoy haciendo mal o facilitarme algun ejemplo que nos pueda servir de base.
Desde ya muchas gracias.
He adquirido una impresora fiscal EPSON TM-T88IV(078) MODEL: M129H para integrarla con nuestro sistema.
Estoy utilizando el EpsonFPHostControlX.ocx y le envio los comandos que estan el el manual y la impresora no realiza ninguna accion.
Para probar la printer utilizamos el FPTerminal y enviamos el comando "CORTAR PAPEL" y esto es lo que estaba en el log:
20/01/2012 9:46:26
Open COM1 38400,N,8,1
HOST --> 02 E2 07 1B 02 1C 00 00 03 30 31 32 37
FP --> ACK
FP --> 02 E2 00 01 1C C0 00 1C 00 00 1C 00 00 1C 03 30 32 31 38
HOST --> 06
Estamos utilizando Visual Basic .net y queremos hacer lo mismmo para probar la comunicacion y enviarle el mismo comando a la impresora, lo hacemos me la siguiente manera:
Dim OK As Boolean
'''Aca uso la misma configuraracion que utilizo con el FPTerminal para hacer pruebas
'''BaudRate=38400,Pueto=COM1 y ProtocOLO Extendido
FPHostControl1.BaudRate = EpsonFPHostControlX.TxBaudRate.br38400
FPHostControl1.CommPort = EpsonFPHostControlX.TxCommPort.Com1
FPHostControl1.ProtocolType = EpsonFPHostControlX.TxProtocolType.protocol_Extended
OK = FPHostControl1.OpenPort() 'Abro el pueto
OK = FPHostControl1.AddDataField(Chr(&H2)) 'Agrego STX 02
OK = FPHostControl1.AddDataField(Chr(&HE2)) 'Agrego E2 numero de secuencia
OK = FPHostControl1.AddDataField(Chr(&H7)) 'Agrego 07
OK = FPHostControl1.AddDataField(Chr(&H1B)) 'Agrego 1B
OK = FPHostControl1.AddDataField(Chr(&H2)) 'Agrego 02
OK = FPHostControl1.AddDataField(Chr(&H1C)) 'Agrego 1C (FLD - Separador)
OK = FPHostControl1.AddDataField(Chr(&H0)) 'Agrego 00
OK = FPHostControl1.AddDataField(Chr(&H0)) 'Agrego 00
OK = FPHostControl1.AddDataField(Chr(&H3)) 'Agrego ETX 03
OK = FPHostControl1.AddDataField(Chr(&H30)) 'Agrego 1er byte Checksum 30
OK = FPHostControl1.AddDataField(Chr(&H31)) 'Agrego 2do byte Checksum 31
OK = FPHostControl1.AddDataField(Chr(&H32)) 'Agrego 3er byte Checksum 32
OK = FPHostControl1.AddDataField(Chr(&H37)) 'Agrego 4to byte Checksum 37
OK = FPHostControl1.SendCommand() 'Envio Comando
OK = FPHostControl1.AddDataField(Chr(&H6)) 'Si se ejecuta corectamente envio un ACK
OK = FPHostControl1.SendCommand() 'Envio el ACK 06
OK = FPHostControl1.ClosePort() 'Cierro el puerto
La variable OK siempre retorna true lo que indica que no hay error en las instrucciones pero aun asi la impresora no realiza ninguna accion.
Espero que puedan ayudarme con este problema o decirme que estoy haciendo mal o facilitarme algun ejemplo que nos pueda servir de base.
Desde ya muchas gracias.
Valora esta pregunta
0