Arithmetische Operationen, größerer Wertebereich

Frage:

Wie kann der für arithmetischen Berechnungen verwendete Wertebereich vergrößert werden?

Antwort:

Soll der von der SPS zur arithmetischen Berechnung verwendete Wertebereich vergrößert werden, so ist eine Typkonvertierung der Variablen zum nächst größeren Datentyp an den Eingängen der Operation durchzuführen. Dazu sind die entsprechenden Konvertierfunktionen zu verwenden.

Dies ist besonders interessant, wenn in der Formel gleichzeitig eine Multiplikation und eine Division durchgeführt wird. Wird zuerst die Multiplikation durchgeführt, dann besteht die Gefahr, daß dessen Resultat außerhalb des Wertebereichs liegt, während wenn zuerst die Division durchgeführt wird, dessen Ergebnis durch Rundung unbrauchbar sein könnte. Abhilfe: Vergrößerung des Wertebereichs durch Typkonvertierung.

Beispiel:
nIn : INT;
nOut : INT;

nOut := nIn * 10000/3333;
mit nIn > 3 wird bei der Multiplikation der Wertebereich von INT überschritten -> Datentyp-Überlauf

Abhilfe:
nOut := DINT_TO_INT( INT_TO_DINT( nIn ) * 10000 / 3333 )
Durch die Typkonvertierung erfolgt die Berechnung im Wertebereich von DINT.

URL zur Verlinkung dieses AKB-Artikels: https://www.lenze.com/de-de/go/akb/20010151/0/
Kontaktformular