Návody > Bezpečné nastavení hodnoty >Skript hromadného nastavení hodnoty

Skript hromadného nastavení hodnoty

Hromadné nastavení hodnoty na základě příkazu OnCommand

Ve stromové struktuře projektu v dynamizacích některého modulu, nejlépe do modulu příslušné paměťové databáze, vložíme dynamizaci OnCommand.

 

Dynamizace u modulu paměťové databáze

Dynamizace u modulu paměťové databáze

Ve vlastnostech a dynamizacích nastavíme:

Typ podmínky:         On Command

Command:        CMD_COPY

Typ akce:        Bara Script

Note Poznámka:

Dynamizace OnCommand se nespustí za žádných jiných okolností, než bezprostředně po odeslání stejného příkazu dynamizací Send Command.Nemůže tak dojít k náhodnému, či nechtěnému, provedení dynamizace, například po restartu systému.

 

Upravíme cílový skript tlačítkem Editovat. Následuje příklad skriptu pro bezpečné hromadné nastavení, z kontrolou zdrojové hodnoty pro nastavení a jejím resetováním po provedení.

 

program HromadneNastaveni;

 

procedure SetDifValue( ref dest : TIOChannelBinary; src : binary );

begin

 //

 // nenastavujeme do nevalidni promenne

 if dest.Valid = 0 then

         return;

                 

 //

 // nenastavujeme shodnou hodnotu znovu        

 if dest = src then

         return;        

         

 //

 // samotne nastaveni cilove hodnoty

 dest := src;

end;

 

global

 value : binary;

 

begin

 //

 // zdrojova hodnota ma hodnotu <Nezadano>, niz nenastavujeme, konec

 if ( MD.SourceValue = 0 ) then 

         return;

 

 //                

 // cilovou hodnotu budeme nastavovat na hodnotu FALSE (VYPNUTO)

 if MD.SourceValue = 1 then 

         value := false;

 

 //                

 // cilovou hodnotu budeme nastavovat na hodnotu TRUE (ZAPNUTO)

 if MD.SourceValue = 2 then 

         value := true;

 

         

 SetDifValue( MD.TargetValue1, value );

 SetDifValue( MD.TargetValue2, value );

 SetDifValue( MD.TargetValue3, value );

 

 // 

 // nastaveni zdrojove hodnoty do bezpecneho stavu <Nezadano>

 MD.SourceValue := 0;

end.

 

 

 

Ukázkový skript je přímo ve zdrojovém textu komentován. Principem je, že je ošetřeno, aby se cílové technologické hodnoty zadávaly jen jednou. Jsou uvedeny jako první parametr procedury SetDifValue, která kontroluje validitu cílové proměnné a různost její hodnoty od zadávané - druhého parametru. Před samotným spuštěním jednotlivých nastavení se kontroluje, zda zdrojová hodnota byla zadána uživatelem a připravuje s proměnná s požadovaným stavem pro nastavení do všech cílových technologických proměnných. Po provedení všech nastavení proměnných se okamžitě resetuje zdrojová proměnná do nezadaného stavu, aby nemohlo dojít k vícenásobnému náhodnému provedení tohoto přiřazovacího skriptu.

prod_tip_sm Tip!

Pomocí příkazu #include "soubor.bal" můžeme na místo jednotlivých řádků vložit textově volání funkcí pro nastavení hodnot. Externí soubor připravíme v podadresáři Scripts projektu a bude obsahovat pouze právě tato volání SetDifValue(...) pro jednotlivé proměnné. Systém pak při provádění skriptu na místo #include obsah dočasně textově vloží.