Sunteți pe pagina 1din 18

LUCRARE LABORATOR VIII + IX

Scheme monofilare
Vom dezvolta in continuare cateva aplicatii din domeniul energetic in cadrul unui proiect numit "Sch_monof" . In cadrul acestui proiect vom realiza diverse scheme monofilare carora le vom da functionalitate. Pentru a realiza scheme monofilare avem nevoie de o serie de simboluri cum ar fi simboluri pentru: separatoare, intreruptoare, transformatoare etc. In proiectul "Sch_el_start" , sunt realizate deja o serie de astfel de simboluri, asa ca vom porni de la acest proiect. Acest proiect poate fi descarcat aici : Download !"ch#el#start! Dupa ce s a download at acest fisier, din $itect %&plorer '(estore se incarca acest proiect si i se atribuie numele "Sch_monof" . Proiectul contine pagina grafica start afisata mai jos.

"e va crea o noua pagina grafica numita sch_monof_1 , in care vom plasa un separator, un intrerupator si un transformator, realizand schema monofilara de mai jos. )oate simbolurile necesare

acestei scheme monofilare au fost create anterior, odata cu pagina grafica start e&istenta in proiectul initial "Sch_el_start" .

Dorim sa realizam o aplicatie care sa monitorizeze starea componentelor din schema monofilara de mai sus. "a presupunem ca avem un sistem de achizitie si control care este conectat la elementele din schema monofilara de sus. "tarea fiecarui element este oglindita de tag urile corespunzatoare adica: )ag uri aferente !me s* intr* Ti" DI+I)A, DI+I)A, #omeni! Um Comentari! "tare separator s* "tare intrerupator intr*

Pentru separator s a utilizat un !"imbol "et! compus din simbolurile !sep#off!, !sep#on!. "tarea separatorului fiind in concordanta cu starea tag ului s1 .

"imilar, pentru intreruptor s a utilizat un !"imbol "et! compus din simbolurile !intr#off!, !intr#on!, starea acestuia fiind in concordanta cu starea tag ului intr1 . Pentru transformator s a utilizat un !"imbol "et! compus din simbolurile !traf#off!, !traf#on!. De data aceasta, starea transformatorului este in concordanta cu e&presia: s1$intr1 . )oate simbolurile utilizate anterior, se gasesc in !,ibrar-: global!. In lipsa sistemului de achizitie si control, nu ne putem baza pe tag urile amintite anterior. Vom putea simula insa aceste tag uri, prin utilizarea variabilelor locale. Vom utiliza deci variabilele locale in locul variabilelor )ag. Pe tot parcursul acestei lucrari vom utiliza numai variabile locale pentru a putea realiza aplicatii in lipsa sistemului de achizitie si comanda. )oate aceste variabile vor fi simulate local. Aplicatia anterioara va fi completata cu doua butoane pentru a simula starea variabilelor s1 respectiv intr1 .

,a apasarea butoanelor, acestea trebuie sa schimbe starea variabileor locale asociate astfel butonul "* trebuie sa fie setat astfel:

"imilar la apasarea butonului !Intr!, acesta trebuie sa e&ecute functia: toggle.intr*/. In acest moment schema este functionala in sensul ca la apasarea butonului "*, separatorul isi schimba starea, la fel la apasarea butonului Intr, intreruptorul intr* isi schimba starea, iar ral realizarea conditiei intr*0* si s*0* transformatorul indica faptul ca este in functiune conform situatiei de mai jos:

"a introducem noi facilitati si sa adaugam comenzi directe pentru inchiderea respectiv deschidreaea separatorului si intreruptorului, realizand astfel o noua pagina grafica sch_monof_% . In cazul in care sistemul de achizitie si comanda este prevazut atat cu elemente pentru citirea strilor cat si cu elemente de comanda, putem imbogati functionalitatea schemei precedente cu facilitati de comanda pe langa facilitatile anterioare de monitorizare. Vom da deci o dubla functionalitate celor doua simboluri .s*, intr*/ atat pentru afisarea starii cat si pentru preluarea comenzii de inchidere respectiv deschidere. "e va atribui "et "imbolului s* si atributii de tip !Input! astfel:

$u alte cuvinte, se inglobeaza functionalitatea butonul "* in !"et "imbolul! "*. "e procedeaza identic cu !"et "imbolul! Intr*. In noua pagina grafica sch_monof_% se observa ce cele doua simboluri .s*, intr*/ devin senzitive, putandu se lansa comenzi de inchidere respectiv deschidere.

