WinCC Flexible 2008+Runtime - Blinken bei mehreren aktiven Bits

ThomaZ

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


Ich verzweifel grad ein wenig an meinem Verstand, weshalb ich mich an euch wende.


Ich arbeite mit der 'WinCC Runtime' und 'WinCC flexible Advanced 2008 SP3'




Ich habe folgende Situation:




Ich habe einen Grundriss mit mehreren Räumen.
Jeder Raum hat ein WORD mit je 8 Bit zur verfügung.
Jedes Bit steht für eine eigene Meldung wie z.B. 'Temperatur zu hoch/niedrig','Feueralarm', etc.


Bsp. Raum 1
- Sensor 1 - DB123.DBX0
- Sensor 2 - DB123.DBX1
- Sensor 3 - DB123.DBX2
- Sensor 4 - DB123.DBX3
- Sensor 5 - DB123.DBX4
- Sensor 6 - DB123.DBX5
- Sensor 7 - DB123.DBX6
- Sensor 8 - DB123.DBX7




Wenn einer ODER mehrere Bit gesetzt sind, soll der Raum im Grundriss rot blinken.




Wenn ich den Raum(Rechteck) anklicke, dort die 'Gestaltung' aktiviere und alle meine Bit's eintrage, habe ich das Problem, dass immer nur ein einziges Bit aktiv sein darf, damit der Raum auch wirklich blinkt. Wenn ich zwei oder mehr Bit's setze, dann habe ich zwar mehrere Meldungen im Meldefenster, aber der Raum blinkt nicht mehr.


Denke ich zu einfach oder zu kompliziert? Kann mir jemand erklären wie ich das anders lösen kann?


Vielen Dank im Vorraus


Thomas
 
Oder

- Sensor 1 - DB123.DBX0
- Sensor 2 - DB123.DBX1
- Sensor 3 - DB123.DBX2
- Sensor 4 - DB123.DBX3
- Sensor 5 - DB123.DBX4
- Sensor 6 - DB123.DBX5
- Sensor 7 - DB123.DBX6
- Sensor 8 - DB123.DBX7

= Rechteck Rot (DB123.DBX199)

Das dann als Ereignis eintragen

Oder Vergleich auf <>0 = blinken

Oder Wert >=1 blinken
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Verpolt,

Ich verstehe nicht ganz was du mir damit sagen willst :oops:
Ich habe alle Bits, welche den Raum betreffen, in der Liste eingetragen.
bit-blinker.PNG

Sobald jedoch mehr als ein Bit gesetzt ist, blinkt es nicht mehr.
 
Also,

Fast du die Variablen in ein Byte (8-Bit) Word (16 Bit) zusammen, so kannst du den Wert der Variable als Animation angeben (Integer)

bl1.JPG

ansonsten in der SPS alle bits auf ein Oder. Oder die Variable auf größer 0 abfragen und damit ein neues Animationsbit erstellen. (Bit)
 
Das mit der angabe 1-255 funktioniert prima, danke!

Wenn ich mir jetzt noch eine weitere Frage erlauben darf:
Nun habe ich noch den Fall das ich einen Block von 8 Bit für 4 unterschiedliche Räume nutzen möchte. Jeweils 2 Bit pro Raum.
Hier kann ich ja nich einfach sagen 'X bis Y = Blinken'. Bei zwei Bit bestünde nun die möglichkeit alle möglichkeiten als Wert einzutragen, was bei mehr als zwei Bit aber schon wieder zu komplex wird.

Bsp:
Bit 1 |
----------> Raum 1 blinkt
Bit 2 |


Bit 3
----------> Raum 2 blinkt
Bit 4

...

Wie löse ich sowas?
 
