Cet article traite de l'erreur de temps mort "Sync Manager Watchdog" pouvant apparaître pendant la mise en service d'un réseau EtherCAT avec TwinCAT lorsque l'esclave EtherCAT doit passer à l'état OPERATIONAL.
PRODUITS CONCERNÉS
Tous les produits HMS avec une interface esclave EtherCAT.
QUESTION
Lorsque le maître EtherCAT envoie une commande à un esclave pour que ce dernier passe à l'état OPERATIONAL, il peut arriver que l'esclave reste bloqué dans l'état ERROR SAFEOP, affichant ainsi le message d'erreur suivant dans TwinCAT :
CAUSE POSSIBLE
Afin de prévenir ce problème, il serait utile d'activer l'option "Wait for WcState is Ok" dans les paramètres avancés EtherCAT de l'esclave, comme ceci :
CONTEXTE
Dans TwinCAT, le paramètre WcState (working counter state) coordonne deux machines d'état indépendantes l'une de l'autre.
D'une part, le maître contrôle l'état de chaque esclave via la machine d'état EtherCAT (avec leurs états INIT, PREOP, SAFEOP, OP). De l'autre part, il y a la machine d'état de l'automate lui même, qui doit remettre les données cycliques de sortie à leurs valeurs initiales dès que les esclaves atteignent l'état OP.
En activant l'option "Wait for WcState is Ok" dans TwinCAT, le maître EtherCAT attend d'abord que les données cycliques de sortie soient définies avant de faire passer l'esclave à l'état OP.
Si cette option est absente, il pourrait arriver que l'erreur "'SAFEOP to OP!' failed !" se déclenche et que l'esclave reste bloqué dans l'état SAFEOP. L'état SAFEOP ne permet que la lecture des données cycliques d'entrée. De ce fait, l'esclave ne recevant pas de données cycliques de sortie, le temps mort du Sync Manager est déclenché par conséquent.
Si vous êtes responsable du développement de systèmes embarqués utilisant les interfaces Anybus CompactCom, il vous est possible d'activer cette option pour l'esclave dans le fichier ESI en tant qu'option spécifique de fournisseur TwinCAT. A cet effet, vous trouverez ci-dessous un extrait du fichier ESI Anybus CompactCom 40 EtherCAT :
<Devices>
<Device Physics="YY">
<Type ProductCode="#x00000034" RevisionNo="#x00010009">Anybus-CC EtherCAT</Type>
<Name LcId="1033"><![CDATA[Anybus-CC EtherCAT]]></Name>
<Info>
<Mailbox>
<Timeout>
<RequestTimeout>100</RequestTimeout>
<ResponseTimeout>6000</ResponseTimeout>
</Timeout>
</Mailbox>
<!-- Activate "Wait for WcState is Ok" in TwinCAT -->
<VendorSpecific>
<ErrorHandling>
<AutoRestoreAfterWcOk>1</AutoRestoreAfterWcOk>
</ErrorHandling>
</VendorSpecific>
<!--Activate "Wait for WcState is Ok" in TwinCAT (end) -->
</Info>
<GroupType>Embedded modules</GroupType>
<Fmmu>Outputs</Fmmu>
<Fmmu>Inputs</Fmmu>