Sistem DE Monitorizare Si Control AL Parametrilor Ambientali DIN Spatiile Destinate Echipamentelor DE Telecomunicatii
SISTEM DE MONITORIZARE ȘI CONTROL AL PARAMETRILOR AMBIENTALI DIN SPAȚIILE DESTINATE ECHIPAMENTELOR DE TELECOMUNICAȚII
Cuprins
1. INTRODUCERE
1.1. Necesitatea monitorizării și controlul parametrilor ambientali în spațiile destinate echipamentelor de telecomunicații.
1.2. Structura tezei
1.3 Aspecte privind managementul monitorizării și controlul parametrilor ambientali
1.4 Etapele de proiectare a unui sistem de monitorizare și control al parametrilor de mediu.
1.4.1. Obiective strategice și funcții.
1.4.2. Traiectoria tehnologică propusă.
2. CALCULUL EFICIENȚEI ENERGETICE IN SISTEMUL DE MONITORIZARE ȘI CONTROL AL PARAMETRILOR AMBIENTALI PENTRU SPAȚIILE DESTINATE ECHIPAMENTELOR DE TELECOMUNICAȚII
2.1. Introducere.
2.2. Structura shelter-ului.
2.2.1. Structura shelter-ului și fluxurile de caldură
2.2.2. Fluxurile de căldură, aer și umiditate prin anvelopa unui shelter
2.3. Modelul matematic al shelter-ului.
2.3.1. Modelul matematic al Dulapului Rack.
2.3.2. Modelul matematic al shelter-ului.
2.3.3. Bilanțul energetic al shelter-ului
2.4. Consumul anual de energie.
2.5. Calculul puterii instalate într-un shelter
2.6. Instalația electrică de alimentare și distribuție 230-400 Va.c.
2.7. Calitatea mediului
2.8. Considerații despre sănătate și siguranță.
2.9. Probleme cauzate de materialele de construcție ale shelter-ului de telecomunicații.
2.10. Concluzii.
3. REGLAREA AUTOMATĂ A TEMPERATURII IN INTERIORUL SHELTER-ULUI
3.1. Introducere
3.2. Structuri de reglare pentru temperatura aerului din shelter.
3.3. Reglarea temperaturii shelter-ului utilizând sistemul de ventilație.
3.3.1 Proiectarea regulatorului de temperatură
3.3.2. Studiul sistemului de reglare a temperaturii cu regulator bipozițional.
3.3.3. Studiul sistemului de reglare a temperaturii cu regulator continuu.
3.3.4. Concluzii.
4. DETECȚIA ȘI LOCALIZAREA DEFECTELOR IN INSTALAȚIA DE CLIMATIZARE.
4.1. Aspecte generale
4.2. Dispozitive de protecție
4.3. Necesitatea detecției și localizării defectelor
4.4. Stadiul actual al cunoașterii în domeniu pe plan național și internațional
4.5. Metode analitico – experimentale de detecție și localizare a defectelor
4.5.1. Metode pentru creșterea siguranței în exploatare
4.5.2. Metode analitice de compensare a defectelor generate de elementele de execuție defecte.
4.5.3. Rezultate experimentale pe shelter-ul de telecomunicatii
4.5.4. Concluzii
5. REALIZARE PROTOTIP ȘI TESTARE A SISTEMULUI DE MONITORIZARE ȘI CONTROL AL PARAMETRILOR AMBIENTALI
5.1. Introducere 1005.2. Descrierea funcționării sistemului inteligent de monitorizare și control al parametrilor ambientali pentru spațiile destinate echipamentelor de telecomunicații
5.2.1. Descrierea elementelor ce alcătuiesc sistemul de monitorizare și control
5.2.2. Descrierea funcțională a microcontrolerului pentru climatizarea și monitorizarea containerelor de telecomunicații.
5.2.2.1. Parametrii de mediu.
5.2.2.2. Descriere funcțională
5.2.2.2.1. Modulul DATA LOGGER
5.2.2.2.2. Modulul FAN CONTROLLER
5.2.2.3. Elemente componente și de conectare
5. 3. Procedură pentru testarea SMC-01.
5.4. Concluzii
6. REALIZAREA COMPONENTELOR SOFTWARE PENTRU SISTEMUL DE MONITORIZARE ȘI CONTROL
6.1. Introducere
6.2. Etapele de funcționare ale controlerului
6.2.1. Domeniul de temperatură t ≤ 5 ºC
6.2.2. Domeniul de temperatură 5 ºC < t < 15 ºC – etapa 2.
6.2.3. Domeniul de temperatura 15 ºC ≤ t < 18 ºC – etapa 3.
6.2.4. Domeniul de temperatură 18 ºC ≤ t < 25 ºC – etapa 4
6.2.5. Domeniul de temperatură 25 ºC ≤ t ≤ 30 ºC – etapa 5.
6.2.6. Domeniul de temperatură 30 ºC < t ≤ 35 ºC – etapa 6.
6.2.7. Domeniul de temperatură strict mai mare decat 35 ºC – etapa 7
6. 3. Instalare și operare CodeWarrior V6.2
6.3.1. Instalarea programului pe calculator
6.3.2. Operarea programului
6.4. Concluzii
7. CONCLUZII
7.1. CONTRIBUȚII PERSONALE
7.2. Direcții de cercetare generate de studiile efectuate
Bibliografie
Anexa 1
Anexa 2
Anexa 3
Anexa 4
Lista de figuri
1.1 Evoluția numărului de utilizatori ai telefoniei și internetului. Sursa:Ericsson ……………. 7
1.2 Dispunerea echipamentelor de telecomunicații și climatizare într-un shelt r ……………… 9
2.1. Elementele bilanțului energetic ale unui shelter. …………………………………………………… 17
2.2. Schema de interconectare a elementelor gestionate de sistemul de monitorizare și control…. 18
2.3. Fluxurile de temperatură într-un schelter de telecomunicații ……………………………………….. 19
2.4. Variația temperaturii în Dulapul Rack ……………………………………………………. 22
2.5. Variația temperaturii shelter-ului pentru 150C<Tz<350C……………………………….… 25
2.6. Variația temperaturii shelter-ului pentru -150C < Tz <100C ……………………………… 27
2.7. Variația temperaturii shelter-ului pentru Tex > 350C …………………………………….. 29
2.8. Studiul regimului de avarie …………………………………………………………….… 31
2.9. Puterea radiată de soare pe un metru pătrat în funcție de densitatea norilor. ……….……. 33
2.10. Puterea radiată de soare pe un metru pătrat în funcție de ora . ……………………………. 34
2.11. Graficul cu temperaturile medii lunare de maxim și minim din țară ……………………. 35
2.12. Schema electrică de racord și distribuție a shelter-ului. …………………………………………….. 41
3.1 Schema bloc a sistemului de reglare a temperaturii shelter-ului …………………………………….. 47
3.2 Schema bloc a sistemului de reglare cu regulator bipozițional (RBP) …………………………….. 51
3.3. Răspunsul sistemului de reglare cu regulator bipozițional …………………………………………….. 51
3.4 Schema simulink pentru modelul shelter-ului ………………………………………………………………. 53
3.5 Schema sistemului de reglare cu regulator bipozițional. ………………………………………………… 54
3.6.Temperatura exterioara de lucru este de 00C ………………………………………………………………… 55
3.7 Variația temperaturilor Tz si TVR …………………………………………………………………………………. 56
3.8 Temperatura exterioară de lucru 100C …………………………………………………………………………. 57
3.9 Temperatura exterioară de lucru 200C …………………………………………………………………………. 58
3.10 Temperatura exterioară de lucru 250C ……………………………………………………………………….. 59
3.11. Structura sistemului de reglare …………………………………………………………… 60
3.12 Temperatura exterioara este 00C ……………………………………………………………………………….. 62
3.13. Temperatura exterioara este 100C …………………………………………………………………………….. 63
3.14. Răspunsul sistemului de reglare la o variație a perturbației ∆ Qec. …………………………………. 64
3.15. Temperatura exterioară este de 200C ………………………………………………………………………… 65
3.16. Temperatura exterioară este de 250C ………………………………………………………………………… 66
3.17 Răspunsul sistemului de reglare la o variație a perturbației ∆ Qec. …………………………………. 67
3.18 Temperatura exterioară este de 200C. ………………………………………………………………………… 68
3.19 Reacția sistemului în intervalul de temperatură de la 150C la 250C ……………………… 69
3.20. Structura sistemului de reglare ………………………………………………………………………………… 70
3.21. Temperatura de lucru externa – 5 0 C ………………………………………………………………………… 71
3.22.Temperatura exterioară de la de la -50C la +50C. ……………………………………………………….. 72
3.23 Structura de reglare. ……………………………………………………………………………………………….. 74
3.24. Sistemul de control. ………………………………………………………………………………………………… 75
3.25. Temperatura exterioară variază între -50C și + 350C …………………………………………………… 76
4.1. Structură de reglare multivariabilă ……………………………………………………………. 82
4.2. Stuctură de detecție a defectelor. …………………………………………………………… 85
4.3. Structura de detecție a defectelor …………………………………………………………………………………. 88
4.4. Structura de detecție a defectelor. ……………………………………………………………………………….. 89
4.5. Structura modelului shelter-ului ……………………………………………………………… 91
4.6. Structura sistemului de detecție a defectelor. ………………………………………………. 92
4.7. Variația temperaturilor în condițiile specificate ……………………………………………. 93
4.8. Variatia comenzii regulatorului. ……………………………………………………………… 94
4.9. Detecția defectelor – metoda reziduurilor. ……………………………………………………………………. 95
4.10. Detecția defectelor cu regulator compensator. …………………………………………… 96
4.11. Detecția defectelor cu schema combinată …………………………………………………………………… 97
5.1 Vedere generala a sistemului de monitorizare și control. …………………………………… 98
5.2. Elemente gestionate si comandate de SMC-01 ………………………………………………………..………. 99
5.3. Modulul de afișare, control și microcontroler. …………………………………………………………………. 102
5.4. Modulul de alimentare +48 v / +5v, comandă relee și leduri alarmă. ……………………… 102
5.5. Sistemul de Monitorizare și Control-01 – schema bloc. …………………………………….. 103
5.6. Bloc alimentare DC – DC cu iesiri de 5v si 3,3 v …………………………………….…….. 105
5.7. Prezentare generala SMC-01………………………………………………………………… 109
5.8. Schema de conectare pentru testare a SMC-01 ………………………………………………………………. 113
6.1. Regim de încălzire când temperatura interioară este mai mică de -5 ºC. …………………………… 118
6.2. Intervale de temperatură în care funcționează SMC – 01 ………………………………………………. 119
6.3. Schema logică pentru intervalul de temperatură t ≤ 5 ºC …………………………………………………. 120
6.4. Regim de încălzire când temperatura interioară este între 5 ºC și 15 ºC. …………….…….. 122
6.5. Schema logică pentru intervalul de temperatură 5ºC < t < 15 ºC ……………………………. 122
6.6. Regim de încălzire cand temperatura interioară este între 15 ºC și 18 ºC. ………………… 124
6.7. Schema logică pentru intervalul de temperatură 15 ºC ≤ t < 18 ºC …………………………………… 124
6.8. Regim de încălzire cand temperatura interioară este între 18 ºC și 25 ºC. …………………. 126
6.9. Schema logică pentru intervalul de temperatură 18 ºC ≤ t < 25 ºC …………………………………… 126
6.10. Regim de ventilație V1 cand temperatura interioară este de 25 ºC. ………………………. 127
6.11. Regim de ventilație V2 cand temperatura interioară este de 26 ºC. …………………….… 127
6.12. Regim de ventilație V3 cand temperatura interioară este de 27 ºC. …………………….…. 128
6.13. Regim de ventilație V4 cand temperatura interioară este de 28 ºC………………….…….. 128
6.14. Regim de ventilație V5 cand temperatura interioară este de 29 ºC………………….…….. 128
6.15. Regim de ventilație V6 cand temperatura interioară este de 30 ºC………………..………. 128
6.16. Schema logică pentru intervalul de temperatură 25 ºC ≤ t ≤ 30 ºC ………………….…… 129
6.17. Regim de încălzire când temperatura interioară este între 30 ºC și 35 ºC. ……………….. 135
6.18. Schema logică pentru intervalul de temperatură 30 ºC < t ≤ 35 ºC …………………….… 135
6.19………………………………………………. 72
3.23 Structura de reglare. ……………………………………………………………………………………………….. 74
3.24. Sistemul de control. ………………………………………………………………………………………………… 75
3.25. Temperatura exterioară variază între -50C și + 350C …………………………………………………… 76
4.1. Structură de reglare multivariabilă ……………………………………………………………. 82
4.2. Stuctură de detecție a defectelor. …………………………………………………………… 85
4.3. Structura de detecție a defectelor …………………………………………………………………………………. 88
4.4. Structura de detecție a defectelor. ……………………………………………………………………………….. 89
4.5. Structura modelului shelter-ului ……………………………………………………………… 91
4.6. Structura sistemului de detecție a defectelor. ………………………………………………. 92
4.7. Variația temperaturilor în condițiile specificate ……………………………………………. 93
4.8. Variatia comenzii regulatorului. ……………………………………………………………… 94
4.9. Detecția defectelor – metoda reziduurilor. ……………………………………………………………………. 95
4.10. Detecția defectelor cu regulator compensator. …………………………………………… 96
4.11. Detecția defectelor cu schema combinată …………………………………………………………………… 97
5.1 Vedere generala a sistemului de monitorizare și control. …………………………………… 98
5.2. Elemente gestionate si comandate de SMC-01 ………………………………………………………..………. 99
5.3. Modulul de afișare, control și microcontroler. …………………………………………………………………. 102
5.4. Modulul de alimentare +48 v / +5v, comandă relee și leduri alarmă. ……………………… 102
5.5. Sistemul de Monitorizare și Control-01 – schema bloc. …………………………………….. 103
5.6. Bloc alimentare DC – DC cu iesiri de 5v si 3,3 v …………………………………….…….. 105
5.7. Prezentare generala SMC-01………………………………………………………………… 109
5.8. Schema de conectare pentru testare a SMC-01 ………………………………………………………………. 113
6.1. Regim de încălzire când temperatura interioară este mai mică de -5 ºC. …………………………… 118
6.2. Intervale de temperatură în care funcționează SMC – 01 ………………………………………………. 119
6.3. Schema logică pentru intervalul de temperatură t ≤ 5 ºC …………………………………………………. 120
6.4. Regim de încălzire când temperatura interioară este între 5 ºC și 15 ºC. …………….…….. 122
6.5. Schema logică pentru intervalul de temperatură 5ºC < t < 15 ºC ……………………………. 122
6.6. Regim de încălzire cand temperatura interioară este între 15 ºC și 18 ºC. ………………… 124
6.7. Schema logică pentru intervalul de temperatură 15 ºC ≤ t < 18 ºC …………………………………… 124
6.8. Regim de încălzire cand temperatura interioară este între 18 ºC și 25 ºC. …………………. 126
6.9. Schema logică pentru intervalul de temperatură 18 ºC ≤ t < 25 ºC …………………………………… 126
6.10. Regim de ventilație V1 cand temperatura interioară este de 25 ºC. ………………………. 127
6.11. Regim de ventilație V2 cand temperatura interioară este de 26 ºC. …………………….… 127
6.12. Regim de ventilație V3 cand temperatura interioară este de 27 ºC. …………………….…. 128
6.13. Regim de ventilație V4 cand temperatura interioară este de 28 ºC………………….…….. 128
6.14. Regim de ventilație V5 cand temperatura interioară este de 29 ºC………………….…….. 128
6.15. Regim de ventilație V6 cand temperatura interioară este de 30 ºC………………..………. 128
6.16. Schema logică pentru intervalul de temperatură 25 ºC ≤ t ≤ 30 ºC ………………….…… 129
6.17. Regim de încălzire când temperatura interioară este între 30 ºC și 35 ºC. ……………….. 135
6.18. Schema logică pentru intervalul de temperatură 30 ºC < t ≤ 35 ºC …………………….… 135
6.19. Schema logică pentru intervalul de temperatură t > 35 ºC ………………………………. 138
6.20………………………………………………
6.21………………………………………………
6.22………………………………………………
6.23………………………………………………
6.24………………………………………………
6.25………………………………………………
6.26………………………………………………
6.27………………………………………………
6.28………………………………………………
6.29………………………………………………
6.30………………………………………………
6.31………………………………………………
6.32………………………………………………
6.33………………………………………………
6.34………………………………………………
6.35………………………………………………
6.36………………………………………………
6.37………………………………………………
6.38………………………………………………
6.39………………………………………………
6.40………………………………………………
6.41………………………………………………
6.42………………………………………………
6.43………………………………………………
6.44 ………………………………………………
Lista de tabele
2.1. Modelul Dulapului Rack ………………………………………………………………. 23
2.2 Valorile coeficienților α ……………………………………………………………….. 24
2.3. Variația temperaturii shelterului pentru 150C<Tz<350C ……………………………… 26
2.4. Variația temperaturii shelterului pentru -150C<Tz<100C …………………………. …… 28
2.5. Variația temperaturii shelterului pentru Tex > 350C …………………………………… 30
2.6 Temperatura pentru o zi din lunile – Aprilie / Octombrie. …………………………………………. 36
2.7 Temperatura pentru o zi din lunile Mai / Septembrie. ………………………………………………. 36
2.8 Consumul de energie electrică pe echipamente intr-un shelter neasistat …………………… 38
2.9. Consumul de energie electrică pe echipamente intr-un shelter asistat ………………………. 39
Lista de abrevieri
SMC – 01
AC
1. INTRODUCERE
Necesitatea monitorizării și controlul parametrilor ambientali în spațiile destinate echipamentelor de telecomunicații.
Rețelele de date și voce reprezintă unul dintre cele mai importante componente ale sistemului de comunicații moderne, fară de care o activitate profesională prezentă nu se mai poate desfășura.
Accesul la informații, prelucrarea și transmiterea lor exactă, într-un timp cat mai scurt pe distante cât mai mari a constituit un factor important în asigurarea progresului unei țări. De aici a decurs și interesul acordat constant pentru dezvoltarea mijloacelor și tehnicilor de comunicații de-a lungul istoriei în întreaga lume. România a urmat îndeaproape țările promotoare ale noului în domeniul comunicațiilor, promovând și introducând aceste tehnologii. După cum rezultă din studiul efectuat de regretatul academician Prof. dr. ing. Mihai Drăgănescu în lucrarea „Istoria telecomunicațiilor în România” se remarcă rapiditatea cu care România s-a aliniat la nivelul mondial al tehnicii, adoptând la diferențe de cel mult zece ani noile tehnologii.
In ultimii ani, domeniul comunicațiilor radio a fost revoluționar prin apariția unor tehnici de transmisiuni noi, eficiente, cum ar fi comunicațiile prin microunde sau prin fibre optice, comunicațiile la mare distanță folosind sateliții de telecomunicații, comunicațiile cu spectru imprăștiat etc.
Dezvoltarea telecomunicațiilor mobile continuă intr-un mod dinamic, fiind susținută de previziunile de evoluție (figura 1) ca și de relația dintre diferiți factori ai noilor sisteme. Integrarea dintre sistemele de telecomunicații mobile și sistemele fixe, reprezintă una dintre principalele preocupări în momentul actual.
Figura 1.1 Evoluția numărului de utilizatori ai telefoniei și internetului.
Sursa:Ericsson
Această dezvoltare accelerată a comunicațiilor mobile a dus la apariția punctelor de telecomunicații care dintr-o limitare tehnică sunt la distanțe de cel mult 20 km. Aceste puncte de telecomunicații au în compunere repetoare de microunde, stații de bază de emisie-recepție, switch-uri, routere, UPS și alte echipamente, toate acestea sunt amplasate în dulapuri metalice atat în orașe dar și în zone izolate pentru care trebuiesc asigurate condiții de mediu prescrise de producatorii echipamentelor, pentru o funcționare fără întrerupere pe parcursul unui an.
Dulapurile metalice (sunt denumite în literatura de specialitate și sheltere) pentru climatizare au în dotare echipamente pentru încalzire (radiator electric) și pentru răcire (aer condiționat) dar acestea în prezent sunt conectate manual, periodic în funcție de anotimp de către personalul de întreținere. Aceasta modalitate de operare nu asigură un climat constant pentru echipamentele de telecomunicații, ceea ce duce la frecvente deranjamente, costuri ridicate de intreținere și un consum foarte mare de energie.
Această lucrare urmarește siguranța în funcționare a echipamentelor de telecomunicații, de menținere a unor parametri de mediu în interiorul shelter-elor, de prelungire a vieții atât a echipamentelor de telecomunicații cât și a echipamentelor de climatizare.
Siguranța funcționarii echipamentelor conduce la micșorarea numărului alarmelor și al opririlor accidentale, la o creștere a eficienței comunicațiilor de voce, date și implicit a câștigurilor pentru operatorii de telefonie celulară. Orice comunicație de voce sau date, are un anumit factor de risc sau de hazard ce se poate determina pentru diverse arii.
Factorii de risc pot fi reduși prin metode specifice fiecărui domeniu de activitate, prin creșterea siguranței în întreținere, exploatare, detecția, localizarea și înlăturarea defectelor și monitorizarea adecvată în condiții de defect.
În domeniul comunicațiilor există preocupare și sunt dezvoltate în permanentă metode de achiziții și monitorizare a stării echipamentelor dar și de menținere a unui climat impus de producătorul echipamentelor de telecomunicații. Pe această linie, o preocupare majoră a cercetătorilor din domeniu îl constituie și implementarea unor algoritmi on-line de detecție și localizare a defectelor ce apar fie la echipamentele de telecomunicații, fie la menținerea parametrilor climatici din interiorul unui shelter.
Sistemele de achiziții și monitorizare sunt răspândite pe scara largă în diverse domenii cum ar fi: procesele industriale, procesele de infrastructură, de aeronautică, militare, dar și în echipamente electrocasnice. Această sferă de acoperire se datorează, în primul rând performanțelor tehnice ale acestora, care sunt net superioare celor dezvoltate de operatorul uman. Practic, fără aportul major al sistemelor automate, nu mai pot fi concepute astăzi ramuri ale industriei chimice, producerea energiei electrice, transporturi aeriene, transporturi feroviare de mare viteză, activitatea spațială, dar și comunicațiile care au devenit vitale în dezvoltarea omenirii.
Există în momentul actual o multitudine de firme care produc sheltere de telecomunicații improprii acestei activități, unde condensul este frecvent sau sistemul de climatizare/ventilație deficitar, sistemele de protecție împotriva șocurilor de tensiune lipsesc și nu în ultimul rând izolația termică subdimensionată sau chiar inexistentă. Ideea urmărită este siguranța în funcționare a echipamentelor de telecomunicații, scăderea costurilor de intreținere, de menținere a unor parametri de mediu în interiorul shelter-elor, de prelungire a vieții, atat a echipamentelor de telecomunicații dar și a echipamentelor de climatizare și de scădere a consumului de energie .
Aceste sheltere sunt în dotarea rețelelor de telefonie mobilă Orange, Vodafone, RDS, Telekom dar și în dotarea Ministerului Apărarii Naționale, Ministerului Administrației și Internelor, Administrația Națională de Meteorologie, a unor agenții care se ocupă cu măsurarea parametrilor de mediu, măsurarea nivelelor de apă, radiații, stații meteo, etc.
Figura 1.2. Dispunerea echipamentelor de telecomunicații și climatizare într-un shelter.
Un mare accent se pune pe analizele și investițiile legate de economia de energie, pentru asigurarea unor condiții de confort necesare. Acest aspect a fost denumit eficientizarea energetică a clădirii. În paralel cu reducerea necesarului de energie, se realizează două obiective importante ale dezvoltării durabile și anume, economia de resurse primare și reducerea emisiilor poluante în mediul înconjurător.
Agenția Internațională pentru Energie (IEA) estimează că cererea globală pentru energie va crește cu peste 40% din prezent și până în anul 2030 dacă politicile în domeniu rămân neschimbate. Este bine cunoscut faptul că arderea acestor combustibili cauzează o creștere a gazelor cu efect de seră care contribuie la încălzirea globală.
Mărirea eficienței energetice se poate realiza pe mai multe direcții, de la educarea utilizatorilor clădirilor, în spiritul economiei de energie, la intervenții ce sunt la îndemâna multora și până la efectuarea unei expertize și a unui audit energetic în urma cărora experții recomandă o serie de soluții tehnice de modernizare. Aceste soluții depind de tipul, vechimea și destinația clădirilor și se constituie în ceea ce se numește reabilitarea sau modernizarea clădirii.
Reabilitarea sau modernizarea termică a unei clădiri reprezintă îmbunătățirea ei în scopul menținerii temperaturii constante la interior. Aceasta presupune adăugarea de izolație termică, etanșarea, îmbunătățirea sau chiar înlocuirea ferestrelor și a ușilor, precum și îmbunătățirea sau regândirea echipamentelor de climatizare cu care este dotată clădirea. [52]. LEGEA nr.199 din 13 noiembrie 2000.
1.2. Structura tezei
Obiectivul acestei teze este de a prezenta un sistem inteligent de monitorizare și control al parametrilor de mediu din spațiile destinate echipamentelor de telecomunicații.
Teza este structurată pe șapte capitole. Primul capitol este introductiv, următoarele cinci reprezintă teza propriu-zisă, iar în ultimul sunt enumerate contribuțiile din capitolele anterioare. În cele ce urmează, va fi descrisă succint structura fiecărui capitol:
În capitolul introductiv se evidențiază importanța monitorizării și controlul parametrilor ambientali din spațiile destinate echipamentelor de telecomunicații prin intermediul sistemelor inteligente.
În capitolul doi se realizează calculul eficienței energetice în sistemul de monitorizare și control al parametrilor ambientali în spațiile destinate echipamentelor de telecomunicații.
In prima parte este prezentată structura shelter-ului, fluxurile de caldură, aer și umiditate prin anvelopa unui shelter. De asemenea sunt prezentate elementele ce compun sistemul de monitorizare și control (SMC-01) și care sunt propuse a intra în dotarea unui shelter de telecomunicații.
In următorul subcapitol este prezentat modelul matematic al Dulapului Rack dar și al unui shelter, atat modelul dinamic care rezultă din ecuația de bilanț pentru volumul de aer care este supus monitorizării și controlului, cât și modelul staționar ce cuprinde bilanțul energetic al clădirii cu următorii termeni de energie sensibilă și latentă:
» conducția prin anvelopa shelter-ului;
» conducția prin pereți și podele;
» căldura datorată schimbului de aer (infiltrații, exfiltrații și/sau ventilație);
» sporurile de căldură datorate radiației solare, iluminatului, echipamentelor (aparate electrocasnice, computere, ventilatoare etc.) și ocupanților;
» sporurile de căldură latentă sunt în principal datorate schimbului de aer, echipamentelor și ocupanților;
» căldura înmagazinată (stocată) în capacitatea termică a clădirii.
Acest bilanț ne permite calculul puterii instalate a shelter-ului și consumului anual de energie al acestuia.
In următoarele șase subcapitole sunt prezentate :
» consumul anual de energie (care reprezintă integrala în timp a consumului instantaneu pe perioada de încălzire sau răcire);
» calculul puterii instalate într-un shelter;
» consumul de energie electrică într-un shelter asistat și neasistat pentru încălzire / răcire de un sistem inteligent de monitorizare și control al parametrilor ambientali;
» instalația elctrică de alimentare și distributie de 230-400 Va.c.;
» calitatea mediului;
» considerații despre sănătate și siguranță în interiorul shelter-ului;
» probleme cauzate de materialele de construcție ale shelter-ului de telecomunicații.
In capitolul trei este prezentată o structură de reglare (schema bloc) a temperaturii în shelter, ce poate fi implementată parțial sau total în funcție de cerințele de exploatare și de condițiile de mediu în care funcționează shelter-ul.
In următorul subcapitol este prezentată reglarea temperaturii shelter-ului utilizând sistemul de ventilație, proiectarea regulatorului de temperatură cu modelul matematic al shelter-ului, calculul parametrilor regulatorului continuu și modelul matematic al Dulapului Rack.
Mai este prezentat și un studiu al sistemului de reglare a temperaturii cu regulator bipozițional cu histerezis ce reprezintă o soluție de automatizare simplă și ieftină utilizată în cazul proceselor ce nu impun menținerea unei valori constante a parametrului reglat. Aici sunt realizate și trei simulări pe trei domenii de temperatură, unde se poate observa răspunsul sistemului la variația temperaturii exterioare de lucru.
De asemenea este realizat un studiu al sistemului de reglare a temperaturii cu regulator continuu, unde se utilizează debitul de aer de ventilație ca mărime de comandă, aerul condiționat, sistemul de încălzire dar și utilizarea tuturor sistemelor de reglare. Pentru acest lucru au fost realizate un număr de nouă experimente.
Capitolul patru prezintă detecția și localizarea defectelor în instalația de monitorizare și climatizare SMC-01, unde se vor urmări aspecte legate de echipamentele de climatizare care trebuie să asigure condiții de mediu impuse de echipamentele de telecomunicații, de introducere a unei structuri de conducere automată, distribuită pe mai multe nivele de temperatură pentru simplificarea algoritmilor de conducere și pe de alta parte, creșterea vitezei de prelucrare a informației.
In următoarele subcapitole sunt prezentate: scopul dispozitivelor de protecție; necesitatea detecției și localizării defectelor ; stadiul actual al cunoașterii în domeniu pe plan național și internațional; metode analitico-experimentale de detecție și localizare a defectelor; metode pentru creșterea siguranței în exploatare; metode analitice de compensare a defectelor generate de elementele de execuție defecte și structura software de detecție a defectelor la elementele de execuție.
De asemenea sunt prezentate rezultate experimentale pe shelter-ul de telecomunicații, modelul matematic al shelter-ului, structura sistemului de detecție a defectelor, proiectarea generatorului de defect și simulari in Matlab-simulink pe modele echivalente ale shelter-elor.
In capitolul cinci este prezentat modul de funcționare și testare al sistemului (SMC-01) de monitorizare și control al parametrilor ambientali, descrierea elementelor ce alcătuiesc sistemul, și descrierea funcțională a microcontrolerului pentru climatizarea și monitorizarea containerelor de telecomunicații. Controlerul pentru climatizarea și monitorizarea containerelor pentru telecomunicații, este un sistem de proces, realizat cu microcontrolerul ColdFire V1, MCF51JM64, fabricat de Freescale (USA).
In capitolul șase sunt prezentate componentelor software pentru sistemul de monitorizare și control, etapele de funcționare ale controlerului care sunt de fapt șapte intervale de temperatură.
Programarea se face cu ajutorul unui sistem destinat dezvoltării de programe software (CodeWarrior V6.2), pentru familia de procesoare ColdFire V1 fabricate de Freescale .
În capitolul șapte sunt prezentate concluziile, enumerate contribuțiile personale și posibile direcții de cercetare în opinia autorului. Teza se întinde pe 229 de pagini, care cuprinde 102 figuri, 10 tabele, 9 experimente, 6 studii de caz, 4 anexe și 58 titluri bibliografice. O bună parte din contribuții a fost validată prin prezentarea și publicarea a șase lucrări la care autorul tezei este prim autor dar și prin realizarea unui prototip (SMC-01) ce poate fi testat într-un laborator.
1.3 Aspecte privind managementul monitorizării și controlul parametrilor ambientali.
Managementul monitorizării și controlul parametrilor ambientali se referă la totalitatea activităților de coordonare, conducere și gestiune a procesului de menținere a parametrilor ambientali cu costuri minime, prin scăderea consumului de energie dar și cheltuieli minime cu personalul de întreținere.
Toate aceastea se materializează prin scăderea riscului apariției de defecte în funcționare a echipamentelor de telecomunicații, de prelungire a vieții atat a echipamentelor de telecomunicații dar și a echipamentelor de climatizare.
Siguranța funcționării echipamentelor micșorează numărul alarmelor și al opririlor accidentale, conducând la o creștere a eficienței comunicațiilor de voce, date și implicit a caștigurilor pentru operatorii acestor sheltere.
Coordonarea se referă la monitorizarea în timp real a parametrilor de mediu atât interiori cât și exteriori dupa care urmează activitatea de conducere, situată la un nivel ierarhic superior coordonării, ce realizează menținerea unei temperaturi și a unei umidități prescrise, încercând totodată atingerea unui maxim de performanță în intreținere. Acest deziderat nu se poate implementa decât prin intermediul unui sistem inteligent de monitorizare, control și gestiune realizat cu ajutorul unui controler.
Sistemul de monitorizare și control are și facilitatea de arhivare a datelor de funcționare, ceea ce permite punerea la dispoziția operatorului care poate analiza funcționarea procesului de climatizare și pe care il poate optimiza în timp.
Cele mai importante obiective ale unui sistem de management a controlului parametrilor de mediu sunt :
» scăderea consumului de energie electrică pentru echipamentele de climatizare;
» scăderea consumului de energie electrică pentru echipamentele de telecomunicații;
» scăderea numărului de defecte pentru echipamentele de climatizare;
» scăderea numărului de defecte pentru echipamentele de telecomunicații;
» scăderea cheltuielilor cu intreținerea echipamentelor;
» scăderea cheltuielilor cu personalul de întreținere.
Atingerea acestor obiective contribuie la creșterea eficienței pentru proprietarii shelter-elor (economie de timp și de carburanți, reducerea consumului de energie electrică și implicit scăderea poluării mediului înconjurător), creșterea confortului prin servicii de date și voce fară întreruperi pentru consumatori.
Pe baza acestor obiective pot fi schițate funcțiile esențiale ce trebuie îndeplinite de către sistemul de monitorizare și control:
» monitorizarea parametrilor de mediu;
» achiziționarea și transmiterea eventualelor alarme în timp real la un centru de analiză și comandă cel mai apropiat;
» stabilirea comenzilor optime de menținere a parametrilor de mediu;
» obținerea unui istoric de funcționare al sistemului de monitorizare și control pentru statistici și pentru analiza ulterioară, a cauzelor alarmelor;
» posibilitatea de interconectare cu echipamentele de telecomunicații;
» evaluarea eficienței de funcționare, în scopul întocmirii de rapoarte;
1.4 Etapele de proiectare a unui sistem de monitorizare și control al parametrilor de mediu.
Creșterea spectaculoasă a comunicațiilor mobile au dus la apariția multor operatori, automat și la creșterea numărului de sheltere, care necesită implementarea unor sisteme de monitorizare și control al temperaturii, ce pot asigura utilizarea eficientă a spațiului limitat, funcționarea neîntreruptă a echipamentelor de climatizare dar și a echipamentelor de telecomunicații, scăderea consumului de energie electrică, în condiții de siguranță crescută și de reducere a poluării.
Pentru aceasta s-ar putea identifica următoarele etape în elaborarea strategiei de proiectare a unui astfel de sistem de monitorizare și control al parametrilor de mediu:
» evaluarea mediului extern și a factorilor de influență;
» evaluarea mediului intern și a factorilor de influență;
» identificarea și elaborarea obiectivelor strategice;
» realizarea unui sistem de indicatori de evaluare a performanțelor sistemului;
» definirea procedurilor legate de urmărirea, exploatarea și întreținerea sistemului de monitorizare și control al parametrilor de mediu implementat.
Deși un astfel de proiect este destul de complex de elaborat și implementat la scară largă, se poate executa totuși într-un timp scurt și cu costuri minime pentru că prezintă un avantaj major, poate utiliza echipamentele de climatizare (radiatoare electrice și echipamentele de aer condiționat) existente în sheltere.
1.4.1. Obiective strategice și funcții.
Monitorizarea și controlul parametrilor de mediu au ca scop următoarele obiective:
» creșterea calității serviciilor de telecomunicații prin scăderea numărului de defecte;
» scăderea costurilor de întreținere și a poluării mediului înconjurător.
Putem trece acum la stabilirea funcțiilor ce ar trebui îndeplinite de către sistemul de monitorizare și control :
» monitorizarea și controlul parametrilor de mediu interiori si exteriori;
» transmiterea alarmelor în timp real la centrul de analiză și comandă cel mai apropiat;
» monitorizarea și înregistrarea alarmelor din momentul apariției acestora;
» obținerea unui istoric pentru statistici și pentru analiză ulterioară.
» implementarea unui sistem rezistent la defecte. [25]-Vînătoru Matei, Iancu Eugen,1999.
1.4.2. Traiectoria tehnologică propusă.
Etapa situată între faza de documentare și cea de implementare, o reprezintă alegerea traiectoriilor tehnologice adecvate în vederea atingerii obiectivelor stabilite. In cazul de față, este vorba despre o planificare de produs, adică despre etapele construirii și implementarii unui sistem nou în produsele existente, în țară existând puține abordări, urmate de implementări (hardware și soft), ale unor astfel de sisteme inteligente de monitorizare și control al parametrilor de mediu.
În construirea unui astfel de produs trebuie să se țină cont de următoarele directive:
» delimitarea zonei de interes;
» proiectarea unui sistem inteligent de monitorizare și control al parametrilor de mediu;
» ameliorarea efectelor poluării;
» creșterea siguranței în funcționare a echipamentelor de climatizare dar și a celor de telecomunicații;
» resursele disponibile pentru elaborarea proiectului;
» balanța costuri-beneficii;
» selectarea și prezentarea traiectoriei tehnologice celei mai performante;
» echipamentele necesare;
» participanții la elaborarea acesteia.
Trebuie ținut însă cont de costurile, timpul, și de implicațiile pe care le-ar avea implementarea unui astfel de proiect.
2. CALCULUL EFICIENȚEI ENERGETICE IN SISTEMUL DE MONITORIZARE ȘI CONTROL AL PARAMETRILOR AMBIENTALI PENTRU SPAȚIILE DESTINATE ECHIPAMENTELOR DE TELECOMUNICAȚII
2.1. Introducere.
Pentru asigurarea cerințelor privind managementul și fiabilitatea în funcționare a sistemului inteligent de monitorizare și control al parametrilor de mediu, este necesar ca acesta să prezinte o arhitectură distribuită, organizată pe nivele de conducere, având la bază o rețea de senzori .
Un sistem distribuit constă într-o rețea de noduri (calculatoare) autonome care comunică în cadrul rețelei interacționând unele cu altele. Fiecare nod funcționează autonom, fiind responsabil cu îndeplinirea sarcinilor care-i sunt atribuite, iar rolul sistemului distribuit este de a superviza și coordona activitatea acestora.
Sistemul de conducere a monitorizării și controlul parametrilor ambientali bazat pe achiziționarea datelor prin senzori conectati prin fir implică o dezvoltare mult mai ușoară a arhitecturii rețelei, dar și a lipsei protocoalelor de comunicație și a tehnicilor de procesare a datelor.
În prima parte a acestui capitol se va descrie structura arhitecturii utilizate, insistându-se asupra componentelor hardware.
Mai este prezentat modelul matematic al unui shelter, atat modelul dinamic care rezultă din ecuația de bilanț pentru volumul de aer care este supus monitorizării și controlului, cât și modelul staționar ce cuprinde bilanțul energetic al clădirii.
2.2. Structura shelter-ului.
2.2.1. Structura shelter-ului și fluxurile de caldură
In figura 2.1 este prezentată structura shelter-ului și fluxurile de căldură din interiorul și exteriorul shelter-ului.
Shelter-ul este dotat cu următoarele elemente de climatizare:
» sursa de încălzire folosită în perioadele în care temperatura exterioară este mai mică de 150C și temperatura în interiorul shelter-ului tinde să scadă sub 150C;
» sursa de aer condiționat (de răcire) folosită în perioadele în care temperatura exterioară este mai mare de 300C și temperatura în interiorul shelter-ului tinde să crească peste 300C ;
» sistem de ventilatoare pentru introducerea de aer din exterior, dacă temperatura exterioară este cuprinsă între 150C si 300C sau în regim de forțaj când temperatura depășește 350C, dacă este lipsa tensiune electrica 220V c.a. sau aerul condiționat nu face față.
Figura 2.1. Elementele bilanțului energetic ale unui shelter.
Schema de comandă a acestor echipamente gestionate de un microcontroler este prezentată în figura 2.2. [3] -Lucian Ciobanu, 2006.
Figura 2.2. Schema de interconectare a elementelor gestionate de sistemul de monitorizare și control.
2.2.2. Fluxurile de căldură, aer și umiditate prin anvelopa unui shelter
a) Anvelopa construcției.
Anvelopa unei clădirii este alcătuită din totalitatea suprafețelor, elementelor de construcție perimetrale, care delimiteză volumul interior (încălzit sau răcit), de mediul exterior sau de spațiile necondiționate din exteriorul clădirii. Anvelopa clădirii separă volumul interior al clădirii de :
» aerul exterior;
» sol (la plăci în contact direct cu solul, amplasate fie peste cota terenului sistematizat, fie sub această cotă, precum și la pereții în contact cu solul) [40] – Vînatoru Matei, Iancu Eugen, Maican Camelia, Cănureci Gabriela, 2008.
Anvelopa reprezintă învelișul care protejează interiorul casei împotriva razelor soarelui, vântului, ploii și ninsorii, în plus ea conferă suportul structural pentru pereți și acoperiș, protejează structura împotriva deteriorării, permite utilizarea luminii naturale, precum și accesul în clădire.
Aria anvelopei clădirii (A) – reprezintă suma tuturor ariilor elementelor de construcție
perimetrale ale clădirii prin care are loc transferul termic, și se calculează cu relația:
, [] (2.1)
în care : Aj reprezintă ariile elementelor de construcție care intră în alcătuirea anvelopei clădirii.
Figura 2.3. Fluxurile de temperatură într-un schelter de telecomunicații
O abordare globală a anvelopei reprezintă cheia unei izolări termice performante. Pentru o izolare eficientă a anvelopei, trebuie luate în considerație toate componentele sale. În practică însă, nu este atât de simplu, având în vedere că aceste componente trebuie să satisfacă exigențe diverse și variate (transparență, mobilitate, caracteristici mecanice). O izolare echilibrată a tuturor componentelor este de multe ori însă imposibilă. Menținerea condițiilor climatice dorite la interior se realizează prin controlul fluxurilor de căldură, aer și umiditate între interiorul și exteriorul clădirii. Prezența acestor fluxuri este ilustrată în figura 2.3, unde se deosebesc fluxurile de căldură QC (pierderi prin pereți), de fluxurile de aer și umiditate realizate prin ventilație QV. [24]- Vinatoru Matei, 1993.
b) Anvelopa și fluxul de căldură
O condiție importantă pentru realizarea confortului interior o reprezintă dotarea clădirii cu un sistem de încălzire care să furnizeze căldură în sezonului rece. Căldura furnizată trebuie să fie menținută la interiorul clădirii, astfel încât consumul de energie al sistemului de încălzire să fie minim necesar.
Mecanismele (sau modurile) de transfer ale căldurii sunt conducția termică, convecția termică și radiația termică. Fluxul de căldură prin anvelopă se poate realiza prin unul, două sau toate cele trei moduri.
* Conducția termică apare într-un mediu staționar (fie el solid, lichid sau gazos) prin transferul de energie microscopică de la particulele componente (molecule, atomi) cu viteze mari spre cele cu viteze mici, ca urmare a ciocnirilor inerente dintre particule.
* Convecția termică apare între o suprafață și un fluid în mișcare, realizându-se prin acțiunea combinată a conducției termice prin fluid și a mișcării macroscopice de ansamblu a fluidului.
* Radiația termică reprezintă energia emisă sub forma undelor electromagnetice, ca urmare a modificărilor intervenite în configurația electronică a corpului emitor. Radiația termică se manifestă la orice nivel de temperatură și spre deosebire de conducție și convecție, nu necesită un mediu transportor.
Prin pereți are loc un transfer de caldură de la mediul exterior, prin convecție și radiație de la aer și soare, prin conducție în pereții shelterului și prin convecție de la pereți la aerul din interior. Sensul fluxurilor de caldură depinde de diferența de temperatură conform principiului al-II-lea al termodinamicii.
Se va aproxima global acest schimb de căldură cu unul transmis prin convecție direct între temperatura aerului exterior și cel interior aproximat cu o relație de forma:
Qconv = ∑ hiAi(TZ – Text) (2.2)
unde Ai sunt suprafețele pereților shelter-ului iar hi sunt coeficienții de convecție globali.
Reducerea fluxului de căldură prin anvelopă se realizează prin intermediul unui material izolator termic. [10]. Iancu Eugen, Vinatoru Matei, 2003. [52]. LEGEA nr.199 din 13 noiembrie 2000.
2.3. Modelul matematic al shelter-ului.
2.3.1. Modelul matematic al Dulapului Rack.
Așa cum rezultă din figura 2.1 și figura 2.3., în interiorul shelter-ului se află Dulapul Rack cu echipamentele de telecomunicații. Acesta este principala sursă de caldură din interiorul shelterului ce trebuie evacuată spre exterior. De aceea un prim studiu se va face asupra dulapului Rack.
Modelul dinamic al Dulapului Rack.
Dulapul rack are dimeniuni de 300x800x1700 mm și adapostește echipamentele de telecomunicații având o masă totală (rack+echipamente) m=100 kg.
Aerul din interior este recirculat cu un sistem de două ventilatoare ( Ebmpapst 4418 H, nominal voltage range 36 … 60 V, 180mA, 12 w, 5400 RPM, , zgomot 55 dB (A) masa 0.250 kg, dimensiuni 119 x 119 x 38 mm, debit de aer 132,4 CFM (3.75m³ / min).
Modelul matematic corespunzător transferului termic se determină pe baza ecuației de bilanț termic de forma:
(2.3)
unde m este masa dulapului și a echipamentelor din interior m=100 kg;
Cp – este căldura specifică a dulapului și a suportului echipamentului echivalat cu Cp = 890 J/kgK;
Qec – căldura degajată de echipamentele de telecomunicații. Qec = 7x200w = 1400 w;
ha – coeficientul de transfer de căldură prin convecție prin pereții dulapului , ha = 1,15w/m2 k;
Ar – este suprafața totală a dulapului, Ar =4,22 m2;
Fvr – este debitul de aer transferat de ventilatoarele de aer cu care este prevăzut dulapul și va fi luat ca mărime de comandă pentru asigurarea temperaturii;
Ca – este căldura specifica a aerului Ca = 1011 J/kg K
ρa – este densitatea aerului , ρa = 1,2047 kg/m3;
Tz – este temperatura aerului din shelter considerată conform standardelor între 15 ºC și 25 ºC.
Tra – este temperatura aerului din interiorul dulapului Rack ce trebuie menținută mai mică
de 30 ºC.
Termenul reprezintă cantitatea de căldură acumulată de materialele din interiorul rack-ului în care s-a neglijat căldura acumulată de aerul din interior, aceasta fiind mult mai mică în comparație cu cea acumulată în masa dulapului și a echipamentelor.
B. Modelul staționar al dulapului Rack.
Pe baza ecuației (2.1) în regim staționar (Tra = ct.) .
Se determină temperatura Tra funcție de Fvr și Tz .
( ha Ar + Fvr ρa Ca ) Tra =Qec + ( ha Ar + Fvr ρa Ca ) Tz (2.4)
Tra = Tz + Qec / (ha Ar + Fvr ρa Ca ) (2.5)
Tra = Tz + 1400 / (4,22 x 1,15 + 1,2047×1011 Fv )
In figura 2.4 și tabelul 2.1 sunt prezentate variațiile temperaturii Tra în rackul de echipamente, funcție de variația debitului de aer recirculat prin ventilatoarele proprii. Se observă că temperatura Tra este mai mare decat temperatura TZ în interiorul shelter-ului.
In concluzie pentru a menține temperatura în dulapul rack mai mică de 30 grade Celsius trebuie menținută temperatura la interiorul shelter-ului mai mică de 29 grade C.
Figura 2.4. Variația temperaturii în Dulapul Rack
Tabelul 2.1. Modelul Dulapului Rack
De asemenea, din grafic rezultă ca debitul de aer al ventilatorului Dulapului Rack trebuie să fie mai mare de 0,2 m3/s (Fr ˃ 0,2 m3/s). [27] – Vînătoru Matei, 1993.
2.3.2. Modelul matematic al shelter-ului.
Avand în vedere faptul că temperatura în dulapul rack se stabilizează foarte rapid la o funcționare normală a ventilatoarelor proprii, studiul variației temperaturii în incinta shelter-ului se va face considerând Dulapul Rack ca fiind o sursă de caldură constantă Qec = 1400 w, corespunzătoare celor sapte echipamente de telecomunicații montate și vom lua în considerare doar fluxurile de caldură din interiorul structurii shelter-ului, așa cum rezultă din figura 2.3.
a)Modelul dinamic al shelter-ului.
Modelul dinamic al shelter-ului rezultă din ecuația de bilanț termic pentru volumul ”V” de aer al shelter-ului conform figurii 2.3 și are forma:
Vs ρa Ca echip + αv FvCa (Tz – Tex) + αr FrCa (Tr – Tz) + αac FacCa (Tac – Tz) +
+ hp Api ( – Tz) (2.6)
în care apar următorii termeni :
∑Qechip = suma fluxurilor surselor de căldură interne (iluminat , echipamente electrice , oameni );
hp Api (Tex – Tz) = transferului de căldură echivalent prin convecție de la aerul exterior cu temperatura Tex la volumul interior al shelter-ului cu temperatura Tz prin suprafețele Ai ale shelter-ului;
Qv = αv FvCa (Tz – Tex) = transferul de căldură prin ventilatoarele de recirculare a aerului cu care este dotat shelter-ul;
Qrad = αr FrCa (Tr – Tz) – este transferul de căldură de la radiatorul de încălzire al shelter-ului utilizat în perioadele reci ce introduce aer cu temperatura Tr ˃ Tz ;
Qac = Fac Ca (Tac – Tz) – este transferul de căldură de la aparatul de aer condiționat ce introduce aer la temperatura Tac < Tz . In modelul matematic s-au introdus coeficienții de utilizare a surselor de caldura α v, α r, α ac, care au valori egale cu 1, dacă sursa este utilizată și egală cu zero, dacă sursa nu este utilizată.
In conformitate cu normele de exploatare a shelter-elor, valorile acestor coeficienți în funcție de temperatura exterioară sunt prezentate în tabelul 2.2.
Tabelul 2.2 Valorile coeficienților α
Pentru a studia eficiența surselor de încălzire sau răcire a shelter-ului, din ecuația (2.6) rezultă variațiile temperaturii Tz în interiorul shelter-ului pentru diverse domenii de variație a temperaturii exterioare Tex [24] – Vînătoru Matei, 1993
b)Modelul staționar pentru 15 ºC < Tex < 35 ºC .
In acest caz conform instrucițiunilor de exploatare specificate în tabelul 2.2, reglarea temperaturii aerului în spațiul shelter-ului este asigurată doar de ventilatoarele ce evacuează aerul din shelter, fiind inlocuit cu aer din exterior cu temperatura Tex . In ecuația (2.6.) mai apare termenul Qec = 1400 w și temenul hp Api (Tex – Tz) corespunzător transferului de caldură prin convecție (pereții shelter-ului).
Figura 2.5. Variația temperaturii shelter-ului pentru 150C<Tz<350C
Funcție de dimensiunile și materialele din care sunt realizate uzual shelter-ele s-a considerat :
Api = 3x10x18 =48 m2 si hp = 1,15 W/K/m2
(uzual pentru condițiile țării noastre hp = 0.28-1.4 W/K/m2) .
In aceste condiții din ecuația (2.6) în regim staționar (dTz / dt = 0) rezultă:
Qec + hp Api ( – Tz) – Fv Ca ρa (Tz – ) = 0 (2.7)
sau
Tz = + Qec / (hp Api + Fa Ca ρa Fv) (2.8)
Tz = + 1400 / (1,15 x 48 +1011 x 1,2047 x Fv)
Cu ajutorul programului Excel utilizând formula (2.8) s-a trasat graficul variației temperaturii Tz , funcție de debitul de aer Fv al ventilatoarelor de răcire prezentată în figura 2.5 și tabelul 2.3 pentru diverse valori ale temperaturii Tex .
Din relația (2.8) și din graficele (2.5) rezultă că temperatura în interior Tz este mai mare decat temperatura exterioară .
Tot din grafic rezultă că pentru a menține în interiorul shelterului o temperatură Tz˂ 40 ºC debitul minim al ventilatoarelor trebuie să fie Fv ˃ 0,2 m3 / s.
Tabelul 2.3. Variația temperaturii shelterului pentru 150C<Tz<350C
c)Modelul staționar pentru -15 ºC < Tex < 10 ºC
In acest caz conform normelor de exploatare, reglarea temperaturii se realizează prin radiatorul de încălzire ce transferă un flux de căldură:
Qrad = F v Ca ρa (Tr – Tz).
Ecuația de bilanț devine:
Qec – hp 48 (Tz – Tex) + F v Ca ρa (Tr – Tz) (2.9)
Din (2.9) rezultă variația temperaturii Tz funcție de debitul Fv pentru diverse valori ale temperaturii :
Tz = (Qec + 48 X 1,15 X +1011 X 1,2047 X F v Tr ) / (48 X 1,15 + 1011 X 1,2047 Fv)
(2.10)
Din condițiile de prevenire a incendiilor se consideră temperatura Tr = 100 ºC a aerului refulat de aerotermă.
In figura 2.6 si tabelul 2.4 sunt prezentate variațiile temperaturii aerului din shelter pentru diverse valori ale temperaturii aerului exterior Tex.
Figura 2.6. Variația temperaturii shelter-ului pentru -150C < Tz <100C
Din figura 2.6 și din tabelul 2.4 rezultă că pentru temperaturi exterioare peste 0 ºC la debit de aer zero al aerotermei de încălzire, temperatura din interiorul shelterului este mai mare de 25 ºC . Acest lucru se datorează faptului că izolația termică a pereților shelterului este foarte bună și schimbul de căldură prin pereții shelterului este foarte mic.
Din acest studiu rezultă că ar trebui modificate instrucțiunile de exploatare ale shelterului în sensul că trebuie extins domeniul de utilizare a ventilatoarelor de răcire și pentru temperaturi exterioare sub 15 ºC .
Tabelul 2.4. Variația temperaturii shelter-ului pentru -150C<Tz<100C
Pentru justificarea de la punctul B, pentru temperaturi între 0 ºC și 15 ºC, rezultatele studiului sunt prezentate în figura 2.6 și tabelul 2.4.
Se observă din această figură că dacă se acceptă o temperatură în interior mai mare de 20 ºC se poate menține reglarea temperaturii prin intermediul ventilatoarelor chiar până la valori ale temperaturii exterioare de pana la – 5 ºC, iar sistemul de încălzire să acționeze doar pentru temperaturi sub – 5 ºC.
d)Modelul staționar pentru ≥ 35 ºC.
In acest caz conform normelor de exploatare din tabelul 2.1, reglarea temperaturii se realizează cu ajutorul aparatului de aer condiționat ce furnizează fluxul de aer rece Qac = Ca ρa (Tac– Tz) , unde Fac este debitul de aer rece considerat variabil, cu temperatura Tac = 10 ºC.
Ecuația de bilanț termic în regim staționar devine:
Qec = hp 48 (Tz – Tex) + F ac Ca ρa (Tac – Tz) (2.11)
Din (2.11) rezultă variația temperaturii Tz în funcție de debitul Tac pentru diverse temperaturi = [35, 40, 45]
Tz = (Qec + F ac Ca ρa Tac + hp 48 ) / (hp 48 + F ac Ca ρa) (2.12)
In figura 2.7 și tabelul 2.5 sunt prezentate variațiile temperaturii aerului din shelter pentru diverse temperaturi ale aerului exterior.
Figura. 2.7. Variația temperaturii shelter-ului pentru > 350C
Tabelul 2.5. Variația temperaturii shelter-ului pentru > 350C
Se observă din figura 2.7 că temperatura în interiorul shelterului se poate menține sub 40ºC pentru un debit de aer al sistemului de aer condiționat Fac ≥ 0,05 m3/s.
e)Studiul regimului de avarie.
In instrucțiunile de exploatare ale shelter-ului se specifică faptul că în cazul în care sistemul de răcire se defectează pentru temperaturi mai mari de 35 ºC, atunci automatul de control al temperaturii trebuie să mențină sistemul de ventilație cu debitul maxim la ventilatoare.
Pentru analiza acestui caz se reia studiul de la punctul B, dar pentru Tex = [35, 40, 45] ºC, cu Tz dat de (2.8).
Rezultatele studiului sunt prezentate în figura 2.8.
Figura 2.8. Studiul regimului de avarie
Se observă din figura 2.8 ca temperatura în interiorul shelter-ului se aproprie de temperatura exterioară pentru un debit al ventilatoarelor Fv ˃1m3/s, dar nu poate coborâ sub aceasta.
2.3.3. Bilanțul energetic al shelter-ului
Căldura care trebuie furnizată sau îndepărtată pentru a menține o incintă în condițiile dorite, reprezintă sarcina termică a unui echipament de încălzire sau climatizare. Calculele seamănă cu cele din contabilitate. Se consideră toată căldura care este produsă în incinta clădirii sau care se transferă prin anvelopă; energia totală, inclusiv energia termică stocată la interior, se conservă conform primului principiu al termodinamicii.
Aerul exterior, ocupanții și anumite echipamente contribuie atât la termenul ce reprezintă căldura sensibilă (dependentă de temperatură), cât și la cel care reprezintă căldura latentă (dependentă de starea de agregare).
Calculele de sarcină termică sunt simple atâta timp cât regimul de funcționare este de tip static (sau staționar, adică schimburile de energie sunt constante). După cum se va prezenta în continuare, această aproximare este de obicei acceptabilă pentru calculul sarcinii maxime de încălzire. Dimpotrivă, pentru sarcina de răcire, efectele dinamice (de exemplu înmagazinarea căldurii) trebuie luate în considerare deoarece unele dintre aceste sporuri de căldură sunt absorbite de masa clădirii și nu contribuie la sarcină decât câteva ore mai târziu (pe măsură ce energia termică este transferată prin convecție/radiație aerului interior). Calculul termenilor din bilanțul de energie al clădirii este prezentat succint , pentru condiții staționare. Efectele dinamice sunt de asemenea importante ori de câte ori temperatura interioară este variabilă.
Regimul stationar al shelter-ului rezultă din ecuație egalând cu zero membrul drept. Acest bilanț ne permite calculul puterii instalate a shelterului și consumului anual de energie al acestuia.
Bilanțul energetic al clădirii cuprinde următorii termeni de energie sensibilă și latentă:
a).Conducția prin anvelopa shelterului,
Qcond = Kcond As (Tz-Tex), [W] (2.13)
Conductivitățile termice sunt caracteristice fiecărui tip de material. Materialele izolante termic sunt caracterizate de conductivități sub 0,1 W/mK. Dacă aceste condiții se recomandă pentru clădirile noi, aflate în stadiu de proiectare, în cazul clădirilor vechi proprietățile termotehnice ale materialelor de construcție suferă unele modificări datorită degradării în timp a construcțiilor.
b).Conducția prin pereți și podea.
În construcțiile tradiționale, transferul de căldură spre sol este de obicei mic și de aceea se neglijează dar în clădirile super-izolate, el poate fi relativ important.
[W] (2.14)
In cazul nostru shelter-ul de telecomunicații ne având nici pereții și nici podelele în contact cu solul rezultă: Qsol = 0.
c).Căldura datorată schimbului de aer (infiltrații, exfiltrații și/sau ventilație)
Qaer,sens=Kinf(Ti-Te) [W] (2.15)
Qaer,sens= 0 deoarece Kinf= 0 .
Nu existe schimb de aer cu exteriorul (ventilație) decat iarna cand temperatura exterioară este mai mare de 15 grade Celsiu și vara când temperatura exterioară este de cel mult 31 grade celsius. Iarna cel mai frecvent, temperatura crește peste 15 grade în momentele însorite ale zilei și automat radiatorul de încalzire se oprește. Vara temperatura este sub 31 grade celsius pe timpul nopții dar și pe timpul zilei cand este înnorat, perioada în care aerul condiționat intră în așteptare.
d).Sporurile de căldură datorate radiației solare, iluminatului, echipamentelor (aparate electrocasnice, computere, ventilatoare etc.) și ocupanților
Qspor,sens= Qsolar+ Qilum+ Qechip,sens+ Qocup,sens [W] (2.16)
Pentru calculul Qspor,sens sunt doua variante :
-în încăpere nu este nici o persoană și automat nu este folosit nici iluminatul și calculul urmează a fi făcut pentru un numar de șapte echipamente care degaja fiecare aproximativ 200 w/echipament si Qsolar de 20 w/m.p, atunci:
Qspor,sens = 1730 W
-în încăpere lucrează o persoană (care degajă echivalentul a 150w/h/persoană), care folosește și un personal computer și iluminatul care este folosit la capacitate maximă, atunci:
Qspor,sens = 2090 W
Puterea radiată de soare pe un metru pătrat poate trece ușor de 1000W în noastră.
Figura 2.9. Puterea radiată de soare pe un metru pătrat în funcție de densitatea norilor.
Sursa: www.meteoromania.ro
Figura 2.10. Puterea radiată de soare pe un metru pătrat în funcție de ora.
Sursa: www.meteoromania.ro
e). Sporurile de căldură latentă sunt în principal datorate schimbului de aer a echipamentelor și ocupanților.
Qspor,lat= Qaer,lat+ Qechip,lat+ Qocup,lat [W] (2.17)
Qaer,lat = 0, nu poate fi luat în calcul deoarece schimbul de aer se face prin ventilatoare atunci cand temperatura exterioară este mai mică decat temperatura interioară și asta numai în intervalul de 15 ÷ 31 grade celsius, pentru economie de energie electrică.
Qechip,lat se calculează pentru șapte echipamente de telecomunicații care degaje aproximativ 200 w/h/echipament, atunci : Qspor,lat= 1400 [W]
f). Căldura înmagazinată (stocată) în capacitatea termică a clădirii. O analiză dinamică include acest termen, în timp ce o analiză staționară îl neglijează pentru că temperatura clădirii nu variază în timp.
[W] (2.18)
unde reprezintă capacitatea termică efectivă a clădirii. Qstoc = 0, în cazul nostru este considerat staționar.
Se obișnuiește ca pierderile de căldură sensibilă prin conducție și schimbul de aer să se exprime sintetic printr-un singur termen, deoarece ambii depind de diferența de temperatură dintre interior și exterior:
Qtr,sens=(Kcond+ Kinf) · (Ti-Te) = Ktot (Ti-Te) [W] (2.19)
unde Ktot =1,15[W/K], reprezintă coeficientul total de pierderi termice sau de izolare.
Qtr,sens= 12,65 [W]
unde Te (10 grade celsius) este temperatura medie anuală pe glob. In țara noastră Te medie anuală este de aproximativ 11 grade celsius.
Figura. 2.11. Graficul cu temperaturile medii lunare de maxim și minim din
Sursa: www.meteoromania.ro
Se mai obișnuiește exprimarea pierderilor pe unitate de volum, caz în care literatura românească folosește notația:
G = Ktot · Vclad [W/m3K] (2.20)
G = 25,875 [W/m3K]
unde volumul clădirii Vclad (3x3x2,5m) este delimitat de anvelopă.
Sarcina termică instantanee a clădirii este suma dintre componentele sensibile și latente la un moment dat:
Q =G ·Vclad (Ti-Te) + Qsol ± Qspor ± Qstoc [W] (2.21)
La încălzire (temperatura exterioară este de 18 grade celsius și temperatura interioară care trebuie menținută este de 22 grade celsius): Q = 568,75 W;
Valoarea este calculată pentru o zi din luna aprilie/octombrie cu următoarele temperaturi:
Tabelul 2.6 Temperatura pentru o zi din lunile – Aprilie / Octombrie.
La răcire (temperatura exterioară este de 25 grade celsius și temperatura interioară care trebuie menținută este de 22 grade celsius): Q = -346,56 W
Valoarea este calculată pentru o zi din luna mai/septembrie cu următoarele temperaturi:
Tabelul 2.7 Temperatura pentru o zi din lunile Mai / Septembrie.
Convenția de semne este Q să fie pozitiv când există o sarcină de încălzire și negativ când există o sarcină de răcire. O valoare negativă pentru Qaer,lat conduce la o sarcină totală de încălzire mai mare decât sarcina de încălzire sensibilă – dar acest lucru este relevant doar dacă la interior se realizează o umidificare pentru a menține umiditatea Wi constantă. Pentru clădirile care nu au prevăzut un sistem de umidificare, nu există posibilitatea de control asupra valorii Wi , ca urmare pentru o valoare fictivă a lui Wi , nu are rost să se calculeze contribuția latentă la sarcina de încălzire. [52]. LEGEA nr.199 din 13 noiembrie 2000 .
2.4. Consumul anual de energie.
Proiectarea optimă a clădirii, în sensul minimizării costurilor pe durata sa de viață, necesită o evaluare a consumului anual de energie Qan, care reprezintă integrala în timp a consumului instantaneu pe perioada de încălzire sau răcire. Consumul instantaneu reprezintă sarcina instantanee împărțită la randamentul echipamentului de încălzire sau răcire.
Metodele de calcul sunt de două tipuri majore: metode statice (bazate pe grade-zile sau pe intervale de temperatură) și metode dinamice (bazate pe funcții de transfer).
Metodele grade-zile sunt adecvate dacă utilizarea clădirii și randamentul echipamentului pot fi considerate constante. Pentru situațiile în care randamentul și condițiile de utilizare variază semnificativ cu temperatura exterioară, se poate calcula consumul pentru anumite valori ale temperaturii exterioare și acesta se înmulțește cu numărul de ore din an corespunzător unor intervale centrate în jurul acestor valori; consumul anual rezultă prin însumarea consumurilor asociate fiecărui interval de temperatură exterioară. Această abordare reprezintă metoda cu intervale de temperatură. Pentru toate metodele statice este necesară în primul rând determinarea valorii temperaturii Te sub care încălzirea devine necesară (temperatura de echilibru). Metodele dinamice trebuie aplicate la calculul consumului anual de energie ori de câte ori temperatura interioară se dorește sau este variabilă. Dată fiind simplitatea și larga sa răspândire, se va prezenta mai pe larg numai metoda grade-zile.
Temperatura de echilibru Tech a clădirii este definită ca valoarea temperaturii exterioare Te pentru care, pentru o valoare Ti dată, pierderea totală de căldură este egală cu sporurile de căldură (de la soare, ocupanți, iluminat etc.). În cazul unei analize statice, efectele de înmagazinare (stocaj) sunt zero și dacă, în plus, se neglijează transferul de căldură spre sol, atunci bilanțul de energie devine:
G·Vclad(Ti -Tech)=Qspor , [W] (2.22)
de aici, rezultă temperatura de echilibru:
Tech =Ti – Qspor / G·Vclad , [oC] (2.23)
Tech = 19 oC, unde sporurile de căldură trebuie să fie valorile medii pentru perioadele în cauză, nu cele de vârf. Toate calculele vor fi facute pentru un schelter cu dimensiunea bazei de 3x3m și înalțimea de 2,5 m. Încălzirea este deci necesară numai dacă Te scade sub Tbal. Atunci, consumul de energie al sistemului de încălzire este dat de relația:
[W], (2.24)
Qinc= 5155 W
unde ηinc este randamentul anual de utilizare a combustibilului (sau a altei surse primare), valoarea sa luând în considerare variația randamentului la sarcini parțiale. Dacă ηinc, Tech și Ktot sunt considerați constanți și se utilizează valorile medii zilnice ale temperaturii exterioare Temed, consumul anual pentru încălzire poate fi calculat astfel:
, [W/zi/an] (2.25)
[52]. LEGEA nr.199 din 13 noiembrie 2000.
2.5. Calculul puterii instalate într-un shelter
În conformitate cu legea nr.199/2000 privind utilizarea eficientă a energiei, toți consumatorii de energie sunt obligați să respecte standardele și reglementarile tehnice și să dispună de un sistem de monitorizare a consumurilor energetice. Consumatorii care folosesc mai mult de 1000 tone echivalent petrol pe an trebuie să efectueze anual un bilanț energetic și să elaboreze programe de măsuri pentru reducerea consumului energetic.
În tabelul de mai jos avem consumul de energie electrică într-un shelter neasistat pentru încălzire / răcire de un sistem inteligent de monitorizare și control al parametrilor ambientali.
Tabel 2.8 Consumul de energie electrică pe echipamente intr-un shelter neasistat
Consumul de energie electrică scade foarte mult pe parcursul unui an, dacă shelterul este asistat pentru încălzire / răcire de un sistem inteligent de monitorizare și control al parametrilor ambientali. In același timp sistemul asigură condiții de temperatură indicate de producător de minim 15 grade Celsius iarna și maxim de 30 grade Celsius vara, ceea ce duce la prelungirea vieții echipamentelor în mod substanțial și la creșterea siguranței transmisiilor de date și voce.
În tabelul 2.9 avem consumul de energie electrică într-un shelter asistat pentru încalzire / răcire de un sistem de monitorizare și control al temperaturii.
Tabelul 2.9. Consumul de energie electrică pe echipamente intr-un shelter asistat
In cazul în care shelterul este neasistat pentru încalzire/răcire de un sistem de monitorizare și control al temperaturii apar și alte costuri care nu au fost trecute în tabel :
» costul drumurilor efectuate pentru a cupla/decupla echipamentele de răcire/încălzire;
» costurile cu personalul pentru aceste deplasari;
» timpul foarte mare alocat acestei proceduri.
2.6. Instalația electrică de alimentare și distribuție 230-400 Va.c.
Pentru asigurarea condițiilor de lucru ale aparaturii electronice de telecomunicații, schelterul încorporează mai multe instalații și echipamente cu acest rol:
» instalația electrică de alimentare și distribuție curent alternativ 230/400 Vac;
» instalația de împămantare;
» distribuția de curent continuu -48 Vcc;
» sistem de climatizare și control;
» sistem de alarmare;
» stație de energie -48Vcc.
Istalația electrică de curent alternativ, prin componenetele sale asigură:
»interfața cu furnizorul de energie electrică,
»distribuția energiei electrice la consumatori,
»protecția circuitelor la scurtcircuit și suprasarcină,
»protecția contra supratensiunilor atmosferice și de comutație,
»protecția contra electrocutării prin atingerea directă sau indirectă a căilor de curent.
Alimentarea cu energie electrică 230/400 Vac a shelterului se poate face de la doua surse de energie : rețea electrică sau grup electrogen.
În cazul alimentării de la rețeaua electrică, conectarea shelter-ului se face prin intermediul unui BMP (bloc de măsură și protecție diferențială) instalat în exterior. În interiorul BMP este instalat un contor de energie electrică trifazat pentru măsurarea energiei electrice active.
Figura 2.12. Schema electrică de racord și distribuție a shelter-ului.
Legenda:
Comutator cu came IP65 – 32A
SMC-01 – Sistem de Monitorizare si Control
Q0 – Disjunctor C20a/4
F1 – Descărcător de supratensiune 15KA/400V
QF – Disjunctor C20/4
Q1 – Disjunctor C2/2
Q2 – Disjunctor C10/2
Q3 – Disjunctor C10/2
R1 – Releu comandă aer condiționat
R2 – Releu comandă convector
R3 – Releu prezență rețea
PE 0 – Baretă de împămantare generală
Protecția circuitelor la scurtcircuit și suprasarcină, este asigurată de disjunctoarele magnetotermice instalate în tabloul electric de distribuție, pe fiecare circuit. Disjunctoarele au caracteristica C și ele decuplează instantaneu la scurtcircuit, iar în caz de suprasarcină releul termic incorporat va avea o declanșare lentă.
2.7. Calitatea mediului
Umiditatea aerului este un parametru important al confortului termic în încaperile de climatizate. O parte din pierderile de căldură ale organismului uman este constituită de evaporarea de la suprafața pielii; intensitatea acestui fenomen depinde de diferența tensiunilor de vaporizare între apa de la nivelul pielii și vaporii de apă conținuți în aer. Limitele superioară și inferioară ale nivelului admisibil al umidității relative a aerului din încăperi sunt 70%, respectiv, 35%.
Umiditatea aerului interior mai mare de 70%, în perioada rece a anului, favorizează formarea condensului pe suprafața interioară a pereților exteriori ai containerelor de telecomunicații, mai ales la izolări termice reduse, ducând pana la distrugerea parțială sau totală a echipamentelor de telecomunicații.
2.8. Considerații despre sănătate și siguranță.
Diverse studii au arătat că aerul din interiorul clădirilor (containerelor) poate fi chiar mai poluat decât aerul exterior. Factorii care determină în ce măsură poluanții din mediul interior pot afecta sănătatea sunt:
» prezența, modul de utilizare și starea surselor de poluare
» nivelul poluării atât la interiorul cât și la exteriorul clădirii
» gradul de ventilare .
O sursă de poluare a aerului din interior poate fi și aerul exterior care pătrunde prin ventilare și în absența filtrelor, poluanții trecand în mare parte în interiorul shelter-ului.
2.9. Probleme cauzate de materialele de construcție ale shelter-ului de telecomunicații.
Aproape toate materialele de construcție sunt potențial periculoase, dar dacă sunt mânuite și instalate cu grijă, munca poate fi realizată ușor și sigur. În acest paragraf se atrage atenția asupra problemelor de sănătate și siguranță care pot apare în legătură cu diversele materiale ce se pot utiliza pentru construcția unui shelter.
Containerele mai vechi pot conține izolații care sunt parțial sau total realizate din azbest / vată de sticlă, de obicei de culoare alb sau alb-gri / galben, sub formă de pudră sau semi-poros. Inhalarea azbestului este asociată cu o întregă varietate de cancere, chiar și de la o singură expunere mai mare. Înainte de a se lucra cu un astfel de material, trebuie aplicată o mască și/sau se asigură o ventilare locală corespunzătoare.
Multe dintre materialele folosite pun în libertate particule, fibre sau vapori, care pot fi dăunătoare pentru cel care le instalează și pentru oricine se găsește în vecinătate. Chiar și materialele naturale de tipul rumegușului sau prafului de tencuială pot fi dăunătoare. Deseori pericolul nu provine din materialul primar ci din lianți, solvenți, stabilizatori sau alți aditivi al căror efect nu-l cunoașteți.
Materialele de izolație de tipul fibrei de sticlă și vata minerală pot irita foarte ușor pielea, ochii și sistemul respirator. Metoda preferată pentru îndepărtarea fibrelor sau prafului este cea a aspirării acestora cu un aspirator. Izolația din polistiren rigid este în general un material inert, dar la tăiere poate crea alergii și de aceea se impune folosirea de materiale de protecție.
2.10. Concluzii.
În acest capitol sunt prezentate principalele aspecte privind calculul eficienței energetice în sistemul de monitorizare și control al parametrilor ambientali din spațiile destinate echipamentelor de telecomunicații, structura shelterului și elementele ce compun sistemul de monitorizare și control (SMC-01).
In primul subcapitol este prezentat modelul matematic al unui shelter, atât modelul dinamic care rezultă din ecuația de bilanț pentru volumul de aer care este supus monitorizării și controlului, cât și modelul staționar ce cuprinde bilanțul energetic.
Acest bilanț ne permite calculul puterii instalate a shelter-ului și consumului anual de energie al acestuia.
In următoarele șase subcapitole sunt prezentate: consumul anual de energie (care reprezintă integrala în timp a consumului instantaneu pe perioada de încălzire sau răcire), calculul puterii instalate într-un shelter, consumul de energie electrică într-un shelter asistat și neasistat pentru încalzire/răcire de un sistem inteligent de monitorizare și control al parametrilor ambientali, instalația elctrică de alimentare și distributie de 230-400 Va.c., calitatea mediului, considerații despre sănătate și siguranța în interiorul shelterului și probleme cauzate de materialele de construcție ale shelter-ului de telecomunicații.
3. REGLAREA AUTOMATĂ A TEMPERATURII IN INTERIORUL SHELTER-ULUI
3.1. Introducere
Dulapul Rack cu echipamentele de telecomunicații este montat în interiorul shelter-ului. Fiecare echipament este prevăzut cu ventilator propriu ce absoarbe aerul din spațiul shelter-ului și îl suflă peste plăcile cu componente electronice. Nu există posibilitatea controlului turației sau debitului acestor ventilatoare și nici posibilitatea măsurării temperaturii în interiorul dulapului Rack.
Dar pe baza măsurătorilor experimentale pe anumite sisteme de telecomunicații și a rezultatelor simulărilor controlului temperaturii în Rack și shelter, prezentate în capitolul 2 s-a stabilit că dacă se menține o temperatura mai mica de 30 grade C a aerului în shelter, masurabilă cu senzorii de temperatură montați, atunci avem certitudinea că temparatura aerului în Rack va fi mai mica de 350C. Această valoare este recomandată pentru funționare de producătorii de echipamente.
In aceste condiții în acest capitol se vor proiecta și studia diverse structuri de reglare, unele mai simple cu costuri reduse dar perfomanțe mai slabe și altele complexe capabile să facă față diverselor condiții de temperatură ale aerului exterior.
3.2. Structuri de reglare pentru temperatura aerului din shelter.
Intrucât fluxul de caldură produs de echipementele din shelter este aproximativ constant sau variază foarte puțin (vezi capitolele 1 și 2), principala perturbație pentru sistemele de reglare o reprezintă variația temperaturii aerului exterior shelterului.
Această temperatură poate varia între 200C și 350C, în decurs de 24 de ore în perioada de vară și la extrema cealaltă între -150C (uneori chiar -250C) și 150C în perioada de iarnă.
Numărul mare de sheltere montate la fiecare releu de transmisie sau retransmisie utilizat de o companie de telecomunicații, nu îi permite acesteia să le realizeze în construcții zidite, îngropate sau semiîngropate, pentru asigurarea unor izolații termice mai bune față de shelterele standard cu structura metalică și pereții izolați termic, montate deasupra solului sau chiar pe stâlpii releelor de telecomunicații.
Așa cum s-a prezentat în capitolul 2, shelterele sunt prevăzute cu următoarele sisteme electrice pentru asigurarea unui climat termic adecvat în inteiorul shelterului:
» ventilatoare ce absorb aerul din exteror și îl introduc în interior, aerul cald fiind evacuat prin fantele din partea superioară a shelterului.
Aceste ventilatoare sunt acționate de motoare de curent continuu pentru a fi alimentate de la bateriile de acumulatoare în cazul căderii alimentarii de la rețeaua electrică. Ele pot avea turație constantă (și debit de aer constant) sau sunt prevăzute cu un regulator de tensiune comandat, asigurând o turație variabilă și deci un debit variabil între 0 m3/s și un debit maxim. Fmax funcție de tipul și numărul ventilatoarelor, sistemul ventilatoare conform normelor de exploatare este folosit pentru temperaturi exterioare cuprinse între 150C și 350C pentru shelter-ele prevăzute cu ventilatoare cu turație variabilă comandată așa cum s-a arătat în simulările prezentate în capitolul 2.
» sistem de încălzire, radiator sau aerotermă, utilizate pentru temperaturi exterioare mai mici de 5 0C. Aceste sisteme de încălzire au flux de caldură constant și pot funcționa doar în faza pornit/oprit.
Așa cum s-a prezentat în capitolul 2 se recomandă folosirea acestora împreună cu sistemele de ventilație ale shelterului pentru a nu se ajunge la comutații cu frecvența ridicată a acestor sisteme de încalzire, fapt ce a ar reduce fiabilitatea și eficiența acestora datorită inerției termice mari a acestora.
» sisteme de aer condiționat pentru răcirea aerului pentru temperaturi exterioare mai mari de 300C (conform normelor de exploatare) . În acest caz nu este necesară folosirea sistemului de ventilație, aparatele de aer condiționat absorb aerul din interiorul shelterului, îl răcesc și îl usucă și îl retrimit în interior.
In baza acestor considerente s-a stabilit o structură de reglare a temperaturii shelterului ce poate fi implementată parțial sau total în funcție de cerințele de exploatare și de condițiile de mediu în care funcționează shelterul.
Schema bloc a acestui sistem de reglare este prezentată în figura 3.1.
Figura 3.1 Schema bloc a sistemului de reglare a temperaturii shelter-ului.
Legendă:
Tr – temperatură shelter; Tra – temperatură Rack; Fv – debit ventilatoare;
Fr – debit aerotermă; Fac – debit aer condiționat; Tac – temperatura aerului refulat de aerul condiționat; Tr – temperatura aerului refulat de aerotermă;
Tex – temperatură aer exterior; T*z – marimea prescrisă a temperaturii aerului în shelter;
Reg.c – regulator continuu sau bipozițional pentru comanda ventilatoarelor de aer;
R.BP.r – regulator bipozițional pentru comanda aerotermei de încălzire;
R.BPac – regulator bipozițional pentru comanda aerului condiționat;
α v, α r, α ac, – Blocuri de validare a comenzilor de control a temperaturii;
EL – element logic de alegere a modului de lucru. [27] – Vînătoru Matei, 1993.
.
3.3. Reglarea temperaturii shelter-ului utilizând sistemul de ventilație.
3.3.1 Proiectarea regulatorului de temperatură
a) Modelul matematic al shelter-ului
Pornind de la ecuația bilanțului general de căldură (2.7) prezentată în capitolul 2 după transformari simple se ajunge la forma (3.1)
22,5 = – 163,15 (Tz – Tex) – α v Fv (Tz – Tex) (3.1)
în care Qec [w/h] este fluxul de căldură degajat în shelter de fluxul de aer evacuat din dulapul Rack; Tex – temperatura aerului exterior; Tz – temperatura în shelter iar Fv [m3/h] este debitul de aer controlat al ventilatoarelor de răcire, ales ca mărime de comandă iar α v = 1 este coeficient de validare.
S-a ales unitatea de măsură a timpului ora, deoarece se urmărește studiul comportării sistemului de reglare pe parcusul unei zile (24 de ore) având în vedere perioada de variație a temperaturii exterioare, considerată perturbația principala în sistem.
In regim staționar din (3.1) rezultă expresia temperaturii Tz :
TZ = Tex + (3.2)
Din (3.2) rezultă simplu ca Tz ˃ Tex deci marimea prescisă T*z impusă sistemului de reglare trebuie să fie mai mare decat Tex , în caz contrar pentru Tex ˃ T*z sistemul de reglare nu funcționează, întrucat debitul de aer Fv nu poate fi negativ. In acest caz sistemul de reglare a temperaturii prin ventilație trebuie completat cu sistemul de aer condiționat.
Se observă că dacă Fv = 0, temperatura în interiorul shelterului urmărește Tex cu o abatere de forma:
TZ = Tex + (3.3)
TZ = Tex + 25,36
Se consideră ca valori staționare Tex = 250C și Tz = 300C, iar Fvo se determină din (3.2):
Fv = – 163,15
Fv = 664,44 m3/h
Pentru proiectarea sistemului de reglare se liniarizează (3.1) în jurul valorilor de regim staționar.
Modelul liniar echivalent are forma:
22,5 =∆ Qec + (163,15 + Fvo)∆Tex – (Tzo – Tex.o )∆Fv – (163,15 + Fvo )∆ Tz
sau
+= +- (3.4)
Inlocuind în (3.4) valorile de regim staționar și efectuînd transformata Laplace în condiții inițiale nule rezultă:
(0,0272 s +1)(s) = (s) + (s) -∆ Fv (3.5)
Din (3.5) rezultă ecuația operațională instalației:
∆ Tz (s) = – ∆ Fv + – (3.6)
Unde T = 0,02719 [h] = 97,875 [s] este constanta de timp a procesului;
KFV = 0,00604 [k/m3/h] si Kc = 10-6 [kh /J]
Se consideră elementul de execuție format din ventilator și sursa de c.c. comandabilă avand semnalul de comandă uc ∈ (0, +10) V și debitul de ieșire Fv ∈ (0-1000)m3/h .
Funcția de transfer a elementului de executat se aproximează sub forma:
(3.7)
unde Ke = == 100 iar de timp se aproximează Te ≈ ≈ 10 sec
Traductorul se alege pentru un domeniu de temperatură TZ ∈ (0-500C) furnizând la ieșire un semnal yt ∈ (0-10v) . In acest caz factorul de transfer al traductorului are valoarea :
KT = ==0,2 (3.8)
b) Calculul parametrilor regulatorului continuu.
In acest caz funcția de transfer a părții fixe are forma:
HPF= (3.9)
Utilizând criteriul modului pentru proiectarea parametrilor regulatorului [27] – Vînătoru Matei, 1993.
rezulta un regulator PI cu următorii parametri:
TI =T=97,875[s]=0,0272[h] (3.10)
KR=== 40,51 (3.11)
c) Modelul matematic al dulapului Rack
In mod similar se transformă și ecuația (2.3) corespunzătoare transferului de caldură pentru dulapul rack:
73,07 =Qec – (144+FVR)(Tra – Tz) (3.12)
Din (3.12) rezultă temperatura de avarie în cazul opririi ventilatoarelor de răcire (Fvr = 0):
Tra = Tz +=30 +
Tra = 30+28,74=58,74 [0C] (3.13)
Daca se impune o temperatură staționară Tra = 35 0C atunci ventilatoarele trebuie să asigure un debit minim Fvr = + 144 = 971,59 m3/h sau 0,279 m3/s (3.14)
Liniarizând ecuația (3.12) în jurul valorilor de regim staționar rezultă:
73,07 = ∆ Qec – (144 + Fvro)∆Tra + (144+ FVRO) ∆Tz – (Trao – Tzo) ∆FVR (3.15)
Aplicând transformata Laplace în (3.15) în condiții inițiale nule după câteva calcule simple rezultă:
(Ttra s+1) ∆Tra(s) = Kqca ∆ Qc + KTz ∆Tz + KFvR ∆ FvR (3.16)
unde Ttra = 0,0655 [h] = 235,8 [s]
Kqca = 7,36 • 10-7 [k/J/h]
KTZ = 1 [m3/h/k]; KFVR = 0,0045 [k/m3/h]
Se observă că apare o constantă de timp Ttra = 235,8 comparabilă cu cea a shelterului.
3.3.2. Studiul sistemului de reglare a temperaturii cu regulator bipozițional.
Regulatoarele bipoziționale cu histerezis reprezintă o soluție de automatizare simplă și ieftină utilizată în cazul proceselor ce nu impun menținerea unei valori constante a parametrului reglat.
Schema bloc a sistemului de reglare cu regulator bipozițional este prezentată în figura 3.2 (a) și diagrama regulatorului bipozițional cu histerezis.
Figura 3.2 (a/b). Schema bloc a sistemului de reglare cu regulator bipozițional (RBP)
Figura 3.3. Răspunsul sistemului de reglare cu regulator bipozițional
Pentru această categorie de procese, abaterea Xo a temperaturii față de valoarea prescrisă T*z și perioada oscilațiilor Tosc se calculează cu relațiile [ 20 ]- Papadache, I, 1978.
2 XO = TS + 2d ≈ 2d (3.17)
Tosc= 4 τ +Tp≈ Tp (3.18)
In care TS este temperatura de saturație la care ajunge procesul pentru comanda UM iar τ este timpul mort echivalent al procesului (dacă acesta există).
In acest caz dacă se impune o variație a temperaturii în shelter de ± 2 0C se alege d = 1.
Pentru verificarea funcționării sistemului de reglare s-a utilizat modelul combinat al shelterului, plus dulapul rack prin cuplarea celor două ecuații (3.11) și (3.12) realizandu-se modelul neliniar prezentat în (3.19), (3.20)
» modelul procesului:
73,07 = Qec – (144 + FVR) (Tra – Tz) (3.19)
22,5 = (144 + FVR) (Tra – Tz) – (163,15 + FV) (Tz – Tex) (3.20)
» modelul elementului de execuție
Fv = 100 Uc
Regulatorul furnizează o tensiune de 10 v daca este activat și 0 v dacă este oprit.
In figura 3.4 este prezentată schema simulink pentru modelul shelterului iar în figura 3.5 schema sistemului de reglare cu regulator bipozițional.
Figura 3.4 Schema simulink pentru modelul shelter-ului
Figura 3.5 Schema sistemului de reglare cu regulator bipozițional.
Pentru studiul comportării sistemului de reglare s-au ales următoarele condiții de simulare:
» debitul de aer al ventilatoarelor dulapului rack FVR = 1000m3/h = 0,277 m3/s ;
» mărimea prescrisă pentru regulatorul de temperatură în shelter T*Z = 25 0C .
Studiul s-a efectuat pentru o variație sinusoidală a temperaturii aerului exterior:
Tex = Texo + 5 sin ( t + 0,9)
pentru diverse valori de reglare pentru Texo = 00C.
a)Studiul sistemului de reglare pentru Texo = 00C.
Rezultatul simulării se prezintă în figura 3.6 .
Figura 3.6.Temperatura exterioara de lucru este de 00C
Se observă din figură că dacă Tex este mai mica de 3 0C, sistemul de reglare nu funționează, debitul de aer de răcire este zero și în acest caz sistemul de reglare trebuie completat cu sistemul de încălzire.
Sistemul de reglare funcționează doar pentru temperatura exterioară peste 3 0C. Formele de variație a temperaturilor Tz si TVR sunt prezentate în figura 3.7.
Figura 3.7 Variația temperaturilor Tz si TVR
b) Studiul sistemului de reglare pentru Texo = 100C
Rezultatele simulărilor sunt prezentate în figura 3.8
Figura 3.8 Temperatura exterioară de lucru 100C
Se observă că sistemul de reglare funcționează permanent, temperatura în shelter se menține în jurul valorii de 25 0C cu o abatere de ± 20C , iar temperatura în dulapul Rack se menține sub 3 0C.
c) Studiul sistemului de reglare pentru Texo = 20 0C
Rezultatele simulărilor este prezentat în figura 3.9
Figura 3.9 Temperatura exterioară de lucru 200C
Se observă ca pentru mărimea prescrisă pentru temperatura T*z = 25 0C și
Texo = 20 ± 5 0C sistemul de reglare funcționează pentru Tex mai mic de 220C, datorită limitării impuse asupra debitului de aer de ventilație la 1000m3/h.
Pentru funcționarea sistemului de reglare pentru Tex mai mare de 220C există doua soluții:
1- Creșterea valorii prescrise T*z=300C , valoare admisă de echipamentele de telecomunicații dar dificil de suportat în perioadele în care în interior lucrează personal de exploatare. Rezultatul simulării pentru T*z și Tex = 25± 5 0C.
Figura 3.10 Temperatura exterioară de lucru 250C
Se observă că dacă temperatura aerului exterior ramane mai mică de 30 0C sistemul de reglare asigură reglarea temperaturii în condițiile impuse, existand perioade mici de timp în cursul zilei în care sistemul nu face față, dar temperatura în dulapul Rack rămane mai mică de
37 0C, deci o situație acceptată de lucru.
2- Introducerea în funcționare a sistemului de aer condiționat pentru temperaturi Tex mai mare de 25 0C. Aceste utilizări vor fi studiate la utilizarea regulatorului continuu.
3.3.3. Studiul sistemului de reglare a temperaturii cu regulator continuu.
Regulatoarele continue asigură o menținere constantă a mărimii reglate în conformitate cu mărimea prescrisă, dacă mărimea de comandă asigură compensarea efectului perturbațiilor.
Structura sistemului de reglare este prezentată în figura 3.11, în care se utilizează un regulator de tip PI, cu parametrii de acordare calculați anterior.
In această structură s-au efectuat o serie de studii pentru diverse valaori ale temperaturii exterioare având o formă de variație sinusoidală de la zi la noapte de forma:
Tex = Tex m + 5 sin ( t + 0,9)
în care se modifică valoarea medie Tex m.
Utilizarea debitului de aer de ventilație ca mărime de comandă.
Primul set de experimente se efectuează utilizând doar comanda turației ventilatoarelor de recirculare a aerului din shelter, deci fară a utiliza sistemele de încălzire (radiator) sau de răcire (aparatul de aer condiționat).
Aceste experimente au drept scop determinarea domeniului de control al temperaturii aerului în shelter, utilizând sistemul de ventilație al acestuia și valorile temperaturilor exterioare de la care trebuie să intervină sistemele suplimentare. Acest lucru permite reducerea consumului de energie electrică pentru încălzire sau pentru aerul condiționat.
Experimentul 1: T*z = 250C; Tex m = 00C
Rezultatele experimentului sunt prezentate în figura 3.12
Figura 3.12 Temperatura exterioara este 00C
Se observa și în acest caz că sistemul de reglare nu lucrează pentru temperaturi exterioare situate sub 3 0C , regulatorul dă comanda zero pentru turație, în acest caz fiind necesară utilizarea sistemului de încălzire (radiator).
Pentru temperaturi exterioare peste 3 0C sistemul de reglare funcționează menținând temperatura în shelter la valoarea prescrisă T*z = 250C, iar temperatura în dulapul Rack se stabilizează la 280C.
Experimentul 2: T*z = 250C; Tex m = 100C
Rezultatele experimentului sunt prezentate în figura 3.13
Figura 3.13. Temperatura exterioara este 100C
Sistemul de reglare funcționează perfect menținând temperatura la 250C.
Se repetă experimentul pentru a vedea cum răspunde sistemul de reglare la o variație a perturbației (∆ Qec = -1000 J/h) aplicat la t = 10 ore, considerând că s-au oprit anumite echipamente și la o variație a referinței de la 250C la 200C aplicat la t = 25 h.
Rezultatele experimentului sunt prezente în figura 3.14.
Figura 3.14. Răspunsul sistemului de reglare la o variație a perturbației ∆ Qec.
Se observă raspunsul foarte bun al sistemului de reglare atât la acțiunea perturbației cât și la acțiunea mărimii prescrise.
Experimentul 3: T*z = 250C; Tex m = 200C
Rezultatele experimentului sunt prezentate în figura 3.15
Figura 3.15. Temperatura exterioară este de 200C
Se repetă experimentul anterior, pentru temperatura exterioară de 200C ± 50C , temperatura prescrisă inițial la 250C și apoi se modifică la T*z = 200C la t = 25 ore și o variație a perturbației ∆ Qec = -1000 J/ora la t = 10 ore.
Se observă că pentru temperaturi exterioare mai mari de 220C sistemul de reglare nu mai face față, regulatorul dă comandă maximă de turație dar debitul de aer nu poate evacua întreaga cantitate de caldură. Pentru acest caz este necesar să se utilizeze echipamentul de aer condiționat.
Experimentul 4: T*z = 300C; Tex m = 250C
Rezultatele experimentului sunt prezentate în figura 3.16
Figura 3.16. Temperatura exterioară este de 250C
In acest experiment, sistemul nu mai poate asigura temperatura prescrisă în shelter pentru temperaturi exterioare mai mari de 270C . Mai mult temperatura în dulapul de echipamente poate crește până aproape de 360C și în acest caz este necesară utilizarea aerului condiționat.
Utilizarea aerului condiționat pentru temperaturi exterioare mai mari de 220C.
Structura sistemului de reglare este prezentată în figura 3.11 unde comanda aerului condiționat se realizează cu un regulator bipozițional cu histerezis pentru temperaturi exterioare mai mari de 220C. Pornirea și oprirea aerului condiționat se face pentru variații de ± 10C a temperaturii în shelter fața de mărimea prescrisă.
In restul intervalului de temperatură lucrează sistemul de reglare continuu.
Experimentul 5: T*z = 300C; m = 250C
Studiul experimental este prezentat în figura 3.17 în care sistemul pornește cu mărimea prescrisă T*z = 300C la t=0, o modificare a mărimii prescrise la T*z = 250C la t = 25 ore și o variație a perturbației ∆ Qec = -1000 J/ora la t = 10 ore.
Figura 3.17 Răspunsul sistemului de reglare la o variație a perturbației ∆ Qec.
Temperatura exterioară are o variație de ±50C fața de valoarea medie de 250C.
Experimentul 6 : T*z = 300C; Tex m = 200C
Se repetă experimentul precedent dar pentru o valaore medie a temperaturii exterioare de 200C cu o variatie de ± 50C a temperaturii exterioare de la zi la noapte.
Rezultatele sunt prezentate în figura 3.18.
Figura 3.18 Temperatura exterioară este de 200C.
Se observă din figură că dacă mărimea prescrisă a temperaturii în shelter este de T*z = 300C, sistemul de reglare combinat funcționează corect menținând temperatura la valoarea de 250C. In cazul în care la momentul t = 25 ore s-a schimbat marimea prescrisă la T*z = 200C pentru temperaturi exterioare mai mici de 220C . Sistemul de reglare continuu funcționează corect dar apoi cand Tex ˃ 220C cand trebuie să intre în funcțiune aparatul de aer condiționat, debitul de aer rece introdus de aparatul de aer condiționat este insuficient pentru a asigura temperatura prescrisă.
Experimentul 7 : T*z = 300C; m = 200C
S-a repetat experimentul precedent modificându-se de 2,5 ori debitul aparatului de aer condiționat.
Rezultatele experimentului sunt prezentate în figura 3.19 de unde se poate observa că sistemul de reglare lucrează corect pe tot intervalul de temperatură.
Figura 3.19 Reacția sistemului în intervalul de temperatură de la 150C la 250C.
c) Utilizarea sistemului de încălzire pentru temperaturi sub 00C
Structura sistemului de reglare este prezentată în figura 3.20. In această structură se impune temperatura exterioara prin blocul Fac4 sub care intră în funcțiune sistemul de încălzire comandându-se debitul de aer de la radiatorul de încălzire.
Comanda de pornire sau oprire a aerotermei de încălzire se realizează cu un regulator bipozițional la intrarea căruia se aplică abaterea dintre mărimea prescrisă T*z și valoarea reala măsurată Tz a temperaturii aerului în shelter.
S-au efectuat o serie de experimente pentru diverse valori medii Texm ale temperaturii mediului exterior.
Experimentul 8: T*z = 250C cu salt la t = 25 ore de la 250C la 200C si Tex m = – 50C.
Rezultatele experimentului sunt prezentate în figura 3.21.
Figura 3.21. Temperatura de lucru externa – 5 0 C
Din figură se observă că lucrează numai sistemul de reglare bipozițional cu comanda aerotermei, sistemul de reglare continuu fiind blocat.
Experimentul 9: T*z = 250C; Tex m = 00C
Se repetă experimentul anterior cu o variație a temperaturii exterioare de la -50C la +50C.
Rezultatele sunt prezentate în figura 3.22.
Figura 3.22.Temperatura exterioară de la de la -50C la +50C.
Se observă din figură că pe intervalele în care temperatura exterioară este sub 00C lucrează sistemul bipozițional, iar în rest lucrează sistemul continuu.
d) Utilizarea tuturor sistemelor de reglare.
In figura 3.23 este prezentată o structură de reglare ce utilizează toate cele 3 sisteme de reglare și comandă a temperaturii shelterului:
– sistem de încălzire pentru temperaturi exterioare mai mici de o anumită valoare fixată prin blocul Fac4 – reglare bipozițională;
– sistem de răcire pentru temperaturi exterioare mai mari decât o anumită valoare fixată prin blocul Fac3 – reglare bipozițională;
– sistem de reglare continuu cu comanda debitului de aer recirculat între shelter și exterior ce lucrează în restul intervalului.
Structura de reglare prezentată în figura 3.23, blochează sistemul de ventilație în intervalele în care lucrează sistemul de încălzire sau de răcire.
Detaliile privind sistemul de control sunt prezentate în figura 3.24.
Figura 3.24. Sistemul de control.
Pentru studiul funcționării sistemului complet de reglare s-a simulat o situație în care temperatura exterioară variază între -50C și + 350C. Rezultatele simulării sunt prezentate în figura 3.25.
Figura 3.25. Temperatura exterioară variază între -50C și + 350C
Se observă că pentru temperaturi exterioare mai mici de 30C , lucrează sistemul de încălzire, pentru temperaturi exterioare mai mari de 220C lucrează sistemul de răcire iar în rest sistemul de reglare continuu. [27] – Vînătoru Matei, 1993.
3.3.4. Concluzii.
Studiile efectuate pe modelul sistemului de reglare a temperaturii shelterului permit următoarele soluții:
-valorile pragurilor de temperatură la care intervin sistemele de încălzire sau răcire, trebuie stabilite experimental în funcție de valoarea prescrisă a temperaturii T*z și funcție de sarcina termică Qec degajată de dulapul Rack cu echipamentele de comunicații.
-se pot stabili pragurile de comutație astfel încât să se asigure pe de o parte o valoare optimă de funcționare a echipamentelor și pe de altă parte să ofere condiții optime pentru personalul de exploatare pe perioadele cât lucrează în interiorul shelterului, urmărind reducerea consumului de energie în exploatarea pe termen lung.
4. DETECȚIA ȘI LOCALIZAREA DEFECTELOR IN INSTALAȚIA DE CLIMATIZARE.
4.1. Aspecte generale
Echipamentele de climatizare trebuie să asigure condiții de mediu impuse de echipamentele de telecomunicații si pentru aceasta s-au urmărit următoarele aspecte:
» introducerea unei structuri de conducere automată, care să ia în considerație diversele regimuri de temperatură pentru simplificarea algoritmilor de conducere și pe de altă parte, creșterea vitezei de prelucrare a informației. Se au în vedere temperaturi de lucru extreme, pozitive dar și negative;
» implementarea unor algoritmi de optimizare a regimurilor dinamice și staționare ale procesului de climatizare, urmărindu-se creșterea eficienței tehnologice și economice a acestora, menținând robustețea sistemului în ansamblu la variația parametrilor;
» implementarea unor algoritmi de conducere cât mai simpli, care să evite blocarea sistemului de reglare a temperaturii si depasirea capabilităților unității centrale de procesare;
» implementarea unor structuri și algoritmi de detecție și localizare a defectelor în sistemul de monitorizare și control, în special defecte ce apar la senzorii de temperatură și elementele de execuție.
4.2. Dispozitive de protecție
Dispozitivele de protecție au ca scop evitarea funcționării echipamentelor de climatizare în condiții anormale, dăunătoare caracteristicilor echipamentelor ce ar provoca oprirea imediată a echipamentelor de climatizare dar și de telecomunicații.
In cadrul proiectării sistemului de monitorizare și control (SMC-01) a shelterului s-au urmărit următoarele aspecte:
» temperatura să fie menținută în plaja dorită (15oC ÷ 30oC) pentru o economie cât mai mare de energie;
» SMC-01 să fie ușor de operat în momentul prezenței unui operator în shelter;
» verificarea fiecărui element de măsură și execuție să se facă cât mai sigur și într-un timp cât mai scurt;
» SMC-01 să afișeze în timp real data , ora , modul de funcționare dar și alarmele pe care sistemul le poate anunța;
» SMC-01 să înregistreze pe un microsim toate alarmele declanșate .
SMC-01 este prevăzut cu minim două ventilatoare performante pentru evitarea blocării ventilației în cazul defectării unuia dintre ele.
De asemenea sunt prevăzuți patru senzori pentru măsurarea temperaturii interioare dar și exterioare (într-un regim forțat poate funcționa și cu un singur senzor de măsurare).
4.3. Necesitatea detecției și localizării defectelor
Siguranța instalațiilor micșorează numărul alarmelor și al opririlor accidentale conducând la o creștere a eficienței operațiilor de climatizare (dar și a creșterii siguranței transmiterii/înregistrărilor datelor) și implicit o scădere a costurilor de întreținere .
Există în momentul actual o mulțime de firme interesate de dezvoltarea unor metode de detecție și localizare a defectelor pentru cele mai diverse aplicații. Ideea de la care se pornește este siguranța în funcționare a echipamentelor de telecomunicații, în scopul protecției oamenilor , a mediului și în scopul evitării pierderilor materiale.
Funcționarea în siguranță a echipamentelor de climatizare micșorează numărul avariilor și al opririlor accidentale conducând la o creștere a eficienței managementului. Orice proces tehnologic sau activitate desfășurată are anumiți factori de risc ce se pot determina pentru diverse etape de funcționare, care pot fi reduși prin metode specifice fiecărui domeniu de activitate prin creșterea siguranței în exploatare, detecția, localizarea, înlăturarea defectelor și conducerea adecvată în condiții de defect.
Evitarea consecințelor ce decurg din defectarea unor componente ale sistemului de climatizare se poate face principial în două moduri:
a) Proiectarea și realizarea unui sistem sigur, fără defecte, situație ideală.
b) Proiectarea și realizarea unui sistem tolerant la defecte, condiție indispensabilă.
Sistemele de climatizare, în domeniul telecomunicațiilor, impun funcționarea neîntreruptă pe intervale foarte mari de timp. Acest lucru este dictat de faptul că echipamentele de telecomunicații nu pot fi întrerupte în decursul unui an decât în situații de forță majoră.
Defectul este o imperfecțiune fizică a unui element al sistemului ce antrenează o funcționare permanentă, temporară sau intermitentă eronată.
Tipurile de defecte posibile ce pot apare în echipamentele de automatizare sunt:
» defecte de echipamente din instalația tehnologică;
» defecte ale traductoarelor;
» defecte ale elementelor de execuție;
» defecte ale echipamentelor de automatizare.
4.4. Stadiul actual al cunoașterii în domeniu pe plan național și internațional
Preocupările legate de realizarea unor echipamente cu ajutorul cărora să se depisteze prezența defectelor și localizarea lor în structura complexă a sistemelor automate, datează încă din perioada anilor '50 și sunt strâns legate de progresele electronicii în general și ale tehnicii de calcul în special. Problema a început însă să fie pusă în mod sistematic de abia după 1960, în corelație directă cu programele zborurilor spațiale și când intră în discuție asigurarea în primul rând a securității vieții oamenilor.
Pe plan mondial se depun eforturi susținute în dezvoltarea acestei noi direcții de cercetare. Presiunea economică exercitată de concurența de pe piața liberă solicită apariția de sisteme inteligente, de sisteme expert și deci implicit, utilizarea largă a echipamentelor de calcul. Totodată, noțiunea de control (process control) se extinde, înglobând domenii noi cum ar fi: controlul automat al calității, prelucrarea datelor cu scop decizional la nivel înalt în sistemele ierarhizate (process data management) pentru o conducere strategică, asigurarea neîntreruptă a mentenabilității sistemului (just-in-time maintenance), cu alte cuvinte asigurarea securității și viabilității întregului ansamblu (system safety and availability). Aceasta reprezintă ceea ce în literatura de specialitate este cunoscut ca fiind următorul pas în dezvoltarea automaticii (the next level up) spre realizarea structurilor robuste și tolerante la defecte.
Diversitatea aplicării sistemelor automate de conducere se datorează, în primul rând performanțelor tehnice ale acestora, performanțe ce sunt net superioare celor dezvoltate de operatorul uman. Dar aceste structuri complexe, înzestrate cu posibilități largi de operare și susținute de baze de date impresionante, au pătruns în domenii vitale pentru om, adoptând roluri decizionale, roluri ce sunt esențiale în procesele de conducere automată. Acest aspect s-a realizat însă, nu numai pe baza performanțelor tehnice, ci și cu scopul creșterii încrederii în sistemele automate, al siguranței în funcționare.
4.5. Metode analitico – experimentale de detecție și localizare a defectelor
4.5.1. Metode pentru creșterea siguranței în exploatare
Fiabilitatea reprezintă totalitatea calităților unui sistem tehnic care determină capacitatea acestuia de a funcționa fără defecțiuni într-un interval de timp în anumite condiții date, de a executa corect sarcinile pentru care a fost proiectat și realizat. Fiabilitatea se măsoară prin funcția de fiabilitate R(t) definită ca fiind probabilitatea sistemului de a funcționa fără defecte în intervalul de timp [ tinițial , tfinal ].
Se definesc doua categorii de defecte:
• defectele permanente impun prezența componentelor de rezervă, destinate înlocuirii componentelor defecte sau existența unor strategii de reconfigurare pentru evitarea utilizării în continuare a componentei defecte;
• defectele temporare sunt de durată limitată, fiind determinate de ieșirea din parametrii nominali a unor componente pe durata unui interval de timp. Evitarea sau cel puțin atenuarea efectelor datorate defectelor temporare presupune, ca și în cazul defectelor permanente, existența unor algoritmi de "ocolire" a zonei defecte pe o durată limitată în timp. Acest lucru se poate face fie prin activarea rezervelor, fie cu prețul reducerii performanțelor pe durata defectului.
Solutii în cazul în care sunt implementate sisteme complexe de conducere pentru creșterea siguranței în exploatare sunt următoarele:
• achiziționarea de echipamente fiabile;
• utilizarea redundanței prin dublarea sau triplarea echipamentelor;
• software-ul să poată detecta și localiza defectul;
• software-ul să poată conduce procesul în regim de defect.
4.5.2. Metode analitice de compensare a defectelor generate de elementele de execuție defecte.
Defectarea unui element de execuție are consecințe severe pentru un sistem de reglare automată. În cazul sistemelor monovariabile, acest tip de avarie compromite total orice posibilitate de exercitare a controlului asupra procesului condus, atât în regim automat cât și în regim manual.
Din acest motiv, singura soluție viabilă de evitare a unor astfel de situații, este reprezentată, acolo unde este posibil, de dublarea (sau chiar triplarea) elementelor de măsura/execuție. În cazul sistemelor multivariabile avem, în principiu, mai multe mărimi de comandă, pe fiecare dintre acestea fiind montate elemente de execuție. Între mărimile de ieșire și cele de intrare există anumite interinfluențe, ce pot fi exploatate. Această situație a condus l-a următoarea idee cu consecințe practice: defectarea unui servomecanism ar putea fi compensată, în anumite condiții, de acțiunea celorlalte, atunci cand doar o singură mărime de ieșire este impusă să se mențină la o valoare dată. Scopul principal ar consta în păstrarea stabilității procesului de reglare.
Se consideră stuctura de reglare a temperaturii în shelter, multivariabilă prezentată în figura 4.1, în care blocurile componente au umătoarele semnificații:
•R1 … Rp regulatoare automate ;
•C – modul de control cu funcțiuni diverse ;
•EE1 … EEP – elemente de execuție ;
•Proces – instalația tehnologică cu m intrări U1 … Um și p ieșiri Y1…YP ;
•TP – traductoare
Figura.4.1. Structură de reglare multivariabilă
Descrierea matematică a structurii de reglare multivariabilă
Procesul tehnologic.
În cele ce urmează vom considera cazul când m=p. Ecuațiile de stare ce descriu procesul tehnologic sunt:
Sp: (4.1)
respectiv matricea de transfer este:
(4.2)
EEi – elementul de execuție corespunzător mărimii de intrare. Pentru întregul ansamblu al blocului elementelor de execuție, ecuațiile de stare sunt:
Se: (4.3)
în care:
[u(t)]T=[u1(t)…um(t)] iar yc este vectorul mărimilor de ieșire de la blocul de compensare C. Matricea de transfer este:
E(s)=Ce(sI-Ae)-1Be+De (4.4)
C – este sistemul dinamic suplimentar, introdus în scopul decuplării și asigurării controlului asupra procesului în cazul funcționării corecte. Ecuațiile de stare atașate sunt:
Sc: (4.5)
în care:
[yR(t)]T=[yr1(t)….yrp(t)] – este vectorul mărimilor de ieșire de la blocul regulator; [yc(t)]T=[yc1(t)…ycm(t)].
Matricea de transfer are expresia:
C(s)=Cc(sI-Ac)-1Bc+Dc (4.6)
Ri – regulatorul corespunzător buclei i, .
Pentru întregul bloc al regulatoarelor avem ecuațiile de stare:
SR : (4.7)
și respectiv matricea de transfer:
R(s)=CR(sI-AR)-1BR+DR (4.8)
În plus, avem următoarea relație între mărimile de referință și cele reglate:
e(t)=v(t) – yp(t) (4.9)
în care:
[e(t)]T=[e1(t) e2(t)…ep(t)] – reprezintă vectorul erorilor;
[v(t)]T=[v1(t) v2(t)…vp(t)] – reprezintă vectorul mărimilor de referință;
[yp(t)]T=[yp1(t) yp2(t)…ypp(t)] – reprezintă vectorul mărimilor reglate.
Interconectând ecuațiile (4.1) ÷ (4.7) conform schemei bloc din figura 4.1, se obțin ecuațiile de stare pentru întregul ansamblu S, de forma:
S : (4.10)
în care: [xs(t)]=[xp(t) xe(t) xc(t) xR(t)]
respectiv:
;
Cs=[Cp 0 0 0].
In cadrul structurii de reglare multivariabile pot apare o serie de defecte la elementele de execuție, la traductoare sau la instalațiile tehnologice marcate în figura cu D.
Pentru detecția defectelor utilizând metode analitice, este necesar ca defectul să fie transpus în forma matematică iar matricele de transfer din (4.10) să conțină coeficienți care să depindă de defect.
O alta soluție ar fi dezvoltarea unei structuri software de detecție a defectelor fară să fie necesară dezvoltarea de modele matematice exacte ale defectelor la traductoare sau elementele de execuție [32] – Vînătoru Matei, Iancu Eugen, 1999.
Una dintre aceste metode va fi prezentată în continuare.
Structură software de detecție a defectelor elementelor de execuție.
Structura propusă în figura 4.2 poate fi implementată simplu ca o procedură în cadrul unui program uzual de conducere a unui sistem multivariabil, nefiind necesare modificări suplimentare în sistemul de achiziție „„„„„„„„„„„„„„ de date. Ea utilizează datele curente culese de la proces de programul principal de reglare și poate fi apelată manual la anumite intervale de timp sau poate fi lansată automat atunci când apar anumite anomalii în proces.
Structura sistemului de detecție și localizare a defectelor ce pot apare la elementele de execuție (blocarea acestora sau modificarea factorilor de transfer în regim staționar față de cei luați în calcul inițial) este prezentată în figura 4.2.
Figura 4.2. Stuctură de detecție a defectelor.
Această structură utilizează modelul procesului cu elementele de execuție normate, iar la intrarea acestuia se aplică comanda xc furnizată procesului real de regulatorul principal al procesului. Suplimentar se creează generatorul de reziduri bazat pe abaterea em dintre mărimea de ieșire a procesului real Y și mărimea de ieșire a modelului procesului ym.
Dacă elementul de execuție funcționează normal atunci Y=Ym și em=0. In cazul elementului de execuție defect apare o eroare em și regulatorul m va da o comandă suplimentară xc1 pentru anularea erorii, deci pentru a aduce ym la valoarea lui y.
Se va demonstra în continuare că valoarea comenzii xc1 este proporțională cu valoarea de defect a elementului de execuție [33] – Vînătoru Matei, Eugen Iancu 2000.
Fie procesul tehnologic descris prin ecuații de stare (4.1) și regulatorul considerat de tip PI prin ecuația (4.12)
(4.11)
(4.12)
unde:
– vectorul de stare al procesului tehnologic,
y – mărimea de ieșire măsurabilă,
α – parametrul ce descrie un defect al elementului de executie,
iar xc – vectorul de comandă la ieșirea regulatorului considerat de tip PI și v – mărimea prescrisă a sistemului de reglare.
Structura de reglare corespunzătoare detecției defectului include ecuațiile modelului echivalent al instalației tehnologice (4.13) și ecuația regulatorului PI echivalent (4.14):
(4.13)
(4.14)
După prelucrări adecvate în ecuațiile (4.11) ÷ (4.14) , în regim staționar cu eroare staționară nulă
, rezultă:
(4.15)
Pentru cazul unui sistem liniar echivalent descrise prin ecuațiile:
(4.16)
relația (4.15) are forma (4.17) unde α este parametrul ce caracterizează defectul din sistemul real, iar αm este parametru echivalent luat în calcul în modelul instalației.
sau (4.17)
Pentru asigurarea implementării acestei structuri sunt necesare următoarele condiții:
•modelul instalației trebuie să reproducă exact comportarea în regim staționar a procesului real ( în regim dinamic se pot utiliza funcții de transfer simplificate);
•structura în circuit închis de detecție a defectului trebuie să fie asimptotic stabilă fapt ce se asigură utilizând un regulator identic cu cel al procesului real;
•timpul de răspuns al structurii de detecție trebuie să fie mai mic decât al procesului real;
•perturbațiile ce apar în procesul real trebuie introduse și în structura modelului [10] Iancu Eugen, Vinatoru Matei, 2003.
In concluzie, dacă există o diferență între coeficienții de transfer în regim staționar între elementul de execuție real α și elementul de execuție din model αm, ce corespunde valorii fără defect, atunci ieșirea xc1 a regulatorului modelului va avea o valoare diferită de zero, proporțională cu valoarea defectului.
4.5.3. Rezultate experimentale pe shelter-ul de telecomunicații
a) Modelul matematic al shelterului
Se va utiliza structura software de detecție a defectelor elementelor de execuție prezentată în 4.5.2. punctul b (figura 4.2).
Pentru implementarea metodei este necesar dezvortarea unui model simplificat al procesului care să poată fi implementat pe automatul proiectat și realizat pentru monitorizare și control a temperaturilor în interiorul shelterului.
Se va utiliza modelul neliniar dezvoltat in capitolul 3 la paragraful 3.3.1. Proiectarea regulatorului de temperatură, adaptate la cerințele de implementare ale automatului.
Pentru dulapul Rack
(4.18)
Pentru spațiul interior shelterului
(4.19)
Semnificațiile marimilor ce intervin în aceste ecuații au fost specificate în 3.3.1. în care s-a ales coeficientul de validare αv = 1.
In ecuațiile (4.19) nu s-au inclus termenii corespunzători fluxurilor de caldură date de aerul condiționat sau de radiatorul de încălzire.
Se va studia metoda doar pentru regimul de funcționare pentru temperaturi exterioare cuprinse între 00C și 300C situație în care sistemul de reglare a temperaturii comanda debitul de aer al ventilatoarelor de recirculare al aerului exterior.
In (4.19) debitul Fv = (1- αd)KExC
unde: xC este comanda dată de regulatorul de temperatură, KE este factorul de transfer al elementului de execuție la funcționare normală iar coeficientul de defect αd ∈ (0,1) a fost introdus pentru simularea unui defect.
In timpul exploatării există posibilitatea defectării (blocării) unui ventilator, ce reduce corespunzator debitul de aer Fr, fapt ce va fi simulat prin valori ale lui αd ∈ (0,1).
Sistemul de reglare a temperaturii poate compensa acest defect mărind corespunzator turația celorlalte ventilatoare astfel încât să mențină temperatura în shelter la valoarea prescrisă. Acest lucru nu trebuie menținut pe o perioadă de timp îndelungată deoarece la o creștere a temperaturii exterioare sistemul de reglare nu mai poate asigura temperatura prescrisă deoarece, comanda regulatorului ajunge la valoarea maximă iar debitul Fv nu mai este suficient.
In acest caz, nu poate fi depistat defectul doar prin monitorizarea temperaturilor Tz si Tra și este necesară implementarea unei structuri de detecție și localizare a defectelor care să informeze operatorul situat la dispecer asupra defecțiunii.
In dulapul Rack se află mai multe echipamente de comunicații, fiecare echipament furnizând un anumit flux de caldură Qeci , suma totala a fost prinsă in (4.18) prin Qec = . Defectarea unui echipament de comunicație va conduce la scăderea fluxului blobal de caldura Qec (cu nQeci) fapt ce trebuie de asemenea semnalat operatorului.
b) Structura sistemului de detecție a defectelor
Structura utilizată se bazează pe metoda rezidurilor conform figurii 4.3. [12] – Iancu Eugen, Vinatoru Matei, 1999.
Figura 4.3. Structura de detecție a defectelor
In instalațiile de tip shelter se măsoară uzual temperatura aerului în interiorul shelterului (mărimea măsurată și reglată) și temperatura aerului exterior (perturbație principala). Exista o singură mărime de comandă – debitul de aer al ventilatoarelor de recirculare a aerului din interiorul shelterului.
Pentru eliminarea efectelor perturbațiilor sau a modificarilor voite ale mărimii prescrise asupra rezidurilor față de schema clasică, prentată într-o serie de lucrări, se va utiliza în acest caz o schema modificată prezentată în [38] Vinatoru Matei, 2005.
Această structură este prezentată în figura 4.4.. In acest caz blocul de detecție a defectelor este realizat cu regulatorul compensator (REG, COMP) ce primește la intrare mărimea de ieșire măsurată de la proces și mărimea de ieșire a modelului.
Figura 4.4. Structura de detecție a defectelor.
Defectul considerat poate apare la elementul de execuție al procesului (în cazul nostru blocarea unui ventilator de aer, sau reducerea debitului acestor ventilatoare).
In cazul lipsei defectului, procesul si modelul procesului primesc aceeași comandă xc de la regulatorul de temperatură și în acest caz Tz și Tzm sunt egale. In consecință, eroarea em a regulatorului compensator este zero și ieșirea xcm a regulatorului compensator va fi zero. Deci blocul indicator de defect va indica defect zero (R=0) .
In cazul în care apare un defect la elementul de execuție, (modificarea factorilor de transfer KE al elementului de execuție cu (1- αd)).
Up=Fv=KE(1- αd) xc , nu va mai asigura temperatura Tz la valoarea mărimii prescrise , iar regulatorul de temperatură va modifica comanda xc la xc1 astfel încat TZ = Tz*.
Insă noua comndă xc1 se aplică și la modelul procesului al cărui element de execuție lucrează fără defect. In consecință ieșirea Tzm va fi diferită de Tz și regulatorul compensator va da o comandă suplimentară xcm pentru a aduce ieșirea Tzm la valoarea lui Tz . Se va demonstra în continuare ca această comandă este proporțională cu valaoarea αd a defectului.
c)Proiectarea generatorului de defect.
Pentru simplificare se va lucra doar cu ecuațiile de bilanț pentru shelter (4.19) în care Fv
*Procesul Real:
(4.20)
*Pentru modelul procesului
(4.21)
Definind reziduul , din (4.20) și (4.21) prin scădere rezultă ecuația diferențială pentru reziduul r:
(4.22)
In regim staționar, în cazul în care cele două bucle de reglare asigură eroare staționară nula (se vor utiliza regulatoare PI) , rezultă din (4.22) pentru r=0 și , rezultă :
(4.23)
Din (4.23) se determină comanda xcm :
(4.24)
Din (4.24) se observă că xcm depinde de cele două defecte posibile αd – blocarea unui ventilator de comandă și (Qec-Qecm) – oprirea unui echipament de comunicații, dar și de perturbația externa Temperatura exterioara. Pentru eliminarea acestei ultime influențe este necesar ca în model să se introducă valoarea reala masurată a temperaturii externe deci Texm= Tex.
Acest lucru este posibil simplu deoarece temperatura externă este măsurată cu senzorul de temperatură externă și introdusă în automatul de control al temperaturii pentru asigurarea regimurilor de funcționare , deci este accesibilă în programul de detecție al defectelor.
In acest caz (4.24) devine:
(4.25)
Deci xcm depinde doar de cele doua defecte posibile αd și Qec-Qecm.
d)Rezultate experimentale simulate.
Deoarece nu s-a obținut aprobarea de la companiile de comunicații pentru implementarea reala a automatului de control a temperaturii pe un shelter de comunicații, s-au realizat simularile în Matlab-simulink, pe modele echivalente ale shelterelor.
Structura utilizată pentru modelul shelter-ului conform ecuațiilor (4.18) și (4.19) este prezentată în figura 4.5.
Figura 4.5. Structura modelului shelter-ului
In figura 4.6. este prezentată structura sistemului de detecție a defectelor realizate pe baza schemei de principiu din figura 4.4. și analizată la punctual c) al acestui subcapitol
Fig 4.6. Structura sistemului de detecție a defectelor.
Pentru experimentare s-au stabilit următoarele scenarii:
10 . Experimentul se derulează pe un interval de 100 ore în care s-a considerat o temperatură exterioară Tex = 10+sin(2π/24·t+0,9), deci având o valaore medie de 100C peste care se suprapune o variatie sinusoidală cu amplitudinea de ±50C simulând variațiile noapte/zi ale temperaturii;
20 . Experimentul a pornit cu o mărime prescrisă TZ*=250C pentru regulatorul de temperatură, iar la momentul t=25 s-a modificat mărimea prescisă la TZ*=220C având αd =0 (sistemul fără defect).
30 . La momentul t=35 se introduce un defect αd =0,5 (deci s-a defectat un ventilator).
40 . La mometul t=70 s-a introdus un defect corespunzător defectării unui echipament de comunicație, considerând scăderea cu 400 Jouli a fluxului de căldură degajat în dulapul rack al echipamentelor (Qex1= Qex – 400).
Figura 4.7. Variația temperaturilor în condițiile specificate
Rezultatele experimentului sunt prezentate în figura 4.7. Din figură se observă următoarele:
– Sistemul de reglare asigura temperatura impusă în shelter la variațiile de ±50C a temperaturii exterioare prin comanda debitului de aer al ventilatoarelor de recirculare fără a apela la sistemul de încălzire cu care este prevăzut shelterul, deci exploatând căldura degajată de echipamentele de comunicații.
-Sistemul de reglare asigură un raspuns rapid la modificarea mărimii prescrisă la momentul t=25.
-Sistemul de reglare nu este afectat de defectele introduce la momentele t=35 și t=70, compensând printr-o comanda suplimentară efectul defectelor. Deci prin măsurarea temperaturii Tz nu se poate pune în evidență defectul.
In figura 4.8. este prexentată variația comenzilor regulatorului din care se observă modificarile în comandă la apariția defectelor (t=35 si t=70).
Figura 4.8. Variatia comenzii regulatorului.
e) Utilizarea metodei clasice a rezidurilor de detecție a defectelor.
Schema de simulare permite vizualizarea răspunsului unui sistem de detecție a defectelor bazată pe metoda clasică a rezidurilor, definind rezidul r = Tz – Tzm .
Rezultatul este prezentat în figura 4.9, din care rezultă că această metodă dă doar o informație orientativă asupra momentelor apariției defectelor.
Fig. 4.9. Detecția defectelor – metoda reziduurilor.
f). Rezultatele structurii propuse de detecție a defectelor cu regulator compensator.
Așa cum rezultă din relația (4.25) ieșirea xc a regulatorului compensator este influențată de valoarea defectului elementului de execuție al instalației.
In figura 4.10 este prezentată variația raspunsului regulatorului compensația în condițiile specificate ale experimentului. Se observă că această ieșire este zero până la apariția defectului, momentul de timp t=35, are o variație la apariția celui de-al doilea defect, momentul t=70 dar revine la valoarea defectului αd = -50.
Figura 4.10. Detecția defectelor cu regulator compensator.
Pentru detecția separată a ambelor defecte este necesar să se introducă un senzor pentru măsurarea suplimentară a temperaturii Tra a aerului evacuat din dulapul rack, descrisă în modelul matematic de ecuația (4.18) In acest caz se pot defini două reziduri r1= Tz – Tzm și r2= Tra – Tra m.
In regim staționar se scriu ecuațiile (4.18) pentru proces și pentru model:
(4.26)
(4.27)
Scazând (4.27) din (4.26) rezultă:
sau
(4.27)
Din (4.27) rezultă ca diferența celor două reziduri este proportională cu valoarea defectului Qec- Qecm .
Adaptarea schemei de simulare este simplă, iar rezultatele sunt prezentate în figura 4.11 în care s-au prezentat ambele raspunsuri ale reziduurilor:
R1=xc si R2=r1-r2 ce pun în evidența defectele posibile ce apar în funcționarea
shelter-elor.
Fig. 4.11. Detecția defectelor cu schema combinată
In figura 4.11. s-a ales scala pentru rezidul R1 este de la 1/10, iar pentru rezidul R2 este de 1/100, pentru reprezentarea mai sugestivă a celor doua reziduri.
4.5.4. Concluzii
S-au prezentat în cadrul acestui capitol cateva posibilități de implementare a unor structuri software de detecție și localizare a defectelor la shelter-ul de comunicații ce pot fi implementate pe automatul programabil, proiectat și realizat în cadrul tezei de doctorat.
In cadrul proiectării s-a ținut cont de condițiile concrete de exploatare a acestor sheltere de comuncații. De asemenea s-a urmărit reducerea costurilor de implementare avand în vedere faptul că fiecare companie de telecomunicații are un număr foarte mare de echipamente distribuite în teritoriu și nu sunt dispuse să investească sume importante pe componente complexe și costisitoare.
5. REALIZARE PROTOTIP ȘI TESTARE A SISTEMULUI DE MONITORIZARE ȘI CONTROL AL PARAMETRILOR AMBIENTALI
5.1. Introducere
In capitolul cinci este prezentat modulul de funcționare și testare al unui prototip de monitorizare și control al parametrilor ambientali (SMC-01), descrierea elementelor ce alcătuiesc sistemul, descrierea funcțională a microcontrolerului pentru climatizarea și monitorizarea containerelor de telecomunicații.
Controlerul pentru climatizarea și monitorizarea containerelor pentru telecomunicații, este un sistem de proces, realizat cu microcontrolerul ColdFire V1, MCF51JM64, fabricat de Freescale (USA) care primește informații de la patru senzori de temperatură exteriori/interiori și care poate comanda cel puțin două ventilatoare, un convector de încălzire pentru sezonul de iarnă și un sistem de răcire/dezumidificare pentru sezonul de vară.
Figura 5.1 Vedere generala a sistemului de monitorizare și control.
5.2. Descrierea funcționării sistemului inteligent de monitorizare și control al parametrilor ambientali pentru spațiile destinate echipamentelor de telecomunicații
5.2.1. Descrierea elementelor ce alcătuiesc sistemul de monitorizare și control
Modulul electronic de monitorizare și control al dulapului SMC-01 este un sistem digital instalat în interiorul shelter-ului cu sarcina principală de optimizare a funcționarii echipamentelor, care asigură condițiile climatice din interiorul dulapului, de monitorizare a funcționării acestora, de memorare a evenimentelor care conduc la depașirea regimurilor optime de temperatură și lansarea alarmelor corespunzatoare fiecărui eveniment.
Aplicația modulului SMC-01 are la baza un microcontroller, iar programarea modulului are ca obiectiv condițiile de funcționare optimă a echipamentelor de telecomunicații instalate în interiorul dupalului. Cablarea modulului SMC-01 în cadrul dulapului și interconectarea cu senzorii de temperatură și echipamentele a căror funcționare o gestionează este cea din figura.5.2.
In acest scop, SMC-01, măsoara în mai multe puncte temperatura interioară/exterioara și apoi comandă elementele de climatizare cu care este echipat dulapul:
•ventilatoare;
•convector (radiator electric);
•echipament pentru aer condiționat.
Funcție de puterea disipată în interiorul dulapului și de temperatură exterioară, SMC-01 activeaza cel mult unul din elementele de climatizare menționate mai sus.
Rezultă astfel, următoarele moduri de funcționare:
•ventilație, în cazul în care ventilatoarele sunt activate și fac schimbul de temperatură între shelter și mediul extern;
•răcire, în cazul în care aerul condiționat este activat;
•climatizare naturală, în cazul în care nici unul din elementele de climatizare nu este comandat.
La defectarea tuturor senzorilor de temperatură sau un defect de alimentare al sistemului, SMC-01 activează ambele alarme de temperatură. [15] – Lubritto, C. 2011.
5.2.2. Descrierea funcțională a microcontrolerului pentru climatizarea și monitorizarea containerelor de telecomunicații.
5.2.2.1. Parametrii de mediu.
Controlerul pentru climatizarea și monitorizarea containerelor pentru telecomunicații, este un sistem de proces, realizat cu microcontrolerul ColdFire V1, MCF51JM64, fabricat de Freescale (USA).
SMC-01 poate realiza climatizarea și monitorizarea shelter-elor pentru telecomunicații prin rularea continuă, a unei aplicații software preînregistrată în memoria flash a microcontrolerului. Această aplicație se lanseaza în execuție în mod automat, la punerea sub tensiune și nu necesită setări inițiale sau intervenția vreunui operator.
SMC -01 este programat să asigure, în interiorul containerului în care este instalat, condiții de temperatură conforme cu standardul ETSI EN 300019 class 3.6, ETSI EN 300 019-1-3 V2.3.2 (2009-07), adică o temperatură internă cuprinsa între 15 ºC și 30 ºC.
Condițiile de mediu în care se pot instala containerele pentru telecomunicații prevăzute cu SMC -01 sunt conforme cu standardul ETSI EN 300019 class 4.1, ETSI EN 300 019-1-4 V2.1.2 (2003-04), adică:
●temperatura mediului ambiant cuprinsă între -33 ºC si +40 ºC ;
●umiditatea relativă maximă 100% ;
●viteza maximă a aerului 50 m/s ;
●intensitatea maximă a ploii 6 mm/min.
In paralel cu operația de climatizare SMC -01 realizează monitorizarea containerelor pentru telecomunicații. In acest scop SMC -01 execută urmatoarele operații:
●culege date cu privire la :
– starea sistemului de alimentare (curent alternativ- prezent sau absent) ;
– starea sistemului de alimentare de curent continu (tensiunea bateriei) ;
– temperatura internă și externă a containerului la intervale de timp prestabilite ;
●generează alarmele de temperatură dacă se depașesc limitele admise ale temperaturii
interne;
●memorează datele culese și alarmele în fișiere pe suport micro SD CARD format FAT32. Schelterul de Monitorizare și Control-01 realizează zilnic un fisier text în care sunt memorate datele menționate anterior.
Vizualizarea, arhivarea sau tipărirea fișirelor generate se poate face oricand utilizand un cititor de carduri (CARD READER) independent. In lipsa acestuia, SMC -01 poate fi trecut în modul CARD READER și prin conectare la un PC, utilizand interfața USB, se poate explora memoria SD CARD.
5.2.2.2. Descriere funcțională
Din punct de vedere constructiv și funcțional controlerul pentru climatizarea și monitorizarea containerelor pentru telecomunicații SMC -01 (figura 2), este compus din două module:
– modulul DATA LOGGER;
– modulul FAN CONTROLLER.
Cele doua module sunt conectate între ele prin doi conectori, unul de 36 pini pentru semnalele logice și analogice de mică putere și unul de 5 pini pentru alimentarea de -48V.
Figura 5.3. Modulul de afișare, control și microcontroler.
Figura 5.4. Modulul de alimentare +48 v / +5v, comandă relee și leduri alarmă.
5.2.2.2.1. Modulul DATA LOGGER
Modulul Data Logger este un sistem “embedded”, adica un microcalculator ce ruleaza o aplicație specifică. Componenta de baza a unui sistem “embedded” este microcontrolerul. In cazul modulului Data Logger, microcontrolerul este MCF51JM64.
Figura 5.5. Sistemul de Monitorizare și Control-01 – schema bloc.
Conform definiției general acceptate, microcontrolerul este un microcomputer realizat într-un singur circuit integrat, care conține unitatea aritmetica/logică, memoria pentru programe și date, precum și periferice de intrare/ieșire programabile.
MCF51JM64 este un microcontroller ce operează pe 32 de biți și are următoarele caracteristici de bază:
●frecvența de operare maximă: 50,33 Mhz. ;
●memorie flash : 64 kbytes ;
●memorie RAM :16 kbytes ;
●porturi de intrare ieșire: 51 ;
●convertor analog digital 12 biți și 12 canale ;
●interfață pentru comunicații seriale asincrone : SCI1 si SCI2 ;
●interfață pentru comunicații seriale sincrone : SPI1 si SPI2 ;
●interfață pentru comunicații seriale cu protocol I2C ;
●numărător /modulator în durata programabil: TPM1 cu 6 canale și TPM2 cu 2 canale;
●ceas de gardă (Watchdog) ;
●numărător de timp real : RTC ;
●interfață USB, On-The-Go .
Caracteristicile microcontrolerului MCF51JM64 au permis implementarea următoarelor unități funcționale în modulul DATA LOGGER:
●display LCD cu 2 linii a cate 16 caractere ;
●interfața memorie micro SD CARD ;
●ceas de timp real și calendar ;
●memorie, pentru constante, tip EEPROM cu interfața I2C ;
●port serial cu interfața RS232 , (COM Port) ;
●USB Port ;
●butoane pentru comenzi ;
●patru intrări analogice ;
●patru intrări digitale.
Exceptând unitățile funcționale menționate, modulul DATA LOGGER, mai conține un bloc de alimentare (figura 5.6), compus din două convertoare de tensiune dc-dc.
Figura 5.6. Bloc alimentare DC – DC cu iesiri de 5v si 3,3 v
Unul din convertoare, IZ4805SA fabricat de XPPOWER, este în comutație cu separare galvanică și are următoarele caracteristici:
●tensiunea de intrare, Vi = 48V (Viminim = 36 V, Vimaxim = 72V);
●tensiunea de ieșire, Vout = 5 V ;
●curent de ieșire, Iout = 600 mA .
Celălalt convertor, TS1117CP-33 fabricat de TSC, este linear cu tensiunea intrare-ieșire redusă (Low Dropout Voltage) are următoarele caracteristici :
●tensiunea de intrare, Vimax = 7V ;
●tensiunea de ieșire, Vout = 3,3V ;
●curent de ieșire maxim, Iout = 800 mA.
Ieșirea convertorului TS1117CP-33 alimentează doar modulul DATA LOGGER, partea logică a modulului FAN CONTROLLER fiind alimentată din ieșirea de 5V a convertorului IZ4805SA.
Intrarea convertorului TS1117CP-33 este conectată, în funcționare normală, la ieșirea de 5V a convertorului IZ4805SA, dar poate fi comutată cu jumper-ul JP4 la 5V USB.
Alimentarea din portul USB este folosită doar pentru service. In acest caz alimentarea de -48V trebuie deconectată.
1. Display LCD 2×16 caractere
Display-ul LCD, model DEM16216SYH-PY, este un afișaj cu cristale lichide cu doua linii a cate 16 caractere. El are în componența sa un controler tip KS0070B, compatibil cu controlerul Hitachi, HD44780, devenit standard pentru aceasta clasă de componente.
KS0070B asigura comunicația de date și comenzi cu microcontrolerul MCF51JM64, dar face și conversia datelor primite pentru afișarea acestora pe matricea de puncte a display-ului. Fiecare caracter poate fi afișat într-o matrice cu formatul 5×8 puncte. Setul caracterelor afișabile include alfabetul latin, alfabetul grec și semnele de punctuație, în total 192 caractere.
Interfața microcontroler-display este initializată pentru lucru pe 8 biți de date bidirecționale. Controlerul KS0070B poate să lucreze și pe 4 biți de date. In afara de magistrala de date bidirecțională, interfața microcontroler-display mai conține :
●trei semnale de control generate de microcontroler ;
●un semnal pentru contol contrast display ;
●semnalele de alimentare (GND și +3,3V) ;
●semnalele de alimentare a LED-urilor pentru iluminare display (LED+ și LED-).
In modul de funcționare, climatizare și monitorizare pe display-ul LCD se afișează următoarele informații:
●pe prima linie: data (dd.mm.yy) și ora (hh:mm) ;
●pe a doua linie, la începutul ei, se afișează succesiv la intervale de două secunde temperatura măsurată de patru senzori pentru temperatura în formatul (Tx=±nnnºC) iar la sfarșitul linie pe doua caractere se afișează starea climatizorului.
SMC -01 în procesul de climatizare poate să treacă prin următoarele stări:
●încalzire – pe display se afișează HM (heating mode);
●climatizare naturală – pe display se afișează VO;
●șase trepte de ventilație – pe display se afișează V1,V2,V3,V4,V5 sau V6 ;
●răcire – pe display se afișează CM (cooling mode) ;
2. Interfața memorie micro SD CARD.
Modulul DATA LOGGER este prevăzut cu o interfață pentru memorie micro SD CARD. Din punct de vedere electromecanic interfața este realizată cu un conector specific memoriei micro SD, care permite inserția și extracția acesteia prin dubla apasare (push-push).
Interfața memoriei micro SD CARD poate opera în două moduri :
●SD CARD mode ;
●SPI mode.
In modul SD CARD transferul datelor între memorie și microcontrolerul gazdă se face în paralel pe patru biți, iar în modul SPI (serial peripheral interface) transferul este serial.
In modulul DATA LOGGER memoria micro SD este conectată în modul SPI. In această conexiune microcontrolerul gazda MCF51JM64 este master, iar memoria micro SD este slave.
Semnalele interfeței SPI sunt urmatoarele:
●SPSCK — SPI Serial Clock ;
●MOSI — Master Data Out, Slave Data In ;
●MISO — Master Data In, Slave Data Out ;
●SS — Slave Select .
Memoria micro SD admite, în modul high speed, un ceas, SPSCK, cu frecvența maximă de 50 MHz., dar interfața SPI a microcontrolerului MCF51JM64 poate fi setată la cel mult 12 MHz.
Exceptand semnalele interfeței SPI conexiunea memoriei micro SD la modulul DATA LOGGER mai are doua semnale de alimentare (GND și +3,3V) și un semnal de prezență card.
Din punct de vedere aplicativ memoria micro SD este utilizată ca suport pentru informația de monitorizare a nodurilor (containerelor de telecomunicații). Dupa cum am mai menționat aplicația software de monitorizare a nodurilor generează zilnic un fișier în format FAT32.
3. Ceas de timp real și calendar.
Ceasul de timp real și calendar asigură sistemului SMC-01 informațiile referitoare la data și ora locala astfel:
●data (ziua din saptamana, data, luna, anul) ;
●ora (secunde, minute, ore).
Aceste informații sunt afișate în permanență pe display-ul LCD al sistemului, dar sunt folosite și de sistemul de fișiere FAT32 pentru a crea atributele temporare ale fișierelor și directoarelor.
Ceasul de timp real și calendar este realizat cu circuitul integrat specializat DS1337, fabricat de DALLAS-MAXIM.
Pentru conectarea la microcontrolerul gazda MCF51JM64, DS1337 are o interfață serială cu protocol I2C.
Principalele particularități funcționale ale ceasului de timp real DS1337 sunt urmatoarele:
●calendar valabil pană în anul 2100 ;
●doua alarme programabile ;
●oscilator intern pentru cristal cu frecvență de 32768 KHz ;
●domeniu extins pentru tensiunea de alimentare (1,8V pană la 5.5V);
●consum redus (600 uA pentru interfata I2C inactivă și 150 uA pentru interfața I2C activă) .
Ultimile doua facilități au permis alimentarea ceasului de timp real DS1337 direct dintr-o baterie cu litiu miniatură, tip BR1225, fabricant Panasonic. Capacitatea bateriei este de 48 mAh și are o durată de viață calculată de minimum 8 ani .
4. Memorie EEPROM cu interfață I2C.
5. Port serial cu interfață RS232.
6. USB Port.
7. Butoane pentru comenzi.
8. Intrări analogice.
9. Intrări digitale.
5.2.2.2.2. Modulul FAN CONTROLLER
In acest scop, Sistemul de Monitorizare și Control -01, măsoară , în mai multe puncte, temperatura interioară și apoi comandă elementele de climatizare cu care este echipat dulapul:
●ventilatoare;
●convector;
●echipament pentru aer condiționat.
Funcție de puterea disipată în interiorul dulapului și de temperatura exterioară, SMC-01 activează cel mult unul din elementele de climatizare menționate mai sus.
Rezultă astfel, următoarele moduri de funcționare :
●ventilație, în cazul în care ventilatoarele sunt activate;
●răcire, în cazul în care aerul condiționat este activat;
●încalzire, în cazul în care convectorul este activat, și
●climatizare naturală, în cazul în care nici unul din elementele de climatizare nu este comandat.
In cazul în care temperatura din interiorul dulapului de telecomunicație depașeste limitele admise, SMC-01, poate semnaliza următoarele două alarme:
•alarmă pentru depășirea limitei superioare de temperatură;
•alarmă pentru depașirea limitei inferioare de temperatură;
Pentru controlul temperaturii în interiorul dulapului, SMC-01, utilizează trei senzori de temperatură. Daca unul dintre senzori este defect sau neconectat controlul temperaturii se face cu ajutorul celorlalți senzori ramași în sistem.
Redundanța senzorilor asigură o creștere de fiabilitate a sistemului dar și
optimizarea temperaturii interne a dulapului. Defectarea tuturor senzorilor de temperatură sau un defect de alimentare al sistemului SMC-01 activează ambele alarme de temperatură.
5.2.2.3. Elemente componente și de conectare
In figura 5.7 este prezentată vederea de ansamblu a SMC-01, cu toate elementele sale componente și de conectare:
Figura 5.7. Prezentare generala SMC-01.
1. POWER IN, conector de alimentare: 48V, 3W,
limite: Vimin= 36V, Vimax=72V,
polaritatea este marcata pe panou;
2. VOLT OUT1, ieșire controlata in tensiune pentru ventilator 1,
limite: Voutmin=0V, Voutmax=vi-5V,
ioutmax=0.5A,
polaritatea este marcata pe panou;
3. VOLT OUT2, ieșire controlata în tensiune pentru ventilator 2;
limite: Voutmin=0V, Voutmax=Vi-5V,
Ioutmax=0.5A,
polaritatea este marcata pe panou;
4. OUTPUT1, ieșire contacte releu: comun, normal închis și
normal deschis, utilizare: alarmă ventilator 1
defect;
5. OUTPUT2, ieșire contacte releu: comun, normal închis și
normal deschis, utilizare: alarmă ventilator 2
defect;
6. OUTPUT3, ieșire contacte releu: comun, normal închis și
normal deschis, utilizare: alarma
supratemperatură;
7. OUTPUT4, ieșire contacte releu: comun, normal inchis și
normal deschis, utilizare: alarmă
subtemperatură;
8. OUTPUT5, ieșire contacte releu: comun, normal inchis și
normal deschis, utilizare: comandă aer
condiționat;
9. OUTPUT6, ieșire contacte releu: comun, normal închis și
normal deschis, utilizare: comandă convector;
10. RESET, reset controler pentru climatizare și
monitorizare;
11. DOWN, buton setare ceas de timp real;
12. UP, buton setare ceas de timp real
13. SET DATE, buton setare ceas de timp real;
14. SET TIME, buton setare ceas de timp real;
15. DISPLAY, doua linii a cate 16 caractere,
afișează temperatura, data și ora sistemului;
16. INPUT1, intrare digitală 1, neutilizată;
17. INPUT2, intrare digitală 2, neutilizată;
18. INPUT3, intrare digitala 3, monitorizare rețea;
19. INPUT4, intrare digitala 4, neutilizată;
20. SENSOR4, senzor de temperatură 4: pentru temperatura
externa;
21. SENSOR3, senzor de temperatură 3: măsoară temperatura
din dulap la nivelul plafonului;
22. SENSOR2, senzor de temperatură 2: masoara temperatura
aerului evacuat de ventilatorul 2;
23. SENSOR1, senzor de temperatură 1 masoara temperatura
aerului evacuat de ventilatorul 1;
24. INTERFATA SERIALA;
25. INTERFATA USB;
26. CARD MEMORIE;
27. LED-uri, pentru semnalizare comenzi și alarme.
5. 3. Procedură pentru testarea SMC-01.
Testarea din punct de vedere funcțional al controlerului pentru climatizare se poate face în labotator. In acest scop avem nevoie de urmatoarele echipamente:
•Sistemul de Monitorizare și Control – 01, ce va fi testat,
•Sursa de curent continuu, cu tensiune de ieșire de 48V și curentul minim de ieșire de 2A.
•Unu sau două ventilatoare de curent continuu, model EBM PAPST 6248N,
•Senzor de temperatură tip KTY81-110, prevăzut cu fire de legatură,
•Potențiometru multitură de 2200 ohmi pentru simularea variației de temperatură.
Schema de conectare este prezentată în figura 21.
Din punct de vedere funcțional SMC-01 este un automat care are ca intrări:
•Senzorii de temperatură: SENSOR1, SENSOR2 și SENSOR3 și
•Intrarea digitală INPUT3,
iar ca ieșiri:
•Ieșirile controlate în tensiune pentru comanda ventilatoarelor:VOLT OUT1 și VOLT OUT2,
•Ieșirea OUTPUT5 pentru comanda echipamentului de răcire (aer condiționat),
•Ieșirea OUTPUT6 pentru comanda echipamentului de încalzire (convector),
•Ieșirea OUTPUT3 pentru alarma de supratemperatură,
•Ieșirea OUTPUT4 pentru alarma de subtemperatură.
Senzorul de temperatură de la intrarea SENSOR4 este utilizat pentru măsurarea temperaturii din exteriorul șhelter-ului. Temperatura exterioară a containerului nu este utilizată în algoritmul de climatizare.
Senzorii de la intrările: SENSOR1, SENSOR2 și SENSOR3 măsoară temperaturi interne ale containerului. Algoritmul de climatizare ia decizii funcție de temperatura maximă măsurată de acești trei senzori.
Dacă unul sau doi senzori sunt deconectati, algoritmul de climatizare îl (sau) îi ignoră. Prin urmare se poate utiliza un singur senzor de temperatură pentru testarea funcționării controlerului pentru climatizare. Acesta este prevăzut cu trei senzori interni din motive de siguranța în funcționare și pentru uniformizarea temperaturii interne.
Dacă toți cei trei senzori de temperatură: SENSOR1, SENSOR2 și SENSOR3 sunt deconectați, algoritmul de climatizare nu mai poate funcționa și în această situție se comandă ambele ventilatoare la turație maximă, și se activează ambele alarme de temperatură pentru a se identifica situația. [36]. Vinatoru, M. 2001.
KTY81-110 este un senzor de temperatură cu siliciu cu coeficient de temperatură pozitiv. Domeniul de temperaturi în care poate fi utilizat este cuprins între -55ºC și +150 ºC.
In acest domeniu rezistența senzorului se modifică de la 490 ohmi la 2211 ohmi.
Prin urmare cu un potențiometru de 2200 ohmi se poate simula orice temperatură în domeniul -55ºC și aproximativ +150 ºC.
Figura 5.8. Schema de conectare pentru testare a SMC-01
Caracteristica de temperatură a senzorului KTY81-110 este dată în anexa 2.
Jumper-ul de la intrarea INPUT3 simulează prezența tensiunii de curent alternativ, (rețeaua de alimentare de 220V). Prin deconectarea jumperului se semnalizează absența tensiunii de rețea. In această situație controlerului pentru climatizare poate să facă doar ventilație, acestea fiind alimentarea din sursa de curent continu (-48V). Comenzile pentru încălzire sau răcire sunt inhibate chiar daca temperatura internă ar impune activarea uneia sau alteia.
Dupa restabilirea alimentării de curent alternativ, activarea comenzilor de răcire sau de încălzire (dacă este cazul) se face cu o întârziere de un minut.
In algoritmul de climatizare se disting șapte intervale de temperatură internă:
Temperatura mai mică sau egală cu 5 ºC ( t ≤ 5 ºC). In acest caz se activează alarma de temperatură scazută, led-ul corespunzator ieșirii OUTPUT4 se stinge. Dacă tensiunea de rețea este prezentă se activează modul de încălzire iar led-ul corespunzator ieșirii OUTPUT6 este aprins. In caz contrar nu se comandă nici un element de climatizare.
Temperatura strict mai mare decat 5 ºC și strict mai mică decat 15 ºC (5 ºC < t < 15 ºC). In acest caz se dezactivează alarma de temperatură scăzută, led-ul corespunzător ieșirii OUTPUT4 se aprinde. Dacă tensiunea de rețea este prezentă se activează modul de încălzire iar led-ul corespunzător ieșirii OUTPUT6 este aprins. In caz contrar nu se comandă nici un element de climatizare.
Temperatura mai mare sau egală cu 15 ºC și strict mai mică decât 18 ºC (15 ºC ≤ t < 18 ºC). Acest interval de temperatură este zona de histerezis a modului de încălzire. Dacă controlerului pentru climatizare este în modul de încălzire, HM (heating mode) este afișat în colțul dreapta jos al display-ului, atunci se menține acest mod până când temperatura internă a containerului devine mai mare sau egală cu 18 ºC. Dacă controlerului pentru climatizare este în modul răcire naturală, V0 este afișat în colțul dreapta jos al display-ului, atunci se păstrează acest mod până când temperatura din interiorul containerului scade sub 15 ºC. In acest moment se trece în modul încălzire, HM, iar led-ul corespunzator ieșirii OUTPUT6 se aprinde.
Temperatura mai mare sau egală cu 18 ºC și strict mai mica decat 25 ºC (18 ºC ≤ t < 25 ºC). In acest interval de temperatură controlerul pentru climatizare este în modul răcire naturală, V0 este afișat în colțul dreapta jos al display-ului.
Temperatura mai mare sau egală cu 25 ºC și mai mică sau egala cu 30 ºC (25 ºC ≤ t ≤ 30 ºC). Acest interval de temperatură este zona de histerezis a modului de răcire. Dacă controlerului pentru climatizare este în modul de racire, CM(cooling mode) este afișat în colțul dreapta jos al display-ului, atunci se menține acest mod până când temperatura internă a containerului devine mai mică sau egală cu 24 ºC. Dacă controlerului pentru climatizare este în modul ventilație, Vi, i = 1,2,3,4,5 sau 6 este afișat în colțul dreapta jos al display-ului, atunci se păstrează acest mod până când temperatura din interiorul containerului crește peste 30 ºC. In modul ventilație controlerul pentru climatizare are 6 trepte de ventilație: la 25 ºC nivelul V1, la 26 ºC nivelul V2, la 27 ºC nivelul V3, la 28 ºC nivelul V4, la 29 ºC nivelul V5 iar la 30 ºC nivelul V6.
Când temperatura din container atinge valoarea de 31 ºC se inițiază trecea în modul răcire, iar led-ul corespunzător ieșirii OUTPUT5 se aprinde. In acest moment unitatea interioară a echipamentului pentru aer condiționat este alimentată, dar unitatea exterioară pornește cu o întârziere de cel mult trei minute.
In acest interval de 3 minute controlerul pentru climatizare rămâne în modul ventilație nivel V6. După expirarea celor 3 minute se oprește ventilația iar Controlerul pentru Climatizare trece efectiv în modul răcire și CM(cooling mode) este afișat în colțul dreapta jos al display-ului. Trecerea în modul răcire este desigur, condiționată de prezența tensiunii de rețea, altfel se rămâne în modul ventilație nivel V6.
Temperatura strict mai mare decât 30 ºC și mai mică sau egală cu 35 ºC (30 ºC < t ≤ 35 ºC). In acest interval de temperatură controlerul pentru climatizare rămâne în modul răcire, CM (cooling mode) este afișat în colțul dreapta jos al display-ului dacă tensiunea de rețea este prezentă altfel se trece în modul ventilație nivel V6.
Temperatura strict mai mare decat 35 ºC ( t > 35 ºC). In acest interval de temperatură controlerul pentru climatizare se află inițial în modul răcire, CM. Se activează alarma de supratemperatură și led-ul corespunzător ieșirii OUTPUT3 se stinge, se activează și ventilația la nivel V3. Dacă alarma de supratemperatură nu dispare în urmatoarele 15 minute, adică temperatura nu scade sub 36 ºC, în condițiile în care funcționează și răcirea și ventilația la nivel V3 se oprește răcirea, led-ul corespunzător ieșirii OUTPUT5 se stinge, ventilația crește la nivel V6, iar controlerul pentru climatizare este trecut în modul ventilație, V6 este afișat în colțul dreapta jos al display-ului (figura 5).
In absența tensiunii de rețea și temperatura internă este strict mai mare decat 35 ºC se activează alarma de supratemperatură și controlerul pentru climatizare este trecut în modul ventilație nivel maxim.V6 este afișat în colțul dreapta jos al display-ului.
Pentru testarea controlerului pentru climatizare se reglează lent potențiometrul conectat la intrarea SENZOR1 astfel încât temperatura T1 afișată pe display să parcurgă toate intervalele de temperatură menționate mai sus.
Se verifică, pentru fiecare interval de temperatură prezentat mai sus, dacă funcționarea controlerului pentru climatizare este conformă cu descrierea facută.
5.4. Concluzii
Modulul electronic de monitorizare și control al dulapului (SMC-01) este un sistem digital instalat în interiorul shelter-ului cu sarcina principală de optimizare a funcționarii echipamentelor care asigură condițiile climatice din interiorul dulapului, de monitorizare a funcționării acestora, de memorare a evenimentelor care conduc la depașirea regimurilor optime de temperatură și lansarea alarmelor corespunzătoare fiecărui eveniment.
Funcție de temperatura disipată de echipamentele de telecomunicații în interiorul dulapului și de temperatura exterioară, sistemul de monitorizare și control activează cel mult unul din elementele de climatizare , rezultand trei moduri de funcționare: ventilație, răcire, climatizare naturală.
Un avantaj important al sistemului de monitorizare și control este ca poate realiza climatizarea și monitorizarea shelter-elor pentru telecomunicații prin rularea continuă, a unei aplicații software preînregistrată în memoria flash a microcontrolerului, aplicație ce se lanseaza în execuție în mod automat la punerea sub tensiune și nu necesită setări inițiale sau intervenția vreunui operator.
Controlerul care executa monitorizarea și controlul parametrilor de mediu din shelter este compus din două module: modulul DATA LOGGER și modulul FAN CONTROLLER.
Modulul Data Logger este un microcalculator ce ruleaza o aplicație specifică. In cazul de față componența de bază a sistemului “embedded” este microcontrolerul MCF51JM64. Cel de al doilea modul, după cum îi spune și numele controlează ventilatoarele în tensiune, având posibilitatea reglării turației de la V0 la V6 .
In încheierea capitolului este prezentată o procedură de testare în laborator a sistemului de monitorizare și control, lucru foarte important ce face să fim siguri de echipament în momentul livrării catre beneficiar și să fim scutiți de surprize în momentul instalării în shelter.
6. REALIZAREA COMPONENTELOR SOFTWARE PENTRU SISTEMUL DE MONITORIZARE ȘI CONTROL
6.1. Introducere
Aplicația modulului SMC-01 are la baza un microcontroller iar programarea modulului are ca obiectiv condițiile de funcționare optimă a echipamentelor de telecomunicații instalate în interiorul shelter-ului.
De asemenea sunt prezentate componentelor soft-ware pentru sistemul de monitorizare și control, etapele de funcționare ale controlerului care sunt de fapt șapte intervale de temperatură.
Programarea se face cu ajutorul unui sistem destinat dezvoltării de programe software (CodeWarrior V6.2), pentru familia de procesoare ColdFire V1 fabricate de Freescale .
6.2. Etapele de funcționare ale controlerului
In algoritmul de funcționare al sistemului de monitorizare și control, se disting șapte intervale de temperatură internă (figura 20 ) .
6.2.1. Domeniul de temperatură t ≤ 5 ºC
Temperatura mai mică sau egală cu 5 ºC. In acest caz se activează alarma de temperatură scazută, led-ul corespunzător ieșirii OUTPUT4 se stinge. Daca tensiunea de rețea este prezentă se activează modul de încălzire iar led-ul corespunzător ieșirii OUTPUT6 este aprins. In caz contrar nu se comandă nici un element de climatizare si ventilatie este in V0 ca in figura 6.1.
Figura 6.1. Regim de încălzire când temperatura interioară este mai mică de -5 ºC.
Figura 6.3. Schema logică pentru intervalul de temperatură t ≤ 5 ºC
Programul soft pentru această etapă fiind următorul:
// (1). t <= 5
else if(t <= 5 && AC_FAIL_FLAG == 0x00)
// retea 220V prezentă
{
HEATING_MODE = 1;
CMD_CONVECTOR = 1; // Se comandă convectorul
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 0; // Se activează alarma de
temperatură scazută
HIGH_TEMP_ALARM = 1;
}
else if(t <= 5 && AC_FAIL_FLAG == 0xFF)
// retea 220V absentă
{
HEATING_MODE = 1;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0% (V0)
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 0; // Se activează alarma de
temperatură scazută
HIGH_TEMP_ALARM = 1;
}
}
6.2.2. Domeniul de temperatură 5 ºC < t < 15 ºC – etapa 2.
Temperatura strict mai mare decat 5 ºC și strict mai mică decat 15 ºC. In acest caz se dezactivează alarma de temperatură scazută, led-ul corespunzător ieșirii OUTPUT4 se aprinde. Dacă tensiunea de rețea este prezentă se activează modul de încălzire iar led-ul corespunzător ieșirii OUTPUT6 este aprins. In caz contrar nu se comandă nici un element de climatizare si ventilatia este in V0 ca in figura 6.4. [52] INTERTEC-Hess GmbH 2011.
Figura 6.4. Regim de încălzire când temperatura interioară este între 5 ºC și 15 ºC.
Figura 6.5. Schema logică pentru intervalul de temperatură 5ºC < t < 15 ºC
Programul soft pentru această etapă fiind următorul:
// (2). ºC < t < 15 ºC
else if(t < 15 && t > 5 && AC_FAIL_FLAG == 0x00) // retea 220V prezentă
{
HEATING_MODE = 1;
CMD_CONVECTOR = 1; // Se comandă convectorul
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
else if(t < 15 && t > 5 && AC_FAIL_FLAG == 0xFF)
// retea 220V absentă
{
HEATING_MODE = 1;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
6.2.3. Domeniul de temperatură 15 ºC ≤ t < 18 ºC – etapa 3.
Temperatura mai mare sau egală cu 15 ºC și strict mai mică decat 18ºC. Acest interval de temperatură este zona de histerezis a modului de încalzire. Daca controlerul pentru climatizare este în modul de încălzire, HM(heating mode) este afișat în colțul dreapta jos al display-ului, atunci se menține acest mod pâna cand temperatura internă a containerului devine mai mare sau egală cu 18 ºC. Dacă controlerului pentru climatizare este în modul răcire naturală, V0 este afișat în colțul dreapta jos al display-ului ca in figura 6.6, atunci se păstrează acest mod pană cand temperatura din interiorul containerului scade sub 15 ºC. In acest moment se trece în modul încalzire, HM, iar led-ul corespunzator ieșirii OUTPUT6 se aprinde.
Figura 6.6. Regim de încălzire cand temperatura interioară este între 15 ºC și 18 ºC.
Figura 6.7. Schema logică pentru intervalul de temperatură 15 ºC ≤ t < 18 ºC
Programul soft pentru această etapă fiind următorul:
// (3). t >= 15 && t < 18
else if(t >= 15 && t < 18 && AC_FAIL_FLAG == 0x00) // retea 220V prezentă
{
if(HEATING_MODE ==1)
{
CMD_CONVECTOR = 1;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
else
{
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
}
else if(t >= 15 && t < 18 && AC_FAIL_FLAG == 0xFF)
{
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
6.2.4. Domeniul de temperatură 18 ºC ≤ t < 25 ºC – etapa 4
Temperatura mai mare sau egală cu 18 ºC și strict mai mică decat 25ºC. In acest interval de temperatură controlerul este în modul răcire naturală, V0 este afișat în colțul dreapta jos al display-ului ca in figura 6.8.
Figura 6.8. Regim de încălzire cand temperatura interioară este între 18 ºC și 25 ºC.
Figura 6.9. Schema logică pentru intervalul de temperatură 18 ºC ≤ t < 25 ºC
Programul soft pentru această etapă fiind următorul:
// (4). t >= 18 && t < 25
if(t >= 18 && t < 25)
{
HEATING_MODE = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00; // V0
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP = 90;
}
6.2.5. Domeniul de temperatură 25 ºC ≤ t ≤ 30 ºC – etapa 5.
Temperatura mai mare sau egală cu 25 ºC și mai mică sau egală cu 30ºC. Acest interval de temperatură este zona de histerezis a modului de răcire. Dacă controlerului pentru climatizare este în modul de racire, CM(cooling mode) este afișat în colțul dreapta jos al display-ului, atunci se menține acest mod pană cand temperatura internă a containerului devine mai mică sau egală cu 24ºC. Dacă controlerului pentru climatizare este în modul ventilație, Vi, i = 1,2,3,4,5 sau 6 este afișat în colțul dreapta jos al display-ului, atunci se pastrează acest mod pană cand temperatura din interiorul containerului crește peste 30 ºC. In modul ventilație controlerul pentru climatizare are 6 trepte de ventilație: la 25 ºC nivelul V1, la 26 ºC nivelul V2, la 27 ºC nivelul V3, la 28 ºC nivelul V4, la 29 ºC nivelul V5 iar la 30 ºC nivelul V6 ca in figurile 6.10 – 6.15.
Figura 6.10. Regim de ventilație V1 cand temperatura interioară este de 25 ºC.
Figura 6.11. Regim de ventilație V2 cand temperatura interioară este de 26 ºC.
Figura 6.12. Regim de ventilație V3 cand temperatura interioară este de 27 ºC.
Figura 6.13. Regim de ventilație V4 cand temperatura interioară este de 28 ºC.
Figura 6.14. Regim de ventilație V5 cand temperatura interioară este de 29 ºC.
Figura 6.15. Regim de ventilație V6 cand temperatura interioară este de 30 ºC.
Când temperatura din container atinge valoarea de 31 ºC se inițiază trecerea în modul racire, iar led-ul corespunzător ieșirii OUTPUT5 se aprinde. In acest moment unitatea interioară a echipamentului pentru aer condiționat este alimentată, dar unitatea exterioară pornește cu o întarziere de cel mult trei minute. In acest interval de 3 minute controlerul pentru climatizare ramane în modul ventilație nivel V6. Dupa expirarea celor 3 minute se oprește ventilația iar controlerul pentru climatizare trece efectiv în modul răcire și CM(cooling mode) este afișat în colțul dreapta jos al display-ului. Trecerea în modul răcire este condiționată de prezența tensiunii de rețea, altfel se rămane în modul ventilație nivel V6.
Figura 6.16. Schema logică pentru intervalul de temperatură 25 ºC ≤ t ≤ 30 ºC
Programul soft pentru această etapă fiind următorul:
// (5). t >= 25 && t <= 30
else if(t >= 25 && t <= 30)
{
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP = 90;
switch(t)
{
case 25:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0xB0; //Pulse width: 10%
TPM2C0VH = 0x04;
FAN_MODE = 0x01; //V1
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
} else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0xB0; //Pulse width: 10%
TPM2C0VH = 0x04;
FAN_MODE = 0x01;
}
break;
}
case 26:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0x60; //Pulse width: 20%
TPM2C0VH = 0x09;
FAN_MODE = 0x02; //V2
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
} else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF) {
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x60; //Pulse width: 20%
TPM2C0VH = 0x09;
FAN_MODE = 0x02;
}
break;
}
case 27:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0x10; //Pulse width: 30%
TPM2C0VH = 0x0E;
FAN_MODE = 0x03;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x10; //Pulse width: 30%
TPM2C0VH = 0x0E;
FAN_MODE = 0x03;
}
break;
}
case 28:
{
if(COOLING_MODE == 0) {
TPM2C0VL = 0xC0; //Pulse width: 40%
TPM2C0VH = 0x12;
FAN_MODE = 0x04;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0xC0; //Pulse width: 40%
TPM2C0VH = 0x12;
FAN_MODE = 0x04;
}
break;
}
case 29:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0x70; //Pulse width: 50%
TPM2C0VH = 0x17;
FAN_MODE = 0x05;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x70; //Pulse width: 50%
TPM2C0VH = 0x17;
FAN_MODE = 0x05;
}
break;
}
case 30:
{
if(COOLING_MODE == 0) {
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
}
break;
}
}
}
6.2.6. Domeniul de temperatură 30 ºC < t ≤ 35 ºC – etapa 6.
Temperatura strict mai mare decat 30 ºC și mai mică sau egală cu 35ºC. In acest interval de temperatură controlerul pentru climatizare rămane în modul răcire, CM(cooling mode) este afișat în colțul dreapta jos al display-ului ca in figura 6.17, dacă tensiunea de rețea este prezentă altfel se trece în modul ventilație nivel V6.
Figura 6.17. Regim de încălzire când temperatura interioară este între 30 ºC și 35 ºC.
Figura 6.18. Schema logică pentru intervalul de temperatură 30 ºC < t ≤ 35 ºC
Programul soft pentru această etapă fiind următorul:
// (6). t > 30 && t <= 35
else if(t > 30 && t <= 35 && AC_FAIL_FLAG == 0x00)
{
if(DELAY_AC_STARTUP && !COOLING_MODE)
{
COOLING_MODE = 0;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP–;
}
else
{
COOLING_MODE = 1;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
}
}
else if(t > 30 && t <= 35 && AC_FAIL_FLAG == 0xFF)
{
COOLING_MODE = 0;
CMD_AIR_COND = 0;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP = 90;
}
6.2.7. Domeniul de temperatură strict mai mare decat 35 ºC – etapa 7
Temperatura strict mai mare decat 35 ºC . In acest interval de temperatură controlerul pentru climatizare se află inițial în modul răcire, CM. Se activează alarma de supratemperatură și led-ul corespunzător ieșirii OUTPUT3 se stinge, se activează și ventilația la nivel V3. Dacă alarma de supratemperatură nu dispare în urmatoarele 15 minute, adică temperatura nu scade sub 36 ºC, în condițiile în care funcționează și răcirea și ventilația la nivel V3 se oprește racirea, led-ul corespunzător ieșirii OUTPUT5 se stinge, ventilația crește la nivel V6, iar controlerul pentru climatizare este trecut în mod ventilație, V6 este afișat în colțul dreapta jos al display-ului.
In absența tensiunii de rețea și temperatura internă este strict mai mare decat 35 ºC se activează alarma de supratemperatură și controlerul pentru climatizare este trecut în modul ventilație nivel maxim. V6 este afișat în colțul dreapta jos al display-ului.
Figura 6.19. Schema logică pentru intervalul de temperatură t > 35 ºC
Programul soft pentru această etapă fiind următorul:
// (7). t > 35 ºC
else if(t > 35 && AC_FAIL_FLAG == 0x00)
{
if(DELAY_AC_STARTUP > 0 && DELAY_AC_STOP > 0 && !COOLING_MODE)
{
COOLING_MODE = 0;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
DELAY_AC_STOP–;
DELAY_AC_STARTUP–;
}
else if(DELAY_AC_STOP > 0)
{
COOLING_MODE = 1;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x10; //Pulse width: 30%
TPM2C0VH = 0x0E;
FAN_MODE = 0x03;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
DELAY_AC_STOP–;
}
else
{
COOLING_MODE = 0;
CMD_AIR_COND = 0;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
}
}
else if(t > 35 && AC_FAIL_FLAG == 0xFF)
{
COOLING_MODE = 0;
CMD_AIR_COND = 0;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
}
Pentru testarea controlerului pentru climatizare se reglează lent potențiometrul conectat la intrarea SENZOR 1 astfel încat temperatura T1 afișată pe display să parcurgă toate intervalele de temperatură menționate mai sus. [36] M.Vînătoru, 2001.
Se verifică, pentru fiecare interval de temperatură prezentat mai sus, dacă funcționarea controlerului pentru climatizare este conformă cu descrierea făcută.
6. 3. Instalare și operare CodeWarrior V6.2
6.3.1. Instalarea programului pe calculator
CodeWarrior V6.2 este un sistem software destinat dezvoltării de programe pentru familia de procesoare ColdFire V1, fabricate de Freescale .
Instalarea acestuia are ca scop utilizarea programatorului USB BDM MULTILINK, si se va face pe un calculator cu sistem de operare WINDOWS XP SP2 ,cu 1.5GB liberi pe hard disk, din care 1GB pentru CodeWarrior V6.2.
In scopul instalării se copiaza CD-ul CodeWarrior pe hard disk; instalarea se poate face și direct de pe CD, dar cum acesta conține și fișiere necesare în timpul rularii este mai bine ca acesta să fie copiat integral pe hard disk.
Instalarea tipica se face astfel:
Click pe butonul start , apoi se selecteaza Run… și Browse… Se cauta in folderul CodeWarrior de pe hard disk fisierul: CW_MCU_V6_2_SE_11262008.exe. Se face click pe acesta, apoi Open urmat de OK și instalarea începe ( figura 6.20 si figura 6.21) .
Figura 6.20
Figura 6.21.
Urmează succesiunea ferestrelor programului de instalare. In cele mai multe cazuri se apasa butonul Next.
Sunt doar doua excepții:
-fereastra din figura 6.27 unde se selectează acceptarea termenilor licenței;
-fereastra din figura 6.35 unde se deselectează actualizarea programului dupa instalare, și apoi se apasă butonul Finish.
Figura 6.22.
Figura 6.23.
Figura 6.24.
Figura 6.25.
Figura 6.26.
Figura 6.27.
Figura 6.28.
Figura 6.29.
Figura 6.30.
Figura 6.31.
Figura 6.32.
Figura 6.33.
Figura 6.34.
Aici timpul este estimat eronat: (dureaza mai mult).
Figura 6.35.
Dupa terminarea instalării, pentru simplificarea utilizării se creează un buton pe Desktop astfel:
Click pe start →Programs→Freescale CodeWarrior→CW for Microcontrollers V6.2→CodeWarrior IDE→click pe butonul din dreapta și în meniul care apare se selectează Create Shortcut. Apare butonul CodeWarrior(2) care se mută pe Desktop.
6.3.2. Operarea programului
Se rulează aplicația CodeWarrior V6.2 prin apasarea butonului CodeWarrior(2) de pe Desktop. Apare fereastra din figura 6.20. Se inchide fereastra Startup. Apoi din meniul File se selecteaza Open…
Se caută pe hard disk folderul CLIMA, se deschide acesta și se selectează fișierul Clima.mcp. Se apasa din nou Open și apare fereastra din figura 6.38.
Se apasă butonul Debug și apare fereastra din figura 6.39 unde se apasă pe butonul Connect (Reset).
Doar la prima programare apare fereastra din figura 6.41. Pentru a continua se deconectează, de la PC, cablul USB al modulului DATA LOGGER, apoi se reconectează.
Se apasă pe OK și apare fereastra din figura 6.43. In subfereastra LOADER WARNING se apasă pe OK. Acum se face încarcarea fișierului binar precompilat în memoria flash a micro controllerului și apare fereastra din figura 6.44.
Programul încarcat poate fi rulat prin apasarea butonului → Start/Continue(F5) și oprit prin apasarea butonului Halt (F6).
Se poate proceda ca mai sus sau ca în procedura de testare.
Figura 6.36.
Figura 6.37.
Figura 6.38.
Figura 6.39.
Figura 6.40.
Figura 6.41.
Figura 6.42.
Figura 6.43.
Figura 6.44.
Operarea se referă strict la încarcarea programului în memoria flash a microcontrollerului MCF51JM64.
6.4. Concluzii
In acest capitol sunt prezentate componentelor software pentru sistemul de monitorizare și control dar și etapele de funcționare ale controlerului care sunt de fapt șapte intervale de temperatură.
Unele intervale le-am definit în funcție de parametrii de mediu solicitați de fabricantul echipamentelor de telecomunicații dar și arbitrar, urmărind scăderea consumului de energie electrică și folosirea pentru ventilație pe o perioadă cât mai mare a aerului din exteriorul shelter-ului.
Bineînteles, sistemul poate fi perfectibil ținand cont de amplasarea acestor sheltere care se face atât pe litoralul Mării Negre, cât și la munte la altitudini de 2000 m unde condițiile de mediu devin extreme.
Programarea se face cu ajutorul unui sistem destinat dezvoltării de programe software (CodeWarrior V6.2), fabricat de Freescale (USA) .
7. CONCLUZII
Creșterea globală a cererii de energie necesită mai mult decât capacități suplimentare, aceasta va necesita utilizarea mai eficientă și o regândire a modului în care este gestionată energia.
Managementul inteligent al energiei oferă cea mai mare oportunitate din prezent pentru eficiență energetică. De la punctul de utilizare, sistemele inteligente vor fi un factor semnificativ, permițând rețelei inteligente să facă economii reale de energie în întreaga rețea.
Lucrul cel mai important este funcționarea echipamentelor de telecomunicații în parametrii de mediu recomandați de producător, ceea ce duce la funcționarea în siguranță a acestora, prelungirea vieții și scăderea costurilor de întreținere.
Pe piața shelterelor de telecomunicații care sunt în funcțiune în acest moment la operatorii principali de telefonie, pot spune că nu există un produs care să gestioneze echipamentele de încălzire, climatizare și ventilare. Deși aceste echipamente de încalzire și climatizare sunt în dotare, ele sunt conectate periodic, manual de către personalul de intreținere ceea ce implică deplasarea la aceste obiective și automat ridicarea costurilor de management și intreținere. Dupa cum se poate observa din calculele de mai sus, economia de energie electrică este de cel putin 700 kw pe an la un singur shelter de telecomunicații. Tinand cont ca într-o rețea de telefonie sunt cel putin 100 sheltere într-un judet, la nivel național rezultă o economie de cel puțin 2800 Mw/an.
Realizarea componentelor hardware pentru un sistem inteligent de monitorizare și control, al parametrilor ambientali pentru spațiile destinate echipamentelor de telecomunicații, are ca element central microcontrolerul ColdFire V1 MCF51JM64 care gestionează rețeaua de senzori, echipamentele de încălzire, răcire dar și de ventilație se poate realiza cu costuri sub 250 euro. Acest cost al unui asemenea proiect poate fi amortizat în prima lună de funcționare, datorită scăderii consumului de energie dar și drumurilor pe care un operator uman ar trebui să le facă pentru gestionarea echipamentelor de încalzire și răcire.
Interoperabilitatea permite clienților să obțină date de lucru din orice punct dintr-o rețea de energie. Acest lucru ajuta la un schimb de date operațional între sisteme și măsurarea consumului de energie în întreaga instalație.
Implementarea rețelei de senzori distribuiți, gestionați de microcontroler, duc la folosirea temperaturii exterioare a aerului (prin ventilație) pentru o mai bună gestionare a fluxurile de căldură din shelter. Acest mod de lucru duce la îmbunătățiri importante ale eficienței energetice în termeni de utilizare, costuri, securitate și impact asupra mediului, la o prelungire a vieții echipamentelor de telecomunicații dar și a echipamentelor de climatizare.
7.1. CONTRIBUȚII PERSONALE
În cele ce urmează vor fi enumerate contribuțiile personale. Acestea sunt subliniate pentru fiecare capitol în parte:
Contribuțiile aferente capitolului 1:
» definirea și enumerarea principalelor elemente de climatizare (sisteme, obiective, funcțiuni) ale sistemului de monitorizare și control;
» elaborarea unei sinteze a principalelor etape ce trebuie urmate în proiectarea unui sistem de monitorizare și control al parametrilor de mediu dintr-un shelter.
Contribuțiile aferente capitolului 2:
» prezentarea și explicarea principalelor elemente de climatizare necesare pentru realizarea monitorizarii și controlul parametrilor de mediu;
» prezentarea și explicarea fluxurilor de caldură, aer și umiditate ce trec prin anvelopa unui shelter;
» elaborarea unui model matematic (model dinamic și modelul staționar ) al shelter-ului;
» realizarea unui studiu privind consumul anual de energie;
» realizarea unui studiu privind calculul puterii instalate;
» realizarea unei analize a problemelor cauzate de materialele de construcții ți considerații despre sanatate și siguranță în shelter-ul de telecomunicații;
Contribuțiile aferente capitolului 3:
» realizarea unui studiu privind detecția și localizarea defectelor în instalația de climatizare;
» prezentarea necesității detecției și localizării defectelor;
» prezentarea unei metode analitico-experimentale de detecție și localizare a defectelor;
» realizarea unui studiu privind metode pentru creșterea siguranței în exploatare;
» prezentarea unei metode analitice de compensare a defectelor generate de elementele de execuție defecte;
» modelarea analitica a traductoarelor și elementelor de execuție defecte.
Contribuțiile aferente capitolului 4:
» realizarea unui prototip de monitorizare și control al parametrilor de mediu destinat shelter-elor de telecomunicații;
» descrierea funcțională a microcontrolerului pentru climatizarea și monitorizarea containerelor de telecomunicații.
» elaborarea unei proceduri de testare în laborator a prototipului de monitorizare și control al parametrilor de mediu;
Contribuții aferente capitolului 5:
» conceperea unui grafic de funcționare a sistemului de monitorizare și control prevazut cu intervale de temperatură;
» conceperea unor scheme logice pentru fiecare interval de temperatură
» stabilirea pragurilor de alarmă și a regimurilor de funcționare în sistem de avarie;
7.2. Direcții de cercetare generate de studiile efectuate
Principalele direcții de cercetare care se desprind din studiile realizate sunt:
» îmbunătățirea structurii rețelei de senzori și a modalităților de transmitere a informațiilor către un centru de management;
» evaluarea performanțelor sistemului de monitorizare și control al parametrilor de mediu;
» îmbunătățirea performanțelor metodei de dirijare la nivel de intersecție și metodelor de coordonare propuse;
» implementarea sistemului de monitorizare și control al parametrilor de mediu într-o platforma demonstrativă.
Bibliografie
[1] – Cănureci Nicoleta-Gabriela, Algoritmi și metode de detecție și localizare a defectelor,
raport de cercetare, conducător științific: Prof. Dr. Ing. Matei Vînătoru – 2007.
[2] – V.Cristea. Algoritmi paraleli. Note de curs. 2008.
[3] – Lucian Ciobanu Sensors and transducers Editura MATRIX ROM 2006.
[4] – M. Dobriceanu, D. Selisteanu, G.E. Subtirelu, R. Fundeanu. Monitorizarea factorilor de
mediu. Tehnici si sisteme, Editura UNIVERSITARIA, Craiova, 2009.
[5] – V. Dolga, Sisteme de achiziții de date, interfețe și instrumentație virtuală,
Ed.Politehnica, Timisoara, 2008.
[6] – Valer Dolga, Senzori si traductoare Editura Eurobit, Timișoara,1999.
[7] – Făgărășan, I., Detecția și diagnoza defectelor în instalațiile industriale, Specialitatea
Automatică, Conducător Științific Prof. Dr.Ing. Sergiu Stelian Iliescu, Teză de doctorat,
Universitatea Politehnica din București, 2002.
[8] – Ovidiu Gherman. Cautarea paralela in tablouri masive de numere folosind sisteme
distribuite, 2004.
[9] – Ivănescu M., Stoian V., Iancu E., Vînătoru M., Robotic Arm Control in Fault
Conditions, ASC Artificial Intelligence and Soft Computing – Conferinta IASTED, –
International Association and Techologz for Development – Banff, Calgary,
Canada, 2000.
[10] – Iancu Eugen, Vinatoru Matei, Metode analitice pentru detectia si localizarea defectelor
– Studii de caz, Editura EUC – UNIVERSITARIA Craiova, pg.19,35.
(Analitical Methods for Fault Detection and Isolation) , 2003.
[11] – Iancu Eugen Transmisia datelor, Sisteme tolerante la defecte. Facultatea de
Automatica, Calculatoare si Electronica din Craiova – curs 2011 .
[12] – Iancu Eugen, Vinatoru Matei, Detectia si localizarea defectelor in sistemele dinamice,
Editura SITECH Craiova, 304 pg., 1999,
[13] – Iancu Eugen, Transmisia datelor, Editura Reduta, Craiova, 1998, ISBN 97-97173-7-3.
[14] – Joel M.Crichlow. Introducere in calculul paralel si distribuit. Prentice Hall –1997.
[15] – Lubritto, C. Energy and environmental aspects of mobile communication systems,
Energy, Volume 36, Issue 2, February 2011.
[16] – Maican Camelia, Matei Vinatoru, Canureci Gabriela, Managementul Proiectelor-
Indrumar de laborator, Editura EUC – UNIVERSITARIA Craiova, ISBN 973-742-511-
1, 978- 973-742-511-9, 129 , 2006.
[17] – Nicolae Marius Bârlea, Fizica senzorilor Editura Albastră , Cluj 2000
[18] – Niculescu Virginia. Calcul paralel.Editura: Presa Universitatea Clujeana 2006
[19] – BANIAȘ, OVIDIU, Contribuții la conducerea traficului rutier urban utilizând o rețea
de senzori wireless ca detector de trafic- teză de doctorat, Universitatea Politehnică
din Timișoara, 2009
[20] – Papadache, I, Automatizări industriale Ed. Tehnică, 1978.
[21] – PINTILIEI, MIHAI, Contribuții privind creșterea fluenței traficului rutier în condițiile
menținerii și conservării vestigiilor istorice din marile centre urbane- rezumat teza de
doctorat, Universitatea Tehnică Gh. Asachi, Iasi, 2009.
[22] – Gabriel Predusca, Florian Ion, Alexandru Ivan, Eugenia Minca, Sisteme de conversie
si achizitii de date, Ed.Bibliotheca, colectia: Universitaria Electronica., 2005.
[23] – E. Rappaport -“Wireless Communication Systems”,Wiley and Sons, 2002.
[24] – A.Serbanescu. B.Dumitrescu, B.Jora, C.Popeea, Parallel 4SID Algorithm, Control
Engineering and Applied Informatics, 2002.
[25] – Vînătoru Matei, Aparate de masura si automatizari în industria chimica – curs,
Tipografia Universitatii din Craiova, 255 pg., 1983.
[26] – Vînătoru Matei, Nicolae Dan, Automatizari industriale continue – curs, Tipografia
Universitatii din Craiova, 482 pg., 1987.
[27] – Vînătoru Matei, Teoria sistemelor, Tipografia Universitatii din Craiova, 1993.
[28] – Vinatoru Matei, Control Sustem Study for steam superheaters, SINTES 7,
Craiova, 1994.
[29] – Vînătoru Matei, Procese industriale automatizate, Editura EUC – UNIVERSITARIA
Craiova, 1996.
[30] – Vînătoru Matei, Olaru O., Sisteme automate, Editura " SPICON" Bucuresti,
382 pg., 1997.
[31] – Vinatoru Matei, E.Iancu, C. Vinatoru, Robust control for actuator failures, Proceedings
of 2nd IFAC Symposium ROCOND’97, Budapest, 1997.
[32] – Vînătoru Matei, Iancu Eugen, (Detectia și localizarea defectelor în sistemele dinamice)
Editura SITECH, Craiova, 1999.
[33] – Vînătoru Matei, Eugen Iancu Fault Detection and Isolation by Monitoring System, The
Second International Workshop on Inteligent Control System ICS 2000, June 8-9,
Bucharest, Romania, 2000.
[34] – Vînătoru Matei, Eugen Iancu , Model Control of Distributed Parameters Heat Transfer
Process, International Symposium on System Theory, Robotics, Computers and
Process Informatics, SINTES 10, May 2000.
[35] – Vînătoru Matei, Eugen Iancu, Model Control of Distributed Prameters Heat Transfer
Process, International Symposium on System Theory, Robotics, Computers and Proces
Informatics, SINTES 10, May, 2000.
[36] – Vînătoru Matei, Conducerea automata a proceselor industriale, vol. I, EUC – Editura
Universitaria Craiova, 2001.
[37] – Vînătoru Matei. Industial Plant Control, Ed. Univesitaria. Craiova. Pg.101, 127, 2001.
[38] – Vînătoru Matei, Conducerea automata a proceselor industriale, vol. II, EUC – Editura
Universitaria Craiova, 2005.
[39] – Vînătoru Matei, Conducerea automata a proceselor industriale, vol. II, Editura
Universitaria, Craiova, 2005.
[40] – Vînatoru Matei, Iancu Eugen, Maican Camelia, Cănureci Gabriela, Conducerea
automata a proceselor industriale, Editura EUC Universitaria Craiova, 2008.
[41] – Vînătoru Matei, Reglarea proceselor, Facultatea de Automatică, Calculatoare și
Electronica din Craiova –curs 2011.
[42] Yi-Bing Lin, Imrich Chlamtac. Wireless and Mobile Network Architecture , 2001.
Site-uri web:
[43] – Passive Cooling Systems, INTERTEC-Hess GmbH · Raffineriestraße 8 ·D-93333
Neustadt/Donau, (2012). www.intertec.in. pg.110.
[44] – SEN-S magnetic sensor, www.diltronic.com/pdf/pni/sens.pdf
[45] – MOVVA, CHANDRA SEKHAR, KOTA, DHEERAJ, Wireless sensors for
monitoring traffic, http://intranet.daiict.ac.in/~ranjan/isn2007/presentation/isn_l.pdf
[46] – Compania SPECTEC, http://www.spectec.com.tw
[47] – GLOBALSPEC, The Engineering Search Engine, http://www.globalspec.com/
LearnMore/Sensors_Transducers_Detectors/Electrical_Electromagnetic_Sensing/ Magnetic_Field_ Sensors
[48] – http://www.agilent.com/;
[49] – http://www.evaluationengineering.com/;
[50] – http://www.reed-electronics.com/tmworld/;
[51] – http://www.imperialelectric.ro/Aplicatii/Aplicatii _Moxa/Automatizari.htm;
[52] – http://intertec.info/web/index.php-[INTERTEC-Hess GmbH 201
[53] – http://www.agilent.com/; http://www.evaluationengineering.com/;
[54] – http://www.scada.ro/;
[55] – http://www.mikrotik.com/thedude.php (the dude);
[56] – http://www.futureelectronics.com/en/technologies /semiconductors/
microcontrollers/32- bit/Page;
[57] – http:// www.schur.pub.ro/download/acp/acp_curs.pdf
[58] – http://www.cdep.ro/pls/legis/legis_pck.htp_act_text?idt=24985 / LEGEA nr.199 din 13 noiembrie 2000 privind utilizarea eficientă a energiei.
Anexa 1
Programul Main C
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#include "DS1337.h"
unsigned char DELAY0 = 0x48; // 31.25us * (RTCMOD) RTIE=0
unsigned char DELAY1 = 0x49; // 62.50us * (RTCMOD) RTIE=0
unsigned char DELAY2 = 0x4D; // 3.125ms * (RTCMOD) RTIE=0
unsigned char DELAY3 = 0x4E; //15.625ms * (RTCMOD) RTIE=0
unsigned char SENSOR_TEMP_1 = 0x00;
unsigned char SENSOR_TEMP_2 = 0x01;
unsigned char SENSOR_TEMP_3 = 0x02;
unsigned char SENSOR_TEMP_4 = 0x03;
unsigned char TPM1_FLAG = 0x00;
unsigned char AC_FAIL_FLAG = 0x00;
unsigned char SENSOR_STATUS =0x00;
unsigned char COOLING_MODE = 0;
unsigned char HEATING_MODE = 0;
unsigned char FAN_MODE = 0;
unsigned char time_slot = 0;
unsigned char display_index = 0;
unsigned char READ_DATETIME_FLAG = 0;
unsigned short time_out_count;
unsigned short temp1_adc,temp2_adc,temp3_adc,temp4_adc;
unsigned short temperature1,temperature2,temperature3,temperature4;
unsigned short battery_voltage;
unsigned short output_voltage;
unsigned short cs1_voltage;
unsigned short cs2_voltage;
unsigned short DELAY_AC_STOP = 450;
unsigned short DELAY_AC_STARTUP = 90;
unsigned char SET_DATETIME_FLAG = 0;
unsigned char KBI_STATUS = 0;
unsigned char KBI_REG;
unsigned char KBI_TIMEOUT;
char STRING1[] = "T1=";
char STRING2[] = "T2=";
char STRING3[] = "Ti=";
char STRING4[] = "Te=";
char STRING5[] = "****";
char STRING6[] = {0xDF,'C','\0'};
char STRING7[] = "HOURS :";
char STRING8[] = "MINUTES:";
char STRING9[] = "DATE :";
char STRING10[] = "MONTH :";
char STRING11[] = "YEAR :";
char STRING12[] = "DAY :";
date_time_t SYS_DATE_TIME;
/*******************************************************/
#define CLEAR_LCD 0x01
#define CURSOR_HOME 0x02
#define CURSOR_INC 0x06 //DDRAM ADDRESS INC., CURSOR MOVES TO RIGHT
#define ON_OFF_CONTROL 0x0E //DISPLAY ON,CURSOR ON,
#define LCD_INTERFACE 0x38 //8 BIT INTERFACE,2 LINE, 5X7 DOT FORMAT
#define SET_TIME PTGD_PTGD3
#define SET_DATE PTGD_PTGD2
#define UP PTGD_PTGD1
#define DOWN PTGD_PTGD0
#define KBI_IDLE 0x00
#define KBI_HOURS 0x10
#define KBI_MINUTES 0x20
#define KBI_DAY 0x30
#define KBI_DATE 0x40
#define KBI_MONTH 0x50
#define KBI_YEAR 0x60
/********************************************************/
#define RS PTCD_PTCD6
#define _RS PTCDD_PTCDD6
#define RW PTCD_PTCD4
#define _RW PTCDD_PTCDD4
#define ENABLE PTCD_PTCD2
#define _ENABLE PTCDD_PTCDD2
#define LCD_LED PTCD_PTCD3
#define _LCD_LED PTCDD_PTCDD3
#define LCD_DATA PTDD
#define _LCD_DATA PTDDD
#define FAN1_ALARM PTAD_PTAD5
#define _FAN1_ALARM PTADD_PTADD5
#define FAN2_ALARM PTAD_PTAD4
#define _FAN2_ALARM PTADD_PTADD4
#define HIGH_TEMP_ALARM PTAD_PTAD3
#define _HIGH_TEMP_ALARM PTADD_PTADD3
#define LOW_TEMP_ALARM PTAD_PTAD2
#define _LOW_TEMP_ALARM PTADD_PTADD2
#define CMD_AIR_COND PTAD_PTAD1
#define _CMD_AIR_COND PTADD_PTADD1
#define CMD_CONVECTOR PTAD_PTAD0
#define _CMD_CONVECTOR PTADD_PTADD0
#define FIRE PTFD_PTFD0
#define _FIRE PTFDD_PTFDD0
#define INTRUSION PTFD_PTFD1
#define _INTRUSION PTFDD_PTFDD1
#define AC_FAIL PTFD_PTFD2
#define _AC_FAIL PTFDD_PTFDD2
#define RESERVED PTFD_PTFD3
#define _RESERVED PTFDD_PTFDD3
#define SELECT1 PTBD_PTBD5
#define _SELECT1 PTBDD_PTBDD5
#define SELECT2 PTBD_PTBD6
#define _SELECT2 PTBDD_PTBDD6
#define ANALOG_TEST 0x07
/********************************************************/
const unsigned short KTY81[] =
{
1356,1361,1367,1372,1396,1401,1410,1420,1429,1438,
1447,1454,1463,1472,1481,1491,1501,1510,1519,1529,
1538,1547,1556,1565,1574,1583,1592,1602,1611,1620,
1629,1638,1647,1656,1664,1673,1682,1691,1700,1709,
1718,1727,1735,1744,1752,1761,1770,1779,1788,1797,
1806,1815,1823,1832,1840,1849,1858,1866,1875,1884,
1892,1901,1909,1917,1926,1934,1942,1951,1960,1968,
1976,1985,1993,2001,2009,2017,2025,2033,2042,2050,
2058,2066,2074,2082,2090,2098,2106,2114,2122,2130,
2137,2145,2153,2160,2168,2175,2183,2191,2199,2206,
2214,2222,2229,2237,2244,2251,2259,2266,2274,2281,
2288,2295,2303,2310,2317,2324,2331,2338,2345,2352,
2359,2366,2373,2380,2386,2393,2400,2407,2414,2421,
2427,2434,2441,2447,2454,2460,2467,2473,2480,2486,
2493,2499,2506,2512,2518,2524,2531,2537,2543,2549,
2555,2562,2568,2574,2580,2586,2592,2598,2604,2610,
2616,2621,2627,2633,2639,2644,2650,2656,2661,2667,
2672,2678,2683,2689,2694,2699,2705,2710,2715,2720,
2725,2730,2735,2740,2745,2749,2754,2758,2763,2767,
2772,2776,2780,2785,2789,2793,2797,2800,2804,2807,
2811,2814,2818,2821,2825,2828,
};
/********************************************************/
void data_enable(void);
void lcd_init(void);
void lcd_line(unsigned int i);
void lcd_ram_address(unsigned int i,unsigned int j);
void lcd_print(char *addr);
void rtc_delay(unsigned char DELAY);
void sensor_select(void);
unsigned short read_adc(unsigned char channel);
unsigned short temp(unsigned short temp_adc, const unsigned short *addr);
unsigned char temp_test(unsigned short t1,unsigned short t2);
void print_temp(unsigned short temperature);
void int_to_ascii(unsigned short module, char *addr);
void uchar_to_ascii(unsigned char value, char *addr);
void climatize(unsigned short t);
void print_datetime(void);
void lcd_print_byte(unsigned char data);
void delay(unsigned char n);
void KBI_ISR(void);
void IRQ_ISR(void);
void dummy_ISR(void);
/********************************************************/
const byte NVPROT_INIT @0x0000040D = 0xFB; // 0x00000000-0x00000FFF are protected
typedef void (* pFun)(void);
extern asm void _startup(void);
extern void IIC1_ISR(void);
//extern void _Entry(void);
void dummy_ISR(void)
{
}
void (* const RAM_vector[])()@0x00001000= {
(pFun)&dummy_ISR, // vector_0 INITSP
(pFun)&dummy_ISR, // vector_1 INITPC
(pFun)&dummy_ISR, // vector_2 Vaccerr
(pFun)&dummy_ISR, // vector_3 Vadderr
(pFun)&dummy_ISR, // vector_4 Viinstr
(pFun)&dummy_ISR, // vector_5 VReserved5
(pFun)&dummy_ISR, // vector_6 VReserved6
(pFun)&dummy_ISR, // vector_7 VReserved7
(pFun)&dummy_ISR, // vector_8 Vprviol
(pFun)&dummy_ISR, // vector_9 Vtrace
(pFun)&dummy_ISR, // vector_10 Vunilaop
(pFun)&dummy_ISR, // vector_11 Vunilfop
(pFun)&dummy_ISR, // vector_12 Vdbgi
(pFun)&dummy_ISR, // vector_13 VReserved13
(pFun)&dummy_ISR, // vector_14 Vferror
(pFun)&dummy_ISR, // vector_15 VReserved15
(pFun)&dummy_ISR, // vector_16 VReserved16
(pFun)&dummy_ISR, // vector_17 VReserved17
(pFun)&dummy_ISR, // vector_18 VReserved18
(pFun)&dummy_ISR, // vector_19 VReserved19
(pFun)&dummy_ISR, // vector_20 VReserved20
(pFun)&dummy_ISR, // vector_21 VReserved21
(pFun)&dummy_ISR, // vector_22 VReserved22
(pFun)&dummy_ISR, // vector_23 VReserved23
(pFun)&dummy_ISR, // vector_24 Vspuri
(pFun)&dummy_ISR, // vector_25 VReserved25
(pFun)&dummy_ISR, // vector_26 VReserved26
(pFun)&dummy_ISR, // vector_27 VReserved27
(pFun)&dummy_ISR, // vector_28 VReserved28
(pFun)&dummy_ISR, // vector_29 VReserved29
(pFun)&dummy_ISR, // vector_30 VReserved30
(pFun)&dummy_ISR, // vector_31 VReserved31
(pFun)&dummy_ISR, // vector_32 Vtrap0
(pFun)&dummy_ISR, // vector_33 Vtrap1
(pFun)&dummy_ISR, // vector_34 Vtrap2
(pFun)&dummy_ISR, // vector_35 Vtrap3
(pFun)&dummy_ISR, // vector_36 Vtrap4
(pFun)&dummy_ISR, // vector_37 Vtrap5
(pFun)&dummy_ISR, // vector_38 Vtrap6
(pFun)&dummy_ISR, // vector_39 Vtrap7
(pFun)&dummy_ISR, // vector_40 Vtrap8
(pFun)&dummy_ISR, // vector_41 Vtrap9
(pFun)&dummy_ISR, // vector_42 Vtrap10
(pFun)&dummy_ISR, // vector_43 Vtrap11
(pFun)&dummy_ISR, // vector_44 Vtrap12
(pFun)&dummy_ISR, // vector_45 Vtrap13
(pFun)&dummy_ISR, // vector_46 Vtrap14
(pFun)&dummy_ISR, // vector_47 Vtrap15
(pFun)&dummy_ISR, // vector_48 VReserved48
(pFun)&dummy_ISR, // vector_49 VReserved49
(pFun)&dummy_ISR, // vector_50 VReserved50
(pFun)&dummy_ISR, // vector_51 VReserved51
(pFun)&dummy_ISR, // vector_52 VReserved52
(pFun)&dummy_ISR, // vector_53 VReserved53
(pFun)&dummy_ISR, // vector_54 VReserved54
(pFun)&dummy_ISR, // vector_55 VReserved55
(pFun)&dummy_ISR, // vector_56 VReserved56
(pFun)&dummy_ISR, // vector_57 VReserved57
(pFun)&dummy_ISR, // vector_58 VReserved58
(pFun)&dummy_ISR, // vector_59 VReserved59
(pFun)&dummy_ISR, // vector_60 VReserved60
(pFun)&dummy_ISR, // vector_61 Vunsinstr
(pFun)&dummy_ISR, // vector_62 VReserved62
(pFun)&dummy_ISR, // vector_63 VReserved63
(pFun)&IRQ_ISR, // vector_64 Virq
(pFun)&dummy_ISR, // vector_65 Vlvd
(pFun)&dummy_ISR, // vector_66 Vlol
(pFun)&dummy_ISR, // vector_67 Vspi1
(pFun)&dummy_ISR, // vector_68 Vspi2
(pFun)&dummy_ISR, // vector_69 Vusb
(pFun)&dummy_ISR, // vector_70 VReserved70
(pFun)&dummy_ISR, // vector_71 Vtpm1ch0
(pFun)&dummy_ISR, // vector_72 Vtpm1ch1
(pFun)&dummy_ISR, // vector_73 Vtpm1ch2
(pFun)&dummy_ISR, // vector_74 Vtpm1ch3
(pFun)&dummy_ISR, // vector_75 Vtpm1ch4
(pFun)&dummy_ISR, // vector_76 Vtpm1ch5
(pFun)&dummy_ISR, // vector_77 Vtpm1ovf
(pFun)&dummy_ISR, // vector_78 Vtpm2ch0
(pFun)&dummy_ISR, // vector_79 Vtpm2ch1
(pFun)&dummy_ISR, // vector_80 Vtpm2ovf
(pFun)&dummy_ISR, // vector_81 Vsci1err
(pFun)&dummy_ISR, // vector_82 Vsci1rx
(pFun)&dummy_ISR, // vector_83 Vsci1tx
(pFun)&dummy_ISR, // vector_84 Vsci2err
(pFun)&dummy_ISR, // vector_85 Vsci2rx
(pFun)&dummy_ISR, // vector_86 Vsci2tx
(pFun)&KBI_ISR, // vector_87 Vkeyboard
(pFun)&dummy_ISR, // vector_88 Vadc
(pFun)&dummy_ISR, // vector_89 Vacmpx
(pFun)&IIC1_ISR, // vector_90 Viic1x
(pFun)&dummy_ISR, // vector_91 Vrtc
(pFun)&dummy_ISR, // vector_92 Viic2x
(pFun)&dummy_ISR, // vector_93 Vcmt
(pFun)&dummy_ISR, // vector_94 Vcanwu
(pFun)&dummy_ISR, // vector_95 Vcanerr
(pFun)&dummy_ISR, // vector_96 Vcanrx
(pFun)&dummy_ISR, // vector_97 Vcantx
(pFun)&dummy_ISR, // vector_98 Vrnga
(pFun)&dummy_ISR, // vector_99 VReserved99
(pFun)&dummy_ISR, // vector_100 VReserved100
(pFun)&dummy_ISR, // vector_101 VReserved101
(pFun)&dummy_ISR, // vector_102 VReserved102
(pFun)&dummy_ISR, // vector_103 VReserved103
(pFun)&dummy_ISR, // vector_104 VL7swi
(pFun)&dummy_ISR, // vector_105 VL6swi
(pFun)&dummy_ISR, // vector_106 VL5swi
(pFun)&dummy_ISR, // vector_107 VL4swi
(pFun)&dummy_ISR, // vector_108 VL3swi
(pFun)&dummy_ISR, // vector_109 VL2swi
(pFun)&dummy_ISR, // vector_110 VL1swi
};
void (* const _UserEntry[])()@0x000011C0=
{
0x4E714EF9, //asm NOP(0x4E71), asm JMP(0x4EF9)
_startup,
};
/*********************************************************/
void main(void)
{
/*********************************************************/
dword *pdst,*psrc;
byte i;
asm (move.l #0x00800000,d0);
asm (movec d0,vbr);
pdst=(dword)0x00800000;
psrc=(dword)&RAM_vector;
for (i=0;i<111;i++,pdst++,psrc++)
{
*pdst=*psrc;
}
/*********************************************************/
SOPT1 = 0xC0; // enable COP, 1024 ms if COPCLKS = 0
//SOPT1 = 0x00; // disable COP
SOPT2 = 0x00; // COPCLKS =0
/*********************************************************/
MCGC2 = 0x36;
while(!(MCGSC & 0x02)){}; //wait for the OSC stable
MCGC1 = 0x98;
while((MCGSC & 0x1C )!= 0x08){}; // external clock is selected
MCGC3 = 0x48;
while ((MCGSC & 0x48) != 0x48){}; //wait for the PLL is locked
MCGC1 = 0x18;
while((MCGSC & 0x6C) != 0x6C){};
/**********************************************************/
PTFDD_PTFDD4 = 1;
TPM2SC = 0x08; //TMP2CHO, PWM MODE, 2.5 Khz
TPM2C0SC = 0x28;
TPM2MODL = 0xE0;
TPM2MODH = 0x2E;
TPM2C0VL = 0x70; //Pulse width: 50%
TPM2C0VH = 0x17;
/**********************************************************/
//TPM1MODH = 0x02;
//TPM1MODL = 0xDC; //TPM1 Timer Overflow period = 0.125sec
TPM1MODH = 0x05;
TPM1MODL = 0xB8; //TPM1 Timer Overflow period = 0.25sec
//TPM1MODH = 0x0B;
//TPM1MODL = 0x71; //TPM1 Timer Overflow period = 0.5sec
//TPM1MODH = 0x16;
//TPM1MODL = 0xE3; //TPM1 Timer Overflow period = 1sec
//TPM1MODH = 0x72;
//TPM1MODL = 0x70; //TPM1 Timer Overflow period = 5sec
/***********************************************************/
//ADC Low speed, Bus Clock.
ADCCFG = 0xF4; //Divide ratio:8, 12bit conversion.
ADCSC2 = 0x00; //Software trigger
//Compare functio disable
/***********************************************************/
IIC1C1_IICEN = 1; //Enable I2C
IIC1C1_IICIE =1; //IIC Interrupt Enable
IIC1C1_TXAK = 1; //Transmit Acknowledge Enable
IIC1C1_MST = 0; //Slave mod actually
IIC1F = 0x1F; //I2C baud rate: 100000 bps
IIC1S_SRW = 0; //R/W bit = 0
/***********************************************************/
IRQSC = 0x56; //Interrup pin request enable
//Falling edge only, pull up disable
/***********************************************************/
PTGPE = 0x0F; //Internal pull-up enable
KBI1PE = 0xC3; //KBI1P0,KBI1P1,KBI1P6,KBI1P7 enable
KBI1SC_KBIMOD = 0; //KBI1Px pins detect edges only
KBI1ES = 0x00; //A pull-up device is connected
KBI1SC_KBACK = 1; //KBI1 Interrupt acknowledge
KBI1SC_KBIE = 1; //KBI1 Interrupt request enable
/***********************************************************/
_LCD_LED = 1;
LCD_LED = 1;
MCGC1_IRCLKEN = 1;
_CMD_AIR_COND = 1;
CMD_AIR_COND = 1;
_FAN1_ALARM = 1;
FAN1_ALARM = 1;
_FAN2_ALARM = 1;
FAN2_ALARM = 1;
_HIGH_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
_LOW_TEMP_ALARM = 1;
LOW_TEMP_ALARM = 1;
_CMD_CONVECTOR = 1;
CMD_CONVECTOR = 1;
delay(20);
CMD_AIR_COND = 0;
FAN1_ALARM = 0;
FAN2_ALARM = 0;
HIGH_TEMP_ALARM = 1;
LOW_TEMP_ALARM = 1;
CMD_CONVECTOR = 0;
_FIRE = 0;
_INTRUSION = 0;
_AC_FAIL = 0;
_SELECT1 = 1;
_SELECT2 = 1;
SELECT1 = 0;
SELECT2 = 0;
RTCMOD = 0x00;
__RESET_WATCHDOG();
EnableInterrupts;
WR_Data[0] = DS1337_CLEAR_STATUS_VAL;
DS1337_write_block(DS1337_STATUS_REG, 1);
rtc_delay(DELAY2);
DS1337_init();
lcd_init();
lcd_line(1);
TPM1SC = 0x17;
while(1)
{
while(!TPM1SC_TOF){
}
__RESET_WATCHDOG();
if(KBI_TIMEOUT)
{
KBI_TIMEOUT–;
}
else
{
KBI_STATUS = KBI_IDLE;
}
TPM1SC_TOF = 0;
if(AC_FAIL == 0)
{
AC_FAIL_FLAG = 0xFF;
time_out_count = 0x00FF;
CMD_CONVECTOR = 0;
CMD_AIR_COND = 0;
}
else
{
if(time_out_count > 0)
{
time_out_count–;
}
else
{
AC_FAIL_FLAG = 0x00;
}
}
switch(time_slot)
{
case 0:
{
time_slot++;
if(!KBI_STATUS)
{
if(COOLING_MODE)
{
lcd_ram_address(2,14);
LCD_DATA = 'C';
data_enable();
LCD_DATA = 'M';
data_enable();
}
else if(HEATING_MODE)
{
lcd_ram_address(2,14);
LCD_DATA = 'H';
data_enable();
LCD_DATA = 'M';
data_enable();
}
else
{
switch(FAN_MODE)
{
case 0:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '0';
data_enable();
break;
}
case 1:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '1';
data_enable();
break;
}
case 2:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '2';
data_enable();
break;
}
case 3:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '3';
data_enable();
break;
}
case 4:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '4';
data_enable();
break;
}
case 5:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '5';
data_enable();
break;
}
case 6:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '6';
data_enable();
break;
}
}
}
}
break;
}
case 1:
{
time_slot++;
if(SET_DATETIME_FLAG)
{
print_datetime();
DS1337_set_datetime(&SYS_DATE_TIME);
rtc_delay(DELAY2);
rtc_delay(DELAY2);
rtc_delay(DELAY2);
SET_DATETIME_FLAG = 0;
}
break;
}
case 2:
{
time_slot++;
break;
}
case 3:
{
time_slot++;
if(READ_DATETIME_FLAG == 1)
{
if(!KBI_STATUS)
{
DS1337_read_datetime(&SYS_DATE_TIME);
rtc_delay(DELAY2);
rtc_delay(DELAY2);
rtc_delay(DELAY2);
}
WR_Data[0] = DS1337_CLEAR_STATUS_VAL;
DS1337_write_block(DS1337_STATUS_REG, 1);
READ_DATETIME_FLAG = 0;
}
if(!KBI_STATUS)
{
print_datetime();
}
break;
}
case 4:
{
time_slot++;
temp1_adc = read_adc(SENSOR_TEMP_1);
temp2_adc = read_adc(SENSOR_TEMP_2);
temp3_adc = read_adc(SENSOR_TEMP_3);
temp4_adc = read_adc(SENSOR_TEMP_4);
temperature1 = temp(temp1_adc, &KTY81[0]);
temperature2 = temp(temp2_adc, &KTY81[0]);
temperature3 = temp(temp3_adc, &KTY81[0]);
temperature4 = temp(temp4_adc, &KTY81[0]);
SENSOR_STATUS = temp_test(temperature1,temperature2);
sensor_select();
break;
}
case 5:
{
time_slot++;
if(!KBI_STATUS)
{
switch(display_index)
{
case 0: {
battery_voltage = read_adc(ANALOG_TEST);
lcd_line(2);
lcd_print(&STRING1[0]);
print_temp(temperature1);
display_index++;
SELECT1 = 1;
SELECT2 = 1;
break;}
case 1: {
output_voltage = read_adc(ANALOG_TEST);
lcd_line(2);
lcd_print(&STRING2[0]);
print_temp(temperature2);
display_index++;
SELECT1 = 1;
SELECT2 = 0;
break;}
case 2: {
cs1_voltage = read_adc(ANALOG_TEST);
lcd_line(2);
lcd_print(&STRING3[0]);
print_temp(temperature3);
display_index++;
SELECT1 = 0;
SELECT2 = 1;
break;}
case 3: {
cs2_voltage = read_adc(ANALOG_TEST);
lcd_line(2);
lcd_print(&STRING4[0]);
print_temp(temperature4);
display_index = 0;
SELECT1 = 0;
SELECT2 = 0;
break;}
}
}
break;
}
case 6:
{
time_slot++;
break;
}
case 7:
{
time_slot = 0;
break;
}
}
}
}
/************************************************************
Functia, read_adc, citeste rezultatul conversiei analog-digitale a tensiunii
de la intrarea canalului analogic selectat (channel).Conversia se realizeaza
pe 12 biti iar rezultatul este reprezentat pe 16 biti.
************************************************************/
unsigned short read_adc(unsigned char channel)
{
unsigned char high_value,low_value;
ADCSC1 = channel;
while(!ADCSC1_COCO){
}
high_value = ADCRH;
low_value = ADCRL;
ADCSC1 = 0x1F;
return((high_value<<8)|low_value);
/************************************************************
Functia, temp, are doi parametrii de intrare:
1 – temp_adc care se asigneaza in momentul apelului cu rezultatul functiei
read_adc;
2 – *addr este un pointer care se asigneaza in momentul apelului cu adresa de
inceput a tabelului KTY81[].
Tabelul KTY81[] contine valorile precalculate ale conversiilor analog-digitale
pentru senzorul PHILIPS, KTY81-110.Conform specificatiilor senzorului,tabelul
contine valorile pentru temperaturile din grad in grad de la -55 grade Celsius
pana la +150 grade Celsius.
Formula de calcul pentru valorile din tabel este: CODE(t) = 4095*Rt/(1000+Rt)
unde Rt este rezistenta termistorului la temperatura t.
Rezultatul functiei este o valoare binara reprezentata pe 16 biti ce are
urmatoarele semnificatii:
1 – daca valoarea temperaturii este pozitiva dar mai mica sau egala cu 150
grade Celsius octetul de rang superior este egal cu 0x00, iar octetul de rang
inferior contine valorea temperaturii exprimata in grade Celsius.
2 – daca valoarea temperaturii este negativa dar mai mare sau egala cu -55
grade Celsius octetul de rang superior este egal cu 0xAA, iar octetul de rang
inferior contine modulul temperaturii exprimata in grade Celsius.
3 – daca valoarea temperaturii este in afara domeniului de valori continute in
tabelul KTY81[], atunci rezultatul functiei este egal cu 0xFFFF.
************************************************************/
unsigned short temp(unsigned short temp_adc, const unsigned short *addr)
{
unsigned char high_value,low_value;
unsigned short index = 0;
while(temp_adc < 1356 || temp_adc > 2828)
{
high_value = 0xFF;
low_value = 0xFF;
return((high_value<<8)|low_value);
}
while((temp_adc > *addr) && (temp_adc >= 1356) && (temp_adc <= 2828))
{
addr++;
index++;
}
index =index – 1;
if(index >= 55)
{
high_value = 0x00;
low_value = index – 55;
}
else
{
high_value = 0xAA;
low_value = 55 – index;
}
return((high_value<<8)|low_value);
}
/***********************************************************
Functia, temp_test, are doi parametrii de intrare,t1 si t2, care se asigneaza
in momentul apelului cu variabilele:temperature1 respectiv temperature2.
Rezultatul functiei temp_test este un octet fara semn care,functie de valoarea
parametrilor de intrare,are patru valori posibile:
– 0xFF cand t1 si t2 sunt in afara domeniului de temperaturi admise pentru
senzorii de temperatura folositi (KTY81-110);
– 0xAA cand t1 si t2 au valori negative ;
– 0x01 cand t1 si t2 au valori pozitive si t1 >= t2;
– 0x02 cand t1 si t2 au valori pozitive si t1 < t2.
Rezultatul functiei temp_test se transmite variabilei SENSOR_STATUS:
SENSOR_STATUS = temp_test(temperature1,temperature2);
************************************************************/
unsigned char temp_test(unsigned short t1,unsigned short t2)
{
unsigned short t1h,t2h;
t1h = t1 & 0xFF00;
t2h = t2 & 0xFF00;
if(t1h == 0xAA00 && t2h == 0xAA00)
return(0xAA);
if(t1h == 0xAA00 && t2 == 0xFFFF)
return(0xAA);
if(t1 == 0xFFFF && t2h == 0xAA00)
return(0xAA);
if(t1 == 0xFFFF && t2 == 0xFFFF)
return(0xFF);
if(t1 < 256 && t2 >= 256)
return(0x01);
if(t1 >= 256 && t2 < 256)
return(0x02);
if(t1 < 256 && t2 < 256 && t1 >= t2)
return(0x01);
if(t1 < 256 && t2 < 256 && t1 < t2)
return(0x02);
}
/***********************************************************
Functia sensor_select este apelata o singura data in intervalul temporal 4,
(time_slot 4): sensor_select();
Aceasta functie analizeaza variabila SENSOR_STATUS si functie de valoarea
acesteia modifica stare variabilelor globale prin care se realizeaza
climatizarea, adica ventilatia, racirea sau incalzirea precum si alarmele.
************************************************************/
void sensor_select(void)
{
switch(SENSOR_STATUS)
{
case 0xFF:
{
LOW_TEMP_ALARM = 0;
HIGH_TEMP_ALARM = 0;
TPM2C0VL = 0x20;
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
break;
}
case 0xAA:
{
if(AC_FAIL_FLAG == 0x00)
{
CMD_CONVECTOR = 1;
}
else
{
CMD_CONVECTOR = 0;
}
LOW_TEMP_ALARM = 0;
HIGH_TEMP_ALARM = 1;
HEATING_MODE = 1;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
break;
}
case 0x01:
{
climatize(temperature1);
break;
}
case 0x02:
{
climatize(temperature2);
break;
}
}
}
/***********************************************************/
void climatize(unsigned short t)
{
// (4). t >= 18 && t < 25
if(t >= 18 && t < 25)
{
HEATING_MODE = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP = 90;
}
// (5). t >= 25 && t <= 30
else if(t >= 25 && t <= 30)
{
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP = 90;
switch(t)
{
case 25:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0xB0; //Pulse width: 10%
TPM2C0VH = 0x04;
FAN_MODE = 0x01; //V1
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
} else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0xB0; //Pulse width: 10%
TPM2C0VH = 0x04;
FAN_MODE = 0x01;
}
break;
}
case 26:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0x60; //Pulse width: 20%
TPM2C0VH = 0x09;
FAN_MODE = 0x02; //V2
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
} else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF) {
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x60; //Pulse width: 20%
TPM2C0VH = 0x09;
FAN_MODE = 0x02;
}
break;
}
case 27:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0x10; //Pulse width: 30%
TPM2C0VH = 0x0E;
FAN_MODE = 0x03;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x10; //Pulse width: 30%
TPM2C0VH = 0x0E;
FAN_MODE = 0x03;
}
break;
}
case 28:
{
if(COOLING_MODE == 0) {
TPM2C0VL = 0xC0; //Pulse width: 40%
TPM2C0VH = 0x12;
FAN_MODE = 0x04;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0xC0; //Pulse width: 40%
TPM2C0VH = 0x12;
FAN_MODE = 0x04;
}
break;
}
case 29:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0x70; //Pulse width: 50%
TPM2C0VH = 0x17;
FAN_MODE = 0x05;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x70; //Pulse width: 50%
TPM2C0VH = 0x17;
FAN_MODE = 0x05;
}
break;
}
case 30:
{
if(COOLING_MODE == 0) {
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
}
break;
}
}
}
// (6). t > 30 && t <= 35
else if(t > 30 && t <= 35 && AC_FAIL_FLAG == 0x00)
{
if(DELAY_AC_STARTUP && !COOLING_MODE)
{
COOLING_MODE = 0;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP–;
}
else
{
COOLING_MODE = 1;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
}
}
else if(t > 30 && t <= 35 && AC_FAIL_FLAG == 0xFF)
{
COOLING_MODE = 0;
CMD_AIR_COND = 0;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP = 90;
}
// (7). t > 35 ºC
else if(t > 35 && AC_FAIL_FLAG == 0x00)
{
if(DELAY_AC_STARTUP > 0 && DELAY_AC_STOP > 0 && !COOLING_MODE)
{
COOLING_MODE = 0;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
DELAY_AC_STOP–;
DELAY_AC_STARTUP–;
}
else if(DELAY_AC_STOP > 0)
{
COOLING_MODE = 1;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x10; //Pulse width: 30%
TPM2C0VH = 0x0E;
FAN_MODE = 0x03;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
DELAY_AC_STOP–;
}
else
{
COOLING_MODE = 0;
CMD_AIR_COND = 0;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
}
}
else if(t > 35 && AC_FAIL_FLAG == 0xFF)
{
COOLING_MODE = 0;
CMD_AIR_COND = 0;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
/***********************************************************/
// (3). t >= 15 && t < 18
else if(t >= 15 && t < 18 && AC_FAIL_FLAG == 0x00) // retea 220V prezenta
{
if(HEATING_MODE ==1)
{
CMD_CONVECTOR = 1;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
else
{
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
}
else if(t >= 15 && t < 18 && AC_FAIL_FLAG == 0xFF)
{
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
/**********************************************************/
// (2). t < 15 && t > 5
else if(t < 15 && t > 5 && AC_FAIL_FLAG == 0x00) // retea 220V prezenta
{
HEATING_MODE = 1;
CMD_CONVECTOR = 1; // Se comanda convectorul
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
else if(t < 15 && t > 5 && AC_FAIL_FLAG == 0xFF) // retea 220V absenta
{
HEATING_MODE = 1;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
/**********************************************************/
// (1). t <= 5
else if(t <= 5 && AC_FAIL_FLAG == 0x00) // retea 220V prezenta
{
HEATING_MODE = 1;
CMD_CONVECTOR = 1; // Se comanda convectorul
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 0; // Se activeaza alarma de temperatura scazuta
HIGH_TEMP_ALARM = 1;
}
else if(t <= 5 && AC_FAIL_FLAG == 0xFF) // retea 220V absenta
{
HEATING_MODE = 1;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 0; // Se activeaza alarma de temperatura scazuta
HIGH_TEMP_ALARM = 1;
}
}
/**********************************************************/
void lcd_print_byte(unsigned char data)
{
unsigned char STRING_DT[3];
uchar_to_ascii(data, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
}
/**********************************************************/
void print_temp(unsigned short temperature)
{
unsigned short module_temp;
unsigned char STRING_T[4];
if(temperature == 0xFFFF)
{
lcd_print(&STRING5[0]);
}
else
{
if(temperature > 255)
{
LCD_DATA = '-';
data_enable();
module_temp = temperature & 0x00FF;
int_to_ascii(module_temp, &STRING_T[0]);
lcd_print(&STRING_T[0]);
lcd_print(&STRING6[0]);
}
else
{
LCD_DATA = '+';
data_enable();
module_temp = temperature & 0x00FF;
int_to_ascii(module_temp, &STRING_T[0]);
lcd_print(&STRING_T[0]);
lcd_print(&STRING6[0]);
}
}
}
/**********************************************************/
void print_datetime(void)
{
unsigned char STRING_DT[3];
lcd_line(1);
uchar_to_ascii(SYS_DATE_TIME.date, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
LCD_DATA = '.';
data_enable();
uchar_to_ascii(SYS_DATE_TIME.month, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
LCD_DATA = '.';
data_enable();
uchar_to_ascii(SYS_DATE_TIME.year, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
LCD_DATA = ' ';
data_enable();
LCD_DATA = ' ';
data_enable();
LCD_DATA = ' ';
data_enable();
uchar_to_ascii(SYS_DATE_TIME.hours, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
LCD_DATA = ':';
data_enable();
uchar_to_ascii(SYS_DATE_TIME.minutes, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
}
/*********************************************************/
void int_to_ascii(unsigned short module, char *addr)
{
unsigned char i;
addr = addr + 3;
*addr = '\0';
addr–;
for(i = 0; i <= 2; i++)
{
*addr = (module%10) + 0x30;
module = module/10;
addr–;
}
}
/**********************************************************/
void uchar_to_ascii(unsigned char value, char *addr)
{
unsigned char i;
addr = addr + 2;
*addr = '\0';
addr–;
for(i = 0; i <= 1; i++)
{
*addr = (value%10) + 0x30;
value = value/10;
addr–;
}
}
/*********************************************************/
void lcd_print(char *addr)
{
while(*addr != '\0')
{
LCD_DATA = *addr;
data_enable();
addr++;
}
}
/**********************************************************/
void data_enable(void)
{
ENABLE = 1;
rtc_delay(DELAY1);
ENABLE = 0;
rtc_delay(DELAY1);
}
/**********************************************************/
void lcd_init(void)
{
_RS = 1;
_RW = 1;
_ENABLE = 1;
_LCD_DATA = 0xFF;
unsigned int i;
for (i = 0; i<10; i++)
{
rtc_delay(DELAY2);
}
RS = 0;
RW = 0;
ENABLE = 0;
LCD_DATA = LCD_INTERFACE;
data_enable();
LCD_DATA = ON_OFF_CONTROL;
data_enable();
LCD_DATA = CLEAR_LCD;
data_enable();
rtc_delay(DELAY2);
LCD_DATA = CURSOR_INC;
data_enable();
}
/**********************************************************/
void lcd_line(unsigned int i)
{
if (i==1) {
RS = 0;
RW = 0;
LCD_DATA = 0x80;
data_enable();
RS = 1;
}
else
{
RS = 0;
RW = 0;
LCD_DATA = 0xC0;
data_enable();
RS=1;
}
}
/**********************************************************/
void lcd_ram_address(unsigned int i,unsigned int j)
{
if (i==1) {
RS = 0;
RW = 0;
LCD_DATA = j+128;
data_enable();
RS = 1;
}
else
{
RS = 0;
RW = 0;
LCD_DATA = j+192;
data_enable();
RS=1;
}
}
/**********************************************************/
void interrupt VectorNumber_Virq IRQ_ISR(void)
{
IRQSC_IRQACK = 1;
READ_DATETIME_FLAG = 1;
}
/**********************************************************/
void rtc_delay(unsigned char DELAY) {
RTCSC = DELAY;
while(!RTCSC_RTIF) {
}
RTCSC_RTIF = 1;
}
/**********************************************************/
void delay(unsigned char n)
{
unsigned char i;
for(i=1; i<=n; i++)
{
rtc_delay(DELAY3);
}
}
/*********************************************************/
void interrupt VectorNumber_Vkeyboard KBI_ISR(void)
{
KBI1SC_KBACK = 1; /* Clear the KBI interrupt flag */
KBI_TIMEOUT = 0x28; /* KBI timeout is 10 sec. */
switch(KBI_STATUS)
{
case KBI_IDLE:
{
if(!SET_TIME)
{
KBI_STATUS = KBI_HOURS ;
lcd_line(1);
lcd_print(&STRING7[0]);
KBI_REG = SYS_DATE_TIME.hours;
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!SET_DATE)
{
KBI_STATUS = KBI_DATE;
lcd_line(1);
lcd_print(&STRING9[0]);
KBI_REG = SYS_DATE_TIME.date;
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_HOURS :
{
if(!SET_TIME)
{
KBI_STATUS = KBI_MINUTES;
SYS_DATE_TIME.hours = KBI_REG;
KBI_REG = SYS_DATE_TIME.minutes;
lcd_line(1);
lcd_print(&STRING8[0]);
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!DOWN)
{
if(!KBI_REG)
{
KBI_REG = 23;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 23)
{
KBI_REG = 0;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_MINUTES :
{
if(!SET_TIME)
{
SYS_DATE_TIME.minutes = KBI_REG;
SYS_DATE_TIME.seconds = 0x00;
SET_DATETIME_FLAG = 0xFF;
print_datetime();
break;
}
else if(!DOWN)
{
if(!KBI_REG)
{
KBI_REG = 59;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 59)
{
KBI_REG = 0;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_DATE :
{
if(!SET_DATE)
{
KBI_STATUS = KBI_MONTH;
SYS_DATE_TIME.date = KBI_REG;
KBI_REG = SYS_DATE_TIME.month;
lcd_line(1);
lcd_print(&STRING10[0]);
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!DOWN)
{
if(KBI_REG == 1)
{
KBI_REG = 31;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 31)
{
KBI_REG = 1;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_MONTH :
{
if(!SET_DATE)
{
KBI_STATUS = KBI_YEAR;
SYS_DATE_TIME.month = KBI_REG;
KBI_REG = SYS_DATE_TIME.year;
lcd_line(1);
lcd_print(&STRING11[0]);
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!DOWN)
{
if(KBI_REG == 1)
{
KBI_REG = 12;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 12)
{
KBI_REG = 1;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_YEAR :
{
if(!SET_DATE)
{
KBI_STATUS = KBI_DAY;
SYS_DATE_TIME.year = KBI_REG;
KBI_REG = SYS_DATE_TIME.day;
lcd_line(1);
lcd_print(&STRING12[0]);
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!DOWN)
{
if(KBI_REG == 0)
{
KBI_REG = 99;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 99)
{
KBI_REG = 0;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_DAY :
{
if(!SET_DATE)
{
//KBI_STATUS = KBI_IDLE;
SYS_DATE_TIME.day = KBI_REG;
SET_DATETIME_FLAG = 0xFF;
print_datetime();
break;
}
else if(!DOWN)
{
if(KBI_REG == 0)
{
KBI_REG = 6;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 6)
{
KBI_REG = 0;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
}
}
/********************************************************/
Anexa 2. Caracteristica de temperatură a senzorului KTY 81-110
Anexa 3
Schema electrica SMC-01
Anexa 4 Lista de materiale
Item Quantity Reference Part PCB Footprint
1 1 BT1 BATTERY HOLDER HOLDER
2 1 C1 47uF/63V CYL/D.300/LS.200/.034
3 1 C2 100nF/63V SM/C_1206
4 6 C3,C4,C12,C18,C24,C47 10uF/16V CYL/D.200/LS.100/.031
5 18 C5,C6,C7,C8,C11,C13,C14, 100nF SM/C_1206
C15,C16,C17,C19,C25,C38,
C41,C43,C45,C46,C57
6 2 C10,C9 18pF SM/C_1206
7 16 C20,C21,C22,C23,C26,C27, 10nF SM/C_1206
C28,C29,C30,C31,C32,C50,
C51,C52,C53,C56
8 1 C33 2.2nF SM/C_1206
9 4 C34,C37,C39,C40 1nF SM/C_1206
10 3 C35,C36,C44 100uF/63V CYL/D.400/LS.200/.034
11 1 C42 47uF/25V CYL/D.200/LS.100/.031
12 2 C54,C55 10uF SM/C_1206
13 1 D1 S1G SM/DO214AC_12
14 2 D3,D2 SMAJ12CA SM/DO214AC_12
15 4 D4,D5,D6,D7 BAV99LT SM/SOT23_123
16 6 D8,D9,D10,D11,D12,D13 BAS21 SM/SOT23_123
17 1 D14 1N5231 DAX2/DO35
18 1 D15 1N5242 DAX2/DO35
19 1 D16 BYV27-200 DAX1/DO41
20 1 D17 S3G SM/DO214AB_12
21 2 F1,F12 SF-1206S100 SM/L_1206
22 10 F2,F3,F4,F5,F6,F7,F8,F9, SF-1206F050 SM/L_1206
F10,F11
23 2 JH1,JH2 HEADER 36 HEADER 36
Item Quantity Reference Part PCB Footprint
24 11 JP1,JP5,JP6,JP7,JP8,JP9, DG15R-3.5 2P DG15-3.5 2P
JP10,JP11,JP12,JP19,JP20
25 1 JP2 HEADER 3X2 HEADER 3X2
26 1 JP3 USB-MINI USB 5 MINI SMD
27 1 JP4 HEADER 2×2 HEADER 2×2
28 6 JP13,JP14,JP15,JP16,JP17, DG15 3.5 3P DG15-3.5 3P
JP18
29 2 JS1,JS2 HEADER 5 HEADER 5
30 6 K1,,K3,K4,K5,K6 NA05WK NA05WK
31 1 LED1 HSMC-C680 HSMC-C680
32 6 LED2,LED3,LED4,LED5,LED6, KP-3216EC SM/D_1206_21
LED7
33 2 L1,L4 22uH AX/.600X.200/.037
34 1 L2 10uH AX/.500X.175/.037
35 2 L5,L3 150uH B82477P4
36 1 M1 IRFU120 TO-251AA
37 1 P1 DB9 DSUB/RS.318/TM/9
38 10 Q1,Q2,Q3,Q4,Q5,Q6,Q9,Q10, BC817-40L SM/SOT23_123
Q11,Q12
39 1 Q7 BC807/PLP SM/SOT23_123
40 1 Q8 MMBTA92L SM/SOT23_123
41 1 RV1 2.2k T93YAK
42 1 RV2 22k T93YAK
43 1 R1 1M SM/R_1206
44 18 R2,R3,R4,R5,R6,R7,R18, 10k SM/R_1206
R20,R22,R24,R32,R39,R50,
R66,R68,R70,R71,R72
45 2 R9,R8 33 SM/R_1206
46 2 R10,R41 4.7k SM/R_1206
Item Quantity Reference Part PCB Footprint
47 7 R11,R73,R74,R75,R76,R77, 560 SM/R_1206
R78
48 1 R12 1.5k SM/R_1206
49 6 R13,R14,R15,R16,R36,R79 1k SM/R_1206
50 5 R17,R19,R21,R23,R49 47k SM/R_1206
51 13 R25,R26,R27,R28,R29,R30, 2.2k SM/R_1206
R31,R35,R38,R40,R42,R67,
R69
52 4 R33,R34,R62,R65 100k SM/R_1206
53 2 R56,R37 220k SM/R_1206
54 3 R43,R51,R52 27k SM/R_1206
55 3 R44,R53,R54 1 AX/.450X.100/.031
56 1 R45 8.2k SM/R_1206
57 1 R46 10 SM/R_1206
58 2 R64,R47 220 SM/R_1206
59 1 R48 2k AX/.650X.200/.037
60 2 R55,R60 2.21k SM/R_1206
61 4 R57,R58,R59,R61 61.9k SM/R_1206
62 1 R63 90.1k SM/R_1206
63 2 R81,R80 0 SM/R_1206
64 5 SW1,SW2,SW3,SW4,SW5 TV-06C TV-06C
65 1 U1 MCF51JM64 QUAD.50M/64/WG12.60
66 1 U2 IZ4805SA IZ4805SA
67 1 U3 TS1117BCP33 TO252AA/DPAK
68 1 U4 DS1337 SOG.050/8/WG.244/L.200
69 1 U5 DEM16216SGH DEM16216SGH
70 1 U6 Micro SD CARD SOCKET
71 1 U7 MAX3232ECDG4 SOG.050/16/WG.244/L.400
Item Quantity Reference Part PCB Footprint
72 7 U8,U9,U10,U11,U12,U18, TLP181GR TLP181
U19
73 1 U13 LM258/SO SOG.050/8/WG.244/L.200
74 1 U14 UC2843BD1GSOG.050/8/WG.244/L.200
75 1 U15 HCNR201 DIP.100B/8/W.300/L.450
76 1 U16 TLV2371 TLV2371DBV
77 1 U17 CD4051 SOG.050/16/WG.244/L.400
78 1 U20 AT24C01 SOG.050/8/WG.244/L.200
79 1 U21 TLC272 SOG.050/8/WG.244/L.200
80 1 U22 TC7660 SOG.050/8/WG.244/L.200
81 1 Y1 12MHZ HC49-SMD
82 1 Y2 32.768KHz CRYSTAL
Bibliografie
[1] – Cănureci Nicoleta-Gabriela, Algoritmi și metode de detecție și localizare a defectelor,
raport de cercetare, conducător științific: Prof. Dr. Ing. Matei Vînătoru – 2007.
[2] – V.Cristea. Algoritmi paraleli. Note de curs. 2008.
[3] – Lucian Ciobanu Sensors and transducers Editura MATRIX ROM 2006.
[4] – M. Dobriceanu, D. Selisteanu, G.E. Subtirelu, R. Fundeanu. Monitorizarea factorilor de
mediu. Tehnici si sisteme, Editura UNIVERSITARIA, Craiova, 2009.
[5] – V. Dolga, Sisteme de achiziții de date, interfețe și instrumentație virtuală,
Ed.Politehnica, Timisoara, 2008.
[6] – Valer Dolga, Senzori si traductoare Editura Eurobit, Timișoara,1999.
[7] – Făgărășan, I., Detecția și diagnoza defectelor în instalațiile industriale, Specialitatea
Automatică, Conducător Științific Prof. Dr.Ing. Sergiu Stelian Iliescu, Teză de doctorat,
Universitatea Politehnica din București, 2002.
[8] – Ovidiu Gherman. Cautarea paralela in tablouri masive de numere folosind sisteme
distribuite, 2004.
[9] – Ivănescu M., Stoian V., Iancu E., Vînătoru M., Robotic Arm Control in Fault
Conditions, ASC Artificial Intelligence and Soft Computing – Conferinta IASTED, –
International Association and Techologz for Development – Banff, Calgary,
Canada, 2000.
[10] – Iancu Eugen, Vinatoru Matei, Metode analitice pentru detectia si localizarea defectelor
– Studii de caz, Editura EUC – UNIVERSITARIA Craiova, pg.19,35.
(Analitical Methods for Fault Detection and Isolation) , 2003.
[11] – Iancu Eugen Transmisia datelor, Sisteme tolerante la defecte. Facultatea de
Automatica, Calculatoare si Electronica din Craiova – curs 2011 .
[12] – Iancu Eugen, Vinatoru Matei, Detectia si localizarea defectelor in sistemele dinamice,
Editura SITECH Craiova, 304 pg., 1999,
[13] – Iancu Eugen, Transmisia datelor, Editura Reduta, Craiova, 1998, ISBN 97-97173-7-3.
[14] – Joel M.Crichlow. Introducere in calculul paralel si distribuit. Prentice Hall –1997.
[15] – Lubritto, C. Energy and environmental aspects of mobile communication systems,
Energy, Volume 36, Issue 2, February 2011.
[16] – Maican Camelia, Matei Vinatoru, Canureci Gabriela, Managementul Proiectelor-
Indrumar de laborator, Editura EUC – UNIVERSITARIA Craiova, ISBN 973-742-511-
1, 978- 973-742-511-9, 129 , 2006.
[17] – Nicolae Marius Bârlea, Fizica senzorilor Editura Albastră , Cluj 2000
[18] – Niculescu Virginia. Calcul paralel.Editura: Presa Universitatea Clujeana 2006
[19] – BANIAȘ, OVIDIU, Contribuții la conducerea traficului rutier urban utilizând o rețea
de senzori wireless ca detector de trafic- teză de doctorat, Universitatea Politehnică
din Timișoara, 2009
[20] – Papadache, I, Automatizări industriale Ed. Tehnică, 1978.
[21] – PINTILIEI, MIHAI, Contribuții privind creșterea fluenței traficului rutier în condițiile
menținerii și conservării vestigiilor istorice din marile centre urbane- rezumat teza de
doctorat, Universitatea Tehnică Gh. Asachi, Iasi, 2009.
[22] – Gabriel Predusca, Florian Ion, Alexandru Ivan, Eugenia Minca, Sisteme de conversie
si achizitii de date, Ed.Bibliotheca, colectia: Universitaria Electronica., 2005.
[23] – E. Rappaport -“Wireless Communication Systems”,Wiley and Sons, 2002.
[24] – A.Serbanescu. B.Dumitrescu, B.Jora, C.Popeea, Parallel 4SID Algorithm, Control
Engineering and Applied Informatics, 2002.
[25] – Vînătoru Matei, Aparate de masura si automatizari în industria chimica – curs,
Tipografia Universitatii din Craiova, 255 pg., 1983.
[26] – Vînătoru Matei, Nicolae Dan, Automatizari industriale continue – curs, Tipografia
Universitatii din Craiova, 482 pg., 1987.
[27] – Vînătoru Matei, Teoria sistemelor, Tipografia Universitatii din Craiova, 1993.
[28] – Vinatoru Matei, Control Sustem Study for steam superheaters, SINTES 7,
Craiova, 1994.
[29] – Vînătoru Matei, Procese industriale automatizate, Editura EUC – UNIVERSITARIA
Craiova, 1996.
[30] – Vînătoru Matei, Olaru O., Sisteme automate, Editura " SPICON" Bucuresti,
382 pg., 1997.
[31] – Vinatoru Matei, E.Iancu, C. Vinatoru, Robust control for actuator failures, Proceedings
of 2nd IFAC Symposium ROCOND’97, Budapest, 1997.
[32] – Vînătoru Matei, Iancu Eugen, (Detectia și localizarea defectelor în sistemele dinamice)
Editura SITECH, Craiova, 1999.
[33] – Vînătoru Matei, Eugen Iancu Fault Detection and Isolation by Monitoring System, The
Second International Workshop on Inteligent Control System ICS 2000, June 8-9,
Bucharest, Romania, 2000.
[34] – Vînătoru Matei, Eugen Iancu , Model Control of Distributed Parameters Heat Transfer
Process, International Symposium on System Theory, Robotics, Computers and
Process Informatics, SINTES 10, May 2000.
[35] – Vînătoru Matei, Eugen Iancu, Model Control of Distributed Prameters Heat Transfer
Process, International Symposium on System Theory, Robotics, Computers and Proces
Informatics, SINTES 10, May, 2000.
[36] – Vînătoru Matei, Conducerea automata a proceselor industriale, vol. I, EUC – Editura
Universitaria Craiova, 2001.
[37] – Vînătoru Matei. Industial Plant Control, Ed. Univesitaria. Craiova. Pg.101, 127, 2001.
[38] – Vînătoru Matei, Conducerea automata a proceselor industriale, vol. II, EUC – Editura
Universitaria Craiova, 2005.
[39] – Vînătoru Matei, Conducerea automata a proceselor industriale, vol. II, Editura
Universitaria, Craiova, 2005.
[40] – Vînatoru Matei, Iancu Eugen, Maican Camelia, Cănureci Gabriela, Conducerea
automata a proceselor industriale, Editura EUC Universitaria Craiova, 2008.
[41] – Vînătoru Matei, Reglarea proceselor, Facultatea de Automatică, Calculatoare și
Electronica din Craiova –curs 2011.
[42] Yi-Bing Lin, Imrich Chlamtac. Wireless and Mobile Network Architecture , 2001.
Site-uri web:
[43] – Passive Cooling Systems, INTERTEC-Hess GmbH · Raffineriestraße 8 ·D-93333
Neustadt/Donau, (2012). www.intertec.in. pg.110.
[44] – SEN-S magnetic sensor, www.diltronic.com/pdf/pni/sens.pdf
[45] – MOVVA, CHANDRA SEKHAR, KOTA, DHEERAJ, Wireless sensors for
monitoring traffic, http://intranet.daiict.ac.in/~ranjan/isn2007/presentation/isn_l.pdf
[46] – Compania SPECTEC, http://www.spectec.com.tw
[47] – GLOBALSPEC, The Engineering Search Engine, http://www.globalspec.com/
LearnMore/Sensors_Transducers_Detectors/Electrical_Electromagnetic_Sensing/ Magnetic_Field_ Sensors
[48] – http://www.agilent.com/;
[49] – http://www.evaluationengineering.com/;
[50] – http://www.reed-electronics.com/tmworld/;
[51] – http://www.imperialelectric.ro/Aplicatii/Aplicatii _Moxa/Automatizari.htm;
[52] – http://intertec.info/web/index.php-[INTERTEC-Hess GmbH 201
[53] – http://www.agilent.com/; http://www.evaluationengineering.com/;
[54] – http://www.scada.ro/;
[55] – http://www.mikrotik.com/thedude.php (the dude);
[56] – http://www.futureelectronics.com/en/technologies /semiconductors/
microcontrollers/32- bit/Page;
[57] – http:// www.schur.pub.ro/download/acp/acp_curs.pdf
[58] – http://www.cdep.ro/pls/legis/legis_pck.htp_act_text?idt=24985 / LEGEA nr.199 din 13 noiembrie 2000 privind utilizarea eficientă a energiei.
Anexa 1
Programul Main C
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#include "DS1337.h"
unsigned char DELAY0 = 0x48; // 31.25us * (RTCMOD) RTIE=0
unsigned char DELAY1 = 0x49; // 62.50us * (RTCMOD) RTIE=0
unsigned char DELAY2 = 0x4D; // 3.125ms * (RTCMOD) RTIE=0
unsigned char DELAY3 = 0x4E; //15.625ms * (RTCMOD) RTIE=0
unsigned char SENSOR_TEMP_1 = 0x00;
unsigned char SENSOR_TEMP_2 = 0x01;
unsigned char SENSOR_TEMP_3 = 0x02;
unsigned char SENSOR_TEMP_4 = 0x03;
unsigned char TPM1_FLAG = 0x00;
unsigned char AC_FAIL_FLAG = 0x00;
unsigned char SENSOR_STATUS =0x00;
unsigned char COOLING_MODE = 0;
unsigned char HEATING_MODE = 0;
unsigned char FAN_MODE = 0;
unsigned char time_slot = 0;
unsigned char display_index = 0;
unsigned char READ_DATETIME_FLAG = 0;
unsigned short time_out_count;
unsigned short temp1_adc,temp2_adc,temp3_adc,temp4_adc;
unsigned short temperature1,temperature2,temperature3,temperature4;
unsigned short battery_voltage;
unsigned short output_voltage;
unsigned short cs1_voltage;
unsigned short cs2_voltage;
unsigned short DELAY_AC_STOP = 450;
unsigned short DELAY_AC_STARTUP = 90;
unsigned char SET_DATETIME_FLAG = 0;
unsigned char KBI_STATUS = 0;
unsigned char KBI_REG;
unsigned char KBI_TIMEOUT;
char STRING1[] = "T1=";
char STRING2[] = "T2=";
char STRING3[] = "Ti=";
char STRING4[] = "Te=";
char STRING5[] = "****";
char STRING6[] = {0xDF,'C','\0'};
char STRING7[] = "HOURS :";
char STRING8[] = "MINUTES:";
char STRING9[] = "DATE :";
char STRING10[] = "MONTH :";
char STRING11[] = "YEAR :";
char STRING12[] = "DAY :";
date_time_t SYS_DATE_TIME;
/*******************************************************/
#define CLEAR_LCD 0x01
#define CURSOR_HOME 0x02
#define CURSOR_INC 0x06 //DDRAM ADDRESS INC., CURSOR MOVES TO RIGHT
#define ON_OFF_CONTROL 0x0E //DISPLAY ON,CURSOR ON,
#define LCD_INTERFACE 0x38 //8 BIT INTERFACE,2 LINE, 5X7 DOT FORMAT
#define SET_TIME PTGD_PTGD3
#define SET_DATE PTGD_PTGD2
#define UP PTGD_PTGD1
#define DOWN PTGD_PTGD0
#define KBI_IDLE 0x00
#define KBI_HOURS 0x10
#define KBI_MINUTES 0x20
#define KBI_DAY 0x30
#define KBI_DATE 0x40
#define KBI_MONTH 0x50
#define KBI_YEAR 0x60
/********************************************************/
#define RS PTCD_PTCD6
#define _RS PTCDD_PTCDD6
#define RW PTCD_PTCD4
#define _RW PTCDD_PTCDD4
#define ENABLE PTCD_PTCD2
#define _ENABLE PTCDD_PTCDD2
#define LCD_LED PTCD_PTCD3
#define _LCD_LED PTCDD_PTCDD3
#define LCD_DATA PTDD
#define _LCD_DATA PTDDD
#define FAN1_ALARM PTAD_PTAD5
#define _FAN1_ALARM PTADD_PTADD5
#define FAN2_ALARM PTAD_PTAD4
#define _FAN2_ALARM PTADD_PTADD4
#define HIGH_TEMP_ALARM PTAD_PTAD3
#define _HIGH_TEMP_ALARM PTADD_PTADD3
#define LOW_TEMP_ALARM PTAD_PTAD2
#define _LOW_TEMP_ALARM PTADD_PTADD2
#define CMD_AIR_COND PTAD_PTAD1
#define _CMD_AIR_COND PTADD_PTADD1
#define CMD_CONVECTOR PTAD_PTAD0
#define _CMD_CONVECTOR PTADD_PTADD0
#define FIRE PTFD_PTFD0
#define _FIRE PTFDD_PTFDD0
#define INTRUSION PTFD_PTFD1
#define _INTRUSION PTFDD_PTFDD1
#define AC_FAIL PTFD_PTFD2
#define _AC_FAIL PTFDD_PTFDD2
#define RESERVED PTFD_PTFD3
#define _RESERVED PTFDD_PTFDD3
#define SELECT1 PTBD_PTBD5
#define _SELECT1 PTBDD_PTBDD5
#define SELECT2 PTBD_PTBD6
#define _SELECT2 PTBDD_PTBDD6
#define ANALOG_TEST 0x07
/********************************************************/
const unsigned short KTY81[] =
{
1356,1361,1367,1372,1396,1401,1410,1420,1429,1438,
1447,1454,1463,1472,1481,1491,1501,1510,1519,1529,
1538,1547,1556,1565,1574,1583,1592,1602,1611,1620,
1629,1638,1647,1656,1664,1673,1682,1691,1700,1709,
1718,1727,1735,1744,1752,1761,1770,1779,1788,1797,
1806,1815,1823,1832,1840,1849,1858,1866,1875,1884,
1892,1901,1909,1917,1926,1934,1942,1951,1960,1968,
1976,1985,1993,2001,2009,2017,2025,2033,2042,2050,
2058,2066,2074,2082,2090,2098,2106,2114,2122,2130,
2137,2145,2153,2160,2168,2175,2183,2191,2199,2206,
2214,2222,2229,2237,2244,2251,2259,2266,2274,2281,
2288,2295,2303,2310,2317,2324,2331,2338,2345,2352,
2359,2366,2373,2380,2386,2393,2400,2407,2414,2421,
2427,2434,2441,2447,2454,2460,2467,2473,2480,2486,
2493,2499,2506,2512,2518,2524,2531,2537,2543,2549,
2555,2562,2568,2574,2580,2586,2592,2598,2604,2610,
2616,2621,2627,2633,2639,2644,2650,2656,2661,2667,
2672,2678,2683,2689,2694,2699,2705,2710,2715,2720,
2725,2730,2735,2740,2745,2749,2754,2758,2763,2767,
2772,2776,2780,2785,2789,2793,2797,2800,2804,2807,
2811,2814,2818,2821,2825,2828,
};
/********************************************************/
void data_enable(void);
void lcd_init(void);
void lcd_line(unsigned int i);
void lcd_ram_address(unsigned int i,unsigned int j);
void lcd_print(char *addr);
void rtc_delay(unsigned char DELAY);
void sensor_select(void);
unsigned short read_adc(unsigned char channel);
unsigned short temp(unsigned short temp_adc, const unsigned short *addr);
unsigned char temp_test(unsigned short t1,unsigned short t2);
void print_temp(unsigned short temperature);
void int_to_ascii(unsigned short module, char *addr);
void uchar_to_ascii(unsigned char value, char *addr);
void climatize(unsigned short t);
void print_datetime(void);
void lcd_print_byte(unsigned char data);
void delay(unsigned char n);
void KBI_ISR(void);
void IRQ_ISR(void);
void dummy_ISR(void);
/********************************************************/
const byte NVPROT_INIT @0x0000040D = 0xFB; // 0x00000000-0x00000FFF are protected
typedef void (* pFun)(void);
extern asm void _startup(void);
extern void IIC1_ISR(void);
//extern void _Entry(void);
void dummy_ISR(void)
{
}
void (* const RAM_vector[])()@0x00001000= {
(pFun)&dummy_ISR, // vector_0 INITSP
(pFun)&dummy_ISR, // vector_1 INITPC
(pFun)&dummy_ISR, // vector_2 Vaccerr
(pFun)&dummy_ISR, // vector_3 Vadderr
(pFun)&dummy_ISR, // vector_4 Viinstr
(pFun)&dummy_ISR, // vector_5 VReserved5
(pFun)&dummy_ISR, // vector_6 VReserved6
(pFun)&dummy_ISR, // vector_7 VReserved7
(pFun)&dummy_ISR, // vector_8 Vprviol
(pFun)&dummy_ISR, // vector_9 Vtrace
(pFun)&dummy_ISR, // vector_10 Vunilaop
(pFun)&dummy_ISR, // vector_11 Vunilfop
(pFun)&dummy_ISR, // vector_12 Vdbgi
(pFun)&dummy_ISR, // vector_13 VReserved13
(pFun)&dummy_ISR, // vector_14 Vferror
(pFun)&dummy_ISR, // vector_15 VReserved15
(pFun)&dummy_ISR, // vector_16 VReserved16
(pFun)&dummy_ISR, // vector_17 VReserved17
(pFun)&dummy_ISR, // vector_18 VReserved18
(pFun)&dummy_ISR, // vector_19 VReserved19
(pFun)&dummy_ISR, // vector_20 VReserved20
(pFun)&dummy_ISR, // vector_21 VReserved21
(pFun)&dummy_ISR, // vector_22 VReserved22
(pFun)&dummy_ISR, // vector_23 VReserved23
(pFun)&dummy_ISR, // vector_24 Vspuri
(pFun)&dummy_ISR, // vector_25 VReserved25
(pFun)&dummy_ISR, // vector_26 VReserved26
(pFun)&dummy_ISR, // vector_27 VReserved27
(pFun)&dummy_ISR, // vector_28 VReserved28
(pFun)&dummy_ISR, // vector_29 VReserved29
(pFun)&dummy_ISR, // vector_30 VReserved30
(pFun)&dummy_ISR, // vector_31 VReserved31
(pFun)&dummy_ISR, // vector_32 Vtrap0
(pFun)&dummy_ISR, // vector_33 Vtrap1
(pFun)&dummy_ISR, // vector_34 Vtrap2
(pFun)&dummy_ISR, // vector_35 Vtrap3
(pFun)&dummy_ISR, // vector_36 Vtrap4
(pFun)&dummy_ISR, // vector_37 Vtrap5
(pFun)&dummy_ISR, // vector_38 Vtrap6
(pFun)&dummy_ISR, // vector_39 Vtrap7
(pFun)&dummy_ISR, // vector_40 Vtrap8
(pFun)&dummy_ISR, // vector_41 Vtrap9
(pFun)&dummy_ISR, // vector_42 Vtrap10
(pFun)&dummy_ISR, // vector_43 Vtrap11
(pFun)&dummy_ISR, // vector_44 Vtrap12
(pFun)&dummy_ISR, // vector_45 Vtrap13
(pFun)&dummy_ISR, // vector_46 Vtrap14
(pFun)&dummy_ISR, // vector_47 Vtrap15
(pFun)&dummy_ISR, // vector_48 VReserved48
(pFun)&dummy_ISR, // vector_49 VReserved49
(pFun)&dummy_ISR, // vector_50 VReserved50
(pFun)&dummy_ISR, // vector_51 VReserved51
(pFun)&dummy_ISR, // vector_52 VReserved52
(pFun)&dummy_ISR, // vector_53 VReserved53
(pFun)&dummy_ISR, // vector_54 VReserved54
(pFun)&dummy_ISR, // vector_55 VReserved55
(pFun)&dummy_ISR, // vector_56 VReserved56
(pFun)&dummy_ISR, // vector_57 VReserved57
(pFun)&dummy_ISR, // vector_58 VReserved58
(pFun)&dummy_ISR, // vector_59 VReserved59
(pFun)&dummy_ISR, // vector_60 VReserved60
(pFun)&dummy_ISR, // vector_61 Vunsinstr
(pFun)&dummy_ISR, // vector_62 VReserved62
(pFun)&dummy_ISR, // vector_63 VReserved63
(pFun)&IRQ_ISR, // vector_64 Virq
(pFun)&dummy_ISR, // vector_65 Vlvd
(pFun)&dummy_ISR, // vector_66 Vlol
(pFun)&dummy_ISR, // vector_67 Vspi1
(pFun)&dummy_ISR, // vector_68 Vspi2
(pFun)&dummy_ISR, // vector_69 Vusb
(pFun)&dummy_ISR, // vector_70 VReserved70
(pFun)&dummy_ISR, // vector_71 Vtpm1ch0
(pFun)&dummy_ISR, // vector_72 Vtpm1ch1
(pFun)&dummy_ISR, // vector_73 Vtpm1ch2
(pFun)&dummy_ISR, // vector_74 Vtpm1ch3
(pFun)&dummy_ISR, // vector_75 Vtpm1ch4
(pFun)&dummy_ISR, // vector_76 Vtpm1ch5
(pFun)&dummy_ISR, // vector_77 Vtpm1ovf
(pFun)&dummy_ISR, // vector_78 Vtpm2ch0
(pFun)&dummy_ISR, // vector_79 Vtpm2ch1
(pFun)&dummy_ISR, // vector_80 Vtpm2ovf
(pFun)&dummy_ISR, // vector_81 Vsci1err
(pFun)&dummy_ISR, // vector_82 Vsci1rx
(pFun)&dummy_ISR, // vector_83 Vsci1tx
(pFun)&dummy_ISR, // vector_84 Vsci2err
(pFun)&dummy_ISR, // vector_85 Vsci2rx
(pFun)&dummy_ISR, // vector_86 Vsci2tx
(pFun)&KBI_ISR, // vector_87 Vkeyboard
(pFun)&dummy_ISR, // vector_88 Vadc
(pFun)&dummy_ISR, // vector_89 Vacmpx
(pFun)&IIC1_ISR, // vector_90 Viic1x
(pFun)&dummy_ISR, // vector_91 Vrtc
(pFun)&dummy_ISR, // vector_92 Viic2x
(pFun)&dummy_ISR, // vector_93 Vcmt
(pFun)&dummy_ISR, // vector_94 Vcanwu
(pFun)&dummy_ISR, // vector_95 Vcanerr
(pFun)&dummy_ISR, // vector_96 Vcanrx
(pFun)&dummy_ISR, // vector_97 Vcantx
(pFun)&dummy_ISR, // vector_98 Vrnga
(pFun)&dummy_ISR, // vector_99 VReserved99
(pFun)&dummy_ISR, // vector_100 VReserved100
(pFun)&dummy_ISR, // vector_101 VReserved101
(pFun)&dummy_ISR, // vector_102 VReserved102
(pFun)&dummy_ISR, // vector_103 VReserved103
(pFun)&dummy_ISR, // vector_104 VL7swi
(pFun)&dummy_ISR, // vector_105 VL6swi
(pFun)&dummy_ISR, // vector_106 VL5swi
(pFun)&dummy_ISR, // vector_107 VL4swi
(pFun)&dummy_ISR, // vector_108 VL3swi
(pFun)&dummy_ISR, // vector_109 VL2swi
(pFun)&dummy_ISR, // vector_110 VL1swi
};
void (* const _UserEntry[])()@0x000011C0=
{
0x4E714EF9, //asm NOP(0x4E71), asm JMP(0x4EF9)
_startup,
};
/*********************************************************/
void main(void)
{
/*********************************************************/
dword *pdst,*psrc;
byte i;
asm (move.l #0x00800000,d0);
asm (movec d0,vbr);
pdst=(dword)0x00800000;
psrc=(dword)&RAM_vector;
for (i=0;i<111;i++,pdst++,psrc++)
{
*pdst=*psrc;
}
/*********************************************************/
SOPT1 = 0xC0; // enable COP, 1024 ms if COPCLKS = 0
//SOPT1 = 0x00; // disable COP
SOPT2 = 0x00; // COPCLKS =0
/*********************************************************/
MCGC2 = 0x36;
while(!(MCGSC & 0x02)){}; //wait for the OSC stable
MCGC1 = 0x98;
while((MCGSC & 0x1C )!= 0x08){}; // external clock is selected
MCGC3 = 0x48;
while ((MCGSC & 0x48) != 0x48){}; //wait for the PLL is locked
MCGC1 = 0x18;
while((MCGSC & 0x6C) != 0x6C){};
/**********************************************************/
PTFDD_PTFDD4 = 1;
TPM2SC = 0x08; //TMP2CHO, PWM MODE, 2.5 Khz
TPM2C0SC = 0x28;
TPM2MODL = 0xE0;
TPM2MODH = 0x2E;
TPM2C0VL = 0x70; //Pulse width: 50%
TPM2C0VH = 0x17;
/**********************************************************/
//TPM1MODH = 0x02;
//TPM1MODL = 0xDC; //TPM1 Timer Overflow period = 0.125sec
TPM1MODH = 0x05;
TPM1MODL = 0xB8; //TPM1 Timer Overflow period = 0.25sec
//TPM1MODH = 0x0B;
//TPM1MODL = 0x71; //TPM1 Timer Overflow period = 0.5sec
//TPM1MODH = 0x16;
//TPM1MODL = 0xE3; //TPM1 Timer Overflow period = 1sec
//TPM1MODH = 0x72;
//TPM1MODL = 0x70; //TPM1 Timer Overflow period = 5sec
/***********************************************************/
//ADC Low speed, Bus Clock.
ADCCFG = 0xF4; //Divide ratio:8, 12bit conversion.
ADCSC2 = 0x00; //Software trigger
//Compare functio disable
/***********************************************************/
IIC1C1_IICEN = 1; //Enable I2C
IIC1C1_IICIE =1; //IIC Interrupt Enable
IIC1C1_TXAK = 1; //Transmit Acknowledge Enable
IIC1C1_MST = 0; //Slave mod actually
IIC1F = 0x1F; //I2C baud rate: 100000 bps
IIC1S_SRW = 0; //R/W bit = 0
/***********************************************************/
IRQSC = 0x56; //Interrup pin request enable
//Falling edge only, pull up disable
/***********************************************************/
PTGPE = 0x0F; //Internal pull-up enable
KBI1PE = 0xC3; //KBI1P0,KBI1P1,KBI1P6,KBI1P7 enable
KBI1SC_KBIMOD = 0; //KBI1Px pins detect edges only
KBI1ES = 0x00; //A pull-up device is connected
KBI1SC_KBACK = 1; //KBI1 Interrupt acknowledge
KBI1SC_KBIE = 1; //KBI1 Interrupt request enable
/***********************************************************/
_LCD_LED = 1;
LCD_LED = 1;
MCGC1_IRCLKEN = 1;
_CMD_AIR_COND = 1;
CMD_AIR_COND = 1;
_FAN1_ALARM = 1;
FAN1_ALARM = 1;
_FAN2_ALARM = 1;
FAN2_ALARM = 1;
_HIGH_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
_LOW_TEMP_ALARM = 1;
LOW_TEMP_ALARM = 1;
_CMD_CONVECTOR = 1;
CMD_CONVECTOR = 1;
delay(20);
CMD_AIR_COND = 0;
FAN1_ALARM = 0;
FAN2_ALARM = 0;
HIGH_TEMP_ALARM = 1;
LOW_TEMP_ALARM = 1;
CMD_CONVECTOR = 0;
_FIRE = 0;
_INTRUSION = 0;
_AC_FAIL = 0;
_SELECT1 = 1;
_SELECT2 = 1;
SELECT1 = 0;
SELECT2 = 0;
RTCMOD = 0x00;
__RESET_WATCHDOG();
EnableInterrupts;
WR_Data[0] = DS1337_CLEAR_STATUS_VAL;
DS1337_write_block(DS1337_STATUS_REG, 1);
rtc_delay(DELAY2);
DS1337_init();
lcd_init();
lcd_line(1);
TPM1SC = 0x17;
while(1)
{
while(!TPM1SC_TOF){
}
__RESET_WATCHDOG();
if(KBI_TIMEOUT)
{
KBI_TIMEOUT–;
}
else
{
KBI_STATUS = KBI_IDLE;
}
TPM1SC_TOF = 0;
if(AC_FAIL == 0)
{
AC_FAIL_FLAG = 0xFF;
time_out_count = 0x00FF;
CMD_CONVECTOR = 0;
CMD_AIR_COND = 0;
}
else
{
if(time_out_count > 0)
{
time_out_count–;
}
else
{
AC_FAIL_FLAG = 0x00;
}
}
switch(time_slot)
{
case 0:
{
time_slot++;
if(!KBI_STATUS)
{
if(COOLING_MODE)
{
lcd_ram_address(2,14);
LCD_DATA = 'C';
data_enable();
LCD_DATA = 'M';
data_enable();
}
else if(HEATING_MODE)
{
lcd_ram_address(2,14);
LCD_DATA = 'H';
data_enable();
LCD_DATA = 'M';
data_enable();
}
else
{
switch(FAN_MODE)
{
case 0:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '0';
data_enable();
break;
}
case 1:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '1';
data_enable();
break;
}
case 2:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '2';
data_enable();
break;
}
case 3:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '3';
data_enable();
break;
}
case 4:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '4';
data_enable();
break;
}
case 5:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '5';
data_enable();
break;
}
case 6:
{
lcd_ram_address(2,14);
LCD_DATA = 'V';
data_enable();
LCD_DATA = '6';
data_enable();
break;
}
}
}
}
break;
}
case 1:
{
time_slot++;
if(SET_DATETIME_FLAG)
{
print_datetime();
DS1337_set_datetime(&SYS_DATE_TIME);
rtc_delay(DELAY2);
rtc_delay(DELAY2);
rtc_delay(DELAY2);
SET_DATETIME_FLAG = 0;
}
break;
}
case 2:
{
time_slot++;
break;
}
case 3:
{
time_slot++;
if(READ_DATETIME_FLAG == 1)
{
if(!KBI_STATUS)
{
DS1337_read_datetime(&SYS_DATE_TIME);
rtc_delay(DELAY2);
rtc_delay(DELAY2);
rtc_delay(DELAY2);
}
WR_Data[0] = DS1337_CLEAR_STATUS_VAL;
DS1337_write_block(DS1337_STATUS_REG, 1);
READ_DATETIME_FLAG = 0;
}
if(!KBI_STATUS)
{
print_datetime();
}
break;
}
case 4:
{
time_slot++;
temp1_adc = read_adc(SENSOR_TEMP_1);
temp2_adc = read_adc(SENSOR_TEMP_2);
temp3_adc = read_adc(SENSOR_TEMP_3);
temp4_adc = read_adc(SENSOR_TEMP_4);
temperature1 = temp(temp1_adc, &KTY81[0]);
temperature2 = temp(temp2_adc, &KTY81[0]);
temperature3 = temp(temp3_adc, &KTY81[0]);
temperature4 = temp(temp4_adc, &KTY81[0]);
SENSOR_STATUS = temp_test(temperature1,temperature2);
sensor_select();
break;
}
case 5:
{
time_slot++;
if(!KBI_STATUS)
{
switch(display_index)
{
case 0: {
battery_voltage = read_adc(ANALOG_TEST);
lcd_line(2);
lcd_print(&STRING1[0]);
print_temp(temperature1);
display_index++;
SELECT1 = 1;
SELECT2 = 1;
break;}
case 1: {
output_voltage = read_adc(ANALOG_TEST);
lcd_line(2);
lcd_print(&STRING2[0]);
print_temp(temperature2);
display_index++;
SELECT1 = 1;
SELECT2 = 0;
break;}
case 2: {
cs1_voltage = read_adc(ANALOG_TEST);
lcd_line(2);
lcd_print(&STRING3[0]);
print_temp(temperature3);
display_index++;
SELECT1 = 0;
SELECT2 = 1;
break;}
case 3: {
cs2_voltage = read_adc(ANALOG_TEST);
lcd_line(2);
lcd_print(&STRING4[0]);
print_temp(temperature4);
display_index = 0;
SELECT1 = 0;
SELECT2 = 0;
break;}
}
}
break;
}
case 6:
{
time_slot++;
break;
}
case 7:
{
time_slot = 0;
break;
}
}
}
}
/************************************************************
Functia, read_adc, citeste rezultatul conversiei analog-digitale a tensiunii
de la intrarea canalului analogic selectat (channel).Conversia se realizeaza
pe 12 biti iar rezultatul este reprezentat pe 16 biti.
************************************************************/
unsigned short read_adc(unsigned char channel)
{
unsigned char high_value,low_value;
ADCSC1 = channel;
while(!ADCSC1_COCO){
}
high_value = ADCRH;
low_value = ADCRL;
ADCSC1 = 0x1F;
return((high_value<<8)|low_value);
/************************************************************
Functia, temp, are doi parametrii de intrare:
1 – temp_adc care se asigneaza in momentul apelului cu rezultatul functiei
read_adc;
2 – *addr este un pointer care se asigneaza in momentul apelului cu adresa de
inceput a tabelului KTY81[].
Tabelul KTY81[] contine valorile precalculate ale conversiilor analog-digitale
pentru senzorul PHILIPS, KTY81-110.Conform specificatiilor senzorului,tabelul
contine valorile pentru temperaturile din grad in grad de la -55 grade Celsius
pana la +150 grade Celsius.
Formula de calcul pentru valorile din tabel este: CODE(t) = 4095*Rt/(1000+Rt)
unde Rt este rezistenta termistorului la temperatura t.
Rezultatul functiei este o valoare binara reprezentata pe 16 biti ce are
urmatoarele semnificatii:
1 – daca valoarea temperaturii este pozitiva dar mai mica sau egala cu 150
grade Celsius octetul de rang superior este egal cu 0x00, iar octetul de rang
inferior contine valorea temperaturii exprimata in grade Celsius.
2 – daca valoarea temperaturii este negativa dar mai mare sau egala cu -55
grade Celsius octetul de rang superior este egal cu 0xAA, iar octetul de rang
inferior contine modulul temperaturii exprimata in grade Celsius.
3 – daca valoarea temperaturii este in afara domeniului de valori continute in
tabelul KTY81[], atunci rezultatul functiei este egal cu 0xFFFF.
************************************************************/
unsigned short temp(unsigned short temp_adc, const unsigned short *addr)
{
unsigned char high_value,low_value;
unsigned short index = 0;
while(temp_adc < 1356 || temp_adc > 2828)
{
high_value = 0xFF;
low_value = 0xFF;
return((high_value<<8)|low_value);
}
while((temp_adc > *addr) && (temp_adc >= 1356) && (temp_adc <= 2828))
{
addr++;
index++;
}
index =index – 1;
if(index >= 55)
{
high_value = 0x00;
low_value = index – 55;
}
else
{
high_value = 0xAA;
low_value = 55 – index;
}
return((high_value<<8)|low_value);
}
/***********************************************************
Functia, temp_test, are doi parametrii de intrare,t1 si t2, care se asigneaza
in momentul apelului cu variabilele:temperature1 respectiv temperature2.
Rezultatul functiei temp_test este un octet fara semn care,functie de valoarea
parametrilor de intrare,are patru valori posibile:
– 0xFF cand t1 si t2 sunt in afara domeniului de temperaturi admise pentru
senzorii de temperatura folositi (KTY81-110);
– 0xAA cand t1 si t2 au valori negative ;
– 0x01 cand t1 si t2 au valori pozitive si t1 >= t2;
– 0x02 cand t1 si t2 au valori pozitive si t1 < t2.
Rezultatul functiei temp_test se transmite variabilei SENSOR_STATUS:
SENSOR_STATUS = temp_test(temperature1,temperature2);
************************************************************/
unsigned char temp_test(unsigned short t1,unsigned short t2)
{
unsigned short t1h,t2h;
t1h = t1 & 0xFF00;
t2h = t2 & 0xFF00;
if(t1h == 0xAA00 && t2h == 0xAA00)
return(0xAA);
if(t1h == 0xAA00 && t2 == 0xFFFF)
return(0xAA);
if(t1 == 0xFFFF && t2h == 0xAA00)
return(0xAA);
if(t1 == 0xFFFF && t2 == 0xFFFF)
return(0xFF);
if(t1 < 256 && t2 >= 256)
return(0x01);
if(t1 >= 256 && t2 < 256)
return(0x02);
if(t1 < 256 && t2 < 256 && t1 >= t2)
return(0x01);
if(t1 < 256 && t2 < 256 && t1 < t2)
return(0x02);
}
/***********************************************************
Functia sensor_select este apelata o singura data in intervalul temporal 4,
(time_slot 4): sensor_select();
Aceasta functie analizeaza variabila SENSOR_STATUS si functie de valoarea
acesteia modifica stare variabilelor globale prin care se realizeaza
climatizarea, adica ventilatia, racirea sau incalzirea precum si alarmele.
************************************************************/
void sensor_select(void)
{
switch(SENSOR_STATUS)
{
case 0xFF:
{
LOW_TEMP_ALARM = 0;
HIGH_TEMP_ALARM = 0;
TPM2C0VL = 0x20;
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
break;
}
case 0xAA:
{
if(AC_FAIL_FLAG == 0x00)
{
CMD_CONVECTOR = 1;
}
else
{
CMD_CONVECTOR = 0;
}
LOW_TEMP_ALARM = 0;
HIGH_TEMP_ALARM = 1;
HEATING_MODE = 1;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
break;
}
case 0x01:
{
climatize(temperature1);
break;
}
case 0x02:
{
climatize(temperature2);
break;
}
}
}
/***********************************************************/
void climatize(unsigned short t)
{
// (4). t >= 18 && t < 25
if(t >= 18 && t < 25)
{
HEATING_MODE = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP = 90;
}
// (5). t >= 25 && t <= 30
else if(t >= 25 && t <= 30)
{
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP = 90;
switch(t)
{
case 25:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0xB0; //Pulse width: 10%
TPM2C0VH = 0x04;
FAN_MODE = 0x01; //V1
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
} else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0xB0; //Pulse width: 10%
TPM2C0VH = 0x04;
FAN_MODE = 0x01;
}
break;
}
case 26:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0x60; //Pulse width: 20%
TPM2C0VH = 0x09;
FAN_MODE = 0x02; //V2
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
} else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF) {
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x60; //Pulse width: 20%
TPM2C0VH = 0x09;
FAN_MODE = 0x02;
}
break;
}
case 27:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0x10; //Pulse width: 30%
TPM2C0VH = 0x0E;
FAN_MODE = 0x03;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x10; //Pulse width: 30%
TPM2C0VH = 0x0E;
FAN_MODE = 0x03;
}
break;
}
case 28:
{
if(COOLING_MODE == 0) {
TPM2C0VL = 0xC0; //Pulse width: 40%
TPM2C0VH = 0x12;
FAN_MODE = 0x04;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0xC0; //Pulse width: 40%
TPM2C0VH = 0x12;
FAN_MODE = 0x04;
}
break;
}
case 29:
{
if(COOLING_MODE == 0){
TPM2C0VL = 0x70; //Pulse width: 50%
TPM2C0VH = 0x17;
FAN_MODE = 0x05;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x70; //Pulse width: 50%
TPM2C0VH = 0x17;
FAN_MODE = 0x05;
}
break;
}
case 30:
{
if(COOLING_MODE == 0) {
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0x00){
CMD_AIR_COND = 1;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
}else if(COOLING_MODE == 1 && AC_FAIL_FLAG == 0xFF){
CMD_AIR_COND = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
}
break;
}
}
}
// (6). t > 30 && t <= 35
else if(t > 30 && t <= 35 && AC_FAIL_FLAG == 0x00)
{
if(DELAY_AC_STARTUP && !COOLING_MODE)
{
COOLING_MODE = 0;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP–;
}
else
{
COOLING_MODE = 1;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
}
}
else if(t > 30 && t <= 35 && AC_FAIL_FLAG == 0xFF)
{
COOLING_MODE = 0;
CMD_AIR_COND = 0;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
DELAY_AC_STOP = 450;
DELAY_AC_STARTUP = 90;
}
// (7). t > 35 ºC
else if(t > 35 && AC_FAIL_FLAG == 0x00)
{
if(DELAY_AC_STARTUP > 0 && DELAY_AC_STOP > 0 && !COOLING_MODE)
{
COOLING_MODE = 0;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
DELAY_AC_STOP–;
DELAY_AC_STARTUP–;
}
else if(DELAY_AC_STOP > 0)
{
COOLING_MODE = 1;
CMD_AIR_COND = 1;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x10; //Pulse width: 30%
TPM2C0VH = 0x0E;
FAN_MODE = 0x03;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
DELAY_AC_STOP–;
}
else
{
COOLING_MODE = 0;
CMD_AIR_COND = 0;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
}
}
else if(t > 35 && AC_FAIL_FLAG == 0xFF)
{
COOLING_MODE = 0;
CMD_AIR_COND = 0;
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
TPM2C0VL = 0x20; //Pulse width: 60%
TPM2C0VH = 0x1C;
FAN_MODE = 0x06;
HIGH_TEMP_ALARM = 0;
LOW_TEMP_ALARM = 1;
/***********************************************************/
// (3). t >= 15 && t < 18
else if(t >= 15 && t < 18 && AC_FAIL_FLAG == 0x00) // retea 220V prezenta
{
if(HEATING_MODE ==1)
{
CMD_CONVECTOR = 1;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
else
{
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
}
else if(t >= 15 && t < 18 && AC_FAIL_FLAG == 0xFF)
{
HEATING_MODE = 0;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
/**********************************************************/
// (2). t < 15 && t > 5
else if(t < 15 && t > 5 && AC_FAIL_FLAG == 0x00) // retea 220V prezenta
{
HEATING_MODE = 1;
CMD_CONVECTOR = 1; // Se comanda convectorul
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
else if(t < 15 && t > 5 && AC_FAIL_FLAG == 0xFF) // retea 220V absenta
{
HEATING_MODE = 1;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 1;
HIGH_TEMP_ALARM = 1;
}
/**********************************************************/
// (1). t <= 5
else if(t <= 5 && AC_FAIL_FLAG == 0x00) // retea 220V prezenta
{
HEATING_MODE = 1;
CMD_CONVECTOR = 1; // Se comanda convectorul
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 0; // Se activeaza alarma de temperatura scazuta
HIGH_TEMP_ALARM = 1;
}
else if(t <= 5 && AC_FAIL_FLAG == 0xFF) // retea 220V absenta
{
HEATING_MODE = 1;
CMD_CONVECTOR = 0;
COOLING_MODE = 0;
CMD_AIR_COND = 0;
TPM2C0VL = 0x00; //Pulse width: 0%
TPM2C0VH = 0x00;
FAN_MODE = 0x00;
LOW_TEMP_ALARM = 0; // Se activeaza alarma de temperatura scazuta
HIGH_TEMP_ALARM = 1;
}
}
/**********************************************************/
void lcd_print_byte(unsigned char data)
{
unsigned char STRING_DT[3];
uchar_to_ascii(data, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
}
/**********************************************************/
void print_temp(unsigned short temperature)
{
unsigned short module_temp;
unsigned char STRING_T[4];
if(temperature == 0xFFFF)
{
lcd_print(&STRING5[0]);
}
else
{
if(temperature > 255)
{
LCD_DATA = '-';
data_enable();
module_temp = temperature & 0x00FF;
int_to_ascii(module_temp, &STRING_T[0]);
lcd_print(&STRING_T[0]);
lcd_print(&STRING6[0]);
}
else
{
LCD_DATA = '+';
data_enable();
module_temp = temperature & 0x00FF;
int_to_ascii(module_temp, &STRING_T[0]);
lcd_print(&STRING_T[0]);
lcd_print(&STRING6[0]);
}
}
}
/**********************************************************/
void print_datetime(void)
{
unsigned char STRING_DT[3];
lcd_line(1);
uchar_to_ascii(SYS_DATE_TIME.date, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
LCD_DATA = '.';
data_enable();
uchar_to_ascii(SYS_DATE_TIME.month, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
LCD_DATA = '.';
data_enable();
uchar_to_ascii(SYS_DATE_TIME.year, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
LCD_DATA = ' ';
data_enable();
LCD_DATA = ' ';
data_enable();
LCD_DATA = ' ';
data_enable();
uchar_to_ascii(SYS_DATE_TIME.hours, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
LCD_DATA = ':';
data_enable();
uchar_to_ascii(SYS_DATE_TIME.minutes, &STRING_DT[0]);
lcd_print(&STRING_DT[0]);
}
/*********************************************************/
void int_to_ascii(unsigned short module, char *addr)
{
unsigned char i;
addr = addr + 3;
*addr = '\0';
addr–;
for(i = 0; i <= 2; i++)
{
*addr = (module%10) + 0x30;
module = module/10;
addr–;
}
}
/**********************************************************/
void uchar_to_ascii(unsigned char value, char *addr)
{
unsigned char i;
addr = addr + 2;
*addr = '\0';
addr–;
for(i = 0; i <= 1; i++)
{
*addr = (value%10) + 0x30;
value = value/10;
addr–;
}
}
/*********************************************************/
void lcd_print(char *addr)
{
while(*addr != '\0')
{
LCD_DATA = *addr;
data_enable();
addr++;
}
}
/**********************************************************/
void data_enable(void)
{
ENABLE = 1;
rtc_delay(DELAY1);
ENABLE = 0;
rtc_delay(DELAY1);
}
/**********************************************************/
void lcd_init(void)
{
_RS = 1;
_RW = 1;
_ENABLE = 1;
_LCD_DATA = 0xFF;
unsigned int i;
for (i = 0; i<10; i++)
{
rtc_delay(DELAY2);
}
RS = 0;
RW = 0;
ENABLE = 0;
LCD_DATA = LCD_INTERFACE;
data_enable();
LCD_DATA = ON_OFF_CONTROL;
data_enable();
LCD_DATA = CLEAR_LCD;
data_enable();
rtc_delay(DELAY2);
LCD_DATA = CURSOR_INC;
data_enable();
}
/**********************************************************/
void lcd_line(unsigned int i)
{
if (i==1) {
RS = 0;
RW = 0;
LCD_DATA = 0x80;
data_enable();
RS = 1;
}
else
{
RS = 0;
RW = 0;
LCD_DATA = 0xC0;
data_enable();
RS=1;
}
}
/**********************************************************/
void lcd_ram_address(unsigned int i,unsigned int j)
{
if (i==1) {
RS = 0;
RW = 0;
LCD_DATA = j+128;
data_enable();
RS = 1;
}
else
{
RS = 0;
RW = 0;
LCD_DATA = j+192;
data_enable();
RS=1;
}
}
/**********************************************************/
void interrupt VectorNumber_Virq IRQ_ISR(void)
{
IRQSC_IRQACK = 1;
READ_DATETIME_FLAG = 1;
}
/**********************************************************/
void rtc_delay(unsigned char DELAY) {
RTCSC = DELAY;
while(!RTCSC_RTIF) {
}
RTCSC_RTIF = 1;
}
/**********************************************************/
void delay(unsigned char n)
{
unsigned char i;
for(i=1; i<=n; i++)
{
rtc_delay(DELAY3);
}
}
/*********************************************************/
void interrupt VectorNumber_Vkeyboard KBI_ISR(void)
{
KBI1SC_KBACK = 1; /* Clear the KBI interrupt flag */
KBI_TIMEOUT = 0x28; /* KBI timeout is 10 sec. */
switch(KBI_STATUS)
{
case KBI_IDLE:
{
if(!SET_TIME)
{
KBI_STATUS = KBI_HOURS ;
lcd_line(1);
lcd_print(&STRING7[0]);
KBI_REG = SYS_DATE_TIME.hours;
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!SET_DATE)
{
KBI_STATUS = KBI_DATE;
lcd_line(1);
lcd_print(&STRING9[0]);
KBI_REG = SYS_DATE_TIME.date;
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_HOURS :
{
if(!SET_TIME)
{
KBI_STATUS = KBI_MINUTES;
SYS_DATE_TIME.hours = KBI_REG;
KBI_REG = SYS_DATE_TIME.minutes;
lcd_line(1);
lcd_print(&STRING8[0]);
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!DOWN)
{
if(!KBI_REG)
{
KBI_REG = 23;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 23)
{
KBI_REG = 0;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_MINUTES :
{
if(!SET_TIME)
{
SYS_DATE_TIME.minutes = KBI_REG;
SYS_DATE_TIME.seconds = 0x00;
SET_DATETIME_FLAG = 0xFF;
print_datetime();
break;
}
else if(!DOWN)
{
if(!KBI_REG)
{
KBI_REG = 59;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 59)
{
KBI_REG = 0;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_DATE :
{
if(!SET_DATE)
{
KBI_STATUS = KBI_MONTH;
SYS_DATE_TIME.date = KBI_REG;
KBI_REG = SYS_DATE_TIME.month;
lcd_line(1);
lcd_print(&STRING10[0]);
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!DOWN)
{
if(KBI_REG == 1)
{
KBI_REG = 31;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 31)
{
KBI_REG = 1;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_MONTH :
{
if(!SET_DATE)
{
KBI_STATUS = KBI_YEAR;
SYS_DATE_TIME.month = KBI_REG;
KBI_REG = SYS_DATE_TIME.year;
lcd_line(1);
lcd_print(&STRING11[0]);
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!DOWN)
{
if(KBI_REG == 1)
{
KBI_REG = 12;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 12)
{
KBI_REG = 1;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_YEAR :
{
if(!SET_DATE)
{
KBI_STATUS = KBI_DAY;
SYS_DATE_TIME.year = KBI_REG;
KBI_REG = SYS_DATE_TIME.day;
lcd_line(1);
lcd_print(&STRING12[0]);
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!DOWN)
{
if(KBI_REG == 0)
{
KBI_REG = 99;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 99)
{
KBI_REG = 0;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
case KBI_DAY :
{
if(!SET_DATE)
{
//KBI_STATUS = KBI_IDLE;
SYS_DATE_TIME.day = KBI_REG;
SET_DATETIME_FLAG = 0xFF;
print_datetime();
break;
}
else if(!DOWN)
{
if(KBI_REG == 0)
{
KBI_REG = 6;
}
else
{
KBI_REG–;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else if(!UP)
{
if(KBI_REG == 6)
{
KBI_REG = 0;
}
else
{
KBI_REG++;
}
lcd_ram_address(1,8);
lcd_print_byte(KBI_REG);
break;
}
else
{
break;
}
}
}
}
/********************************************************/
Anexa 2. Caracteristica de temperatură a senzorului KTY 81-110
Anexa 3
Schema electrica SMC-01
Anexa 4 Lista de materiale
Item Quantity Reference Part PCB Footprint
1 1 BT1 BATTERY HOLDER HOLDER
2 1 C1 47uF/63V CYL/D.300/LS.200/.034
3 1 C2 100nF/63V SM/C_1206
4 6 C3,C4,C12,C18,C24,C47 10uF/16V CYL/D.200/LS.100/.031
5 18 C5,C6,C7,C8,C11,C13,C14, 100nF SM/C_1206
C15,C16,C17,C19,C25,C38,
C41,C43,C45,C46,C57
6 2 C10,C9 18pF SM/C_1206
7 16 C20,C21,C22,C23,C26,C27, 10nF SM/C_1206
C28,C29,C30,C31,C32,C50,
C51,C52,C53,C56
8 1 C33 2.2nF SM/C_1206
9 4 C34,C37,C39,C40 1nF SM/C_1206
10 3 C35,C36,C44 100uF/63V CYL/D.400/LS.200/.034
11 1 C42 47uF/25V CYL/D.200/LS.100/.031
12 2 C54,C55 10uF SM/C_1206
13 1 D1 S1G SM/DO214AC_12
14 2 D3,D2 SMAJ12CA SM/DO214AC_12
15 4 D4,D5,D6,D7 BAV99LT SM/SOT23_123
16 6 D8,D9,D10,D11,D12,D13 BAS21 SM/SOT23_123
17 1 D14 1N5231 DAX2/DO35
18 1 D15 1N5242 DAX2/DO35
19 1 D16 BYV27-200 DAX1/DO41
20 1 D17 S3G SM/DO214AB_12
21 2 F1,F12 SF-1206S100 SM/L_1206
22 10 F2,F3,F4,F5,F6,F7,F8,F9, SF-1206F050 SM/L_1206
F10,F11
23 2 JH1,JH2 HEADER 36 HEADER 36
Item Quantity Reference Part PCB Footprint
24 11 JP1,JP5,JP6,JP7,JP8,JP9, DG15R-3.5 2P DG15-3.5 2P
JP10,JP11,JP12,JP19,JP20
25 1 JP2 HEADER 3X2 HEADER 3X2
26 1 JP3 USB-MINI USB 5 MINI SMD
27 1 JP4 HEADER 2×2 HEADER 2×2
28 6 JP13,JP14,JP15,JP16,JP17, DG15 3.5 3P DG15-3.5 3P
JP18
29 2 JS1,JS2 HEADER 5 HEADER 5
30 6 K1,,K3,K4,K5,K6 NA05WK NA05WK
31 1 LED1 HSMC-C680 HSMC-C680
32 6 LED2,LED3,LED4,LED5,LED6, KP-3216EC SM/D_1206_21
LED7
33 2 L1,L4 22uH AX/.600X.200/.037
34 1 L2 10uH AX/.500X.175/.037
35 2 L5,L3 150uH B82477P4
36 1 M1 IRFU120 TO-251AA
37 1 P1 DB9 DSUB/RS.318/TM/9
38 10 Q1,Q2,Q3,Q4,Q5,Q6,Q9,Q10, BC817-40L SM/SOT23_123
Q11,Q12
39 1 Q7 BC807/PLP SM/SOT23_123
40 1 Q8 MMBTA92L SM/SOT23_123
41 1 RV1 2.2k T93YAK
42 1 RV2 22k T93YAK
43 1 R1 1M SM/R_1206
44 18 R2,R3,R4,R5,R6,R7,R18, 10k SM/R_1206
R20,R22,R24,R32,R39,R50,
R66,R68,R70,R71,R72
45 2 R9,R8 33 SM/R_1206
46 2 R10,R41 4.7k SM/R_1206
Item Quantity Reference Part PCB Footprint
47 7 R11,R73,R74,R75,R76,R77, 560 SM/R_1206
R78
48 1 R12 1.5k SM/R_1206
49 6 R13,R14,R15,R16,R36,R79 1k SM/R_1206
50 5 R17,R19,R21,R23,R49 47k SM/R_1206
51 13 R25,R26,R27,R28,R29,R30, 2.2k SM/R_1206
R31,R35,R38,R40,R42,R67,
R69
52 4 R33,R34,R62,R65 100k SM/R_1206
53 2 R56,R37 220k SM/R_1206
54 3 R43,R51,R52 27k SM/R_1206
55 3 R44,R53,R54 1 AX/.450X.100/.031
56 1 R45 8.2k SM/R_1206
57 1 R46 10 SM/R_1206
58 2 R64,R47 220 SM/R_1206
59 1 R48 2k AX/.650X.200/.037
60 2 R55,R60 2.21k SM/R_1206
61 4 R57,R58,R59,R61 61.9k SM/R_1206
62 1 R63 90.1k SM/R_1206
63 2 R81,R80 0 SM/R_1206
64 5 SW1,SW2,SW3,SW4,SW5 TV-06C TV-06C
65 1 U1 MCF51JM64 QUAD.50M/64/WG12.60
66 1 U2 IZ4805SA IZ4805SA
67 1 U3 TS1117BCP33 TO252AA/DPAK
68 1 U4 DS1337 SOG.050/8/WG.244/L.200
69 1 U5 DEM16216SGH DEM16216SGH
70 1 U6 Micro SD CARD SOCKET
71 1 U7 MAX3232ECDG4 SOG.050/16/WG.244/L.400
Item Quantity Reference Part PCB Footprint
72 7 U8,U9,U10,U11,U12,U18, TLP181GR TLP181
U19
73 1 U13 LM258/SO SOG.050/8/WG.244/L.200
74 1 U14 UC2843BD1GSOG.050/8/WG.244/L.200
75 1 U15 HCNR201 DIP.100B/8/W.300/L.450
76 1 U16 TLV2371 TLV2371DBV
77 1 U17 CD4051 SOG.050/16/WG.244/L.400
78 1 U20 AT24C01 SOG.050/8/WG.244/L.200
79 1 U21 TLC272 SOG.050/8/WG.244/L.200
80 1 U22 TC7660 SOG.050/8/WG.244/L.200
81 1 Y1 12MHZ HC49-SMD
82 1 Y2 32.768KHz CRYSTAL
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: Sistem DE Monitorizare Si Control AL Parametrilor Ambientali DIN Spatiile Destinate Echipamentelor DE Telecomunicatii (ID: 163518)
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.
