Wathdog

Wathdog

Příspěvekod jarda » stř 01. črc 2009 21:55:50

Vytvořil jsem algoritmus pro watchdog programu a kontrolu flash.
Primární funkce algoritmu je hlídání provedení procesu Proc00 s periodou 100mS pro načtení vstupů a zápisu výstupů řídícího systému alespoň jednou za 500mS, jinak se vyhodnotí program jako "zaseklý" a provede se restart.
Sekundární funkce algoritmu je v hlídání kontrolního součtu paměti flash a pokud nesouhlasí CRC součet po druhém a dalším restartu, tak je řídící systém restartován až do souhlasného CRC.
K algoritmu: Parametrem Timeout modulu Watchdog se udává doba, za kterou se modul Watchdog musí občerstvit. Tzn. musí vám do zadané doby alespoň jedenkrát proběhnout proces, ve kterém je modul Watchdog na daném kanále aktivní. Skutečná doba, po které vypršení limitu vyvolá restart systému, může být až o 100 mS delší, než je hodnota parametru Timeout. V této závěrečné fázi před restartem (po vypršení zadaného limitu) ovšem nelze zaručit, že případná obsluha vypršeného hlídacího časovače zabrání restartu systému. Minimální hodnota parametru Timeout modulu Watchdog je 320 mS. Pokud chceme provést restart bez zacyklení programu (řízený restart od špatného CRC paměti flash), je nutné umístit kód do procesu s periodou minimálně 420 mS, aby hodnota periody procesu byla větší než minimální zadatelný čas + 100mS. Nyní k "magické" hodnotě 320 resp. 420 mS. Pokud do parametru Watchdog zadáte jakoukoliv hodnotu, menší jak 320 mS, bude tato automaticky v modulu Watchdog zvětšena na 320 mS tj. parametr Timeout můžete zadat v rozmezí 0 .. XYZ, vždy se ale bude počítat v rozmezí (320 .. XYZ)+100. Toto neplatí pro větší hodnoty.
U řídících systémů s novým procesorem (řada "S") je počítání kontrolního součtu paměti flash zatím nefunkční (problém modulu MemCheck PSP3.53 a nižší). Následně má být tato nefunkčnost odstraněna.
Příklad algoritmu Watchdog.dso v zip -> http://www.mybox.cz/valter/Download/watchdog.zip
Jarda Valter
Uživatelský avatar
jarda
 
Příspěvky: 118
Registrován: sob 12. dub 2008 9:43:03
Bydliště: Jindřichův Hradec

Re: Wathdog

Příspěvekod riha » čtv 29. říj 2009 14:22:28

Ve verzi 3.54 došlo k úpravě modulu MemCheck tak, aby byl kontrolní součet vypočten správně i u systémů s označením S.
Zbyněk Říha
Technická podpora (support@amit.cz)
AMiT spol. s r.o.
Uživatelský avatar
riha
 
Příspěvky: 376
Registrován: čtv 10. dub 2008 12:46:00


Zpět na Algoritmy

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

cron