WinCC Unified Faceplate Eigenschaftsparameter Berechtigung auslesen

Schibi

Level-2
Beiträge
105
Reaktionspunkte
27
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

WinCC Unified V19 Update 2

ich habe an der Schnittstelle eines Faceplatecontainers eine Berechtigung beschaltet :



attachment #11221


Diese möchte ich per Skript auslesen und weiterverarbeiten.

Ich habe mir die komplette Schnittstelle über console.dir(item.Properties); ausgegeben



attachment #11222


Auf der Konsole bekomme ich folgendes :



attachment #11223


Wie man sehen kann steht in den Eigenschaften "Berechtigung_Schalten" und "Berechtigung_Parameter" lediglich ein Leerstring.

Wie kann das sein? Und wie bekomme ich Zugriff auf diese Eigenschaft.



Viele Grüße Schibi
 
Hallo,

willst du innerhalb des Faceplates dann auf die Berechtigung zugreifen?

Sozusagen ist dann im Faceplate in der Eigenschaften-Schnittstelle diese Eigenschaft mit dem Datentyp Berechtigung hinterlegt? Oder hast du dort eine interne Variable dafür verwendet?

Innerhalb der Faceplate funktioniert es normalerweise recht simpel:

Im JS kannst du dann direkt mit diesem Befehl daraufzugreifen:
Faceplate.Properties.Berechtigung_Schalten

Jedoch hat die Berechtigung denke ich einen gewissen Hex-Wert, den du noch interpretieren müsstest.
Das könntest du versuchen, ich weiß dass im Konfigurations-Strings das ganze noch nicht gut funktioniert, bei Berechtigungen weiß ich es nicht.
 
Ich brauche den Wert außerhalb des Faceplates. Ich möchte die Berechtigung an ein anderes Faceplate über geben. Aber ich kann dieses Faceplate nicht innerhalb des Faceplates aufrufen; sonst wäre es recht simpel da die Eigenschaften vererbt werden.
 
Das verstehe ich nicht ganz.
Änderst du denn die Berechtigungen im ersten Template dass du dieses dann an ein anderes übergeben musst?

Ansonsten wäre es doch so, dass du einfach beim anderen Template dieselbe Berechtigung zuteilst.
 
Also auch im inneren des Faceplates kann ich nicht per "Skript"

console.log(Faceplate.Properties.Berechtigung_Schalten); darauf zugreifen.

Ich bekomme nur einen Leerstring zurück.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe es selbst nun auch getestet, wie du sagst, ich sehe leider auch nur einen leeren String innerhalb des Faceplates.

Aber ich möchte dich noch einmal Fragen, du möchtest in der inneren Faceplate die Berechtigung verteilen oder möchtest du in der Faceplate die Berechtigungen ändern, zurückübergeben und in einer anderen Faceplate bearbeiten?

Momentan bin ich mir nicht sicher, was genau du machen möchtest.
 
Hallo Rabi. Vielen Dank für deine Hilfe.
Da muss ich wohl weiter ausholen. Ich suche seit Unified V16 nach einer perfekten Möglichkeit über ein Antriebs-Symbol (Magnetventil, Pumpe, Lüfter usw.) verschiedene Parameter-Faceplates aufzurufen (entsprechend der Funktionalität des Antriebs). Leider gibt es die perfekte Lösung nicht.
Leider gibt es keine Möglichkeit dem Symbol-Faceplate einen Faceplate-Typ zu übergeben welches es dann intern aufrufen soll.

Also fängt man an zu tricksen
Jeder bisherige Ansatz hat seine Vor- und Nachteile.

Die Antriebe haben verschiedene Funktionalitäten :

Betriebszustand (Bzu)
Betriebsartenschalter (Bas)
Betriebsstunden (Bst)
Betriebsrückmeldungsüberwachung (Brm)
Festsetzschutz (Fss)
Differenzdrucküberwachung Digital(DdD)

Im Programm gibt es für jede Funktionalität einen UDT.
Bzu
Bas
Bst
Brm
Fss
DdD

Und für jede Kombination aus Funktionalitäten gibt es auch UDT´s
So gibt es z.B. einen UDT "Bzu Bas Bst Brm Fss DdD"
Dieser UDT wird dann in der Schnittstelle z.B. des Bausteins "Antrieb Bzu Bas Bst Brm Fss DdD" verwendet.
Dann heißt die HMI-Variable der Pumpe 1 entsprechend "Pumpe 1;Bzu Bas Bst Brm Fss DdD"

Bei meinem letzten Ansatz wollte ich das Parameter-Faceplate gar nicht intern in Symbol-Faceplate aufrufen sondern über ein Ereignis
am Symbol-Faceplate indem ich ein internes Ereignis über die Ereignis-Schnittstelle nach außen gelegt habe.
Dort wollte ich dann per Skript das Parameter-Faceplate aufrufen.
Da in diesem Fall die Eigenschaftsschnittstelle nicht vererbt wird musste ich die Eigenschaften wie zum Beispiel "Textliste Betriebszustand"
von außen auslesen. Das klappt bis auf die Berechtigungen die anscheinend ein besonderer Datentyp sind ganz gut.

Mittlerweile habe ich diesen Ansatz aber auch wieder verworfen da das lesen der Berechtigungen nicht funktioniert.

Mein neuer Ansatz geht wieder in Richtung des internen Aufrufens des Parameter-Faceplates.
Das Symbol-Faceplate ruft nicht direkt das Parameter-Faceplate auf sondern zuerst ein Weichen-Faceplate.
In diesem Faceplate wird anhand des übergebenen Tags z.b. "Pumpe 1;Bzu Bas Bst Brm Fss DdD.Bzu" geprüft welches Parameter-Faceplate geöffnet werden soll.

Sorry, das Thema ist komplex. Ich hoffe es ist einigermaßen klar geworden worauf ich hinaus wollte.

Im Prinzip hat sich die Frage damit aber auch erledigt.

Mich würde aber grundsätzlich auch interessieren wie ihr sowas löst.


mit freundlichen Grüßen


Schibi
 
Zuletzt bearbeitet:
Antwort vom Siemens Support:

Leider ist es derzeit nicht möglich die Berechtigung welche an ein Faceplate übergeben werden, per Skript auszulesen.
Dies ist bei der Entwicklung bereits als Kundenwunsch hinterlegt. Ich gebe auch Ihren Wunsch weiter, damit dies mit höherer Wahrscheinlichkeit in einer zukünftigen Version implementiert wird.
 
Zurück
Oben