Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
SISTEM DISTRIBUIT PENTRU MONITORIZAREA PARAMETRILOR ANALOGICI CU AJUTORUL INTERFETEI AX 5411
1.Obiectivele lucrarii
Prezentarea posibilitatilor de utilizare a retelei Internet in aplicatii industriale;
Familiarizarea cu familia de protocoale TCP/IP;
Insusirea modului de utilizare a componentei VCL TTCP ;
Familiarizarea cu utilizarea unui program de monitorizare distribuita (via Internet) a parametrilor analogici achizitionati prin intermediul interfetei AX5411;
Elaborarea si implementarea unui program in C++Builder pentru transmiterea unui mesaj utilizand protocolul TCP/IP .
2. aparatura si suporturile utilizate:
PC in configuratia unitate centrala, monitor, tastatura, mouse;
Precizarile din prezentul indrumar;
Manualul utilizatorului pentru interfata AX 5411 (sectiunile referitoare la descrierea interfetei si prezentarea functiilor porturilor de intrare - iesire;
Manuale de prezentare a mediului C++Builder si Andrew S. Tanenbaum , Retele de calculatoare Editura Computer Press Agora 1998.
3. Breviar
3.1. Posibilitati de utilizare a retelei Internet in aplicatii industriale
Actuala dezvoltare a retelei Internet corelata cu reducerea costurilor de acces face ca acest mediu sa devina deosebit de interesant pentru transferul de date in cadrul aplicatiilor de monitorizare si conducerea a proceselor. Aceasta noua utilizare presupune extinderea Internet-ului de la conectarea computer - computer la conectarea computer - echipament de automatizare (EA) sau echipament de automatizare - echipament de automatizare.
Teoretic orice EA poate fi dotat cu microprocesor , o adresa IP si un mic WEB Server. Aceste dotari permit ca orice WEB Browser sa poata monitoriza EA astfel conectat la Internet si sa-i controleze functiile programate in microprocesor. Pentru astfel de aplicatii a fost introdus conceptul de retea industriala (Industrial Network) definita ca o retea ce leaga echipamente ( cu alte caracteristici decat cele ale unui calculator obisnuit) in scopul realizarii unei platforme locale de interconectare si control inteligent al acestora.
Aparitia retelelor industriale permite extinderea filozofiei Internet-ului de la "conectare oricine - la - oricine " la "conectare oricine - la - orice ". Cu alte cuvinte oameni vor putea comunica de la distanta atat cu oameni cat si cu obiecte inteligente.
Cele mai cunoscute tipuri de retele industriale sunt urmatoarele:
o magistrala pentru traductoare si elemente de executie ( Sensor and actuator bus) , utilizata pentru a lega aceste echipamente periferice de proces la calculatoare sau microcontrolere;
o retea de camp ( Fieldbus network) utilizata pentru a conecta in retea EA care comunica unele cu altele distribuit si la momente precizate. Retelele Fieldbus sunt construite intr-o ierarhie master - slave in care master-ul interogheaza ciclic nodurile slave si autorizeaza comunicarea in cazul in care exista solicitari;
o magistrala de control (Control bus) este utilizata pentru a conecta intre ele statii dotate cu microcontrolere sau chiar calculatoare .
Principalele componente ale unei retele industriale sunt :
o repeater - echipament destinat refacerii semnalului electric in scopul transmiterii acestuia intre nodurile retelei. Asemenea dispozitive mai pot fi utilizate si pentru interconectarea diverselor tipuri de cabluri ( coaxial , twisted pair , fibra optica);
o router - echipament destinat comutarii directiei de comunicare intre diverse segmente ale retelei ( definind prin aceasta traiectoria informatiei );
o bridge - permite conectarea a doua sectii de retea cu caracteristici electrice si protocoale diferite;
o gateway - echipament similar cu bridge care permite comunicare intre protocoale si magistrale diferite prin intermediul unei resurse comune.
Topologia unei retele industriale defineste forma retelei si numarul de noduri care se interconecteaza. Cele mai raspandite topologii sunt inel , stea si arbore (ring, star, tree).
Topologia ring conecteaza nodurile secvential formand un cerc. Comunicarea in cadrul acestui cerc este secventiala orice nod avand un acelasi producator, respectiv consumator de informatie. Dezavantajul acestui tip de retea este ca nu se pot adauga noduri noi cu reteaua in functiune.
Topologia star presupune existenta unui punct de control central (uzual un hub ) cu mai multe ramuri (care pot fi la randul lor retele cu mai multe noduri) ce radiaza de la acesta. Principalul avantaj oferit de aceasta topologie este ca se pot adauga noi noduri fara a se opri reteaua.
Topologia tree reprezinta o combinatie a celor doua tipuri de retele mentionate anterior.
3.2. Protocoale TCP / IP
Familia de protocoale TCP/IP se incadreaza in categoria protocoalelor dezvoltate pe baza modelului standard ISO-OSI (International Standard Organization - Open Systems Interconnection), care va fi denumit in continuare OSI. Modelul OSI cuprinde sapte niveluri si anume: fizic, legatura de date, retea, transport, sesiune, prezentare, aplicatie, ale caror trasaturi specifice se prezinta pe scurt in cele ce urmeaza:
nivelul fizic se ocupa cu transmiterea corecta a bitilor printr-un canal de comunicatie;
nivelul legatura de date transforma un mijloc oarecare de transmisie intr-o linie disponibila nivelului retea fara erori de transmisie nedetectate ;
nivelul retea se ocupa cu controlul functionarii subretelei intre doi parteneri;
nivelul transport accepta date de la nivelul sesiune , le descompune in unitati mai mici si le transmite nivelului retea;
nivelul sesiune permite utilizatorilor de pe masini diferite sa stabileasca intre ei sesiuni de comunicare ;
nivelul prezentare se ocupa in primul rand de sintaxa si semantica informatiilor transmise;
nivelul aplicatie permite transferul de fisiere diferite intre terminale diferite.
Figura 7.1 prezinta un exemplu de transmitere a datelor folosind modelul OSI pentru situatia in care procesul emitator vrea sa transmita niste date procesului receptor. Emitatorul furnizeaza datele nivelului aplicatie care ataseaza datelor antetul aplicatiei AH si furnizeaza obiectul rezultat nivelului prezentare. Acesta poate modifica acest obiect in diferite moduri atasandui in final antetul PH dupa care il transmite nivelului sesiune. Procesul se repeta pana cand datele ajung efectiv la nivelul fizic unde vor fi trimise efectiv catre masina receptoare. Pe respectiva masina diversele antete sunt eliminate succesiv , pe masura ce mesajul se propaga prin niveluri in sus, pana mesajul ajunge la procesul destinatie. Desi in figura 7.1 transmiterea datelor este verticala , fiecare nivel este programa ca si cum transmiterea ar fi orizontala. De exemplu , atunci cand nivelul transport - emitator primeste un mesaj de la nivelul sesiune el ii ataseaza un antet de trasnport si il expediaza nivelului transport - destinatie. Din punctul sau de vedere faptul ca in realitate trebuie sa paseze mesajul nivelului retea de pe masina sa proprie este un detaliu lipsit de importanta.
Proces emitator Proces receptor |
Caracteristica principala a modelului de referinta TCP/IP (Transmission Control Protocol / Internet Protocol) consta in posibilitatea de a interconecta fara probleme mai multe tipuri de retele. Acest model contine numai patru din cele sapte niveluri ale modelului OSI , aspect evidentiat in figura 7.2.
|
Nivelul internet reprezinta axul intregii arhitecturi TCP/IP. Rolul sau este de a permite gazdelor sa emita pachete in orice retea si a face ca aceste pachete sa circule independent pana la destinatie. Termenul internet este folosit intr-un sens generic chiar daca acest nivel este prezent si in Internet. Nivelul internet defineste un format de pachet si un protocol numit IP(Internet Protocol). Sarcina nivelului internet este sa furnizeze pachete IP catre destinatie.
|
O adresa IP folosita de catre modelul TCP/IP este un numar intreg pozitiv reprezentat pe 32 de biti cu structura prezentata in figura 7.3.
Numarul de biti rezervati pentru fiecare camp depind de clasa si sunt evidentiati in tabelul 7.1.
Tabelul 7.1
Clasa |
Numar de biti |
||
Campul Clasa |
Campul Retea |
Campul Host |
|
A (0 . 127) | |||
B (128 . 191) | |||
C (192 . 223) |
Clasa de adresa si campul de retea este atribuit de consortiul NIC(Network Information Center) iar administratori retelelor gestioneaza campul host. Reprezentarea interna a unei adrese IP este un sir de patru 32 de biti plasati in patru octeti consecutivi. Reprezentarea externa a unei astfel de adrese se face prin patru numere intregi separate prin caracterul ".", cele patru numere indicand in ordine valorile celor patru octeti. In tabelul 7.1 se prezinta si posibilitatea de identificarea a clasei dupa valoarea din primul octet al reprezentarii externe.
Exemplu de adresa de clasa B :
- reprezentare interna : 10 10111111011100 0000111011101110 ;
- reprezentare externa : 175.220.14.238
Nivelul transport este proiectat astfel incat sa permita conversatii intre entitatile pereche implicate in transfer. Practic acest nivel implementeaza protocolul TCP care este un protocol capat la capat care fragmenteaza fluxul de octeti in mesaje discrete si plaseaza fiecare mesaj nivelului internet. La destinatie procesul TCP receptor reasambleaza mesajele primite intr-un flux de iesire. TCP realizeaza totodata controlul fluxului rezolvand problemele care ar putea aparea datorita vitezelor diferite la care lucreaza cei doi parteneri implicati intr-un transfer.
Nivelul aplicatie contine toate rotocoalele de nivel inalt. Primele protocoale de acest gen includea terminalul virtual (TELNET) , transferul de fisiere (FTP) si posta electronica (SMTP). Protocolul TELNET permite unui utilizator de pe o masina sa se conecteze si sa lucreze pe o masina aflata la distanta. Protocolul FTP pune la dispozitie o modalitatea de a transfera fisiere de pe o masina pe alta. Protocolul SMTP permite tot transferul de fisiere , insa in cadrul unui serviciu specializat de posta electronica. Pe parcursul anilor acestora li sau adaugat alte protocoale cum ar fi : Serviciul Numelor de Domenii ( DNS - Domain Name Service ) care asigura corespondenta dintre numele gazdelor si adresele retelelor , HTTP ( Hiper Text Transfer Protocol ) pentru aducerea paginilor de pe WEB si altele.
Nivelul gazda - retea este nivelul utilizatorului despre care modelul TCP / IP nu face precizarii deosebite. Se mentioneaza doar necesitatea conectarii gazdei la retea pentru a putea transmite pachete IP folosind un anumit protocol. Acest protocol nu este definit , el variind functie de gazda si functie de retea.
o Insusirea modului de utilizare a componentei VCL TTCP
Componenta TTCP se gaseste in Component Palette (pagina Internet) si implementeaza protocolul TCP/IP. Cu ajutorul acestei componente poate fi transmisa informatie intre oricare doua calculatoare cuplate la reteaua Internet ( de exemplu informatia pe care dorim sa-o transmitem fiind valorile unor variabile). In figura 7.4 este reprezentat obiectul TTCP asa cum se gaseste el in pagina Internet.
Fig. 7.4.
Aducerea pe forma se gface in conformitate cu preciarile din lucrarea 1. In figura 7.5 este reprezentat obiectul TTCP asa cum se gaseste el pe forma.
Fig.7.5.
Acest obiect ca si obiectul Timer nu are corespondent grafic in executiei programului. Tabelul cu proprietati si evenimente sunt prezentate in figura
Fig 7.6.
Proprietatea Local Port specifica portul pe care il va folosi componenta TTCP( pentru navigare prin WEB se foloseste portul 80);
Proprietatea RemoteHost specifica adresa IP sau numele calculatorului la care se va conecta;
Proprietatea RemotePort specifica portul calculatorului la care se va conecta;
Proprietatea State specifica starea obiectului TTCP. Ea poate avea urmatoarele valori precizate in tabelul 7.2
Tabelul 7.2
sckClosed= 0 |
Conexiune inchisa |
sckOpen = 1 |
Conexiune deschisa |
sckListening = 2 |
Asculta / Asteapta |
sckConnectionPending = 3 |
In timpul conectarii |
sckResolvingHost = 4 |
In asteptarea semnalului de la Host |
sckHostResolved = 5 |
Semnal primit de la Host |
sckConnecting = 6 |
Are loc conectarea |
sckConnected = 7 |
Este conectat |
sckClosing = 8 |
Conectare inchisa |
sckError = 9 |
Eroare |
Metoda Accept este folosita pentru a accepta o conexiune care vine , atunci se genereaza evenimentul ConnectionRequest;
Metoda Close inchide conexiunea;
Metoda Connect initiaza o conexiune catre calculatorul aflat la o distanta oarecare;
Metoda GetData primeste date de la calculatorul de la care sa cerut conexiunea;
Metoda SendData transmite date la calculatorul cu care sa stabilit conexiunea;
Evenimentul OnDataArrival este activat cand apar date noi;
Evenimentul OnConnectionRequest este activat atunci cand apare o noua cerere de conectare;
Evenimentul OnConnect este activat cand conexiunea a fost stabilita cu succes;
Evenimentul OnClose este activat cand a fost inchisa conexiunea;
Evenimentul OnError este activat atunci cand apare o eroare (eroare aparuta in timpul comunicarii , etc) ;
Observatii :
Pentru metodele GetData si SendData se foloseste tipul de date Variant care permite utilizarea oricarui tip de date (intreg , real, sir, . ).
Familiarizarea cu utilizarea unui program de monitorizare distribuita (via Internet) a parametrilor analogici achizitionati prin intermediul interfetei AX5411
Pentru a realiza un sistem distribuit de monitorizare este necesar un calculator echipat cu o placa de achizitie , si una de retea pentru a putea fi conectat la Internet. Acest calculator are rolul de server , la el conectandu-se celelalte calculatoare (clienti) care vor sa obtina date achizitionate de la acesta. Acest calculator este un concentrator de date , el facand achizitia mai multor parametri (semnale) si oferind altora posibilitatea de a cunoaste acesti parametri.
Pentru cazul aplicatiei de monitorizare exista doua programe :
programul Server , care are rolul de concentrator de date;
mai multe aplicatii Client care se vor conecta la aplicatia Server.
Aplicatia Server realizeaza achizitia a trei marimi de proces ( presiune , nivel, debit ) masurate prin intermediul interfetei industriale AX5411 si trebuie sa deserveasca aplicatiile Client ce pot fi lansate in executie pe mai multe calculatoare , conectate si acestea la reteaua Internet.
Fiecare aplicatie Client trebuie sa isi anunte prezenta pentru a fi luata in considerare de aplicatia Server.
Astfel aplicatia Client isi trimite propria adresa IP catre aplicatia Server ( adresa IP a statiei ce gazduieste aplicatia Server este cunoscuta).
La receptionarea unei adrese IP aplicatia Server adauga respectiva adresa intr-o stiva de adrese, datele fiind transmise periodic catre fiecare adresa din stiva , in ordinea pozitiilor ocupate in stiva.
La deconectarea unei aplicatii Client acesta isi trimite din nou adresa IP catre Server insotita de un caracter suplimentar "#". Intregul sir de caractere (adresa+#) este de interpretat ca o cerere de deconectare, adresa respectiva fiind eliminata din stiva de adrese.
Cele trei valori masurate sunt trimise catre aplicatiile client sub forma unui sir de caractere in care s-au inserat doua caractere suplimentare "<" si ">" pentru a delimita grupurile de caractere corespunzatoare celor trei valori.
Conversia din numar real in sir de caractere este realizata de aplicatia Server , iar conversia inversa de catre aplicatia Client.
In continuare se reiau caracteristicile subsistemelor intrari si iesiri numerice ale sistemului de interfata AX5411. Pentru detalii privind caracteristicile acestui sistem , vezi precizarile din lucrarea nr. 4.
Subsistemul intrarilor numerice
Numar de intrari 8 (DI0.DI7);
Tip semnal acceptat compatibil TTL.
Subsistemul iesirilor numerice
Numar de iesiri 8 (DO0.DO7);
Tip semnal compatibil TTL.
3.2. Programarea SIN si SEN prin operarea porturilor interfetei
AX 5411
Dupa cum se stie din lucrarea numarul 4, adresa portului de baza (IOPORT) pentru interfata AX5411este 0x300 (hexa). Incepand cu aceasta adresa, interfata utilizeaza 16 adrese consecutive care constituie spatiul de intrare - iesire (I/E) al interfetei. In tabelul 6.1 se prezinta porturile aferente SIN si SEN. Reamintim ca asupra unui port se pot efectua operatii de citire (R = Read in tabelul 6.1) respectiv de inscriere (W = Write in tabelul 6.1).
|
Tabelul 6.1
Semnificatiile porturilor de adresare pentru SIN si SEN ale interfetei AX 5411
LOCATIE |
FUNCTIE |
TIP |
adresa de baza + 3 |
Digital Input - SIN |
R |
adresa de baza + 3 |
Digital Output - SEN |
W |
In continuare se prezinta succint semnificatiile si modul de operare a portului utilizat de SIN si de SEN.
Portul adresa de baza+3, la citire are structura din figura 6.2. In bitii IP0 - IP7 se inscriu cei 8 biti care corespund intrarilor numerice DI0 - DI7.
Portul adresa de baza+3, la scriere are structura din figura 6.3. In bitii OP0 - OP7 se inscriu cei 8 biti care vor fi transmisi la iesirile numerice DO0 - DO7.
Observatii
Scrierea intr-un port se face cu instructiunea axOutp, care are sintaxa axOutp(port,val), in care port reprezinta adresa portului, iar val variabila care contine valoarea ce se va transfera.
Citirea unui port se face cu instructiunea axInp, care are sintaxa val=axInp(port), in care port reprezinta adresa portului, iar val variabila care contine valoarea ce se preia prin citire.
3. Comutatoarele K0 . K3 ale modulului MTSN conecteaza intrarile DI0 - DI3 la masa (inchis - intrare zero) sau le lasa in aer (deschis - intrare 1).
In continuare se prezinta codurile sursa al functiilor Achiz_N si Gen_N, care permit achizitia / generarea unui octet de pe / pe portul IOPORT +3.
//Functia achizitie intrari numerice
int Achiz_N()
//Functia generare iesiri numerice
void Gen_N(int n) // n = octetul care se genereaza
Se prezinta mai jos codul sursa al programului P1 care realizeaza urmatoarele:
achizitia canalelor numerice DI0 - DI3 (la inchiderea unuia din comutatoarele K0 - K3) butonul aferent se activeaza ;
la apasarea unui buton activat se actioneaza iesirea numerica respectiva (concretizata in aprinderea LED-ului aferent de pe panoul MTSN ).
//Program P1 pentru utilizarea SIN si SEN ale interfetei AX5411
#include <vclvcl.h>
#pragma hdrstop
#include 'Unit1P1.h'
#include 'axdrv.h'
#define IOPORT 0x300
#pragma resource '*.dfm'
int nach=0;
unsigned char ngen=0;
TForm1 *Form1;
//Functia achizitie intrari numerice
int Achizitie_N()
//Functia generare iesiri numerice
void Gen_N(int n)
// n = numarul care se genereaza
__fastcall TForm1::TForm1(TComponent* Owner) //Constructor
: TForm(Owner)
void __fastcall TForm1::Timer1Timer(TObject *Sender) //Timer
if ((nach&2)==2)
Button2->Enabled=true;
else
if ((nach&4)==4)
Button3->Enabled=true;
else
if ((nach&8)==8)
Button4->Enabled=true;
else
void __fastcall TForm1::Button5Click(TObject *Sender) //Buton5
void __fastcall TForm1::Button1Click(TObject *Sender) //Buton1
void __fastcall TForm1::Button2Click(TObject *Sender) //Buton2
void __fastcall TForm1::Button3Click(TObject *Sender) //Buton3
void __fastcall TForm1::Button4Click(TObject *Sender) //Buton4
B. Desfasurarea lucrarii
a) Se realizeaza montajul din figura 6.4 in care subsistemele SIN (prin canalele DI0 - DI3 conectoarele 28,30,32,34) si SEN (prin canalele DO0 -DO3 - conectoarele 27,29,31,33) se conecteaza la modulul MTSN.
b) Se alimenteaza sistemul cu tensiune.
c) Se lanseaza mediul C++ Builder (dublu click pe icon-ul corespunzator din desktop) .
c) Se selecteaza din Main Menu optiunea File si apoi OpenProject urmat de calea D:DIDACTICSMP1905 (a sau b)LUC6Project1.mak.
e) Se executa click pe butonul Run din Toolbar (aceasta actiune este urmata de lansarea in executie a programului P1 al carui text sursa este prezentat in breviar);
f) Se examineaza in programul P1 modul de lucru cu functiile Achiz_N si Gen_N .
g) Se elaboreaza programul P2 pentru afisarea starii intrarilor numerice DI0 - DI3 prin intermediul unui digit grafic.
Fig. 6.5.
Pe forma programului (Form1) in Caption-ul careia se va afisa textul "Laborator Informatica Industriala" sunt dispuse urmatoarele obiecte reprezentate in figura 6.5:
un buton (Buton 1) iesirea din program (Caption Exit);
cinci casete de editare (Edit1, 2, 3, 4,5) cu urmatoarele functii:
Edit1 - inscrierea valorii in zecimal corespunzatoare starii celor 4 intrari numerice DI0 - DI4;
Edit2 - inscrierea starii intrari numerice DI3 ;
Edit3 - inscrierea starii intrari numerice DI2 ;
Edit4 - inscrierea starii intrari numerice DI1;
Edit5 - inscrierea starii intrari numerice DI0;
5 obiecte tip TImage (Image1,2,3,4,5) cu urmatoarele functii:
Image 1 - in care se va incarca imaginea corespunzatoare digitului care trebuie afisat (se realizeaza cu proprietatea LoadFromFile a obiectului de tip Timage- vezi Lucrarea 4) ;
Image 2,3,4,5 - in care se vor incarca imaginile corespunzatoare starii comutatoarelor K3, K2, K1; K0 (se realizeaza cu proprietatea LoadFromFile a obiectului de tip Timage- vezi Lucrarea 4);
4 obiecte de tip eticheta Label (Label 1,2,3,4) in care se vor afisa simbolurile intrarilor numerice (DI3 - DI0);
un obiect Timer (Timer1), cu Interval=100 ms pentru intervalul de achizitie a intrarilor numerice.
Observatii:
pentru realizarea programului P2 se vor utiliza module din programul P1;
pentru afisare starii comutatoarelor se gasesc in directorul curent imaginile inchis.bmp , deschis.bmp, iar pentru afisare digitului se gasesc imaginile cu numele 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f.bmp reprezentand starile posibile ale digitului.
in figura 6.5 se prezinta o imagine obtinuta la rularea programului P2 (forma executabila a acestui program - P2.exe - se gaseste in directorul de lucru al subgrupei).
Fig. 6.5.
h) Se elaboreaza programul P3 pentru afisarea starii iesirilor numerice DO0 - DO6) pe un element cu 7 segmente (conectarea SEN la MTSN se realizeaza conform schemei din figura 6.6).
Prin program se va realiza comanda digit-ului (pentru a a afisa 15 stari - 0,1,2,3.4,5,6,7,8,9,A,b,C,d,E,F) in trei maniere:
prin actionarea unui obiect de tip TrackBar;
prin actionarea a 16 butoane;
in regim de numarare continua.
Pe ecran se va afisa intr-un obiect Timage digit-ul grafic, utilizat in programul P2.
Pe forma Form1 a programului vor aparea obiectele evidentiate in figura 6.7 :
un obiect Timer (Timer1), cu Interval=100 ms pentru intervalul de generare a iesirilor numerice;
o caseta de editare Edit1 pentru afisarea echivalentului zecimal al iesirilor numerice care se genereaza;
un obiect de tip TrackBar, TrackBar1 ce se utilizeaza pentru a genera un numar intre 0 - 15 ;
20 de obiecte de tip Button cu urmatoarele functii:
Button1 activeaza TarckBar1 pentru comanda digit-ului (regimul 1);
Button2 activeaza cele 16 butoane, pentru comanda digit-ului (regimul 2);
Button3 activeaza regim numarare pentru comanda digit-ului (regimul 3);
Button4 iesire din program;
Button 5-20 pentru comanda digit-ului (regimul 2);
Un obiect de tip Timage , TImage1 in care se va incarca digitul grafic ce va reflecta combinatia afisata pe digit-ul fizic
Fig.6.7.
In directorul subgrupei, se gaseste forma executabila a programului P3, care va fi rulat inaintea inceperii lucrarii.
i) Lucrarea se va considera incheiata in momentul in care programele P2 si P3 sunt functionale. Referatul va cuprinde principalele idei din breviar referitoare la SIN si SEN precum si forma sursa a unit-urilor programelor P2 si P3.
Copyright © 2024 - Toate drepturile rezervate