WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Entwicklung einer steuerung mit grafische oberfläche auf einem mini-computer zur durchführung von fahrzyklen an einem motorprüfstand.


par Patrick Siandji Djumedio
Hochschule für Technik und Wirtschaft Berlin - Bachelorarbeit 2019
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Entwicklung einer Steuerung mit Grafische Oberfläche

auf einem Mini-Computer zur Durchführung

von Fahrzyklen an einem

Motorprüfstand.

Bachelorarbeit

Zur Erlangung des akademischen Grades

Bachelor of Engineering (B.Eng.)

Vorgelegt von: Patrick SiandjiDjumedio

s0551099@htw-berlin.de

s0551099

Studiengang: Elektrotechnik(B)

Fachrichtung: Ingenieurwissenschaften- Energie und Information

Hochschule: Hochschule für Technik und Wirtschaft Berlin.

University of Applied Sciences

Wilhelminenhofstraße 75A

12459 Berlin

Betreut von:

1. Gutachter: Prof. Dr.-Ing. Norbert Klaes

2. Gutachter: M. Eng.Philipp Schmidt

Berlin,4Oktober 2019

Schüsselwort:

Bachelorarbeit, Grafische Benutzeroberfläche, CAN-Bus, Bussystem, Raspberry Pi, Python Programmiersprache, Durchführung von Fahrzyklen, Motorprüfstand, UART-Bus.

Kurzfassung

In dieser Bachelorarbeit wird eine grafische Benutzerschnittstelle mit Hilfe einesEinplatinencomputers (Raspberry Pi 3B) für die Durchführung von Fahrzyklen an einem Prüfstand entwickelt.

Für die Umsetzung dieser Aufgabe wird diesein zwei große Kapitel geteilt: Einerseits die Realisierung der GUI' und anderseits die Kommunikation mit derexternenWelt (Hardware)' bzw. mit dem Prüfstand durch die Anwendung von zweiBussystemen,und zwar dem CAN-und demUART-Bus.

Die grafische Benutzeroberfläche wird auf der Raspberry Pi mit der Python Programmiersprache realisiert.Hierfür wirddas Tkinter Modul für das GUI-Toolkit TK benutzt. Andere wichtige Module wiePython-Can, Pyserial, Re, CSV und Threadingwerden auch für die Umsetzung dieser Aufgabe verwendet.

Die Messdatenerfassungund der Datenaustausch gelingenerst, wenn vorher die Grundlagendes seriellenBussystemserläutert wurden. Als serielles Bussystem für die Kommunikation mit der Hardware wird einerseits der RS232 Schnittstelle verwendet und anderseits der MCP2515 CAN-Bus,derüber eine SPI-Schnittstelle gesteuert wird, während zudem die Konfiguration von diesemauf dem Raspberry Pi erforderlich ist. Des Weiteren wird der Telegrammaufbau erklärt; insbesondere geht es um das Auftrags- und AntworttelegrammeinesUSS Protokolls für eine fehlerfreie Kommunikation mit dem SIMOREG DC-Master.

Keyword:

Bachelor thesis, Graphical User Interface (GUI), Control Area Network, Bus system, Raspberry Pi, Python programming language, Performance of driving cycles, Engine test bench, UART Bus.

Abstract

This bachelor thesis deals with the development of a graphical user interface (GUI) using a single-board computer (the Raspberry Pi 3B) for the execution of driving cycles on a test bench.

For the implementation of this task, the work is divided into two major parts: The first is the realization of the GUI, and the second is securing communication with the external world (hardware) or with the test bench by using two bus systems, namely the CAN and UART buses.

The GUI is developed on the Raspberry Pi with the Python programming language. The TKinter module for the Tk GUI toolkit is used for this purpose. Other important modules such as python-can, pyserial, re, csv und Threading are also used to implement this task.

The measurement data acquisition and data exchange depend on successful implementation of the serial bus system. The MCP2515 CAN bus is used as a serial bus system for communication with the hardware. It is controlled via an SPI, and the configuration of these on the Raspberry Pi is required. Furthermore, we deal with the telegram structure and the order and response telegram of a USS protocol for error-free communication with the SIMOREG DC master.

Danksagung

Ohne die Unterstützung von einigen Personen wäre diese Abschlussarbeit fast unmöglich.

Hiermit möchte ich ganz ehrlich die Hochschule Für Technik und Wirtschaft HTW-Berlin danken mich diese Chance gegeben haben, ein Teil der Student im Studiengang Elektrotechnik sein zu dürfen und darüber hinaus meine ·Kenntnisse während meiner Tätigkeit als studentischer Mitarbeiter durch umfassende Praxis und Projekte zu vertiefen.

An der zweiten Stellebedanke ich mich bei meinen beiden Betreuer Prof. Dr. -Ing. Norbert Klaes und M. Eng Philipp Schmidt für den zur Verfügung gestellte Freiraum und Arbeitsplatz bzw. bei jeder Hilfe die Sie für die Umsetzung meine Aufgabe erbracht haben.

Danken möchte ich auch meine Schwiegermutter Eleni Soniadou, ihr Freund Niko, und meinem zweiten Bruder Christo für Ihre Finanzielle Unterstützung, meine Freundin Elisavet Alexiadou die während das Schreiben dieser Bachelorarbeit allein auf unserem Sohn aufgepasst musste damit ich mich besser konzentriere, Vielen Dank für deine Geduld und Unterstützung.

Dankbar bin ich auch meiner lieben Familie und besonders meiner Schwester Eliane aus Berlin und Ihr Mann Isaac Fothio, meine Eltern Djumedio Bejanmin und Tcheuckam Elise, meine anderen Geschwister aus Kamerun Djassi alvine, Tientcheu Martial und Djomaleu Merlin, die trotz Schwierigkeiten immer für mich da war, ebenfalls recht herzlich bedanken.

Inhaltsverzeichnis

Abbildungsverzeichnis II

Tabelle VII

Abkürzungsverzeichnis VIII

Begriffserklärung IX

1. Einführung 1

1.1. Motivation 1

1.2. Ziel der Arbeit 1

1.3. Aufbau der Arbeit 1

2. Technische Grundlage 3

2.1 Der Raspberry Pi 3

2.2 Bussystem 4

2.2.1 Allgemein 4

2.2.2 CAN-Bus 5

2.2.2.1 SPI Schnittstelle 8

2.2.2.2 MCP-2515 9

2.2.3 UART-Bus 10

2.2.3.1 RS232-Schnittstelle 11

2.2.3.2 USS-Protokoll 11

2.2.4 Halbduplex-Betrieb 12

2.2.5 Vollduplex-Betrieb 12

3. Analyse 13

3.1 Anforderungen 13

3.2 UML Diagramm 14

4. Konzept 15

4.1 Umfeldanalyse 15

4.2 Der Erste Prototyp 15

4.3 Design 16

5. Realisierung der Benutzeroberfläche 17

5.1 Vorbereitung 17

5.1.1 Installation des Betriebssystems 17

5.1.1.1 NOOBS Installation 17

5.1.2 Installation der Module 19

5.1.2.1 Python IDE 19

5.1.2.2 Pyserial 20

5.1.2.3 Pillow 20

5.1.2.4 Webbrowser 20

5.1.2.5 CSV 21

5.1.2.6 RPi.GPIO 21

5.1.2.7 Threading 21

5.2 Tkinter 21

5.2.1 Widgets Entwurf 21

5.2.1.1 Label 22

5.2.1.2 Button 25

5.2.1.3 Canvas 25

5.2.1.4 Menü 29

5.2.1.5 Text-Box 29

6. Kommunikation mit der Hardware 31

6.1 CAN-Bus-Kommunikation 31

6.1.1 Der MCP-2515 31

6.1.2 Vorbereitung 33

6.1.2.1 SPI Konfiguration 33

6.1.2.2 CAN-Bus (MCP2515) Konfiguration 34

6.1.2.3 Installation von CAN-Utils 35

6.1.2.4 PCAN-USB-Adapter Konfiguration 36

6.1.3 Senden und Empfang der CAN-Message 38

6.2 Die UART-Kommunikation 39

6.2.1 Vorbereitung 39

6.2.1.1 RS232 Schnittstelle 39

6.2.1.2 Aufbau der Telegrammrahmen 39

6.2.1.3 Parametrierung des USS-Protokolls für das SIMOREG 6RA7025 41

6.2.1.4 Konfiguration der RS232-Schnittstelle auf dem Raspberry Pi 45

6.2.2 Auftragstelegramm 46

6.2.3 Antworttelegramm 47

7. Laborpraktikum 49

8. Fazit und Ausblick 58

Literaturverzeichnis und Quellenverzeichnis 59

Anhang X

A1. 8-Kanal Relay Modul Schaltung X

A2. Das F28335 Modul XI

A3. F28335 Pins Belegung XI

A4. Schaltung eines MCP2562-Transceivers mit dem Mikrocontroller XII

A5. Der MCP2562 Transceiver XII

A6. Funktionsplan einem USS Schnittstelle auf dem SIMOREG DC Master XIII

A7. Die Wichtigste Parameterliste für die Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master XIV

A8. Parameter für die Diagnoseinformation der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master XVI

A9. Funktionsplan eines Hochlaufgebers XVII

A10. Funktionsplan des Feldstromregelung für das SIMOREG-DC-Gerät XVIII

A11. Funktionsplan der EMK-Regelung für das SIMOREG-DC Gerät XIX

A12. Funktionsplan der Drehzahlregelung für das SIMOREG-DC Gerät XX

A13. Funktionsplan der Ankerstromregelung für das SIMOREG-DC Gerät XXI

2. CD-Verzeichnis XXII

Eidesstattliche Erklärung XXIII

Abbildungsverzeichnis

Abbildung 1: Raspberry Pi 3 Model B(Pollin Electronic GmbH, 2019) 2

Abbildung 2: CAN Bus Kommunikation im Kfz Bosch-Technologien (Robert Bosch GmbH, 2019). 5

Abbildung 3: Bitweise Arbitrierung in der CAN Bus Kommunikation (slideplayer.org, 2017). 6

Abbildung 4: Beispiel eines CAN-BUS-Netzwerks (HMS Industrial Networks AB, 2019). 7

Abbildung 5: Data Frame im Standard- und Extended-Format(VECTOR INFORMATIK GMBH, 2019) 8

Abbildung 6: SPI-Bus mit einem Master und zwei Slaven(Hochschule München, FK 04, Prof. Jürgen Plate, 2017). 9

Abbildung 7: Der MCP2515 CAN-Controller mit TJA1050 CAN-Transceiver(42project, 2019). 9

Abbildung 8: UART Frame (buyzero, 2019) 11

Abbildung 9: Halbduplex-Betrieb (Elektronik Kompendium, 2019) 12

Abbildung 10: Vollduplex Betrieb (Hennekeuser, 2018) 12

Abbildung 11: UML Diagramm 14

Abbildung 12: Erste Handskizze der Software. 15

Abbildung 13: Ausgewählte Design für die Realisierung der Software 16

Abbildung 14:Das SD-Formatter Programm unter Windows(technik-tipps-und-tricks, 2017) 18

Abbildung 15: NOOBS Installationsassistent(Amazon, 2019) 19

Abbildung 16: Die Verschiedene Widgets der Prüfstand Synchronmaschine Seite 22

Abbildung 17: Fenster-/Seitenerstellung der grafischen Oberfläche mit Tkinter. 23

Abbildung 18: Label in Tkinter 24

Abbildung 19: Programmausschnitt für das Erzeugen des "Anmelden" Buttons 25

Abbildung 20: Programmausschnitt für das Erzeugen eines Canvas in einem Tkinter-Fenster. 25

Abbildung 21: Vorgehensweise für Das Zeichnen der Teilstriche der Zeigerinstrument 26

Abbildung 22: Zeigerinstrument für die Drehzahlanzeige in Canvas 27

Abbildung 23: Programmausschnitt für die Realisierung der Gauge-meter 28

Abbildung 24: Erstellen eines Menüs in Tkinter 29

Abbildung 25: Erstellen eines Textfeldes in Tkinter 30

Abbildung 26: Anzeigefenster auf der grafischen Oberfläche 30

Abbildung 27: Schaltplan einem MCP2515 CAN Modul(Raspberry Pi Foundation, 2019) 31

Abbildung 28: Modifizierter Schaltplan der CAN BUS Modul (Raspberry Pi Foundation, 2019). 31

Abbildung 29: Schaltung von MCP2515 mit dem Raspi (Raspberry Pi Foundation, 2019) 32

Abbildung 30: Gesamter Schaltplan mit der Pin-Belegung einer CAN-BUS Kommunikation (Hackster.io, an Avnet Community, 2019) 32

Abbildung 31: Die verschiedenen Schritte für die Aktivierung der SPI auf dem Raspberry Pi 33

Abbildung 32: CAN-Interface für USB (PEAK-System Technik GmbH, 2019) 36

Abbildung 33: Anschlussbelegung der PCAN-Bus-Adapter (PEAK-System Technik GmbH, 2019). 37

Abbildung 34: Ansicht von CAN-Transfer über die PCAN-view-Software(Warszawa, 2019) 37

Abbildung 35: Aktivierung des Can0 Interfaces in Python. 38

Abbildung 36: Periodische Senden Von CAN-Message in Python. 38

Abbildung 37: Empfang von CAN-Message in Python 39

Abbildung 38: USB zu RS232 Serial DB9 Adapter Kabel (Best Buy Co, Inc., 2019) 39

Abbildung 39: Sub-D 9 Pin RS232 Stecker/Buchse Kabel (partsdata, 2019) 39

Abbildung 40: Telegrammaufbau eines USS-Protokolls 40

Abbildung 41: Der SIMOREG DC-MASTER 6RA7025 41

Abbildung 42: Technische Daten der SIMOREG DC-MASTER 6RA7025 42

Abbildung 43: Auswahl der RS232 schnittstelle-Baudrate für das Senden von Telegrammen 44

Abbildung 44: Aktivierung der Serielle Schnittstelle in Tkinter. 46

Abbildung 45: Programmabschnitt für das Senden von Telegrammen über die RS232 Schnittstelle 47

Abbildung 46:Programmabschnitt zum Empfangen von Telegrammen über die RS232-Schnittstelle 47

Abbildung 47: zyklische senden und empfang von daten über die RS232-Schnittstelle 48

Abbildung 48: Labor Elektrische Maschine an der HTW-Berlin Wilhelminenhofstraße 75A Gebäude F Raum 328 49

Abbildung 49: Programmablauf für einen erfolgreichen Daten-Transfer auf das GUI 50

Abbildung 50: Aufbau der Schaltung für die CAN-Bus Kommunikation 51

Abbildung 51: Konfigurationsparameter der CAN-Bus 52

Abbildung 52: TextBox mit geladenem Track 53

Abbildung 53: Sendekonfiguration Fenster für das Senden einzelner Daten 53

