Aplikační programy v DetStudiu

 

 Připravil jsem pro Vás pár příkladů, co jsem řešil. Jsou to poupravené programy, které neobsahují hrubé chyby, ale drobné asi ano. Prosím zamyslete se nad tím, proč jsem problém řešil tímto způsobem a pokud máte lepší nápad prosím o reakci.

Sledujte aplikační poznámky na stránkách AMiTu.


Na jednu aplikaci jsem musel upravit standardní verzi prostorového ovladače NOA70 tak, aby nedošlo k odstavení topení v celém objektu při topení krbem v prostoru ovladače. Protože je konstrukce funkčního bloku (programu pro obsluhu NOA70 uživatelsky vytvořeném) odlišná od standardní obsluhy NOA70 (DI a DO jsou nyní využívány jen k řízení přenosu a vlastní přenos proměnných se děje pomocí registrů) a trochu jsem se s tím potrápil, tak vám přináším tento funkční blok k ukázce obsluhy uživatelsky upraveného NOA70.
Proč vymýšlet už vymyšlené :-D
fb_NOA70_jarda1 (funkční blok) verze 1.3 (3/2010); doplněn *.dso pro NOA70
Popis obsluhy ovladače NOA70 v módu jarda 1.3 – popis změn oproti verzi č.3 f. AMiT.
Musel jsem přesunout proměnné, proto nešlo přidělat variantu č.4 do firmware AMiT.
- doplněna signalizace poruchy z řídicího systému na ovladači.
- tlačítko režimů má čtyři stavy tj. časový program; komfortní teplota; útlumová teplota; krb – stav bez vlivu prostoru.
- tlačítko ZAP/VYP zůstává, jen schovává ostatní režimy při režimu VYP.

HTML dokumentace funkčního bloku

 


Zjištění stavu kreditu u mobilních operátorů pro použití v řídicím systému. DetStudio NOS


Hlídání watchdog a kontrola flash u řídicích systémů AMiT
Primární funkce algoritmu je hlídání provedení procesu Proc00 s periodou 100mS pro načtení vstupů a zápisu výstupů řídicí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 řídicí 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 řídicí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. DetStudio NOS

Soubory: