Conversion : STRING, WSTRING
Les opérateurs convertissent une chaîne (STRING
ou WSTRING
) dans le type de données cible spécifié et renvoient une valeur convertie en type.
Une conversion avec un résultat significatif n'est possible que si l'opérande correspond au type de données cible selon la norme IEC 61131-3. C'est le cas si la valeur de l'opérande correspond à une constante (littérale) valide du type de données cible.
Les cordes convertibles contiennent :
Numéro avec préfixe de type (exemple :
'16#FFFFFFFF'
)Numéro avec caractères de regroupement (exemple :
'2#1111_1111'
)Remarque : Le caractère de groupement international des poids et mesures (espace fin) n'est pas accepté. Seul le trait de soulignement est accepté.
Nombre à virgule flottante, également en notation exponentielle (exemple :
'9.876'
ou'1.2E-34'
)Remarque : Les nombres à virgule flottante ne sont pas convertibles. La virgule est traitée et tronquée comme un caractère de suivi.
Spécification de l'heure, de l'heure du jour et de la date avec préfixe et taille (exemple :
'T#2h'
,'DT#2019-9-9-12:30:30.9'
)Valeurs infinies (exemple :
'1.7E+400'
)Caractère supplémentaire après un nombre (exemple :
'2m'
ou'3.14'
)Ceux-ci sont tronqués. Caractères supplémentaires avant un certain nombre ne sont pas autorisés.
Espaces avant (exemple :
'3.14'
)
Syntaxe d'appel : STRING_TO_<type de cible>(<opérande>) , WSTRING_TO_<type de cible>(<opérande>)
STRING/WSTRING_TO_<target type>
Opérateur : STRING | Opérateur : WSTRING | Exemple | Valeur de retour | Description |
---|---|---|---|---|
|
| |||
|
| |||
|
| |||
|
| |||
|
|
|
| |
|
| |||
|
|
|
| Syntaxe: |
|
| Si le type de données de sortie est plus grand, des informations peuvent être perdues. | ||
|
|
|
| Syntaxe: |
|
| |||
|
|
|
| |
|
| Syntaxe: Seul le jour est affiché. | ||
|
| Syntaxe: | ||
|
| |||
|
|
|
| |
|
|
|
| |
|
| Syntaxe: | ||
|
|
|
| |
|
|
|
| Lors de la conversion à partir d'une plage de valeurs plus large, des informations peuvent être perdues ou un résultat indéfini peut être renvoyé. |
|
| |||
- |
|
|
| |
|
|
|
| |
|
|
|
| |
|
| |||
|
| |||
|
|
|
| |
|
| |||
|
| |||
| - |
|
|
Conversion en une valeur booléenne
Opérateur STRING_TO_BOOL
: Une valeur de TRUE
est renvoyé uniquement si la valeur de l'opérande est 'TRUE'
ou 'true'
. D'autre part, FALSE
est retourné pour 'True'
.
Opérateur WSTRING_TO_BOOL
: Une valeur de TRUE
est renvoyé uniquement si la valeur de l'opérande est "TRUE"
ou "true"
. D'autre part, FALSE
est retourné pour "True"
.

Déclaration
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
Mise en œuvre
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');
Déclaration
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
Implémentation en 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");
