FB_SoEReset

FB_SoEReset 1:

Mit dem Funktionsbaustein FB_SoEReset kann ein Antriebsreset (S-0-0099) ausgeführt werden. Bei mehrkanaligen Geräten müssen ggf. beide Kanäle einen Reset ausführen. Die Timeoutzeit muss 10s betragen, da der Reset je nach Fehler bis zu 10s dauern kann.

Für den AX5000 muss das Flag "Wait For WcState is OK" in den Advanced EtherCAT Settings aktiviert sein.

FB_SoEReset 2:

Ein NC-Reset wird nicht ausgeführt. Falls ein NC-Reset nötig ist, kann er über den MC_Reset-Baustein aus der TcMc.lib ausgeführt werden.

VAR_INPUT

VAR_INPUT
    NetId    : T_AmsNetId := '';
    Execute  : BOOL;
    Timeout  : TIME := T#10s;
END_VAR

NetId: Ist ein String, der die AMS-Netzwerkkennung des PCs enthält.

Execute: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.

Timeout: Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf.

VAR_IN_OUT

VAR_IN_OUT
    Axis : AXIS_REF;(* reference to NC axis *)
END_VAR

Axis: Achsstruktur (siehe TcMc2.lib).

VAR_OUTPUT

VAR_OUTPUT
    Busy        : BOOL;
    Error       : BOOL;
    AdsErrId    : UINT;
    SercosErrId : UINT;
END_VAR

Busy: Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

Error: Dieser Ausgang wird, nachdem der bBusy-Ausgang zurückgesetzt wurde, gesetzt, sollte ein Fehler bei der Übertragung des Kommandos erfolgen.

AdsErrId: Liefert bei gesetztem Error-Ausgang den ADS-Fehlercode des zuletzt ausgeführten Befehles

SercosErrId: Liefert bei gesetztem Error-Ausgang den Sercos-Fehler des zuletzt ausgeführten Befehles

Beispiel

fbSoEReset : FB_SoEReset;
SoEReset : BOOL;

(* NcAxis *)

Axis     : AXIS_REF;
IF SoEReset THEN
    fbSoEReset(

       Axis     := Axis,
       Execute := TRUE,
    );
    IF NOT fbSoEReset.Busy THEN
        fbSoEReset(Axis := Axis,
Execute := FALSE);
        SoEReset := FALSE;
    END_IF
END_IF