Konvertierung zu HMI-Farbobjekt
Um eine Farbe in der TwinCAT HMI z. B. als Hintergrund oder für andere Eigenschaften wie Text oder Rahmen nutzen zu können, muss diese in ein Objekt vom Typ TcHmi.Color konvertiert werden. Das folgende Beispiel zeigt, wie eine solche Funktion angelegt wird und welche Schnittstellen diese haben muss.
![]() | Die allgemeine Verwendung von Funktionen wird in der HMI-Dokumentation erklärt. |
Nach dem Erstellen der TypeScript Funktion muss ein Parameter angelegt werden. Dieser bekommt den Farbwert z. B. von der PixelColor-Eigenschaft des ImageControls oder den ColorValue vom Color Control übergeben und muss daher vom Typ Array
angelegt werden. Es ist zu beachten, dass sich der übergebene Parameter zum Zeitpunkt der Funktionsausführung aus Timing-Gründen vom Wert der entsprechenden Control-Eigenschaften unterscheiden kann.
Die Funktion muss einen Wert vom Typ Color
zurückgeben, der dann für andere Eigenschaften im HMI verwendet werden kann.

Folgendes Codebeispiel zeigt die Konvertierung eines RGB-Farbwerts:
module TcHmi {
export module Functions {
export module Custom {
export function StringifyColor(color: number[]): TcHmi.Color {
if (color.length >= 3) {
return { color: `rgb(${color[0]}, ${color[1]}, ${color[2]})` };
}
throw new Error("Could not stringify color.");
}
}
registerFunctionEx('StringifyColor', 'TcHmi.Functions.DevHmi', DevHmi.StringifyColor);
}
}
Um als Farbobjekt akzeptiert zu werden, muss der Rückgabewert den Typ Color
haben und wie folgt aufgebaut sein:
{
color: ‘rgb(<red>, <green>, <blue>)’
}
Eine solche Funktion kann z.B. genutzt werden, indem der Farbwert eines TcHmiVnColor Controls mit der Funktion umgewandelt und dann als Hintergrundfarbe eines anderen UI-Elements festgelegt wird.
