[Etherlab-users] DMS72E4331 slave refuses to go OP

Fontana Nicola ntd at entidi.it
Fri Sep 15 20:44:37 CEST 2023


Il giorno gio, 14/09/2023 alle 22.31 +0200, Fontana Nicola ha scritto:
> ...
> After the ecrt_master_activate() call, everything goes OP but that
> driver: it keeps giving me a "Sync manager watchdog" error (AL status
> 0x001B).
> ...

It seems that was my fault. I was using a busy send/receive loop to wait
the OP state on all slaves:

    for (...) {
        ecrt_master_send(master);
        usleep(...);
        ecrt_master_receive(master);
        ecrt_master_state(master, &state);
        if (state.al_states == EC_AL_STATE_OP) {
            return done;
        }
    }

This does not process data, as I thought that was not needed during
configuration. Adding `ecrt_domain_process()` before sending and
`ecrt_domain_process() after receiving solves the problem.

Ciao.
-- 
Nicola



More information about the Etherlab-users mailing list