Serial Read
Dieser Funktionsblock liest die zuletzt empfangene Zeile einer seriellen Verbindung (nicht-blockierend) und konvertiert sie in einen gewählten Datentyp. Er ist darauf ausgelegt, gegen veraltete oder fehlerhafte Eingaben robust zu sein, indem bei Bedarf ein vom Benutzer definierter Standardwert zurückgegeben wird.
📥 Eingänge
EnableBoolean-Eingangsbuchse, die das Lesen aktiviert oder deaktiviert.ConnIdGenerische Eingangsbuchse, die auswählt, von welcher seriellen Verbindung gelesen werden soll (Verbindungskennung).
📤 Ausgänge
DataGenerische Ausgangsbuchse, die den zuletzt konvertierten Wert sendet (oder den Standardwert, wenn die Daten veraltet sind oder die Konvertierung fehlschlägt).
🕹️ Steuerungen
Stale timeout (s)Texteingabe, die festlegt, wie lange auf eine neue Zeile gewartet wird, bevor die Lesung als veraltet betrachtet wird.Data TypeDropdown zur Auswahl des Konvertierungstyps für eingehende Zeilen. Verfügbare Optionen:String,Int,Float,Boolean,HexInt,Bytes.Default (on stale/parse fail)Texteingabe, die den Ersatzwert angibt, der zurückgegeben wird, wenn keine frischen Daten verfügbar sind oder die Konvertierung fehlschlägt. BeiBytesals Eingabe hexadezimale Zeichen (z. B.AA55) verwenden.
🎯 Funktionen
Nicht-blockierendes Lesen der zuletzt verfügbaren Zeile.
Erkennung veralteter Daten, damit alte Zeilen nicht unbegrenzt weitergereicht werden.
Mehrere Konvertierungstypen mit konfigurierbarem Fallback-Wert.
Einfache Ein- und Ausgänge zur Integration in größere Szenarien.
📝 Nutzung
Geben Sie eine Verbindungskennung in
ConnIdan, die sich auf eine aktive serielle Verbindung bezieht.Verwenden Sie
Enable, um das Lesen zu starten oder zu stoppen, ohne den Block zu entfernen.Stellen Sie
Stale timeout (s)ein, um zu definieren, wie frisch die eingehenden Daten sein müssen.Wählen Sie den gewünschten
Data Typezur Konvertierung der eingehenden Zeilen.Legen Sie
Default (on stale/parse fail)fest, um zu steuern, was der Block ausgibt, wenn keine frischen oder parsebaren Daten vorliegen.Verwenden Sie die Ausgabe
Datain nachgelagerten Blöcken zur Protokollierung, Visualisierung oder Veröffentlichung.
📊 Bewertung
Wenn aktiviert, versucht der Block, die zuletzt empfangene Zeile von der ausgewählten Verbindung zu lesen.
Wenn innerhalb des konfigurierten Stale-Timeouts keine neue Zeile ankommt, gibt der Block den konfigurierten Standardwert aus.
Wenn die Konvertierung in den ausgewählten Datentyp fehlschlägt, gibt der Block den konfigurierten Standardwert aus.
Für den Typ
Bytesbehandelt der Block den Standardwert als hexadezimalen Text.
💡 Tipps und Tricks
Verwenden Sie
Debug Input, um rohe Ergebnisse während der Entwicklung zu protokollieren oder zu untersuchen.Leiten Sie serielle Messwerte an
Data to JSONoderCSV Exportweiter für strukturierte Protokollierung oder Batch-Export.Veröffentlichen Sie verarbeitete Werte mit
MQTT Publishoder senden Sie sie an einen Webservice mittelsREST API - Post.Speichern Sie Werte zur späteren Verwendung mit
Data Write LocaloderData Write Globalund lesen Sie sie mit den entsprechenden Lese-Blöcken wieder aus.Visualisieren Sie numerische Daten in Echtzeit mit
Scope, um Trends oder Anomalien zu beobachten.Kombinieren Sie mit
Logic Inputoder Vergleichsblöcken, um Aktionen basierend auf eingehenden Werten auszulösen (z. B. Alarm, wenn ein numerischer Messwert einen Schwellenwert überschreitet).
🛠️ Fehlersuche
Wenn auf
Datakeine Daten erscheinen, überprüfen Sie, ob die angegebeneConnIdauf eine aktive Verbindung verweist.Wenn die Ausgabe stets der Standardwert ist, erhöhen Sie
Stale timeout (s)oder stellen Sie sicher, dass die Quelle aktiv Zeilen sendet.Wenn die Konvertierung für einen numerischen oder booleschen Typ fehlschlägt, prüfen Sie das rohe Textformat vom Gerät und passen Sie den Standardwert entsprechend an.
Für den Typ
Bytesstellen Sie sicher, dass der Standardwert als gültige hexadezimale Zeichenfolge ohne Leerzeichen oder Nicht-Hex-Zeichen angegeben ist.
Zuletzt aktualisiert