--- marp: true theme: gaia backgroundColor: #fff --- # Vorstellung der Abschlussarbeit Johannes Müller 2022 --- # Wer bin ich? - Johannes Müller - 24 Jahre alt - Student an der Hochschule Anhalt - Studiengang: Elektro- und Informationstechnik ![bg](images/empty.png) ![bg opacity:0.8 height:10cm](images/Logo_HSA_EMW.png) --- # Worum geht es? - Abschlussarbeit für das Masterstudium - Thema: Energiemonitoring zur Prozessanalyse in industriellen Anlagen am Beispiel von Kernschießmaschinen - Abgabe: 07.12.2022 --- # Woher kommt das Thema? - Werkstudent bei Laempe Mössner Sinto GmbH - seit 2021 - Abteilung: Elektroplanung - Betreuer: Thomas Mengewein ![bg](images/empty.png) ![bg width:15cm](images/laempe_sinto_standard.svg) --- # Was sind Kernschießmaschinen? ![bg width:11cm](external-content/csm_LL_coloriert_dcf792f5ec.jpg) ![bg width:11cm](external-content/csm_LFB25_coloriert_ca28831dac.jpg) --- # Prozessablauf - Sandversorgung - Sandsichter - Binderversorgung - Mischer - Kernschießmaschine ![bg right height:18cm](out/diagrams/kernschießmaschinen/Kernschießmaschinen.svg) --- # Warum Energieüberwachung? - Energieverbrauch ist ein wichtiger Kostenfaktor - Vorzeitige Fehlererkennung - Prozessoptimierung --- # Bestandteile der Energieüberwachung - Erfassung der Einspeisung - Erfassung der Steuerströme - Datenverarbeitung - Datenspeicherung - Visualisierung --- # Bestandteile der Prozessanalyse - Erfassung des Anlagenzustandes - Erfassung der Prozessparameter - Korellation der Zustände mit dem Energieverbrauch --- # Besonderheiten - Unterstützung von mehreren Steuerungstypen und Kommunikationsbussen --- | Hersteller | Steuerungstyp | Dezentrale Peripherie | Feldbus | | --- | --- | --- | --- | | Siemens | SIMATIC S7-1500 | SIMATIC ET 200SP | Profinet | | Allen-Bradley | Compact Logix | Point IO | EtherNet/IP | | Mitsubishi | MELSEC iQ-R | | CC-Link IE Field EthetNet/IP | --- # Implementierung ![width:30cm](out/diagrams/datenfluss/Datenfluss.svg) --- # 24V Strommessung - IFM DF2102 - modulare Elektronische Sicherungen - IO-Link - bis zu 16 Kanäle - 1-10A pro Kanal (max. 40A) ![bg](images/empty.png) ![bg width:15cm](external-content/DF2101.jpg) --- # 480V Strommessung - Siemens AI-Energy-Meter - 3-phasig - 3x 150/5A (50/5A) Stromwandler ![bg](images/empty.png) ![bg width:10cm](https://www.nexinstrument.com/thumbnail.asp?file=assets/images/28092017-siemens/70.png&maxx=600&maxy=600) --- # Software - Pythonprojekt: PLC-Connector - Lesen von Daten aus der Steuerung - Lesen von Messwerten aus der Peripherie - Synchronisation der Datenquellen - Aufarbeitung durch Filterung, Aggregation und Selektion --- # Einrichtung des PLC-Connectors - Installation - Konfiguration der Datenquellen (Inputmodule) - Konfiguration der Datenverarbeitung (Middleware) - Konfiguration der Datenspeicherung (Outputmodule) --- # Installation mit Docker Voraussetzungen: - Linux-Umgebung - Git - Docker - docker-compose --- # Installation mit Docker ```bash git clone https://gogs.justprojects.de/Master/smart-energy-monitor.git cd smart-energy-monitor/box-pc sudo docker-compose build sudo docker-compose up -d ``` --- ## Installation ohne Docker Voraussetzungen: - Git - Python 3.x - Python-Paketmanager `pip` - optional Admin-Rechte (für den `snap7`-Server auf Port 102) - `influxdb`-Server --- ## Installation ohne Docker ```cmd git clone https://gogs.justprojects.de/Master/smart-energy-monitor.git cd smart-energy-monitor/box-pc/plc-connector python -m pip install -r requirements.txt python main.py -c config.yml ``` --- ## Konfiguration der Datenquellen ```yaml Inputs: # Definiton des ersten Moduls # ClassName: Name der Python-Klasse des Moduls # path.to.module: relativer Importpfad des Input-Moduls - ClassName: path.to.module # Ob das Modul geladen werden soll # Default: True enabled: True # Parameter, die an den Konstruktor des Moduls übergeben werden param1: "value 1" param2: "value 2" # Definition weiterer Module - ClassName2: path.to.module2 enabled: True ``` --- ## Konfiguration der Datenquellen - Beispiel an einer Siemens S7-1500 CPU - als aktiver Partner ```yaml Inputs: - SiemensCPU: siemens.snap7_connect enabled: True host: "192.168.0.10" ``` --- ## Konfiguration der Datenquellen - Beispiel an einer Siemens ET200 SP CPU - als passiver Partner ```yaml Inputs: - SiemensServer: siemens.snap7_server enabled: True port: 102 ``` --- # Konfiguration der Datenverarbeitung ```yaml Middlewares: # Definiton des ersten Moduls # ClassName: Name der Python-Klasse des Moduls # path.to.module: relativer Importpfad des Middleware-Moduls - ClassName: path.to.module enabled: False - TimeCorrelation: time_correlation # Zwischenmodule können geschachtelt werden, so dass # sie die Ergebnisse des überliegenden Moduls weiterverarbeiten submodules: - PrintStats: print_stats # Standardmäßig werden die Ergebnisse von Middleware-Modulen # ohne Untermodulen für die Ausgabe gesammelt und dedupliziert ``` --- # Konfiguration der Datenverarbeitung - Beispiel für die Filterung ```yaml Middlewares: - TimeCorrelation: time_correlation submodules: - MatchAny: filters series: plant enable_output: False table_move_up: 1 - ComplexFilter: filters predicate: "measurement_480v and measurement_24v and avg(measurement_24v.current) > 0.6" submodules: - ComplexSelector: selectors selector: "avg(measurement_480v.current)" enable_output: True ``` --- - Beispiel für die Aggregation ```yaml Middlewares: - TimeCorrelation: time_correlation - Aggregate: aggregators series: 24v timespan: 0.1 avg: - voltage min: - status - overload submodules: - PrintStats: debug enable_output: True ``` --- # Konfiguration der Datenspeicherung ```yaml Outputs: # Ausgabemodule zum Schreiben von Ergebnisse in eine beliebige Anzahl von Datenbanken # Definiton des ersten Moduls # ClassName: Name der Python-Klasse des Moduls # path.to.module: relativer Importpfad des Output-Moduls - CSVStorage: csv_file path: logs - InfluxDB: influxdb url: "http://localhost:8086" token: "" org: "laempe" bucket: "energy-monitor" ``` --- # Praktische Versuche - Testaufbau - 1. Versuch an einer LFB65 Kernschießmaschine - 2. Versuch an einer LL25 Kernschießmaschine - Messergebnisse --- ![bg width:30cm](out/diagrams/hengli/Hengli.svg) --- ![bg height:15cm](images/hengli-ifm-sicherungen.jpg) ![bg height:15cm](images/hengli-interfacemodul.jpg) --- # Ergebnisse - Einsicht in den Prozessablauf ![width:30cm](out/diagrams/hengli-timing/Hengli-Timing.svg) --- # Ergebnisse - Korrelation von Anlagenstatus mit dem Energieverbrauch - Auswertung für den Versuch an der LFB65 - Identifikation von möglichen Problemen --- ![width:28cm](analyse/data/24v_current.png) --- ![width:28cm](analyse/data/400v_total_power.png) --- # Demo PLC-Connector - Mit dem Replay-Inputmodul