INTRODUCERE……………………………………………………………………………………….3 STUDIUL… [311267]
CUPRINS
INTRODUCERE……………………………………………………………………………………….3
STUDIUL BIBLIOGRAFIC……………………………………………………………………….4
Procesul de achiziție a datelor…………………………………………………………………4
Tehnicile de filtrare a datelor………………………………………………………………….7
Automatizarea proceselor……………………………………………………………………….9
[anonimizat]…………………………………..10
Tehnicile de protecție și amplificare……………………………………………………….13
Sistemul de achiziții de date………………………………………………………………….16
Componentele principale planificate HW și SW………………………………………17
PROIECTAREA SISTEMULUI DE ACHIZIȚII DE DATE………………………….19
Planificarea activităților………………………………………………………………………..19
Structura unei singure intrări analogice…………………………………………………..19
Principiul de interacțiune dintre intrări și procesor……………………………………19
Schema electrică de conectare a componentei ADS1248…………………………..20
Stocarea configurărilor senzorilor în memorie………………………………………….21
Sistemul de achiziții de date…………………………………………………………………..21
Informații succinte cu privire la componentele utilizate…………………………….23
[anonimizat]………………………………28
Studiul lucrărilor efectuate până în prezent………………………………………………28
Însușirea metodelor de conectare a senzorilor în funcție de tipul lor……………29
Crearea proiectului inițial în STM32CubeMX………………………………………….29
Re-/Scrierea modulelor software în baza necesităților curente……………………32
[anonimizat]……………..40
Testarea dispozitivului și corectarea erorilor…………………………………………….45
ARGUMENTAREA ECONOMICĂ……………………………………………………….53
Actualitatea temei și planificarea lucrărilor de executare a proiectului…………53
Analiza SWOT……………………………………………………………………………………..54
Planificarea elaborării sistemului de achiziții de date…………………………………56
Calculul estimativ al cheltuielilor de elaborare a dispozitivului…………………..58
Prețul de piață a produsului final……………………………………………………………..65
Evaluarea eficienței economice a proiectului…………………………………………….65
Concluzie………………………………………………………………………………………………………68
Bibliografie……………………………………………………………………………………………………69
[anonimizat] a electronicii a început cu invenția diodelor cu vid de către John Ambrose Fleming în anul 1897, după care au urmat triodele cu vid, elaborate de Lee De Forest pentru amplificarea semnalelor electrice.
Eventual s-au inventat tranzistorii cu joncțiune în 1948. Utilizarea materialelor semiconductore din germaniu (Ge) și siliciu (Si) a permis acestor componente să primească o popularitate înaltă în utilizararea lor în diferite circuite electronice.
Următorii ani au fost martorii invenției circuitelor integrate (IC) care au schimbat esențial natura circuitelor electronice, astfel că întregul circuit a fost integrat pe un singur chip, rezultând în:
cost redus;
dimensiune redusă;
greutate redusă
a dispozitivelor electronice. În anii ce au urmat, au fost introduse IC cu mii de componente pe un singur chip, astfel deosebindu-se IC cu scară de integrare:
îngustă (SSI), până la 100 componente/chip;
medie (MSI), cca 100 ÷ 1000 componente/chip;
largă (LSI), cca 1000 ÷ 10000 componente/chip;
foarte largă (VLSI), 10000 ÷ 1000000 componente/chip.
ultra largă (ULSI), peste 1000000 componente/chip.
Pe de altă parte, tranzistorii cu efect de câmp joncțiune poartă (JFET) și cei metal-oxid semiconductor (MOSFET) au continuat dezvoltarea IC prin îmbunătățirea procesului de proiectare a dispozitivelor și prin crearea unor tranzistori mai siguri și mai puternici.
Un pas important în continuarea dezvoltării circuitelor a fost dezvoltarea IC digitale care au schimbat arhitectura generală a dispozitivelor. IC digitale au fost dezvoltate prin aplicarea următoarelor tehnologii:
logica tranzistor-tranzistor (TTL);
logica cu emitor cuplat (ECL);
logica cu purtători injectați (I2L).
Mai târziu aceste tehnologii de implementare a IC digitale vor sta la baza tehnologiilor de proiectare a NMOS, PMOS și CMOS.
Toate aceste invenții importante au condus în 1969 spre crearea primului microprocesor (uC) de către compania Intel, astfel s-a creat baza dezvotării primelor computere personale. Mai târziu, au fost dezvoltate IC analogice care au introdus filtre operaționale analogice pentru procesarea semnalului analogic. Aceste circuite analogice includ multiplicatoare analogice, convertoare analogic-digitale (ADC) și digital-analogice (CAD) și filtre analogice.
În ziua de astăzi, mulți ingineri electroniști se specializează în dezvoltarea programelor pentru sisteme electronice cu microprocesor, cunoscute ca sisteme încorporate (embedded).
STUDIUL BIBLIOGRAFIC
Procesul de achiziție a datelor
Procesul de automatizare este simplificat și asigurat cu ajutorul senzorilor.
Un senzor este un dispozitiv, modul sau subsistem, al cărui scop este detectarea unui eveniment sau unei deviații a mediului și transmiterea informației respective către modulul următor, de obicei un procesor, în scopul manipulării cu datele corespunzătoare. În dependență de sistemul în care acesta este utilizat și scopul senzorului în sistem, se deosebesc senzori de temperatură, proximitate, accelerare, presiune, lumină, umiditate, flux, ultrasunet, infra-roșu, alcool, atingere etc.
Acești senzori determină prezența/deviația parametrului fizic urmărit, și trimit datele către următorul modul în formă analogică. Pentru ca aceste date să fie stocate și prelucrate, este necesar de a realiza trecerea datelor din forma lor analogică în cea digitală, adică este nevoie de a realiza conversia informației din analogic în digital.
În aparatele medicale și industriale, lucrul cu datele reprezintă un procedeu foarte important căruia i se atribuie o atenție deosebită. Acest proces este preluat sub control de către un sistem specializat, denumit sistem de achiziție de date (DAQ), care reprezintă un sistem ce colectează, stochează și transmite informația. DAQ este compus din partea software, hardware, senzori și actuatori și adesea necesită o rețea de comunicare dintre partea SW și HW. Din punct de vedere hardware, partea centrală a unui DAQ este convertorul analogic-digital (ADC)
Un ADC este un sistem responsabil de conversia semnalelor din forma lor analogică în digitală (A/D).
Un sistem DAQ este reprezentat de următorii parametri:
Rezoluția ADC – numărul valorilor discrete ce pot fi produse față de diapazonul valorilor analogice. Rezoluția determină magnitudinea erorii de cuantizare astfel determinând valoarea medie maximală posibilă a raportului semnal-zgomot (SNR).
Fig. 1.2.1. Schema codificării unui ADC pe 8 nivele[3], unde:
– tensiunea de intrare, – extrema de jos a tensiunii ce poate fi codificată,
– diapazonul întreg de tensiune, – valoarea brută citită
Acuratețea ADC –dictată de eroarea de cuantizare și neliniaritate, unitatea de măsurare fiind cel mai nesemnificativ bit (LSB) și e egală cu 1/Rezoluție.
Rata de eșantionare ADC –rata la care noi valori digitale sunt eșantionate din valorile semnalului analogic, care vine continuu. În parcursul conversiei, valoarea semnalului de intrare trebuie menținută constantă, ceea ce dictează durata timpului de conversie. Valoarea semnalului de intrare se menține constantă prin stocarea ei într-un capacitor de intrare și deconectarea printr-un întrerupător de la canalul de intrare.
Fig. 1.2.2. Reprezentarea eșantionării semnalului [4], unde:
semnalul de intrare, analogic, e reprezentat prin linia ondultă,
eșantionările discrete sunt reprezentate de liniile verticale
Viteza ADC – variază în dependență de tipul ADC-ului.
Sine costul DAQ-ului.
Acuratețea ADC-ului depinde de eroarea de cuantizare, care se manifestă printr-o eroare de rotungire dintre tensiunea analogică de intrare și valoarea digitalizată de ieșire. Eroarea nu e liniară și e funcție de semnal, astfel că rezoluția ne dictează numărul de nivele de cuantificare, iar valoarea semnalului de intrare se racordează unui anumit nivel din care se și deduce eroarea respectivă, adică valoarea digitală racordată față de cea reală.
Fig. 1.2.3. Racordarea valorilor semnalului analogic de intrare
la nivelele de cuantizare discrete ale ADC-ului [5]
Majoritatea ADC-urilor sunt realizate pentru semnale unipolare sau diferențiale. Un semnal bipolar se poate măsura atât cu un ADC bipolar, cât și cu un ADC unipolar, cu excepția că semnalul se scalează mai întâi cu un offset.
Pentru a converti semnalul de intrare într-o fracție, ADC-urile necesită o tensiune de referință. O eroare a tensiunii de referință rezultă într-o eroare de măsurare a ADC-ului, de unde rezultă că tensiunea de referință trebuie să fie precisă și constantă.
Semnalele de control și ceasul sunt elemente primordiale în funcționarea unui ADC. Principiul de lucru este următorul: se exercită semnalul START (fie prin pin sau comandă), se așteaptă finisarea conversiei și trecerea pinului ce desemnează finisarea conversiei, EOC, jos. În acest moment, microprocesorul transmite comanda de citire a datelor.
Un sistem pur analogic este mai precis decât unul digital, însă dezavantajul unui astfel de sistem este imposibilitatea manipulării cu datele. În cazul unui sistem digital, în mod normal, multe erori sunt la nivel de hardware. Însă având la dispoziție datele în formă digitală, pe care le putem stoca, apare posibilitatea de a manipula cu aceste date în scopuri de filtrare, analiză, control. Manipularea digitală este mult mai rapidă și reprezintă o metodă convenabilă de stocare a datelor.
Tehnicile de filtrare a datelor
Pe durata lucrului cu semnale electrice există factori care perturbează parametrul măsurat. Acești factori sunt cunsocuți sub denumirea de zgomot. Este necesar de menționat că obiectivul final urmărit nu constă atât în reducerea nivelului zgomotului, cât în raportul semnal util – zgomot (SNR). Astfel, în procesul de măsurare, zgomotele nu pot fi înlăturate integral, însă acesta pot fi reduse în vederea îmbunătățirii acestui raport. În vederea reducerii zgomotului, deosebim metode:
Hardware – semnalul analogic e influențat direct în timpul măsurării și prelucrării lui. Printre metodele hardware se numără:
ecranarea și împământarea;
filtre active și pasive;
ampificatoare de instrumentație și diferențiale;
modularea semnalelor;
detecția sensibilă la fază.
Software – semnalele achiziționate și memorate sunt manipulate prin metode de calcul. Printre metodele software se numără:
medierea semnalelor;
filtrarea digitală;
metode de corelație.
În procesarea semnalelor, un filtru, este un dispozitiv ce înlătură componentele nedorite din semnal, iar procedeul în cauză se numește filtrare. Adesea, aceasta înseamnă înlăturarea anumitor frecvențe sau benzi de frecvențe prin intermediul filtrelor analogice (filtre trece-jos, trece-sus, stop-bandă, trece-bandă, amplificatoare diferențiale și de instrumentație și combinațiile lor).
Filtrarea analogică a semnalelor e un tip de procesare a semnalelor și e aplicată pe semnale analogice continue. Din astfel de semnale fac parte tensiunea, curentul sau încărcătura electrică de pe lângă componentele dispozitivelor electronice. O eroare sau zgomot care va influența aceste mărimi se va reprezenta și pe semnalul reprezentat de aceste mărimi.
Filtrarea digitală a semnalelor e alt tip de procesare a semnalelor și e aplicată pe semnale digitale care reprezintă eșantionări ale semnalului analogic în domeniu de timp, spațiu sau frecvență.
Filtrul digital e un sistem care realizează manipulări aritmetice asupra unui semnal digital eșantionat pentru a reduce sau ameliora anumite caracteristici de semnal. Filtrul digital de obicei e compus dintr-un ADC pentru eșantionarea semnalului analogic de intrare, urmat de microprocesor și memorie în ordinea stocării și filtrării datelor. După aceasta se face conversia datelor din forma digitală în cea analogică.
Avantajele filtrelor analogice:
nu e nevoie de microprocesor;
nu e nevoie de scris un algoritm;
filtrele analogice simple necesită puține componente.
Avantajele filtrelor digitale:
în aplicațiile care deja utilizează microprocesor, un filtru digital va necesita foarte puține elemente adiționale;
luând în considerație că filtrele digitale sunt module software simple, acestea pot fi ușor standardizate;
pot filtra frecvențe foarte joase;
sunt adaptabile și caracteristicile lor pot fi modificate în dependență de parametrul semnalului de intrare;
sunt programabile software, ceea ce le face ușor de testat și utilizat;
nu suferă de la îmbătrânire;
au o cost-eficiență superioară pentru sistemele de complexitate medie și înaltă;
pot stoca datele;
mai multe semnale pot fi filtrate de un singur filtru digital, utilizând multiplexarea.
Dezavantajele filtrării digitale:
eroarea de cuantizare și rotungire în timpul măsurărilor reduc performanțele filtrului digital;
prin durata sa, conversia A/D și cea D/A reduc viteza maximă de procesare.
Filtrele digitale nu sunt supuse neliniarității compononentelor care complică proiectarea filtrelor analogice. Cele din urmă se compun din componente electronice imperfecte ale căror valori sunt specificate de toleranță (±n %) și care se pot modifica pe parcurs împreună cu temperatura și timpul de viață. Odată cu creșterea numărului de filtre analogice, crește și efectul produs de variația numărului de componente. În filtrele digitale, valorile coeficienților sunt stocate în memoria procesorului, astfel fiind mult mai superioare din punct de vedere al predictibilității și stabilității.
Filtrele digitale se bazează mai puțin pe circuitele analogice, ceea ce permite un raport semnal util – zgomot mai redus. Următoarele surse de zgomot sunt caracteristice filtrelor digitale:
zgomotul parvenit în urma filtrării analogice cu un filtru trece jos;
zgomotul produs de conversiile din analog în digital și din digital în analog;
zgomotul digital în urma cuantizării.
În cele mai simple cazuri, e mai cost-eficient de a utiliza filtre analogice, atât din punct de vedere al simplicității circuitului, cât și al consumului mic de putere.
Însă din punct de vedere al utilizării contemporane, filtrele digitale sunt mai eficiente și mai comod de utilizat din cauza optimizării interacțiunii cu sistemul de procesare. Din alt punct de vedere, dace se utilizează componente analogice discrete, acestea ocupă mult mai mult spațiu decât filtrul digital.
Multe filtre digitale se bazează pe transformarea Fourier rapidă (FFT), un algoritm matematic de extragere a spectrului de frecvență a unui semnal, care permite manipularea cu spectrul (precum crearea filtrelor trece bandă de ordin foarte înalt) până la conversia spectrului modificat înapoi în semnale de timp utilizând FFT inversă (IFFT).
O altă formă a filtrelor digitale este cea de model spațial al stării sistemului, unul dintre cele mai utilizate fiind filtrul Kalman. Cel din urmă urmărește starea estimată a sistemului și variația incertitudinii a estimării. Estimarea este actualizată utilizând măsurări și un model de tranziție a stării. Algoritmul lucrează în doi pași:
predicția, filtrul Kalman produce estimări ale variabilelor stării curente împreună cu incertitudinile lor.
actualizarea, când se observă rezultatele următoarei măsurări (obligatoriu eronate), aceste estimări sunt actualizate utilizând media aritmetică ponderată, ponderi mai mari fiind atribuite estimărilor cu certitudini mai mari.
Algoritmul este recursiv și poate rula în timp real, utilizând doar măsurările de intrare prezente și starea calculată anterioară împreună cu matricea de incertitudini. Nu sunt necesare informații adiționale.
Automatizarea proceselor
De-a lungul secolelor, umanitatea a folosit metode rudimentare de aplicare a propriei forțe în viața de zi cu zi, ceea ce include lucrul fizic, utilizarea animalelor în scopuri de prelucrare a pământului, transport etc. Toate acestea au durat până la revoluția tehnico-științifică din secolul XIX, când în urma aplicării cunoștințelor în mecanică, fizică și energetică se inventează motoarele cu ardere internă.
Această revoluție, practic, a introdus procesul de mecanizare în societatea umană, și se manifestă prin trecerea de la efortul în mare parte sau exclusiv manul sau animal la realizarea aceluiași lucru cu ajutorul mașinăriilor. În unele domenii, mecanizarea se exprimă prin utilizarea uneltelor de lucru.
Aplicarea cunoștințelor fizice și electrice au condus spre dezvoltarea aparatelor care eficientiza procesele de producție și ușura implicarea factorului uman. Până nu demult, operatorii aparatelor erau nevoiți să monitorizeze fizic valorile de performanță și calitatea ieșirilor pentru a determina cei mai buni parametri de rulare a echipamentului. Mentenanța este realizată la intervale planificate. În general, aceasta duce la un rezultat operațional ineficient și la condiții de operare nesigure.
Automatizarea este utilizarea sistemelor de control, precum computere și roboți, și a tehnologiilor informaționale pentru a controla diverse procese și/sau aparate fără implicarea unei persoane. Automatizarea reprezintă în sine al doilea pas după mecanizare în scopul industrializării.
Printre avantajele automatizării se numără:
Cost redus de operare – automatizarea elimină coturile de asigurare medicală, indemnizațiile pentru concediul anual și sărbători asociate unui operator uman. Tot aici se elimină necesitățile altor beneficii pentru angajat precum bonusuri, fondul de pensii etc. Un cost înalt inițial recuperează salariile lunare ale angajaților. Cheltuielile de mentenanță sunt mici, iar în caz de eșuare a aparate, pentru reparație e nevoie doar de inginerii de mentenanță și unul electronist.
Productivitate înaltă – automatizarea înlătură schimburile de angajați și pauzele de sărbători prin îndeplinirea scopului de a fi în proces de rulare anul 24/7 anul împrejur.
Calitate înaltă – automatizarea înlătură greșelile parvenite din cauza factorului uman. Mai mult de atât, mașinăriile nu cunosc oboseala ceea ce duce la o calitate uniformă în diferite momente de timp.
Flexibilitate înaltă – adăugarea unei noi sarcini în linia de asamblare necesită antrenarea operatorului uman, pe când o instalație poate fi programată să îndeplinească orice sarcină.
Acuratețe înaltă a informației – colectare automată a informației, îmbunătățirea acurateței acestor date și reducerea costurilor de colectare a lor.
Siguranță înaltă – creșterea siguranței instalației/incintei prin sisteme/roboți de control a situațiilor excepționale.
Automatizarea are un singur dezavantaj și acela este costul inițial înalt. Investițiile inițiale legate de realizarea trecerii de la operatori umani la un sistem automaztizat sunt foarte înalte. Deasemenea, costuri înalte sunt implicate în antrenarea angajaților care vor putea manipula aceste dispozitive sofisticate.
În cadrul procesului de automatizare, adesea se utilizează:
roboți, aparate, senzori;
controllere logice programabile (PLC) pentru controlul aparatelor;
sisteme de control al proceselor (PCS) pentru controlul proceselor industriale;
pachete SCADA pentru a vizualiza procesele.
Caracteristicile Controller-ului Logic Programabil
În perioada anilor 1900 – 1960, automatizarea de obicei se efectua utilizând circuite complicate bazate pe relee electromecanice. Însă numărul de relee, fire și spațiu, necesar pentru crearea unei automatizări simple, făcea acest proces problematic. Mii de relee ar putea fi necesare pentru a automatiza cel mai simplu proces, iar o schimbare în circuit ar fi o problemă enormă.
În 1968, primul PLC a fost introdus pentru a înlocui circuitele complicate în bază de relee. Un PLC este un mic computer industrial cu componente modulare, proiectat pentru a automatiza procese de control individualizate. Se utilizează adesea pentru a controla motoare, pompe, ventilatoare, întrerupătoare și altele. PLC-ul a fost proiectat să fie ușor programabil de inginerii deja familiarizați cu logica releelor și schematica de control. Componentele unui PLC sunt variate, dar majoritatea din ele pot fi atribuite următoarelor categorii:
procesor;
intrări;
ieșiri.
PLC-ul din ziua de astăzi e un computer mai puternic și mai complex, dar îl putem descrie în termeni simpli. PLC-ul ia valorile de intrare, aplică o logică asupra acetor valori în procesor, iar apoi ia decizii și acționează asupra ieșirilor.
Fiecare procesor al unui PLC controlează anumite tipuri de comunicare. Comunicările executate de porcesorul PLC-ului de obicei include una sau mai multe din următoarele:
comunicarea printr-un port serial sau USB pe modulul procesorului cu PC-ul programatorului;
comunicarea cu modulele de intrare și ieșire (I/O) prin șasiurile din spate;
comunicarea cu alte PLC-uri sau alte dispozitive de automatizare prin Ethernet ș.a.
Comunicarea industrială
Sunt multe protocoale de comunicare industrială. Unul dintre cele mai vechi protocoale însă care rămâne utilizat pe larg în multe dispozitive și PLC-uri, din cauza simplicității și răspândirii, este Modbus – protocol de tip master-slave unde un dispozitiv e master și toate celelalte sunt slave-uri. Masterul poate citi sau scrie către un dispozitiv în dependență de capacitățile slave-ului.
Avantajele unui PLC:
ușor de programat și un limbaj de programare ușor de înțeles;
capabil să execute aplicații complexe;
programul și comunicarea înlocuiește interconectarea cu fire dintre elementele discrete;
transmitere/recepție rapidă;
mai flexibil;
mai ușor de realizat mentenanța;
cost-eficiența pentru controlul unui sistem complex;
dimensiuni fizice mai mici decât soluțiile de conectare directă;
interconectare mai simplă printr-un număr mai redus de fire;
dispun de diagnosticare integrată și funcții de supraîncărcare;
aplicațiile pot fi documentate;
posibilitatea de conectare la un sistem SCADA.
Dezavantajele unui PLC:
limitări de lucru în condiții de temperatură sau vibrație înalte.
Automatizările în medicină
Progea, un producător italian de produse SCADA și HMI a instalat un sistem SCADA/HMI pentru Comecer, un producător italian de aparate de protecție împotriva radiației și de sisteme pentru aplicații medicale, de cercetare și industriale. O mașină produce doze radiofarmaceutice pentru scanări tomografice cu emisie de pozitroni (PET), care sunt utilizate în diagnosticarea a unei varietăți de maladii prin detectarea formațiunilor canceroase premature, examinând efectele terapiei împotriva cancerului prin caracterizarea variațiilor biochimice în celule și evaluând maladiile cardiace și cerebrale.
Un sistem automatizat de la Comecer, numit Dorothea, fracționează și împachetează seringile cu fludeoxiglucoză ce emite pozitroni pentru utilizarea în scanări PET. Acestea sunt produse în seturi a câte opt doze care sunt umplute și calibrate în condiții sterile și plasate în incinte cu ecranare de protecție, gata pentru distribuție. Se utilizează o platformă automată care interconectează PLC-urile de la Siemens, fieldbus-ul Profibus și un sistem SCADA/HMI Movicon proiectat de Progea.
Fig. 1.4. Display-ul vizual al HMI-ului în sistemul SCADA Movicon al Progea,
în scop de interacțiune cu procese, accesare date istorice la fieacare fază de operare [12]
Ghidat de sistemul de management setat în HMI, o mână mecanică înserează un injector prin fiecare conector perforabil al seringii pentru a transfera și corecta doza într-un mod corespunzător. PLC-ul utilizează datele de la HMI și I/O distribuite prin fieldbus.
În prepararea tradițională a băuturii medicinale KADHA, întregul proces era efectuat manual (fierberea, filtrarea și amestecul de plante medicinale). Scopul studiului a fost atins cu succes și a constat în automatizarea întregului proces utilizând un sistem PLC, care a redus timpul și factorul uman. Senzorii de nivel și de temperatură sunt utilizați ca intrări pentru sistem. Motoarele, lămpile și valva solenoid au servit ca ieșiri.
I/O discrete
Cel mai comun tip de module intrare și ieșire I/O ale unui PLC sunt cel discrete (digitale). Ideea constă în faptul că I/O discretă este sau pornită sau oprită. Exemple de intrări digitale ar fi întrerupătoarele de lumină, butoanele de apăsare, întrerupătoarele de proximitate, întrerupătoare de circuit închis sau deschis, generatoare pornite sau oprite, senzorul nivelului apei în rezervor. Exemple de ieșiri digitale ar fi becuri, relee și startere de motoare, închiderea sau deschiderea întrerupătoarelor de circuit, pornirea sau oprirea generatoarelor, deschiderea sau închiderea valvelor de apă, pornirea sau oprirea luminii de alarmă.
I/O analogice
O altă formă comună a I/O unui PLC sunt cele digitale. Acestea se referă la semnale care au un diapazon de valori de valori mai larg decât doar 0 și 1. De obicei, modulul de intrări analogice măsoară intrări analogice cu valori în următoarele diapazoane: 1 ÷ 5 V, 0 ÷ 10 V, -10 ÷ 10V, 4 ÷ 20 mA, 0 ÷ 20 mA. Astfel, modulul de intrări analogice măsoară tensiunea sau curentul de la dispozitivul de intrare. La fel și ieșirile analogice pot furniza semnale de tensiune sau curent în diapazoanele menționate mai sus. Exemple de intrări analogice ar fi senzori de temperatură a motoarelor, senzori de presiune a uleiului și cântare. Ieșirile analogice pot fi utilizate pentru a controla puterea de ieșire a unui generator sau poziționarea acului contorului de presiune, să ruleze cu un generator sau cu temperatura.
Tehnicile de protecție și amplificare
Este esențial de a asigura protecția circuitelor electronice în scopul evitării unei defecțiuni ce ar afecta calitatea funcționării dispozitivului sau ieșirea acestuia din funcțiune. În acest sens, avem mai multe tipuri de protecții:
de tip paralel, componente de protecție cu misiunea de reducere a tensiunilor de șoc aplicate dispozitivului: în mod uzual, ele nu trebuie să influențeze circuitul în care e amplasat, însă la prezența unei creșteri de tensiuni trebuie să absoarbă excesul de tensiune.
de tip serie, ameliorează limitele parvenite în urma supratensiunilor prezente între două sau mai multe etaje de protecție.
Exemple:
transformatoare de izolare, înzestrate cu separare electrostatică a înfășurării primare față de masă și față de înfășurarea secundară, astfel micșorând semnalele parazitare de frecvență înaltă;
filtre, limitează anumite diapazoane de frecvențe în dependență de necesitate;
diode cu avalanșă, limitează supratensunile la bornele echipamentelor;
varistoare, limitează intensitățile induse de supratensiuni;
Izolarea galvanică reprezintă un principiu general de izolare electrică a unui circuit electric în comparație cu alte circuite, prezente într-un dispozitiv dat, și constă în transmiterea energiei sau samnalului între circuitele electrice în lipsa contactului electric dintre ele. Izolațiile galvanice se utilizează pentru transmiterea semnalelor, pentru control fără contact și pentru protecția dispozitivelor și persoanelor.
Izolarea galvanică asigură independența circuitului prin faptul că aceasta asigură un contur independent al curentului în circuit față de alte alte contururi, ce iau naștere la conexiunea dispozitivelor. Această independență ridică gradul de protecție împotriva zgomotelor, astfel îmbuntățind raportul signal util – zgomot, și ridică precizia măsurărilor. În sisteme de măsurare multicanal (sisteme de achiziție de date), izolația galvanică poate fi atât de grup (una la mai multe canale de măsurare), cât și unicanal (individuală pentru fiecare canal de măsurare). Mai mult de atât, prin izolație galvanică se asigură o electrosecuritate în timpul lucrului cu dispozitivul
Un sistem de achiziție de date lucrează cu senzori și traductori. Aceștia furnizează un anumit semnal la intrare în dependență de care se eșantionează valori care vor fi supuse manipulării în etapele următoare. Însă una dintre problemele ce intervin în procesul de măsurare este cea a nivelului jos al semnalului de intrare. Un nivel mic al semnalului duce spre reducerea unuia dintre cei mai importanți factori în procesul de achiziție de date și anume raportul semnaul util – zgomot. În interiorul circuitului sunt prezente o varietate largă de surse de zgomote printre care se numără:
cuplarea capacitivă, ce se manifestă printr-un zgomot electrostatic și este un efect parvenit în urma variațiilor de tensiune. Prin urmare, zgomotul respectiv crește odată cu frecvența sau cu viteza de variație a potențialului.
cuplarea inductivă, ce se manifestă printr-un zgomot magnetic și este un efect parvenit în urma variațiilor de curent și care acționează asupra circuitelor vecine fără a fi necesar vreun contact direct (prin câmp magnetic). Prin urmare, zgomotul respectiv crește odată cu fluxul de curent, viteza de variație a curentului, micșorarea distanței dintre circuitele vecine.
zgomot condus, ce reprezintă un zgomot electric cuplat printr-un câmp electric și care ajunge în conductoare în mod indirect. El se manifestă la frecvențe înalte, dar și la frecvența de rețea.
Printre tehnicile de reducere a zgomotului se numără:
cușca Faraday, prin carcasa metalică are capacitatea de a stopa total influențele zgomotului EM, separând mediul interior de perturbațiile mediului exterior.
limitarea cuplajului capacitiv, care poate fi diminuat printr-o amplasare spațială corespunzătoare.
ecranarea cablurilor, în scopul diminuării zgomotelor și perturbațiilor mediului asupra firelor de semnal.
cabluri torsadate, diminuarea puternică a influenței zgomotului EM prin răsucirea foarte strânsă a firelor.
filtre Notch, pentru excluderea celei mai importante surse de zgomot și anume rețeaua de alimentare.
Deasemenea rămâne actuală necesitatea amplificării. Amplificarea reprezintă procesul de creștere a nivelului energetic al semnalului fără a modifica forma sau structura acestuia. Amplificarea unui semnal se poate realiza prin utilizarea diverselor conexiuni. Una dintre acestea e montajul asimetric (Fig. 1.5.1.), care se realizează printr-o legare a uneia din intrări la masă și care oferă rezultate în regulă doar când senzorul furnizează tensiuni medii și mari și are o impedanță mică. Rezultate mai bune se pot obține utilizând montajul simetric (Fig. 1.5.2.), astfel că sursele de zgomot influențează în mod aproape identic ambele căi de conexiune. Acestea produc o tensiune de mod comun ce poate fi determinată din relațiile (1). O tensiune de mod comun produce o tensiune parazitară invers proporțională echilibrării dispozitivului. Această echilibrare e descrisă de factorul de rejecție de mod comun (2).
Fig. 1.5.1. Montaj asimetric de conectare dintre senzor și amplificator[13], unde:
– tensiunea furnizată de senzor, A și B – bornele amplificatorului
Fig. 1.5.2. Montaj simetric de conectare dintre senzor și amplificator [13], unde:
– tensiunea furnizată de senzor, A și B – bornee amplificatorului,
și – tensiunile de la bornele amplificatorului, – tensiune de mod comun
=> = () / 2 (1)
CMRR = 20 (2)
unde – tensiunea diferențială reziduală.
Pentru un senzor care furnizează o = 10 mV, un montaj cu CMMR ≤ 100 și = 10 V, eroarea cu care se va face măsurarea va fi mai mică de 1 %.
Sistemul de achiziții de date
Un sistem de achiziții de date este un dispozitiv de intrare utilizat pentru a monitoriza prin intermediul senzorilor anumiți parametri. De regulă, sistemele de achiziție se folosesc împreună cu un PLC în scopul controlului proceselor de automatizare. Cu alte cuvinte, un sistem de achiziții de date este puntea de trecere dintre semnalele analogice ale sistemului și unitatea de control. Figura 1.6.1. reprezintă schema generală a sistemului de achiziții.
Fig. 1.6.1. Schema sistemului de achiziții[13]
Un modul de intrări analogice e compus din:
EC – element ce conectează la sistemul de achiziții canalele semnalelor analogice;
ETP – elemente ce tratează informația la faza primară în lipsa amplificării;
MUX – oferă posibilitatea de a alege unul dintre canalele analogice disponibile;
A – adaptează semnalul canalului selectat de MUX și impedanța canalului la următorul element;
EER – menține constantă valoarea de eșantionată la intrare pe parcursul conversiei A/D;
CAN (ADC) – convertește valoarea analogică a semnalului de pe canalul selectat în forma digitală;
T – bufer de conectare a ieșirii CAN-ului la magistrală;
BC – blocul de coordonare a operațiilor.
Sistemul de achiziții asigură o listă de funcții prin care se îndeplinește obiectivul care a stat la baza proiectării sale. Cele mai importante funcții sunt:
ajustarea mecanică efectuată conform standardelor de cablare și conectare în producție;
ajustarea electrică efectuată conform standardelor în producție: amplificarea semnalelor mici, conversii curent/tensiune etc.;
conversii A\D și D\A;
prelucrarea primară a semnalului: liniarizare, filtrare;
protecție: protecție la SC și supratensiuni, izolare galvanică etc.;
semnalizare, supervizare, control;
interfațarea cu calculatorul: comunicarea, multiplexarea etc.;
Componentele principale planificate HW și SW
Modulu de intrări analogice care va servi ca prototip asupra căruia vor fi efectuate lucrările este produsul companiei în cadrul căreia se efectuează practica. Parametrii generali ai prototipului sunt specificați în tabelul de mai jos.
Tab. 1. Parametrii prototipului
Analiza sistemului de achiziție în cauză a arătat următoarele componente esențiale ale sistemului care necesită a fi studiate pentru a putea efectua lucrări asupra prototipului:
Microprocesorul STM32F765ZGTx;
ADC-uri externe ADS1248;
porturi de extensie TCA9554A.
Analiza componentelor utilizate au condus spre următoarele produse software necesare scrierii codului:
STM32 CubeMX;
Keil uVision 5 (în baza limbajului C).
Cu ajutorul aplicației STM32 CubeMX se generează proiectul cu configurația de bază pentru microprocesorul în cauză. Principalele configurări ale proiectului sunt:
UART, comunicarea prin protocolul RS485 cu modulul central al PLC-ului;
SPI, comunicarea cu ADC-urile externe ale sistemului de achiziție de date;
I2C, comunicarea cu chip-ul de RTC, chip-ul de EEPROM și regiștrii externi ai sistemului de achiziție de date;
JTAG, utilizarea micro-USB-ului în scopuri de rulare și debug;
patru GPIO-uri configurați ca intrare în scopul determinării finisării conversiei datelor de către ADC-ul corespunzător;
crearea task-urilor care vor rula într-un mod pseudo-paralel FreeRTOS;
configurarea frecvențelor de lucru ale procesorului, a vitezei de comunicare ș.a.
După ce proiectul a fost configurat în STM32 CubeMX, se generează proiectul în forma unui program de bază redactabil pentru Keil uVision 5, unde deja se va scrie în limbaj C codul pentru sitemul în cauză.
Obiectivele programării sistemului de achiziții de date:
crearea driver-ului de ADC în scopul configurării tuturor dispozitivelor care participă la extragerea datelor în dependență de canal și procedurile de manipulare în scopul extracției propriu-zise a informației de la senzori;
crearea driver-ului de senzori în scopul configurării tuturor intrărilor analogice ale modulului pentru o manipulare corectă cu acesta.
crearea modulului care va acționa în baza driver-elor de mai sus în scopul extragerii continue a datelor, prelucrarea lor, conversia lor și transmiterea unității de procesare a PLC-ului la comanda respectivă.
PROIECTAREA SISTEMULUI DE ACHIZIȚII DE DATE
Planificarea activităților
Pentru a intra în esența principiilor de lucru al dispozitivului final, este nevoie de a consolida cunoștințele acumulate până în acest moment. În această ordine de idei, următorii pași vor fi efectuați:
Elaborarea schemei bloc a principiului simplificat de lucru al dispozitivului;
Elaborarea schemei bloc a principiului de interacțiune dintre intrări și procesor;
Elaborarea schemei electrice de conectare a ADC-ului;
Elaborarea schemei bloc de stocare a configurărilor senzorilor în memorie;
Elaborarea schemei bloc a sistemului de achiziții de date.
Structura unei singure intrări analogice
O intrare analogică a sistemului de achiziții de date este menită de a măsura nivelul semnalului analogic aplicat la bornele sistemului. Schema bloc a principiului simplificat de lucru al dispozitivului este reprezentat în figura 2.1.
Fig. 2.1. Schema bloc a principiului simplificat de lucru al dispozitivului
Principiul de interacțiune dintre intrări și procesor
Semnalul analogic de la senzor ajunge la intrarea ADC-ului. Acesta este transformat în semnal digital în dependență de configurarea ADC-ului și este transmis către procesor prin interfața serială SPI. De asemenea, prin interfața serială SPI se poate seta o nouă configurare sau extrage configurarea curentă a ADC-ului. La procesul de citire a datelor și transformarea lor în formă digitală mai participă și alte dispozitive, esențiale fiind două TCA9554A (extensie cu 8 pini GPIO) cu ajutorul cărora se comutează dispozitivele TS3A44159 (alegerea modului de măsurare în curent/tensiune sau a temperaturii) și TS3A5017 (pentru manipularea cu măsurarea senzorului). Schema bloc a interacțiunii dintre intrare și procesor e reprezentată în figura 2.2.
Fig. 2.2. Schema bloc a interacțiunii dintre intrare și procesor
Schema electrică de conectare a componentei ADS1248
ADS1248 este un convertor analogic-digital de pricizie, pe 24 de biți, caracterizat prin cost de sistem redus și un număr de componente redus pentru aplicații de măsurare cu senzori. El conține un amplificator de zgomot redus cu câștig programabil (PGA), un ADC de precizie delta-sigma (ΔΣ) cu filtru digital ce se setează într-un singur ciclu, și un oscilator intern. Este prezentă o referință de tensiune de drift și două surse programabile de curent de excitație (IDAC).
Multiplexorul de intrare permite până la 4 intrări diferențiale și are integrate: detecția ieșirii din funcțiune a senzorului, tensiunea de bias pentru termocupluri, sistemul de monitorizare, și GPIO. Filtrul digital furnizează rate de date de până la 2 kSPS. Pentru rate de date de până la 20 SPS, interferențele de 50 și 60 Hz sunt respinse de filtru. Schema electrică de conectare a componentei ADS1248 este reprezentată în figura 2.3.
Fig. 2.3. Schema electrică de conectare a componentei ADS1248
Stocarea configurărilor senzorilor în memorie
În majoritatea dispozitivelor, inclusiv acesta, datele se pot păstra în două locații:
În memoria procesorului;
În memoria unui chip extern, numit EEPROM. Memoria EEPROM-ului va fi cunoscută în continuare ca memorie EEPROM.
Memoria procesorului e utilizată cu scop multiplu
Conține configurările inițiale (default, de fabrică) care nu pot fi modificate și se aplică la prima pornire sau în cazul necesității unui reset al sistemului prin apăsarea unui buton. Această zonă a memoriei procesorului în care se află date inițiale și care nu vor putea fi modificate va fi cunoscută în continuare ca memorie ROM.
Conține configurările operative care pot fi modificate în urma intervenției utilizatorului și care se vor păstra în urma modificării în memoria EEPROM de unde se vor extrage la următoarea pornire și vor reveni în memoria procesorului rezervată pentru configurările operative. Această zonă a memoriei procesorului în care se vor afla datele citite din memoria ROM/EEPROM și care vor putea fi modificate va fi cunoscută în continuare ca imaginea EEPROM.
Schema bloc a stocării configurărilor senzorilor în memorie e reprezentată în figura 2.4.
Fig. 2.4. Schema bloc a stocării configurărilor senzorilor în memorie
Sistemul de achiziții de date
Modulul RomConfig conține datele inițiale de configurare ale senzorilor, ale configurării I2C pentru comunicarea cu EEPROM-ul, ale configurării I2C pentru comunicarea cu TCA9554A, ale senzorului tensiunii de alimentare.
De configurarea a două TCA9554A va depinde ce tip de senzor se supune măsurării prin comutarea dispozitivului TS3A44159 și ce parametri se iau în considerare prin comutarea dispozitivului TS3A5017.
Modulul SettingManage extrage datele din memoria EEPROM și e responsabil de urmărirea schimbărilor configurărilor operative din imaginea EEPROM-ului cu scopul de a păstra schimbările efectuate în memoria EEPROM. La necesitate, se extrag configurările default din RomConfig.
Modulul Ads1248Config conține datele ce țin de configurările dispozitivelor ADS1248 și de pinii cu care acestea se leagă de procesor.
Modulul Ads1248 conține procedurile de configurare, extragere, salvare și transmitere a datelor către modulul Sensor. Setarea/extragerea configurărilor ADC-urilor și extragerea datelor se realizează prin interfața serială SPI.
Modulul Sensor conține procedurile de preluare a datelor de la Ads1248, stocarea și filtrarea lor utilizând mai multe etape și metode de filtrare.
Modulul RealTimeClock prelucrează datele ce țin de timp. Acestea, prin interfața serială I2C, sunt preluate direct din dispozitivul extern RTC. Datele din dispozitivul extern RTC pot fi atât citite, cât și setate de către utilizator de la PC.
Modulul SDCard permite prelucrarea datelor necesare de a fi înscrise pe un card SD. SDCard comunică cu RealTimeClock pentru a stoca datele pe cardul SD și anume denumirea fișierelor e în format yyyy/mm/dd, iar înregistrările din fișiere încep cu formatul hh/mm/ss, urmate de informațiile ce descriu anumite etape de procesare, inclusiv erori.
ExternComm permite comunicarea cu PLC-ul în scopul citirii, înscrierii și manipulării cu configurările modulului de intrări analogice.
Modulul UsbVcp permite comunicarea cu SW-ul de testare în scopul înscrierii, citirii și monitorizării configurărilor cu sau fără conectarea modului de intrări analogice la PLC.
Modulul Uart stă la baza comunicării atât dintre sistemul de achiziții de date, cât și alte module cu PLC.
Modulul AdcSensor urmărește nivelul tensiunii de alimentare pentru a da semnal de alarmă în cazul în care aceasta va cădea sub nivelul minim admisibil.
7 Seg Display este afișorul cu 7 segmente care va afișa adresa fizică a dispozitivului.
Modulul 7SegmDigit va seta adresa fizică a dispozitivului, care se păstrează în configurarea modului de intrări analogice, pe afișorul cu 7 segmente.
PSU – sursa de alimentare a modulului.
Usensor va urmări tensiunea care vine de la PSU astfel că în caz de aceasta cade sub o valoare limită să fie semnalată o eroare.
Modulul Mai conține în sine configurările tuturor senzorilor cu care lucrează modulul de intrări analogice. Pe lângă acestea, în configurarea Mai se conține adresa fizică a dispozitivului și numărul serial, care vor putea fi schimbate de utilizator, dar și o configurare a versiunii softare-ului, care nu poate fi modificată de utilizator.
Senzor – componentul fizic care furnizează semnal analogic în scopul citirii și procesării acestuia pentru eventuala lui transmitere și luare de decizii în baza lui.
Schema bloc a sistemului de achiziții de date este reprezentată în figura 2.5.
Fig. 2.5. Schema bloc a sistemului de achiziții de date
Informații succinte cu privire la componentele ce vor fi utilizate
EEPROM (din engleză Electronically Erasable Programmable Read Only Memory) reprezintă un tip de memorie nevolatilă utilizată în computere și alte dispozitive electronice în scopul stocării unei cantități relativ mici de date și care permite ștergerea și reprogramarea byte-ților individuali. EEPROM are o durată de viață limitată, astfel că numărul de reprogramări este limitată la zeci/sute de mii. EEPROM este organizat ca șiruri de tranzistori cu poartă flotantă.
Fig. 2.6. EEPROM STMicro M24C02 (stânga) și un afișor cu 7 segmente (dreapta)
Afișorul cu 7 segmente e un dispozitiv electronic de afișare pentru reprezentarea numerelor întregi care e o alternativă afișoarelor cu matrici de puncte mai, mai complicate. Aceste afișoare cu 7 segmente sunt utilizate pe larg în ceasuri digitale, contoare electronice, calculatoare simple și alte dispozitive electronice care afișează informație numerică.
RTC (din engleză Real Time Clock) este un ceas de computer (cel mai des sub forma unui circuit integrat) care duce evidența timpului actual și se află în orice dispozitiv electronic ce trebuie să păstreze timpul precis. Astfel acest dispozitiv are menirea să elibereze sistemul principal de sarcini critice ce țin cont de timp și au un consum redus. De obicei, aceste ceasuri au o sursă de alimentare alternativă, pentru ca acestea să poată păstra timpul atunci când sursa primară de alimentare lipsește. Această sursă secundară, adesea, reprezintă o baterie de Li în sisteme mai vechi, pe când sistemele mai vechi conțin un supercapacitor.
Fig. 2.7. RTC cu baterie de Li integrată în capsulă.
TCA9554A e un dispozitiv cu 16 pini ce furnizează o extensie de 8 biți de intrări/ieșiri paralele de uz general pentru protocolul bidirecțional I2C pe două linii. Dispozitivul poate opera cu o sursă de alimentare ce furnizează de la 1.65 V la 5.5 V. Dispozitivul lucrează atât la frecvența de ceas de 100-kHz (Standard-mode) cât și la cea de 400-kHz (Fast-mode). Astfel de expansiuni de intrări/ieșiri ca TCA9554A furnizează soluții simple atunci când sunt necesari pini adiționali pentru întrerupătoare, senzori, butoane, LED-uri, ventilatoare etc. Printre caracteristicile TCA9554A se includ o întrerupere generată pe pinul INT atunci când un port de intrare își schimbă starea. Pinii de adresă A0, A1 și A2, selectabili hardware, permit până la 8 astfel de expansiuni pe un singur bus de I2C. Dispozitivul poate fi resetat la stările inițiale prin de-/conectarea alimentării.
Fig. 2.8. Diagrama bloc simplificată a unei expansiuni de GPIO, TCA9554A
TS3A44159 e un întrerupător analogic bidirecțional cu 1 circuit separat și 2 poziții, cu 2 intrări de control, care e proiectat să funcționeze între tensiunile 1.65 – 4.3 V. Acest dispozitiv oferă o rezistență mică în stare activă și o rezistență excelentă în stare activă ce se combină cu caracteristica de deconectare înainte de acționare, ceea ce previne distorsionarea semnalului în timpul transferului unui semnal de la un canal la altul.
Fig. 2.9. Schema simplificată a întrerupătorului TS3A44159
TS3A5017 este un întrerupător analogic cu 1 circuit separat și 4 poziții, proiectat să opereze la tensiunea 2.3 – 3.6 V. Acest dispozitiv poate opera atât cu semnale digitale, cât și cu cele analogice, iar semnalele până la V+ pot fi transmise în ambele direcții.
Fig. 2.10. Vederea de sus a întrerupătorului TS3A5017
I2C (din engleză Inter Integrated Circuit) este un sistem serial sincron de comunicare, multi master, multi slave, cu transmisie de pachete, unidirecțional. Este utilizat pe larg pentru legarea dispozitivelor CI periferice de viteză mică cu procesoare și microcontrollere în comunicarea de distanțe scurte pe aceeași placă.
I2C utilizează două linii bidirecționale, linia serială de date (SDA) și linia serială de clock (SCL). Spațiul de adresă este de 7 biți. Viteza de comunicare poate fi de 100 kbit/s (mod standard) sau 400 kbit/s (mod rapid). Participanții comunicării au rolurile de:
master, nodul ce generează clock-ul și inițiază comunicarea cu slave-urile;
slave, nodul ce recepționează clock-ul și răspunde în caz de se adresează master-ul.
Modurile de operare de bază:
master transmit, nodul master transmite date către un slave;
master receive, nodul master recepționeazî date de la un slave;
slave transmit, nodul slave transmite date către master;
slave receive, nodul slave recepționează date de la master.
Inițial, masterul e în modul master transmit și transmite semnalul de START, urmat de adresa pe 7 biți, iar al 8-lea bit reprezintă intenția de a scrie în (0) sau a citi din (1) slave. Dacă un slave cu o astfel de adresă există, acesta va răspunde cu un bit ACK (confirmare) pentru acea adresă. După care se reia mersul transmiterii/recepției. Octeții de adresă și date se transmit începând cu MSB (cel mai semnificativ bit). Bitul START e indicat de tranziția sus-jos a liniei SDA când SCL e sus, iar bitul STOP e indicat de tranziția jos-sus a liniei SDA când SCL e sus. Celelalte tranziții au loc cu SCL jos.
SPI (din engleză Serial Peripheral Interface) e o interfață de comunicare serială sincron utilizată pentru comunicarea de distanțe scurte, cu preponderență în sistemele încorporate. Dispozitivele SPI comunică în mod full duplex utilizând o arhitectură master-slave cu un singur master. Dispozitivul master inițiază frame-ul de citire și scriere. Multiple dispozitive slave sunt posibile prin selectarea individuală a liniei slave-ului (Chip Select). SPI reprezintă un tip de comunicare un master – multi-slave.
Pentru a începe comunicarea, master-ul configurează clock-ul utilizând o frecvență disponibilă dispozitivului slave, de obicei de câțiva MHz. După care, master-ul selectează dispozitivul slave cu un nivel logic 0 pe CS al slave-ului. La fiecare ciclu de clock, o transmitere full-duplex de date are loc. Master-ul transmite un bit pe linia MOSI și slave-ul îl citește, pe când slave-ul transmite un bit pe linia MISO și master-ul îl citește. Procesul se repetă pentru orice număr de cicluri de clock.
UART (din engleză Universal Asynchronous Receiver-Transmitter) o periferie hardware pentru comunicarea serială asincronă în care formatul datelor și viteza de transmisie sunt configurabile. Nivelele și metodele semnalărilor electrice sunt controlate de un driver extern UART-ului. UART, de obicei, este un CI individual (sau o parte a acestuia) utilizat pentru comunicația serială printr-un port serial al unui computer sau al unui dispozitiv periferic.
UART ia bytes-i de date și transmite biți individuali într-un mod secvențial. Pe celălalt capăt al liniei, un alt UART asamblează biții în bytes-i compleți. Fiecare UART conține un registru de deplasare, care este metoda fundamentală de conversie dintre formele serială și paralelă. Transmisia serială a informației digitale (biți) printr-un singur fir e mai ieftină decât transmisia paralelă prin mai multe fire.
Comunicare poate fi:
simplex, doar într-o singură direcție;
full duplex, ambele dispozitive transmit și recepționează în același timp;
half duplex, dispozitivele transmit și recepționează pe rând.
Fiecare caracter e introdus într-un frame ce conține:
bitul de START;
biții de date;
bitul de paritate (opțional);
unul sau doi biți STOP.
În majoritatea aplicațiilor, LSB (cel mai nesemnificativ bit) e transmis primul. Bitul START semnalează receptorului că vine un nou caracter. Următorii 5-9 biți (în dependență de protocol) reprezintă caracterul. Bitul de paritate, dacă e prezent, e poziționează după biții de date. Urmează 1 sau 2 biți STOP care reprezintă finalul frame-ului și care semnalează receptorului finalul cracterului.
ELABORAREA ȘI TESTAREA SOFTWARE-ULUI
Studiul lucrărilor efectuate până în prezent
La etapa de inițiere a procesului de elaborare a părții software, mi s-a prezentat atât versiunea dispozitivului la acel moment, cât și modulele software pe baza cărora dispozitivul funcționa. De asemenea, am primit documentația referitoare la schema electrică a dispozitivului, schema electrică a dispozitivului ADS1248 cu metodele de conectare la acesta a senzorilor de tensiune, curent și temperatură; am primit tabelele de configurare a dispozitivelor externe procesorului în dependență de tipul senzorului măsurat.
În semn de îndrumare, am fost sfătuit să mă aprofundez în modul de realizare a modulelor software cu scopul de a înțelege cum se utilizează acestea în aplicația Keil uVision. Astfel am început a mă familiariza cu metodologiile de utilizare a funcțiilor ce vizează interfața de comunicare I2C. Această interfață este utilizată pentru citire/scriere din/în EEPROM, RTC, TCA9554A, TS3A44159 și TS3A5017.
În urma studiului efectuat, am dedus principiile de bază pe care le efectua programul până la acel moment și anume:
Copierea configurărilor senzorilor din modulul ROM sau citirea lor din EEPROM în scopul inițializării dispozitivului;
Configurarea dispozitivelor externe în dependență de tipul senzorului conectat înainte de efectuarea măsurării;
Efectuarea măsurării;
Filtrarea și transformarea valorii citite de pe ADC în dependență de tipul senzorului;
Transmiterea datelor actuale prin canalele de comunicarea la cererea lor din exterior;
În cazul prezenței lor, câteva erori se păstrează pe cardul micro SD;
Citirea/setarea timpului din/în RTC.
Am observat că datele ce țin de senzori nu toate reprezintă configurări. Spre exemplu, lungimile șirurilor de filtrare a valorilor se vor păstra în configurări, însă șirurile propriu-zise de lungimile specificate se vor afla în datele operative și vor putea fi monitorizate doar atâta timp cât rulează dispozitivul.
La fel, am studiat metodologia de utilizare a funcțiilor ce vizează interfața de comunicare SPI. Această interfață este utilizată pentru a înscrie/citi configurările în/din ADS1248 și pentru a citi datele din ADS1248 după ce a fost finalizată conversia analog-numerică.
Însușirea metodelor de conectare a senzorilor în funcție de tipul lor
Pentru a putea observa modul de lucru al dispozitivul având la bază software-ul prezent, era necesar să înțeleg ce se poate conecta la una din intrările analogice ale sistemului de achiziții de date și ce pași trebuie de întreprins pentru a putea măsura valorile de la intrare și să le vizualizăm într-o formă cât mai corectă la ecran în timpul debugging-ului.
Prin intermediul unei plăci externe special proiectate, alimentată de o sursă de tensiune de 24 V, pe care sunt amplasate rezistențe variabile și jumpere încât să poată furniza o tensiune de 0 ÷ 5 sau 0 ÷ 10 V la ieșire. Conectând masa acestei plăci la masa dispozitivului și conectând firul tensiunii de ieșire la intrarea special destinată măsurării acestei valori, avem posibilitatea de a citi valorile de tensiune configurând specific elementele externe procesorului.
Prin intermediul unui magazin de rezistențe, avem posibilitatea de a simula măsurarea senzorilor de temperatură prin selectarea rezistenței dorite ce se supune măsurării. Astfel avem 3 fire:
Un fir e destinat curgerii unui curent de excitație de la ADS1248 spre rezistență;
Un fir e destinat revenirii curentului de excitație de la rezistență spre ADS1248;
Un fir e destinat curgerii unui alt curent de excitație de la ADS1248 în scop de compensare a pierderilor de nivel energetic pe linie.
Crearea proiectului inițial în STM32CubeMX
Pentru a ușura procesul de scriere a software-ului pentru modulele acestui proiect, s-a luat decizia de a se utiliza aplicațiile software STM32CubeMX pentru a configura procesorul utilizat conform cerințelor înaintate de către departamentul electronic.
În urma finisării configurării procesorului, se va putea genera un cod inițial care va putea fi modificat și extins spre satisfacerea necesităților proiectului.
Configurarea grafică a pinilor procesorului este reprezentată în Figura 3.1., iar cea mai în detaliu – în Tabelul 3.1.
Fig 3.1. Configurarea pinilor procesorului
Tabelul 3.1. Configurarea pinilor procesorului
Restul pinilor marcați sunt, în mare parte, pini de alimentare și masă.
În cadrul proiectului dat, se utilizează un sistem de operare integrat în codul generat, numit FreeRTOS. El va permite rularea pe sarcini a proiectului în perioade delimitate de timp astfel ca gradul rulării proiectului să fie cât mai paralelizat posibil.
Sarcinile care au fost create în configurarea FreeRTOS a proiectului creat în STM32CubeMX au fost create astfel:
void StartSDCardTask(void const * argument);
void StartRTCTask(void const * argument);
void StartMAI0_7CtrlTask(void const * argument);
void StartMAI8_15CtrlTask(void const * argument);
void StartSettingMngTask(void const * argument);
void StartUsbVcpCtrlTask(void const * argument);
void StartUsbVcpCommTask(void const * argument);
void StartAddressCtrlTask(void const * argument);
void StartPwrSuppCtrlTask(void const * argument);
void StartBus485Task(void const * argument),
unde:
StartSDCardTask este sarcina care va ține de activitatea cardului micro SD;
StartRTCTask este sarcina care va ține de interacțiunea cu chip-ul extern RTC;
StartMAI0_7CtrlTask este sarcina care va ține de activitatea canalelor 0 ÷ 7 ale sistemului de achiziții de date;
StartMAI8_15CtrlTask este sarcina care va ține de activitatea canalelor 8 ÷ 15 ale sistemului de achiziții de date;
StartSettingMngTask este sarcina care va ține de interacțiunea cu chip-ul extern EEPROM și va lua datele ROM la necesitate.
StartUsbVcpCtrlTask și StartUsbVcpCommTask sunt sarcini ce țin de interacțiunea dispozitivului cu interfața grafică;
StartAddressCtrlTask este sarcina care va ține de interacțiunea cu afișorul pe 3×7 segmente care va afișa adresa dispozitivului și codurile de erori;
StartPwrSuppCtrlTask este sarcina care va monitoriza valoarea tensiunii de alimentare;
StartBus485Task este sarcina care ține de interacțiunea dispozitivului cu PLC-ul.
Re-/Scrierea modulelor software în baza necesităților curente
Conducându-mă de clauza de confidențialitate semnată în cadrul întreprinderii unde s-a realizat acest proiect (la momentul elaborării acestei teze încă se afla în proces), voi descrie în continuare principiile de lucru ale dispozitivului și momentele esențiale, acompaniate de pseudo-cod.
Un dispozitiv lucrează fiabil atunci când rularea lui nu este stopată. Atunci când dispozitivul ajunge la destinatar, în urma modificării configurărilor senzorilor de către utilizator, datele sunt stocate în chip-ul extern EEPROM, de unde eventual se va continua salvarea și citirea datelor din EEPROM.
Însă nu sunt excluse cazurile când EEPROM-ul poate da greș, iar atunci avem nevoie să compensăm rularea modulului cu date păstrate implicit în memoria ROM a procesorului pentru reluarea dispozitivului într-un mod sigur până la depistarea erorii.
Astfel, avem modulul AppRomConfig, care conține:
Configurarea EEPROM-ului, cu privire la:
Canalul de comunicare procesor – EEPROM;
Adresa fizică a EEPROM-ului;
Capacitatea maximă de stocare a datelor în EEPROM, în octeți.
Configurarea RTC-ului, cu privire la:
Canalul de comunicare procesor – RTC;
Adresa fizică a RTC-ului.
Configurarea modulului de intrări analogice, cu privire la:
Versiunea software-ului ce rulează pe dispozitiv;
Numărul serial al dispozitivului;
Adresa fizică a dispozitivului;
4/8/12/16 configurări ale senzorilor în dependență de tipul modulului, cu privire la:
Valoarea minimă ce poate fi obținută de la ADC;
Valoarea maximă ce poate fi obținută de la ADC;
Valoarea minimă ce o poate avea senzorul;
Valoarea maximă ce o poate avea senzorul;
Valoarea implicită a senzorului;
Valoarea de corecție a valorii de la senzor;
Tipul senzorului;
Tipul filtrului;
Starea conexiunii senzorului;
Unitatea de măsură;
Numărul de măsurări pentru a forma media de la ADC;
Numărul de măsurări pentru a forma media valorii de senzor;
Numărul de valori care se vor exclude în urma sortării și filtrării datelor;
4 parametri de calibrare ai filtrului Kalman.
Configurarea canalului de ADC intern pe procesor, cu privire la:
Tipul senzorului;
Tensiunea de referință a senzorului;
Numărul specific al ADC-ului;
Numărul specific al canalului de pe ADC-ul sus menționat;
Valoarea minimă ce poate fi obținută de la ADC;
Valoarea maximă ce poate fi obținută de la ADC;
Valoarea minimă ce o poate avea senzorul;
Valoarea maximă ce o poate avea senzorul.
Pe lângă acest modul, mai e prezent modulul SalAdsConfig, ce vizează parametrii statici ale dispozitivului cu privire la măsurare și care conține:
Numerotarea pinilor dispozitivelor externe procesorului;
Definirea adreselor fizice ale dispozitivelor externe procesorului;
Numărul dispozitivelor externe;
Repartizarea pinilor dispozitivelor externe pentru fiecare ADC în parte, cu privire la:
Pinul RESET (activ pe zero) (resetarea ADC-ului cu date inițiale, de la fabrică);
Pinul CHIP SELECT (activ pe zero) (includerea/excluderea ADC-ului din rețeaua de comunicare prin SPI);
Pinul START (activ pe unitate) (pornirea/oprirea ADC-ul);
Pinul MUX (activ pe unitate) (pornirea/oprirea dispozitivului ce permite curgerea curenților din ADC);
Pinii SEL0 și SEL1 (activi pe unitate) (alegerea canalului de măsurare a RTD);
4 pini de canale (activi pe unitate);
Configurarea portului extern, care conține 4 regiștri externi, fiecare conținând:
Canalul de comunicare procesor – registru extern TCA9554A;
Adresa fizică a registrului extern TCA9554A.
Configurări ale ADC-ului în dependență de tipul de senzor, cu privire la:
Surse de curent;
Selecția canalelor de pe ADC;
Surse interne de referință;
Surse externe de referință;
Amplificare;
Rata de eșantionare a datelor;
Semnalarea finalității conversiei;
Valoarea surselor de curent;
Pinii surselor de curent;
Configurări ale pinilor de pe procesor spre care se semnalează finalitatea conversiei:
Portul;
Pinul;
Activ pe zero;
Sensibilitate.
Pe lângă acestea, mai sunt și configurări în modulul AppRamConfig ce țin de comunicare:
Canalul de comunicare modul intrări – PLC/interfață grafică;
Configurarea mesajului de intrare:
Secvența de sincronizare;
Configurarea capului de mesaj, cu privire la:
Adresa receptorului;
Adresa emițătorului;
Numărul de octeți de date (până la 255);
Comanda de efectuat;
Corpul mesajului;
Suma de control a mesalui;
Configurarea mesajului de ieșire (asemenea celui de intrare);
Valoarea de timp la atingerea căreia se consideră o conexiune de comunicare eronată;
Statistica comunicării, cu privire la:
Adresa dispozitivului;
Numărul de mesaje trimise;
Numărul de mesaje recepționate;
Numărul de epuizări a limitei de timp după etapa de sincronizare a mesajului;
Numărul de epuizări a limitei de timp la etapa de așteptare a octeților;
Numărul de erori ale sumei de control.
După cum s-a specificat în paragraful precedent, codul rulează asemenea unui sistem de operare, și reprezintă un set de sarcini ce se efectuează anumite perioade de timp, cedând resurse altor proceduri și revenind în rândul de așteptare pentru executare.
Astfel, avem sarcini care se pot realiza independent de celelalte și sarcini care pot începe execuția doar din momentul finalizării execuției anumitor sarcini anterioare.
Înainte de a descrie sarcinilie, e de menționat faptul că la fiecare conectare a dispozitivului, acesta se configurează cu careva date inițiale de care următoarele funcționalități se vor utiliza. Astfel, are loc:
Resetarea tuturor periferiilor;
Inițializarea interfeței Flash;
Configurarea ceasului de sistem;
Inițializarea periferiei GPIO;
Inițializarea periferiei DMA;
Inițializarea periferiilor I2C1, I2C2, I2C4;
Inițializarea periferiilor SPI1, SPI2;
Inițializarea periferiei SDMMC1_SD;
Inițializarea periferiei UART;
Inițializarea periferiei ADC;
Inițializarea periferiei IWDG.
Sarcini independente sunt:
StartRTCTask, consecutivitatea etapelor acestei sarcini este:
uint16_t RtcInit(tRealTimeClockConfig* pRtcConfig), care are ca scop umplerea obiectului tRtc cu configurarea de RTC și datele inițiale ale timpului;
uint16_t RegSetCommand(void), care, având configurarea de RTC încărcată în obiect, prin canalul de comunicare I2C corespunzător configurării către adresa chip-ului RTC, va înscrie parametrii necesari în chip astfel ca acesta să-și poată porni activitatea corespunzător necesităților curente;
uint16_t RtcClockSetTime(tDateTime* const pTime), care va seta o anume valoare a timpului în cazul în care aceasta întâlnește toate cerințele de corectitudine;
uint16_t RtcControl(void), care va extrage periodic datele stocate în chip-ul RTC și pe care le va supune unei verificări de corespundere în anumite diapazoane conform datasheet-ului.
E de menționat faptul că funcții aferente acestei sarcini sunt mai multe. Toate funcțiile ce țin de RTC se supun anumitor verificări, iar depistarea a careva erori se va informa într-o structură special realizată pentru urmărirea erorilor prin setarea bitului corespunzător RtcErr și care va putea fi evaluată de PLC sau vizualizată de utilizator prin interfața grafică.
StartPwrSuppCtrlTask, consecutivitatea etapelor acestei sarcini este:
uint16_t SensorInit(tSensor *ptSensor, tConfigSensor *ptConfig, tStoredSensor *ptStored), care are ca scop umplerea obiectului de tSenzor cu configurarea de senzor și date inițiale ale valorilor aferente;
uint16_t SensorRead(tSensor *ptSensor), care are ca scop citirea consecutivă a datelor de pe ADC în scopul verificării nivelului tensiunii de alimentare.
E de menționat faptul că funcții aferente acestei sarcini sunt mai multe. Toate funcțiile ce țin de senzorul tensiunii de alimentare se supun anumitor verificări, iar depistarea a careva erori se va informa într-o structură special realizată pentru urmărirea erorilor prin setarea bitului corespunzător PowerSupplyErr și care va putea fi evaluată de PLC sau vizualizată de utilizator prin interfața grafică.
StartBus485Task, consecutivitatea etapelor acestei sarcini este:
uint16_t InitCommObject(tCommObj *pComm), care are ca scop umplerea obiectului de tip tCommObj cu configurarea de comunicare și date inițiale ale valorilor aferente;
uint16_t InitQueue(tQueue *pQueue, uint8_t *pb, uint8_t len), care are ca scop inițializarea obiectului de tip tQueue;
void UART_ActivateRxInterr(EUARTModule eID, bool bEnable), care activează întreruperea pe recepție de date prin UART;
uint16_t PLCExtNetworkControl(tCommObj const *pComm), care urmărește procesul de comunicare a dispozitivului cu PLC-ul prin următoarele funcții:
uint16_t ExtCommReceiveMessage(tCommObj const *pComm, bool* gotMessageState), prin care se:
precaută byte cu byte combinația de sincronizare care va reprezenta începutul mesajului;
se încearcă citirea capului de mesaj (eșuarea căreia va conduce spre epuizarea limitei de timp și ieșirea din funcție);
se încearcă citirea corpului mesajului (eșuarea căreia va conduce spre epuizarea limitei de timp și ieșirea din funcție);
verificarea sumei de control și a adresei destinatarului (necorespunderea cărora va conduce știți deja și singuri unde);
uint16_t ExtComm_PrepareOutgoingMessage(tCommObj const *pComm), care va verifica corectitudinea tipului modulului la care se adresează mesajul și comanda către acesta de efectuat;
uint16_t CommSendMessage(tCommObj const *pComm), care va transmite prin UART către PLC mesajul format.
E de menționat faptul că funcții aferente acestei sarcini sunt mai multe. Toate funcțiile ce țin de comunicarea cu PLC se supun anumitor verificări, iar depistarea a careva erori se va informa într-o structură special realizată pentru urmărirea erorilor prin setarea bitului corespunzător SoftErr și care va putea fi evaluată de PLC sau vizualizată de utilizator prin interfața grafică.
StartUsbVcpCtrlTask, se comportă asemenea uint16_t PLCExtNetworkControl(tCommObj const *pComm), cu mici excepții. Această funcție urmărește procesul de comunicare a dispozitivului cu interfața grafică.
StartSettingMngTask, consecutivitatea etapelor acestei sarcini este:
uint16_t SettingManageInit(tEepromConfig* pEepromConfig, uint8_t* pRomConfig, uint8_t* pEepromImg, const uint16_t dataLength), care are ca scop configurarea EEPROM-ului, încărcarea asistată de programator a configurărilor la prima pornire și continua scriere în/citire din EEPROM la modificarea configurărilor. Această funcție răspunde de:
uint16_t RamClearAllData(uint16_t *pSource, const uint16_t sourceSize), pregătirea spațiului în memoria operativă pentru a încărca datele din EEPROM/ROM;
uint16_t EepromInit(tEepromConfig *pEepromConfig), încărcarea configurării EEPROM-ului ce ține de canalul de comunicare și adresa fizică a dispozitivului în obiectul de tip tEepromObj;
uint16_t EepromChipToEepromImage(uint8_t *pDestination, const uint16_t sourceStart, const uint16_t sourceSize), încărcarea datelor din chip-ul extern EEPROM în memoria operativă;
uint16_t CalculateCrc(uint8_t * pSource, uint16_t * pCrcValue, const uint16_t dataLenght), calcularea sumei de control a datelor încărcate în memoria operativă;
uint16_t EepromCalculateCrc(uint16_t * pCrcCalc, uint16_t addrOnChip, uint16_t dataLenght) citirea octet cu octet a valorilor de pe chip și calcularea sumei de control pe chip;
în cazul inegalității sumei de control operative cu cea fizică, se execută funcția: uint16_t RomToEepromImage(uint8_t* pRomConfig, uint8_t* pEepromImg, const uint16_t dataLength), care are ca scop încărcarea configurărilor de fabrică în chip-ul extern EEPROM.
uint16_t SettingsManageRefreshData(uint8_t* pEepromImg, const uint16_t dataLenght), care monitorizează starea sumei de control a configurării din memoria operativă și, în cazul unor modificări de configurare, are loc înscrierea lor în chip-ul extern EEPROM prin intermediul funcției: uint16_t WriteDataWithCrc(uint8_t *pSource, const uint16_t sourceStart, const uint16_t sourceSize).
Sarcini dependente sunt:
StartMAI0_7CtrlTask, dependentă de void WaitInit(void);
StartMAI8_15CtrlTask, dependentă de void WaitAdcInit(void);
StartAddressCtrlTask, dependentă de: void WaitAdcInit(void). Consecutivitatea etapelor acestei sarcini este:
void InitSegValue(void), care are ca scop resetarea afișorului cu 3×7 segmente și inițializarea șirurilor în care se vor conține erorile;
uint16_t AddressControl2ndVersion(tMaiObject* const pMaiObj), care are menirea de a completa, în caz de prezență, șirurile cu erori și de a le afișa, rând pe rând, pe afișor.
E de menționat faptul că funcții aferente acestei sarcini sunt mai multe. Toate funcțiile ce țin de comunicarea cu PLC se supun anumitor verificări, iar depistarea a careva erori se va informa într-o structură special realizată pentru urmărirea erorilor prin setarea bitului corespunzător SoftErr și care va putea fi evaluată de PLC sau vizualizată de utilizator prin interfața grafică.
Primele 2 sarcini dependente de mai sus sunt echivalente, cu o singură excepție și anume:
prima sarcină așteaptă inițializarea configurărilor din EEPROM în obiect, după care cheamă funcția de inițializare a CAD-urilor;
a doua sarcină așteaptă inițializarea CAD-urilor, inițiată de prima sarcină.
În cazul în care tipul modulului va fi cu 4/8 intrări analogice, sarcina StartMAI8_15CtrlTask nu va fi executată.
Dacă inițializarea EEPROM-ului dă greș, sarcina StartMAI0_7CtrlTask nu va fi efectuată și, prin urmare, nici sarcinile StartMAI8_15CtrlTask și StartAddressCtrlTask nu vor fi executate.
Dacă inițializarea EEPROM-ului are loc cu succes, dar inițializarea DAC-urilor dă greș, va fi semnalată eroarea care nu va permite efectuarea atât a următoarelor funcții din sarcina StartMAI0_7CtrlTask, cât și a sarcinilor StartMAI8_15CtrlTask și StartAddressCtrlTask.
StartMAI0_7CtrlTask e diferită de StartMAI8_15CtrlTask prin faptul că aici avem chemarea funcție de inițializare a CAD-urilor: uint16_t SalAds1248Init(void). Această funcție are menirea de a forma obiectele fiecărui ADC cu configurările din Ads1248Configs. Astfel, consecutivitatea acestei funcții e următoarea:
uint16_t SalAds1248_1_4_InitConfigsStructs(void), care conține funcțiile de inițializare a obiectului de tip tExternPort care conțin canalele de comunicare prin I2C și adresele fizice ale dispozitivelor externe; precum și atribuirea canalelor de comunicare prin SPI și atribuirea structurilor de pini aferenți fiecărui ADC în parte;
uint16_t SalAds1248DeviceInit(tAds1248Obj * const pAds1248Object, tAds1248Config * const pAds1248Conf, tStoredInputSignal* const pAds1248DrdyConfig), care constă în inițializarea dispozitivelor externe conform pinilor aferenți fiecărui ADC și inițializarea pinilor GPIO pe procesor care semnalează finalitatea conversiilor.
După ce această inițializare are loc cu succes, ambele sarcini vor continua execuția într-un mod similar, și anume:
uint16_t SslMaiInit0_7Mai(tMaiObject*const pMaiObj, tMaiConfig*const pMaiConfig, tMaiRomConfig*const pMaiRomConfig) și uint16_t SslMaiInit8_15Mai (tMaiObject* const pMaiObj, tMaiConfig* const pMaiConfig, tMaiRomConfig* const pMaiRomConfig) au ca scop atribuirea configurării, obținute în urma inițializării EEPROM-ului, obiectului de tip tMaiObject și, în baza lor, inițializarea configurărilor senzorilor;
uint16_t SslMaiMeasurements0_7(tMaiObject* const pMaiObj) și uint16_t SslMaiMeasurements8_15(tMaiObject* const pMaiObj) au ca scop citirea fiecărui senzor, apelând funcția uint16_t SalSensorReadSensor(tSensorObject* const pSensorObject, uint8_t channelId). Această funcție conține alte 3 funcții care, practic, sunt responsabile:
de pregătirea fiecărui canal pentru a fi măsurat (1);
obținerea valorilor de la canal (2);
adăugarea și filtrarea datelor (3).
uint16_t SalAds1248PrepareAdc(uint8_t sensorNr,tSensorType sensorType, tPeripheryConfig* const pPeripheryConfig, tAds1248RegConfig* const pAds1248RegConf, tAds1248Obj* const pAds1248Obj) va pregăti canalul de măsurare știindu-se doar numărul canalului și tipul senzorului. Astfel, se va:
determina starea fiecărui pin al dispozitivelor externe de configurat;
determina configurarea necesară de a fi încărcată în ADC;
seta periferia după calculele de mai sus;
încărca configurarea în ADC.
uint16_t SalAds1248GetNewData(tAds1248Obj* const pAds1248Object) va extrage datele din canalul și ADC-ul configurate în pasul precedent. Astfel, se va:
transmite prin SPI spre ADC comanda de declanșare a unei conversii noi;
aștepta finisarea conversiei;
transmite prin SPI spre ADC comanda de extragere a datelor obținute;
stoca informația într-o variabilă de a fi transmisă către funcția următoare.
uint16_t SalSensorAddValue(tSensorObject* const pSensorObject, uint32_t valueToAdd) va prelua valoarea convertită din pasul precedent și o va adăuga în obiectul de senzor corespunzător canalului, în primul șir de stocare a datelor. Când șirul va fi plin, se va sorta șirul în ordine crescătoare, vor fi excluse câteva valori din ambele capete ale șirului și va fi calculată media șirului. Această valoare, în dependență de tipul senzorului de la care se iau măsurările, va fi transmisă unei funcții care va transforma această valoare medie din cod ADC în valoare de senzor și o va adăuga celui de-al doilea șir de stocare a datelor. Când șirul va fi plin, se va face media aritmetică a valorilor și se va compune valoarea finală obținută de la senzor.
Comunicarea dintre PLC și dispozitiv sau interfață grafică și dispozitiv are ca scop monitorizarea și acționarea dispozitivului în scopuri corespunzătoare normativelor de utilizare. Astfel, dispozitivului i se poate comunica o comandă care să:
verifice tipul dispozitivului în dependență de adresa fizică;
furnizeze datele care se conțin la moment în obiectul de tip tMaiObj;
furnizeze configurările care se conțin la moment în obiectul de tip tMaiConfig;
seteze configurări în obiectul de tip tMaiConfig;
seteze valoarea de timp în chip-ul extern RTC;
reseteze alarmele depistate.
Erorile care se stochează și se transmit către PLC/interfața grafică sunt specificate în paragraful următor.
Elaborarea software-ului pentru interfațarea grafică cu utilizatorul
După ce s-au scris modulele software, a apărut necesitatea de a se afișa continuu, pe o interfață grafică, starea actuală a dispozitivului și toți parametrii ce îl vizează cu scopul de a actualiza informațiile și de a ține la curent utilizatorii. Pentru a minimiza și a categoriza parametrii ce pot fi urmăriți de către utilizatori, s-au împărțit setările de monitorizare în două grupe:
Configurări;
Erori.
În grupul de configurări se vor conține toate configurările senzorilor, care pot fi nu doar monitorizați, ci și setați după necesitățile clientului. În această grupă se mai conțin date setabile referitoare la modul de stocare a datelor pe cardul micro SD, numărul serial al dispozitivului, adresa fizică a dispozitivului, dar și valorile propriu-zise citite de pe senzori. Grupul de configurări este reprezentat în Figura 3.2.
În grupul de erori se vor afișa toate erorile care au fost depistate de dispozitiv și au fost transmise prin comunicare interfeței grafice în ordinea semnalării și afișării lor pentru utilizator. Aici se numără toate erorile ce țin de configurările incorecte ale senzorilor, erori de setare incorectă a modului de stocare a datelor pe cardul micro SD, dar și erori generale privind citirea/scrierea din/în EEPROM, nivelul tensiunii de alimentare, eroare de software, citirea/scrierea din/în RTC, scrierea în cardul micro SD, dar și erorile privind nivelul valorilor de la senzori dacă acestea ies din limitele admisibile de măsurare. Grupul de erori este reprezentat în Figura 3.7.
Fig. 3.2. Grupul de configurări ale sistemului de achiziții de date
Fig. 3.3. Configurările senzorilor ce țin de valori
În Figura 3.3 se pot observa următoarele configurări ale senzorilor:
rawMinLimit, limita de jos a valorii de ADC ce poate fi obținută la conectarea unui anumit senzor, numită limita de jos a valorii convertite de DAC;
rawMaxLimit, limita de sus a valorii de ADC ce poate fi obținută la conectarea unui anumit senzor, numită limita de sus a valorii convertite de DAC;
sensMinLimit, limita de jos a valorii de ADC transforamte după o anumită formulă în dependență de senzor, numită limita de jos a valorii de la senzor;
sensMaxLimit, limita de sus a valorii de ADC transformate după o anumită formulă în dependență de senzor, numită limita de sus a valorii de la senzor;
defaultValue, valoarea implicită a unui senzor;
correction, valoarea de corectare a valorii de la senzor.
Fig. 3.4. Configurările ce țin de tipul senzorului, al filtrului și al unității de măsură
În Figura 3.4 se pot observa următoarele configurări ale senzorilor:
sensorType, prin care se poate defini tipul senzorului cu care se lucrează;
filterType, prin care se poate defini tipul filtrului prin care se fac calculele;
measureUnit, prin care se poate defini unitatea de măsură cu care se lucrează.
Fig. 3.5. Configurările senzorilor ce țin de conexiune și filtrare
În Figura 3.5 se pot observa următoarele configurări ale senzorilor:
connectionState, prin care un anumit senzor se poate include/exclude software din procesul de lucru al dispozitivului;
rawBufSize, lungimea șirului care va conține citiri consecutive ale unui anumit senzor;
transBufSize, lungimea șirului care va conține valorile de ADC transformate după o anumită formulă în dependență de senzor;
peakRemoveSize, numărul de valori care vor fi omise dintr-un capăt al șirului filtrat și din altul la momentul calculării valorii finale cu scopul de a reduce vârfurile nedorite și de a avea o valoare medie a șirului cât mai aproape de cea reală.
Fig. 3.6. Configurările senzorilor ce țin de parametrii filtrului Kalman
În Figura 3.6 sunt menționate configurările ce țin de parametrii filtrului Kalman care reprezintă valori cunoscute la momentul inițial sub formă de erori de diferit spectru care se iau în considerare la actualizarea valorii măsurate.
Fig. 3.7. Grupul de erori ale sistemului de achiziții de date
Fig. 3.8. Erori ce țin de valori inadmisibile ale senzorilor
După cum s-a menționat anterior, pentru a determina dacă și ce erori apar pe parcursul funcționării dispozitivului, au fost introduse software elemente care să păstreze în memoria operativă date privind anumite circumstanțe care vizează rularea in-/corectă a programului.
Astfel, prin mesajul de comunicare se transmit datele ce țin de lipsa/prezența erorilor și, în dependență de aceste date, pe interfață se sting/aprind indicatoarele corespunzătoare erorilor recepționate.
Cu toate că în Figura 3.8 sunt menționate toate configurările ce țin de senzori, actualmente, în timpul rulării programului se pot aprinde indicatoarele 1-4 și 7-12. Pentru restul indicatoarelor, la moment, nu sunt valori care ar putea fi limitate astfel ca să fie depistate erori. Aceste indicatoare au fost adăugate în caz de se vor adăuga opțiunile respective în viitor.
Fig. 3.9. Erori generale ale sistemului de achiziții de date.
În Figura 3.9 sunt reprezentate indicatoarele ce țin de erorile generale care pot apărea pe parcursul funcționării sistemului de achiziții de date. Astfel, avem indicatoarele:
EepromErr, semnalează orice problemă care s-a depistat în urma interacțiunii cu chip-ul extern EEPROM în/din care se înscriu/citesc configurările senzorilor la modificarea acestora/pornirea dispozitivului;
PowerSupplyErr, semnalează cazul în care tensiunea de alimentare scade sub nivelul minim admisibil, ceea ce ar putea conduce la măsurări greșite sau deteriorarea dispozitivului;
SoftErr, semnalează orice problemă de cod care ar putea apărea pe parcursul rulării programului;
RtcErr, semnalează orice problemă care s-a depistat în urma interacțiunii cu chip-ul extern RTC în/din care se înscrie/citește valoarea timpului;
SDCardErr, semnalează orice problemă care s-a depistat în timpul interacțiunii cu cardul micro SD;
ReservedErr1, ReservedErr2 și ReservedErr3 sunt indicatoare pentru erorile care vor fi introduse în viitor în caz de necesitate.
Fig. 3.10. Erori ce țin de setarea incorectă a modului de stocare a datelor pe cardul micro SD
În Figura 3.10 sunt reprezentate indicatoarele ce țin de erorile care pot apărea la setarea incorectă a modului de stocare a datelor pe cardul micro SD. Astfel, avem indicatoarele:
PeriodValErr, în cazul setării unei valori a timpului mai mari decât cea admisibilă;
TriggerValueErr, în cazul setării greșite a configurării ce ține de frecvența înscrierii datelor;
PeriodAndTriggerValErr, în cazul în care ambele de mai sus sunt setate greșit.
Fig. 3.11. Erorile ce țin de depășirea limitelor admisibile ale senzorilor
În Figura 3.11 sunt reprezentate indicatoarele ce țin de erorile care pot apărea în timpul citirii datelor de la ADC și calcularea valorilor finale ale senzorilor. Astfel, avem indicatoarele:
ChannelErr OverValue (stânga), cazul în care valoarea finală calculată este mai mare decât valoarea maximă pe care o poate avea senzorul, aceasta din urmă fiind prezentă în configurările senzorului respectiv;
ChannelErr UnderValue (dreapta), cazul în care valoarea finală calculată este mai mică decât valoarea minimă pe care o poate avea senzorul, aceasta din urmă fiind prezentă în configurările senzorului respectiv.
Testarea dispozitivului și corectarea erorilor
Dispozitivele utilizate pentru testarea software-ului sunt au fost:
Modul de măsurări propriu-zis, în care se încarcă software-ul și la care se conectează sursele externe de a fi măsurate (alimentat de o sursă de tensiune 24 V);
Placheta cu rezistențe variabile, care furnizează valori de tensiune în diapazoanele 0 – 5 V și 0 – 10 V pentru simularea senzorilor de tensiune (alimentat de o sursă de tensiune 24 V);
Magazinul de rezistențe, care ne oferă posibilitatea să selectăm rezistențe necesare cerințelor de măsurare. Magazinul ne permite să compunem rezistențele dorite cu tumblerele de sute, zeci, unități, zecimi și sutimi de Ω;
Debugger-ul, prin care se încarcă codul din PC în modul și care ne permite să urmărim rularea programului pe dispozitiv, să manipulăm datele în timp real și să oprim rularea în puncte dorite;
USB-to-Serial, prin care se simulează comunicarea serială 485 dintre PC și modul pentru a testa și pregăti software-ul pentru comunicarea cu PLC-ul și interfața grafică.
Fig. 3.12. Placheta cu rezistoare variabile de furnizare a tensiunii (stânga sus), modulul de măsurări analogice (stânga jos), debugger-ul (stânga jos, conectat la modul), magazinul de rezistențe (dreapta)
Am încărcat cu succes, prin intermediul debugger-ului, configurările pentru senzori din memoria ROM în memoria RAM a procesorului (Figura 3.13).
Fig. 3.13. Configurările din memoria ROM a procesorului și cele din memoria RAM
După încărcarea configurărilor, canalele respective se setează și se citesc ciclic, pe rând. Pentru a putea fi citite cu succes, în program deja se știe poziția senzorului, iar în configurări se indică tipul acestuia, parametru care se ia în calcul la setarea dizpozitivelor externe. Astfel, în Figura 3.14 se pot observa configurările și valorile măsurate pentru senzorului de tensiune, iar în Figura 3.15 – pentru senzorul RTD PT100.
Fig. 3.14. Configurările dispozitivelor externe pentru măsurarea canalului respectiv în baza senzorului de tip tensiune (sus), măsurarea în poziția rezistorului variabil maxim stânga (stânga), măsurarea în poziția rezistorului variabil maxim dreapta (dreapta)
Fig. 3.15. Configurările dispozitivelor externe pentru măsurarea canalului respectiv în baza senzorului de tip PT100 (sus), măsurarea pentru rezistența 80.3 Ohm (stânga), măsurarea pentru rezistența 194 Ohm (dreapta)
În urma rulării programului, prin comunicare se va putea seta timpul în chip-ul extern RTC. Pentru moment, comunicarea încă nu a fost testată, dar a fost testată funcționarea chip-ului RTC prin setarea din program a funcției de setare a timpului cu niște setări de moment. Astfel, după apelarea funcției și încărcarea datelor în RTC, se monitorizează prin debugger datele din RTC. Datele din RTC sunt capturate în Figura 3.16.
Fig. 3.16. Datele monitorizate din RTC (Miercuri, ora 09:22:14, data 15/05/19)
Urmărirea erorilor prin program e reprezentată în Figura 3.17.
Fig. 3.17. Erorile generale ale modului (sus), erorile de valoare pe fiecare canal (stânga, dreapta)
În Figura 3.18 e reprezentată activitatea ciclică a afișorului cu 3×7 segmente, în caz de lipsă de erori, afișează ”continuu” adresa fizică de rețea a dispozitivului. În caz de apariție a erorilor, pe lângă adresa fizică de rețea a dispozitivului, mai sunt afișate și codurile pentru fiecare eroare. Astfel, erorile generale (Figura 3.17. (sus)) au codurile de eroare 300 – 308 și erorile de canal (Figura 3.17. (stânga, dreapta)) au codurile 320 – 331.
Fig. 3.18. Codul adresei fizice de rețea a dispozitivului (sus), codul de eroare a cardului micro SD (mijloc), eroare de canal (jos)
Migrarea la placheta nouă a condus spre modificări ale codului care țin de:
Adăugarea unui I2C adițional, care permite creșterea nivelului de paralelism între procesele de configurare a dispozitivelor externe, comunicarea prin I2C exprimându-se printr-o viteză relativ lentă pentru 16 canale de configurare.
Lucrul RTC-ului s-a dovedit a fi unul cu incrementarea de timp într-un tempou extrem de redus. Acest fapt se datora cuarțului defect. Înlocuirea lui a rezolvat problema timpului.
Noul model de dispozitiv a fost elaborat cu ajutorul componentelor de valori ce diferă de cele ale modelului trecut în scopul optimizării lucrului. Astfel, s-au modificat și configurările ADC-ului care, în dependență de tipul senzorului, trebuiesc încărcate în ADC.
În timpul măsurărilor, unele configurări ale ADC-ului au fost modificate pentru a se ajunge la valorile planificate.
Configurarea ce ține de ordinea intrărilor analogice a fost modificată conform specificației tehnice primite din departamentul electronic.
Intrările analogice ale modulului au suferit modificări cu privire la pinii prin care sunt legați de un anume ADC. Aceste modificări nu au fost anunțate din timp și necorespunderea dată a condus la o perioadă mai lungă de timp pentru a fi depistată.
La momentul scrierii acestor rânduri, codul dispozitivului suferă schimbări de migrare și adaptare la noul hardware, iar testarea codului se va prelungi pe o perioadă mai lungă de timp în scopul evitării apariției unor eventuale erori neprevăzute la locul destinat.
ARGUMENTAREA ECONOMICĂ A PROIECTULUI
Actualitatea temei și planificarea lucrărilor de executare a proiectului
Analiza economică a unui proiect reprezintă, în esență, primul și cel mai important pas în contemplarea unui plan de determinare a necesităților legate de resursele financiare, umane, de timp din care se poate sintetiza concluzia referitoare la cost-eficiența realizării proiectului corespunzător.
Capitolul curent are menirea de a aduce o noțiune de claritate în cadrul elaborării unui modul de intrări analogice în scopul de a urmări evoluția tuturor tipurilor de investiții. În cazul satisfacerii necesităților întreprinderii, acest dispozitiv va fi inclus în lista de dispozitive destinate comercializării.
Un sistem de achiziție de date este un modul prin intermediul căruia se monitorizează starea instalațiilor și a incintei în general. Există o diversitate copleșitoare de astfel de module pe piața internațională, scopul lor este același și anume transformarea datelor analogice furnizate de senzori în formă digitală, prelucrarea și transmiterea lor unității centrale care acționează modulele analogice sau digitale de ieșire în baza acestor informații.
Astfel, se pune sarcina de elaborare și dezvoltare a unui modul de măsurări pe baza intrărilor analogice care va fi produs la întreprindere și va fi direcționat spre comercializare atât pe piața națională, cât și pe cea internațională.
Clientela pieții este destul de variată, aceasta fiind reprezentată de:
varietate largă de uzine industriale;
sisteme de încălzire/răcire, irigare, monitorizare;
laboratoare;
locuințe cu sisteme de smart-control etc.
Actualitatea temei: după părerea mea, tema dată este una actuală din mai multe puncte de vedere. Prezența unui astfel de modul în întreprinderi și sisteme industriale este indispensabilă, costul scăzut și precizia funcționării reprezentând avantaje mari, ceea ce fac dispozitivul accesibil pentru mai multe categorii de cumpărători.
Scopul tezei: elaborarea părții software pentru sistemul de achiziții prezent pentru ca cel din urmă să poată exercita funcțiile prevăzute încă la etapa proiectare. Codul software trebuie:
să fie lizibil;
să prezinte principii ușor de înțeles și de către persoanele neinițiate;
să fie relativ ușor de modificat/extins;
să fie cât mai modular;
să fie cât mai bine explicat, atât prin denumirile variabilelor și funcțiilor, cât și prin comentarii adiționale.
Obiectivele setate pentru îndeplinirea scopului tezei:
Cercetarea principiilor de funcționare a modulelor de intrări analogice (Cap. I)
Elaborarea schemei bloc a unui sistem de achiziții de date (Cap. II)
Studierea metodei de manipulare cu prototipul prezent (Cap. II)
Utilizarea prototipului actual în scopul dezvoltării software-ului (Cap. III)
Adaptarea software-ului la modelul final (Cap. III)
Testarea dispozitivului final (Cap. III)
Analiza SWOT
Analiza SWOT (cunoscută și ca matricea/diagrama SWOT, din engleză Strengths, Weaknesses, Opportunities and Threats) reprezintă o metodă de planificare strategică, utilizată pentru a ajuta o persoană sau organizație să identifice punctele forte, slabe, oportunitățile și riscurile (amenințările) corelate competiției de afaceri sau planificării de proiect. Această analiză are menirea de a evidenția obiectivele intenției și a identifica factorii interni și externi ne-/favorabili atingerii acestor obiective. În urma efectuării unui astfel de analize, adesea apar întrebări și răspunsuri la acestea care conduc la generarea unei informații utile pentru fiecare categorie în scopul eficientizării studiului și depistării dez/-avantajelor competitive.
Analiza SWOT a proiectului e reprezentată în Figura 4.1.
[Sursa: elaborat de autor]
În urma enumerării punctelor SWOT, putem trage concluzia că acest proiect are un potențial economic ridicat de a fi comercializat pe piață. Încercarea întreprinderii de a crea primul său dispozitiv de acest fel va reprezenta un obiectiv dificil de atins, însă odată realizat, acesta va putea fi asamblat și programat în perioade scurte de timp, de unde reiese că cea mai de durată și costisitoare perioadă de producere este cea de creare a primului exemplar. Aceste costuri vor fi calculate în argumentarea de față, însă nu reprezintă adevărul general pentru producerea eventualelor module de acest tip.
Planificarea elaborării sistemului de achiziții de date
Pentru a atinge obiectivele specificate, e necesară o planificare minuțioasă a pașilor ce trebuiesc efectuați pentru a se ajunge la scopul propus. Astfel, apare necesitatea de a elabora un plan ce va conține lucrările de executat și particularitățile de durată ale acestora.
Atât lucrările de proiectare, cât și duratele lor sunt specificate în Tabelul 4.1.
Tabelul 4.1. Lucrările de proiectare și durata probabilă
[Sursa: elaborat de autor]
Sistemele de planificare în rețea reprezintă metodologii de ordonare logică și cronologică a activităților în planul unui proiect. Ele se bazează pe realizarea unei diagrame de ordonare a proiectului în elemente numite noduri, care reprezintă activități, cu eventuala lor unire prin săgeți pentru a afișa dependențele. Deasemenea, graful rețea permite afișarea simplificată a proceselor ce se execută în paralel.
Reprezentarea lucrărilor de proiectare și a timpului repartizat pentru fiecare lucrare se poate observa în Figura 4.2.
Fig. 4.2. Graful-rețea al consecutivității și al cronologiei realizării proiectului
Calculul estimativ al cheltuielilor de elaborare a dispozitivului
Pentru a determina sinecostul integral al dispozitivului, e necesar de a lua în calcul toate tipurile de cheltuieli care au apărut pe parcurs. Calculele vor fi efectuate în lei moldovenești (MDL).
Cheltuieli materiale
Cheltuieli materiale. Fonduri circulante
Fonduri circulante – bunurile materiale ce se includ într-un singur circuit economic și care se dețin pe o perioadă scurtă de timp (< 1 an).
Lista fondurilor circulante e reprezentată în Tabelul 4.3.
Tabelul 4.3. Cheltuieli materiale. Fonduri circulante
[Sursa: elaborat de autor]
Cheltuieli materiale. Fonduri fixe
Fonduri fixe – bunurile materiale ce se includ în mai multe circuite economic și care se dețin pe o perioadă lungă de timp (> 1 an), totodată având o valoare de intrare mai mare de 2000 lei.
Lista fondurilor fixe e reprezentată în Tabelul 4.4.
Tabelul 4.4. Cheltuieli materiale. Fonduri fixe
[Sursa: elaborat de autor]
Calcularea uzurii fondurilor fixе pеntru dispozitive și aparate sе calculеază după formula:
(4.1)
undе, – prețul inițial al utilajului;
– norma dе uzură anuală a utilajului (25%);
– timpul dе utilizarе a utilajului în proiеct, zile;
264- fondul normativ dе lucru pе an, zilе.
Cheltuieli nemateriale
Cheltuieli nemateriale. Cheltuieli indirecte de producție
În aceste cheltuieli se includ costurile indirecte, ca exemplu – iluminarea, încălzirea, accesul la internet, apă etc.
Lista cheltuielilor nemateriale indirecte de producție e reprezentată în Tabelul 4.5.
Tabelul 4.5. Cheltuieli nemateriale. Cheltuieli indirecte de producție
[Sursa: elaborat de autor]
Cheltuieli de energie electrică au apărut în rezultatul utilizării:
5 calculatoare, puterea cărora e de 500 W, care au funcționat timp de 760 ore;
Iluminare, puterea căreia e de 18 W, care a funcționat timp de 760 ore;
Signalizarea, puterea căreia e de 5 W, care a funcționat timp de 3600 ore.
Calcularea uzurii fondurilor fixе pеntru dispozitive și aparate sе calculеază după formula:
(4.2)
Unde: – puterea utilizată de unitate, kW;
– puterea de consum a unității timp de o oră, kW/h;
– timpul de funcționare a unității, zile pe lună * ore.
Știind prețul unui kW/ora de 1.79 lei, se calculează cheltuielile pentru energia electrică:
(4.3)
Cheltuielile pe internet: abonamentul de 200 lei/lună pe o perioadă de 5 luni, astfel costul pe internet este de 1000 lei.
Cheltuieli nemateriale. Cheltuieli directe de producție
Elaborarea, dezvoltarea și scrierea software-ului pentru dispozitivul dat reprezintă procese îndelungate și dificile de întreprins. Pentru a face posibilă îndeplinirea obiectivului de realizare a sistemului de achiziții, este necesar de a repartiza responsabilitățile procedurilor de implementare persoanelor competente, astfel încât să fie maximizată eficiența procesului. Tabelul 4.6. desemnează cine participă în elaborarea dispozitivului și care sunt responsabilitățile acestora în pe parcursul realizării.
Tabelul 4.6. Repartizarea responsabilităților resurselor umane
[Sursa: elaborat de autor]
Pentru a ști sinecostul real al rezultatului final, e necesar de a lua în considerație costurile de salarizare a angajaților pe perioada implicării lor în proiect. În proiecte mici și mijocii, aceste cheltuieli, deseori, sunt cele mai mari pe tot parcursul proiectului, cel puțin în crearea primului exemplar de produs, cum este și cazul de față.
Lista cheltuielilor nemateriale directe de producție, și anume cheltuielile privind retribuirea muncii, e reprezentată în Tabelul 4.7.
Tabelul 4.7. Cheltuieli nemateriale. Cheltuieli directe de producție
[Sursa: elaborat de autor]
Salariul tarifar total va fi calculat conform formulеi:
(4.4)
undе: Stt – salariul tarifar total, lеi;
Stz – salariul tarifar zilnic, lеi;
N – numărul dе zilе implicat în proiеct, zile.
Calcularеa salariului tarifar total pеntru fiеcarе angajat ce a participat în procesul elaborării dispozitivului, cu indicеlе rеspеctiv din tabеlul 4.6:
În baza salariului total, carе mai еstе numit și fondul dе rеtribuirе a muncii sе calculеază suma dеfalcărilor în Fondul Social(FS) și valoarеa primеi dе Asigurarе Mеdicală Obligatoriе (AM).
(4.5)
undе: Frm – fondul dе rеtribuirе a muncii, lеi;
Cfs – cota contribuțiilor dе asigurări socialе dе stat obligatorii.
(4.6)
undе: Frm – Fondul dе rеtribuirе a muncii, lеi;
Cam – Cota Primеlor dе asigurarе mеdicală obligatoriе sе aprobă fiеcarе an prin
Lеgеa Bugеtului Public a Rеpublicii Moldova „Privind Fondurilе Asigurării obligatorii dе Asistеnță mеdicală”.
Conform categoriilor de plătitori asigurați specificați în punctul 1.2 din anexa nr. 3 a Legii bugetului asigurărilor sociale de stat, tariful pentru sectorul privat reprezintă 18 %.
Conform „Lеgii privind Fondurilе Asigurării obligatorii dе Asistеnță mеdicală pе anul 2013” nr. 128-XVIII din 23.12.2009, cota primеi dе asigurarе obligatoriе dе asistеnță mеdicală suportata dе angajator constituiе 4,5% din fondul dе salarizarе. Calcularеa valorilor contribuțiilor în Fondul Social și a Primеlor Asigurărilor Mеdicalе Obligatorii:
Evaluarea cheltuielilor totale de proiect
În urma calculelor făcute anterior, se însumează toate cheltuielile și se determină ponderea categoriilor din costul final al produsului.
Lista cheltuielilor e reprezentată în Tabelul 4.8.
Tabelul 4.8. Evaluarea totală a proiectului
[Sursa: elaborat de autor]
Prețul de piață a produsului final
Vom calcula prețul unui dispozitiv după formula:
(4.7)
unde: – prețul unei singure unități de produs, lei;
– cheltuielile totale pentru elaborarea primului dispozitiv, lei;
– fondurile circulante pentru elaborarea următoarelor unități, lei;
N – numărul de dispozitive estimate de a fi comercializate în anul curent (20).
Prețul final al dispozitivul include:
sinecostul;
profitul (15%);
TVA (20%).
Profitul = 9006.58 * 0.15 = 1350.99 (lei);
Prețul en gross = 9006.58 + 1350.99 = 10357.57 (lei);
TVA = 10357.57 * 0.2 = 2071.51 (lei)
Prețul la livrare = 10357.57 + 2071.51 = 12429.08 (lei).
Evaluarea eficienței economice a proiectului
Pentru a demonstra și consolida utilitatea acestui produs, e necesar de a enumera avantajele de care acesta dispune:
Clientela pieții este destul de variată, aceasta fiind reprezentată de:
varietate largă de uzine industriale;
sisteme de încălzire/răcire, irigare, monitorizare;
laboratoare;
locuințe cu sisteme de smart-control etc.
Dispozitivul creat pentru 16 intrări analogice poate fi livrat și ca modul de 4/8/12 intrări analogice;
Rezoluția înaltă a CAD-urilor permite o precizie înaltă de măsurare;
Diversitate largă a tipurilor de senzori ce pot fi conectați;
Posibilitatea de stocare a datelor într-un card micro SD;
Conține un afișor pe 3×7 segmente pentru a putea vizualiza adresa fizică a dispozitivului;
Conține un chip extern EEPROM în care se pot înscrie configurări personalizate;
Poate fi manipulat printr-o interfață grafică cu utilizatorul;
Conține o logică de urmărire a erorilor;
Urmărește nivelul tensiunii de alimentare;
Este prezent suportul tehnic din partea întreprinderii;
Se efectuează mentenanța dispozitivului la necesitate din partea întreprinderii;
Tabelul 4.9. Avantajele modelului nou față de cel vechi
În urma calculelor efectuate, se poate de afirmat că acest dispozitiv este disponibil categoriilor de clienți cu veniturii medii și mari.
E de menționat faptul că acest modul este unul din mai multe componente al unui sistem de automatizare a proceselor, având ca unitate centrală PLC-ul. Un astfel de sistem are multe avantaje:
Executare continuă a lucrărilor;
Monitorizarea și ameliorarea proceselor;
Reducerea riscurilor de traumatizare la locul de muncă;
Cost-eficiență înaltă pe termen lung ș.a.
Cel mai mare dezavantaj în cazul dat este reprezentat prin înlocuirea forței de muncă umane cu cea automatizată, adică prin creșterea șomajului.
Concluzie
Un component primordial al unui PLC este sistemul de achiziție de date, prin intermediul căruia se monitorizează starea instalațiilor și a incintei în general. Există o diversitate copleșitoare de astfel de module pe piață, însă, până la urmă, scopul lor este același și anume transformarea datelor analogice furnizate de senzori în formă digitală, prelucrarea și transmiterea lor unității centrale care acționează ieșirile modulelelor analogice sau digitale de ieșire în baza acestor informații.
Astfel, se pune sarcina de elaborare și dezvoltare a software-ului pentru modulul de măsurări pe baza intrărilor analogice care ar primi date de la mediul extern prin intermediul senzorilor, va verifica și filtra aceste date și le va trimite unității centrale pentru a se efectua manipulări prin intermediul modulelor de ieșire asupra sistemului în dependență de datele prelucrate.
Obiectivele urmărite în procesul de realizare a sarcinii sunt următoarele:
Cercetarea principiilor de funcționare a modulelor de intrări analogice (Cap. I)
Elaborarea schemei bloc a unui sistem de achiziții de date (Cap. II)
Studierea metodei de manipulare cu prototipul prezent (Cap. II)
Utilizarea prototipului actual în scopul dezvoltării software-ului (Cap. III)
Adaptarea software-ului la modelul final (Cap. III)
Testarea dispozitivului final (Cap. III)
În urma implicării în proiectul dat, am studiat principiile de lucru a unui sistem de achiziții de date. Am studiat cerințele care trebuiesc satisfăcute pentru a aduce dispozitivul la o stare de funcționare planificată inițial.
Luând în vedere că acest dispozitiv este unul comercial, care are destinația de a ajunge la o hidrocentrală din republică, responsabilitatea de a implementa cu succes toate ideile puse ca bază anterior constituie o importanță vitală atât pentru firma care furnizează dispozitivul, cât și pentru întreprinderea care îl va primi și, respectiv, pentru clienții care vor fi deserviți.
Sistemul de achiziții de date în cauză are menirea să fie unul de o precizie înaltă și să aibă un cost redus, astfel rezultând într-o cost eficiență ridicată.
Migrarea la placheta nouă a condus spre modificări ale codului care țin de:
Adăugarea celui de-al doilea canal de comunicare prin I2C, care permite creșterea nivelului de paralelism între procesele de configurare a dispozitivelor externe, comunicarea printr-un singur I2C exprimându-se printr-o viteză relativ lentă pentru 16 intrări analogice.
Lucrul RTC-ului s-a dovedit a fi unul cu incrementarea de timp într-un tempou extrem de redus. Acest fapt se datora cuarțului defect. Înlocuirea lui a rezolvat problema monitorizării și manipulării timpului.
Noul model de dispozitiv a fost elaborat cu ajutorul componentelor de valori ce diferă de cele ale modelului trecut în scopul optimizării lucrului. Astfel, s-au modificat și configurările ADC-ului care, în dependență de tipul senzorului, trebuiesc încărcate în ADC.
În timpul măsurărilor, unele configurări ale ADC-ului au fost modificate pentru a se ajunge la valorile planificate.
Configurarea ce ține de ordinea intrărilor analogice a fost modificată conform specificației tehnice primite din departamentul electronic.
Intrările analogice ale modulului au suferit modificări cu privire la pinii prin care sunt legați de un anume ADC. Astfel, s-au modificat configurările care se vor încărca în ADC în timpul rulării programului.
În urma lucrărilor efectuate, starea dispozitivului actual este următoarea:
Canalele 0 – 7 funcționează parțial, nu se reușește citirea senzorilor de tip U/I, doar a senzorilor tip RTD;
Canalele 8 – 15 funcționează așa cum se și preconizează;
La citirea senzorilor de tip RTD, modul de transformare a codului ADC în valoare de rezistență și din valoarea de rezistență în temperatură încă nu a fost stabilit concret;
Unele momente de precizie a datelor mai trebuiesc puse în discuție, deoarece valorile obținute puțin diferă de cele așteptate;
Afișarea codurilor de eroare se afișează cum se așteaptă;
Comunicarea modul-PLC a fost realizată la nivel de modul – aplicație PC;
Viteza de citire a senzorilor va fi mai mare dacă se va trece de la calculul polinomial al temperaturii la calcul mai simplificat pe diapazoane de valori de rezistență;
Modulul respectiv se poate utiliza în industria biomedicală;
În urma studiului economic, s-a determinat o eficiență economică ridicată a dispozitivului din considerentele cererii lui pe peață și ale rentabilității.
Bibliografie
Brief History of Electronics and its Development,https://www.elprocus.com/know-about-brief-history-of-electronics-and-their-generations/[accesat la 06/03/2019]
What is industrial automation?,https://www.surecontrols.com/what-is-industrial-automation/ [accesat la 06/03/2019]
Analog-to-Digital Converter, https://en.wikipedia.org/wiki/Analog-to-digital_converter [accesat la 06/03/2019]
Sampling (signal processing), https://en.wikipedia.org/wiki/Sampling_(signal_processing)[accesat la 06/03/2019]
Quantization in ADCs, https://dwellangle.wordpress.com/2008/05/21/quantization-in-adcs/[accesat la 06/03/2019]
Digital Filter, https://en.wikipedia.org/wiki/Digital_filter [accesat la 06/03/2019]
A. IAVORSCHI, Filtre analogice, Conspect Electronica Medicală
Filter (signal processing), https://en.wikipedia.org/wiki/Filter_(signal_processing)[accesat la 06/03/2019]
Begginer’s PLC Overview Part 1 of 4: Introduction to PLCs, https://www.myplctraining.com/beginners-plc-overview-part-1-of-4-introduction-to-plcs/[accesat la 06/03/2019]
Begginer’s PLC Overview Part 2 of 4: PLC Processor (CPUs), https://www.myplctraining.com/beginners-plc-overview-part-2-of-4-plc-processors-cpus/[accesat la 06/03/2019]
Begginer’s PLC Overview Part 2 of 4: PLC Inputs and Outputs (I/O), https://www.myplctraining.com/beginners-plc-overview-part-3-of-4-plc-inputs-and-outputs-io/[accesat la 06/03/2019]
Medical devices enter information age, https://www.automationworld.com/article/technologies/scada/medical-devices-enter-information-age[accesat la 06/03/2019]
Sisteme de achiziție și interfețe de proces. Suport de curs, https://docplayer.net/61249909-Sisteme-de-achizitie-si-interfete-de-proces-suport-de-curs.html[accesat la 06/03/2019]
Perturbațiile tranzistorii și zgomotul electric, http://electronica-azi.ro/2013/05/07/perturbatiile-tranzitorii-si-zgomotul-electric/[accesat la 06/03/2019]
S. RĂILEAN, Transformarea Fourier, Conspect Prelucrarea Semnalelor și Imaginilor Medicale
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: INTRODUCERE……………………………………………………………………………………….3 STUDIUL… [311267] (ID: 311267)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