Abbildung 54: Sendekonfiguration Ansicht für die Übertragung des geladenen Tracks 53

Abbildung 55: Anzeige des zyklisch an das Oszilloskop übertragenen CAN-Frames 54

Abbildung 56: Empfangene CAN-Nachricht vom F28335 Mikrocontroller 55

Abbildung 57: Zusammenschaltung des SIMOREG-Geräts mit dem Raspberry Pi über RS232 -Schnittstelle. 56

Abbildung 58: UART-Konfiguration auf der grafischen Oberfläche 57

Abbildung 59: Anzeige der Eingestellte Parameter für die Konfiguration der UART-Bus 57

Abbildung 60: Telegrammrahmen Konfiguration. 57

Abbildung 61: 8-Kanal Relay Modul Schaltung (SUNFOUNDER, 2017) X

Abbildung 62: Das F28335 Modul XI

Abbildung 63: F28335 Pins Belegung (Texas Instruments, 2019) XI

Abbildung 64: Schaltung eines MCP2562-Transceivers mit dem Mikrocontroller (Microchip Technology Inc., 2014, S. 6) XII

Abbildung 65: Der MCP2562 Transceiver mit Sub-D 9 Buchse Ausgang XII

Abbildung 66: Funktionsplan einem USS Schnittstelle auf dem SIMOREG DC Master (Siemens AG, 2015, S. 260) XIII

Abbildung 67: Parameterliste (P780 bis P783) für die Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master (Siemens AG, 2015, S. 548) XIV

Abbildung 68: Wichtigste Parameterliste (P784 bis P788) für die Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master (Siemens AG, 2015, S. 549) XV

Abbildung 69: Parameter für die Diagnoseinformation der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master (Siemens AG, 2015, S. 550) XVI

Abbildung 70: Funktionsplan eines Hochlaufgebers (Siemens AG, 2015, S. 245) XVII

Abbildung 71: Funktionsplan des Feldstromregelung für das SIMOREG-DC-Gerät (Siemens AG, 2015, S. 257) XVIII

Abbildung 72: Funktionsplan der EMK-Regelung für das SIMOREG-DC Gerät (Siemens AG, 2015, S. 256) XIX

Abbildung 73: Funktionsplan der Drehzahlregelung für das SIMOREG-DC Gerät (Siemens AG, 2015, S. 250) XX

Abbildung 74: Funktionsplan der Ankerstromregelung für das SIMOREG-DC Gerät (Siemens AG, 2015, S. 254) XXI

Tabelle

Tabelle 1: Raspberry Pi 3 Modell B Technische Daten (Reichelt Elektronik, 2019) 2

Tabelle 2: Empfohlene Bitraten und die entsprechenden maximalen Kabellängen(ME-Meßsysteme GmbH, 2008) 7

Tabelle 3: Leitungslänge in Abhängigkeit von der Anzahl an Teilnehmern und der Übertragungsrate (SIEMENS AG, 2015). 11

Tabelle 4: Berechnung der Teilstriche Winkel der Zeigerinstrument 26

Tabelle 5: GPIO-Belegung der Raspberry Pi Model 3B(element14, 2019) 34

Tabelle 6: mögliche maximale Kabellänge in Abhängigkeit zu der Übertragungsrate für das PCAN USB-Adapter (PEAK-System Technik GmbH, 2019) 36

Tabelle 8: Auswahl der Anzuzeigenden Parameter des SIMOREG Geräts 42

Tabelle 7: Einstellung der Schlüsselparameter 42

Tabelle 9: Auswahl des USS-Protokolls für das SIMOREG Gerät 43

Tabelle 10: Eingabe der Quelle für die Sendedaten über G-SST1 44

Abkürzungsverzeichnis

Prof. Professor

Dr. Doktor

Ing. Ingenieur

Bzw. beziehungsweise

Max. Maximal

Raspi Raspberry Pi

Min. Minimal

Anz. Anzahl

V Volt

GHz Gigahertz

GB Gigabyte

MHz Megahertz

Begriffserklärung

GUI: GraphicalUser Interface

MHI: Human Machine Interface

CAN: Control Area Network

BUS: Binary Unit System

SPI: Serial Peripheral Interface

MOSI: Master Out Slave In

MISO: Master In Slave Out

SCKL: Serial Clock

VCC: Voltage Common Collector / Versorgungsspannung

USS-Protokoll: Universelles serielles Schnittstellen-Protokoll

STX: Start of Text

PKW: Parameter Kennung Wert

PKE: Parameter Kennung Element

AK: Auftrag / Antwort Kennung

PNU: Parameter Nummer

IND: Index

PZD: Prozessdaten

BCC: Bloc Check Charakter

ARD: Adressbyte

LGE: Telegrammlänge

UML: Unified Modeling Language

HTW: Hochschule für Technik und Wirtschaft

GPIO: General Purpose Input/output

IDE: Integrated Development Environment

IO: Input / Output

PC: Personal Computer

WLAN: Wireless Local Area Network

RAM: Random Access Memory

BCM2837: Broadcom 2837

HDMI: High Definition Multimedia Interface

CSI: Camera Serial Interface

DSI: Digital Serial Interface

CPU: Central Processing Unit

LAN: Local Area Network

RJ-45 Buchse: Registered Jack-45 Buchse

USB: Universal Serial Bus

IC: Integrated Circuit

SOF: Start Of Frame

EOF: End Of Frame

CRC: Cyclic Redundancy Check

ACK: ACKnowledgement

DLC: Data Length Code

RTR: Remote Transmission Request

1.Einführung

Das UserInterface oder Human Machine Interface (HMI) wird als die Schnittstelle definiert, die zur Verbindung zwischen Menschen und Maschine nötig ist.

Die Anwendung von Maschinen ist heutzutage so selbstverständlich undeinfach, dasskein großer Unterschied mehr zwischen Menschen und Maschine zu erkennen ist.Damit Menschen Maschinen und Programme steuern können, ist eine entsprechende Schnittstelle erforderlich.

(Vogel Communications Group GmbH & Co. KG, 2019).

1.1. Motivation

Die Entwicklung der grafischen Benutzeroberfläche hat die Benutzerführung der Computerschichten vereinfacht. Eswerden heutzutage die verschiedenen Funktionalitäten mehrererSysteme mit Hilfe einer GUI dargestellt und die Kommunikation oder der Datenaustausch mit diesemerfolgen durch Bussysteme.

In diesem Zusammenhang soll für die Steuerung und Durchführung von Fahrzyklen an einem Motorprüfstand in dem Laborprüfstand Elektrische Maschine an der Hochschule für Technik und Wirtschaft Berlin eine grafische Benutzeroberfläche mit Hilfe einesRaspberry Pi entwickelt werden. Dies soll möglichst einfach realisiert werden, sodass es einen leichten Zugriff auf alle Funktionen bietet. Hierzu soll das User Interface die wichtigsten Parameter erhalten, die für die Steuerung und Anzeige der Messergebnisse nötig wären.

1.2. Ziel der Arbeit

Ziel dieser Bachelorarbeit ist es, eine Benutzeroberfläche mit Hilfe eines Mikrocomputers (Raspberry Pi 3 ModellB) zur Bussteuerung eines Motorenprüfstandes zu erstellen. Python 3.6 wird als Programmiersprache für die Benutzeroberfläche verwendet.

Mit dem von der Programmiersprache Python entwickelten Programm werden die Ausgänge des Raspberry Pi geschaltet und die Eingänge gelesen.Die Kommunikation mit dem Motorprüfstand erfolgt einerseits über den CAN-Bus und andererseits über den UART Bus. Das Raspberry Pi tauscht daher Daten mit dem Mikrocontroller des nationalen Instruments F28335 über die MCP2515-Schnittstelle aus.

1.3. Aufbau der Arbeit

Im ersten Teil dieser Bachelorarbeit wird mit Hilfe von angemessener Dokumentation in die Theorie der Bussystemeeingeführt. Dabei muss definiert werden, was ein Bussystem ist und welche Zugriffsverfahren es verwendet.

Im zweiten Teil werden die unterschiedlichen Anforderungen und Rahmenbedingungen für eine fundierteAnalyse der Arbeit definiert. Dazu wird das System über ein UML-Diagramm modelliert.

Der dritte Teildieser Arbeit stellt die Konzeptphase bzw. eine Prognose über das Endergebnis dar. Hier wird gezeigt, wie das User Interface schließlich aussehen wird und welche verschiedenen Komponenten es enthält.

Dervierte Teildieser Arbeit bildetdie Realisierung der Benutzeroberfläche. Dabei wirdim Voraus gezeigt, wie die verschiedenen Module, die für die Entwicklung der Benutzeroberfläche auf der Raspberry Pi installiert sind.

Im letzten Teilwird die Kommunikation mit der Hardware beleuchtet.

In diesem Kapitel wird ein physikalisches UART- bzw. CAN-Netzwerk aufgebaut, das folgende Bedingungen erfüllen sollte:

· CAN-Zugang über D-SUB-9-Buchsen

· RS232-Schnittstellenkommunikation über ein an der Raspberry Pi USB-Port angeschlossene USB-zu-RS232 Adapter

· Messtechnischer Zugang zu den CAN-High- und CAN-Low-Leitungen.

· Berücksichtigung einer maximalenBuslänge für den Datenaustausch

· unterschiedliche Versorgungsspannung von CAN-Controller und CAN-Transceiver

· Parametrierung der SIMOREG DC-Master für eine Erfolgreiche Empfang und Senden von Telegrammen.

Der Aufbau soll solide strukturiert sein und funktionieren. Als CAN-Modul für die Visualisierung der Datentransporte steht der PCAN USB Adapter der PEAK System Technik GmbH zur Verfügung.

2. Technische Grundlage

Die Kenntnis des Bussystems ist eine elementare Grundlage für eine fehlerfreie Datenübertragung mit dem Raspberry Pi. In diesem Kapitel wird zunächst die Grundlage des Raspberry Pi, d. h. die Struktur des Raspberry Pi Modells B, diskutiert, dann eine Einführung in Bussysteme und deren Zugriffsmethoden.

2.1 Der Raspberry Pi

5

9

8

4

3

6

2

7

1

Abbildung 1: Raspberry Pi 3 Model B(Pollin Electronic GmbH, 2019)

1: 40 GPIO-Pins

2: Broadcom BCM2837 64bits, Quad Core CPU, 1.2GHz, 1GB RAM

3:5 Volt Mikro-USB für die Energieversorgung

4:RJ-45 Buchse (LAN)

5: 4 USB 2.0 Anschlüsse

6: DSI Display Anschluss

7: HDMI Anschluss

8: Audio / Video Ausgang

9: CSI Kamera Anschluss

Der Raspberry Pi ist ein Einplatinencomputer, der von der Raspberry Pi Fundation angefertigt wurde. Durch seine steuerbaren I/Os kann erleichtvon Sensoren und Gerätenabgelesen und gesteuert werden. Aus diesem Grund wird erin vielen Bereichen als wirtschaftliche Alternative zu alltäglichen Computern eingesetzt. Es gibt heute verschiedene Versionen von Raspberry Pi. Dieseunterscheidensich vom alten Modell dadurch, dass sieüber einen integrierten WLAN-Chip verfügen. Dadurch entfällt für die meisten Anwendungen ein zusätzlicher WLAN-USB-Stick. Zudem verfügen sie über eine Bluetooth-Verbindung. Der Mikroprozessor ARM Cortex-A53 unterstützt einen 64-Bit-Befehlssatz und 4x 1200 MHz-Takte. Diese Eigenschaften machen den Raspberry Pi 3B zu einem vollwertigen PC, weshalb er in diesem Projekt eingesetzt wird.

(Gitter, 2018)

Die folgende Tabelle zeigt eineausführliche Eigenschaft der Raspberry Pi 3 B :

Tabelle 1: Raspberry Pi 3 Modell B Technische Daten (Reichelt Elektronik, 2019)


2.2 Bussystem

2.2.1Allgemein

Damit Computer mit externen Geräten kommunizieren bzw. Daten austauschen können,braucht es eine Verknüpfung zwischen diesen.

Ein Bussystem dient dazu,Informationen zwischen Systemkomponenten auszutauschen(Kofler, Kühnast, & Scherbeck, 2018, S. 423). Es existieren verschiedene Arten von Bussystem, die sich vor allem hinsichtlichihrer Datenübertragungsraten,Sicherheit, Kapazität, Latenz, Kosten, Echtzeitfähigkeit, Buszugriffsverfahrenunterscheiden. Ein Paar davon kann man zum Beispiel nennen: Ethernet, UART, CAN, LIN, MOST ...

Für die Steuerung des Motorprüfstands und denDatenaustausch zwischen dem Raspberry Pi und dem Motor wird der Fokusin dieser Bachelorarbeit auf die Benutzung von zwei Bussystemen gelegt, und zwar auf den CANBusund das Universal AsynchronousReceiver Transceiver, abgekürzt UART.

2.2.2 CAN-Bus

Abbildung 2: CAN Bus Kommunikation im Kfz Bosch-Technologien (Robert Bosch GmbH, 2019).

Die Zunahme der elektronischen Systeme in der Automobilindustrie in den 1990er Jahren und die erheblichen Kabelbäume zur Datenübertragung führten 1983 zur Entwicklung des CAN-Busses.CAN steht für Controller Area Network und wurde von der Robert Bosch GmbH als Bussystem für Kraftfahrzeuge entwickelt. Dieses serielle Bussystem enthält für die Datenübertragung ausschließlich ein zwei-Draht-Bussystem (CAN High und CAN Low) und kann trotz des einfachen Aufbaus sehr große Netzwerke mit bis zu 100 Steuergeräten bilden (Engels, 2000, S. 51).

Der CAN Bus arbeitet nach dem Multiple Master System. In diesem Zugriffsverfahren kann der CAN Bus gleichberechtigt mit vielen Steuergeräten verbunden werden.Das bedeutet, bei einem freien Buskönnen allean den Busangeschlossenen Geräte eine Nachricht schicken.Das Steuergerät mit der Nachricht höherer Rangbekommt die Priorität bei dem Bus-Zugriff. Die Priorität der Nachricht wird auf den IDENTIFIER angezeigt. Das bedeutet, je kleiner die Binärzahl eines Identifiers ist, umso größer ist seine Priorität (Siehe Abb.3).

Ein Dominante Bit wird mit 0 gekennzeichnet und ein Rezessive Bit mit 1.

(Engels, 2000, S. 60-61)

In der folgenden Abbildung ist zu erkennen, dass der Teilnehmer 2(T2) seinen Arbitrierungsvorgang beendet(Bit 5 des Identifikators),wenn er feststellt, dass die logische Ebene auf dem Bus dominant ist. Auf die gleiche Weise beendet der Teilnehmer 1 (T1) seinen Arbitrierungsprozess auf Bit 2 seines Identifikators. Der Teilnehmer 3 gewinnt dann den Bus-Zugriff und kann seine Daten auf das Bus senden.

Abbildung 3: Bitweise Arbitrierung in der CAN Bus Kommunikation (slideplayer.org, 2017).

Der Identifier unterscheidet sich je nach Rahmenformat:Ein Standard-Rahmen wird mit 11 Bit-Identifier gekennzeichnet und ein Erweiterter-Rahmen(EXTENDED Frames)mit 29 Bit-Identifier.Für eine reibungslose Nachrichtenübertragung soll der Bus nach der ISO 11898an beiden Enden mit jeweils 120 Ohm abgeschlossen werden (Engels, 2000, S. 52-61).Diese Terminierung sorgt dafür, dass es in einem CAN-High-Speed-Netzwerk aufgrund der Signalausbreitungzu keinerSpiegelungkommt.

Abbildung 4: Beispiel eines CAN-BUS-Netzwerks (HMS Industrial Networks AB, 2019).

Der Datentransportmit einem CAN-Bus kann mit einer Bitrate von bis zum1 Mbit/s erfolgen.Die maximale Kabellänge für den Datenübertragung ist dann von der Bitrate bestimmt. (ME-Meßsysteme GmbH, 2008)

Die folgende Tabelle zeigt die Abhängigkeit bzw. die empfohlenen Bitraten und die entsprechendenKabellängen.

Bitrate

Kabellänge

10 Kbit/s

6,7 km

20 Kbit/s

3,3 km

50 Kbit/s

1,3 km

125 Kbit/s

530 m

250 Kbit/s

270 m

500 Kbit/s

130 m

1 Mbit/s

40 m

Tabelle 2:Empfohlene Bitraten und die entsprechenden maximalen Kabellängen(ME-Meßsysteme GmbH, 2008)

Der Datenaustausch auf dem CAN-Bus erfolgt mit Hilfe von Telegrammen, wobeivier verschiedene Sorten von Telegrammen existieren:

1. Daten-Rahmen für das Senden von Daten an Empfänger

2. Anforderungs-Rahmen (Remote Frame)

3. Fehler-Rahmen (Error Frame)

4. Überlast-Rahmen (Overload Frame)

Der Telegrammaufbau einer Nachrichtfür die Datenübertragung von Sender zu Empfänger (DATA FRAME)besteht aus sieben unterschiedlichen Bit-Feldern:

· Rahmen Start (SOF)

· Message Identifier (Arbitration Field)

· Kontrollfeld

· Steuerbits (Daten Field)

· CRC-Feld

· Quittungs-Feld (ACK Field)

· RahmenEnde (EOF)

(Engels, 2000, S. 64-66)

Die Folgende Abbildung zeigt die Data Frame im Standard- und Extended-Format.

Abbildung 5: Data Frame im Standard- und Extended-Format(VECTOR INFORMATIK GMBH, 2019)

Der hier für den Datenaustausch verwendete CAN-Bus-Controller ist das Modul MCP2515. Da dieses Modul über eine SPI-Schnittstelle gesteuert wird, ist zunächst eine grundlegende Einführung bezüglichdieser erforderlich.

2.2.2.1 SPI Schnittstelle

DasSerial Peripheral Interface, abgekürzt SPI, wurde im Jahr 1987 von der Firma Motorola entwickelt und verfügt über drei Leitungen für eine serielle synchrone Datenübertragung zwischen verschieden ICs.

(Serial Peripheral Interface - Mikrocontroller.net, 2019)

Es handelt sich um ein Master-Slave-Zugriffsverfahren,was bedeutet, dass es einen Master, also Befehlenden, gibt (hier den Raspberry Pi), der zyklisch die Verbindung mit anderen Teilnehmern bzw. Slave, also Ausführenden,erstellt. Diesgeschieht mit Hilfe einer weiteren CS - Leitung (Chip Select),die dazu dient, einzelne Teilnehmer zu adressieren. Durch MOSI- und MISO-Datenleitungen können Daten in beide Richtungen gleichzeitig übertragen werden. Die Kommunikation erfolgt in Vollduplex oder imGegenbetrieb. Der direkte Nachrichtaustausch zwischen einzelnen Slaven ist nicht möglich. Das folgende Diagramm zeigt eine SPI-Bus-Kommunikation mit zwei Slaves. Der Slave kann ein beliebiges Bauteil mit SPI Schnittstelle sein.

(Kofler, Kühnast, & Scherbeck, 2018)

Abbildung 6: SPI-Bus mit einem Master und zwei Slaven(Hochschule München, FK 04, Prof. Jürgen Plate, 2017).

SCLK: Serial Clock

MOSI: Master Out Slave In

MISO: Master In Slave Out

CS/SS: Chip Select/Slave Select

2.2.2.2 MCP-2515

1

2

13

12

3

5

11

8

9

10

4c

6

7

Abbildung7: Der MCP2515 CAN-Controller mit TJA1050 CAN-Transceiver(42project, 2019).

1:INT (Interrupt)

2: SCK (Serial Clock)

3: MOSI (Master Output Slave Input) SPI-Schnittstelle

4: MISO (Master Input slave Output)

5: CS (Chip Select)

6: GND (Ground)

7: VCC

8:MCP2515 Controller

9: TJA1050 CAN Transceiver

10: 8MHz Crystal

11: Jumper für120 Ohm Abschlusswiderstand

12: CAN High

13: CAN Low

Der MCP2515 (mit TJA1050 Transceiver)ist ein CAN-Bus-Modulmit SPI-Schnittstellen. Dieser Baustein besteht aus einem CAN Controller(MCP2515) und einemTransceiver (TJA 1050). Die Aufgabe der CAN Controllerbesteht darin,das CAN-Protokoll zu implementieren, indem er dafür sorgt, dass Daten rechtzeitig gesendet bzw. empfangen werden.Daten können mit einer Bitrate von biszu1Mbits/s übertragen werden. DerTransceiver dagegen wandelt das Signal von Steuergerät (Hier der Raspberry Pi) in die Datenbusleitungen und empfängt die Daten von Slaven und wandelt sie für den CAN-Controller um.(Wiesinger, 2018)

2.2.3 UART-Bus

Die UART-Schnittstelle bietet eine serielle asynchrone Datenübertragung. Asynchron bedeutet, dass es kein-Tack Signal für das Senden bzw. den Empfang einer Nachricht gibt. Dieses Bussystem dient zur Kommunikation mit der RS232- und Rs485-Schnittstelle und benutzt für die Kommunikation zwei Leitungen TxD (Transceiver Data) und RXD (Receiver Data).Die UART-Schnittstelle istaktuell wegen ihres einfachen Aufbausund ihrerZuverlässigkeitder Standard serieller Schnittstellen an PCs und Mikrocontrollers.Damit der Datenaustausch erfolgreich funktioniert, ist es erforderlich, dass Sender und Empfänger die gleiche Übertragungsgeschwindigkeit (Baudrate)aufweisen.Der Aufbau einer Nachricht mit der UART-Schnittstelle besteht aus bis zu 11 Bits. Die Nachricht beginnt mit einem Startbit (dieser wird mit 0, Dominat Bit,gekennzeichnet), danach folgen fünf bis max. acht Datenbits und sie endet mit einem Stoppbit, das immer eine logische Eins erhält. Diese Start- und Stoppbits am Anfang und Ende der Nachricht bilden dasKennzeichen für die Synchronisation derDatenübertragung bei dem Universal Asynchronous Receiver Transceiver.Damit Fehler erkannt werden, kann nach den Datenbits ein Parität-bit gesendet werden(Schnell & Wiedemann, 2018).

Die folgende Abbildung zeigt einenausführlichen Aufbau eines UART Frame.

Abbildung 8: UART Frame (buyzero, 2019)

2.2.3.1 RS232-Schnittstelle

Die RS232-Schnittstelle, auch V.24- oder COM-Schnittstelle, wurde 1960 entwickelt und definiert den Standard für die serielle Datenübertragung(KUNBUS industrial communication, 2019). Diesephysikalische Schnittstelle wurde zu Beginn für die Telekommunikation und die industrielle Kommunikation entwickelt. Durchihre einfache Implementation und Zuverlässigkeitwird die RS232-Schnittstellefür nahezu jede PC-Technik verwendet. (RS-232 - Die serielle Schnittstelle , 2019)

2.2.3.2 USS-Protokoll

Die Universelle Serielle Schnittstelle,abgekürzt USS,definiert das Zugriffsverfahren nach dem Master-slave-Prinzip für eine serielle Kommunikation(SIEMENS AG, 2015).Dieses Zugriffsverfahren ist einfach implementierbar und erlaubt für die Kommunikationmaximal 32 Teilnehmer, ein Master(Single Master System) und 31 Slaves. Diese Anzahl von Teilnehmern variiert mit der Kabellänge und Übertragungsrate. Je kleinerder Leitungslänge ist, umso weniger Teilnehmer können an den Bus angeschlossen werden (siehe Tabelle3).

Tabelle 3: Leitungslänge in Abhängigkeit von der Anzahl an Teilnehmern und der Übertragungsrate (SIEMENS AG, 2015).

Die Kommunikation mit diesem Protokoll erfolgt im Halbduplex-Betrieb,weswegen ein Slave die Sendeinitiative nicht eigenständig tätigen kann.

2.2.4Halbduplex-Betrieb

Abbildung 9: Halbduplex-Betrieb (Elektronik Kompendium, 2019)

In der Kommunikationstechnik wird alsHalbduplexeine Datenübertragungstechnik definiert,bei derDaten abwechseln bzw. nicht gleichzeitig in den beiden Richtungenfließen (Elektronik Kompendium, 2019).

Der Vorteil dieser Datenübertragung besteht in der hohen Datenübertragungsrate und dem geringen Einsatz von Kabeln.

2.2.5Vollduplex-Betrieb

Der Vollduplex-Betrieb ist ein Übertragungsverfahren, indem Daten gleichzeitig

in beide Richtungen übertragen werden können. Ein Beispiel für einensolchen wäre die Kommunikation mit einer SPI-Schnittstelle (Hennekeuser, 2018).

Abbildung 10: Vollduplex Betrieb(Hennekeuser, 2018)

3.Analyse

Bevor die eigentlichen Bauarbeiten starten, trifft sich zunächst der Bauherr mit dem Architekten, um solche Aspekte zu klären, wie z.B. das genaue Aussehen des Hauses. Diese Information setzt der Architekt in einem Bauplan um. Eine solche Vorgehensweise existiert auch bei der Software-Entwicklung. Die Realisierung jeder Aufgabe in der Software-Entwicklung beginnt stets mit einer Analysephase, in der die Anforderungen und Rahmenbedingungen des Kunden definiert werden sollten, Lastenheft.

(Kecher, Alexander, & Ralf Hoffmann-Elbern, S. 17-18)

3.1Anforderungen

Ein Lastenheft beschreibt nach der DIN 69905 "Die Gesamtheit der Forderung an die Lieferung und Leistungen eines Auftragnehmers".

Die Anforderungeninnerhalb dieser Bachelorarbeitsind folgende:

· Die Steuerung von Fahrzyklen sollte auf einer grafischen Oberfläche erfolgen.

· Der Raspberry Pi wird als Steuergerät verwendet.

· Das User Interface soll das Logo der HTW-Berlin enthalten.

· Der Benutzer muss sich vor der Nutzung der Softwareeinloggen.

· Ein Auswahlmenü für die Fahrzyklen muss implementiert werden.

· Die Datenvolumen bei den Fahrzyklen müssen ermitteln werden.

· Auf dem User Interface sollendie folgenden Messwerte angezeigt werden: Ankerstrom, Erregerstrom, Ankerspannung, Ist-Moment, Motorstrom, Motormoment.

· Die Kommunikation zwischen der Raspberry Pi und dem Motor soll mit Hilfe des MCP2515 CAN-Bus-Moduls und der RS232-Schnittstelle erfolgen.

· Die Fahrzyklen sollten aus einem USB-Speicher ausgelesen bzw. aufgerufen werden.

Die Unified Modeling Language (UML) ist definiert als eine Modellierungssprache zur besseren Visualisierung komplexer Software. Der Zweck dieser Sprache ist es, das Verhalten des Softwaresystems und das Verständnis der Anforderungen zu untersuchen.

Die folgende Abbildung zeigt in grafischer Form die verschiedenen Komponenten und Anforderungen der hier verwendeten grafischen Benutzeroberfläche.

3.2 UML Diagramm

Abbildung 11: UML Diagramm

4. Konzept

In diesem Kapitel wird die Idee des für diese Bachelorarbeit zu erreichendem Ziel beschrieben, nämlich die Struktur und Gestaltung der grafischen Benutzeroberfläche.

4.1 Umfeldanalyse

Vor der Herstellung der ersten Prototypen müssen zunächst alle Rahmenbedingungen der Software analysiert und Informationen über den späteren Umfang der Software und des Benutzers gesammelt und präsentiert werden.

Der Umfang unserer Mensch-Maschine-Schnittstelle ist die elektrische Labormaschine der HTW Berlin und beschäftigt sich mit dem Thema Kommunikation mit CAN- und UART-Bussen zur Durchführung von Fahrzyklen auf einem Prüfstand. Diese Software richtet sich daher an alle Studierenden der Elektrotechnik Studiengang oder andere Personen, die sich mit dem Thema Elektromaschinen beschäftigen.

4.2 Der Erste Prototyp

Da der Umfang der Software in der elektrischen Labormaschine der HTW Berlin begrenzt ist, ist eine Registrierung erforderlich, um vollen Zugriff auf die Software zu haben. Aus diesem Grund beginnt die erste Seite unserer GUI mit einer Seite des Verbindungssystems. Darüber hinaus sind einige Tasten und Anzeigeelemente (z. B. ein Zeigerinstrument) erforderlich, um Messwerte auszugeben und Daten über Bussysteme zu senden. Für den Entwurf unseres ersten Prototyps wurden Skizzen auf Papier und Kugelschreiber angefertigt. Abbildung 12 zeigt die Skizze der Software aus erster Hand.

Seite 1

Seite 2

Abbildung 12: Erste Handskizze der Software.

4.3 Design

Die Wahrnehmung der Menschen hat einen sehr starken Einfluss auf das Aussehen und/oder die Struktur einer grafischen Benutzeroberfläche. So muss der Benutzer beispielsweise durch die Struktur der Software navigieren können und nicht lange suchen müssen an welcher Stelle er welche Anwendung vornehmen kann. Aus diesem Grund besteht die Homepage der Software Prüfstand Synchronmaschine an der HTW-Berlin'aus zwei verschiedenen Frames, nämlichein Anzeigeelementzur Visualisierung der empfangenenDaten und ein BedienelementzurEinstellung des Bussystems und zur Steuerung des Motorprüfstands. Die Farbauswahl (Grün und Weiß) für die Realisierung der HMI wurde ausgewählt, da auch auf dem Logo der Hochschule für Technik und Wirtschaft Berlin die gleichen Farbenabgebildet sind.Die Abbildung 13 zeigt das Ausgewählte Design für den Entwurf der GUI. Diese enthält die WichtigenElementen, um die Funktionalität der Software optimal zu unterstützen.

