Allgemeine Attribute für erweiterte Prozesssteuerungs- und Antriebsbefehle
Bei der Durchführung bestimmter mathematischer Berechnungen mit
Gleitkomma kann es aufgrund von Rundungsfehlern zu einem Präzisionsverlust
kommen. Gleitkommaprozessoren verfügen über eine eigene interne Präzision, die
sich auf die resultierenden Werte auswirken kann.
Es darf die Gleitkommazahl-Arithmetik nicht für Geldwerte oder Zählwerke
(Totalisatoren) verwendet werden. Es sind INT- oder DINT-Werte zu
verwenden, die Werte aufzuskalieren und die Dezimalstelle vorzuhalten
(alternativ kann ein INT- oder DINT-Wert für Euros/Dollar usw. und ein
zweiter INT- oder DINT-Wert für Cents verwendet werden).
Gleitkommawerte dürfen nicht verglichen werden. Stattdessen müssen die Werte
in einem Wertebereich geprüft werden. Der LIM-Befehl dient explizit diesem
Zweck.
Beispiele für Zählwerke
Die Präzision des Datentyps REAL hat einen Einfluss auf Zählanwendungen,
sodass es bei der Addition von sehr kleinen Zahlen zu sehr großen Zahlen zu
Fehlern kommen kann.
Als Beispiel wäre die Addition der Zahl 1 zu einer anderen Zahl über einen
längeren Zeitraum zu nennen. Ab einem gewissen Punkt hat die Addition keinen
Einfluss mehr auf das Ergebnis, weil die laufende Summe deutlich größer ist als 1
und es nicht mehr genug Bits gibt, um das gesamte Ergebnis zu speichern. Bei der
Addition werden so viele obere Bits gespeichert wie möglich und die
verbleibenden unteren Bits werden verworfen.
Um dieses Problem zu umgehen, werden Berechnungen mit kleinen Zahlen
angestellt, bis die Ergebnis schließlich zu groß werden. Dann müssen diese
andernorts verlagert werden, wo dann die Berechnungen ausschließlich mit
größeren Zahlen erfolgen. Zum Beispiel:
x steht für die kleine inkrementierte Variable.
y steht für die große inkrementierte Variable.
z ist die aktuelle Gesamtzählmenge, die überall verwendet werden kann.
x = x+1;
if x = 100,000;
{
y = y + 100,000;
x = 0;
}
z = y + x;
Rockwell Automation-Publikation 1756-RM006K-DE-P - November - 2018
Kapitel 11
571