Proiectarea Si Realizarea Unui Sistem Automat Pentru Reglarea Temperaturii Intr Un Cuptor de Reballing
Proiectarea si realizarea unui sistem automat pentru reglarea temperaturii intr-un cuptor de reballing
Lucrare de licenta
Contents
Capitolul 1. Introducere.
1.1 Obiectivul lucrarii
1.2 Scopul lucrarii
1.3 Contributia studentului
Capitolul 2. Prezentare teoretica
2.1 Microcontrollerul PIC16F877
2.1.1 Prezentare generala
2.1.2 Organizarea memoriei
2.1.3 Porturile I/O
2.1.4 Modulul oscilator (cu sistem de monitorizare a ceasului)
2.1.5 Modulele Timer
2.1.6 Modulul comparator
2.1.7 Transmitator Receptor Universal (AUSART)
2.1.8 Modulul de comanda al ecranului LCD
2.1.9 Convertorul analog – digital (Analog digital converter)
2.2 Convertor digital MAX 6675
2.2.1 Prezentare generala
2.2.2 Structura interna
2.2.3 Structura si semnificatia bitilor
2.2.4 Tehnici de imbunatatire a masurarii temperaturii
2.3 Afisajul cu cristale lichide (LCD) alphanumeric
2.3.1 Prezentare generala a afisajului LCD
2.3.2 Schema de conectare la microcontroller
2.3.3 Interfata LCD pe 8 biti sau pe 4 biti
2.3.4 Memoria contrlollerului LCD
2.3.5 Comenzi generale de control si afisare
2.4 Regulatorul PID
2.4.1 Prezentare generala a regulatorului PID
2.4.2 Tipuri de regulatoare
2.4.3 Banda de proportionalitate
2.4.4 Alegerea si acordarea regulatoarelor
2.5 Traductorul de temperatura de tip termocuplu K
2.5.1 Principii generale ale termocuplului de tip K
2.5.2 Alegerea elementului sensibil
2.5.3 Circuitul de masura a temperaturii
2.5.4 Tehnici de liniarizare a termocuplurilor
Capitolul 3. Proiectare software si realizare practica
3.1 Introducere
3.1.1 Principii generale
3.2 Descrierea schemei electrice
3.2.1 Semnificatia si functiile componentelor:
3.3 Descrierea algoritmului de calcul al comenzii elementelor de incalzire
3.3.1 Controlul de temperatura proportional
3.3.2 Controlul de temperatura integral
3.3.3 Controlul de temperatura derivativ
3.3.4 Iesirea sistemului de reglare
3.3.5 Diagrama logica a sistemului de reglare
3.3.6 Control cu timpi proportionali (TPC)
3.4 Masurarea temperaturii
3.4.1 Termocuplul FLUKE
3.4.2 Conectarea cu ADC-ul MAX6675
3.4.3 Citirea digitala a temperaturii
3.4.4 Elementul de comanda al elementelor de incalzire din process
3.4.5 Elementele de incalzire ale procesului
3.5 Prezentarea partii de afisare si meniul de functii
3.6 Programarea microcontrollerului
3.7 Constructie si reglaje
Introducere.
Cuptorul de reballing este folosit in aplicatii din domeniul electronicii si anume in repararea unor defecte de lipituri slabe, preincalzirea unor placi electronice in vederea detorsionarii acestora, pentru aplicarea de bilute din aliaj de lipit St60%,Pb40% pe chipseturile BGA cu ajutorul unor site denumite Direct Heating deoarece acestea raman aplicate pe chipul BGA pana la lipirea definitiva a bilutelor de aliaj.
Obiectivul lucrarii
Obiectivul acestui proiect este de a realiza un sistem de control al temperaturii in interiorul cuptorului de reballing folosind un algoritm PID implementat cu un microcontroler PIC , setarile regulatorului, etapele programului precum si temperaturile,setate, vor fi vizualizate pe un display alphanumeric de tip HD44780 cu 4 linii si 20 caractere pe linie. Setarile se vor putea modifica prin intermediul unor taste sageti sus, jos, stanga, dreapta, si tasta de selectie OK.
Scopul lucrarii
Pentru cerintele impuse de acest obiectiv am folosit microcontrolerul PIC16f877 , convertorul digital pentru termocupluri de tip K cu compensare jonctiunii reci MAX6675 ,releul de comanda tip SSR care executa alimentarea elementului de incalzire prin procedeul ON/OFF. Temperatura cuptorului este masurata cu un termocuplu tip K introdus in interiorul acestuia.
Sistemul va fi capabil sa mentina graficul de temperatura necesar operatiilor executate in functie de necesitati la o temperatura cat mai aproape de temperatura impusa in momenutul efectuarii operatiilor.
Contributia studentului
1. Proiectarea schemei electrice si electronice cat si simularea acesteia cu ajutorul programului Proteus.
2. Proiectarea cablajului cat si realizarea acestuia cu ajutorul programului Sprint Layout.
3. Proiectarea programului pentru sistemul de control a temperaturii si cel al afisarii pe dispozitivul alphanumeric, programarea microcontrolerlui a fost realizata folosind limbajul Basic si mediul de dezvoltare MicroCode Studio si compilatorul Mplab. Aplicatia calculeaza comanda necesara elementului de incalzire al cuptorului, pentru a atinge temperatura setata si afiseaza pe un ecran alfanumeric starile ciclului, temperatura si parametrii regulatorului pid cat si timpii de executie ai fiecarei stari din programul de reflow ales.
Prezentare teoretica
Microcontrollerul PIC16F877
PIC16F877 este un controller pe 8 biti cu memorie flash, construit in tehnologie CMOS si avand incorporat un circuit de comanda pentru LCD.
Prezentare generala
Procesor RISC de inalta performanta:
Foloseste doar 35 de instructiuni: toate instructiunile se executa intr-un singur ciclu cu exceptia instructiunilor de salt
Frecventa maxima de operare: 20 MHz
Posibilitate de citire a memoriei de program
Mai multe surse de intreruperi
Stiva hardware cu 8 nivele
Moduri de adresare: directa, indirecta si relativa
Caracteristici speciale ale microcontrolerului
Oscilator intern de mare precizie
Calibrat la ±1%
Frecventa de lucru poate fi selectata software intre 8MHz si 125 kHz
Detectia lipsei oscilatorului extern pentru aplicatiile critice
Schimbarea automata a sursei de ceas in timpul rularii programului pentru economisirea energiei
Oscilator intern de 31 kHz selectabil prin soft
Mod cu consum scazut de energie (Sleep mode)
Poate opera intr-un domeniu larg de tensiuni (2.0V – 5.5V)
Operare la temperaturi industriale
Resetare la alimentare (Power-on Reset)
Watchdog Timer cu activare software
Protectia codului de program
Celula Flash/EEPROM performanta:
Flash rezistent la 100.000 de scrieri
EEPROM rezistent la 1.000.000 de scrieri
Datele pot fi stocate mai mult de 40 ani
Caracteristici de economisire a energiei
Curent de Standby: < 100 nA la 2.0 V
Curent de functionare normala:
11 μA la 32 kHz si 2.0 V
220 μA la 4 MHz si 2.0 V
Curentul folosit de Watchdog Timer: 1 μA la 2.0 V
Periferice
Modul LCD:
Capacitate de a comanda pana la 96 de pixeli
Patru cai comune
Pana la 35 de pini I/O programabili individual
Programare seriala in circuit (ICSP) folosind 2 pini
Modul comparator analogic
Doua comparatoare analogice
Referinta interna de tensiune programabila
Intrarile si iesirile comparatoarele sunt accesibile din exterior
Convertor analog/digital: rezolutie de 10 biti si pana la 8 canale analogice
Timer0: timer/numarator pe 8 biti cu divizor programabil
Timer1:
Timer/numarator pe 16 biti cu divizor programabil
Posibilitatea de numarare a impulsurilor de pe un pin extern
Timer2: timer/numarator pe 8 biti cu divizor anterior si posterior
Rx TX Universal (AUSART)
Doua module CCP (Stocare, Comparare, PWM)
Stocare pe 16 biti, rezolutie de 12.5 ns
Comparare pe 16 biti, rezolutie de 200 ns
PWM pe 10 biti, frecventa maxima 20 kHz
Organizarea memoriei
Memoria de program
PIC16F877 are un numarator de program pe 13 biti capabil sa adreseze o memorie de program formata din 14 blocuri a cate 8K (0000h – 1FFFh). Vectorul de Reset se afla la adresa 0000h iar vectorul de intrerupere la adresa 0004h
Figura 2.1 Harta memoriei de program
Memoria de date
Memoria de date este impartita in mai multe bank-uri care contin registrele de uz general (GPR) si registrele pentru functii speciale (SFR). Bitii RP0 si RP1 sunt folositi pentru selectia bank-ului curent.
Tabelul 2.1 Selectia bank-ului de memorie.
Fiecare bank de memorie contine 128 octeti (0h – 7Fh). Locatiile inferioare ale fiecarui bank sunt rezervate pentru Registrele de Functii Speciale. Dupa SFR se gasesc registrele de uz general (GPR) implementate ca RAM static. Toate bank-urile de memorie contin registre de functii speciale. Unele registre de functii speciale des folosite sunt copiate in toate bank-urile de memorie pentru a permite accesul rapid si reducerea dimensiunii codului.
Fisierul de registre de uz general
PIC16F877 are un fisier de registre organizat ca 352 x 8 biti. Fiecare registru poate fi accesat direct sau indirect prin intermediul registrului de selectie (FSR)
Registrele de functii speciale
Registrele de functii speciale sunt registre folosite de procesor si de functiile periferice pentru a putea controla operatia intreprinsa. Aceste registre se afla in memoria SRAM. Aceste registre pot fi clasificate in doua categorii: nucleu si periferice.
Numaratorul de program si stiva
Numaratorul de program (PC) are o latime de 13 biti. Octetul inferior provine din registrul PCL, care poate fi scris si citit. Octetul superior, care contine ceilalti 5 biti ai numaratorului de program, nu poate fi accesat direct di provine din registrul PCLATH. La Reset numaratorul de program este sters.
In Figura 2.3 sunt ilustrate cele doua situatii in care numaratorul de program este incarcat. In partea superioara a figurii este ilustrat cazul scrierii in registrul PCL iar in partea inferioara este descrisa incarcarea numaratorului de program in timpul executarii unei instructiuni CALL sau GOTO.
Stiva
PIC16F877 are o stiva cu adancime de 8 nivele si o latime de 13 biti implementata hardware. Spatiul de memorie al stivei nu face parte nici din memoria de program, nici din memoria de date, iar Indicatorul de stiva nu poate fi citit sau scris. Numaratorul de program este scris in stiva atunci cand se executa o instructiune CALL sau atunci cand o intrerupere produce un salt. Numaratorul de program este scos din stiva atunci cand se intalneste o instructiune RETURN, RETLW sau RETFIE. PCLATH nu este afectat de operatiile de introducere sau scoatere din stiva.
Figura 2.2 Incarcarea numaratorului de program
Stiva se comporta ca o memorie circulara. Acest lucru inseamna ca dupa ce s-au introdus 8 elemente in stiva, a noua scriere in stiva va rescrie prima valoare introdusa.
Paginarea memoriei de program
PIC16F877 este capabil sa adreseze un bloc continuu de memorie de 8K. Instructiunile CALL si GOTO pun la dispozitie doar 11 biti de adresa pentru a permite saltul in interiorul oricarei pagini de memorie de program cu dimensiunea de 2K. La executia unei instructiuni CALL sau GOTO, cei mai semnificativi 2 biti ai adresei provin din bitii 4 si 3 ai registrului PCLATH. In timpul instructiunilor CALL sau GOTO, utilizatorul trebuie sa se asigure ca biti de selectare a paginii sunt configurati astfel incat sa se faca adresarea catre pagina de memorie de program dorita. In cazul executarii unei instructiuni de intoarcere dupa executarea instructiunii CALL sau dupa o rutina de intrerupere, intregul numarator de program de 13 biti este scos din stiva. Asadar, in acest caz, modificarea PCLATH<4:3> nu este necesara.
Adresarea indirecta, registrii INDF si FSR
Registrul INDF nu este un registru fizic. Adresarea indirecta este posibila prin folosirea registrului INDF. Orice instructiune care foloseste registrul INDF va accesa de fapt datele din locatia de memorie indicata de registrul de selectie FSR. Citirea valorii lui INDF va rezulta intr-o operatie nula (NOP).
Porturile I/O
Microcontrolerul PIC16F877 include 4 registre PORT pe 8 biti (PORTA, PORTB, PORTC, PORTD) si un registru PORT pe 4 biti (PORTE). Fiecarui registru PORT ii corespunde un registru TRIS care permite configurarea ca intrare sau iesire a portului respectiv.
Registrul ANSEL este folosit pentru a configura modul de intrare al unui pin I/O ca analogic. Setarea unui bit din ANSEL cu valoarea ‘1’ va determina functionarea acelei intrari in modul analogic iar orice citire digitala pe acel pin va avea ca raspuns valoarea ‘0’.
Starea bitilor registrului ANSEL nu are nici un efect asupra functiile digitale de iesire. Un pin care are bitul corespunator din registrul TRIS se scos din stiva atunci cand se intalneste o instructiune RETURN, RETLW sau RETFIE. PCLATH nu este afectat de operatiile de introducere sau scoatere din stiva.
Figura 2.2 Incarcarea numaratorului de program
Stiva se comporta ca o memorie circulara. Acest lucru inseamna ca dupa ce s-au introdus 8 elemente in stiva, a noua scriere in stiva va rescrie prima valoare introdusa.
Paginarea memoriei de program
PIC16F877 este capabil sa adreseze un bloc continuu de memorie de 8K. Instructiunile CALL si GOTO pun la dispozitie doar 11 biti de adresa pentru a permite saltul in interiorul oricarei pagini de memorie de program cu dimensiunea de 2K. La executia unei instructiuni CALL sau GOTO, cei mai semnificativi 2 biti ai adresei provin din bitii 4 si 3 ai registrului PCLATH. In timpul instructiunilor CALL sau GOTO, utilizatorul trebuie sa se asigure ca biti de selectare a paginii sunt configurati astfel incat sa se faca adresarea catre pagina de memorie de program dorita. In cazul executarii unei instructiuni de intoarcere dupa executarea instructiunii CALL sau dupa o rutina de intrerupere, intregul numarator de program de 13 biti este scos din stiva. Asadar, in acest caz, modificarea PCLATH<4:3> nu este necesara.
Adresarea indirecta, registrii INDF si FSR
Registrul INDF nu este un registru fizic. Adresarea indirecta este posibila prin folosirea registrului INDF. Orice instructiune care foloseste registrul INDF va accesa de fapt datele din locatia de memorie indicata de registrul de selectie FSR. Citirea valorii lui INDF va rezulta intr-o operatie nula (NOP).
Porturile I/O
Microcontrolerul PIC16F877 include 4 registre PORT pe 8 biti (PORTA, PORTB, PORTC, PORTD) si un registru PORT pe 4 biti (PORTE). Fiecarui registru PORT ii corespunde un registru TRIS care permite configurarea ca intrare sau iesire a portului respectiv.
Registrul ANSEL este folosit pentru a configura modul de intrare al unui pin I/O ca analogic. Setarea unui bit din ANSEL cu valoarea ‘1’ va determina functionarea acelei intrari in modul analogic iar orice citire digitala pe acel pin va avea ca raspuns valoarea ‘0’.
Starea bitilor registrului ANSEL nu are nici un efect asupra functiile digitale de iesire. Un pin care are bitul corespunator din registrul TRIS setat cu valoarea ‘1’ iar cel din registrul ANSEL setat cu valoarea ‘0’ va functiona ca iesire digitala dar modul de intrare va fi analogic. Acest lucru poate cauza un comportament neasteptat atunci cand se executa instructiuni de tip citire-modificare-scriere asupra acestui port.
Modulul oscilator (cu sistem de monitorizare a ceasului)
Modulul oscilator ofera o gama variata de surse de ceas si posibilitati de selectare permitand utilizarea microcontrolerului pentru diverse aplicatii avand o permormanta ridicata si un consum scazut de energie.
Sursele de ceas pot proveni de la oscilatoare externe, rezonatoare cu cristal de cuart, rezonatoare cermaice si circuite RC. In plus, ceasul de sistem poate fi configurat pentru a folosi unul dintre cele doua oscilatoare interne cu optiunea de a selecta frecventa prin software. Caracteristici ale acestui modul:
Sursa ceasului de sistem poate fi selectata prin software si poate fi interna sau externa
Pornirea ceasului de sistem se face in doua etape, minimalizand decalajul dintre pornirea oscilatorului extern si executia codului.
Modulul oscilator poate fi configurat intr-unul din cele opt moduri de ceas:
EC – pe pinul OSC2/CLKOUT external clock
LP –reducerea consumului de energie, 32 kHz
XT – rezonator ceramic sau cristal de cuart cu castig mediu
HS – rezonator ceramic sau cristal de cuart cu castig ridicat
RC – circuit RC extern cu iesire FOSC/4 pe pinul OSC2/CLKOUT
RCIO – pinul OSC2/CLKOUT external circuit
INTOSC – oscilator intern cu iesire FOSC/4 pe pinul OSC2 si I/O pe pinul OSC1/CLKIN
INTOSCIO – oscilator intern
Selectia sursei de ceas se face configurand bitii FOSC<2:0> din Registrul de Configurare (CONFIG). Ceasul intern poate fi generat de doua oscilatoare interne: HFINTOSC – oscilator calibrat de inalta frecventa si LFINTOSC – oscilator necalibrat de frecventa joasa.
Modulele Timer
Microcontrolerul PIC16F877 dispunde de 3 module Timer/Numarator care pot fi folosite in combinatie cu alte periferice disponibile pentru o gama larga de aplicatii.
Modulul Timer0
Timer0 este un timer/numarator pe 8 biti cu urmatoarele caracteristici:
Registru timer/counter pe 8 biti (TMR0)
Divizor anterior de frecventa pe 3 biti programabil
Sursa de ceas interna sau externa programabila
Posibilitate de selectie a frontului de ceas
Intrerupere la depasire
Depasirea timerului 0 este indicata de bitul T0IF din registrul INTCON. Acest bit trebuie resetat prin software.
Timerul 0 este dezactivat atunci cand microcontrolerul functioneaza in regim de consum redus de energie.
Timer1
Timer1 este un counter pe 16 biti cu urmatoarele caracteristici:
Pereche de registri timer/counter totalizand 16 biti (TMR1H:TMR1L)
Sursa de ceas interna sau externa programabila
Divizor anterior de frecventa pe 3 biti programabil
Oscilator LP optional
Mod de operare sincron sau asincron
Poarta timerului 1 poate fi controlata de comparator sau de pinul T1G
Intrerupere la depasire
Poate scoate microcontrolerul din modul de consum redus (daca se foloseste sursa externa de ceas si modul asincron)
Cand este folosit cu o sursa de ceas interna, modulul este un timer.
Tabelul 2.2 Sursa ceasului de system
Timer2
Timer2 este un timer pe 8 biti cu urmatoarele caracteristici:
Registru timer pe 8 biti (TMR2)
Registru perioada pe 8 biti (PR2)
Genereaza intrerupere atunci cand TMR2 si PR2 au aceeasi valoare
Divizor anterior de frecventa programabil
Divizor posterior de frecventa programabil
Clock input Timer2 este ceasul de sistem FOSC/4. Iesirea ceasului este introdusa in divizorul anterior al timerului 2. Iesirea acestui divizor este apoi folosita pentru a incrementa TMR2. Valorile registrelor TMR2 si PR2 sunt comparate in mod continuu pentru a determina daca acestea sunt egale.
Modulul comparator
Comparatoarele sunt folosite pentru a face legatura intre un circuit analogic si un circuit digital realizand comparatia intre doua tensiuni analogice. Comparatorul produce un semnal digital care indica relatia dintre marimile celor doua semnale analogice de la intrare. Comparatoarele ofera functionalitate analogica independenta de executia programului si sunt des folosite in circuitele ce combina semnale analogice si digitale. Comparatorul analogic are urmatoarele caracteristici:
Doua comparatoare
Mai multe moduri de configurare a comparatoarelor
Iesirile comparatoarelor sunt disponibile atat intern cat si extern
Polaritatea iesirilor este programabila
Lanseaza o intrerupere la modificarea iesirii
Consumul redus de energie poate fi dezactivat
Posibiltatea de a determina incrementarea Timerului 1
Iesirea se poate sincroniza cu input clock a Timerului 1
Referinta de tensiune programabila
In Figura 2.4 este prezentat un comparator si relatia dintre semnalele analogice de intrare si semnalul digital format la iesire.
Figura 2.3 Un singur comparator
Cele opt moduri de functionare a comparatorului pot fi selectate prin modificarea bitilor CM<2:0> ai registrului CMCON0.
Transmitator Receptor Universal (AUSART)
Rx Tx AUSART este o periferica pentru comunicatii seriale. Contine generatoare de ceas, registre de deplasare si memorii de date necesare pentru realizara unei transmisiuni sau receptii seriale de date, independent de executia programului. AUSART este cunoscut si ca Interfata de comunicatie seriala (SCI) poate functiona semi – duplex sincron sau duplaex – asincron . Modul de lucru duplex este utilizat in comunicatia cu calculatoare pesonale sau monitoare cu tub cinescop. Modul semi – duplex sincron se utilizeaza pentru comunicarea cu dispozitive cum ar fi circuitele integrate analogice digitala si invers, memoriil EEPROM sau alte microcontrolere.
Modulul AUSART are urmatoarele capabilitati:
Transmisiune si receptie duplex asincrona
Memorie de intrare de 2 caractere
Memorie de iesire de 1 caracter
Lungimea caracterelor este programabila si poate avea 8 sau 9 biti
Detectia erorii de depasire a dimensiunii memoriei de intrare
Modalitatea de functionare se stabileste cu 2 registre :
registrul TXSTA si registrul RCSTA control emisie respective receptie
Functionarea AUSART in modul asincron
Modulul AUSART transmite si receptioneaza date folosind formatul standard NRZ (non-return-to-zero). Formatul NRZ este implementat folosind doua nivele: VOH care reprezinta valoarea ‘1’ a unui bit de date si VOL care reprezinta valoarea ‘0’ a unui bit de date. Acest format presupune ca bitii de date de aceeasi valoare transmisi consecutiv raman la acelasi nivel de iesire al acelui bit fara a se intoarce la un nivel neutru intre transmisiunea fiecarui bit. Atunci cand nu se transmite informatie, un port care foloseste NRZ va fi stabilit la nivelul VOH. Fiecare transmisiune de caracter va fi formata dintr-un bit de start, urmat de opt biti de date si in final unul sau mai multi biti de stop. Bitul de start este intotdeauna ‘0’ iar bitii de stop sunt intotdeauna ‘1’. Cel mai intalnit format de date este cel pe 8 biti.
Pentru a obtine o anumita rata de semn plecand de la oscilatorul sistemului se foloseste generatorul intern pe 8 biti al ratei de semn. Transmisiunea si receptia prin AUSART incepe cu cel mai putin semnificativ bit. RX si TX AUSART sunt independente, insa folosesc acelasi format de date si aceeasi rata de semn. Paritatea nu este implementata hardware dar poate fi calculata prin software si retinuta in al noualea bit de date.
Generatorul ratei de semn
Generatorul ratei de semn (bit rate sign) este un generator de timp pe 8 biti care este utilizat atat pentru modul de operare asincron cat si pentru cek sincron.
Registrul SP bit rate sign determina perioada generatorului de timp folosit pentru rata semnului. In modul asincron, bitul BR bit rate sign din registrul TX s TA determina multiplicarea perioadei semnului. In modul sincron acest bit este ignorat. Scrierea unei noi valori in registrul SPBRG produce resetarea timerului BRG.
Tabelul 2.3 Formule de calcul pentru rata de semn
Calculul erorii ratei de semn pentru frecventa de oscilatie de 20 MHz si o rata de semn dorita de 9600 in modul asincron:
Pentru configurarea transmisiunii asincrone trebuie parcursi urmatorii pasi:
Initializarea registrului SPBRG si a bitului BRGH pentru a obitne rata de semn dorita
Activarea portului serial asincron prin resetarea bitului SYNC si setarea bitului SPEN
Daca se foloseste transmisiunea pe 9 biti trebuie setat bitul TX9.
Activarea TX prin setarea bitului de control TX enable. Acest lucru va determina setarea bitului de intrerupere TXIF.
Daca se doreste folosirea intreruperilor, trebuie setat bitul TXIE din registrul PIE1. Pentru ca intreruperea sa aiba loc trebuie ca bitii GIE si PEIE din registrul INTCON sa fie de asemenea setati.
Daca se foloseste transmisiunea pe 9 biti, cel de-al noualea bit trebuie incarcat in bitul TX9D
Scrierea unui octet in registrul TXREG va determina pornirea transmisiunii.
Pentru configurarea receptiei asincrone trebuie parcursi urmatorii pasi:
Initializarea registrului SPBRG si a lui BR bit rate sign pentru obtinerea ratei semnului dorit.
Activarea portului serial prin setarea bitului SPEN. Bitul SYNC trebuie sa fie resetat in cazul modului de operare asincron.
Daca se doreste folosirea intreruperilor, trebuie setat bitul RCIE din registrul PIE1 si bitii GIE si PEIE din registrul INTCON.
In cazul receptiei pe 9 biti, trebuie setat bitul RX9.
Activarea receptiei prin setarea bitului C R E N.
Citirea registrului RC s t a pentru a verifica indicatorii de eroare si in cazul transmisiunii pe 9 biti, valoarea celui de-al noualea bit.
Citirea registrului RCREG va intoarce cei mai putin semnificativi 8 biti din memoria de receptie.
In cazul aparitiei unei erori de depasire a memoriei de receptie, trebuie resetat fanionul OERR prin dezactivarea receptiei prin intermediul bitului CREN.
Modulul de comanda al ecranului LCD
Modulul LCD genereaza semnalele pentru accesarea directa a unui LCD static sau multiplexat. Acest modul permite si controlul matricei de pixeli a LCD-ului.
Modulul de comanda al panoului LCD are urmatoarele caracteristici:
Comanda directa a panoului LCD
Trei surse de ceas cu divizor anterior de frecventa programabil
Pana la patru cai comune
Static (o cale comuna)
Multiplexare 1/2 (2 cai comune)
Multiplexare 1/3 (3 cai comune)
Multiplexare 1/4 (4 cai comune)
Pana la 24 de segmente
Registrii folositi pentru configurarea LCD-ului:
Registrul de control (LCDCON)
Registrul de faza (LCDPS)
4 registre de activare a segmentelor (LCDSE0:CLDSE3)
12 registre de date (LCDDATA0:LCDDATA11)
Selectarea sursei de ceas
Modulul LCD poate selecta una dintre cele trei surse de ceas disponibile dupa cum se vede in figura de mai jos :
Figura 2.5 Generarea ceasului pentru LCD
A doua sursa de clock foloseste T1OSC/32 si se obtine tot o frecventa de 1 kHz cu un quartz de 32.768 k H z pentru oscilatorul primului timer. Pentru a folosi oscilatorul primului timer ca sursa de clock, trebuie setat T1OSC enable din registrul T1C on
A treia sursa de clock este internal osc cu frecv joasa LF INT oscilator impartit la 32 care de asemenea duce la o frecventa de 1 kHz.
Tensiuni de polarizare
Modulul LCD poate folosi mai multe nivele de polarizare dupa cum urmeaza :
Polarizare statica (2 niveluri de tensiune: VSS si VDD)
Polarizare 1/2 (3 niveluri de tensiune: VSS, 1/2 VDD si VDD)
Polarizare 1/3 (4 niveluri de tensiune: VSS, 1/3 VDD, 2/3 VDD si VDD)
Tensiunile pe pinii VLCD sunt rezumate in urmatorul tabel in functie de modul de operare ales:
Tabelul 2.4 Tensiuni de polarizare
Convertorul analog – digital (Analog digital converter)
ADC permite conversia unui semnal analogic de intrare intr-o reprezentare binara folsind 10 biti. Acest dispozitiv foloseste intrari analogice multiplexate intr-un singur circuit de esantionare si memorare. Iesirea cicuitului de esantionare si memorare este conectata la intrarea convertorului. Convertorul genereaza un rezultat pe 10 biti folosind algoritmul de aproximari succesive si inregistreaza rezultatul in registrii ADC (ADRESL si ADRESH).
Referinta de tensiune folosita de ADC poate fi selectata prin software si poate fi generata intern sau furnizata din exterior.
Convertorul poate genera o intrerupere la finalizarea conversiei. Aceasta intrerupere poate scoate microcontrolerul din starea de low energy.
Figura 2.6 Schema bloc a circuitului de conversie analog digital
Configurarea convertorului trebuie sa tina cont de urmatoarele functii:
Configurarea porturilor
Selectia canalului
Selectia referintei de tensiune
Sursa ceasului de conversie
Controlul intreruperilor
Formatul rezultatelor
Configurarea modulului A D C poate fi folosit pentru a converti atat semnale analogice cat si digitale. Cand se convertesc semnale analogice, pinul de intrare/iesire trebuie configurat ca intrare analogica prin intermediul registrelor TRIS si ANSEL.
Selectia canalului: bitii C H S determina care dintre cele 8 canale analogice este conectat la circuitul de memorare. Cand se schimba canalul, trebuie introdusa o intarziere inainte de a incepe o noua conversie.
Referinta de tensiune: tensiunile de referinta pot fi configurate folosind F C F G bits din registrul A D C ON. Tensiunea pozitiva poate fi VDD sau o sursa de tensiune externa. Tensiunea negativa poate fi VSS sau o sursa externa de tensiune.
Ceasul de conversie: Sursa sa poate fi selectata prin software cu ajutorul bitilor ADCS din registrul ADCON1. Ceasul de conversie poate avea urmatoarele surse: FOSC/2, FOSC/4, FOSC/8, FOSC/16, FOSC/32, FOSC/64, FRC). Durata necesara conversiei unui bit este notata cu TAD. O conversie completa pe 10 biti necesita 11 perioade TAD.
Intreruperile: modulul ADC poate genera o intrerupere la finalizarea unei conversii analog digitale. Intreruperea poate fi activata prin setarea bitului ADIE din registrul PIE1. Bitul ADIF trebuie resetat prin software.
Formatul rezultatului: rezultatul conversiei A/D pe 10 biti poate fi furnizat in doua moduri: cu aliniere la stanga sau cu aliniere la dreapta. Bitul ADFM din registurl ADCON0 controleaza formatul rezultatului conversiei. In partea superioara a Figurii 2.7 este prezentat formatul cu aliniere la stanga iar in partea inferioara cel cu aliniere la dreapta.
Figura 2.7 Alinierea rezultatului conversiei A/D
Modul stocare
In acest mod registrele CCPRxH:CCPRxL stocheaza valoarea pe 16 biti a registrului TMR1 in momentul aparitiei evenimentului pe pinul CCPx. Evenimentele pot fi definite prin modificarea bitilor CCPxM<3:0> ai registrului CCPxCON si pot fi:
O data la fiecare front scazator
O data la fiecare front crescator
O data la 4 fronturi crescatoare
O data la 16 fronturi crescatoare
Atunci cand se face o stocare, se seteaza bitul de intrerupere CCPxIF al registrului PIRx. Fanionul de intrerupere trebuie resetat din software. Daca are loc o alta stocare inainte ca perechea de registre CCPRxH:CCPRxL sa fie citita, vechea valoare este rescrisa cu cea noua.
Figura 2.8 Schema bloc de functionare in modul stocare
Modul comparare
In acest mod valoarea pe 16 biti a registrului CCPRx este comparata in mod continuu cu valoarea aflata in perechea de registre a Timerului 1. Cand aceste valori sunt egale, modulul CCPx poate efectua urmatoarele operatii:
Complementarea iesirii modulului CCPx
Setarea iesiri modulului CCPx
Resetarea iesirii modulului CCPx
Declansarea unui eveniment
Generarea unei intreruperi software
Actiunea dorita este selectata prin modificarea bitilor CCPxM<3:0> din registrul CCPxCON. Toate modurile de comparare pot genera o intrerupere.
Figura 2.9 Schema bloc de functionare in modul comparare
Utilizatorul trebuie sa configureze pinul CCPx ca iesire prin resetarea bitului corespunzator din registrul TRIS asociat.
Convertor digital MAX 6675
Circuitul integrat MAX6675 este un ADC(Analog digital converter) convertor care face conversia unui semnal de la termocupluri de tip K (analogic) in semnal digital.Are posibilitatea de compensare a jonctiunii reci si lucreaza in gama 0 °C pana la 1024 °C.
Prezentare generala
Integratul respectiv face compensarea jonctiunii reci care este foarte stricta pentru acuratetea masuratorilor.
Se cunoaste deja ca insasi firele de conexiune dintre zona unde este temocuplul si placuta de cablaj pana unde ajung la legaturi creeaza o tensiune indusa in acest circuit care daca nu este procesata de sistemul de masurare va genera erori de masura a temperaturii de la capatul termocuplului.
Structura interna
In capsula convertorului la intrarea analogica, unde este bucla de masura acesta are montat un sistem de compensare format dintr-o dioda care variaza tensiunea pe bucla in functie de temperatura capsulei,respectiv a mediului ambiant.
El in acest fel face compensarea tensiunii de jonctiune si creeaza conversia direct in digital cu o precizie de 12 biti.
In gama de conversie a tempearturii 0 – 700 °C integratul are o precizie de 8 biti.
El este prevazut direct cu o interfata de tip SPI care ajuta la conectarea acestuia direct cu microcontrollerul PIC16f877.
Structura interna a integratului este formata din 2 amplificatoare operationale si un convertor ADC (Analog digital converter).
Cu ajutorul celor 2 amplificatoare operationale acesta comaptibilizeaza semnalul de la termocuplu cu intrarea primului amplificator de masura care ajuta la reducerea perurbatiilor survenite in circuitul electric datorita variatiilor de temperatura dintre capetele termocuplului.
Inainte ca acesta sa faca conversia in digital vor fi compensate diferentele de temperatura dintre jonctiunea rece (temperatura mediului ambiental citit de dioda din capsula Max-ului) si temperatura de referinta virtuala de 0 °C.
Termocuplurile de tip K au o rata de modificare a tensiunii de termocuplu egala cu 41 μV/°C.
Cu ajutorul ecuatiei liniare de mai jos se poate aproxima valoarea:
Vout =(41μV/°C) x(TR-TAMB)
unde:
Vout este tensiunea termocuplului la iesire
TR este temperatura la jonctiunea calda a termocuplului
TAMB este temperatura ambientului
Jonctiunea calda a termocuplului poate sa sesizeze temperaturi care ajung pana la 1023,76 °C, jonctiunea rece care reprezinta temperatura de ambient poate ajunge intr-o gama de valori de la -20°C si +85°C care este suportata si de jonctiunea integratului MAX6675.
In figura de mai jos putem vizualiza schema de constructie interna a integratului MAX6675 :
Daca temperatura jonctiunii reci variaza integratul poate urmari cu o precizie deosebita fluctuatiile jonctiunii calde datorita sistemului de corectare incorporat convertind temperatura ambientala in tensiune electromotoare echivalenta pe care o foloseste pentru compensarea jonctiunii reci.
Temperatura partii calde se poate calcula cu ajutorul convertorului analog digital ADC pe marimile de intrare rezultate din temperatura ambientala si temperatura partii calde termocuplului minus temperatura ambientala.
Performantele optime sunt atinse atunci cand temperatura partii reci (jonctiunii) este identica cu temperatura capsulei integratului MAX 6675,fara a depasi in schimb temperatura maxima a capsulei care este +85 °C
Structura si semnificatia bitilor
Conversia rezultatului analogic (tensiunii induse la bornele amplificatorului operational) si a tensiunii de referinta rezultate de la dioda incorporata in capsula ADC duc la obtinerea rezultatului final al temperaturii care este convertit si generat in 12 biti pe iesirea seriala a integratului MAX 6675.
Rezulta ca in secventa unde toti bitii sunt 0 termocuplul va masura o temperatura de 0 °C.
Daca avem o secventa unde toti bitii sunt 1 termocuplul va masura o temperatura de + 1023,76 °C.
O configuratie a bitilor conform datasheet-ului integratului MAX 6675 se poate urmari in figura de mai jos:
Tehnici de imbunatatire a masurarii temperaturii
Precizia sistemului termocuplu – ADC poate fii imbunatatita folosind urmatoarele precautii:
Folosind un conductor care nu poate sunta zona de masurare
Cand distanta dintre carcasa cu borne a termocuplului si adaptor este mare atunci se prelungesc conductoarele, astfel ca ele ajung cat mai aproape de adaptor sau chiar in interiorul lui.
Trebuie evitata solicitarea mecanica a cablurilor de conexiune cat si vibratiile.
Daca firele folosite sunt foarte lungi intre termocuplu si adaptor este indicat sa se foloseasca perechi de fire rasucite intre ele pentru a nu crea capacitati parazite.
Este de dorit a fi evitate socurile de natura termica care pot distruge elementul ceramic al termocuplului.
Este necesar sa ecranati conductoarele pentru a proteja firul termocuplului de perturbatiile care pot aparea, in anumite zone ale instalatiei unde apar perturbatii de natura electrica, etc.
Este bine sa se evite ampalasare lor in zone cu perturbatii care pot induce brum (zgomot) in componentele de masura.
Afisajul cu cristale lichide (LCD) alphanumeric
Dispozitivele de afisare cu cristale lichide (Liquid Cristal Display) folosesc o tehnologie de afisare care nu necesita emisia de lumina la fel ca tehnologia LED (Led emitting diode).
Prezentare generala a afisajului LCD
Cu ajutorul luminii ambientale dispozitivele de afisare LCD afisaza imagini prin polarizarea acestora astfel incat ele au un consum foarte redus de energie.
Datorita acestui lucru aceasta tehnologie este adoptata si implementata in diverse aplicatii de tip hobby sau industriale care necesita un consum redus de energie.
Afisajele LCD sunt de mai multe forme si dimensiuni dar marea majoritate se caracterizeaza prin numarul de linii si coloane pe care le pot afisa.
Ele se caracterizeaza prin lungimea in caractere a unui rand asa incat cele de 16 x 1 au un singur rand de 16 caractere, iar un LCD 20 x 4 are 4 randuri a cate 20 de caractere pe fiecare rand.
Afisajele LCD pot avea o lumina de fundal denumita backlight sau pot fi de tipul reflexiv fara iluminare,modulul de comanda al acestora fiind identic.Singura diferenta dintre cele cu backlight si cele fara este ca acelea cu backlight mai au 2 pini in plus pentru alimentarea LED-urilor de backlight.
Schema de conectare la microcontroller
Majoritatea LCD-urilor alphanumerice au controller HD44780 sau compatibil cu 14 pini cele fara backlight si 16 pini cele cu backlight.
Descrierea pinilor si semnificatia acestora este prezentata in tabelul de mai jos:
Interfata LCD pe 8 biti sau pe 4 biti
Modul de trimitere afisare caractere sau comenzi se poate face in doua feluri, deoarece afisajele LCD suporta doua moduri de transfer de date si anume:
Interfata pe 8 biti unde intai se stabileste caracterul de afisat (date) pe bus-ul de 8 biti, dupa care setezi modul de date prin comanda logic 1 pe pinul RS (RS = 1), iar apoi se trimite un impuls pe pinul E.
Interfata pe 4 biti mai poarta si denumirea de Nibble.Aici se pun bitii Most Significant Bit de la 4 pana la 7 pe 4 biti D 4 pana la D 7,apoi se seteaza RS enable (RS = 1),dupa asta se trimite un impuls pe pinul E dupa care urmeaza Last Significant Bit de la 0 pana la 3 pe 4 biti D 4 pana la D 7 dupa care un ultim impuls pe pinul E.
Memoria contrlollerului LCD
Controllerul de tip HD44780 al LCD-ului contine trei blocuri de memorie si anume:
Display data ram = DDRAM
Character Generator ROM = CGROM
Character Generator RAM = CGRAM
Memoria DDRAM
Acesta memorie se foloseste pentru a stoca caracterelec ce urmeaza sa fie afisate pe ecranul LCD.
Aceasta are capacitatea de a memora pana la 80 de caractere din care o parte sunt chiar cele afisate pe ecranul LCD
Pentru a functiona este necesar sa configurezi ecranul LCD sa incermenteze automat adresa si de asemenea trebuie configurata adresa de start pentru mesajul care urmeaza a fi afisat.Dupa asta toate caracterele trimise pe magistrala de date vor aparea afisate de la stanga la dreapta.
Afisarea incepe de la primul caracter de la inceputul randului deoarece adresa initiala este 0 x 00.
Daca numarul caracterelor va depasi cifra 16, vor fi afisate primele 16 iar restul vor fi memorate.Pentru a fi afisate si restul de caractere ramase se va folosi comanda SHIFT,care va muta fereastra caracter dupa caracter spre celelate zone din memorie.
Memoria poate fi atat scrisa cat si citita, continutul acesteia se va pierde in momentul in care ecranul LCD va fi deconectat de la alimentare.
In figura de mai jos se poate vizualiza structura memoriei DDRAM :
Memoria CGROM
In aceasta memorie este continut un set de caractere standard pe care le poate afisa ecranul LCD la accesarea acestora.Fiecare character in parte are alocata zona sa de memorie CGROM.
In figura de mai jos sunt prezentate caracterele continute in memoria CGROM :
Memoria CGRAM
In acesta memorie, pe langa caracterele standard care sunt memorate in memoria CGROM, controllerul LCD poate afisa diferite simboluri care pot fi create de catre utilizator, diferite de cele standard.
Poate fi reprezentat orice symbol grafic de 5 x 8 pixeli.
Pentru fiecare carcacter reprezentat este nevoie de 64 bytes.
Din fiecare byte sunt folositi numai primii 5 biti.
In figura de mai jos se pot observa cei 5 biti folositi pentru editarea caracterelor
Comenzi generale de control si afisare
Comenzile care pot fi trimise catre ecranul LCD pot fi de mai multe tipuri si anume:
Comanda de configurare a functiei (comanda).
Comanda de configurare a adresei.
Comanda de transfer date in memoria CGRAM interna.
Alte tipuri de comenzi.
In figura de mai jos sunt prezentate tipurile de comenzi si descrierea acestora:
Initializarea
Afisajele de tip LCD cu controller HD44780 sau compatibil au intodeauna nevoie de initializare.
Aceasta initializare se poate face in doua moduri dupa cum urmaeza:
Se poate reseta intern circuitul la alimentare.
Se poate efecuta o initializare pe baza unor comenzi
Conform descrierii tehnice (datasheet-ul) controlerului de tip HD44780 este descrisa metoda de initializare interna a circuitului la alimentare.
Instructiunile prezentate mai jos se realizeaza in timpul initializarii.
Pe toata perioada initializarii Flag-ul Ocupat (BUSY) este activ pana la finalizarea ei (BUSY – Flag = active).
Conform documentatiei acesta stare dureaza 10 ms incepand de cand alimentarea pe pinul VCC va depasi 4,5 V.
Functia de curatare display (Function set LCD clear)
D L = 1 activare 8 biti data interface
F = 0 activare 5 x 8 caractere afisate ON / OFF control
N = 0 activare display 1 linie
B = 0 activare modul ENTRY
D = 0 activare display oprit
C = 0 activare cursor oprit
I / D = 1 incrementeaza cu 1
S = 0 activare modul fara alunecare (No shift)
Daca se doreste ca softul sa nu fie dependent de prezenta alimentarii se poate folosi metoda de initializare prin comenzi care este prezentata in figura de mai jos:
Regulatorul PID
Regulatoarele PID sunt unele din cele mai complexe regulatoare industriale, asigurand performante de reglare superioare. Ele inglobeaza efectele proportional P, integral I si derivativ D.
Prezentare generala a regulatorului PID
A proiecta un regulator inseamna a alege atat structura lui, adica numarul blocurilor de reglare si ordinul lor, cat si parametrii, astfel incat sistemul rezultant sa aiba comportamenul dorit.
Regulatorul PID (fig.) are rolul de a obtine marimea de comanda prin prelucrarea erorii calculata ca diferenta intre referinta(setpoint) si reactie (valoarea marimii reglate).Dupa modul de formare a erorii regulatorul poate avea sensul:
direct: e=m-i (comanda creste la cresterea marimii reglate)
invers: e=i-m (comanda scade la cresterea marimii reglate) sens adoptat si in prezentul proiect
In figura de mai jos este prezentata schema de principiu al unui regulator PID:
Tipuri de regulatoare
In practica cele mai utilizate regulatoare cu structura fixa sunt cele de tip P, PI, PD si PID (cu raspunsurile la intrare treapta unitara evidentiate in figura de mai jos care calculeaza comanda u(t) cu urmatoarele relatii:
regulatorul proportional
regulatorul proportional,integral
regulatorul proportional,derivativ
regulatorul proportional,integral,derivativ
unde:
kp constanta partii proportionale
ki constanta partii integrale
kd constanta partii derivative
Banda de proportionalitate
Raspunsul indicial al unui sistem cu regulator de tip P, PI, PID este reprezentat in figura de mai jos:
Componenta proportionala depinde de valoarea curenta a erorii, cea integrala depinde de suma erorilor recente, iar cea derivativa depinde de viteza de variatie a erorii.
Componenta proportionala ofera regulatorului un raspuns rapid, dezavantajul folosirii doar a componentei proportionale il constituie imposibilitatea eliminarii in totalitate a abaterii.
Uneori, in locul factorului de amplificare KP se foloseste o constanta denumita banda de proportionalitate a regulatorului, notata BP. Cand domeniul de variatie al erorii ε este egal cu domeniul de variatie al marimii de comanda u (regulatoare unificate), domeniul de proportionalitate se determina din relatia:
Daca domeniile de variatie intrare-iesire difera, domeniul de proportionalitate este dat de relatia:
Banda de proportionalitate reprezinta procentul din domeniul de variatie a erorii ε pentru care regulatorul P produce o comanda egala cu 100 % din domeniul de variatie a marimii de comanda u.
Regulatoarele sunt prevazute prin constructie cu posibilitatea ajustarii, intr-o gama larga, a factorului BP (ex. 2…200%).
Componenta integratoare are avantajul eliminarii in totalitate a abaterii stationare, dar prezinta performantele dinamice reduse in raport cu cele ale componentei proportionale.
Constanta de integrare Ti este exprimata in unitati de timp si influenteaza viteza de integrare (cresterea valorii acesteia micsoreaza efectul componentei integratoare asupra comenzii).
Componenta derivativa are rol anticipativ, adica in momentul in care apar modificari in timp ale erorii, aceasta determina variatii ale comenzii in asa fel incat abaterea sa fie eliminta rapid.
Componenta derivativa este proportionala cu viteza de variatie a erorii sistemului.Valoarea componentei derivative a comenzii este determinata de constanta de timp de derivare Td ,exprimata in unitati de timp. Daca viteza de variatie a abaterii este constanta plusul de comanda reprezinta o treapta care este proportionala cu Td.
Alegerea si acordarea regulatoarelor
Elementele de baza ale unui regulator automat pe baza carora se pot face comparatii intre diverse tipuri de SRA-uri in scopul de a alege unul potrivit pentru procesul respective sunt urmatoarele:
Natura marimii de intrare si de iesire a procesului.
Natura mediului ambiant in care vor lucre regulatoarele respective.
Performantele si complexitatea intregului proces care se impugn pentru marimea reglata.
In cele mai multe cazuri procesele se bazeaza pe legi de reglare universale de tipul P, PI, PD sau PID dar intalnim cazuri speciale in care se cer regulatoare cu strucura speciala cum ar fi cele de tip adaptativ,extremal.Aceste tipuri de regulatoare se pot realiza de obicei cu structure numerice.
Ce tipuri de posibilitati de integrare pot avea pentru imlementarea lor in structurile numerice complexe de conducere (Calculatoare de proces).
Tipii de parametrii ai legilor de reglare :Banda de proportionalitate BP, Constanta timpului de integrare Ti, Constanta de timp de derivare Td.
Numarul elementelor de executie implicate in procesul respectiv care pot fi comandate in acelasi timp de regulator
Compatibilitatea vitezei de raspuns a regulatorului in functie de cea care este ceruta in procesul de automatizare.
Proiectarea unui regulator automat se poate face in baza datelor cerute de procesul de automatizare in care este implementat (caracteristica elementului de executie si a instalatiei tehnologice) cat si pe baza performantelor ale regimului stationar ,tranzitoriu care se urmaresc a fi realizate.
Deoarce la reglarea unui proces parametrii unui regulator automat pot lua valori mai mici sau mai mari decat cele stabilite la reglarea procesului este obligatorie acordarea regulatorului.
Acordarea consta de fapt in modificarea urmatorilor parametrii si anume Td, Ti, Kp
Modificarea acestor parametrii duce la ajustarea regulatorului iar daca prin aceasta se obtine o minimizare a erorii atunci le putem numi caracteristicile optime ale regulatorului.
Acordarea regulatorului automat
Acordarea unui regulator reprezinta ajustarea parametrilor acestuia conform cerintelor procesului.
Daca aceasta ajustare are in vedere o comportare aprocesului in functie de un anumit criteriu (de exemplu, durata minima a regimului tranzitoriu, influenta minima a perturbatiilor, etc.), acordarea se numeste acordare optima.
Se va prezenta in continuare criteriul suprafetei minime a erorii (Ziegler-Nichols) de acordare experimentala optima a regulatoarelor liniare si continue.
Criteriul face parte din categoria metodelor experimentale de acordare, bazate pe atingerea limitei de stabilitate.
Aceste metode nu necesita identificarea prealabila a modelului partii fixate, ele aplicandu-se cu bucla de reglare in functuine, cu referinta si perturbatiile mentinute constante si cu modificarea parametrilor regulatorului, pana ce SRA atinge limita de stabilitate. Este un criteriu de minimizare a erorii dintre raspunsul real si ideal.
Tinand seama de o serie de particularitati (sisteme cu regim oscilant sau sisteme cu ɛst≠0) Ziegler si Nichols au propus urmatoarea metodologie de acordare a regulatorului automat:
se trece regulatorul pe lege de comanda P
se mareste factorul de amplificare al acestuia (se micsoreaza BP) pana cand se ajunge la limita de stabilitate, sistemul fiind deci sediul unor oscilatii intretinute, si se noteaza perioada oscilatiilor cu Tlim si amplificarea la limita de stabilitate KPlim.
Criteriul este aplicabil in forma clasica pe o structura simpla de sistem de reglare automata cu o singura marime de intrare si o singura marime de iesire la fel ca in figura de mai jos:
Stabilirea parametrilor regulatorului PID cu circuit inchis cu ajutorul criteriului Ziegler–Nichols.
Se stabileste in primul rand factorul de amplificare limita, deci factorul de amplificare care asigura functionarea oscilanta a sistemului in bucla.
Se stabileste perioada de oscilatie a sistemului.Daca vom nota K limita valoarea amplificarii cat sistemul este stabil si T limita peroiada oscilatie in bucla a sistemului parametrii regulatorului se determina pe baza relatiilor prezentate in tabelul de mai jos:
Metoda prezentata este extrem de simpla si usor de aplicat. Din pacate un astfel de criteriu nu furnizeaza informatii referitoare la performantele sistemului.
Este recomandabil ca odata operatia de sinteza terminata sa se efectueze evaluarea comportarii sistemului in bucla inchisa cu regulatorul prin simulare.
Traductorul de temperatura de tip termocuplu K
Termoelectricitatea este relatia dintre temperatura unei substante si energia electrica. In anumite conditii, energia electrica si caldura pot fi convertite reciproc.
Principii generale ale termocuplului de tip K
Daca variatiile energiei electrice datorate conversiei energiei termice pot fi masurate, acestea pot fi corelate cu temperatura substantei.
Atunci cand o pereche de materiale metalice diferite sunt sudate, ele formeaza o bucla inchisa, iar cele doua jonctiuni au temperaturi diferite, circuitul va fi parcurs de un curent electric a carui intensitate depinde de diferenta dintre temperaturile jonctiunilor,care este denumit efectul See beck.
Efectul See beck defineste aparitia tensiunii electromotoare intr-un circuit cu doua jonctiuni din materiale metalice diferite care au temperaturi diferite.
Termocuplul este format din doua materiale metalice care au caracteristici diferite (forta electromotoare si temperatura) care poate produce la capatul lor o tensiune de iesire utilizabila in masurarea temperaturii.
Astfel termocuplul produce o tensiune electromotoare Et=V1-V2 care corespunde diferentei de temperatura T1-T2 dintre cei doi conductori A si respectiv B diferiti ca material intr-un mediu de temperature
Componenta unui termocuplu poate fi vizualizata in figura de mai jos :
Alegerea elementului sensibil
In marea lor majoritate materialele metalice produc o tensiune termoelectrica.In mod practic in alegerea acestor tipuri de materiale trebuie tinut cont de domeniul de temperatura, semnalul electric de iesire efectiv, liniaritatea si stabilitatea relatiei dintre tensiunea electromotoare si temperatura, de unde rezulta un proces de selectie redus a al acestor materiale.
In ziua de azi exista o gama utila de materiale (aliaje si metale) disponibile sub forma de fire sau direct senzori care pot acoperi un domeniu de temperatura intr-o gama de la – 250 °C pana la peste + 2000 °C.
Materialele folosite pentru aceste tipuri de termocupluri sunt din gama celor rezistente la temperatura cum ar fi :
Wolfram
Cromel
Platina
Cupru, aur si cobalt
In tabelul de mai jos sunt prezentate materialele pentru jonctiuni, variatia de tensiune, intervalul de temperatura recomandat cat si caracteristicile acestora:
Cromel – aliaj 90%Ni+10%Cr
Alumel – aliaj 95% Ni+2% Mn+ 2% Al+1% Si
Constantan -aliaj 55%Cu+45%Ni
In general termocuplurile sunt ieftine si versatile acoperind gama de temperaturi de la -265 °C pana la 2300 °C cu o precizie care depinde de tipul celor folosite la constructia lor.
Dintre senzorii care masoara direct temperatura, termocuplul acopera un domeniu de temperaturi larg.
Termocuplul rapunde rapid la variatiile de temperatura dar cu o acuratete mai mica decat a senzorilor de temperatura cu rezistenta metalica.
Termocuplurile care sunt construite din platina sunt destul de stabile,avand un domeniu de temperatura care porneste de la + 20 °C pana la + 2000 °C desi semnalul electric de iesire este mic comparativ cu cele care au la baza materiale metalice.
Circuitul de masura a temperaturii
Implementarea unui sistem de masurat temperatura necesita impune prelungirea termoelectrozilor pana in camera de masura sau in alte locuri convenabile.
Prelungirea electrozilor este realizata cu ajutorul a doua conductoare de prelungire, care in intervalul -30…100 °C au aceleasi proprietati termoelectrice ca si electrozii.
Una din problemele majore ale masurarii temperaturii cu ajutorul termocuplurilor o constituie mentinerea capetelor libere la o temperatura constanta,pentru asta jonctiunea de referinta era plasata intr-o baie de apa cu gheata aflata la 0 °C.
Mult mai practica este metoda compensarii electronice, realizand tensiunea de referinta corespunzatoare temperaturii de 0 °C , chiar daca jonctiunea rece este la o alta temperatura. In figura de mai jos este prezentata o schema bloc a unui circuit electronic destinat acestui scop :
Industrial este utilizat montajul de compensare a variatiei temperaturii capetelor libere care este descris in figura de mai jos:
In serie cu termocuplul si instrumentul de masurat se conecteaza diagonala unei punti electrice.
Rezistenta Rc, montata in apropierea capetelor libere (a, b) ale termocuplului, are aceeasi temperatura cu capetele libere. Orice variatie a temperaturii capetelor libere este suportata si de rezistenta Rc, determinand o variatie a tensiunii din diagonala puntii inseriata in circuitul de masura.
Puntea electrica este calculata astfel incat variatia tensiunii in diagonala UAB(∆T0) sa fie egala si de sens contrar cu variatia tensiunii termoelectromotoare UCD(∆T0). Prin aceasta schema electrica a fost eliminata influenta temperaturii capetelor libere T0 asupra masuratorii.
Tehnici de liniarizare a termocuplurilor
Aplicatiile in care temperatura se macoara cu termocupluri trebuie sa transforme tensiunea electromotore generata de acestea in valori ale temperaturii.Datorita faptului ca raspunsul termocuplurilor nu este liniar, in cazul sistemelor de masura ce necesita o precizie ridicata se impune liniarizarea raspunsului termocuplului.
In continuare sunt prezentate metode de liniarizare a unui termocuplu K:
Aproximarea liniara este cea mai simpla metoda de a converti tensiunea generata de termocuplu in valori ale temperaturii.Aceasta se face prin alegerea unui segment de dreapta care aproximeaza cel mai bine raspunsul termocuplului pe domeniul de temperaturi ce prezinta interes.
Tabele de valori contin valorile temperaturii pentru tensiunile generate de termocuplu.Un inconvenient al alcestei metode este ocuparea unui spatiu mare din memoria microprocesorului in cazul in care avem un domeniu larg de variatie a temperaturii.Pentru micsorarea dimensiunilor tabelelor se pot combina cu aproximarea liniara pe intervalele unde se poate obtine precizia necesara ,iar pentru restul domeniului se vor construi tabele de valori.
Coeficienti polinomiali aproximarea raspunsului termocuplului se face cu ajutorul coeficientilor prezentati in tabelul de mai jos :
Temperatura se va calcula cu relatia:
, unde E este tensiunea generata de termocuplu E=[µV]
Proiectare software si realizare practica
Introducere
Proiectul a fost realizat in dorinta de a cuprinde o gama variata de tipuri de reflow si reballing,astfel ca acest proiect permite modificarea parametrilor temperatura si timp in toate fazele de proces si permite afisarea acestora pe ecranul LCD alphanumeric.Programul a fost scris in limbaj basic prin intermediul aplicatiei software PicBasic Pro de la microEngineering Labs.
Principii generale
Sistemul de reglaj al cuptorului are urmatoarele functii:
Permite modificarea directa a temperaturii
Permite modificarea directa a timpilor de proces
Masoara si mentine constanta temperatura in unitatea de timp
Regleaza automat comanda elementelor de incalzire in functie de parametrii stabiliti ai celor 3 algoritmi si anume: proportional ,integrativ, derivator.
Afisarea temperaturii cat si a tuturor etapelor de proces pe ecranul LCD si cu ajutorul LED-urilor de pe placa de cablaj imprimat
Permite alegerea mai multor tipuri de process
Permite editarea fiecarui proces in functie de necesitati
Diagrama sistemului de reglaj automat al temperaturii este ilustrata in Figura .
Figura 3.1 Diagrama sistemului de reglaj automat
Descrierea schemei electrice
Schema electrica simplificata a proiectului este ilustrata in ANEXA 1 . Pentru a rula programul trebuie realizate urmatoarele conexiuni ale microcontrollerului:
RE0 (pin 8) la Switch 1
RE1(pin 9) la Switch 2
RE2(pin 10) la Switch 3
RC1(pin 16) la Switch 4
RC0(pin 15) la Switch 5
RB3(pin 36) la OUT 0
RB4(pin 37) la OUT 1
RB5(pin 38) la OUT 2
RC4(pin 23) la DAT (MAX6675)
RC5(pin 24) la CS (MAX6675)
RC3(pin 18) la CLK(MAX6675)
Semnificatia si functiile componentelor:
Potentiometrul R7 are rolul de a modifica tensiunea in pinul 3 al afisajului alphanumeric cu ajutorul caruia se modifica intensitatea luminoasa a caracterelor (contrastul acestora).
Switch-ul 1 poarta denumirea de sageata SUS si este conectat la pinul 8 al microcontrollerului pe portul RE0 si are functia de a muta cursorul pe afisajul LCD in sus.
Switch-ul 2 poarta denumirea de sageata JOS si este conectat la pinul 9 al microcontrollerului pe portul RE1 si are functia de a muta cursorul pe afisajul LCD in jos.
Switch-ul 3 poarta denumirea de Tasta de selectie OK si este conectat la pinul 10 al microcontrollerului pe portul RE2 si are functia de a selecta optiunea dorita de pe afisaj-ul LCD.
Switch-ul 4 poarta denumirea de sageata DREAPTA si este conectat la pinul 16 al microcontrollerului pe portul RC1 si are functia de a muta cursorul pe afisajul LCD in dreapta.
Switch-ul 5 poarta denumirea de sageata STANGA si este conectat la pinul 16 al microcontrollerului pe portul RC1 si are functia de a muta cursorul pe afisajul LCD in stanga.
Switch-ul 6 poarta denumirea de buton RESET si este conectat la pinul 1 al microcontrollerului pe portul MCLR si are functia de reseta microcontrollerul in cazul blocarii functionarii acestuia sau aducerea sistemului in starea de start.
LED-ul D0 poarta denumirea de STATUS LED si este conectat pe pinul 3 al microcontrollerului pe portul RA1 care urmareste tot timpul comanda de ON/OFF a elementelor de incalzire pe toata durata procesului.Acesta se va aprinde cand temperatura cuptorului scade sub limita stabilita si se va stinge atunci cand temperatura va depasi limita stabilita, urmarind exact comanda releului de tip SSR
LED-ul D1 poarta denumirea de FAN LED si este conectat pe pinul 2 al microcontrollerului pe portul RA0 care urmareste tot timpul comanda ventilatorului toata durata procesului.Acesta se va aprinde cand procesul va fi pornit si se va stinge
cand cuptorul va ajunge sub temperatura setata in zona de racire.
LED-ul D2 poarta denumirea de AUX LED si este conectat pe pinul 4 al microcontrollerului pe portul RA2.Acesta se va aprinde in momentul in care un semnal extern va fi aplicat pe portul de intrare auxiliar si se va stinge atunci cand activitatea respectivului semnal va inceta.
LED-ul D3 poarta denumirea de EXT POWER si este conectat la iesirea sursei de 5V (VR1) si semnalizeaza prezenta tensiunii de alimentare externa.Asta inseamna ca modulul microcontroller este alimentat pentru programare cu o tensiune recuperata din portul usb al calculatorului si pentru functionare normala prin intermediul sursei de 5V (VR1) de la o sursa externa de tensiune.
Ecranul LCD este folosit pentru afisarea temperaturii senzorului din interiorul cuptorului,modurile de lucru ale procesului,timpii de lucru ai fiecarei etape din process.Ajuta la vizualizarea setarii parametrilor in functie de necesitatea fiecarui utilizator de a modifica parametrii de proces.
OUT 0 este o iesire digitala care poate da valori logice de 0 sau 1 adica in starea logic “ 0 ” pe acest pin avem tensiune = 0 V,iar in starea logic “ 1 “ pe acest pin avem o tensiune = 5 V.Iesirea aceasta corespune iesirii de comanda a elementelor de incalzire folsite in process.
OUT 1 este o iesire digitala care poate da valori logice de 0 sau 1 adica in starea logic “ 0 ” pe acest pin avem tensiune = 0 V,iar in starea logic “ 1 “ pe acest pin avem o tensiune = 5 V.Iesirea aceasta corespune iesirii de comanda a ventilatorului.
OUT 2 este o iesire digitala care poate da valori logice de 0 sau 1 adica in starea logic “ 0 ” pe acest pin avem tensiune = 0 V,iar in starea logic “ 1 “ pe acest pin avem o tensiune = 5 V.Iesirea aceasta corespune iesirii de auxiliar.
Sursa de tensiune stabilizata VR1 – reprezinta sursa de alimentare care furnizeaza o tensiune de 5V necesara alimentarii microcontrollerului, a ecranului LCD si a integratului ADC MAX6675.Integratul stabilizator AP1117 este un integrat specializat care suporta la intrare o tensiune cuprinsa intre 7 si 20 V si asigura la iesire o tensiune perfect stabilizata de 5 V la un curent de 1,5 A.
Dioda D1 – reprezinta dioda care vine inseriata pe bornele tensiunii de alimentare si asigura protectia sensului de alimentare la bornele de alimentare ale sursei externe.Este denumita protectie ANTI- STUPID in cazul in care sursa externa este legata invers la bornele de alimentare.
Buzzerul BZ1 – reprezinta un buzzer de tipul celor folosite pe placile de baza de calculator de constructie piezoelectric care semnalizeaza acustic starile sistemului.
Cristalul de quartz – reprezinta oscilatorul extern al microcontrollerului care asigura acestuia o frecventa de oscilatie de 20 MHz.Acesta vine conectat la pinii 13 respectiv 14 care reprezinta CLKIN si respectiv CLKOUT ai microcontrollerului.
Conectorul Melabs ICSP – reprezinta conectorul prin care se poate face programarea microcontrollerului direct pe placuta de cablaj fara a fi extras de acolo, prescurtarea vine de la InCircuit Programmer.Acesta foloseste 3 pini, unul PGC care vine la pinul 39, unul PGD care vine la pinul 40 si respectiv pinul MCLR care vine la pinul 1 ale microcontrollerului.
Descrierea algoritmului de calcul al comenzii elementelor de incalzire
Una dintre primele intrebari pe mi le-am pus sunt cele prin care am analizat etapele procesului de reflow,teperaturile prin care trece acesta, stabilitatea procesului si cum voi reusi sa le pun in aplicare.
Cea mai simpla abordare este de a aplica o comanda elementelor de incalzire in cazul in care temperatura este sub valoarea de referinta si a opri comanda lor, daca temperatura este peste valoarea de referinta. Aceasta metoda de control este cunoscuta sub numele de control ON – OFF sau mai simplu control in impulsuri.
Problema cu un sistem de control ON – OFF este ca temperatura tinde sa depaseasca zona de referinta. Acest lucru se intampla pentru ca inertia in cuptorul de reballing este mare si nu este suficient de rapid pentru a regla temperatura din interior atat de rapid incat sa nu depaseasca setpoint-ul.
In cazul in care elementele de incalzire sunt oprite ele nu se opresc imediat ci inca mai radiaza caldura.Temperatura interna a elementelor de incalzire este mai mare decat temperatura aerului din interiorul cuptorului, astfel ca energia termica continua sa se transfere pana cand ambele sunt la fel .
Cand temperatura scade sub valoarea de referinta , elementele de incalzire pornesc, dar este nevoie de timp pentru ca acestea sa devina suficient de fierbinti pentru a ridica temperatura inapoi la punctul de referinta. Astfel , temperatura continua sa scada pana cand este aplicata suficient de multa caldura sa ajunga inapoi la valoarea de referinta.
Un mod comun de a rezolva problemele de control ON- OFF este de a utiliza o rutina de PID.
Controlul de temperatura proportional
Termenul proportional (pTerm) adauga sau scade la iesire o valoare proportionala cu valoarea curenta a erorii sistemului de control , in scopul de a conduce sistemul inapoi la rezultatul dorit ( setpoint ). Valoarea erorii este data de cat de departe de valoarea de intrare ( valoarea masurata ) este valoarea de referinta .
Termenul proportional este dat de urmatoarea formula :
pTerm = Kp * eroare ( t )
unde :
Kp – O constanta folosita pentru a regla raspunsul proportional
eroarea este valoarea data de scaderea din valoarea de referinta a celei de intrare
eroare = setpoint – input
t – timpul de esantionare a intrarii ( timp de proba = 1 secunda in cazul nostru )
Pentru ca aceasta reglare proportionala sa existe trebuie sa existe si eroare in sistem ,in scopul de a avea o unitate proportionala.
Sistemul va incerca sa corecteze eroarea prin rotirea elementelor de incalzire " ON " sau " OFF " pentru a adauga sau a elimina caldura in proces .
In cazul in care valoarea masurata este sub valoarea de referinta,starea iesirii va fi ON deci elementele de incalzire active. In cazul in care valoarea masurata este peste valoarea de referinta,valoarea iesirii va fi OFF deci elementele de incalzire oprite. Daca valoarea masurata este egala cu valoarea de referinta , nu exista nici o eroare si, prin urmare , nici o unitate proportionala .
Controlul de temperatura integral
Un sistem bazat numai pe corectia proportionala nu ar fi suficient in cererea noastra deoarece nu este suficient de a elimina eroarea . Sistemul nostru trebuie sa fie capabil de a schimba iesirea sa in functie de eroarea curenta, precum si erorile din trecut .
Integrala este proportionala atat cu valoarea amplitudinii erorii cat si durata erorii. Cu alte cuvinte , integrala este suma erorilor in timp. Acest lucru inseamna ca integrala adauga o suma a erorilor cu trecerea timpului si incercarea de a schimba rapid starea de iesire pentru a elimina eroarea .
Termenul integrativ (iTerm) este dat de urmatoarea formula :
iTerm = iTerm + ( Ki * eroare )
unde :
Ki – O constanta folosita pentru a regla raspunsul integral
eroarea este valoarea data de scaderea din valoarea de referinta a celei de intrare
eroare = setpoint – input
Componenta integrala urmareste acumularea de erori si incerca sa accelereze procesul catre valoarea de referinta ( setpoint ). Acest lucru poate provoca depasirea referintei, daca nu este tinut sub control. Componenta integrala este tinuta sub control in procesul nostru de strangere la iesire intre un minim si valoarea maxima.
Rutina este urmatoarea:
IF( iTerm > outMax ) THEN iTerm = outMax
IF ( iTerm < outMin ) THEN iTerm = outMin
Unde :
iTerm – componenta integranta
outMax – Valoarea maxima pe care o poate atinge iTerm
outMin – valoare minima pe care o poate atinge iTerm
Pentru a rezuma termenul integral :
Eroarea trebuie sa existe in sistem, in scopul de a avea unitate integrala .
Valoarea erorii in sistem este acumulata in timp. Astfel, o eroare mica poate deveni o corectie mare a existentei erorii mari.
Sistemul este fortat pentru a corecta eroarea acumulata .
Efectul de componenta integrala va face ca sistemul sa faca depasire de referinta in incercarea de a reduce eroarea acumulata in sistem, in cazul in care nu se limiteaza.
Controlul de temperatura derivativ
Controlul derivativ masoara cat de repede se schimba erorile in timp si afecteaza rata de schimbare a iesirii sistemului. Rata de schimbare este echivalenta cu masurarea pantei unei linii . Termenul derivativ(dTerm) va incerca sa reduca amploarea depasirii care tinde sa fie produsa de catre componenta integrala.
Termenul derivativ este dat de urmatoarea formula :
dTerm = ( currentTemperature – lastTemperature ) * Kd
unde :
currentTemperature – Valoarea temperaturii curente a sistemului
lastTemperature – Valoarea temperaturii masurate anterior a sistemului
Kd – O constanta folosita pentru a regla raspunsul derivativ
Componenta derivativa trebuie sa tina cont de valoarea masurata anterior. Aceasta se realizeaza prin urmatoarele:
lastTemperature = currentTemperature
Pentru a rezuma termenul derivativ :
Sistemul trebuie sa ia masuri, cu alte cuvinte,caldura trebuie sa fie adaugata sau eliminata din sistem pe o perioada de timp.
Efectul componentei derivative se bazeaza pe cat de repede sistemul se incalzeste sau se raceste in perioada de proba de o data pe secunda si este utilizat pentru a contracara depasirea produsa de componenta integrala .
Iesirea sistemului de reglare
Fiecare dintre componentele PID sunt calculate in mod independent si se adauga impreuna pentru a forma unitatea de iesire a sistemului.
Tinand cont de faptul ca dTerm se scade din suma lui pTerm si iTerm deoarece dTerm este derivat din valoarea(valorile) de intrare masurata(e).
Unitatea de iesire este cea care controleaza sistemul in a determina cat de mult timp sa porneasca sau sa opreasca elementele de incalzire.
Masura de iesire este data de urmatoarea formula:
Iesire = (pTerm + (iTerm – dTerm)))
unde :
Iesire = Valoarea marimii de iesire pentru sistemul de control
pTerm – componenta proportionala
iTerm – componenta integranta
dTerm – componenta derivativa
Diagrama logica a sistemului de reglare
Procesul sistemului de iesire poate fi vizualizat in diagrama de mai jos:
Schema logica de mai sus este o vedere simplista a procesului de control al temperaturii. Procesul incepe prin stabilirea unei valori de referinta (setpoint). Urmatorul pas in bucla este de a citi temperatura.
Acesta citire a temperaturii este folosita pentru a calcula eroarea sau cat de departe suntem de valoarea de referinta.
In continuare, vom calcula componentele proportionale, integrative si derivative si folosirea acestor valori pentru a determina cat de multa ajustare este necesara pentru a reglementa sistemul.
In cazul cuptorului nostru de reballing, iesirea sistemului este determinata de cat timp este necesar ca elementele se incalzire sa oprite sau pornite (OFF sau ON).
Acest tip de control poate fi considerat o abordare diferita a algoritmului PID si este cunoscut ca, control cu timpi proportionali (TPC).
Control cu timpi proportionali (TPC)
Controlul cu timpi proportionali este o forma de Pulse Width Modulation ( PWM ), care reprezinta o tehnica matematica ce permite unui controller cu feedback de a utiliza un actuator discret ON – OFF, cum ar fi un releu cu platina sau releu Solid State ( SSR ), ca si cum ar fi fost o continua bucla de control oriunde intre 0 si 100 %.
Conceptul de TPC presupune ca actuatorul (SSR) sa alimenteze rezistentele de incalzire pentru perioade de timp proportionale cu inertia termica a cuptorului.
Rutina este data de urmatoarea formula :
timeOn = (tCycle * Output)/100
unde :
timeOn – Valoarea care indica cat de mult timp elementele de incalzire vor actionate
tCycle – Reprezinta un factor de scalare al timpului de comanda in functie de raspunsul procesului
Output – Valoarea calculata de la rutina PID
Rutina are nevoie de a urmari cat de mult timp a trecut pentru a face calculul erorilor, mai mult pe componenta integrala generatoare de erori mari care sunt corectate cu aceasta rutina
Aceasta se realizeaza prin urmatoarele:
Tvar = Tvar + 1
IF ( Tvar > = outMax ) THEN Tvar = outMin
unde :
Tvar – variabila utilizata pentru contorizarea timpului.
outMax – Valoarea maxima la care Tvar poate ajunge
outMin – Valoarea minima la care Tvar poate ajunge
Intervalul de timp minim si maxim pentru aplicatia noastra este 0 si respectiv 10 secunde.
Masurarea temperaturii
Termocuplul FLUKE
Pentru a realiza acesta masurare a temperaturii in interiorul cuptourului de reballing am introdus un termocuplu de tip K produs de firma FLUKE.
Acesta are urmatoarele caracteristici:
Valoare masurata de la – 40 °C la + 500 °C
Element de tip K in forma de margea sudata
Citirea temperaturii poate fi facuta in aer sau pe o suprafata
Tip de conector este un stecher cu 2 pini
Lungimea conductoarelor este de approx. 1m
Conectarea cu ADC-ul MAX6675
Acesta vine direct conectat la bornele de intrare analogica ale integratului ADC MAX6675,nefiind necesara nici un fel de calibrare deoarece acesta face compensarea jonctiunii reci in interiorul sau prin masurarea cu ajutorul unei diode a temperaturii suprafatei capsulei.Integratul are o interfata de comunicatie digitala denumita SPI care face legatura directa cu microcontrollerul PIC16F877 prin cei 3 pini DAT, CLK, CS prezentati in schema electrica de mai jos:
Citirea digitala a temperaturii
Modul de citire a temperaturii se face cu ajutorul a 12 biti din cei 16 biti generati de ADC,cu ajutorul microcontrollerului.
Acesta genereaza o stare logic “0” pe pinul de CS atata timp cat este necesara citirea celor 16 biti de informatie.
Genereaza 16 semnale de tact pe pinul CLK iar pe pinul DAT citeste cei 12 biti care contin numai informatia de temperatura care ne intereseaza pe noi cum este vizibila in figura de mai jos unde am urmarit semnalele cu osciloscopul din programul de proiectare Proteus :
Interpretarea semnalelor osciloscopului :
Canalul A reprezinta vizualizarea semnalului DAT in care se receptioneaza pachete de date transmise serial de o lungime egala cu 12 biti.
Canalul B reprezinta vizualizarea semnalului CLK unde putem urmari frecventa de tact de 16 biti.
Canalul C reprezinta vizualizarea semnalului CS unde putem observa starea de logic “0” pe toata perioada citirii celor 16 biti de tact respectiv a celor 12 biti de date.
Elementul de comanda al elementelor de incalzire din process
Acest element este un dispozitiv de comanda a elementelor de incalzire din cuptorul de reballing.Aici am folosit un releu de tip SSR pentru current alternativ in detrimentul unui releu cu platina,deoarece acesta are o influenta negativa asupra functionarii intregului montaj electronic datorita riplului electric creat de efectul lipirii si dezlipirii platinilor cat si cel datorat comenzii bobinei de aclansare unde este adevarat se poate pune o dioda in parallel cu bobina de aclansare pentru a evita acest lucru.
In figura de mai jos este prezentata schema electrica interna a releului SSR AC :
Avantajele acestui tip de releu constau in:
Nu influenteaza din punct de vedere electric functionarea placii electronice a microcontrollerului
Seprara galvanic circuitele de alimentare de curent alternativ ale elementelor de incalzire care sunt alimentate in 220 V de semnalul de intrare digital de 5 V.
Tot sistemul din interiorul acestui releu este bazat pe un sistem optic de comanda care ofera o durata foarte mare de viata a dispozitivului.
Nu creaza riplu pe circuitul de iesire deoarece are decuplarile facute in interiorul sau cu ajutorul unui filtru de tip RC.
Lucreaza la un curent de 40 A pe care un alt tip de releu cu platina l-ar fi suportat cu greu.
Confera o conectare usoara in circuit datorita suruburilor de legaturi unde se pot lega direct firele.
Este compact si poate monta aparte de montajul electronic al microcontrollerului.
Elementele de incalzire ale procesului
In alegerea acestor elemente am avut un pic de ezitare deoarece a fost greu sa gasesc niste elemente de incalzire care sa nu aiba o inertie foarte mare a temperaturii.
Dupa mai multe probe cu diverse elemente de incalzire de tip ceramic (Plita), de tip fierbator (rezitenta electrica imbracata in metal), rezistente de incalzire din nichelina groasa am optat pentru folosirea in acest tip de cuptor a unor becuri (rezistente) cu halogen.
Acestea sunt fabricate din material de tip nichelina care vine montat in interiorul unui tub de sticla care are are injectat in interior un gaz inert denumit halogen.
Este adevarat ca si aceastea au inertie termica dar comaprativ cu ceramica sau metalul, sticla din care sunt fabricate este destul de subtire si rezulta ca inertia termica este mai mica.
Pentru exemplificare atasez mai jos o figura a respectivei lampi :
Caracteristicele aceste tip de lampa sunt :
Alimentare 220v
Puterea consumata 400 W
Capetele lampii sunt cu izolatie ceramic.
Pentru a putea ridica temperatura in interiorul cuptorului la peste + 220 °C a fost nevoie sa montez in interiorul acestuia 4 elemente de incalzire cu halogen la 400 W bucata.
Pentru imbunatirea randamentului cuptorului era necesara izolarea sa termica a acestu cu vata minerala sau vata bazaltica rezistenta la temperature de peste + 350 °C.
Izolarea cuptorului este necesara si pentru a proteja placa electronica de temperaturile emise de carcasa cuptorului care pot modifica temperatura capsulei integratului ADC MAX6675 si implicit modificarea temperaturii de ambient care poate duce la citirea eronata a temperaturii deoarece compensarea zonei reci nu poate fi efectuata correct.
Mentionez ca pentru acest proiect am folosit un cuptor cu microunde modificat.Era ideal sa folosesc un cuptor de tip grill care avea deja la interior elemente de incalzire montate in carcasa si izolatia era corespunzatoare cu temperaturi ridicate.
Prezentarea partii de afisare si meniul de functii
Partea de afisare este realizata cu ecranul LCD cu controller compatibil cu HD44780.
Acesta este modelul care are inclusa lumina backlight de culoare albastra.
Descrierea meniului si functiilor acestuia vor fi descrise mai jos si exemplificate cu poze care au fost capturate din programul de simulare Proteus.
In meniul principal avem urmatoarele 6 linii selectabile cu ajutorul sagetilor si a tastei de selectie OK :
1 Reflow care reprezinta procesul de reflow in sine ce cuprinde 5 faze de desfasurare a procesului de incalzire respectand un grafic specific acestui proces reprezentat in figura de mai jos:
Prima faza din proces este FAZA PREHEAT unde valoarea standard a setpoint-ului trebuie sa fie + 170 °C si durata acestei faze este raportata la o crestere de temperatura cu 1 °C pe secunda pana valoarea masurata ajunge la valoarea de setpoint.
Faza 2 este FAZA SOAK unde temperatura este mentinuta la + 170 °C pentru o perioada de timp de 30 de secunde care reprezinta minimul reprezentat in graficul procesului de reflow.
Faza 3 este FAZA HEATING unde temperatura urca pana la valoarea de setpoint de + 220 °C,odata ce aceasta temperatura este atinsa va trece automat la faza 4.
Faza 4 este FAZA REFLOW unde temperatura este mentinuta la valoarea de + 220 °C pentru o perioada de 45 de secunde care reprezinta minimul reprezentat in graficul procesului de reflow.
Faza 5 este FAZA RACIRE unde ventilatorul va porni iar aceasta faza va dura pana cand temperatura in interiorul cuptorului va scadea sub valoarea de setpoint de + 60 °C
2 Bake reprezinta o oprtiune care respecta un prag de temperatura la care poate fi mentinut procesul cu setpoint si unitate de timp reglabile in functie de operatiile de care avem nevoie : lipire, dezlipire, reballing, uscare pcb, etc.
Aceasta are urmatoarele 3 submeniuri:
Prima faza este FAZA INCALZIRE unde este setata o temperatura setpoint care urmeaza sa fie atinsa de process.Dupa ce se atinge temperature de setpoint ssitemul trece la faza imediat urmatoare.
Faza 2 este FAZA BAKE unde temperature este mentinuta constanta la valoarea punctului de setpoint pe o perioada de timp definita initial de utilizator.
Faza 3 este FAZA RACIRE unde temperatura procesului va scadea pana va atinge valoarea de setpoint stabilita de utilizator cu ajutorul ventilatorului care va porni tot timpul in aceasta faza indifferent de proces.
3 Setup reprezinta o optiune unde se pot accesa toate fazele din proces pentru a efectua modificari asupra setpoint-urilor temperaturilor cat si a timpilor acestora, in functie de anumite procese de lipire respectand graficele de temperatura ale proceselor respective.
Aici putem modifica urmatoarele faze din proces si anume:
FAZA SOAK unde putem regla temperatura si timpul cu ajutorul sagetilor si al cursorului.
FAZA REFLOW unde putem regla temperatura si timpul cu ajutorul sagetilor si al cursorului.
FAZA BAKE unde putem regla temperatura si timpul cu ajutorul sagetilor si al cursorului.
FAZA RACIRE unde putem regla temperatura si timpul cu ajutorul sagetilor si al cursorului.
SAVE este optiunea prin care se salveaza toate modificarile in toate fazelor proceselor
4 Tune reprezinta totaliatea valorilor reglabile din algoritmul PID respectiv Kp,Ki,Kd si timpul de ciclu tCycle.
5 Despre reprezinta sectiunea unde sunt pusele datele autorului cat si versiunea de software a microcontrollerului.
6 Sensor reprezinta valoarea in grade Celsius a temperaturii termocuplului K din interiorul cuptorului.
Programarea microcontrollerului
Pentru realizarea acestei etape a fost necesara achizitionarea unei interfete de comunicatie care sa lege microcontrollerul prin portul ICSP aflat pe placuta de cablaj si un calculator personal cu port parallel.
Interfata de comunicatie o puteti vedea in figura de mai jos :
Aceasta poarta denumirea de PICKIT 2 si este o interfata speciala destinata programarii microcontrollerelor din toata gama PIC si din toate familiile inclusiv 16F877.
Are posibilitatea conectarii direct cu portul ICSP de pe placuta cu microcontroller si nu are nevoie de nici o sursa externa de tensiune pentru scrierea sau citirea microcontrollerului.
Tensiunea de 12 V necesara aplicarii pinului MCLR in timpul scrierii programului in microcontroller este creata de catre interfata din tensiunea de 5 V a portului USB, cu ajutorul unui buck converter, care ridica tensiunea la 12 V printr-o comanda PWM generata de interfata si care poate fi modificata din software-ul de programare.
Software-ul de programare se numeste PICKIT 2 Programmer,unde se introduce direct fisierul .hex sau .bin generat de programul PicBasic Pro .
Programul PicBasic Pro face conversia din limbajul de programare Basic in limbajul assembler care este compilat cu ajutorul programului MPlab care este incorporat ca subrutina in programul PicBasic Pro.
Cu alte cuvine in interiorul programului PicBasic Pro avem toate programele necesare compilarii programului din limbaj Basic direct in format .hex sau .bin necesar programrii microcontrollerului.
In acest moment avem un microcontroller PIC16F877 programat si gata de lucru.
Constructie si reglaje
Pentru constructia acestui proiect am dezasamblat total un cuptor cu microunde pe care l-am modificat.
Dupa o serie de experimente am ajuns la concluzia ca cele mai bune elemente de incalzire sunt acele rezistente de incalzire cu halogen care au fost prezentate mai sus.
Acestea au fost montate numai in partea de jos a cuptorului datorita faptului ca in partea de sus a fost imposibila montarea lor din cauza temperaturii accumulate acestea riscau sa cada datorita dezlipirii firelor de pe elementele de incalzire.
Mentionez faptul ca nu am putut monta aceste elemente in socluri ceramice deoarece a fost imposibila procurarea acestora.
Pe viitor intentionez sa montez aceste socluri ceramice si sa mut doua elemente radiante in partea de sus pentru o echilibrare mai buna a temperaturii la interiorul cuptorului de reballing si o disipare a acesteia cat mai constanta in tot spatial interior din cuptor.
Reglajele au fost facute experimental cu ajutorul unui regulator industrial PID care m-a ajutat in stabilirea valorilor constantelor proportionala, integrala, derivativa.
La baza calcului au stat formulele Ziegler–Nichols si studiul comparativ al valorilor consultand instrumental industrial PID.
Temperatura maxima in cuptor a fost adusa la valoarea nominala prin montarea a 4 elemente de incalzire in interirul acestuia.
Mai jos cateva poze cu caracter informativ despre proiect :
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: Proiectarea Si Realizarea Unui Sistem Automat Pentru Reglarea Temperaturii Intr Un Cuptor de Reballing (ID: 163137)
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.
