Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 9 Nächste Version anzeigen »

Dezimalzahl als Zeichenkette in einen Zahlenwert (Integer, Ganzzahl ohne Nachkommastellen) umwandeln

Verfügbar ab Firmware Version 4.1 Insider Preview 1

Inhalt dieser Seite
richtet sich an
EXPERTEN

Über Protokolle wie MQTT und HTTP-/Rest-API werden Dezimalzahlen oft als Zeichenkette übergeben und nicht als binär kodierter Zahlenwert. Im Timberwolf Server können mathematische Operationen nur mit binär kodierten Zahlenwerten ausgeführt werden, daher ist eine Wandlung meist sinnvoll. Zudem werden für Ganzzahlen nur 4 Byte für die Speicherung benötigt.

Syntax

["STR->INT","$In", $Out]

Funktion

Die Eingangszeichenkette "$In" wird in einen binär kodierten Ganzzahlenwert umgewandelt, welche in $Out bereitgestellt wird.

Eingänge

  • "$In" Zeichenkette, welche die umzuwandelnden Dezimalzahl enthält.
    Beispielweise wird die Zeichenkette “255” in den Zahlenwert 255 umgewandelt. Der Dezimalzahl in der Zeichenkette kann “+” vorangestellt sein, dies ist nicht zwingend notwendig.

  • Erlaubte Zeichen: +-1234567890., mit 8 Bit kodiert (ASCII, ANSI, UTF-8)

  • Keine Leerzeichen

  • Keine Vor- und Nachgestellten anderen Zeichen (wir empfehlen, andere Textteile oder Einheitenbezeichnungen zuvor mit dem RegEx-Modul abzutrennen)

Ausgänge

  • $Out Umgewandelte Ganzzahl (4 Byte Integer, vorzeichenbehaftet)

Besonderheiten

  • Es werden nur Zeichenketten mit 8 Bit pro Zeichen korrekt verarbeitet (ASCII, ANSI, UTF-8)

  • Der binär kodierte Zahlenwert am Ausgang wird als vorzeichenbehaftete 32 Bit Ganzzahl im Zweierkomplement ausgegeben

  • Eine negative Zahl in der Zeichenkette muss ein Minuszeichen (ohne Leerzeichen zwischen Minuszeichen und Zahl) vorangestellt haben

  • Zahlenwerte größer als 2.147.483.647 bzw. kleiner als -2.147.483.648 können nicht verarbeitet werden (hierbei wird eine Meldung im Logik Diagnosemonitor unter “Warnungen & Fehler” geloggt).

  • Sollte die Zeichenkette außer den Zahlen weitere Zeichen enthalten, dann wird die umgewandelte Zahl zwar am Ausgang ausgegeben, jedoch wird im Logik Diagnosemonitor (unter “Warnungen & Fehler”) eine Warnung im Log ausgegeben.

  • Nachkommastellen in der Zeichenkette werden ignoriert, es wird nur der ganzzahlige Anteil binär kodiert ausgegeben. In diesem Fall wird im Logik Diagnosemonitor (unter “Warnungen & Fehler”) eine Warnung im Log ausgegeben.

Anwendungen

  • Zeichenkette mit Dezimalzahl umwandeln,

    • um mit dem Zahlenwert Berechnungen durchzuführen

    • um den Zahlenwert in einer Zeitserie zu speichern, damit die Aggregatfunktionen der Datenbank genutzt werden können, eine grafische Darstellung möglich ist und der benötigte Speicherplatz reduziert wird

    • um den Zahlenwert in der VISU darzustellen und wertabhängige Regeln für die Formatierung von Zahlenwerten nutzen zu können

Beispiele

Erfolgreiche Wandlungen

  • Zeichenkette “100” wird umgewandelt in den Zahlenwert 100

  • Zeichenkette “100,1” wird umgewandelt in den Zahlenwert 100

  • Zeichenkette “100.1” wird umgewandelt in den Zahlenwert 100

  • Zeichenkette “1.000,1” wird umgewandelt in den Zahlenwert 1000

  • Zeichenkette “1,000.1” wird umgewandelt in den Zahlenwert 1000

  • Zeichenkette “-100” wird umgewandelt in den Zahlenwert -100

  • Zeichenkette “43 Gramm” wird umgewandelt in 43 (Warnung im Log des Logik Diagnosemonitors)

KEINE Wandlung möglich

  • Zeichenkette “- 3,44 Grad Celsius” kann nicht gewandelt werden (Leerzeichen zwischen Minus und Zahl, Fehlerausgabe im Log des Logik Diagnosemonitors)

  • Zeichenkette “Temperatur -3°C” kann nicht gewandelt werden (Text vor der Zahl, Fehlerausgabe im Log des Logik Diagnosemonitors)
    Tipp: Verwenden Sie das Regex Modul um zunächst den relevanten Zahlenteil von der Zeichenkette abzutrennen.

  • Zeichenkette “2147483648” kann nicht gewandelt werden (Zahl nicht mit 32 Bit vorzeichenbehaftet darstellbar, Fehlerausgabe im Log des Logik Diagnosemonitors)

  • Zeichenkette “-2147483649” kann nicht gewandelt werden (Zahl nicht mit 32 Bit vorzeichenbehaftet darstellbar, Fehlerausgabe im Log des Logik Diagnosemonitors)

Entsprechendes Logik-Modul

 

  • Keine Stichwörter

0 Kommentare

Sie sind nicht angemeldet. Ihre Änderungen werden mit anonym markiert. Sie sollten sich anmelden, wenn Sie bereits über ein Konto verfügen.