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 | Dim Port As XMCOMCRC.XMCOMMCRC |
2 | Set Port = 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.
Amateur schrieb: > Was aber stimmen muss sind das Format und eine eventuelle Prüfsumme. Das meinte ich mit ungültig.
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.
Verbinde doch den Scanner mal mit HyperTerminal (HTerm) und siehe dir an, was er sendet.
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 | Private Sub Befehl1_Click() |
2 | |
3 | Dim MyObject As XMComCRC.XMCommCRC |
4 | Set MyObject = 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 | End Sub |
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.