Konzept

Das Theming im TwinCAT HMI unterscheidet zwischen Control-basierten Themes und Klassen-basierten Themes. Ein Control-Theme legt Eigenschaften fest, die für alle Instanzen des jeweiligen Control-Typs gelten. Ein Klassen-Theme legt Eigenschaften fest, die nur für Controls gelten, denen diese Klasse zugeordnet wird. Dabei können mehrere Klassen zu einem Control zugeordnet werden.

Die Theme-Eigenschaften können auf verschiedenen Ebenen gesetzt werden. Einen vergleichbaren Ansatz nutzt beispielsweise das Cascading Style Sheets im Bereich der Webentwicklung. Die Ebenen legen fest, welche Eigenschaft für ein Element gilt, falls verschiedene Eigenschaften für ein Element definiert sind. Die Eigenschaften der höheren Ebenen werden durch die Eigenschaften der niedrigeren Ebenen überschrieben, falls diese definiert sind. Die unterste Ebene ist die Ebene 1, welche sämtliche Eigenschaften der höheren Ebenen überschreibt.

Das Theme-System verfügt über folgende Ebenen:

Konzept 1:

Ebene 1: Attribut-Ebene

Diese Ebene beschreibt das Aussehen über Attributdefinitionen am Control. In der Analogie zu der CSS-Welt wäre diese Ebene ein direkt am Element definiertes „style“-Attribut.

Ebene 2-4: Attribut-Ebenen

Diese Ebenen beschreiben wie die Ebene 1 das Aussehen über Attributdefinitionen am Control. In der Analogie zu der CSS-Welt wären diese Ebenen externe CSS-Dateien.

Ebene 5: Attribut-Ebenen

Diese Ebene beschreibt wie die Ebenen 1-4 das Aussehen über Attributdefinitionen am Control. Ist über Ebene 1-4 nichts festgelegt, so gilt dieser defaultValueInternal-Wert. In der Analogie zu der CSS-Welt wären diese Ebenen zum Beispiel vergleichbar mit der Schriftfarbe schwarz, die gilt, auch wenn sonst nichts Anderes definiert wurde.

Ebene 6-9: Element-Ebenen

Diese Ebenen beschreiben das Aussehen eines Controls über Cascading Style Sheets-Dateien, wenn das Aussehen eines Controls nicht über ein Attribut definierbar ist oder nicht über ein Attribut definiert wurde.