Mathematische Grundlagen

Mathematik ist die Grundlage für die Programmierung und Funktion eines Computer und somit auch einer SPS. Die Menschen denken im Dezimalsystem, dessen Ziffernvorrat aus 0 bis 9 besteht. Das hat sich so ergeben, weil der Mensch 10 Finger hat und beim Zählen häufig die Finger benutzt wurden. Im Dezimalsystem kann man Rechenoperationen wie Addition, Subtraktion, Multiplikation, Division, Potenzen usw. durchführen und den Menschen ist der Umgang mit dem Dezimalsystem bekannt.

Ein Computer, wozu auch eine SPS zählt, arbeitet jedoch nicht mit dem Dezimalsystem. Die Ursache hierfür liegt im technischen Grundaufbau eines Computers, der eben nur erkennen kann, ob Strom fließt oder nicht fließt. Für den Computer ist daher nur erkennbar, ob das Signal 1 (Strom fließt) oder 0 (Strom fließt nicht) ist.

Daher benötigt eine SPS ein Zahlensystem, mit dem gearbeitet werden kann und das ist grundsätzlich das Dualsystem. Das Dualsystem kennt nur 2 Ziffern (0, 1) und eignet sich daher sehr gut für die interne Verarbeitung von Zahlen in einer SPS. Das Dualsystem hat jedoch einen großen Nachteil. Für selbst kleinste Zahlen benötigt man riesige Ziffernfolgen. Daher haben sich zwei weitere Zahlensysteme etabliert, mit denen bei der SPS-Programmierung gearbeitet wird. Das sind die Zahlensysteme Hexadezimalsystem und BCD Code.

Zahlensysteme

Ein SPS-Programmierer sollte sich daher mit diesen 3 Zahlensystemen vertraut machen. Häufig werden Eingaben in BCD-Format, als Hexadezimalzahl oder als Dualzahl erwartet oder man muss die entsprechenden Ziffernfolgen auswerten können. Intern wird jedoch immer mit dem Dualsystem gearbeitet, da eine SPS nur die logischen Zustände 0 und 1 (An und Aus) kennt und die Arbeitsweise einer Schaltung durch diese beiden logischen Zustände beschrieben werden kann. Auch bei der SPS-Programmierung werden diese beiden logischen Zustände verwendet.

Siehe auch Bit und Byte.

Eine SPS-Programmierer muss sich also neben dem Dezimalsystem mit weiteren Zahlensystemen beschäftigen. Zahlensysteme werden durch drei Merkmale beschrieben:

  • Basis: Gibt im Zahlensystem die Anzahl der Ziffern an. Im Dezimalsystem hat man z.B. 10 Ziffern (0 - 9), also ist die Basis 10. Im Dualsystem hat man 2 Ziffern (0, 1), also ist die Basis 2. Im Hexadezimalsystem hat man 16 Ziffern (0 - 9 und A - F).
  • Ziffern: Damit wird angegeben, welche Ziffern im jeweiligen Zahlensystem Gültigkeit hat. Die Ziffer X kommt z.B. im Dezimalsystem nicht vor. Bei den römischen Zahlen wäre es dagegen gültig.
  • Stellenwerte: Der Stellenwert einer Ziffer gibt, jeweils höherwertig von rechts nach links, die Wertigkeit im Zahlensystem an. Die Ziffernfolge 10 hat im Dezimalsystem die Wertigkeit von 10, da die Basis 10 ist und die Ziffer 1 sich an der zweiten Stelle befindet und daher mit 101 multipliziert wird. Im Dualsystem hätte die Ziffernfolge nur die Wertigkeit von 2 (Multiplikation mit 21). Denn die Basis des Dualzahls ist 2. Im Hexadezimalsystem hätte die Ziffernfolge 10 die Wertigkeit von 16 (Multiplikation mit 161). Für jede Stelle nach links muss man den Exponent der Potenz um 1 erhöhen, um die Wertigkeit zu ermitteln. Beispielsweise hätte die Ziffernfolge 100 im Hexadezimalsystem die Wertigkeit von 256 (1 x 16 x 16 oder 1 x 16²). Die Ziffernfolge 1000 hätte die Wertigkeit von 4096 (1 x 16 x 16 x 16 oder 1 x 16³).

Darstellungsarten in Zahlensystemen

Dezimalzahlen werden mit einer tiefgestellten 10 gekennzeichnet, z.B. 510

Dual- oder Binärzahlen werden mit einer tiefgestellten 2 gekennzeichnet, z.B. 10102

Hexadezimalzahlen werden mit einer tiefgestellten 16 gekennzeichnet, z.B. AC2316

Zahlen im BCD Code werden mit tiefgestellten BCD gekennzeichnet, z.B. 1001 0110 0011BCD

Die Ziffernfolge bezeichnet im jeweiligen Zahlensystem den Wert, wobei auch ungültige Ziffernfolgen vorkommen können, weil das Zahlensystem eine Ziffer nicht kennt bzw. diese im Zahlensystem nicht vorkommt. Einige Beispiele:

  • Gültige Ziffernfolge im Dezimalsystem: 1010. Die Zehn mit den Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ist die Basis des Dezimalsystems und mit der Ziffernfolge 1010 wird der Wert 10 dargestellt.
  • Ungültige Ziffernfolge im Dezimalsystem: 1X01010. Das ist keine gültige Dezimalzahl, denn die Ziffer X kommt im Dezimalsystem nicht vor.
  • Gültige Ziffernfolge im Dualsystem: 102. Die Zwei mit den Ziffern 0 und 1 ist die Basis des Dualsystems und mit der Ziffernfolge 102 wird der Dezimalwert 210 dargestellt.
  • Ungültige Ziffernfolge im Dualsystem: 1302. Das ist keine gültige Dualzahl, da im Dualsystem die Ziffer 3 nicht existiert.
  • Gültige Ziffernfolge im Hexadezimalsystem: 1016. Die Sechzehn mit den Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F ist die Basis des Hexadezimalsystems und mit der Ziffernfolge 1016 wird der Dezimalwert 1610 dargestellt.
  • Ungültige Ziffernfolge im Hexadezimalsystem: 1H016. Das ist eine ungültige Ziffernfolge, denn im Hexadezimalsystem existiert die Ziffer H nicht.

Beispiele mit Ziffernfolgen bei Zahlensystemen

Dezimalsystem Dualsystem Hexadezimalsystem BCD-Code
0 0 0 0000
1 1 1 0001
2 10 2 0010
3 11 3 0011
4 100 4 0100
5 101 5 0101
6 110 6 0110
7 111 7 0111
8 1000 8 1000
9 1001 9 1001
10 1010 A 0001 0000
11 1011 B 0001 0001
12 1100 C 0001 0010
13 1101 D 0001 0011
14 1110 E 0001 0100
15 1111 F 0001 0101
16 10000 10 0001 0110
17 10001 11 0001 0111
47 101111 2F 0100 0111
82 1010010 52 1000 0010
99 1100011 63 1001 1001
100 1100100 64 0001 0000 0000