Conversione: STRINGA, WSTRING
Gli operatori convertono una stringa (STRING
o WSTRING
) nel tipo di dati di destinazione specificato e restituire un valore convertito dal tipo.
Una conversione con un risultato significativo è possibile solo se l'operando corrisponde al tipo di dati di destinazione secondo la norma IEC 61131-3. Questo è il caso se il valore dell'operando corrisponde a una costante valida (letterale) del tipo di dati di destinazione.
Le stringhe convertibili contengono:
Numero con prefisso di tipo (esempio:
'16#FFFFFFFF'
)Numero con caratteri di raggruppamento (esempio:
'2#1111_1111'
)Nota: il carattere di raggruppamento internazionale di pesi e misure (spazio sottile) non è accettato. È accettato solo il carattere di sottolineatura.
Numero in virgola mobile, anche in notazione esponenziale (esempio:
'9.876'
o'1.2E-34'
)Nota: i numeri in virgola mobile non sono convertibili. La virgola viene trattata e troncata come un carattere successivo.
Specifica di ora, ora del giorno e data con prefisso e dimensione (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'
)Questi sono troncati. Personaggi aggiuntivi prima di un numero non è consentito.
Spazi prima (esempio:
'3.14'
)
Sintassi della chiamata: STRING_TO_<tipo di destinazione>(<operando>) , WSTRING_TO_<tipo di destinazione>(<operando>)
STRING/WSTRING_TO_<target type>
Operatore: STRINGA | Operatore: WSTRING | Esempio | Valore di ritorno | Descrizione |
---|---|---|---|---|
|
| |||
|
| |||
|
| |||
|
| |||
|
|
|
| |
|
| |||
|
|
|
| Sintassi: |
|
| Se il tipo di dati di output è più grande, le informazioni potrebbero andare perse. | ||
|
|
|
| Sintassi: |
|
| |||
|
|
|
| |
|
| Sintassi: Viene visualizzato solo il giorno. | ||
|
| Sintassi: | ||
|
| |||
|
|
|
| |
|
|
|
| |
|
| Sintassi: | ||
|
|
|
| |
|
|
|
| Durante la conversione da un intervallo di valori più ampio, è possibile che alcune informazioni vadano perse oppure che venga restituito un risultato indefinito. |
|
| |||
- |
|
|
| |
|
|
|
| |
|
|
|
| |
|
| |||
|
| |||
|
|
|
| |
|
| |||
|
| |||
| - |
|
|
Conversione in un valore booleano
Operatore STRING_TO_BOOL
: Un valore di TRUE
viene restituito solo se il valore dell'operando è 'TRUE'
o 'true'
. D'altro canto, FALSE
viene restituito per 'True'
.
Operatore WSTRING_TO_BOOL
: Un valore di TRUE
viene restituito solo se il valore dell'operando è "TRUE"
o "true"
. D'altro canto, FALSE
viene restituito per "True"
.

