Faceplates und Symbolic in WinCC 7.3

Progger

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

schon seit Tagen auf der (bislang erfolglosen) Suche nach einer Lösung für die Variablenanbindung in Verbindung mit Faceplates...

Die Anforderung:

es soll ein Symbol erstellt werden mithilfe eines Faceplates. Dem Ganzen liegt eine Strukturvariable xy mit mehreren Einträgen zugrunde.
Beispiel wäre: Motor ... Auto, Hand, Betriebszustand, Drehzahl usw.

Faceplate muss sein, da eine zentrale Änderungsmöglichkeit vorhanden bleiben muss.

Das Problem:

Bislang schaffte ich es nicht, eine Dynamisierung innerhalb des Faceplates, in Verbindung mit der betreffenden Strukturvariablen, zustande zu bringen.

Lösung via Bildfenster, Anwenderobjekt oder via Copy-Paste (Faceplate ist "von außen" dynamisiert) des ersten dynamisierten Faceplates kommen wegen der Komplexität bzw. der Menge an Symbolen nicht in Frage.

Frage(n):

Gibt es einen Lösungsansatz, welchen ich bisher übersah, oder etwa einen Workaround?
Kann man die internen Variablen eines Faceplates irgendwie an die Strukturvariablen anbinden, also innerhalb des Faceplates?
Oder ist gar der bisher eingeschlagene Weg gänzlich falsch?


Für Hinweise und Anregungen danke ich schon mal im Voraus...

LG
 
Hi,
soweit ich weiß bieten dir die Strukturen bei der Verwendung von Faceplates keinen Vorteil. Du musst sie als ganz normale Einzelvariablen sehen.

Angenommen du hast eine Struktur "Bedienung" mit mit den Bits "Hand" und "Auto".

Als Beispiel soll ein Faceplate erstellt werden, welches den Zustand dieser beiden Bits über zwei farbige Rechtecke anzeigt.
Du legst dir ein Faceplate an, und fügst dort zwei Rechtecke ein. Eines nennst du "Hand" und das andere "Auto" mit den Farben die du dafür haben willst.
Dann gehst du auf Bearbeiten und "Faceplate-Typ konfigurieren". In der Spalte ganz links legst du dir zwei Properties an, mit Namen "Hand" und "Auto". Dann markierst du in der mittleren Spalte das Objekt "Hand" . In der rechten Spalte wählst du die Eigenschaft "Visible" und ziehst diese mit gedrückter linke Maustaste unter die Eigenschaft "Hand".
Gleiches machst du mit der Eigenschaft "Auto".
Du kannst die Objekteigenschaften auch direkt zu den Properties "herüberziehen" ohne diese erst manuell anzulegen, ganz wie dir es besser befällt.

Wenn du das Faceplate dann im Bild instanzierst, sind die Eigenschaften "Hand" und "Auto" mit den Sichtbarkeits-Eigenschaften der Rechtecke verknüpft. Die Eigenschaften kannst du dann mit der Instanz deiner Strukturvariable verbinden, aber eben für beide Variablen getrennt, z.B. Motor1.Hand und Motor1.Auto.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist da nicht die Verwendung eines Bildfensters noch der einfachste Weg?Ich mache unter Eigenschaften den Präfix dran und gut ist.
Pro Bildfenster eine eigene Struktur.Bild und Bildfenster kann ich dann beliebig kopieren und muss nur den präfix und die Bildüberschrift ändern.Kraaatz?
 
Kommt drauf an wozu du es verwendest. Ein Bildfenster kannst du z.B. nicht über andere Objekte legen, was bei einem Faceplate funktioniert.
Z.B. wenn du ein Motorsymbol über Rohrleitungen legen möchtest. Das würde mit einem Bildfenster nicht funktionieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei einem Faceplate ist alles was unter dem Faceplate liegt sichtbar, sofern es nicht von einem Objekt im Faceplate verdeckt wird.
Vielleicht ließe sich ja ein Bildfenster transparent schalten, das weiß ich nicht, und habe ich noch nie so verwendet. Ein Faceplate ist das passendere dafür.
 
Es würde ja reichen wenn ich mit der Rohrleitung ans Bildfenster komme.Im Bildfenster selbst könnte die Pumpe ja dargestellt werden.Den Rahmen kann man glaube ich weg machen.
Müsste man mal ausprobieren, das ganze.
 
Aber was bringt es? Wenn er eine Faceplate-Instanz fertig beschaltet hat, machst du bei allen weiteren Copy&Paste und umverdrahten.
Ich schätze mal mt 50 Bildfenstern in einem Bild wird der Bildaufbau auch nicht mehr so flüssig wie mit einer entsprechenden Anzahl an Faceplates.
 
