APLICAȚIA WebClient IERNUT

camera de comanda

Deoarece începând cu 1 februarie 2021 decontarea tranzacțiilor cu energie electrică nu se mai face orar, ci la 15 minute , vă prezint în continuare modul în care am dezvoltat aplicația primită de la TRANSELECTRICA pentru a veni în sprijinul dispecerilor , în special modul în care aceștia sunt informați/ atenționați în legatură cu apariția Ordinelor de Dispecer pentru încărcare sau descărcare de putere pe anumite intervale de timp.

Aceste Ordine de Dispecer se adaugă la valoarea de putere stabilită în ziua anterioară pentru ziua curentă. Până la 1 februarie 2021 , informarea dispecerilor de la unitățile de producție se făcea telefonic , dar după această dată totul se face automat , în sensul că valorile de putere corespunzătoare fiecărei unități sunt încărcate pe un WebServer , de unde fiecare unitate poate să-și descarce informațiile cu ajutorul unei aplicații WebClient.

Problema era că aplicația WebClient , așa cum am primit-o nu era de prea mare ajutor , deoarece nu avea o opțiune de citire automată a datelor de pe server , respectiv generarea unei alarme la apariția unui ordin nou.

Din cauză că apariția ordinelor de dispecer nu are o anumită regulă , totul depinde de producția , consumul și frecvența sistemului în anumite intervale din zi , dispecerii ar fi fost nevoiți să verifice foarte des dacă a apărut sau nu un ordin pentru unitățile pe care le conduc, prin apăsarea succesivă a butonului RunSychronous.

Partea grafică a aplicației originale arăta ca în imaginea de mai jos:

 

WEBCLIENT ORIGINAL

După fiecare operație de citire se obținea un fișier în format xml care conținea mai multe informații , printre care și acele ordine de dispecer , aranjate într-un format standard, după modelul de mai jos ,care reprezintă o cerere de încarcare (<Direction v="A01"/>) , pentru intervalul 9:45 - 10:00 din data de 8.02.2021 , o putere de 8 MW pentru unitatea nr. 5 IERNUT.

<DispatchOrder>
<Name v="IERN5"/>
<ResourceObject v="30WELCEIERN5---V"/>
<TimeInterval v="2021-02-08T09:45Z/2021-02-08T10:00Z"/>
<Service v="A97"/>
<Direction v="A01"/>
<Quantity v="8.000"/>
</DispatchOrder>

Pentru o zi cu cîteva zeci de astfel de ordine , acel fișier XML conținea un șir foarte lung de astfel de pachete de date, pe care dispecerul era nevoit să le descifreze. Un exemplu de fișier se poate vedea aici: https://simpalean.site/webclient_iernut/ordin.html

După ce am analizat codul sursă al aplicației , am reușit să adaug mai multe opțiuni.Partea grafică arată ca în imaginea de mai jos:

weberver damas

Opțiunile adăugate sunt următoarele:

1. Citire automată - Datele de pe webserver sunt citite automat la intervale de 60 de secunde

2. Afișare în TextBox - Ultimul ordin apărut pe WebServer este extras din fișierul XML și afișat întru-un TextBox , cu caractere mari.

3. Alarmă audio - Odată cu apariția unui ordin nou, dacă este bifat CheckBox-ul - Alarma, este declanșată și o alarmă audio care se aude în boxele atașate PC-ului pe care rulează aplicația.

4. Informare vocală - Am selectat o voce disponibilă în SO Win10 și cu funcția Text To Speech am obținut o informare vocală a dispecerului.În cazul ordinului apărut în imaginea de mai sus , textul citit automat de "Linda", ar fi: "Hello , Mister dispatcher ,you have to upload 8 mega watts!".

voce

5. Afișare sub formă de grafic - Am adăugat un grafic pe care sunt afișate cele 96 de intervale de câte 15 minute ale zilei.Astfel , este foarte ușor de observat evoluția ordinelor primite pe ziua în curs. Se observă în exemplul de mai sus că pentru primele patru intervale ale zilei au fost cereri de scădere cu 13MW , pe urmă o cerere de scadere cu 5MW , dupa care urmează 3 intervale cu cerere de crestere cu 8MW . După acest ciclu de cereri urmează o perioadă de câteva ore fără nici o cerere. În lipsa unui sitem de alarmare automat, dispecerul ar fi fost nevoit să verifice la intervale de căteva minute situația datelor de pe WebServer.

6. Afișare simplificată text - Fiecare ordin de dispecer pentru ziua curentă este afișat și ca text într-un TextBox, într-un format mai simplu decît modul în care apare în fișierul XML citit de pe WebServer. Un ordin pentru un anumit interval l-am denumit : "pachet". Se observă că în ziua analizată mai sus , au fost 146 de pachete , primele trei având formatul:

< 1 -13MW > < 2 -13MW > < 3 -13MW >

7. Citire automată pentru ziua curentă - Citirea automată a datelor să se facă în funcție de data PC-ului pe care rulează aplicația. Astfel , dispecerul nu este nevoit să modifice data pentru citirea informațiilor de pe WebServer la ora zero.

8. Citire automată pentru ziua următoare - În ultimul interval al zilei curente (23:45 - 00:00), citirea automată a datelor să se facă deja pentru ziua următoare.

9. Informare prin apel GSM - Pentru situația în care dispecerul este plecat din camera de comandă, am adăugat și opțiunea de apelare telefonică.Dacă este activat CheckBox-ul "Apel GSM" , de fiecare dată când apare un ordin nou , este inițiat un apel GSM pe numarul de telefon mobil al dispecerului. Softul aplicației de apelare l-am făcut în așa fel încât , daca dispecerul nu răspunde în 20 de secunde , apelul este redirecționat automat spre numărul de telefon al șefului de tură de la generatorul 5. Acesta este instruit ca atunci când primește un apel de la numărul memorat cu numele "WebServer DAMAS" , să sune în camera de comandă centrală.

Modulul GSM a fost construit exact pentru această aplicație, schemă electrică și soft, piesa principala de pe modul fiind chip-ul SIM800L , prezentat aici: link. Comunicația cu PC-ul pe care rulează aplicația WebClient se face cu un cablu , printr-un port USB. Arată ca în imaginea următoare:

modul gsm

Cu toate aceste opțiuni activate, este aproape imposibil ca dispecerul să nu fie informat de apariția fiecărui ordin transmis prin intermediul WebServer-ului DAMAS !