Dichiarazione
FUNCTION_BLOCK FB_ConvertStrings VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR xReturn_0: BOOL; xReturn_1: BOOL; dateReturn: DATE; dtReturn: DATE_AND_TIME; iReturn: INT; lrReturn: LREAL; lrReturn_0: LREAL; lwReturn: LWORD; lwReturn_0: LWORD; lwReturn_1: LWORD; ltReturn: LTIME; ltReturn_0: LTIME; ltReturn_1: LTIME; ltReturn_2: LTIME; rReturn: REAL; rReturn_0: REAL; timReturn: TIME; timReturn0: TIME; timReturn1: TIME; timReturn2: TIME; todReturn: TIME_OF_DAY; todReturn0: TIME_OF_DAY; todReturn1: TIME_OF_DAY; todReturn2: TIME_OF_DAY; uliReturn: ULINT; uliReturn_0: ULINT; uliReturn_1: ULINT; wReturn: WORD; wReturn_0: WORD; wReturn_1: WORD; wstrReturn: WSTRING; wstrReturn_0: WSTRING; dtReturn2: DATE_AND_TIME; END_VAR
Implementazione
FUNCTION_BLOCK FB_ConvertStrings VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR xReturn_0: BOOL; xReturn_1: BOOL; dateReturn: DATE; dtReturn: DATE_AND_TIME; iReturn: INT; lrReturn: LREAL; lrReturn_0: LREAL; lwReturn: LWORD; lwReturn_0: LWORD; lwReturn_1: LWORD; ltReturn: LTIME; ltReturn_0: LTIME; ltReturn_1: LTIME; ltReturn_2: LTIME; rReturn: REAL; rReturn_0: REAL; timReturn: TIME; timReturn0: TIME; timReturn1: TIME; timReturn2: TIME; todReturn: TIME_OF_DAY; todReturn0: TIME_OF_DAY; todReturn1: TIME_OF_DAY; todReturn2: TIME_OF_DAY; uliReturn: ULINT; uliReturn_0: ULINT; uliReturn_1: ULINT; wReturn: WORD; wReturn_0: WORD; wReturn_1: WORD; wstrReturn: WSTRING; wstrReturn_0: WSTRING; END_VAR xReturn_0 := STRING_TO_BOOL('FALSE'); xReturn_1 := STRING_TO_BOOL('TRUE'); dateReturn := STRING_TO_DATE('DATE#2019-9-9'); dtReturn := STRING_TO_DT('DT#2019-9-9-1:1:1.1'); iReturn := STRING_TO_INT('123abc'); lrReturn := STRING_TO_LREAL('4.94E-323'); lrReturn_0 := STRING_TO_LREAL('1.7E+308'); lwReturn := STRING_TO_LWORD('16#FFFF_FFFF_FFFF_FFFF'); lwReturn_0 := STRING_TO_LWORD('16#0123456789ABCDEF'); lwReturn_1 := STRING_TO_LWORD('16#0123456789ABCDEF'); ltReturn := STRING_TO_LTIME('LTIME#213503d23h34m33s709ms551us615ns'); ltReturn_0 := STRING_TO_LTIME('LTIME#0ns'); ltReturn_1 := STRING_TO_LTIME('LTIME#1ms'); ltReturn_2 := STRING_TO_LTIME('LTIME#2s'); rReturn := STRING_TO_REAL('6.543e21'); rReturn_0 := STRING_TO_REAL('1.234'); timReturn := STRING_TO_TIME('T#5d4h3m2s'); timReturn0 := STRING_TO_TIME('TIME#1s'); timReturn1 := STRING_TO_TIME('1s'); timReturn2 := STRING_TO_TIME('TIME#5s'); todReturn := STRING_TO_TOD('TOD#12:0:0.1'); todReturn0 := STRING_TO_TOD('TOD#0:0:0.0'); todReturn1 := STRING_TO_TOD('20:15'); todReturn2 := STRING_TO_TOD('TOD#20:15'); uliReturn := STRING_TO_ULINT('18446744073709551615'); uliReturn_0 := STRING_TO_ULINT('1'); uliReturn_1 := STRING_TO_ULINT('0'); wReturn := STRING_TO_WORD('16#FFFF_0000'); wReturn_0 := STRING_TO_WORD('34abc'); wReturn_1 := STRING_TO_WORD('16#34abc'); wstrReturn := STRING_TO_WSTRING('Hello World!'); wstrReturn_0 := STRING_TO_WSTRING('123456789');
Dichiarazione
FUNCTION_BLOCK FB_ConvertWstrings VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR xReturn_0: BOOL; xReturn_1: BOOL; dateReturn: DATE; dtReturn: DATE_AND_TIME; iReturn: INT; lrReturn: LREAL; lrReturn_0: LREAL; lwReturn: LWORD; lwReturn_0: LWORD; lwReturn_1: LWORD; ltReturn: LTIME; ltReturn_0: LTIME; ltReturn_1: LTIME; ltReturn_2: LTIME; rReturn: REAL; rReturn_0: REAL; timReturn: TIME; timReturn0: TIME; timReturn1: TIME; timReturn2: TIME; todReturn: TIME_OF_DAY; todReturn0: TIME_OF_DAY; todReturn1: TIME_OF_DAY; todReturn2: TIME_OF_DAY; uliReturn: ULINT; uliReturn_0: ULINT; uliReturn_1: ULINT; wReturn: WORD; wReturn_0: WORD; wReturn_1: WORD; wstrReturn: WSTRING; wstrReturn_0: WSTRING; END_VAR
Implementazione in ST
FUNCTION_BLOCK FB_ConvertWstrings VAR xReturn_0: BOOL; xReturn_1: BOOL; dateReturn: DATE; dtReturn: DATE_AND_TIME; iReturn: INT; lrReturn: LREAL; lrReturn_0: LREAL; lwReturn: LWORD; lwReturn_0: LWORD; lwReturn_1: LWORD; ltReturn: LTIME; ltReturn_0: LTIME; ltReturn_1: LTIME; ltReturn_2: LTIME; rReturn: REAL; rReturn_0: REAL; timReturn: TIME; timReturn0: TIME; timReturn1: TIME; timReturn2: TIME; todReturn: TIME_OF_DAY; todReturn0: TIME_OF_DAY; todReturn1: TIME_OF_DAY; todReturn2: TIME_OF_DAY; uliReturn: ULINT; uliReturn_0: ULINT; uliReturn_1: ULINT; wReturn: WORD; wReturn_0: WORD; wReturn_1: WORD; wstrReturn: WSTRING; wstrReturn_0: WSTRING; END_VAR xReturn_0 := WSTRING_TO_BOOL("FALSE"); xReturn_1 := WSTRING_TO_BOOL("TRUE"); dateReturn := WSTRING_TO_DATE("DATE#2019-9-9"); dtReturn := WSTRING_TO_DT("DT#2019-9-9-1:1:1.1"); iReturn := WSTRING_TO_INT("123abc"); lrReturn := WSTRING_TO_LREAL("4.94E-323"); lrReturn_0 := WSTRING_TO_LREAL("1.7E+308"); lwReturn := WSTRING_TO_LWORD("16#FFFF_FFFF_FFFF_FFFF"); lwReturn_0 := WSTRING_TO_LWORD("16#0123456789ABCDEF"); lwReturn_1 := WSTRING_TO_LWORD("16#0123456789ABCDEF"); ltReturn := WSTRING_TO_LTIME("LTIME#213503d23h34m33s709ms551us615ns"); ltReturn_0 := WSTRING_TO_LTIME("LTIME#0ns"); ltReturn_1 := WSTRING_TO_LTIME("LTIME#1ms"); ltReturn_2 := WSTRING_TO_LTIME("LTIME#2s"); rReturn := WSTRING_TO_REAL("6.543e21"); rReturn_0 := WSTRING_TO_REAL("1.234"); timReturn := WSTRING_TO_TIME("T#5d4h3m2s"); timReturn0 := WSTRING_TO_TIME("TIME#1s"); timReturn1 := WSTRING_TO_TIME("1s"); timReturn2 := WSTRING_TO_TIME("TIME#5s"); todReturn := WSTRING_TO_TOD("TOD#12:0:0.1"); todReturn0 := WSTRING_TO_TOD("TOD#0:0:0.0"); todReturn1 := WSTRING_TO_TOD("20:15"); todReturn2 := WSTRING_TO_TOD("TOD#20:15"); uliReturn := WSTRING_TO_ULINT("18446744073709551615"); uliReturn_0 := WSTRING_TO_ULINT("1"); uliReturn_1 := WSTRING_TO_ULINT("0"); wReturn := WSTRING_TO_WORD("16#FFFF_0000"); wReturn_0 := WSTRING_TO_WORD("34abc"); wReturn_1 := WSTRING_TO_WORD("16#34abc");
