Bit und Byte

In der informationsverarbeitenden Technologie wird als Zahlensystem mit dem Dualsystem gearbeitet. In diesem Zahlensystem kommen nur die Ziffern 0 und 1 vor und damit kann man abbilden, ob Strom fließt oder nicht fließt, dessen Erkennung die Grundlage der Computertechnologie ist. Diese Einheit wird als binäres Signal oder anders ausgedrückt BIT genannt. Ein Bit ist im Grunde eine Ziffer im dualen Zahlensystem, der nur die beiden Werte 0 und 1 haben kann. Bit ist die Abkürzung für Binary Digit und stellt die kleinste Einheit in der Computertechnologie dar.

Nun macht es keinen Sinn, lediglich nur die Ziffern 0 und 1 darzustellen, sondern man möchte technologisch gesehen höhere Zahlenwerte verarbeiten. Der Trick liegt einfach darin, dass man die Bitlängen erhöht. Mit 2 Bits kann man z.B. die Zahlen 00, 01, 10 und 11 darstellen, womit man bereits 4 Zustände hätte. Für die Erweiterung der Bitlängen hat man Namen vergeben. Diese sind:

  • Halbbyte: Wenn 4 Bits zusammengefasst werden, nennt man das Halbbyte oder auch Nybble.
  • Byte: 8 Bits werden zu einem Byte zusammengefasst. Das wären 2 Halbbytes/Nybbles. Mit 1 Byte kann man 256 verschiedene Zustände abbilden. Damit könnte man z.B. die Zahlenwerte 0 bis 255, -127 bis +127 oder auch Buchstaben aus dem ASCII-Zeichenvorrat darstellen. Daher wird 1 Byte auch häufig als Wert einer Buchstabe betrachtet.
  • Word: Kommt aus dem Englischen und damit ist auch das Wort gemeint. Ein Wort besteht aus mindestens 2 Buchstaben. Daher besteht ein Wort aus 2 Bytes, was insgesamt 16 Bits wären.
  • DWord: Es gibt noch das Doppelwort, das aus 2 Wörtern besteht. Das sind 32 Bits oder 4 Bytes.

Auch bei Speicherprogrammierbaren Steuerungen bzw. bei der SPS-Programmierung werden die Begriffe Bit, Byte, Wort und Doppelwort verwendet. Wenn man also meint, die Zahl ist 1 Doppelwort lang, dann meint eine Bitlänge von 32 Bits. Die Begriffe werden auch häufig in Verbindung mit der Adressierung benutzt. Möchte man z.B. einen Taster abfragen, schließt man den Taster an die SPS an. Dabei bekommt der Taster eine eindeutige Adresse. Über diese Adresse kann der Taster dann eindeutig identifiziert und z.B. im SPS-Programm abgefragt werden. Dabei gibt es Bitadressen, Byteadressen, Wort- und Doppelwortadressen.

Bitadressen

Ein Byte besteht aus 8 Bits. Für jedes Bit wird dabei eine Bitadresse zugeordnet. So wird jedes Bit einer eindeutigen Adresse zugeordnet, der darüber auch direkt angesprochen werden kann. Die Adressierung eines Bytes fängt dabei mit der ersten Bitstelle auf der rechten Seite an und erhöht sich mit jeder Bitstelle nach links um 1. In Zahlen ausgedrückt bedeutet das, die Bitstelle ganz rechts erhält die Bitadresse 0 und die Bitstelle ganz links die Bitadresse 7.

Darstellung der Bitadressen 0 bis 7:

Darstellung der Bitadressen 0 bis 7

Byteadressen

Jedes einzelne Byte wiederum erhält ebenfalls eine Nummer, die Byteadresse. Außerdem wird noch der Operand bezeichnet. EB1 steht für Eingangsbyte 1 oder AB2 für Ausgangsbyte 2. Ein einzelnes Bit wird eindeutig durch die Kombination von Bit- und Byteadresse adressiert, z.B. E0.1 für Bitadresse 1 von Eingangsbyte 0. Hierbei wird die Bitadresse durch einen Punkt von der Byteadresse getrennt. Links vom Punkt steht die Byteadresse und rechts vom Punkt die Bitadresse. Bei dem Ausgang A2.3 handelt es sich also um das 4. Bit (die Bitnummern fangen bei 0 an) im zweiten Byte einer Ausgangsbaugruppe.

