FB_SoEReset
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.

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