6.2.1.4 Konfiguration der
RS232-Schnittstelle auf dem Raspberry Pi
Die Konfiguration der RS232-Schnistelle auf dem Raspberry Pi
erfolgt in zweigroßen Schritten. Da auf der Raspberry Pi 3 die UART
Schnittstelle per Voreinstellung auf das Bluetooth Modul konfiguriert ist, muss
diese Serielle vor der Benutzung abgeschaltet werden.Aus diesem Grundwird die
Datei /boot/cmdline.txt und /etc/inittab bearbeitet. Die Datei
/boot/cmdline.txt steuert den Pi-Boot-Prozess. Dort sind verschiedene
Boot-Optionen definiert, so auch die serielle Konsole. Als Defaultbefindet sich
in der Datei der folgende Text:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200
kgdboc=ttyAMA0,115200
console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4
elevator=deadline rootwait
Die folgende Zeile console=ttyAMA0,115200
kgdboc=ttyAMA0,115200
muss aus der Datei gelöscht werden, aber alles andere
darf unter keinen Umständen geändert werden.Es bleibt dann am Ende in
der Datei der nebenstehende Text.
dwc_otg.lpm_enable=0
console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4
elevator=deadline rootwait
In der Datei /etc/inittab erfolgt die Deaktivierung der
seriellen Konsole durch Platzieren eines vorherigen Kommentarzeichens auf der
Zeile mit dem Text T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100.
Das ganze sieht dann folgendes aus:
#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Die Aktivierung/Deaktivierung der Schnittstelle kann dann
später über dieraspi-config Befehl erfolgen indem das
Interfacing Options' Menü unter den erweiterten
Möglichkeiten zu wählen ist und danach das unter Menü Serial
selektiert wird. Damit lässt sich die Schnittstelle aber nur komplett
aktivieren oder deaktivieren.
( Hochschule München, FK 04, Prof. Jürgen Plate,
2018)
6.2.2 Auftragstelegramm
Abbildung 42: Aktivierung der
Serielle Schnittstelle in Tkinter.
Das Auftragstelegramm ist definiert als das gesendete
Telegramm des Mastersan den Slaven. Damit einefehlerfreie Kommunikation
zwischen den Raspberry Pi (Master) und SIMOREG-Gerät(Slave) existiert,
muss an beiden Geräten die gleiche Übertragungsbaudrate bzw.
Parametrierungeingestellt werden.Die Konfiguration bzw. Aktivierung der
Serielle Schnittstelle in Python wird mit dem Folgenden Code
durchgeführt.
Daten werden in Python mit Hilfe des Pyserial Moduls gesendet
bzw. empfangt. Als Auftragstelegramm wird in Python der folgende Code
erzeugt:
Abbildung 43: Programmabschnitt
für das Senden von Telegrammen über die RS232 Schnittstelle
6.2.3 Antworttelegramm
Unter einem Antworttelegramm wirddie Rückmeldung eines
Slaves an den Master verstanden. Der Slave sendet dann eine Nachricht an das
SIMOREG-Gerät zurück, wenn dieser die von dem Master gesendeten
Telegramme fehlerfrei empfangen hat und wenn diese Telegramme an ihn adressiert
wurden.
Die nächste Abbildung zeigt, wie Daten von dem Slaven an
den Master übertragen werden.
Abbildung 44:Programmabschnitt
zum Empfangen von Telegrammen über die RS232-Schnittstelle
Um Daten zyklisch zu senden und zu empfangen, ist in Tkinter eine
spezielle Methode erforderlich, nämlich after(), die die
Callback-Funktion aufruft. Die Gesprächsdauer kann in
Millisekunden über den Delay-Parameter eingestellt werden. Die
folgende Abbildung zeigt, wie Daten zyklisch über die RS 232-Schnittstelle
mit der Tick-Methode der Klasse Prüfstand() gesendet und
empfangen werden.
Abbildung 45: zyklische senden
und empfang von daten über die RS232-Schnittstelle
|