TIA Logo! + KTP400 + Barcodescanner

rehmaster

Level-1
Beiträge
12
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes Forum,

ich konnte in der SuFu nichts finden daher hier mein Problem:
Ich habe ein KTP400 zusammen mit einer Logo!8 (8.3) am laufen.
Nun möchte ich am HMI einen USB Barcode-Scanner anschließen (Dieser liest auf Knopfdruck den Code, erzeugt eine Tastatureingabe und bestätigt mit Enter) welcher dann den Barcode in das HMI überträgt. Nun soll auf einer externen Datenbank (noch nicht festgelegt was z.B SQL, xml, usw.) der Datensatz mit entsprechender Nummer gelesen werden und der Wert aus den Spalten auf entsprechenden Variablen geschrieben werden.

Also Spalte A = Barcode, Spalte B soll in Variable 1 (DWord VD14), Spalte C soll in Variable 2 (DWord VD18) usw.

Ist das möglich? Wie ist hier der Weg? Mit dem Barcode Scanner ein Rezept aufrufen welches dann die Werte für Variable 1 - 4 bereits enthält und dann in die SPS schreibt?
Wie bekomme ich dann die Werte aus der DB in die Repzepturen (Also Live weil sich die Datensätze in der DB den ganzen Tag ändern - es geht also nicht das ich über TIA einen Import von Hand starte)

Oder kann ich über einen RaspPi o.ä einen Barcode Scannen und dann einen Wert direkt in die Logo schieben?

Vielen lieben Dank
 
Moin rehmaster,

wenn Du über die USB-Schnittstelle des KTP400 einen Barcodeleser anschließen möchtest muss der Barcodeleser einen Tastaturtreiber haben (sollte aber üblicherweise so sein). Dann muss noch das E/A-Feld im Fokus sein, in den das Leseergebnis eingetragen wird. Also Seite auf dem KTP400 angewählt und EA-Feld ausgewählt bzw. markiert. Danach Barcode lesen.

VG

MFreiberger
 
Ich hab gerade gesehen dann ich über "Ereignisse" die Funktion "ImportiereDatensätze" triggern kann und dort einen Dateiname angeben kann. Dort könnte ich eine CSV aufrufen. Leider bekomm ich es nicht hin hier einen Netzwerkpfad einzugeben. Der wird immer rot hinterlegt. Nur der zugriff auf den USB-Port wird erlaubt.

Ist das ein möglicher ansatz?
 
Lösung selber gefunden:
Im HMI ein Bild anlegen.
E/A Feld "Eingabe/Ausgabe" mit der Internen Variablen "Barcode" anlegen.
WICHTIG: Dieses Element sollte automatisch ausgewählt werden, z.B dadurch das es kein weiteres"Eingabe"-Feld gibt.
Unter "Ereignisse" des E/A-Felds bei "Eingabe abgeschlossen" die Funktion "InvertiereBit" auf die Interne Variable "Barcode Geladen" legen

Zu den HMI-Variablen wechseln:
"Barcode Geladen" auf Bool stellen und bei "Ereignisse" die Funktion "LadeDatensatz" auswählen. Als "Rezeptnummer/-name" dann das erste Rezept auswählen (Bei mir heißt es Maschinendaten"
Bei Datensatznummer/-name dann die HMI_Variable "Barcode" auswählen.

Zu den Rezepturen wechseln und im Rezept "Maschinendaten" unter "Elemente" die Zuordnung der Datensätze vornehmen.
z.B
Name "Wert x-achse", Anzeigenamen "x-Achse", Variable "schreibe_x-achse" der SPS auswählen und einen Standartwert definieren z.B "0"
Name "Wert y-achse", Anzeigenamen "y-Achse", Variable "schreibe_y-achse" der SPS auswählen und einen Standartwert definieren z.B "0"
Name "Bohren", Anzeigenamen "Bohren", Variable "Bohren" der SPS auswählen und einen Standartwert definieren z.B "0"

Dann unter "Datensätze" entsprechende "Programme" anlegen.
z.B Name "In mitte bohren" , Anzeigenamen "1001001" (ACHTUNG: Der Anzeigename ist der Barcode!!!), Nummer "1" x-achse "50", y-achse "50", Bohren "1"

So nun ist es so das wenn der Barcode gescannt wird, dann werden die Variabel des entsprechen Datensatzes entsprechend der zuordnung unter "Elemente" mit den Werten unter "Datensätze" gefüllt.

Was aber wenn der Datensatz nicht in den Rezepturen vorhanden ist?
Wir gehen unter "HMI-Meldungen" auf "Systemmeldungen" und suchen dort die Nr. 290011 "Datensatz %1 nicht vorhanden." und bauen bei "Ereignisse" die Funktion "SetzeBit" ein. Hier setzen wir eine Interne Variable namens "Barcode nicht vorhanden"

Wir wechseln zu der Variable und legen bei dieser unter "Ereignisse" die Funktion "ImportiereDatensätze" an..
Bei Dateinamen geben wir den Pfad ein. Netzwerk z.b. \\PC_Name\Ordner\Maschienendaten.csv
WICHTIG: Bei einen Basic HMI gehen hier nur die USB Pfade und keine Netzwerkadressen.

Datensatznummer auf "0", Überschreiben "Ja" und Statusmeldung auf "Ein"

(Um zu sehen wie die CSV aussehen muss, einmal bei den Rezepturen den Datensatz exportieren und als Maschinendaten.csv im entsprechenden Ordner ablegen.)

Wir gehen unter "HMI-Meldungen" auf "Systemmeldungen" und suchen dort die Nr. 290054 "Import der Datensätze erfolgreich beendet." und legen unter Ereignisse "RücksetzeBit" für die Variable "Barcode nicht vorhanden" an.
und die Funktion "SetzeVariable" für "Barcode" mit Wert "0"

Fertig. Nun wird wenn der Barcode nicht in den Rezepten gefunden wurde, die CSV importiert und es kann erneut gescannt werden.
Wenn jemand eine Idee hat, wie er nach dem Import automatisch erneut versucht den Datensatz zu laden, gerne her.
Wenn ich bei der Systemmeldung 290054 auch die Funktion "InvertiereBit" auf die Interne Variable "Barcode Geladen" lege, hängt die variable im Loop und schaltet schnell zwischen high and low.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die Ausführliche Schilderung Deiner Lösung, klasse.
@Markus, @Blockmove, @rostiger Nagel : Wäre sowas nicht eventuell auch was für einen FAQ-Eintrag, vielleicht nicht speziell für die LOGO, sondern auch S7-1500 und S7-1200?
 
Zuletzt bearbeitet:
Vielen Dank für die Ausführliche Schilderung Deiner Lösung, klasse.
@Markus, @Blockmove, @rostiger Nagel : Wäre sowas nicht eventuell auch was für einen FAQ-Eintrag, vielleicht nicht speziell für die LOGO, sondern auch S7-1500 und S7-1200?
Die Anleitung ist ja rein im HMI
In welchen Variablen am Ende die Datensätze der Rezeptur geschrieben werden ist ja egal.
Das kann jede SPS sein welche mit den Siemens HMIs spricht.
 
Zurück
Oben