Stringhe e Testo
Operazioni sui Dati
Elabora i dati di testo come un professionista. Dalla generazione dinamica di etichette al parsing di protocolli, padroneggia ogni istruzione di manipolazione delle stringhe nel tuo PLC.
Perché elaborare le stringhe in un PLC?
Sebbene i PLC siano progettati principalmente per la logica binaria e numerica, le operazioni sulle stringhe sono essenziali per le moderne interfacce industriali. Consentono di generare messaggi dinamici per gli HMI, analizzare codici a barre o codici QR dagli scanner e comunicare con i sistemi IT tramite protocolli di testo formattati.
TIA Portal offre un set robusto di istruzioni per la gestione dei tipi STRING (ASCII) e WSTRING (Unicode), garantendo che la tua macchina possa comunicare chiaramente in qualsiasi lingua.
Concatenazione e Inserimento
Costruzione di messaggi dinamici
CONCAT — Concatenare Stringhe
CONCATCosa fa
Combina due o più stringhe in un'unica stringa di output. Le stringhe sorgente vengono aggiunte nell'ordine in cui sono definite.
Quando usarlo
Creazione di un messaggio di stato completo da un prefisso e un nome di variabile, o costruzione di una riga CSV per il logging.
Consigli degli esperti
Controlla sempre la lunghezza massima della stringa di destinazione per evitare il troncamento.
In SCL, puoi usare l'operatore '+' per una concatenazione più semplice, se supportato.
Combina CONCAT con caratteri spazio per garantire un output HMI leggibile.
INSERT — Inserire nella Stringa
INSERTCosa fa
Inserisce una sottostringa in una stringa esistente in una posizione di carattere (P) specificata.
Quando usarlo
Aggiunta di simboli di unità (come 'kg' o '°C') all'interno di un template di testo dinamico.
Consigli degli esperti
Se P è 0, la stringa viene inserita all'inizio.
Se P è maggiore della lunghezza della stringa, la sottostringa viene aggiunta alla fine.
Utile per la formattazione dinamica di stringhe data/ora.
Ricerca e Modifica
Analisi dei dati di testo
FIND — Cerca Sottostringa
FINDCosa fa
Cerca un pattern specifico all'interno di una stringa e restituisce la posizione iniziale. Restituisce 0 se non trovato.
Quando usarlo
Localizzazione di delimitatori (come virgole o punti e virgola) in una stringa di input dello scanner.
Consigli degli esperti
La ricerca fa distinzione tra maiuscole e minuscole. 'Error' è diverso da 'error'.
Usa la posizione restituita direttamente in un'istruzione MID per estrarre i dati.
In un ciclo, puoi trovare più occorrenze aggiornando la stringa di partenza.
REPLACE — Sostituisci Parte
REPLACECosa fa
Sostituisce un numero specifico di caratteri a partire dalla posizione P con una nuova sottostringa.
Quando usarlo
Aggiornamento di una parte variabile di un messaggio statico senza ricostruire l'intera stringa.
Consigli degli esperti
Per eliminare caratteri senza aggiungerne di nuovi, usa una stringa vuota come sostituzione.
Comunemente usato per scambiare segnaposto come {val} con valori reali.
Fai attenzione al conteggio dei caratteri per evitare di spostare inaspettatamente il resto del testo.
Conversione ed Estrazione
Ponte tra numeri e testo
VAL_STRG / STRG_VAL — Conversione
VAL_STRGCosa fa
Converte valori numerici (Int, Real) in String (VAL_STRG) o analizza numeri da una String (STRG_VAL).
Quando usarlo
Visualizzazione di una temperatura Real in un messaggio di testo personalizzato o conversione di un input da porta seriale in un Integer.
Consigli degli esperti
Configura l'input FORMAT per definire i decimali e il comportamento del segno.
STRG_VAL è sensibile al separatore decimale (punto vs virgola).
Controlla l'output di stato per assicurarti che la conversione sia andata a buon fine.
LEFT / RIGHT / MID — Estrarre
MIDCosa fa
Estrae una parte di una stringa da sinistra, destra o da una specifica posizione centrale (MID).
Quando usarlo
Ottenimento di un prefisso da un codice a barre o estrazione di un valore tra parentesi.
Consigli degli esperti
MID(IN, L, P) estrae L caratteri a partire dalla posizione P.
Se L supera i caratteri disponibili, l'istruzione restituisce tutto fino alla fine.
Essenziale per lo 'spacchettamento' dei dati da protocolli seriali di terze parti.
STRING vs WSTRING
Scegliere il formato di testo corretto
| Proprietà | STRING | WSTRING |
|---|---|---|
| Codifica | ASCII / ASCII esteso | Unicode (UTF-16) |
| Byte per carattere | 1 Byte | 2 Byte |
| Lunghezza massima | 254 caratteri | 16382 caratteri |
| Utilizzo | Testo occidentale standard | Internazionale / Caratteri speciali |
| Impatto sulla memoria | Basso | Alto (Doppio) |
| Prefisso SCL | '' (Apici singoli) | W#'' |
Domande Frequenti
Qual è la lunghezza massima di una STRING in TIA Portal?
Una STRING standard può contenere fino a 254 caratteri. Se ne servono di più, è necessario utilizzare il tipo WSTRING che può gestire fino a 16.382 caratteri su S7-1500.
Perché la mia conversione VAL_STRG fallisce?
Il motivo più comune è una lunghezza insufficiente della stringa di destinazione o una mancata corrispondenza nel parametro FORMAT (ad esempio, cercare di inserire un REAL grande in una STRING piccola).
Posso usare le stringhe in blocchi dati ottimizzati?
Sì, le stringhe sono pienamente supportate nei DB ottimizzati. Tuttavia, ricorda che occupano sempre la loro dimensione massima definita in memoria, più 2 byte per gli header di lunghezza.
Come confrontare due stringhe in SCL?
Puoi usare gli operatori di confronto standard (=, <>, <, >). TIA Portal confronta le stringhe carattere per carattere in base ai loro valori ASCII/Unicode.