FC_OverloadDetectionSet

 

FC_OverloadDetectionSet - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab

SystemInterface_1.32.6.0

Versionen:

Aktuelle Version

Aufgabe

Überlastabschaltung der Achse, nachdem die Drehmomentüberschreitung eine gewisse Zeit andauerte

Beschreibung

Die Funktion aktiviert in der Achse i_stAxisId eine Überlastüberwachung.

Die Überlasterkennung dient dazu, die Abweichung des Drehmoments (bezogen auf die Motorwelle) vom erwarteten Drehmoment (Vorsteuerung) zu überwachen. Beim Aktivieren der Überwachung wird der Antrieb gestoppt (Überlaststopp). Die Stromvorsteuerung muss parametriert sein, damit der erwartete Drehmomentwert berechnet wird.

Mit i_lrTorque wird die Schwelle der Abweichung vom erwarteten Drehmoment angegeben. Die Abweichung kann über den FeedbackCurrent erkannt werden. Der FeedbackCurrent kann mit der Drehmomentkonstante TorqueConstant in die Abweichung vom erwarteten Drehmoment umgerechnet werden.

Abweichungen beim Drehmoment haben beispielsweise folgende Ursachen:

oReibung (sofern in den Parametern StaticFriction und ViscousFriction nicht berücksichtigt)

oExterne Drehmomente (z. B. Fahren gegen Anschlag)

oVeränderliches Trägheitsmoment

oÜberschwinger im System (z. B. mechanische Resonanzen)

oEinschwingverhalten des Reglers (vor allem bei hohem Ruck)

HINWEIS: J_Last muss in der SPS-Konfiguration korrekt angegeben werden. Weiter wird davon ausgegangen, dass das Massenträgheitsmoment konstant ist.

Die Überwachung ist nur in einem bestimmten Positionsbereich aktiv. Dieser Positionsbereich wird mit i_lrLowLimit (untere Positionsgrenze) und i_lrHighLimit (obere Positionsgrenze) festgelegt.

Wird innerhalb des Positionsbereichs die Schwelle i_lrTorque überschritten, wird ein interner Timer inkrementiert. Wird die Schwelle während der Zeit i_uiOverloadTime unterschritten, wird der interne Timer dekrementiert. Erreicht der interne Timer den Wert i_uiOverloadTime, wird die Überwachung ausgelöst. Das Verhalten soll mit der folgenden Grafik verdeutlicht werden.

G-SE-0068260.1.gif-high.gif

 

 

Tritt ein Überlastfall ein, wird nach Ablauf der Zeit i_stAxisId die Position der Achse i_uiOverloadTime in einem internen Parameter gehalten. Diese Position wird als Sollposition verwendet. Der Antrieb bleibt in Lageregelung.

Der Zustand der Überlastüberwachung kann mit der Funktion FC_OverloadDetectionGetState ausgelesen werden.

Die Schwelle i_lrTorque ist überschritten, wenn das Gesamtdrehmoment größer ist als das erwartete Drehmoment plus die parametrierte Schwelle der Abweichung.

G-SE-0068259.1.gif-high.gif

 

 

Überschwinger im Strom und ein hohes Rauschen im Stromsignal (FeedbackCurrent) können zu Fehlauslösungen führen. Diese können Sie vermeiden, indem Sie ruckarme Bewegungen verwenden.

HINWEIS: Die Verarbeitung dieser Funktion dauert üblicherweise 10 ms, während die Parameter über den Servicekanal Sercos an die Achsen übertragen werden. Deshalb sollten die Zeiten für die Zyklusüberwachung der Task, in der diese Funktion ausgeführt wird, einmalig erhöht werden. Beispiel: FC_CycleCheckTimeSet(500, 2).

Schnittstelle

Eingang

Datentyp

Beschreibung

i_stAxisId

ST_LogicalAddress

Logische Adresse der Achse

i_lrTorque

LREAL

Maximal zulässige Abweichung vom erwarteten Drehmoment (in nm)

i_lrLowLimit

LREAL

Untere Positionsgrenze (in benutzerdefinierten Einheiten)

i_lrHighLimit

LREAL

Obere Positionsgrenze (in benutzerdefinierten Einheiten)

i_uiOverloadTime

UINT

Zeit, nach der im Überlastfall die Achse gestoppt wird (in ms)

Rückgabewert

Datentyp

Beschreibung

DINT

0: OK.

-1: Logische Adresse des Servoverstärkers oder Motor ungültig.

-2: Drehmoment über max. Drehmoment.

-3: LowLimit ist größer als oder gleich HighLimit.

-4: Wert von FC_OverloadTime ist außerhalb der Grenzen.

-5: Firmwareversion des Servoverstärkers wird nicht unterstützt.

Beispiele

Im folgenden Programmbeispiel wird eine Achse mit zwei Positionieranweisungen verfahren. Während des Verfahrens ist eine Drehmomentüberwachung (FC_Overload) aktiv.

PROGRAM PLC_PRG
VAR
   lState: DINT:=1;
   lResult: DINT;
END_VAR
CASE lState OF
1:  

   FC_CycleCheckTimeSet(100, 200);
   FC_ControllerEnableSet(Axis.stLogicalAddress);
   lResult:=FC_OverloadDetectionSet(i_stAxisId:= Axis.stLogicalAddress, i_lrTorque :=0.08,
   i_lrLowLimit:=10, i_lrHighLimit:=350, i_uiOverloadTime:=500);
   lState:=lState+1;
2:  

   IF Axis.AxisState = 3 THEN
      FC_PosStartSmooth(Axis.stLogicalAddress,0, 250, 0, 1000, 1000, 0, 0,
      ET_PosMode.Absolute, 0);
      lState:=lState+1;
   END_IF;
3:  

   IF Axis.AxisState = 3 THEN
      FC_PosStartSmooth(Axis.stLogicalAddress,360, 250, 0, 1000, 1000, 0, 0, ET_PosMode.Absolute, 0);
      lState:=2;
   END_IF;
END_CASE;

Um die Funktion zu testen, wird die Achse (Motorwelle) gebremst, was zu einem Stromanstieg und damit zu einem Drehmomentanstieg führt. Im Bild ist der Stromanstieg (bzw. Drehmomentanstieg) und das Auslösen der Diagnosemeldung (an der senkrechten gestrichelten Linie) zu erkennen.

G-SE-0068261.1.gif-high.gif