Master i slave modul mají odlišné MAC adresy. V každém modulu běží SDS-C program. Master pingá na připravenost slavu příkazem
ping(192,168,2,249,ping_sequence);
fCekejNaOdpovedPingu();
kde ping_sequence je číslo, které se mění od 1 výše a funkce fCekejNaOdpovedPingu() je následující
...
// funkce fCekejNaOdpovedPingu
fCekejNaOdpovedPingu
{
iProdlevaTestovaniPingu=10;
iMaxDobaOdezvyPingu=400;
iPocetTestuMax=iMaxDobaOdezvyPingu/iProdlevaTestovaniPingu;
iOdpovedPrisla=0;
iPocetTestu=0;
label Testuj:
if(sys[92]==8&&iPocetTestu<iPocetTestuMax)
{
iOdpovedPrisla=1;
return;
}
else
{
if(iPocetTestu<iPocetTestuMax)
{
iPocetTestu++;
wait(iProdlevaTestovaniPingu);
goto Testuj;
}
}
}
...
Slave program se pingání neúčastní, pouze čeká na povel od master modulu, aby sepnul relé 2 a odeslal master modulu potvrzení sepnutí relé. U obou modulů je IP watchdog vypnutý. Spolupráce obou modulů je perfektní do doby, kdy se vypíná nebo restartuje PC, které je připojené ve společném HUBu. K narušení funkčnosti dochází nepravidelně - někdy můžu několikrát restart zopakovat a nic se nestane (např. celé dopoledne nic a po obědě nebo když končím a vypínám PC to nastane). Pokoušel jsem zpomalovat smyčku, ale když už jsem si myslel, že je problém vyřešen, tak to nastalo opět.