[Etherlab-users] Timeout while setting state INIT.

Florian Pose fp at igh.de
Thu May 21 15:16:41 CEST 2026


Hello,

some comments on this:

Am Donnerstag, dem 21.05.2026 um 13:20 +0300 schrieb Bilko AS, Oguz
Dilmac:
>  
> > "I made some investigations but do not have exact reason for a
> > failure. I suppose there are two main reasons. The first one is a
> > timing. The twincat switches the states of EtherCAT with much
> > larger time between commands than IGH. The second reason seems to
> > me the IGH does not check current state before trying to order the
> > next state. I have modified the firmware to check what happens with
> > requests from the point of the firmware and I see that some
> > requests PREOP -> SAFEOP are denied but the master does not wait
> > and goes to OP. So the slave is stucking in PREOP. If this happens
> > there are no recovery efforts.

When requesting an AL state change the master sends exactly one request
to the command register 0x0120 and then starts to query 0x0130 for the
result. It only continues if the AL state change is successful,
otherwise it marks the slave with an error flag and continues with the
next one. It never proceeds with the next AL state if the last state
change was not successful.

> > The IGH master also send much more commands per second than
> > twincat. It creates approximately 5 times larger wireshark log at
> > same time than twincat. I observed up to 5 state change requests
> > per millisecond. It will definitely overload our optics.

It works synchronous to your application cycle, so if your application
runs with 5 kHz, there will be at most 5000 queries of 0x0130 per
second, usually less, because the master state machine runs
asynchronously.

> > So I observe that sometimes the head goes to OP mode but sometimes
> > not. In any case with both old and new firmware the motor does not
> > move.
> > 
> > Could you check you code if there is a proof of current state by
> > switching to the new state? A way to stay simple is add delays of
> > 50 milliseconds between new state requests and always start with
> > INIT state."

On configuration, the master always starts with the INIT state. In the
standard there is no limit on how fast register reads shall happen.

> >  
>  
> I thought the Igh master already checking the current state. But some
> how, Vendor come across to a situation, that it doesn't check. Do you
> have a suggestion? Also can I add some extra time between state
> changes?

No, it always checks for the state change. 

If the problem persists, please try with 1.6.9, a native Ethernet
driver and open a ticket on gitlab.com/etherlab.org/ethercat with a
minimal example application.

-- 
Mit freundlichem Gruß / Best regards,
Florian Pose


Dipl.-Ing. (FH) Florian Pose
Leitung Automatisierung / Lead Automation
Mail: fp at igh.de | Tel.: +49 201 36014-13

Ingenieurgemeinschaft IgH Gesellschaft für Ingenieurleistungen mbH
Nordsternstraße 66
D-45329 Essen
Member of Axxeron Group [1]
igh.de |EtherLab [2] |LinkedIn [3]


Amtsgericht Essen | HRB 11500 | USt-Id.-Nr.: DE 174 626 722
Geschäftsführung: Frederik Becker, Dr.-Ing. Siegfried Rotthäuser, Jost
Braukmann

[1] Member of Axxeron Group https://www.axxeron.de/
[2] EtherLab https://etherlab.org/
[3] LinkedIn https://de.linkedin.com/company/igh-gmbh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20260521/a18d0e89/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 265 bytes
Desc: This is a digitally signed message part
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20260521/a18d0e89/attachment.sig>


More information about the Etherlab-users mailing list