Sonstiges QR-Code über USB Schnittstelle erhalten und am HMI ausgeben? S7-1200 und IOT2050

Carma

Level-2
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Für ein Projekt möchte ich Daten aus einem QR-Code auslesen und auf einem HMI KTP700 anzeigen lassen. Dafür muss der QR-Code vorher umgewandelt und auf seine Inhalte aufgeteilt werden.

Mein Problem ist jetzt, dass ich nicht weiß, ob ich mit dem QR-Code Scanner den ich habe, die Daten auf die SPS laden kann. Der Scanner ist über USB-Schnittstelle an einer IOT2050 angeschlossen.
Ich wollte die Daten auf der S71200 erhalten, mit TIA15.1 bearbeiten und dann auf dem HMI anzeigen.
Ich kann den QR-Code Scanner nicht als Eingang markieren. Kann sein das ich da auch etwas falsch mache. Kenne mich mit TIA nicht ganz so gut aus

Vielen Dank im Voraus für die Hilfe!
 
IoT-Gateway-SIMATIC-IOT2050-Grafik.webp


Wenn ich diese Grafik richtig interpretiere, dann ist doch das Gateway dazu gedacht, Daten aus dem SPS Bereich, anderen Unternehmensbereichen zur Verfügung zu stellen?

Du bräuchtest einen Profinet-fähigen Scanner zB, diesen könntest du in das Netz der Steuerung einbinden und auswerten.

Mit den Gateways hab ich keinerlei Erfahrung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein Profinet fähiger Scanner ist leider etwas teuer. Jetzt wo ich den anderen schon da habe würde ich gerne drum rum kommen, einen neuen zu bestellen. Das IOT habe ich da um auf eine Datenbank zuzugreifen. Da es einen USB-Anschluss hat und mit der SPS verbunden ist, hatte ich die Hoffnung das es darüber funktioniert.
 
Du könntest schauen, ob du den Scanner ans HMI anschliessen kannst. Zum scannen müsstest du dann noch HMI Option+ über Prosave auf dem HMI installieren. Dann kannst du aber anscheinend nur bis zu einer Zeichenlänge von 255 Daten einlesen und weiterverarbeiten
 
Ein Profinet fähiger Scanner ist leider etwas teuer. Jetzt wo ich den anderen schon da habe würde ich gerne drum rum kommen, einen neuen zu bestellen. Das IOT habe ich da um auf eine Datenbank zuzugreifen. Da es einen USB-Anschluss hat und mit der SPS verbunden ist, hatte ich die Hoffnung das es darüber funktioniert.
Wenn das OS (vermutlich Debian basierendes Linux) der iot2050 den Scanner erkennt und Codes lesen kann, sollte es auch möglich sein diese Informationen an die PLC weiter zu leiten. Zum Beispiel über S7 Kommunikation (libnodave) oder OPC UA (Python)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit dem Scanner am HMI anschließen funktioniert. Ich habe jetzt auf dem HMI eine Seite mit einem E/A Feld und wenn ich das auswähle und dann ein QR-Code Scanne wird mir der angezeigt.
Also danke schon mal für die Hilfe dazu!

Jetzt würde ich gerne die Zeichenkette die ich erhalte aufteilen und in einzelnen Variablen speichern. Dafür lese ich den String von links nach rechts aus und speichere einen teil in einer Variable. Löschen den teil den ich gespeichert habe und lese wieder von links nach rechts für den nächsten Teil. Ich wollte diese Variablen jetzt eigentlich auf einer anderen HMI Seite anzeigen lassen, als auf der auf der ich den QR-Code eingelesen habe. Aber sowohl S_move als auch einfach das speichern in der Variablen des Zielfeldes funktionieren nicht.
Jemand dazu noch eine Idee?
 
Machst du das auf der Steuerung?
Dann kannst du einfach in SCL über := zuweisen.

Variablen aus den Datenbausteinen kannst du ja auf jeder Seite anzeigen lassen.

Screenshots wären hilfreich!
 
Ich habe noch nie mit SCL gearbeitet und bin mir deshalb nicht sicher wie das aussehen würde.

Ich habe mal ein paar Bilder eingefügt, die hoffentlich ein bisschen besser mein Problem veranschaulichen.
Die Eingabe der Daten in das E/A feld funktioniert, den entstehenden String habe ich beispielhaft ins Feld geschrieben. In dem String sind aber mehrere Infos die ich gerne aufteilen möchte.
Bei der Ausgabe kommt kommt aber nur der Anfang der Zeichenkette an, also nur die erste Variabel und ich bin mir momentan nicht sicher wo der Fehler liegt.
Mein Versuch dazu war es, den String zu lesen und dann den gelesenen Teil in einer eigenen Variabel zu speichern und dann den bereits gelesenen Teil zulöschen, und dann den Rest wieder lesen speichern löschen etc.
Ich weiß das die ersten beiden Infos immer die selbe Länge haben und da dazwischen ein Trennzeichen ist, nur die Stückzahl könnte Variabel lang sein und deshalb würde ich das gerne als Rest speichern.

Jemand eine Idee wo das Problem liegen könnte bzw wie ich es besser machen kann?
 

Anhänge

  • eingabe_Auftragsdaten.jpg
    eingabe_Auftragsdaten.jpg
    2,6 MB · Aufrufe: 18
  • Ausgabe_auftragsdaten.jpg
    Ausgabe_auftragsdaten.jpg
    3,6 MB · Aufrufe: 17
  • Auslesen_Auftragsdaten.png
    Auslesen_Auftragsdaten.png
    70 KB · Aufrufe: 18
Zuviel Werbung?
-> Hier kostenlos registrieren
tyrgbc5004 = 10 Zeichen
tyrgbc500467 = 12 Zeichen

LEFT - für aktuellen Auftrag hat als Zeichenlänge eine 10 angegeben.


Ich persönlich würde die Zeichenkette nicht ablöschen sondern einfach nur mit FIND, MID, LEFT, RIGHT mir die einzelenen Bestandteile heraussuchen. Trennzeichen hast du ja anscheinend.
 
Zurück
Oben