Hi,
soweit ich weiß bieten dir die Strukturen bei der Verwendung von Faceplates keinen Vorteil. Du musst sie als ganz normale Einzelvariablen sehen.

Angenommen du hast eine Struktur "Bedienung" mit mit den Bits "Hand" und "Auto".

Als Beispiel soll ein Faceplate erstellt werden, welches den Zustand dieser beiden Bits über zwei farbige Rechtecke anzeigt.
Du legst dir ein Faceplate an, und fügst dort zwei Rechtecke ein. Eines nennst du "Hand" und das andere "Auto" mit den Farben die du dafür haben willst.
Dann gehst du auf Bearbeiten und "Faceplate-Typ konfigurieren". In der Spalte ganz links legst du dir zwei Properties an, mit Namen "Hand" und "Auto". Dann markierst du in der mittleren Spalte das Objekt "Hand" . In der rechten Spalte wählst du die Eigenschaft "Visible" und ziehst diese mit gedrückter linke Maustaste unter die Eigenschaft "Hand".
Gleiches machst du mit der Eigenschaft "Auto".
Du kannst die Objekteigenschaften auch direkt zu den Properties "herüberziehen" ohne diese erst manuell anzulegen, ganz wie dir es besser befällt.

Wenn du das Faceplate dann im Bild instanzierst, sind die Eigenschaften "Hand" und "Auto" mit den Sichtbarkeits-Eigenschaften der Rechtecke verknüpft. Die Eigenschaften kannst du dann mit der Instanz deiner Strukturvariable verbinden, aber eben für beide Variablen getrennt, z.B. Motor1.Hand und Motor1.Auto.
Genau an diesem Punkt beginnt aber eigentlich meine Frage!!!

Beispiel: ich ziehe nun eine weitere Instanz des Faceplates ins Bild ... dabei sind noch keine Variablen verknüpft. Jetzt müsste von Hand die nächste Verknüpfung angelegt werden ... bspw. Motor2.Hand und Motor2.Auto usw.

Würde zu einem späteren Zeitpunkt eine Änderung gewünscht sein, z.B. ein weiterer "Zustand" müsste hinzugefügt werden, so müsste jede einzelne Instanz von Hand nachbearbeitet werden ... Bei komplexen Strukturen und jeder Menge an Instanzen wäre dies nicht mehr vertretbar bzw. für Kunden unbezahlbar!

Ist da nicht die Verwendung eines Bildfensters noch der einfachste Weg?Ich mache unter Eigenschaften den Präfix dran und gut ist.
Pro Bildfenster eine eigene Struktur.Bild und Bildfenster kann ich dann beliebig kopieren und muss nur den präfix und die Bildüberschrift ändern.Kraaatz?
Die Verwendung EINES Bildfensters wäre ja kein Problem, aber wie sieht das Ganze bei vielfacher Verwendung in einem Hauptbild während der Entwicklung aus: jede Menge grauer Flächen!!! So kann man keine umfangreiche Visualisierung projektieren. Man würde ganz schnell den Überblick verlieren....
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau an diesem Punkt beginnt aber eigentlich meine Frage!!!

Beispiel: ich ziehe nun eine weitere Instanz des Faceplates ins Bild ... dabei sind noch keine Variablen verknüpft. Jetzt müsste von Hand die nächste Verknüpfung angelegt werden ... bspw. Motor2.Hand und Motor2.Auto usw.

Würde zu einem späteren Zeitpunkt eine Änderung gewünscht sein, z.B. ein weiterer "Zustand" müsste hinzugefügt werden, so müsste jede einzelne Instanz von Hand nachbearbeitet werden ... Bei komplexen Strukturen und jeder Menge an Instanzen wäre dies nicht mehr vertretbar bzw. für Kunden unbezahlbar!

Ich wollte gerade schon schreiben, dem Faceplate den Strukturnamen als Eigenschaft zu übergeben, und dann im Faceplates die Namen zusammenzubauen und dann einzulesen. Funktioniert aber nicht, da das HMIRuntime-Objekt warum auch immer in Faceplates nicht zur Verfügung steht. HMIRuntime.Trace-Ausgaben sind in Faceplates ebenfalls nicht möglich.

Ich würde Faceplates wie standardmäßig vorgesehen verwenden. Und falls doch jemand auf die Idee kommt die Faceplates um eine Eigenschaft erweitern zu wollen, und es sind wirklich so viele Objekte dass das händisch in Arbeit ausarten würde, dann lassen sich die Bilder auch automatisiert per VBS in einem Rutsch modifizieren.
 
Achso, falls du nur einzelne Zustands-Bits hast, wäre noch eine Möglichkeit diese gesammelt z.B. als DWord Variable zu übergeben, und entsprechende Bits darin unbenutzt zu lassen. Dann kannst du das DWord im Faceplate zerlegen und damit Objekte animieren.
 
Zurück
Oben