INTEGRAL
Einleitung
Der Funktionsblock INTEGRAL berechnet näherungsweise das zeitliche Integral eines Eingangssignals. Die Integration erfolgt durch die Summation von Teilflächen, die sich aus dem Produkt des Eingangswertes und der seit dem letzten Aufruf verstrichenen Zeit ergeben. Der Baustein ist nützlich für Anwendungen, in denen kumulative Werte wie verbrauchte Energie, geförderte Mengen oder zurückgelegte Wege bestimmt werden müssen.
Schnittstellenstruktur
Ereignis-Eingänge
REQ: Startet die normale Ausführung der Integration. Die mit diesem Ereignis verbundenen Daten
INundTMwerden verarbeitet.RESET: Setzt den Integrator zurück. Der Ausgang
OUTwird auf Null gesetzt und das Überlauf-FlagOVERFLOWaufFALSE.
Ereignis-Ausgänge
CNF: Signalisiert die Bestätigung der Ausführung. Dieses Ereignis wird sowohl nach einem
REQals auch nach einemRESETausgelöst und liefert die aktuellen Werte vonOUTundOVERFLOW.
Daten-Eingänge
IN (
REAL, Initialwert:0.0): Der Eingangswert, der integriert werden soll.TM (
DINT, Initialwert:0): Die seit dem letzten Aufruf verstrichene Zeit in Millisekunden (ms). Dieser Wert muss positiv sein, damit eine Integration stattfindet.
Daten-Ausgänge
OUT (
REAL, Initialwert:0.0): Der aktuelle Wert des Integrals. Er wird durch Aufsummieren aller Teilintegrale (IN * TM) berechnet. Die Einheit ist[IN] * Sekunden, da der ZeitwertTMintern von Millisekunden in Sekunden umgerechnet wird.OVERFLOW (
BOOL, Initialwert:FALSE): Zeigt einen Überlauf an. Wenn dieser AusgangTRUEist, hat der Wert vonOUTden darstellbaren Bereich desREAL-Datentyps verlassen. Die Integrationsfunktion ist blockiert, bis sie durch einRESET-Ereignis neu initialisiert wird.
Adapter
Dieser Funktionsblock verwendet keine Adapter.
Funktionsweise
Der INTEGRAL-FB besitzt zwei primäre Betriebszustände, die durch die eintreffenden Ereignisse gesteuert werden:
Integration (
REQ): Bei einemREQ-Ereignis wird der AlgorithmusREQausgeführt. Zunächst wird geprüft, ob kein vorheriger Überlauf (OVERFLOW = FALSE) vorliegt. Anschließend wird eine Überlaufprüfung durchgeführt: Falls die Addition des nächsten Teilintegrals (IN * TM) zum aktuellenOUT-Wert die Grenzen desREAL-Datentyps (ca. ±1.0E38) überschreiten würde, wirdOVERFLOWaufTRUEgesetzt. Andernfalls, und nur wenn die ZeitdifferenzTMgrößer als 0 ist, wird das Teilintegral berechnet, in Sekunden umgerechnet (/ 1000.0) und zum GesamtintegralOUTaddiert.Reset (
RESET): Bei einemRESET-Ereignis wird der AlgorithmusRESETausgeführt. Dieser setzt den IntegralwertOUTauf0.0und das Überlauf-FlagOVERFLOWaufFALSEzurück.
Nach der Ausführung des jeweiligen Algorithmus wird stets ein CNF-Ausgangsereignis mit den aktuellen Werten generiert.
Technische Besonderheiten
Überlaufbehandlung: Der Baustein verfügt über eine integrierte Überlauferkennung. Bei Erkennung eines potenziellen Überlaufs wird die Integration gestoppt (
OVERFLOW = TRUE), um undefiniertes Verhalten zu vermeiden. Ein manueller Reset ist erforderlich, um den Betrieb fortzusetzen.Zeitbasis: Die Integration basiert auf der vom Anwender bereitgestellten Zeitdifferenz
TMin Millisekunden. Der Baustein selbst besitzt keinen internen Timer. Dies ermöglicht eine flexible Anpassung an verschiedene Zykluszeiten des umgebenden Steuerungsprogramms.Initialisierung: Bei der ersten Initialisierung des Bausteins sind
OUT = 0.0undOVERFLOW = FALSE.
Zustandsübersicht
Der Funktionsblock ist ein Simple FB und besitzt explizit definierte Ausführungszustände (ECStates) für die beiden möglichen Ereignisse:
Zustand REQ: Wird bei Eintreffen des
REQ-Ereignisses aktiviert. Führt den Integrationsalgorithmus aus.Zustand RESET: Wird bei Eintreffen des
RESET-Ereignisses aktiviert. Führt den Reset-Algorithmus aus. Beide Zustände führen nach ihrer Ausführung zur Ausgabe desCNF-Ereignisses.
Anwendungsszenarien
Energiemessung: Berechnung des Gesamtenergieverbrauchs aus einer momentanen Leistungsmessung (
IN= Leistung in kW,OUT= Energie in kWh).Durchflussmessung: Ermittlung der insgesamt geförderten Flüssigkeits- oder Gasmenge aus einem Durchflusssensor (
IN= Durchfluss in l/min,OUT= Volumen in l).Geschwindigkeitsintegration: Bestimmung der zurückgelegten Strecke aus einem Geschwindigkeitssignal (
IN= Geschwindigkeit in m/s,OUT= Weg in m).Ladungsberechnung: Integration eines Stromsignals zur Ermittlung der geflossenen Ladung (
IN= Strom in A,OUT= Ladung in Ah).
⚖️ Vergleich mit ähnlichen Bausteinen
Im Vergleich zu einfacheren Summierbausteinen (z.B. ADD) zeichnet sich INTEGRAL durch die explizite Berücksichtigung der Zeit als Integrationsvariable aus. Im Gegensatz zu komplexeren Regelbausteinen mit integrierten Timern (wie z.B. bestimmten PID-Implementierungen) ist INTEGRAL ein reiner, zeitdiskreter Integrator, der die Zeitdifferenz als Eingangsvariable erwartet und somit extern getaktet wird. Dies macht ihn flexibler in Systemen mit variabler oder nicht-periodischer Zykluszeit.
🛠️ Zugehörige Übungen
Fazit
Der INTEGRAL-Funktionsblock ist ein grundlegendes und robustes Werkzeug zur zeitlichen Integration von Signalen in IEC 61499-Steuerungen. Seine klare Schnittstelle, die integrierte Überlaufsicherung und die flexible Handhabung der Zeitdifferenz machen ihn zu einer zuverlässigen Komponente für eine Vielzahl von Mess- und Regelaufgaben. Die Notwendigkeit, die verstrichene Zeit extern zu ermitteln und bereitzustellen, bietet maximale Flexibilität, erfordert aber auch eine korrekte Implementierung im umgebenden Anwendungsprogramm.