sps-forum hat leider recht, das Array of Bool bringt leider nicht viel.
WinCC akzeptiert es nicht, man kann sich die Variablen dann manuell als INT/WORD anlegen (DB nicht optimiert)
Als zweiten Nachteil hat man dann dass man im Programm nur mit kryptischen Symbolen ala Alarm[328] arbeiten muss.
Eigentlich akzeptiert WinCC sowieso nur INT/WORD-Werte aus denen man dann beim Erstellen der Meldung eine Bitadresse angeben muss.
Welche Möglichkeiten gibts...
a)Optimierter Baustein mit INT/WORD
Vorteil: Kann direkt in WinCC als Triggervariable verwendet werden.
Nachteil: Zugriff auf Bits muss auf Wegen wie Slice, AT, etc. genommen werden.
DbStoerungen.Becken1.Stoe_331N1_NH4.X1/X2/X3 etc... ist aber auf kein tolles Symbol.
b) Freie Struktur der Meldungen in einem nicht optimierten DB.
Vorteil: Man kann alle möglichen Bitstrukturen verwenden.
Nachteil: Mann muss die Variablen händisch in WinCC als INTs/WORDs an den entsprechenden Adressen anlegen.
Ich persönlich tendiere zur Variante B.
Im DB kann die die Bits vollsymbolisch mit Strukturen anlegen (Stoe.Becken1.331N1_NH4.MAX; Stoe.Becken1.331N1_NH4.StoeSensor; etc...)
Die Worte-Variablen muss man halt dann in WinCC anlegen.
Wenns bessere Lösungen gibt (für das Bitmeldeverfahren) dann bin ich ganz Ohr.
Zu Wissen ist nur dass die Byte-Order in WinCC gedreht ist.
Z.B. du hast eine Word-Variable, dann ist Bit 0 gleich Bit 8 in der Triggervariable der Meldung. Bit1 ^= Bit9, Bit8 ^= Bit0, etc....
Siemens-Logik halt.