MC_AxUtiSlewRateLimitter_BkPlcMc (ab V3.0)
Der Funktionsbaustein erzeugt eine anstiegsbegrenzte Rampe.
Eingänge
VAR_INPUT
fInput: LREAL:=0.0;
fCycletime: DINT:=0;
fMaxRate: DINT:=0;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fInput | LREAL | Der Roh-Wert der zu filternden Größe. |
fCycletime | DINT | [s] Die Zykluszeit der aufrufenden PLC Task in Sekunden. |
fMaxRate | DINT | Der Betrag der am Ausgang maximal zulässigen Änderungsrate als Änderung pro Sekunde. |
Ausgänge
VAR_OUTPUT
fOutput: LREAL:=0.0;
bError: BOOL:=FALSE;
nErrorId: UDINT:=0;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fOutput | LREAL | [1/s] Der gefilterte Wert. |
bError | BOOL | Dieser Ausgang signalisiert Probleme mit den übergebenen Parametern. |
nErrorId | UDINT | Im Fehlerfall wird hier eine codierte Fehlerinformation ausgegeben. |
Verhalten des Bausteins
Bei jedem Aufruf überprüft der Baustein die übergebenen Werte für fCycletime und fMaxRate. Sind die Werte nicht korrekt wird mit bError und einer codierten Information in nErrorId reagiert. Andernfalls wird bei jedem Aufruf die Differenz zwischen Input und Output ermittelt. Ist der Betrag dieser Differenz kleiner oder gleich fMaxRate * fCycletime wird der Wert von Input unmittelbar als fOutput übernommen. Andernfalls wird fOutput um fMaxRate * fCycletime geändert. Dabei wird das Vorzeichen automatisch gewählt.
Der Wert für fCycletime muss ≥ 0.001 sein. Für fMaxRate sind negative Werte nicht zulässig. |
In der Regel wird es sich bei Input um einen Wert handeln, der im Takt der Achsbausteine ermittelt und gefiltert wird. Hier kann für fCycletimeAxis_Ref_BkPlcMc.ST_TcHydAxParam.fCycletime verwendet werden.