Dipl. Elektrotechniker/in HF
ENTWICKLUNG EINES SIMULATIONSGERÄTES ZUM TESTEN VON STEUERPROGRAMMIERBAREN STEUERUNGEN
Simulationsgerät
Diplomlehrer: Adrian John
Fachexperte: Lukas Kurmann
Arbeitsauftrag
Die Alsaco AG benötigt ein Simulationsgerät, das primär bei Inbetriebnahmen verwendet wird, insbesondere im chemischen und pharmazeutischen Bereich, in dem die Alsaco AG als externer Dienstleister tätig ist. Das Gerät dient der Überprüfung von Hardwareinstallationen und ermöglicht durch die Simulation von SPS-Signalen (Speicherprogrammierbare Steuerung) eine direkte Funktionskontrolle der Verdrahtung und PLC (Programmable Logic Controller). Dies stellt sicher, dass die Schnittstellen von der Feldsensorik bis zur Visualisierung korrekt funktionieren und grobe Fehler frühzeitig erkannt werden. Das Verfahren unterstützt zudem Kalibrierungen und qualitative Standardisierungen.
Für den Anwender ist das Gerät in einem kompakten, mobilen Gehäuse untergebracht, was eine hohe Flexibilität im Einsatz ermöglicht. Es eignet sich optimal für Inbetriebnahmen, da es sowohl für Simulationen als auch für Messungen eingesetzt werden kann. Die schnelle Verdrahtung und einfache Umsetzung im Feld oder Schaltschrank machen es besonders praktisch. Das Gerät ist für typische SPS-Signaltypen konzipiert und bildet die Systemgrenzen des Projekts.
Inhalt der Arbeit
In dieser Projektarbeit wurde eine spezifische Lösung entwickelt, die in der Form eines Simulationsgeräts umgesetzt wurde. Die folgende Onlinepublikation gibt einen Überblick über die wichtigsten Aspekte und Überlegungen, die im Rahmen des Projekts angestellt wurden:
Verwendete Module: Es wurden verschiedene technische Module eingesetzt, um die Funktionen des Simulationsgeräts zu realisieren. Dazu gehören unter anderem die notwendigen Schnittstellen für die SPS-Signale sowie Module zur Visualisierung der Messdaten.
Struktur der Programmierung: Die Programmierung wurde so gestaltet, dass sie klar strukturiert und modular aufgebaut ist. Dies ermöglichte eine einfache Anpassung und Erweiterung der Software, insbesondere für die Simulation und Messung der SPS-Signale.
Modbus-Protokoll: Das Modbus-Protokoll wurde als Kommunikationsstandard verwendet. Es wurde detailliert strukturiert und implementiert, um die reibungslose Datenübertragung zwischen den Geräten zu gewährleisten. Die Funktionsweise des Protokolls wurde so ausgelegt, dass es die Signalübertragung effizient unterstützt.
Probleme mit der Spannungsversorgung: Während des Projekts traten Schwierigkeiten mit der Spannungsversorgung auf. Diese Probleme wurden analysiert und gelöst, um die Stabilität und Zuverlässigkeit des Simulationsgeräts sicherzustellen.
Design und Umsetzung des Gehäuses: Das Gehäuse wurde so designt, dass es kompakt, robust und mobil ist. Es bietet ausreichend Platz für die technische Ausstattung und gewährleistet gleichzeitig eine einfache Handhabung im Feld. Die Umsetzung erfolgte unter Berücksichtigung von Funktionalität und Praktikabilität.
Diese Punkte bieten einen groben Überblick über die wesentlichen Schritte und Herausforderungen bei der Entwicklung des Simulationsgeräts.
Lösung der Aufgaben
Im Rahmen des Projekts wurde für die Alsaco AG, einem Elektroplaner im chemischen und
pharmazeutischen Sektor, ein Simulationsgerät entwickelt, das bei der Inbetriebnahme von Anlagen
eingesetzt wird. Dieses Gerät dient der Überprüfung der Hardwareinstallationen, insbesondere der
Verdrahtung und Funktionsfähigkeit von SPS (speicherprogrammierbaren Steuerungen). Im Rahmen
des Industriellen Standards befinden sich diese zu simulierenden Signale. Es simuliert analoge Signale
wie 4-20 mA und 0-10 Volt, um sicherzustellen, dass die Schnittstellen von Sensoren bis zur
Visualisierung korrekt funktionieren.
Das Simulationsgerät ist kompakt, mobil und einfach zu bedienen. Es ermöglicht dem Anwender,
zwischen der Simulation und Messung von Signalen zu wählen. Diese Flexibilität macht es ideal für den
Einsatz im Feld oder im Schaltschrank. Es kann Fehler bei der Signalübertragung frühzeitig erkennen,
unterstützt die Qualitätssicherung und ermöglicht Störungssuche sowie Kalibrierungstests.
Die Steuerung des Geräts erfolgt über ein benutzerfreundliches Menü, das auf einem Arduino basiert.
Das Gerät bietet alle notwendigen Funktionen, um die analogen Signale präzise zu simulieren und auf
einer SPS zu testen.
1. Arduino Mega 2560:
Der Mikrocontroller ist das zentrale Steuerungselement des Simulationsgeräts. Es verarbeitet
die Eingaben und steuert die gesamte Funktionalität, einschließlich der Simulation und
Messung von Signalen. Über das Arduino-Board wird das Bedienmenü verwaltet und die
Kommunikation zwischen den einzelnen Komponenten ermöglicht.
2. N4DBA06 Simulationsmodul:
Dieses Modul ist für die Ausgabe und Messung der analogen Signale (4-20 mA und 0-10 Volt)
verantwortlich. Es sorgt dafür, dass die Signale korrekt simuliert und zur weiteren Verarbeitung
an die SPS gesendet werden.
3. OLED-Display:
Das 2.42-Zoll-Display zeigt die aktuellen Mess- und Simulationswerte sowie das Bedienmenü
an. Es ermöglicht dem Benutzer eine direkte Kontrolle und Überwachung der Signale.
4. TTL RS485 Modul:
Dieses Kommunikationsmodul sendet über die TTL-kommunikation das Modbus Protokoll,
das für die Kommunikation mit dem N4DBA06-Modul genutzt wird. Es ermöglicht eine stabile
und zuverlässige Datenübertragung über größere Entfernungen.
5. Bedienknöpfe und Display:
Über die integrierten Bedientasten kann der Benutzer das Menü steuern, die Betriebsmodi
auswählen (Simulation oder Messung) und die Signale konfigurieren.
6. Spannungsversorgung XV6009 (9V und 15V):
Zwei unterschiedliche Spannungen versorgen das Gerät. Der Arduino wird mit 9 Volt
betrieben, während das N4DBA06-Modul 15 Volt benötigt. Die Spannungswandler sorgen für
eine stabile Energieversorgung.
7 TTL MAX485 Modul
Das MAX485-Modul fungiert als Schnittstelle zwischen dem Arduino und dem N4DBA06-Modul, indem
es die digitale Kommunikation ermöglicht. Da der Arduino nur mit 0V und 5V arbeitet, wird das MAX485-
Modul verwendet, um die Datenübertragung über die sogenannte TTL-Technologie (Transistor-Transistor-Logik) zu ermöglichen. Obwohl weiterhin digitale Signale (0 und 1) übertragen werden,
ermöglicht das MAX485-Modul eine serielle Kommunikation über größere Distanzen, indem es die TTL-Signale vom robusteren Modbus-Protokoll sendet. Dieses Protokoll ist von Gerät zu Gerät und deren
Funktion sehr unterschiedlich, die grobe Struktur ist zwar ähnlich dennoch von der Funktion des Gerätes
selbst abhängig. Das Protokoll wird vom Gerätelieferant zur Verfügung gestellt und wird benötigt um
das Gerät überhaupt bedienen zu können.
MODBUS-PROTOKOLL
Das Modbus-Protokoll ist ein weit verbreitetes Kommunikationsprotokoll, das in industriellen
Steuerungssystemen eingesetzt wird. Es ermöglicht die Kommunikation zwischen mehreren Geräten,
die über serielle Leitungen oder Netzwerke miteinander verbunden sind. Modbus arbeitet in einem
Master-Slave-Modell, bei dem ein Master-Gerät (in diesem der Arduino) Anfragen an ein oder mehrere
Slave-Geräte (N4DBA06) sendet. Die Slave-Geräte antworten dann mit den angeforderten Daten oder
bestätigen die empfangenen Befehle.
Der Master initiiert alle Kommunikationsvorgänge, indem er eine Anfrage an ein Slave-Gerät
sendet.
Diese Anfrage kann Datenanforderungen, Steuerbefehle oder Konfigurationsanweisungen
enthalten.
Das Slave-Gerät verarbeitet die Anfrage und sendet eine Antwort zurück, die entweder die
angeforderten Daten oder eine Bestätigung der ausgeführten Aktion enthält.
Modbus ist besonders nützlich in der Industrie, weil es einfach zu implementieren ist und eine hohe
Kompatibilität mit verschiedenen Geräten und Systemen bietet.
Das Modbus-Protokoll verwendet Register, um Daten zwischen einem Master (Client) und einem Slave
(Server) auszutauschen. Es gibt verschiedene Arten von Registern, die jeweils unterschiedliche
Funktionen haben:
1. Holding Register (Funktion 03 und 06): Diese 16-Bit-Register werden verwendet, um Daten
zu lesen oder zu schreiben. Typischerweise werden sie genutzt, um Konfigurationsparameter
oder Steuerbefehle zu speichern und abzurufen. Ein Master kann den Inhalt eines Holding
Registers lesen oder neue Werte schreiben.
2. Input Register (Funktion 04): Diese Register sind nur lesbar und werden genutzt, um analoge
Eingangsgrößen zu erfassen. Beispielsweise könnte ein Input Register den aktuellen Wert
eines Temperatursensors enthalten.
3. Coils (Funktion 01 und 05): Coils sind einzelne Bit-Register, die den Zustand von digitalen
Ausgängen darstellen (An/Aus). Sie können sowohl gelesen als auch beschrieben werden.
4. Discrete Inputs (Funktion 02): Diese sind ebenfalls einzelne Bits, die nur lesbar sind und den
Status von digitalen Eingängen anzeigen, wie etwa Schalterstellungen.
Jedes Register erfüllt eine bestimmte Aufgabe, sei es das Lesen von Eingangswerten, das Schreiben
von Steuerbefehlen oder das Überwachen von Zuständen. Anhand der angegebenen Registeradressen
und deren Funktion kann das N4DBA06-Modul präzise angesteuert werden, um beispielsweise Daten
wie Messwerte auszulesen oder Steuerbefehle zur Steuerung der Simulationen auszuführen.
Durch die korrekte Implementierung dieser Register und deren Funktionen in der Steuerungssoftware
kann sichergestellt werden, dass das Modul reibungslos und effizient im gewünschten System
funktioniert.
Oled 2.42 inch Display
Das OLED-Display wird vom Arduino angesteuert und spielt eine zentrale Rolle, um das gesamte
System benutzerfreundlich und bedienbar zu machen. Es handelt sich um ein 2,42-Zoll-OLED-Display,
das über den I2C-Bus mit dem Arduino verbunden ist. Der Benutzer navigiert mithilfe von drei
Bedientasten durch eine programmierte Zustandsmaschine (State Machine), der verschiedenen Menüs
und Unterfunktionen steuert. (Wokwi, kein Datum)
Durch das Drücken der Tasten kann der Bediener zwischen den einzelnen Menüpunkten hin- und
herwechseln, spezifische Funktionen auswählen und entsprechende Werte ändern. Diese dynamische
Interaktion ermöglicht es, Simulationen zu starten oder Messungen durchzuführen. Die geänderten
Parameter werden sofort visuell auf dem OLED-Display angezeigt, wodurch eine intuitive Bedienung
und Anpassung des Systems möglich ist.
Zusätzlich werden die Funktionen klar und strukturiert auf dem Display visualisiert, sodass der Benutzer
jederzeit die aktuelle Menüauswahl und die dazugehörigen Parameter einsehen kann.
I2C-Kommunikation:
I2C (Inter-Integrated Circuit) ist ein serielles Kommunikationsprotokoll, das häufig verwendet wird, um
Daten zwischen einem Mikrocontroller (wie einem Arduino) und verschiedenen Peripheriegeräten, wie
Sensoren, Displays oder Speicherchips, auszutauschen. I2C verwendet nur zwei Leitungen für die
Kommunikation:
-SDA (Serial Data Line) für die Übertragung der Daten und
-SCL (Serial Clock Line) für die Synchronisation der Übertragung.
Der I2C-Bus ermöglicht die Kommunikation zwischen mehreren Geräten (Master und Slaves) über
dieselben zwei Leitungen. Ein Master-Gerät, z. B. ein Arduino, initiiert die Kommunikation und steuert
den Datenaustausch, während die Slaves (wie ein OLED-Display) auf die Befehle des Masters warten.
Arduino Mega steuert das OLED-Display an:
In deinem Fall wird das OLED-Display mit einer Größe von 2,42 Zoll über den I2C-Bus vom Arduino
Mega angesteuert. Das OLED-Display empfängt über die SDA- und SCL-Leitungen Anweisungen vom
Arduino, um Informationen visuell darzustellen.
Die Bibliothek für das OLED: Um das Display anzusteuern, wird eine Bibliothek wie U8g2lib
verwendet, die es vereinfacht, Inhalte auf dem Display darzustellen. Diese Bibliothek enthält
Funktionen, um Texte, Bilder, Linien oder andere Grafiken auf dem Display darzustellen.
Spannungsversorgung
Die Ursprüngliche Idee war das das gesamte System mit einem 9 Volt Blockbatterie betrieben wird.
Für die Spannungsversorgung des Systems wurde ein Step-Up-Konverter vom Typ CV6009 verwendet,
um eine stabile und zuverlässige Stromversorgung zu gewährleisten. Dieser Konverter bietet mehrere
entscheidende Vorteile: Erstens sorgt er für eine konstante Ausgangsspannung, auch wenn die
Eingangsspannung aufgrund der Entladung der Batterie abfällt. Dies trägt maßgeblich zur
Spannungsstabilität des Systems bei und reduziert die Gefahr von Instabilitäten. Zweitens erlaubt der
CV6009 eine variable Spannungsanpassung, sodass unterschiedliche Spannungen je nach Bedarf
erzeugt werden können – in diesem Fall wurden 9 Volt und 15 Volt genutzt.
Ein weiterer Vorteil des CX6009 ist seine kompakte Bauweise, die es ermöglicht, den Konverter
platzsparend auf kleinen Platinen zu integrieren. Zusätzlich kann er eine flexible Stromversorgung von
2 bis 24 Volt bereitstellen, was ihn sehr vielseitig macht. Trotz seiner Leistung zeichnet sich der
Konverter durch eine geringe Stromaufnahme aus, was die Effizienz des Gesamtsystems erhöht.
Das 3D-Gedruckte kompakt Gehäuse wurde so entwickelt das die Einfachheit und die Flexibilität
gewährleistet ist. Zudem sind hierbei einfache Anschlussklemmen verwendet worden. Die zwei XV6009
haben locker in diesem Gehäuse platz und sind mechanisch geschützt zudem kann von aussen auf die
unterschiedlichen Spannungen zugegriffen werden. Es sind alles Kabel ordentlich im Gehäuse verlegt
und die Gefahr von Kurzschlüssen wurde minimiert.
Bei der Dimensionierung der Spannungsversorgung stellte sich schnell heraus, dass eine 9-VoltBlockbatterie nicht ausreicht, um das Gesamtsystem zuverlässig zu betreiben. Die Messungen wurden
am gesamten System durchgeführt, wobei der Step-Up-Konverter zweimal verwendet wurde, um die
benötigten Spannungen von 9 Volt und 15 Volt zu generieren. Dabei zeigte sich, dass das System bei
einer Eingangsspannung von 9 Volt einen Strom von 140 mA aufnahm, was die Grenzen der 9-Volt Batterie deutlich überschritt. Diese Erkenntnis machte klar, dass eine leistungsstärkere
Spannungsversorgung erforderlich ist.
XV6008 Spannungsstabilisierung
Der XV6008 ist eine hervorragende Wahl für die Spannungsstabilisierung in deinem Projekt. Dieser
einstellbare Spannungsregler kann Ausgangsspannungen zwischen 1,25 V und 37 V stabilisieren und
dabei einen Strom von bis zu 1,5 A liefern. Dadurch ist er sehr vielseitig einsetzbar und eignet sich für
zahlreiche Anwendungen. Dieser IC (Intrigierter Schaltkreis) kann als kann hervorragend hierfür die
Spannungsstabilisierung verwendet werden.
Ein wesentlicher Vorteil des XV6008 liegt in seiner Fähigkeit, Spannungsschwankungen auszugleichen.
Selbst bei variierender Eingangsspannung, wie sie beispielsweise durch Laständerungen oder äußere
Einflüsse entstehen kann, liefert der Regler eine stabile Ausgangsspannung. Das ist besonders wichtig,
wenn du in deinem Projekt Schaltungen verwendest, die empfindlich auf Spannungsänderungen
reagieren und eine konstante Spannungsversorgung benötigen.
Darüber hinaus ist der XV6008 besonders energieeffizient. Da er als linearer Regler arbeitet, reduziert
er den Stromverbrauch, indem er überschüssige Energie in Wärme umwandelt. Dadurch wird der
Stromverbrauch im Vergleich zu weniger effizienten Spannungsreglern gesenkt, was ihn zu einer
stromsparenden Lösung für dein Projekt macht.
Ein weiteres wichtiges Merkmal des XV6008 ist seine Fähigkeit, hohe Temperaturen zu vermeiden.
Durch seine Effizienz erzeugt er weniger Wärme, was die Lebensdauer des Reglers verlängert und das
Risiko einer Überhitzung minimiert. Dies ist besonders in langfristigen Anwendungen von Vorteil, da die
Elektronik über einen längeren Zeitraum stabil und zuverlässig arbeiten kann. Der integrierte
Überhitzungsschutz und die Strombegrenzung tragen ebenfalls dazu bei, dass das Gerät vor
Überlastungen geschützt ist.
Ein großer Pluspunkt des XV6008 ist zudem die einfache Möglichkeit, die Ausgangsspannung
anzupassen. Mit einem Spannungsteiler aus zwei Widerständen oder einem Potentiometer kann die
gewünschte Ausgangsspannung präzise eingestellt werden. Das bietet Flexibilität, insbesondere wenn
verschiedene Komponenten unterschiedliche Spannungen benötigen.
Auch der geringe Platzbedarf und die einfache Integration in Schaltungen machen den XV6008 zu einer
ausgezeichneten Wahl. Er benötigt nur wenige externe Komponenten, wie Widerstände und
Kondensatoren, was die Schaltung kompakt hält und den Regler problemlos in dein Projekt integrieren
lässt.
Zusammenfassend bietet der XV6008 eine zuverlässige Spannungsstabilisierung, gleicht
Spannungsschwankungen aus, ist stromsparend und vermeidet hohe Temperaturen. Mit seinen
vielseitigen Einsatzmöglichkeiten und seiner Flexibilität ist er ideal für dein Projekt, insbesondere wenn
eine konstante Spannungsversorgung und langfristige Zuverlässigkeit erforderlich sind.
Dennoch ist klar zu erwähnen das die Dimensionierung der Schaltung und die Inbetriebnahme für
dieses Projekt nicht ausgereicht hätte, da nur 10 Tage übrig wahren für die Abgabe konnte ich nicht auf
diese Lösung ausweichen. Es fehlten die Bauteile zudem blieb keine Zeit für Testphasen und die
Inbetriebnahme dieser Spannungsversorgung. Zudem ist das Problem der Kapazität nicht gelöst und
spielt daher ein wesentlicher Faktor, da eine andere alternative gesucht werden musste. Schlichtweg
ist eine Betriebsdauer von knapp 1 Stunden nicht hinnehmbar.
Bei Typischerweise eines Entladestroms von 200 mA wird der Akku in knapp 1 Stunde entladen sein,
hierbei wurde auch nicht mal die kritische Grenze von 6 Volt Spannungsversorgung in Betracht gezogen
was essentiell wichtig ist für die Stabilität des Systems.
Powerbank
Dank des Step-Up-Konverters werden Spannungsschwankungen, die während des Betriebs auftreten
können, besser ausgeglichen, was zur Systemstabilität beiträgt. In Verbindung mit einer 5000mAh Batterie ermöglicht dieser Aufbau eine Betriebsdauer von etwa 18.5 Stunden, bevor die Batterie wieder
aufgeladen werden muss. Diese Laufzeit reicht aus, um das System über einen längeren Zeitraum
hinweg autark betreiben zu können.
5000mAℎ/271mA = 18.45h
Die Powerbank hat den wesentlichen Vorteil, da sie das System für mehrere Stunden stabil hält und
dem Gehäuse entnommen und wieder eingesetzt werden kann. Hierfür ist der der Einschub
Mechanismus gedacht der bei dem 3D-Druck berücksichtig worden ist.
Programmierung
Dieser Code implementiert ein Menüsystem auf einem Arduino mit einem OLED-Display und nutzt die
Modbus-Kommunikation über ein RS485-Modul. Die Hauptfunktion besteht darin, Spannungen und
Ströme entweder zu simulieren oder zu messen. Der Code ermöglicht es, durch ein Menü zu navigieren
und bestimmte Simulationen oder Messungen über physische Tasten auszuführen. Hier ist eine
detaillierte Beschreibung der Hauptfunktionen:
1. OLED-Display-Initialisierung:
- Das SSD1306 OLED-Display wird mit der Bibliothek U8g2lib initialisiert und für die
Anzeige des Menüs sowie der Mess- und Simulationswerte verwendet.
- Die Visualisierung wurde über die App-Lopaka entworfen.
2. Modbus-Kommunikation:
- Es wird ein ModbusMaster-Objekt für die Kommunikation über den RS485-Bus
verwendet, um Daten mit einem Modbus-fähigen Gerät auszutauschen.
- Die Pins DE und RE werden verwendet, um den RS485-Transceiver in den Sender oder Empfangsmodus zu versetzen.
3. Tastensteuerung:
- Drei Tasten sind an den Pins lowButtonPin, highButtonPin und selectButtonPin
angeschlossen und ermöglichen die Navigation durch das Menü und die Auswahl von
Optionen.
- Die Tasten werden entprellt, um sicherzustellen, dass eine Eingabe nur einmal
verarbeitet wird.
4. Menüsystem:
- Es gibt drei Hauptzustände im Menü:
Simulation: Hier können eine Stromsimulation und eine Spannungssimulation
durchgeführt werden, wobei die simulierten Werte auf dem Display angezeigt
werden.
Messung: Hier können Spannungsmessungen und Strommessungen
durchgeführt werden. Die gemessenen Werte werden in einem Diagramm als
Trendkurve dargestellt.
Standby: In diesem Zustand wird lediglich ein Standby-Bildschirm angezeigt.
- Es gibt Untermenüs, in denen der Benutzer zwischen verschiedenen Optionen
wechseln kann.
5. Spannungs- und Stromsimulation:
- Im Simulationsmodus werden Werte über die Modbus-Schnittstelle an das
angeschlossene Gerät gesendet. Die simulierten Werte werden auf dem Display
angezeigt.
- Tasteninteraktionen ermöglichen das Erhöhen oder Verringern der simulierten Werte
(in Schritten von 1, 10 oder 100 je nach Länge des Tastendrucks).
6. Messung von Spannung und Strom:
- Die gemessenen Werte werden in einem zyklischen Puffer gespeichert und alle 2
Sekunden aktualisiert.
- Die gemessenen Werte werden dann auf dem Display als Trendkurve dargestellt.
Diese Werte kommen von einem Modbus-Gerät, das über RS485 kommuniziert.
- Das Trending ist nur bei den Messungen zu sehen und hat daher eine separate
Codierung.
7. Debouncing und Tastenlogik:
- Die Tasten werden entprellt, um unerwünschte Mehrfachauslösungen zu verhindern.
Es gibt außerdem eine Langdruckerkennung, um die Simulationswerte schneller zu
ändern (z. B. 100er-Schritte nach 8 Sekunden gedrückt halten).
8. Modbus-Lese- und Schreibfunktionen:
- readStrommessung und readSpannungsmessung lesen Messwerte über Modbus.
- writeSimSpannung1 und writeSimStrom1 senden Simulationswerte über Modbus an
das angeschlossene N4DBA06-Modul.
Dieser Code zeigt auf wie die Umsetzung der Funktion zur zum Speicher in die Variablen wandert.
Zusammengefasst implementiert der Code eine Kombination aus Menüsteuerung, Modbus Kommunikation und einer grafischen Benutzeroberfläche auf einem OLED-Display, um Spannungs- und Stromsimulationen durchzuführen oder Messwerte darzustellen. Die Kommunikation mit externen
Geräten erfolgt über RS485 und wird von einem flexiblen Menüsystem gesteuert.
Programmstruktur
Start und Initialisierung:
- Start: Dies ist der Anfangspunkt des Programms.
- Initialisierung: Hier werden die erforderlichen Bibliotheken wie ModbusMaster und U8g2 für
die OLED-Display-Ansteuerung initialisiert. Außerdem wird pinMode für die Eingangs- und
Ausgangspins gesetzt.
Wahlmenü Messung:
- Wahlmenü Messung M1: Dies ist der erste Entscheidungspunkt im Programm. Der Benutzer
wählt, ob er Messwerte (Spannung oder Strom) anzeigen oder simulieren möchte.
- Spannung/Strom Messung: Wenn der Benutzer die Messung ausgewählt hat, wird entweder
die Spannungsmessung oder die Strommessung durchgeführt.
- Spannungsmessung Visualisierung: Wenn Spannung ausgewählt wurde, wird die
Spannungsmessung gelesen und auf dem Display visualisiert.
- Strommessung Visualisierung: Wenn Strom ausgewählt wurde, wird die
Strommessung gelesen und ebenfalls auf dem Display angezeigt.
Wahlmenü Simulation:
- Wahlmenü Simulation M1: Hier kann der Benutzer zur Simulation von Spannungs- und
Stromwerten wechseln.
- Spannung/Strom Simulation: Wenn der Benutzer die Simulation auswählt, wird entweder die
Spannungs- oder die Stromsimulation durchgeführt.
- Input Stromsimulation: Der Benutzer gibt einen Stromwert ein, der dann per Modbus
an das angeschlossene Gerät gesendet wird.
- Input Spannungssimulation: Der Benutzer gibt einen Spannungswert ein, der ebenfalls
per Modbus gesendet wird.
Wahlmenü Standby:
- Wahlmenü Standby M1: Dies ist ein weiterer Menüpunkt, bei dem der Benutzer den StandbyModus aktivieren kann.
- Shut down Display: Das Display wird abgeschaltet, wenn Standby aktiviert wird.
Button-Überprüfung:
- Check Buttons: Hier werden die Eingaben des Benutzers überprüft, insbesondere die Auswahl
durch die Knöpfe oder Taster.
- Je nach Auswahl werden verschiedene Wahlmenüs (Zählwerke) aktiviert.
Modbus-Kommunikation:
- Modbus Kommunikation Protokoll: Dieser Teil beschreibt, wie die Kommunikation mit dem
angeschlossenen Gerät über Modbus erfolgt. Hierbei werden Registerwerte gelesen oder
geschrieben:
- readCurrent: Lese den Stromwert (z.B. Modbus-Befehl 01 03 02 ...).
o readVolt: Lese den Spannungswert (z.B. Modbus-Befehl 01 03 02 ...).
- WriteCurrent: Schreibe einen simulierten Stromwert (z.B. Modbus-Befehl 01 03 00 ...).
- WriteVolt: Schreibe einen simulierten Spannungswert (z.B. Modbus-Befehl 01 03 00...).
Arduino Auswertung:
- Arduino Auswertung: Hier erfolgt die eigentliche Auswertung der Modbus-Kommunikation auf
der Arduino-Seite. Die erhaltenen oder gesendeten Daten werden weiter verarbeitet und für die
Anzeige oder weitere Logik verwendet.
Display Visualisierung:
- Display Visualisierung: Zum Schluss werden die ausgelesenen Messwerte oder simulierten
Werte auf dem Display visualisiert, sodass der Benutzer die aktuellen Werte sehen kann.
Erfolgskontrolle
Die Erfolgskontrolle in technischen Projekten ist entscheidend, um sicherzustellen, dass die definierten
Ziele erreicht wurden. In diesem Projekt war die Messgenauigkeit ein zentrales Ziel und spielte eine
entscheidende Rolle bei der Entwicklung des Simulationsgeräts. Besonders bei Simulationsgeräten, die
für industrielle Anwendungen verwendet werden, ist die Genauigkeit von höchster Bedeutung. Sie bildet
die Grundlage für die erfolgreiche Durchführung von Kalibrierungen, die Störungssuche sowie die
Inbetriebnahme von Systemen.
Bedeutung der Genauigkeit bei Simulationsgeräten
1. Kalibrierung: Simulationsgeräte müssen extrem präzise sein, um sicherzustellen, dass sie die
realen Bedingungen exakt nachbilden können. Diese Präzision ist notwendig, um Messgeräte
korrekt zu kalibrieren und verlässliche Referenzwerte zu erzeugen.
2. Störungssuche: Eine hohe Genauigkeit hilft dabei, Fehlerquellen in einem System präzise zu
identifizieren. Unstimmigkeiten in den Messwerten können auf Störungen oder Defekte in der
Hardware hinweisen, die ohne genaue Simulation schwer zu erkennen wären.
3. Inbetriebnahme: Während der Inbetriebnahme neuer Systeme oder Geräte ist eine genaue
Simulation entscheidend, um sicherzustellen, dass die installierten Komponenten
ordnungsgemäß arbeiten und die erwarteten Spezifikationen erfüllen. Hierbei sorgt die
Genauigkeit für einen reibungslosen Übergang von der Planung zur Praxis.
Die Messgenauigkeit des Simulationsgeräts gewährleistet, dass die Ergebnisse verlässlich und
reproduzierbar sind, was eine erfolgreiche Implementierung und Wartung in industriellen Prozessen
ermöglicht.
Die maximale Abweichung der der Kontrollmessung liegt bei +/-0.23%. Die Maximale Abweichungsschwankung
liegt bei -0.20% u. +0.23% und ist innerhalb der gewünschten Genauigkeit.
Da die Genauigkeit des Messgerätes ein wesentlicher Bestandteil des Erfolges der Arbeit darstellt. War
die Auswertung der Signale Messung/Simulation der Spannung u. des Stroms ausschlaggebend. Daher
hatte diese Art der Auswertung eine nähere Betrachtung verdient. Da dennoch weitere Auswertekurven
z.B. des Stroms ähnliche Ergebnisse Produzieren, wurde an dieser Stelle auf weitere Auswertekurven
nicht näher eingegangen und bewusst darauf verzichtet. Das Endergebnis der Erkenntnis wurde an
dieser Stelle komprimiert und bildlich dargestellt. Der Nachweis ist somit gegeben.
Persönliches Schlusswort
Das Projekt stellte eine anspruchsvolle, aber äußerst lehrreiche Erfahrung dar, die mich vor vielfältige
Herausforderungen stellte. Die anfänglichen Ziele, wie die Implementierung der 4-20 mA und 0-10 Volt
Simulation und Messung, konnten erfolgreich umgesetzt werden, was ein bedeutender Erfolg war.
Insbesondere die Arbeit mit dem Modbus-Protokoll und die Anwendung der Zustandsmaschine halfen
mir, ein tiefes Verständnis für die Kommunikation zwischen verschiedenen Systemen zu entwickeln. Es
zeigte sich aber auch, dass solche Technologien, die seit den 1960er Jahren in Einsatz sind, immer
noch hochaktuell und anpassungsfähig sind.
Ein großes Erfolgserlebnis war die Bedienbarkeit des Geräts. Die Integration des OLED-Displays und
die Steuerung über die Bedientasten stellten sicher, dass das System auch ohne spezielle Schulung
leicht verständlich und intuitiv nutzbar war. Die Visualisierung der Messwerte und die Darstellung von
Trends lieferten klare und übersichtliche Rückmeldungen für den Benutzer.
Jedoch war der Weg nicht ohne Schwierigkeiten. Ein wiederkehrendes Problem war die
Spannungsversorgung. Zwar wurde das Gerät erfolgreich mobil gestaltet, jedoch fehlte die
Implementierung einer Batterieanzeige, die rechtzeitig über niedrige Batteriestände informiert. Diese
Option wurde aufgrund des Zeitmangels nicht realisiert, obwohl sie im weiteren Verlauf sehr hilfreich
gewesen wäre.
Auch das Design und die Umsetzung einiger physischer Komponenten, wie der 3D-gedruckten
Gehäuse, verliefen nicht ohne Rückschläge. Defekt gelieferte Bauteile und die kurze Zeitspanne führten
dazu, dass einige Bauteile improvisiert oder angepasst werden mussten. Ebenso stellte sich heraus,
dass die Dimensionierung der elektronischen Komponenten für ein solches Projekt deutlich mehr Zeit
und Sorgfalt benötigt, als ursprünglich angenommen.
Die Idee eine eigene Schaltung zu entwerfen für die Simulationen wurde daher schnell verworfen, da
ich in Anbetracht von einem Zeitrahmen von 6 Wochen dies nicht für realistisch hielt. Daher fand ich es
naheliegender auf eine Komponentenbauweise auszuweichen und mich mit dieser Arbeit mehr auf die
Kommunikation der Komponenten, sowie dessen Programmierung zu spezialisieren.
Trotz dieser Hürden war das Projekt insgesamt eine wertvolle Lernphase. Ich habe nicht nur
technisches Wissen erworben, sondern auch die Fähigkeit weiterentwickelt, Probleme schnell zu
analysieren und pragmatische Lösungen zu finden. Die Erfahrung hat meinen Blick für die Komplexität
technischer Projekte geschärft, insbesondere wenn es um die Integration verschiedener Systeme und
Technologien geht. Letztlich hat mich dieses Projekt in vielerlei Hinsicht gestärkt und motiviert,
zukünftige Herausforderungen mit noch mehr Engagement und Durchhaltevermögen anzugehen.
Zum Schluss möchte ich mich herzlich bei meinem Arbeitgeber, der Alsaco AG, bedanken, die dieses Projekt erst ermöglicht hat. Durch die fachmännische Unterstützung sowie die Bereitstellung der finanziellen Mittel konnte dieses Vorhaben erfolgreich realisiert werden.
Diplomarbeit_SPS-Simulationsgerät
DA_2024_Beck_Pascal_SimulationsgerätSPS.pdf (PDF)