Textfeld - Eingabe am HMI mit hinterlegten SPS Werten vergleichen

HEidelberger

Level-2
Beiträge
39
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bräuchte bitte mal einen Denkanstoß oder direktere Hilfe:

Ich habe ein Siemens HMI (IPC277D), welches mit einer S7 315 über einen CP343-IT über Ethernet kommuniziert.
Am HMI habe ich über USB einen RFID Reader angeschlossen. Dieser liest einen RFID Chip aus und gibt die Chip ID im Klartext aus (13 Stellige Zahlenabfolge z.B. 0000563217962) und schreibt diese im HMI in ein Textfeld.
Ich möchte gern den Textfeldinhalt (Chip-ID) mit in der SPS fest hinterlegten Werten (gespeicherte Chip-IDs [max. 5 hinterlegt]) vergleichen und bei erfolgreichem Vergleichsergebnis einen Merker setzen, um später weiteren Programmcode abarbeiten zu können.

Im Wincc flex bekomme ich es noch hin, das Textfeld zu erzeugen, damit der RFID Reader die Chip ID darin hineinschreibt.

Wie müsste im Simatic Manager die Struktur aussehen, mit welcher ich Daten fest hinterlegen kann (fest gespeicherte Chip-IDs)? Muss ich das über DB1 machen?
so, z.B:
1734778175384.png

Und wie ginge es dann in Kombination mit WinCC weiter?
Ich vermute mal, dass ich den Textfeldinhalt einer bestimmten Variablen zuordnen muss (Datentyp z.B. String). Braucht man dazu eine Variablentabelle?

Vielen Dank schon mal für eure Hilfe.
 
Zuletzt bearbeitet:
Na ... am Einfachsten wäre es wenn du dein Textfeld mit einer Stringvariable in der SPS verknüpfst - vielleicht im selben DB wie deine Vorgaben stehen. Die Vorgaben würde ich als Array anlegen - dann sind sie im Programm viel einfacher handlebar.
Das Vergleichen selbst würde ich dann mit einem SCL-Script machen.

Da du aber einen IPC mit einer PC-Runtime da drauf hast kannst du das Ganze natürlich auch rein in der Visu handeln - eben auch mit einem Script - nun aber VB.

Welche Variante würde dir eher zusagen, was sind deine Kenntnisse und was soll dann nach einer erfolgreichen Überprüfung geschehen ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vorsicht beim Vergleichen von Zahlen, die in Strings formatiert abgelegt sind! Unterschiede durch z.B. unterschiedliche Handhabung der vorlaufenden Nullen oder z.B. unterschiedliche Position bzw. Darstellung der Vorzeichen u.s.w. sind Unterschiede, die über eine Gleichheit der ZahlenWerte hinwegtäuschen können.

PS: Bei einer RFID-ID sollten allerdings keine Variationen der o.g. Art auftreten.
 
Zuletzt bearbeitet:
@Heinileini : ich denke mal, dass der OP hier mit Strings arbeiten will. In seinem DB hat er es ja schon so angelegt und vom Reader bekommt er ja auch einen String. Eine Konvertierung in eine Zahl macht hier, schon alleine wegen der Größenordnung der "Zahl", gar keinen Sinn ...
 
Vielen Dank für die nützlichen Hinweise.
Ich habe es an Varainte 1 angelehnt. Auswertung im FUP. Habe kein SCL und kennen mich auch nicht damit aus.

An einer Stelle komme ich gerade noch nicht so richtig weiter:
Gibt es eine Möglichkeit das Textfeld am HMI bzw. den damit verknüpften DB Eintrag auch zu leeren / löschen?

Danke für weitere Hilfe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sicher geht das, dafür musst das Feld dann als Eingabe/Ausgabe Feld parametriert werden.
Dann kannst du entweder alle Zeichen im Feld löschen oder du projektierst eine Taste die einen leeren String in dein Textfeld schreibt.
Alternativ kannst du natürlich auch in der SPS die Variable löschen bzw. mit einem leeren String überschreiben
 
Gibt es eine Möglichkeit, z.B. mal gesponnen im OB1, für jeden neuen SPS Zyklus den Fokus des Textfeldes am HMI für die Chip-ID Eingabe zu setzen?
Wenn ich am HMI einen Button betätige, wäre mein Fokus ja leider nicht mehr im Textfeld. Und somit die Möglichkeit, Daten einzulesen nicht mehr ohne manuelles aktivieren des Textfeldes möglich.
Also was ich bräuchte wäre, dass der Fokus immer im EA-Feld ist. Egal, ob ich zwischenzeitlich am HMI mal einen Button betätige.

Ich nutze WINCC Flex RT und S7 Simatic Manager. Mit SCL kenne ich mich nicht aus und habe dies auch aktuell noch nicht.

Danke für weitere Hilfe.
 
Zuletzt bearbeitet:
eine direkte finktion um ein item in den fokus zu nehmen ist mir gerade nicht bekannt.
selbst wenn das gehen würde wäre es vermutlich nicht klug den fokus "permanent" auf ein bestimmtest feld zu legen. das könnte dazu führen, dass du gar nichts mehr bedienen kannst.

folgendes könntest du machen
nach dem betätigen einer schaltfläche könntest du zusätzlich die funktion aktiviereBild aufrufen und bei objektnummer (siehe TabReihenfolge) die nummer des objekts eingeben welches aktiviert werden soll. bei einem ea-feld diese funktion bei eingabe abgeschlossen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... Wenn ich am HMI einen Button betätige, wäre mein Fokus ja leider nicht mehr im Textfeld. Und somit die Möglichkeit, Daten einzulesen nicht mehr ohne manuelles aktivieren des Textfeldes möglich....
Das Textfeld muss ja auch nur zur manuellen Eingabe des Wertes angewählt sein. Oder woran denkst du? Um den Wert zu löschen, schreibst du direkt in die Variable, zum Beispiel mittels Ereignis an einer Schaltfläche, oder auch in der Steuerung. Wenn das Textfeld als Eingabe/Ausgabe deklariert ist, so wie es schon mal angesprochen wurde, aktualisiert es sich von selbst.

Interessehalber, was für einen RFID-Reader verwendest du?
 
Zurück
Oben