Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Serielle Kassenschublade ansteuern: Was bedeutet z.B "ESC p" (https://www.delphipraxis.net/59202-serielle-kassenschublade-ansteuern-bedeutet-z-b-esc-p.html)

King555 19. Dez 2005 12:17


Serielle Kassenschublade ansteuern: Was bedeutet z.B "E
 
Ich muss eine serielle Kassenschublade per Delphi ansteuern. Im Handbuch zur Schublade steht, ich muss den Befehl "ESC p" senden. Was genau bedeutet das? Ich habe eine Routine, mit der ich einzelne Chars senden kann. Ich habe folgendes versucht:

SerialXmit(FSerialConn, #27);
SerialXmit(FSerialConn, 'p');

Aber das scheint nicht zu funktionieren.

Hat jemand eine Ahnung, wie man diese Befehle eingeben muss?

Der_Unwissende 19. Dez 2005 12:48

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Hi,
hast du denn schon mal mit RS232 gearbeitet? Insbesondere gilt hier natürlich mit der Funktion die du hast. An sich ist es schon richtig, dass man in der Regel nur Bytes (häufig als Character) überträgt, gut mehr geht eh nicht. Wichtig bei RS232 ist es, dass dein FSerialConn auch verbunden ist und die Daten der Verbindung (Flusskontrolle, Datenbits, Parität, StoppBits, Baudrate) stimmen. Dann kann es auch schon am Kabel scheitern, einige Komponenten erwarten die Standardt Seriellen Kabel, andere Nullmodem oder oder oder. Bei ganz einfachen Kabeln ist häufig nur ein GND (glaube die 5 oder so?) und die 2 und 3 (TX & RX) verkabelt.

Und hat die Kasse noch eine Angabe über Antworten? Also kann es sein, dass die Kasse etwas antwortet? Ach als letzten Tipp mal soweit, schau mal nach ob das ganze über z.B. das Hyperterminal funktioniert. Häufig erwarten Programme noch ein Zeichen, um einen Befehl zu akzeptieren, sende einfach mal ein CR + LF nach.

Mehr fällt mir erstmal nicht ein,

Gruß Der Unwissende

King555 19. Dez 2005 13:00

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Ich habe schonmal mit der seriellen Schnittstelle gearbeitet, allerdings ist das schon länger her und besonders viel habe ich damit nicht gemacht.

Folgendes steht im Handbuch:

Zitat:

Drawer Kick-out connector ( optional module )
The pulse speficified by ESC P is output to this connector. The host can confirm the status
of the input signals by using the DLE EOT, ESC u, GS r commands.
To Pin assignments of the drawer kick-out connector refer to table below :
Pin No. Signal Name Signal Direction
1 GND -
2 Drawer kick-out drive signal Output
3 Drawer open/close signal Input
4 +24V -
5 - -
6 GND -
Drawer Kick-out Connector
Drawer kick-out drive signal
Output signal : Current : 1A (max 10 sec.) or less
The solenoid must be connected from pin 2 to pin 4 of Drawer Kick-out connector.
CAUTION : To avoid an overcurrent, the resistance of the drawer kick-out solenoid must be
24 W or more.
Output waveform : In the following figure is specified the drawer kick-out drive
solenoid current waveform.
t1 (ON time) and t2 (OFF time) are specified by ESC P
t1 x 2ms t2 x 2ms
In ON time phase (t1), output voltage is about 0v.
In OFF time phase (t2), the output signal is at high impedence.
Die Kassenschublade ist an einen Kassenbondrucker angeschlossen. Die Schnittstelle des Druckers ist RS232, die Schnittstelle der Kasse RJ12 (Westernstecker, wie beim Modem). Ich möchte also was an den Drucker senden, der dann die Schublade öffnen soll. Das Handbuch gehört zum Drucker.

Die Verbindung zur seriellen Schnittstelle besteht natürlich. Allerdings habe ich keine Möglichkeit gefunden, die Flußkontrolle einzustellen und ich hoffe einfach mal, das hier die Windows Einstellungen genommen werden (diese sind richtig).

Edit: Ach ja, die Schnittstelle steuere ich hiermit an: http://www.dynamo-software.de/serial/code.htm

marabu 19. Dez 2005 13:41

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Mit "ESC P" kannst du offensichtlich die Dauer des Stromstoßes für das Öffnen der Kassenschublade konfigurieren - Öffnen geht aber wohl anders.

Grüße vom marabu

franktron 19. Dez 2005 14:05

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Also meine Schubladen öffnen sich immer mit ESC A (gross A)

King555 19. Dez 2005 14:32

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
In der Command-Liste steht nichts, was ich zum Öffnen der Schublade senden muss. Es gibt da nur den Eintrag "ESCP p", der für "Generate pulse" steht.

Wären denn dann #27 und 'P' richtig? So funktioniert es zwar nicht, aber wenn das genau so gehen muss, dann liegt der Fehler wohl woanders.

marabu 19. Dez 2005 14:43

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Hast du bemerkt, dass in der Dokumentation "ESC P" geschrieben wird, aber du "ESC p" verwendest? Die Schreibweise ist manchmal kritisch. Vielleicht ist ja wirklich "ESC P" der Befehl zum Öffnen der Schublade, aber du musst noch die beiden Zeitwerte für Strom AN und AUS übergeben.

marabu


EDIT: Hast du ein EPSON-kompatibles POS-Terminal? #27'p025' hält den Strom 50 msecs, damit der Magnetverschluss öffnet. Die genau benötigte Zeit musst du aus deiner Dokumentation heraus lesen - eventuell aus einem Diagramm.

King555 19. Dez 2005 16:07

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Ja, das habe ich bemerkt. In der Doku steht das "P" einmal groß und einmal klein und ich habe natürlich beides einmal probiert.

Und ja, es ist ein Epson kompatibler POS-Drucker.

Da war ein Diagramm in dem Text, den ich auch gepostet habe, da muss ich morgen mal schauen, ob da eine Zeit steht (ich glaube ja).

Zu #27'p025':

Aber ich muss das doch Zeichen für Zeichen senden, oder? Also #27, p, 0, 2, 5.

marabu 19. Dez 2005 16:15

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Zeichen für Zeichen - wobei die letzten beiden Ziffern die Schaltzeit in Vielfachen von 2 msec bedeuten. Wählst du die Zeit zu klein, öffnet die Lade nicht zuverlässig.

marabu

maximov 19. Dez 2005 16:51

Re: Serielle Kassenschublade ansteuern: Was bedeutet z.B &am
 
Zitat:

Zitat von King555
...

Zu #27'p025':

Aber ich muss das doch Zeichen für Zeichen senden, oder? Also #27, p, 0, 2, 5.

Also ich glaube eher, daß du du die '025' als ein byte übertragen musst, da die esc-sequenzen ja eine art binärprotokoll sind. Dh. du hast jetzt evtl. immer 0 gesendet was auch erklärt warum nix passiert. Nur so als idee, denn mein epson verlangt das auch alles binär - logischerweise :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz