Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Clase - VCX si PRG  Sa fac o clasa?...
 Re: Sa fac o clasa?
 
 2/7/2011 11:41:55 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
Comutatorul comuta intre doua sau mai multe circuite .... Daca s1 si s2 se actioneaza manual si independent, ce rost mai are I si la ce serverste infasurarea? Cum liniile nu au tensiuni diferite, prin circuit nu circula curent. Pentru a avea un curect intre cele doua linii, trebui sa ai o diferenta de potential intre ele.

Daniel Buduru
 2/7/2011 12:21:41 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania) Modified By ji_ci  on 2/7/2011 1:24:59 PM)
Ideea e ca circuitele sa fie alimentate din cel putin 2 surse! Primele surse ale circuitului sunt linia 1 si 2, care sa zicem sunt alimentate din 2 transformatori identici (care se pot pune in paralel) .... deci  L1 si L2 aceleasi tensiuni (ma refer ca si nivel de tensiune ex 220 V, ptr a ele sunt diferite deoarece provin din surse diferite )! Daca amandoua sunt liniile sunt cu tensiune circuitele vor fi toate alimentate cu tensiuni (si cele racordate la L1 si cele la L2)! Daca dispare tensiunea pe o linie, sa zicem pe L1 aetunci toate circuitele racordate la L1 raman fara tesniune! Dar daca la circuitul 3 inchise comutatoarele S1 si S2 si inchis intrerupatorul I atunci circuitele racordate la L1 raman totusi alimentate cu tensiune ...din L2 prin circuitul 3!
 2/7/2011 12:54:50 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
Chestia cu doua surse am inteles-o.
S1 si S2 sunt intrerupatoare, nu pot fi numite "comutatoare" pentru ca nu comuta nimic. Daca era vorba de comutator, era suficient unul singur, care sa comute intre linia 1 si linia 2. Asa, sunt doar intrerupatoare, la fel ca I, care nu mai este necesar, ce face el face oricare dintre celelalte doua, s1 si s2.
Ce rost are infasurarea pe acel circuit? Senzor de curent?

Daniel Buduru
 2/7/2011 2:52:16 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Da ... e un transformator de curent .... nici nu trebuie bagat in seama ...e e doar grafic acolo! Problema e ca de-abia acum m-am uitat pe schema si am vazut ca am denumit circ 3 .... nu despre ala era vorba ci despre al treilea circuit .... acela care nu are nicio denumire! Si intrerupatorul se foloseste pentru a nu deschide cu comutator(separator) curenti mari (sunt curenti mari in schema)! Deci circuitul acesta face legatura intre cele 2 linii! Pe langa asta .... ca sa fie tacamul complet ... circuitele alimenteaza anumiti consumatori care la randul lor pot si ei devenii surse!
 2/8/2011 9:33:13 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Se poate construii intradevar si circuitul al treilea! Eu incercam cu un element de tip nod sa-l fac in locul acelei bobine si nu mergea ptr ca elemetul de tip NOD are alte reguli de reprezentare! Dar e perfect si asa ... ptr ca oricum va trebuii sa reprezint si bobina chiar daca ea conteaza doar grafic! Nu am reusit sa inserz in tabela circuit_e, la fel si in circuit_c decat dupa ce am anulat trigger-urile! Care-i conditia? Inainte am adaugat un nou circuit in tabela circuite!?
 2/8/2011 9:42:07 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A) Modified By Daniel Buduru  on 2/8/2011 10:42:19 AM)
Pune trigger-ele inapoi si deschide tabelele cu buffering. Probabil ca aveai buffering-ul setat in optiuni: menu - tools - options - data. Pune aici buffering-ul pe record (optimistic) sau table (optimistic).
Daca ai record buffering, modificarile se comit in tabela cand parasesti inregistrarea (te muti de pe o inregistrare pe alta).
Daca pui table buffering, vei avea nevoie de o comanda tableupdate() pentru a comite modificarile in tabela.

Fa-ti un form pentru incarcarea circuitelor.

Daniel Buduru
 2/8/2011 9:51:09 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
[QUOTE]ji_ci wrote
Se poate construii intradevar si circuitul al treilea! Eu incercam cu un element de tip nod sa-l fac in locul acelei bobine ......QUOTE]

Defineste cate tipuri de elemente ai nevoie. Iti faci configurarea elementului in settip. Cazul nodului este special, el se redimensioneaza pentru a se conecta la celelelat elemente, de aceea am pus acolo un IF, nu Case. In ramura Else a acestyui IF pui o structurea CASE, in care desenezi ce trebuie pentru tipul respectiv.

Daniel Buduru
 2/8/2011 9:53:28 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Pentru trigger-uri ai o "schema" standard pe care o adaptezi functie de proiect? Oricum mai am mult pana acolo ... sper sa nu fie nevoie sa modific ceva acolo!
 2/8/2011 10:04:25 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
E suficient sa pui relatiile de integritate referentiala in baza de date. Builderul va constru singur trigger-ele necesare.
Descarca de pe site schema3, deschide baza de date in editor (in project, selecteaza baza de date schema, apoi modify). In menu - database - edit referentia integrity vei vedea relatiile d eintegritate referentiala si regulilie lor.
Relatia intre circuit si circuit_e, cu cheia primara idcircuit, are regulile:
update - cascade = daca se modifica idcircuit in circuite, modificarea se aplica si in circuit_e
delete - cascade = daca se sterge o inregistrare din circuite, se vor sterge toate inregistrarile cu acel idcircuit din circuit_e
insert - restrict = daca se inceacra adaugarea unei inregistrari in circuit_e, al carei idcircuit nu se regaseste in circuite, inregistrarea este rejectata.
Cand dai OK in referential Integrity Builder, se genereaza trigger-ele corespunzatoare in baza de date.
Menu - database - Edit stores procedures pentru a vedea / edita codul triggerelor.

Daniel Buduru
 2/8/2011 10:10:30 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Stiu .... vazusem codul in Edit stores procedures si m-am speriat ... ca trebuie scris! Off cate mai am de invatat ... daca ar fi ziua de 48 de ore ce bine ar fi!
 2/8/2011 1:19:53 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Sa fac o clasa?
 (N/A)
Atentie mare cu builderul ala de integritate referentiala, ca e cam tampit. Asigura-te ca ai dat Pack Database inainte de a-l folosi, altfel ramai fara baza de date.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/8/2011 2:31:11 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Multumesc mult de avertizare!
 2/8/2011 5:31:23 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
[QUOTE]Daniel Buduru wrote
 ji_ci wrote
Se poate construii intradevar si circuitul al treilea! Eu incercam cu un element de tip nod sa-l fac in locul acelei bobine ......QUOTE]

Defineste cate tipuri de elemente ai nevoie. Iti faci configurarea elementului in settip. Cazul nodului este special, el se redimensioneaza pentru a se conecta la celelelat elemente, de aceea am pus acolo un IF, nu Case. In ramura Else a acestyui IF pui o structurea CASE, in care desenezi ce trebuie pentru tipul respectiv.





La circuitul pe care l-ai facut tu imi trebuie S04 sa aiba ca parinte pe N07! Prin S04 ... chiar aia fac pun la pamant portiunea N07 .... si nu ptr a simula scc .... chiar asa trebuie dupa ce N07 ramane fara tesiune! Eu am pus o conditie ca atunci cand Top element din aval este mai mic ca Top element din amonte (parinte) pozitionarea liniei intre elemente sa fie altfel si am inversat linia amonte cu cea de aval la elementul respectiv! Bineinteles urmeaza apoi definirea elementului de legare la pamant prin care aduc nodurile in cea de-a trei stare! Ce parere ai?
 2/8/2011 6:34:22 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A) Modified By Daniel Buduru  on 2/8/2011 7:37:41 PM)
Dupa cum ti-am spus deja de mai multe ori, faci un element "sursa", pe care il pui fie la nul, fie la tensiunea de alimentare. Asta exista si in circuitul real, ai un element de conectare (caseta de conectare se numea la instalatiile de forta) la nul sau la tensiune, nu o sarma rasuicta peste alta.
Daca nu vrei sa mai introduci in baza de date un element in plus, pune o proprietate a elementului care sa specifice daca se racordeaza la o sursa, nivelul de tensiune al sursei si pe care parte a elementului este ea - amonte sau aval. Apoi, in functie de asta, la instantierea circuitului adaugi un "nod de legatura la sursa", cu simbolizarea corespunzatoare, nod care nu e nevoie s afie definit in tabela.

In afara de asta, daca vrei sa propagi nivelul de tensiune in ambele directii - amonte - aval si aval - amonte, trebuie sa mai adaugi o proprietate elementulu, si anume, daca poate suporta tensiuni diferite amonte-aval (cazul infasurarii de traf, etc), sau daca elementul se distruge (fuzibil) sau se deconecteaza (disjunctor).
Cand vii cu tensiuni diferite in circuit, te opresti la un astfel de element, altfel pendulezi cu tensiunile dintr-un capat in altul, adica intri cu programul intr-o bucla fara sfarsit.
Mai trebui sa definesti si tensiunea "in aer", pe care o are un element care nu e legat nici la faza, nici la nul, altfel ajungi in impas de la primul element.
E ultima oara cand iti mai spun lucrurile astea, deja le-am repetat de prea multe ori.

Un element se leaga in schema in functie de elementele la care trebuie conectat, nu in functie de pozitia in care l-a desenat cineva.
Daca incepi sa faci artificii bazate pe diverse conditii care nu exista in circuitul fizic, ci doar in plasarea elementelor pe schema desenata, ai pierdut partida.

Daniel Buduru
 2/8/2011 8:51:36 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Am introdus de mult elementul sursa si nu numai ... cu modelul facut de tine e usor sa implementezi un nou element! La partea cu desenatul ai dreptate ... insa in final tot va trebuii sa dau o forma mai altfel ptr ca la un moment dat imi ies niste zig-zag-uri .... dar oricum nu e cazul acum! Trebuie sa fac in primul rand circuitul sa functioneze!
 2/11/2011 3:55:51 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Deocamdata am incercat sa rezolv problema circuitului alimentat in acelasi timp din mai multe surse! Nu am ajuns inca la trafo... Am luat cazul in care circutul are ca surse cele 2 linii de racordare (am adaugat 2 surse pe nivel 0) si S05 (l-am transformat in sursa)! Am creat elementul de tip sursa pe care l-am setat in settip (switch - borderWidth=0,borderStyle=0, shape1.Visible=.F., stare=.T., tensiune=.T.)! Am facut o metoda separata BindTensiune! Am mai adaugat la element 2 proprietati sursaamonte, sursaaval! In clasa Circuit la LoadCircuit unde se apeleaza addamonte si addaval ... am adaugat:       
      loParent.BindTensiune(loObject, 'sursaaval')
     loObject.BindTensiune(loParent, 'sursaamonte')
 In BindTensiune am construit expresiile in functie de sursaaval si sursaamonte .... adica daca sunt .T. se adauga expresia, daca e .F. nu se adauga expresia! Iar la settensiune:
tuTensiune=eval(evl(this.expresietensiune,'this.tensiune'))
if tuTensiune<>this.tensiune
this.tensiune=tuTensiune
ENDIF
lnColor=Evaluate(Iif(This.tensiune,This.ColorOn, This.Coloroff))
If This.Isnode
    This.SetAll('BorderColor',lnColor,This.Lineclass)
ELSE
        if Type('this.Amonte(1).Tensiune')<>'U'
        llTensiune_amonte=This.Amonte(1).tensiune
        ELSE
        llTensiune_amonte=this.tensiune
        ENDIF
        IF Type('this.Aval(1).Tensiune')<>'U'
        llTensiune_aval=This.Aval(1).tensiune
        ELSE
        llTensiune_aval=this.tensiune
        ENDIF    
    This.LineAval.BorderColor=Evaluate(Iif(llTensiune_aval,This.ColorOn, This.Coloroff))
    This.LineAmonte.BorderColor=Evaluate(Iif(llTensiune_amonte,This.ColorOn, This.Coloroff))
   
Endif

Totul functioneaza bine (am incercat si cu sursa in aval, si in amonte si cu toate trei sursele) daca se stie la fiecare element sursaaval si surssamonte! Deocamdata am dat eu valorile de .T. si de .F.! Dar ma gandesc ca se poate daca stim care sunt sursele sa aflam la fiecare element pe ce valoare este sursaamonte si sursaaval! O alta problema ar fi cand se schimba sursa in timpul rularii programului .... cred ca ar trebuii si aici un bindevent ... dar nu ma duce capul cum sa-l fac!?
 2/14/2011 8:10:22 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
Imi e greu sa urmaresc ce faci in lipsa codului complet.
Eu as fi numit proprietatile TensiuneAmonte si TensiuneAval, nu SursaAmonte si SursaAval.
Nu era nevoie sa adaugi sursele pe nivel 0, ci sa modifici tipul elementeleor de pe nivel 1 din nod in sursa.
Nu mi-e clar ce faci in bindtensiune.

Elementele S04 si S06 din schema ta e conectat la masa (sau la nul). Ce se intampla cand S03 e ON, S03 e ON si I e ON ? Ai un scurtcircuit intre linia 1 si masa de la S04. Ziceai sa S01 si S02 sunt disjunctoare de putere. Sunt curios, la ce serveste un astfel de circuit? Un joc de ruleta ruseasca?

Se poate modela functionarea a orice, daca se cunosc regulile de functionare. Tu ai adus in discutie o schema electrica, dar aceasta schema nu respecta regulile de proiectarea a circuitelor electrice.

Daca vrei sa dicutam pe cod, posteaza tot codul.

Daniel Buduru
 2/14/2011 8:49:44 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Am postat ce am facut! Schema se foloseste la retelele de distributie ... Cazul descris de tine e real ... se poate intampla asta ... dar sunt blocaje care interzic inchiderea lui S04 sau S06 cand cele zise de tine sunt ON! Iti zic sigur ca exista circuitele astea ... altfel nu mi-as bate capul aiurea! Ce am facut functioneaza ... dar daca am mai mult de o sursa in amonte sau in aval se deregeleaza! Si eu pot sa am cum am spus mai multe surse ptr un element si in aval si in amonte in acelasi timp!
JI_CI_schema.rar 
 2/14/2011 9:11:42 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
Curcuitele asa cum le-ai desenat in schema nu exista, schema nu reprezinta circuitul real - unde sunt blocajele??? - ci unul modificat, din care lipseste o buna parte din logica de functionare.

Unde este in schema ta interblocarea comutatoarelor S01, S02 si S04? Nu poti implementa circuitul ep jumatate si sa-l faci sa functioneze ca unul real ...
Daca zici ca schema se aplica retelelor de distributie, comutatoarele pe care le-ai pus in schema fie nu sunt actionate manual, fie reprezinta elementele de comanda pentru dijuntoarele din retea. In ambele cazuri, schema e incompleta.

Nu poti gestiona mai multe surse in circuit fara o regula de interconectare a surselor. Ea exista in realitate, dar tu nu o ai in schema.
Ce se intampla la interconactarea retelelor cand tensiunea nu este egala? Chiar si o diferenta mica de tensiune? Ce tensiune vei avea la fiecare nod de racordare a surselor?

In cod se poate rezolva si problema cu mai multe surse si conectarea lor dupa instantierea circuitului, dar, fara regula de concurenta, codul va face ping-pong de la un capat la altul al circuitului. Desigur, se poate pune in cod sa se opreasca dupa un numar de pendulari, dar asta nu are de-aface cu situatia reala.

Revin dupa ce ma uit la cod.

Daniel Buduru
 2/14/2011 9:16:07 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
Nu ai in arhiva schema.vcx Inchide vfp si arhiveaza inca o data.
Daniel Buduru
 2/14/2011 9:25:35 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Schema prezentata este pentru echipamentele primare .... doar asta ma intereseaza ... intradevar ptr comanda lor si blocajele se face pe niste circuite secundare .... care nu ma intereseaza! In proiectul meu ma intereseaza doar actionarea elementelor primare pe care le pune utilizatorul pe ON sau OFF si tot utilizatorul va stabilii care sunt sursele ( sunt anumite elemente in circuit care vor putea fi utilizate ca surse ... iar utilizatorul va stabilii daca sunt sursa active sau inactive ). Ma intereseaza "colorarea circuituli" adica portiunile care sunt cu tensiune si o ordine de comezi ... in final o lista de comezi! Bolcajele le rezolv printr-o functie logica!
 2/14/2011 9:49:26 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
 Daniel Buduru wrote
Nu ai in arhiva schema.vcx Inchide vfp si arhiveaza inca o data.
schema.rar 
 2/14/2011 9:52:13 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
OK. Lasam deoparte ce reprezinta aplicatia si la ce foloseste.
Vrei sa colorezi circuitele.
Stabileste expresia care da culoarea pentru fievare obiect din container.
Expresia sa contina toate situatiile, nu partial
Pune expresia asta intro proprietate.
La orice modificare a circuitului, apeleaza o metoda care sa itereze prin obiectele din circuit si sa apeleze o metoda a obiectului care sa evalueze expresia si sa seteze culoarea.
Atat.
Daca vrei sa simulezi functionarea circuitului prin evenimente, nu poti sa o faci pastrand ceva carti in maneca. Ori pui toate conditiile, ori colorezi manual.

Daniel Buduru
 2/14/2011 2:11:57 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania) Modified By ji_ci  on 2/14/2011 3:28:32 PM)
Asta facema inainte la tentativa de proiect ... aveam un camp in tabela cu expresia pentru colorarea elementului! Ar insemna un regres .... mai ales ca e multa munca ... si cu cat sun mai multe expresii de introdus cu atat posibilitatea de a gresii este mai mare! Cum ai gandit tu cu bindevent() e super .... doar trebuie sa rezolv chestia cu sursele!
Singura treaba care o "simuleaza" programul e ca imi arata zonele cu tensiune, fara tensiune, legate la pamant sau scurtcircuitate! Dar totul porneste de la schimbarea pozitiei ON sau OFF de catre utilizator a unui singur element! De asemenea schema "colorarea" ei se mai poate modifica la schimbare unui elemnt de tip sursa pe ON sau OFF! Mai la urma o sa vreau ca utilizatorul sa aleaga optiunea de a aduce circuitul intr-o anumita stare .... si pe baza starii in care trebuie adus programul va executa actionari de ON OFF a mai multor elemente!
 2/14/2011 7:08:21 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Oare fisierul care l-am postat ulterior contine schema.vcx? Functioneaza?
 2/14/2011 7:53:49 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
Contine si schema.vcx, si functioneaza.
Daca vrei sa-l automatizezi, apuca-te si descrie cu vorbe elementele si functionarea.
Din ce zici tu, o sursa are un comutator intern, care o poate activa / dezactiva. Astea sunt "carti din maneca", atat vreme cat in schema ai elemente comutator, iar "sursa" era o legatura la o linie de tensiune ... Pune proprietati care s adefineasca elementul si functionarea lui - asta dupa ce explici functionarea cu vorbe.
Descrie fiecare tip de element, ce proprietati are si cum lucreaza, ce stari de conductivitate are.
Descrie cum se comporta elementul atunci cand tensiunea amonte difera de tensiunea aval, si asta in fiecare stare de conductivitate permisa pentru element.
Apoi ia un circuit si activeaza o sursa. Descrie tot cu vorbe cum se propaga tensiunea de la sursa incolo, si ce se produce im fiecare nod.
Apoi ia pe rand comutatoarele si descrie ce se intampla cand comutatorul este actionat - inchis sau deschis.
Pune si o sursa in aval si povesteste ce s eintampla in circuit, pe fiecare element, cand o conectezi. Ia si cazul cand sursa este la masa.
Apoi decupleaza unul din comutatoarele din circuit si povesteste ce tensiuni vor fi in aval si in amonte de el.
Dupa ce ai toate astea, poti trece la implementarea acestor functii in cod.
Fiecare situatie distincta va rebui tratata in cod - asta va genera acele IF si CASE care vor diferentia modul in care se comporta un anumit tip de element la acceasi actiune externa.
Problema nu este de scrierea codului sau cum si unde pui un bindevent, ci de ce anume vrei sa faca acest cod.
Scrierea direct a codului este o capcana.
Am pornit de la instantierea circuitului plecand de la tabela.
Am zis sa lasi detaliile de aspect la sfarsit - problema fiind sa incarci elementele si sa le plasezi in ordinea corecta.
Asta s-a rezolvat.
Descrie acum functionarea circuitului pentru toate situatiile si elementele pe care vrei sa le ai in el. Aici nu mai merge cu adaugatul pe urma - se ajunge doar la cod peticit.

Daniel Buduru
 2/14/2011 10:13:14 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania) Modified By ji_ci  on 2/14/2011 11:25:18 PM)
OK! O sa descriu pe schema trimisa mai demult! O sa exemplific pe intreaga schema!
Cazul1. Schema alimentata dintr-o sg sursa! Luam circ. 3 (nu al treilea)! Sageata respectiva reprezinta un element (racord ) care poate fi sursa pentru circuit si implicit pentru schema (sensul aratat de ea nu conteaza -- la toate elemntele racord sensul sagetii e la fel)! Deci sa zicem ca avem tensiune pe elementul racord (asta va decide utilizatorul ... ori printr-un dublu click pe element ori atasez un combo langa elementul respectiv cu sursa ON, respectiv sursa OFF ... dar mai simplu va fi dbclick)! Atunci tensiunea va circula spre liniile acelea orizontale 1 si 2, va trece de I si S2 al circ 3 (acestea fiind inchise), va ajunge pe linia 2, apoi la circ urmator (cel nenominalizat) va ajunge pana la I prin S2, apoi la circ 2 va ajunge tot pana la S2 acesta fiind OFF, apoi la circ 1 va ajunge pana la elementul racord al acestui circuit  prin S2, I si S3 care sunt pe ON! Deci circuitul de tensiune este intrerupt sau intregit de elementele de actionare S si I! Se poate observa ca pentru elementele din circ 3 (cel cu sursa) sursa este pe aval, iar pentru celelalte circuite sursa de tensiune vine pe amonte!
Cazul 2. Doua surse! Ramane sursa de la cazul 1 activa! Deci avem in continuare alimentata schema asa cum am descris-o mai sus! In plus mai adaugam la circ. 1 elementul racord sa fie pe sursa activa! Deci avem a doua sursa! Nu se modifica nimica in schema! Colorarea schemei ramane aceasi! Chiar daca tensiunile provin de la doua surse ... ele nu au nimca daca se intersescteaza! Nici nu ma intereseaza sa colorez altfel schema daca e alimentata cu doua surse! Ceea ce ma intereseaza e ca atunci cand utilizatorul de ex vrea sa faca inactiva sursa de pe circ 3 (descrisa la cazul 1) schema sa-mi ramana la fel alimentata cu tensiune din sursa de pe circ 1! Deci elementele din circuite trebuie sa memoreze sursele pentru a putea preciza daca sunt cu tensiune sau fara tensiune in cazul in care dispare una dintre ele!
La fel fiecare element racord al circuitelor poate sa-mi fie sursa activa! Si pot modifica calea de curent (de tensiune) prin intermediul elementelor S si I. De ex la cazul 2 daca la circuitul nenominalizat pun pe ON I si S1 am dat tensiune pe linia orizontala 1 si poi mai departe pana la I al circ 2 prin S1 si pana la S1 al celorlalte circuite!
Daca nu am fost destul de clar revin cu detalii! Am sa descriu apoi si celelalte stari ... legat la pamant si scc

PS Unde as putea gasi documentatii privind standardizarea sau metode conventionale (poate nu folosesc termenii corecti) de notare a variabilelor, parametrilor ...
 2/15/2011 12:08:32 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A) Modified By Daniel Buduru  on 2/15/2011 1:10:06 AM)
Bun.
Deci stii cum se comporta in fiecare situatie. Mai bine zis, cum ai vrea sa se comporte ...
Descrierea nu o faci pentru mine, ci pentru tine.
Acum implementeaza asta in cod.

Variabilele se denumesc astfel:
vizibilitate: l=locala, p=privata, g=globala (publica), t=parametru
tip: l=logical, c=caracter, n=numeric, u sau v = tip nedefinit

Proprietatile pot fi prefixate cu tipul:
nNumeric, cString, lLogic ...

Nu exista nici un fel de constrangere la denumirea variabilelor, campurilor, proprietatilor si metodelor. Utilizarea prefixelor cu vizibilitatea si tipul usureaza intelegerea si depanarea codului.
Numele lungi utiilizate frecvent ajung sa fie deranjante la tastat ...


Daniel Buduru
 2/15/2011 9:01:06 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Bineinteles ca nu stiu! Oricum cred ca tot bindevent() e solutia! Dar merita sa contiuni cu sursaamonte, sursaaval? Sau ar trebuii proprietatiile sursaamonte, sursaaval sa fie numerice si sa contorizeze nr de surse a elementului in amonte, respectiv aval?
 2/15/2011 10:11:40 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
:) Am reusit cu contorizarea surselor pe element! Doar pe un circuit! Dar cum extind acuma problema la schema?
 2/15/2011 10:42:22 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
Bun. Deci ai vazut singur ca ce ai descris ca functionare e doar o expunere de dorinte ...

Ca sa modelezi functionarea circuitului ai doua variante:
1. Pentru fiecare element stabilesti expresiile care dau tensiunea in punctele de racordare a elementului in circuit, apoi la fiecare modificare a configuratiei reevaluezi expresiile. Poti crea aceste expresii in mod dinamic, la instantierea circuitului.

2. Pornind de la sursa, iterezi prin elemente si stabilesti valorile tensiunii in punctele de racordare a fiecarui element.

Problema este determinarea tensiunii nodului. In momentul in care un comutator conectat la nod stabileste valoarea tensiunii la 1 pe iesirea sa, nu inseamna automat ca nodul poate lua aceasta valoare. Pot exista ramuri ale nodului conectate la tensiune 0, si asta inseamna scurt-circuit.
La fel, daca un comutator este pus pe off, asta nu inseamna automat tensiune "in aer" in nodul la care este conectat - nodul poate fi conectat prin alte ramuri la 1 sau la 0.
Deci, stabilestet-ti un algoritm dupa care determini tensiunea nodului - aceeasi pentru toate ramurile, sau "arzi" nodul.
Daca incerci sa stabilesti tensiunea nodului evaluand tensiunile aval sau amonte ale elementelor conectate la nod, poti avea cazul in care tensiunea elementului pe racordul catre nod este, sa zicem, 1, iar tensiunea a altui element conectat la acelasi nod este 0. Ca sa determini daca ai scurt, trebuie sa determini cine a setat acel element pe 0 - nodul insusi, sau circuitul de dincolo de element.

Ce t-iam spus mai inainte cu explicarea cu vorbe nu era ce vrei tu de la circuit, ci cum evaluezi ce se intampla.
Pana acum te-ai limitat la expunerea a cat de complicat si imprevizibil poate fi circuitul tau, si cat de aleator il poate modifica utilizatorul.

Ia circuitul si actioneaza o sursa sau un comutator. Apoi scrie ce se intampla mai departe pe fiecare nod si element, ca urmare a acestei actiuni. Fa un flow-chart cu aceste actiuni. Asta va trebui sa implementezi in cod.

