L_TB1P_FrictionCompensation

Dieser FB enthält die Funktionen "Reibungsidentifizierung" und "Reibungskompensation".

 

 

 

L_TB1P_FrictionCompensation

 

 

 

BOOL

-

xIdent

xBusy

-

BOOL

BOOL

-

xFollowerActive

xDone

-

BOOL

LREAL

-

lrActReelSpeedIn

xError

-

BOOL

LREAL

-

lrActTorqueIn

eErrorID

-

L_IE1P_Error

DWORD

-

dwSelectCurve

xStop

-

BOOL

BOOL

-

xEnableFrictionCurve

xEnableFollower

-

BOOL

LREAL

-

lrSetReelSpeed

lrSetReelSpeedOut

-

LREAL

LREAL

-

lrFrictionAdapt

lrSetFrictionTorqueOut

-

LREAL

BOOL

-

xInvertOutput

LREAL

-

lrMaxSpeedIdent

LREAL

-

lrAccDecIdent

LREAL

-

lrFilterTimeSpeed

LREAL

-

lrFilterTimeTorque

LREAL

-

lrFilterTimeReelSpeed

LREAL

-

lrLinearCompStart

LREAL

-

lrLinearCompEnd

ARRAY [1...66] OF LREAL

-

alrFrictionCurve1

ARRAY [1...66] OF LREAL

-

alrFrictionCurve2

ARRAY [1...66] OF LREAL

-

alrFrictionCurve3

ARRAY [1...66] OF LREAL

-

alrFrictionCurve4

 

 

 

 

 

 

 

 

Eingänge und Ausgänge

Name

Datentyp

Info/Einstellmöglichkeiten

alrFrictionCurve[1...4]

ARRAY [1...66] OF LREAL

Reibungskennlinien 1 ... 4

Eingänge

Name

Datentyp

Info/Einstellmöglichkeiten

xIdent

BOOL

TRUE

Reibungsidentifizierung:

Identifizierung der Reibungskennlinie starten.

xFollowerActive

BOOL

Schnittstelle zur Rückmeldung, dass die Sollwert-Generierung freigegeben ist (z. B. SMC_FollowVelocity.bBusy)

lrActReelSpeedIn

LREAL

Aktuelle Drehzahl der Motorwelle (Drehzahl-Istwert)

  • Einheit: Rev/s

lrActTorqueIn

LREAL

Aktuelles Drehmoment (Drehmoment-Istwert)

  • Einheit: Nm

dwSelectCurve

DWORD

Reibungsidentifizierung ( xIdent = True)

Auswahl des Speicherbereichs, in dem die identifizierten Reibungswerte gespeichert werden.

  • Auswahl '1' ... '4': Speicherbereich 1 ... 4

Reibungskompensation ( xEnableFrictionCurve = TRUE, xIdent = FALSE)

Auswahl der Kennlinie für die Reibungskompensation.

  • Auswahl '0': Lineare Reibungskennlinie, einstellbar über ...
    • lrLinearCompStart
    • lrLinearCompEnd
    • lrLinearCompEndReelSpeed )
  • Auswahl '1' ... '4': Identifizierte Reibungskennlinie (Speicherbereich 1 ...4)

xEnableFrictionCurve

BOOL

Reibungskompensation aktivieren.

TRUE

Die Reibungskompensation ist aktiviert.

FALSE

Das Reibungsmoment wird auf '0' zurückgesetzt.

lrSetReelSpeed

LREAL

Drehzahl-Sollwert für die Reibungskennlinie

  • Einheit: Rev/s

lrFrictionAdapt

LREAL

Wert zur proportionalen Bewertung der Reibungskennlinie

  • Einheit: % (1 º 100 %)

xInvertOutput

BOOL

TRUE

Das Ausgangssignal lrSetFrictionTorqueOut wird invertiert ausgegeben.

lrMaxSpeedIdent

LREAL

Maximale Drehzahl zur Reibungsidentifizierung

  • Einheit: Rev/s

lrAccDecIdent

LREAL

Beschleunigung zur Reibungsidentifizierung

  • Einheit: Rev/s 2

lrFilterTimeSpeed

LREAL

Filterzeitkonstante für den Drehzahl-Istwert zur Reibungsidentifizierung

  • Einheit: s
  • Initialwert: 0.0 (Mit diesem Wert ist der Filter nicht aktiv.)

lrFilterTimeTorque

LREAL

Filterzeitkonstante für den Drehmoment-Istwert zur Reibungsidentifizierung

  • Einheit: s
  • Initialwert: 0.0 (Mit diesem Wert ist der Filter nicht aktiv.)

lrFilterTimeReelSpeed

LREAL

Filterzeitkonstante für den Drehzahl-Sollwert zur Reibungskompensation

  • Einheit: s
  • Initialwert: 0.0 (Mit diesem Wert ist der Filter nicht aktiv.)

lrLinearCompStart

LREAL

Anfangsreibungsmoment für die Reibungskompensation

lrLinearCompEnd

LREAL

Endreibungsmoment für die Reibungskompensation

lrLinearCompEndReelSpeed

LREAL

Drehzahl bei Endreibungsmoment für die Reibungskompensation

Ausgänge

Name

