Attributs courants des Instructions de contrôle du processus avancé et de variateurs
Convertir un entier vers à REAL
L'automate mémorise des valeurs REAL en simple précision IEEE, au format de
nombre à virgule flottante. Il utilise un bit pour le signe de la valeur, 23 bits pour la
valeur de référence, et huit bits pour l'exposant (32 bits au total). Si vous mélangez
une étiquette entière (SINT, INT ou DINT) et une étiquette REAL comme
entrées dans la même instruction, l'automate convertit la valeur entière en valeur
REAL avant que l'instruction ne s'exécute.
Une valeur SINT ou INT se convertit en même valeur REAL.
Une valeur DINT ne peut pas se convertir dans la même valeur REAL.
Une valeur REAL utilise jusqu'à 24 bits pour la valeur de référence (23 bits
stockés plus un bit « masqué »).
Une valeur DINT utilise jusqu'à 32 bits pour la valeur (un pour le signe et
31 pour la valeur).
Si la valeur DINT nécessite plus de 24 bits de poids significatif, elle peut ne pas se
convertir dans la même valeur REAL. Si elle ne le fait pas, l'automate stocke les
24 bits de poids le plus élevé arrondis à la valeur paire la plus proche.
Convertir DINT vers SINT ou INT
Pour convertir une valeur DINT en valeur SINT ou INT, l'automate tronque la
partie supérieure de la valeur DINT et stocke les bits de poids inférieur qui
correspondent au type de données. Si la valeur est trop importante, la conversion
génère un débordement.
Cette valeur DINT
16#0001_0081 (65 665)
Convertir REAL vers SINT, INT ou DINT
Pour convertir une valeur REAL en une valeur entière, l'automate arrondit la
partie fractionnaire et stocke les bits qui correspondent au type de données du
résultat. Si la valeur est trop importante, la conversion génère un débordement.
Les nombres sont arrondis comme dans les exemples suivants.
Les fractions < 0,5 s'arrondissent au nombre entier inférieur le plus proche.
Les fractions > 0,5 s'arrondissent au nombre entier supérieur le plus proche.
Publication Rockwell Automation 1756-RM006K-FR-P - Novembre 2018
Convertir une valeur DINT vers une valeur INT et une valeur SINT
Se convertit en cette valeur plus petite
INT :
16#0081 (129)
SINT
16#81 (-127)
Chapitre 11
563