Status-Bytes verwenden

Auf den RevPi Geräten nutzen wir Status-Bytes, um mehrere Funktionen oder Informationen an einer Stelle im Prozessabbild einzutragen. Status-Bytes kannst Du sowohl lesen als auch schreiben. Da ein Byte acht Bit hat, kann man acht Informationsstellen – die sog. Status-Bits – darin unterbringen.

Status-Bytes liest man von rechts nach links und man beginnt bei Null zu zählen.

Wenn Du Status-Bytes auf dem RevPi liest oder schreibst, geschieht das allerdings nicht in Binärform, sondern als Dezimalzahl. Du musst also Binär- in Dezimalzahlen umrechnen und umgekehrt.

Zuordnung zwischen Bit und Dezimalwert

Bit

7

6

5

4

3

2

1

0

Dezimalwert

27=128

26=64

25=32

24=16

23=8

22=4

21=2

20=1

Beispiele:

Binärzahl, wenn das Bit 1 gesetzt ist: 00000010

Bit

7

6

5

4

3

2

1

0

Binärzahl

0

0

0

0

0

0

1

0

Binärzahl, wenn Bit 1 und Bit 6 gesetzt sind: 01000010

Bit

7

6

5

4

3

2

1

0

Binärzahl

0

1

0

0

0

0

1

0

Umrechnung in Dezimalzahl, wenn Bit 1 und Bit 6 gesetzt sind:

Bit

7

6

5

4

3

2

1

0

Binärzahl

0

1

0

0

0

0

1

0

Dezimalwert

64

2

Dezimalzahl

64 + 2 = 66

Tipp:

Mit dem Taschenrechner unter Windows kannst Du Binär- und Dezimalzahlen ganz einfach umrechnen. Wähle dafür in den Einstellungen des Taschenrechners “Programmierer” aus.

Beispiel: Status-Byte schreiben am RevPi Connect

Das Status-Byte RevPiLED des RevPi Connect steuert gleichzeitig die drei LEDs, den Watchdog und den Relaiskontakt. Bit 0 steuert die grüne LED A1, Bit 1 die rote LED A1 und so weiter. Bit 6 steuert den Relaiskontakt und Bit 7 steuert den Watchdog.

Wenn die LED A1 rot leuchten und der Relaiskontakt geöffnet sein soll, setzt Du mit piTest mit dem Kommando piTest -w RevPiLED,66 Bit 1 und Bit 6 jeweils auf 1 (01000010 = 64+2=66).

Beispiel: Status-Byte lesen am RevPi Connect

Das Status-Byte RevPiStatus des RevPi Connect enthält eine Reihe an Informationen zum Prozessabbild. Im Bit 1 steht zum Beispiel, ob ein I/O-Modul an das Basismodul angeschlossen ist.

Mit piTest liest Du mit dem Kommando piTest -r RevPiStatus das entsprechende Status-Byte.

Wenn piTest die Zahl 3 ausgibt, bedeutet das binär 0000 0011, nämlich 2+ 1 = 3. Daraus kannst Du ableiten, dass u.a. Bit 1 gesetzt und somit ein I/O-Modul angeschlossen ist.