Conversions REAL_TO / LREAL_TO
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 :
oSTRING
oBOOL
oREAL
oLREAL
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 ne doit pas dépasser 16. Si le nombre (L)REAL dépasse cette limite, le 16e chiffre est arrondi. Si la définition de la valeur STRING est trop courte, le résultat est tronqué à droite.
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 |
LD 2.75
REAL_TO_INT
ST i