MC_OverrideFilter
Mit dem Funktionsbaustein MC_OverrideFilter kann ein ungefilterter Overridewert in Digits ( z.B. ein Spannungswert einer Analogeingangsklemme) in einen gefilterten, für das zyklische Achsinterface (PlcToNc) passenden, Overidewert (DWORD im Wertebereich 0...1000000) umgerechnet werden. Ebenfalls steht dieser gefilterte Override auch in Prozent zur Verfügung (LREAL im Wertebereich 0...100%).
Der rohe Eingangswert wird dabei durch LowerOverrideThreshold und UpperOverrideThresholdauf auf einen Gültigkeitsbereich begrenzt und in eine parametrierbare Stufung (Auflösung) umgesetzt (OverrideSteps). Nach jeder Overrideänderung am Ausgang des FB's wird intern eine Mindestruhezeit abgewartet (OverrideRecoveryTime), bevor wieder ein neuer Overridewert übernommen werden kann. Die einzigen Ausnahmen stellen die Overridewerte 0% und 100%, die aus Sicherheitsgründen immer ohne Zeitverzögerung umgesetzt werden.
Hinweis: Aufgrund der Stufung des ausgegebenen Override-Wertes (OverrideValueFiltered) kann es bei sehr kleinen Override-Eingangswerten (OverrideValueRaw) vorkommen, dass der gefilterte Override zu Null wird. Ein Override Null führt zum Stillstand der Achse. Falls ein vollständiger Stillstand nicht erwünscht ist, sollte OverrideValueRaw nicht unter die kleineste Stufung fallen.
VAR_INPUT
VAR_INPUT
OverrideValueRaw : DINT;
LowerOverrideThreshold : DINT := 0; (* 0...32767 digits *)
UpperOverrideThreshold : DINT := 32767; (* 0...32767 digits *)
OverrideSteps : UDINT := 200; (* 200 steps => 0.5 percent *)
OverrideRecoveryTime : TIME := T#150ms; (* 150 ms *)
END_VAR
OverrideValueRaw: Rohe, ungefilterter Overridewert (z.B. ein Spannungswert einer Analogeingangsklemme).
LowerOverrideThreshold: Die untere Schranke, die den rohen Overridewert begrenzt.
UpperOverrideThreshold: Die obere Schranke, die den rohen Overridewert begrenzt.
OverrideSteps: Die vorgegebene Stufung (Overrideauflösung).
OverrideRecoveryTime: Mindestruhezeit nach der ein neuer gefilterter Overridewert auf den Ausgang gelegt wird. Die Overridewerte 0% und 100% werden allerdings ohne Zeitverzögerung umgesetzt.
VAR_OUTPUT
VAR_OUTPUT
OverrideValueFiltered : DWORD; (* 0...1000000 counts *)
OverridePercentFiltered : LREAL; (* 0...100 % *)
Error : BOOL;
ErrorId : UDINT;
END_VAR
OverrideValueFiltered: Der gefilterte Overridewert in Digits (der Datentyp passt zum Override im zyklischen Achsinterface 0..1000000).
OverridePercentFiltered: Der gefilterte Overridewert in Prozent (0..100%).
Error: Wird TRUE, sobald ein Fehler eintritt.
ErrorID: Liefert bei einem gesetzten Error-Ausgang die Fehlernummer.
Mögliche Fehlernummer | Mögliche Ursachen |
---|---|
MC_ERROR_PARAMETER_NOT_CORRECT |
|
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.8 Build > 739 | PC (i386) | TcMC.Lib |