Startseite Anmelde- System

Prüfstand Synchronmaschine

Abbildung 13: Ausgewählte Design für die Realisierung der Software

5.Realisierung der Benutzeroberfläche

In diesem Kapitel geht es um den Entwurf Einer graphischen Schnittstelle auf der Raspberry Pi 3 Model B.dazu wird vorher gezeigt, wie der Raspberry Pizum ersten Mal gestartetwird und danach wie Widgets mit Tkinter-Tool erstellt werden.

5.1 Vorbereitung

5.1.1 Installation des Betriebssystems

Beim Kauf der Raspberry Pi 3 Model B wird dieses ohne Betriebssystem geliefert. Bevor die Benutzeroberfläche realisiert wird, muss ein Betriebssystem auf dem Raspberry Pi installiert werden. Es existiert eine große Anzahl anmeist auf Linux basierenden Betriebssystemen, die für den Raspberry Pi geeignet sind. Im Folgenden werden einige dieser aufgezeigt:

· Raspbian: Diese Distribution wird am häufigsten auf dem Raspberry Pi installiert. Dieser erhält die zusätzlichen Pakete für den Raspberry Pi und bietet einen grafischen Desktop, der die Bedienung erleichtert.

· Ubuntu: Dieses Betriebssystem ist kompatibel für die Raspberry Pi Modelle A und B ab der Version 2 und kann nicht auf den Zero-Modellen der Raspberry Pi installiert werden.

· Windows IOT: Das Microsoft-Betriebssystem kann auch auf dem Raspberry Pi installiert werden. Diesesbringt jedoch viele Einschränkungen und ist wie die Ubuntu-Version für die Modelle A und B der Raspberry Pi erst ab der Version 2 installierbar.

· Lakka, RecalboxOS, Retropie: Diese drei Distributionen können den Raspberry Pi in eine Retro-Spielkonsole umzuwandeln, wozu ein Monitor und ein USB-Gamecontroller gebraucht werden.

· LibreELEC, OpenELEC, Rasplex: Soll der Raspberry Pi in ein

Multimedia-Center verwandelt werden, ist eine der oben gelisteten Distribution erforderlich.

(Kofler, Kühnast, & Scherbeck, 2018, S. 34)

5.1.1.1 NOOBS Installation

New Out Of Box Sotware,abgekürzt NOOBS, ist ein Installationsassistent, der von der Raspberry Pi Foundation entwickelt wurde. DieserhilftLinux-Anfängern, die Installation von Betriebssystemen zu vereinfachen.

Die Installation von NOOBS erfolgt auf der SD-Karte und erfordert mindestens 8GB freien Speicherplatz.Vor der Installation wird empfohlen, die SD-Karte mit einem geeigneten Formatierungsprogramm wie dem SD-Formatter zu formatieren.Unter Windows und Mac Betriebssystem kann der SD-Formatter kostenlos auf derfolgendenSeite herunterladen werden https://www.sdcard.org/downloads/formatter/ .

(Kofler, Kühnast, & Scherbeck, 2018, S. 35-36)

Abbildung 14:Das SD-Formatter Programm unter Windows(technik-tipps-und-tricks, 2017)

Nach der Formatierung kann nun mit einem Notebook oder PC die Installationsdateien kostenlos als Zip-Datei auf der folgenden Webseite herunterladen und auf die SD-Karte geschrieben werden.

https://www.raspberrypi.org/downloads/

Wenn der Kopiervorgang abgeschlossen ist, wird die SD-Karte in den Raspberry Pi eingelegt. Der Raspberry Pi wird über ein HDMI-Kabel mit einem Monitor verbunden, darüber können eine Tastatur, eine Maus und eventuell ein LAN-Kabel für den Zugang zum Internet mit dem Gerät verbunden werden.

Erst wenn alle Kabel angeschlossen sind, kann der Raspberry Pi an die Stromversorgung angeschlossen werden. Wenige Sekunden später erscheint der NOOBS-Installationsassistent (siehe Abbildung 15), in dem die Sprache und das Layout der Tastatur geändert und ein Betriebssystem ausgewählt werden können.

Für die Realisierung der Benutzeroberfläche wird im Rahmen dieser Bachelorarbeit das Raspbian-Betriebssystem installiert.

(Kofler, Kühnast, & Scherbeck, 2018, S. 35-39)

Abbildung 15: NOOBS Installationsassistent(Amazon, 2019)

5.1.2 Installation der Module

5.1.2.1 Python IDE

Als Programmiersprache für die Programmierung der Benutzeroberfläche wird die Python Version 3.6 inklusiv Tkinter Toolkit verwendet. Sollte Python noch nicht auf dem PC installiertsein, kann es je nach Betriebssystem unter der offiziellen Python-Seiteinstalliertwerden https://www.python.org/.Bei der Installation desRaspbian-Betriebssystems auf der Raspberry Pi werden auch die Python 2 und 3 als Default Versioninstalliert. Es ist zu beachten, dass das Ausführen einem geschriebene mit Python 3Code nicht mit der Python Version 2 kompatibel ist.Unter demfolgenden Link werden die wesentlichenUnterschiede zwischen beide Versionen aufgelistet:

https://wiki.python.org/moin/Python2orPython3.

Bei der Installation auf der Raspberry Pi 3 des Raspbian-Betriebssystems,kann die Python IDEVersion 3auf dem Terminalmit der APT(Advanced Packaging Tool)installiertwerden. Dies geschieht mit der folgenden Eingabe:

pi@raspberrypi:~ $ sudo apt update

pi@raspberrypi:~ $ sudo apt upgrade

pi@raspberrypi:~ $ sudo apt-get install python3

5.1.2.2 Pyserial

Damit der Raspberry Pi über die Serielle Schnittstelle kommuniziert bzw. Daten mit dem Motorprüfstand austauscht, soll auf diesemdasPyserial Modulinstalliertwerden.Dieses Modul stellt die Serial Bibliothek für die serielle Kommunikation bereit.Durch den PypiPackage (Python Package Index)können die Python Module leicht auf dem Raspiinstalliert werden.

Packages für den Python3 Modul werden mit dem folgenden Befehl installiert:

pi@raspberrypi:~ $ sudo apt-get install python3-pip

Oder für den Python2 Modul

pi@raspberrypi:~ $ sudo apt-get install python-pip

Nun kannje nach Python-Versiondasentsprechende Pyserial Modul installiert werden. Der folgende Befehl zeigt, wie dasPyserial für Python 3 auf dem Raspberry Pi 3installiert wird.

pi@raspberrypi:~ $ python -m pip3 install pyserial

5.1.2.3 Pillow

Pillow ist eine Bibliothek für die Bildbearbeitung, wobei es sich um eine Python Imaging Library kurz PILbzw. eine zweite Art davonhandelt. Bevor diesesPython Modul auf dem Raspberry Piinstalliert werden,ist zubeachten, dass das PIL Modul noch nicht installiert wurde. Die Installation von Pillow auf dem Raspigeschieht wie folgt:

pi@raspberrypi:~ $ sudo pip3 install pillow

5.1.2.4 Webbrowser

DasWebbrowser Modul wird in dieser Arbeit benutzt, um esdem Nutzer zu ermöglichen,einen Link zu der Python-IDE zu erhalten. Die Installation dieses Moduls auf der Raspberry Pi geschieht mit dem folgenden Befehl auf das Terminal:

pi@raspberrypi:~ $ sudo pip3 install webbrowser

5.1.2.5CSV

CSV steht für Comma Separated Values und ist schon in der Python Version mitinstalliert. Dieses Modul dient zum Schreiben bzw. Lesen von Dateien mit CSV-Format. Es ist hilfreich für den Datenimport bzw. -export in der Form eines CSV-Formats.

5.1.2.6RPi.GPIO

Der Raspberry Pi bietet die Möglichkeit, über seine GPIOs mit der Außenwelt zu kommunizieren. Somit werden die GPIOs geschaltet, um die Eingänge aufzeichnen zu können. Das RPI.GPIO-Modul hilft hier dabei, das Relais zu schalten, wenn der Betrieb aktiviert ist.Der folgende Befehl zeigt, wie das RPi.GPIO-Modul auf dem Raspberry Pi installiert wird:

pi@raspberrypi:~ $ sudo apt-get update

pi@raspberrypi:~ $ sudo apt-get install python3-rpi.gpio

5.1.2.7Threading

Das Python-Threading-Modul ist eine gute Sache, wenn man auf der Raspberry Pi Parallel arbeiten möchte. Es wird verwendet, um mehrere Aufgaben eines Programms gleichzeitig auszuführen und erfordert Multicore-Prozessoren. Mit diesem Modul wird hier das gleichzeitige Senden und Empfangen von Daten über CAN- und UART-Busse ermöglicht.

5.2 Tkinter

Es existierenverschiedene Python-Modul für die Realisierung von grafischenBenutzeroberflächen.Beispielesind etwa PyQt, PyGTk, wxPython, Tkinter. In dieser Bachelorarbeit liegt der Fokus auf der Tkinter Softwarebibliothek,da hiermit einfach und schnell eine GUI erstellt werden kann. Diese Bibliothek ist auf dem Raspberry Pi werkseitig schon installiert. Tkinter steht für Tk Interface, während Tk ein GUI-Toolkit Bibliothek für die Programmiersprache Python ist.

(Kofler, Kühnast, & Scherbeck, 2018, S. 734)

5.2.1 Widgets Entwurf

Der GUI-Toolkit Tk verfügt über verschiedene Widgets, die man in fast alle Benutzeroberfläche finden kann. Es handelt sich also um: Label, Button, Canvas, Frames, Checkbuttons, Radiobuttons, Entry, Textfelder, Dialoge, Menüs, Schieberegler. In diesem Kapitel wird gezeigt wie Widgets mit dem Tkinter Toolkit erzeugt werden. Die Abbildung 16 stellt die für die Realisierung der Prüfstand-Seite Verwendete Widgets dar.

2

5

3

1

4

Abbildung 16: Die Verschiedene Widgets der Prüfstand Synchronmaschine Seite

1. Label

2. Buttons

3. Canvas

4. Menü

5. Text-Box

5.2.1.1 Label

Labels werden benutzt, um Texte und Bilder darzustellen,jedoch ermöglichen sie keine Interaktion mit dem Nutzer. Label sind in Tkinter sehr einfach zu erzeugen. Sie werden in dieser Bachelorarbeit benutzt, um zum Beispiel den Titel einer Seite darzustellen.

Da Labels in einem Tkinter-Fenster erzeugt werden, wird zuerst gezeigt wie die verschiedenen Fenster/Seite, die unsere Benutzeroberfläche enthält, mit Python Programmiert werden (siehe Abbildung 17).

importtkinter astk #import von Tkinter Modul

# Initialisierung der klasse Startseite

classStartSeite(tk.Frame):

# create StartPage

def __init__(self, master): # Definition der Konstruktormethode

pass

# Initialisierung der klasse Login Seite

classLoginSeite(tk.Frame):

# create StartPage

def __init__(self, master): # Definition der Konstruktormethode

pass

# Initialisierung der klasse Prüfstand

classPrüfstand(tk.Frame):

# create StartPage

def __init__(self, master): # Definition der Konstruktormethode

pass

#Start des Programms

root = tk.Tk()#erzeugt das tkinter-wurzelobjekt

tk.frames = {}

# Instanzieren der Seiten

StartSeite = StartSeite(root)

LonginSeite = LoginSeite(root)

Prüfstand = Prüfstand(root)

Graphen_Ansicht = Graphen_Ansicht(root)

StartSeite.pn = 0

LonginSeite.pn = 1

Prüfstand.pn = 2

Graphen_Ansicht.pn = 3

# Zusammenfassen zu Frame-Container Tk.frames

for F in {StartSeite, LonginSeite, Prüfstand, Graphen_Ansicht}:

tk.frames[F.pn] = F

# Festlegung der Anzuzeigenden Seite

def show_frame(p):

frame = tk.frames[p]

frame.tkraise()

show_frame(StartSeite.pn)

root.mainloop()

Abbildung 17: Fenster-/Seitenerstellung der grafischen Oberfläche mit Tkinter.

Zu Beginn des Python-Codeswird das Tkinter-Modul importiert und dann das Tkinter-Root-Objekt erstellt. Um dieses Fenster aktiv zu halten, muss am Ende des Codes die Schleife der Hauptklasse Tkinter verwendet werden. Nun können die unterschiedlichen Seiten der Software (StartSeite, LoginSeite, Prüfstand)

instanziieren und am Ende die verschiedene Klasse definiert werden. Eine Klasse in Python wird am Anfang mit dem Namen class, gefolgt vom Namen der Klasse und am Ende mit Klammern definiert.

Nachdem das Tkinter-Fenster erzeugt wurde, können nun die verschiedenen Widgets in der entsprechenden Seite erstellt werden. Die Erstellung von Widgets erfolgt in der createwidgets()-Methode der jeweiligen Klasse. Methoden werden in der objektorientierten Programmierung wie Funktionen definiert; d. h. mit dem Wort def' gefolgt von dem Namen der Methode. Die folgende Abbildung zeigt wie Label mit Tkinter erzeugt werden.

Abbildung 18: Label inTkinter

Der obige Code erzeugt ein Label in Tkinter mit dem Text Prüfstand Synchronmaschine. Dieses Label wird als Titel der Prüfstandseite (Seite 3 der grafischen Benutzeroberfläche) verwendet.

Ohne die Anwendung der grid()-Methode würde den Label mit dem Text Prüfstand Synchronmaschine nicht anzeigen.bg ist die Abkürzung für Background und fg für foreground.#41B77f ist eine andere Arte im Hexadezimale Form für die Eingabe in Tkinter einer Farbe.

5.2.1.2 Button

Ein Button ist eine Tkinter-Klasse, die eine interaktive Kommunikation mit dem Nutzer vereinfacht. Jeder Button führt zu einer bestimmten Aktion. Für die Realisation der GUI werden verschiedene Buttons erzeugt.So wird z.B. ein Button benötigt, um sich anzumelden bzw. damit der Nutzer die Möglichkeit hat, das Programm zu beenden. Ferner ist ein Button für den Sprung zur nächsten Seiteerforderlich und ein weiterer, um den Prüfstand ein- bzw. auszuschalten. Der Folgende Code zeigt, wie der Button<anmelden> mit dem Tkinter-Modul erzeugt wird:

Import tkinter as tk

root = tk.Tk()

Login_Button = tk.Button(root, text="anmelden",

font=("Helvetica",12,"bold"), width=46,

fg="#000000",bg="white")

Login_Button.pack()

root.mainloop()

Abbildung 19: Programmausschnitt für das Erzeugen des "Anmelden" Buttons

5.2.1.3 Canvas

Canvas dient dazu, grafische Elemente zu erzeugen. Somit wird in diesem Bereich das Zeigerinstrumentfür die Drehzahlanzeige realisiert. Das Canvas enthält unter Tkinter unterschiedliche Artengrafischer Elemente,wie z.B. Linie, Rechteckt, Kreis. Das Canvas-Element wird im Tkinter wie folgt erstellt:

Import tkinter as tk

root = tk.Tk() #erzeugt das Tkinter Fenster

Canvas_breite = 350 #die Breite der Canvas-Element wird gesetzt

Canvas_Höhe= 250 #die Höhe der Canvas-Element wird gesetzt

Canvas = tk.Canvas(root, width= Canvas_breite ,height=Canvas_Höhe,

background="#41B77f",highlightthickness=0)

Canvas.grid()

root.mainloop()

Abbildung 20: Programmausschnitt für das Erzeugen eines Canvas in einem Tkinter-Fenster.

· Der Zeigerinstrument

Canvas Breite

5

6

4

7

3

È51*5

8

sin(è5)

2

Canvas Höhe

È1

9

1

sin(è1)

0

10

Max. Teilstrich

cos(è5) =0

Min. Teilstrich

Cos(è1)

Canvas Fenster

Abbildung 21: Vorgehensweise für Das Zeichnen der Teilstriche der Zeigerinstrument

Die Skalenlinien des Zeigerinstruments werden durch das Erstellen von Linien mit unterschiedlichen Koordinaten erzeugt, die einen Kreisbogen bilden.Die Methode Create_linie der Klasse Canvas nimmt als Argument 4 Parameter. Das bedeutet, dass die Linien jeweils vom Punkt Innenradius für Teilstriche(siehe Abb.22) mit Koordinaten (Xi,Yi) zum PunktAußenradius für Teilstrichemit Koordinaten (Xj,Yj) verlaufen wird.i und j gehören zum Intervall [0, 10] mit 0 der minimalen Anzahl von Teilstrichen und 10 der maximalen Anzahl von Teilstrichen.

Ändert sich der Winkel Theta, dann ändert sich auch sein Cosinus und Sinus.

Für eine maximale Anzahl von Teilstrichen (N=10) wird der maximale Winkel auf 1800, für eine minimale Anzahl von Teilstrichen(N=0) wirdes auf 00gesetzt.

Anz. Von Teilstriche

Nmin=0

1

2

3

4

5

6

7

8

9

Nmax=10

Winkel in Grad 0

0

18

36

54

72

90

108

126

144

162

180

Tabelle 4: Berechnung der Teilstriche Winkel der Zeigerinstrument

Der Winkel allerTeilstriche wirdanhand der Dreisatz-Regel berechnet.

Also: Nmax - Nmin èmax- èmin

N=1 è1


Innenradius für Teilstriche

Außenradius für Teilstriche

Canvas_breite / 2

X

175

40

175

80

175 Pixel

250 Pixel

(0,0)

Y

350 Pixel

Abbildung 22: Zeigerinstrument für die Drehzahlanzeige in Canvas

Der folgende Python-code erläutert, wie die obenstehende Abbildung mit dem Modul Tkinterrealisiert wird.

Import math

From math import pi

Import tkinter as tk

Width=350 #Breite der Canvas-Fenster

Height=250 #Tiefe der Canvas-Fenster

Theta_min=0 # minimal winkel

Theta_max=180 # maximale winkel

Teilstrisch_min=0 # minimale Anzahl von Teilstrische

Teilstrisch_max=10 # maximale Anzahl von Teilstrische

Delta_Theta= Theta_max - Theta_min

Delta_N = Teilstrisch_max - Teilstrisch_min

root = tk.Tk()

canvas= tk.Canvas(root, width=width,height=height, bg="#41B77f",

bd=3, highlightthickness=0)

canvas.grid()

Gauge=canvas.create_oval(5 , 5, width, 350, fill="#111111", width=2,

outline="#EEEEEE", activedash=7,

dash=(12,1,1,1) )

red_line=canvas.create_Line(80,175,40,175,fill="red",width=8)

for i in range(11):

Teilschritte=canvas.create_line((width/2)-160*math.cos(((delta_Theta / Delta_N)*i)*pi/180),

(width/2)-160*math.sin(((delta_Theta / Delta_N)*i)*pi/180),

(width/2)-180*math.cos(((delta_Theta / Delta_N)*i)*pi/180),

(width/2)-180*math.sin(((delta_Theta / Delta_N)*i)*pi/180),

fill="yellow",width=4)

text=self.canvas.create_text(((width/2)-150*math.cos(((delta_Theta / Delta_N)*i)*pi/180),

(width/2)-150*math.sin(((delta_Theta /Delta_N)*i)*pi/180),

text=i,fill="yellow")

root.mainloop()

Abbildung 23: Programmausschnitt für die Realisierung der Gauge-meter

5.2.1.4Menü

Ein Menü stellt eine Gruppe von Befehlen dar, die in verschiedenen Fenstern sortiert sind. Somit besteht ein schneller Zugriff auf die an den häufigsten verwendeten Anwendungen. Es wird im User Interface-Menü erzeugt, um zum Beispiel die Farbe des Interface zu ändern, das Programm zu schließen oder die Hilfethemen anzuzeigen. Menüs werden in Tkinter wie folgt erzeugt:

Abbildung 24: Erstellen eines Menüs in Tkinter

5.2.1.5 Text-Box

Um mehrzeiligen Text im Tkinter anzuzeigen, wird das Textbox-Widget verwendet.Das Textfenster stellt die Funktion eines Editors zur Verfügung. Demnach können mit der Klasse Text() von Tkinter, Zeilen kopiert, markiert, eingefügt undgelöscht werden. Deshalb werden in der hier vorliegendengrafischen Benutzeroberfläche Text-Widgets erstellt, um die von CAN bzw. UART Bus gesendeten Daten anzuzeigen.

Die Abbildung 25 erläutert wie Textbox-Widget mit Tkinter erstellt wird.

Abbildung 25: Erstellen eines Textfeldes in Tkinter

Es ist hier zu beachten,dass dieses Textfeld mit Hilfe des Scrollbar-Widgets entlang der X-Achse oder Y-Achse gescrollt werden kann. Der oben beschriebene Python-Code gibt die folgende Anzeige zurück.

X-Achse scrollbar Widget

Textfeld X-Achse Scrollbar Widget

Abbildung 26: Anzeigefenster auf der grafischen Oberfläche

6.Kommunikation mit der Hardware

6.1 CAN-Bus-Kommunikation

6.1.1 Der MCP-2515

Das CAN-BUS-Modul,das in dieser Bachelorarbeitfür die Kommunikation mit dem Motorprüfstand verwendet wird, ist der MCP-2515. Ein detaillierter Überblick über das Modulistim Punkt 2.2.2.2)zu entnehmen. Dieses besteht aus einem MCP2515 CAN Controller und einem TJA1050 CAN Transceiver. DiesenbeidenChips enthalten auf die Platine eine gemeinsame Spannungsversorgung(Raspberry Pi Foundation, 2019).

Gemeinsame Spannungsversorgung

Abbildung 27: Schaltplan einem MCP2515 CAN Modul(Raspberry Pi Foundation, 2019)

Da der MCP2515 Controller mit einem Eingangsspannung von 3,3 V versorgt werden soll und der TJA1050 CAN Transceiver mit einer Versorgungsspannung von 5V, ist es erforderlich,den Schaltplan des CAN-Moduls zu modifizieren,sodass die beiden Chips eine getrennte Spannungsversorgung haben. Die Versorgungspannung beider Chips mit 5V würde funktionieren, jedoch wäre dann ein Pegelwandeln für den SPI erforderlich. Die GPIO-Pins von Raspberry Pi sind NICHT 5V tolerant(vimtut0r, 2019).5V tolerant bedeutet,dass ein 5V-Baustein einen 3V-Baustein ansteuern kann, was hier jedoch nicht der Fall ist.

Abbildung 28: ModifizierterSchaltplan der CAN BUS Modul (Raspberry Pi Foundation, 2019).

Der Raspberry Pi kann nun mit dem MCP 2515 CAN-Modul angeschlossen werden. Die Schaltung gestaltet sich wie folgt:

5V Versorgungsspannung für der TJA1050 CAN Transceiver

MCP2515

CAN Controller

Raspberry Pi Modell 3B

Abbildung 29: Schaltung von MCP2515 mit dem Raspi(Raspberry Pi Foundation, 2019)

Der gesamte Schaltplan mit Pin-Belegungeiner CAN-Bus Kommunikation mit dem MCP-2515stellt sich folgendermaßen dar:

Pin Nummer(Kein GPIO Nummer)

TJA1050

Abbildung 30: Gesamter Schaltplanmit der Pin-Belegung einer CAN-BUS Kommunikation (Hackster.io, an Avnet Community, 2019)

Anmerkung:CS, MISO, MOSI, CLK zeigt die Belegung der Pins der SPI-Schnittstelle.Zudem wäre die Aktivierung von diesen auf dem Raspberry Pi für die Kommunikation mit dem CAN Bus notwendig.

6.1.2Vorbereitung

6.1.2.1 SPI Konfiguration

Es gibt zwei Möglichkeiten,die SPI-Schnittstelle auf dem Raspberry Pi zu aktivieren. Die erste Möglichkeit wäre es, den folgendenBefehl über das Terminal einzugeben. Hierzu muss zunächst das Linux-System aktiviert und geöffnet werden,danachdas Fenster für die Konfiguration des Interfaces wie folgendes:

Achtung: Der Text, der hinter dem Hash-Zeichen (#) steht,istausschließlich als Kommentar zu betrachten.

pi@raspberrypi:~ $ sudo apt-get update #Aktualisierung von Linux-System

pi@raspberrypi:~ $ sudo apt-get upgrade#sucht nach neue Version der Linux-sys

pi@raspberrypi:~ $ Sudo raspi-config #öffnen das KonfigurationFenster

Dann ist das ProgrammEinstellungen zu starten. Es ist dasInterfacing Options' Menü unter den erweiterten Möglichkeiten zu wählen(siehe 1 unter Abb.31). Danach wird das unter Menü Serial Peripheral Interface(SPI) selektiert, sodass nun dieSPI-Schnittstelleaktiviert bzw. deaktiviert werden kann. Schließich wird die Einstellung mit einem <ok> bestätigt.(FrAn, 2019)

1

2

4

3

1

Abbildung 31: Die verschiedenen Schritte für die Aktivierung der SPI auf dem Raspberry Pi

Die andere Möglichkeit,um das SPI zu aktivieren, erfolgt mit der manuellen Einrichtung. Es wird dafür die /boot/config.txt Datei bearbeitet. Diese Datei ist mit einem Editor zu öffnet, indem der folgende Befehl in das Linux-Kommando eingegeben wird:

pi@raspberrypi:~$ sudo nano /boot/config.txt

Danach wird die folgende Zeile eingegeben:

dtparam=spi=on // dieser Befehl aktiviert das Serial Peripheral Interface (SPI)

6.1.2.2 CAN-Bus (MCP2515) Konfiguration

Für die Konfiguration der MCP2515 auf dem Raspberry Pi muss bekannt sein, welche Kernel-Version auf der Raspberry Pi installiert ist. Dies lässt sich mit dem Befehl uname -aherausfinden

pi@raspberrypi:~$ uname -a

Die Konfiguration der MCP2515 CAN Bus erfolgt dann beim Ergänzen einiger Overlay-Leitungen in der /boot/config.txt Datei.

#CAN-BUS Overlay

dtoverlay=mcp2515-can0-overlay,oscillator=8000000,interrupt=25

dtoverlay=spi0-hw-cs

Die obenstehende Eingabe ist abder4.4.x + Kernel Version gültig.

Bei früheren Kernel-Versionen,d. h. für Versionen älter als Version 4.4.x, muss die folgende Zeile eingefügt werden:

dtoverlay= mcp2515-can0-overlay,oscillator=8000000,interupt=25

dtoverlay=spi-bcm2835-overlay

Der für diese Bachelorarbeit vorliegende MCP2515 Controller hat eine Taktfrequenz von 8MHz,weshalb auf dem Parameter oscillator der Wert 8000000 steht. Der Zahl 25 bedeutet, dass das Interrupt Pin der CAN Controller auf der GPIO.25 (BCM-Nummerierungsschema) der Raspberry Pi angeschlossen wird. Der GPIO.25 entspricht der Pin 22.

Tabelle 5: GPIO-Belegung der Raspberry Pi Model 3B(element14, 2019)

Nach dem Neustart der Raspberry Pi durch den sudo rebootBefehlkann nun überprüft werden, ob der MCP2515 CAN Bus gut konfiguriert wurde. Dafür muss das folgende Kommando eingegeben werden.

Der SPI-Schnittstelle wurde erkannt.

spi0.0 spi0.1

pi@raspberrypi:~ $ ls /sys/bus/spi/devices/spi0.0

driver modalias net of_node subsystem uevent

pi@raspberrypi:~ $ ls /sys/bus/spi/devices/spi0.0/net

can0

 

Der CAN-Schnittstelle wurde erkannt.

Damit die Can0-Schnittstelle beim Systemstart automatisch mit einer Bitrate von 500 kbit/s aufgerufen wird, muss die etc/network/interfaces Datei bearbeitet werden. Dies erfolgt wie folgt:

pi@raspberrypi:~$ sudo nano /etc/network/interfaces

In der Datei werden die folgenden Zeilen eingefügt und diese wird mit STRG + Xund danach mit Y gespeichert:

GNU 2.7.4

# interfaces (5) file used by ifup(8) and ifdown(8)

Auto can0

Iface can0 can static

bitrate 500000

Die Verbindungsstatus wird mit dem ifconfig Kommando auf dem Terminal angezeigt.

pi@raspberrypi:~$ ifconfig

Der Befehl ip kann detaillierte Informationen über den Netzwerkstatus geben, wenn der folgende Befehl verwendet wird:

pi@raspberrypi:~$sudo ip -d -s link show can0

-d und -sbeziehensich jeweils auf Detail und Statistik

6.1.2.3 Installation von CAN-Utils

Mit diesem Tool kann einfach und schnell überprüft werden, ob CAN-Nachrichten gesendet bzw. empfangen werden können. Die folgende Zeile zeigt, wie es installiert wird:

pi@raspberrypi:~$sudo apt-get install can-utils

Der Test für den Datenaustausch über den CAN-Bus wird mit einem PCAN-USB-Adapter durchgeführt.

6.1.2.4PCAN-USB-Adapter Konfiguration

USB Anschluss

9-polige D-Sub-Steckverbindung

Abbildung 32: CAN-Interface für USB (PEAK-System Technik GmbH, 2019)

Der PCAN-USB-Adapter wurde von derPEAK-System Technik GmbH entwickelt und dient zu der einfachen Anbindung an ein CAN-Netzwerk. Dieser Adapter wird über eine 9-polige D-Sub-Steckverbindung für die Kommunikation über CAN-Bus angeschlossen. Die maximale Übertragungsrate wird bei 1Mbit/s erreicht und bestimmt somit die maximale Kabellänge für eine reibungslose Kommunikation.

Die folgende Tabelle zeigt die mögliche maximale CAN-Kabellänge in Abhängigkeitzu der Übertragungsrate.

Übertragungsrate

Buslänge

1 Mbit/s

40m

500 kbit/s

110m

250 kbit/s

240 m

125 kbit/s

500 m

50 kbit/s

1,3 km

20 kbit/s

3,3 km

10 kbit/s

6,6 km

5 kbit/s

13,0 km

Tabelle 6: mögliche maximale Kabellänge in Abhängigkeit zu der Übertragungsrate für das PCAN USB-Adapter(PEAK-System Technik GmbH, 2019)

Der High-Speed-Can-Bus (ISO 11898-2) hat keine interne Terminierung und muss an beiden Enden mit einem 120-Ohm-Widerstand terminiert sein (PEAK-System Technik GmbH, 2019). Der PCAN-USB-Adapterkann einen Standard-Frame sowie einen Extended-Frame mit bis zu 1Mbit/s übertragen. Der Anschlussbelegung des PCAN-Bus-Adaptersgestaltet sichfolgendermaßen:

Pin 2

Pin 7

Abbildung 33: Anschlussbelegung der PCAN-Bus-Adapter (PEAK-System Technik GmbH, 2019).

Durch die PCAN-view-Software kann der Datentransfer über den CAN-Bus betrachtet und aufgezeichnet werden. Dessen Installation erfolgt über denfolgenden Link https://www.peak-system.com/PCAN-USB.199.0.html

Abbildung 34: Ansicht von CAN-Transfer über die PCAN-view-Software(Warszawa, 2019)

6.1.3 Senden und EmpfangderCAN-Message

Ø Senden Und Empfang von Daten im TerminalFenster

Nach der Konfiguration des CAN-Moduls MCP2515 kann auf das Terminal Fenster schnell überprüfen werden ob das Modul Daten sendet bzw. empfängt. Vor dem Senden der Daten wird zunächst die Can0-Schnittstelle gestartet. Dies wird im folgenden Beispiel mit einer Bitrate von 500kbits/s aktiviert.

pi@raspberrypi:~$sudo ip link set can0 up type bitrate 500000

Das stoppen des Can0-Interface geschieht wie folgt:

pi@raspberrypi:~$sudo ip link set can0 down

Nachdem das Can0-Interface gestartet wurde,können nun Daten gesendet bzw. empfangen werden.

Senden einer 8-Bits-Can-Nachricht mit dem Identifier 123Hex:

pi@raspberrypi:~$cansend can0 123#FF

Daten Bits

Identifier

Can interface

Es handelt sich hier um einem Standard-Frame mit dem Maximum 11 Bits ((3FF) hex) Identifier. Für den Extended-Frame wäreMaximum 29 BitsIdentifiers((1FFFFFFF) hex)zugelassen.

Um Daten empfangen zu können,wird der folgende Befehl genutzt:

pi@raspberrypi:~$candump can0

Ø Senden und Empfang von Daten im Tkinter

Das Senden und Empfangen von CAN-Nachrichten im Python-Code beginnt mit dem Import des Can-Moduls und danach der Aktivierung der Schnittstelle (Abbildung 35).

Abbildung 35: Aktivierung des Can0 Interfaces in Python.

CAN-Nachrichten können nun mit dem folgenden Python-Code periodisch gesendet oder empfangen werden.

Abbildung 36: Periodische Senden Von CAN-Message in Python.

Abbildung 37: Empfang von CAN-Message in Python

6.2 DieUART-Kommunikation

In diesem Kapitel wird gezeigt, wie der SIMOREG Gerät parametrisiert werden soll, damit Daten über eine serielle Buskopplung (RS232 Schnittstelle) mit Hilfe des USS-Protokollsfehlerfrei ausgetauscht werden können.

6.2.1 Vorbereitung

6.2.1.1 RS232 Schnittstelle

Abbildung 37: USB zu RS232 Serial DB9 Adapter Kabel (Best Buy Co, Inc., 2019)

Abbildung 37: Sub-D 9 Pin RS232 Stecker/Buchse Kabel (partsdata, 2019)

Die RS232 ist eine physikalische Schnittstelle, die im Rahmen dieser Bachelorarbeit die Verbindung zwischen dem Raspberry Pi und dem SIMOREG herstellen wird.Der Raspberry Pi verfügt bei der Lieferung über keine Sub-D9-Stecker und braucht deswegen für die Verbindung mit dem RS232 einen Adapter (Abbildung 38), der an den USB Port der Raspberry Pi angeschlossen wird.

6.2.1.2 Aufbau der Telegrammrahmen

Mit Hilfe eines USS-Protokollskönnen Daten über eine serielle Schnittstelle gesendet bzw. empfangenwerden. Der Telegrammrahmen eines USS-Protokollsbeginnt stets mit einem Startbit, gefolgt von der Länge des Telegramms, danach kommen die Adresse Byte, der Nutzdatenblock und am Ende der Block Check Charakter. Das folgende Diagramm zeigt den detaillierten Aufbau eines Telegramms mit einem USS-Protokoll.

Nutzzeichen

STX LGE ADR PKW Bereich PZD Bereich BCC

02Hex 1 Byte 1 Byte

LGE=n+2{1=LGE=254}

PZD1

PZD2

 

PZDn

PKE

IND

PWE

16 Bits (1 Wort)

Ak

SP

PNU

HB

LB

Steuerwort

Hauptsollwert

Sollwert/

Zusatz-Steuerwort

4Bits 1Bit11Bits

Abbildung 38: Telegrammaufbau eines USS-Protokolls

HB: High Byte

LB: Low Byte

6.2.1.3Parametrierung des USS-Protokolls für das SIMOREG 6RA7025

1

2

Abbildung 39: Der SIMOREG DC-MASTER 6RA7025

1 -> Parametrierungseinrichtung

2 -> X300 Stecker mit RS232/ RS485 Norm.

Die Stromrichter SIMOREG 6RA70 sind kompakte, volldigitale Einheiten für den Drehstromanschluss und werden für die Anker- und Feldversorgung von Gleichstromantrieben mit variabler Drehzahl eingesetzt. Dieses Gerät enthält an Ihre Tür eine Bedient- und Parametrierungseinheit für die Steuerung, Regelung bzw. Überwahrung Gleichstromantrieben. Auf der Parametrierungseinrichtung befindet sich zusätzlich der Stecker X300 mit einer USS-Schnittstelle nach RS232- bzw. RS485-Norm für die Kommunikation mit Master-Geräten. Der Stromrichter SIMOREG 6RA7025 hat eine Bemessungsspannung von 400 Volt Drehstrom und erlaubt eine maximale Feldstrom von 10 A und Ankerstrom von 50 A. Die folgende Abbildung zeigt eine Ausführliche Technische Daten der SIMOREG DC-MASTER 6RA7025.

Abbildung 40: Technische Daten der SIMOREG DC-MASTER 6RA7025

Die USS-Protokollkonfiguration für den SIMOREG DC-MASTER 6RA7025 ist mit den Parameternummern P780 bis P803 konfiguriert. Um sie einzurichten, muss eine Zugangsberechtigung eingeholt werden. Dies kann durch Einstellen des PKW-Elements der Parameternummer P051 auf 40 (Tabelle 7) erreicht werden. Alle verwendeten Parameter können mit der Parameternummer P051 angezeigt werden. Dazu muss der Parameterwert auf 3 gesetzt werden (Tabelle 8).

PNU: 051

Typ: O2

Index: keine

Beschreibung: Schlüsselparameter

Parameterwert (PWE):

PNU: 052

Typ: O2

Index: keine

Beschreibung: Auswahl der Anzuzeigenden Parameter

Parameterwert(PWE):

0 nur Parameter anzeigen, deren Werte von der Werkseinstellung abweichen

1 nur Parameter für Einfachanwendungen anzeigen

3 alle verwendeten Parameter anzeigen

Tabelle 7: Einstellung der Schlüsselparameter

Tabelle 8: Auswahl der Anzuzeigenden Parameter des SIMOREG Geräts

Ø Auswahl des USS-Protokolls für das SIMOREG Gerät

Auf dem SIMOREG-Gerät sind viele Schnittstellenprotokolle implementiert. In dieser Arbeit wird die Auswahl auf die USS-1 gerichtet. Um ihn zu aktivieren,muss für die Parameternummer P780 den Parameterwert 2 ausgewählt werden (Tabelle 9).

PNU: 780

Typ: O2

Index: keine

Beschreibung: Protokollanwahl für die Grundgeräteschnittstelle G-SST1

Parameterwert(PWE):

0Keine Funktion

2 USS-Protokoll

8 für werksinterne Zwecke

9für werksinterne Testzwecke

Tabelle 9: Auswahl des USS-Protokolls für das SIMOREG Gerät

Ø Eingabe von Verwendete Prozessdaten

Die Anzahl der Prozessdaten werden auf den Parameter P781 eingestellt. Dieser Parameternummer kann bis zu 16 Prozessdaten aufnehmen.Die empfangenen PZD-Elemente werden dann später an Konnektoren K2001 bis K2016 zur Verfügung stehen und an die Parameters r810.1 bis r810.16 angezeigt.Es ist zu beachten, dass diese Parameternummer nur dann von Bedeutung ist, wenn das PWE von P780 auf 2 (USS-Protokoll) oder 8 (für interne Zwecke) eingestellt wurde. In dieser Arbeit werden 8 Prozessdaten verwendet, weshalb das PWE von P781 auf 8 eingestellt werden muss.

Ø Eingabe der Quelle für die Sendedaten für G-SST1

Nach Eingabe der Anzahl der Prozessdaten ist es nun möglich, die PZD-Elemente auszuwählen, die an den USS-Master zurückgegeben werden.Dazu werden über die Parameternummer P784 Konnektoren ausgewählt, die als Sendedaten über die USS 1-Schnittstelle an den USS-Master übertragen werden. Die folgenden Messwerte werden für diesen Auftrag angezeigt:

Ankerstrom -> Konnektor K0117

Erregerstrom -> Konnektor K265

Ankerspannung -> Konnektor K0287

Ist-Drehzahl -> Konnektor K0179

Die Tabelle 10 zeigt wie der Parameternummer P784 mit den Ausgewählten Konnektoren am SIMOREG Gerät konfiguriert wird.

PNU: 784

Typ: L2

Index: 16

Beschreibung: Quelle für die Sendedaten für G-SST1

Parameterwert(PWE):

i001 K0032 (WE)

i002K0167 (WE)

i003 K0265

i004k0033 (WE)

i005 K0117

i006K0142

i007 K0179

i008 K0287

Tabelle 10: Eingabe der Quelle für die Sendedaten über G-SST1

Ø Einstellung der PKW Anzahl

Mit diesem Parameter wird festgelegt, wie viele PKW-Elemente im PKW-Bereich des Benutzerdatenblocks vorhanden sein sollen. Die Spezifikation bezieht sich immer inWortlänge auf PKW-Elemente von Parameternummer P782.Da die Anzahl der PKW für diese Bachelorarbeit nicht relevant ist, wird ihr PKW-Element auf 4 gesetzt. Idealerweise wäre das Setzen diesem Wert auf 0.

Ø Baudrate

Die Baudrate ist die Anzahl der in einer Sekunde übertragenen Daten. Dies hängt von der Länge des für die Kommunikation verwendeten Kabels ab. Die Auswahl der Baudrate am SIMOREG-Gerät für die Universalschnittstelle 1 erfolgt im Parameter P 783 (siehe Abbildung 43).

PNU: 783

Typ: O2

Index: keine

Beschreibung: Baudrate für G-SST1

Parameterwert(PWE):

1 300 Baud

2600 Baud

3 1200 Baud

4 24000 Baud

5 4800 Baud

6 9600 Baud

7 19200 Baud

8 38400 Baud

9 56700 Baud

11 93750 Baud

13 187500 Baud

Abbildung 41: Auswahl der RS232 schnittstelle-Baudrate für das Senden von Telegrammen

Ø Auswahl der Slave Adresse

Die Slave-Adresse (ADR) ist die Adresse, an die das SIMOREG-Gerät angeschlossen ist. Das USS Protokoll kann bis zu 32 Teilnehmer aufnehmen, also maximale 31 Slaves und 1 Master, Single Master-System. Das SIMOREG Gerät befindet sich auf die Adresse 2, daher wird das PKW-Element mit der Parameternummer P786, Konfigurationsparameter Slave-Adresse, auf 2 gesetzt.

Ø Einstellung der Telegrammüberwachung

Um die Reaktionszeit auf dem Grundgerät durch den Master überwachen zu können, muss das maximale Zeitintervall zwischen zwei gültigen Telegrammen, die über diesen Parameter für das Grundgerät adressiert werden, eingestellt werden. Die Angabe bezieht sich auf die Einheit "Sekunden[sec]". Erfolgt keine Überwachung, muss der Parameter auf 0 gesetzt werden.Die Telegrammausfallzeit für das USS1-Protokoll ist auf der Parameternummer P787 einzustellen.

Ø Parametrierung Freigabe

Bei diesem Parameter wird die ausgewählte Schnittstelle zur Konfiguration aktiviert. Wenn dieser Parameter nicht konfiguriert ist, wird der Werkseinstellwert die Zahl 6 auf dem PKW-Element gesetzt. Die Parametereinheit (PMU) und die universelle serielle Schnittstelle 1 werden dann automatisch aktiviert. Soll dieser Parameter konfiguriert werden, wird die Parameternummer P927 verwendet. Für diese Arbeit wird die PKW-Element der Parameter P927 auf 4 eingestellt.

Anmerkung:Ein Parameterwert kann nur über die aktivierten Schnittstellen geändert werden.

Ø Diagnoseinformation für G-SST1

Die Diagnose Parameternummer (r789) gibt Informationen über den Status der Kommunikation mit dem Master-Gerät. Somit kann z.B. überprüfen werden ob ein Fehler während des Datentransportsvom Master zum Slaven aufgetreten ist.

6.2.1.4 Konfiguration der RS232-Schnittstelle auf dem Raspberry Pi

Die Konfiguration der RS232-Schnistelle auf dem Raspberry Pi erfolgt in zweigroßen Schritten. Da auf der Raspberry Pi 3 die UART Schnittstelle per Voreinstellung auf das Bluetooth Modul konfiguriert ist, muss diese Serielle vor der Benutzung abgeschaltet werden.Aus diesem Grundwird die Datei /boot/cmdline.txt und /etc/inittab bearbeitet. Die Datei /boot/cmdline.txt steuert den Pi-Boot-Prozess. Dort sind verschiedene Boot-Optionen definiert, so auch die serielle Konsole. Als Defaultbefindet sich in der Datei der folgende Text:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Die folgende Zeile console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

muss aus der Datei gelöscht werden, aber alles andere darf unter keinen Umständen geändert werden.Es bleibt dann am Ende in der Datei der nebenstehende Text.

dwc_otg.lpm_enable=0

console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

In der Datei /etc/inittab erfolgt die Deaktivierung der seriellen Konsole durch Platzieren eines vorherigen Kommentarzeichens auf der Zeile mit dem Text T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100. Das ganze sieht dann folgendes aus:

#Spawn a getty on Raspberry Pi serial line

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Die Aktivierung/Deaktivierung der Schnittstelle kann dann später über dieraspi-config Befehl erfolgen indem das Interfacing Options' Menü unter den erweiterten Möglichkeiten zu wählen ist und danach das unter Menü Serial selektiert wird. Damit lässt sich die Schnittstelle aber nur komplett aktivieren oder deaktivieren.

( Hochschule München, FK 04, Prof. Jürgen Plate, 2018)

6.2.2 Auftragstelegramm

Abbildung 42: Aktivierung der Serielle Schnittstelle in Tkinter.

Das Auftragstelegramm ist definiert als das gesendete Telegramm des Mastersan den Slaven. Damit einefehlerfreie Kommunikation zwischen den Raspberry Pi (Master) und SIMOREG-Gerät(Slave) existiert, muss an beiden Geräten die gleiche Übertragungsbaudrate bzw. Parametrierungeingestellt werden.Die Konfiguration bzw. Aktivierung der Serielle Schnittstelle in Python wird mit dem Folgenden Code durchgeführt.

Daten werden in Python mit Hilfe des Pyserial Moduls gesendet bzw. empfangt. Als Auftragstelegramm wird in Python der folgende Code erzeugt:

Abbildung 43: Programmabschnitt für das Senden von Telegrammen über die RS232 Schnittstelle

6.2.3 Antworttelegramm

Unter einem Antworttelegramm wirddie Rückmeldung eines Slaves an den Master verstanden. Der Slave sendet dann eine Nachricht an das SIMOREG-Gerät zurück, wenn dieser die von dem Master gesendeten Telegramme fehlerfrei empfangen hat und wenn diese Telegramme an ihn adressiert wurden.

Die nächste Abbildung zeigt, wie Daten von dem Slaven an den Master übertragen werden.

Abbildung 44:Programmabschnitt zum Empfangen von Telegrammen über die RS232-Schnittstelle

Um Daten zyklisch zu senden und zu empfangen, ist in Tkinter eine spezielle Methode erforderlich, nämlich after(), die die Callback-Funktion aufruft. Die Gesprächsdauer kann in Millisekunden über den Delay-Parameter eingestellt werden. Die folgende Abbildung zeigt, wie Daten zyklisch über die RS 232-Schnittstelle mit der Tick-Methode der Klasse Prüfstand() gesendet und empfangen werden.

Abbildung 45: zyklische senden und empfang von daten über die RS232-Schnittstelle

7.Laborpraktikum

In diesem Teil der Arbeit geht es um die Testphase. Hier wird überprüft ob der Raspberry Pi Daten über CAN- und UART- Bus senden und empfangen kann. Die Gesamte Testphase wird im Raum F 318 an der HTW-Berlin Wilhelminenhofstraße 75A, 12459 Berlin erfolgen(Abbildung 36).

Abbildung 46: Labor Elektrische Maschine an der HTW-Berlin Wilhelminenhofstraße 75A Gebäude F Raum 328

8

5

7

6

2

4

9

31

1

1.Rechner:Auf diesem Rechner läuft unter dem Code Composer Studio IDE das Programm für das Senden und Empfangen von Nachrichten mit dem F28335 Mikrocontroller von Texas Instrument. An diesen sindder PCAN-USB-Adapter für die Visualisierung von CAN-Transfer und das USB Kabel für die Stromversorgung der F28335 angeschlossen.

2. Der Raspberry Pi: Der Einplatinencomputer steht im Zentrum aller Steuerungen und wird mit einem 5-Volt-Ladegerät versorgt.

3. Der Monitor: Dieser wird mit dem Raspberry Pi durch ein HDMI-Kabel verbunden.

4. Das 8-Kanal Relais Modul

5.Das MCP2515 Modul

6.Der Transceiver

7.Der F28335 Mikrocontroller

8. Der PCAN-USB-Adapter

9. Das Oszilloskope

Nach Eingabe der für die Konfiguration der CAN- und UART-Busse notwendigen Parameter und Abschluss der Programmierung der grafischen Benutzeroberfläche gelangt man in diesem Kapitel zur Testphase. So wird das Senden und Empfangen von Nachrichten über die CAN-Bus-Steuerung MCP2515 oder das Senden und Empfangen von Telegrammen über die RS232-Schnittstelle gesteuert. Die folgende Abbildung zeigt den Programmablauf der grafischen Benutzeroberfläche für eine erfolgreiche Kommunikation.

Abbildung 47: Programmablauf für einen erfolgreichen Daten-Transfer auf das GUI

1. CAN-BUS -Systems Kommunikation

Bevor die Datentransfers über den CAN-Bus zwischen Raspberry Pi und F28335 Mikrocontroller sowie dieser über den UART-Bus zwischen Raspi und SIMOREG stattfinden,müssen zuerst alle Komponenten zusammengeschaltet und an einer Stromquelle versorgt werden. Die folgende Schaltung zeigt die physikalische Verbindung mit den Komponenten.

Raspberry Pi 3

MCP2562-Transceiver

Relais

Mikrocontroller F28335 des nationalen Instruments

MCP2515 CAN Bus Modul

Abbildung 48: Aufbau der Schaltung für die CAN-Bus Kommunikation

Beim Starten des Programmsist die Eingabe eines Benutzernamens und einesPassworts erforderlich. Hierfür werden derBenutzernamehtw-berlin (klein geschrieben)und das Passwortsose19verwendet.Mit der korrekten Eingabegelingt der Login-Prozess und die Weiterleitung zur Prüfstand-Seite(Abbildung 51).Hier finden alle Konfigurationen des Bussystems bzw. das Senden und Empfangen von Daten statt.

An erster Stelle soll der Prüfstand eingeschaltet werden. Wird die Taste<Prüfstand einschalten>nicht gedrückt, verbleibt das Anzeigeelement bei <Prüfstand Aus>.

Beim Einschalten des Prüfstands, schaltet auch gleichzeitig das 8-Kanal-Relais und die Anzeige <Prüfstand Ein> leuchtethellgrün.Nun wird die Konfiguration der Bussystem vorgenommen.

Für die Kommunikation mit dem CAN-BUS sollen die Baudrate, das Sendeintervall und der CAN-Frame-Type ausgewählt werden. Hierfür wird der Taster <CAN Bus Konfiguration> gedrückt und auf das geöffnete Fensterdie unterschiedlichen Parameter gesetzt, mit <OK>wird dies beendet (Abbildung 51).

Nach einer erfolgreichen Konfiguration wird auf der schwarzen TextBox

Die ausgewählte Konfigurationsparameter angezeigt. Im vorliegenden Fall wird der CAN-Bus mit einer Baudrate von 500 Kits/s eingestellt. Ein Extended CAN-Frame wird jede Sekunde über den CAN-Bus gesendet.

Abbildung 49: Konfigurationsparameter der CAN-Bus

Die eingestellten Konfigurationsparameter (Baudrate) können auch durch Eingabe des folgenden Befehls auf dem Terminal überprüft werden:

pi@raspberrypi:~$sudo ip -detail -statistic link show

Ø Senden eines Extended CAN-Frame

Die zu sendenden Daten sind als CSV-Format in einem USB-Stick gespeichert und müssen deswegen importiert werden. Der Datenimport auf dem GUI erfolgt mit der Taste <Datei importieren>. Nach dem Import der Datei werden auf der TextBox der Pfad der Datei, ihr Inhalt und ihreGrößeangezeigt (Abbildung 52).

Große der Datei

Pfad der Datei

Inhalt der CSV. Datei

Abbildung 50: TextBox mit geladenem Track

Der geladene Trackwird nun über den CAN-BUS mit einem gültige Identifier gesendet (Abbildung 54). Es besteht auch die Möglichkeit, einzelne Nachrichten über den CAN-Bus zu senden. Dafür soll der Checkbutton mit dem Label Daten aus der Datei sendennicht eingekreuzt werden (Abbildung 53).

Abbildung 51: Sendekonfiguration Fenster für das Senden einzelnerDaten

Abbildung 52: Sendekonfiguration Ansicht für die Übertragung des geladenen Tracks

Nach Bestätigung des Sendevorgangs wird der geladene Track mit dem entsprechende Identifier gesendet. Das folgende Bild zeigt das Verhalten einem gesendeten CAN-Framemit einer Bitrate von 500 Kbits/s.

Abbildung 53: Anzeige des zyklisch an das Oszilloskop übertragenen CAN-Frames

Auf das Bild kann man direkt erkennen, dass die Kommunikation bei der CAN Bus im Vollduplex geschieht, d. h. der Sende- und Empfangsprozess erfolgt gleichzeitig.

Abbildung 56 zeigt, wie die gesendete CAN-Nachricht erfolgreich vom Mikrocontroller F28335 des nationalen Instruments empfangen wurde. Das grüne Signal entsprichtdemSignal, das aus dem Pin Rx der MCP2562 Transceiver rauskommt.

Abbildung 54: Empfangene CAN-Nachricht vomF28335 Mikrocontroller

2. UART-BUS-System Kommunikation

5

1

3

4

6

2

Abbildung 55: Zusammenschaltung des SIMOREG-Geräts mit dem Raspberry Pi über RS232 -Schnittstelle.

Das obige Bild zeigt die Verbindung des Raspberry Pi (Zahl 5) mit dem SIMOREG 6RA7025(Zahl 4) über eine RS232-Schnittstelle. Die Zahl 1 im Bild zeigt den zu steuernden Gleichstrommotor, der vom Umrichter geregelt und gesteuert wird.Dieser wird dann an der Raspberry Pi mittels eins grauen RS232-Kabels

Verbindet (zahl3).Die Zahlen 6 und 2 stellen das serielle USB-zu-RS232 DB9 Adapterkabel und den Monitor dar.

Die grafische Benutzeroberfläche der RS232-Schnittstelle kann beim Einschalten des Prüfstandes konfiguriert werden. Hierfür wird es auf die Taste<UART Konfiguration>durchgeführt (Abbildung 58).

Abbildung 56: UART-Konfiguration auf der grafischen Oberfläche

Nach Bestätigung der Taste <Ok> und Erkennung der RS232-Schnittstelle zeigt das Widget-Fenster die vorgenommenen Einstellungen an (Abbildung 59).

Abbildung 57: Anzeige der Eingestellte Parameter für die Konfiguration der UART-Bus

Nach der Konfiguration der seriellen Schnittstellen kann nun der Telegrafenrahmen konfiguriert und gesendet werden. Das folgende Bild zeigt das Telegrammrahmen-Konfigurationsfenster.

Abbildung 58: Telegrammrahmen Konfiguration.

Achtung!!!Die verschiedenen Einstellungen, die am SIMOREG-Gerät über die Parametrierungseinheit vorgenommen wurden (Kapitel 6.2.1.3), müssen mit denen an der grafischen Benutzeroberfläche übereinstimmen für eine Erfolgreiche Senden und Empfangen von Daten.

8. Fazit und Ausblick

Im Rahmen dieser Bachelorarbeit ging es um die Programmierung eines GUI auf einem Einplatinencomputer für die Realisierung von Fahrzyklen auf einem Motorprüfstand.

Im Laufe der Arbeit wurde belegt, dass der Raspberry Pi 3 Model B mit seinem Quad Core von jeweils 1,2 GHz, multiple GPIO Pins und USB Anschüsse(4 USB Anschlüsse) der Ideale Mikrocomputer ist für die Realisierung dieser Arbeit. Für den Datenaustausch zwischen, einerseits der Raspberry Pi und den F28335 Mikrocontroller des nationalen Instruments und anderseits zwischen den Raspberry Pi und das SIMOREG Gerät,wurde die Anwendung UART- und CAN-Bussystemeverwendet. Mit Hilfe Von Tkinter Toolkit die im Python inklusiv ist, konnte sehr einfach die Programmierung des User Interfaces erstellt werden. Dieswurde einfach realisiert, sodass es einen leichten Zugriff auf alle Funktionalität bietet. Hierzu erhält auch das Interface die wichtigsten Parameter, die für die Steuerung und Anzeige der Messergebnisse nötig sind.Nach erfolgreicher Konfiguration von Beiden Bussystemen auf den Raspberry Pi, konntenzyklischDaten gesendet bzw. empfang werden.

Probleme:

Da der MCP2515 Controller mit einer Eingangsspannung von 3,3 V versorgt werden soll und der TJA1050 CAN Transceiver mit einer Versorgungsspannung von 5V, war es notwendig, den Schaltplan des CAN-Moduls zu modifizieren, sodass die beiden Chips eine getrennte Spannungsversorgung haben.

Für das Senden und Empfangen von Nachrichten über CAN Bus benötigt der F28335 Mikrocontroller des nationalen Instrumentsein Transceiver. Dieser wird dazu dienen, das binäre Signale in HIGH und LOW Pegel umgewandelt werden.

Ausblick:

Für eine bessere Visualisierung von Messergebnissen könnte auch auf das GUI eine Graphische Widgets erstellt werden. Diese kann z. B. ein Plot sein. Somit wird ein schneller Fortschritt bei der Einarbeitung von Daten ermöglicht.

Eine andere Erweiterung wäre auch die Anzeige von Drehzahl-Istwert der Gleichstrommotor auf dem Zeigerinstrument. Sensoren wie der Gyroskope könnte auch angewendet werden. Seine Werte werden dann auf die GPIO-Pins der Raspberry Pi gelesen und angezeigt. Diese Anwendung könnte einen sehr großen Vorteil bringen, wenn die Winkelgeschwindigkeit des Motors gemessen werden soll. Mit diesem Verfahren werden im Auto Navigationsgeräte aufgebaut.

Literaturverzeichnisund Quellenverzeichnis

Hochschule München, FK 04, Prof. Jürgen Plate. (18. 07 2018). Raspberry Pi: Serielle Schnittstelle. Abgerufen am 01. 70 2019 von www.netzmafia.de: http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_Serial.html

42project. (21. 07 2019). 42project Elektronik, Mikrocontroller und Zubehör kaufen. Abgerufen am 21. 07 2019 von 42project.net: https://42project.net/shop/module/kommunikationsmodule/spi-mcp2515-can-bus-modul-tja1050-transceiver-shield-5v-33v-fuer-arduino-und-pi/

Amazon. (20. 08 2019). Raspberry Pi 16GB Preloaded (NOOBS) SD Card - Buy Raspberry Pi 16GB Preloaded (NOOBS) SD Card Online at Low Price in India - Amazon.in. Von www.amazon.in: https://www.amazon.in/Raspberry-Pi-16GB-Preloaded-NOOBS/dp/B01H5ZNOYG abgerufen

Best Buy Co, Inc. (01. 10 2019). StarTech USB to RS232 Serial DB9 Adapter Cable with COM Retention 1 ft | Best Buy Canada. Abgerufen am 01. 10 2019 von www.bestbuy.ca: https://www.bestbuy.ca/en-ca/product/startech-usb-to-rs232-serial-db9-adapter-cable-with-com-retention-1-ft/12386934

buyzero. (31. 08 2019). Einführung in UART, RS232 und RS485 - Grundlagen - pi3g. Abgerufen am 31. 08 2019 von buyzero.de: https://buyzero.de/blogs/news/einfuhrung-in-uart-rs232-und-rs485-grundlagen

CAN-Bus with Raspberry Pi: HowTo/Quickstart MCP2515 Kernel 4.4.x+ - vimtut0r's blog. (kein Datum). Von vimtut0r.com. abgerufen

Elektronik Kompendium. (20. 08 2019). Duplex und Duplexing (TDD FDD). Abgerufen am 2019. 08 2019 von www.elektronik-kompendium.de: https://www.elektronik-kompendium.de/sites/kom/0811081.htm

element14. (21. 07 2019). Raspberry Pi 3 Model B GPIO 40 Pin Block Pinout | element14 | Raspberry Pi 3. Abgerufen am 21. 07 2019 von www.element14.com: https://www.element14.com/community/docs/DOC-73950/l/raspberry-pi-3-model-b-gpio-40-pin-block-pinout

Engels, H. (2000). CAN-BUS-Technik einfach,anschaulich und praxisnah vorgestellt. Franzis.

FrAn. (14. 07 2019). Projekt Raspberry Pi 2 Dashcam. Abgerufen am 21. 07 2019 von www.fr-an.de: http://www.fr-an.de/projects/rpidc/display.htm

Gitter, A. H. (20. 12 2018). pi_nerka.pdf. Abgerufen am 20. 08 2019 von web.eah-jena.de: http://web.eah-jena.de/~gitter/nerka/pi_nerka.pdf

Hackster.io, an Avnet Community. (21. 07 2019). How to Connect Raspberry Pi to CAN Bus - Hackster.io. Abgerufen am 21. 07 2019 von www.hackster.io: https://www.hackster.io/youness/how-to-connect-raspberry-pi-to-can-bus-b60235

Hennekeuser, J. (29. 08 2018). 2.1 (10). Abgerufen am 20. 08 2019 von www.hennekeuser.com.

HMS Industrial Networks AB. (21. 07 2019). CAN. Abgerufen am 21. 07 2019 von www.ixxat.com: https://www.ixxat.com/de/technologien/feldbus/can

Hochschule München, FK 04, Prof. Jürgen Plate. (11. 11 2017). Raspberry Pi: SPI-Schnittstelle. Abgerufen am 21. 07 2019 von www.netzmafia.de: http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_SPI.html

Kecher, C., Alexander, S., & Ralf Hoffmann-Elbern. (kein Datum). UML 2.5 Das umfassende Handbuch. Rheinwerk Computing.

Klein, B. (3. 09 2019). Numerisches Python: Einführung in Pandas. Abgerufen am 21. 07 2019 von www.python-kurs.eu: https://www.python-kurs.eu/pandas.php

Kofler, M., Kühnast, C., & Scherbeck, C. (2018). Raspberry Pi Das umfassende Handbuch. Bonn, Deutschland: Rheinwerk Verlag. Abgerufen am 24. 06 2019

KUNBUS industrial communication. (21. 07 2019). RS-232 - KUNBUS GMBH. Abgerufen am 21. 07 2019 von www.kunbus.de: https://www.kunbus.de/rs-232.html

ME-Meßsysteme GmbH. (28. 03 2008). canbus.pdf. Abgerufen am 20. 08 2019 von www.mikrocontroller.net: https://www.mikrocontroller.net/attachment/6819/canbus.pdf

Microchip Technology Inc. (09. 07 2014). MCP2561/2 Data Sheet - 20005167c.pdf. Abgerufen am 01. 10 2019 von ww1.microchip.com: http://ww1.microchip.com/downloads/en/devicedoc/20005167c.pdf

partsdata. (2019. 08 2019). Kabel DSub-9 Stecker-Buchse PREMIUM | Seriell RS-232 | Seriell parallel GPIB PS/2 | Partsdata. Abgerufen am 20. 08 2019 von www.partsdata.de: https://www.partsdata.de/seriell-parallel-gpib-ps2/seriell-rs-232/kabel-dsub-9-stecker-buchse-premium/c2-09hq-01/serielles-kabel-dsub-9-stecker-an-buchse-premium-qualitaet-1m

PEAK-System Technik GmbH. (04. 04 2019). PCAN-USB - Benutzerhandbuch - PCAN-USB_UserMan_deu.pdf. Abgerufen am 24. 07 2019 von www.peak-system.com: https://www.peak-system.com/produktcd/Pdf/Deutsch/PCAN-USB_UserMan_deu.pdf

Pollin Electronic GmbH. (21. 07 2019). Raspberry Pi 3 Model B online kaufen | Pollin.de. Abgerufen am 21. 07 2019 von www.pollin.de: https://www.pollin.de/p/raspberry-pi-3-model-b-702850

python software foundation. (05. 06 2019). 9.2. math -- Mathematical functions -- Python 2.7.16 documentation. Abgerufen am 24. 06 2019 von docs.python.org: https://docs.python.org/2/library/math.html

Raspberry Pi Foundation. (21. 07 2019). CAN bus on raspberry pi with MCP2515 - Raspberry Pi Forums. Abgerufen am 21. 07 2019 von www.raspberrypi.org: https://www.raspberrypi.org/forums/viewtopic.php?t=141052

Raspberry Pi Fundation. (24. 06 2019). Abgerufen am 24. 06 2019 von projects.raspberrypi.org: https://projects.raspberrypi.org/en/projects/lost-in-space

Reichelt Elektronik. (21. 07 2019). RASPBERRY PI 3: Raspberry Pi 3 B, 4x 1,2 GHz, 1 GB RAM, WLAN, BT bei reichelt elektronik. Abgerufen am 21. 07 2019 von www.reichelt.de: https://www.pollin.de/p/raspberry-pi-3-model-b-702850

Robert Bosch GmbH. (21. 07 2019). SafeTRANS Mitglieder - Robert Bosch GmbH - SafeTRANS News. Abgerufen am 21. 07 2019 von news.safetrans-de.org: http://news.safetrans-de.org/ausgabe-2013-02/safetrans-mitglieder-bosch.html

RS-232 - Die serielle Schnittstelle . (20. 08 2019). Abgerufen am 20. 08 2019 von kompendium.infotip.de: https://kompendium.infotip.de/rs-232-die-serielle-schnittstelle.html

Schnell, G., & Wiedemann, B. (2018). Bussysteme in der Automatisierungs- und Prozesstechnik. Wiesbaden, Deutschland: Pringer Vieweg.

Serial Peripheral Interface - Mikrocontroller.net. (21. 07 2019). Abgerufen am 21. 07 2019 von www.mikrocontroller.net: https://www.mikrocontroller.net/articles/Serial_Peripheral_Interface

Siemens AG. (20. 01 2015). SIMOREG DC-MASTER - C98130-A1256-A002-13-0019.pdf. Abgerufen am 01. 10 2019 von cache.industry.siemens.com: https://cache.industry.siemens.com/dl/files/212/22220212/att_26312/v1/C98130-A1256-A002-13-0019.pdf

SIEMENS AG. (23. 01 2015). uss_24178253_spez_00.pdf. Abgerufen am 21. 07 2019 von cache.industry.siemens.com: https://cache.industry.siemens.com/dl/files/253/24178253/att_101236/v1/uss_24178253_spez_00.pdf

slideplayer.org. (8. 04 2017). CAN:+Realisierung+bitweiser+Arbitrierung.jpg. Abgerufen am 20. 08 2019 von https://slideplayer.org/slide/2845494/10/images/9/CAN%3A+Realisierung+bitweiser+Arbitrierung.jpg: https://slideplayer.org/slide/2845494/10/images/9/CAN%3A+Realisierung+bitweiser+Arbitrierung.jpg

SUNFOUNDER. (25. 05 2017). 8 Channel 5V Relay Module - Wiki. Abgerufen am 01. 10 2019 von wiki.sunfounder.cc: http://wiki.sunfounder.cc/index.php?title=8_Channel_5V_Relay_Module

technik-tipps-und-tricks. (23. 07 2017). SD_Card_Formatter_001.png. Von www.technik-tipps-und-tricks.de: http://www.technik-tipps-und-tricks.de/wp-content/uploads/2016/06/SD_Card_Formatter_001.png abgerufen

Texas Instruments. (01. 10 2019). TMDSCNCD28335 TMS320F28335 controlCARD | TI.com. Abgerufen am 01. 10 2019 von www.ti.com: http://www.ti.com/tool/TMDSCNCD28335#technicaldocuments

VECTOR INFORMATIK GMBH. (21. 07 2019). CAN: Remote Frame. Abgerufen am 21. 07 2019 von elearning.vector.com: https://elearning.vector.com/mod/page/view.php?id=48

vimtut0r. (20. 08 2019). CAN-Bus with Raspberry Pi: HowTo/Quickstart MCP2515 Kernel 4.4.x+ - vimtut0r's blog. Abgerufen am 20. 08 2019 von vimtut0r.com: https://vimtut0r.com/2017/01/17/can-bus-with-raspberry-pi-howtoquickstart-mcp2515-kernel-4-4-x/

Vogel Communications Group GmbH & Co. KG. (21. 07 2019). Was ist eine GUI? Abgerufen am 21. 07 2019 von www.dev-insider.de: https://www.dev-insider.de/was-ist-eine-gui-a-651868/

Warszawa, j. (20. 08 2019). PCAN-View - Software for Displaying CAN and CAN FD Messages. Abgerufen am 20. 08 2019 von www.janbit.com.pl: http://www.janbit.com.pl/en/canbus-software/306-pcan-view.html

Wiesinger, J. (13. 03 2018). Datenübertragung beim CAN-Bus. Abgerufen am 21. 07 2019 von www.kfztech.de: https://www.kfztech.de/kfztechnik/elo/can/datenuebertragung.htm

Anhang

A1. 8-Kanal RelayModul Schaltung

Abbildung 59: 8-Kanal Relay Modul Schaltung (SUNFOUNDER, 2017)

A2. Das F28335 Modul

Abbildung 60: Das F28335 Modul

A3. F28335 Pins Belegung

Abbildung 61: F28335 Pins Belegung (Texas Instruments, 2019)

A4.Schaltung eines MCP2562-Transceivers mit dem Mikrocontroller

Abbildung 62: Schaltung eines MCP2562-Transceivers mit dem Mikrocontroller(Microchip Technology Inc., 2014, S. 6)

A5. Der MCP2562 Transceiver

Abbildung 63: Der MCP2562 Transceiver mit Sub-D 9 Buchse Ausgang

A6. Funktionsplan einem USS Schnittstelle auf dem SIMOREG DC Master

Abbildung 64: Funktionsplan einem USS Schnittstelle auf dem SIMOREG DC Master(Siemens AG, 2015, S. 260)

A7. Die Wichtigste Parameterliste für die Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master

Abbildung 65: Parameterliste (P780 bis P783) für die Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master(Siemens AG, 2015, S. 548)

Abbildung 66: Wichtigste Parameterliste (P784 bis P788) für die Konfiguration der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master(Siemens AG, 2015, S. 549)

A8. Parameter für die Diagnoseinformation der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master

Abbildung 67: Parameter für die Diagnoseinformation der Seriellen Schnittstellen (USS1) des SIMOREG DC-Master(Siemens AG, 2015, S. 550)

A9. Funktionsplan eines Hochlaufgebers

Auf dieser Funktionsplan steht der Parameter P634 zum Steuern der Motordrehzahl zur Verfügung.

Abbildung 68: Funktionsplan eines Hochlaufgebers(Siemens AG, 2015, S. 245)

A10. Funktionsplan des Feldstromregelung für das SIMOREG-DC-Gerät

Das Blatt enthält der Konnektor K0265 für die Anzeige auf die graphische Oberfläche der Feldstromistwert.

Abbildung 69: Funktionsplan des Feldstromregelung für das SIMOREG-DC-Gerät(Siemens AG, 2015, S. 257)

A11. Funktionsplan der EMK-Regelung für das SIMOREG-DC Gerät

Der Ankerstromistwert steht in das Konnektor K0287 fest und wird daher verwendet für die Konfiguration der Empfangenen Daten auf das Master-Gerät.

Abbildung 70: Funktionsplan der EMK-Regelung für das SIMOREG-DC Gerät(Siemens AG, 2015, S. 256)

A12. Funktionsplan der Drehzahlregelung für das SIMOREG-DC Gerät

Auf dieser Funktionsplan kann die Drehzahlistwert auf den Konnektor K0179

Abbildung 71: Funktionsplan der Drehzahlregelung für das SIMOREG-DC Gerät(Siemens AG, 2015, S. 250)

Empfangt werden.

A13. Funktionsplan der Ankerstromregelung für das SIMOREG-DC Gerät

Die Wichtigste Konnektoren für die Anzeige auf das GUI der Ankerstromistwert und Momentenistwert sind jeweils auf K0117 und K0142 zu finden.

Abbildung 72: Funktionsplan der Ankerstromregelung für das SIMOREG-DC Gerät(Siemens AG, 2015, S. 254)

2. CD-Verzeichnis

Die Vorliegende Bachelorarbeit dient dazu eine Steuerung mit graphischer Oberfläche auf einem Raspberry Pi zur Durchführung von Fahrzyklen an einem Motorprüfstand zu entwickeln.

Die beiliegende CD erhält:

· Die Vorliegende Bachelorarbeit in Pfd. Format,

· und den kompletten Python-Code

Um das Programm im Laufen zum Bringen ist es erforderlich die Python IDE zu installieren und die benötigen Modulen für die Realisation der GUI.

Eidesstattliche Erklärung

ich erkläre hiermit, dass

· ich die vorliegende wissenschaftliche Arbeit selbständig und ohne unerlaubte Hilfe angefertigt habe,

· ich andere als die angegebenen Quellen und Hilfsmittel nicht benutzt habe,

· ich die den benutzten Quellen wörtlich oder inhaltlich entnommenen Stellen als solche kenntlich gemacht habe,

· die Arbeit in gleicher oder ähnlicher Form noch keiner anderen Prüfbehörde vorgelegen hat.

Ort und Datum Unterschrift






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Et il n'est rien de plus beau que l'instant qui précède le voyage, l'instant ou l'horizon de demain vient nous rendre visite et nous dire ses promesses"   Milan Kundera