Darstellung einer Byteadresse:

Byteadresse

Wortadressen

Ein Wort besteht aus mindestens 2 Buchstaben (2 Bytes). Wenn 2 Bytes zusammengefasst adressiert werden sollen, benutzt man Wortadressen, die nummeriert werden. Die Wortadresse bei der Verwendung von Eingangswörtern EW, Ausgangswörtern AW und Merkerwörtern MW ist immer die kleinere Byteadresse der beiden im Wort befindlichen Bytes. Bei Doppelwörtern verhält es sich genauso, hier ist die kleinere Wortadresse die Adresse des Doppelwortes.

Darstellung von Wortadressen:

Wortadresse

Doppelwortadressen

Ein Doppelwort besteht aus 2 Wörtern, das sich aus wiederum aus 2 Bytes zusammensetzt (32 Bits). Auch hier gilt, dass man bei der Verwendung von Doppelwörtern bei Eingängen (ED), Ausgängen (AD) und Merkern (MD) immer die kleinere Byteadresse nummeriert. Wenn man also AD0 nummeriert, dann erstreckt sich das Doppelwort über die Ausgangsbytes AB0, AB1, AB2 und AB3.

Doppelwortadresse

Besonderheiten bei der Adressierung

Aus dem oberhalb farbigen dargestellten Schaubildern lässt sich also folgendes ableiten:

  • Ausgangswort AW0 besteht aus Ausgangsbyte AB0 und Ausgangsbyte AB1
  • Ausgangsbyte AB0 besteht aus den Ausgangsbits A0.0 bis A0.7
  • Ausgangsbyte AB1 besteht aus den Ausgangsbits A1.0 bis A1.7
  • Ausgangswort AW2 besteht aus Ausgangsbyte AB2 und Ausgangsbyte AB3
  • Ausgangsbyte AB2 besteht aus den Ausgangsbits A2.0 bis A2.7
  • Ausgangsbyte AB3 besteht aus den Ausgangsbits A3.0 bis A3.7
  • Ausgangswort AW1 besteht aus Ausgangsbyte AB1 und Ausgangsbyte AB2
  • Ausgangsbyte AB1 besteht aus den Ausgangsbits A1.0 bis A1.7
  • Ausgangsbyte AB2 besteht aus den Ausgangsbits A2.0 bis A2.7

Dasselbe gilt auch für die Adressierung von Doppelwörtern. Auch hier ist bei der Adressierung besondere Sorgfalt geboten. Würde man nach obigen Schema der Wortadressen ein Ausgangsdoppelwort AD0 adressieren dann besteht dieses Ausgangsdoppelwort AD0 aus folgenden Adressen:

  • Ausgangsdoppelwort ADW0 besteht aus Ausgangswort AW0 und Ausgangswort AW2
  • Ausgangswort AW0 besteht aus Ausgangsbyte AB0 und Ausgangsbyte AB1
  • Ausgangswort AW2 besteht aus Ausgangsbyte AB2 und Ausgangsbyte AB3
  • Ausgangsbyte AB0 besteht aus den Ausgangsbits 0.0 bis A0.7
  • Ausgangsbyte AB1 besteht aus den Ausgangsbits A1.0 bis A1.7
  • Ausgangsbyte AB2 besteht aus den Ausgangsbits A2.0 bis A2.7
  • Ausgangsbyte AB3 besteht aus den Ausgangsbits A3.0 bis A3.7

Adressierungsregeln

Hinweis: Wenn man ein Byte, Wort oder Doppelwort bereits adressiert, dann kann man innerhalb des adressierten Bereichs ein Bit, Byte, Wort oder Doppelwort nicht noch einmal adressiert, da hier eine Überschneidung stattfinden würde.

Würde man z.B. das Ausgangsdoppelwort AD0 adressieren, dann belegt das Doppelwort die Ausgangsbytes 0, 1, 2 und 3. Möchte man ein weiteres Ausgangsdoppelwort adressieren, dann kann man nicht einfach AD1 nehmen. Das nächste Ausgangsdoppelwort das für die Adressierung frei ist, wäre in diesem Fall AD4.

Dies gilt für alle Adressierungen bei Eingängen, Ausgängen und Merkern ebenso wie bei der Adressvergabe bei Ganzzahlen (INT, DINT) und Gleitkommazahlen (REAL).