CharsToText ('Encoding'*, 'Value1', 'Value2', ...)
Argumente
|
'Encoding*' |
Zeichenkodierung, Angabe des Namens oder der Codepage-ID |
|
|
'Encoding*' = "ASCII" 'Encoding*' = 1252 |
Zeichenkodierung ASCII als Klartext (in Anführungszeichen!) oder Codepage-ID für ASCII |
|
|
'Encoding*' = "UTF-8" 'Encoding*' = 65001 |
Zeichenkodierung UTF-8 als Klartext (in Anführungszeichen!) oder Codepage-ID für UTF-8 |
|
|
'Encoding*' = "UTF-16" 'Encoding*' = 1200 |
Zeichenkodierung UTF-16 als Klartext (in Anführungszeichen!) oder Codepage-ID für UTF-16 |
|
|
'Value1' ... 'Valuen' |
Dezimaler Zeichencode für jedes Zeichen entsprechend der gewählten Zeichenkodierung; Einträge als Zahlenwert oder als Analogsignal |
|
Parameter, die mit * enden, werden nur einmalig zu Beginn der Erfassung übernommen.
Beschreibung
Diese Funktion setzt aus einzelnen Zeichencodes einen Text zusammen und gibt diesen aus (Textsignal). Die einzelnen Zeichencodes 'Value1' bis 'Valuen' werden der Funktion auf Basis einer einstellbaren Kodierung als Zahlenwerte übergeben. Unterstützt werden die Kodierungen ASCII, UTF-8 und UTF-16 sowie weitere gültige Codepage-IDs. Sollte eine Codepage vom System nicht unterstützt werden, wird dies im Ausdruckseditor signalisiert.
Jeder 'Value' muss einem numerischen Wert mit einer Bytegröße entsprechen, die der Mindestbytegröße der Kodierung entspricht.
Bei ASCII und UTF-8, z. B., entspricht jeder "Value" einem einzelnen Byte. Bei UTF-16 entspricht jeder 'Value' einem 2-Byte-Integer.
Die Anzahl der Zeichen, die zu einem Text verbunden werden können, ist auf 999 begrenzt. Vorzugsweise sollten die dezimalen Codes verwendet werden, es werden aber auch hexadezimale Codes unterstützt (mit 0x vorangestellt).
Mithilfe dieser Funkion ist es nun einfacher, lesbaren Text von Quellen zu generieren, die nur numerische Werte verarbeiten können.
Sinnvoll ist es, Analogsignale für die Übertragung der dezimalen Zeichencodes zu verwenden, um während der Erfassung die Zeichen ändern zu können.
Beispiele
Zum besseren Verständnis sind die Zeichencodes hier als Zahlenwerte eingetragen. In der Anwendung kann für jeden Zahlencode ein Analogsignal eingetragen werden, mit dem der Code z. B. von der SPS übertragen wird. Auch eine Kombination aus Analogsignalen und fest eingetragenen Zahlencodes ist möglich)
|
Ausdruck |
Ergebnis |
Bemerkung |
|---|---|---|
|
CharsToText("ASCII",105,98,97,32,65,71) |
iba AG |
ASCII-Kodierung, dezimal |
|
CharsToText(1252,105,98,97,32,65,71) |
iba AG |
Codepage 1252, dezimal |
|
CharsToText("ASCII",65, 66, 67) |
ABC |
ASCII-Kodierung, dezimal |
|
CharsToText("UTF-8", 65, 66, 67) |
ABC |
UTF-8-kodierung, dezimal |
|
CharsToText("UTF-8", 0xE2, 0x82, 0xAC) |
€ |
Eurozeichen, UTF-8-Kodierung, hexadezimal |
|
CharsToText("UTF-8", 226, 130, 172) |
€ |
Eurozeichen, UTF-8-Kodierung, dezimal |
|
CharsToText("UTF-16", 8364) |
€ |
Eurozeichen, UTF-16-Kodierung, dezimal |
|
CharsToText(869, 213, 226) |
Ωθ |
Codepage 869 (griech. Alphabet), dezimal |
|
CharsToText(869, 0xD5, 0xE2) |
Ωθ |
Codepage 869 (griech. Alphabet), hexadezimal |