site logo

Ukázka intranetové aplikace Energetika

Pro řízení odběru elektrické energie, později i pro tlakový vzduch byl instalován řídící systém. Původně tento řídící systém sloužil pouze pro pracovnícky ve velínu energetiky.

Přirozeně vznikla potřeba zobrazovat skutečné odběry tak, aby vedoucí jednotlivých výrobních provozů měli přehled o historii i okamžitém odběru svého provozu. Tedy příležitost pro intranetovou aplikaci.

screenshot intranetové aplikace Energetika

Protože získat přístup k interní databázi řídícího systému bylo komplikované, dodavatel řídícího systému poskytl vybranou část nasbíraných dat v souboru typu csv. Jeden řádek ASCCII dat obsahuje data za jednu hodinu. Data začínají časovým údajem (datum a čas), následují údaje odebrané energie podle odběrových míst v dohodnutém pořadí. Tyto údaje jsou oddělené znakem čárka. Délka historie byla zvolena 3 dny, tedy celkem 72 řádků. Každou hodinu je na začátek souboru přidán řádek s novými údaji, poslední řádek vypadne. Bylo dohodnuto ukládání souboru na stanici s řídícím systémem. To byla chyba. Data se přece zásadně ukládají na server!

Nastal problém jak číst tento soubor ze vzdáleného PC. Poměrně dlouhou dobu jsme zkoušeli nastavovat přístupová práva podle návodů Microsoftu, ale vždy když se zdálo že problém je konečně vyřešen, po restartu, po updatu ap. se spojení rozpadlo. Problém vyřešil kolega M.J. napsáním komponenty, která hlídá změnu souboru na vzdáleném PC a v případě změny jej zkopíruje na intranetový server, kde je soubor vždy dostupný.

K samotné aplikaci, která svým rozsahem ani aplikace není. Jde o několik jednoduchých skriptů. Program čte data ze souboru pomocí objektu FileSystemObject, každý řádek se rozloží na jednotlivé hodnoty pomocí funkce Split, přeformátuje a odešle do browseru. Projedou se postupně všechny řádky. Pro graf je potřeba ještě určit souřadnice datumu (zobrazeno těsně pod grafem) a vybrat měřítko zvoleného měřícího místa, které je uloženo v global.asa.

Data jsou zobrazena v tabulce (levá část obrázku), nebo v grafu (vpravo). Zajímavý byl neúspěšný pokus přesvěčit browser, aby názvy měřících míst v tabulce otočil o 90° pomocí CSS, nebo VML (zůžit místo pro tabulku). Nakonec jsem rezignoval a vytvořil názvy pomocí obrázků.

Stránky se automaticky obnovují (refresh), tak aby byly zobrazeny vždy aktuální hodnoty. Interval pro refresh se vypočítá na serveru tak, aby vždy 5 minut po celé hodině byly zobrazeny aktuální data bez ohledu na čas kdy byla stránka zobrazena poprvé.

updated 18.02.2006