Dienstag, 17. Juli 2018

WinCC 7.4, C-Scripte und Mehrbytezeichenkodierung

WinCC unterstützt ab Version 7.2 Unicode für die Zeichenkodierung, eine Ausnahme bilden allerdings die C Scripte. Der Compiler/Interpreter für C Scripte verarbeitet nur sprachspezifische Zeichenkodierungen und konvertiert die Unicode-Zeichen vor der Verarbeitung in diese. Die konkrete sprachspezifische Zeichenkodierung kann für jedes C Script eingestellt werden.


Umfang von Zeichenkodierungen

Unicode speichert für jedes Zeichen eine eigene Nummer, den so genannten Codepoint. So können mit der Unicode Zeichenkodierung gleichzeitig chinesische und japanische Zeichen, wie auch russische und deutsche Zeichen gespeichert werden. Alle Zeichen werden durch eine eindeutige Zahl repräsentiert.


Sprachspezifische Zeichenkodierung

Bei den sprachspezifischen Zeichenkodierungen werden im Gegensatz zu Unicode immer nur die Zeichen einer Codepage kodiert. So enthält die russische Zeichenkodierung neben den kyrillischen Zeichen nur die ASCII Zeichen, ansonsten keine weiteren Zeichen. Mit der russischen Zeichenkodierung können damit keine deutschen Umlaute kodiert werden. Die sprachspezifischen Zeichenkodierungen enthalten damit immer nur eine Untermenge der Zeichen.

Wichtig: Da in einer sprachspezifischen Zeichenkodierung nicht alle Zeichen der Unicode Zeichenkodierung kodiert werden können, werden Zeichen ggfs. bei der Konvertierung durch ähnliche Zeichen oder Fragezeichen ersetzt.


Mit welchen Mechanismen versucht WinCC jetzt dem Informationsverlust entgegen zuwirken?

Die sprachspezifische Zeichenkodierung kann für jedes Script explizit auf eine Sprache oder die Einstellung "Dynamic: Project setting" gesetzt werden. Und bei den WinCC Project Properties kann die Einstellung "C script with language setting 'Dynamic' in Runtime" auf eine konkrete Sprache oder eine der Einstellungen "Operating system language for non-Unicode programs" und "Respective set WinCC Runtime language" gesetzt werden.

Einstellung der Codepage für das C script

WinCC Projekteinstellung


Im Fall, dass die gesamte WinCC Visualisierung auf eine Sprache umgeschaltet wird, ist die Einstellung "Respective set WinCC Runtime language" korrekt. Jetzt richtet sich die Sprache der C Scripte nach der Runtime language.