Scan cyklus PLC
Mervis RT je zodpovědný za provádění nahráného programu. K tomu slouží, nejen, tyto procesy uvnitř RT
- Výpočetní tasky - popis zde
- Klientské komunikační kanály
- Serverové komunikační kanály
- Servisní kanály PLC
- SSCP
- Proxy
- Ukládání do DB
- Alarmový engine
- Watchdog
Tyto procesy na sobě běží nezávisle a předávají si data prostřednictvím definovaných rozhraní.
Výpočetní task
Tento process realizuje vlastní cyklus dle základního principu jakéhokoliv PLC
- Přečtení vstupů
- Vypočtení logiky programu
- Zapsání výstupů
Tento cyklus se neustále opakuje, jeho perioda závisi na typu tasku a lze ji uživatelsky ovlivnit. Vzhledem k tomu, že většinu I/O v praxi realizují pomalé sériové linky, nemůže být jejich vlastní obsluha součástí vlastního výpočetního cyklu. Při běžných rychlostech by neakceptovatelně omezovaly dobu cyklu a jsou tak realizovány jako asynchronní procesy mimo vlastní výpočet. Přečtení vstupů tak provede pouze sejmutí aktuálního obrazu přečtených hodnot z vyrovnávací paměti do proměnných výpočetního programu, pokud jsou definovány vstupní transformace, tak jsou před tímto provedeny. Obdobně je provedeno zapsání výstupů, po skončení výpočtu programu dojde k vykonání výstupních transformací a hodnoty z proměnných programu jsou zapsány do vyrovnávacích pamětí v komunikačním kanálu.
Přesné časování těchto tasků není zaručeno a závisí na aktualní skladbě programu a zatížení celého systému (komunikace, web, historie, …).
Klientský komunikační kanál
Tento proces realizuje vlastní komunikaci vstupů/výstupů a připravuje je do formátu pro výpočetní task dle definice datových bodu. Klientský kanál provádí peridickou smyčku čtení a zápisu komunikačních skupin. Tato skupina reprezentuje nejmenší možnou entitu, kterou lze daným protokolem vykomunikovat (pro příklad modbus registr nebo cívka). Smyčka běží cyklycky, kdy se nejprve zpracují všechny čtecí skupiny a poté všechny zapisovací. Některé kanály umožňují aktivovat tzv. integrační mód, který způsobí prokládání čtecích cyklů cykly zapisovacími - vhodné použití je pro čtení hodnot ze zaříení a rychlá reakce na zapisovací skupiny s příznakem zápisu pouze při změně.
Každý klientský kanál je realizován samostatným procesem s nejvyšší prioritou - vzhledem k sériovým komunikacím je obvykle ve stavu čekání, tedy neblokuje ostatní procesy a implementace rychlých komunikací např. TCP vynuceně předává čas procesoru dalším procesům. V případě sériových kanálů se všechny komunikační skupiny ze všech zařízení na kanálu čtou/zapisují postupně jedna po druhé - nezáleží tedy, zda-li je definováno jedno zařízení se všemi datovými body nebo více zařízení s jedním. U TCP/UDP protokolů je situace komplikovanější, jednotlivé komunikační skupiny se nejdříve sdruží podle endpointů (IP adresa + port) jednotlivých zařízení. Tyto endpointy se komunikují všechny současně, komunikační skupiny v rámci endpointu pak již postupně stejně jako v případě sériového kanálu. Klientský kanál ukládá vyčtené hodnoty datovýh bodů do vyrovnávací paměti, ke které má přístup výpočetní task. Systém nemůže zajistit, že před každým výpočtem jsou všechny komunikační skupiny vyčtené stejně jako zapsání všech výtupů po skončení výpočtu.
Tím že jsou komunikace asynchronní hrozí riziko zápisu neplatných dat při startu programu nebo naopak výpočet programu s neplatnými daty, toto je zmírněno opatřením, kdy je start výpočetního tasku zpožděn do okamžiku zpracování všech čtecích skupin na klientských kanálech, čekání je omezeno na maximálně 10 s. Obdobně jsou omezené zápisy výtupu, kdy pro jejich provedení musí alespoň proběhnout alespoň jeden výpočetní cyklus.
Serverový komunikační kanál
Realizován samostatným procesem s vysokou prioritou a nuceným předávaním času procesoru dalším procesům. Tyto kanály umožňují přístup k proměnným prostřednictvím různých komunikačních protokolů a zajišťují výměnu dat s jinými systémy. Přístup k hodnotám proměnných není nijak synchronizován s výpočetní taskem a umožňuje získat hodnotu proměnné přesně v čase dotazu, stejně tak, ale může způsobit změnu hodnoty proměnné během výpočetního tasku - je tedy na zodpovědnosti tvůrce programu, zda toto může působit negativně a provét ošetření stavu např. pomocí zámkování.
Servisní kanály
Realizovány samostatnými procesy obvykle s nižší prioritou zajišťující základní funkce RT.