Berechnen eines Minimum-, Maximum- und Mittelwerts eines Modbus-Werts
  • 01 Oct 2024
  • pdf

Berechnen eines Minimum-, Maximum- und Mittelwerts eines Modbus-Werts

  • pdf

Artikel-Zusammenfassung

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 einen INSYS-Router, das sich in der EEG-Anlage befindet, über eine sichere VPN-Verbindung.

cg ids modbus minmaxavg

Lösung

Die icom Data Suite, welche auf dem INSYS-Router 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 der INSYS-Router entsprechend für den Aufbau der VPN-Verbindung zum Direktvermarkter sowie der Modbus-Verbindung zur Steuerung der EEG-Anlage konfiguriert ist.

Konfigurieren der Modbus-Verbindung zur EEG-Anlage

  1. Im Menü  DatenpunkteModbus 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 (serielle Parameter, Adressen und Protokoll-Parameter sind verfügbar vom Hersteller der EEG-Anlage)

    • Polling-Intervall: 5

    • Slave-Adresse: die Modbus Slave-Adresse der Steuerung der EEG-Anlage eingeben

    • Byte-Reihenfolge: wie vom Protokoll gefordert auswählen

  2. Auf Einstellungen speichern klicken.

  3. Im Menü DatenpunkteModbus im Abschnitt Datenpunkte einen neuen Datenpunkt, der die Einspeiseleistung aus der Steuerung der EEG-Anlage ausliest, hinzufügen () und diesen bearbeiten ():

    • Beschreibung: Feed power

    • Typ: Holding-Register

    • Register: 1

    • Format: Unsigned Integer 16

      Wo finde ich diese Informationen?

      Typ, Register und Format können der Protokollbeschreibung entnommen werden, die vom Hersteller der EEG-Anlage zur Verfügung gestellt werden sollte.

  4. Auf Einstellungen speichern klicken.

Konfigurieren der Werteberechnung

  1. Im Menü ALUFunktionen eine neue Funktion, welche das Minimum eines Werts berechnet, hinzufügen () und diese bearbeiten ():

    • Beschreibung: Feed power minimum

    • Typ: Minimum

    • Wert über Zeit erfassen:

    • Eingangs-Datenpunkte: den oben hinzugefügten Datenpunkt für die Einspeiseleistung markieren

  2. Auf Einstellungen speichern klicken.

  3. Im Menü ALUFunktionen eine neue Funktion, welche das Maximum eines Werts berechnet, hinzufügen () und diese bearbeiten ():

    • Beschreibung: Feed power maximum

    • Typ: Maximum

    • Wert über Zeit erfassen:

    • Eingangs-Datenpunkte: den oben hinzugefügten Datenpunkt für die Einspeiseleistung markieren

  4. Auf Einstellungen speichern klicken.

  5. Im Menü ALUFunktionen eine neue Funktion, welche den Mittelwert eines Werts berechnet, hinzufügen () und diese bearbeiten ():

    • Beschreibung: Feed power average

    • Typ: Gleitender Mittelwert

    • Wert über Zeit erfassen:

    • Eingangs-Datenpunkte: den oben hinzugefügten Datenpunkt für die Einspeiseleistung markieren

  6. Auf Einstellungen speichern klicken.

Konfigurieren der Modbus-Verbindung zum Direktvermarkter

  1. Im Menü GatewayModbus ein neues Gerät hinzufügen () und dieses bearbeiten ():

    • Beschreibung: Modbus gateway to direct marketer

    • Typ: TCP

    • Port: 502

    • Slave-Adresse: die Slave-Adresse des Direktvermarkters eingeben (beim Direktvermarkter anfragen)

    • Byte-Reihenfolge: wie vom Protokoll gefordert auswählen

  2. Auf Einstellungen speichern klicken.

  3. Im Menü GatewayModbus im Abschnitt Zuordnungen eine neue Zuordnung, welche den Minimumwert der Einspeiseleistung in einem Modbus-Register zur Verfügung stellt, hinzufügen () und diese bearbeiten ():

    • Datenpunkt: function1 - Feed power minimum

    • Typ: Holding-Register

    • Register: eine Register-Adresse für den Minimumwert der Einspeiseleistung eingeben

    • Format: Unsigned Integer 16

  4. Auf Einstellungen speichern klicken.

  5. Im Menü GatewayModbus im Abschnitt Zuordnungen eine neue Zuordnung, welche den Maximumwert der Einspeiseleistung in einem Modbus-Register zur Verfügung stellt, hinzufügen () und diese bearbeiten ():

    • Datenpunkt: function2 - Feed power maximum

    • Typ: Holding-Register

    • Register: eine Register-Adresse für den Maximumwert der Einspeiseleistung eingeben

    • Format: Unsigned Integer 16

  6. Auf Einstellungen speichern klicken.

  7. Im Menü GatewayModbus im Abschnitt Zuordnungen eine neue Zuordnung, welche den Mittelwert der Einspeiseleistung in einem Modbus-Register zur Verfügung stellt hinzufügen () und diese bearbeiten ():

    • Datenpunkt: function3 - Feed power average

    • Typ: Holding-Register

    • Register: eine Register-Adresse für den Mittelwert der Einspeiseleistung eingeben

    • Format: Unsigned Integer 16

  8. Auf Einstellungen speichern klicken.

  9. Das Profil aktivieren ().

Fehlersuche

  • Die Seite StatusAktuelle 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 StatusLog-Ansicht (auch des Routers) prüfen, um mögliche Probleme zu finden.

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.

ASCII-Konfiguration

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


War dieser Artikel hilfreich?