Ein Bildobjekt soll von 2 boolischen Veriablen gesteuert werden

Ja, das geht mit WinCC. Meistens.



Details gibts, wenn Du uns Details verrätst.
Welche WinCC-Version verwendest Du? Mit welchem Gerät?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, das geht mit WinCC. Meistens.



Details gibts, wenn Du uns Details verrätst.
Welche WinCC-Version verwendest Du? Mit welchem Gerät?

Harald


Hallo Harald,

danke für deine Meldung.
Hier sind die gewünschten Details:
Programmierung mit TIA V12 Professional SP1 dazu WinCC Professional V12 SP1 und als HMI Hardware habe ich ein Siemens Touch-Panel TP 700.

Jack
 
(Ich antworte mal in diesem ersten Thread)

Bei der Farbsteuerung Animation>Gestaltung kann man nur 1 Variable angeben. Um die Animation von 2 Variablen abhängig zu machen, kann man die 2 (oder mehr) externen Variablen zunächst zu 1 interne Variable zusammenfassen und dann die interne Variable für die Animation benutzen.

Da bekommt man allerdings das Problem, daß beide externen Variablen bei Wertänderung die interne Variable ändern müssen und man dafür sorgen muß, daß die Runtime die beiden Variablen auch liest um die Wertänderungen mitzukriegen. Man muß die beiden Variablen irgendwie im Bild verwenden oder "zyklisch fortlaufend" lesen lassen.


Wenn das Panel Skripte kann, dann kann man auch direkt die Objekt-Eigenschaften manipulieren. Da bekommt man zusätzlich zu dem Wertänderungsproblem noch das Problem, daß man die Farbzuweisungen an das Objekt bei Wertänderungen und bei jedem "Bild aufgebaut" erneut vornehmen muß.
Code:
Set objekt = HmiRuntime.Screens("Bild_1").ScreenItems("MeinObjekt_1")
If SmartTags("xColor_1") Then
  objekt.BackColor = RGB (102, 255, 153) 'hellgrün
Else
...

Es ist also grundsätzlich möglich, aber umständlich.

Einfacher ist es, mit 2 übereinanderliegenden Objekten zu arbeiten, wobei die eine Variable die Farbe und die andere Variable die Sichtbarkeit steuert.

Noch besser ist es, schon in der Steuerung ein "Statusbyte" aus allen relevanten Einflüssen zusammenstellen und dieses eine Statusbyte direkt für die Farbanimation zu nutzen.

Das umständliche und undurchsichtige Verknüpfen von zwei Variablen in der HMI-Runtime sollte man nur machen, wenn es nicht anders geht, z.B. wenn die Variablen in verschiedenen Steuerungen liegen.


Hier nun ein Beispiel, wie man 2 boolsche Variablen zur Farbsteuerung in der HMI-Runtime kombiniert:
- xColor_1 und xColor_2 sind die beiden externen boolschen Variablen
- iColor_1 und iColor_2 sind zwei interne Variablen Typ Int
- iColor_control ist eine interne Variable Typ Int
- an beide externen Variablen xColor_1 und xColor_2 wird bei "Wertänderung" diese Funktionsliste projektiert:
Code:
1  SetzeWert
   Variable(Ausgabe)   iColor_1
   Wert                xColor_1

2  SetzeWert
   Variable(Ausgabe)   iColor_2
   Wert                xColor_2

3  LineareSkalierung
   Y(Ausgabe)          iColor_control
   a                   2
   X                   iColor_1
   b                   iColor_2
- beim zu animierenden Objekt Animation>Gestaltung
Code:
Variable: iColor_control
Typ (x) Integer
Wert  0  schwarz  grau
     -1  schwarz  grün
     -2  schwarz  gelb
     -3  schwarz  rot
- nun muß man noch xColor_1 und xColor_2 irgendwie im Bild verwenden (oder die Erfassungsart auf "zyklisch fortlaufend" stellen), z.B.
-- in Animation>Gestaltung von beliebigen Objekten, wobei die Animation die Objektfarbe nicht ändert
-- in Animation>Gestaltung von verdeckten/unsichtbaren Dummy-Objekten
-- in verdeckten/unsichtbaren Ausgabefeldern
-- für eine wirkungslose Animation>Sichtbarkeit: von 0 bis 1 sichtbar (dabei muß man wegen einer WinCCflex-"Macke" auf "von 0 bis 1 (x) Ausgeblendet" stellen)

Harald
 
Zurück
Oben