WinCCflex 2008, gleiche Bild aber andere Bereiche aus DB anzeigen

Smurf

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

ich knobel gerade an einer Lösung um ca 1500 Statusmeldungen in einem Touch Panel anzuzeigen.
Die Konfi soll mit WinCC felx 2008 SP2 gemacht werden.
Vom Prinzip her eigentlich ganz simpel. Ich hab 15 ET Baugruppen mit je 4 DI Karten a 32Kanäle. Jeder DI bildet eine Statusmeldung. Ich hab jetzt alle DIs eingelesen und der Reihe nach in ein Strukturierten DB geschrieben. Der DB ist in etwa so aufgebaut:

+ ETBaugruppen [Array0..14] // für die 15 ETBaugruppen
+DIKarte[Array0..3] (UDT) // je 4 DIKarten pro ETBaugruppe
+Eingang[Array0..31] (UDT) // je 32 Kanäle pro DIKarte

Dadurch sieht der DB in der ONLINEansicht dann so aus:

+ETBaugruppe1
+DIKarte1
+Eingang1
+Eingang2
...
+Eingang32
+DIKarte2
+Eingang1
+Eingang2
...
+Eingang32
...
+DIKarte4
+Eingang1
+Eingang2
...
+Eingang32
+ETBaugruppe2
+DIKarte1
+Eingang1

...usw. bis +ETBaugruppe15.

Ich hatte jetzt die Idee jede ET Baugruppe auf einem Bild anzuzeigen und für jeden Eingang ein Element zu zeigen welches einen Farbumschalg von Weis auf Rot macht um die Störung anzuzeigen. Da ich aber ein wenig zu faul bin 15 Bilder mit je 128 Statusmeldungen zu malen, würde ich gerne nur 2 Bilder machen. Eins auf dem eine Übersicht der 15 Baugruppen ist und dann 1 Bild das einen Wert 1-15 als Multiplexer übergeben bekommt und dann quasi anhand des übergebenen Wertes einen anderen Bereich aus dem DB anzeigt. Dann könnte man beim Drücken auf einer ET Baugruppe im Übersichtsbild den Multiplexer auf den Wert 1-15 setzen und dann das Bild anzeigen.
  • Eine Lösung wäre das Bild mit Tempvariablen zu versehen und diese Variablen dann mit den Werten aus dem DB über ein Script zu füttern bevor dann das Bild angezeigt wird
  • Eine andere Möglichkeit die ich sehe wäre ein seperaten DB anzulegen der in dem Bild angezeigt wird und den Multiplexer an die Steuerung zu übergeben, welche dann den DB für die darstellung mit den richtigen Werten füllt.
Oder gibt es vielleicht noch andere Lösungen?


Ich kenne WinCC leider nicht so gut. Nur die Grundlegenden Sachen. Vielleicht gibts ja noch eine Lösung die viel einfacher ist.
Gibt es vielleicht die Möglichkeit den Strukturierten DB so anzusprechen das er eine ganze ET wiedergibt in einem Datantyp? So das ich im Bild anweisungen wie z.B. "ETBaugruppe[IndexVar].DIKarte[0].Eingang[0]" verwenden kann? So kenne ich es aus anderen Programmiersprachen. Aber ich hab es noch nicht geschaft eine Struktur ETBaugruppe anzulegen und anschliessen damit eine Variable in WinCC anzulegen und sie dann so mit dem DB zu Verknüpfen, da die S7 den Typ aus WinCC ja nicht kennt und nicht wissen kann wieviel Bits bzw. Worte der Datentyp ETBaugruppe hat.

Für Vorschläge oder verbesserungen wäre ich sehr dankbar.

Gruß
Smurf
 
Zuletzt bearbeitet:
Hallo,
du kannst natürlich von Seite zu Seite mit Multiplex-Variablen arbeiten, bei denen du für jede Seite den Start-Index hoch setzt oder definierst.
Dann hört es aber m.E. auch schon auf.
Was aber auch geht (mal unabhängig von dem DB - du könntest ja auch mit den Eingänge direkt arbeiten und die anzeigen) ist, dass du eine Variable z.B. EB40 (oder DB100.DBB10) nennst und bei jeder Anzeige jeweils eine andere Bit-Nummer für die Animation hernimmst.
Vielleicht schaust du dir das mal bei der Animation an wenn du einen Variablentyp wie beschrieben da anlegst ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde beim drücken einer Baugruppe auf dem "Hauptbild" eine Zahl an die SPS schicken. Mit Hilfe dieser Zahl , ein paar Vergleichen und dem Blockmove dann in der SPS den entsprechenden Bereich in eine Art-Visu-Bereich des DB-Kopieren und nur den dann im 2. Bild anzeigen.

Edit: Ich sehe grade beim 2. durchlesen das das deine 2. Idee ist. Ich würde es so lösen. Das macht die Sache sehr flexible und Erweiterbar.
 
..ich knobel gerade an einer Lösung um ca 1500 Statusmeldungen in einem Touch Panel anzuzeigen...
Ich würde beim drücken einer Baugruppe auf dem "Hauptbild" eine Zahl an die SPS schicken. Mit Hilfe dieser Zahl , ein paar Vergleichen und dem Blockmove dann in der SPS den entsprechenden Bereich in eine Art-Visu-Bereich des DB-Kopieren und nur den dann im 2. Bild anzeigen ... Das macht die Sache sehr flexible und Erweiterbar.
.. Und es spart Power-Tags!
 
Zurück
Oben