EtherCAT state transition timing

Hi,
I’m using the ABCC40 EtherCAT firmware version 2.18 to develop an EtherCAT slave.

Is there a way to “delay” the response to the EtherCAT master when a state transition is requested?
From what I’m seeing now, when a state change is requested by the EtherCAT master, the ABCC doesn’t wait for the host response to the command “set attribute ethercat state” but it replies to the master with the new state before the host responds.

In particular what I wish is to have this situation:
Slave state is Boot:
Master sends the request to go to Init state
Slave notifies the state change to Init only after some time (the host process has to manage a long operation in this transition).

Is there a way to achieve this result?

Thank you

Matteo

Hello @mburlando,

I will need to look into this questions, I am not sure if this is possible.

Is there a particular reason you need a delay between the state change? Is this for firmware updates or something similar?

Deryck

Hello,
yes it’s for firmware update. Our EtherCAT bootloader on FoE receives the firmware file in boot state and it writes it on a backup flash.
Once received the state change request from the master to go into Init state, the firmware is written on the program flash and this operation takes some seconds (about 10 -15 sec).
So, if possible, I wish to notify the actual state only when the programming is completed and not immediately after the Init request.
Matteo

Hello @mburlando,

Sorry for not responding sooner, after looking this up I never sent my response.

I recommend taking a look at section 3.7.1 and the State transition timeouts and Last FoE Data ACK delay paremeters. It looks like this is what you are trying to use.

Deryck

Hello,
I’m back to a question to State transition timeout (EtherCAT object (F5), Instance #1, attribute #21):
Is this timeout used by ABCC40 to respond to a request of changing the EtherCAT state?
E.g.: If I have PreopTimeout set to 1s and EtherCAT master requests a Init-PreOP transition, does the ABCC40 waits for 1 s before reporting its state change?
I’m answering this because if it’s so, I’m seeing there’s no difference in changing these timeouts (the ABCC40 answers immediately to a change state request) and I don’t understand why, but maybe I’ve misunderstood the meaning of this timeouts.

Thanks

Matteo

Hi @mburlando ,

The State Transition timeout is a Timeout, meaning the time available before the state change fails. This is generally used to give the host more time to get the module ready.
Here is a section from the Ethercat guide.
image