# Implementierung ## Wahl der Sensoren Zur Erfassung der Energiewerte kommen verschiedene Systeme in Frage. Alle diese Sensorsysteme müssen jedoch folgende Kriterien erfüllen: - Eignung und Zertifizierung für industrielle Umgebungen - Konvertierung in digitale Signale auf einem standardisierten Feldbus - Feldbusanschluss ist in Laempe-Anlagen einsetzbar - internationale Versorgungsspannungen werden unterstützt ![Datenfluss](out/diagrams/datenfluss/Datenfluss.svg) - Untersuchung der Verfügbarkeit von Leistungssensoren mit Feldbusanschluss - Alternativen für Einspeisung - Leistungstrennschalter mit Leistungserfassung über Modbus - Stromzähler mit MBus - Leistungsanalyse durch einen Energie-Monitor mit Netzwerkfähigkeit - Erweiterung durch zusätzliche Stromwandler - Alternativen für Kleinstspannungskreise - Stromshunts mit ADC über IO-Link - Netzteile mit Modbus - elektronische Sicherungen mit IO-Link - Wahl der Sensoren - Janitza Energie-Monitor mit OPC UA - IFM elektronische Sicherung mit IO-Link - Testaufbau - Energiemonitor, Feldbus, SPS, Netzwerk, IPC ## Software Die Software für dieses Projekt übernimmt die Aufgaben der Datenverarbeitung und -speicherung. Zudem müssen die aufgenommenen Messwerte von der zentralen Steuerung der Kernschießmaschine eingelesen werden. Das selbst geschriebene Programm "PLC-Connector" ist in diesem Abschnitt genauer beschrieben. Die Benutzerschnittstelle zum Benutzer des Systems kann im nachhinein durch ein generisches Interface zur Datenbank geschehen, da die dort enthaltenen Daten schon durch das Programm "PLC-Connector" und dessen entsprechende Signalverarbeitungsmodule aufbereitet sind. *PLC-Connector* ist modular aufgebaut, so dass verschiedene Komponenten einfach ausgetauscht werden können. Die Module sind in drei Kategorien unterteilt: 1. Inputs Ein *Input*-Modul stellt die Verbindung zu einer bestimmten Komponente der Anlage auf und bezieht über diese periodisch die Messwerte eines oder mehrerer Sensoren. Die Komponenten können beispielsweise Feldbusverteiler, netzwerkfähige Sensoren oder die zentrale Steuerung einer Anlage sein. Je nach Modul kommen unterschiedliche Protokolle zur Kommunikation zum Einsatz. Unter diesen sind zum Beispiel EtherNet/IP und das S7-Protokoll vertreten. 2. Middlewares Eine *Middleware* ist ein Algorithmus, der strukturierte Datensätze der aktiven *Input*-Module entgegen nimmt und die für die Auswertung interessante Informationen extrahiert. Eine erste *Middleware* nimmt beispielsweise die Werte mehrerer *Inputs* entgegen und führt eine zeitliche Korrelation durch. Die dadurch entstandenen Datenpakete können dann optional an weitere *Middlewares* weitergegeben werden, welche andere Analysen durchführen. Schließlich kann eine Middleware ihre Ergebnisse an die *Outputs* übergeben. 3. Outputs *Outputs* sind Datensenken, welche Datensätze von *Middlewares* entgegen nehmen und abspeichern. Ein *Output* archiviert beispielsweise die Datensätze in CSV Dateien und ein anderes sendet sie an eine Influxdb-Datenbank. Die Module werden durch ein zentrales Python-Programm geladen, welches auch die initiale Konfiguration und die Datenübertragung zwischen den Modulen orchestriert. Ansonsten arbeiten die Module komplett autonom. Die Verbindungen und Parameter der Module sind in einer zentralen Konfigurationsdatei `config.yml` definiert.