Rekonfiguration mit und ohne Reset
In diesem Beispiel exemplarisch gezeigt, wie ein Filter währen der Laufzeit rekonfiguriert werden kann und welche Möglichkeiten es gibt, dabei ein Reset zu unterdrücken.
Download: Tc3_Filter_bReset.zip (*.tnzip)
Beschreibung:
- Das Beispielprojekt besteht aus einem TwinCAT-SPS-Projekt und einem Measurement-Projekt
- Im Measurement-Projekt sind zwei Ausgangssignale und eine Counter-Variable konfiguriert.
- Über einen Signalgenerator wird ein harmonisches Signal mit einer Frequenz von 700 Hz erzeugt. Das Signal wird von zwei Filtern mit identischen Filterkoeffizienten verarbeitet.
- Während der Laufzeit wird zwischen zwei Filterkonfigurationen (Parametrierung der Filterkoeffizienten) hin und her geschaltet. Für die eine Filterinstanz (
fbFilterReset)
wird im Gegensatz zur anderen Filterinstanz (fbFilterNoReset
) die MethodeReset()
bei der Rekonfiguration des Filters aufgerufen, um den internen Status des Filters zurückzusetzen. - Das SPS-Programm MAIN wird von einer Task mit 1 ms Zykluszeit aufgerufen.
Implementierung:
- Über den Parameter
bReset
der Konfigurationsstruktur ST_FTR_IIRCoeff können Sie steuern, ob ein Reset beim Ausführen der MethodeConfigure()
ausgeführt wird (Standardwert istTRUE
).
stParams : ST_FTR_IIRCoeff := ( … )
stParams.bReset := FALSE;
fbFilterNoReset.Configure(stConfig := stParams);
Beobachtung:
Wenn Sie das Projekt aktivieren, können Sie im Measurement-Projekt die Ausgangssignale der beiden Filterinstanzen beobachten. Das rote Signal zeigt das Ausgangssignal der Funktionsbausteininstanz fbFilterNoReset
. Im zeitlichen Signalverlauf ist kein Sprung durch die Rekonfiguration zu erkennen. Dagegen springt das Ausgangssignal der Funktionsbausteininstanz fbFilterReset
bei Ausführung der Rekonfiguration, da sich das Filter zum Zeitpunkt der Rekonfiguration ausgehend vom Wert Null wieder einschwingt (blaues Signal).


Siehe auch: