Text und Sprache
Texte und Sprachen werden in der PLC HMI grundsätzlich mithilfe von Textlisten verwaltet. Dabei stehen ANSI und Unicode als Zeichenkodierungsvarianten zur Verfügung. In der Visualisierung können Elemente auf zwei verschiedene Arten beschriftet werden:
- Statischer Text
- Dynamischer Text
Statischer Text
Ein Visualisierungselement kann mit einem statischen Text versehen werden, indem dieser in den Elementeigenschaften in der Kategorie ‚Texte‘ eingetragen wird. Er kann auch direkt im Editorfenster eingetragen werden, wenn das Element selektiert ist und die Leertaste gedrückt wird. Dieser Text kann zur Laufzeit nicht geändert werden. Nur Änderungen der Sprache werden für den Text übernommen.
Jeder statische Text wird automatisch in der Textliste "GlobalTextList" gespeichert. In dieser Textliste werden auch die Übersetzungen in andere Sprachen verwaltet.
Dynamischer Text
Dynamischer Text wird in den Elementeigenschaften in der Kategorie ‚Dynamische Texte‘ eingetragen. Dazu muss zunächst der Name der Textliste aus den im SPS-Projekt vorhandenen ausgewählt werden. Hier kann die "GlobalTextList" nicht verwendet werden, sondern ausschließlich selbst erstellte Textlisten. Zusätzlich muss eine Variable für die ID des Texteintrages angegeben werden, über die zur Laufzeit der Text geändert werden kann.
Beispiel
Beispielhaft wird eine Textliste mit dem Namen "ErrorList" angelegt. In dieser Liste wird eine Reihe von Fehlermeldungen mit ihren Übersetzungen eingetragen.
In einer Visualisierung mit dem Namen "Visualization" wird ein Rechteckelement hinzugefügt. In den Eigenschaften dieses Elements werden unter "Dynamische Texte" die Textliste "ErrorList" und die Variable "nErrorID", die in der "MAIN" deklariert ist, ausgewählt.
Zur Laufzeit kann nun eine der in der Textliste "ErrorList" gespeicherten Fehlermeldungen in dem Rechteck angezeigt werden, indem die Variable "nErrorID" auf einen Wert zwischen größer gleich 0 und kleiner gleich 4 gesetzt wird. Im Beispiel hat "nErrorID" den Wert 2.
Sprachumschaltung
Wenn die aktuell verwendete Textliste Übersetzungen der Texte in mehrere Sprachen definiert, kann die beim Start der Visualisierung zu verwendende Sprache festgelegt werden. Zusätzlich kann zur Laufzeit die Sprache mithilfe von Schaltflächen auf der Visualisierung geändert werden. Dafür wird die Aktion "Sprachumschaltung" in den Elementeinstellungen unter der Kategorie ‚Eingabekonfiguration‘ genutzt.
Für die Abfrage der aktuell verwendeten Sprache kann die Variable "CURRENTLANGUAGE" der Bibliothek "VisuElems" verwendet werden. Über diese Variable kann auch im Programmcode die verwendete Sprache geändert werden:
fbTrigger(CLK := bPressed);
IF fbTrigger.Q THEN
IF VisuElems.CURRENTLANGUAGE = 'de' THEN
VisuElems.CURRENTLANGUAGE := 'en';
ELSE
VisuElems.CURRENTLANGUAGE := 'de';
END_IF
END_IF
Falls kein Eintrag in der Textliste vorhanden ist, der mit der gerade eingestellten Sprache übereinstimmt, wird der Eintrag unter Standard verwendet. |
Die Definition einer Standardsprache beim Start der Visualisierung und die Verwendung der Variablen "VisuElems.CURRENTLANGUAGE" sind nur in Verbindung mit der PLC HMI und/ oder der PLC HMI Web möglich. Bei der integrierten Visualisierung wird beim Start automatisch die Textversion ‚Standard‘ verwendet. Eine Sprachumschaltung zur Laufzeit über Schalflächen auf der Visualisierung ist auch in der integrierten Visualisierung möglich. |
Formatierung des Textes
Neben der Eingabe eines reinen Textes in den Elementeigenschaften in der Kategorie ‚Texte‘ können auch Formatierungsangaben eingefügt werden, um die Textanzeige im Onlinebetrieb zu gestalten. Eine Formatierungsangabe beginnt immer mit einem „%“, gefolgt von einem Zeichen, das die Art der Formatierung bestimmt. Sie kann allein oder in Kombination mit dem eigentlichen Text verwendet werden.
Die Variable, die als Text im Element ausgegeben werden soll, ist in den Elementeigenschaften in der Kategorie ‚Textvariablen‘ anzugeben. Falls Sie den Instanznamen einer Variablen, die einem Visualisierungsbaustein als Eingangsparameter übergeben wurde, anzeigen lassen wollen, so ist vom dem Pragma Attribut 'parameterstringof' Gebrauch zu machen.
%b | Binärzahl |
%c | Einzelnes Zeichen |
%d, %i | Dezimalzahl |
%f | REAL-Wert |
%o | Vorzeichenlose Oktalzahl (ohne vorangestellte Null) |
%s | Zeichenfolge |
%u | Vorzeichenlose Dezimalzahl |
%x | Vorzeichenlose Hexadezimalzahl (ohne vorangestelltes ‚0x‘) |
Beispiel
Im Eigenschaftenfeld "Text" in der Kategorie "Texte" der Eigenschaften eines Rechteckelements wird "Fill level: %2.5 f mm" eingetragen. Die zu verwendende Variable wird im Eingabefeld "Textvariable" in der Kategorie ‚Textvariablen‘ eingegeben. In diesem Beispiel ist es "fFillLevel". Sie ist in dem Programm MAIN als REAL deklariert.
Zur Laufzeit sieht das Rechteckelement wie folgt aus:
Wenn ein Prozentzeichen % in Kombination mit einer der oben beschriebenen Formatierungsangaben angezeigt werden soll, muss „%%“ eingegeben werden. Beispiel Geben Sie „Rate in %%: %s“ ein, um im Onlinebetrieb folgendes zu erhalten: „Rate in %: 12“ (wenn die Textvariable gerade „12“ liefert). |
Ausgabe der Systemzeit
Eine Kombination aus "%t" und nachfolgenden speziellen Platzhaltern innerhalb von eckigen Klammern wird im Onlinebetrieb durch die aktuelle Systemzeit ersetzt. Die Platzhalter definieren das Anzeigeformat.
Import von TwinCAT 2 PLC-Control-Projekten: Die frühere verwendete Zeitformatierung %t wird automatisch in das neue %t[] Format konvertiert, wenn ein altes Projekt importiert wird, jedoch werden die folgenden Platzhalter nicht mehr unterstützt: %U, %W, %z, %Z. |
Gültige Platzhalter:
ddd | Name des Wochentags, abgekürzt, z.B. „Wed“ |
dddd | Name des Wochentags, z.B. „Wednesday“ |
ddddd | Wochentag als Zahl (0 – 6; Sonntag ist 0) |
MMM | Name des Monats, abgekürzt, z.B. „Feb“ |
MMMM | Name des Monats, z.B. „February“ |
d | Tag im Monat als Zahl (1 – 31), z.B. „8“ |
dd | Tag im Monat als Zahl (01 – 31), z.B. „08“ |
M | Monat als Zahl (1 – 12), z.B. „4“ |
MM | Monat als Zahl (01 – 12), z.B. „04“ |
jjj | Tag im Jahr als Zahl (001-366), z.B. „067“ |
y | Jahr ohne Angabe des Jahrhunderts (0-99), z.B. „9“ |
yy | Jahr ohne Angabe des Jahrhunderts (00-99), z.B. „09“ |
yyyy | Jahr mit Angabe des Jahrhunderts, z.B. „2009“ |
HH | Stunde, 24-Stunden-Format (01-24), z.B. „16“ |
hh | Stunde, 12-Stunden-Format (01-12), z.B. „4“ für 16 Uhr |
m | Minuten (0-59), ohne vorangestellte Null, z.B. „6“ |
mm | Minuten (00-59), mit vorangestellter Null, z.B. „06“ |
s | Sekunden (0-59), ohne vorangestellte Null, z.B. „6“ |
ss | Sekunden (00-59), mit vorangestellter Null, z.B. „06“ |
ms | Millisekunden (0-999), ohne vorangestellter Null, z.B. „322“ |
t | Kennzeichner für die Anzeige im 12-Stunden-Format: A (Stunden <12) bzw. P (Stunden >12), z.B. „A“ wenn es 9 Uhr morgens ist |
tt | Kennzeichner für die Anzeige im 12-Stunden-Format: AM (Stunden <12) bzw. PM (Stunden >12), z.B. „AM“ wenn es 9 Uhr morgens ist |
' ' | Zeichenfolgen, die einen der oben aufgeführten Platzhalter enthalten, müssen in einzelne Hochkommas gefasst werden; alle anderen Texte innerhalb des Format-Strings können ohne Hochkommas stehen; z.B. 'update', weil ein "d" und ein "t" enthalten sind |
Beispiel
Im Eigenschaftenfeld "Text" in der Kategorie "Texte" der Eigenschaften eines Rechteckelements wird "%t['Last update:' ddd MMM dd.MM.yy 'at' HH:mm:ss]" eingetragen.
Zur Laufzeit sieht das Rechteckelement wie folgt aus:
Schriftart und Ausrichtung
Die Schriftart und die horizontale und vertikale Ausrichtung des Elementtextes können in den Elementeigenschaften definiert werden. Siehe hierzu die Kategorien "Schriftartvariablen" und "Texteigenschaften" des entsprechenden Elements.