Mathematische Funktionen in FUP für Ganzzahlen

Mathematische Funktionen für Ganzzahlen

In Steuerungsprogrammen müssen häufig zwei Zahlen miteinander gerechnet werden. Mit den mathematischen Funktionen ist eine Addition, Subtraktion etc. möglich. Dabei unterscheidet man zwischen Berechnungen für Ganzzahlen (Festpunktzahlen) und Gleitpunktzahlen mit Komma. Für Ganzzahlen gibt es entweder den Datentyp INT mit einer Länge von 16 Bits oder DINT mit einer Länge von 32 Bits. In der Programmiersoftware Step7 befinden sich die mathematischen Funktionen für Ganzzahlen unter dem Knoten Festpunkt-Funktionen. Die darunter befindlichen Bausteine können wie folgt genutzt werden:

  • ADD_I Addition INT-Zahlen (16 Bit Ganzzahlen)
  • SUB_I Subtraktion von INT-Zahlen (16 Bit Ganzzahlen)
  • MUL_I Multiplikation von INT-Zahlen (16 Bit Ganzzahlen)
  • DIV_I Division von INT-Zahlen (16 Bit Ganzzahlen)
  • ADD_DI Addition von DINT-Zahlen (32 Bit Ganzzahlen)
  • SUB_DI Subtraktion von DINT-Zahlen (32 Bit Ganzzahlen)
  • MUL_DI Multiplikation von DINT-Zahlen (32 Bit Ganzzahlen)
  • DIV_DI Division von DINT-Zahlen (32 Bit Ganzzahlen)
  • MOD_DI Divisionsrest gewinnen (32 Bit Ganzzahlen)

Die Erläuterung der Funktionen für mathematische Funktionen für Ganzzahlen.

Man kann immer nur zwei Zahlen miteinander rechnen. Diese müssen außerdem das gleiche Format haben. Eine Mischung aus INT- und DINT-Zahlen ist nicht möglich. Möchte man unterschiedliche Zahlenformate rechnen, muss man eine Zahl in das andere Format umwandeln. Hierfür gibt es die Umwandlungsfunktionen.

Die mathematischen Funktionen beeinflussen die Bits OV, OS, A0 und A1 des Statusworts. So ist es möglich, die mathematischen Funktionen auszuwerten. Bei Zahlen mit einer Länge von 16 oder 32 Bits ergibt sich automatisch eine Beschränkung des Zahlenraums. Dadurch gibt es gültige und ungültige Zahlen. Die Bits im Statuswort geben Auskunft über solche Überschreitungen des Zahlenraums und haben folgende Signalzustände:

Ungültige Bereiche A1 A0 OV OS
Unterschreitung bei Addition
16 Bit: Ergebnis = -65536
32 Bit: Ergebnis = -4 294 967 296
0 0 1 1
Unterschreitung bei Multiplikation
16 Bit: Ergebnis < -32 768 (negative Zahl)
32 Bit: Ergebnis < -2 147 483 648 (negative Zahl)
0 1 1 1
Überlauf bei Addition, Subtraktion
16 Bit: Ergebnis > 32 767 (positive Zahl)
32 Bit: Ergebnis > 2 147 483 647 (positive Zahl)
0 1 1 1
Überlauf bei Multiplikation, Division
16 Bit: Ergebnis > 32 767 (positive Zahl)
32 Bit: Ergebnis > 2 147 483 647 (positive Zahl)
1 0 1 1
Unterschreitung bei Addition, Subtraktion
16 Bit: Ergebnis < -32 768 (negative Zahl)
32 Bit: Ergebnis < -2 147 483 648 (negative Zahl)
1 0 1 1
Division durch 0 1 1 1 1
Gültiger Bereich A1 A0 OV OS
0 (Null) 0 0 0 *
16 Bit: -32 768 <= Ergebnis < 0 (negative Zahl)
32 Bit: -2 147 483 648 <= Ergebnis < 0 (negative Zahl)
0 1 0 *
16 Bit: 32 767 >= Ergebnis > 0 (positive Zahl)
32 Bit: 2 147 483 647 >= Ergebnis > 0 (positive Zahl)
1 0 0 *

* Ohne Einfluss auf das Bit OS.

Operation A1 A0 OV OS
ADD_DI: Ergebnis = -4 294 967 296 0 0 1 1
DIV_DI oder MOD_DI: Division durch 0 1 1 1 1

Übersicht über die mathematischen Funktionen für Ganzzahlen

Mathematische Funktionen für Ganzzahlen