TIA Option+ RFID

Stogi

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

ich möchte einen RF1070R über das Option+ Paket per USB an einem HMI auslesen
Projekt: TIA V15.1
HMI: TP 1200 Comfort mit V15.01.00.07_02.01 Image Version
Option+: SIMATIC HMI Option+ Panel V2 Siemens Link
(Kein Logon! -> Ich habe nirgends gelesen, dass das nötig ist und brauche es nicht)

Option+ ist auf HMI installiert, Reader Funktion enabled und RF1070R über USB mit dem HMI verbunden.
VB-Skripte, HMI-Variablen, Auftragsplaner Einstellungen hab ich aus dem Beispielprojekt von Siemens kopiert.

Uebersicht.jpg

Wenn ich außerhalb der Runtime direkt im Log des Option+ Managers die Karte an den Reader halte, funktioniert es. Karte und UID werden richtig erkannt.

Log.jpeg

In der Runtime kann ich aber auf das SmartTag "Panel_LogonUid" nicht richtig zugreifen.
Das VB-Skript sollte auf eine Wertänderung von "Panel_LogonUid" reagieren -> tut es nicht.
Der Defaultwert (keine Karte an Reader) scheint nicht "-1" zu sein. -> VB-Skript über Button ohne Karte an Reader ausgeführt und Skript-Logik verhält sich wie wenn Wert ungleich -1.
Weiterhin kann ich mir den Wert nicht in einem Textfeld anzeigen lassen -> Ausgabefeld mit 50 und 55 Zeichen versucht.

Hat jemand eine Idee woran das liegen kann. Nach meinen Verständnis sollte die UID der Karte einfach an "Panel_LogonUid" übergeben werden auch wenn das so nirgends explizit steht. Oder habe ich das falsch verstanden?

LG Stogi
 
In der Runtime kann ich aber auf das SmartTag "Panel_LogonUid" nicht richtig zugreifen.
Das VB-Skript sollte auf eine Wertänderung von "Panel_LogonUid" reagieren -> tut es nicht.
Interne Variablen lösen kein Ereignis Wertänderung bei Wertzuweisungen aus. (Das ist der sogenannte "Loop Breaker".) Nur wenn da ein Eingabefeld für die interne Variable ist, dann wird das Ereignis Wertänderung bei Wertänderungen mit dem Eingabefeld ausgelöst.

Weiterhin kann ich mir den Wert nicht in einem Textfeld anzeigen lassen -> Ausgabefeld mit 50 und 55 Zeichen versucht.
?? Was zeigt das Ausgabefeld denn an? Wie ist es projektiert? Welchen Datentyp hat "Panel_LogonUid"?

Hast Du das Panel "komplett alles" übersetzt?

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Interne Variablen lösen kein Ereignis Wertänderung bei Wertzuweisungen aus. (Das ist der sogenannte "Loop Breaker".) Nur wenn da ein Eingabefeld für die interne Variable ist, dann wird das Ereignis Wertänderung bei Wertänderungen mit dem Eingabefeld ausgelöst.


?? Was zeigt das Ausgabefeld denn an? Wie ist es projektiert? Welchen Datentyp hat "Panel_LogonUid"?

Hast Du das Panel "komplett alles" übersetzt?

Harald

1. Feld zeigt gar nichts an.

2. "Panel_LogonUid" (Aus dem Siemens Anwendungsbeispiel):

1666081743518.png1666081759674.png
1666081803170.png

3. Textfeld:
1666081904765.png

4. Komplett übersetzt -> Ja.

LG Stogi
 
1. Feld zeigt gar nichts an.

2. "Panel_LogonUid" (Aus dem Siemens Anwendungsbeispiel):
"Panel_LogonUid" ist also als WString, Länge 50, projektiert. Da wird wohl nichts oder nur Leerzeichen drinstehen.
Wie kommst Du drauf, daß da "-1" drinstehen könnte? Das ist bei Strings eher unüblich.
Tipp: Du könntest das E/A-Feld auf Modus "Eingabe/Ausgabe" stellen (hast Du schon) und manuell irgendwas eingeben (z.B. "xxxx") und schauen, ob der Wert gelöscht oder geändert wird, wenn die Karte gelesen wird.
Du könntest auch mal Panel_LogonUid als PLC-Variable projektieren, da kannst Du genau beobachten was drin steht, und das Ereignis Wertänderung müsste ausgelöst werden.

Ich kenne SIMATIC HMI Option+ nicht. Ist die Projektierung von Panel_LogonUid als WString so richtig? Muß man vielleicht eine Lizenz auf dem HMI-Panel installieren?

Harald
 
"Panel_LogonUid" ist also als WString, Länge 50, projektiert. Da wird wohl nichts oder nur Leerzeichen drinstehen.
Wie kommst Du drauf, daß da "-1" drinstehen könnte? Das ist bei Strings eher unüblich.
Tipp: Du könntest das E/A-Feld auf Modus "Eingabe/Ausgabe" stellen (hast Du schon) und manuell irgendwas eingeben (z.B. "xxxx") und schauen, ob der Wert gelöscht oder geändert wird, wenn die Karte gelesen wird.
Du könntest auch mal Panel_LogonUid als PLC-Variable projektieren, da kannst Du genau beobachten was drin steht, und das Ereignis Wertänderung müsste ausgelöst werden.

Ich kenne SIMATIC HMI Option+ nicht. Ist die Projektierung von Panel_LogonUid als WString so richtig? Muß man vielleicht eine Lizenz auf dem HMI-Panel installieren?

Harald

Ich gehe davon aus, das "-1" der Default ist wegen des Anfangs des VB-Skripts.
1666159115572.png

Das "WString" ein Problem darstellt wusste ich nicht. Ich dachte, wenn es spezifisch mit 50 Zeichen definiert ist sollte ich es über ein E/A-Feld anzeigen können. Ich hatte angenommen, ich sehe nur dann nichts, wenn Zeichen eines nicht installierten Sprachpaketes vorkommen.
--> Gerade in der TIA-Hilfe "E/A-Feld: Darstellungsformat" nachgelesen. Da steht, dass man eine Variable vom Typ String mit max. 320 Zeichen nehmen soll... wieder was gelernt

Die Datentyp Geschichte werde ich mir als nächstes ansehen.
LG Nicho
 
Ich gehe davon aus, das "-1" der Default ist wegen des Anfangs des VB-Skripts.
Anhang anzeigen 64318

Das "WString" ein Problem darstellt wusste ich nicht. Ich dachte, wenn es spezifisch mit 50 Zeichen definiert ist sollte ich es über ein E/A-Feld anzeigen können. Ich hatte angenommen, ich sehe nur dann nichts, wenn Zeichen eines nicht installierten Sprachpaketes vorkommen.
--> Gerade in der TIA-Hilfe "E/A-Feld: Darstellungsformat" nachgelesen. Da steht, dass man eine Variable vom Typ String mit max. 320 Zeichen nehmen soll... wieder was gelernt

Die Datentyp Geschichte werde ich mir als nächstes ansehen.
LG Nicho
Liegt an der "LogOff current user, when card leaves reader" Funktionalität, dann wird der String "-1" geschrieben und der user abgemeldet. Ist im PM-Logon Handbuch nachzulesen.
 
Zurück
Oben