FB_EcReqSlaveState

FB_EcReqSlaveState 1:

Mit dem Funktionsbaustein kann ein Slave in einen vorgegebenen EtherCAT-Zustand gesetzt werden. Der geforderte EtherCAT-Zustand wird in der Variablen state übergeben. Sobald der Funktionsbaustein den Befehl zum Zustandswechsel abgeschickt hat, wird er inaktiv. Im Unterschied zum Funktionsbaustein FB_EcSetSlaveState wartet er nicht, bis der EtherCAT-Slave den neuen Zustand erreicht hat.

Siehe auch: FB_EcSetSlaveState

FB_EcReqSlaveState 2: Eingänge

VAR_INPUT
    sNetId     : T_AmsNetId;
    nSlaveAddr : UINT;     
    bExecute   : BOOL; 
    tTimeout   : TIME := DEFAULT_ADS_TIMEOUT; 
    state      : WORD; 
END_VAR

Name

Typ

Beschreibung

sNetId

T_AmsNetId

String, der die AMS-Netzwerkerkennung des EtherCAT-Master-Gerätes enthält. (Typ: T_AmsNetId)

nSlaveAddr

UINT

Feste Adresse des EtherCAT-Slaves, dessen EtherCAT-Zustand gesetzt werden soll.

bExecute

BOOL

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

tTimeout

TIME

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

state

WORD

EtherCAT-Zustand, der vom Master angefordert wird.
(Siehe State)

State

EtherCAT-Zustand, in den der Slave gesetzt werden soll. Die möglichen Werte für state sind:

Konstante

Wert

Beschreibung

EC_DEVICE_STATE_INIT

0x01

Slave in den Init-Zustand setzen

EC_DEVICE_STATE_PREOP

0x02

Slave in den Pre-Operational-Zustand setzen

EC_DEVICE_STATE_BOOTSTRAP

0x03

Slave in Bootstrap-Zustand setzen, dieser Zustand wird verwendet um ein Firmware-Download durchzuführen.

EC_DEVICE_STATE_SAFEOP

0x04

Slave in den Safe-Operational-Zustand setzen

EC_DEVICE_STATE_OP

0x08

Slave in den Operational-Zustand setzen

EC_DEVICE_STATE_ERROR

0x10

Wenn bei dem EtherCAT-Slave das Error-Bit im Status-Byte gesetzt ist (state.deviceState & EC_DEVICE_STATE_ERROR = TRUE), kann das Error-Bit durch Setzen von EC_DEVICE_STATE_ERROR wieder zurückgesetzt werden.

FB_EcReqSlaveState 3: Ausgänge

VAR_OUTPUT
    bBusy  : BOOL;
    bError : BOOL;
    nErrId : UDINT;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

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

bError

BOOL

Dieser Ausgang wird gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde, wenn bei der Übertragung des Kommandos ein Fehler auftritt.

nErrId

UDINT

Liefert bei einem gesetzten bError-Ausgang den ADS-Fehlercode des zuletzt ausgeführten Befehls.

Beispiel für eine Implementierung in ST:

PROGRAM TEST_ReqSlaveState
VAR
    fbGetSlaveState : FB_EcReqSlaveState;
    sNetId          : T_AmsNetId:= '172.16.2.131.2.1';
    bExecute        : BOOL;
    state           : WORD := EC_DEVICE_STATE_INIT;
    nSlaveAddr      : UINT := 1001;
    bError          : BOOL;
    nErrId          : UDINT;
END_VAR

fbGetSlaveState(sNetId:= sNetId, nSlaveAddr:= nSlaveAddr, bExecute:=bExecute, state:=state);
bError := fbGetSlaveState.bError;
nErrId := fbGetSlaveState.nErrId;

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS- Bibliotheken

TwinCAT v3.1.0

PC oder CX (x86, x64, ARM)

Tc2_EtherCAT