Daniel Buduru
 2/15/2011 11:03:24 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Da ... problema e ca am gandit totul pana acuma cu tensiunea cu 2 stari .T. sau .F.! O sa trec la 3 stari 0,1 si .null. ptr neconectat ... parca asa mi-ai spus intr-un post mai vechi!
 2/15/2011 8:34:38 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Mai pot face o expresie logica cu 0,1 si null? Pot folosi CASE la expresie? Care logica pentru care ai spus ca ce-i fara tensiune sa fie NULL! Ma gandesc ca nu intamplator! Scc sa aiba si el o valoare numerica?
 2/15/2011 9:23:27 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
Exista functia ICASE similara cu IIF.
Poti construi expresii logice cu orice tip de date:

lltensiune=(this.parent.s01.UAmonte=1 and this.parent.so1.stare='ON' ) OR (cast(this.parent.s02.UAmonte as logical) and this.parent.s02.stare=.T.)

Valoarea NULL are semnificatia "nici o valoare". Poti folosi si alta valoare pentru tensiunea "in aer", deci fara nici o valoare alocata. Ii poti da valoarea 3, sa zicem, si sa o tratezi ca null.
Null insa are un tratament special. Vezi functiile ISNULL() si NVL().
NULL nu este egal cu 0, nici cu .F. si nici macar cu NULL
? NULL=NULL &&returneaza NULL, nu .T.

Poti lucra si cu valori logice pentru tensiune, dar introduci si valoarea null. Vei avea .T., .F. si NULL.

Nu pot sa spun acum daca e mai avantajos sa lucrezi cu valori logice sau numerice. Doar dupa ce definitivezi algoritmul se poate evalua asta.
Daca se pune problema punerii la masa a liniei, cred ca e mai bine sa fie valori numerice si nu logice.

Cine e Scc?


Daniel Buduru
 2/15/2011 9:41:53 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
Scuze! Scc - scurtcircuit ... sa-i dau o valoare ... sau el se deduce prin punerea la masa a unui circuit cu tensiune? O sa vreau sa simulez si surtcircuite in sensul ca utilizatorul isi va alege un nod pe care il va pune la masa!
 2/15/2011 9:54:33 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Sa fac o clasa?
 (N/A)
 ji_ci wrote
Mai pot face o expresie logica cu 0,1 si null? Pot folosi CASE la expresie? Care logica pentru care ai spus ca ce-i fara tensiune sa fie NULL! Ma gandesc ca nu intamplator! Scc sa aiba si el o valoare numerica?


O sa-mi permit sa adaug la mesajul lui Daniel:

.NULL. inseamna "nu stiu". Din cauza asta are tendinta sa se propage in calcule si comparatii. Cat face "nu stiu cat" pe din doua? raspuns: nu stiu. Este mai mare "nu stiu cat" decat "nu stiu cat"? raspuns: nu stiu. Intelegi dilema? fiindca reprezinta absenta informatiei, nu poti sa faci nici un fel de calcule cu el.

Dar tocmai aceasta semnificatie a lui reprezinta marele lui avantaj. Sa-ti dau un exemplu: sa zicem ca am o lista cu oameni si varsta lor. Unii oameni mi-au zis varsta, altii (mai ales doamnele) au preferat sa nu. Eu ce pun in campul ala? 0? -3? 100? whatever? orice-as pune imi strica media de varsta, pentru ca alea SUNT VALORI. zero ESTE o valoare. Daca as avea un nou nascut si o doamna care nu si-a spus varsta, iar eu pun zero acolo, care-i diferenta dintre ei? nici una, evident. Ambii au zero in campul ala.

-----------------------
De-aia iti face Daniel capul mare (sincer, ma mir cum are atata rabdare, eu as fi clacat demult). Deja threadul a iesit din categoria "ajutor tehnic" - Daniel te invata sa gandesti si sa proiectezi. Zau, ar trebui sa-i dai o bere. Serios. Daca inveti lucrurile astea dupa aia nu mai conteaza in ce limbaj de programare vei lucra; sintaxa o invata orice prost. Dar lucrurile ASTEA, pe care ti le explica Daniel, crede-ma - mai putin de 10% din programatori le stapanesc cum trebuie.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/15/2011 10:09:08 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania) Modified By ji_ci  on 2/15/2011 11:12:15 PM)
Super explicatia ... asta vroiam! Acum imi daua sema cat de important e NULL! Problema e ca procesorul meu e cam greoi si eu vad lucrurile pe care mi le spune Daniel doar cand dau cu capul de ele ... el are o intuitie grozava si le vede din start (si pot sa zic ca mi-am dat seama ca pana acum habar n-am avut ce inseamna programarea cu adevarat)! Sincer mi-as dorii din toata inima sa pot da o bere si nu numai una! Nu am crezut sincer ca poti primii asa ajutor pe un forum si mai ales de la niste oameni care sunt convins ca sunt super ocupati! Cred ca la finalul fiecarui post al meu ar trebuii sa apara ceva de genul ...


