Ziel dieser Arbeit ist es, eine Benutzeroberfläche mithilfe eines Mikrocomputers (Raspberry Pi 3 Modell B) zur Bussteuerung eines Motorenprüfstandes zu erstellen. Python 3.6 wird als Programmiersprache für die Benutzeroberfläche verwendet.
Für die Umsetzung wird diese in zwei große Kapitel geteilt: einerseits die "Realisierung der GUI" und andererseits die "Kommunikation mit der externen Welt" (Hardware) beziehungsweise mit dem Prüfstand durch die Anwendung von zwei Bussystemen, und zwar dem CAN- und dem UART-Bus.
Die grafische Benutzeroberfläche wird auf der Raspberry Pi mit der Python Programmiersprache realisiert. Hierfür wird das Tkinter Modul für das GUI-Toolkit TK benutzt. Andere wichtige Module wie Python-Can, Pyserial, Re, CSV und Threading werden auch für die Umsetzung dieser Aufgabe verwendet. Die Messdatenerfassung und der Datenaustausch gelingen erst, wenn vorher die Grundlagen des seriellen Bussystems erlä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 diesem auf dem Raspberry Pi erforderlich ist. Des Weiteren wird der Telegrammaufbau erklärt; insbesondere geht es um das Auftrags- und Antworttelegramm eines USS Protokolls für eine fehlerfreie Kommunikation mit dem SIMOREG DC-Master.
Inhaltsverzeichnis
Abbildungsverzeichnis
Tabelle
Abkürzungsverzeichnis
Begriffserklärung
1. Einführung
1.1. Motivation
1.2. Ziel der Arbeit
1.3. Aufbau der Arbeit
2. Technische Grundlage
2.1 Der Raspberry Pi
2.2 Bussystem
2.2.1 Allgemein
2.2.2 CAN-Bus
2.2.2.1 SPI Schnittstelle
2.2.2.2 MCP-2515
2.2.3 UART-Bus
2.2.3.1 RS232-Schnittstelle
2.2.3.2 USS-Protokoll
2.2.4 Halbduplex-Betrieb
2.2.5 Vollduplex-Betrieb
3. Analyse
3.1 Anforderungen
3.2 UML Diagramm
4. Konzept
4.1 Umfeldanalyse
4.2 Der Erste Prototyp
4.3 Design
5. Realisierung der Benutzeroberfläche
5.1 Vorbereitung
5.1.1 Installation des Betriebssystems
5.1.1.1 NOOBS Installation
5.1.2 Installation der Module
5.1.2.1 Python IDE
5.1.2.2 Pyserial
5.1.2.3 Pillow
5.1.2.4 Webbrowser
5.1.2.5 CSV
5.1.2.6 RPi.GPIO
5.1.2.7 Threading
5.2 Tkinter
5.2.1 Widgets Entwurf
5.2.1.1 Label
5.2.1.2 Button
5.2.1.3 Canvas
5.2.1.4 Menü
5.2.1.5 Text-Box
6. Kommunikation mit der Hardware
6.1 CAN-Bus-Kommunikation
6.1.1 Der MCP-2515
6.1.2 Vorbereitung
6.1.2.1 SPI Konfiguration
6.1.2.2 CAN-Bus (MCP2515) Konfiguration
6.1.2.3 Installation von CAN-Utils
6.1.2.4 PCAN-USB-Adapter Konfiguration
6.1.3 Senden und Empfang der CAN-Message
6.2 Die UART-Kommunikation
6.2.1 Vorbereitung
6.2.1.1 RS232 Schnittstelle
6.2.1.2 Aufbau der Telegrammrahmen
6.2.1.3 Parametrierung des USS-Protokolls für das SIMOREG 6RA7025
6.2.1.4 Konfiguration der RS232-Schnittstelle auf dem Raspberry Pi
6.2.2 Auftragstelegramm
6.2.3 Antworttelegramm
7. Laborpraktikum
8. Fazit und Ausblick
Literaturverzeichnis und Quellenverzeichnis
Anhang
A1. 8-Kanal Relay Modul Schaltung
A2. Das F28335 Modul
A3. F28335 Pins Belegung
A4. Schaltung eines MCP2562-Transceivers mit dem Mikrocontroller
A5. Der MCP2562 Transceiver
A6. Funktionsplan einem USS Schnittstelle auf dem SIMOREG DC Master
A7. Die Wichtigste Parameterliste für die Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master
A8. Parameter für die Diagnoseinformation der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master
A9. Funktionsplan eines Hochlaufgebers
A10. Funktionsplan des Feldstromregelung für das SIMOREG-DC-Gerät
A11. Funktionsplan der EMK-Regelung für das SIMOREG-DC Gerät
2. CD-Verzeichnis
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 eines Einplatinencomputers (Raspberry Pi 3B) für die Durchführung von Fahrzyklen an einem Prüfstand entwickelt.
Für die Umsetzung dieser Aufgabe wird diese in zwei große Kapitel geteilt: Einerseits die ‚Realisierung der GUI´ und anderseits die ‚Kommunikation mit der externen Welt (Hardware)´ bzw. mit dem Prüfstand durch die Anwendung von zwei Bussystemen, und zwar dem CAN- und dem UART-Bus.
Die grafische Benutzeroberfläche wird auf der Raspberry Pi mit der Python Programmiersprache realisiert. Hierfür wird das Tkinter Modul für das GUI-Toolkit TK benutzt. Andere wichtige Module wie Python-Can, Pyserial, Re, CSV und Threading werden auch für die Umsetzung dieser Aufgabe verwendet.
Die Messdatenerfassung und der Datenaustausch gelingen erst, wenn vorher die Grundlagen des seriellen Bussystems erlä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 diesem auf dem Raspberry Pi erforderlich ist. Des Weiteren wird der Telegrammaufbau erklärt; insbesondere geht es um das Auftrags- und Antworttelegramm eines USS 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 Stelle bedanke 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.
Hinweis: Die CD ist nicht im Lieferumfang enthalten
Abbildungsverzeichnis
Abbildung 1: Raspberry Pi 3 Model B(Pollin Electronic GmbH, 2019)
Abbildung 2: CAN Bus Kommunikation im Kfz Bosch-Technologien (Robert Bosch GmbH, 2019).
Abbildung 3: Bitweise Arbitrierung in der CAN Bus Kommunikation (slideplayer.org, 2017).
Abbildung 4: Beispiel eines CAN-BUS-Netzwerks (HMS Industrial Networks AB, 2019).
Abbildung 5: Data Frame im Standard- und Extended-Format(VECTOR INFORMATIK GMBH, 2019)
Abbildung 6: SPI-Bus mit einem Master und zwei Slaven(Hochschule München, FK 04, Prof. Jürgen Plate, 2017).
Abbildung 7: Der MCP2515 CAN-Controller mit TJA1050 CAN-Transceiver(42project, 2019).
Abbildung 8: UART Frame (buyzero, 2019)
Abbildung 9: Halbduplex-Betrieb (Elektronik Kompendium, 2019)
Abbildung 10: Vollduplex Betrieb (Hennekeuser, 2018)
Abbildung 11: UML Diagramm
Abbildung 12: Erste Handskizze der Software.
Abbildung 13: Ausgewählte Design für die Realisierung der Software
Abbildung 14:Das SD-Formatter Programm unter Windows(technik-tipps-und-tricks, 2017)
Abbildung 15: NOOBS Installationsassistent(Amazon, 2019)
Abbildung 16: Die Verschiedene Widgets der Prüfstand Synchronmaschine Seite
Abbildung 17: Fenster-/Seitenerstellung der grafischen Oberfläche mit Tkinter.
Abbildung 18: Label in Tkinter
Abbildung 19: Programmausschnitt für das Erzeugen des "Anmelden" Buttons
Abbildung 20: Programmausschnitt für das Erzeugen eines Canvas in einem Tkinter-Fenster.
Abbildung 21: Vorgehensweise für Das Zeichnen der Teilstriche der Zeigerinstrument
Abbildung 22: Zeigerinstrument für die Drehzahlanzeige in Canvas
Abbildung 23: Programmausschnitt für die Realisierung der Gauge-meter
Abbildung 24: Erstellen eines Menüs in Tkinter
Abbildung 25: Erstellen eines Textfeldes in Tkinter
Abbildung 26: Anzeigefenster auf der grafischen Oberfläche
Abbildung 27: Schaltplan einem MCP2515 CAN Modul(Raspberry Pi Foundation, 2019)
Abbildung 28: Modifizierter Schaltplan der CAN BUS Modul (Raspberry Pi Foundation, 2019).
Abbildung 29: Schaltung von MCP2515 mit dem Raspi (Raspberry Pi Foundation, 2019)
Abbildung 30: Gesamter Schaltplan mit der Pin-Belegung einer CAN-BUS Kommunikation (Hackster.io, an Avnet Community, 2019)
Abbildung 31: Die verschiedenen Schritte für die Aktivierung der SPI auf dem Raspberry Pi
Abbildung 32: CAN-Interface für USB (PEAK-System Technik GmbH, 2019)
Abbildung 33: Anschlussbelegung der PCAN-Bus-Adapter (PEAK-System Technik GmbH, 2019).
Abbildung 34: Ansicht von CAN-Transfer über die PCAN-view-Software(Warszawa, 2019)
Abbildung 35: Aktivierung des Can0 Interfaces in Python.
Abbildung 36: Periodische Senden Von CAN-Message in Python.
Abbildung 37: Empfang von CAN-Message in Python
Abbildung 38: USB zu RS232 Serial DB9 Adapter Kabel (Best Buy Co, Inc., 2019)
Abbildung 39: Sub-D 9 Pin RS232 Stecker/Buchse Kabel (partsdata, 2019)
Abbildung 40: Telegrammaufbau eines USS-Protokolls
Abbildung 41: Der SIMOREG DC-MASTER 6RA7025
Abbildung 42: Technische Daten der SIMOREG DC-MASTER 6RA7025
Abbildung 43: Auswahl der RS232 schnittstelle-Baudrate für das Senden von Telegrammen
Abbildung 45: Programmabschnitt für das Senden von Telegrammen über die RS232 Schnittstelle
Abbildung 44: Aktivierung der Serielle Schnittstelle in Tkinter.
Abbildung 46:Programmabschnitt zum Empfangen von Telegrammen über die RS232-Schnittstelle
Abbildung 47: zyklische senden und empfang von daten über die RS232-Schnittstelle
Abbildung 48: Labor Elektrische Maschine an der HTW-Berlin Wilhelminenhofstraße 75A Gebäude F Raum 328
Abbildung 49: Programmablauf für einen erfolgreichen Daten-Transfer auf das GUI
Abbildung 50: Aufbau der Schaltung für die CAN-Bus Kommunikation
Abbildung 51: Konfigurationsparameter der CAN-Bus
Abbildung 52: TextBox mit geladenem Track
Abbildung 53: Sendekonfiguration Fenster für das Senden einzelner Daten
Abbildung 54: Sendekonfiguration Ansicht für die Übertragung des geladenen Tracks
Abbildung 55: Anzeige des zyklisch an das Oszilloskop übertragenen CAN-Frames
Abbildung 56: Empfangene CAN-Nachricht vom F28335 Mikrocontroller
Abbildung 57: Zusammenschaltung des SIMOREG-Geräts mit dem Raspberry Pi über RS232 -Schnittstelle.
Abbildung 59: Anzeige der Eingestellte Parameter für die Konfiguration der UART-Bus
Abbildung 58: UART-Konfiguration auf der grafischen Oberfläche
Abbildung 60: Telegrammrahmen Konfiguration.
Abbildung 61: 8-Kanal Relay Modul Schaltung (SUNFOUNDER, 2017)
Abbildung 62: Das F28335 Modul
Abbildung 63: F28335 Pins Belegung (Texas Instruments, 2019)
Abbildung 64: Schaltung eines MCP2562-Transceivers mit dem Mikrocontroller (Microchip Technology Inc., 2014, S. 6)
Abbildung 65: Der MCP2562 Transceiver mit Sub-D 9 Buchse Ausgang
Abbildung 66: Funktionsplan einem USS Schnittstelle auf dem SIMOREG DC Master (Siemens AG, 2015, S. 260)
Abbildung 67: Parameterliste (P780 bis P783) für die Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master (Siemens AG, 2015, S. 548)
Abbildung 68: Wichtigste Parameterliste (P784 bis P788) für die Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master (Siemens AG, 2015, S. 549)
Abbildung 69: Parameter für die Diagnoseinformation der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master (Siemens AG, 2015, S. 550)
Abbildung 70: Funktionsplan eines Hochlaufgebers (Siemens AG, 2015, S. 245)
Abbildung 71: Funktionsplan des Feldstromregelung für das SIMOREG-DC-Gerät (Siemens AG, 2015, S. 257)
Abbildung 72: Funktionsplan der EMK-Regelung für das SIMOREG-DC Gerät (Siemens AG, 2015, S. 256)
Abbildung 73: Funktionsplan der Drehzahlregelung für das SIMOREG-DC Gerät (Siemens AG, 2015, S. 250)
Abbildung 74: Funktionsplan der Ankerstromregelung für das SIMOREG-DC Gerät (Siemens AG, 2015, S. 254)
Tabelle
Tabelle 1: Raspberry Pi 3 Modell B Technische Daten (Reichelt Elektronik, 2019)
Tabelle 2: Empfohlene Bitraten und die entsprechenden maximalen Kabellängen(ME-Meßsysteme GmbH, 2008)
Tabelle 3: Leitungslänge in Abhängigkeit von der Anzahl an Teilnehmern und der Übertragungsrate (SIEMENS AG, 2015).
Tabelle 4: Berechnung der Teilstriche Winkel der Zeigerinstrument
Tabelle 5: GPIO-Belegung der Raspberry Pi Model 3B(element14, 2019)
Tabelle 6: mögliche maximale Kabellänge in Abhängigkeit zu der Übertragungsrate für das PCAN USB-Adapter (PEAK-System Technik GmbH, 2019)
Tabelle 8: Auswahl der Anzuzeigenden Parameter des SIMOREG Geräts
Tabelle 7: Einstellung der Schlüsselparameter
Tabelle 9: Auswahl des USS-Protokolls für das SIMOREG Gerät
Tabelle 10: Eingabe der Quelle für die Sendedaten über G-SST1
Abkürzungsverzeichnis
Abbildung in dieser Leseprobe nicht enthalten
Begriffserklärung
Abbildung in dieser Leseprobe nicht enthalten
1. Einführung
Das User Interface 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 und einfach, dass kein 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. Es werden heutzutage die verschiedenen Funktionalitäten mehrerer Systeme mit Hilfe einer GUI dargestellt und die Kommunikation oder der Datenaustausch mit diesem erfolgen 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 eines Raspberry 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 Modell B) 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 Bussysteme eingefü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 fundierte Analyse der Arbeit definiert. Dazu wird das System über ein UML-Diagramm modelliert.
Der dritte Teil dieser 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.
Der vierte Teil dieser Arbeit bildet die Realisierung der Benutzeroberfläche. Dabei wird im Voraus gezeigt, wie die verschiedenen Module, die für die Entwicklung der Benutzeroberfläche auf der Raspberry Pi installiert sind.
Im letzten Teil wird 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 maximalen Buslä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
Abbildung in dieser Leseprobe nicht enthalten
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 er leicht von Sensoren und Geräten abgelesen und gesteuert werden. Aus diesem Grund wird er in vielen Bereichen als wirtschaftliche Alternative zu alltäglichen Computern eingesetzt. Es gibt heute verschiedene Versionen von Raspberry Pi. Diese unterscheiden sich 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 eine ausführliche Eigenschaft der Raspberry Pi 3 B:
Abbildung in dieser Leseprobe nicht enthalten
2.2 Bussystem
2.2.1 Allgemein
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 hinsichtlich ihrer Datenübertragungsraten, Sicherheit, Kapazität, Latenz, Kosten, Echtzeitfähigkeit, Buszugriffsverfahren unterscheiden. Ein Paar davon kann man zum Beispiel nennen: Ethernet, UART, CAN, LIN, MOST …
Für die Steuerung des Motorprüfstands und den Datenaustausch zwischen dem Raspberry Pi und dem Motor wird der Fokus in dieser Bachelorarbeit auf die Benutzung von zwei Bussystemen gelegt, und zwar auf den CAN Bus und das Universal Asynchronous Receiver Transceiver, abgekürzt UART.
2.2.2 CAN-Bus
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 Bus können alle an den Bus angeschlossenen Geräte eine Nachricht schicken. Das Steuergerät mit der Nachricht höherer Rang bekommt 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 in dieser Leseprobe nicht enthalten
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 11898 an 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 Signalausbreitung zu keiner Spiegelung kommt.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 4: Beispiel eines CAN-BUS-Netzwerks (HMS Industrial Networks AB, 2019).
Der Datentransport mit einem CAN-Bus kann mit einer Bitrate von bis zum 1 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 entsprechenden Kabellängen.
Abbildung in dieser Leseprobe nicht enthalten
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, wobei vier 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 Nachricht fü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)
- Rahmen Ende (EOF)
(Engels, 2000, S. 64-66)
Die Folgende Abbildung zeigt die Data Frame im Standard- und Extended-Format.
Abbildung in dieser Leseprobe nicht enthalten
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üglich dieser erforderlich.
2.2.2.1 SPI Schnittstelle
Das Serial 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. Dies geschieht 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 im Gegenbetrieb. 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 in dieser Leseprobe nicht enthalten
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
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 7: 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ür 120 Ohm Abschlusswiderstand
12: CAN High
13: CAN Low
Der MCP2515 (mit TJA1050 Transceiver) ist ein CAN-Bus-Modul mit SPI-Schnittstellen. Dieser Baustein besteht aus einem CAN Controller (MCP2515) und einem Transceiver (TJA 1050). Die Aufgabe der CAN Controller besteht 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 bis zu 1Mbits/s übertragen werden. Der Transceiver 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 ist aktuell wegen ihres einfachen Aufbaus und ihrer Zuverlässigkeit der 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 das Kennzeichen für die Synchronisation der Datenü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 einen ausführlichen Aufbau eines UART Frame.
Abbildung in dieser Leseprobe nicht enthalten
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). Diese physikalische Schnittstelle wurde zu Beginn für die Telekommunikation und die industrielle Kommunikation entwickelt. Durch ihre einfache Implementation und Zuverlässigkeit wird die RS232-Schnittstelle fü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 Kommunikation maximal 32 Teilnehmer, ein Master (Single Master System) und 31 Slaves. Diese Anzahl von Teilnehmern variiert mit der Kabellänge und Übertragungsrate. Je kleiner der Leitungslänge ist, umso weniger Teilnehmer können an den Bus angeschlossen werden (siehe Tabelle 3).
Abbildung in dieser Leseprobe nicht enthalten
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.4 Halbduplex-Betrieb
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 9: Halbduplex-Betrieb (Elektronik Kompendium, 2019)
In der Kommunikationstechnik wird als Halbduplex eine Datenübertragungstechnik definiert, bei der Daten abwechseln bzw. nicht gleichzeitig in den beiden Richtungen fließen (Elektronik Kompendium, 2019).
Der Vorteil dieser Datenübertragung besteht in der hohen Datenübertragungsrate und dem geringen Einsatz von Kabeln.
2.2.5 Vollduplex-Betrieb
Der Vollduplex-Betrieb ist ein Übertragungsverfahren, in dem Daten gleichzeitig in beide Richtungen übertragen werden können. Ein Beispiel für einen solchen wäre die Kommunikation mit einer SPI-Schnittstelle (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.1 Anforderungen
Ein Lastenheft beschreibt nach der DIN 69905 "Die Gesamtheit der Forderung an die Lieferung und Leistungen eines Auftragnehmers".
Die Anforderungen innerhalb dieser Bachelorarbeit sind 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 Software einloggen.
- Ein Auswahlmenü für die Fahrzyklen muss implementiert werden.
- Die Datenvolumen bei den Fahrzyklen müssen ermitteln werden.
- Auf dem User Interface sollen die 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
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.
Abbildung in dieser Leseprobe nicht enthalten
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ämlich ein Anzeigeelement zur Visualisierung der empfangenen Daten und ein Bedienelement zur Einstellung 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 Farben abgebildet sind. Die Abbildung 13 zeigt das Ausgewählte Design für den Entwurf der GUI. Diese enthält die Wichtigen Elementen, um die Funktionalität der Software optimal zu unterstützen.
Abbildung in dieser Leseprobe nicht enthalten
Startseite Anmelde- System
Abbildung in dieser Leseprobe nicht enthalten
Prüfstand Synchronmaschine
Abbildung in dieser Leseprobe nicht enthalten
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 Pi zum ersten Mal gestartet wird 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 an meist 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. Dieses bringt 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. Dieser hilft Linux-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 der folgenden Seite herunterladen werden https://www.sdcard.org/downloads/formatter/ .
(Kofler, Kühnast, & Scherbeck, 2018, S. 35-36)
Abbildung in dieser Leseprobe nicht enthalten
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 in dieser Leseprobe nicht enthalten
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 installiert sein, kann es je nach Betriebssystem unter der offiziellen Python-Seite installiert werden https://www.python.org/. Bei der Installation des Raspbian-Betriebssystems auf der Raspberry Pi werden auch die Python 2 und 3 als Default Version installiert. Es ist zu beachten, dass das Ausführen einem geschriebene mit Python 3 Code nicht mit der Python Version 2 kompatibel ist. Unter dem folgenden Link werden die wesentlichen Unterschiede zwischen beide Versionen aufgelistet:
https://wiki.python.org/moin/Python2orPython3.
Bei der Installation auf der Raspberry Pi 3 des Raspbian-Betriebssystems, kann die Python IDE Version 3 auf dem Terminal mit der APT (Advanced Packaging Tool) installiert werden. Dies geschieht mit der folgenden Eingabe:
Abbildung in dieser Leseprobe nicht enthalten
5.1.2.2 Pyserial
Damit der Raspberry Pi über die Serielle Schnittstelle kommuniziert bzw. Daten mit dem Motorprüfstand austauscht, soll auf diesem das Pyserial Modul installiert werden. Dieses Modul stellt die Serial Bibliothek für die serielle Kommunikation bereit.Durch den Pypi Package (Python Package Index) können die Python Module leicht auf dem Raspi installiert 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 kann je nach Python-Version das entsprechende Pyserial Modul installiert werden. Der folgende Befehl zeigt, wie das Pyserial für Python 3 auf dem Raspberry Pi 3 installiert 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 PIL bzw. eine zweite Art davon handelt. Bevor dieses Python Modul auf dem Raspberry Pi installiert werden, ist zu beachten, dass das PIL Modul noch nicht installiert wurde. Die Installation von Pillow auf dem Raspi geschieht wie folgt:
pi@raspberrypi:~ $ sudo pip3 install pillow
5.1.2.4 Webbrowser
Das Webbrowser Modul wird in dieser Arbeit benutzt, um es dem 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.5 CSV
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.6 RPi.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.7 Threading
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 existieren verschiedene Python-Modul für die Realisierung von grafischen Benutzeroberflächen. Beispiele sind 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.
Abbildung in dieser Leseprobe nicht enthalten
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).
Abbildung in dieser Leseprobe nicht enthalten
Zu Beginn des Python-Codes wird 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 in dieser Leseprobe nicht enthalten
Abbildung 18: Label in Tkinter
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 Seite erforderlich und ein weiterer, um den Prüfstand ein- bzw. auszuschalten. Der Folgende Code zeigt, wie der Button <anmelden> mit dem Tkinter-Modul erzeugt wird:
Abbildung in dieser Leseprobe nicht enthalten
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 Zeigerinstrument für die Drehzahlanzeige realisiert. Das Canvas enthält unter Tkinter unterschiedliche Arten grafischer Elemente, wie z. B. Linie, Rechteckt, Kreis. Das Canvas-Element wird im Tkinter wie folgt erstellt:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 20: Programmausschnitt für das Erzeugen eines Canvas in einem Tkinter-Fenster.
Abbildung in dieser Leseprobe nicht enthalten
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 Punkt Außenradius für Teilstriche mit 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) wird es auf 00 gesetzt.
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 4: Berechnung der Teilstriche Winkel der Zeigerinstrument
Der Winkel aller Teilstriche wird anhand der Dreisatz-Regel berechnet.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 23: Programmausschnitt für die Realisierung der Gauge-meter
5.2.1.4 Menü
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 in dieser Leseprobe nicht enthalten
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 und gelöscht werden. Deshalb werden in der hier vorliegenden grafischen 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 in dieser Leseprobe nicht enthalten
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.
Abbildung in dieser Leseprobe nicht enthalten
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 Bachelorarbeit für die Kommunikation mit dem Motorprüfstand verwendet wird, ist der MCP-2515. Ein detaillierter Überblick über das Modul ist im Punkt 2.2.2.2) zu entnehmen. Dieses besteht aus einem MCP2515 CAN Controller und einem TJA1050 CAN Transceiver. Diesen beiden Chips enthalten auf die Platine eine gemeinsame Spannungsversorgung (Raspberry Pi Foundation, 2019).
Abbildung in dieser Leseprobe nicht enthalten
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 in dieser Leseprobe nicht enthalten
Abbildung 28: Modifizierter Schaltplan 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:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 29: Schaltung von MCP2515 mit dem Raspi (Raspberry Pi Foundation, 2019)
Der gesamte Schaltplan mit Pin-Belegungeiner CAN-Bus Kommunikation mit dem MCP-2515 stellt sich folgendermaßen dar:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 30: Gesamter Schaltplan mit 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.2 Vorbereitung
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 folgenden Befehl über das Terminal einzugeben. Hierzu muss zunächst das Linux-System aktiviert und geöffnet werden, danach das Fenster für die Konfiguration des Interfaces wie folgendes:
Achtung: Der Text, der hinter dem Hash-Zeichen (#) steht, ist ausschließ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 Programm Einstellungen zu starten. Es ist das ‚Interfacing 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 die SPI-Schnittstelle aktiviert bzw. deaktiviert werden kann. Schließich wird die Einstellung mit einem <ok> bestätigt. (FrAn, 2019)
Abbildung in dieser Leseprobe nicht enthalten
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 -a herausfinden
pi@raspberrypi:~$ uname -a
Die Konfiguration der MCP2515 CAN Bus erfolgt dann beim Ergänzen einiger Overlay-Leitungen in der /boot/config.txt Datei.
Abbildung in dieser Leseprobe nicht enthalten
Die obenstehende Eingabe ist ab der 4.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:
Abbildung in dieser Leseprobe nicht enthalten
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.
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 5: GPIO-Belegung der Raspberry Pi Model 3B (element14, 2019)
Nach dem Neustart der Raspberry Pi durch den sudo reboot Befehl kann nun überprüft werden, ob der MCP2515 CAN Bus gut konfiguriert wurde. Dafür muss das folgende Kommando eingegeben werden.
Abbildung in dieser Leseprobe nicht enthalten
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 + X und 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 -s beziehen sich 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.4 PCAN-USB-Adapter Konfiguration
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 32: CAN-Interface für USB (PEAK-System Technik GmbH, 2019)
Der PCAN-USB-Adapter wurde von der PEAK-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ängigkeit zu der Übertragungsrate.
Abbildung in dieser Leseprobe nicht enthalten
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-Adapter kann einen Standard-Frame sowie einen Extended-Frame mit bis zu 1Mbit/s übertragen. Der Anschlussbelegung des PCAN-Bus-Adapters gestaltet sich folgendermaßen:
Abbildung in dieser Leseprobe nicht enthalten
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 den folgenden Link https://www.peak-system.com/PCAN-USB.199.0.html
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 34: Ansicht von CAN-Transfer über die PCAN-view-Software (Warszawa, 2019)
6.1.3 Senden und Empfang der CAN-Message
- Senden Und Empfang von Daten im Terminal Fenster
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
Abbildung in dieser Leseprobe nicht enthalten
Es handelt sich hier um einem Standard-Frame mit dem Maximum 11 Bits ((3FF) hex) Identifier. Für den Extended-Frame wäre Maximum 29 Bits Identifiers ((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 in dieser Leseprobe nicht enthalten
Abbildung 35: Aktivierung des Can0 Interfaces in Python.
CAN-Nachrichten können nun mit dem folgenden Python-Code periodisch gesendet oder empfangen werden.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 36: Periodische Senden Von CAN-Message in Python.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 37: Empfang von CAN-Message in Python
6.2 Die UART-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-Protokolls fehlerfrei ausgetauscht werden können.
6.2.1 Vorbereitung
6.2.1.1 RS232 Schnittstelle
Abbildung in dieser Leseprobe nicht enthalten
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-Protokolls können Daten über eine serielle Schnittstelle gesendet bzw. empfangen werden. Der Telegrammrahmen eines USS-Protokolls beginnt 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.
Abbildung in dieser Leseprobe nicht enthalten
4Bits 1Bit 11Bits
Abbildung 40: Telegrammaufbau eines USS-Protokolls
HB: High Byte
LB: Low Byte
6.2.1.3 Parametrierung des USS-Protokolls für das SIMOREG 6RA7025
Abbildung in dieser Leseprobe nicht enthalten
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 in dieser Leseprobe nicht enthalten
Abbildung 42: 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).
Abbildung in dieser Leseprobe nicht enthalten
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).
Abbildung in dieser Leseprobe nicht enthalten
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.
Abbildung in dieser Leseprobe nicht enthalten
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 in Wortlä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).
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 43: 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 Datentransports vom 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 zwei groß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 Grund wird 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 Default befindet 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 die raspi-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
Das Auftragstelegramm ist definiert als das gesendete Telegramm des Masters an den Slaven. Damit eine fehlerfreie Kommunikation zwischen den Raspberry Pi (Master) und SIMOREG-Gerät (Slave) existiert, muss an beiden Geräten die gleiche Übertragungsbaudrate bzw. Parametrierung eingestellt werden. Die Konfiguration bzw. Aktivierung der Serielle Schnittstelle in Python wird mit dem Folgenden Code durchgeführt.
Abbildung in dieser Leseprobe nicht enthalten
Daten werden in Python mit Hilfe des Pyserial Moduls gesendet bzw. empfangt. Als Auftragstelegramm wird in Python der folgende Code erzeugt:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 45: Programmabschnitt für das Senden von Telegrammen über die RS232 Schnittstelle
6.2.3 Antworttelegramm
Unter einem Antworttelegramm wird die 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 46: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 in dieser Leseprobe nicht enthalten
Abbildung 47: 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 in dieser Leseprobe nicht enthalten
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 sind der 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
Abbildung in dieser Leseprobe nicht enthalten
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 in dieser Leseprobe nicht enthalten
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.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 50: Aufbau der Schaltung für die CAN-Bus Kommunikation
Beim Starten des Programms ist die Eingabe eines Benutzernamens und eines Passworts erforderlich. Hierfür werden der Benutzername htw-berlin (klein geschrieben) und das Passwort sose19 verwendet. Mit der korrekten Eingabe gelingt 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> leuchtet hellgrü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 Fenster die 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 in dieser Leseprobe nicht enthalten
Abbildung 51: 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 ihre Größe angezeigt (Abbildung 52).
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 52: TextBox mit geladenem Track
Der geladene Track wird 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 senden nicht eingekreuzt werden (Abbildung 53).
Abbildung in dieser Leseprobe nicht enthalten
Nach Bestätigung des Sendevorgangs wird der geladene Track mit dem entsprechende Identifier gesendet. Das folgende Bild zeigt das Verhalten einem gesendeten CAN-Frame mit einer Bitrate von 500 Kbits/s.
Abbildung in dieser Leseprobe nicht enthalten
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 entspricht dem Signal, das aus dem Pin Rx der MCP2562 Transceiver rauskommt.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 56: Empfangene CAN-Nachricht vom F28335 Mikrocontroller
2. UART-BUS-System Kommunikation
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 57: 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 (zahl 3). 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 in dieser Leseprobe nicht enthalten
Nach Bestätigung der Taste <Ok> und Erkennung der RS232-Schnittstelle zeigt das Widget-Fenster die vorgenommenen Einstellungen an (Abbildung 59).
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 59: 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 in dieser Leseprobe nicht enthalten
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-Bussysteme verwendet. Mit Hilfe Von Tkinter Toolkit die im Python inklusiv ist, konnte sehr einfach die Programmierung des User Interfaces erstellt werden. Dies wurde 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, konnten zyklisch Daten 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 Instruments ein 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.
Literaturverzeichnis und 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 Relay Modul Schaltung
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 61: 8-Kanal Relay Modul Schaltung (SUNFOUNDER, 2017)
A2. Das F28335 Modul
Abbildung in dieser Leseprobe nicht enthalten
A3. F28335 Pins Belegung
Abbildung in dieser Leseprobe nicht enthalten
A4. Schaltung eines MCP2562-Transceivers mit dem Mikrocontroller
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 64: Schaltung eines MCP2562-Transceivers mit dem Mikrocontroller (Microchip Technology Inc., 2014, S. 6)
A5. Der MCP2562 Transceiver
Abbildung in dieser Leseprobe nicht enthalten
A6. Funktionsplan einem USS Schnittstelle auf dem SIMOREG DC Master
Abbildung 66: 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 in dieser Leseprobe nicht enthalten
A8. Parameter für die Diagnoseinformation der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master
Abbildung in dieser Leseprobe nicht enthalten
A9. Funktionsplan eines Hochlaufgebers
Auf dieser Funktionsplan steht der Parameter P634 zum Steuern der Motordrehzahl zur Verfügung.
Abbildung in dieser Leseprobe nicht enthalten
A10. Funktionsplan des Feldstromregelung für das SIMOREG-DC-Gerät
Abbildung in dieser Leseprobe nicht enthalten
Das Blatt enthält der Konnektor K0265 für die Anzeige auf die graphische Oberfläche der Feldstromistwert.
Abbildung in dieser Leseprobe nicht enthalten
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 in dieser Leseprobe nicht enthalten
A12. Funktionsplan der Drehzahlregelung für das SIMOREG-DC Gerät
Auf dieser Funktionsplan kann die Drehzahlistwert auf den Konnektor K0179
Abbildung in dieser Leseprobe nicht enthalten
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 in dieser Leseprobe nicht enthalten
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.
[...]
- Citation du texte
- Patrick Siandji Djumedio (Auteur), 2019, Durchführung von Fahrzyklen an einem Motorprüfstand. Die Entwicklung einer Steuerung mit grafischer Oberfläche auf einem Mini-Computer, Munich, GRIN Verlag, https://www.grin.com/document/514396
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X.