Chaînes et Texte
Opérations de Données
Traitez les données textuelles comme un pro. De la génération d'étiquettes dynamiques au parsing de protocoles, maîtrisez chaque instruction de manipulation de texte.
Pourquoi traiter des chaînes dans un PLC ?
Bien que les automates soient conçus pour la logique binaire et numérique, les opérations sur chaînes sont essentielles pour les interfaces modernes. Elles permettent de générer des messages dynamiques pour les IHM, de décoder des codes-barres ou QR codes, et de communiquer avec des systèmes informatiques via des protocoles texte.
TIA Portal offre un ensemble robuste d'instructions pour gérer les types STRING (ASCII) et WSTRING (Unicode), garantissant que votre machine puisse communiquer clairement dans n'importe quelle langue.
Concaténation & Insertion
Construction de messages dynamiques
CONCAT — Concaténer des chaînes
CONCATCe qu'il fait
Combine deux ou plusieurs chaînes en une seule chaîne de sortie. Les chaînes sources sont ajoutées dans l'ordre défini.
Quand l'utiliser
Création d'un message d'état complet à partir d'un préfixe et d'un nom de variable, ou construction d'une ligne CSV.
Conseils Pro
Vérifiez toujours la longueur maximale de votre chaîne de destination pour éviter la troncature.
En SCL, vous pouvez utiliser l'opérateur '+' pour une concaténation plus simple si supporté.
Combinez CONCAT avec des espaces pour assurer un affichage lisible sur l'IHM.
INSERT — Insérer dans une chaîne
INSERTCe qu'il fait
Insère une sous-chaîne dans une chaîne existante à une position de caractère spécifiée (P).
Quand l'utiliser
Ajout de symboles d'unité (comme 'kg' ou '°C') à l'intérieur d'un modèle de texte dynamique.
Conseils Pro
Si P est 0, la chaîne est insérée au début.
Si P est supérieur à la longueur de la chaîne, la sous-chaîne est ajoutée à la fin.
Utile pour le formatage dynamique des chaînes de date/heure.
Recherche & Modification
Analyse des données textuelles
FIND — Rechercher sous-chaîne
FINDCe qu'il fait
Recherche un motif spécifique dans une chaîne et renvoie la position de départ. Renvoie 0 si non trouvé.
Quand l'utiliser
Localisation de délimiteurs (virgules, points-virgules) dans une chaîne provenant d'un scanner.
Conseils Pro
La recherche est sensible à la casse. 'Erreur' est différent de 'erreur'.
Utilisez la position renvoyée directement dans une instruction MID pour extraire des données.
Dans une boucle, vous pouvez trouver plusieurs occurrences en mettant à jour la chaîne de départ.
REPLACE — Remplacer une partie
REPLACECe qu'il fait
Remplace un nombre spécifique de caractères à partir de la position P par une nouvelle sous-chaîne.
Quand l'utiliser
Mise à jour d'une partie variable d'un message statique sans tout reconstruire.
Conseils Pro
Pour supprimer des caractères sans en ajouter, utilisez une chaîne vide comme remplacement.
Couramment utilisé pour remplacer des balises comme {val} par des valeurs réelles.
Attention au comptage des caractères pour éviter de décaler le reste du texte.
Conversion & Extraction
Lien entre nombres et texte
VAL_STRG / STRG_VAL — Conversion
VAL_STRGCe qu'il fait
Convertit des valeurs numériques (Int, Real) en String (VAL_STRG) ou extrait des nombres d'un String (STRG_VAL).
Quand l'utiliser
Affichage d'une température Real dans un message texte ou conversion d'une entrée série en Entier.
Conseils Pro
Configurez l'entrée FORMAT pour définir les décimales et la gestion du signe.
STRG_VAL est sensible au séparateur décimal (point vs virgule).
Vérifiez la sortie d'état pour vous assurer que la conversion a réussi.
LEFT / RIGHT / MID — Extraire
MIDCe qu'il fait
Extrait une partie d'une chaîne depuis la gauche, la droite ou une position centrale spécifique (MID).
Quand l'utiliser
Récupération d'un préfixe de code-barres ou extraction d'une valeur entre parenthèses.
Conseils Pro
MID(IN, L, P) extrait L caractères à partir de la position P.
Si L dépasse le nombre de caractères disponibles, l'instruction renvoie tout jusqu'à la fin.
Essentiel pour 'déballer' des données de protocoles série tiers.
STRING vs WSTRING
Choisir le bon format de texte
| Propriété | STRING | WSTRING |
|---|---|---|
| Encodage | ASCII / ASCII Étendu | Unicode (UTF-16) |
| Octets par Car. | 1 Octet | 2 Octets |
| Longueur Max | 254 Caractères | 16382 Caractères |
| Usage | Texte standard occidental | International / Car. spéciaux |
| Impact Mémoire | Faible | Élevé (Double) |
| Préfixe SCL | '' (Guillemets simples) | W#'' |
Foire Aux Questions
Quelle est la longueur maximale d'un STRING dans TIA Portal ?
Un STRING standard peut contenir jusqu'à 254 caractères. Si vous avez besoin de plus, utilisez le type WSTRING (jusqu'à 16 382 caractères sur S7-1500).
Pourquoi ma conversion VAL_STRG échoue-t-elle ?
La raison la plus fréquente est une longueur de chaîne de destination insuffisante ou un mauvais paramétrage de FORMAT.
Puis-je utiliser des chaînes dans des blocs de données optimisés ?
Oui, elles sont totalement supportées. Notez qu'elles occupent toujours leur taille maximale définie plus 2 octets d'en-tête.
Comment comparer deux chaînes en SCL ?
Utilisez les opérateurs standards (=, <>, <, >). La comparaison se fait caractère par caractère selon les valeurs ASCII/Unicode.