ConvertFromText('Expression', 'DecimalPoint*=0', 'Begin=0', 'End'=-1 (end of text)', 'Base*=10', 'Bitsize*=32')
Argumente
|
'Expression' |
Name des Textsignals |
|
|
'DecimalSeparator*' |
Dezimalzeichen |
|
|
DecimalSeparator = 0 DecimalSeparator = 1 |
Punkt Komma |
|
|
'Begin' |
Index des ersten Zeichens des gewünschten Textes, Voreinstellung = 0; bei Werten <0 wird 'Begin' automatisch auf 0 gesetzt. |
|
|
'End' |
Index des letzten Zeichens des gewünschtgen Textes, Voreinstellung = -1 (Ende des Textes) |
|
|
'Base*' |
Zahlbasis, die der Zahl im Text zugrunde liegt |
|
|
'Base=2' 'Base=8' 'Base=10' (default) 'Base=16' |
binär oktal dezimal hexadezimal |
|
|
'Bitsize*' |
Anzahl der Bits der erwarteten Zahl |
Typ. Werte: 32 (default), 64, 16, 8 |
Parameter, die mit * enden, werden nur einmalig zu Beginn der Erfassung übernommen.
Beschreibung
Die Funktion parst eine Zahl aus einem Text und liefert den numerischen Wert als Dezimalzahl. Steht an erster Stelle des durch die Argumente 'Beginn' und 'End' definierten Bereichs keine Zahl, wird 0 ausgegeben. Ausnahme: wenn nur Leerzeichen bis zum ersten numerischen Zeichen vorhanden sind. Ansonsten wird der Text bis zur ersten nicht-numerischen Stelle bzw. maximal bis 'End' gelesen. Führende Nullen vor einer Zahl dürfen nicht durch Leerzeichen oder nicht-numerische Zeichen unterbrochen werden.
Mit dem Argument 'DecimalSeparator' bestimmen Sie das Dezimaltrennzeichen. Das ist nur relevant, wenn die Zahl im Text bereits eine Dezimalzahl ist ('Base' = 10). Wenn das Argument 'Base' ungleich 10 ist, dann wird 'DecimalSeparator' ignoriert.
Das Argument 'Base' beschreibt die Zahlbasis, die der Zahl im Text zugrunde liegt. Mögliche Werte sind 2 (binär), 8 (oktal), 10 (dezimal) und 16 (hexadezimal). Beim Parsen wird die Zahl im Text als Zahl mit der Basis 'Base' interpretiert und entsprechend auf einen dezimalen Zahlenwert umgerechnet. Voreinstellung ist 10 für Dezimalzahlen. Wenn die Zahl im Text eine Dezimalzahl ist, können Sie das Argument 'Base' weglassen. Wenn die Zahl im Text z. B. eine hexadezimale Zahl ist, dann tragen Sie für 'Base' 16 ein. Die Zahl FF im Text ergibt dann das Ergebnis 255.
Das Argument 'Bitsize' ist nur relevant, wenn das Argument 'Base' auf einen anderen Wert als 10 gesetzt wurde. Es bestimmt, wie viele Bits die Zahl aus dem Text haben soll. Das ist wichtig für das korrekte Parsen von Zahlen, die als Zweierkomplement dargestellt werden. Für die hexadezimale Zahl 0xFFFF im Text z. B. ist das Ergebnis -1 mit 'Bitsize' = 16 und 65535 mit 'Bitsize' = 32.
Für 'Base'-Werte ungleich 10 arbeitet ConvertFromText stets mit 64-Bit-Integer. Zahlenwerte größer als 263-1 werden daher nicht korrekt gewandelt. Beachten Sie außerdem, dass 'Bitsize' maximal 64 sein kann und somit nur 64-Bit-Integer mit Vorzeichen geparst werden können.
Beispiel 1: Konvertierung einer Dezimalzahl
Einlesen eines definierten Texts mit einer Zahl
Lösung
Die Funktion lautet: ConvertFrom Text('Text', 0,22,-1)
Der Inhalt des Textsignals lautet: Voltage target value: 6.9 V
Der Spannungswert beginnt bei der Position 22. Als Ende-Index wird -1 verwendet, damit auch Werte mit mehr Vor- und/oder Nachkommastellen erfasst werden.

Beispiel 2: Konvertierung mit Angabe einer Zahlbasis
Erfassen einer Zahl aus einem Text unter Berücksichtigung der Zahlbasis.
In den folgenden Beispielen ist in der Textzeile ab Position 17 eine Zahl eingetragen, die mit der Funktion ConvertFromText mit verschiedenen Zahlbasen gewandelt wird. Die Syntax der Funktion ist in der rechten Spalte zu sehen. Die Ergebniswerte (grün hinterlegt) sind stets Dezimalzahlen.
Die binäre Wandlung liefert kein Ergebnis, da die Ziffern 2 und 5 nicht im binären Zahlensystem existieren.
Die binäre Wandlung liefert ein Ergebnis, da die Ziffernfolge aus 1 und 0 auch im binären System existiert.
Die Wandlung aus binärem, oktalem und dezimalem System liefert kein Ergebnis, da das Zeichen F in diesen Zahlensystemen nicht existiert.


