2010 | Reliance SCADA
Při použití skriptů v projektu Reliance jste se možná setkali se situací, kdy zpracování určitého skriptu trvalo delší dobu. Mohlo se jednat např. o skript, který prováděl výpočet nad daty uloženými v databázi nebo export dat uložených v databázi do jiného formátu. Pokud vznikl požadavek na spuštění jiného skriptu (např. kliknutím na tlačítko ve vizualizaci), byl tento skript spuštěn se zpožděním až po dokončení zpracování aktuálního skriptu. Pokud je takové zpoždění nežádoucí, je možné využít souběžného zpracování více skriptů (tato možnost je k dispozici od verze 4.0.15).
Možnosti projektu – Podprocesy
Kód skriptu vykonává tzv. podproces (vlákno, thread). V projektu Reliance je k dispozici celkem 31 předdefinovaných podprocesů pro zpracování skriptů.
Pro každý skript je možné vybrat podproces, v němž bude skript spuštěn. Ve výchozím stavu je u všech skriptů přednastaven "Podproces1". V tom případě jsou skripty zpracovávány postupně (stejně jako ve starších verzích Reliance), tzn. v určitém okamžiku se zpracovává nejvýše jeden skript. Rozdělením skriptů do různých podprocesů je možné dosáhnout souběžného zpracování více skriptů. Skripty spuštěné v různých podprocesech se vzájemně neblokují.
Nejčastěji nastává situace, kdy existují 2 skupiny skriptů: pro rychlé operace (např. výpočty vnitřních proměnných pro zobrazení) a pomalé operace (např. s databázemi, jak bylo zmíněno v úvodu). Pomalé operace pak neblokují rychlé operace.
Možnosti projektu – Podprocesy
Správce skriptů – výběr podprocesu pro skript
Skripty spouštěné v různých podprocesech by neměly pracovat se stejnými daty (např. stejnou skupinou proměnných v projektu). Jinak je nutné přístup k datům synchronizovat.
Skripty spouštěné v různých podprocesech nemohou sdílet stejné globální identifikátory, jako např. konstanty, proměnné, procedury a funkce. V rámci každého podprocesu existuje samostatná kopie globálních identifikátorů.