Návody >Bezpečné nastavení hodnoty

Bezpečné nastavení hodnoty

Bezpečné hromadné nastavení hodnot do technologie se může jevit jako jednoduchý problém. Jednoduchá řešení mohou být funkční, nic méně může za jistých okolností dojít hromadnému nastavení i v době, kdy toto nepožadoval uživatel. Následující odstavce budou věnovány složitějšímu, ale bezpečnému řešení pro případy, kdy tato nastavení smí být prováděny pouze na pokyn uživatele.

 

Tento postup zabezpečuje, aby nedošlo nechtěnému odeslání hodnoty do cílové proměnné bez vědomí uživatele v případech kdy:

nastavení nebylo na povel uživatele
zdrojová proměnná nebyla nastavena
zdrojová a cílová proměnná se shodují (zabrání dvojímu nastavení stejnou hodnotou)

 

K tomuto účelu je potřeba využít modulu paměťové databáze Memory Database, dynamizace OnCommand uživatelsky odeslané z technologického displeje

Exclam Důležité upozornění!

Pro hromadná nastavení může postačovat řešení, kdy uživatel nastavuje přímo hodnotu pomocné proměnné například z paměťové databáze a ta je synchronizována dynamizacemi např. při změně If Changed, nebo cyklicky Cyclic dynamizací násobným přiřazením hodnoty SetValue, nebo skriptem do technologických proměnných.

Pokud však dojde ke změně proměnné bez zásahu uživatele (po restartu, upgradu, nekorektním vypnutí systému, sloučením projektu, obnovením ze zálohy, atp.) může dojít k návratu do staršího, nebo iniciálního stavu proměnné a jejímu automatickému nastavení do všech cílových technologických proměnných ihned po spuštění monitorovacího projektu a to bez vědomí uživatele. Pokud je potřeba tomuto zabránit, je nutné použít v těchto kapitolách popisovaný postup.

 

Koncepce bezpečného hromadného nastavení hodnoty

Aby nedošlo k nepotvrzené změně cílových hodnot, nelze použít dynamizace globální dynamizace datového serveru jako Cyclic, If Changed, If True, If False, If Changed, kterou systém vyhodnocuje automaticky 1x za sekundu mohou být závislé na stavu nějaké proměnné.

K nastavení hodnoty použijeme dynamizaci OnCommand. Tato dynamizace funguje tak, že uživatel z technologického displeje po stisku příslušné volby odešla z klienta na datový server zprávu, označenou příslušným textovým identifikátorem.

Dynamizace OnCommand v datovém serveru (v dynamizacích některého modulu) se tedy provede jedině tehdy, pokud uživatel příkaz se stejným textovým identifikátorem odeslal.

Abychom předešli náhodnému odeslání příkazu uživatelem, zdvojíme bezpečnost tak, že hodnotu, kterou budeme hromadně nastavovat do cílových technologických proměnných nastavíme po startu systému a po každém hromadném nastavení na zakázanou hodnotu např. <Nezadáno>. K tomuto účelu použijeme modul paměťové databáze, kde si zadefinujeme diskrétní paměťovou proměnnou. Pomocí skriptu pak ověříme, že zdrojová proměnná není v nezadaném stavu, provedeme příslušná nastavení a ihned ji do nezadaného stavu z bezpečnostních důvodů opět vrátíme. Umožníme také uživateli kdykoliv nastavit nezadaný stav, pokud si hromadné nastavení rozmyslí.

prod_tip_sm Tip!

Příklad bezpečného hromadného nastavení hodnot naleznete v následující podkapitole a ukázkovém projektu na v sekci ke stažení, ProCop 3.7 pod názvem Tips and Tricks Sample 1.