TIA WinCC Unified V18 von Variablen von HMI zur PLC übertragen

kisps

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin bei meinem ersten Projekt mit WinCC Unified und habe ein Problem mit der Übertragung der Variablen von HMI zur PLC. Aus der umfangreichen Bibliografie, die ich die letzten Tage durchgelesen habe, habe ich eine mögliche Lösung des Problems gefunden, aber die funktioniert doch nicht. Da ich nicht der absolute Spezi auf dem Gebiet der Skript-Programmierung finde ich auch den Fehler nicht.

Das Ziel ist das Auslesen und die Übertragung von Benutzername von HMI (@UserName) an die PLC, zur Weiterverwendung. Nachfolgend ist das Bild mit dem Skript.

skript_hmi2plc.PNG

Zur Info: zurzeit arbeite ich mit dem SIMATIC Runtime Manager und dem S7-PLCSIM V18 SP2. Die Verbindung der beiden scheint zu funktionieren, da einige Bit-Variablen werden einwandfrei übertragen.

Auf jede weiterführende gute Idee wäre ich dankbar.

Schöne Grüße
 
Hi,

das wird so nicht funktionieren, wie du dir das vorstellst. "@UserName" ist eine sessionlokale Variable, d.h. sie kann für jede Benutzersession unterschiedliche Werte haben.
Das Frontend der Unified-Runtime ist eine Webseite, du greifst von einem oder mehreren Endgeräten per Browser darauf zu. In jeder Session kann sich ein anderer Benutzer anmelden. Kannst du ganz einfach ausprobieren mit einem anderen Browser oder einem neuen Tab nochmal auf die Unified-Seite gehen.
Von daher stellt sich die Frage: Welcher Wert soll dann in die PLC-Variable geschrieben werden? Wenn in Tab1 im Firefox der User "Inbetriebnehmer" angemeldet ist und im Tab33 im Chrome der User "Anlagenbediener" angemeldet ist?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zuerst vielen Dank für die schnelle Antwort.
Ja, das habe ich jetzt getestet und verstanden.
Das Projekt beinhaltet 5 Stück MTP1900 und einen 1 Desktop-PC als abgesetzten Arbeitsplatz. Diese alle und noch mehr sind über einen LWL-Ring in Verbindung miteinander. An jedem Bedienpanel (MTP1900) kann sich immer nur ein Mitarbeiter anmelden. Der Name dieses Mitarbeiters soll aus dem HMI ausgelesen werden (wie bei Comfort/Advance die Funktion "LesebenutzerName") und in die HMI-PLC gemeinsame Variable geschrieben werde. Über die Verbindungen von den einzelnen Bedienpanels werden dann diese Daten an den Desktop-PC übertragen. Wenn der Mitarbeiter X am Bedienpanel A (Beispiel) sich abmeldet bleibt das Feld leer. Wenn der Mitarbeite Y am Bedienpanel A sich anmeldet dann soll sein Name eingesetzt werden. Am Desktop-PC im Meisterbüro soll gleich funktionieren: wenn Meister x sich anmeldet soll das festgehalten werden (Meldeanzeige usw.), wenn Meister y sich anmeldet, dann steht sein Name in der Meldeanzeige.
Schöne Grüße
 
Zuerst vielen Dank für die schnelle Antwort.
Ja, das habe ich jetzt getestet und verstanden.
Das Projekt beinhaltet 5 Stück MTP1900 und einen 1 Desktop-PC als abgesetzten Arbeitsplatz. Diese alle und noch mehr sind über einen LWL-Ring in Verbindung miteinander. An jedem Bedienpanel (MTP1900) kann sich immer nur ein Mitarbeiter anmelden. Der Name dieses Mitarbeiters soll aus dem HMI ausgelesen werden (wie bei Comfort/Advance die Funktion "LesebenutzerName") und in die HMI-PLC gemeinsame Variable geschrieben werde. Über die Verbindungen von den einzelnen Bedienpanels werden dann diese Daten an den Desktop-PC übertragen. Wenn der Mitarbeiter X am Bedienpanel A (Beispiel) sich abmeldet bleibt das Feld leer. Wenn der Mitarbeite Y am Bedienpanel A sich anmeldet dann soll sein Name eingesetzt werden. Am Desktop-PC im Meisterbüro soll gleich funktionieren: wenn Meister x sich anmeldet soll das festgehalten werden (Meldeanzeige usw.), wenn Meister y sich anmeldet, dann steht sein Name in der Meldeanzeige.
Schöne Grüße
Hat bei deiner Konstellation jedes Panel und die PC-Station ein eigenes Projekt? Oder ist es ein großes Projekt auf das der Desktop-PC und die Panels per Browser zugreifen? Also ein klassisches Server-Client-Projekt. Dann lässt sich ohne den Umweg über die PLC rausfinden, welche Benutzer gerade wo angemeldet sind. Und man müsste nicht 6 Stationen parallel projektieren.

Ansonsten kannst du aus den Systemvariablen @UserName und @LocalMachineName eine eindeutigere Zuordnung bauen als nur aus @UserName.

Im Siemens-Forum gibt es ein paar Beiträge, die sehr stark in diese Richtung zielen, wo man sich sicher Inspirationen rausziehen kann:

Allgemein ist das Mitloggen von Benutzeraktionen wie "Benutzer meldet sich an" oder "Benutzer hat eine Variable verstellt" auch ein Teil der Funktionalität der Option Audit, da gibt es das fix und fertig, da es ja in der Pharmaindustrie bspw. gesetzlich vorgeschrieben ist, dass das mitprotokolliert wird.
 
Zurück
Oben