22.11.2024

Gateway v historickom režime

Gateway v historickom režime

Dnes by som chcel napísať o nedávno implementovanom vylepšení, ktoré sa týka procesu D2000 Gateway a prenosu hodnôt z archívov vzdialeného systému.

V blogu Komunikácia v testovacích prostrediach som už v roku 2017 predstavil funkčnosť transparentného gatewaya. Pomocou neho je možné prenášať hodnoty meraných bodov (napr. z produkčného prostredia do testovacieho alebo zo SCADA systému do MES-u) a následne ich archivovať. Dokonca nedávno bolo implementované aj automatické prenášanie tzv. OLDVAL-ov (starých hodnôt z komunikácie – napr. uložené dáta z dataloggerov alebo dáta profilov z elektromerov) cez D2000 Gateway.

Jedna vec ale zostávala stále problematická: čo s archívmi plnenými skriptom? Tieto vyžadujú, aby nejaký ESL alebo Java skript spracovával zdrojové dáta (CSV, XML a iné súbory, prípadne zdroje dát sťahované z internetu alebo dáta vkladané cez D2000 REST API). Ak tie isté dáta potrebujeme dostať do iného systému, je nutné sfunkčniť spracovanie dát v cieľovom D2000 systéme a pre niektoré zdroje dát „zdvojiť“ zdroj (napr. CSV súbory kopírované zo servera a následne na serveri zmazané). Navyše rôzne vypínania alebo výpadky môžu spôsobiť, že v každom D2000 systéme sú iné hodnoty. A môže byť nutné spracovať aj historické údaje alebo použiť iný spôsob naplnenia archívu v minulosti.

Aby sme užívateľom zjednodušili riešenie tohto problému, naučili sme proces D2000 Gateway Client, aby dokázal predstierať, že je D2000 Archív – a nazvali túto funkčnosť Historický režim gatewaya.

Na aktiváciu historického režimu slúži nový štartovací parameter /ARC. Po spustení s týmto parametrom sa D2000 Gateway Client pripojí k D2000 Serveru ako proces ARC:

Obrázok 1 - D2000 Gateway Client predstierajúci, že je archív

Pokiaľ vytvoríme archivované hodnoty, ktorých rodič je tento process (na obrázku vyššie NEW.ARC) s rovnakými názvami ako sú na zdrojovom D2000 systéme (najjednoduchšie pomocou XML exportu zo zdrojového systému a následného XML importu do cieľového systému), tak D2000 Gateway Client bude vykonávať nasledovné:

1. Prenáša hodnoty jednoduchých archivovaných hodnôt, ktoré zverejňuje D2000 Archív v zdrojovom systéme, takže ak budú pripojené do schém alebo grafov, budú tieto funkčné:

Obrázok 2 - Aktuálne hodnoty objektov typu Archivovaná hodnota (posledný stĺpec)

2. Požiadavky na čítanie dát (do grafov alebo zo skriptu) preposiela do zdrojového Scada systému (využíva sa tá istá funkcionalita, ktorá slúži pre potreby príkazu GETOLDVAL). Archívne hodnoty sú navyše označené ako „read-only“, takže sa nedajú editovať. D2000 Gateway Client v historickom režime (podobne ako v režime transparentného gatewaya) funguje ako tzv. dátová dióda – neumožňuje modifikáciu dát v zdrojovom systéme.

Obrázok 3 - Hodnoty načítané v historickom móde D2000 Gateway Clienta sú read-only (ružové pozadie)

Je podporená väčšina akcií na čítanie z archívu zo skriptu:

CALCSTATFUNC

CALCSTATFUNCARR

GETARCHARR

GETARCHARR_TO_CNT

GETARCHCOL

GETARCHROW

GETARCHSTRUCT

GETARCHVAL

Nie sú podporené akcie pre zápis archívu (DELETEARCHDATA, INSERTARCHARR, UPDATEARCHVAL) z dôvodu funkcionality dátovej diódy a výpočet ľubovolného archívneho výrazu (CALCONDEMANDSTAT) z dôvodu prílišnej komplikovanosti.

V historickom režime je podporený aj parameter /MON, ktorý umožňuje modifikovať mená objektov. V našom príklade majú všetky nakonfigurované archívne objekty v cieľovom systéme názvy začínajúce „H.Scada.“ (aby sme ich vedeli rozlíšiť od „lokálnych“ archívov). Parametrom „/MONScada\.,“ dosiahneme, že prefix „Scada.“ sa vymaže (parameter „/MONScada\.,something“ by z názov H.Scada.A pretransformoval na H.somethingA – spätné lomítko je na potlačenie špeciálneho významu bodky v regulárnych výrazoch).

Je teda možné napr. na MES systéme založiť niekoľko fiktívnych ARC procesov pre niekoľko SCADA systémov a pomocou D2000 Gateway Client procesov prepojiť MES systém s týmito SCADA systémami. Následne importovať archívne objekty, schémy a grafy a zobrazovať MES užívateľom tie isté dáta ako vidia SCADA systémy – navyše bez rizika zmien (MES užívateľ nemôže riadiť ani meniť archívne dáta) a bez nárokov na diskové miesto v MES systéme (všetky čítania sa vykonávajú voči SCADA systémom). Pre jednotlivé SCADA systémy je možné nastaviť rôzne prefixy v názvoch objektov, takže je na prvý pohľad zrejmé, či sa jedná o „lokálny“ objekt alebo o objekt prenášaný cez gateway v historickom režime.

Pokiaľ by mal niekto požiadavku ľubovolne upravovať názvy archívnych objektov (takže by nestačil ani parameter /MON), bol aj v historickom režime podporený parameter /UID, ktorý spôsobí, že sa objekty na zdrojovom a cieľovom systéme párujú podľa unikátneho identifikátora objektu - UID. Pozor – je nutné aj na zdrojovom systéme spustiť D2000 Gateway Server s parametrom /UID.

Historický režim gatewaya bol podporený pre D2000 verzie 21.1.72 a vyššie.

Záver

Historický režim gatewaya je už nasadený u jedného z našich zákazníkov, kde slúži MES užívateľom na čítanie skriptom plnených archívov zo SCADA systému. V blízkej budúcnosti sa plánuje použitie na testovacie prostredie u iného zákazníka, kde bude nasadený ako inštančný archív ([2]_SELF.ARC). Okrem gatewaya bude existovať aj štandardný inštančný archív ([1]_SELF.ARC), ktorý bude vykonávať archiváciu s obmedzenou časovou hĺbkou – napr. 2 mesiace. Zmenou aktívnej inštancie bude možné prepínať čítanie medzi krátkodobým lokálnym archívom a archívom produkčného systému.

Ako možno vidieť, historický režim gatewaya má niekoľko zaujímavých využití, ktoré umožňujú ešte lepšie prepojenie viacerých systémov postavených na aplikačnom serveri reálneho času Ipesoft D2000.

6.12.2023, Ing. Peter Humaj, www.ipesoft.com

Iné blogy