Entwicklung einer Steuerung mit Grafische
Oberfläche
auf einem Mini-Computer zur
Durchführung
von Fahrzyklen an einem
Motorprüfstand.
Bachelorarbeit
Zur Erlangung des akademischen Grades
Bachelor of Engineering (B.Eng.)
Vorgelegt von: Patrick SiandjiDjumedio
s0551099@htw-berlin.de
s0551099
Studiengang: Elektrotechnik(B)
Fachrichtung: Ingenieurwissenschaften- Energie und
Information
Hochschule: Hochschule für Technik und Wirtschaft
Berlin.
University of Applied Sciences
Wilhelminenhofstraße 75A
12459 Berlin
Betreut von:
1. Gutachter: Prof. Dr.-Ing. Norbert Klaes
2. Gutachter: M. Eng.Philipp Schmidt
Berlin,4Oktober 2019
Schüsselwort:
Bachelorarbeit, Grafische Benutzeroberfläche, CAN-Bus,
Bussystem, Raspberry Pi, Python Programmiersprache, Durchführung von
Fahrzyklen, Motorprüfstand, UART-Bus.
Kurzfassung
In dieser Bachelorarbeit wird eine grafische
Benutzerschnittstelle mit Hilfe einesEinplatinencomputers (Raspberry Pi 3B)
für die Durchführung von Fahrzyklen an einem Prüfstand
entwickelt.
Für die Umsetzung dieser Aufgabe wird diesein zwei
große Kapitel geteilt: Einerseits die Realisierung der GUI' und
anderseits die Kommunikation mit derexternenWelt (Hardware)' bzw. mit dem
Prüfstand durch die Anwendung von zweiBussystemen,und zwar dem CAN-und
demUART-Bus.
Die grafische Benutzeroberfläche wird auf der Raspberry
Pi mit der Python Programmiersprache realisiert.Hierfür wirddas Tkinter
Modul für das GUI-Toolkit TK benutzt. Andere wichtige Module
wiePython-Can, Pyserial, Re, CSV und Threadingwerden auch für die
Umsetzung dieser Aufgabe verwendet.
Die Messdatenerfassungund der Datenaustausch gelingenerst,
wenn vorher die Grundlagendes seriellenBussystemserläutert wurden. Als
serielles Bussystem für die Kommunikation mit der Hardware wird einerseits
der RS232 Schnittstelle verwendet und anderseits der MCP2515
CAN-Bus,derüber eine SPI-Schnittstelle gesteuert wird, während zudem
die Konfiguration von diesemauf dem Raspberry Pi erforderlich ist. Des
Weiteren wird der Telegrammaufbau erklärt; insbesondere geht es um das
Auftrags- und AntworttelegrammeinesUSS Protokolls für eine fehlerfreie
Kommunikation mit dem SIMOREG DC-Master.
Keyword:
Bachelor thesis, Graphical User Interface (GUI), Control Area
Network, Bus system, Raspberry Pi, Python programming language, Performance of
driving cycles, Engine test bench, UART Bus.
Abstract
This bachelor thesis deals with the development of a graphical
user interface (GUI) using a single-board computer (the Raspberry Pi 3B) for
the execution of driving cycles on a test bench.
For the implementation of this task, the work is divided into
two major parts: The first is the realization of the GUI, and the second is
securing communication with the external world (hardware) or with the test
bench by using two bus systems, namely the CAN and UART buses.
The GUI is developed on the Raspberry Pi with the Python
programming language. The TKinter module for the Tk GUI toolkit is used for
this purpose. Other important modules such as python-can, pyserial, re, csv und
Threading are also used to implement this task.
The measurement data acquisition and data exchange depend on
successful implementation of the serial bus system. The MCP2515 CAN bus is used
as a serial bus system for communication with the hardware. It is controlled
via an SPI, and the configuration of these on the Raspberry Pi is required.
Furthermore, we deal with the telegram structure and the order and response
telegram of a USS protocol for error-free communication with the SIMOREG DC
master.
Danksagung
Ohne die Unterstützung von einigen Personen wäre
diese Abschlussarbeit fast unmöglich.
Hiermit möchte ich ganz ehrlich die Hochschule Für
Technik und Wirtschaft HTW-Berlin danken mich diese Chance gegeben haben, ein
Teil der Student im Studiengang Elektrotechnik sein zu dürfen und
darüber hinaus meine ·Kenntnisse während meiner Tätigkeit
als studentischer Mitarbeiter durch umfassende Praxis und Projekte zu
vertiefen.
An der zweiten Stellebedanke ich mich bei meinen beiden
Betreuer Prof. Dr. -Ing. Norbert Klaes und M. Eng Philipp Schmidt für den
zur Verfügung gestellte Freiraum und Arbeitsplatz bzw. bei jeder Hilfe die
Sie für die Umsetzung meine Aufgabe erbracht haben.
Danken möchte ich auch meine Schwiegermutter Eleni
Soniadou, ihr Freund Niko, und meinem zweiten Bruder Christo für Ihre
Finanzielle Unterstützung, meine Freundin Elisavet Alexiadou die
während das Schreiben dieser Bachelorarbeit allein auf unserem Sohn
aufgepasst musste damit ich mich besser konzentriere, Vielen Dank für
deine Geduld und Unterstützung.
Dankbar bin ich auch meiner lieben Familie und besonders
meiner Schwester Eliane aus Berlin und Ihr Mann Isaac Fothio, meine Eltern
Djumedio Bejanmin und Tcheuckam Elise, meine anderen Geschwister aus Kamerun
Djassi alvine, Tientcheu Martial und Djomaleu Merlin, die trotz Schwierigkeiten
immer für mich da war, ebenfalls recht herzlich bedanken.
Inhaltsverzeichnis
Abbildungsverzeichnis
II
Tabelle
VII
Abkürzungsverzeichnis
VIII
Begriffserklärung
IX
1. Einführung
1
1.1. Motivation
1
1.2. Ziel der Arbeit
1
1.3. Aufbau der Arbeit
1
2. Technische Grundlage
3
2.1 Der Raspberry Pi
3
2.2 Bussystem
4
2.2.1 Allgemein
4
2.2.2 CAN-Bus
5
2.2.2.1 SPI Schnittstelle
8
2.2.2.2 MCP-2515
9
2.2.3 UART-Bus
10
2.2.3.1 RS232-Schnittstelle
11
2.2.3.2 USS-Protokoll
11
2.2.4 Halbduplex-Betrieb
12
2.2.5 Vollduplex-Betrieb
12
3. Analyse
13
3.1 Anforderungen
13
3.2 UML Diagramm
14
4. Konzept
15
4.1 Umfeldanalyse
15
4.2 Der Erste Prototyp
15
4.3 Design
16
5. Realisierung der
Benutzeroberfläche
17
5.1 Vorbereitung
17
5.1.1 Installation des Betriebssystems
17
5.1.1.1 NOOBS Installation
17
5.1.2 Installation der Module
19
5.1.2.1 Python IDE
19
5.1.2.2 Pyserial
20
5.1.2.3 Pillow
20
5.1.2.4 Webbrowser
20
5.1.2.5 CSV
21
5.1.2.6 RPi.GPIO
21
5.1.2.7 Threading
21
5.2 Tkinter
21
5.2.1 Widgets Entwurf
21
5.2.1.1 Label
22
5.2.1.2 Button
25
5.2.1.3 Canvas
25
5.2.1.4 Menü
29
5.2.1.5 Text-Box
29
6. Kommunikation mit der
Hardware
31
6.1 CAN-Bus-Kommunikation
31
6.1.1 Der MCP-2515
31
6.1.2 Vorbereitung
33
6.1.2.1 SPI Konfiguration
33
6.1.2.2 CAN-Bus (MCP2515) Konfiguration
34
6.1.2.3 Installation von CAN-Utils
35
6.1.2.4 PCAN-USB-Adapter Konfiguration
36
6.1.3 Senden und Empfang der CAN-Message
38
6.2 Die UART-Kommunikation
39
6.2.1 Vorbereitung
39
6.2.1.1 RS232 Schnittstelle
39
6.2.1.2 Aufbau der Telegrammrahmen
39
6.2.1.3 Parametrierung des USS-Protokolls für
das SIMOREG 6RA7025
41
6.2.1.4 Konfiguration der RS232-Schnittstelle auf
dem Raspberry Pi
45
6.2.2 Auftragstelegramm
46
6.2.3 Antworttelegramm
47
7. Laborpraktikum
49
8. Fazit und Ausblick
58
Literaturverzeichnis und
Quellenverzeichnis
59
Anhang
X
A1. 8-Kanal Relay Modul Schaltung
X
A2. Das F28335 Modul
XI
A3. F28335 Pins Belegung
XI
A4. Schaltung eines MCP2562-Transceivers mit dem
Mikrocontroller
XII
A5. Der MCP2562 Transceiver
XII
A6. Funktionsplan einem USS Schnittstelle auf dem
SIMOREG DC Master
XIII
A7. Die Wichtigste Parameterliste für die
Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master
XIV
A8. Parameter für die Diagnoseinformation der
Seriellen Schnittstellen (USS1) des SIMOREG DC-Master
XVI
A9. Funktionsplan eines Hochlaufgebers
XVII
A10. Funktionsplan des Feldstromregelung für
das SIMOREG-DC-Gerät
XVIII
A11. Funktionsplan der EMK-Regelung für das
SIMOREG-DC Gerät
XIX
A12. Funktionsplan der Drehzahlregelung für das
SIMOREG-DC Gerät
XX
A13. Funktionsplan der Ankerstromregelung für
das SIMOREG-DC Gerät
XXI
2. CD-Verzeichnis
XXII
Eidesstattliche Erklärung
XXIII
Abbildungsverzeichnis
Abbildung 1: Raspberry Pi 3 Model B(Pollin
Electronic GmbH, 2019)
2
Abbildung
2: CAN Bus Kommunikation im Kfz Bosch-Technologien (Robert Bosch GmbH,
2019).
5
Abbildung 3: Bitweise Arbitrierung in der CAN Bus
Kommunikation (slideplayer.org, 2017).
6
Abbildung 4: Beispiel eines CAN-BUS-Netzwerks (HMS
Industrial Networks AB, 2019).
7
Abbildung 5: Data Frame im Standard- und
Extended-Format(VECTOR INFORMATIK GMBH, 2019)
8
Abbildung 6: SPI-Bus mit einem Master und zwei
Slaven(Hochschule München, FK 04, Prof. Jürgen Plate, 2017).
9
Abbildung 7: Der MCP2515 CAN-Controller mit TJA1050
CAN-Transceiver(42project, 2019).
9
Abbildung 8: UART Frame (buyzero, 2019)
11
Abbildung 9: Halbduplex-Betrieb (Elektronik
Kompendium, 2019)
12
Abbildung
10: Vollduplex Betrieb (Hennekeuser, 2018)
12
Abbildung
11: UML Diagramm
14
Abbildung
12: Erste Handskizze der Software.
15
Abbildung 13: Ausgewählte Design für die
Realisierung der Software
16
Abbildung 14:Das SD-Formatter Programm unter
Windows(technik-tipps-und-tricks, 2017)
18
Abbildung 15: NOOBS Installationsassistent(Amazon,
2019)
19
Abbildung 16: Die Verschiedene Widgets der
Prüfstand Synchronmaschine Seite
22
Abbildung
17: Fenster-/Seitenerstellung der grafischen Oberfläche mit Tkinter.
23
Abbildung 18: Label in Tkinter
24
Abbildung 19: Programmausschnitt für das
Erzeugen des "Anmelden" Buttons
25
Abbildung 20: Programmausschnitt für das
Erzeugen eines Canvas in einem Tkinter-Fenster.
25
Abbildung 21: Vorgehensweise für Das Zeichnen
der Teilstriche der Zeigerinstrument
26
Abbildung
22: Zeigerinstrument für die Drehzahlanzeige in Canvas
27
Abbildung 23: Programmausschnitt für die
Realisierung der Gauge-meter
28
Abbildung 24: Erstellen eines Menüs in
Tkinter
29
Abbildung 25: Erstellen eines Textfeldes in
Tkinter
30
Abbildung 26: Anzeigefenster auf der grafischen
Oberfläche
30
Abbildung 27: Schaltplan einem MCP2515 CAN
Modul(Raspberry Pi Foundation, 2019)
31
Abbildung 28: Modifizierter Schaltplan der CAN BUS
Modul (Raspberry Pi Foundation, 2019).
31
Abbildung 29: Schaltung von MCP2515 mit dem Raspi
(Raspberry Pi Foundation, 2019)
32
Abbildung 30: Gesamter Schaltplan mit der
Pin-Belegung einer CAN-BUS Kommunikation (Hackster.io, an Avnet Community,
2019)
32
Abbildung 31: Die verschiedenen Schritte für
die Aktivierung der SPI auf dem Raspberry Pi
33
Abbildung 32: CAN-Interface für USB
(PEAK-System Technik GmbH, 2019)
36
Abbildung 33: Anschlussbelegung der PCAN-Bus-Adapter
(PEAK-System Technik GmbH, 2019).
37
Abbildung 34: Ansicht von CAN-Transfer über die
PCAN-view-Software(Warszawa, 2019)
37
Abbildung 35: Aktivierung des Can0 Interfaces in
Python.
38
Abbildung 36: Periodische Senden Von CAN-Message in
Python.
38
Abbildung 37: Empfang von CAN-Message in Python
39
Abbildung
38: USB zu RS232 Serial DB9 Adapter Kabel (Best Buy Co, Inc., 2019)
39
Abbildung
39: Sub-D 9 Pin RS232 Stecker/Buchse Kabel (partsdata, 2019)
39
Abbildung 40: Telegrammaufbau eines
USS-Protokolls
40
Abbildung
41: Der SIMOREG DC-MASTER 6RA7025
41
Abbildung 42: Technische Daten der SIMOREG DC-MASTER
6RA7025
42
Abbildung 43: Auswahl der RS232
schnittstelle-Baudrate für das Senden von Telegrammen
44
Abbildung
44: Aktivierung der Serielle Schnittstelle in Tkinter.
46
Abbildung 45: Programmabschnitt für das Senden
von Telegrammen über die RS232 Schnittstelle
47
Abbildung 46:Programmabschnitt zum Empfangen von
Telegrammen über die RS232-Schnittstelle
47
Abbildung 47: zyklische senden und empfang von daten
über die RS232-Schnittstelle
48
Abbildung
48: Labor Elektrische Maschine an der HTW-Berlin Wilhelminenhofstraße 75A
Gebäude F Raum 328
49
Abbildung
49: Programmablauf für einen erfolgreichen Daten-Transfer auf das GUI
50
Abbildung 50: Aufbau der Schaltung für die
CAN-Bus Kommunikation
51
Abbildung 51: Konfigurationsparameter der
CAN-Bus
52
Abbildung 52: TextBox mit geladenem Track
53
Abbildung
53: Sendekonfiguration Fenster für das Senden einzelner Daten
53
Abbildung
54: Sendekonfiguration Ansicht für die Übertragung des geladenen
Tracks
53
Abbildung
55: Anzeige des zyklisch an das Oszilloskop übertragenen CAN-Frames
54
Abbildung 56: Empfangene CAN-Nachricht vom F28335
Mikrocontroller
55
Abbildung 57: Zusammenschaltung des
SIMOREG-Geräts mit dem Raspberry Pi über RS232 -Schnittstelle.
56
Abbildung
58: UART-Konfiguration auf der grafischen Oberfläche
57
Abbildung 59: Anzeige der Eingestellte Parameter
für die Konfiguration der UART-Bus
57
Abbildung
60: Telegrammrahmen Konfiguration.
57
Abbildung 61: 8-Kanal Relay Modul Schaltung
(SUNFOUNDER, 2017)
X
Abbildung
62: Das F28335 Modul
XI
Abbildung
63: F28335 Pins Belegung (Texas Instruments, 2019)
XI
Abbildung 64: Schaltung eines MCP2562-Transceivers
mit dem Mikrocontroller (Microchip Technology Inc., 2014, S. 6)
XII
Abbildung
65: Der MCP2562 Transceiver mit Sub-D 9 Buchse Ausgang
XII
Abbildung 66: Funktionsplan einem USS Schnittstelle
auf dem SIMOREG DC Master (Siemens AG, 2015, S. 260)
XIII
Abbildung
67: Parameterliste (P780 bis P783) für die Konfiguration der Seriellen
Schnittstellen (USS1) des SIMOREG DC-Master (Siemens AG, 2015, S. 548)
XIV
Abbildung
68: Wichtigste Parameterliste (P784 bis P788) für die Konfiguration der
Seriellen Schnittstellen (USS1) des SIMOREG DC-Master (Siemens AG, 2015, S.
549)
XV
Abbildung
69: Parameter für die Diagnoseinformation der Seriellen Schnittstellen
(USS1) des SIMOREG DC-Master (Siemens AG, 2015, S. 550)
XVI
Abbildung
70: Funktionsplan eines Hochlaufgebers (Siemens AG, 2015, S. 245)
XVII
Abbildung
71: Funktionsplan des Feldstromregelung für das SIMOREG-DC-Gerät
(Siemens AG, 2015, S. 257)
XVIII
Abbildung
72: Funktionsplan der EMK-Regelung für das SIMOREG-DC Gerät (Siemens
AG, 2015, S. 256)
XIX
Abbildung
73: Funktionsplan der Drehzahlregelung für das SIMOREG-DC Gerät
(Siemens AG, 2015, S. 250)
XX
Abbildung
74: Funktionsplan der Ankerstromregelung für das SIMOREG-DC Gerät
(Siemens AG, 2015, S. 254)
XXI
Tabelle
Tabelle
1: Raspberry Pi 3 Modell B Technische Daten (Reichelt Elektronik, 2019)
2
Tabelle 2: Empfohlene Bitraten und die
entsprechenden maximalen Kabellängen(ME-Meßsysteme GmbH, 2008)
7
Tabelle 3: Leitungslänge in Abhängigkeit
von der Anzahl an Teilnehmern und der Übertragungsrate (SIEMENS AG,
2015).
11
Tabelle 4: Berechnung der Teilstriche Winkel der
Zeigerinstrument
26
Tabelle 5: GPIO-Belegung der Raspberry Pi Model
3B(element14, 2019)
34
Tabelle 6: mögliche maximale Kabellänge in
Abhängigkeit zu der Übertragungsrate für das PCAN USB-Adapter
(PEAK-System Technik GmbH, 2019)
36
Tabelle 8: Auswahl der Anzuzeigenden Parameter des
SIMOREG Geräts
42
Tabelle
7: Einstellung der Schlüsselparameter
42
Tabelle 9: Auswahl des USS-Protokolls für das
SIMOREG Gerät
43
Tabelle 10: Eingabe der Quelle für die
Sendedaten über G-SST1
44
Abkürzungsverzeichnis
Prof. Professor
Dr. Doktor
Ing. Ingenieur
Bzw. beziehungsweise
Max. Maximal
Raspi Raspberry Pi
Min. Minimal
Anz. Anzahl
V Volt
GHz Gigahertz
GB Gigabyte
MHz Megahertz
Begriffserklärung
GUI: GraphicalUser Interface
MHI: Human Machine Interface
CAN: Control Area Network
BUS: Binary Unit System
SPI: Serial Peripheral Interface
MOSI: Master Out Slave In
MISO: Master In Slave Out
SCKL: Serial Clock
VCC: Voltage Common Collector / Versorgungsspannung
USS-Protokoll: Universelles serielles
Schnittstellen-Protokoll
STX: Start of Text
PKW: Parameter Kennung Wert
PKE: Parameter Kennung Element
AK: Auftrag / Antwort Kennung
PNU: Parameter Nummer
IND: Index
PZD: Prozessdaten
BCC: Bloc Check Charakter
ARD: Adressbyte
LGE: Telegrammlänge
UML: Unified Modeling Language
HTW: Hochschule für Technik und Wirtschaft
GPIO: General Purpose Input/output
IDE: Integrated Development Environment
IO: Input / Output
PC: Personal Computer
WLAN: Wireless Local Area Network
RAM: Random Access Memory
BCM2837: Broadcom 2837
HDMI: High Definition Multimedia Interface
CSI: Camera Serial Interface
DSI: Digital Serial Interface
CPU: Central Processing Unit
LAN: Local Area Network
RJ-45 Buchse: Registered Jack-45 Buchse
USB: Universal Serial Bus
IC: Integrated Circuit
SOF: Start Of Frame
EOF: End Of Frame
CRC: Cyclic Redundancy Check
ACK: ACKnowledgement
DLC: Data Length Code
RTR: Remote Transmission Request
1.Einführung
Das UserInterface oder Human Machine Interface (HMI)
wird als die Schnittstelle definiert, die zur Verbindung zwischen Menschen und
Maschine nötig ist.
Die Anwendung von Maschinen ist heutzutage so
selbstverständlich undeinfach, dasskein großer Unterschied mehr
zwischen Menschen und Maschine zu erkennen ist.Damit Menschen Maschinen und
Programme steuern können, ist eine entsprechende Schnittstelle
erforderlich.
(Vogel Communications Group GmbH & Co. KG, 2019).
1.1.
Motivation
Die Entwicklung der grafischen Benutzeroberfläche hat die
Benutzerführung der Computerschichten vereinfacht. Eswerden heutzutage die
verschiedenen Funktionalitäten mehrererSysteme mit Hilfe einer GUI
dargestellt und die Kommunikation oder der Datenaustausch mit diesemerfolgen
durch Bussysteme.
In diesem Zusammenhang soll für die Steuerung und
Durchführung von Fahrzyklen an einem Motorprüfstand in dem
Laborprüfstand Elektrische Maschine an der Hochschule für Technik und
Wirtschaft Berlin eine grafische Benutzeroberfläche mit Hilfe
einesRaspberry Pi entwickelt werden. Dies soll möglichst einfach
realisiert werden, sodass es einen leichten Zugriff auf alle Funktionen bietet.
Hierzu soll das User Interface die wichtigsten Parameter erhalten, die für
die Steuerung und Anzeige der Messergebnisse nötig wären.
1.2. Ziel der Arbeit
Ziel dieser Bachelorarbeit ist es, eine
Benutzeroberfläche mit Hilfe eines Mikrocomputers (Raspberry Pi 3 ModellB)
zur Bussteuerung eines Motorenprüfstandes zu erstellen. Python 3.6 wird
als Programmiersprache für die Benutzeroberfläche verwendet.
Mit dem von der Programmiersprache Python entwickelten
Programm werden die Ausgänge des Raspberry Pi geschaltet und die
Eingänge gelesen.Die Kommunikation mit dem Motorprüfstand erfolgt
einerseits über den CAN-Bus und andererseits über den UART Bus. Das
Raspberry Pi tauscht daher Daten mit dem Mikrocontroller des nationalen Instruments F28335
über die MCP2515-Schnittstelle aus.
1.3. Aufbau der Arbeit
Im ersten Teil dieser Bachelorarbeit wird mit
Hilfe von angemessener Dokumentation in die Theorie der
Bussystemeeingeführt. Dabei muss definiert werden, was ein Bussystem ist
und welche Zugriffsverfahren es verwendet.
Im zweiten Teil werden die unterschiedlichen
Anforderungen und Rahmenbedingungen für eine fundierteAnalyse der Arbeit
definiert. Dazu wird das System über ein UML-Diagramm modelliert.
Der dritte Teildieser Arbeit stellt die
Konzeptphase bzw. eine Prognose über das Endergebnis dar. Hier wird
gezeigt, wie das User Interface schließlich aussehen wird und welche
verschiedenen Komponenten es enthält.
Dervierte Teildieser Arbeit bildetdie
Realisierung der Benutzeroberfläche. Dabei wirdim Voraus gezeigt, wie die
verschiedenen Module, die für die Entwicklung der Benutzeroberfläche
auf der Raspberry Pi installiert sind.
Im letzten Teilwird die Kommunikation mit der
Hardware beleuchtet.
In diesem Kapitel wird ein physikalisches UART- bzw.
CAN-Netzwerk aufgebaut, das folgende Bedingungen erfüllen sollte:
· CAN-Zugang über D-SUB-9-Buchsen
· RS232-Schnittstellenkommunikation über ein an der
Raspberry Pi USB-Port angeschlossene USB-zu-RS232 Adapter
· Messtechnischer Zugang zu den CAN-High- und
CAN-Low-Leitungen.
· Berücksichtigung einer maximalenBuslänge
für den Datenaustausch
· unterschiedliche Versorgungsspannung von CAN-Controller
und CAN-Transceiver
· Parametrierung der SIMOREG DC-Master für eine
Erfolgreiche Empfang und Senden von Telegrammen.
Der Aufbau soll solide strukturiert sein und funktionieren.
Als CAN-Modul für die Visualisierung der Datentransporte steht der PCAN
USB Adapter der PEAK System Technik GmbH zur Verfügung.
2. Technische Grundlage
Die Kenntnis des Bussystems ist eine elementare Grundlage
für eine fehlerfreie Datenübertragung mit dem Raspberry Pi. In diesem
Kapitel wird zunächst die Grundlage des Raspberry Pi, d. h. die Struktur
des Raspberry Pi Modells B, diskutiert, dann eine Einführung in Bussysteme
und deren Zugriffsmethoden.
2.1 Der Raspberry Pi
5
9
8
4
3
6
2
7
1
Abbildung 1: Raspberry Pi 3
Model B(Pollin Electronic GmbH, 2019)
1: 40 GPIO-Pins
2: Broadcom BCM2837 64bits, Quad Core CPU, 1.2GHz, 1GB RAM
3:5 Volt Mikro-USB für die Energieversorgung
4:RJ-45 Buchse (LAN)
5: 4 USB 2.0 Anschlüsse
6: DSI Display Anschluss
7: HDMI Anschluss
8: Audio / Video Ausgang
9: CSI Kamera Anschluss
Der Raspberry Pi ist ein Einplatinencomputer, der von der
Raspberry Pi Fundation angefertigt wurde. Durch seine steuerbaren I/Os kann
erleichtvon Sensoren und Gerätenabgelesen und gesteuert werden. Aus diesem
Grund wird erin vielen Bereichen als wirtschaftliche Alternative zu
alltäglichen Computern eingesetzt. Es gibt heute verschiedene Versionen
von Raspberry Pi. Dieseunterscheidensich vom alten Modell dadurch, dass
sieüber einen integrierten WLAN-Chip verfügen. Dadurch entfällt
für die meisten Anwendungen ein zusätzlicher WLAN-USB-Stick. Zudem
verfügen sie über eine Bluetooth-Verbindung. Der Mikroprozessor ARM
Cortex-A53 unterstützt einen 64-Bit-Befehlssatz und 4x 1200 MHz-Takte.
Diese Eigenschaften machen den Raspberry Pi 3B zu einem vollwertigen PC,
weshalb er in diesem Projekt eingesetzt wird.
(Gitter, 2018)
Die folgende Tabelle zeigt eineausführliche Eigenschaft
der Raspberry Pi 3 B :
Tabelle 1: Raspberry Pi 3 Modell
B Technische Daten (Reichelt Elektronik, 2019)
2.2 Bussystem
2.2.1Allgemein
Damit Computer mit externen Geräten kommunizieren bzw.
Daten austauschen können,braucht es eine Verknüpfung zwischen diesen.
Ein Bussystem dient dazu,Informationen zwischen
Systemkomponenten auszutauschen(Kofler, Kühnast, & Scherbeck, 2018, S.
423). Es existieren verschiedene Arten von Bussystem, die sich vor allem
hinsichtlichihrer Datenübertragungsraten,Sicherheit, Kapazität,
Latenz, Kosten, Echtzeitfähigkeit, Buszugriffsverfahrenunterscheiden. Ein
Paar davon kann man zum Beispiel nennen: Ethernet, UART, CAN, LIN, MOST ...
Für die Steuerung des Motorprüfstands und
denDatenaustausch zwischen dem Raspberry Pi und dem Motor wird der Fokusin
dieser Bachelorarbeit auf die Benutzung von zwei Bussystemen gelegt, und zwar
auf den CANBusund das Universal AsynchronousReceiver Transceiver,
abgekürzt UART.
2.2.2 CAN-Bus
Abbildung 2: CAN Bus Kommunikation
im Kfz Bosch-Technologien (Robert Bosch GmbH, 2019).
Die Zunahme der elektronischen Systeme in der
Automobilindustrie in den 1990er Jahren und die erheblichen Kabelbäume zur
Datenübertragung führten 1983 zur Entwicklung des CAN-Busses.CAN
steht für Controller Area Network und wurde von der Robert Bosch GmbH als
Bussystem für Kraftfahrzeuge entwickelt. Dieses serielle Bussystem
enthält für die Datenübertragung ausschließlich ein
zwei-Draht-Bussystem (CAN High und CAN Low) und kann trotz des einfachen
Aufbaus sehr große Netzwerke mit bis zu 100 Steuergeräten bilden
(Engels, 2000, S. 51).
Der CAN Bus arbeitet nach dem Multiple Master System. In
diesem Zugriffsverfahren kann der CAN Bus gleichberechtigt mit vielen
Steuergeräten verbunden werden.Das bedeutet, bei einem freien
Buskönnen allean den Busangeschlossenen Geräte eine Nachricht
schicken.Das Steuergerät mit der Nachricht höherer Rangbekommt die
Priorität bei dem Bus-Zugriff. Die Priorität der Nachricht wird auf
den IDENTIFIER angezeigt. Das bedeutet, je kleiner die Binärzahl eines
Identifiers ist, umso größer ist seine Priorität (Siehe
Abb.3).
Ein Dominante Bit wird mit 0 gekennzeichnet und ein Rezessive
Bit mit 1.
(Engels, 2000, S. 60-61)
In der folgenden Abbildung ist zu erkennen, dass der
Teilnehmer 2(T2) seinen Arbitrierungsvorgang beendet(Bit 5 des
Identifikators),wenn er feststellt, dass die logische Ebene auf dem Bus
dominant ist. Auf die gleiche Weise beendet der Teilnehmer 1 (T1) seinen
Arbitrierungsprozess auf Bit 2 seines Identifikators. Der Teilnehmer 3 gewinnt
dann den Bus-Zugriff und kann seine Daten auf das Bus senden.
Abbildung 3: Bitweise
Arbitrierung in der CAN Bus Kommunikation (slideplayer.org, 2017).
Der Identifier unterscheidet sich je nach Rahmenformat:Ein
Standard-Rahmen wird mit 11 Bit-Identifier gekennzeichnet und ein
Erweiterter-Rahmen(EXTENDED Frames)mit 29 Bit-Identifier.Für eine
reibungslose Nachrichtenübertragung soll der Bus nach der
ISO 11898an beiden
Enden mit jeweils 120 Ohm abgeschlossen werden (Engels, 2000, S. 52-61).Diese
Terminierung sorgt dafür, dass es in einem CAN-High-Speed-Netzwerk
aufgrund der Signalausbreitungzu keinerSpiegelungkommt.
Abbildung 4: Beispiel eines
CAN-BUS-Netzwerks (HMS Industrial Networks AB, 2019).
Der Datentransportmit einem CAN-Bus kann mit einer Bitrate von
bis zum1 Mbit/s erfolgen.Die maximale Kabellänge für den
Datenübertragung ist dann von der Bitrate bestimmt. (ME-Meßsysteme
GmbH, 2008)
Die folgende Tabelle zeigt die Abhängigkeit bzw. die
empfohlenen Bitraten und die entsprechendenKabellängen.
Bitrate
|
Kabellänge
|
10 Kbit/s
|
6,7 km
|
20 Kbit/s
|
3,3 km
|
50 Kbit/s
|
1,3 km
|
125 Kbit/s
|
530 m
|
250 Kbit/s
|
270 m
|
500 Kbit/s
|
130 m
|
1 Mbit/s
|
40 m
|
Tabelle 2:Empfohlene Bitraten
und die entsprechenden maximalen Kabellängen(ME-Meßsysteme GmbH,
2008)
Der Datenaustausch auf dem CAN-Bus erfolgt mit Hilfe von
Telegrammen, wobeivier verschiedene Sorten von Telegrammen existieren:
1. Daten-Rahmen für das Senden von Daten an
Empfänger
2. Anforderungs-Rahmen (Remote Frame)
3. Fehler-Rahmen (Error Frame)
4. Überlast-Rahmen (Overload Frame)
Der Telegrammaufbau einer Nachrichtfür die
Datenübertragung von Sender zu Empfänger (DATA FRAME)besteht aus
sieben unterschiedlichen Bit-Feldern:
· Rahmen Start (SOF)
· Message Identifier (Arbitration Field)
· Kontrollfeld
· Steuerbits (Daten Field)
· CRC-Feld
· Quittungs-Feld (ACK Field)
· RahmenEnde (EOF)
(Engels, 2000, S. 64-66)
Die Folgende Abbildung zeigt die Data Frame im Standard- und
Extended-Format.
Abbildung 5: Data Frame im
Standard- und Extended-Format(VECTOR INFORMATIK GMBH, 2019)
Der hier für den Datenaustausch verwendete
CAN-Bus-Controller ist das Modul MCP2515. Da dieses Modul über eine
SPI-Schnittstelle gesteuert wird, ist zunächst eine grundlegende
Einführung bezüglichdieser erforderlich.
2.2.2.1 SPI Schnittstelle
DasSerial Peripheral Interface, abgekürzt SPI,
wurde im Jahr 1987 von der Firma Motorola entwickelt und verfügt über
drei Leitungen für eine serielle synchrone Datenübertragung zwischen
verschieden ICs.
(Serial Peripheral Interface - Mikrocontroller.net, 2019)
Es handelt sich um ein Master-Slave-Zugriffsverfahren,was
bedeutet, dass es einen Master, also Befehlenden, gibt (hier den Raspberry Pi),
der zyklisch die Verbindung mit anderen Teilnehmern bzw. Slave, also
Ausführenden,erstellt. Diesgeschieht mit Hilfe einer weiteren
CS - Leitung (Chip Select),die dazu dient, einzelne Teilnehmer zu
adressieren. Durch MOSI- und
MISO-Datenleitungen können Daten in beide Richtungen
gleichzeitig übertragen werden. Die Kommunikation erfolgt in Vollduplex
oder imGegenbetrieb. Der direkte Nachrichtaustausch zwischen einzelnen Slaven
ist nicht möglich. Das folgende Diagramm zeigt eine SPI-Bus-Kommunikation
mit zwei Slaves. Der Slave kann ein beliebiges Bauteil mit SPI Schnittstelle
sein.
(Kofler, Kühnast, & Scherbeck, 2018)
Abbildung 6: SPI-Bus mit einem
Master und zwei Slaven(Hochschule München, FK 04, Prof. Jürgen Plate,
2017).
SCLK: Serial Clock
MOSI: Master Out Slave In
MISO: Master In Slave Out
CS/SS: Chip Select/Slave Select
2.2.2.2 MCP-2515
1
2
13
12
3
5
11
8
9
10
4c
6
7
Abbildung7: Der MCP2515
CAN-Controller mit TJA1050 CAN-Transceiver(42project, 2019).
1:INT (Interrupt)
2: SCK (Serial Clock)
3: MOSI (Master Output Slave Input) SPI-Schnittstelle
4: MISO (Master Input slave Output)
5: CS (Chip Select)
6: GND (Ground)
7: VCC
8:MCP2515 Controller
9: TJA1050 CAN Transceiver
10: 8MHz Crystal
11: Jumper für120 Ohm Abschlusswiderstand
12: CAN High
13: CAN Low
Der MCP2515 (mit TJA1050 Transceiver)ist ein CAN-Bus-Modulmit
SPI-Schnittstellen. Dieser Baustein besteht aus einem CAN Controller(MCP2515)
und einemTransceiver (TJA 1050). Die Aufgabe der CAN Controllerbesteht
darin,das CAN-Protokoll zu implementieren, indem er dafür sorgt, dass
Daten rechtzeitig gesendet bzw. empfangen werden.Daten können mit einer
Bitrate von biszu1Mbits/s übertragen werden. DerTransceiver dagegen
wandelt das Signal von Steuergerät (Hier der Raspberry Pi) in die
Datenbusleitungen und empfängt die Daten von Slaven und wandelt sie
für den CAN-Controller um.(Wiesinger, 2018)
2.2.3 UART-Bus
Die UART-Schnittstelle bietet eine serielle asynchrone
Datenübertragung. Asynchron bedeutet, dass es kein-Tack Signal für
das Senden bzw. den Empfang einer Nachricht gibt. Dieses Bussystem dient zur
Kommunikation mit der RS232- und Rs485-Schnittstelle und benutzt für die
Kommunikation zwei Leitungen TxD (Transceiver Data) und RXD (Receiver Data).Die
UART-Schnittstelle istaktuell wegen ihres einfachen Aufbausund
ihrerZuverlässigkeitder Standard serieller Schnittstellen an PCs und
Mikrocontrollers.Damit der Datenaustausch erfolgreich funktioniert, ist es
erforderlich, dass Sender und Empfänger die gleiche
Übertragungsgeschwindigkeit (Baudrate)aufweisen.Der Aufbau einer Nachricht
mit der UART-Schnittstelle besteht aus bis zu 11 Bits. Die Nachricht beginnt
mit einem Startbit (dieser wird mit 0, Dominat Bit,gekennzeichnet), danach
folgen fünf bis max. acht Datenbits und sie endet mit einem Stoppbit, das
immer eine logische Eins erhält. Diese Start- und Stoppbits am Anfang und
Ende der Nachricht bilden dasKennzeichen für die Synchronisation
derDatenübertragung bei dem Universal Asynchronous Receiver
Transceiver.Damit Fehler erkannt werden, kann nach den Datenbits ein
Parität-bit gesendet werden(Schnell & Wiedemann, 2018).
Die folgende Abbildung zeigt einenausführlichen Aufbau
eines UART Frame.
Abbildung 8: UART Frame
(buyzero, 2019)
2.2.3.1 RS232-Schnittstelle
Die RS232-Schnittstelle, auch V.24- oder COM-Schnittstelle,
wurde 1960 entwickelt und definiert den Standard für die serielle
Datenübertragung(KUNBUS industrial communication, 2019).
Diesephysikalische Schnittstelle wurde zu Beginn für die Telekommunikation
und die industrielle Kommunikation entwickelt. Durchihre einfache
Implementation und Zuverlässigkeitwird die RS232-Schnittstellefür
nahezu jede PC-Technik verwendet. (RS-232 - Die serielle Schnittstelle ,
2019)
2.2.3.2 USS-Protokoll
Die Universelle Serielle Schnittstelle,abgekürzt
USS,definiert das Zugriffsverfahren nach dem Master-slave-Prinzip für eine
serielle Kommunikation(SIEMENS AG, 2015).Dieses Zugriffsverfahren ist einfach
implementierbar und erlaubt für die Kommunikationmaximal 32 Teilnehmer,
ein Master(Single Master System) und 31 Slaves. Diese Anzahl von Teilnehmern
variiert mit der Kabellänge und Übertragungsrate. Je kleinerder
Leitungslänge ist, umso weniger Teilnehmer können an den Bus
angeschlossen werden (siehe Tabelle3).
Tabelle 3: Leitungslänge in
Abhängigkeit von der Anzahl an Teilnehmern und der Übertragungsrate
(SIEMENS AG, 2015).
Die Kommunikation mit diesem Protokoll erfolgt im
Halbduplex-Betrieb,weswegen ein Slave die Sendeinitiative nicht
eigenständig tätigen kann.
2.2.4Halbduplex-Betrieb
Abbildung 9: Halbduplex-Betrieb
(Elektronik Kompendium, 2019)
In der Kommunikationstechnik wird alsHalbduplexeine
Datenübertragungstechnik definiert,bei derDaten abwechseln bzw. nicht
gleichzeitig in den beiden Richtungenfließen (Elektronik Kompendium,
2019).
Der Vorteil dieser Datenübertragung besteht in der hohen
Datenübertragungsrate und dem geringen Einsatz von Kabeln.
2.2.5Vollduplex-Betrieb
Der Vollduplex-Betrieb ist ein Übertragungsverfahren,
indem Daten gleichzeitig
in beide Richtungen übertragen werden können. Ein
Beispiel für einensolchen wäre die Kommunikation mit einer
SPI-Schnittstelle (Hennekeuser, 2018).
Abbildung 10: Vollduplex
Betrieb(Hennekeuser, 2018)
3.Analyse
Bevor die eigentlichen Bauarbeiten starten, trifft sich
zunächst der Bauherr mit dem Architekten, um solche Aspekte zu
klären, wie z.B. das genaue Aussehen des Hauses. Diese Information setzt
der Architekt in einem Bauplan um. Eine solche Vorgehensweise existiert auch
bei der Software-Entwicklung. Die Realisierung jeder Aufgabe in der
Software-Entwicklung beginnt stets mit einer Analysephase, in der die
Anforderungen und Rahmenbedingungen des Kunden definiert werden sollten,
Lastenheft.
(Kecher, Alexander, & Ralf Hoffmann-Elbern, S. 17-18)
3.1Anforderungen
Ein Lastenheft beschreibt nach der DIN 69905 "Die Gesamtheit
der Forderung an die Lieferung und Leistungen eines Auftragnehmers".
Die Anforderungeninnerhalb dieser Bachelorarbeitsind
folgende:
· Die Steuerung von Fahrzyklen sollte auf einer
grafischen Oberfläche erfolgen.
· Der Raspberry Pi wird als Steuergerät
verwendet.
· Das User Interface soll das Logo der HTW-Berlin
enthalten.
· Der Benutzer muss sich vor der Nutzung der
Softwareeinloggen.
· Ein Auswahlmenü für die Fahrzyklen muss
implementiert werden.
· Die Datenvolumen bei den Fahrzyklen müssen
ermitteln werden.
· Auf dem User Interface sollendie folgenden Messwerte
angezeigt werden: Ankerstrom, Erregerstrom, Ankerspannung, Ist-Moment,
Motorstrom, Motormoment.
· Die Kommunikation zwischen der Raspberry Pi und dem
Motor soll mit Hilfe des MCP2515 CAN-Bus-Moduls und der RS232-Schnittstelle
erfolgen.
· Die Fahrzyklen sollten aus einem USB-Speicher
ausgelesen bzw. aufgerufen werden.
Die Unified Modeling Language (UML) ist definiert als eine
Modellierungssprache zur besseren Visualisierung komplexer Software. Der Zweck
dieser Sprache ist es, das Verhalten des Softwaresystems und das
Verständnis der Anforderungen zu untersuchen.
Die folgende Abbildung zeigt in grafischer Form die
verschiedenen Komponenten und Anforderungen der hier verwendeten grafischen
Benutzeroberfläche.
3.2 UML Diagramm
Abbildung 11: UML
Diagramm
4. Konzept
In diesem Kapitel wird die Idee des für diese
Bachelorarbeit zu erreichendem Ziel beschrieben, nämlich die Struktur und
Gestaltung der grafischen Benutzeroberfläche.
4.1
Umfeldanalyse
Vor der Herstellung der ersten Prototypen müssen
zunächst alle Rahmenbedingungen der Software analysiert und Informationen
über den späteren Umfang der Software und des Benutzers gesammelt und
präsentiert werden.
Der Umfang unserer Mensch-Maschine-Schnittstelle ist die
elektrische Labormaschine der HTW Berlin und beschäftigt sich mit dem
Thema Kommunikation mit CAN- und UART-Bussen zur Durchführung von
Fahrzyklen auf einem Prüfstand. Diese Software richtet sich daher an alle
Studierenden der Elektrotechnik Studiengang oder andere Personen, die sich mit
dem Thema Elektromaschinen beschäftigen.
4.2
Der Erste Prototyp
Da der Umfang der Software in der elektrischen Labormaschine
der HTW Berlin begrenzt ist, ist eine Registrierung erforderlich, um vollen
Zugriff auf die Software zu haben. Aus diesem Grund beginnt die erste Seite
unserer GUI mit einer Seite des Verbindungssystems. Darüber hinaus sind
einige Tasten und Anzeigeelemente (z. B. ein Zeigerinstrument) erforderlich, um
Messwerte auszugeben und Daten über Bussysteme zu senden. Für den
Entwurf unseres ersten Prototyps wurden Skizzen auf Papier und Kugelschreiber
angefertigt. Abbildung 12 zeigt die Skizze der Software aus erster Hand.
Seite 1
Seite 2
Abbildung 12: Erste Handskizze der Software.
4.3 Design
Die Wahrnehmung der Menschen hat einen sehr starken Einfluss
auf das Aussehen und/oder die Struktur einer grafischen
Benutzeroberfläche. So muss der Benutzer beispielsweise durch die Struktur
der Software navigieren können und nicht lange suchen müssen an
welcher Stelle er welche Anwendung vornehmen kann. Aus diesem Grund besteht die
Homepage der Software Prüfstand Synchronmaschine an der
HTW-Berlin'aus zwei verschiedenen Frames, nämlichein
Anzeigeelementzur Visualisierung der empfangenenDaten und ein
BedienelementzurEinstellung des Bussystems und zur Steuerung des
Motorprüfstands. Die Farbauswahl (Grün und Weiß) für die
Realisierung der HMI wurde ausgewählt, da auch auf dem Logo der Hochschule
für Technik und Wirtschaft Berlin die gleichen Farbenabgebildet sind.Die
Abbildung 13 zeigt das Ausgewählte Design für den Entwurf der GUI.
Diese enthält die WichtigenElementen, um die Funktionalität der
Software optimal zu unterstützen.
Startseite Anmelde- System
Prüfstand Synchronmaschine
Abbildung 13: Ausgewählte
Design für die Realisierung der Software
5.Realisierung der
Benutzeroberfläche
In diesem Kapitel geht es um den Entwurf Einer graphischen
Schnittstelle auf der Raspberry Pi 3 Model B.dazu wird vorher gezeigt, wie der
Raspberry Pizum ersten Mal gestartetwird und danach wie Widgets mit
Tkinter-Tool erstellt werden.
5.1 Vorbereitung
5.1.1 Installation des
Betriebssystems
Beim Kauf der Raspberry Pi 3 Model B wird dieses ohne
Betriebssystem geliefert. Bevor die Benutzeroberfläche realisiert wird,
muss ein Betriebssystem auf dem Raspberry Pi installiert werden. Es existiert
eine große Anzahl anmeist auf Linux basierenden Betriebssystemen, die
für den Raspberry Pi geeignet sind. Im Folgenden werden einige dieser
aufgezeigt:
· Raspbian: Diese Distribution wird am
häufigsten auf dem Raspberry Pi installiert. Dieser erhält die
zusätzlichen Pakete für den Raspberry Pi und bietet einen grafischen
Desktop, der die Bedienung erleichtert.
· Ubuntu: Dieses Betriebssystem ist
kompatibel für die Raspberry Pi Modelle A und B ab der Version 2 und kann
nicht auf den Zero-Modellen der Raspberry Pi installiert werden.
· Windows IOT: Das
Microsoft-Betriebssystem kann auch auf dem Raspberry Pi installiert werden.
Diesesbringt jedoch viele Einschränkungen und ist wie die Ubuntu-Version
für die Modelle A und B der Raspberry Pi erst ab der Version 2
installierbar.
· Lakka, RecalboxOS, Retropie: Diese
drei Distributionen können den Raspberry Pi in eine Retro-Spielkonsole
umzuwandeln, wozu ein Monitor und ein USB-Gamecontroller gebraucht werden.
· LibreELEC, OpenELEC, Rasplex: Soll der
Raspberry Pi in ein
Multimedia-Center verwandelt werden, ist eine der oben
gelisteten Distribution erforderlich.
(Kofler, Kühnast, & Scherbeck, 2018, S. 34)
5.1.1.1 NOOBS Installation
New Out Of Box Sotware,abgekürzt NOOBS, ist ein
Installationsassistent, der von der Raspberry Pi Foundation entwickelt wurde.
DieserhilftLinux-Anfängern, die Installation von Betriebssystemen zu
vereinfachen.
Die Installation von NOOBS erfolgt auf der SD-Karte und
erfordert mindestens 8GB freien Speicherplatz.Vor der Installation wird
empfohlen, die SD-Karte mit einem geeigneten Formatierungsprogramm wie dem
SD-Formatter zu formatieren.Unter Windows und Mac Betriebssystem kann
der SD-Formatter kostenlos auf derfolgendenSeite herunterladen werden
https://www.sdcard.org/downloads/formatter/
.
(Kofler, Kühnast, & Scherbeck, 2018, S. 35-36)
Abbildung 14:Das SD-Formatter
Programm unter Windows(technik-tipps-und-tricks, 2017)
Nach der Formatierung kann nun mit einem Notebook oder PC die
Installationsdateien kostenlos als Zip-Datei auf der folgenden Webseite
herunterladen und auf die SD-Karte geschrieben werden.
https://www.raspberrypi.org/downloads/
Wenn der Kopiervorgang abgeschlossen ist, wird die SD-Karte in
den Raspberry Pi eingelegt. Der Raspberry Pi wird über ein HDMI-Kabel mit
einem Monitor verbunden, darüber können eine Tastatur, eine Maus und
eventuell ein LAN-Kabel für den Zugang zum Internet mit dem Gerät
verbunden werden.
Erst wenn alle Kabel angeschlossen sind, kann der Raspberry Pi
an die Stromversorgung angeschlossen werden. Wenige Sekunden später
erscheint der NOOBS-Installationsassistent (siehe Abbildung 15), in dem die
Sprache und das Layout der Tastatur geändert und ein Betriebssystem
ausgewählt werden können.
Für die Realisierung der Benutzeroberfläche wird im
Rahmen dieser Bachelorarbeit das Raspbian-Betriebssystem installiert.
(Kofler, Kühnast, & Scherbeck, 2018, S. 35-39)
Abbildung 15: NOOBS
Installationsassistent(Amazon, 2019)
5.1.2 Installation der
Module
5.1.2.1 Python IDE
Als Programmiersprache für die Programmierung der
Benutzeroberfläche wird die Python Version 3.6 inklusiv Tkinter Toolkit
verwendet. Sollte Python noch nicht auf dem PC installiertsein, kann es je nach
Betriebssystem unter der offiziellen Python-Seiteinstalliertwerden
https://www.python.org/.Bei der
Installation desRaspbian-Betriebssystems auf der Raspberry Pi werden auch die
Python 2 und 3 als Default Versioninstalliert. Es ist zu beachten, dass das
Ausführen einem geschriebene mit Python 3Code nicht mit der Python Version
2 kompatibel ist.Unter demfolgenden Link werden die wesentlichenUnterschiede
zwischen beide Versionen aufgelistet:
https://wiki.python.org/moin/Python2orPython3.
Bei der Installation auf der Raspberry Pi 3 des
Raspbian-Betriebssystems,kann die Python IDEVersion 3auf dem Terminalmit der
APT(Advanced Packaging Tool)installiertwerden. Dies geschieht mit der folgenden
Eingabe:
pi@raspberrypi:~ $ sudo apt update
pi@raspberrypi:~ $ sudo apt upgrade
pi@raspberrypi:~ $ sudo apt-get install python3
|
5.1.2.2 Pyserial
Damit der Raspberry Pi über die Serielle Schnittstelle
kommuniziert bzw. Daten mit dem Motorprüfstand austauscht, soll auf
diesemdasPyserial Modulinstalliertwerden.Dieses Modul stellt die Serial
Bibliothek für die serielle Kommunikation bereit.Durch den PypiPackage
(Python Package Index)können die Python Module leicht auf dem
Raspiinstalliert werden.
Packages für den Python3 Modul werden mit dem folgenden
Befehl installiert:
pi@raspberrypi:~ $ sudo apt-get install python3-pip
Oder für den Python2 Modul
pi@raspberrypi:~ $ sudo apt-get install python-pip
Nun kannje nach Python-Versiondasentsprechende Pyserial Modul
installiert werden. Der folgende Befehl zeigt, wie dasPyserial für Python
3 auf dem Raspberry Pi 3installiert wird.
pi@raspberrypi:~ $ python -m pip3 install pyserial
5.1.2.3 Pillow
Pillow ist eine Bibliothek für die Bildbearbeitung, wobei
es sich um eine Python Imaging Library kurz PILbzw. eine zweite Art
davonhandelt. Bevor diesesPython Modul auf dem Raspberry Piinstalliert
werden,ist zubeachten, dass das PIL Modul noch nicht installiert wurde. Die
Installation von Pillow auf dem Raspigeschieht wie folgt:
pi@raspberrypi:~ $ sudo pip3 install pillow
5.1.2.4 Webbrowser
DasWebbrowser Modul wird in dieser Arbeit benutzt, um esdem
Nutzer zu ermöglichen,einen Link zu der Python-IDE zu erhalten. Die
Installation dieses Moduls auf der Raspberry Pi geschieht mit dem folgenden
Befehl auf das Terminal:
pi@raspberrypi:~ $ sudo pip3 install webbrowser
5.1.2.5CSV
CSV steht für Comma Separated Values und ist schon
in der Python Version mitinstalliert. Dieses Modul dient zum Schreiben bzw.
Lesen von Dateien mit CSV-Format. Es ist hilfreich für den Datenimport
bzw. -export in der Form eines CSV-Formats.
5.1.2.6RPi.GPIO
Der Raspberry Pi bietet die Möglichkeit, über seine
GPIOs mit der Außenwelt zu kommunizieren. Somit werden die GPIOs
geschaltet, um die Eingänge aufzeichnen zu können. Das RPI.GPIO-Modul
hilft hier dabei, das Relais zu schalten, wenn der Betrieb aktiviert ist.Der
folgende Befehl zeigt, wie das RPi.GPIO-Modul auf dem Raspberry Pi installiert
wird:
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install python3-rpi.gpio
5.1.2.7Threading
Das Python-Threading-Modul ist eine gute Sache, wenn man auf der
Raspberry Pi Parallel arbeiten möchte. Es wird verwendet, um mehrere
Aufgaben eines Programms gleichzeitig auszuführen und erfordert
Multicore-Prozessoren. Mit diesem Modul wird hier das gleichzeitige Senden und
Empfangen von Daten über CAN- und UART-Busse ermöglicht.
5.2 Tkinter
Es existierenverschiedene Python-Modul für die
Realisierung von grafischenBenutzeroberflächen.Beispielesind etwa PyQt,
PyGTk, wxPython, Tkinter. In dieser Bachelorarbeit liegt der Fokus auf der
Tkinter Softwarebibliothek,da hiermit einfach und schnell eine GUI erstellt
werden kann. Diese Bibliothek ist auf dem Raspberry Pi werkseitig schon
installiert. Tkinter steht für Tk Interface, während Tk ein
GUI-Toolkit Bibliothek für die Programmiersprache Python ist.
(Kofler, Kühnast, & Scherbeck, 2018, S. 734)
5.2.1 Widgets Entwurf
Der GUI-Toolkit Tk verfügt über verschiedene
Widgets, die man in fast alle Benutzeroberfläche finden kann. Es handelt
sich also um: Label, Button, Canvas, Frames, Checkbuttons, Radiobuttons, Entry,
Textfelder, Dialoge, Menüs, Schieberegler. In diesem Kapitel wird gezeigt
wie Widgets mit dem Tkinter Toolkit erzeugt werden. Die Abbildung 16 stellt die
für die Realisierung der Prüfstand-Seite Verwendete Widgets
dar.
2
5
3
1
4
Abbildung 16: Die Verschiedene
Widgets der Prüfstand Synchronmaschine Seite
1. Label
2. Buttons
3. Canvas
4. Menü
5. Text-Box
5.2.1.1 Label
Labels werden benutzt, um Texte und Bilder darzustellen,jedoch
ermöglichen sie keine Interaktion mit dem Nutzer. Label sind in Tkinter
sehr einfach zu erzeugen. Sie werden in dieser Bachelorarbeit benutzt, um zum
Beispiel den Titel einer Seite darzustellen.
Da Labels in einem Tkinter-Fenster erzeugt werden, wird zuerst
gezeigt wie die verschiedenen Fenster/Seite, die unsere Benutzeroberfläche
enthält, mit Python Programmiert werden (siehe Abbildung 17).
importtkinter astk #import von
Tkinter Modul
# Initialisierung der klasse Startseite
classStartSeite(tk.Frame):
# create StartPage
def __init__(self, master): # Definition der
Konstruktormethode
pass
# Initialisierung der klasse Login Seite
classLoginSeite(tk.Frame):
# create StartPage
def __init__(self, master): # Definition der
Konstruktormethode
pass
# Initialisierung der klasse Prüfstand
classPrüfstand(tk.Frame):
# create StartPage
def __init__(self, master): # Definition der
Konstruktormethode
pass
#Start des Programms
root = tk.Tk()#erzeugt das tkinter-wurzelobjekt
tk.frames = {}
# Instanzieren der Seiten
StartSeite = StartSeite(root)
LonginSeite = LoginSeite(root)
Prüfstand = Prüfstand(root)
Graphen_Ansicht = Graphen_Ansicht(root)
StartSeite.pn = 0
LonginSeite.pn = 1
Prüfstand.pn = 2
Graphen_Ansicht.pn = 3
# Zusammenfassen zu Frame-Container Tk.frames
for F in {StartSeite,
LonginSeite, Prüfstand, Graphen_Ansicht}:
tk.frames[F.pn] = F
# Festlegung der Anzuzeigenden Seite
def show_frame(p):
frame = tk.frames[p]
frame.tkraise()
show_frame(StartSeite.pn)
root.mainloop()
Abbildung 17:
Fenster-/Seitenerstellung der grafischen Oberfläche mit Tkinter.
Zu Beginn des Python-Codeswird das Tkinter-Modul importiert
und dann das Tkinter-Root-Objekt erstellt. Um dieses Fenster aktiv zu halten,
muss am Ende des Codes die Schleife der Hauptklasse Tkinter verwendet werden.
Nun können die unterschiedlichen Seiten der Software
(StartSeite, LoginSeite,
Prüfstand)
instanziieren und am Ende die verschiedene Klasse definiert
werden. Eine Klasse in Python wird am Anfang mit dem Namen
class, gefolgt vom Namen der Klasse und am Ende mit
Klammern definiert.
Nachdem das Tkinter-Fenster erzeugt wurde, können nun die
verschiedenen Widgets in der entsprechenden Seite erstellt werden. Die
Erstellung von Widgets erfolgt in der createwidgets()-Methode
der jeweiligen Klasse. Methoden werden in der objektorientierten Programmierung
wie Funktionen definiert; d. h. mit dem Wort def' gefolgt von
dem Namen der Methode. Die folgende Abbildung zeigt wie Label mit Tkinter
erzeugt werden.
Abbildung 18: Label
inTkinter
Der obige Code erzeugt ein Label in Tkinter mit dem Text
Prüfstand Synchronmaschine. Dieses Label wird als Titel der
Prüfstandseite (Seite 3 der grafischen Benutzeroberfläche)
verwendet.
Ohne die Anwendung der grid()-Methode
würde den Label mit dem Text Prüfstand Synchronmaschine
nicht anzeigen.bg ist die Abkürzung für Background
und fg für foreground.#41B77f ist eine
andere Arte im Hexadezimale Form für die Eingabe in Tkinter einer
Farbe.
5.2.1.2 Button
Ein Button ist eine Tkinter-Klasse, die eine interaktive
Kommunikation mit dem Nutzer vereinfacht. Jeder Button führt zu einer
bestimmten Aktion. Für die Realisation der GUI werden verschiedene Buttons
erzeugt.So wird z.B. ein Button benötigt, um sich anzumelden bzw. damit
der Nutzer die Möglichkeit hat, das Programm zu beenden. Ferner ist ein
Button für den Sprung zur nächsten Seiteerforderlich und ein
weiterer, um den Prüfstand ein- bzw. auszuschalten. Der Folgende Code
zeigt, wie der Button<anmelden> mit dem Tkinter-Modul erzeugt wird:
Import tkinter as tk
root = tk.Tk()
Login_Button = tk.Button(root, text="anmelden",
font=("Helvetica",12,"bold"),
width=46,
fg="#000000",bg="white")
Login_Button.pack()
root.mainloop()
Abbildung 19: Programmausschnitt
für das Erzeugen des "Anmelden" Buttons
5.2.1.3 Canvas
Canvas dient dazu, grafische Elemente zu erzeugen. Somit wird
in diesem Bereich das Zeigerinstrumentfür die Drehzahlanzeige realisiert.
Das Canvas enthält unter Tkinter unterschiedliche Artengrafischer
Elemente,wie z.B. Linie, Rechteckt, Kreis. Das Canvas-Element wird im Tkinter
wie folgt erstellt:
Import tkinter as tk
root = tk.Tk() #erzeugt das Tkinter Fenster
Canvas_breite = 350 #die Breite der Canvas-Element wird
gesetzt
Canvas_Höhe= 250 #die Höhe der Canvas-Element wird
gesetzt
Canvas = tk.Canvas(root, width= Canvas_breite
,height=Canvas_Höhe,
background="#41B77f",highlightthickness=0)
Canvas.grid()
root.mainloop()
Abbildung 20: Programmausschnitt
für das Erzeugen eines Canvas in einem Tkinter-Fenster.
· Der Zeigerinstrument
Canvas Breite
5
6
4
7
3
È5=È1*5
8
sin(è5)
2
Canvas Höhe
È1
9
1
sin(è1)
0
10
Max. Teilstrich
cos(è5) =0
Min. Teilstrich
Cos(è1)
Canvas Fenster
Abbildung 21: Vorgehensweise
für Das Zeichnen der Teilstriche der Zeigerinstrument
Die Skalenlinien des Zeigerinstruments werden durch das
Erstellen von Linien mit unterschiedlichen Koordinaten erzeugt, die einen
Kreisbogen bilden.Die Methode Create_linie der Klasse Canvas nimmt als
Argument 4 Parameter. Das bedeutet, dass die Linien jeweils vom Punkt
Innenradius für Teilstriche(siehe Abb.22) mit Koordinaten
(Xi,Yi) zum PunktAußenradius für
Teilstrichemit Koordinaten (Xj,Yj) verlaufen
wird.i und j gehören zum Intervall [0, 10] mit 0 der minimalen Anzahl
von Teilstrichen und 10 der maximalen Anzahl von Teilstrichen.
Ändert sich der Winkel Theta, dann ändert sich auch
sein Cosinus und Sinus.
Für eine maximale Anzahl von Teilstrichen (N=10) wird der
maximale Winkel auf 1800, für eine minimale Anzahl von
Teilstrichen(N=0) wirdes auf 00gesetzt.
Anz. Von Teilstriche
|
Nmin=0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
Nmax=10
|
Winkel in Grad 0
|
0
|
18
|
36
|
54
|
72
|
90
|
108
|
126
|
144
|
162
|
180
|
Tabelle 4: Berechnung der
Teilstriche Winkel der Zeigerinstrument
Der Winkel allerTeilstriche wirdanhand der Dreisatz-Regel
berechnet.
Also: Nmax - Nmin
èmax- èmin
N=1 è1
Innenradius für Teilstriche
Außenradius für Teilstriche
Canvas_breite / 2
X
175
40
175
80
175 Pixel
250 Pixel
(0,0)
Y
350 Pixel
Abbildung 22: Zeigerinstrument
für die Drehzahlanzeige in Canvas
Der folgende Python-code erläutert, wie die obenstehende
Abbildung mit dem Modul Tkinterrealisiert wird.
Import math
From math import pi
Import tkinter as tk
Width=350 #Breite der Canvas-Fenster
Height=250 #Tiefe der Canvas-Fenster
Theta_min=0 # minimal winkel
Theta_max=180 # maximale winkel
Teilstrisch_min=0 # minimale Anzahl von Teilstrische
Teilstrisch_max=10 # maximale Anzahl von Teilstrische
Delta_Theta= Theta_max - Theta_min
Delta_N = Teilstrisch_max - Teilstrisch_min
root = tk.Tk()
canvas= tk.Canvas(root, width=width,height=height,
bg="#41B77f",
bd=3, highlightthickness=0)
canvas.grid()
Gauge=canvas.create_oval(5 , 5, width, 350, fill="#111111",
width=2,
outline="#EEEEEE",
activedash=7,
dash=(12,1,1,1)
)
red_line=canvas.create_Line(80,175,40,175,fill="red",width=8)
for i in range(11):
Teilschritte=canvas.create_line((width/2)-160*math.cos(((delta_Theta
/ Delta_N)*i)*pi/180),
(width/2)-160*math.sin(((delta_Theta / Delta_N)*i)*pi/180),
(width/2)-180*math.cos(((delta_Theta / Delta_N)*i)*pi/180),
(width/2)-180*math.sin(((delta_Theta /
Delta_N)*i)*pi/180),
fill="yellow",width=4)
text=self.canvas.create_text(((width/2)-150*math.cos(((delta_Theta /
Delta_N)*i)*pi/180),
(width/2)-150*math.sin(((delta_Theta /Delta_N)*i)*pi/180),
text=i,fill="yellow")
root.mainloop()
Abbildung 23: Programmausschnitt
für die Realisierung der Gauge-meter
5.2.1.4Menü
Ein Menü stellt eine Gruppe von Befehlen dar, die in
verschiedenen Fenstern sortiert sind. Somit besteht ein schneller Zugriff auf
die an den häufigsten verwendeten Anwendungen. Es wird im User
Interface-Menü erzeugt, um zum Beispiel die Farbe des Interface zu
ändern, das Programm zu schließen oder die Hilfethemen anzuzeigen.
Menüs werden in Tkinter wie folgt erzeugt:
Abbildung 24: Erstellen eines
Menüs in Tkinter
5.2.1.5 Text-Box
Um mehrzeiligen Text im Tkinter anzuzeigen, wird das
Textbox-Widget verwendet.Das Textfenster stellt die Funktion eines Editors zur
Verfügung. Demnach können mit der Klasse Text() von
Tkinter, Zeilen kopiert, markiert, eingefügt undgelöscht werden.
Deshalb werden in der hier vorliegendengrafischen Benutzeroberfläche
Text-Widgets erstellt, um die von CAN bzw. UART Bus gesendeten Daten
anzuzeigen.
Die Abbildung 25 erläutert wie Textbox-Widget mit Tkinter
erstellt wird.
Abbildung 25: Erstellen eines
Textfeldes in Tkinter
Es ist hier zu beachten,dass dieses Textfeld mit Hilfe des
Scrollbar-Widgets entlang der X-Achse oder Y-Achse gescrollt werden kann. Der
oben beschriebene Python-Code gibt die folgende Anzeige zurück.
X-Achse scrollbar Widget
Textfeld X-Achse Scrollbar Widget
Abbildung 26: Anzeigefenster auf
der grafischen Oberfläche
6.Kommunikation mit der
Hardware
6.1 CAN-Bus-Kommunikation
6.1.1 Der MCP-2515
Das CAN-BUS-Modul,das in dieser Bachelorarbeitfür die
Kommunikation mit dem Motorprüfstand verwendet wird, ist der MCP-2515. Ein
detaillierter Überblick über das Modulistim Punkt
2.2.2.2)zu entnehmen. Dieses besteht aus einem MCP2515 CAN
Controller und einem TJA1050 CAN Transceiver. DiesenbeidenChips enthalten auf
die Platine eine gemeinsame Spannungsversorgung(Raspberry Pi Foundation, 2019).
Gemeinsame Spannungsversorgung
Abbildung 27: Schaltplan einem
MCP2515 CAN Modul(Raspberry Pi Foundation, 2019)
Da der MCP2515 Controller mit einem Eingangsspannung von 3,3 V
versorgt werden soll und der TJA1050 CAN Transceiver mit einer
Versorgungsspannung von 5V, ist es erforderlich,den Schaltplan des CAN-Moduls
zu modifizieren,sodass die beiden Chips eine getrennte Spannungsversorgung
haben. Die Versorgungspannung beider Chips mit 5V würde funktionieren,
jedoch wäre dann ein Pegelwandeln für den SPI erforderlich. Die
GPIO-Pins von Raspberry Pi sind NICHT 5V tolerant(vimtut0r,
2019).5V tolerant bedeutet,dass ein 5V-Baustein einen 3V-Baustein ansteuern
kann, was hier jedoch nicht der Fall ist.
Abbildung 28:
ModifizierterSchaltplan der CAN BUS Modul (Raspberry Pi Foundation,
2019).
Der Raspberry Pi kann nun mit dem MCP 2515 CAN-Modul
angeschlossen werden. Die Schaltung gestaltet sich wie folgt:
5V Versorgungsspannung für der TJA1050 CAN Transceiver
MCP2515
CAN Controller
Raspberry Pi Modell 3B
Abbildung 29: Schaltung von
MCP2515 mit dem Raspi(Raspberry Pi Foundation, 2019)
Der gesamte Schaltplan mit Pin-Belegungeiner CAN-Bus
Kommunikation mit dem MCP-2515stellt sich folgendermaßen dar:
Pin Nummer(Kein GPIO Nummer)
TJA1050
Abbildung 30: Gesamter
Schaltplanmit der Pin-Belegung einer CAN-BUS Kommunikation (Hackster.io, an
Avnet Community, 2019)
Anmerkung:CS, MISO, MOSI, CLK zeigt die
Belegung der Pins der SPI-Schnittstelle.Zudem wäre die Aktivierung von
diesen auf dem Raspberry Pi für die Kommunikation mit dem CAN Bus
notwendig.
6.1.2Vorbereitung
6.1.2.1 SPI Konfiguration
Es gibt zwei Möglichkeiten,die SPI-Schnittstelle auf dem
Raspberry Pi zu aktivieren. Die erste Möglichkeit wäre es, den
folgendenBefehl über das Terminal einzugeben. Hierzu muss zunächst
das Linux-System aktiviert und geöffnet werden,danachdas Fenster für
die Konfiguration des Interfaces wie folgendes:
Achtung: Der Text, der hinter dem Hash-Zeichen (#)
steht,istausschließlich als Kommentar zu betrachten.
pi@raspberrypi:~ $ sudo apt-get update #Aktualisierung von
Linux-System
pi@raspberrypi:~ $ sudo apt-get upgrade#sucht nach neue
Version der Linux-sys
pi@raspberrypi:~ $ Sudo raspi-config #öffnen das
KonfigurationFenster
Dann ist das ProgrammEinstellungen zu
starten. Es ist dasInterfacing Options' Menü unter den
erweiterten Möglichkeiten zu wählen(siehe 1 unter Abb.31). Danach
wird das unter Menü Serial Peripheral Interface(SPI) selektiert, sodass
nun dieSPI-Schnittstelleaktiviert bzw. deaktiviert werden kann.
Schließich wird die Einstellung mit einem <ok>
bestätigt.(FrAn, 2019)
1
2
4
3
1
Abbildung 31: Die verschiedenen
Schritte für die Aktivierung der SPI auf dem Raspberry Pi
Die andere Möglichkeit,um das SPI zu aktivieren, erfolgt
mit der manuellen Einrichtung. Es wird dafür die
/boot/config.txt Datei bearbeitet. Diese Datei ist mit einem
Editor zu öffnet, indem der folgende Befehl in das Linux-Kommando
eingegeben wird:
pi@raspberrypi:~$ sudo nano /boot/config.txt
Danach wird die folgende Zeile eingegeben:
dtparam=spi=on // dieser Befehl aktiviert das Serial
Peripheral Interface (SPI)
6.1.2.2 CAN-Bus (MCP2515)
Konfiguration
Für die Konfiguration der MCP2515 auf dem Raspberry Pi
muss bekannt sein, welche Kernel-Version auf der Raspberry Pi installiert ist.
Dies lässt sich mit dem Befehl uname -aherausfinden
pi@raspberrypi:~$ uname -a
Die Konfiguration der MCP2515 CAN Bus erfolgt dann beim
Ergänzen einiger Overlay-Leitungen in der
/boot/config.txt Datei.
#CAN-BUS Overlay
dtoverlay=mcp2515-can0-overlay,oscillator=8000000,interrupt=25
dtoverlay=spi0-hw-cs
|
Die obenstehende Eingabe ist abder4.4.x + Kernel
Version gültig.
Bei früheren Kernel-Versionen,d. h. für Versionen
älter als Version 4.4.x, muss die folgende Zeile eingefügt werden:
dtoverlay=
mcp2515-can0-overlay,oscillator=8000000,interupt=25
dtoverlay=spi-bcm2835-overlay
|
Der für diese Bachelorarbeit vorliegende MCP2515
Controller hat eine Taktfrequenz von 8MHz,weshalb auf dem Parameter oscillator
der Wert 8000000 steht. Der Zahl 25 bedeutet, dass das
Interrupt Pin der CAN Controller auf der GPIO.25 (BCM-Nummerierungsschema) der
Raspberry Pi angeschlossen wird. Der GPIO.25 entspricht der Pin 22.
Tabelle 5: GPIO-Belegung der
Raspberry Pi Model 3B(element14, 2019)
Nach dem Neustart der Raspberry Pi durch den sudo
rebootBefehlkann nun überprüft werden, ob der MCP2515 CAN
Bus gut konfiguriert wurde. Dafür muss das folgende Kommando eingegeben
werden.
Der SPI-Schnittstelle wurde erkannt.
spi0.0 spi0.1
pi@raspberrypi:~ $ ls /sys/bus/spi/devices/spi0.0
driver modalias net of_node subsystem uevent
pi@raspberrypi:~ $ ls /sys/bus/spi/devices/spi0.0/net
can0
Der CAN-Schnittstelle wurde erkannt.
Damit die Can0-Schnittstelle beim Systemstart automatisch mit
einer Bitrate von 500 kbit/s aufgerufen wird, muss die
etc/network/interfaces Datei bearbeitet werden. Dies erfolgt
wie folgt:
pi@raspberrypi:~$ sudo nano /etc/network/interfaces
In der Datei werden die folgenden Zeilen eingefügt und
diese wird mit STRG + Xund danach mit Y gespeichert:
GNU 2.7.4
# interfaces (5) file used by ifup(8) and ifdown(8)
Auto can0
Iface can0 can static
bitrate 500000
Die Verbindungsstatus wird mit dem ifconfig
Kommando auf dem Terminal angezeigt.
pi@raspberrypi:~$ ifconfig
Der Befehl ip kann detaillierte Informationen über den
Netzwerkstatus geben, wenn der folgende Befehl verwendet wird:
pi@raspberrypi:~$sudo ip -d -s link show can0
-d und -sbeziehensich
jeweils auf Detail und Statistik
6.1.2.3 Installation von
CAN-Utils
Mit diesem Tool kann einfach und schnell überprüft
werden, ob CAN-Nachrichten gesendet bzw. empfangen werden können. Die
folgende Zeile zeigt, wie es installiert wird:
pi@raspberrypi:~$sudo apt-get install can-utils
Der Test für den Datenaustausch über den CAN-Bus
wird mit einem PCAN-USB-Adapter durchgeführt.
6.1.2.4PCAN-USB-Adapter
Konfiguration
USB Anschluss
9-polige D-Sub-Steckverbindung
Abbildung 32: CAN-Interface
für USB (PEAK-System Technik GmbH, 2019)
Der PCAN-USB-Adapter wurde von derPEAK-System Technik GmbH
entwickelt und dient zu der einfachen Anbindung an ein CAN-Netzwerk. Dieser
Adapter wird über eine 9-polige D-Sub-Steckverbindung für die
Kommunikation über CAN-Bus angeschlossen. Die maximale
Übertragungsrate wird bei 1Mbit/s erreicht und bestimmt somit die maximale
Kabellänge für eine reibungslose Kommunikation.
Die folgende Tabelle zeigt die mögliche maximale
CAN-Kabellänge in Abhängigkeitzu der Übertragungsrate.
Übertragungsrate
|
Buslänge
|
1 Mbit/s
|
40m
|
500 kbit/s
|
110m
|
250 kbit/s
|
240 m
|
125 kbit/s
|
500 m
|
50 kbit/s
|
1,3 km
|
20 kbit/s
|
3,3 km
|
10 kbit/s
|
6,6 km
|
5 kbit/s
|
13,0 km
|
Tabelle 6: mögliche
maximale Kabellänge in Abhängigkeit zu der Übertragungsrate
für das PCAN USB-Adapter(PEAK-System Technik GmbH, 2019)
Der High-Speed-Can-Bus (ISO 11898-2) hat keine interne
Terminierung und muss an beiden Enden mit einem 120-Ohm-Widerstand terminiert
sein (PEAK-System Technik GmbH, 2019). Der PCAN-USB-Adapterkann einen
Standard-Frame sowie einen Extended-Frame mit bis zu 1Mbit/s übertragen.
Der Anschlussbelegung des PCAN-Bus-Adaptersgestaltet
sichfolgendermaßen:
Pin 2
Pin 7
Abbildung 33: Anschlussbelegung
der PCAN-Bus-Adapter (PEAK-System Technik GmbH, 2019).
Durch die PCAN-view-Software kann der Datentransfer über
den CAN-Bus betrachtet und aufgezeichnet werden. Dessen Installation erfolgt
über denfolgenden Link
https://www.peak-system.com/PCAN-USB.199.0.html
Abbildung 34: Ansicht von
CAN-Transfer über die PCAN-view-Software(Warszawa, 2019)
6.1.3 Senden und
EmpfangderCAN-Message
Ø Senden Und Empfang von Daten im
TerminalFenster
Nach der Konfiguration des CAN-Moduls MCP2515 kann auf das
Terminal Fenster schnell überprüfen werden ob das Modul Daten sendet
bzw. empfängt. Vor dem Senden der Daten wird zunächst die
Can0-Schnittstelle gestartet. Dies wird im folgenden Beispiel mit einer Bitrate
von 500kbits/s aktiviert.
pi@raspberrypi:~$sudo ip link set can0 up type bitrate
500000
Das stoppen des Can0-Interface geschieht wie folgt:
pi@raspberrypi:~$sudo ip link set can0 down
Nachdem das Can0-Interface gestartet wurde,können nun
Daten gesendet bzw. empfangen werden.
Senden einer 8-Bits-Can-Nachricht mit dem Identifier 123Hex:
pi@raspberrypi:~$cansend can0 123#FF
Daten Bits
Identifier
Can interface
Es handelt sich hier um einem Standard-Frame mit dem Maximum
11 Bits ((3FF) hex) Identifier. Für den Extended-Frame
wäreMaximum 29 BitsIdentifiers((1FFFFFFF) hex)zugelassen.
Um Daten empfangen zu können,wird der folgende Befehl
genutzt:
pi@raspberrypi:~$candump can0
Ø Senden und Empfang von Daten im Tkinter
Das Senden und Empfangen von CAN-Nachrichten im Python-Code
beginnt mit dem Import des Can-Moduls und danach der Aktivierung der
Schnittstelle (Abbildung 35).
Abbildung 35: Aktivierung des
Can0 Interfaces in Python.
CAN-Nachrichten können nun mit dem folgenden Python-Code
periodisch gesendet oder empfangen werden.
Abbildung 36: Periodische Senden
Von CAN-Message in Python.
Abbildung 37: Empfang von
CAN-Message in Python
6.2 DieUART-Kommunikation
In diesem Kapitel wird gezeigt, wie der SIMOREG Gerät
parametrisiert werden soll, damit Daten über eine serielle Buskopplung
(RS232 Schnittstelle) mit Hilfe des USS-Protokollsfehlerfrei ausgetauscht
werden können.
6.2.1 Vorbereitung
6.2.1.1 RS232 Schnittstelle
Abbildung 37: USB zu RS232 Serial
DB9 Adapter Kabel (Best Buy Co, Inc., 2019)
Abbildung 37: Sub-D 9 Pin RS232
Stecker/Buchse Kabel (partsdata, 2019)
Die RS232 ist eine physikalische Schnittstelle, die im Rahmen
dieser Bachelorarbeit die Verbindung zwischen dem Raspberry Pi und dem SIMOREG
herstellen wird.Der Raspberry Pi verfügt bei der Lieferung über keine
Sub-D9-Stecker und braucht deswegen für die Verbindung mit dem RS232 einen
Adapter (Abbildung 38), der an den USB Port der Raspberry Pi angeschlossen
wird.
6.2.1.2 Aufbau der
Telegrammrahmen
Mit Hilfe eines USS-Protokollskönnen Daten über eine
serielle Schnittstelle gesendet bzw. empfangenwerden. Der Telegrammrahmen eines
USS-Protokollsbeginnt stets mit einem Startbit, gefolgt von der Länge des
Telegramms, danach kommen die Adresse Byte, der Nutzdatenblock und am Ende der
Block Check Charakter. Das folgende Diagramm zeigt den detaillierten Aufbau
eines Telegramms mit einem USS-Protokoll.
Nutzzeichen
STX LGE ADR PKW Bereich PZD Bereich BCC
02Hex 1 Byte 1 Byte
LGE=n+2{1=LGE=254}
PZD1
|
PZD2
|
|
PZDn
|
PKE
|
IND
|
PWE
|
16 Bits (1 Wort)
Ak
|
SP
|
PNU
|
HB
|
LB
|
Steuerwort
|
Hauptsollwert
|
Sollwert/
Zusatz-Steuerwort
|
4Bits 1Bit11Bits
Abbildung 38: Telegrammaufbau
eines USS-Protokolls
HB: High Byte
LB: Low Byte
6.2.1.3Parametrierung des USS-Protokolls für das SIMOREG
6RA7025
1
2
Abbildung 39: Der SIMOREG
DC-MASTER 6RA7025
1 -> Parametrierungseinrichtung
2 -> X300 Stecker mit RS232/ RS485 Norm.
Die Stromrichter SIMOREG 6RA70 sind kompakte, volldigitale
Einheiten für den Drehstromanschluss und werden für die Anker- und
Feldversorgung von Gleichstromantrieben mit variabler Drehzahl eingesetzt.
Dieses Gerät enthält an Ihre Tür eine Bedient- und
Parametrierungseinheit für die Steuerung, Regelung bzw. Überwahrung
Gleichstromantrieben. Auf der Parametrierungseinrichtung befindet sich
zusätzlich der Stecker X300 mit einer USS-Schnittstelle nach RS232- bzw.
RS485-Norm für die Kommunikation mit Master-Geräten. Der Stromrichter
SIMOREG 6RA7025 hat eine Bemessungsspannung von 400 Volt Drehstrom und erlaubt
eine maximale Feldstrom von 10 A und Ankerstrom von 50 A. Die folgende
Abbildung zeigt eine Ausführliche Technische Daten der SIMOREG DC-MASTER
6RA7025.
Abbildung 40: Technische Daten
der SIMOREG DC-MASTER 6RA7025
Die USS-Protokollkonfiguration für den SIMOREG DC-MASTER
6RA7025 ist mit den Parameternummern P780 bis P803 konfiguriert. Um sie
einzurichten, muss eine Zugangsberechtigung eingeholt werden. Dies kann durch
Einstellen des PKW-Elements der Parameternummer P051 auf 40 (Tabelle 7)
erreicht werden. Alle verwendeten Parameter können mit der Parameternummer
P051 angezeigt werden. Dazu muss der Parameterwert auf 3 gesetzt werden
(Tabelle 8).
PNU: 051
|
Typ: O2
|
Index: keine
|
Beschreibung: Schlüsselparameter
|
Parameterwert (PWE):
|
PNU: 052
|
Typ: O2
|
Index: keine
|
Beschreibung: Auswahl der Anzuzeigenden Parameter
|
Parameterwert(PWE):
0 nur Parameter anzeigen, deren Werte von der
Werkseinstellung abweichen
1 nur Parameter für Einfachanwendungen anzeigen
3 alle verwendeten Parameter anzeigen
|
Tabelle 7: Einstellung der
Schlüsselparameter
Tabelle 8: Auswahl der Anzuzeigenden Parameter des SIMOREG
Geräts
Ø Auswahl des USS-Protokolls für das SIMOREG
Gerät
Auf dem SIMOREG-Gerät sind viele Schnittstellenprotokolle
implementiert. In dieser Arbeit wird die Auswahl auf die USS-1 gerichtet. Um
ihn zu aktivieren,muss für die Parameternummer P780 den Parameterwert 2
ausgewählt werden (Tabelle 9).
PNU: 780
|
Typ: O2
|
Index: keine
|
Beschreibung: Protokollanwahl für die
Grundgeräteschnittstelle G-SST1
|
Parameterwert(PWE):
0Keine Funktion
2 USS-Protokoll
8 für werksinterne Zwecke
9für werksinterne Testzwecke
|
Tabelle 9: Auswahl des
USS-Protokolls für das SIMOREG Gerät
Ø Eingabe von Verwendete Prozessdaten
Die Anzahl der Prozessdaten werden auf den Parameter P781
eingestellt. Dieser Parameternummer kann bis zu 16 Prozessdaten aufnehmen.Die
empfangenen PZD-Elemente werden dann später an Konnektoren K2001 bis K2016
zur Verfügung stehen und an die Parameters r810.1 bis r810.16 angezeigt.Es
ist zu beachten, dass diese Parameternummer nur dann von Bedeutung ist, wenn
das PWE von P780 auf 2 (USS-Protokoll) oder 8 (für interne Zwecke)
eingestellt wurde. In dieser Arbeit werden 8 Prozessdaten verwendet, weshalb
das PWE von P781 auf 8 eingestellt werden muss.
Ø Eingabe der Quelle für die Sendedaten
für G-SST1
Nach Eingabe der Anzahl der Prozessdaten ist es nun möglich,
die PZD-Elemente auszuwählen, die an den USS-Master zurückgegeben
werden.Dazu werden über die Parameternummer P784 Konnektoren
ausgewählt, die als Sendedaten über die USS 1-Schnittstelle an den
USS-Master übertragen werden. Die folgenden Messwerte werden für
diesen Auftrag angezeigt:
Ankerstrom -> Konnektor K0117
Erregerstrom -> Konnektor K265
Ankerspannung -> Konnektor K0287
Ist-Drehzahl -> Konnektor K0179
Die Tabelle 10 zeigt wie der Parameternummer P784 mit den
Ausgewählten Konnektoren am SIMOREG Gerät konfiguriert wird.
PNU: 784
|
Typ: L2
|
Index: 16
|
Beschreibung: Quelle für die Sendedaten für G-SST1
|
Parameterwert(PWE):
i001 K0032 (WE)
i002K0167 (WE)
i003 K0265
i004k0033 (WE)
i005 K0117
i006K0142
i007 K0179
i008 K0287
|
Tabelle 10: Eingabe der Quelle
für die Sendedaten über G-SST1
Ø Einstellung der PKW Anzahl
Mit diesem Parameter wird festgelegt, wie viele PKW-Elemente
im PKW-Bereich des Benutzerdatenblocks vorhanden sein sollen. Die Spezifikation
bezieht sich immer inWortlänge auf PKW-Elemente von Parameternummer
P782.Da die Anzahl der PKW für diese Bachelorarbeit nicht relevant ist,
wird ihr PKW-Element auf 4 gesetzt. Idealerweise wäre das Setzen diesem
Wert auf 0.
Ø Baudrate
Die Baudrate ist die Anzahl der in einer Sekunde
übertragenen Daten. Dies hängt von der Länge des für die
Kommunikation verwendeten Kabels ab. Die Auswahl der Baudrate am
SIMOREG-Gerät für die Universalschnittstelle 1 erfolgt im Parameter P
783 (siehe Abbildung 43).
PNU: 783
|
Typ: O2
|
Index: keine
|
Beschreibung: Baudrate für G-SST1
|
Parameterwert(PWE):
1 300 Baud
2600 Baud
3 1200 Baud
4 24000 Baud
5 4800 Baud
6 9600 Baud
7 19200 Baud
8 38400 Baud
9 56700 Baud
11 93750 Baud
13 187500 Baud
|
Abbildung 41: Auswahl der RS232
schnittstelle-Baudrate für das Senden von Telegrammen
Ø Auswahl der Slave Adresse
Die Slave-Adresse (ADR) ist die Adresse, an die das
SIMOREG-Gerät angeschlossen ist. Das USS Protokoll kann bis zu 32
Teilnehmer aufnehmen, also maximale 31 Slaves und 1 Master, Single
Master-System. Das SIMOREG Gerät befindet sich auf die Adresse 2, daher
wird das PKW-Element mit der Parameternummer P786, Konfigurationsparameter
Slave-Adresse, auf 2 gesetzt.
Ø Einstellung der
Telegrammüberwachung
Um die Reaktionszeit auf dem Grundgerät durch den Master überwachen zu
können, muss das maximale Zeitintervall zwischen zwei gültigen
Telegrammen, die über diesen Parameter für das Grundgerät
adressiert werden, eingestellt werden. Die Angabe bezieht sich auf die Einheit
"Sekunden[sec]". Erfolgt keine Überwachung, muss der Parameter auf 0
gesetzt werden.Die Telegrammausfallzeit für das USS1-Protokoll ist auf der
Parameternummer P787 einzustellen.
Ø Parametrierung Freigabe
Bei diesem Parameter wird die ausgewählte Schnittstelle zur
Konfiguration aktiviert. Wenn dieser Parameter nicht konfiguriert ist, wird der
Werkseinstellwert die Zahl 6 auf dem PKW-Element gesetzt. Die Parametereinheit
(PMU) und die universelle serielle Schnittstelle 1 werden dann automatisch
aktiviert. Soll dieser Parameter konfiguriert werden, wird die Parameternummer
P927 verwendet. Für diese Arbeit wird die PKW-Element der Parameter P927
auf 4 eingestellt.
Anmerkung:Ein Parameterwert kann nur über die aktivierten
Schnittstellen geändert werden.
Ø Diagnoseinformation für
G-SST1
Die Diagnose Parameternummer (r789) gibt Informationen
über den Status der Kommunikation mit dem Master-Gerät. Somit kann
z.B. überprüfen werden ob ein Fehler während des
Datentransportsvom Master zum Slaven aufgetreten ist.
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
7.Laborpraktikum
In diesem Teil der Arbeit geht es um die Testphase. Hier wird
überprüft ob der Raspberry Pi Daten über CAN- und UART- Bus
senden und empfangen kann. Die Gesamte Testphase wird im Raum F 318 an der
HTW-Berlin Wilhelminenhofstraße 75A, 12459 Berlin erfolgen(Abbildung
36).
Abbildung 46: Labor Elektrische
Maschine an der HTW-Berlin Wilhelminenhofstraße 75A Gebäude F Raum
328
8
5
7
6
2
4
9
31
1
1.Rechner:Auf diesem Rechner läuft unter
dem Code Composer Studio IDE das Programm für das Senden und Empfangen von
Nachrichten mit dem F28335 Mikrocontroller von Texas Instrument. An diesen
sindder PCAN-USB-Adapter für die Visualisierung von CAN-Transfer und das
USB Kabel für die Stromversorgung der F28335 angeschlossen.
2. Der Raspberry Pi: Der Einplatinencomputer
steht im Zentrum aller Steuerungen und wird mit einem 5-Volt-Ladegerät
versorgt.
3. Der Monitor: Dieser wird mit dem Raspberry
Pi durch ein HDMI-Kabel verbunden.
4. Das 8-Kanal Relais Modul
5.Das MCP2515 Modul
6.Der Transceiver
7.Der F28335 Mikrocontroller
8. Der PCAN-USB-Adapter
9. Das Oszilloskope
Nach Eingabe der für die Konfiguration der CAN- und
UART-Busse notwendigen Parameter und Abschluss der Programmierung der
grafischen Benutzeroberfläche gelangt man in diesem Kapitel zur Testphase.
So wird das Senden und Empfangen von Nachrichten über die
CAN-Bus-Steuerung MCP2515 oder das Senden und Empfangen von Telegrammen
über die RS232-Schnittstelle gesteuert. Die folgende Abbildung zeigt den
Programmablauf der grafischen Benutzeroberfläche für eine
erfolgreiche Kommunikation.
Abbildung 47: Programmablauf
für einen erfolgreichen Daten-Transfer auf das GUI
1. CAN-BUS -Systems Kommunikation
Bevor die Datentransfers über den CAN-Bus zwischen
Raspberry Pi und F28335 Mikrocontroller sowie dieser über den UART-Bus
zwischen Raspi und SIMOREG stattfinden,müssen zuerst alle Komponenten
zusammengeschaltet und an einer Stromquelle versorgt werden. Die folgende
Schaltung zeigt die physikalische Verbindung mit den Komponenten.
Raspberry Pi 3
MCP2562-Transceiver
Relais
Mikrocontroller F28335 des nationalen Instruments
MCP2515 CAN Bus Modul
Abbildung 48: Aufbau der
Schaltung für die CAN-Bus Kommunikation
Beim Starten des Programmsist die Eingabe eines Benutzernamens
und einesPassworts erforderlich. Hierfür werden
derBenutzernamehtw-berlin (klein geschrieben)und das
Passwortsose19verwendet.Mit der korrekten Eingabegelingt der
Login-Prozess und die Weiterleitung zur Prüfstand-Seite(Abbildung
51).Hier finden alle Konfigurationen des Bussystems bzw. das Senden und
Empfangen von Daten statt.
An erster Stelle soll der Prüfstand eingeschaltet werden.
Wird die Taste<Prüfstand einschalten>nicht gedrückt, verbleibt
das Anzeigeelement bei <Prüfstand Aus>.
Beim Einschalten des Prüfstands, schaltet auch
gleichzeitig das 8-Kanal-Relais und die Anzeige <Prüfstand Ein>
leuchtethellgrün.Nun wird die Konfiguration der Bussystem vorgenommen.
Für die Kommunikation mit dem CAN-BUS sollen die
Baudrate, das Sendeintervall und der CAN-Frame-Type ausgewählt werden.
Hierfür wird der Taster <CAN Bus Konfiguration>
gedrückt und auf das geöffnete Fensterdie unterschiedlichen Parameter
gesetzt, mit <OK>wird dies beendet (Abbildung 51).
Nach einer erfolgreichen Konfiguration wird auf der schwarzen
TextBox
Die ausgewählte Konfigurationsparameter angezeigt. Im
vorliegenden Fall wird der CAN-Bus mit einer Baudrate von 500 Kits/s
eingestellt. Ein Extended CAN-Frame wird jede Sekunde über den CAN-Bus
gesendet.
Abbildung 49:
Konfigurationsparameter der CAN-Bus
Die eingestellten Konfigurationsparameter (Baudrate)
können auch durch Eingabe des folgenden Befehls auf dem Terminal
überprüft werden:
pi@raspberrypi:~$sudo ip -detail -statistic link show
Ø Senden eines Extended CAN-Frame
Die zu sendenden Daten sind als CSV-Format in einem USB-Stick
gespeichert und müssen deswegen importiert werden. Der Datenimport auf dem
GUI erfolgt mit der Taste <Datei importieren>. Nach dem Import der Datei
werden auf der TextBox der Pfad der Datei, ihr Inhalt und
ihreGrößeangezeigt (Abbildung 52).
Große der Datei
Pfad der Datei
Inhalt der CSV. Datei
Abbildung 50: TextBox mit
geladenem Track
Der geladene Trackwird nun über den CAN-BUS mit einem
gültige Identifier gesendet (Abbildung 54). Es besteht auch die
Möglichkeit, einzelne Nachrichten über den CAN-Bus zu senden.
Dafür soll der Checkbutton mit dem Label Daten aus der Datei
sendennicht eingekreuzt werden (Abbildung 53).
Abbildung 51: Sendekonfiguration
Fenster für das Senden einzelnerDaten
Abbildung 52: Sendekonfiguration
Ansicht für die Übertragung des geladenen Tracks
Nach Bestätigung des Sendevorgangs wird der geladene Track
mit dem entsprechende Identifier gesendet. Das folgende Bild zeigt das Verhalten einem gesendeten CAN-Framemit einer Bitrate
von 500 Kbits/s.
Abbildung 53: Anzeige des
zyklisch an das Oszilloskop übertragenen CAN-Frames
Auf das Bild kann man direkt erkennen, dass die Kommunikation bei
der CAN Bus im Vollduplex geschieht, d. h. der Sende- und Empfangsprozess
erfolgt gleichzeitig.
Abbildung 56 zeigt, wie die gesendete CAN-Nachricht erfolgreich
vom Mikrocontroller F28335 des nationalen Instruments empfangen wurde. Das
grüne Signal entsprichtdemSignal, das aus dem Pin Rx der MCP2562
Transceiver rauskommt.
Abbildung 54: Empfangene
CAN-Nachricht vomF28335 Mikrocontroller
2. UART-BUS-System Kommunikation
5
1
3
4
6
2
Abbildung 55: Zusammenschaltung
des SIMOREG-Geräts mit dem Raspberry Pi über RS232
-Schnittstelle.
Das obige Bild zeigt die Verbindung des Raspberry Pi (Zahl 5) mit
dem SIMOREG 6RA7025(Zahl 4) über eine RS232-Schnittstelle. Die Zahl 1 im
Bild zeigt den zu steuernden Gleichstrommotor, der vom Umrichter geregelt und
gesteuert wird.Dieser wird dann an der Raspberry Pi mittels eins grauen
RS232-Kabels
Verbindet (zahl3).Die Zahlen 6 und 2 stellen das serielle
USB-zu-RS232 DB9 Adapterkabel und den Monitor dar.
Die grafische Benutzeroberfläche der RS232-Schnittstelle
kann beim Einschalten des Prüfstandes konfiguriert werden. Hierfür
wird es auf die Taste<UART Konfiguration>durchgeführt (Abbildung
58).
Abbildung 56: UART-Konfiguration
auf der grafischen Oberfläche
Nach Bestätigung der Taste <Ok> und Erkennung der
RS232-Schnittstelle zeigt das Widget-Fenster die vorgenommenen Einstellungen an
(Abbildung 59).
Abbildung 57: Anzeige der
Eingestellte Parameter für die Konfiguration der UART-Bus
Nach der Konfiguration der seriellen Schnittstellen kann nun der
Telegrafenrahmen konfiguriert und gesendet werden. Das folgende Bild zeigt das
Telegrammrahmen-Konfigurationsfenster.
Abbildung 58: Telegrammrahmen
Konfiguration.
Achtung!!!Die verschiedenen Einstellungen, die am
SIMOREG-Gerät über die Parametrierungseinheit vorgenommen wurden
(Kapitel 6.2.1.3), müssen mit denen an der grafischen
Benutzeroberfläche übereinstimmen für eine Erfolgreiche Senden
und Empfangen von Daten.
8. Fazit und Ausblick
Im Rahmen dieser Bachelorarbeit ging es um die Programmierung
eines GUI auf einem Einplatinencomputer für die Realisierung von
Fahrzyklen auf einem Motorprüfstand.
Im Laufe der Arbeit wurde belegt, dass der Raspberry Pi 3
Model B mit seinem Quad Core von jeweils 1,2 GHz, multiple GPIO Pins und
USB Anschüsse(4 USB Anschlüsse) der Ideale Mikrocomputer ist für
die Realisierung dieser Arbeit. Für den Datenaustausch zwischen,
einerseits der Raspberry Pi und den F28335 Mikrocontroller des nationalen
Instruments und anderseits zwischen den Raspberry Pi und das SIMOREG
Gerät,wurde die Anwendung UART- und CAN-Bussystemeverwendet. Mit Hilfe Von
Tkinter Toolkit die im Python inklusiv ist, konnte sehr einfach die
Programmierung des User Interfaces erstellt werden. Dieswurde einfach
realisiert, sodass es einen leichten Zugriff auf alle Funktionalität
bietet. Hierzu erhält auch das Interface die wichtigsten Parameter, die
für die Steuerung und Anzeige der Messergebnisse nötig sind.Nach
erfolgreicher Konfiguration von Beiden Bussystemen auf den Raspberry Pi,
konntenzyklischDaten gesendet bzw. empfang werden.
Probleme:
Da der MCP2515 Controller mit einer Eingangsspannung von 3,3 V
versorgt werden soll und der TJA1050 CAN Transceiver mit einer
Versorgungsspannung von 5V, war es notwendig, den Schaltplan des CAN-Moduls zu
modifizieren, sodass die beiden Chips eine getrennte Spannungsversorgung haben.
Für das Senden und Empfangen von Nachrichten über
CAN Bus benötigt der F28335 Mikrocontroller des nationalen Instrumentsein
Transceiver. Dieser wird dazu dienen, das binäre Signale in HIGH und LOW
Pegel umgewandelt werden.
Ausblick:
Für eine bessere Visualisierung von Messergebnissen
könnte auch auf das GUI eine Graphische Widgets erstellt werden. Diese
kann z. B. ein Plot sein. Somit wird ein schneller Fortschritt bei der
Einarbeitung von Daten ermöglicht.
Eine andere Erweiterung wäre auch die Anzeige von
Drehzahl-Istwert der Gleichstrommotor auf dem Zeigerinstrument. Sensoren wie
der Gyroskope könnte auch angewendet werden. Seine Werte werden dann auf
die GPIO-Pins der Raspberry Pi gelesen und angezeigt. Diese Anwendung
könnte einen sehr großen Vorteil bringen, wenn die
Winkelgeschwindigkeit des Motors gemessen werden soll. Mit diesem Verfahren
werden im Auto Navigationsgeräte aufgebaut.
Literaturverzeichnisund
Quellenverzeichnis
Hochschule München, FK 04, Prof. Jürgen Plate. (18. 07
2018). Raspberry Pi: Serielle Schnittstelle. Abgerufen am 01. 70 2019
von www.netzmafia.de:
http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_Serial.html
42project. (21. 07 2019). 42project Elektronik,
Mikrocontroller und Zubehör kaufen. Abgerufen am 21. 07 2019 von
42project.net:
https://42project.net/shop/module/kommunikationsmodule/spi-mcp2515-can-bus-modul-tja1050-transceiver-shield-5v-33v-fuer-arduino-und-pi/
Amazon. (20. 08 2019). Raspberry Pi 16GB Preloaded (NOOBS) SD
Card - Buy Raspberry Pi 16GB Preloaded (NOOBS) SD Card Online at Low Price in
India - Amazon.in. Von www.amazon.in:
https://www.amazon.in/Raspberry-Pi-16GB-Preloaded-NOOBS/dp/B01H5ZNOYG
abgerufen
Best Buy Co, Inc. (01. 10 2019). StarTech USB to RS232 Serial
DB9 Adapter Cable with COM Retention 1 ft | Best Buy Canada. Abgerufen am
01. 10 2019 von www.bestbuy.ca:
https://www.bestbuy.ca/en-ca/product/startech-usb-to-rs232-serial-db9-adapter-cable-with-com-retention-1-ft/12386934
buyzero. (31. 08 2019). Einführung in UART, RS232 und
RS485 - Grundlagen - pi3g. Abgerufen am 31. 08 2019 von buyzero.de:
https://buyzero.de/blogs/news/einfuhrung-in-uart-rs232-und-rs485-grundlagen
CAN-Bus with Raspberry Pi: HowTo/Quickstart MCP2515 Kernel
4.4.x+ - vimtut0r's blog. (kein Datum). Von vimtut0r.com. abgerufen
Elektronik Kompendium. (20. 08 2019). Duplex und Duplexing
(TDD FDD). Abgerufen am 2019. 08 2019 von www.elektronik-kompendium.de:
https://www.elektronik-kompendium.de/sites/kom/0811081.htm
element14. (21. 07 2019). Raspberry Pi 3 Model B GPIO 40 Pin
Block Pinout | element14 | Raspberry Pi 3. Abgerufen am 21. 07 2019 von
www.element14.com:
https://www.element14.com/community/docs/DOC-73950/l/raspberry-pi-3-model-b-gpio-40-pin-block-pinout
Engels, H. (2000). CAN-BUS-Technik einfach,anschaulich und
praxisnah vorgestellt. Franzis.
FrAn. (14. 07 2019). Projekt Raspberry Pi 2 Dashcam.
Abgerufen am 21. 07 2019 von www.fr-an.de:
http://www.fr-an.de/projects/rpidc/display.htm
Gitter, A. H. (20. 12 2018). pi_nerka.pdf. Abgerufen am
20. 08 2019 von web.eah-jena.de:
http://web.eah-jena.de/~gitter/nerka/pi_nerka.pdf
Hackster.io, an Avnet Community. (21. 07 2019). How to
Connect Raspberry Pi to CAN Bus - Hackster.io. Abgerufen am 21. 07 2019
von www.hackster.io:
https://www.hackster.io/youness/how-to-connect-raspberry-pi-to-can-bus-b60235
Hennekeuser, J. (29. 08 2018). 2.1 (10). Abgerufen am
20. 08 2019 von www.hennekeuser.com.
HMS Industrial Networks AB. (21. 07 2019). CAN.
Abgerufen am 21. 07 2019 von www.ixxat.com:
https://www.ixxat.com/de/technologien/feldbus/can
Hochschule München, FK 04, Prof. Jürgen Plate. (11. 11
2017). Raspberry Pi: SPI-Schnittstelle. Abgerufen am 21. 07 2019 von
www.netzmafia.de:
http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_SPI.html
Kecher, C., Alexander, S., & Ralf Hoffmann-Elbern. (kein
Datum). UML 2.5 Das umfassende Handbuch. Rheinwerk Computing.
Klein, B. (3. 09 2019). Numerisches Python: Einführung
in Pandas. Abgerufen am 21. 07 2019 von www.python-kurs.eu:
https://www.python-kurs.eu/pandas.php
Kofler, M., Kühnast, C., & Scherbeck, C. (2018).
Raspberry Pi Das umfassende Handbuch. Bonn, Deutschland: Rheinwerk
Verlag. Abgerufen am 24. 06 2019
KUNBUS industrial communication. (21. 07 2019). RS-232 -
KUNBUS GMBH. Abgerufen am 21. 07 2019 von www.kunbus.de:
https://www.kunbus.de/rs-232.html
ME-Meßsysteme GmbH. (28. 03 2008). canbus.pdf.
Abgerufen am 20. 08 2019 von www.mikrocontroller.net:
https://www.mikrocontroller.net/attachment/6819/canbus.pdf
Microchip Technology Inc. (09. 07 2014). MCP2561/2 Data Sheet
- 20005167c.pdf. Abgerufen am 01. 10 2019 von ww1.microchip.com:
http://ww1.microchip.com/downloads/en/devicedoc/20005167c.pdf
partsdata. (2019. 08 2019). Kabel DSub-9 Stecker-Buchse
PREMIUM | Seriell RS-232 | Seriell parallel GPIB PS/2 | Partsdata.
Abgerufen am 20. 08 2019 von www.partsdata.de:
https://www.partsdata.de/seriell-parallel-gpib-ps2/seriell-rs-232/kabel-dsub-9-stecker-buchse-premium/c2-09hq-01/serielles-kabel-dsub-9-stecker-an-buchse-premium-qualitaet-1m
PEAK-System Technik GmbH. (04. 04 2019). PCAN-USB -
Benutzerhandbuch - PCAN-USB_UserMan_deu.pdf. Abgerufen am 24. 07 2019 von
www.peak-system.com:
https://www.peak-system.com/produktcd/Pdf/Deutsch/PCAN-USB_UserMan_deu.pdf
Pollin Electronic GmbH. (21. 07 2019). Raspberry Pi 3 Model B
online kaufen | Pollin.de. Abgerufen am 21. 07 2019 von www.pollin.de:
https://www.pollin.de/p/raspberry-pi-3-model-b-702850
python software foundation. (05. 06 2019). 9.2. math --
Mathematical functions -- Python 2.7.16 documentation. Abgerufen am 24. 06
2019 von docs.python.org: https://docs.python.org/2/library/math.html
Raspberry Pi Foundation. (21. 07 2019). CAN bus on raspberry
pi with MCP2515 - Raspberry Pi Forums. Abgerufen am 21. 07 2019 von
www.raspberrypi.org:
https://www.raspberrypi.org/forums/viewtopic.php?t=141052
Raspberry Pi Fundation. (24. 06 2019). Abgerufen am 24. 06 2019
von projects.raspberrypi.org:
https://projects.raspberrypi.org/en/projects/lost-in-space
Reichelt Elektronik. (21. 07 2019). RASPBERRY PI 3: Raspberry
Pi 3 B, 4x 1,2 GHz, 1 GB RAM, WLAN, BT bei reichelt elektronik. Abgerufen
am 21. 07 2019 von www.reichelt.de:
https://www.pollin.de/p/raspberry-pi-3-model-b-702850
Robert Bosch GmbH. (21. 07 2019). SafeTRANS Mitglieder -
Robert Bosch GmbH - SafeTRANS News. Abgerufen am 21. 07 2019 von
news.safetrans-de.org:
http://news.safetrans-de.org/ausgabe-2013-02/safetrans-mitglieder-bosch.html
RS-232 - Die serielle Schnittstelle . (20. 08 2019).
Abgerufen am 20. 08 2019 von kompendium.infotip.de:
https://kompendium.infotip.de/rs-232-die-serielle-schnittstelle.html
Schnell, G., & Wiedemann, B. (2018). Bussysteme in der
Automatisierungs- und Prozesstechnik. Wiesbaden, Deutschland: Pringer
Vieweg.
Serial Peripheral Interface - Mikrocontroller.net. (21.
07 2019). Abgerufen am 21. 07 2019 von www.mikrocontroller.net:
https://www.mikrocontroller.net/articles/Serial_Peripheral_Interface
Siemens AG. (20. 01 2015). SIMOREG DC-MASTER -
C98130-A1256-A002-13-0019.pdf. Abgerufen am 01. 10 2019 von
cache.industry.siemens.com:
https://cache.industry.siemens.com/dl/files/212/22220212/att_26312/v1/C98130-A1256-A002-13-0019.pdf
SIEMENS AG. (23. 01 2015). uss_24178253_spez_00.pdf.
Abgerufen am 21. 07 2019 von cache.industry.siemens.com:
https://cache.industry.siemens.com/dl/files/253/24178253/att_101236/v1/uss_24178253_spez_00.pdf
slideplayer.org. (8. 04 2017).
CAN:+Realisierung+bitweiser+Arbitrierung.jpg. Abgerufen am 20. 08 2019
von
https://slideplayer.org/slide/2845494/10/images/9/CAN%3A+Realisierung+bitweiser+Arbitrierung.jpg:
https://slideplayer.org/slide/2845494/10/images/9/CAN%3A+Realisierung+bitweiser+Arbitrierung.jpg
SUNFOUNDER. (25. 05 2017). 8 Channel 5V Relay Module -
Wiki. Abgerufen am 01. 10 2019 von wiki.sunfounder.cc:
http://wiki.sunfounder.cc/index.php?title=8_Channel_5V_Relay_Module
technik-tipps-und-tricks. (23. 07 2017).
SD_Card_Formatter_001.png. Von www.technik-tipps-und-tricks.de:
http://www.technik-tipps-und-tricks.de/wp-content/uploads/2016/06/SD_Card_Formatter_001.png
abgerufen
Texas Instruments. (01. 10 2019). TMDSCNCD28335 TMS320F28335
controlCARD | TI.com. Abgerufen am 01. 10 2019 von www.ti.com:
http://www.ti.com/tool/TMDSCNCD28335#technicaldocuments
VECTOR INFORMATIK GMBH. (21. 07 2019). CAN: Remote
Frame. Abgerufen am 21. 07 2019 von elearning.vector.com:
https://elearning.vector.com/mod/page/view.php?id=48
vimtut0r. (20. 08 2019). CAN-Bus with Raspberry Pi:
HowTo/Quickstart MCP2515 Kernel 4.4.x+ - vimtut0r's blog. Abgerufen am 20.
08 2019 von vimtut0r.com:
https://vimtut0r.com/2017/01/17/can-bus-with-raspberry-pi-howtoquickstart-mcp2515-kernel-4-4-x/
Vogel Communications Group GmbH & Co. KG. (21. 07 2019).
Was ist eine GUI? Abgerufen am 21. 07 2019 von www.dev-insider.de:
https://www.dev-insider.de/was-ist-eine-gui-a-651868/
Warszawa, j. (20. 08 2019). PCAN-View - Software for
Displaying CAN and CAN FD Messages. Abgerufen am 20. 08 2019 von
www.janbit.com.pl:
http://www.janbit.com.pl/en/canbus-software/306-pcan-view.html
Wiesinger, J. (13. 03 2018). Datenübertragung beim
CAN-Bus. Abgerufen am 21. 07 2019 von www.kfztech.de:
https://www.kfztech.de/kfztechnik/elo/can/datenuebertragung.htm
Anhang
A1. 8-Kanal RelayModul
Schaltung
Abbildung 59: 8-Kanal Relay
Modul Schaltung (SUNFOUNDER, 2017)
A2. Das F28335 Modul
Abbildung 60: Das F28335
Modul
A3. F28335 Pins Belegung
Abbildung 61: F28335 Pins
Belegung (Texas Instruments, 2019)
A4.Schaltung eines
MCP2562-Transceivers mit dem Mikrocontroller
Abbildung 62: Schaltung eines
MCP2562-Transceivers mit dem Mikrocontroller(Microchip Technology Inc., 2014,
S. 6)
A5. Der MCP2562
Transceiver
Abbildung 63: Der MCP2562
Transceiver mit Sub-D 9 Buchse Ausgang
A6. Funktionsplan einem USS
Schnittstelle auf dem SIMOREG DC Master
Abbildung 64: Funktionsplan
einem USS Schnittstelle auf dem SIMOREG DC Master(Siemens AG, 2015, S.
260)
A7. Die Wichtigste
Parameterliste für die Konfiguration der Seriellen Schnittstellen (USS1)
des SIMOREG DC-Master
Abbildung 65: Parameterliste
(P780 bis P783) für die Konfiguration der Seriellen Schnittstellen (USS1)
des SIMOREG DC-Master(Siemens AG, 2015, S. 548)
Abbildung 66: Wichtigste
Parameterliste (P784 bis P788) für die Konfiguration der Seriellen
Schnittstellen (USS1) des SIMOREG DC-Master(Siemens AG, 2015, S. 549)
A8. Parameter für die
Diagnoseinformation der Seriellen Schnittstellen (USS1) des SIMOREG
DC-Master
Abbildung 67: Parameter für
die Diagnoseinformation der Seriellen Schnittstellen (USS1) des SIMOREG
DC-Master(Siemens AG, 2015, S. 550)
A9. Funktionsplan eines
Hochlaufgebers
Auf dieser Funktionsplan steht der Parameter P634 zum Steuern der
Motordrehzahl zur Verfügung.
Abbildung 68: Funktionsplan
eines Hochlaufgebers(Siemens AG, 2015, S. 245)
A10. Funktionsplan des
Feldstromregelung für das SIMOREG-DC-Gerät
Das Blatt enthält der Konnektor K0265 für die
Anzeige auf die graphische Oberfläche der Feldstromistwert.
Abbildung 69: Funktionsplan des
Feldstromregelung für das SIMOREG-DC-Gerät(Siemens AG, 2015, S.
257)
A11. Funktionsplan der
EMK-Regelung für das SIMOREG-DC Gerät
Der Ankerstromistwert steht in das Konnektor K0287 fest und
wird daher verwendet für die Konfiguration der Empfangenen Daten auf das
Master-Gerät.
Abbildung 70: Funktionsplan der
EMK-Regelung für das SIMOREG-DC Gerät(Siemens AG, 2015, S.
256)
A12. Funktionsplan der
Drehzahlregelung für das SIMOREG-DC Gerät
Auf dieser Funktionsplan kann die Drehzahlistwert auf den
Konnektor K0179
Abbildung 71: Funktionsplan der
Drehzahlregelung für das SIMOREG-DC Gerät(Siemens AG, 2015, S.
250)
Empfangt werden.
A13. Funktionsplan der
Ankerstromregelung für das SIMOREG-DC Gerät
Die Wichtigste Konnektoren für die Anzeige auf das GUI
der Ankerstromistwert und Momentenistwert sind jeweils auf K0117 und K0142 zu
finden.
Abbildung 72: Funktionsplan der
Ankerstromregelung für das SIMOREG-DC Gerät(Siemens AG, 2015, S.
254)
2. CD-Verzeichnis
Die Vorliegende Bachelorarbeit dient dazu eine Steuerung mit
graphischer Oberfläche auf einem Raspberry Pi zur Durchführung von
Fahrzyklen an einem Motorprüfstand zu entwickeln.
Die beiliegende CD erhält:
· Die Vorliegende Bachelorarbeit in Pfd. Format,
· und den kompletten Python-Code
Um das Programm im Laufen zum Bringen ist es erforderlich die
Python IDE zu installieren und die benötigen Modulen für die
Realisation der GUI.
Eidesstattliche
Erklärung
ich erkläre hiermit, dass
· ich die vorliegende wissenschaftliche Arbeit
selbständig und ohne unerlaubte Hilfe angefertigt habe,
· ich andere als die angegebenen Quellen und Hilfsmittel
nicht benutzt habe,
· ich die den benutzten Quellen wörtlich oder
inhaltlich entnommenen Stellen als solche kenntlich gemacht habe,
· die Arbeit in gleicher oder ähnlicher Form noch
keiner anderen Prüfbehörde vorgelegen hat.
Ort und Datum Unterschrift
|