FB_SoEAX5000SetMotorCtrlWord
Mit dem Funktionsbaustein FB_SoEAX5000SetMotorCtrlWord kann das ForceLock-Bit (Bit 0) bzw. das ForceUnlock-Bit im Motor Control Word (P-0-0096) gesetzt werden, um die Bremse zu aktivieren oder zu lösen. Im Normalfall wird die Bremse automatisch über das Enable des Antriebs gesteuert.
Mit dem ForceLock-Bit kann die Bremse unabhängig vom Enable aktiviert werden und mit dem ForceUnlock-Bit kann die Bremse unabhängig vom Enable gelöst werden. Bei gleichzeitig gesetztem ForceLock und ForceUnlock hat das ForceLock (Bremse aktiviert) die höhere Priorität.
Eingänge
VAR_INPUT
NetId : T_AmsNetId := '';
Execute : BOOL;
Timeout : TIME := DEFAULT_ADS_TIMEOUT;
ForceLock : BOOL;
ForceUnlock : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
NetId | T_AmsNetID | String, der die AMS-Netzwerkkennung des PCs enthält. |
Execute | BOOL | Der Baustein wird über eine positive Flanke an diesem Eingang aktiviert. |
Timeout | TIME | Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf. |
ForceLock | BOOL | Aktiviert die Bremse unabhängig vom Enable. |
ForceUnlock | BOOL | Löst die Bremse unabhängig vom Enable. |
Ein-/Ausgänge
VAR_IN_OUT
Axis : AXIS_REF;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Axis | Achsdatenstruktur, welche eine Achse eindeutig im System adressiert. Sie enthält unter anderem den aktuellen Status der Achse, wie Position, Geschwindigkeit oder Fehlerzustand. |
Ausgänge
VAR_OUTPUT
Busy : BOOL;
Error : BOOL;
AdsErrId : UINT;
SercosErrId : UINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Busy | BOOL | Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt. |
Error | BOOL | Dieser Ausgang wird gesetzt, nachdem der Busy-Ausgang zurückgesetzt wurde, wenn ein Fehler bei der Übertragung des Kommandos auftritt. |
AdsErrId | UINT | Liefert bei gesetztem Error-Ausgang den ADS-Fehlercode des zuletzt ausgeführten Befehls. |
SercosErrId | UINT | Liefert bei gesetztem Error-Ausgang den Sercos-Fehler des zuletzt ausgeführten Befehls. |
Beispiel
fbSetMotorCtrlWord : FB_SoEAX5000SetMotorCtrlWord;
SetMotorCtrlWord : BOOL;
ForceLock : BOOL;
ForceUnlock : BOOL;
(* NcAxis *)
Axis : AXIS_REF;
IF SetMotorCtrlWord THEN
fbSetMotorCtrlWord(
Axis := Axis,
Execute := TRUE,
Timeout := DEFAULT_ADS_TIMEOUT,
ForceLock := ForceLock,
ForceUnlock := ForceUnlock
);
IF NOT fbSetMotorCtrlWord.Busy THEN
fbSetMotorCtrlWord(Axis := Axis, Execute := FALSE);
SetMotorCtrlWord := FALSE;
END_IF
END_IF
Voraussetzungen
Entwicklungsumgebung | Zielplattformtyp | SPS-Bibliothek | AX5000 Firmware |
---|---|---|---|
TwinCAT 3 | PC oder CX (x86 oder x64) | Tc2_MC2_Drive | ≥v1.07 b0001 |