MC_AxCtrlStepperDeStall_BkPlcMc

MC_AxCtrlStepperDeStall_BkPlcMc 1:

Der Funktionsbaustein überwacht die Bewegung einer Schrittmotorachse, die mit einem Encoder betrieben wird.

MC_AxCtrlStepperDeStall_BkPlcMc 2:

Der Einsatz eines echten Encoders (nicht Encoder-Emulation durch Impulszählung einer Ausgabe-Klemme) ist für die Funktion dieses Bausteins unverzichtbar.

MC_AxCtrlStepperDeStall_BkPlcMc 3:

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.

MC_AxCtrlStepperDeStall_BkPlcMc 4: 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.

MC_AxCtrlStepperDeStall_BkPlcMc 5: 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.

MC_AxCtrlStepperDeStall_BkPlcMc 6: 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.

MC_AxCtrlStepperDeStall_BkPlcMc 7:

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.

MC_AxCtrlStepperDeStall_BkPlcMc 8:

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.

MC_AxCtrlStepperDeStall_BkPlcMc 9:

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.