Definizione
Operatore IEC per le conversioni dal tipo di variabile STRING a un tipo differente.
Sintassi
STRING_TO_<tipo dati>
Specifica dei valori
Specificare l'operando di tipo STRING corrispondente allo standard IEC61131-3. Il valore deve corrispondere a una costante (letterale) valida del tipo di destinazione.
Le stringhe convertibili possono contenere:
-
Numero con prefisso del tipo (esempio: '16#FFFFFFFF'
)
-
Numero con caratteri di raggruppamento (esempio: '2#1111_1111'
)
NOTA: Utilizzare il carattere di sottolineatura, in quanto il carattere internazionale di raggruppamento (spazio sottile) del peso e della misura non è consentito.
-
Numero a virgola mobile, anche in notazione esponenziale (ad esempio: '9.876'
o '1.2E-34'
)
NOTA: I numeri a virgola mobile non sono convertibili. La virgola viene trattata come un carattere seguente e quindi troncata.
-
Specifica di ora, ora del giorno e data con prefisso e dimensioni (esempio: 'T#2h'
, 'DT#2019-9-9-12:30:30.9'
)
-
Valori infiniti (esempio: '1.7E+400'
)
-
Carattere aggiuntivo dopo un numero (esempio: '2m'
o '3.14'
) sono troncati. Non sono consentiti caratteri aggiuntivi prima di un numero.
-
Spazi precedenti (esempio: ' 3.14'
)
L'operando deve rappresentare un valore valido del tipo dati di destinazione.
NOTA: Se il tipo di dati dell'operando non corrisponde al tipo di destinazione, oppure se il valore supera l'intervallo del tipo dati di destinazione, il risultato dipende dal tipo di processore ed è quindi indefinito.
Le conversioni da tipi di maggiori dimensioni a tipi di dimensioni minori può causare la perdita di informazioni.
ATTENZIONE
|
|
PERDITA DI DATI
Quando si convertono tipi di dati discordanti o quando il valore da convertire è più grande del tipo dati di destinazione, accertarsi che il risultato venga convalidato nell'applicazione.
Il mancato rispetto di queste istruzioni può provocare infortuni o danni alle apparecchiature.
|
Esempio in IL
Esempio
|
Risultato conversione
|
LD 'TRUE'
STRING_TO_BOOL
ST b
|
TRUE
|
Esempi in ST
Esempio
|
Risultato conversione
|
b := STRING_TO_BOOL('TRUE');
|
TRUE
|
w := STRING_TO_WORD('abc34');
|
0
|
w := STRING_TO_WORD('34abc');
|
34
|
t := STRING_TO_TIME('T#127ms');
|
T#127ms
|
r := STRING_TO_REAL('1.234');
|
1.234
|
bv := STRING_TO_BYTE('500');
|
244
|
Esempio in FBD
Esempio
|
Risultato conversione
|
|
TRUE
|