MC_AxCtrlStepperDeStall_BkPlcMc
Der Funktionsbaustein überwacht die Bewegung einer Schrittmotorachse, die mit einem Encoder betrieben wird.
Der Einsatz eines echten Encoders (nicht Encoder-Emulation durch Impulszählung einer Ausgabe-Klemme) ist für die Funktion dieses Bausteins unverzichtbar. |
Auch beim Einsatz eines solchen Bausteins kann es zum Stall (Drehmomentabriss) kommen. Es kann also auch dann nicht vorausgesetzt werden, dass die Geschwindigkeit konstant ist. |
Eingänge
VAR_INPUT
EnableAcc: BOOL:=FALSE;
EnableDec: BOOL:=FALSE;
Reset: BOOL:=FALSE;
UseKL2531State: BOOL:=FALSE;
ResetRefOnError: BOOL:=FALSE;
FirstAuxParamIdx:INT:=0;
VeloLimit: LREAL:=0.0;
LimitFilter: LREAL:=0.0;
UpdateFilter: LREAL:=0.0;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
EnableAcc | BOOL | Diese Eingänge legen fest, ob die Überwachung auch in den Beschleunigungs- und Bremsphasen eingreifen darf. |
EnableDec | BOOL | |
Reset | BOOL | Dieser Eingang kontrolliert die Aktivität des Reglers. |
UseKL2531State | BOOL | Wenn hier ein TRUE übergeben wird wertet der Baustein ST_TcPlcDeviceInput.bTerminalState aus. |
ResetRefOnError | BOOL | Wenn hier ein TRUE übergeben wird löscht der Baustein das Referenzflag der Achse. |
FirstAuxParamIdx | INT | Hier kann ein Bereich in den Axis_Ref_BkPlcMc.ST_TcHydAxParam.fCustomerData als Parameter-Interface aktiviert werden. |
VeloLimit | LREAL | Die Schwelle für die Geschwindigkeitsabweichung, ab der die Stall-Situation erkannt wird. |
LimitFilter | LREAL | Die Zeit, für die eine zu große Geschwindigkeitsabweichung ununterbrochen vorliegen muss, damit die Stall-Situation erkannt wird. |
UpdateFilter | LREAL | Die Zeitkonstante, mit der im Baustein der Geschwindigkeits-Stellwert an die Istgeschwindigkeit angepasst wird. |
Ein-/Ausgänge
VAR_INOUT
Axis: Axis_Ref_BkPlcMc;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Axis | Axis_Ref_BkPlcMc | Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben. |
Ausgänge
VAR_OUTPUT
Active: BOOL;
Activated: BOOL;
Error: BOOL;
ErrorID: UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Active | BOOL | Hier wird signalisiert, dass eine Stall-Situation erkannt ist. |
Activated | BOOL | Hier wird signalisiert, dass seit dem letzten Start einer aktiven Achsbewegung eine Stall-Situation erkannt wurde. |
Error | BOOL | Hier wird das Auftreten eines Fehlers signalisiert. |
ErrorID | UDINT | Hier wird eine codierte Fehlerursache bereitgestellt. |
Verhalten des Bausteins
Bei jedem Aufruf überprüft der Baustein, ob er den Zustand wechseln muss. Er geht in den aktiven Zustand, wenn die interne Bewegungsphase dies nach den Regeln von EnableAcc, EnableDec zulässt und der Geschwindigkeitsfehler für mindestens LimitFilter ununterbrochen den Wert von VeloLimit überschreitet. Dabei erlaubt EnableAcc dem Baustein, während der Phasen mit konstanter oder im Betrag steigenden Phasen einzugreifen. EnableDec gibt die Aktivität des Bausteins für Phasen mit im Betrag sinkender oder konstanter Geschwindigkeit frei. Beim Wechsel in den aktiven Zustand werden Active und Activated gesetzt.
In den inaktiven Zustand wechselt der Baustein, wenn der Geschwindigkeitsfehler auf den halben Wert von VeloLimit abgebaut wurde. Beim Wechsel in den inaktiven Zustand wird Active gelöscht.
Im aktiven Zustand wird der Stellwert mit der Zeitkonstanten UpdateFilter an die Istgeschwindigkeit angeglichen. Ist die Zeitkonstante auf 0.0 gesetzt, wird die Istgeschwindigkeit direkt übernommen.
Im inaktiven Zustand wird Activated gelöscht, wenn die Achse den Ruhezustand verlässt und eine aktive Bewegung beginnt.
Da der Baustein die Differenz zwischen Soll- und Istgeschwindigkeit auswertet ist die korrekte Einstellung der Referenzgeschwindigkeit beim Einsatz des Bausteins wichtig. Eine zu ungenaue Einstellung dieses Parameters kann dazu führen, dass der Baustein ohne Notwendigkeit in die Bewegung eingreift. |
Der nachstehende Scope View zeigt eine Positionierung, in deren Verlauf zwei Mal auf ein Hindernis aufgefahren wurde. Dadurch kam die Achse jeweils vollständig zum Stillstand.
Integration des Bausteins in die Applikation
Ein Baustein dieses Typs muss nach der Istwert-Erfassung und Stellwert-Generierung aufgerufen werden. Der Baustein überlagert seine Reaktion mit der des Stellwert-Generators und trägt sie in die ST_TcHydAxRtData Struktur ein. Der nach dem Reglerbaustein zu platzierende MC_AxRtFinish_BkPlcMc Baustein berücksichtigt die Reaktion dann automatisch.
Durch einen Wert größer als 0 in FirstAuxParamIdx kann der Baustein veranlasst werden drei aufeinander folgende Werte in den fCustomerData der Parameter-Struktur als VeloLimit, LimitFilter und UpdateFilter zu verwenden. Ist in Axis.pStAxAuxLabels die Adresse eines geeigneten ARRAY[..] OF STRING() eingetragen werden die Parameter automatisch mit einer Bezeichnung versehen. |