Entweder liegt es am Montag, oder an fehlendem Wissen :(
Wo muss diese 'Abfrage' realisiert werden? Muss ich heirfür ein Skript anlegen, oder kann ich das direkt in WinCC Flex lösen?

Vielen Dank für die Geduld :roll:
 
du hast doch bestimmt noch Platz in deinem DB.

Der besseren Übersicht zuliebe und bei möglichen Erweiterungen wäre es sinnvoller, die Animationsbits separat anzulegen.
Also weg von den Meldungen. Die lassen sich sehr einfach in der SPS gestalten und in der Visu musst keine Krücken erfinden.

Raum 1 - DB123.DBW 0 Warnungen Störungen etc

Raum 2 - DB123.DBW 2

usw...

Animation Raum 1:

Anzeige Warnung - DB123.DBX200.0
Anzeige Störung - DB123.DBX200.1
Blinktakt -DB123.DBX200.2
Anzeige Rechteck -DB123.DBX200.3
usw...

Schließlich möchtest du da ja auch noch in 3 Jahren (oder Monaten) durchblicken
oder schreibst ein Handbuch für's Haus?

Bspl:
Code:
O Warnung Raum 1
O Warnung Raum 2
= Warnung Ergeschoss

U Warnung Ergeschoss
U Blinktakt
= Rechteck Rot
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Problem ist, dass ich nicht direkt in der S7 arbeiten kann. Ich soll nur darstellen was ein anderer Programmiert hat.

ein fiktives Beispiel für ein DB:

DB100.DBX512.0 - Küche Rauchmelder Warnung
DB100.DBX512.1 - Küche Rauchmelder Alarm
DB100.DBX512.2 - Wohnzimmer Rauchmelder Warnung
DB100.DBX512.3 - Wohnzimmer Rauchmelder Alarm
DB100.DBX512.4 - Kühlhaus Übertemperatur
DB100.DBX512.5 - Kühlhaus Untertemperatur
DB100.DBX512.6 - Kühlhaus Tür geöffnet
DB100.DBX512.7 - Kühlhaus Beleuchtung EIN

Dieses Beispiel verdeutlicht ziemlich gut meine IST-Situation.
Ändern kann ich daran nichts - somit muss ich das zwangsläufzig irgendwie im WinCC Flex lösen.
 
Zur Not legst halt 3-4 Rechtecke aufeinander.

Rechteck(1) Raum 1 - Animation Sichtbarkeit = Bit 1 (Farbe + Blinken etc..)
Rechteck(2) Raum 1 - Animation Sichtbarkeit = Bit 2 (Farbe + Blinken etc..)
Rechteck(3) Raum 2 - Animation Sichtbarkeit = Bit 3 (Farbe + Blinken etc..)
Rechteck(4) Raum 2 - Animation Sichtbarkeit = Bit 4 (Farbe + Blinken etc..)
 
Das mit der angabe 1-255 funktioniert prima, danke!

Wenn ich mir jetzt noch eine weitere Frage erlauben darf:
Nun habe ich noch den Fall das ich einen Block von 8 Bit für 4 unterschiedliche Räume nutzen möchte. Jeweils 2 Bit pro Raum.
Hier kann ich ja nich einfach sagen 'X bis Y = Blinken'.
Doch, auch das ist neben den vielen anderen Lösungen möglich.
Einfach mehrere Werte untereinander in die Blink-Animation eintragen. Ist aber vor allem bei Raum 1 mit etwas Arbeit verbunden.

Code:
[FONT=Courier New]Raum 1 (Einzelwerte):
2x0000.0011 =   3 = Blinken
2x0000.0111 =   7 = Blinken
2x0000.1011 =  11 = Blinken
2x0000.1111 =  15 = Blinken
...
2x1111.1011 = 251 = Blinken
2x1111.1111 = 255 = Blinken

Wie Du hoffentlich erkannt hast, muß der Raum bei jedem 4. Wert, beginnend mit 3, blinken.


Raum 2 (ab hier immer Wertebereiche):
2x0000.1100 =  12 bis 2x0000.1111 =  15 = ( 12- 15) Blinken
2x0001.1100 =  28 bis 2x0001.1111 =  31 = ( 28- 31) Blinken
2x0010.1100 =  44 bis 2x0010.1111 =  47 = ( 44- 47) Blinken
...
2x1111.1100 = 252 bis 2x1111.1111 = 255 = (252-255) Blinken

Also beide Werte immer um 24 weiter rechnen. Der Bereich beträgt immer 4 Werte.


Raum 3:
2x0011.0000 =  48 bis 2x0011.1111 =  63 = ( 48- 63) Blinken
2x0111.0000 = 112 bis 2x0111.1111 = 127 = (112-127) Blinken
2x1011.0000 = 176 bis 2x1011.1111 = 191 = (176-191) Blinken
2x1111.0000 = 240 bis 2x1111.1111 = 255 = (240-255) Blinken


Und schließlich Raum 4:
2x1100.0000 = 192 bis 2x1111.1111 = 255 = (192-255) Blinken[/FONT]
 
Zurück
Oben