FC_OverloadDetectionSetLinear

 

FC_OverloadDetectionSetLinear - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab

SystemInterface_1.36.2.1

Versionen:

Aktuelle Version

Aufgabe

Überlaststopp der Achse durchführen, nachdem die erwartete Kraft für eine gewisse Zeit überschritten wurde.

Beschreibung

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

Die Überlasterkennung dient dazu, die Abweichung der tatsächlichen Kraft von der erwarteten Kraft (Vorsteuerung) zu überwachen. Beim Aktivieren der Überlasterkennung wird der Antrieb gestoppt. Die Achse muss parametriert sein, damit die erwartete Massenträgheitswert berechnet wird.

Mit i_lrForce wird die Schwelle der Abweichung von der erwarteten Kraft angegeben. Die Abweichung kann über den FeedbackCurrent erkannt werden. Der FeedbackCurrent kann mit der Drehmomentkonstante ForceConstant in die Abweichung von der erwarteten Kraft konvertiert werden.

Abweichungen bei der Kraft haben beispielsweise folgende Ursachen:

oReibung (sofern in den Parametern StaticFrictionLinear und ViscousFrictionLinear nicht berücksichtigt)

oExterne Massenträgheit (z. B. Fahren gegen Anschlag)

oVeränderliche Massenträgheit

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

oEinschwingverhalten des Reglers (vor allem bei hohem Ruck)

HINWEIS: LoadInertiaLinear muss in der SPS-Konfiguration korrekt angegeben werden. Weiter wird davon ausgegangen, dass die Massenträgheit 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_lrForce ü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-0068262.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_lrForce ist überschritten, wenn die Gesamtkraft größer ist als die erwartete Kraft 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_lrForce

LREAL

Maximal zulässige Abweichung von der erwarteten Massenträgheit (in N)

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: Massenträgheit über max. Massenträgheit.

-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 Kraftüberwachung (FC_OverloadDetectionSetLinear) 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_OverloadDetectionSetLinear(i_stAxisId:= Axis.stLogicalAddress, i_lrForce:=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;

Die Abbildung zeigt den Stromanstieg (bzw. Kraftanstieg) und das Auslösen der Diagnosemeldung (senkrechte gestrichtelte Linie), wenn ein Anstrieg des Stroms und eine Erhöhung der Kraft vorliegt.

G-SE-0068261.1.gif-high.gif