![]() |
Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Hallo liebe Programmierer,
ich selbst bin nur Anwender und auf der Suche nach einer Lösung für meine Herausforderung. In diesem Forum bin ich auf eine ähnliche Aufgabenstellung gestoßen, daher meine Hoffnung hier Unterstützung zu erhalten. Ich benötige eine Ausführbare Exe-Datei/Programm (Windows), welche die an unserem Bondrucker Epson TM-T88V angeschlossene Kassenschublade öffnet. Der Bondrucker Epson TM-T88V ist via LAN im Netzwerk eingebunden. Es soll von mehreren Arbeitsplätzen aus die Kassenschublade geöffnet werden können. Im Treiber direkt unter Eigenschaften > Einstellungen > Periph ger. / Betriebsprüfung funktioniert das wie gewünscht, also die 'Hardware' ist betriebsbereit eingerichtet. In dem benutztem Warenwirtschaftssystem kann ich einen Pfad zu einer Ausführbaren Datei bzw. einem entsprechendem Programm samt Parameter zum Öffnen einer Kassensublade hinterlegen, so dass diese dann zum gewünschten Zeitpunkt vom Warenwirtschaftssystem aufgerufen wird und sich dann die Kassenschublade öffnen soll. Und genau diese ausführbare Datei/Programm, die über den Druckeer angeschlossene Kassenschublade öffnet, fehlt mir. Epson liefert mit dem Drucker zwar allerhand mit, jedoch ist es mir bisher nicht gelungen, damit das gewünschte Ziel zu erreichen. Es gibt von Epson Anleitungen für Entwickler, dass es mit 'ESC/POS Commands' funktionieren soll, auch unter 'Step6 Drawer Control' ist eine Art Anleitung aufgeführt. Ich selbst kann damit jedoch überhaupt nichts anfangen. Eine Kassenschuladen-Öffnung in Verbindung mit einem Bon-Ausdruck (im Treiber einstellbar) ist nicht gewünscht, da der erelevante Ausdruck über einen anderen DIN A4-Drucker erfolgen soll. Kann mir jemand von euch helfen? Vielen Dank im Voraus Aksel |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
|
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Achtung , ist über 10 Jahre her dasss ich mich damit beschäftigt have:)
Unter Windows installiert man eine Control Schriftart und sendet dann einen Buchstaben der das Öffnen oder den Papierabschnitt bewirkt Cutting the Paper: The following code causes the printer to cut the paper. Printer.FontSize = 10 'Set up the control font. Printer.FontName = "control" 'Control Font. Printer.Print "F" 'Use special-function character to cut the paper. Printer.EndDoc 'F: Full cut 'P: Partial cut Opening the Cash Drawer: The next example shows how to open the desired cash drawer at the desired speed. Printer.FontSize = 10 'Set up the control font. Printer.FontName = "control" Printer.Print "A" 'Use special-function character to open the cash drawer. Printer.EndDoc 'A: Open drawer 1 at 50ms. 'B: Open drawer 1 at 100ms. 'C: Open drawer 1 at 150ms. 'D: Open drawer 1 at 200ms. 'E: Open drawer 1 at 250ms. 'a: Open drawer 2 at 50ms. 'b: Open drawer 2 at 100ms. 'c: Open drawer 2 at 150ms. 'd: Open drawer 2 at 200ms. 'e: Open drawer 2 at 250ms. } mfg Hannes |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Hmm..
'ESC/POS Commands' können im RAW-Modus an einen Drucker geschickt werden. Ein Tool, welches an eine IP oder Drucker im RAW Modus sendet ist schnell gebastelt. Nur kenne ich die Kommandos für deine Kassenschublade nicht und kann auch nicht testen, da ich das Gerät nicht habe ;) Wird der Bondrucker denn wirklich für die Schublade benötigt? Wenn ich mir die Fotos zu diesem Drucker anschaue, dann ist dass einfach nur ein Drucker ohne Kasse. Vielleicht kann die Kasse auch direkt ohne diesen Drucker angesteuert werden. Edit: Mal das ausprobiert: ![]() oder ![]() |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Ja die Schubladen werden direkt an den Drucker angeschlossen, genauso wie z.b. nen Display
Ohne Drucker sind die quasi nutzlos (oder nur mit schlüssel bedienbar) (10 Jahre Apotheken-Warenwirtschaftssysteme...) Mit den Lan Druckern, kenne ich mich aber nicht aus. Der schnellste weg wird sein, wie es hstreicher beschrieben hat, mit den Control Fonts nen Druckbefehl absetzten. Es gibt aber auch ne API für die Drucker. |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Du musst dem Drucker via RAW Job (Anleitung gibt es hier im Forum) folgendes senden:
#27+'p'+#48+'pz' Dann öffnet die Schublade ;-) Aber, wenn das System 10 Jahre alt ist, so kannste Dir die Arbeit sparen: ab 01.10.2020 wird eine Kasse mit TSE benötigt; sonst macht man sich strafbar :!: |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
|
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
Man kann eine Ausnahme für die BON Pflicht beantragen, aber nicht für die TSE Pflicht! PS: Am Wochenende war erst ein Artikel in der Zeitung zu lesen, das KEIN Betrieb in Hessen eine Ausnahme von der BON-Pflicht genehmigt bekommen hat :thumb: |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
|
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
Hier mal eine Info des Verbands zu diesem Thema In den letzten Wochen waren die Umrüstungen und Neuauslieferungen entsprechend den neuen gesetzlichen Anforderungen einschließlich der Technischen Sicherheitseinrichtung erschwert und teilweise auch unmöglich. Damit wird die Umstellung der Kassensysteme auf die Anforderungen des §146a AO zum 30.09.2020 nicht weniger „sportlich“ als sie es ohnehin schon war. Nach unseren bis Ende April 2020 vorliegenden Informationen gab es in den Behörden bisher keine Überlegungen zu einer Verlängerung der Nichtbeanstandungsregelung zur Umsetzung des §146a AO. Daher haben wir Anfang Mai 2020 den direkten Kontakt mit dem BMF aufgenommen. Hierbei hat unser Gesprächspartner bestätigt, dass man keine Veranlassung sähe, den Termin 30.09.2020 nach hinten zu verlegen. PS: Viel Spass bei der MwSt Umstellung bei 1000 Standorten ;-) |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Merkwürdig ist, dass ich noch nie einen Bon mit den TSE-Text bekommen habe.
Weder bei ALDI, LIDL, EDEKA noch sonstwo. Warten die alle bis zum letzten Tag? |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Scheint so zu sein, ich habe bisher nur einen Bon von einer Pizzeria bekommen mit TSE, der kam aus einer Vectron Kasse. Und der BON war auch noch fachlich falsch (kein PublicKey auf dem BON und auch kein QR-Code [der aktuell nicht Pflicht ist])
|
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Hallo beisammen,
vielen Dank für eure Unterstützung. Den Epson TM-88V ist im LAN via einem Printserver eingebuchen. Wenn ich euch und den Inhalt der gennannten Verlinkungen richtig verstehe, dann erstelle ich jetzt eine Textdatei (z.B. textdatei.dat) mit dem ESC-Kommando 'p025250' und 'schicke' diese per Befehl 'copy /B textdatei.dat \\server\druckername. Ich bin gespannt, ob es funktioniert und berichte dann gerne. Die TSE soll über das Warenwirtschaftssystem gewährleistet werden. So ist zumindest mein Stand heute... Aksel |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Ja, klingt so, als wenn
Delphi-Quellcode:
ausreichen könnte.
copy /B posbefehl.dat \\pos\printername
Zum Erstellen der Datei, mit dem EscapeCode (Steuerzeichen), kannst dich an ![]() Wenn der Drucker eh nicht benutzt wird. Es gibt auch USB-Adapter (eventuell auch für LAN), wo man die Kassenschublade direkt schließen kann, ohne einen Bondrucker dazwischen. Die haben dann manchmal auch eine recht einfache API, wie z.B. eine URL aufrufen um zu Öffnen. Sind die Schubladen denn irgendwie kodiert? Nicht dass da am Ende nur ein Endschalter und ein Öffnerrelais drin stecken (Strom an = Klappe geht auf bzw. Schublade flutscht raus), denn dann könnte man das Ding auch selbst ansteuern. (gibt z.B. fertige Relais-IO-Geräte, die sich einfach via LAN steuern lassen) Einen lokalen Druckertreiber habt ihr installiert, der dann via LAN mit dem PosDrucker redet? Dann kann man via Delphi oder auch z.B. über ein kleines Python-Script den Befehl an den Treiber schicken. ![]() ![]() |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Hallo zusammen,
vielen Dank für eure Unterstützung. Leider ist es mir noch nicht gelungen, die Kassenschublade über den via LAN eingebundenen Bondrucker EPSON TM-88V per ESC-Kommando zu öffnen. Ich habe lt. Anleitung von 'Devil At Work' eine Textdatei per Komandozeile 'Copy /B kassenlade.dat \\SRV-DC\Bondrucker' an den Drucker geschickt - leider erfolglos. In der Textdatei 'kassenlade.dat' (mit Win-Editor erstellt) habe ich per Alt+27 das ESC-Zeichen gefolgt von p025250 hinterlegt. Sieht dann Fertig so aus: ←p025250 (Bei Alt + 27 kommt der '←' heraus). Auch '#27+'p'+#48+'pz'' bzw. ←p0pz brachte leider keinen Erfolg (auch per Copy-Befehl an den Drucker geschickt). Was mache ich bloß falsch? :? Wo finde ich hier im Forum die Anleitung um einen RAW Job an den Drucker zu schicken? Der Bondrucker ist unter \\SRV-DC\Bondrucker erreichbar und an den jeweiligen Clients eingerichtet. Wie bereits geschrieben, kann ich über an den Clients die Kassenschublade über Druckereigenschaften -> Einstellungen -> Perip. ger. -> Betriebesprüfung die Kassenschulade öffnen. Vielen Dank für eure Unterstützung, Aksel |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
Zitat:
Wie bereits geschrieben, kann ich über an den Clients die Kassenschublade über Druckereigenschaften -> Einstellungen -> Perip. ger. -> Betriebesprüfung die Kassenschulade öffnen. |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
wenn auch noch nicht so wie es wohl später mal endgültig sein soll. |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Eigentlich ist das nicht so schwierig:
Delphi-Quellcode:
Die Procedure ist etwas abgekürzt, die anderen Arten der Schubladensteuerung habe ich weggelassen.procedure Tfrmmain.opendrawer(nr:integer); Var FH:THandle; Buff: array[0..5] of char; RetW:DWORD; port:string; cmd:ansistring; acmd:ansistring; p:pansichar; stext,sdrucker:string; begin if dm.Schublade1typ=drawerprinter then // Drucker begin if nr=2 then stext:=dm.Steuertext2 else stext:=dm.steuertext; sdrucker:=dm.Steuertextdrucker; //if (dm.Steuertextoption=2) or (dm.Steuertextoption=1) then begin if (stext='Epson1') or (stext='Epson') then acmd:=#27#112#48#250#250; if stext='Epson2' then acmd:=#27#112#49#250#250; if stext='Bixolon SRP350' then acmd:=#27#112#48#50#250; if stext='Star1' then acmd:=#7; if stext='Star2' then acmd:=#27#7#11#55#7; if stext='Wincor1' then acmd:=#27#48; if stext='Boca' then acmd:='#$1#$C'; p:=AnsiStrAlloc(length(acmd)); p:=StrPCopy(p,acmd); rawdatatoprinter(pwidechar(sdrucker),pbyte(p),length(acmd)); if dm.Schubladedelay>0 then sleep(dm.schubladedelay); end; end; end; |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Moin...:P
Zitat:
|
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
Der Drucker Epson TM-88V, an dem die Kassenlade angeschlossen ist, ist in unserem Netzwerk unter \\SRV-DC\Bondrucker bzw. 192.168.115.21 erreichbar und an den jeweiligen Clients eingerichtet. |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Die erstellte Datei ist auch richtig?
Falls unsicher, an deinen Post anhängen, geht im "erweiterten" Editor. Notfalls als ZIP, weil nicht alles direkt erlaub ist. Der Copy-Befehl hat keinen Fehler geliefert? z.B. als kassenlade.bat oder .cmd
Code:
Und wenn du mal Testhalber etwas ausdrucken lässt, geht das denn wenigstens?
copy /B kassenlade.dat \\SRV-DC\Bondrucker
echo %errorlevel% pause
Code:
bzw. irgendeine Test-Textdatei
print /D:\\SRV-DC\Bondrucker kassenlade.dat
Zitat:
oder aus dem Internet (unicode.org, wikipedia, google) kopieren, aber Steuerzeichen vor dem Leerzeichen sind da nicht drin. Gut, wenn bzw. da du weißt, wie man solche Zeichen mit der Tastatur eingibt (NUM-Block), dann darfst das gern machen. ![]() Im Notfall kann man mit sowas wie HxD nochmal nachsehen, ob das auch stimmt, was man im normalen Editor eingegeben hatte. Ansonsten lassen sich Binärdaten natürlich mit einem Binär-Editor recht einfach erstellen/bearbeiten. :zwinker: |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
|
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Zitat:
Zitat:
|
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Liste der Anhänge anzeigen (Anzahl: 2)
Du hast die Datei als UTF-8 gespeichert, somit sind da am Anfang der Datei noch ein paar zusätzliche Bytes.
Beim Speichern müsstest du unten die Codierung auf ANSI umstellen. Und dein "Steuerzeichen" ist als richtiges Pfeil-Zeichen drin. Als ASCII/ANSI wären die ersten 128 "Zeichen" mit UTF-8 eigentlich identisch, aber dieser Peil stammt aus einer höheren Unicoderegion. Ja, es gibt für alle Steuerzeichen auch Ersatzzeichen, damit Programme sie darstellen können, aber funktional haben die dann natürlich eine ganz andere Bedeutung, halt nur wie ein normaler "Buchstabe". ![]() [edit] Laut der PDF müssten die Werte m/t1/t2 auch als "Char" gespeichert werden, also 100 nicht als "100" sondern als "d". Das hatte ich im Anhang nicht angepasst. (dort nur das ESC) |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
vielen Dank, das ist tatsächlich die Lösung, nun funktioniert es wie gewünscht. Ich schicke Dir gleich noch eine PN :-D Edit: himitsu, dein Postfach ist voll, ich kann dir leider keine Nachricht schreiben... Eine Frage noch: Wie kann man erreichen, dass sich das Fenster der BAT-Datei nach Ausführung automatisch schließt bzw. erst gar nicht öffnet? |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Ist wieder bissl Platz drin.
Beim Start über eine LINK-Datei (wie z.B. im Startmenü oder auf dem Desktop, also Datei>Neu>Verknüpfung), kann man dort Ausführen=Minimiert angeben. Falls nur ein COPY-Befehl, dann kann man auch die BATCH weglassen und
Delphi-Quellcode:
aufrufen.
CMD /C COPY ....
Wenn die BAT/CMD direkt gestartet wurde, nicht aus einem CMD-Fenster aufgerufen, dann sollte sie sich selbst schließen. ansonten geht auch explizit
Delphi-Quellcode:
als letzter Befehl.
EXIT
Bei der Test oben hatte ich
Delphi-Quellcode:
eingefügt, was man weglassen kann, damit es nicht anhält. (war um das ECHO lesen zu können)
PAUSE
Wobei ich meistens die Funktion vo aufrufen prüfe und nur bei einem Fehler reagiere.
Code:
COPY ........
IF ERRORLEVEL 1 PAUSE
Code:
usw.
COPY ........
IF ERRORLEVEL 1 ECHO Fehler > Datei.log |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Liste der Anhänge anzeigen (Anzahl: 1)
Nochmals vielen Dank an alle, die zur Lösung beigetragen haben.
Ein 'Schönheitsfehler' gibt es noch und zwar dass der Drucker immer 3 Zeilen ausdruckt (siehe Anlage). Mir ist unklar, woher der Drucker den aufgeführten Pfad weiß, wo ich die kassenlade.dat ursprünglich entpackt hatte (liegt jetzt woanders auf dem Server). :? -> hat jemand eine Idee? Mit dem Windows Editor kann ich das erforderlich Dateiformat tatsächlich nicht selbst erstellen, auch nicht, wenn ich diese als ANSI-Datei speichere. |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Naja was auch gegangen wäre aber richtig old school ist:
in der cmd Kommandozeile copy con schublade.dat eingeben, enter drücken und die gewünschten Steuerzeichen mittels Alt-<ziffern des num blocks> eingeben. Danach Strg-Z drücken um die Datei abzuschließen. |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Zitat:
Zitat:
PS: Erzähle allen die du triffst, daß Delphi Entwickler, und die Sprache, cool sind. :zwinker: |
AW: Kassenschubladen-Ansteuerung via Epson TM T 88V / LAN
Liste der Anhänge anzeigen (Anzahl: 1)
Laut Handbuch (PDF)
Code:
Bei
1B 70 30 FA FA
-p0úú
Delphi-Quellcode:
gehören die letzten 0250 nicht mehr zum EscapeCode und wären demnach druckbare Zeichen, wie in SKM_C385120061717300.pdf zu sehen.
-p0250250
Und die Option vom Befehl 'p' kann man als Wert/Byte 0 oder Ziffer '0' (Wert 48 / $30) angeben, bzw 1 oder '1' (Wert 49 / $31), aber die Parameter muß man als Werte/Bytes angeben. (hab die Ziffer genommen, da ich die #0 nicht so mochte) Wie gesagt, mit HxD geht es ganz gut. Es ist aus dem eigenen Hause (diesem Forum) und wird von Wikipedia, Heise und Anderen empfohlen. ![]() Sogar ein japanisches Unternehmen und der Weltmarktführer für Serversicherheit (behauptet die Wiki) empfiehlt HxD sowie andere asiatische Sicherheitsexperten. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz