Chapitre 22
Attributs courants des instructions générales
898
N'utilisez pas les mathématiques à virgule flottante pour des valeurs concernant de
l'argent ou pour des fonctions de totalisation. Utilisez des valeurs INT ou DINT,
mettez les valeurs à l'échelle, et conservez le suivi de la position décimale (ou
utilisez une valeur INT ou DINT pour les dollars, et une deuxième valeur INT ou
DINT pour les centimes).
Ne comparez pas des nombres à virgule flottante. Vérifiez plutôt des valeurs dans
une plage. L'instruction LIM est fournie spécifiquement à cet effet.
Exemples de totalisateur
La précision du type de données REAL affecte les applications de totalisation, en
produisant par exemple des erreurs lors de l'ajout de très grands nombres à de très
petits nombres.
Par exemple, ajouter 1 un nombre pendant un certain temps. À un certain point,
l'ajout n'affectera plus le résultat, car la somme en cours est beaucoup plus grande
que 1 et il n'y a pas suffisamment de bits pour stocker la totalité du résultat. L'ajout
stocke autant de bits de poids supérieur que possible et ignore les bits de poids
inférieur restants.
Pour contourner cela, effectuez des opérations mathématiques sur de petits
nombres jusqu'à ce que le résultat devienne important. Ensuite, transférez-les vers
un autre emplacement pour effectuer des opérations mathématiques
supplémentaires sur des grands nombres. Par exemple :
x est la variable de petit incrément.
x est la variable de grand incrément.
z est le nombre total actuel pouvant être utilisé partout.
x = x+1;
if x = 100,000;
{
y = y + 100,000;
x = 0;
}
z = y + x;
Voici un autre exemple :
x = x + some_tiny_number;
if (x >= 100)
{
Publication Rockwell Automation 1756-RM003T-FR-P - Novembre 2018