Conversions REAL_TO/LREAL_TO

Informations générales

Vous trouverez des conseils d'ordre général à suivre lors de la conversion de type dans le chapitre Fonctions de conversion de type.

Définition

Opérateur IEC servant à convertir une variable de type REAL ou LREAL en un autre type.

La valeur est arrondie au nombre entier supérieur ou inférieur le plus proche, et convertie dans le nouveau type de variable.

Les types de variable suivants font exception à cette règle :

  • STRING

  • BOOL

  • REAL

  • LREAL

NOTE : La logique d'arrondissement appliquée dépend du système cible ou du processeur de virgule flottante du système cible. Une valeur de -1.5 peut ainsi être convertie différemment selon le contrôleur.

Résultats de la conversion

Prenons le cas de la conversion d'une valeur de type REAL ou LREAL en SINT, USINT, INT, UINT, DINT, UDINT, LINT ou ULINT. Si le nombre réel converti est en dehors de la plage de valeurs de cet entier, le résultat est indéfini et peut entraîner une exception au niveau du contrôleur.

NOTE : vérifiez d'éventuels dépassements de plage par l'application et assurez-vous que la valeur REAL ou LREAL respecte les limites de l'entier cible avant d'effectuer la conversion.

Lors d'une conversion en type STRING, gardez à l'esprit que le nombre total de chiffres est limité à six. Si le nombre (L)REAL dépasse cette limite, le 6e chiffre est arrondi. Si la définition de la valeur STRING est trop courte, le résultat est tronqué à droite.

Exemple en langage ST

Exemples en langage ST avec résultats de conversion :

Exemple

Résultat

i := REAL_TO_INT(1.5);

2

j := REAL_TO_INT(1.4);

1

i := REAL_TO_INT(-1.5);

–2

j := REAL_TO_INT(-1.4);

–1

Exemple en langage IL

LD                2.75
REAL_TO_INT
ST                i

Exemple en langage FBD