Serial Read
Cette fonction lit la dernière ligne disponible d'une connexion série (sans bloquer) et la convertit dans un type de donnée choisi. Elle est conçue pour être robuste face aux entrées obsolètes ou mal formées en renvoyant une valeur par défaut définie par l'utilisateur lorsque nécessaire.
📥 Entrées
EnableEntrée booléenne qui active ou désactive la lecture.ConnIdEntrée générique qui sélectionne la connexion série à lire (identifiant de connexion).
📤 Sorties
DataSortie générique qui émet la dernière valeur convertie (ou la valeur par défaut lorsque les données sont obsolètes ou la conversion a échoué).
🕹️ Contrôles
Stale timeout (s)Champ texte pour définir combien de temps attendre une nouvelle ligne avant de considérer la lecture comme obsolète.Data TypeMenu déroulant pour choisir le type de conversion des lignes entrantes. Options disponibles :String,Int,Float,Boolean,HexInt,Bytes.Default (on stale/parse fail)Champ texte fournissant la valeur de secours renvoyée lorsqu'il n'y a pas de données fraîches ou que la conversion échoue. PourBytes, saisir des caractères hexadécimaux (ex.AA55).
🎯 Fonctionnalités
Lecture non bloquante de la dernière ligne disponible.
Détection des données obsolètes pour éviter de propager des valeurs anciennes indéfiniment.
Plusieurs types de conversion avec une valeur de secours configurable.
Entrées et sorties simples pour s'intégrer facilement dans des scénarios plus larges.
📝 Utilisation
Fournissez un identifiant de connexion à
ConnIdcorrespondant à une connexion série active.Utilisez
Enablepour démarrer ou arrêter la lecture sans retirer le bloc.Réglez
Stale timeout (s)pour définir la durée pendant laquelle les données sont considérées comme fraîches.Choisissez le
Data Typesouhaité pour convertir les lignes entrantes.Définissez
Default (on stale/parse fail)pour contrôler la sortie lorsque les données sont absentes ou non convertibles.Utilisez la sortie
Datadans des blocs suivants pour journalisation, affichage ou publication.
📊 Évaluation
Lorsque le bloc est activé, il tente de lire la dernière ligne de la connexion sélectionnée.
Si aucune nouvelle ligne n'arrive dans le délai défini par
Stale timeout (s), le bloc émet la valeur par défaut configurée.Si la conversion vers le type choisi échoue, le bloc émet la valeur par défaut configurée.
Pour le type
Bytes, le bloc interprète la valeur par défaut comme du texte hexadécimal.
💡 Astuces
Utilisez
Debug Inputpour enregistrer ou inspecter les résultats bruts pendant le développement.Transférez les lectures série vers
Data to JSONouCSV Exportpour un journal structuré ou une exportation par lots.Publiez les valeurs traitées avec
MQTT Publishou envoyez-les à un service web viaREST API - Post.Stockez les valeurs pour une utilisation ultérieure avec
Data Write LocalouData Write Globalet récupérez-les avec les blocs de lecture correspondants.Tracez des données numériques en temps réel avec
Scopepour observer des tendances ou anomalies.Combinez avec
Logic Inputou des blocs de comparaison pour déclencher des actions en fonction des valeurs entrantes (par exemple, alarme lorsqu'une valeur dépasse un seuil).
🛠️ Dépannage
Si aucune donnée n'apparaît sur
Data, vérifiez que leConnIdfourni correspond à une connexion active.Si la sortie est toujours la valeur par défaut, augmentez
Stale timeout (s)ou assurez-vous que la source envoie effectivement des lignes.Si la conversion échoue pour un type numérique ou booléen, vérifiez le format texte brut renvoyé par l'appareil et ajustez la valeur par défaut en conséquence.
Pour le type
Bytes, assurez-vous que la valeur par défaut est fournie en caractères hexadécimaux valides (sans espaces ni caractères non hexadécimaux).
Mis à jour