# MP377 19" kleines Fenster



## Steve38 (19 Februar 2010)

Hi zusammen,

ich hab hier eine MP377 19", das unter anderem 40 FU steuer bzw. anzeigen soll.

Ich möchte gerne das ich für jeden FU ein kleines Fenster aufrufen kann, wo ich die Vorwahl treffen kann: Auto - Hand - 0 und den Betriebszustand einzeigen lassen kann: Ein - Aus - Auto - Freuquenz - Strom usw.

Hab sowas schomal gesehen, wo man dann quasi auf ein Button klickt und dann ein kleines Fenster aufgeht. 

Wie geht das ???

Quasi vielleicht so Ähnlich:


----------



## rostiger Nagel (19 Februar 2010)

Du könntes dir aus mehren Elementen zu deinen Fenster zusammenbauen,
die Sichtbarkeit dieses Fensters durch eine Variable steuern. Die Variabeln
in deinen Fenster legst du dann an besten mit Multiplexvariablen an um die
unterschiedlichen FU's ansprechen zu können.


----------



## Steve38 (19 Februar 2010)

?????

Ich versteh nichts!!!

Möchte gerne das nur dieses Fenster dann erschein, quasi über dem "normalen" Übersichtsbild. Nicht das ich ein ganz neues Bild aufrufe.


----------



## rostiger Nagel (19 Februar 2010)

Steve, dieses Fenster kannst du doch zu einer Gruppe zusammen
fassen. Bei den Eigenschaften der Objekte in deine Fenster kannst
du unter Animation, die "Sichtbarkeit" über eine Variable steuern.
Diese Variable kannst du wieder durch ein Ereignis steuern, meinet-
wegen über eine Taste toogeln.
D.h. ist die Variable "1" ist das Fenster sichtbar und bei "0" unsichtbar.


----------



## PN/DP (19 Februar 2010)

*Variablen multiplexen*

Hallo Steve38,

Wie funktioniert das Variablen-Multiplexen?

Das ganze machst Du dann mit der Indexvariable sichtbar/unsichtbar:
Indexvariable=0: alles unsichtbar
Indexvariable=1: sichtbar mit Werten von FU_1
Indexvariable=2: sichtbar mit Werten von FU_2
...

In den Dialog machst Du eine Schaltfläche "Schließen", die die Indexvariable auf 0 setzt.

Statt einfachem Variablen-Multiplexen kann man auch Bildbausteine verwenden:
Wie wird ein WinCC flexible Bildbaustein erstellt?

Gruß
Harald


----------



## Steve38 (19 Februar 2010)

Ok, da werd ich mal dran setzten und das durchlesen.

Danke


----------



## Blockmove (19 Februar 2010)

Hallo Steve,

das Problem ist, dass du mit WinCC flexibel eigentlich keine Fenster erstellen kannst. Zumindest nicht im Sinne von Windows.
Du kannst lediglich Elemente zu Gruppen zusammenfassen und diese Gruppe abhängig von einer Variable sichtbar machen (Animation).

Eine andere Möglichkeit sind Bildbausteine. Damit würde ich es realisieren. Da das MP377 recht leistungsfähig ist, klappt es damit auch recht gut.

Gruß
Dieter


----------



## PN/DP (19 Februar 2010)

*Faceplate Screenshot*

Im Anhang ein Screenshot eines gemultiplexten Faceplates.

Über den Rührwerken der Tanks liegen unsichtbare Schaltflächen.
Bei Drücken wird die Rührwerksnummer (1 ... 10) in die Indexvariable geschrieben.
Bei Indexvariable = 1 bis 10 wird das blau umrandete Faceplate sichtbar (Animation: Sichtbarkeit).

Die Objekte des Faceplate liegen im Bild VOR allen anderen Objekten.
Das E/A-Feld, die Schalter und die Statustexte sind mit der Indexvariable gemultiplext.
Der Aggregatname in der blauen Titelzeile kommt aus einer Textliste mit der Indexvariable als Index.
Die Schaltfläche [X] schreibt eine 0 in die Indexvariable, das Faceplate wird dann unsichtbar.
Mit den kleinen links/rechts- und hoch/runter-Schaltflächen kann das Faceplate in andere Ecken des 
Bildes verschoben werden (Faceplate-Gruppe Animation: Direkte Bewegung).