Am eliminat cele doua butoane ce simuleaza starea celor doua elemente, comanda lor, facandu se direct de la acestea. $and cele doua elemente sunt inchise, simbolul transformatorului se modifica indicand functionarea acestuia. In aplicatiile reale e&ista o ordine in care se actioneaza cele doua elemente, in sensul ca separatorul nu poate fi niciodata actionat in sarcina. Acesata schema nu asigura aceasta constrangere, nefiind conditionalitate intre cele doua comenzi. In urmatoarea pagina grafica sch_monof_& se va realiza conditionalitatea intre cele doua comenzi. )inand cont ca separatorul nu poate fi niciodata actionat in sarcina, actionarea acestuia nu mai reprezinta o simpla operatiune de schimbare a starii acestuia ci trebuie conditionata de starea intreruptorului astfel:
IF (intr1=0) THEN toggle(s1) END

" a setat deci proprietatea !Input! a !"et "imbolului! s*. In sistemele energetice, inchiderea respectiv deschiderea unui separator sau a unui intreruptor nu este instantanee. Vom tine cont la urmatoarea pagina grafica sch_monof_' de acest fenomen. Dupa comanda actionarii unui element se scurge un interval de timp pana la efectuarea completa a comenzii. In aplicatia curenta, dupa actionarea uniui element vom avea nevoie de un semnal care sa confirme efectuarea comenzii. Vom introduce pe langa tag urile e&istente, noi tag uri pentru a implementa raspunsul efectuarii comenzii. )ag uri aferente !me s* intr* Ti" DI+I)A, DI+I)A, #omeni! Um Comentari! "tare separator s* "tare intrerupator intr* $omanda pornire separator * $omanda oprire separator * $omanda pornire intreruptor * $omanda oprire intrerupator *

c#p#s* DI+I)A, c#o#s* DI+I)A, c#p#i* DI+I)A, c#o#i* DI+I)A,

Dupa actionarea separatorului s* de e&emplu, nu se schimba starea acestuia decat dupa aparitia confirmarii. Va trebui sa introducem un simbol care sa indice comanda data separatorului pentru a nu deruta utilizatorul, acesta avand impresia ca nu se intampla nimic in urma actionarii separatorului. Dupa

confirmarea actionarii se stinge simbolul aferent comenzii si se schimba starea separatoruliui. Aceste consideratii sunt ilustrate in pagina grafica de mai jos.

In cazul in care se incearca actionarea separatorului in sarcina, nici macar comanda de actionare a separatorului nu este lansata. In acest caz, utilizatorul trebuie atentionat cu un mesaj ca nu poate actiona separatorul. 1esajele vor fi trimise cu instructiunea: Prompt.!1esaj!/2 $onfirmarile de realizare ale comenzilor sunt simulate de butoanele din partea dreapta a paginii grafice. 3utonul !"eparator complet inchis! are setata proprietatea !Imput! cu urmatoarea comanda:
c_p_s1=0 s1=1

3utonul !"eparator complet deschis! are setata proprietatea !Imput! cu urmatoarea comanda:
c_o_s1=0 s1=0

3utonul !$onfirmare inchidere i*! are setata proprietatea !Imput! cu urmatoarea comanda:

c_p_i1=0 intr1=1

3utonul !$onfirmare deschidere i*! are setata proprietatea !Imput! cu urmatoarea comanda:
c_o_i1=0 intr1=0 Prompt(" ");

"imbolul !s*! are setata proprietatea !Imput! cu urmatoarea comanda:


IF (intr1=0) THEN Prompt(" "); IF s1=0 THEN c_p_s1=1 c_o_s1=0 ELSE c_o_s1=1 c_p_s1=0 END ELSE Prompt("N se po!te !ction! sep!r!tor l""); END

Dupa cum se observa incercarea de a actiona separatorul in sarcina are ca singur efect afisarea mesajului: !4u se poate actiona separatorul5! "imbolul !intr*! are setata proprietatea !Imput! cu urmatoarea comanda:
IF intr1=0 THEN c_o_i1=0 c_p_i1=1 ELSE c_p_i1=0 c_o_i1=1 END

$ele patru simboluri de tip ,%D sunt simple !"et "imboluri! in cocordanta cu tag urile: c#o#s*, c#p#s*, c#o#i*, c#p#i* In dreptul acestor simboluri apar si te&tele corespunzatoare, te&te care sunt vizibile atat timp cat tag ul corespunzator este activ. Acest comportament s a realizat prin setarea proprietatii !Visibilit-! ' 6idden when

Inchiderea respectiv deschiderea separatorului, ar putea fi simulata printr o marime analogica, avand valori intre 7 si *778. Pe schema aceasta valoare ar putea fi simulata prin utilizarea unui control de tip !"lider! care ar fi in legatura cu un tag de tip analogic. Vom introduce un nou tag, atfel in acest moment avem urmatoarele tag uri: )ag uri aferente !me s* intr* Ti" DI+I)A, DI+I)A, #omeni! Um Comentari! "tare separator s* "tare intrerupator intr* $omanda pornire separator * $omanda oprire separator * $omanda pornire intreruptor * $omanda oprire intrerupator * *77 8 Pozitie separator *