-----------------------------------
Multumesc din suflet oameni buni! :)
 2/15/2011 10:22:45 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Sa fac o clasa?
 (N/A)
Nu poti da o valoare de tensiune unui scc. E un fenomen, nu o valoare de tensiune. Daca un element are doua borne, la una din ele are tensiunea 1 iar la cealalta tensiunea 0 (0, adica masa, nu .NULL. :) ), poti sa ai un scurt-circuit sau nu, dupa cum e construit elementul. Daca elementul este infasurarea primara a unui traf, situatia este normala. Daca este un comutator sau un nod, este scc. Deci daca este sau nu scurtcircuitabil este o caracteristica a elementului - o proprietate. Poti sa-i zici cum vrei, e preferabil sa fie de tip logic, iar valoarea implicita sa fie .F. Asta va evita comportarea anormala in cazul in care se uita setarea proprietatii.
Pune doua tensiuni pe element, UAmonte si UAval.
Daca tensiunea se propaga din amonte in aval, se va seta UAmonte de catre elementul din amonte, apoi se evalueaza starea elementului. Daca UAmonte este 1 iar UAaval este 0, iar starea elementului e off, nu se intampla nimic. Daca treci in starea ON, ar trebui s apropagi tensiunea UAmonte in UAval. Acum poti sa vezi utilitatea valorii NULL. Daca uAval e null, ii poti da valoarea uamonte. Daca e 0 iar elementul nu accepta diferenta de tensiune amonte-aval, ai scc. In acest caz, "arzi" elementul.
Studiaza cazul in care un comutator e conectat la un nod ramificat si prezinta valoarea 1 pe element.uaval . Ce valoare de tensiune va fi aplicata pe toate elementele conectate la nod, fie in amonte, fie in aval? Dupa ce stabilesti acest algoritm, vei fi rezolvat cam 70% din aplicatie ...

Daniel Buduru
 2/15/2011 10:38:34 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Sa fac o clasa?
 (N/A)
 ji_ci wrote
[...] Nu am crezut sincer ca poti primii asa ajutor pe un forum [...]


Eu m-am plimbat pe multe forumuri pana acum (in general citesc o gramada de informatie, de la noi si de afara). Din punct de vedere al calitatii raspunsurilor si al promtitudinii, forumul asta e cel mai bun in limba romana. N-o sa gasesti altul mai bun :) Fara falsa modestie, asta e situatia. :)

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/15/2011 11:45:39 PM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
 Grigore Dolghin wrote
 ji_ci wrote
[...] Nu am crezut sincer ca poti primii asa ajutor pe un forum [...]


Eu m-am plimbat pe multe forumuri pana acum (in general citesc o gramada de informatie, de la noi si de afara). Din punct de vedere al calitatii raspunsurilor si al promtitudinii, forumul asta e cel mai bun in limba romana. N-o sa gasesti altul mai bun :) Fara falsa modestie, asta e situatia. :)


Eu sincer sa fiu dupa ce am gasit acest forum ... nici n-am mai cautat pe alte forumuri! M-am convins ca aici gasesc orice raspuns! Si apeland la search in site gasesti o gramada de subiecte utile! Ieri am urmarit atestatul cu Biblioteca a lui Marius! Pai acolo Daniel face curs de Vfp ... si nu numai!
 2/16/2011 1:24:21 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Sa fac o clasa?
 (N/A)
Mdap. :)

Acum pasul urmator e sa facem un forum de .NET cel putin la fel de serios. Problema e ca daca vrei ca forumul sa fie viabil, in spatele lui trebuie sa fie 2-3 oameni dedicati si competenti (la fel ca si in cazul acestui forum, de altfel). Problema e ca eu, unul, inca nu sunt suficient de competent in .NET ca sa pot da solutii ca in VFP. Mai sap. ;)

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/16/2011 9:32:45 AM
User is offlineji_ci
191 posts
5th


Re: Sa fac o clasa?
 (Romania)
 Grigore Dolghin wrote
Mdap. :)

Acum pasul urmator e sa facem un forum de .NET cel putin la fel de serios. Problema e ca daca vrei ca forumul sa fie viabil, in spatele lui trebuie sa fie 2-3 oameni dedicati si competenti (la fel ca si in cazul acestui forum, de altfel). Problema e ca eu, unul, inca nu sunt suficient de competent in .NET ca sa pot da solutii ca in VFP. Mai sap. ;)


Sunt convins ca forumul de .NET se va dezvolta treptat pe masura ce vor trece tot mai multi la programarea pe .NET! Atunci vor aparea si oamenii (sau se vor specializa actualii :)) care sa dea solutii! 
  Visual FoxPro  Clase - VCX si PRG  Sa fac o clasa?...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement