Hallo,
ich habe eine Registrierkasse und einen PC. An der Registrierkasse ist
zum einscannen für EAN-Artikel ein Barcodescanner über RS232
angeschlossen.
Ich würde nun gerne vom PC über ein separates RS232-Kabel auf gleich
weiße "EAN-Nummer" an die Registrierkasse sende. Das alles müsste über
VBA realisiert werden.
Gibt es da Möglichkeiten?
Danke
Die Kommunikation mit der seriellen Schnittstelle erfolgt in VBA über
eine extra OCX-Datei namens Mscomm32.ocx. Google einfach mal danach. Da
solltest Du zig Beispiele für die Verwendung finden. Ich persönlich
nutze für die Entwicklung von Anwendungen, die mit der COM-Schnittstelle
interagieren aber lieber VB.NET wo möglich. Das .NET-Framework bietet
bereits fertige Klassen für die Kommunikation mit der Schnittstelle.
Ok vielen Dank schon mal.
Die Idee ist aus einer Access-Datenbank die EAN-Codes an die
Registrierkasse zu übertragen. Deswegen auch VBA.
Keine Ahnung ob da auch VB.NET möglich ist.
Werde ich mir heute Abend mal alles durchlesen.
Habe nun die Registrierkasse über ein Nullmodenkabel an den PC
angeschlossen (Rs232).
Über VBA habe ich dann versucht mit Hilfe von XMcomm die EAN-Codes an
die Registrierkasse zu schicken.
Quellcode sieht folgendermaßen aus:
1
DimPortAsXMCOMCRC.XMCOMMCRC
2
SetPort=CreateObject("xmcomcrc.xmcommcrc")
3
4
Port.CommPort=1
5
Port.Settings="9600,n,8,1"
6
Port.Output="1234567891234"
Ich hatte mir erhofft die Zahlen "1234567891234" an die Registrierkasse
zu senden. Leider reagiert die Registrierkasse nicht.
Bei der Registrierkasse habe ich ebenfalls die Einstellungen auf
"9600,n,8,1" gebracht.
Ich kann auch leider nichts im Internet finden wie sonst ein
"Outputfile" von einem Barcode-Scanner aussieht.
Kennt sich da jemand aus oder hat jemand eine Idee?
Kann mir nicht vorstellen, dass das Outputfile von den Barcode-Scannern
kompliziert ist. Die sind ja eigentlich meißten mit allen Kassen
kompatibel.
Danke
Mfg
Joedot schrieb:> ich habe eine Registrierkasse und einen PC. An der Registrierkasse ist> zum einscannen für EAN-Artikel ein Barcodescanner über RS232> angeschlossen.>> Ich würde nun gerne vom PC über ein separates RS232-Kabel auf gleich> weiße "EAN-Nummer" an die Registrierkasse sende.
fsei??
Bist Du Dir sicher, dass das Scanner Protokoll ist?
Wenn Du "1234567891234" zur Kasse sendest, erscheint mir das etwas zu
wenig. Gibt es da keine "Begin-" und keine "Ende-Sequenz", zumindest ein
Zeilenumbruch oder sogar Zeilenumbruch + Neue Zeile am Ende.
Ich kann mir nicht vorstellen, dass es ungültige EANs gibt.
Du kannst Dir ja sogar Deine eigenen Codes erstellen.
Was aber stimmen muss sind das Format und eine eventuelle Prüfsumme.
Da die meisten Kassen aber ein Display haben, sollte ein geordneter
Meckerer schon drin sein.
Ich würde erstens mal einen gültigen EAN-Code senden, ungültige
Warencodes wird die Kasse vermutlich ignorieren. "1234567891234" ist
schon mal deshalb kein gültiger EAN13-Code, weil die Prüfziffer (13.
Stelle) nicht stimmt. Wenn schon 123... dann sollte es "1234567891231"
sein.
Auf folgender Seite ganz unten gibt es einen Javascript-Rechner, der dir
die Prüfziffer aus den ersten 12 Stellen ausrechnet:
http://www.arndt-bruenner.de/mathe/scripts/pruefziffern.htm
Als zweites wäre, wie bereits erwähnt, die Kenntnis des
Scannerprotokolls wichtig. Das kannst du aber leicht herausfinden, wenn
du den RS232-Anschluss des Scanners an eine PC-Schnittstelle statt an
die Kassa ansteckst. Die gesendeten Daten kannst du dann ja in einem
Terminalprogramm ansehen.
>Ich kann mir nicht vorstellen, dass es ungültige EANs gibt.
Gibt es wohl. Du darfst auch nicht beliebige EAN13-Nummern einfach
selber erfinden. Die Vergabe dieser Nummern ist in Europa eindeutig
geregelt:
http://de.wikipedia.org/wiki/European_Article_Number
Die einzige Freiheit, die du hast, ist die Vergabe der Artikelnummer,
das ist aber nur ein Teil der 13 Stellen.
Danke schon mal für die Infos.
Ich habe heute versucht einen gültigen EAN-Code (1234567891231) zu
senden. Leider reagiert die Kasse immer noch nicht.
Normalerweiße reagiert die Kasse beim einscannen (Barcodescanner) eines
neuen EAN-Codes. Man muss dann nur noch an der Kasse den Preis, Name und
Warengruppe angeben.
Ich denke es scheitert immer noch an dem falschen Scannerprotokoll das
ich sende. Leider habe ich nur keine Ahnung wie so ein Protokoll
aussehen soll...
Joedot schrieb:> Ich denke es scheitert immer noch an dem falschen Scannerprotokoll das> ich sende. Leider habe ich nur keine Ahnung wie so ein Protokoll> aussehen soll...
Dann schalte dich doch endlich mal mit dem PC dazwischen!
die meisten Scanner schicken am Ende der gescannten Zeichenfolge noch
einen Zeilenumbruch (kann man in der Regel am Scanner konfigurieren).
Häng mal in Access beim Senden eines der Zeichen
- vbCr
- vbLf
- vbNewLine
an den EAN-Code.
Das erst ist das sog. Wagenrücklaufzeichen. Das Zweite der eigentlich
Zeilenvorschub und das dritte eine Kombination aus beiden. Unter
Umständen wartet die Kasse auf eines davon. Probier die mal alle drei
durch.
Habe Hterm installiert. (Danke für Info)
Danach habe ich das Nullmodenkabel an Com1 und Com2 (gleicher PC)
angeschlossen.
Mit folgendem Quellcode aus Access bzw. VBA habe ich "1234567891231" +
vbCrLf gesendet:
1
PrivateSubBefehl1_Click()
2
3
DimMyObjectAsXMComCRC.XMCommCRC
4
SetMyObject=CreateObject("xmcomcrc.xmcommcrc")
5
MyObject.Settings="9600,8,n,1"
6
MyObject.Handshaking=comXOnXoff
7
MyObject.CommPort=1
8
MyObject.PortOpen=True
9
MyObject.RTSEnable=True
10
MyObject.Output="1234567891231"+vbCrLf
11
12
EndSub
Ergebnis war das ich in Hterm 1234567891231 + "newline" auf Com2
empfangen konnte.
Also senden aus Access müsste funktionieren!
Da ich heute leider nicht an den Barcodescanner ran komme werde ich erst
morgen/übermorgen testen können was der Barcodescanner senden.
Aber danke schon mal für eure Hilfe!
Hi,
habe nun endlich mal messen können.
Habe versucht den Scanner an den PC anzuschließen und was einzuscannen.
Leider ging dies nicht da der Scanner scheinbar seine Stromversorgung
durch den Com-Port der Registrierkasse bekommt.
Glücklicherweise konnte ich den Rs232-Stecker an dem Scanner
abschrauben. Angelötet ist Pin 1, Pin2, Pin 3, Pin 5, Pin 7 und Pin 9.
Ich habe nun mal die Pins an der Registrierkasse mit einem Multimeter
durchgemessen. Spannung habe ich jeweils gegen Pin 5 (GND?) gemessen.
Ergebnis (Pins an der Registrierkasse):
Pin 1: 0V
Pin 2: 0V
Pin3: -5,5V
Pin 5: GND (?)
Pin 7: -5,5V
Pin 9: +5V
Danach habe ich den Scanner an die Registrierkasse angeschlossen und
direkt an den Lötverbindungnen des RS232-Stecker gemessen
Ergebnis:
Pin 1: -6V
Pin 2: 5,5V
Pin3: 5,5V
Pin 5: GND (?)
Pin 7: -5,5V
Pin 9: -5V
Mit den Vorzeichen (+ bzw. -) bin ich mir nicht sicher da ich das
Gefühl habe manchmal sind die anders.
Glaub ist alle etwas komplizierter als ich mir erhofft habe.
Kann mir jemand helfen oder Tipps geben.
Ziel ist immer noch die EAN-Codes per Rs232 (Nullmodenkabel) von PC zur
Kasse zu schicken.
Löte dir doch einfach einen 1:1 zwischenstekcer, an dem machst du dir
einen Abzweig der (von Scannerseite gesehen) TX Leitung und hängst die
am PC an die RX Leitung (ggf. Widerstand zur Strombegrenzung vorsehen
falls doch unerwartete Spannungspegel auftreten). Dann kannst du die
Sache "belauschen" und der Scanner bekommt trotzdem alle
Daten/Spannungen von der Kasse.
Häufig hilft auch das Handbuch weiter, ggf. ist das gar kein "echtes"
RS-232 und du brauchst noch einen Adapter in Form eines vorgefertigten
Bausteins oder eines uC...
So habe mir heut mal so ein Stecker gebastelt:
Hab an den Pin 2 von Scanner (female-Stecker) ein Kabel gelötet. Die
andere Seite des Kabels habe ich an Pin 2 eines neuen RS232-Steckers
(female) gelötet.
Den neuen Stecker habe ich dann in den PC gesteckt.
Leider konnte Hterm nichts empfangen...
Hab ich was falsch gemacht?
Müsste doch passen da Pin 2 (male) doch "Eingang" am PC ist oder?
Mach mal bitte ein Photo vom Aufbau und besorge dir die Anleitung von
dem Scanner/Kasse, es kann sein das da ganz andere Spannungspegel
herrschen als der PC erwartet.
Joedot schrieb:> Hab an den Pin 2 von Scanner (female-Stecker) ein Kabel gelötet. Die> andere Seite des Kabels habe ich an Pin 2 eines neuen RS232-Steckers> (female) gelötet.
Du hast Masse (GND) vergessen. An 9poligen RS232-Schnittstellen ist das
Pin 5.
Thema noch aktuell.
Bin diese Woche leider nur geschäftlich unterwegs.
Hab mal Firmen angeschrieben und versuche die Anleitung zu bekommen.
Denk aber mehr als die normale Bedienungsanleitung (da steht nichts
drin) geben die nicht raus.
PC/hterm erkenn aber glaub auch Spannungen unter +-12V. Dies dürfte
nicht das Problem sein.
Joedot schrieb:> PC/hterm erkenn aber glaub auch Spannungen unter +-12V.
Das macht nicht das Programm, dafür ist die Hardware der Schnittstelle
zuständig.