c#p#s* DI+I)A, c#o#s* DI+I)A, c#p#i* DI+I)A, c#o#i* DI+I)A, poz#s* I4)

Vom realiza deci urmatoarea pagina grafica sch_monof_( in care simularea inchiderii respectiv deschiderii separatorului se va realiza manual de la un !"lider!

"imularea pozitiei separatorului se face utilizand un obiect !"-mbol! de tipul 9p#slider right normal care poate fi localizat in ,ibrar- '9P#"liders. "etam proprietatea "lider 'Vertical ')ag0poz#s* si :ffset at ma&imum 0 *;7 pi&eli. "etand aceasta proprietate in acest mod, vom putea actiona acest simbul si sa l deplasam pe verticala *;7 de pi&eli. 1iscarea acestui obiect de la 7 la *;7 pi&eli va cauza modificarea tag ului asociat poz#s* de la 7 la val ma&ima definita adica *77. Afisarea valorii poz#s* sub forma numerica se face utilizand un obiest de tip !4umber! (eprezentarea sub forma unei bare vericale se face utilizand un obiect !(ectangle! in care s a setat proprietatea: <ill ',evel ',evel e&presion0poz#s* iar proprietatea Apparence s a setat cu +radient fill.

Dupa plasarea !"lider ului!, ar trebui sa urmarim in permanenta daca poz#s* este egala cu *77 sau cu 7 pentru a confirma inchiderea respectiv deschiderea completa a separatorului. Daca ne analizam !Page 'Properties!,

observam ca !Page scan time! se face la fiecare =;7 ms deci am putea plasa pe ecran o functie care s ar lansa de > ori pe secunda. Vom plasa deci pe pagina grafica functia ecran_1) * , si vom edita in !$icode %ditor! urmatoarea functie:
F#N$TI%N ecr!n_1() IF (po&_s1=100) THEN c_p_s1=0 s1=1 END IF (po&_s1=0) THEN c_o_s1=0 s1=0 END END

?rmatoarea pagina grafica sch_monof_+ simularea inchiderii respectiv deschiderii separatorului se va realiza automat fiind afisata pe controlul de tip !"lider! "imularea automata se realizeaza prin rescrierea functiei ecran_1) * astfel incat pozitia sa se incrementeze dupa fiecare interval de scanare. 4oua functie ecran_%) * are forma:
F#N$TI%N ecr!n_'() IF (c_p_s1=1) (ND (po&_s1)100) THEN po&_s1=po&_s1*+

IF (po&_s1,100) THEN po&_s1=100 END END IF (c_o_s1=1) (ND (po&_s1,0) THEN po&_s1=po&_s1-+ IF (po&_s1)0) THEN po&_s1=0 END END IF (po&_s1=100) THEN c_p_s1=0 s1=1 END IF (po&_s1=0) THEN c_o_s1=0 s1=0 END END

Intregul proiect poate fi descarcat aici : Download !"ch#monof! D%"<@?(A(% *. (ealizare probleme prezentate mai sus =. (eali&are:

"$6%1A 1:4:<I,A(@ D% A,I1%4)A(%

"chema urmAtoare reprezintA schema monofilarA de alimentare a unei Bntreprinderi, Bntr o formA simplificatA Ci Bn care regAsim reDeua de unde sa racordat Bntreprinderea , tabloul general notat cu < .siguranDa principalA/, un generator diesel care va intra Bn funcDiune la lipsa tensiunii de la reDea , un tablou principal pe care am repre zentat un circuit de iluminat si un circuit de forDA.

Prin apAsarea butonului F se deschide Bntreruptorul k1Ci alimenterea se realizeazA de la reDea aceasta sa realizat cu funcDia toggle si o funcDie tag

Prin acDionarea BntrerupAtoarelor .siguranDelor/ k21 Ci k22 se alimenteazA circuitele aferente sa relizat cEte o funcDie tag Ci comanda sa realizat cu funcDia toggle.