1. Situation
Eine EEG-Anlage muss dem Direktvermarkter einen Minimum-, Maximum- und Mittelwert der Einspeiseleistung zur Verfügung stellen. Die EEG-Anlage gibt einen Modbus-Wert aus, der ihre Einspeiseleistung enthält. Der Direktvermarkter erfordert einen Modbus-Protokoll-Wert, der die Einspeiseleistungs-Werte enthält. Die Einspeiseleistungs-Werte müssen berechnet und dem Direktvermarkter über Modbus zur Verfügung gestellt werden. Die Datenübertragung und Berechnung erfolgt durch ein INSYS Smart Device (Industrierouter), das sich in der EEG-Anlage befindet, über eine sichere VPN-Verbindung.
2. Lösung
Die icom Data Suite, welche auf dem INSYS Smart Device (Industrierouter) läuft, agiert als Berechnungseinrichtung der Modbus-Werte und stellt den Minimum-, Maximum- und Mittelwert des Werts zur Verfügung.
Die icom Data Suite agiert als Modbus Master und liest die Einspeiseleistung aus einem Modbus-Register der Steuerung der EEG-Anlage aus, die als Modbus Slave agiert.
Die icom Data Suite berechnet dann den Minimum-, Maximum- und Mittelwert des Werts.
Die icom Data Suite agiert als Modbus-Slave und stellt die Werte dem Direktvermarkter, der als Modbus Master agiert, in einem Modbus-Register zur Verfügung.
Beachten Sie, dass die Werte aus der über die Zeit erfassten Einspeiseleistung berechnet werden, d.h. alle im Zeitraum aufgelaufenen Werte werden für die Ermittlung des Ergebnisses herangezogen.
Der Zeitraum beginnt mit dem Start der Erfassung und wenn gewünscht durch eine Aktion neu gestartet werden.
Es wird vorausgesetzt, dass Sie Zugriff auf das Web-Interface der icom Data Suite haben.
Es wird auch vorausgesetzt, dass das INSYS Smart Device (Industrierouter) entsprechend für den Aufbau der VPN-Verbindung zum Direktvermarkter sowie der Modbus-Verbindung zur Steuerung der EEG-Anlage konfiguriert ist.
2.1. Konfigurieren der Modbus-Verbindung zur EEG-Anlage
-
Im Menü Datenpunkte → Modbus ein neues Gerät hinzufügen () und dieses bearbeiten ():
-
Beschreibung: Modbus connection to renewable energy plant
-
Typ: den Verbindungstyp TCP (TCP/IP) oder RTU (seriell) je nach Modbus-Verbindung auswählen
-
Adresse und Port für TCP oder die seriellen Parameter für RTU eingeben [1]
-
Polling-Intervall: 5
-
Slave-Adresse: die Modbus Slave-Adresse der Steuerung der EEG-Anlage eingeben
-
Byte-Reihenfolge: wie vom Protokoll gefordert auswählen
-
-
Auf Einstellungen speichern klicken.
-
Im Menü Datenpunkte → Modbus im Abschnitt Datenpunkte einen neuen Datenpunkt hinzufügen () und diesen bearbeiten (): [2]
-
Auf Einstellungen speichern klicken.
2.2. Konfigurieren der Werteberechnung
-
Im Menü ALU → Funktionen eine neue Funktion hinzufügen () und diese bearbeiten (): [6]
-
Beschreibung: Feed power minimum
-
Typ: Minimum
-
Wert über Zeit erfassen:
-
Eingangs-Datenpunkte: den oben hinzugefügten Datenpunkt für die Einspeiseleistung markieren
-
-
Auf Einstellungen speichern klicken.
-
Im Menü ALU → Funktionen eine neue Funktion hinzufügen () und diese bearbeiten (): [7]
-
Beschreibung: Feed power maximum
-
Typ: Maximum
-
Wert über Zeit erfassen:
-
Eingangs-Datenpunkte: den oben hinzugefügten Datenpunkt für die Einspeiseleistung markieren
-
-
Auf Einstellungen speichern klicken.
-
Im Menü ALU → Funktionen eine neue Funktion hinzufügen () und diese bearbeiten (): [8]
-
Beschreibung: Feed power average
-
Typ: Gleitender Mittelwert
-
Wert über Zeit erfassen:
-
Eingangs-Datenpunkte: den oben hinzugefügten Datenpunkt für die Einspeiseleistung markieren
-
-
Auf Einstellungen speichern klicken.
2.3. Konfigurieren der Modbus-Verbindung zum Direktvermarkter
-
Im Menü Gateway → Modbus ein neues Gerät hinzufügen () und dieses bearbeiten ():
-
Beschreibung: Modbus gateway to direct marketer
-
Typ: TCP
-
Port: 502
-
Slave-Adresse: Enter the slave address of the direct marketer [9]
-
Byte-Reihenfolge: wie vom Protokoll gefordert auswählen
-
-
Auf Einstellungen speichern klicken.
-
Im Menü Gateway → Modbus im Abschnitt Zuordnungen eine neue Zuordnung hinzufügen () und diese bearbeiten (): [10]
-
Datenpunkt: function1 - Feed power minimum
-
Typ: Holding-Register
-
Register: eine Register-Adresse für den Minimumwert der Einspeiseleistung eingeben
-
Format: Unsigned Integer 16
-
-
Auf Einstellungen speichern klicken.
-
Im Menü Gateway → Modbus im Abschnitt Zuordnungen eine neue Zuordnung hinzufügen () und diese bearbeiten (): [11]
-
Datenpunkt: function2 - Feed power maximum
-
Typ: Holding-Register
-
Register: eine Register-Adresse für den Maximumwert der Einspeiseleistung eingeben
-
Format: Unsigned Integer 16
-
-
Auf Einstellungen speichern klicken.
-
Im Menü Gateway → Modbus im Abschnitt Zuordnungen eine neue Zuordnung hinzufügen () und diese bearbeiten (): [12]
-
Datenpunkt: function3 - Feed power average
-
Typ: Holding-Register
-
Register: eine Register-Adresse für den Mittelwert der Einspeiseleistung eingeben
-
Format: Unsigned Integer 16
-
-
Auf Einstellungen speichern klicken.
-
Das Profil aktivieren ().
3. Fehlersuche
-
Die Seite Status → Aktuelle Werte öffnen, um zu prüfen, ob die Merker die Werte der Einspeiseleistungs-Anforderungen erhalten. Wenn die Werte hier fehlen/falsch sind, die Konfiguration der Gateways in der icom Data Suite prüfen. Wenn die hier korrekte Werte angezeigt werden, die Konfiguration der Modbus Slave-Verbindung in der icom Data Suite prüfen.
-
Die entsprechenden Logs auf der Seite Status → Log-Ansicht (auch des Routers) prüfen, um mögliche Probleme zu finden.
4. Ressourcen
Folgende ASCII-Konfiguration kann per Copy & Paste übernommen werden. Dabei ist zu beachten, dass die einzelnen Parameter entsprechend der eigenen Anwendung anzupassen sind. Bei nummerierten Parameter ist die korrekte Nummerierung zu beachten. Außerdem ist zu beachten, dass keine bestehenden Parameter mit derselben Nummer überschrieben werden. Eine ordentliche Funktionalität kann nur gewährleistet werden, wenn das geöffnete Profil zuvor aus den Werkseinstellungen erzeugt wurde.
datapoints.modbus.device.add datapoints.modbus.device[1].active=1 datapoints.modbus.device[1].description=Modbus connection to renewable energy plant datapoints.modbus.device[1].type=tcp datapoints.modbus.device[1].ip_address=192.168.101.13 datapoints.modbus.device[1].tcp_port=502 datapoints.modbus.device[1].serial_port=--- datapoints.modbus.device[1].serial_speed=115200 datapoints.modbus.device[1].serial_databits=8 datapoints.modbus.device[1].serial_parity=par_none datapoints.modbus.device[1].serial_stopbits=1 datapoints.modbus.device[1].polling_interval=5 datapoints.modbus.device[1].slave_address=1 datapoints.modbus.device[1].endianess=big_abcd datapoints.modbus.device[1].response_timeout=500 datapoints.modbus.device[1].byte_timeout=500 datapoints.modbus.device[1].read_delay=0 datapoints.modbus.device[1].datapoint.add datapoints.modbus.device[1].datapoint[1].datapoint_active=1 datapoints.modbus.device[1].datapoint[1].datapoint_description=Feed power datapoints.modbus.device[1].datapoint[1].datapoint_type=holding_register datapoints.modbus.device[1].datapoint[1].datapoint_register=1 datapoints.modbus.device[1].datapoint[1].datapoint_bit= datapoints.modbus.device[1].datapoint[1].datapoint_format=uint16 alu.functions.function.add alu.functions.function[1].active=1 alu.functions.function[1].description=Feed power minimum alu.functions.function[1].type=min alu.functions.function[1].datapoint=mdbDp1 alu.functions.function[1].time_based=1 alu.functions.function.add alu.functions.function[2].active=1 alu.functions.function[2].description=Feed power maximum alu.functions.function[2].type=max alu.functions.function[2].datapoint=mdbDp1 alu.functions.function[2].time_based=1 alu.functions.function.add alu.functions.function[3].active=1 alu.functions.function[3].description=Feed power average alu.functions.function[3].type=moving_average alu.functions.function[3].datapoint=mdbDp1 alu.functions.function[3].time_based=1 gateway.modbus.gateway.add gateway.modbus.gateway[1].active=1 gateway.modbus.gateway[1].description=Modbus gateway to direct marketer gateway.modbus.gateway[1].type=tcp gateway.modbus.gateway[1].tcp_port=502 gateway.modbus.gateway[1].serial_port=--- gateway.modbus.gateway[1].serial_speed=115200 gateway.modbus.gateway[1].serial_databits=8 gateway.modbus.gateway[1].serial_parity=par_none gateway.modbus.gateway[1].serial_stopbits=1 gateway.modbus.gateway[1].slave_address=2 gateway.modbus.gateway[1].endianess=big_abcd gateway.modbus.gateway[1].mapping.add gateway.modbus.gateway[1].mapping[1].map_active=1 gateway.modbus.gateway[1].mapping[1].map_datapoint=function1 gateway.modbus.gateway[1].mapping[1].map_type=holding_register gateway.modbus.gateway[1].mapping[1].map_register=1 gateway.modbus.gateway[1].mapping[1].map_bit= gateway.modbus.gateway[1].mapping[1].map_format=uint16 gateway.modbus.gateway[1].mapping.add gateway.modbus.gateway[1].mapping[2].map_active=1 gateway.modbus.gateway[1].mapping[2].map_datapoint=function2 gateway.modbus.gateway[1].mapping[2].map_type=holding_register gateway.modbus.gateway[1].mapping[2].map_register=2 gateway.modbus.gateway[1].mapping[2].map_bit= gateway.modbus.gateway[1].mapping[2].map_format=uint16 gateway.modbus.gateway[1].mapping.add gateway.modbus.gateway[1].mapping[3].map_active=1 gateway.modbus.gateway[1].mapping[3].map_datapoint=function3 gateway.modbus.gateway[1].mapping[3].map_type=holding_register gateway.modbus.gateway[1].mapping[3].map_register=3 gateway.modbus.gateway[1].mapping[3].map_bit= gateway.modbus.gateway[1].mapping[3].map_format=uint16
Zurück zu den Configuration Guides für die icom Data Suite
Zurück zur Übersicht