Die Pumpen MP1 bis MP6 nutzen die selbe Indexvariable für ein anderes Faceplate, das bei 
Indexvariable = 11 bis 16 sichtbar ist. So ist immer nur 1 Faceplate sichtbar.

Gruß
Harald


----------



## Steve38 (16 März 2010)

Hallo,

also soweit hab ich mein "kleines Fenster" sprich einenen Bildbaustein fertig. Sieht super aus und funktioniert auch einwandfrei.

Nur ein kleines Problem hab ich noch.

Würde gerne den Antrieb Darstellen bzw. bezeichnen. 
Quasi soll, wenn ich den Bildbaustein öffne auch dort stehen welchen Antrieb ich jetzt gerade damit steuer.


----------



## PN/DP (16 März 2010)

*symbolisches Ausgabefeld*

Um einen Antriebsname in Deinem Bildbaustein anzuzeigen (so wie im Screenshot in meinem Beitrag #8: "Rührwerk Tank 7"), 
machst Du einfach ein symbolisches Ausgabefeld mit einer Textliste rein. Die Bildbaustein-Indexvariable ist der Index in die Textliste.

Gruß
Harald


----------



## Steve38 (23 März 2010)

Moin,

das klappt ja prima. 
Hab mir einen Bildbaustein angelegt, hat zwar etwas Zeit gekostet, doch es hat sich echt gelohnt.
Funktioniert genau so wie ich mir das vorstelle, mit ein und ausblenden ist perfekt.

Jetzt tat sich aber bei mir eine Frage auf, wäre es auch möglich den Bildbaustein zu verschieben. Wie ein Fensten auf dem Laptop?

Hab das mal gesehen das das geht, nur bin mir nicht sicher ob das auch ein Bildbaustein war.


----------



## stan_keiler (23 März 2010)

kann ich mich direkt mal mit einklinken? weil es gerade zum thema passt...

ich muss auch so ne art faceplates für verschiedene ventile aufrufen und das klappt mit der sichtbarkeit super. jetzt ist die frage mit dem multiplexen der variable noch offen, habe mir das bsp da zwar zu gemüte geführt, aber nicht wirklich verstanden... habe am anfang meiner gruppierung (des faceplates) ein ausgabefeld, wo das den namen des angeklickten ventils anzeigt... und jetzt möchte ich es öffnen bzw. schließen. aber woher weiß der button jetzt, welches ventil er ändern soll? also ich möchte das ventil dann grün darstellen, wenn es geöffnet ist...?


----------



## PN/DP (23 März 2010)

*Animation Bewegung*



Steve38 schrieb:


> Jetzt tat sich aber bei mir eine Frage auf, wäre es auch möglich den Bildbaustein zu verschieben. Wie ein Fensten auf dem Laptop?



Habe ich schon im #8 kurz angedeutet:


PN/DP schrieb:


> Mit den kleinen links/rechts- und hoch/runter-Schaltflächen kann das Faceplate in andere Ecken des
> Bildes verschoben werden (Faceplate-Gruppe Animation: Direkte Bewegung).



Also den Bildbaustein einfach an der Titelzeile "anfassen" und auf dem Bild umherziehen geht leider 
nicht, weder mit Maus noch mit Finger. Man kann aber abhängig vom Inhalt einer Variable Objekte und 
Objekt-Gruppen in alle Richtungen über das Bild bewegen: Animation > Bewegung

Es bleibt nur das Problem, wie ändert man den Wert der Bewegungs-Variablen?
Zum Kennenlernen der Bewegungsanimation bietet sich ein Slider oder ein numerisches Eingabefeld an,
das ist aber nachher an der Anlage nicht praktisch.

Ich habe das so gemacht:

interne Variable: FPA_Off_X | UInt | Startwert: 0 | //steuert horizontale Bewegung
interne Variable: FPA_Off_Y | UInt | Startwert: 0 | //steuert vertikale Bewegung

Faceplate-Gruppe: Animation > Direkte Bewegung
X - Startposition: 10 | Offset: FPA_Off_X
Y - Startposition: 8 | Offset: FPA_Off_Y

Schaltfläche "links/rechts" im Faceplate
Ereignisse > Klicken:
- InvertiereBitInVariable, Variable: FPA_Off_X, Bit: 8

Schaltfläche "hoch/runter" im Faceplate
Ereignisse > Klicken:
- InvertiereBitInVariable, Variable: FPA_Off_Y, Bit: 8

Wenn ich nun die Schaltflächen klicke, togglen die Variablen zwischen 0 und 256, die animierte Gruppe 
springt auf dem Bild zwischen der X-Position 10 und 266, die Y-Position zwischen 8 und 264.

Wenn man nicht so viel Glück hat, daß sich die Positionswerte nur um 1 Bit unterscheiden, kann man auch
eine Hilfsvariable hernehmen, die zwischen 0 und 1 getoggelt wird und dann den gewünschten Offset mit 
dieser Variable multiplizieren:

interne Variable: FPA_X | UInt | Startwert: 0
interne Variable: FPA_Y | UInt | Startwert: 0

Schaltfläche "links/rechts" im Faceplate
Ereignisse > Klicken: 
- InvertiereBitInVariable, Variable: FPA_X, Bit: 0
- LineareSkalierung, Y: FPA_Off_X, a: 200 (gewünschte Sprungweite), X: FPA_X, b: 0

Schaltfläche "hoch/runter" im Faceplate
Ereignisse > Klicken: 
- InvertiereBitInVariable, Variable: FPA_Y, Bit: 0
- LineareSkalierung, Y: FPA_Off_Y, a: 100 (gewünschte Sprungweite), X: FPA_Y, b: 0

Wichtig:
Die animierte Gruppe darf dann im Bildeditor nicht mehr verschoben werden, weil bei der direkten Bewegung 
nicht die absolute Bildposition angegeben wird, sondern der Offset zu der Position zur Projektierungszeit!

Wo man nun die Bewegungs-Animation bei einem Bildbaustein anbindet bin ich überfragt.
Ich habe ja einfach eine Gruppe von Objekten benutzt. Mir reicht es aus, wenn ich das Faceplate nicht in 
jede beliebige Position auf dem Bild bewegen kann, sondern nur in den 4 Ecken rumspringe.

Gruß
Harald


----------



## Steve38 (25 März 2010)

Ok, 

hab mal gesucht, aber kann Faceplate, nicht wirklich finden.


Wie kann ich ein Faceplate anlegen?


----------



## rostiger Nagel (25 März 2010)

Hallo Steve,
das gibt es auch in Flex nicht, das mußt du dir aus Standard Objekten
selber zusammen basteln und wie von Harald beschrieben verschalten.

gruß helmut


----------



## PN/DP (25 März 2010)

Das Wort "Faceplate" ist ein Synonym für einen kleinen Bediendialog eines Aggregates, auf dem übersichtlich 
die wichtigsten Bedien- und Anzeigeelemente zusammengefasst sind.
Der Begriff hat sich unter Visalisierungs-Programmierern eingebürgert.
Bei WinCC und PCS7 sind das richtige, frei verschiebbare Dialoge. Die gibt es da vorgefertigt in Bibliotheken.

In WinCC flexible muß man sich etwas, was wie ein Faceplate aussieht, aus grafischen Objekten selber basteln.
Faceplates sind die Hauptanwendung von Bildbausteinen.

Das Wort "Faceplate" wird in vielen technischen Gebieten benutzt, deshalb wird man im Internet nicht "die" Definition 
von Faceplate finden.

Gruß
Harald


----------



## Steve38 (25 März 2010)

Ah, ok das erklärt einiges.

Den Bildbaustein hab ich mir ja schon super selber gebastelt.  Ein /Ausblenden klappt ja auch super, nur ich kann diesen nicht im Panel einfach verschieben, wie z.B. den Nummernblock.


----------



## stan_keiler (25 März 2010)

hey ich habs gestern endlich geschafft ^^ fertig... alles eingefügt und facplates öffnen sich... multiplexen erfolgreich / sichtbarkeit erfolgreich alles funzt und sogar mit den in ecken springen funktioniert =) supi ich danke

also als faceplates hab ich einfach 2 rechtecke genommen und die mit der sichtbarkeit da dynamisiert


----------

