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 |