MC_OverrideFilter
Mit dem Funktionsbaustein MC_OverrideFilter kann ein ungefilterter Override-Wert in Digits (z. B. ein Spannungswert einer Analogeingangsklemme) in einen gefilterten, für das zyklische Achsinterface (PlcToNc) passenden, Override-Wert (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 „UpperOverrideThreshold“ auf auf einen Gültigkeitsbereich begrenzt und in eine parametrierbare Stufung (Auflösung) umgesetzt („OverrideSteps“). Nach jeder Override-Änderung am Ausgang des FBs wird intern eine Mindestruhezeit abgewartet („OverrideRecoveryTime“), bevor wieder ein neuer Override-Wert übernommen werden kann. Die einzigen Ausnahmen stellen die Override-Werte 0% und 100%, die aus Sicherheitsgründen immer ohne Zeitverzögerung umgesetzt werden.
![]() | Aufgrund der Stufung des ausgegebenen Override-Wertes („OverrideValueFiltered“) kann der gefilterte Override bei sehr kleinen Override-Eingangswerten („OverrideValueRaw“) Null werden. Ein Override Null führt zum Stillstand der Achse. Wenn ein vollständiger Stillstand nicht erwünscht ist, sollte „OverrideValueRaw“ nicht unter die kleineste Stufung fallen. |
Eingänge
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
Name | Typ | Beschreibung |
---|---|---|
OverrideValueRaw | DINT | Roher, ungefilterter Override-Wert (z. B. ein Spannungswert einer Analogeingangsklemme). |
LowerOverrideThreshold | DINT | Untere Schranke, die den rohen Override-Wert begrenzt. |
UpperOverrideThreshold | DINT | Obere Schranke, die den rohen Override-Wert begrenzt. |
OverrideSteps | UDINT | Die vorgegebene Stufung (Overrideauflösung). |
OverrideRecoveryTime | TIME | Mindestruhezeit nach der ein neuer gefilterter Override-Wert auf den Ausgang gelegt wird. Die Override-Werte 0% und 100% werden allerdings ohne Zeitverzögerung umgesetzt. |
Ausgänge
VAR_OUTPUT
OverrideValueFiltered : DWORD; (* 0...1000000 counts *)
OverridePercentFiltered : LREAL; (* 0...100 % *)
Error : BOOL;
ErrorId : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
OverrideValueFiltered | DWORD | Gefilterter Override-Wert in Digits (der Datentyp passt zum Override im zyklischen Achsinterface 0..1000000). |
OverridePercentFiltered | LREAL | Gefilterter Override-Wert in Prozent (0..100%). |
Error | BOOL | TRUE, wenn ein Fehler auftritt. |
ErrorID | UDINT | 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 v3.0.0 | PC oder CX (x86 oder x64) | Tc2_MC2 |