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 Funktionsbausteins unverzichtbar.

MC_AxCtrlStepperDeStall_BkPlcMc 3:

Auch beim Einsatz eines solchen Funktionsbausteins 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 Funktionsbaustein ST_TcPlcDeviceInput.bTerminalState aus.

ResetRefOnError

BOOL

Wenn hier ein TRUE übergeben wird löscht der Funktionsbaustein 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 Funktionsbaustein der Geschwindigkeits-Stellwert an die Istgeschwindigkeit angepasst wird.

MC_AxCtrlStepperDeStall_BkPlcMc 5: Ein-/Ausgänge

VAR_IN_OUT
    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 Funktionsbausteins

Bei jedem Aufruf überprüft der Funktionsbaustein, 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 Funktionsbaustein, während der Phasen mit konstanter oder im Betrag steigenden Phasen einzugreifen. EnableDec gibt die Aktivität des Funktionsbausteins 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 Funktionsbaustein, 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 Funktionsbaustein die Differenz zwischen Soll- und Istgeschwindigkeit auswertet ist die korrekte Einstellung der Referenzgeschwindigkeit beim Einsatz des Funktionsbausteins wichtig. Eine zu ungenaue Einstellung dieses Parameters kann dazu führen, dass der Funktionsbaustein 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 Funktionsbausteins in die Applikation

Ein Funktionsbaustein dieses Typs muss nach der Istwert-Erfassung und Stellwert-Generierung aufgerufen werden. Der Funktionsbaustein ü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 Funktionsbaustein berücksichtigt die Reaktion dann automatisch.

MC_AxCtrlStepperDeStall_BkPlcMc 9:

Durch einen Wert größer als 0 in FirstAuxParamIdx kann der Funktionsbaustein 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.