Mezi verzemi Merbon RT 2.2.0.5 a 2.4.0.11 došlo na platformě FreeRTOS k významným změnám v organizaci a správě paměti v runtimu. Přechod na nejnovější verzi je sice obecně doporučován a někdy je i z důvodů rozšíření instalace nebo organizačních důvodů nutný, upgrade projektu a přechod mezi verzemi však může ovlivnit chování některých vlastností runtimu. Podívejme se na ně, abychom při přechodu na verzi 2.4.0.11 či novější postupovali správně.
Nejprve bude dobré shrnout, jak vlastně probíhá zápis či čtení z paměti při různých změnách stavu runtimu.
Image – zkompilovaný program, který obsahuje výchozí hodnoty, tak jak byly zadány (nebo ponechány) při tvorbě programu. Do image není během chodu runtimu nijak automaticky zapisováno, slouží jako reference pro studený restart s výchozími parametry.
Flash – trvalá paměť, do které se periodicky zapisuje záloha aktuálních proměnných. Při výpadku napájení se pak použijí tyto proměnné. Paměť FLASH obsahuje změny, které zapsali klienti, tedy nastavení požadovaných hodnot, časových programů atd., ale až po uplynutí času pro periodickou zálohu proměnných (Variables Backup, výchozí perioda je 3 h) nebo po průchodu teplým restartem. Při něm se nejdříve zazálohuje kompletní obsah paměti RAM / NVRAM (Retain) do FLASH, image programu se zkopíruje do pracovní paměti, paměť RAM se naplní zálohou z FLASH a pak se teprve spustí vykonávání (nového) programu. Při teplém restartu se tedy nepoužijí výchozí hodnoty proměnných z image, ale zazálohované proměnné obnovené z FLASH.
RAM/NVRAM – pracovní paměť. RAM se po výpadku napájení smaže a po zapnutí je před spuštěním programu naplněna zálohou z FLASH. Paměť NVRAM neboli Retain drží hodnoty i po výpadku napájení, a pokud je proměnná deklarovaná jako Retain, k obnovení z FLASH nedojde – přednost má (čerstvější) hodnota v paměti Retain.
Studený restart představuje návrat k výchozím proměnným, které byly do PLC nahrány při nahrávání programu. Veškeré změny zadané klienty během chodu programu jsou ztraceny. Je dobré uvědomit si rozdíl mezi chováním po studeném restartu a po výpadku napájení: výpadek napájení zachová hodnoty nastavené klienty (pokud byly deklarovány jako Retain nebo se stihly zapsat do FLASH), zatímco studený restart spouští program s výchozími („bezpečnými“) hodnotami z nahraného projektu.
Připomínáme, že pokud chceme do projektu v Merbon IDE zazálohovat aktuální hodnoty vč. změn zadaných klienty, označíme proměnné (i hromadně) v Prohlížeči proměnných a v kontextovém menu vybereme Nastavit jako výchozí. Tato operace zkopíruje aktuální hodnoty z PLC do zdrojového kódu Merbon IDE. Po úpravách programu a kompilaci se pak tyto hodnoty projeví jako výchozí, budou součástí image a při nahrání programu se zapíší do PLC. Po studeném restartu se pak zkopírují do pracovní paměti a program je použije jako počáteční. Nastavení požadovaných hodnot a časových programů tak zůstane zachováno i po úpravách programu a jeho přehrání.
Síťová konfigurace (nastavení IP adresy atd.) | Síťová konfigurace se zachová |
Projekt | Projekt se zachová |
Proměnné v paměti Flash | Proměnné se neudrží |
Proměnné v paměti Retain | Proměnné se udrží |
Web | Web se smaže a starý vzhled webu není na nové verzi podporován, nutno znovu vytvořit web interním editorem |
Dojde ke ztrátě proměnných v paměti Flash – nastavení požadovaných hodnot, časových programů atd. Před přechodem je tedy nutné načíst proměnné z PLC a aktualizovat výchozí proměnné v projektu (Nastavit jako výchozí).
V souvislosti se změnou formátu webových stránek na web serveru není starý webový projekt kompatibilní s novým webem. Webové stránky je nutné znovu vytvořit v interním editoru HMI v Merbon IDE. Importovat ze staré verze jdou pouze textová menu, nikoli grafické panely.
Síťová konfigurace (nastavení IP adresy atd.) | Síťová konfigurace se zachová |
Projekt | Projekt se zachová |
Proměnné v paměti Flash | Proměnné se udrží |
Proměnné v paměti Retain | Proměnné se udrží |
Web | Web se zachová, ale nelze jej v novém IDE upravovat. Při změnách nutno použít externí editor nebo znovu vytvořit web interním editorem |
U podstanic s OS Linux se výše uvedené problémy s pamětí nevyskytují, po upgrade projektu je možné s novým projektem pracovat stejně jako předtím.
Vyexportované webové panely jsou s novým webovým serverem kompatibilní, při požadavcích na změnu je ovšem nutné použít externí webový editor ze staré verze – nebo vytvořit celý web znovu v nové verzi, podobně jako v případě platforem s operačním systémem FreeRTOS.