26.3.2024

Screenshot v D2000?

Pred niekoľkými dňami, v rámci školení zákazníka, sme s kolegom dostali zaujímavú otázku. Zákazníkovi sa v minulosti stalo, že neredundantný SCADA systém bol nejaký čas nedostupný (nešpecifikované problémy v serverovni) a dispečeri boli teda bez svojho grafického rozhrania (procesu HI – Human Interface) úplne bez informácií o procesoch. Jednalo sa pritom o vodárenský dispečing, takže relatívne pomalé deje.

A teraz otázka: bolo by možné nejako vytvárať snímky obrazovky, aby si v takomto stave dispečer mohol pozrieť aspoň ako vyzeral stav riadeného systému pred minútou, piatimi, pätnástimi... ?

Mal som matný dojem, že funkcionalita robenia snímok v D2000 HI existuje, ale nevedel som si spomenúť na názov funkcie. Poprosil som teda e-mailom kolegu, ktorý sa v HI vyzná oveľa lepšie a o chvíľu som mal odpoveď. (Keby som nebol lenivý, dal by som si v online dokumentácii vyhľadať „screenshot“ a našiel by som to aj sám). Existuje funkcia %HI_CaptureToFile, ktorá uloží do súboru schému, z ktorej je volaná, prípadne jej časť danú koordinátmi.

Za pár minút sme vytvorili v schéme skript, ktorý je volaný po zmene minúty (akcia ON CHANGE). Tento urobí každú minútu snímku a uloží ju do aplikačného adresára (funkcia %GetApplDir). Názov snímky je odvodený od názvu schémy – najskôr sa zistí číselný identifikátor (HOBJ – handle objektu) schémy funkciou %GetSelfHBJ, následne sa prevedie na textový názov schémy funkciou %HBJToStr.

Snímka schémy sa vytvára a prepisuje každú minútu. Mohli sme do názvu zakomponovať aj aktuálny dátum a čas (previesť systémovú premennú SysTime reprezentujúcu čas pomocou funkcie %TimeToStr na text) a následne riešiť odmazávanie starých snímok, ale toto zákazník nepožadoval. Stačilo mu, že raz za päť minút, štvrťhodinu a hodinu sa snímka uloží pod iným názvom a tak bude mať k dispozícii posledných niekoľko snímok. Premenovanie minútovej snímky realizuje funkcia  %FIO_Move (jej tretí parameter bFailIfExist má hodnotu @FALSE, aby boli prepisované staršie snímky).

Popisovaný skript, ktorý je súčasťou konkrétnej schémy, si môžete pozrieť na nasledujúcom obrázku.

Obrázok 1 - Skript na vytváranie snímky schémy a ukladanie na disk

Určite existujú aj externé utility, ktoré dokážu robiť pravidelne snímky obrazovky. Čo sme zatiaľ nespomenuli – dispečeri tohto konkrétneho zákazníka majú niekoľko veľkých základných schém, ktoré sú otvorené a medzi ktorými sa prepínajú. Jedna je teda na popredí, ostatné na pozadí. Riešenie prostriedkami D2000 HI malo pre zákazníka tú výhodu, že všetky schémy – aj tie na pozadí –boli po duplikovaní skriptu schopné vytvárať snímky obrazovky, aj keď boli na pozadí. V prípade použitia externého programu by sa zrejme vytvorila iba snímka práve zobrazenej schémy.

Obrázok 2 - Snímky schémy v aplikačnom adresári

Týmto krátkym textom som chcel ukázať, že v mnohých prípadoch je možné pri použití aplikačného servera reálneho času Ipesoft D2000 rýchlo a jednoducho plniť aj nie celkom štandardné želania zákazníka. Niekoľkoriadkový skript vytvorený počas školenia je pekným príkladom rozšírenej funkcionality, ktorou D2000 disponuje.

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

Iné blogy