Datentyp

Wert/Bedeutung

xBusy

BOOL

TRUE

Die Funktion "Reibungsidentifizierung" oder "Reibungskompensation" ist aktiv.

xDone

BOOL

TRUE

Die Funktion "Reibungsidentifizierung" oder "Reibungskompensation" wurde erfolgreich beendet.

xError

BOOL

TRUE

Es ist ein Fehler aufgetreten. Details siehe eErrorID .

eErrorID

L_IE1P_Error

Wenn xError = TRUE: Fehlernummer zum aufgetretenen Fehler.

xStop

BOOL

xStop wird im Falle eines Abbruchs der Reibungsidentifizierung auf TRUE gesetzt, und kann zur Ansteuerung einer externen Stopp-Funktion genutzt werden.

xEnableFollower

BOOL

xEnableFollower wird zur Aktivierung einer Sollwert-Schnittstelle (z. B. SMC_FollowVelocity) auf TRUE gesetzt.

lrSetReelSpeedOut

LREAL

Drehzahl-Sollwert für die Reibungsidentifizierung

  • Einheit: Rev/s

lrSetFrictionTorqueOut

LREAL

Aktuelles Reibungsmoment

  • Einheit: Nm
Reibungskennlinie automatisch identifizieren

So gehen Sie vor:

  1. Speicherplatz für die Kennlinie auswählen.

    Über den Eingang dwSelectCurve den Speicherplatz (1 ... 4) festlegen, auf dem die Kennlinie nach erfolgreicher Identifizierung gespeichert werden soll.

  2. Identifizierung starten.

    Den Eingang xIdent auf TRUE setzen.

Ablauf der Reibungsidentifizierung
  1. Die Grundfunktion "Drehzahlfolger" wird aktiviert.
  1. Der Antrieb wird mit der in lrAccDecIdent eingestellten Beschleunigung bis zur in lrMaxSpeedIdent eingestellten Maximaldrehzahl beschleunigt.
  2. Hat der Antrieb die Maximaldrehzahl erreicht, wird er mit der in lrAccDecIdent eingestellten Beschleunigung wieder bis zum Stillstand gebremst.
  3. Die ermittelte Reibungskennlinie wird im über den Eingang dwSelectCurve ausgewählten Speicherbereich gespeichert.
  4. Nach erfolgreicher Identifizierung wird ...

Die Identifizierung erfolgt gemäß folgender Zustandsmaschine:

Zustandsmaschine für die Reibungsidentifizierung

Reibungsidentifizierung abbrechen

Wird der Eingang xIdent auf FALSE zurückgesetzt, so wird die aktive Identifizierung sofort abgebrochen. Auch das Rücksetzen des Eingangs xFollowerActive auf FALSE führt ebenfalls zu einem sofortigen Abbruch.

Glättung der Istwertsignale

Bei Verwendung von Inkrementalgebern kann es erforderlich sein, das Drehzahl-Istwertsignal zu filtern.

Die Zeitkonstante für den Filter ist über den Eingng lrFilterTimeSpeed einstellbar. Hier ist die Einstellung '10 ms' meist ausreichend.

Für die Glättung der Reibungskennlinie kann ebenfalls das Filtern des Drehmoment-Istwertsignals hilfreich sein, die Zeitkonstante für diesen Filter ist über den Eingng lrFilterTimeTorque einstellbar.

Reibungskompensation aktivieren

Die Reibungskompensation ist aktiv, wenn der Eingang xIdent auf FALSE und der Eingang xEnableFrictionCurve auf TRUE gesetzt ist.

Die aktuelle Drehzahl geben Sie über den Eingang lrSetReelSpeed vor.

Geht der Drehzahl-Istwert über den in der Kennlinie definierten Maximalwert hinaus, wird die Kennlinie linear extrapoliert.

Verwendung einer linearen Kennlinie

Ist der Eingang dwSelectCurve = 0 oder unbelegt, wird für die Reibungskompensation eine lineare Kennlinie verwendet.

Die lineare Kennlinie geben Sie über die Parameter lrLinearCompStart , lrLinearCompEnd und lrLinearCompEndReelSpeed vor:

Verwendung einer zuvor automatisch identifizierten Reibungskennlinie

Ist der Eingang dwSelectCurve = 1 ... 4, wird statt der linearen Kennlinie, die auf dem entsprechenden Speicherplatz gespeicherte Reibungskennlinie verwendet.

Temperaturkompensation

Über den Eingang lrFrictionAdapt können Sie eine prozentuale Verstärkung für die Kennlinie vorgeben, um z. B. Änderungen des Reibungsmomentes aufgrund von Temperaturveränderungen zu kompensieren.

Glättung des Drehzahl-Sollwertes

Für die Glättung des Drehzahl-Sollwertes lrSetReelSpeedOut kann über den Eingang lrFilterTimeReelSpeed eine Filterzeitkonstante vorgegeben werden.

Ausgabe des Vorsteuersignals

Das erzeugte Vorsteuersignal steht am Ausgang lrSetFrictionTorqueOut zur Verfügung. Durch Setzen des Eingangs xInvertOutput auf TRUE kann das Signal invertiert ausgeben werden (Drehrichtungswechsel).