Conferențiar dr. ing. Dorin ȘENDRESCU Iulie 2014 CRAIOVA ii UNIVERSITATEA DIN CRAIOVA FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI ELECTRONICĂ… [606699]
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI ELECTRONICĂ
DEPARTAMENTUL DE AU TOMATICĂ, ELECTRONICĂ ȘI
MECATRONICĂ
PROIECT DE DIPLOMĂ
BULUGEAN Ștefania -Maria
COORDONATOR ȘTIINȚIFIC
Conferențiar dr. ing. Dorin ȘENDRESCU
Iulie 2014
CRAIOVA
ii
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI ELECTRONICĂ
DEPARTAMENTUL DE AUTOMATICĂ, ELECTRONICĂ ȘI
MECATRONICĂ
Regla rea instalației LabVolt
folosind microcontroller -ul PIC 18F8722
BULUGEAN Ștefania -Maria
COORDONATOR ȘTIINȚIFIC
Conferențiar dr. ing. Dorin ȘENDRESCU
Iulie 2014
CRAIOVA
iii
„Nu e satisfacție mai mare ca aceea de a învăța și o cauză mai onorabilă ca aceea de a -ți învăța copiii.”
Proverb popular
iv
DECLARAȚIE DE ORIGINALITATE
Subsemnatul BULUGEAN Ștefania -Maria , student ă la specializarea Ingineria Sistemelor Multimedia din
cadrul Facultății de Automatică, Calculatoare și Electronică a Universității din Craiova, certific prin prezenta
că am luat la cunoștință de cele prezentate mai jos și că îmi asum, în acest context, originalitatea proiectului
meu de licență:
cu titl ul „Reglarea insta lației LabVolt folosind microcontroller -ul PIC 18F8722 ”,
coordonată de conferențiar doctor inginer Dorin ȘENDRESCU,
prezentată în sesiunea Iu lie 2014.
La elaborarea proiectului de licență, se consideră plagiat una dintre următoarele acț iuni:
reproducerea exactă a cuvintelor unui alt autor, dintr -o altă lucrare, în limba română sau prin traducere
dintr -o altă limbă, dacă se omit ghilimele și referința precisă,
redarea cu alte cuvinte, reformularea prin cuvinte proprii sau rezumarea ideilor din alte lucrări, dacă nu
se indică sursa bibliografică,
prezentarea unor date experimentale obținute sau a unor aplicații realizate de alți autori fără menționarea
corectă a acestor surse,
însușirea totală sau parțială a unei lucrări în care regulile de mai sus sunt respectate, dar care are alt
autor.
Pentru evitarea acestor situații neplăcute se recomandă:
plasarea între ghilimele a citatelor directe și indicarea referinț ei într -o listă corespunzătoare la sfărșitul
lucrării,
indicarea în text a reformulării unei idei, opinii sau teorii și corespunzător în lista de referințe a sursei
originale de la care s -a făcut preluarea,
precizarea sursei de la care s -au preluat date experimentale, descrieri tehnice, figuri, imagini, statistici,
tabele et caetera,
precizarea referințelor poate fi omisă dacă se folosesc informații sau teorii arhicunoscute, a căror
paternitate este unanim cunoscută și acceptată.
Data, Semnă tura candidat: [anonimizat],
v
UNIVERSITATEA DIN CRAIOVA
Facultatea de Automatică, Calculatoare și Electronică
Departamentul de Au tomatică, Electronică și Mecatronică Aprobat la data de
…………………
Șef de departament,
Prof. dr. ing.
Emil PETRE
PROIECTUL DE DIPLOMĂ
Numele și prenumele student: [anonimizat]/ -ei:
BULUGEAN Ștefania -Maria
Enunțul temei:
Reglarea insta lației LabVolt folosind microcontroller -ul PIC
18F8722
Datele de pornire:
Microcontroller -ul PIC 18F8722
Instalația de laborator LABVOLT 3522 -05
Osciloscopul HANTEK DSO5202B
Laptopul personal LENOVO Z570
Conținutul proiectului:
Introducere
– conducerea unui sistem de reglare automată cu
calculator de proces.
Capitolul 1 – Componente generale ale reglării automate
– structura generală a unui sistem de conducere;
– legi tipizate de reglare.
Capitolul 2 – Prezentarea instalației de laborator LabVolt 3522 –
05
– noțiuni teoretice și componentele instalației de reglare a
temperaturii aerului sau a debitului de aer;
– calibrarea traductorului de temperatur ă și a traductorului
de debit de aer;
– conducerea procesului de reglare a temperaturii și a
debitului.
Capitolul 3 – Prezentarea microcontreller -ului PIC 18F8722
– prezentarea generală a microcontrelle -ului;
– prezentarea funcției PWM și a conversiei analog
numerică a microcontrelle -ului;
– programarea microcontroller -ului utilizând mediul de
programare MPLAB.
Capitolul 4 – Rezultate experimentale
– prezentarea instalației experimentale
– implementarea numerică a legilor de reglare;
– modul de lucru cu toate componen tele aplicației
experimentale și obținerea unui rezultat, în urma
aplicării legilor de reglare.
Concluzii
Material grafic obligatoriu: Poze instalație experimentală
vi
Consultații:
Săptămânale
Conducătorul științific
(titlul, nume și prenume, semnătura): Conferențiar dr. ing. Dorin ȘENDRESCU
Data eliberării temei:
05.10.2013
Termenul estimat de predare a
proiectului:
18.06.201 4
Data predării proiectului de către
student și semnătura acestuia:
vii
UNIVERSITATEA DIN CRAIOVA
Facultatea de Automatică, Calculatoare și Electronică
Departamentul de Automatică, Electronică și Mecatronică
REFERATUL CONDUCĂTORULUI ȘTIINȚIFIC
Numele și prenumele candidatului: BULUGEAN Ștefania -Maria
Specializarea: Licență, Ingineria Sistemelor Multimedia
Titlul proiectului: Reglarea insta lației LabVolt folosind microcontroller -ul PIC
18F8722
Locația în care s -a realizat practica de
documentare (se bifează una sau mai
multe din opțiunile din dreapta): În facultate □
În producție □
În cercetare □
Altă locație:
În urma analizei lucrării candidatului au fost constatate următoarele:
Nivelul documentării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Tipul proiectului Cercetare
□ Proiectare
□ Realizare
practică □ Altul
Aparatul matematic utilizat Simplu
□ Mediu
□ Complex
□ Absent
□
Utilitate Contract de
cercetare □ Cercetare
internă □ Utilare
□ Altul
Redactarea lucrării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Partea grafică, desene Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Realizarea
practică Contribuția autorului Insuficientă
□ Satisfăcătoare
□ Mare
□ Foarte mare
□
Complexitatea
temei Simplă
□ Medie
□ Mare
□ Complexă
□
Analiza cerințelor Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Arhitectura Simplă
□ Medie
□ Mare
□ Complexă
□
Întocmirea
specificațiilor
funcționale Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Implementarea
Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
viii
Testarea Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Funcționarea Da
□ Parțială
□ Nu
□
Rezultate experimentale Experiment propriu
□ Preluare din bibliografie
□
Bibliografie Cărți
Reviste
Articole
Referințe web
Comentarii
și
observații
În concluzie, se propune:
ADMITEREA PROIECTULUI
□ RESPINGEREA PROIECTULUI
□
Data, Semnătura conducătorului știi nțific,
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
1
Cuprins
Figuri ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. .. 3
Tabele ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. . 5
INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. …………… 6
1. Componente generale ale reglări i automate ………………………….. ………………………….. ……………………. 11
1.1. Structura generală a unui sistem de conducere ………………………….. ………………………….. ………… 11
1.2. Legi tipizate de reglare ………………………….. ………………………….. ………………………….. ……………….. 13
1.2.1. Prezentare generală ………………………….. ………………………….. ………………………….. …………….. 13
1.2.2. Legea de tip P ………………………….. ………………………….. ………………………….. ……………………… 14
1.2.3. Legea de tip I ………………………….. ………………………….. ………………………….. ………………………. 17
1.2.4. Legea de tip D -real ………………………….. ………………………….. ………………………….. ……………… 19
1.2.5. Legea de tip PI ………………………….. ………………………….. ………………………….. ……………………. 21
1.2.6. Legea de tip PD -real ………………………….. ………………………….. ………………………….. ……………. 23
1.2.7. Legea de tip PID -real ………………………….. ………………………….. ………………………….. ………….. 26
1.2.7.1. Conexiune paralel dintre un element I și un element PD real ………………………….. ….. 27
1.2.7.2. Conexiune paralel dintre un element PI și un element D -real ………………………….. ….. 30
2. Prezentarea instalației de laborator LabVolt 3522 -05 ………………………….. ………………………….. ……… 32
2.1. Noțiuni teoretice ………………………….. ………………………….. ………………………….. …………………………. 32
2.2. Component ele instalației de reglare a temperaturii/ debitului ………………………….. ……………….. 33
2.3. Calibrarea traductorului de temperatură ………………………….. ………………………….. ………………… 35
2.4. Calibrarea traductorului de debit ………………………….. ………………………….. ………………………….. .. 36
2.5. Conducerea procesului de reglare a temperaturii și a debitului ………………………….. …………….. 37
3. Prezentarea microcontroller -ului PIC 18F872 2 ………………………….. ………………………….. ………………. 39
3.1. Prezentarea generală a microcontrollere -lor PIC18F ………………………….. ………………………….. .. 39
3.1.1. Unitatea de memorie ………………………….. ………………………….. ………………………….. …………… 39
3.1.2. Unitatea de procesare centrală ………………………….. ………………………….. …………………………. 40
3.1.3. Bus-ul ………………………….. ………………………….. ………………………….. ………………………….. …….. 40
3.1.4. Unitatea intrare –ieșire ………………………….. ………………………….. ………………………….. ……….. 41
3.1.5. Comunicația serială ………………………….. ………………………….. ………………………….. …………….. 42
3.1.6. Unitatea timer ………………………….. ………………………….. ………………………….. …………………….. 43
3.1.7. Watchdog -ul ………………………….. ………………………….. ………………………….. ……………………….. 43
3.1.8. Convertorul Analog -Digital ………………………….. ………………………….. ………………………….. …. 44
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
2
3.1.9. Programul ………………………….. ………………………….. ………………………….. ………………………….. 45
3.1.10. Reprezentarea datelor în memoria unui microcontroller ………………………….. ……………….. 46
3.2. Utilizarea plăcii de dezvoltare „PICDEMTM PIC18 Explorer” ………………………….. ………………. 48
3.3. Dispozitivul programator/debugger „PICkitTM 3” ………………………….. ………………………….. ……. 50
3.4. Mediul de programare MPLAB IDE ………………………….. ………………………….. ……………………….. 51
3.5. Modulul MASTER SYNCHRONOUS SERIAL PORT (MSSP) ………………………….. ……………. 54
3.6. Modulul ANALOG TO DIGITAL CONVERTER (A/D) ………………………….. ………………………. 60
3.7. Modulul COMPARE/CAPTURE/PWM (CCP) ………………………….. ………………………….. ……….. 65
4. Rezultate experimentale ………………………….. ………………………….. ………………………….. …………………….. 69
4.1. Prezentare instalație experimentală ………………………….. ………………………….. …………………………. 69
4.2. Implementarea numerică a legilor de reglare ………………………….. ………………………….. …………… 70
4.3. Modul de lucru ………………………….. ………………………….. ………………………….. ………………………….. . 74
4.3.1. Realizarea programului de reglare ………………………….. ………………………….. …………………… 78
4.3.2. Conexiuni realizate ………………………….. ………………………….. ………………………….. ……………… 84
4.3.3. Lansarea în execuție ………………………….. ………………………….. ………………………….. ……………. 87
CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. ……………….. 95
BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. ………………………….. …………. 99
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
3
Figuri
Figura 1 – Structura de reglare cu calculator de proces ………………………….. …………………….. 8
Figura 2 – Schema bloc continuală ………………………….. ………………………….. ……………………… 8
Figura 3 – Structura unui sistem tipic de achiziție a datelor bazat pe PC …………………………. 9
Figura 4 – Structura general a unui sistem de conducere ………………………….. …………………. 11
Figura 5 – Caracteristica static Y=F(U) ………………………….. ………………………….. ……………. 14
Figura 6 – Funcția de transfer ce variază față de un regim staționar remarcat la un moment
t0 ………………………….. ………………………….. ………………………….. ………………………….. …………… 15
Figura 7 – Dependenț a intrare -ieșire, în regim staționar, a mărimilor relative ……………….. 17
Figura 8 – Răspunsul la intrare treaptă al unui element de tip I ………………………….. ………… 18
Figura 9 – Răspunsul la intrări constante pe porțiuni al unui element I ………………………….. 19
Figura 10 – Ecuația de stare ………………………….. ………………………….. ………………………….. … 19
Figura 11 – Răspunsul la intrare treaptă al unui element D -real ………………………….. ………. 20
Figura 12 – Caracteristicile Bode ………………………….. ………………………….. ……………………… 20
Figura 13 – Reprezentarea caracteristicilor Bode la scară logari tmică a unui element PI … 21
Figura 14 – Reprezentarea Simulink a unui element PI ………………………….. ……………………. 21
Figura 15 – Răspunsul la intrare treaptă pentru un element PI ………………………….. …………. 22
Figura 16 – Răspunsul unui element PI la intrări constante pe porțiuni ………………………….. 22
Figura 17 – Structura conexiunii pentru realizarea elementului D -real cu ajutorul unui
element I ………………………….. ………………………….. ………………………….. ………………………….. … 23
Figura 18 – Structura conexiunii pentru realizarea elementului PD -real ………………………… 23
Figura 19 – Răspunsul la intrare rampă a unui sistem de reglare cu lege PD -real
comportându -se ca un filtru trece – sus ………………………….. ………………………….. ………………. 24
Figura 20 – Caracteristicile Bode ale unui sistem de reglare cu lege PD -real comportându –
se ca un filtru trece – sus ………………………….. ………………………….. ………………………….. ……… 24
Figura 21 – Răspunsul la intrare rampă a unui sistem de reglare cu lege PD -real
comportându -se ca un filtru trece – jos ………………………….. ………………………….. ………………. 25
Figura 22 – Caracteristicile Bode ale unui sistem de reglare cu lege PD -real comportându –
se ca un filtru trece – jos ………………………….. ………………………….. ………………………….. ………. 25
Figura 23 – Structura unui PID -real realizat prin conexiune paralel dintre un element I și un
element PD -real ………………………….. ………………………….. ………………………….. ………………….. 27
Figura 24 – Răspunsul la intrare treaptă pentru T d < T γ ………………………….. …………………. 28
Figura 25 – Răspunsul la intrare treaptă pentru ………………………….. ………………………….. …. 28
Figura 26 – Răspunsul dintre componenta I și componenta PD -real pentru T d > T γ …………. 29
Figura 27 – Structura unui PID -real cu conexiune paralel dintre un element PI și un element
D-real ………………………….. ………………………….. ………………………….. ………………………….. ……. 30
Figura 28 – Structura unui element D -real realizat cu ajutorul unui element I ………………… 31
Figura 29 – Reglarea temperaturii ………………………….. ………………………….. ……………………. 32
Figura 30 – Reglarea debitului de aer ………………………….. ………………………….. ……………….. 33
Figura 31 – Instalația de control a proceselor de temperatură și debit ………………………….. . 34
Figura 32 – Potențiometre pentru calibrarea temperaturii ………………………….. ……………….. 35
Figura 33 – Potențiometre pentru calibrarea traductorului de debit ………………………….. ….. 36
Figura 34 – Conducerea în bucla închisa a proceselor de debit ale instalației ………………… 37
Figura 35 – Un model simplificat de unitate de memorie ………………………….. ………………….. 39
Figura 36 – Unitate simplificată de procesare centrală cu trei regiștri ………………………….. . 40
Figura 37 – Conectarea memoriei și a unității centrale folosind bus -uri…………………………. 41
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
4
Figura 38 – Unități simplificate intrare -ieșire ce permite comunicarea cu lumea externă …. 41
Figura 39 – Comunicație serială ………………………….. ………………………….. ……………………….. 42
Figur a 40 – Unitatea timer ………………………….. ………………………….. ………………………….. …… 43
Figura 41 – Watchdog ………………………….. ………………………….. ………………………….. …………. 43
Figura 42 – Bloc pentru convertirea unui semnal analogic într -o dimensiune digitală ……… 44
Figura 43 – Secțiunea centrală a microcontroller -ului ………………………….. …………………….. 44
Figura 44 – Placa de dezvoltare PICDEM™ PIC18 Explorer ………………………….. …………… 49
Figura 45 – Programatorul/debugger -ul PICkit 3 ………………………….. ………………………….. .. 50
Figura 46 – Interfața grafică a programului MPLAB IDE ………………………….. ………………… 51
Figura 47 – Fișierele unui proiect embedded ………………………….. ………………………….. ……… 52
Figura 48 – Compilatorul ………………………….. ………………………….. ………………………….. …….. 53
Figura 49 – Comunicția SPI ………………………….. ………………………….. ………………………….. …. 56
Figura 50 – Microcontrollerul comunică cu circuitul MCP23S17 prin intermediul pinilor
RA2, RC4 și RC5 ………………………….. ………………………….. ………………………….. …………………. 59
Figura 51 – Principiul conversiei analog numerice ………………………….. …………………………. 63
Figura 52 – Modulul PWM ………………………….. ………………………….. ………………………….. ….. 67
Figura 53 – Sistemul continuu ………………………….. ………………………….. ………………………….. 70
Figura 54 – Determinarea parametrilor funcției de transfer pe baza răspunsului sistemului
la intrare treaptă ………………………….. ………………………….. ………………………….. …………………. 71
Figura 55 – Controlul instalaț iei LabVolt în blucă închisă ………………………….. ……………….. 72
Figura 56 – Controlul în buclă deschisă ………………………….. ………………………….. …………….. 72
Figura 57 – Controlul în buclă închisă ………………………….. ………………………….. ………………. 73
Figura 58 – Programul MPLAB ………………………….. ………………………….. ………………………… 74
Figura 59 – Desc hiderea unui proiect nou folosind MPLAB ………………………….. ……………… 74
Figura 60 – Fișierele unui proiect ………………………….. ………………………….. …………………….. 75
Figura 61 – Selectarea microcontroller -ului PIC18F8722 ………………………….. ……………….. 75
Figura 62 – Selectarea compilatorului ………………………….. ………………………….. ………………. 76
Figura 63 – Spațiul de lucru ………………………….. ………………………….. ………………………….. …. 76
Figura 64 – Selectarea sursei fișierului creat din directorul salvat anterior ……………………. 77
Figura 65 – Adăugarea fișierului creat în sursa proiectului ………………………….. ……………… 77
Figura 66 – Semnal de comandă PWM ………………………….. ………………………….. ………………. 82
Figura 67 – Vizualizarea variabilelor procesului pe afișajul alphanumeric LCD …………….. 83
Figura 68 – Lansarea în execuție a programului ………………………….. ………………………….. …. 84
Figura 69 – Instalația experimentală LabVolt 3522 -05 ………………………….. …………………….. 85
Figura 70 – Conexiunea între placa PICDEM PIC18 și progrmatorul PICkit 3 ………………. 85
Figura 71 – Osciloscopul HANTEK DS5202B ………………………….. ………………………….. ……. 86
Figura 72 – Conexiuni pe placa de dezvoltare ………………………….. ………………………….. …….. 86
Figura 73 – Răspunsul sistemului la intrare treaptă (lege de reglare de tip PI) ……………….. 87
Figura 74 – Răspunsul sistemului la intrare treaptă (lege de reglare de tip PID) …………….. 88
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
5
Tabele
Tabelul 1 – Registrul SSP1CON1 este registrul de control al modulului MSSP1 ……………… 56
Tabelul 2 – SSP1STAT provine de la “Synchronous Serial Port STATus” și furnizează o serie
de biți necesari pentru controlul comunicației SPI ………………………….. ………………………….. . 57
Tabelul 3 – Registrul ADCON0 ………………………….. ………………………….. …………………………. 60
Tabelul 4 – Registul ADCON1 ………………………….. ………………………….. ………………………….. 61
Tabelul 5 – Configurarea biților de voltaj ………………………….. ………………………….. ………….. 61
Tabelul 6 – Configurarea biților pentru controlul A/D ………………………….. ……………………… 61
Tabelul 7 – Registrul ADCON2 ………………………….. ………………………….. …………………………. 62
Tabelul 8 – Registrul CCPxCON ………………………….. ………………………….. ……………………….. 65
Tabelul 9 – Parametrii de acordare ………………………….. ………………………….. …………………… 71
Tabelul 10 – Variabilele funcției de trasfer ………………………….. ………………………….. …………. 80
Tabelul 11 – Conexiuni realizate în proiect ………………………….. ………………………….. ………… 85
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
6
INTRODUCERE
În lucrarea de diplomă cu titlul: “ Reglar ea instalației LabVolt folosind microcontroller -ul PIC
18F8722” sunt descrise principiile pentru implementarea regulatoarelor pe microcontroller -ul PIC 18F8722.
Echipamentele numerice de conducere a proceselor industriale (regulatoarele numerice, calculato arele
de proces), în special după introducerea în structura lor a microprocesoarelor au constituit un pas considerabil
pe calea reducerii decalajului dintre rezultatele remarcabile oferite de teoria sistemelor automate și tehnicile
aplicate în practică con ducerii proceselor industriale.
Aceste echipamente permit, fără a efectua modificări în structura sau în configurația lor, implementarea
celor mai diverse strategii de conducere, începând cu cele de tip convențional, PID, și ajungând la cele care să
determ ine atingerea performanțelor optime ale funcționarii proceselor cu un minimum de energie și materie
primă.
Realizarea acestor deziderate impune specialiștilor din domeniul conducerii proceselor cunoașterea
specificului procesului condus și a teoriei sistem elor automate, precum și a calculatoarelor de proces, a
funcționării acestor elemente și, mai ales, a programării lor pentru asigurarea scopului propus: supravegherea și
conducerea "în timp real" a unui proces.
Se numește calculator de proces un complex de mijloace tehnice și de programe care sunt destinate
rezolvării problemelor de supraveghere, de comandă, de diagnosticare și de prognozare a funcționării
instalațiilor industriale. Un calculator de proces poate fi privit ca o reuniune între un calculator n umeric universal
(de obicei un microcalculator sau un minicalculator) înzestrat cu un executiv sau un sistem de operare
corespunzător capabil să funcționeze în timp real și un sistem de interfață (cuplorul de proces) cu procesul
condus și operatorul tehnol og.1
În sistemele de reglare automată cu calculator de proces, denumite și sisteme numerice de reglare
automată, SNRA, legea de reglare este elaborată pe baza unui algoritm numeric implementat într -un echipament
numeric de conducere care într -un context ma i general este denumit și calculator de proces.
Calculatorul de proces este un calculator numeric echipat cu interfețe de intrare și ieșire pentru mărimi
analogice și/sau numerice înzestrat cu un sistem de operare în timp real (executiv de timp real) care -l face
capabil să funcționeze în așa fel încât toate operațiunile și calculele se desfășoară sub controlul unui așa numit
"ceas de timp real", suficient de rapid pentru a răspunde solicitărilor din exterior de achiziție și comandă.2
Interfețele de intrare analogică conțin convertoare analog – numerice (CAN), care transformă într -un
număr (număr – CAN) un semnal de tensiune sau curent conectat la calculator prin borne numerotate (etichetate),
denumite porturi de intrare analogică.
1 [15] – htt10
2 [5] – Sisteme discrete în timp
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
7
Interfețele de ieșire analo gică conțin convertoare numeric – analogice (CNA) care transformă un număr
într-o tensiune sau curent furnizat la borne numerotate (etichetate), denumite porturi de ieșire analogică. De cele
mai multe ori, semnalul la un port de ieșire este menținut consta nt până la o nouă conversie.
Evident există nenumărate aspecte privind comportarea unui astfel de sistem însă în cele ce urmează
vom privi f enomenele în mod echivalent din p unct de vedere sistemic.
Global, din punctul de vedere al inginerului sistemist, el este privit ca o "cutie neagră" cu borne de
intrare analogică și borne de ieșire analogică compatibile cu un semnal unificat, de exemplu tensiu ne [0,10] V
sau curent [4,20] mA .
Pentru implementarea unei bucle de reglare, referitoare la o anumită instalați e tehnologică se consideră
că s-a ales elementul de execuție și traductorul (vom considera un sistem de reglare convențională) deci s -a
definit partea fixă a sistemului având ca intrare mărimea de comandă
uF(t) = u(t)
și ca ieșire mărimea de reacție
r(t) = y(t)
ambele sub forma unor semnale unificate.
Din punctul de vedere al echipamentului de conducere bucla de reglare este privită ca o aplicație (sau o
nouă aplicație) implementarea fiind posibilă dacă se pot satisface o serie de cerințe privind resursele sistemului
și anume:
Resurse hardware
Resurse software
Resursele hard se referă în principal la existența unor porturi de intrare – ieșire libere, în cazul de față
analogice, și la memoria RAM și PROM solicitată de aplicație.
Când se alege un port pentru o aplicație, trebuie verificat dacă acesta satisface cerințe de precizie
(numărul de biți prin care se face conversia A – N sau N – A) și cerințe de rapiditate (frecvența de eșantionare
pentru portul respectiv).
Resursele soft se referă la capacitatea execu tivului de timp real de a prelua (să înglobeze) și această
aplicație, capacitate exprimată prin: resursele de timp de calcul, utilizarea unor proceduri existente, valorificarea
sistemelor de întreruperi etc.3
De exemplu, utilizatorul poate manipula o lege de tip PID analogică, având la dispoziție pentru ajustare
valorile parametrilor analogici K R , Ti , Td fără să -l intereseze legătura dintre aceste valori analogice și parametrii
din algoritmul numeric.
Când utilizatorul, un utilizator mai evoluat, do rește să implementeze structuri nestandard pentru
legile de reglare, evident el trebuie să manipuleze formele de implementare numerică a "intențiilor sale
analogice".
3 [5] – Sisteme discrete în timp
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
8
În acest context, structura de reglare cu calculator de proces reprezentată în Fig ura 1 ., poate fi privită
de către utilizatorul sau proiectantul buclei de reglare, referitor la partea fixă a sistemului de reglare de mai sus,
printr -o schemă bloc continuală ca în Fig ura 2 .
Figura 1 – Structura de reglare cu calcu lator de proces
Se presupune că legea de reglare prelucrează eroarea sistemului :
e(t) = v(t) – r(t)
Figura 2 – Schema bloc continuală
În cazul în care modelele matematice sunt liniare inva riante în timp și se urmărește numai co mportarea
forțată, se folosește descrierea prin funcții de transfer H R(s) respectiv H F(s). Pe această structură se pot utiliza
toate metodele de proiectare utilizate la sistemele continuale.4
Componentele de bază ale unui sistem de achiziție modern sunt ( Figura 3):
calculatorul personal (personal computer);
traductoarele (transducers);
condiționerul de semnale (signal conditioning);
echipamentele de achiziție și analiză a datelor (data acquisition and analysis hardware);
programele de achiziție (software).
Atât procesoarele moderne cât și arhitectura magistralelor de comunicație permit utilizarea
calculatoarelor personale în structura sistemelor de achiziție a datelor. Odată cu alegerea echipamentului de
4 [5] – Sisteme discrete în timp
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
9
achiziție și arhitecturii magistralei de comunicație trebuie să se opteze și pentru metodele de transfer al datelor
care vor fi folosite în procesul de achiziție și prelucrare.
Calculatorul care va fi utilizat pentru achiziția datelor poate afecta considerabil viteza maximă de
achiziție continuă a datelor; o alternativă modernă și flexibilă este cea care utilizează calculatoarele portabile.
Figura 3 – Structura unui sistem tipic de achiziție a datelor bazat pe PC
Dicționar: transducers = traductoare; signal conditioning = condiționer de semnale; data
acquisition and analysis hardware = echipament de achiziție a datelor și analiză; personal computer =
calculator personal (PC); software = programe.5
Traductoarele sesizează fenomenele fizice și generează semna lele electrice pe care le măsoară sistemul
de achiziție. De exemplu, termocuplele, termistoarele, etc. convertesc temperatura într -un semnal analogic
pe care un convertor analog -digital îl poate transforma în semnal numeric. La fel, alte tipuri de tr aductoare cum
ar fi cele de debit, de presiune, de forță etc., măsoară debitul, presiunea, forța, etc. și produc un semnal electric
proporțional cu parametrul fizic pe care îl monitorizează și care trebuie măsurat.
Echipamentele de achiziție au rolul de in terfață între calculator și mediul extern deoarece digitizează
semnalele analogice de intrare, astfel încât calculatorul să le poată interpreta.
O categorie aparte de programe utilitare o constituie programele de interfață, care îndeplinesc r olul de
"interpret" între utilizator și sistemul de operare.
Programul de achiziție transformă calculatorul și echipamentul de achiziție într -un instrument complet
de achiziție a datelor, analiză și prezentare. El constituie intermediar ul între programul de aplicație
și echipament, coordonând operațiile efectuate de echipamentul de achiziție și integrarea sa cu resursele
sistemului de calcul.
O posibilitate adițională de programare a echipamentului de a chiziție este utilizarea aplicației
software. Avantajul utilizării acesteia este că ea analizează și prezintă posibilitățile programului de
conducere. Programul de aplicație integrează de asemenea instrumentele de control cu achiziția de date.
5 [16] – htt12
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
10
Pentru a dezvolta un sistem de achiziție a datelor de înaltă calitate pentru măsurare și control
sau testare și măsurare, trebuie analizată detaliat fiecare componentă implicată. Deoarece componentele
unui sistem de achi ziție inclus în sistemul de calcul nu au posibilitatea de afișare, programul este singura
interfață cu sistemul. În acest caz, programul este componenta care leagă toate informațiile referitoare la
sistem și este elementul care controlează sis temul. Programul integrează traductoarele, condiționerele de
semnal, echipamentul de achiziție și le analizează ca un sistem de achiziție complet, funcțional.
Pentru a realiza o imagine completă a modului de implementare a unui regulator software pe un
microcontroller în capitolul I sunt prezentate concepte generale ale reglării automate, care cuprind structura
generală a unui sistem de reglare automată și legile tipizate de reglare.
În capitolul II este prezentată instalația LabVolt 3522 -05 pe care se va r ealiza experimtal reglarea
temperaturii și a debitului de aer cu ajutorul microcontroller -ului PIC18F8722.
În capitolul III este descris microcontroller -ul PIC18F8722, fiind compus din placa de dezvoltare
PICDEM PIC18 Explorer și programatorul PICkit 3 cu toate facilitățile lor necesare pentru conectarea la
instalați LabVolt 3522 -05 dar și pentru a realiza o bună interfață cu utilizatorul. Deasemenea sunt prezentate
concepte de bază ale limbajului MPLAB, folosit la programarea microcontroller -ului, precum ș i modalități de
programare a modulelor necesare pentru conducerea proceselor și pentru interfața cu utilizatorul.
Capitolul IV este rezultatului experimental, funcționarea instalației și a regulatorului implementat
software pe microcontroller -ul PIC18F872 2 și obșinerea graficelor de reglare cu osciloscopul HANTEK din
familia DS05000B.
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
11
1. Componente generale ale reglării automate
1.1. Structura generală a unui sistem de conducere
În orice sistem de conducere, în particular, de conducere automa tă, se deosebesc următoarele patru
elemente interconectate ca în Figura 4 :
a. Obiectul condus (instalația automatiza tă)
b. Obie ctul condu cător (dispoz itivul de conducere)
c. Sistemul de trans mitere și aplicare a comenzilor (deciziilor)
d. Sistemul informatic (de c ulegere si trans mitere a informațiilor privind obie ctul condu s).
Figura 4 – Structura general a unui sistem de conducere6
Obiectul conducător (dispozitivul de conducere) elaborează decizii (comenzi) care se aplică obiectului
condus, prin intermediu l elementelor de execuție, pe baza informațiilor obținute despre starea obiectului condus
prin intermediul mărimilor măsurate.
Deciziile de conducere au ca scop îndeplinirea de către mărimea condusă a unui program în condițiile
îndeplinirii ( exterminării ) unor criterii de calitate, a satisfacerii unor restricții , când asupra obiectului condus
acționează o serie de perturbații .
Structura de mai sus este o structură de conducere (sau în circuit închis) deoarece deciziile (comenzile)
aplicate la un moment dat sunt dependente și de efectul deciziilor anterioare. Aceasta exprimă circuitul închis
al informațiilor prin mărimile de reacție : fenomenul de reacție sau feedback.
6 [1] – Structuri și legi de reglare automată
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
12
Dacă lipsește legătura de reacție sistemul este în circuit deschis și se numește sistem de c omandă (în
particular, de comandă automată).
O astfel de structură se întâlnește în cele mai diverse domenii de activitate: tehnic, biologic, social,
militar etc., în cele ce urmează referindu -ne însă numai la cele tehnice.
Un sistem de conducere în struct ura de mai sus se poate numi sistem de conducere automată deoarece
este capabil să elaboreze decizii de conducere folosind mijloace proprii de informare.
Un caz particular de sisteme de conducere automată îl constituie sistemele de reglare automată (SRA).
Prin sistem de reglare automată se înțelege un sistem de conducere automată la care scopul conducerii
este exprimat prin anularea diferenței dintre mărimea condusă (reglată) și mărimea impusă (programul impus),
diferență care se mai numește abatere sau er oarea sistemului.
La cele mai multe sisteme de reglare automată mărimea reglată este chiar mărimea măsurată.
Procesul de anulare a erorii într -un SRA se efectuează folosin d două principii:
1. Principiul acțiunii prin discordanță (PAD) – în acest caz, acțiu nea de reglare apare numai după ce
abaterea sistemului s -a modificat datorită variației mărimii impuse sau a variației mărimii de ieșire provocată
de variația unei perturbații .
2. Principiul compensației (PC) – una sau mai multe mărimi perturbatoare sunt m ăsurate și se aplică la
elementele de execuție , comenzi care trebuie să compenseze pe această cale efectul acestor perturbații asupra
mărimii de ieșire transmis pe cale naturală. Are avantajul că poate realiza, în cazul ideal, compensarea perfectă
a anumit or perturbații fără ca mărimea de ieșire să se abată de la programul impus. Are dezavantajul compensării
numai a anumitor perturbații , nu a oricăror perturbații .
În cazul PAD, acțiunea de reglare apare numai după ce abaterea sistemului s -a modificat datori tă
variației mărimii impuse sau a variației mărimii de ieșire provocată de variația unei perturbații .7
Deci, întâi sistemul se abate de la program (" greșește ") și apoi se corectează. Este realizat prin
circuitul de reacție inversă. Are avantajul compensării efectului oricăror perturbații .
În cazul PC, una sau mai multe mărimi perturbatoare sunt măsurate și se aplică la elementele de
execuție , comenzi care să compenseze pe această cale efectul acestor perturbații asupra mărimii de ieșire
transmis pe cale naturală.
Are avantajul că poate rea liza, în cazul ideal, compensarea perfectă a anumitor perturbații fără ca
mărimea de ieșire să se abată de la programul impus. Are dezavantajul compensării numai a anumitor
perturbații, nu a oricăror perturbați i.
Un sistem de reglare care îmbină cele doua principii se numește sistem de reglare combinată.
7 [1] – Structuri și legi de reglare automată
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
13
1.2. Legi tipizate de reglare
1.2.1. Prezentare generală
În practica industrială a reglării automate s -au impus așa numitele legi de reglare de tip PID
(Proporțional -Integrator -Derivator) sau elemente de tip PID, care satisfac în majoritatea situațiilor cerințele
tehnice impuse sistemelor de reglare convențională . Se pot utiliza diversele combinații ale celor trei
componente: P = proporțional ; I = integrator; PI = propo rțional -integrator; D = derivator, ideal și real, PD =
proporțional -derivator ideal și real, PID = Proporțional -integrator -derivator, ideal și real în diferite variante.
Prin utilizarea acestor legi tipizate în cadrul unor regulatoare tipizate, proiectare a dimensional -valorică
a legii de reglare se reduce la alegerea tipului de lege și poziționarea unor butoane prin care se prescriu valorile
parametrilor acestor legi rezultate în urma proiectării analitice a sistemului.
Nu se poate stabili precis efectul f iecărei componente a unei legi de tip PID asupra calității unui SRA,
deoarece acestea depind de structura sistemului, de dinamica instalației automatizate.
Totuși se pot face următoarele precizări:
Componenta proporțională , (exprimată prin factorul de proporționalitate KR), determină o comandă
proporțională cu eroarea sistemului. Cu cât factorul de proporționalitate este mai mare cu atât precizia
sistemului în regim staționar este mai bună dar se reduce rezerva de stabilitate putând conduce în
anumite cazur i la pierderea stabilității sistemului.
Componenta integrala , exprimată prin constanta de timp de integrare T i determină o comandă
proporțională cu integrala erorii sistemului din care cauză, un regim staționar este posibil numai dacă
această eroare este nulă. Existenta unei componente I într -o lege de reglare este un indiciu clar că
precizia sistemului în regim staționar (dacă se po ate obține un astfel de regim) este infinită. În regim
staționar , de cele mai multe ori componenta I determină creșterea oscilabilității răspunsului adică
reducerea rezervei de stabilitate.
Componenta derivativă , exprimată prin constanta de timp de derivare Td determină o comandă
proporțională cu derivata erorii sistemului. Din această cauză, componenta D realizează o anticip are a
evoluției erorii permițând realizarea unor corecții care reduc oscilabilitatea răspunsului. Nu are nici -un
efect în regim staționar .
Deoarece aceste tipuri de comportări se întâlnesc și la alte sisteme nu numai în cazul regulatoarelor, în
cele ce ur mează se vor considera intrarea u R = u ieșirea y R = y iar funcția de transfer H R(s)=H(s).8
8 [1] – Structuri și legi de reglare automată
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
14
1.2.2. Legea de tip P
Printr -o lege de tip proporțional , se descrie comportarea intrare -ieșire a unui element nedinamic (de tip
scalar ) sau comportarea în regim staționa r a unui element dinamic, eventual descris printr -o funcție de transfer
H(s), considerând această comportare liniară într -un domeniu.
Pentru o caracteristică statică Y=F(U), ca în Figura 5 , se poate aproxima o comportare liniara pentru
u ϵ [Umin, U max] și y ϵ[Ymin,Ymax] cu Y min ϵ F(U min), putând avea Y max ϵ F(U max).
Figura 5 – Caracteristica static Y=F(U)
În afara limitelor min și max pentru intrare sau ieșire , comportarea fie nu este posibilă tehnologic fie nu
este de dori t.
De exemplu, în cazul elementelor de automatizare o anumită comportare declarată de constructor este
garantată numai în domeniul de variație al semnalului unificat: [0, 10]V, [4, 20]mA, [0.2 , 1]bar etc.
Pentru un sistem dinamic, dependența intrare-ieșire în regim staționar este aproximată în aceste domenii
printr -o relație liniară de forma
Y = Y min + K p (U – Umin), U = u(∞), Y = y(∞) , (1.1)
unde K p repre zintă factorul de proporționalitate sau factorul de amplificare de poziție .
El se poate determina experimental prin raportul dintre variația mărimii de ieșire în regim staționar și
variația mărimii de intrare în regim staționar care a produs acea ieșire
Dacă o anumită valoare staționară este apreciată (aproximată la un moment finit de timp t 0) atunci se
utilizează relația
ust (t0) = u(∞) = U , y st (t0) = y(∞) = Y, (1.2)
înțelegând că la momentul t = t 0 este atins un regim staționar .
Dacă în domeniul de liniaritate, obiectul este descris printr -o funcție de transfer H(s) atunci,
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
15
Kp = lim
𝑠→0𝐻(𝑠) (1.3)
Dacă H(s) nu are caracter integrator,
Kp = H(0) (1.4)
Factorul de proporționalitate este o mărime dimensională, [K p] = [Y] /[U] .
Reamintim că atunci când se utilizează funcția de transfer pentru descrierea comportării intrare -ieșire
(evident valabilă numai în domeniul de liniaritate) a ceasta descrie variația față de un regim staționar remarcat
la un moment t 0, considerat t 0 = 0, așa cum este ilustrat în Figura 6 .
Y(s) = H(s)U(s) , U(s) = L{u(t) – ust (t)} (1.5)
Y(s)=L{y(t)−yst(t0)}⇒y(t)=yst(t0)+L−1{H(s)U(s)},t≥t0=0 (1.6)
În particular, regimul staționar poate fi r eprezentat prin valorile minime
ust (t0) = Umin, y st (t0) = Ymin
Figura 6 – Funcția de transfer ce variază față de un regim staționar remarcat la un moment t 0
Un element de tip P propriu -zis, este un element nedinamic, caracterizat prin funcția de transfer
H(s) = K R , deci K p = K R
y(t) = Ymin + KR [u(t) – Umin] (1.7)
De foarte multe ori în practică, informația transmisă sau prelucrată este exprim ată prin variația
procentuală a semnalului purtător de informație față de domeniul său de variație , astfel c ă valoarea minimă a
semnalului exprimă mai clar informația zero (0%) iar valoarea maximă exprimă informația totală (100%).
O valoare procentuală în afara domeniului [0,100]% înseamnă un semnal în afa ra domeniului [min,
max].
Notând prin Du domeniul de variație al intrării, de fapt lungimea interv alului de variație , iar prin D y
domeniul de variație al ieșirii ,
Du = Umax – Umin, Dy = Ymax – Ymin (1.8)
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
16
se utilizează următoarele relații de reprezentare procentuală:
𝑢%(𝑡)=𝑢(𝑡)−𝑈𝑚𝑖𝑛
𝐷𝑢∙100
𝑈=𝑈−𝑈𝑚𝑖𝑛
𝐷𝑢∙100
∆𝑢%(𝑡)=∆𝑢(𝑡)
𝐷𝑢∙100
𝑦%(𝑡)=𝑦(𝑡)−𝑌𝑚𝑖𝑛
𝐷𝑦∙100
𝑌=𝑌−𝑌𝑚𝑖𝑛
𝐷𝑦∙100
∆𝑦%(𝑡)=∆𝑦(𝑡)
𝐷𝑦∙100 𝑢(𝑡)=𝑈𝑚𝑖𝑛 +𝑢%(𝑡)
100∙𝐷𝑢
𝑈=𝑈𝑚𝑖𝑛 +𝑈%
100∙𝐷𝑢
∆𝑢(𝑡)=∆𝑢%(𝑡)
100∙𝐷𝑢
𝑦(𝑡)=𝑌𝑚𝑖𝑛 +𝑦%(𝑡)
100∙𝐷𝑦 (1.9)
𝑌=𝑌𝑚𝑖𝑛 +𝑌%
100∙𝐷𝑦
∆𝑦(𝑡)=∆𝑦%(𝑡)
100∙𝐷𝑦
În domeniul complex, d acă Y(s)=H(s)U(s), se definește funcția de transfer relativă Hrel(s) ca fiind
raportul dintre transformata Laplace a ieșirii exprimată procentual ∆𝑌%(𝑠)=𝐿{∆𝑦%(𝑡)} și transformata
Laplace a intrării exprimată procentual ∆𝑈%(𝑠)=𝐿{∆𝑢%(𝑡)}.
∆𝑌%(𝑠)=𝐻𝑟𝑒𝑙(𝑠)∙∆𝑈%(𝑠) 𝐻𝑟𝑒𝑙(𝑠)=𝐷𝑢
𝐷𝑦∙𝐻(𝑠) (1.10)
Se poate defini factorul de proporționalitate relativ sau procentual ca fiind raportul dintre variația
procentuală a ieșirii în regim staționar și variația procentuală în regim staționar a intrării care a produs acea
ieșire .
𝐾𝑝𝑟𝑒𝑙=∆𝑦%(∞)
∆𝑢%(∞) 𝐾𝑝𝑟𝑒𝑙=𝐷𝑢
𝐷𝑦∙𝐾𝑝 (1.11)
Evident, K p% este o mărime adimensională.
În cazul unei legi de reglare de tip P , evident 𝐾𝑝𝑟𝑒𝑙=𝐾𝑅𝑟𝑒𝑙.
Factorul de amplificare de poziție (factorul de propor ționalitate ) nu d ă informa ții privind rezerva de
liniaritate în raport cu m ărimea de intrare.
Prin banda de propor ționalitate , notat ă BP%, se înțelege o măsura a amplific ării unui sistem, exprimata
prin procentul din domeniul m ărimii de intrare care determina la ieșire o valoare de 100% din domeniul acesteia.
În general se poate spune ca daca intrarea are o variație procentuala, între doua regimuri staționare
consecutive, egala cu BP%, ieșirea suferă o varia ție procentuala, între aceste regimuri staționare , egala cu 100%.
În aceast ă situa ție amplificarea de poziție este exprimata prin numărul BP%.
Dependen ța intrare -ieșire , în regim staționar , a mărimilor relativ e este reprezentata în Fig ura 7.
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
17
Figura 7 – Dependen ța intrare -ieșire, în regim sta ționar, a mărimilor relative
Panta acestor caracteristici este factorul de propor ționalitate relative 𝐾𝑝𝑟𝑒𝑙(𝐾𝑅𝑟𝑒𝑙), astfel c ă,
𝑌%=𝐾𝑝𝑟𝑒𝑙𝑈% 𝑈%∈[0,100 ]
𝑌%=100 =>𝑈%=𝐵𝑃% =>𝐵𝑃%=100
𝐾𝑝𝑟𝑒𝑙=100
𝐾𝑝∙𝐷𝑦
𝐷𝑢
𝐵𝑃%=100
𝐾𝑝𝑟𝑒𝑙=100
𝐾𝑝∙𝐷𝑦
𝐷𝑢 (1.12)
Banda de proporționalitate este un număr adimensional. Factor de proporționalitate mare înseamnă
banda de proporționalitate mica si invers.9
1.2.3. Legea de tip I
Relația intrare -ieșire în domeniul timp este dată de ecuația diferențială
𝑇𝑖𝑑𝑦(𝑡)
𝑑𝑡=𝐾𝑅𝑢(𝑡) (1.13)
sau prin soluția
𝑦(𝑡)=𝑦(𝑡0)+𝐾𝑅
𝑇𝑖 ∫𝑢(𝜏)𝑑𝜏𝑡
𝑡0 (1.14)
Funcția de transfer este:
𝐻(𝑠)=𝐾𝑅
𝑇𝑖1
𝑠 (1.15)
unde:
𝐾𝑅 este factorul de proporționalitate, 𝐾𝑅=[𝑌]
[𝑈]
9 [1] – Structuri și legi de reglare automată
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
18
𝑇𝑖 este constanta de timp de integrare [ 𝑇𝑖] = sec
Funcția de t ransfer exprimată prin ecuația (1.15) se poate exprima printr -un singur parametru, constanta
de timp echivalentă 𝑇𝑖∗,
𝐻(𝑠)=1
𝑇𝑖∗𝑠=𝑌(𝑠)
𝑈(𝑠) , 𝑇𝑖∗=𝑇𝑖
𝑣𝑎𝑙{𝐾𝑅} (1.16)
În această expresie, numărul 1 de la numărător este un factor dimensional, înțelegând că ar fi un factor
de proporț ionalitate 𝐾𝑅=1∙[𝑌][𝑈]⁄ .
Deoarece 𝐾𝑅=𝑣𝑎𝑙{𝐾𝑅}∙[𝑌]
[𝑈], unde 𝑣𝑎𝑙{𝐾𝑅} înseamnă valoarea mărimii fizice 𝐾𝑅,
𝐻(𝑠)=𝐾𝑅
𝑇𝑖𝑠=𝑣𝑎𝑙{𝐾𝑅}[𝑌]
[𝑈]
𝑇𝑖𝑠=1[𝑌]
[𝑈]
(𝑇𝑖
𝑣𝑎𝑙{𝐾𝑅})=1
𝑇𝑖∗𝑠 (1.17)
Răspunsul la intrare treaptă 𝑢(𝑡)=𝑈∙1(𝑡−𝑡0), reprezentat în Figura 8, este
𝑦(𝑡)=𝑦(𝑡0)+𝐾𝑅
𝑇𝑖(𝑡−𝑡0)∙𝑈,𝑡≥𝑡0 (1.18)
Figura 8 – Răspunsul la intrare treaptă al unui element de tip I
Se observă că panta la intrar e constantă este
𝑦̇(𝑡)=𝐾𝑅
𝑇𝑖𝑈 (1.19)
De notat că panta unui element integrator depinde de valoarea to tală a intrării, nu de variația acesteia.
Constanta de timp de integrare echivalentă 𝑇𝑖∗ reprezintă intervalul de timp in care mărimea de ieșire
creste cu o valoare egală cu valoarea intrării constantă aplicată.
Această definiție permite determinarea rapidă a constantei 𝑇𝑖∗ pe graficul răspunsului la intrare treaptă
dedus expermental. În Figura 6 este prezentată evoluția răspunsului unui element I la intrări constante pe
porțiuni.10
10 [1] – Structuri și legi de reglare automată
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
19
Figura 9 – Răspunsul la intrări co nstante pe porțiuni al unui element I
1.2.4. Legea de tip D -real
Relația intrare -ieșire este:
𝑇𝛾=𝑑𝑦(𝑡)
𝑑𝑡+𝑦(𝑡)=𝐾𝑅𝑇𝑑𝑑𝑢(𝑡)
𝑑𝑡 (1.20)
Funcția de transfer este:
𝐻(𝑠)=𝐾𝑅𝑇𝑑𝑠
𝑇𝛾𝑠+1 (1.21)
𝐾𝑅 = factorul de proporționalitate
𝑇𝑑 = constant a de timp de integrare
𝑇𝛾 = constanta de timp parazită
Ecuația de stare se obține exprimând funcția de transfer proprie într -o sumă dintre un element scalar și
un element strict propriu ca în Figura 10 .
𝐻(𝑠)= 𝐾𝑅𝑇𝑑
𝑇𝛾−𝐾𝑅𝑇𝑑
𝑇𝛾∙1
𝑇𝛾𝑠+1 (1.22)
Figura 10 – Ecuația de stare
Din figura de mai sus, se obține:
𝑥̇(𝑡)=−1
𝑇𝛾𝑥(𝑡)+𝐾𝑅𝑇𝑑
𝑇𝛾2𝑢(𝑡) (1.23)
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
20
𝑦(𝑡)=−𝑥(𝑡)+𝐾𝑅𝑇𝑑
𝑇𝛾𝑢(𝑡) (1.24)
Răspunsul la intrare treaptă 𝑢(𝑡)=∆𝑢∙1(𝑡) este
𝑦(𝑡)=𝐾𝑅𝑇𝑑
𝑇𝛾∆𝑢−𝐾𝑅𝑇𝑑
𝑇𝛾(1−𝑒−𝑡
𝑇𝛾)∆𝑢, 𝑡≥0 (1.25)
și prezentat în Figura 11 .11
Figura 11 – Răspunsul la intrare treaptă al unui element D -real
Se observă că ieșirea în regim staționar a unui element D este nulă. Elementul D acționează numai în
regim tra nzitoriu. El se mai numește și ”element forțator”.
Caracteristicile Bode sunt prezentate în Figura 12, de unde se observă că elementul D -real apare ca un
filtru trece -sus.
Figura 12 – Caracteristicile Bode
11 [1] – Structuri și legi de reglare automată
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
21
1.2.5. Legea de tip PI
Relația intrare -ieșire în domeniul timp este exprimată prin ecuația diferențială
𝑇𝑖𝑑𝑦(𝑡)
𝑑𝑡=𝐾𝑅𝑇𝑖𝑑𝑢(𝑡)
𝑑𝑡+𝐾𝑅∙𝑢(𝑡) (1.26)
sau prin soluția
𝑦(𝑡)=𝑦(𝑡𝑜)+𝐾𝑅[𝑢(𝑡)−𝑢(𝑡0)]+𝐾𝑅
𝑇𝑖∫𝑢(𝜏)𝑑𝜏𝑡
𝑡0, 𝑡≥𝑡0 (1.27)
Funcția de transfer este
𝐻(𝑠)=𝐾𝑅[1+1
𝑇𝑖𝑠]=𝐾𝑅𝑇𝑖𝑠+1
𝑇𝑖𝑠=𝐾𝑅(𝑠+𝑧)
𝑠, 𝑧=1
𝑇𝑖 (1.28)
unde: 𝐾𝑅 este factorul de proporționalitate;
𝑇𝑖 este constanta de timp de integrare.
Se observă că un element PI are un pol în originea planului complex s=0 și un zerou s= -1/𝑇𝑖, așa cum
se poate vedea în Figura 10.
Caracteristicile Bode:
Caracteristicile amplitudine -pulsație A(ω) și fază -pulsație φ(ω) sunt reprez entate la scară logaritmică în Figura
13.
𝐴(𝜔)=𝐾𝑅√(𝜔𝑇𝑖)2+1
𝑇𝑖𝜔 , 𝜑(𝜔)=𝑎𝑟𝑐𝑡𝑔 (𝜔𝑇𝑖)−𝜋
2 (1.29)
Structura in care se evidențiază c ele două componente P și I este dată în Figura 1 4.
Figura 13 – Reprezentarea caracteristicilor Bode la scară logaritmică a unui element P I
Figura 14 – Reprezentarea Simulink a unui element PI
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
22
Ecuația de stare este
𝑥̇=𝐾𝑅
𝑇𝑖𝑈(𝑡)
𝑦(𝑡)=𝑥(𝑡)+𝐾𝑅𝑢(𝑡) (1.30)
În expresia (1. 27) starea inițială este exprimată prin 𝑥(𝑡0)=𝑦(𝑡0)−𝐾𝑅𝑢(𝑡0).
Răspunsul la intrare treaptă, prezentat în Figura 1 5, este
𝑦(𝑡)=𝑦(𝑡0)+𝐾𝑅[𝑈−𝑈0]+𝐾𝑅
𝑇𝑖𝑈(𝑡−𝑡0), 𝑡≥𝑡0 (1.31)
În Figura 16 este prezentat răspunsul unui element PI la intrări constante pe porțiuni, evidențiind modul
de determinare al parametr ilor K R,Ti pe diferitele porțiuni ale acestui r ăspuns.
Figura 16 – Răspunsul unui element PI la intrări constante pe porțiuni
Raportul K R/Ti se poate calcula cunoscând doua puncte ale u nei porțiuni a raspunsului, y(t 1)și y(t 2) și
valoarea constantă U a intrării care a dete rminat acel răspuns liniar.12
12 [1] – Structuri și legi de reglare automa tă
Figura 15 – Răspunsul la intrare treaptă pentru un element PI
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
23
1.2.6. Legea de tip PD -real
Relația intrare -ieșire:
𝑇𝛾𝑑𝑦(𝑡)
𝑑𝑡+𝑦(𝑡)=𝐾𝑅𝑇𝑑𝑑𝑢(𝑡)
𝑑𝑡 (1.32)
Funcția de transfer:
𝐻(𝑠)=𝐾𝑅𝑇𝑑𝑠
𝑇𝛾𝑠+1 (1.33)
KR = factor de proporționalitate
Td = constanta de timp de derivare
Tγ = constanta de timp parazită
Elementul D -real se poate realiza și cu ajutorul unui element I. Funcția de transfer echivalentă
structurii conexiunii din Figura 1 7 este:
𝐻(𝑠)=𝛼
1+𝛼1
𝑇𝑖𝑠=𝛼𝑇𝑖𝑠
𝑇𝑖𝑠+𝛼=𝑇𝑖𝑠
𝑇𝑖
𝛼𝑠+1=𝑇𝑑𝑠
𝑇𝛾𝑠+1 (1.34)
unde constantele de timp echivalente obținute sunt: T d = T i și T γ = T i/a.
Figura 17 – Structura conexiunii pentru re alizarea elementului D -real cu ajutorul unui element I
Figura 18 – Structura conexiunii pentru realizarea elementului PD -real
𝐻(𝑠)=𝐾𝑅𝑇𝑑
𝑇𝛾+𝐾𝑅(1−𝑇𝑑
𝑇𝛾)∙1
𝑇𝛾𝑠+1 (1.35)
Ecuația de stare se obține exprimând H(s) ca în Figura 1 7 și Figura 1 8.
𝑥̇(𝑡)=−1
𝑇𝛾𝑥(𝑡)+𝐾𝑅
𝑇𝛾(1−𝑇𝑑
𝑇𝛾)𝑢(𝑡) (1.36)
𝑦(𝑡)=−𝑥(𝑡)+𝐾𝑅𝑇𝑑
𝑇𝛾𝑢(𝑡) (1.37)
Răspunsul la intrare treaptă în condiții inițiale nule și caracteristicile Bode se prezintă pentru trei
situații:
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
24
a) 𝑇𝑑>𝑇𝛾. Este predominant caracterul derivator. Se comportă ca un filtru trece – sus
cu avans de fază, ca în Fig ura 1 9 și Figura 20 .
Figura 19 – Răspunsul la intrare rampă a unui sistem de reglare cu lege PD –
real comportându -se ca un filtru trece – sus
Figura 20 – Caracteristicile Bode ale unui sistem de reglare cu l ege PD -real
comportându -se ca un filtru trece – sus
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
25
b) 𝑇𝑑<𝑇𝛾. Este predominant caracterul integrator. Se comportă ca un filtru trece – jos
cu întârziere de fază, ca în Figura 21 și Figura 22 .
Figura 21 – Răspunsul la i ntrare rampă a unui sistem de reglare cu lege PD –
real comportându -se ca un filtru trece – jos
Figura 22 – Caracteristicile Bode ale unui sistem de reglare cu lege PD -real
comportându -se ca un filtru trece – jos
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
26
c) 𝑇𝑑=𝑇𝛾. Comportarea intrare-ieșire este de tip scala r, însă răspunsul liber este de
ordinul întâi deoarece sistemul este necontrolabil, așa cum se poate vedea și în schema din
Figura 18.13
Evoluțiile stării și ieșirii sunt:
𝑥(𝑡)=𝑒−𝑡
𝑇𝛾∙𝑥(0);𝑦(𝑡)=𝐾𝑅𝑢(𝑡)+𝑒−𝑡
𝑇𝛾∙𝑥(0) (1.38)
1.2.7. Legea de tip PID -real
În funcție de modul de realizare fizică se deosebesc mai multe structuri.
În urma masivei dezvoltări a siste melor numerice a venit și necesitatea de realizare a regulatoarelor
sub formă numerică. Avantajele folosirii sistemelor numerice pentru implementarea regulatoarelor sunt:
Posibilitatea de realizare software a regulatoarelor;
Ușurința de modificare a regula toarelor;
Flexibilitate;
Posibilitatea de păstrare a evoluției în memorie;
Pentru a putea implementa un regulator numeric pentru a controla un proces continuu semnalele
primite de la traductoare trebuie să fie eșantionate ( discretizate ).
Aceasta înseamnă că semnalul nu mai este continuu, ci este construit dintr -o multitudine de puncte
măsurate la anumite intervale de timp bine determinate.
Perioada dintre două masurători se numește perioadă de eșantionare T e.
În urma acestor modi ficări apare necesitatea de a calcula o formă discretă a funcției de transfer pentru
regulatoarele numerice.
Funcția de transfer discretizată14 are forma:
)]2()1(2)([ )( )]1()([ )1( )( te te teTTKteTTKteteK tutu
eDp
iep
P
13 [1] – Structuri și legi de reglare automată
14 [4] – Discretised PID Controllers
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
27
1.2.7.1. Conexiune paralel dintre un element I și un element PD real
Struc tura este ilustrată în Figura 23.
[ PID -real = I + PD -real = (Aperiodic) ● (PID -ideal) ]
Figura 23 – Structura unui PID -real realizat prin conexiune paralel dintre un element I
și un element PD -real
A. Funcția de transfer
Funcția de transfer realizată:
𝐻(𝑠)=𝐾𝑅[1
𝑇𝑖𝑠+𝑇𝑑𝑠+1
𝑇𝛾𝑠+1] (1.39)
poate fi echivalată printr -o conexiune serie dintre un element aperiodic de ordinul I și un element PID -ideal.
𝐻(𝑠)=𝐾𝑅𝑇𝑖𝑇𝑑𝑠2+(𝑇𝑖+𝑇𝛾)+1
𝑇𝑖𝑠(𝑇𝛾𝑠+1)=𝐾𝑅∗(1+1
𝑇𝑖∗𝑠+𝑇𝑑∗𝑠)∙1
𝑇𝛾𝑠+1 (1.40)
unde:
𝐾𝑅∗=𝑇𝑖+𝑇𝛾
𝑇𝑖𝐾𝑅
𝑇𝑖∗=𝑇𝑖+𝑇𝛾 (1.41)
𝑇𝑑∗=𝑇𝑖𝑇𝑑
𝑇𝑖+𝑇𝛾
B. Ecuați ile de stare
Ecua țiile de stare ale acestui element se obțin prin concatenarea ecuațiilor elementului I și PD -real:
𝑥1̇(𝑡)=𝐾𝑟
𝑇𝑖𝑢(𝑡)
𝑥2̇(𝑡)=−1
𝑇𝛾𝑥2(𝑡)+𝐾𝑅
𝑇𝛾(1−𝑇𝑑
𝑇𝛾)𝑢(𝑡) (1.42)
𝑦(𝑡)=𝑥1(𝑡)+𝑥2(𝑡)+𝐾𝑅𝑇𝑑
𝑇𝛾𝑢(𝑡)
Sub forma matriceal -vectorială acestea se rescriu:
𝑥̇=𝐴𝑥+𝑏𝑢
𝑦=𝑐𝑇𝑥+𝑑𝑢 (1.43)
unde,
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
28
𝐴=[0 0
−0−1
𝑇𝛾];𝑏=[𝐾𝑅
𝑇𝑖
𝐾𝑅
𝑇𝛾(1−𝑇𝑑
𝑇𝛾)] ;𝑐=[1
1] ;𝑑=𝐾𝑅𝑇𝑑
𝑇𝛾 (1.44)
C. Răspunsul la intrare treaptă
Răspunsul la intrare treaptă pe care se ilustrează modul de determinare a parametrilot funcției de transfer
este reprezentat în Figura 2 4 pentru T d < T γ și Figura 2 5 pentru T d > T γ.
Figura 24 – Răspunsul la intrare treaptă pentru
Td < T γ
Figura 25 – Răspunsul la intrare treaptă pentru
Td > T γ.
Pentru determinarea valorilor parametrilor K R, Ti, Td, Tγ pe răspunsul la o variație treaptă Δu aplicată
la un moment t 0, pornind dintr -un regim staționar, u(t) = 0, y(t) = y st(t0) pentru t < t 0, se evidențiază faptul că
răspunsul este suma dintre componenta I și componenta PD -real15
yPID-r = y I (t) + yPD-r (t) (1.45)
procedând astfel:
a) În punctul inițial (A) al evoluției se duce o paralelă la porțiunea rectilinie a răspunsului. Aceasta
reprezintă componenta y I(t);
b) Se prelungeș te porțiunea rectilinie a răspunsului până taie în punctul C abscisa momentului inițial;
c) Se determină componenta y PD-r a răspunsului efectuând punct cu punct scăderea
yPD-r(t)=y PID-r(t)-yI(t) (1.46)
d) Din vârful B al răspunsului se duce o tangentă la componenta y PD-r(t) rezultând pe ordonata punctului
C segmentul CD;
15 [1] – Structuri și legi de reglare automată
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
29
e) Se determină panta răspunsului determinând în zona rectilinie valorile răspu nsului în două momente t 1,
t2, y1=yPID-r(t1), y 2=yPID-r(t2);
f) Cunoscând valorile în unități ale mărimii y corespunzătoare segmentelor AB, AC, ți în timp pentru CD
se calculează parametrii cu relațiile:
𝐾𝑅∆𝑢=𝐴𝐶 ; 𝐾𝑅𝑇𝑑
𝑇𝛾∆𝑢=𝐴𝐶 ;
𝐾𝑅
𝑇𝑖=𝑦2−𝑦1
(𝑡2−𝑡1)∙𝑈 (aici U = ∆𝑢) (1.47)
Răspunsul unui astfel de element ( Td > T γ) la intrări constante pe porțiun i este prezentat în Figura 26.
Figura 26 – Răspunsul dintre componenta I și componenta PD -real pentru Td > T γ
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
30
1.2.7.2. Conexiune paralel dintre un element PI și un element D -real
PID-real ⟺𝑃+𝐼+𝐷𝑟𝑒𝑎𝑙 ⟺(𝑃𝐼𝐷𝑖𝑑𝑒𝑎𝑙∙(𝐸𝑙𝑒𝑚 .𝑎𝑝𝑒𝑟𝑖𝑜𝑑𝑖𝑐 ))⟺𝐼+𝑃𝐷 𝑟𝑒𝑎𝑙
Structura acestei conexiuni paralel și formele ei echivalente sunt indicate în Figura 27 .
Figura 27 – Structura unui PID -real cu conexiune paralel dintre un element PI și un element D -real
Funcția de transfer realizată este:
𝐻(𝑠)=𝐾𝑅[1+1
𝑇𝑖𝑠+𝑇𝑑𝑠
𝑇𝛾𝑠+1]=𝐾𝑅𝑇𝑖(𝑇𝑑+𝑇𝛾)𝑠+(𝑇𝑖+𝑇𝛾)𝑠+1
𝑇𝑖𝑠(𝑇𝛾𝑠+1) (1.48)
𝐻(𝑠)=𝐾𝑅∗(1+1
𝑇𝑖∗𝑠+𝑇𝑑∗𝑠)∙1
𝑇𝛾𝑠+1 (1.49)
unde:
𝐾𝑅∗=𝑇𝑖+𝑇𝛾
𝑇𝑖𝐾𝑅
𝑇𝑖∗𝑠=𝑇𝑖+𝑇𝛾 (1.50)
𝑇𝑑∗=𝑇𝑖(𝑇𝑑+𝑇𝛾)
𝑇𝑖+𝑇𝛾
Sctructurile 1.2.5.2.1 și 1.2.5.2.2 sunt echivalente,
𝐻(𝑠)=𝐾𝑅[1+1
𝑇𝑖𝑠+𝑇𝑑𝑠
𝑇𝛾𝑠+1]=𝐾𝑅[1
𝑇𝑖𝑠+(𝑇𝑑+𝑇𝛾)𝑠
𝑇𝛾𝑠+1] , (𝑇𝑑+𝑇𝛾)=𝑇𝑑′ (1.51)
Astfel că toate tehnicile de determinare a parametrilor funcției de transfer pentru determ inarea unui
element D -real realizat cu ajutorul unui element I rămân valabile, însă în urma aplicării acestor tehnici se obțin
din care mărimile: 𝐾𝑅,𝑇𝑖,𝑇𝑑 și 𝑇𝑑′ = 𝑇𝑑+𝑇𝛾.
Elementele de tip D -real se realizează folosind el emente de tip integrator. Structura conexiunii este
regăsită mai jos în Figura 28 . 16
16 [1] – Structuri și legi de reglare automată
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
31
Figura 28 – Structura unui element D -real realizat cu ajutorul unui element I
𝐻(𝑠)= 𝛼
1+𝛼∙1
𝑇𝑖𝑠=𝛼𝑇𝑖𝑠
𝑇𝑖𝑠+𝛼=𝑇𝑖𝑠
𝑇𝑖
𝛼𝑠+1=𝑇𝑑𝑠
𝑇𝛾𝑠+1 (1.52)
unde constantele de timp echivalente obținute sunt 𝑇𝑑=𝑇𝑖 și 𝑇𝛾=𝑇𝑖
𝛼
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
32
2. Prezentarea insta lației de laborator LabVolt 3522 -05
2.1. Noțiuni teoretice
Scopul primar al controlului este menținerea unei variabile fizice, numită variabilă controlată, la o
valoare specifică cerută sau într -o gamă cerută. Această variabilă ar putea fi, de exemplu, tempe ratura, debitul,
etc. Pentru a controla procesul, pot fi utilizate controlul sistemului în buclă deschisă sau controlul sistemului în
buclă închisă.
Instalația are două părți, una pentru controlul temperaturii și cealaltă pentru controlul debitului de aer.
Cele două componente pot fi folosite simultan pentru diferite configurații.
Partea de reglare a temperaturii este alcătuită dintr -o rezistență electrică și un traductor de temperatură.
Rezistență electrică poate fi comandată prin tensiune între 0 -5V sau curent 4 -20mA. Traductorul de temperatură
transmite o tensiune între 0 -5V sau curent 4 -20mA.
Pe lângă traductor și elementul de execuție se mai găsesc și două potențiometre pentru calibrarea
senzorului de temperatură.
Partea de reglare a temperaturii es te prezentată în Figura 26
Figura 29 – Reglarea temperaturii
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
33
Pentru reglarea debitului de aer instalația folosește un traductor de debit ce măsoară debitul de aer trecut
printr -un tub venturi. Ca element de execuție se folosește un ventilator.
La fel ca la partea de reglare a temperaturii sunt folosite semnale unif icate de tensiune 0 -5V și curent
4-20mA.
Partea de reglare a debitului arată ca în Fi gura 27 .
Figura 30 – Reglarea debitului de aer
Pentru a se face reglarea corect, masa instalației trebuie conectată la masa regulatorului.
2.2. Componentele instalației de reglare a
temperaturii/ debitului
Instalația de control a proceselor de temperatură sau debit LabVolt permite controlul temperaturii ș i
debitului. Mai mult, temperatura procesului poate fi controlată fie în modul “în călzire” fie în modul “răcire”.
În esență instalația constă dintr -un tub ce permite trecerea aerului, un ventilator utilizat pentru
circularea aerului, un amortizor utilizat pentru modificarea de sarcini sau generarea perturbațiilor , un element
de încălzire și traductoare de temperatură și debit.
Figura 31 arată interiorul instalației . Identificarea și descrierea fiecărei componente a instalației este
prezentată mai jos.
1. Canalul de intrare: deschidere cu grilaj prin care aerul intră în tub.
2. Încălzitorul: constă dintr -un element de încălzire care convertește energia electrică în căldură și un
radiator pentru disiparea căldurii.
3. Tub Venturi: secțiune îngustată a tubulu i de-a lungul căreia este creată o presiune diferențială când
este parcursă de aer. Cu cât debitul de aer care trece prin tub este mai mare, cu atât presiunea diferențială este
mai mare.
4. Amortizorul: un orificiu în tub care este utilizat pentru crearea de perturbații prin modificarea
debitului de aer care curge prin tub.
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
34
5. Ventilatorul: este utilizat pentru a crea un debit de aer prin tub. Când ventilatorul se rotește, el trage
aerul în tub prin orificiul de intrare și îl trimite către ieșire.
6. Ieșire a tubului: deschidere cu grilaj prin care aerul părăsește tubul.
Figura 31 – Instalația de control a proceselor de temperatură și debit17
7. Motorul ventilatorului: convertește tensiunea sau curentul de la intra rea de control a ventilatorului
într-o putere proporțională utilizată pe ntru antrenarea ventilatorului.
8. Traductorul de debit: măsoară presiunea diferențială de-a lungul tubului și produce o tensiune
standa rdizată (0 -5 V) sau un curent ( 4-20 mA) proporți onale cu presiunea ce pot fi transmise la regulator.
9. Traductorul de te mperatură: produce o tensiune ( 0-5 V) și un curent (4 -20 mA) proporționale cu
temperatura radiatorului. În acest scop, traductorul măsoară o tensiune generată de un senzor semiconduct or și
o convertește într-una utilă, tensiune sau curent standardizate care pot fi transmise la regulator.
10. Motorul încălzitorului: convertește tensiunea sau curentul de la intrarea de control a încălzitorului
într-o putere proporțională utilizată pentru antrenarea încălzitorului.
Așa cum se observă în Figura 31, ventilatorul face ca aerul să circule prin crearea unei presiuni foarte
mici la ieșirea din tub. Acest lucru face ca presiunea atmosferică de la intrarea tubului, să forțeze circulația
aerului pr in tub. Cu cât viteza ventilatorului este mai mare, cu atât diferență de presiune este mai mare și deci
cu atât debitul de aer ce va circula prin tub va fi mai mare.
Conform legii conservării masei, masa de aer ce intră în tub în orice moment de timp este egală cu masa
aerului care părăsește tubul. Acest lucru implică faptul că debitul de aer este constant.
17 [6] – Cartea tehnică a instalației LabVolt 3522 -05
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
35
Pentru a menține un debit constant, viteza aerului trebuie să crească atunci când aerul trece prin tubul
Venturi, datorită scăderii secțiunii transversa le a canalului. Acest lucru înseamnă că viteza aerului la intrarea
tubului Venturi, v1, este mai mică decât viteza aerului din interiorul acesteia.
Conform ecuației lui Bernoulli, dacă viteza aerului crește , atunci presiunea aerului este în descreștere .
Acest lucru înseamnă că presiunea aerului pe partea de intrare a tubului Venturi, este mai mare decât presiunea
aerului din tubul Venturi. Cu cât viteza aerului prin tubul Venturi este mai mare, cu atât presiunea diferențială
va fi mai mare de -a lungul tubul ui Venturi.
Când nu se alimentează elementul de încălzire, radiatorul se află la temperatura camerei indiferent de
viteza ventilatorului. Când ventilatorul funcționează , temperatura radiatorului va scădea odată cu creșterea
vitezei ventilatorului. Această descreștere are loc deoarece creșterea vitezei ventilatorului face să crească rata
schimbului de căldură dintre radiator și aer.
2.3. Calibrarea traductorului de temperatură
Traductorul de temperatură al instalației are două potențiometre, ca în Figura 32 utilizate pentru a seta
domeniul debitului în care ieșirea lor va trece de la tensiune sau curent minim la maxim:
– potențiometrul “ zero” setează cea mai mică măsurătoare posibilă pentru temperatură, adică,
temperatura pentru care tensiunea sau curentul de l a ieșirea traductorului vor fi minime;
– potențiometrul “span” setează cea mai mare măsurătoare posibilă pentru temperatură, adică, debitul sau
temperatura pentru care tensiunea sau curentul de la ieșirea traductorului vor fi maxime;
Figura 32 – Potențiometre pentru calibrarea temperaturii
În domeniul instrumentației pentru control termenul “span” indică diferența algebrică dintre tensiunea
sau curentul minim și maxim, generat de traductor. Dacă, spre exemplu, ieșirea traductorului variază între 0 și
5V, atunci traductorul are un “span” de 5V.
În mod uzual, potențiometrele zero și span ale traductoarelor industriale interacționează unul cu celălalt.
Ca urmare, când se ajustează aceste potențiometre, este necesar să repetăm procedura de ajustare de mai multe
ori pentru a obține o ajustare precisă a traductorului.
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
36
Pentru instalația noastră potențiometrele “zero” și “span” ale traductoarelor de temperatură au fost
proiectate să interacționeze cât mai puțin posibil. Ca urmare, când se ajustează aceste p otențiometre, nu este
necesar să repetăm procedura de ajustare de mai multe ori.
2.4. Calibrarea traductorului de debit
Procedura de calibrare a traductorului pentru debitul de aer este similară cu calibrarea senzorului de
temperatură. Deosebirea este că în acest caz, nu este nevoie să așteptăm pentru a obține valoarea maximă a
debitului de aer deoarece la comandă maximă pentru ventilator, în foarte scurt timp debitul prin tubul venturi
va fi maxim. Tot ce avem de făcut este să punem potențiometrele zero și s pan în pozițiile corespunzătoare pentru
a avea la ieșire tensiune 0 pentru cea mai mică turație a ventilatorului, și 5V pentru cea mai mare turație.
Potențiometrele pentru calibrarea traductorului pentru debit se pot vedea în Figura 33.
Figura 33 – Potențiometre pentru calibrarea traductorului de debit
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
37
2.5. Conducerea procesului de reglare a
temperaturii și a debitului
În cazul unui sistem de reglare în buclă deschisă, variabila controlată nu rămâne la valoarea dorită în
cazul apariției unei perturbații , deoarece sistemul controlează puterea aplicată elementului de execuție și nu
temperatura sau debitul.
Adăugarea unui regulator și a unei bucle cu reacție inversă reduce variațiile variabilei controlate. Acest
tip de sistem, prezentat în Fig ura 34, este numit sistem de conducere în buclă închisă. Acesta poate menține
variabila controlată aproape constantă peste o gamă dată de sarcini sau perturbații :
– bucla cu reacție inversă conține un senzor ce măsoară valoarea variabilei controlate și genereaz ă un
semnal proporțional care este trimis înapoi la regulator;
– regulatorul calculează eroarea ce reprezintă diferența dintre valoarea de referință și variabila măsurată
și corectează această diferență prin reajustarea elementului de control până este at insă o stare de echilibru.
Eroarea este diferită de zero când operatorul schimbă valoarea de referință în mod intenționat sau când
schimbările de perturbații sau sarcina modifică variabila controlată;
Figura 34 – Conducerea în bucla închisa a proceselor de debit ale instalației18
Figura 34 prezintă conducerea în buclă închisă a sistemului de reglare a debitului de aer ce trece prin
incinta instalației :
18 [6] – Cartea tehnică a instalației LabVolt 3522 -05
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
38
– bucla cu reacție inversă constă dintr -un traductor de presiune care măsoară debitul de aer ce trece prin
instalație și generează o tensiune proporțională cu acesta. Această tensiune, numită tensiune de reacție , este
transmisă la regulator;
– regulatorul compară tensiunea de reacție , tensiunea referinței și corectează orice difere nță dintre cele
două prin modificarea puterii aplicate la ventilator până ce es te atinsă o stare de echilibru. Dezavantajul principal
al utilizării sistemelor de conducere cu reacție inversă este faptul că trebuie să aibă loc o schimbare în variabilă
contr olată înainte ca orice acțiune corectivă să poată fi luată. În schimb, sistemele de conducere a proceselor
utilizând reacția inversă au avantajul că s unt relativ simplu de utilizat.
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
39
3. Prezentarea microcontr oller-ului PIC 18F8722
3.1. Prezentarea general ă a mic rocontrollere -lor PIC18F
3.1.1. Unitatea de memorie
Memoria este o parte a microcontrolerului a cărei funcție este de a înmagazina date. Cel mai ușor mod
de a explica este de a -l descrie ca un dulap mare cu multe sertare. Dacă presupunem că am marcat sertarel e într –
un asemenea fel încât să nu fie confundate, oricare din conținutul lor va fi atunci ușor accesibil. Este suficient
să se știe desemnarea sertarului și astfel conținutul lui ne va fi cunoscut în mod sigur.
Componentele de memorie sunt exact așa . Pentru o anumită intrare obținem conținutul unei anumite
locații de memorie adresate și aceasta este totul. Două noi concepte ne sunt aduse: adresarea și locația de
memorie. Memoria constă din toate locațiile de memorie, și adresarea nu este a ltceva decât selectarea uneia din
ele. Aceasta înseamnă că noi trebuie să selectăm locația de memorie la un capăt, și la celălalt capăt trebui sa
așteptăm conținutul acelei locații. În afară de citirea dintr -o locație de memorie, memoria trebuie de aseme nea
să permită scrierea în ea. Aceasta se face prin asigurarea unei linii adiționale numite linie de control. Vom
desemna această linie ca R/W (citește /scrie). Linia de control este folosită în felul următor: dacă r/w=1, se face
citirea, dacă r/w=0 se fac e scrierea în locația de memorie. Memoria este primul element, dar avem nevoie și de
altele pentru ca microcontrolerul nostru să funcționeze.19
19 [7] – Cartea tehnica a micr ocontroller -ului din famila PIC18F8722
Figura 35 – Un model simplificat de unitate de memorie
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
40
3.1.2. Unitatea de procesare centrală
Să adăugăm alte 3 locații de memorie pentru un bloc specific ce va avea o cap abilitate incorporată de
înmulțire, împărțire, scădere și să -i mutăm conținutul dintr -o locație de memorie în alta. Partea pe care tocmai
am adăugat -o este numită "unitatea de procesare centrala" (CPU). Locațiile ei de memorie sunt numite regiștri.
Figur a 36 – Unitate simplificată de procesare centrală cu trei regiștri
Regiștrii sunt deci locații de memorie al căror rol este de a ajuta prin executarea a variate
operații matematice sau a altor operații cu date oriu nde se vor fi găsit datele. Să privim la situația curentă. Avem
două entități independente (memoria și CPU) ce sunt interconectate, și astfel orice schimb de informații este
ascuns, ca și funcționalitatea sa. Dacă, de exemplu, dorim să adăugăm conținutul a două locații de memorie și
întoarcem rezultatul înapoi în memorie, vom avea nevoie de o conexiune între memorie și CPU. Mai simplu
formulat, trebuie să avem o anumită "cale" prin care datele circulă de la un bloc la altul.20
3.1.3. Bus-ul
Calea este numită "bus" – magistrală. Fizic, el reprezintă un grup de 8, 16, sau mai multe fire. Sunt două
tipuri de bus -uri: bus de adresă și bus de date. Primul constă din atâtea linii cât este cantitatea de memorie ce
dorim să o adresăm, iar celălalt este atât de lat cât sunt datele, în cazul nostru 8 biți sau linia de conectare. Primul
servește la transmiterea adreselor de la CPU la memorie, iar cel de al doilea la conectarea tuturor blocurilor din
interiorul microcontrolerului.
20 [17] – htt121
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
41
Figura 37 – Conectarea memoriei și a unității centrale folosind bus -uri
Electronica digitala are la baza un sistem de numeratie diferit de cel zecimal(care ulilizeaza o numeratie
cu 10 cifre) utilizat in mod obișnuit, sistemul binar(care utilizeaza doar doua ci fre-0 si 1 -). În toate
sistemele de numerație poziția cifrelor în scrierea numerelor are o mare importanta Astfel, cu cat pozitia cifrei
este mai la stânga intr -un număr, cu atat importanta acesteia este mai mare(are rang mai mare).
În ceea ce privește funcționalitatea, situația s -a îmbunătățit, dar a apărut o nouă problemă: avem o
unitate ce este capabilă să lucreze singură, dar care nu are nici un contact cu lumea de afară, sau cu noi! Pentru
a înlătura această deficiență, vom adăuga un bloc ce conține câteva locații de memorie al căror singur capăt este
conectat la bus -ul de date, iar celălalt are conexiune cu liniile de ieșire la microcontroler ce pot fi văzute cu
ochiul liber ca pini la componenta electronică.21
3.1.4. Unitatea intrare –ieșire
Aceste loc ații ce tocmai le -am adăugat sunt numite „porturi”. Sunt diferite tipuri de porturi:
intrare, ieșire sau porturi pe două -căi. Când se lucrează cu porturi, mai întâi de toate este necesar să se aleagă
cu ce port urmează să se lucreze, și apoi să s e trimită date la, sau să se ia date de la port.
Figura 38 – Unități simplificate intrare -ieșire ce permite comunicarea cu lumea externă
Când se lucrează cu el portul se comportă ca o locație de memorie. Ceva este pur și simplu scris în sau
citit din el, și este posibil de a remarca ușor aceasta la pinii microcontrolerului.22
21 [7] – Cartea tehnica a microcontroller -ului din famila PIC18F8722
22 [17] – htt121
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
42
3.1.5. Comunicația serială
Cu aceasta am adăugat la unitatea deja existentă posibilitatea comunicării cu lumea de afară. Totuși,
acest mod de comunicare are neaju nsurile lui. Unul din neajunsurile de bază este numărul de linii ce trebuie să
fie folosite pentru a transfera datele. Ce s -ar întâmpla dacă acestea ar trebui transferate la distanță de câțiva
kilometri? Numărul de linii înmulțit cu numărul de kilo metri nu promite costuri eficiente pentru proiect. Nu ne
rămâne decât să reducem numărul de linii într -un așa fel încât să nu scădem funcționalitatea. Să presupunem că
lucrăm doar cu 3 linii, și că o linie este folosită pentru trimiterea de date, alta pent ru recepție și a treia este
folosită ca o linie de referință atât pentru partea de intrare cât și pentru partea de ieșire. Pentru ca aceasta să
funcționeze, trebuie să stabilim regulile de schimb ale datelor. Aceste reguli sunt numite protocol. Protocolul
este de aceea definit în avans ca să nu fie nici o neînțelegere între părțile ce comunică una cu alta. De exemplu,
dacă un om vorbește în franceză, și altul vorbește în engleză, este puțin probabil că ei se vor înțelege repede și
eficient unul cu altul. Să presupunem că avem următorul protocol. Unitatea logică "1" este setată pe linia de
transmisie până ce începe transferul. Odată ce începe transferul, coborâm linia de transmisie la "0" logic pentru
o perioadă de timp (pe care o vom desemna ca T), așa că p artea receptoare va ști că sunt date de primit, așa că
va activa mecanismul ei de recepție. Să ne întoarcem acum la partea de transmisie și să începem să punem zero –
uri și unu – uri pe linia de transmisie în ordinea de la un bit a celei mai de jos valori l a un bit a celei mai de sus
valori. Să lăsăm ca fiecare bit să rămână pe linie pentru o perioadă de timp egală cu T, și la sfârșit, sau după al
8-lea bit, să aducem unitatea logică "1" înapoi pe linie ce va marca sfârșitul transmisiei unei date. Protocolul ce
tocmai l -am descris este numit în literatura profesională NRZ (Non -Return to Zero).
Figura 39 – Comunicație serială
Pentru că avem linii separate de recepție și de transmitere, este posibil să recepționăm și să transmitem
date (informații) în același timp. Blocul așa numit full -duplex mode ce permite acest mod de comunicare este
numit blocul de comunicare serială. Spre deosebire de transmisia paralelă, datele sunt mutate aici bit cu bit, sau
într-o serie de biți, de unde vine și numele de comunicație serială. După recepția de date trebuie să le citim din
locația de transmisie și să le înmagazinăm în memorie în mod opus transmiterii unde procesul este invers.
Datele circulă din memorie prin bus către locația de trimitere, și de acolo către unitatea de recepție
conform protocolului.23
23 [17] – htt121
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
43
3.1.6. Unitatea timer
Acum că avem comunicația serială, putem recepționa, trimite și procesa date. Totuși, pentru noi ca să
putem să îl folosim în industrie mai avem nevoie de câtev a blocuri. Unul din acestea este blocul timer care este
important pentru noi pentru că ne dă informația de timp, durată, protocol etc. Unitatea de bază a timer -ului este
un contor liber (free -run) care este de fapt un registru a cărui valoare numerică creș te cu unu la intervale egale,
așa încât luându -i valoarea după intervalele T1 și T2 și pe baza diferenței lor să putem determina cât timp a
trecut. Acesta este o parte foarte importantă a microcontrolerului al cărui control cere cea mai mare parte a
timpul ui nostru.24
Figura 40 – Unitatea timer
3.1.7. Watchdog -ul
Încă un lucru ce necesită atenția noastră este funcționarea fără defecte a microcontr olerului în timpul
utilizării acestuia. Să presupunem că urmare a unei anumite interferențe (ce adesea se întâmplă în
industrie) microcontrolerul nostru se oprește din executarea programului, sau și mai rău, începe să funcționeze
incorect. Bineînțeles, când aceasta se întâmplă cu un calculator, îl resetăm pur și simplu și va co ntinua să lucreze.
Totuși, nu există buton de resetare pe care să -l apăsăm în cazul microcontrolerului care să rezolve astfel
problema noastră. Pentru a depăși acest obstacol, avem nevoie de a introduce încă un bloc numit watchdog –
câinele de pază. Ac est bloc este de fapt un alt contor liber (free -run) unde programul nostru trebuie să scrie un
zero ori de câte ori se execută corect. În caz că programul se "înțepenește", nu se va mai scrie zero, iar contorul
se va reseta singur la atingerea valorii sale maxime. Aceasta va duce la rularea programului din nou, și corect
de această dată pe toată durata. Acesta este un element important al fiecărui program ce trebuie să fie fiabil fără
supravegherea omului.25
Figura 41 – Watchdog
24 [18] – htt11
25 [17] – htt121
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
44
3.1.8. Convertorul Analog -Digital
Pentru că semnalele de la periferice sunt substanțial diferite de cele pe care le poate înțelege
microcontrolerul (zero și unu), ele trebuie convertite într -un mod care să fie înțeles de microcontroler.
Această sarcină este îndeplinită de un bloc pentru conversia analog -digitală sau de un convertor AD. Acest
bloc este responsabil pentru convertirea unei informații despre o anumită valoare analogică într -un număr binar
și pentru a o urmări pe tot parcursul la un blo c CPU așa ca blocul CPU să o poată procesa.26
Figura 42 – Bloc pentru convertirea unui semnal analogic într -o dimensiune digitală
Figura 43 – Secțiunea centrală a microcontroller -ului
Pentru o aplic ație reală, un microcontroler singur nu este de ajuns. În afară de microcontroler, avem
nevoie de un program pe care să -l execute, și alte câteva elemente ce constituie o interfață logică către
elementele de stabilizare.27
26 [18] – htt11
27 [7] – Cartea tehnica a microcontroller -ului din famila PIC18F8722
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
45
3.1.9. Programul
Scrierea progra mului este un domeniu special de lucru al microcontolerului și este denumit
"programare". Să încercăm să scriem un mic program ce îl vom crea singuri și pe care oricine va fi în stare
să-l înțeleagă.
START
REGISTER1=MEMORY
LOCATION_A REGISTER2=MEM ORY
LOCATION_B PORTA=REGISTER1 + REGISTER2
END
Programul adună conținutul a două locații de memorie, și vede suma lor la portul A. Prima linie a
programului este pentru mutarea conținutul locației de memorie "A" într -unul din regiștri unității de
procesare centrale. Pentru că avem nevoie și de celelalte date de asemenea, le vom muta de asemenea în celălalt
registru al unității de procesare centrale. Următoarea instrucțiune instruiește unitatea de procesare centrală
să adune conținutul celor doi regiștri să trimită rezu ltatul obținut la portul A, încât suma acestei adunări să fie
vizibilă pentru toată lumea de afară. Pentru o problemă mai complexă, programul care să lucreze la rezolvarea
ei va fi mai mare. Programarea poate fi făcută în câteva limbaje ca Assembler, C și Basic care sunt cele mai
folosite limbaje. Assembler aparține limbajelor de nivel scăzut ce sunt programate lent, dar folosesc cel
mai mic spațiu în memorie și dă cele mai bune rezultate când se are în vedere viteza de execuție a programu lui.
Pentru că este cel mai folosit limbaj în programarea microcontrolerelor va fi discutat într -un capitol
ulterior. Programele în limbajul C sunt mai ușor de scris, mai ușor de înțeles, dar sunt mai lente în executare
decât programele în Assembler. Basic este cel mai ușor de învățat, și instrucțiunile sale sunt cele mai aproape
de modul de gândire a omului, dar ca și limbajul de programare C este de asemenea mai lent decât Assembler –
ul. În orice caz, înainte de a vă hotărî în privința u nuia din aceste limbaje trebuie să studiați cu atenție
cerințele privind viteza de execuție, mărimea memoriei și timpul disponibil pentru asamblarea sa.28
După ce este scris programul, trebuie să instalăm microcontrolerul într -un aparat și să -l lăsăm să lucreze.
Pentru a face aceasta trebuie să adăugăm câteva componente externe necesare pentru funcționarea sa. Mai întâi
trebuie să dăm viață microcontrolerului prin conectarea sa la o sursă (tensiune necesară pentru operarea tuturor
instrumentelor ele ctronice) și oscilatorului al cărui rol este similar inimii din corpul uman. Bazat pe ceasul său
microcontrolerul execută instrucțiunile programului. Îndată ce este alimentat microcontrolerul va executa
un scurt control asupra sa, se va uita la înce putul programului și va începe să -l execute. Cum va lucra aparatul
depinde de mulți parametri, cel mai important fiind priceperea dezvoltatorului de hardware, și de experiența
programatorului în obținerea maximului din aparat cu programul său.29
28 [18] – htt11
29 [17] – htt121
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
46
3.1.10. Reprezentarea datelor în memoria unui microcontroller
Suntem obișnuiți încă din clasele primare să utilizăm sistemul de numărare zecimal. De ce se numește
zecimal? Pentru că utilizează zece cifre. Spunem că este un sistem de numerație în baza 10. Poziția cifr elor într –
un sistem de numerație are o importanță deosebită. Cifrele mai puțin importante ale unui număr se află în partea
dreaptă în timp ce cifrele mai impor tante se află în partea stângă. Să luăm ca exemplu numărul zecimal 632. În
fapt acesta are valoa rea:
632=6×102+3×101 +2×100
Fiecare cifră (pe care o vom numi DIGIT) are o va loare ce depinde de rangul său. In sistemul binar
lucrurile sunt exact la fel doar că se utilizează doar două cifre (0 și 1) iar cifra care se ridica la pu terile 0,1,2…
este 2 ( binar). Astfel numărul binar 110101 este în zecimal
1×20+0x21+1×22+0x23+1×24+1×25 =53
Pentru a obține reprezentarea binară a unui număr zecimal procedăm astfel:
53:2=21 rest 1
21:2=10 rest 1
10:2= 5 rest 0
5:2= 2 rest 1
2:2= 1 rest 0
Numărul binar va f i format din de ultimul rezultat al împărțirii (1) continuând cu resturile de jos în sus.
Ce ați văzut mai sus este doar un exemplu. Majoritatea microcontrolerelor, deci si PIC -urile lucrează cu 8 cifre
binare. Numerele de 8 cifre binare se numesc octeți sau bytes(in engleza). Cifrele binare 0 sau 1 se numesc bit.
Pentru ca lucrurile sa fie clare, in lucrul cu numere binare sau zecimale exista convenția ca numerele
binare sa se noteze astfel: B'11011011' iar numerele zecimale astfel: D'125'.
Sistemul hexaz ecimal.
Datorita simplitatii in scrierea numerelor binare s -a decis impartirea octetului in doua quartete (4 cifre
binare) si fiecare qurtet este reprezentat de cate o cifra hexazecimala. Iata tabelul de conversie a unui quartet
in cifre hexazecimale si zecimale:
Binar Hexazecimal Zecimal
'0000' 0x0 0
'0001' 0x1 1
'0010' 0x2 2
'0011' 0x3 3
'0100' 0x4 4
'0101' 0x5 5
'0110' 0x6 6
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
47
'0111' 0x7 7
'1000' 0x8 8
'1001' 0x9 9
'1010' 0xA 10
'1011' 0xB 11
'1100' 0xC 12
'1101' 0xD 13
'1110' 0xE 14
'1111' 0xF 15
Deci, cum in binar, cea mai mare cifră utilizata in scrierea numerelor este 1(<2), în zecimal este
9(<10), in hexazecimal este F(<16). Astfel, un octet poate fi scris in mai puține cifre daca se utilizează
sistemul hexazecimal. Nu va speriați, de fapt nu trebuie sa faceti alte transformări decât schimbarea fiecărui
quartet di octet in corespondentul hexazecimal din tabelul de mai sus.30
30 [18] – htt11
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
48
3.2. Utilizarea plăcii de dezvoltare
„PICDEMTM PIC18 Explorer”
PICDEM™ PIC18 Explorer Demonstration Board este o placă de dezvolatre pentru evaluarea
dispozitivelor din familiile PIC18FXXXX și PIC18FXXJXX. Placa poate fi utilizată ca un dispozitiv stand –
alone (independent) sau cu un in -circuit deb ugger (ICD). Pentru utilizarea acestei plăci sunt disponibile o
serie de programe free ce pot fi folosite pentru dezvoltarea de aplicații și pentru depanare.31
PICDEM™ PIC18 Explorer Demonstration Board conține următoarele echipamente hardware
(prezenta te în Figura 44):
1. PIC18F8722 microcontroller – microcontroller principal montat pe placă.
2. Pini pentru conectarea unui Modul de tip Plug -In (PIM). Un PIM permite folosirea unui alt
microcontroller din familia PIC18 ca microcontroller principal.
3. Connector In -Circuit Debugger (ICD).
4. Connector cu șase pini pentru PICkit™ 2 și PICkit™ 3.
5. Potențiometru de 10 kΩ pentru intrări analogice.
6. Comutator Push button – pentru RESET extern.
7. Connector USB – pentru comunicație RS -232.
8. Microcontroll er PIC18LF2450 – pentru conversia comunicației RS -232 în protocol USB pentru
atașarea la un PC gazdă.
9. Cristal de 12 MHz – pentru microcontrollerul PIC18LF2450.
10. RS -232 DB9 socket și hardware asociat – pentru conectarea directă la interfața RS -232.
11. Jumper J13 pentru rutarea comunicației RS -232 fie prin portul USB fie prin portul RS -232.
12. Jumper J4 – pentru selectarea fie a dispozitivului PIC principal fie a PIC18LF2450, folosit pentru
comunicația de la USB la RS -232.
13. Switch S4 – pentru s electarea microcontrollerului principal: fie a celui montat pe placă
(PIC18F8722) fie a celui
montat pe PIM (PIC18F87J11).
14. LED – pentru indicarea power -on.
15. JP1 – pentru deconectarea celor 8 LED -uri
16. Opt LED -uri.
17. Cristal de 32.768 kHz – pentru operarea ceasului Timer1.
18. Două comutatoare de tip push button – pentru simularea unor intrări externe.
19. Senzor de temperatură analogic, MPC9701A.
31 [16] – Sisteme integrate – Indrumar de laborator
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
49
20. 25LC256 SPI EEPROM.
21. JP2 – enable/disable EEPROM.
22. JP3 – enable/disable LCD.
23. Cristal de 10 MHz – pentru microcontroller -ul principal.
24. PICtail™ placă de conexiuni.
25. SPI I/O expander – pentru LCD display, MCP23S17.
26. Zonă Prototype – pentru utilizarea de dispozitive hardware.
27. LCD display.
28. J2 – pentru selectarea între valori le de tensiune de 3.3V și 5V.
29. J14 – Pentru utilizarea PIM, pentru conecatarea la 3.3V sau 5V, VIN și ICE MCLR.
Figura 44 – Placa de dezvoltare PICDEM™ PIC18 Explorer
Placa PICDEM PIC18 Explorer Demonstration Board cuprinde două microcontrollere ce pot fi utilizate
alternativ ca microcontroller principal:
• Un microcontroller PIC cu 18 -pini ce lucrează la 5V (PIC18F8722) montat pe placă.
• Un microcontroller PIC cu 18 -pini ce lucrează la 3.3V (PIC18F87J11) montat pe PIM.
Pentru a selecta microcontrollerul montat pe PIM ca dispozitiv principal trebuie setat comutatorul
S4 la ICE:
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
50
3.3. Dispozitivul programator/debugger
„PICkitTM 3”
Programatorul PICkit 3este un dispozitiv simplu controlat de calculator pe care rulează programul
MPLAB IDE (versiuni mai mari de 8.20). Acesta este un dispozitiv folosit pentru dezvoltarea de aplicații pentru
Microcontrollere PIC și dsPIC bazate pe In -Circuit Serial Programming™ (ICSP™) și Enhanced In -Circuit
Serial Programming cu interfețe pe 2 fire . Acest dispozitiv poate fi utilizat ca depanator sau ca programator de
microcontrollere PIC. Depanatorul execută codul program ca un dispozitiv real deoarece are implementat un
circuit emulator. Toate caracteristicile unui dispozitiv sunt accesibile în mo d interactiv și pot fi setate sau
modificate de o interfață MPLAB IDE.32
Caracteristicile PICkit 3 sunt următoarele:
• Suport USB la viteză maximă folosind driverele Windows standard
• Execuție în timp real
• Procesoare ce rulează la viteză maximă
• Monito r Built -in pentru supra -tensiune/scurt circuit
• Tensiune joasă până la (domeniul 1.8 -5 V)
• LED -uri de semnalizare (power, active, status)
• Citire/scriere program și date în memoria microcontroller -ului
• Ștergere orice tip de memorie (EEPROM, ID, conf igurare și program) cu verificare
Figura 45 – Programatorul/debugger -ul PICkit 3
32 [16] – Sisteme inte grate – Indrumar de laborator
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
51
3.4. Mediul de programare MPLAB IDE
MPLAB este un pachet de programe Windows ce face scrierea și dezvoltarea unui program mai
ușoară. Poate fi descris cel mai bine ca un mediu de dezvoltare pentru un limbaj de programare standard
ce este folosit pentru programarea unui computer PC. Unele operații ce erau făcute din linia de instrucțiuni cu
un număr mare de parametri până la descoperirea IDE -ului, "Integrated Development Environment", sunt
acum făcute mai ușoare prin folosirea MPLAB.
Figura 46 – Interfața grafică a programului MPLAB IDE
MPLAB constă din câteva părți: – Gruparea fișierelor ace luiași proiect într -un singur proiect (Project
Manager) – Generarea și procesarea unui program (Text Editor) – Simulator de program scris folosit pentru
simularea funcționării programului în microcontroler. În afară de acestea, sunt sisteme de susținere pe ntru
produsele Microchip ca PICStart Plus și ICD (In Circuit Debugger).33
Un sistem de dezvoltare pentru controllere embedded este un sistem de programe ce rulează pe un
calculator ce ajută la scrierea, editarea, depanarea și programarea codului într -un microcontroller. MPLAB IDE
rulează pe un PC și conține toate componentele necesare pentru proiectarea aplicațiilor embedded. Task -urile
specifice pentru dezvoltarea unei aplicații embedded sunt următoarele:
1. Din car acteristicile și performanțele ce se doresc a se obține se decide tipul de microcontroller și
dispozitivele periferice ce vor fi utilizate.
33 [8] – htt2
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
52
2. Următoarea etapă este scrierea programului ce va controla dispozitivele hardware. Pentru aceasta se
poate utiliza un limbaj de asamblare, care este dire ct translatabil în cod mașină, sau un compilator ce permite
utilizarea unui limbaj mai natural pentru crearea programului.
3. Se compilează, asamblează și se fac legăturile software folosind un asamblor și/sau un compilator și
un editor de legături pentr u convertirea codului în cod mașină (format din 1 și 0) pentru microcontroller.
4. Se testează codul. De obicei un program complex nu va lucra de prima dată cum ne dorim noi, iar
erorile de programare (așa numitele „bug -uri”) trebuie eliminate . Depanatorul n(debugger -ul) permite analiza
funcționării programului. Depanatorul permite vizualizarea anumitor variabile din program în anumite puncte
ale rulării acestuia.
5. Se scrie programul în memoria microcontroller -ului și se verifică dacă aplicația funcționeaz ă corect.
MPLAB IDE poate fi utilizat în pașii 2 -5. Editorul MPLAB poate ajuta la scrierea corectă a codului .
Editorul folosește fonturi colorate pentru a sublinia cuvintele cheie. Managerul de Proiecte ajută la organizarea
diverselor fișiere ut ilizate de o aplicație: fișiere sursă, biblioteci și header. Erorile de programare sunt semnalate
prin mesaje de eroare și locul în care apare eroare poate fi găsit prin dublu click. După ce codul sursă nu mai
are erori, acesta trebuie testat. MPLAB are c omponenete numite „debugger” și simulatoare free ce ajută la
testarea codului. Simulatorul acceptă intrări de stimul pentru a vedea cum răspunde programul la intrări externe.
Simulatorul poate măsura timpul de execuție, execuția pas cu pas a codul ui pentru a analiza vari abilele și
perifericele. După ce aplicația funcționează corect, poate fi programat microcontroller -ul cu ajutorul unui
programator cum ar fi PICSTART® Plus, MPLAB PM3 sau PICkit 3.
Organizarea fișierelor într -un proiect este pre zentată în figura următoare:
Figura 47 – Fișierele unui proiect embedded
Linker -ul are sarcina de a plasa fragmentele de cod de la asamblor, compilator și bibliotecile de funcții
in zonele de memorie corespunzătoare ale micr eocontrollerului și că modulele separate funcționează unele
cu altele (sau sunt „linked”). Această întreagă operație de la asamblare sau compilare prin procesul de link –
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
53
editare se numește „build”. Compilatorul convertește codul sursă în cod mașină (instrucțiuni ce pot fi executate
de către micocontroller).
Figura 48 – Compilatorul
Instrumentele de programare a sistemelor embedded diferă de compilatoarele ce rulează pe un PC
deoarece acestea trebuie să țină seama de dimensiunea redusă de memorie pe care o are la dispoziție un
microcontroller. Cu cât codul produs este mai mic cu atât mai bine. Aceasta înseamnă că trebuie utilizate tehnici
de optimizare a codului ce țin cont de specificul hardware -ului. În cazul unui PC un program mediu are
dimensiunea de câțiva Megabytes. Un program embedded simplu are câteva mii de bytes sau chiar mai puțin.
Un program mediu poate avea nevoie de 32K sa 64K pentru funcții relativ complexe.34
34 [8] – htt2
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
54
3.5. Modulul MASTER SYNCHRONOUS
SERIAL PORT (M SSP)
Transmisiunea asincronă este folosita, de regulă, atunci când datele care trebuie transmise sunt generate
la intervale aleatoare, spre exemplu de la o tastatură. În acest caz între caractere vor fi pauze mari și receptorul
trebuie să aibă posibilitat ea de a determina începutul fiecărui caracter nou recepționat. În acest scop fiecare
caracter transmis este încadrat între două elemente adiționale reprezentate electric în mod diferit: un
element de start, precedând caracterul (combinația de cod care reprezintă caracterul) și un element de stop,
care urmează după caracter.
În transmisiunea sincronă octeții se transmit fără pauza, unul după altul. Pentru a separa
simbolurile binare recepționate receptorul trebuie sa aibă o bază de timp sincronizata cu cea a transmițătorului.
Dacă baza de timp nu este sincronizată, datele vor fi reconstituite cu erori. Deci, prin intermediul acelor
simboluri de sincronizare, receptorul delimitează corect caracterele.
Este preferată transmisiunea sincronă deoarece nu este eficient să se adauge, fiecărui caracter sau octet,
elementele de start și de stop atunci când se transmit blocuri mari de date și la debite mari. Se pot transmite
combinațiile de cod care corespund acestor caractere una după alta fără pauze și fără elementele de start și de
stop.
Modulul MSSP este o interfață de comunicație serială utilă pentru comunicarea cu alte dispozitive
periferice sau alte microcontrollere. Aceste periferice pot fi memorii EEPROM seriale, regi ștrii de deplasare,
drivere de afișare, convertoare A/D, etc. Acest modul poate opera în două moduri:
– Serial Peripheral Interface (SPI) (Interfața periferică serială)
– Inter -Integrated Circuit (I2C)
Interfața I2C suportă următoarele moduri de comunicați e:
– Master mode
– Multi -Master mode
– Slave mode
Comunicația SPI
SPI este utilizată adeseori atunci când sunt disponibile puține linii I/O, dar comunicația între două sau
mai multe dispozitive trebuie să fie rapidă și ușor de implementat. Denumirea SPI p rovine de la Serial Peripheral
Interface. SPI este un protocol de transmitere de date sincronă ce permite unui dispozitiv Master să inițieze
comunicația cu un dispozitiv Slave. Microcontrollerele PIC au implementate module SPI denumite
Synchronous Serial Port sau Master Synchronous Serial Port. 35
35 [16] – Sisteme integrate – Indrumar de laborator
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
55
SPI este un protocol sincron. Semnalul de ceas care sincronizează comunicația este furnizat de
dispozitivul Master. Semnalul de ceas controlează momentele când datele au fost modificate și când pot fi c itite.
Protocolul RS -232 și alte protocoale asincrone nu utilizează un semnal de ceas, în schimb timpul în care are loc
comunicația trebuie controlat cu precizie.
Deoarece SPI are un semnal de ceas, acesta poate varia fără a afecta datele tra nsmise. Acest
lucru face comunicația SPI ideală atunci când microcontrollerul nu are un semnal de ceas foarte precis, așa
cum este cazul unui oscilator RC.
SPI este un protocol de tip Master – Slave. Doar dispozitivul Master poate controla linia de semnalului
de ceas (SCK). Datele nu pot fi transmise fără un control al semnalului de ceas. Toate dispozitivele Slave sunt
controlate de semnalul de ceas care este controlat de dispozitivul Master. Dispozitivele Slave nu pot controla
semnalul de ceas. Regiștrii de configurare SSP vor stabili modul în care circuitul răspunde la semnalul de ceas.
SPI este un protocol de schimb de date. Odată ce un set de date este transmis, un set de date poate fi
primit. Atunci când un dispozitiv transmite date, datele ce sosesc pe linia de comunicație trebuie citite înainte
ca alte date să fie din nou transmise. Dacă datele sosite nu sunt citite, aceste date vor fi pierdute și modulul SPI
poate deveni inactiv. Din acest motiv este obligatorie citirea datelor după un tra nsfer, chiar dacă aceste date nu
au nici o valoare pentru aplicație.
Datele sunt întotdeanu inter -schimbate între cele două dispozitive. Nici unul dintre dispozitive nu
poate fi doar emițător sau doar receptor în acest protocol. Fiecare dispozitiv are două linii de date: o linie pentru
intrare și una pentru ieșire. Aceste schimburi sunt controlate cu semnalul de ceas de pe linia SCK. Adesea un
semnal de selectare a dispozitivului Slave controlează când un dispozitv este accesat. Acest semnal treb uie
utilizat atunci când există mai multe dispozitive Slave în sistem și este opțional dacă avem un singur Slave.
Acest semnal este cunoscut sub numele de semnal SS (Slave Select). El semnalează unui Slave că un dispozitiv
Master dorește începerea unei co municații SPI cu acesta. În cele mai multe cazuri acest semnal este activ pe
nivel low, astfel că un nivel low pe această linie va indica faptul că există o comunicație SPI între cele două
dispozitive. El este utilizat pentru a mări imunitate liniei de com unicație la zgomote. Funcția lui este de a reseta
dispozitivul Slave astfel încât acesta să fie gata pentru primirea următorului octet.
În comunicația SPI, datele sunt schimbate în timpul modificării semnalului SCK (low ->high sau high
->low). În acest f el datele sunt sincronizate cu semnalul de ceas. Logic, punctul în care datele sunt
citite este opus cu momentul în care acestea sunt schimbate. Datele sunt valide în punctul de citire.36
36 [16] – Sisteme integrate – Indrum ar de laborator
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
56
Figura 49 – Comunicția SPI
Pentru utilizarea corectă a unui modul SPI este necesară setarea corespunzătoare a unor regiștrii.
Tabelul 1 – Registrul SSP1CON1 este registrul de control al modulului MSSP1
R/W -0
WCOL SSPOV(1) SSPEN(2) CKP SSPM3(3) SSPM2(3) SSPM1(3) SSPM0(3)
bit 7 bit 0
bit 7 WCOL : Write Collision Detect bit
1 = The SSPxBUF register is written while it is still transmitting the previous word (must be
cleared in software)
0 = No collision
bit 6 SSPOV : Receive Overflow Indicator bit
SPI Slave mode:
1 = A new byte is received while the SSPxBUF register is still holding the previous data . In
case of overflow, the data in SSPxSR is lost. Overflow can only occur in Slave mode. The user
must read the SSPxBUF, even if only transmitting data, to avoid setting overflow (must be
cleared in
software).
0 = No overflow
bit 5 SSPEN : Master Synchrono us Serial Port Enable bit(2)
1 = Enables serial port and configures SCKx, SDOx, SDIx and SSx as serial port pins
0 = Disables serial port and configures these pins as I/O port pins
bit 4 CKP : Clock Polarity Select bit
1 = Idle state for clock is a high le vel
0 = Idle state for clock is a low level
bit 3-0 SSPM3:SSPM0: Master Synchronous Serial Port Mode Select bits(3)
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
57
0101 = SPI Slave mode, clock = SCKx pin, SSx pin control disabled, SSx can be used as I/O
pin
0100 = SPI Slave mode, clock = SCKx pin, SSx p in control enabled
0011 = SPI Master mode, clock = TMR2 output/2
0010 = SPI Master mode, clock = FOSC/64
0001 = SPI Master mode, clock = FOSC/16
0000 = SPI Master mode, clock = FOSC/4
Bitul SSPOV provine de la “Synchronous Serial Port OVerflow” și este set at automat de către
microcontroller ori de câte ori apare o eroare de depășire. O eroare de depășire apare atunci când transferul SPI
s-a terminat dar datele anterioare nu au fost citite din registrul SSPBUF. Dacă SSPOV este setat, el trebuie pus
la valoa rea 0 de către programul utilizator.
Observație: Datele din SSPBUF nu vor fi actualizate până când condiția de overflow nu este resetată.
Bitul SSPEN provine de la “Synchronous Serial Port Enable”. Acesta este setat la 1 atunci când se
dorește activaream dulului SSP. Modulul trebuie păstrat activ pe întreaga durată a utilizării.
Bitul CKP selectează polaritatea semnalului de ceas, adică va stabili dacă modulul este în starea idle
pe nivel high sau low.
Tabelul 2 – SSP1STAT provi ne de la “Synchronous Serial Port STATus” și furnizează o serie de biți necesari
pentru controlul comunicației SPI
R/W -0 R-0
SMP CKE(1) 𝐷/𝐴̅ P S 𝑅/𝑊̅ UA BF
bit 7 bit 0
bit 7 SMP : Sample bit
SPI modul „Master”:
1 = Date de intrare eșantionate după finalul timpului pentru datele de ieșire
0 = Date de intrare eșantionate la jumătatea timpului pentr u datele de ieșire
SPI modul „Salve” :
SMP trebuie șters când SPI este folosit în modul „Salve”.
bit 6 CKE : SPI bit de selectarea al ceasului
1 = Transmite transferul din starea activă la starea de așteptare a ceasului
0 = Transmite transferul din starea d e așteptare la starea activă a ceasului
bit 5 D/A: bit de Date/Adresă
Folosit doar în modul I2C
bit 4 P: bit de stop
Folosit doar în modul I2C. Acest bit este șters când modulul MSSPx este dezactivat, SSPEM
este șters.
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
58
bit 3 S: bit de start
Folosit doar î n modul I2C
bit 2 R/W : bit de citire/scriere a informației
Folosit doar în modul I2C
bit 1 UA: bitul de actualizare a adresei
Folosit doar în modul I2C
bit 0 BF: bit pentru starea plină a bufferului (rezervei) (numai în modul de primire)
1 = Primire comp letă, SSPxBUF este plin
0 = Primire incompletă , SSPxBUF este gol
SMP controlează timingul eșantionării datelor. Acest bit trebuie menținut la valoarea 0 în cazul în care
dispozitivul PIC este Slave. Dacă dispozitivul este Master, acest bit control ează dacă datele sunt
eșantionate în mijlocul semnalului sau la sfârșitul acestora. Acest bit permite compatibilizarea masterului cu
orice dispozitiv Slave.37
CKE provine de “Clock Edge Select”.
Funcția exactă a bitului depinde de setarea lui CKP. Ace st bit controlează modul de transmitere al
datelor în raport cu semnalul de ceas. Biții CKP și CKE determină ce mod de SPI este utilizat pentru transeferul
datelor. Aceste moduri sunt numite 0,0 0,1 1,0 1,1 și se referă lă modul în care acești biți su nt configurați.
BF este un bit de tip flag ce semnalează terminarea transmisiei sau recepției unui octet. Acest bit este
setat și resetat automat de către microcontroller.
Folosind placa PICDEM Explorer, afișarea de mesaje pe diplay se realizează prin intermediul unui
circuit MCP23S17 , circuit ce utilizează protocolul SPI pentru comunicația cu Microcontrollerul. Acest
circuit este un circuit de expandare (datele transmise serial de la microcontroller folosind 4 pini pot fi transmise
mai dep arte pe cei 16 pini ai porturilor A și B). Circuitul MCP23S17 controlează LCD -ul prin 10 pini: 8 pini
pentru date ( D0 – D07), bitul de activare al LCD –ului enable (E) și bitul de selectare registru (RS).
Microcontrollerul comunică cu circuitul MCP23S17 prin intermediul pinilor RA2 (corespunzător liniei
CS), RC3 (corespunzător liniei SCK), RC4 (corespunzător liniei SDI) și RC5 (corespunzător liniei SDO).
Conectarea între ce e trei circuite este prezentată în figura următoare (pinii legați între ei fi ind încercuiți cu
aceeași culoare).
Pentru controlul MCP23S17, mai întâi se specifică dacă se dorește o citire sau o scriere în acesta, se
transmite apoi adresa registrului în care se scrie și apoi datele ce se scriu în acest registru. Regiștrii utilizați în
exemplul de mai jos sunt următorii:
– IODIRA (cu adresa 0x00) – stabilește dacă pinii portului A sunt folosiți pentru citire sau scriere;
– IODIRB (cu adresa 0x01) – stabilește dacă pinii portului B sunt folosiți pentru citire sau scriere;
– GPIOA (cu a dresa 0x12) – stabilește datele de pe pinii portului A;
37 [6] – Cartea tehnica a microcontroller -ului din famila PIC18F8722
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
59
– GPIOB (cu adresa 0x13) – stabilește datele de pe pinii portului B.
Figura 50 – Microcontrollerul comunică cu circuitul MCP23S17 prin intermediul pinilor RA2, RC4 și RC5
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
60
3.6. Modulul ANALOG TO DIGITAL
CONVERTER (A/D)
Acest modul permite conversia unui semnal de intrare analogic într -un număr pe 10 biți. Modulul este
controlat prin intermediul a 5 regiștrii:
• Registrul rezultat conversie A/D (ADRESH)
• Registrul rezultat co nversie A/D (ADRESL)
• Registrul de control 0 (ADCON0)
• Registrul de control 1 (ADCON1)
• Registrul de control 2 (ADCON2)
Registrul ADCON0 controlează modul de operare al modulului.38
Tabelul 3 – Registrul ADCON0
U-0 R/W -0
__ __ CHS3(1) CHS2(1) CHS1(1) CHS0(1) 𝐺𝑂/𝐷𝑂𝑁𝐸̅̅̅̅̅̅̅̅ ADON
bit 7 bit 0
bit 7-6 Neimplementat : Citi ca ‘0’
bit 5-2 CHS<3:0> bitul de selecție al canalului analogic
0000 = Channel 0 (AN0)
0001 = Channel 1 (AN1)
0010 = Channel 2 (AN2)
0011 = Channel 3 (AN3)
0100 = Channel 4 (AN4)
0101 = Channel 5 (AN5)
0110 = Channel 6 (AN6)
0111 = Channel 7 (AN7)
1000 = Chann el 8 (AN8)
1001 = Channel 9 (AN9)
1010 = Channel 10 (AN10)
1011 = Channel 11 (AN11)
1100 = Channel 12 (AN12))
1101 = Channel 13 (AN13)
1110 = Channel 14 (AN14)
38 [6] – Cartea tehnica a microcontroller -ului din famila PIC18F8722
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
61
1111 = Channel 15 (AN15)
bit 1 GO/DONE: bit de conversie A/D a stării
Când ADON = 1:
1 = convers ia A/D în proces
0 = A/D în așteptare
bit 0 ADON: A/D On bit
1 = modulul de conversie A/D este activ
0 = modulul de conversie A/D este dezactivat
Registrul ADCON1 configurează pinii porturilor utilizate pentru conversia A/D.
Tabelul 4 – Registul ADCON1
U-0 R/W -0
__ __ VCFG1 VCFG0 PCFG3 PCFG2 PCFG1 PCFG0
bit 7 bit 0
bit 7-6 Neimplementat : Citit ca ‘0’
bit 5-4 VCFG<1:0>: bit de configurare a referinței voltajului
Tabelul 5 – Configurarea biților de voltaj
A/D V REF+ A/D V REF-
00 AV DD AV SS
01 External V REF+ AV SS
10 AV DD External V REF-
11 Extern al V REF+ External V REF-
bit 3-0 PCFG<3:0>: bit de configurare pentru portul de control A/D:
Tabelul 6 – Configurarea biților pentru controlul A/D
PCFG<3
:0>
AN15(1)
AN14(1)
AN13(1)
AN12(1)
AN11
AN10
AN9
AN8
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
0000 A A A A A A A A A A A A A A A A
0001 D D A A A A A A A A A A A A A A
0010 D D D A A A A A A A A A A A A A
0011 D D D D A A A A A A A A A A A A
0100 D D D D D A A A A A A A A A A A
0101 D D D D D D A A A A A A A A A A
0110 D D D D D D D A A A A A A A A A
0111 D D D D D D D D A A A A A A A A
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
62
1000 D D D D D D D D D A A A A A A A
1001 D D D D D D D D D D A A A A A A
1010 D D D D D D D D D D D A A A A A
1011 D D D D D D D D D D D D A A A A
1100 D D D D D D D D D D D D D A A A
1101 D D D D D D D D D D D D D D A A
1110 D D D D D D D D D D D D D D D A
1111 D D D D D D D D D D D D D D D D
A = Analog input D = Digital I/O
Tabelul 7 – Registrul ADCON2
R/W -0 U-0 R/W -0
ADFM __ ACQT2 ACQT1 ACQT0 ADCS2 ADCS1 ADCS0
bit7 bit0
bit 7 ADFM: bit pentru selectarea formatul rezultatului A/D
1 = Aliniere la dreapta
0 = Aliniere la stânga
bit 6 Neimplementat : Citit ca ‘0’
bit 5-3 ACQT<2:0>: biți de selecție a timpului de activare A/D
111 = 20 TAD
110 = 16 TAD
101 = 12 TAD
100 = 8 TAD
011 = 6 TAD
010 = 4 TAD
001 = 2 TAD
000 = 0 TAD(1)
bit 2-0 ADCS<2:0>: biți de selectare a ceasului de conversie A/D
111 = FRC (clock derived from A/D RC oscillator)(1)
110 = FOSC/64
101 = FOSC/16
100 = FOSC/4
011 = FRC (clock derived from A/D RC oscillator)(1)
010 = FOSC/32
001 = FOSC/8
000 = FOSC/2
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
63
Tensiunea de referință poate fi aleasă prin program și poate fi diferența de tensiune între sursă (V DD ) și
masă (V SS ) sau diferența de tensiune între pinii RA3/AN3/V REF+ și RA2/AN2/V REF- pins.
Pentru realizarea unei conversii analog numerice trebuie urm ați pașii următori:
1. Configurarea modului A/D :
– Se configurează pinii analogici și tensiunea de referință (folosnd registrul ADCON1);
– Se selectează canalul de intrare (ADCON0);
– Se selectează timpul necesar pentru achiziție (ADCON2)
– Se selectează c easul ce controlează conversia (ADCON2)
– Se activează modulul A/D (ADCON0)
2. Configurarea întreruperii A/D (dacă se dorește):
– Se resetează bitul ADIF;
– Se setează bitul ADIE;
– Se setează bitul GIE;
3. Se așteaptă timpul necesar pentru achiziție;
4. Se startează conversia:
– Se setează bitul GO/DONE (din registrul ADCON0);
5. Se așteaptă terminarea conversiei:
– Se verifică dacă bitul GO/DONE a fost resetat sau
– Se așteaptă întreruperea A/D;
6. Se citește rezultatul conversiei din registrul ADRESH:ADR ESL;
7. Pentru următoarea conversie se merge la pasul 1 sau la pasul 2. Se definește timpul T AD ca timpul
de conversie pe bit. Pentru startarea următoarei achiziții trebuie așteptat minim 2TAD .
Principiul conversiei analog numerice este prezentat în fig ura următoare (pentru cazul unui convertor
pe 3 biți).
Figura 51 – Principiul conversiei analog numerice
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
64
În acest caz ave, 8 =23 nivelele de tensiune sunt reprezentate prin 8 valori (000, 001,…,111).
Pentru o tensiune de refe rință de 5V și o rezoluție de 10 biți a convertorului, calculul valorii care va fi
memorată în regiștrii ADRESH:ADRESL se realizează cu regula de trei simplă. Pentru o tensiune de 3.65 Volți
avem următorul număr:
Deci o tensiune de intrare de 3.65 V va fi reprezentată prin numărul zecimal 748 sau prin
numărul binar 1011101100. În mod asemănător se poate determina orice nivel de tensiune. Numărul
memorat în regiștrii ADRESH:ADRESL poate fi plasat de la dreapta la stânga (cei mai semnificativi 6 biți din
ADRESH nu sunt luați în considerare) sau de la stânga la dreapta (cei mai puțin semnificativi 6 biți din ADRESL
nu sunt luați în considerare).39
39 [6] – Cartea t ehnica a microcontroller -ului din famila PIC18F8722
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
65
3.7. Modulul COMPARE/CAPTURE/PWM (CCP)
Microcontrolleru l PIC18F8722 are 5 module CC P – Capture/ Compa re/ Pulse Width Modulation
(Captură/ Comparare/ Mod ulare în durată de impulsuri). Toate cele cinci module pot fi configurate pentru modul
Capture, Compare sau PWM simplu (cu ieșire pe un singur canal) în timp ce primele trei module (notat e ECCP1,
ECCP2, ECCP3) pot fi configurate pentru aplicații avansate ale modulului PWM, și anume 2 sau 4 canale de
ieșire, polaritate selectabilă de către utilizator, zonă de insensibilitate controlabilă și oprire sau pornire
automată.40
Fiecare modul CCP es te asociat cu un registru de control (notat generic CCPxCON, x=1:5) și un registru
de date (CCPRx) compus din două registre pe 8 biți: CCPRxL și CCPRxH. Toți acești regiștrii pot fi citiți sau
scriși.
Pentru lucrul cu modulele CCP se utilizează și modulele Timer. Astfel, modulele Timer1 și Timer3 sunt
utilizate pentr u lucrul în modurile Capture și Compare în timp ce pentru lucrul în modul PWM se utilizează
modulele Timer2 și Timer4. Asocierea timerelor la modulele CCP se realizează prin intermediul celor do i biți
T3CCP din registrul T3CON:
bit 6, 3 T3CCP<2:1>: Timer3 and Timer1 to CCPx Enable bits
11 = Timer3 and Timer4 are the clock sources for ECCP1, ECCP2, ECCP3, CCP4 and CCP5
10 = Timer3 and Timer4 are the clock sources for ECCP3, CCP4 and CCP5; Timer1 a nd Timer2
are the clock sources for ECCP1 and ECCP2
01 = Timer3 and Timer4 are the clock sources for ECCP2, ECCP3, CCP4 and CCP5; Timer1
and Timer2 are the clock sources for ECCP1
00 = Timer1 and Timer2 are the clock sources for ECCP1, ECCP2, ECCP3, CCP4 a nd CCP5
Tabelul 8 – Registrul CCPxCON
R/W -0
PxM1 PxM0 DCxB1 DCxB2 CCPxM3 CCPxM2 CCPxM1 CCPxM0
bit7 bit0
bit 7-6 PxM1:PxM0 : Enhanced PWM Output Configuration bits
If CCPxM<3:2> = 00, 01, 10:
xx = PxA assigned as Capture/Compare input/output; PxB, PxC, PxD assigned as port pins
If CCPxM<3:2> = 11:
00 = Single output: PxA modul ated; PxB, PxC, PxD assigned as port pins
01 = Full -bridge output forward: P1D modulated; P1A active; P1B, P1C inactive
40 [6] – Cartea tehnica a microcontroller -ului din famila PIC18F8722
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
66
10 = Half -bridge output: P1A, P1B modulated with dead -band control; P1C, P1D assigned as
port pins
11 = Full -bridge output reverse: P1B modulated; P1C active; P1A, P1D inactive
bit 5-4 DCxB<1:0>: PWM Duty Cycle bit 1 and bit 0
Capture mode: Unused. Compare mode: Unused.
PWM mode:
These bits are the two LSbs of the 10 -bit PWM duty cycle. The eight MSbs of the duty cycle
are found in CCPRxL .
bit 3-0 CCPxM3:CCPxM0 : Enhanced CCP Mode Select bits
0000 = Capture/Compare/PWM off (resets ECCPx module)
0001 = Reserved
0010 = Compare mode: toggle output on match
0011 = Capture mode
0100 = Capture mode: every falling edge
0101 = Capture mode: every rising edge
0110 = Capture mode: every 4th rising edge
0111 = Capture mode: every 16th rising edge
1000 = Compare mode: initialize ECCPx pin low; set output on compare match (set CCPxIF)
1001 = Compare mode: initialize ECCPx pin high; clear output on compa re match (set CCPxIF)
1010 = Compare mode: generate software interrupt only; ECCPx pin reverts to I/O state
1011 = Compare mode: trigger special event (ECCP resets TMR1 or TMR3, sets CCPxIF bit;
ECCP2
trigger starts A/D conversion if A/D module is enabled)
1100 = PWM mode: PxA, PxC active -high; PxB, PxD active -high
1101 = PWM mode: PxA, PxC active -high; PxB, PxD active -low
1110 = PWM mode: PxA, PxC active -low; PxB, PxD active -high
1111 = PWM mode: PxA, PxC active -low; PxB, PxD active -low
Modul Capture
În modul Capture, în pereche de regiștrii CCPRxH : CCPRxL este memorată valoarea registrului
TMR1 sau a registrului TMR3 (în funcție de Timerul utilizat) la apariția unui eveniment pe pinul CCPx
corespunzător.41 Un eveniment este definit ca u nul din următoarele:
– fiecare front descrescător;
41 [6] – Cartea tehnica a microcontroller -ului din famila PIC18F8722
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
67
– fiecare front crescător;
– fiecare al 4 -lea front crescător;
– fiecare al 16 -lea front crescător.
Alegerea evenimentului se realizează cu ajutorul biților CCPxM din registrul CCPxCON. Pinul
CCP x trebuie configurat ca intrare prin setarea corespunzătoare a registrul TRIS.
Modul Compare
În modul Compare, valoarea registrului pe 16 biți CCPRX este comparată cu valoarea registrului
TMR1 sau a registrului TMR3 (în funcție de Timer -ul utiliza t). Atunci când cele două valori sunt egale, pinul
CCPx poate fi trecut în starea high, în starea low, mutat din high în low sau din low în high sau poate fi lăsat
nemodificat. Acțiunea este realizată în funcție de starea biților CCPxM din registrul C CPxCON. În același timp
este setat bitul flag CCPxIF. Utilizatorul trebuie să configureze pinul CCPx ca ieșire prin resetarea
corespunzătoare în registrul TRIS.
Modul PWM
În modul PWM, pe pinul CCPx este generată o ieșire PWM cu o rezoluție de 10 biți. O ieșire de tip
PWM are o bază de timp (perioadă) și un interval de timp în care ieșirea stă la valoarea high (factorul de umplere
sau ”duty cycle” în limba engleză). Evident, frecvența PWM -ului este inversul perioadei.42
Figura 52 – Modulul PWM
Perioada PWM -ului este specificată prin scrierea registrului PR2 (sau PR4) al modulului Timer2
(respectiv Timer4). Această perioadă poate fi calculată folosind următoarea formulă:
𝑇𝑃𝑊𝑀 =[𝑃𝑅2+1]×4×𝑇𝑂𝑆𝐶×(𝑇𝑀𝑅 2𝑃𝑅𝐸)
unde:
𝑇𝑃𝑊𝑀 – perioada PWM;
𝑇𝑂𝑆𝐶 – perioada de oscilație a tactului de ceas;
𝑇𝑀𝑅 2𝑃𝑅𝐸 – valoarea de prescalare.
42 [6] – Cartea tehnica a microcontroller -ului din famila PIC18F8722
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
68
Atunci când TMR2 este egal cu PR2, au loc următoarele acțiuni:
– TMR2 este resetat;
– Pinul CCPx este setat (cu excepția cazului în care ”duty cycle” este 0);
– Valoarea registrului CCPRxL este transferată în registrul CCPRxH.
Factorul de umplere (duty cycle) este setat prin scrierea registrului CCPR1L și a biților 5 și 4
din registrul CCPxCON. Factorul de umplere se calculează cu relația:
𝑃𝑊𝑀 𝐷𝑢𝑡𝑦 𝐶𝑦𝑐𝑙𝑒 =(𝐶𝐶𝑃𝑅 1𝐿:𝐶𝐶𝑃 1𝐶𝑂𝑁 <5:4>)×𝑇𝑂𝑆𝐶×(𝑇𝑀𝑅 2𝑃𝑅𝐸) …..<,
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
69
4. Rezultate experimentale
4.1. Prezentare instalație experimental ă
Experimentul presupune reglarea temperaturii și a debitului de aer în instalația experimentală LabVolt,
folosind placa de dezvoltare „PICDEMTM PIC18 Explorer” și programatorul/debugger -ul „PICkitTM 3”.
Echipamentele folosite pentru sistemul de r eglare automată realizat sunt:
a) Instalația LabVolt de reglare a temperaturii și debitului de aer prezentată în capitolul II.
b) Placa de dezvoltare „PICDEMTM PIC18 Explorer”
c) Dispozitivul programator/debugger „PICkitTM 3”
d) Tastatură numerică a calculatorului pe care rulează programul MPLAB IDE, pentru
modificarea referinței și a parametrilor regul atorului PID în timpul rulării.
Datorită faptului că totul este software coeficienții regulatorului PID se pot modifica foarte ușor, mai
mult, aceștia se pot schimba și în timpul lucrării cu ajutorul tastaturii numerice. 43
Componentele plăcii de dezvoltare folosite la acest experiment sunt:
ceasul de timp real;
interfață de comunicație serială utilă pentru comunicarea cu alte dispozitive periferice sau alte
microcontrolle re;
conversia unui semnal de intrare analogic într -un număr pe 10 biți;
modulare în durată de impulsuri
afișajul alfanumeric LCD;
portul serial pentru conectarea calculatorului ;
43 [11] – htt1
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
70
4.2. Implementarea numerică a legilor de reglare
O funcție de transfer este o re prezentare matematică a relației dintre intrarea și ieșirea a unui sistem
liniar invariant în timp.
Funcția de transfer este folosită în mod curent în analiza de filtre electronice cu unică intrare și unică
ieșire. De asemenea, este folosită în procesarea semnalelor, teoria comunicațiilor și teoria controlului. Termenul
de funcție de transfer se referă la un sistem liniar invariant în timp dar, majoritatea sistemelor reale au proprietăți
neliniare, totuși asemenea sisteme se pot liniariza.
Figura 53 – Sistemul continuu
Pentru cea mai si mplă formă timp continual al unui semnal de intrare x(t) și al unuia de ieșire y(t),
funcția de transfer este o aplicație liniară prin transformata Laplace a intrării notată
𝑋(𝑠)=𝐿{𝑥(𝑡)}=∫ 𝑥𝑒−𝑠𝑡𝑑𝑡∞
−∞ (4.1)
la ieșirea notată
𝑌(𝑠)=𝐿{𝑦(𝑡)}=∫ 𝑦𝑒−𝑠𝑡𝑑𝑡∞
−∞ (4.2)
Avem
𝐻(𝑠)=𝑌(𝑠)
𝑋(𝑠)=𝐿{𝑦(𝑡)}
𝐿{𝑥(𝑡)} (4.3)
unde s = σ + jω și H(s) este funcția de transfer a siste mului liniar invariant în timp.
Putem scrie așadar: Y(s) = H(s) X(s) .
Imposibilitatea identificării complete a modelului matematic al procesului conduce la utilizarea în
practica acordării regulatoarelor a unor modele aproximative. Astfel, procesele, de obicei de ordin superior, dar
care au un raspuns indicial aperiodic, se pot aproxima prin funcții de transfer de tipul :
𝐻𝐹(𝑠)=𝐾𝐹∙𝑒−𝜏𝑠
𝑇𝐹𝑠+1 (4.4)
care pune în evidență un el ement de întârziere cu timp mort τ având factorul de amplificare K F și
constanta de timp T F. Această aproximare este făcută pe baza răspunsului indicial reprezentat în Figura 54 .
Parametrii acestei funcții de transfer se determină folosind următoar ele relații:
𝑇𝑓=𝑡2−𝑡1
𝑙𝑛(𝐾𝑓−𝑦1
𝐾𝑓−𝑦2) , 𝜏= 𝑡2−𝛼𝑡1
1−𝛼
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
71
unde 𝛼=𝑙𝑛(𝐾𝑓−𝑦2
𝐾𝑓)
𝑛(𝐾𝑓−𝑦1
𝐾𝑓)
unde t 1 și t2 sunt două puncte pe axa timpului.
Figura 54 – Determinarea parametrilor funcției de transfer pe baza răspunsului sistemului la intrare treaptă
Acordarea regulatoarelor se realizează după metoda Oppelt .
Tabelul 9 – Parametrii de acordare
KR Ti Td
Regulator P 𝐾𝑅=𝑇𝐹
𝐾𝐹∙𝜏 – –
Regulator PI 𝐾𝑅=0.8∙𝑇𝐹
𝐾𝐹𝜏 𝑇𝑖=3𝜏 –
Regulator PD 𝐾𝑅=1.2∙𝑇𝐹
𝐾𝐹𝜏 – 𝑇𝑑=0.42𝜏
Regulator PID 𝐾𝑅=1.2𝑇𝐹
𝐾𝐹𝜏 𝑇𝑖=2𝜏 𝑇𝑑=0.42𝜏
În realizarea procesului de reglare a debitului se folosește ceasul de timp real pentru a genera o
întreru pere. Acesta reprezintă și timpul de eșantionare (notat cu T). Microcontroller -ul va citii semnalele venite
de la convertoarele analog -numerice și va memora citirea într -o variabilă (notată cu Y). Vom compara mărimile
măsurate Y cu referința ref și se va o bține eroarea sistemului, care va fi păstrată într -o variabilă e k. Acești
parametrii sunt necesari la calcularea comenzii cu ajutorul unui regulator PID implementat numeric.
Parametrii regulatorului PID, K r – factorul de proporționalitate, T i – constanta d e timp de integrare, T d
– constanta de timp de derivare, vor primii valori implicite software, dar ele se pot modifica și în timpul rulării.
τ
Tf
t1
t2
y1
y2
Kf=y( )
t
y
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
72
Regulatorul PID este implementat, cu funcția de trasfer discretă:
𝑦(𝑡)=𝑦(𝑡−1)+𝐾𝑟[𝑒(𝑡)−𝑒(𝑡−1)]+𝐾𝑟𝑇
2𝑇𝑖[𝑒(𝑡)+𝑒(𝑡−1)]+𝐾𝑟𝑇𝑑
𝑇[𝑒(𝑡)−2∙𝑒(𝑡−1)+𝑒(𝑡−2)]
𝑦(𝑡)−𝑦(𝑡−1)=𝑒(𝑡)∙𝐾𝑟∙(1+𝑇
2𝑇𝑖+𝑇𝑑
𝑇)+𝑒(𝑡−1)∙𝐾𝑟∙(−1+𝑇
2𝑇𝑖−2𝑇𝑑
𝑇)+𝑒(𝑡−2)∙𝐾𝑟𝑇𝑑
𝑇
După fiecare 10ms se va calcula o valoare a comenzii care este transmisă printr -unul din porturi pentru
modulare în durată de implusuri PWM. Comanda este aplicată instalației experimentale LabVolt pe la intrările
de tensiune ale acesteia.
Figura 55 – Controlul instalației LabVolt în blucă închisă
Va fi implementat un regulator pentru reglarea debitului de aer , iar acesta va funcționa o dată cu legea
de reglare PI și a doua oară cu legea de reglare PID. Debitul va depinde de gradul de încălzire al rezistenței.
Folosind controlul sistemului în buclă deschisă, procesul este controlat pe modificând direct mărimea
de comandă u(t). Valoarea actuală a variabilei controlate nu este luată în considerare. Dacă perturbațiile fac ca
variabilă controlată să devieze de la valoarea cerută, nu este luată nicio contramăsură să corecteze această
deviație. Acest tip de sistem, așadar, este utilizat în aplicațiile unde cerințele pentru controlul vari abilei nu sunt
critice.
Figura 56 – Controlul în buclă deschisă
Folosind controlul sis temului în buclă închisă, sunt adăugate la sistem un regulator și o buclă de reacție
inversă. Bucla de reacție inversă transmite regulatorului valoarea actuală a variabilei controlate. Regulatorul
decide ce acțiune se execută pentru că valoarea acestei var iabile să devină egală cu valoarea mărimii prescrise.
Deoarece se utilizează reacția inversă, acest tip de sistem poate detecta și corecta variațiile variabilei controlate,
variații cauzate de modificarea sarcinii sau perturbațiilor. Acest tip de sistem es te utilizat în aplicațiile unde
cerințele pentru controlul variabilei sunt critice. 44
44 [16] – Sisteme de reglare automată, Lucrări practice
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
73
Figura 57 – Controlul în buclă închisă
Instalația de control a proceselor de temperatură sau debit de aer Lab -Volt permite controlul debitului
de aer și a temperaturii în blucă închisă. Mai mult, temperatura p rocesului poate fi controlată fie în modul
“încălzire” fie în modul “răcire”.
Instalația constă dintr -un tub ce permite trecerea aerului, un ventilator utilizat pentru circularea aerului,
un amortizor utilizat p entru modificarea sarcinii sau generarea perturbațiilor, un element de încălzire și
traductoare de temperatură și debit.
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
74
4.3. Modul de lucru
Se urmărește utilizarea microcontroller -ului PIC 18F8722 ca regulator pentru reglarea debitului de aer.
În realizarea proiectului folosim placa PICDEM™ PIC18 Explo rer și programatorul PICkit 3 care
trebuie conectat la placă și la calculator și se va proceda astfel:
Figura 58 – Programul MPLAB
Mergeți în meniul Project și selecționați New… . Se va deschide o fereastră de dialog ce perm ite
introducerea unui nume pentru proiect și directorul în care să fie salvat acesta.
Figura 59 – Deschiderea unui proiect nou folosind MPLAB
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
75
Pe ecran va apare următoarea fereastră (selectați din meniul View opțiunea Project ).
Figura 60 – Fișierele unui proiect
În această fereastră apare numele proiectului și tipurile de fișiere pe care le conține. În acest moment
proiectul nu conține nici un fișier.
În continuare trebuie precizați parametrii imp ortanți ai proiectului, și anume tipul de
microcontroller utilizat. Pentru aceasta din meniul Configure –> Select Device… se alege microcontrollerul
PIC18F8722 . În această fereastră sunt specificate (folosind led -uri roșii și verzi) ce instrumente pot fi utilizate
pentru acest tip de microcontroller.
Figura 61 – Selectarea microcontroller -ului PIC18F8722
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
76
În continuare trebuie precizat limbajul de programare utilizat. Poate fi utilizat limbajul de asamblare
sau alte comp ilatoare Microchip sau de la alte societăți. Pentru aceasta din meniul Project –> Select Language
Toolsuite … se alege Microchip XC8 Toolsuite ce conține un compilator C pentru microcontrollere PIC pe 8
biți.
Figura 62 – Selectarea compilatorului
Pentru scrierea programului sursă se deschide un fișier nou din meniul File–>New.
Figura 63 – Spațiul de lucru
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
77
Se salvează cu numele licenta.c , după care în fereastra corespunzătoare proiectului se dă c lick dreapta
pe Source Files și se selectează Add Files … selectând fișierul led1.c de unde a fost salvat. În continuare trebuie
realizate următoarele:
– din meniul View se bifează opțiunea Outpu t,
– din meniul Programmer –> Select Programmer… se alege PICkit 3
– din meniul Project –>Build Configuration se setează opțiunea Release .
Figura 64 – Selectarea sursei fișierului creat din directorul salvat anterior
Figura 65 – Adăugarea fișierului creat în sursa proiectului
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
78
4.3.1. Realizarea programului de reglare
Pentru ca microcontroller -ul să funcționeze corect, prima dată trebuie sa declarăm bibliotecile pe care
le folosim , iar următorul pas trebuie să configurăm registrii microcontroller -ului pentru al putea folosii ca
regulator numeric și definirea registrilor circuitului MCP23S17 pentru a putea folosii LCD -ul microcontroller –
ului, pentru afișarea referinței și a mărimii măsurate.
// CONFIGURARE Microcontroller
#pragma config OSC = HSPLL
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRT = OFF
#pragma config BOREN = OFF
#pragma config WDT = OFF
#pragma config MCLRE = ON
#pragma config LVP = OFF
#pragma config XINST = OFF
Pentru controlul MCP23S17, mai întâi se specifică dacă se dorește o citire sau o scriere în acesta, se
transmite apoi adresa registrului în care se scrie și apoi datele ce se scriu în acest registru. Regiștrii utilizați în
exemplul de mai jos sunt următorii:
– IODIRA (cu a dresa 0x00) – stabilește dacă pinii portului A sunt folosiți pentru citire sau scriere;
– IODIRB (cu adresa 0x01) – stabilește dacă pinii portului B sunt folosiți pentru citire sau scriere;
– GPIOA (cu adresa 0x12) – stabilește datele de pe pinii portului A;
– GPIOB (cu adresa 0x13) – stabilește datele de pe pinii portului B.
#define CS PORTAbits.RA2
// addresele registrilor circuitului MCP23S17
#define IODIRA_ADDRESS 0x00
#define IODIRB_ADDRESS 0x01
#define GPIOA_ADDRESS 0x12
#define GPIOB_ADDRESS 0x13
Următorul pas în realizarea programului este începerea definirii funcțiilor pe care le vom folosii pentru
ca microcontroller -ul să devină un regulator. Funcțiile incapsulează prelucrări bine precizate și pot fi reutilizate
în mai multe programe. Pen tru a putea fi utilizată într -un program, o funcție trebuie să fie definită (sau declarată)
și apelată . O funcție void fără parametri poate prelucra variabilele globale și cele locale. Dacă mai multe funcții
void fără parametrii trebuie să aibă acces la ac eleași date, acestea trebuie să fie variabile globale. Declarația
unei funcții se face prin precizarea prototipului funcției. La apelul unei funcții, se execută corpul său, după care
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
79
se revine în funcția apelantă, la instrucțiunea următoare apelului. O fu ncție poate fi apelată, dacă în fața apelului
există definitiă sau cel puțin declarația funcției.
// Prototipuri functii
void setIODIR(char, char);
void setGPIO(char, char);
void lcdCommand(char);
void lcdChar(unsigned char);
void lcdGoTo(char);
void lcdWriteString(unsigned char*);
// variabile globale
int i, d_c, U;
long int k1=0;
unsigned int ADCResult=0;
float Y=0, ref=0, Kr=2, Ti=3, Td=0.002, T=0.01, Uk, Uk1=0, ek1=0, ek2=0, ek, b0, b1, b2;
unsigned char val_reg;
double T_pwm ;
char buf1[8];b uf2[8];
În variabilele globale am declarat perioada de eșantionare T=0.01 pentru ca microcontroller -ul să
funcționeze ca un regulator.
Vom folosi butonul RB0 (portul S1) pentru a modi fica referința legii de reglare. Această setare este o
întrerupere cu aju torul portului S1 care va varia între 0.0 și 5.0, cu un pas de 0.5. Acesta va acționa crescător,
iar când va ajunge la 5.0 se va reseta și o va lua de la 0.0 iar.
//Stetarea intreruperilor cu ajutorul portului S1 (buton RB0)
void interrupt intrerupere_ext (void)
{
if(INTCONbits.INT0IE && INTCONbits.INT0IF)
{
ref = ref + 0.5;
}
INTCONbits.INT0IF = 0; // resetare flag
if (ref>5) //Cand ref>5 vom aveam o resetare a referintei
{
ref=0;
}}
………
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
80
//Activarea intreruperilor pe portul RB0 (buton)sau S1
INTCONbits.GIE=1; // activarea întreruperilor
INTCONbits.INT0IE=1; // activare întreruperi externe pe pinul INT0
INTCONbits.INT0IF=0; // resetare bit de flag pentru INT0
INTCON2bits.INTEDG0=1; // activare intrerupere pe front crescator
Pentru a citi datele de la proces se folosesc cei 5 regiștrii ai modulului de conversie analog -numerică
într-un număr pe 10 biți. Cea mai mare valoare a numărului returnat, 1024 corespunde unui semnal analogic de
5 V. Putem face ușor conversia înapoi în volți . În felul acesta în variabila Y vom avea valoarea în volți măsurată
la intrările convertorului analog -numeric .
// Conversie analog numeric ă
CloseADC();
ADCON0=0b00010000; //canalul AN4, portul RA5
ADCON0bits.ADON = 1; // Activare m odul A/D
ADCON1=0b00001001; // RA0 = analog input
ADCON2=0b10111010; // right Justified Fosc/32
ADCON0bits.GO=1; // start conversie
while (ADCON0bits.GO);
ADCResult = (unsigned int) ReadADC();
Y = (ADCResult*5.0)/1024; // conversia numarului în tensiune
CloseADC(); // închiderea modulului A/D
Pentru calculul comenzii vom implementa funția de transfer discretă a unui regulator PID.
Parametrii K r, Td, Ti ai regulatorului sunt inițializați la început ul programului.
// Algoritmul legii de reglare
b0 = Kr * (1 + T/(2*Ti) + Td/T);
b1 = Kr * ( -1 + T/(2*Ti) – 2*(Td/T));
b2 = Kr * (Td/T);
Uk=Uk1 + ek*b0 + ek1*b1 + ek2*b2; // funția de transfer
Variabilele folosite la calculul comenzii sunt cele din Tabelul 9.
Tabelul 10 – Variabilele funcției de trasfer
Uk y(t)
Uk1 y(t-1)
ek e(t)
ek1 e(t-1)
ek2 e(t-2)
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
81
Eroarea sistemului ek va fi rezultatul scăderii a valorii măsurate din referință și se regăsește sub forma
unui semnal compatibil cu elementele prin care se realizează legea de reglare.
// Calculul eroarii sistemului
ek=ref – Y;
Valorile erorii și comenzii de la pașii anteriori vor fi memorate în variabilele Uk1, ek1 și ek2. Du pă
calculul comenzii valorile acestor variabile vor fi reactualizate:
ek2=ek1;
ek1=ek;
Uk1=Uk;
După ce regulatorul calculează comenzile pentru ventilator, acestea sunt transmise prin canalele de
modulare în durată de impulsuri (PWM). Pentru a transmite com anda dorită pe canalele PWM trebuie făcute
calcule. Funcția PWM va accepta pentru factorul de umplere o valoare între 0 și valoarea din variabila returnată
de funcția de inițializare a canalului RC2, care este funcție de frecveța pentru PWM aleasă. Pentru a găsi
valoarea ce trebuie transmisă prima dată împărțim comanda în volți pe care vrem să o transmitem la 5, care este
maximul comenzii, și vom obține un număr subunitar care apoi îl vom înmulți cu valoarea maximă ce poate fi
transmisă funcției PWM.
// Comanda pt PWM
TRISCbits.RC2=1; // portul RC2
PR2 = 0xFF;
CCP1CON=0b00001100; // Setare modul ECCP1 ca PWM simplu
CCPR1L=0xFF; // Setare duty cycle
PIR1bits.TMR2IF=0;
T2CON=0b00000101;
while (!PIR1bits.TMR2IF);
TRISCbits .RC2=0;
if (Uk<0) {
Uk=0; }
if (Uk>5) {
Uk=5;}
U = (Uk*1024)/5;
// Modificare factor de umplere
CCPR1L=U;
// Calcul perioada PWM in microsecunde
val_reg=PR2;
T_pwm=((val_reg+1)*4*4)/10;
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
82
În varia bila U este păstrată comanda care este înmulțită cu valoarea maximă și apoi este împărțită la 5,
practic facem o conversie analogic -numerică, ce reprezintă perioada PWM -ului, adică valoarea maximă ce
trebuei transmisă prin funcția de PWM pentru a modifica factorul de umplere până la 100%, adică 5V.
Figura 66 – Semnal de comandă PWM
Pentru a observa variabilele procesului în timpul rulării este necesară afișarea acestora pe display.
Variabilele ce vor fi afișate sunt referința și mărimea măsurată. Variabilele noastre conțin valori între 0 și 5 V.
Pentru o afișare corectă vom înmulții aceste valori cu 100 și vor fi afișate ca un număr între 0 și 500, ultimele 2
cifre fiind partea fracționară. Apoi acest număr este convertit într -o variabilă de tip șir de caractere și apoi afișate
pe LCD.
Pentru a deosebi ulterior ce reprezintă fiecare număr, trebuie ca înaintea lui să scriem inițialele valorii
pe care o reprezintă, ref și Y.
//Afisarea pe display a referintei si a marimii masurate
if (k1%100==0)
{
lcdCommand(0b00111111); // Functie setare display: 8 biti, 2 linii
lcdCommand(0b00001111); // Cursor
lcdCommand(0b00000001); // clear display
lcdCommand(0b00000110); // entry mode
lcdWriteString("Ref:"); // scrierea unu i sir de caractere
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
83
double i_val, f_val, val, i_val1, f_val1;
f_val = modf( ref, &i_val);
itoa(buf1, i_val, 10);
lcdWriteString(buf1);
lcdChar('.');
val=f_val*100;
f_val1 = modf( val, &i_val1);
itoa(buf2, i_val1, 10);
lcdWriteString(buf2);
lcdGoTo(0x40); // salt la linia 2
lcdWriteString("Y:");
f_val = modf( Y, &i_val);
itoa(buf1, i_val, 10);
lcdWriteString(buf1);
lcdChar('.');
val=f_val*100;
f_val1 = modf( val, &i_val1);
itoa(buf2, i_val1, 10);
lcdWriteString(buf2);
CloseSPI1();
}
Figura 67 – Vizualizarea variabilelor procesului pe afișajul alphanumeric LCD
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
84
Figura 68 – Lansarea în execuție a programului
Din m eniul Project –>Build Configuration se setează opțiunea Release .
După realizarea acestor setări, operația Build se realizează din meniul Project sau prin apăsarea
tastei F10. Dacă operația build s -a realizat cu succes se șterge memoria microcontroll erului folosind opțiunea
Programmer –>Erase Flash Device după care se programează microcontrollerul cu Programmer –
>Program .
4.3.2. Conexiuni realizate
Pentru a realiza reglarea, ieșirile variabilelor procesului trebuie conectate la intrările convertoarelor
analog -numerice RA5/AN4, iar ieșirile PWM la intrările procesului conectate la elementele de execuție. Vom
folosii un cablu USB pentru a conecta programatorul PICkit 3 la calculatorul gazdă, pe care rulează programul
MPLAB, iar apoi conectarea programatorul ui printr -un port serial la placa de dezvoltare PICDEM PIC18
Explorer pentru evaluarea dispozitivelor din familiile PIC18FXXXX și PIC18FXXJXX. În plus vom folosii un
osciloscop pentru a putea vizualiza grafic reglarea ventilatorului și modificarea factorul ui de umplere prin
canalele de modulare în durată de impulsuri. Vom folosii osciloscopul HANTEK DS05202B45, acesta având o
funcție specială, și anume, putem conecta osciloscopul la calculatorul gazdă, pe care trebuie să ruleze programul
TTScope pentru a ved eam în timp real, atât pe dispay -ul osciloscopului cât și pe display -ul calculatorului
graficele obținute în timplu executării reglării automate a debitului de aer .
45 [7] – Cartea te hnică a osciloscopului HANTEK din familia DS05000B
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
85
Conexiunile au fost realizare ca în Tabelul 10:
Tabelul 11 – Conexiuni realizate în proiect
Proces Placă de dezvoltare
Ieșire traductor temperatură RA5/AN4 analog -numeric
Intrare ventilator RC2 PWM
Intrare programator PICkit 3 Port serial
Intrare osciloscop RA5 CAN și RC2 PWM
Figura 69 – Instalația experimentală LabVolt 3522 -05
Figura 70 – Conexiunea între placa PICDEM PIC18 și progrmatorul PICkit 3
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
86
Figura 71 – Osciloscopul HANTEK DS5202B
Figura 72 – Conexiuni pe placa de dezvoltare
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
87
4.3.3. Lansarea în execuție
Pentru reglarea debitului de aer s-a scris programul în MPLAB atașat la finalul acestui subcapitol. Acest
program pune împreună tot ce a fost scris până acum în subcapitolu l 4.3.1 despre programarea microcontroler –
ului pentru reglarea debitului de aer . S-au folosit accesoriile prezentate la subcapitolul 4.3.2 și s -au realizat
conexiunile cu instalația.
Parametrii regulatorului PI pentru reglarea debitului de aer sunt K r=3, Ti=2 și T=0.01. Datorită
faptului că sistemul de încălzire este foarte lent, va dura mai mult până când debitul se stabilizează. Pe măsură
ce eroare se micșorează reulatorul începe să scadă comanda până va găsi o comandă care să țină debitul pe loc.
Pentr u regulatorul PI am obținut cu ajutorul osciloscopului HANTEK DS05202B graficul cu oscilațiile
de suprareglaj și reglaj automat. Am folosit programul TTScope pentru a citi graficul de pe osciloscop.
Figura 73 – Răspunsul sistem ului la intrare treaptă (lege de reglare de tip PI)
Parametrii regulatorului PID pentru reglarea debitului de aer sunt K r=2, T i=1, T d=0.01 și T=0.01.
Datorită faptului că sistemul de încălzire este foarte lent, va dura mai mult până când debitul se stabili zează. Pe
măsură ce eroare se micșorează reulatorul începe să scadă comanda până va găsi o comandă care să țină
temperatura pe loc.
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
88
Figura 74 – Răspunsul sistemului la intrare treaptă (lege de reglare de tip PID)
Programul d e rulare licenta.c:
#include <xc.h>
#include <spi.h>
#include <delays.h>
#include <stdlib.h>
#include <math.h>
#include <adc.h>
// CONFIGURARE Microcontroller
#pragma config OSC = HSPLL
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRT = OFF
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
89
#pragma config BOREN = OFF
#pragma config WDT = OFF
#pragma config MCLRE = ON
#pragma config LVP = OFF
#pragma config XINST = OFF
#define CS PORTAbits.RA2
// addresele registrilor circuitului MCP23S17
#define IODIRA_ADDRESS 0x00
#define IODIRB_ADDRESS 0x01
#define GPIOA_ADDRESS 0x12
#define GPIOB_ADDRESS 0x13
// Prototipuri functii
void setIODIR(char, char);
void setGPIO(char, char);
void lcdCommand(char);
void lcdChar(unsigned char) ;
void lcdGoTo(char);
void lcdWriteString(unsigned char*);
int i, d_c, U;
long int k1=0;
unsigned int ADCResult=0;
float Y=0, ref=0, Kr=2, Ti=3, Td=0.002, T=0.01, Uk, Uk1=0, ek1=0, ek2=0, ek, b0, b1, b2;
unsigned char val_reg;
double T_pwm;
char buf1[8]; buf2[8];
//Stetarea intreruperilor cu ajutorul portului S1 (buton RB0)
void interrupt intrerupere_ext (void)
{
if(INTCONbits.INT0IE && INTCONbits.INT0IF) {
ref = ref + 0.5;
}
INTCONbits.INT0IF = 0; // resetare flag
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
90
if (ref>5){ //Cand ref>5 vom aveam o resetare a referintei
ref=0;
}
}
void main(void)
{
while(1){
k1=k1+1;
// Conversie analog numerica
CloseADC();
ADCON0=0b00010000; //canalul AN4, portul RA5
ADCON0bits.ADON = 1; // Activare modul A/D
ADCON1=0b00001001; // RA0 = analog input
ADCON2=0b10111010; // right Justified Fosc/32
ADCON0bits.GO=1; // start conversie
while (ADCON0bits.GO);
ADCResult = (unsigned int) ReadADC();
Y = (ADCResult*5.0)/1024; // conversia numarului în tensiune
CloseADC(); // închiderea modulului A/D
//Afisarea pe display a referintei si a marimii masurate
if (k1%100==0)
{
lcdCommand(0b00111111); // Functie setare display: 8 biti, 2 linii
lcdCommand(0b00001111); // Cursor
lcdCommand(0b00000001); // clear display
lcdCommand(0b00000110); // entry mode
lcdWriteString("Ref:"); // scrierea unui sir de caractere
double i_val, f_val, val, i_val1, f_val1;
f_val = modf( ref, &i_val);
itoa(buf1, i_val, 10);
lcdWriteString(buf1);
lcdChar('.');
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
91
val=f_val*100;
f_val1 = modf( val, &i_val1);
itoa(buf2, i_val1, 10);
lcdWriteString(buf2);
lcdGoTo(0x40); // salt la linia 2
lcdWriteString("Y:");
f_val = modf( Y, &i_val);
itoa(buf1, i_val, 10);
lcdWriteString(buf1);
lcdChar('.');
val=f_val*100;
f_val1 = modf( val, &i_val1);
itoa(buf2, i_val1, 10);
lcdWriteString(buf2);
CloseSPI1();
}
// Calculul eroarii sistemului
ek=ref – Y;
// Algoritmul legii de reglare
b0 = Kr * (1 + T/(2*Ti) + Td/T);
b1 = Kr * ( -1 + T/(2*Ti) – 2*(Td/T));
b2 = Kr * (Td/T);
Uk=Uk1 + ek*b0 + ek1*b1 + ek2*b2; // functia de transfer
ek2=ek1;
ek1=ek;
Uk1=Uk;
// Comanda pt PWM
TRISCbits.RC2=1; //portul RC2
PR2 = 0xFF;
CCP1CON=0b00001100; // Setare modul ECCP1 ca PWM simplu
CCPR1L=0xFF; // Setare duty cycle
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
92
PIR1bits.TMR2IF=0;
T2CON=0b00000101;
while (!PIR1bits.TMR2IF);
TRISCbits.RC2=0;
if (Uk<0) {
Uk=0;
}
if (Uk>5) {
Uk=5;
}
// Modificare factor de umplere
U = (Uk*1024)/5;
CCPR1L=U;
// Calcul perioada PWM in microsecunde
val_reg=PR2;
T_pwm=((val_reg+1)*4*4)/10;
TRISAbits.RA2=0; // pe port ul RA2 se face activarea circuitului Slave
CS=1; // setarea CS la high, pentru transmitere informatii la MCP23S17
OpenSPI1(SPI_FOSC_64, MODE_10, SMPEND); // configurare SPI
setIODIR(IODIRB_ADDRESS,0x00); // setare pini DB 0-DB7 ca iesiri
setIODIR(IODIRA_ADDRESS,0x00); // set RS si E LCD ca iesiri
//Activarea intreruperilor pe portul RB0(buton)sau S1
INTCONbits.GIE=1; // activarea întreruperilor
INTCONbits.INT0IE=1; // activare întreruperi externe pe pin ul INT0
INTCONbits.INT0IF=0; // resetare bit de flag pentru INT0
INTCON2bits.INTEDG0=1; // activare intrerupere pe front crescator
}
}
// functie utilizata pentru scrierea valorilor in porturile MCP23S17
void setGPIO(char address, char value){
CS=0; // inceputul transmisiei
WriteSPI1(0x40);
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
93
WriteSPI1(address);
WriteSPI1(value);
CS=1; // sfarsitul transmisiei
}
/* functie utilizata pentru setarea directiei porturilor circuitului MCP23S17 */
void setIODIR(char address, cha r dir){
CS=0;
WriteSPI1(0x40);
WriteSPI1(address); // selectare IODIRB
WriteSPI1(dir); // setare directie
CS=1;
}
// functie pentru transmitere comenzi catre display
void lcdCommand(char command){
setGPIO(GPIOA_ADDRE SS,0x00); // E=0
Delay10TCYx(0);
setGPIO(GPIOB_ADDRESS, command); // transmitere date
Delay10TCYx(0);
setGPIO(GPIOA_ADDRESS,0x40); // E=1
Delay10TCYx(0);
setGPIO(GPIOA_ADDRESS,0x00); // E=0
Delay10TCYx(0);
}
// Functia pentru afisarea unui caracter pe display
void lcdChar(unsigned char letter){
setGPIO(GPIOA_ADDRESS,0x80); // RS=1
Delay10TCYx(0);
setGPIO(GPIOB_ADDRESS,letter); // transmitere caracter pentru afisare
setGPIO(GPIOA_ADDRESS, 0xc0); // RS=1, EN=1
Delay10TCYx(0);
setGPIO(GPIOA_ADDRESS,0x00); // RS=0, EN=0
Delay10TCYx(0);
}
//* pozitionare cursor
void lcdGoTo(char pos){
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
94
lcdCommand(0x80+pos);
}
void lcdWriteString(unsigned char *s){
while(*s)
lcdChar(*s++);
}
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
95
CONCLUZII
Consider conducerea procesel or cu ajutorul microcontrollere -lor o soluție foarte bună pentru era
automatizată ce bate la ușă, deoarece acestea sunt relativ ușor de folosit pentru diverse scopuri și nu este necesar
spațiu foarte mare pentru pl asarea lor, dimensiunile lor putând varia, dar se pot obține performanțe excelente la
dimensiuni mici. În același timp acestea sunt pregătite pentru procesele reale de automatizare fiind dotate cu
convertoare analog -numerice, numeric -analogice, ceas de tim p real, având și posibilitatea atașării altor
dispozitive precum ar fi afișaje sau tastaturi pentru a realiza o interfață om -mașină prietenoasă și foarte ușor de
folosit.
Industria microcontroller -elor este deja într -o fază avansată de dezvoltare asta fii nd un avantaj mare în
lucrul cu microcontroller -ul deoarece sunt disponibile posibilități cât mai simple de programare și se pot găsi
foarte ușor soluții pentru probleme.46
Sistemele cu modulare în durată de impulsuri sunt sisteme care conțin cel puțin un e lement denumit
Modulator în durată de impulsuri PWM (Pulse With Modulator).
Un element PWM efectuează operația (procesul) de modulare în durată de impulsuri, prescurtată tot
prin simbolul PWM (Pulse With Modulation).
Elementele PWM sunt des folosite î n sistemelede reglare automată deoarece realizează o comandă
de tip bipozițional pentru care elementul de execuție este foarte simplu, putând fi implementat prin simple
contacte electromecanice.O astfel de comandă mai este denumită și "Comandă pro porționale în timp" (Time
Proportional Command).
Tratarea teoretică exactă a sistemelor în care apar elemnte de tip PWM se poate efectua numai folosind
teoria sistemelor cu eșantionare neconvenționale ce va face obiectul unui capitol separat.
Majoritatea echipamentelor numerice de reglare automată și chiar circuitele integrate de tip
micro -controller, au o ieșire de tip PWM.
Din punct de vedere fizic, ieșirea de tip PWM este materializătă prin două borne la care se aplică fie o
tensiune ce po ate lua numai două valori, fie un contact electromecanic care poate fi închis sau deschis.47
Conducerea proceselor industriale moderne este integrată în sisteme informatice, care au atât rolul de
conducere propriu -zisă a proceselor tehnologice cât și de man agement al tuturor resurselor.
Sistemul informatic reprezintă un ansamblu coerent structurat, format din echipamente electronice de
calcul și de comunicație, procese, proceduri automate și manuale; sunt incluse de asemenea structurile
organizatorice și per sonalul care folosesc echipamentele de calcul că instrumente de prelucrare automată a
datelor, în scopul optimizării funcționării proceselor.
46 [11] – hht1
47 [4] – Sisteme discrete în timp
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
96
Sistemul informatic preia și dezvoltă o parte din operațiile de prelucrare ale întregului sistem
informațional și de conducere a procesului pe care le automatizează, devenind astfel un subsistem informațional
automatizat.
Sistemele informatice pentru conducerea proceselor tehnologice sunt formate din ansamblul de
echipamente de calcul și comunicație sau telecomunicați e integrate în sistemul de comandă – control, programe
pentru calculator, proceduri de operare și operatori umani, care colaborează pentru conducerea parțială sau în
totalitate a procesului, în scopul realizării performanțelor tehnice și economice dorite.
Structură generală a unui sistem informatic cuprinde un ansamblu de intrări, prelucrări și ieșiri definite
în funcție de obiectivele sistemului care urmează a fi realizat. Intrările sunt parametrii de referință de comandă
și parametrii de stare reală ai fu ncționării procesului obținuți prin feedback. Ieșirile sunt datele (semnalele) de
comandă ale procesului, de memorare a stării procesului și de informare sintetică a operatorilor de proces și
factorilor de decizie. Prelucrările sunt asigurate de un ansambl u omogen de proceduri automate care realizează,
prin datele de ieșire, comanda și controlul procesului. Baza informațională este formată din ansamblul entităților
informaționale și atributelor componente ale acestora, care descriu dinamica proceselor și fe nomenelor.
Calculatorul de proces dispune față de calculatorul universal de un sistem de interfață cu ajutorul căruia
rezolvă pe lângă problemele de calcul și problemele legate de schimbul de informații (conversie) cu obiectul
condus.
Calculatorul de proce s trebuie să funcționeze neîntrerupt o mare perioadă de timp, deci trebuie să aibă
o fiabilitate și o stabilitate la perturbații ridicată, deoarece orice defecțiune sau întrerupere în funcționare poate
produce o avarie în instalație.
O soluție adoptată fre cvent este modularitatea sistemelor de conducere cu calculatorul, care constă
construcția sistemelor pe baza unei familii de module caracterizate prin autonomie funcțională, universalitate
structurală și standardizare constructivă.
Sistemul de interfață (S I) reprezintă un echipament complex format din mai multe module care
îndeplinesc diferite funcții specifice: conversie analog/digital (A/D), digital/analog (D/A), intrări binare sau
trenuri de impulsuri, ieșiri binare sau trenuri de impulsuri.
Deoarece exi stă o largă varietate de aparate, traductoare sau blocuri de măsură și comandă speciale,
realizarea blocurilor componente ale SI devine specifică fiecărei aplicații. Pentru a se putea utiliza un astfel de
sistem pentru o gamă largă de aplicații se tinde sp re folosirea interfețelor standardizate, simple în utilizare și
acceptabile ca preț.
Sistemele de măsură reprezintă o parte integrantă a procesului de dezvoltare a unui produs său proces.
În ultimii 20 de ani, sistemele de măsură au cunoscut o schimbare ra dicală, o adevărată revoluție, care a condus
la o nouă arhitectură în care calculatorul are rolul principal.
În urmă cu peste 20 de ani, comunicațiile seriale (RS -232 și GPIB) au permis calculatorului să devină
pentru prima dată o parte componentă a sistem elor de măsură. Prin conectarea echipamentelor de măsură direct
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
97
la calculator s -a putut reduce timpul de lucru și erorile de procesare specifice transferului manual al datelor care
erau introduse în calculator pentru analize ulterioare.
Prin utilizarea cal culatorului ca un „controler” central pentru toate instrumentele sistemului de măsură
s-au putut integra și coordona mai multe instrumente de măsură într -un singur sistem. Pentru aceasta, a fost
necesară crearea unei interfețe software care să permită tran smiterea comenzilor și primirea răspunsurilor de la
instrumentele din sistemul de măsură într -un sistem centralizat bazat pe calculator. Au fost dezvoltate astfel
driverele care se instalau ca o parte a sistemului de operare (standardul API = Application P rogramming
Interface – Interfața de Programare a Aplicațiilor).
Progresele realizate în arhitectura sistemelor de calcul (respectiv a magistralelor de transmisie) a permis
dezvoltarea echipamentelor de măsură modulare pe care utilizatorii le puteau instala în calculator.
Aceste platforme flexibile și ieftine solicitau însă de la programul sistemului mai mult decât trimiterea
comenzilor și primirea răspunsurilor. Interfețele de programare a aplicațiilor de înalt nivel au simplificat
procesul de transferare r apidă a datelor de la placa de achiziție în memoria calculatorului. Cu ajutorul
algoritmilor de procesare a semnalelor și a instrumentelor software, specialiștii au creat propriile lor rutine de
analiză. Programele de interfață cu utilizatorul au fost real izate utilizând reprezentări grafice, butoane și cursoare
ale instrumentelor de măsură pe ecranul calculatorului.
Dezvoltarea mediilor specifice de măsurare a condus la dezvoltarea instrumentelor puternic integrate
de control și achiziție a datelor, analiz ă și vizualizare a acestora.
În ultimii ani, inovațiile în domeniul arhitecturii magistralelor de transmisie (de exemplu: PXI/Compact
PCI) au permis crearea unor platforme specializate pentru măsurare avansată și control.
În prezent, instrumentele de măsur ă independente sunt optimizate pentru a putea fi utilizate în sisteme
de măsură integrate. Din cauza rapidității cu care evoluează tehnica de măsurare și echipamentele specifice,
trebuie redus timpul necesar elaborării sau dezvoltării programelor aferente de testare. Pentru aceasta,
specialiștii au ales să utilizeze mai multe limbaje de programare cum ar fi Visual Basic sau Visual C++.
Componenta software joacă un rol vital în dezvoltarea sistemelor automate de achiziție a datelor și
control. Este imperativ necesar ca programele utilizate în cadrul unui sistem integrat de măsură să poată fi
menținute simplu și modificate rapid.
Un mediu software integrat de măsurare și automatizare trebuie să aibă o structură modulară, necesară
pentru construirea sistemelor de măsură și control automate de înaltă performanță.
Pentru a asigura performanțe maxime, dezvoltare ușoară și coordonare a nivelelor sistemului,
componentele mediului de lucru trebuie să fie independente (modulare) și puternic integrate în ansamblul
sistemului. Această structură modulară integrată permite utilizatorilor construirea rapidă a unui sistem de
măsură și modificarea lui simplă atunci când cerințele sistemului se schimbă.48
48 [14] – htt12
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
98
Programele de măsură și control joacă un rol esențial în dezvoltarea siste melor de măsură modulare
bazate pe sistemele de calcul și comunicarea în rețea. Modulele programului, driverele echipamentelor, interfața
programelor de aplicație și managerul de configurare trebuie să integreze totul în mediile de dezvoltare ale
aplicații lor pentru a atinge performanța maximă și creșterea productivității.
Mediile de dezvoltare a aplicațiilor joacă un rol important în cadrul programelor de măsurare și
automatizare. Cu aceste instrumente, dezvoltatorul sistemului proiectează și integrează si stemul care preia
măsurătorile, controlează procesele, afișează informațiile la utilizatorul final, asigură conectarea cu alte aplicații
etc.
Reglarea instalației LabVolt folosind microc ontroller -ul PIC 18F8722
_________________________________________________________________________________________________
99
BIBLIOGRAFIE
[1] C. Marin, Structuri și legi de reglare automată, Craiova: Ed. Sitech, 2005.
[2] C. Marin, Ingineria reglării automate, Craiova: Ed. Sitech, 2004.
[3] T. M., Discretised PID Controllers, UK: Newcastle upon Tyne Univ., 1991.
[4] C. Marin , Sisteme discrete în timp, Craiova: Editura SITECH, 2007.
[5] DataSheet, „Ca rtea tehnică a instalației LabVo lt 3522 -05,” 2000.
[6] DataSheet, „Cartea tehnica a microcontroller -ului din famila PIC18F8722,” 2013.
[7] DataSheet, „Cartea tehnică a osciloscopului HANTEK din fami lia DS05000B,” 2013.
[8] „http://www.microchip.com/pagehandler/en -us/family/mplabx/,”
[9] „http://www.thodukonics.com/os/HA NTEKDSO5000.pdf,”
[10] „http://www.timsoft.ro/aux/mod ule/modul5.html,”
[11] „http://www.z ipry.com/b log/proiect.doc,”
[12] C. Marin, Sisteme neconvenționale de reglare automată, Craiova: Ed. Sitech, 2004.
[13] „http://www.studentie.ro/referate/informatica/structuri -de-sisteme -cu-microprocesor -pentru –
conducerea -proceselor -ind_i46_c981_9 2970.html,” 2010.
[14] „http://www.energ.pub.ro/fisiere/master/Subiecte%202012/Carti/Metodologia%20de%20achizitie
%20si%20prelucrare%2 0date.pdf,” 2012.
[15] C. Ionete, Sisteme integrate – Indrumar de laborator, C raiova, 2013.
[16] C. Marin E. Petre D. Selișteanu, Sisteme de reglare automată, Lucrări practice, Craiova: Ed. Sitech,
1997.
[17] „http://tet.pub.ro/files/studenti/materiale/an_III/miccurs/Microcontrolere_ Cap_2.doc,” 2012.
[18] „http://referate.rol.ro/download -referate/diverse/Termometru_d igital.doc,” 2011.
[19] „http://www.scrigroup.com/tehnologie/electronica -electricitate/Masurarea -inductantei –
bobinelo 93324.php,” 2014.
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: Conferențiar dr. ing. Dorin ȘENDRESCU Iulie 2014 CRAIOVA ii UNIVERSITATEA DIN CRAIOVA FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI ELECTRONICĂ… [606699] (ID: 606699)
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.
