Sunteți pe pagina 1din 79

1.

MICROCONTROLERUL – ELEMENT DE BAZĂ ÎN


ECHIPAMENTELE NUMERICE
Utilizarea microprocesoarelor (a logicii programate) în echipamentele de comandă,
survenită după anii 70, a adus avantaje majore în raport cu soluţiile existente: flexibilitate
funcţională ridicată, consumuri de energie reduse, volum şi greutate minime, fiabilitate mărită şi
- nu în ultimul rând - posibilitatea implementării unor strategii de comandă performante. Soluţiile
de comandă în logică programată implică utilizarea de structuri digitale complexe ca circuite
specializate (ASIC - Application Special Integrated Circuit),
microprocesoare (µP) de uz general sau cu funcţii speciale, microcontrolere (µC), procesoare
numerice de semnal (Digital Signal Processor - DSP) dar şi echipamente numerice precum
automate programabile (PLC - Programmable Logic Controller), regulatoare digitale, sisteme
CNC pentru maşini - unelte (Computerized Numerical Control), calculatoate industriale etc.
Microcontrolere se constituie în prezent ca cel mai bun compromis între structuri
numerice de comandă de uz general şi cele specializate; ele oferă o alocare optimă a task-urilor
la resurse hardware şi software precum şi facilităţi pentru conducerea în timp real. Raportul preţ -
performanţă este foarte convingător, chiar circuite din clasa economică pe 8 biţi putând suporta
prelucrări complexe, cu precizie bună şi viteză de procesare ridicată.

1.1 Structura sistemelor microprogramabile

Microcontrolerul este un circuit integrat de tip microprocesor, fiind orientat structural si


funcţional spre lucrul cu intrări şi ieşiri. Dacă se înglobează intr-un circuit integrat pe lângă
microprocesor, memorie ROM , memoria RAM şi elementele de intrare/ieşire necesare unei
anumite aplicaţii se obţine cel mai complex circuit integrat numit microcontroler.
Un microcontroler este similar unui microprocesor. Ambele conţin o unitate centrala de
prelucrare sau UCP (Central Processing Unit). CPU execută instrucţiuni care îndeplinesc
operaţiile de baza logice, matematice şi de curgere a informaţiei.
Pentru a construi un calculator complet, microprocesorul necesită memorie pentru
păstrarea datelor şi a programelor şi interfeţe de intrare-ieşire (I/O) pentru conectarea
dispozitivelor externe cum ar fi tastatura sau monitorul. Spre diferenţa de microprocesor,
microcontrolerul este un calculator pe un chip deoarece el conţine şi memorie şi interfeţe de
intrare-ieşire pe lângă CPU. Deoarece memoria şi interfeţele care încap pe un chip sunt limitate,
microcontrolerele tind să fie utilizate în sisteme mai mici care necesită doar un microcontroler şi
câteva elemente adiţionale, [30].
Pentru a alege un microcontroler din marea varietate de microcontrolere existente pe piaţă
trebuie ţinut cont de câteva caracteristici importante ale acestora:
⮚ numărul de biţi pe care îl poate procesa simultan, numărul mai mare de biţi indicând un chip mai
rapid şi mai puternic. Circuitele de 8 biţi sunt foarte populare, dar există şi circuite de 4, 16, 32
biţi.
⮚ consumul de putere este important mai ales în cazul sistemelor alimentate de la baterie. Circuitele
realizate în tehnologia CMOS au un consum redus de putere. Multe din dispozitivele CMOS au
un mod special de "aşteptare" (stand-bye sau sleep) care limitează consumul de curent la câţiva
miliamperi când un circuit este inactiv.
⮚ un alt considerent în proiectarea circuitelor cu microcontrolere este modul de memorare a
programului. Dintre modalităţile de memorare amintim memoriile EPROM, EEPROM, ROM,
NVRAM (nonvolatile RAM) şi FLASH EPROM.
⮚ opţiuni de intrare-ieşire. Majoritatea sistemelor necesită interfeţe cu senzori, tastatura,
comutatoare, relee, monitoare etc. În general microcontrolerele au porturi pentru interfaţarea cu
lumea exterioară.
Pe piaţa naţionala şi internaţională se găsesc microcontrolere de 4 biţi, de 8 biţi, de 16 biţi,
de 32 de biţi. Cele mai folosite microcontrolere sunt cele de 8 şi 16 biţi. În al doilea caz avem
microcontrolere cu arhitectura Von Neuman, având magistrala internă unică la care comunică
toate elementele, sau microcontrolere cu arhitectura Harvard, având două magistrale, una pentru
memoria ROM de programe şi alta pentru memoria RAM de date. În acest caz cele două tipuri
de memorii utilizează acelaşi spaţiu de adrese, ele nu se confundă datorita existenţei unor
instrucţiuni adecvate lucrului cu memoriile.
În tabelul 1, se prezintă câteva exemple de microcontrolere de la 4 la 32 de biţi, începând
de la cel mai simplu, microcontrolerul COPS400 care este foarte rar utilizat, continuând cu
câteva microcontrolere foarte populare, cum sunt 87C752, 68HC11F1 şi 80C166/167 şi
terminând cu microcontrolerul de 32 de biţi foarte performant TriCore TC1775,[35].

Tabelul 1.Caracteristicile câtorva microcontrolere semnificative


P PIT (nr.)
Microcon Siemens (n (nr.)
(num 75 (32 CLO SP -
(M (nr
R -
(k 2 -
Nation R 1
Semico 2 1
COPS4 -
(4 biţ 0.
-
1x -
1x
Hitac - 1
HD447
(4 biţ 1 5
1 1
2 -
1 I2C
Philip 8
87C75 1
biţi 1
6 2 16

8
Motor IrDA
68HC1 2x LCD
(8 biţ 2x
2 I2C
2x -
UAR
5x
3
10
CYPRE 2
CY8Cxx
(8bit 1
2 2 2
1x
4x 2
3
Sieme
80C166
4 4
(16 bi 1x
PWM
11
ADC (nr.)

Microcontrolerele de 4 şi 8 biţi au fost cele mai răspândite dispozitive inteligente, în


principal datorită simplităţii faţă de microcontrolerele de 16 si 32 de biţi. În ciuda acestei
simplităţi, microcontrolere de 8 biţi încă domină o parte importantă a pieţei de microcontrolere.
Deşi au structura relativ simplă, aceste microcontrolere sunt capabile să controleze multe
dispozitive începând cu maşinile de spălat şi aparatele video până la automatele programabile.
Deşi prezintă limitări de procesare datorită dimensiunii reduse a cuvântului şi a vitezei mici,
totuşi costul scăzut şi prezenţa elementelor interne pentru periferice (drivere de display, interfeţe
paralele şi seriale, convertoare A/D etc) le face foarte atractive.
Aceste dispozitive inteligente sunt foarte potrivite pentru un număr de aplicaţii de
producţie în serie în care o soluţie de cost scăzut necesită un număr minim de cip-uri. În tabelul 2
sunt prezentate cele mai populare microcontrolere de 4 si 8 biţi. Dintre cele de 4 biţi,
microcontrolerul HD44780 este dedicat unei sarcini speciale, şi anume driver de afişaj LCD.
Tabelul 2. Exemple de microcontrolere de 4 şi 8 biţi
Tip 4 instrucţiuni
Nr Texas
crt. Instruments

TMS1000 4 6kB ROM; 256x


individuale; 4 ca
1 Nippon serial I/O de
Electrinics instrucţiuni
NEC7500
4
2
Hitachi 1.2kB ROM; 80x
64x8 RAM gene
linii segment;16
HD44780 de instrucţiuni
3 8

Phillips
8kB ROM;256x8
8 biţi; 8 canale A
80C552 de instrucţiuni
8
4
Motorola
12kB ROM; 0.5k
68HC11 6 porturi de 8 biţi
8 canale ADC; US
5 instrucţiuni
Texas
Instruments
TMS370
16kB ROM; 0.5k
6 8 RAM; 5 porturi
3 biţi; 8 canale; A
CYPRESS moduri de adresa

M8C

7 26 porturi I/O; 16
blocuri analogic
Viteza CPU 24 M
Biti tipuri de instruct
care cuprinde m
Flash
Producător 4kB RO
ieşire; 8
Microcontrolerul diferă de un microprocesor în multe feluri. În primul rând şi cel mai
important este funcţionalitatea sa deoarece pentru a putea fi utilizat unui microprocesor trebuie să
i se adauge alte componente ca memorie, sau componente pentru primirea şi trimiterea de date.
Pe scurt, aceasta înseamnă că microprocesorul este inima calculatorului. Pe de altă parte,
microcontrolerul este proiectat să fie toate acestea într-unul singur. Nu sunt necesare alte
componente externe pentru aplicarea sa pentru că toate perifericele necesare sunt deja incluse în
el. Astfel, economisim timpul şi spaţiul necesare pentru construirea de aparate.

1. 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 sertarele î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.
Două noi concepte ne sunt aduse: adresarea şi locaţia de memorie. Memoria constă din
toate locaţiile de memorie, şi adresarea nu este altceva 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 trebuie să
aşteptăm conţinutul acelei locaţii. În afară de citirea dintr-o locaţie de memorie, memoria trebuie
de asemenea să permită scrierea în ea. Aceasta se face prin asigurarea unei linii adiţionale numită
linie de control. Vom desemna această linie ca R/W (citeşte /scrie). Linia de control este folosită
în următorul fel: dacă r/w=1, se face citirea, şi dacă opusul este adevărat atunci se face scrierea în
locaţia de memorie. Memoria este primul element, dar avem nevoie şi de altele pentru ca
microcontrolerul nostru să funcţioneze.

1.1.2 Unitatea Centrală de Procesare

Să adăugăm alte 3 locaţii de memorie pentru un bloc specific ce va avea o capabilitate


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 centrală" (CPU).
Locaţiile ei de memorie sunt numite regiştrii. 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 oriunde 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.

1.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.
În ceea ce priveşte funcţionalitatea, situaţia s-a îmbunătăţit, dar o nouă problemă a apărut
de asemenea: avem o unitate ce este capabilă să lucreze singură, dar ce nu are nici un contact cu
lumea de afară. Pentru a înlătura această deficienţă, să adăugăm 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ă.
1.1.4 Unitatea Intrare-ieşire

Aceste locaţ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ă se trimită date la, sau să se ia
date de la port. 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.

Fig.1
Schema bloc generală a unui microcontroler cu elementele de baza si conexiunile interne

Astfel microcontrolerul este acum terminat, şi tot ce mai rămâne de făcut este de a-l pune
într-o componentă electronică unde va accesa blocurile interioare prin pinii exteriori. În figura 1
este explicitată schema logică generală a unui microcontroler, liniile subţiri ce merg din interior
către părţile laterale ale microcontrolerului reprezintă fire conectând blocurile interioare cu pinii
capsulei microcontrolerului.

1.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 neajunsurile lui. Unul din neajunsurile de bază este
numărul de linii ce trebuie să fie folosite pentru a transfera datele. O alternativă ar fi 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 pentru 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.
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.

1.1.6 Unitatea Timer

Pentru a putea fi folosit în industrie mai are nevoie de câteva blocuri. Unul din acestea este
blocul timer care este important, pentru că ne dă informaţia de timp, durată, protocol etc., [30].
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 timpului nostru.

1.1.7 Watchdog-ul

Încă un aspect foarte important este funcţionarea fără defecte a microcontrolerului în


timpul funcţionării. 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 continua să lucreze. Totuşi, nu există buton de resetare pe care să-l apăsăm în
cazul microcontrolerului care să rezolve astfel problema. Pentru a depăşi acest obstacol, este
nevoie de a introduce încă un bloc numit watchdog – “câinele de pază”. Acest bloc este de fapt
un alt contor liber (free-run) unde programul 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.

1.1.8 Convertorul Analog-Digital

Pentru că semnalele 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 bloc
CPU aşa ca blocul CPU să o poată procesa.
Pentru o aplicaţ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.

1.1.9 Analiza sistemelor microprogramabile

Firmele cele mai cunoscute care produc microcontrolere sunt: SIEMENS şi PHILIPS în Europa;
INTEL, MOTOROLA, TEXAS INSTRUMENTS, MICROCHIP şi CYPRESS în SUA;
HITACHI şi MITSUBISHI în Japonia. În continuare se prezintă câteva familiile de
microcontrolere care sunt cele mai reprezentative, punându-se accent pe familia de
microcontrolere de tip Cypress deoarece acest tip de microcontrolere a fost utilizat la
modernizarea circuitelor de comandă şi protecţie ale echipamentelor electrice pentru atmosfere
potenţial explozive.

✵ 80C196 (Intel MCS-96) Este un microcontroler pe 16 biţi făcând parte din generaţia treia de
microcontrolere a firmei Intel. Destinat iniţial unor aplicaţii din industria de automobile, are o
arhitectură von Neumann, cu un spaţiu de adresare de 64KBytes, o unitate de intrări/ieşiri
numerice de mare viteză (destinată iniţial controlului injecţiei la un motor cu ardere internă),
ieşiri PWM, convertor analog numeric, timer watchdog. Există multe variante, ultimele
cronologic apărute, fiind mult superioare variantei iniţiale. Există şi o dezvoltare recentă sub
forma familiei MCS-296 (80C296)
✵ 80C186, 80C188 (Intel, AMD, ş.a.) Derivate din clasicele 8086/88 prin includerea pe acelaşi
microcircuit a 2 canale DMA, 2 numărătoare/timere, un sistem de întreruperi şi un controler
pentru DRAM. Marele avantaj al acestor cvasi(aproape) microcontrolere (ele nu au memorie
integrată!) este legat de utilizarea ca mediu de dezvoltare a unor platforme de calcul tip IBM-PC,
compatibile 80x86, cu tot softul aferent.
✵ 68HC05 (Freescale - www.freescale.com, ex Motorola ) Un microcontroler de 8 biţi derivat din
microprocesorul M6800 şi care prezintă multe asemănări cu un alt microprocesor răspândit, la
timpul său, 6502. Are un spaţiu de memorie unic (64Kbytes) în care sunt plasate şi registrele
perifericelor (I/O, timere) cu un indicator de stivă (SP) hard pe 5biţi (stivă de maxim 32 octeţi !).
Există variante cu memorie EEPROM, CAN, port serial, etc. Este unul din cele mai răspândite
microcontrolere (comparabil cu 8051). Varianta evoluată a acestei familii este seria 68HC08
bazată pe o nouă unitate centrală de 8 biţi numită CPU08, cu cea mai recentă dezvoltare sub
forma seriei 68HCS08 destinată în mod special unor aplicaţii din industria automobilului.
✵ 68HC11, 68HC12, 68HC16 (Freescale) 68HC11 a fost unul din cele mai puternice
microcontrolere pe 8 biţi, foarte răspândit în ciuda faptului că Motorola a fost un timp singurul
producător. Are un set de instrucţiuni asemănător cu alte produse ale firmei (6801, 6805, 6809).
Are un spaţiu de adrese unic de 64K. Nenumărate variante ca resurse: EEPROM, OTP, CAN,
PWM, etc. Prezintă ca particularitate existenţa unui program de încărcare rezident (bootstrap
loader în ROM intern) cu care, la reset, un segment din memoria RAM externă poate fi încărcat
cu cod program prin intermediul portului serial. Variantele evoluate sunt de fapt microcontrolere
de 16 biţi:
⮚ un "super 68HC11", numit 68HC12 bazat pe o nouă unitate centrală numită CPU12, care
reprezintă extensia la 16 biţi a arhitecturii HC11
⮚ un 68HC16, mai puţin răspândit, bazat pe o unitate centrală numită CPU16 ✵ PIC (Microchip-
www.microchip.com ) Primul microcontroler din această familie (PIC1650) a apărut acum mai bine de
20 de ani pe vremea când firma era proprietatea General Instruments. Este o familie de
microcontrolere care, în ultimii ani, a cunoscut o dezvoltare explozivă. Sunt disponibile actualmente
sub forma a 6 serii: PIC10, PIC12, PIC14, PIC16, PIC17 şi PIC18. In seriile respective există variante
cu memorie de program de tip OTP(C) sau FLASH (F). Au fost primele microcontrolere de 8 biţi cu
arhitectură RISC: PIC16C5x avea un set de doar 33 instrucţiuni (Intel 8048 avea 90). Arhitectura este
de tip Harvard şi, ca o particularitate, dimensiunea cuvântului pentru program este de 12, 14 sau 16
biţi, cuvântul de date fiind tot de 8 biţi. Există foarte multe variante pentru cele şase serii, unele din ele
fiind caracterizate printr-un număr mic de conexiuni exterioare (pini) şi în consecinţă dimensiuni mici,
consum foarte mic, ideea de bază fiind costul redus. Cronologic, ultimul produs al firmei Microchip
este seria dsPIC30F, de fapt un procesor numeric de semnal, de 16 biţi, cu o periferie specifică
optimizată pentru controlul acţionărilor electrice (motoare electrice). Firma Ubicom (ex Scenix,
www.ubicom.com) produce nişte clone ale familiei PIC, mult mai rapide decât originalele. Modulele
Basic Stamp ale firmei Parallax (www.parallax.com) sunt bazate si pe astfel de microcontrolere (sunt
foarte utilizate, şi nu numai de profesionişti în robotică).
✵ AVR (Atmel- www.atmel.com ) Un concurent puternic al seriei PIC este familia numită AVR, a
firmei ATMEL, familie apărută în ultimii ani, care oferă variante de microcontrolere oarecum
asemănătoare ca resurse cu familia PIC, la performanţe similare sau mai bune. Sunt bazate pe o
arhitectură diferită, dar unitatea centrală este tot de tip RISC, cu cuvântul de date de 8 biţi. La fel
ca la PIC dimensiunea cuvântului de program este mai mare, fiind de 16 biţi. Există cel puţin 3
sub familii mari, în ordinea complexităţii resurselor, acestea fiind: AT Tiny, AT90 şi ATMega.
✵ COP4(00) şi COP8(00) (NS -National Semiconductors - www.national.com ) COP4 este un
microcontroler pe 4 biţi, categorie de microcontrolere care, în general, departe de a fi învechite,
ocupă un segment relativ important al pieţii. Printre caracteristici: până la 2K ROM local, 32x4
până la 160x4 RAM local, Microwire, numărătoare/timere, tensiune de alimentare 2.3-6V, număr
mic de pini. COP8 reprezintă o serie de microcontrolere pe 8 biţi, versatilă, cu preţ scăzut,
disponibilă în multe variante. Arhitectura este similară lui 8051, dar setul de instrucţiuni este
similar lui Z80.
✵ Z8 (Zilog, - www.zilog.com ) Un derivat al microprocesorului Z80, reprezintă un compozit al mai
multor arhitecturi diferite. Nu este compatibil cu setul de instrucţiuni şi nici cu perifericele
standard Z80. Are trei spaţii de adrese: program, date şi un masiv de registre. Resurse locale
tipice: UART, timere, DMA, sistem de întreruperi cu până la 37 de surse. Există o variantă cu un
interpreter Tiny Basic în ROM-ul local (analog 8052AH Basic de la Intel) precum şi o variantă
cu resurse îmbunătăţite numită Super-8.
✵ Z180(Zilog), Rabbit ( Rabbit Semiconductors- www.rabbitsemiconductor.com ) Z180 -ul firmei
Zilog are un CPU similar cu Z80 dar îmbunătăţit, cu resurse locale cum ar fi: management de
memorie (memorie paginată de maxim 1MB), USART (numit SIO), 2 canale DMA, timere,
sistem de întreruperi, eventual PIO. Instrucţiuni suplimentare faţă de setul standard Z80, printre
care şi înmulţirea. Diversele sale variante nu includ memorie locală. Rabbit 2000 sau 3000 este
un microcontroler bazat pe un nucleu de Z180, deosebit de versatil ca resurse periferice
disponibile şi foarte uşor de integrat în aplicaţii. Sunt disponibile module realizate pe baza
acestui microcontroler, module care adaugă şi memorie de tip ROM FLASH şi RAM. Utilizarea
unui mediu de programare foarte productiv numit Dynamic C precum şi a facilitaţilor de
programare şi depanare In-System au făcut ca acest microcontroler sa cunoască o răspândire
destul de larga.
✵ TMS370 (Texas Instruments- www.ti.com ) Microcontrolerul standard pe 8 biţi al firmei TI realizat
în multe variante (de ordinul zecilor), prezintă unele asemănări cu 8051 (memoria de date locală,
stiva, modurile de adresare). O varietate extrem de mare a resurselor locale.
✵ 80386EX (Intel) Un 80386 destinat aplicaţiilor de tip controler. Resurse locale: I/O seriale,
timere/numărătoare, DMA, optimizarea consumului, controler de întreruperi, controler pentru
RAM dinamic. Nu au memorie locală. Marele avantaj al unui astfel de microcontroler este că se
poate utiliza ca platformă de dezvoltare un sistem de tip IBM PC împreună cu tot mediul de
programare aferent.
✵ MSP430 (Texas Instruments) Firma TI oferă şi o familie de microcontrolere de 16 biţi cu
arhitectura RISC, cu posibilitatea controlului compromisului viteză de calcul/consum propriu,
destinată aplicaţiilor portabile (şi nu numai), denumită MSP 430. Cu un spaţiu de adresare de
64KBytes, are diverse variante de realizare a memoriei interne de program (OTP, FLASH),
resurse diverse (printre care şi o interfaţa pentru un sistem de afişare LCD).
✵ CYPRESS (Cypress Semiconductors – www.cypress.com ). Proiectarea unor produse embedded,
utile si ieftine poate fi o provocare chiar si pentru cei mai experimentaţi ingineri. In prezent,
proiectele embedded necesita optimizarea numărului de componente, a dimensiunii fizice, a
consumului de putere sau a costului, sau a tuturor celor de mai sus. Produsele embedded complet
optimizate folosesc foarte puţine resurse care se irosesc. Aceasta forţează adesea proiectanţii sa
aleagă componente mai puţin costisitoare care cred ei ca vor funcţiona acolo unde componente
mai scumpe ştiu ca vor funcţiona. Mă refer la aceasta situaţie numind-o "Constrângerea
dezvoltării embedded".
Constrângerea dezvoltării embedded este acel sentiment îngrozitor care apare când iţi dai
seama ca partea pe care ai pus bazele proiectului tău se dovedeşte a fi insuficienta. Aceasta se
întâmpla de obicei in mijlocul unui proiect si provine din micşorarea anumitor resurse importante
- determinând oprirea procesului de dezvoltare. Deoarece microcontrolerul pe care operatorul îl
utilizează include o varietate de resurse incluse intr-un chip, exista din abundenta oportunităţi
pentru a experimenta constrângerea.
Probleme comune MCU când se folosesc unităţi de microcontroler tradiţionale, exista trei
tipuri majore de resurse care, in mod obişnuit, sunt insuficiente:
⮚ spaţiul memoriei program;
⮚ conexiunile I/O;
⮚ setul periferic disponibil.
In continuare sunt prezentate câteva tehnici comune de proiectare care ajuta la oprirea
constrângerii înainte de a începe. Când se proiectează un sistem îmbunătăţit, codul ales pare
totdeauna ca umple tot spaţiul disponibil si apoi el creste mai mult. Daca este utilizat un nivel
mai ridicat al limbajului de proiectare, cum ar fi C, se poate rezolva problema spaţiului codului
prin cumpărarea unui compilator mai eficient. Preţul unui compilator este in mod obişnuit legat
de abilitatea sa de a genera cod care este eficient atât in ceea ce priveşte spaţiul cat si in ceea ce
priveşte timpul de funcţionare. In timp ce costul uneltei de dezvoltare este întotdeauna un punct
important, o doza suplimentara de eficienta reduce costul, daca aceasta permite finalizarea
proiectului fără optimizări suplimentare pe aplicaţia concepută. De asemenea, se poate optimiza
software-ul pentru a reduce spaţiul codului - fie prin codificarea in limbaj de asamblare, fie in C.
Totuşi, acesta este un proces care necesita timp care produce răspunsuri diminuate cu cat
se lucrează mai mult la el. O alta cale este utilizarea de intrări/ieşiri necesare realizării a tot ceea
ce necesita proiectul. In aceasta situaţie, se pot multiplexa funcţiile pe acelaşi pin (folosirea
aceluiaşi pin atât ca intrare cat si ca ieşire) sau chiar se poate folosi ieşirea pentru doua funcţii
diferite (implementând atât starea sus cat si starea jos a pinului).
Setul periferic disponibil al unui anumit microcontroler este o alta caracteristica ce
cauzează probleme pentru un proiectant. La jumătatea drumului proiectului, se descoperă că mai
este nevoie de un periferic care nu a fost luat în considerare la începutul proiectului. Adesea se
poate substitui implementarea unui software al unui periferic hardware care lipseşte. Un exemplu
in acest sens este o rutina software pentru a face comunicaţie asincrona pe un port pin fără
periferic hardware. Aceasta poate fi o buna soluţie atâta timp cat există suficient spaţiu CPU
disponibil pentru a manevra volumul de lucru suplimentar.
Adesea, proiectanţii experimentează "Constrângerea dezvoltării embedded" la proiecte
reuşite ale lor. In ciuda tehnicilor descrise mai înainte, "Constrângerea" primejduieşte căutările
de a finaliza un proiect la timp si cu un anumit buget.
Cauze fundamentale ale "Constrângerii" sunt lipsa flexibilităţii si volumul total de
microcontrolere ce se afla pe piaţa. Când este selectat un microcontroler, utilizatorul trebuie să
caute prin grămada de informaţii pana găseşte setul complet de caracteristici de care are nevoie
pentru proiectul său. De cele mai multe ori, cerinţele si caracteristicile sistemului se modifica pe
la jumătatea drumului fiind necesară o re-configurare a resurselor sau de a modifica
microcontrolerul la jumătatea procesului de proiectare. Cele mai multe MCU nu furnizează o
cale de upgradare clara pentru a găsi un nou dispozitiv atunci când cel curent nu mai este util
pentru aplicaţia dorită. Deoarece exista atât de multe microcontrolere disponibile (si
caracteristicile lor variază atât de mult), găsirea piesei upgradate care are tocmai resursele
necesare crescute este extrem de rara. De aceea, chiar cea mai mica modificare in mijlocul
ciclului de proiectare poate conduce la eşecuri majore.
Pentru a rezolva aceasta problema si a uşura "Constrângerea", Cypress MicroSystems, a
dezvoltat o linie de sisteme semnal mixat care se caracterizează prin controler pe placa. Aceste
dispozitive PSoC permit personalizarea setului periferic in aşa fel încât sa se adapteze cel mai
bine la aplicaţia dorită - in orice moment pe durata procesului de dezvoltare. Fiecare parte
conţine blocuri de circuite analogice si blocuri de circuite digitale care pot fi configurate in
perifericele care se potrivesc cel mai bine aplicaţiei. În cazul în care circuitele de comandă şi
protecţie, spre exemplu, necesită o modificare în setul de caracteristici al sistemului se poate
modifica simplu configuraţia iniţială fără a mai fi nevoie de alegerea unei noi piese. Blocurile
analogice si digitale incorporate sunt folosite pentru a crea periferice pe aceste dispozitive.
Blocurile PSoC digitale pot implementa o varietate de funcţii microcontroler standard, cum ar fi
timere, PWMe (Pulse Width Modulators) si canale de comunicaţie seriala. Ele pot, de asemenea,
sa implementeze funcţii care nu sunt in mod normal disponibile in hardware pe microcontrolere -
cum ar fi PRS (Pseudo Random Sequence generators) si CRC (Cyclical Redundancy Checkers).
Fiecare din blocurile digitale serveşte ca o resursa de 8 biţi, însemnând ca se poate face
un timer de 8 biţi de la un bloc digital. Blocurile digitale pot fi, de asemenea, instruite împreuna
daca este nevoie de lăţimi bit mai mari - făcând un PWM de 16 biţi din doua blocuri digitale ce
lucrează împreuna.
Pe de alta parte, blocurile analogice ale acestei noi arhitecturi sunt construite in jurul
amplificatoarelor operaţionale. Trei tipuri de blocuri analogice suporta o larga varietate de
funcţii. Unul din aceste blocuri analogice are mai multe multiplexoare analogice care se pot seta
pentru a controla topologia caii de răspuns si o matrice rezistor programabil de precizie. Celelalte
doua tipuri de blocuri analogice sunt, de asemenea, construite in jurul amplificatoarelor
operaţionale, dar au reţele de condensatoare pentru a fixa caracteristicile blocului.
Se pot folosi blocurile analogice singure pentru a crea filtre si stadii de amplificare, sau
împreuna cu blocurile digitale pentru a crea funcţii cum ar fi convertoare A/D si convertoare
D/A. Setul periferic este ales de către utilizator, aşa ca nu trebuie recurs la a face periferice
software care consuma din spaţiul codului si reduc performanta.
Noul dispozitiv se caracterizează, de asemenea, prin resurse generoase de interconectare.
Este posibilă dirija atât a semnalelor analogice cat si semnalelor digitale intre diferite si variate
blocuri funcţionale, creând astfel arhitectura sistemului dorita chiar pe dispozitiv. De aceea, un
semnal analog ce vine intr-un pin de la un senzor este condus prin stadii succesive de amplificare,
filtrare si conversie A/D si introdus in CPU pentru procesare. Nivelul crescut de flexibilitate a
interconectării este o alta caracteristica a acestei arhitecturi, care va permite sa lucraţi pe toate
problemele de I/O pe care le puteţi întâmpina.
Unelte de dezvoltare
Alegerea siliciului este influenţata in mare măsura de disponibilitatea uneltelor de înalta
calitate. Cypress MicroSystems a creat, de asemenea, un IDE (Integrated Development
Environment) pentru dezvoltare cu aceste produse. Numit "PsoC Designer", programul va
permite configurarea resursele analogice si digitale de la o interfaţa grafica utilizator. Utilizatorul
creează setul periferic care se potriveşte cel mai bine aplicaţiei si software-ul generează automat
un set de fişiere care setează biţii registrului corespunzător pentru a implementa alegerile făcute.
IDE-ul creează, de asemenea, interfeţe de programare pentru perifericele selectate pentru a iuţi
dezvoltarea software-lui.

1.2 Arhitectură generală a microcontrolerului Cypress

Diagrama PSoC ilustrată în figura 2, ilustrează arhitectura nivelului înalt al familiei de


dispozitive PSoC. Fiecare bloc al diagramei este prezentat pe larg în paragrafele: PsoC Core,
Sistemul Digital, Sistemul Analogic şi Resursele sistem. Toate aceste paragrafe reprezintă
reţeaua de comunicaţii a sistemului magistrală (System bus).

Fig.2 Arhitectura generală a microcontrolerului din familia Cypress 1.2.1 PSoC Core
PSoC Core este un mediu de programare puternic care suportă un set de instrucţiuni
bogat. El compensează SRAM pentru stocarea datelor, un controller de întreruperi pentru
executarea simplă a noilor adrese, un temporizator sleep şi watchdog precum şi multiple surse de
timp (clock) care include PLL ,IMO (oscilatorul principal intern),ILO (oscilatorul intern cu
viteza redusa si ECO (cristalul oscilator extern de 32.768 kHz),[72]. Toate aceste temporizatoare
împreuna cu driverele de temporizare programabile(ca resursa sistem),asigura o flexibilitate in
integrarea aproape a tuturor necesitaţilor temporale in dispozitivul PSoC, [67].
Procesorul,denumit M8C este un procesor puternic cu viteza de peste 24MHz.Are o
arhitectura 4xMIPS pe 8 biti Harvard. Fiind incorporata si memoria SROM si memoria Flash,
acesta asigura si permite o programare flexibila. PSoC GIPO permite conectarea la procesor a
diferitelor resurse digitale si analogice. Fiecare pin al dispozitivului trebuie selectat din 8 opţiuni
permiţând astfel o flexibilitate in interfaţa cu exteriorul. De asemenea fiecare pin este capabil sa
genereze întreruperi la nivel înalt, jos si schimbări de la ultima citire, [64].

1.2.2 Sistemul Digital

Sistemul digital este compus din linii digitale adunate in blocuri digitale(array) si
interconectări Global, Array(matrice) si linii digitale (GDI,ADI si RDI).Blocurile digitale au cate
4 linii ,aceste blocuri variind de la un dispozitiv PSoC la altul. Aceasta permite alegerea optima
de către sistem a resurselor pentru diverse aplicaţii. Blocurile digitale pot fi conectate la orice
GIPO prin o serie de magistrale globale care pot dirija orice semnal către orice pin. De asemenea
magistralele permit multiplexarea semnalelor si efectuarea operaţiilor logice. Aceasta
configuraţie permite proiectarea controllerelor periferice fixe, [38].
1.2.3 Sistemul Analogic

Sistemul analogic este compus din coloane analogice adunate într-o matrice, referinţe
analogice, multiplexarea analogică a intrărilor si dispozitive analogice. Blocul sistem analog este
alcătuit din mai mult de 4 coloane cu peste 12 blocuri analogice, depinzând de caracteristicile
dispozitivului PSoC. Fiecare bloc cuprinde un circuit opamp, care permite crearea unui flux
complex de semnale.
Fiecare coloana analogică conţine:
⮚ CT bloc de timp continuu(continous Time) tip B(ACB);
⮚ un bloc de condensatoare variabile Tip C(ASC);
⮚ un bloc de condensatoare variabile tip D(ASD);
Coloanele analogice din procesoarele PSoC CY8C21x24,CY8C21x23,CY7C603xx si
CYWUSB6953 conţin fiecare cate un bloc CT(ACE) de tip E si un bloc SC(ASE) de tip E.

1.2.4 Resursele sistem

Resursele sistem permit capabilităţi adiţionale ale PSoC care depind de caracteristicile
dispozitivului PSoC. Aceste resurse includ:
⮚ ceas digital care creste flexbilitatea matricilor mixte de semnale ale PSoc; ⮚ peste 4 MAC-uri care
permit multiplicarea rapida cu 8 biti sau multiplicarea cu 8 biti cu 32 acumulatori.
⮚ Peste doua coprocesoare pentru aplicatii de pocesare a semnalelor digitale.
⮚ I2C functii cu I2C slave on master.
⮚ Un acumlator intern care furnizeaza o valoare absouta de 1.3 pentru diferitele subsisteme ale
PSoC.
⮚ SPM care genereaza operarea normala cu tensiuni a acumulatorului intern. ⮚ MUX analog care
permite fiecarui pin I/O o conectare la magistrala interna analogica comuna. ⮚ 5 iesiri fullsped
(2Mb/sec)USB.
⮚ Diferite sisteme de reset suportate de M8C.

1.2.5 Caracteristicile dispozitivului PSoC

Exista o mulţime de cipuri in familia PSoC Mixed Signal Array, dar diferenţiind grupurile
de cipuri PSoC, acestea se disting după numărul de linii digitale si coloanele analogice de care
dispun. Sistemul digital poate avea 4, 2 sau o linie digitala. Sistemul analogic poate avea 4, 2 sau
o coloana analogică. Fiecare dispozitiv PSoC are o combinaţie unica de linii digitale si coloane
analogice.
In tabelul 3, sunt ilustrate resursele sistem disponibile fiecărui grup de dispozitive PSoC.
CY8C21x34, CY7C603xx si CYWUSB6952 sunt singurele dispozitive PSoC care au I/O
multiplexate analogic, iar CY8C24x94 si CY7C64215 au resurse sistem USB. Pentru realizarea
obiectivului cercetării s-a utilizat familia de microcontrolere cu performanţele cele mai ridicate şi
anume CY8C29466.

Tabelul 3. Resursele specifice disponibile pentru cele mai reprezentative dispozitive PSoC
e e e e M h

Dispozitiv l

a l
e
i

e
i
c c i
c
A
s

r a
i

PSoC i
t
a
e

l u
l
r
i i

r
r
i
R l

a g g g S F
r ă u
g t i
a
i c r
t o c
i o ş o
t
t l l
D s o
l
i g e o

i l n a a
i a l
i I
g
I
r g
d n n
i n
ă B B
a a
a
r
A
D
t

M
n

CY8C29X66 64 4 16 12 4 12 2KB 32KB

CY8C27X43 44 2 8 12 4 12 256 biti 16KB

CY8C24X94 50 1 4 48 2 6 1KB 16KB

CY8C24X23 24 1 4 12 2 6 256 biti 4KB

CY8C24X13 16 1 4 8 1 3 256 biti 4KB

CY8C21X34 28 1 4 28 0 4 512biti 8KB

CY8C21X23 16 1 4 8 0 4 256 biti 4KB

CY8C20X34 28 0 0 28 0 3 512biti 8KB

Familia PSoC CY8C29x66 poate avea pana la 6 porturi IO care se leagă de


interconectării analogi si digitali globali, realizând accesul la 16 blocuri digitale si 12 blocuri
analoage.
Inima PSoC este un motor puternic care sprijină o setare aparenta bogata. Miezul include
un CPU, o memorie, ceasuri si un GPIO configurabil (Scop general IO).
Miezul CPU M8C este un procesor puternic cu viteze de pana la 12 MHz, care realizează
un microprocesor cu 2 MIPS de 8 biţi Harvard. CPU utilizează un verificator întrerupt cu 25 de
vectori, pentru a simplifica programarea evenimentelor din timp real.
Executarea programului este temporizata si protejata folosind temporizatorii de somn si
veghere (WDT). Memoria include 32 KB de Flash pentru stocarea programului si 2 KB de
SRAM pentru stocarea informaţiilor. Flashul programului utilizează 4 nivele de protecţie pe
blocuri de 64 biţi, permiţând protecţia de software IP,[80].
Dispozitivul PSoC cuprinde generatori de ceas interni, incluzând un IMO de 24 MHz
(oscilatori principal intern) pana la 4% peste temperatura si voltaj. O putere mai mica ILO de 32
kHz este realizata pentru temporizatorul de somn si WDT. Daca se doreşte o acurateţe cat mai
mare, este disponibil ECO (oscilatorul extern de 32.768 kHz) pentru a fi utilizat ca un ceas de
timp real (RTC) si poate genera opţional un sistem de 24 MHz utilizând PLL. Ceasurile,
împreuna cu divizorii de ceas realizează flexibilitatea de a integra aproape orice cerinţa de timp
in dispozitivul PSoC. PSoC GPIO realizează legătura cu CPU, resurse digitale si analoage ale
dispozitivului. Fiecare pin are capacitatea de a genera o întrerupere a sistemului la un nivel
ridicat si se poate schimba de la ultima citire, acestor pini putându-se selectata diferite opţiuni de
lucru care permit o flexibilitate mare in realizarea interfeţei externe.
Sistemul digital este alcătuit din 16 blocuri digitale PSoC, iar arhitectura acestuia este
prezentată în figura 3. Fiecare bloc este o resursa de 8 biţi care poate fi utilizata singura sau in
combinaţie cu alte blocuri pentru a forma 8, 16, 24 si 32 biţi periferici, care sunt numiţi
referinţele modulare ale utilizatorului. Configuraţiile periferice digitale cuprind următoarele:
⮚ PMW (intre 8 si 32 biţi).
⮚ PMW cu banda moarta (intre 8 si 32 biţi).
⮚ Contoare (intre 8 si 32 biţi).
⮚ Timer (regulator) (intre 8 si 32 biti).
⮚ UART de 8 biţi cu paritate selectabila (pana la 4).
⮚ SPI Master si Slave (pana la 4 fiecare).
⮚ I2C Slave si Multi-master (1 disponibil ca o resursa a sistemului).
⮚ Generator/Verificator de redundanta ciclica (intre 8 si 32 biti).
⮚ IrDA (pana la 4).
⮚ Pseudo Generatori secvenţiali (intre 8 si 32 biti).
Ceasurile Digitale PSoC
Către
SISTEMUL DIGITAL
Magistrale De la Inima Către Sistemul Analogic

Aria Blocurilor Digitale

Interconectare
Digitală Globală

Fig.3 Sistemul digital al microcontrolerului Cypress

Blocurile digitale pot fi conectate la orice GPIO printr-o serie de bus-uri globale care pot
conduce orice semnal la orice pin. Bus-urile permit de asemenea realizarea operaţiilor logice
clasice. Sistemul analogic, prezentată în figura 4, este alcătuit din 12 blocuri configurabile,
fiecare cuprinzând un circuit care permite crearea unor fluxuri de semnal analogic complex.
Perifericele analoage sunt foarte flexibile si pot fi realizate sa sprijine cerinţele aplicaţiei
specifice. Unele dintre funcţiile analoage PSoC sunt prezentate in continuare.
⮚ Convertor Analog - Digital (pana la 4, cu rezoluţia intre 6 si 14 biţi, selectabili ca Incremental,
Delta Sigma si SAR).
⮚ Filtre (2, 4, 6 sau 8 pol band-pass, low-pass si notch).
⮚ Amplificatori (pana la 4, cu spor selectabil pana la 48x).
⮚ Amplificatori de instrumente (pana la 2 cu spor selectabil pana la 93x).
⮚ Comparatori (pana la 4, cu 16 praguri selectabile).
⮚ DAC (pana la 4, cu rezoluţie intre 6 si 9 biti).

Aria Configuraţiei de
Intrare

Fig.4 Sistemul analogic al microcontrolerului Cypress

⮚ DAC multiplicator (pana la 4, cu rezolutie intre 6 si 9 biti).


⮚ Driveri de iesire a informatiei curente (4 de 40mA ca resursa a miezului PSoC).
⮚ Referinta de 1,3V (ca resursa a sistemului).
⮚ Dialer DTMF.
⮚ Modulatori.
⮚ Corelatori.
⮚ Detectori de varf.
⮚ Orice alte topologii posibile.
Blocurile analogice sunt prevăzute in coloane de 3 care cuprind un bloc CT (timp
continuu) si 2 blocuri SC (condensator de schimbare).

1.2.6 Resursele sistemului adiţional

Resursele sistemului, unele dintre ele au fost prezentate anterior, au o capacitate


suplimentare utila pentru a completa sistemele. Resursele adiţionale includ un multiplicator,
decimator, o pompa de schimbare, detecţie de voltaj scăzut si puterea de resetare. In continuare
sunt prezentate meritele fiecărei resurse de sistem:
⮚ Divizorii ceasului digital realizează trei frecvente de ceas pentru a fi utilizate in aplicaţii. Ceasurile
pot fi utilizate atât in sistem analogic cat si digital. Pot fi generate ceasuri suplimentare folosind
blocurile digitale PSoC ca divizori de ceas.
⮚ Doi MAC furnizează un multiplicator de 8 biţi cu acumulator de 32 biţi pentru a ajuta la filtrele
generale si la cele digitale.
⮚ Decimatorul furnizează un filtru de hard pentru semnalul digital, procesând aplicaţii inclusiv
crearea de Delta Sigma ADC.
⮚ Module I2C furnizează comunicare de 100 si 400 kHz intre fire. Modurile slave, master si multi
master sunt toate sprijinite.
⮚ Întreruperi ale detectării voltajului slab (LVD) poate semnala aplicaţii de nivele scăzute ale
voltajului, in timp ce circuitul POR elimina nevoia de un supervizor de sistem. ⮚ O referinţa interna
de 1,3 volţi furnizează o referinţa absoluta pentru un sistem analogic, inclusiv ADC si DAC.

1.3 SOFTWARE-UL DE PROGRAMARE A MICROCONTROLERE-LOR DIN


FAMILIA CYPRESS

Se va evidenţia in continuare flexibilitatea cu care se poate programa un microcontroler


de tip Cypress, numit prescurtat PsoC – (Programmable System on Chip) „Sistem Programabil
pe Chip”. Programarea microcontrolerului se realizează prin intermediul software-ului PSoC
Designer 5.0 (Integrated Development Environment for Cypress MicroSystems' Programmable
System-on-Chip technology) şi este utilizat ca interfaţă in vederea configurării şi programării din
punct de vedere al sistemului analogic, respectiv al sistemului digital al PSoC. Resursele celor
două tipuri de sisteme integrat in microcontroler sunt:
Sistemul Digital:
❖ Blocuri PSoC digitale;
❖ Magistrale globale intrare/ieşire;
❖ Magistrale de date intrare/ieşire;
❖ Magistrale de interconectare;
Sistemul Analogic:
❖ Blocuri PSoC analogice;
❖ Surse configurabile de clock;
❖ Intrări configurabile;
❖ Ieşiri configurabile;
În figura 5 este prezentată interfaţa grafică a softwar-ului PSoC Designer care conţine
următoarele subsisteme:
Editorul de dispozitive
Editorul de aplicaţii
Debugger
Editorul de dispozitive (device editor) este subsistemul de unde utilizatorul poate alege
dispozitivele de care are nevoie în derularea proiectului.
Editorul de aplicaţii este subsistemul de unde utilizatorul poate accesa interfaţa de scriere
în limbaj C sau asamblare.
Debugger este subsistemul de unde utilizatorul compilează datele scrise.
În funcţie de complexitatea aplicaţiei din biblioteca microcontrolerului se pot alege o
serie de module analogice/digitale care dacă sunt corect interconectate se comportă precum
componentele electronice clasice.
In momentul când se doreşte începerea unei noi aplicaţii iniţial se va deschide interfaţa
grafică a editorului de dispozitive (vezi fig.5). Acesta interfaţă cuprinde următoarele subsisteme:
„Resursele Globale”, „Parametrii Modului Ales”, „Setarea Pinilor”
Resursele Globale permit utilizatorului sa seteze principalii parametrii ai plăcii de
dezvoltare cu ar fi:
⮚ Power Setting [Vcc/SysClock Freq]: Acest parametru permite utilizatorului să selecteze frecvenţa
de clock cât şi tensiunea nominală cu care se operează. În funcţie de frecvenţa aleasă se
calibrează Internal Main Oscillator (IMO).
⮚ CPU_Clock: Această secţiune permite utilizatorului să aleagă viteze de clock predefinite între
93,75kHz şi 24MHz. Aceste seteri sunt direct proporţionale cu setările SysClock. Se poate
asigura o mai bună stabilite prin utilizarea unui oscilator extern de 32 kHz.
⮚ 32K_Select: Aceasta setare permite utilizatorului selecţia oscilatorului intern de 32kHz sau a unui
oscilator extern.
⮚ Sleep_Timer: Acest parametru odată selectat permite setarea temporizării cu care lucrează placa de
dezvoltare. Daca acest parametru este setat si daca procesorul nu este activ în momentul activării
acesta va lucra la frecvenţa specificata prin separarea parametrului Sleep Timer.
Modul
Resurse Globale
Setare Parametrii

Definire Pini Interconectare module Microcontroler Fig.5 Interfaţa grafică de


programare a software-lui PsoC Designer
⮚ VC1 şi VC2: Acestea sunt resurse variabile care prin setarea lor pot oferii o anumită frecvenţă
internă de clock care ulterior poate fi utilizată de către blocurile analogice sau digitale. ⮚
VC3_Divider şi VC3_Source: Acest sistem de clock este similar sistemelor VC1 şi VC2. Principala
diferenţă între resursele VC1, VC2 şi VC3 este aceea că acesta din urmă se poate schimba pentru
una sau mai multe surse de clock şi nu poate fi folosit ca şi clock de intrare aşa de flexibil precum
VC1 şi VC2. Nu poate fi utilizat ca intrare directă a PSoC, dar poate fi utilizat direct la o intrare
digitală a PSoC.
Fig. 6 Interfaţa grafică a software-lui PsoC Designer de interconectare a dispozitivelor
analogice şi digitale
⮚ SysClock_Source şi SysClock*2 Disable: Acest parametru permite sistemului de 24 MHz sa fie
selectat de la o sursă interioară sau exterioară. Parametrul SysClock*2 Disable permite clock ului
intern de 48 MHz sa fie inactiv.
⮚ Analog Power Acest parametru controlează partea analogică a PSoC. Acest control se realizează
în trei etape : 1. Analog Blocks Off, 2. Continuous Time Blocks ON/Switched Capacitor Blocks
OFF, şi 3. Continuous Time Blocks ON/Switched Capacitor Blocks ON. Pentru cele două cazuri
în care blocurile sunt active (ON) este posibilă selectarea nivelelor de redus, mediu, înalt al
buffer-erelor interne. Această secţiune afectează consumul total al PSoC.
⮚ Ref Mux: Acest parametru odată cu selectarea lui permite controlul potenţialului resurselor
analogice. Valoarea aleasă va controla maximul tensiunii care se va putea aplica la intrarea unui
circuit capacitiv, cât şi a tensiunii de ieşire a aceluiaşi circuit. Ambele valori de referinţă şi
tensiunea vârf la vârf pot fi selectate prin intermediul acestui parametru.
⮚ AgndBypass: Existenţa unor mici perturbaţii şi zgomote la ieşirea PSoC poate fi redusă prin
controlarea AgndBypass. Plaja de valori în care trebuie să fie cuprins capacitorul extern este
0,01μF÷0,1μF.
⮚ Op-Amp Bias: Pentru majoritatea proiectelor acest parametru se lasă la valoarea Low. Setarea
opţiunii High oferă slew rate bună, însă o mai mică amplitudine a tensiunii.
⮚ A_Buff_Power: Setează ieşirea analogică a buffer-ului. High înseamnă o tensiune mai stabilă.
2. AUTOMATE PROGRAMABILE INDUSTRIALE
Un automat programabil (AP, PLC - Programmable Logic Controller) este un echipament
electronic înzestrat cu memorie programabilă de către utilizator cu ajutorul unui limbaj
specializat. Instrucţiunile compunând funcţiile de automatizare (logică combinatorică şi
secvenţială, calcul aritmetic, tratare date, reglare etc) sunt stocate intern. Prin intermediul
modulelor de intrare şi de ieşire (logice, numerice sau analogice) se realizează funcţii de
comandă, măsurare şi control a unor instalaţii sau procese din mediul industrial.
AP face deci apel în funcţionarea sa la principiile logicii programate, fiind un echipament
numeric realizat în jurul unuia sau mai multor microprocesoare (microcontrolere). Trăsătura
distinctă faţă de alte dispozitive (echipamente) microprogramate ţine de specificitatea sa
pentru aplicaţii industriale, constructorii realizând elementele de interfaţare astfel încât să se
asigure o compatibilitate completă cu elementele de execuţie şi traductoarele industriale. AP
au fost concepute iniţial pentru a se substitui structurilor de comandă
cu contacte şi relee din liniile automate de fabricaţie, devenite din ce în ce mai complexe,
voluminoase, cu
rată mare de defectare, greu de depanat, cu consum important de energie şi – dezavantaj
major - cu o structură funcţională rigidă. AP înlătură aceste dezavantaje în mod spectaculos.
Dacă primele AP se constituiau ca sisteme numerice de comandă cu intrări şi ieşiri binare,
treptat interfeţele s-au dezvoltat – diversificat iar posibilităţile de comandă / conducere au
devenit foarte complexe.
Simultan cu dezvoltările hardware, evoluţia AP este marcată de integrarea lor fizică şi
procedurală
(software) în reţele complexe de conducere ierarhizată, cu mai multe nivele decizionale şi

executive. 2. 1 STRUCTURI ASOCIATE AUTOMATELOR PROGRAMABILE

Figura 7 redă locul automatului programabil şi conexiunile în cadrul unei instalaţii


electromecanice, fiind evidenţiate cele 2 mari subsisteme: partea operativă – PO şi partea de
comandă – PC. Acţionorii sunt elemente de execuţie: motoare, electrovane, cilindri hidro sau
pneumatici etc. Preacţionorii sunt elemente fizice de interfaţare a PC cu elemente de
execuţie. Pot fi: relee, contactoare, distribuitoare etc.

Fig. 7 Locul AP într-o instalaţie industrială.

Elementele fizice constituente şi legătura lor cu exteriorul sunt puse în evidenţă şi de fig. 3.2,
3.3. Unitatea centrală a unui automat programabil este organizată în jurul unui microprocesor
de 8 sau 16 biţi a cărui putere de tratare şi viteză determină complexitatea AP (a setului de
instrucţiuni asociat) şi viteza de scrutare
a programului. Unele echipamente sunt multiprocesor (multitasking), permiţând un volum
important de prelucrări. Ex.:
Automate Télémécanique: microprocesoare I 8052, 8031, 8086, 80386, 80C52, ... Automate
Merlin Gérin (PB, April): microprocesoare I 8031, M 6809, 68000.
Într-un AP, în majoritatea cazurilor, UC (microprocesor, memoria sistem sau monitor) nu sunt
accesibile utilizatorului. Memoria utilizator este destinată stocării programelor de aplicaţie.
Are două zone:
- zona program (RAM - rar, REPROM, EEPROM);
- zona date (RAM cu baterii pentru păstrare conţinut).
Capacitate: minim 1, 2 Kcuv. (Kword), până la 256 Kword sau mai mult / 8 sau 16 biţi. Pe
multe automate, este modulară, putându-se extinde cu 8, 16 sau 32 Kcuv.Accesul la
informaţia memorată poate fi:
- Explicit - utilizatorul precizând întâi adresa fizică şi apoi conţinutul care urmează să fie
înscris sau citit.
E
PB
O
SI
instrucţiune
O
a nr. 1
x.
100:
C 30
010
MZ
instrucţiune
Se lucrează deci la nivel de limbaj specific AP, metoda fiind depăşită.
a nr. 2
C 31
021
- Implicit (transparent), adaptat limbajelor grafice. Utilizatorul introduce linii de programe
sau reţele, afectându-le simboluri sau etichete. La compilare, UC interpretează datele şi
organizează spaţiul memoriei.
Ex. TSX 47; 47-20; TSX 80 (Télémécanique); April 5000.
Organizarea memoriei este de obicei particulară pentru fiecare tip de AP. Majoritatea posedă
însă o zonă de memorie pe bit şi o zonă de memorie pe cuvânt pentru utilizator. Adesea se
adaugă memorii pe bit sau cuvânt sistem, utilizate în comun (în anumite condiţii) cu UC. La
modelele evoluate, utilizatorul poate - printr-o procedură de configurare - să organizeze el
însuşi memoria.

Fig. 8
Organizarea fizică a unui AP

Exemple: TSX 47 (Télémécanique):


- Capacitate 8,16 sau 32 Ko (modulară) + memorie biţi şi cuvinte pe RAM on-board; -
Memorie biţi interni (256);
- Memorie biţi imagine I/E (256);
- Memorie cuvinte interne (128);
- Memorie cuvinte constante (128);
- Memorie biţi şi cuvinte sistem (24 biţi, 4 cuvinte);
- Memorie biţi şi cuvinte asociate blocurilor de funcţii.
APRIL 5000 (Merlin Gérin):
- Capacitate memorie (extindere prin cartuş adiţional):
- program 64 Kcuv. (→160 Kcuv.);
- date 48 Kcuv. (→64 Kcuv. + 16Kcuv. / UC);
- memorie biţi imagine intrare – ieşire (I/E): 1000;
- memorie biţi interni: 4096;
- memorie biţi interni memoraţi: 2048;
- memorie biţi sistem şi biţi afectaţi GRAFCET;
- memorie cuvinte interne simple, dependentă de configurare;
- memorie cuvinte interne duble, dependentă de configurare.

Fig. 9
Organizarea structurală a unui AP

2.2 INTERFEŢELE AP

Interfeţele realizează - prin modulele I / E (intrări / ieşiri) - adaptarea în nivel, punerea în


formă şi izolarea galvanică a semnalelor. Modelele mai noi conţin şi unităţi de conversie
analog/numerică şi numeric/analogică, de numărare rapidă, achiziţie numerică, poziţionare,
cuplare în reţele etc, sub controlul microprocesorului local şi al celui principal, prin
întreruperi .
Module I / E numerice
Intrări numerice - fig. 10
Nivele ale tensiunii de intrare: 24, 48 Vcc sau Vca; 220 Vca; curent de intrare 10 - 20 mA.
Filtrul de intrare limitează frecvenţa semnalelor de intrare la max 20 - 50 Hz. Modulele de
intrare numerică mai pot conţine:
- elemente de adaptare şi protecţie;
- elemente de punere în formă semnale (îmbunătăţire fronturi prin triggerare);
- elemente de vizualizare stări canale.
Ieşiri numerice sunt de 2 tipuri:
- Dinamice (cu comutări prin contacte de releu) - fig. 3.5. Tensiuni compatibile: 24Vcc 
220 Vca; Curenţi: 2...3 A / 220 Vca. Timp de răspuns: 20… 40 ms. Contactele la ieşire pot fi
şi normal închise.
- Statice - fig. 3.6. Pentru sarcină în c.a. se utilizează triacuri iar în c.c se folosesc şi ieşiri pe
tranzistor. Curenţi:1 → 2 A; Tensiuni: → 220 Vca.; Timp de răspuns:1 ms →20 ms. Puterea
pentru acţionori este furnizată de o sursă exterioară. Unele ieşiri numerice sunt prevăzute cu
o legătură inversă de protecţie, ca în exemplul din fig. 11
Intrări analogice - fig. 12 Sunt de două tipuri:
- intări detectoare de prag;
- intrări pentru convertoare A/N.
Se poate face în general reglajul domeniului, iar la unele modele este posibilă liniarizarea
unor semnale de la traductoare. Există canale specializate, putându-se, de exemplu, conecta
sonde rezistive, termice.
Ieşiri analogice - fig. 13 Sunt definite după gama de semnal (unificat de obicei): - [0¸ 10]
Vcc;
- [4¸ 20] mA.
Aceste module permit realizarea funcţiilor de reglare când elementele de execuţie sunt
sisteme de acţionare reglabile sau alte instalaţii cu referinţă continuă.
Adresare module
Fiecare intrare şi ieşire posedă un cod distinct. Se utilizează proceduri specifice pentru
schimbul informaţiilor între module I/E şi imaginile memorie I/E, permiţând achiziţia ciclică
a intrărilor şi actualizarea
ieşirilor.
Codificarea explicită - la automate simple. Adresele sunt fixe, date de constructor printr-o
tabelă. Ex. Télémécanique TSX 80.
Codificare implicită - la automate modulare. Se defineşte prin poziţia bitului în modul şi a
acestuia în rack (poziţia geografică).
Ex. 0, F - bitul F, modulul 0 (Télémécanique TSX 47, TSX 47 - 20, TSX 47 - 30). Sau: 905 -
bitul 05, modulul 9. (Merlin Gérin APRIL 5000).
La acest tip de codificare, mutarea unei cartele I/E în rack conduce la schimbarea implicită a
adreselor.
Diferenţierea intrare-ieşire. Poate fi:
- implicită, când UC face distincţie între I şi E pornind de la o codificare materială a cartelei
sau a modulului.
Ex. PB 80, TSX 80.
- explicită, când utilizatorul trebuie să completeze, printr-un simbol complementar, codul I/E.
Ex. TSX47 I - intrare; I0,0 , I0,F; O - ieşire; O7,4
APRIL 5000 % IX - intrare; % IX 100; % QX - ieşire; % QX 904.

2.3 CICLUL DE FUNCŢIONARE TIP AL UNUI AP - ACHIZIŢIA INTRĂRILOR ŞI


ACTUALIZAREA IEŞIRILOR

Ciclul de funcţionare tip al unui AP se poate realiza prin două moduri:


- Implicit (transparent). UC controlează direct, ciclic această funcţie. Este varianta care se
impune - fig.
3.10. La fiecare ciclu de scrutare, informaţiile I şi E sunt schimbate, global şi simultan între
modulele I/E
şi imaginile memorie corespunzătoare. Luarea în considerare a schimbării stării unei variabile
de intrare nu este posibilă în cursul unui ciclu de scrutare. Ex. TSX 47; 47-20; 47-30; PB 80;
APRIL 5000.

Fig. 10 Canal de intrare numerică.

Fig. 11 Canal de ieşire numerică cu releu. Fig. 12 Canal de ieşire numerică cu triac.

- Explicit. Achiziţia intrărilor şi actualizarea ieşirilor depind de instrucţiuni plasate de


utilizator în program. Comutările se fac separat sau simultan, la parcurgerea instrucţiunilor
respective. Ex. TSX 80. Instrucţiunea
x [ ] actualizează I/E, utilizatorul punând între paranteze codul (adresa) modulelor.
Observaţie: unele automate (evoluate) recunosc ambele tipuri de acces (ciclic şi imediat).
Ex. TSX 47-30: READBIT; WRITEBIT; APRIL 5000: IN; OUT. Ciclul de scrutare este
dependent de configuraţia AP:

Fig. 13 Ieşire numerică cu reacţie.

Fig. 14 Canale de intrări analogice.

Fig. 15 Structura tip a unui canal de ieşire analogică.

a. Automate monoprocesor (monoprelucrare, monofuncţie) - fig. 17


Ciclul de scrutare este controlat în întregime de un µP şi are cu durată de la câteva ms până la
100 ms, după mărimea programului. Supravegherea acestui ciclu se face printr-un sistem de
tip watchdog ("câine de pază"). Dacă durata lui depăşeşte o valoare fixată, un bit intern este
activat (în general comutat), un contact - disponibil la rigletă - comută şi el, iar la unele
automate se poate determina oprirea ciclului de scrutare.
b. Automate multiprocesor (multifuncţie)
Structura din fig. 18 determină o funcţionare tip multiprelucrare (multi-tasking), un task
corespunzând tratării unei funcţii de automatizare bine determinată şi specifică.
Periodicitatea executării fiecărui task depinde de specificitatea sa. Ele sunt executate în
paralel sub controlul procesorului principal (supervizor) în funcţie de un şir de priorităţi
stabilite de constructor -
fig.19. Task-ul de bază se execută sistematic la fiecare ciclu de scrutare, corespunzând ciclului
de scrutare de la AP monofuncţie cu gestionarea I/E la început şi sfârşit de ciclu. În general
aceste echipamente sunt multilimbaj: reţele de contacte, GRAFCET, literal etc. Ele sunt
echipate cu module I / E inteligente. Ex. TSX 67 - 87 Télémécanique. Uneori este evidentă
partajarea sarcinilor între echipamentul industrial (AP) şi o extensie tip microcalculator cu
rol de terminal inteligent pentru operator, ca în fig.20.
Fig. 16 Exemple de cicluri de scrutare.

2.4 AUTOMATE PROGRAMABILE ÎN STRUCTURI IERARHIZATE

Pe măsura dezvoltării structurilor de producţie automatizate (maşini asociate prin transfer,


celule de producţie, linii automate, ateliere şi secţii automatizate - informatizate),
configuraţia părţii de comandă (PC) a devenit mai complexă. La fiecare maşină sau
subansamblu de linie, se asociază propria PC (AP), dispusă în imediata apropiere pentru
facilitarea intervenţiilor (punere în funcţiune, întreţinere etc). Dezvoltarea acestei configuraţii
creează premisele formării sistemelor integrate de producţie - fig. 3.15, 3.16. Aspectele care
sunt importante pentru sistemele multiprocesor şi reţelele de AP sunt:
Repartiţia task-urilor procesor - interfaţă. În afara repartiţiei "inteligenţei" între
procesoarele sistemului (P principal, µP de reglare, µP de comenzi specializate - de ex. pentru
poziţionare) care permite o evidentă decompoziţie funcţională ce ameliorează performanţele,
se autorizează o punere în funcţiune progresivă şi o urmărire (chiar depanare) mai comode; o
altă problemă care trebuie analizată la configurarea unei aplicaţii este repartizarea task-urilor
în raport cu interfaţa, mai exact cu module inteligente ale acesteia.
După specificitatea sau repetivitatea ciclurilor tehnologice, se pot distinge diferite variante. O
configuraţie judicioasă se bazează pe cunoaşterea:
- traductoarelor şi preacţionorilor (specializaţi) disponibili;
- modulelor specializate ale AP;
-posibilităţilor software.
Fig.17
Organizare monoprocesor Fig. 18Automat multiprocesor.

Fig. 19 Organizare execuţie task-uri la AP multiprelucrare.

Fig. 20 Structură de prelucrare de tip biprocesor

Comunicaţii, legături, terminale. AP poate realiza următoarele tipuri de comunicaţii: 1 - cu


terminale de programare (la punerea la punct a aplicaţiei);
2 - cu detectori şi elemente de execuţie - prin programul specific aplicaţiei;
3 - cu terminalele de exploatare (dialog om-maşină). Intervin mai multe tipuri de dialog: -
Dialogul de conducere (realizat prin butoane, lămpi, comutatoare, tastaturi, terminale de
exploatare fixe sau mobile, elemente de afişare mesaje). Sunt afişate valori ale mărimilor
urmărite, stări sau situaţii anormale. Mesajele sunt memorate şi apelate de program.
- Dialogul de reglaj. Se selectează prin comutatoare şi terminale de exploatare diferite
opţiuni, temporizări etc. în scopul ameliorării sau adaptării la aplicaţie a programului.
- Dialogul de depanare, constituie un ajutor în diagnosticarea stărilor de nefuncţionalitate.
Terminalele (de obicei amovibile) pot afişa etapele de oprire ale maşinii, pot facilita diferite
accesări etc. - Dialogul de coordonare - supervizare. Intervine în structurile de comandă
automată a mai multor maşini, fiecare echipată cu un AP. Sunt vehiculate informaţii simple
(starea unei maşini, sfârşitul unei operaţii, defect la o celulă) sau complexe (tipul operaţiilor
efectuate şi al produselor, informaţii de gestiune etc.) sub formă serială sau paralelă. Sistemul
de supervizare include:
- un terminal (ecran-tastatură) pentru dialogul om-maşină;
- o imprimantă pentru jurnalul de activitate;
- o unitate de stocare informaţii.
Fig. 21Structură de producţie cu AP.

Fig. 22 Integrarea automatelor într-o întreprindere informatizată.

Se afişează indicaţii de stare a producţiei şi maşinilor, opriri, cauze şi localizări de defecte, indici
statistici. Se pot introduce / modifica referinţe. Pentru fiecare tip de informaţie se apelează pagini
ecran cu structură distinctă.
Într-un dialog de coordonare – supervizare sunt asigurate următoarele funcţii:
- Lansare producţie (variante, cantităţi, în ce ordine);
- Funcţia de reglare - se fac reglaje automate şi se indică reglajele manuale necesare; - Funcţia de
dialog de conducere - afişează procedurile în curs (mers normal, etape de pregătire, teste), lansarea
procedurilor, conducerea celulelor, supraveghere;
- Funcţii de avertizare-prevenire relative la timpii de funcţionare ai unor subansamble, cicluri de
ungere etc; - Urmărirea defectelor (maşina, subansamblul, starea opririlor de urgenţă);
- Diagnosticare;
- Jurnale de funcţionare (bilanţuri) - la imprimantă;
- Statistici rebut (absolut, procentual, pe tipuri, unităţi de timp);
- Statistici opriri (pentru reglaje, datorită defecţiunilor), în unităţi absolute şi procentuale, pe durate; -
Arhivare evenimente.
Module de comunicaţie (AP - terminale, AP - supervizor). Se utilizează în special legătura serială
asincronă (RS 232 C) ori varianta în contratact RS 422. RS 485 asigură comunicaţii de bună calitate
pe distanţe mai mari.. Modulul de legătură asigură punerea în formă a informaţiei, însă unitatea
centrală este cea care gestionează comunicaţia (debit, paritate, format şi gestiune trafic). Emisia şi
recepţia pot fi simultane
sau alternate. Mai nou, AP se construiesc cu disponibilităţi de integrare directă în reţea prin
protocoale de tip Ethernet, Modbus, Profibus, CAN etc.
Tipuri de conexiuni:
- Fir cu fir (între AP şi captori, elemente de execuţie, între AP-urile unei reţele reduse); - Punct cu
punct - între două AP, între un AP şi perifericile sale;
- Multipunct - între AP şi mai multe elemente de tratare a informaţiei;
- În reţea.
Reţelele pot fi în buclă (cu AP în noduri) sau distribuite în paralel la un bus (magistrală) comun.
Legăturile se fac cu cablu coaxial, prin fibră optică şi mai nou wireless (prin undă radio). Dacă
echipamentele interconectate sunt de naturi diferite reţeaua este eterogenă şi necesită interfeţe
specializate pentru a asigura compatibilitate în comunicare. Reţelele omogene leagă AP de acelaşi tip
sau compatibile. Comunicarea se face simplu, prin cuvinte sau blocuri de mesaj, cu ajutorul
modulelor de cuplare în reţea integrate în AP. Terminalele de programare permit acces direct la
programele utilizator ale diferitelor AP conectate.

3.5 ELEMENTE CONEXE AP ÎN INSTALAŢIILE AUTOMATIZATE

Funcţionarea (şi iniţial integrarea) unei instalaţii condusă prin AP presupune cunoaşterea foarte exactă
a elementelor care furnizează informaţii din instalaţie (captori) şi a elementelor de execuţie activate de
AP.

3.5.1 Captori

Semnalele provenind de la captori pot fi :


- logice - de la captori de tip contact, detectoare de proximitate, detectoare de distanţă (fig. 3.17 a) -
numerice (paralel sau serie) - transmit poziţia, presiunea, temperatura (fig. 3.17 b) - analogice (fig.
3.17 c)

Captorii pot fi:


- cu comutaţie electromecanică – fig. 3.18.
- cu comutaţie electronică (statică): detectoare de proximitate (inductive pentru obiecte metalice,
capacitive pentru obiecte nemetalice), detectoare fotoelectrice, magnetice etc. - fig. 3.19, 3.20.

Detectoarele de proximitate inductive sunt construite dintr-un oscilator (al cărui bobinaj este dispus
în partea sensibilă care trebuie să detecteze prezenţa, trecerea, defilarea unei piese), un etaj de
triggerare şi un amplificator de ieşire. Când o piesă feromagnetică este plasată în câmpul magnetic
creat, curenţii induşi constituie o sarcină adiţională care provoacă diminuarea oscilaţiilor, situaţie
sesizată de circuitul de prag şi care comută etajul static (tranzitor, triac) final.
Detectoarele capacitive pot sesiza prezenţa obiectelor izolante, lichide, pulverulente. Se compun
dintr-un oscilator al cărui condensator constituie faţa sensibilă. Când un material conductor sau
permitivitate
izolant de r > 1 este plasat în acest câmp, capacitatea de cuplaj se modifică şi
provoacă oscilaţii. Conectarea la AP se poate realiza prin (fig. 3.19):
- 2 fire: semnalul este transmis prin firele de alimentare. Se utilizează o sarcină pe circuitul intern al
senzorului şi AP sesizează dacă circuitul este închis sau nu. Conectarea se face direct la AP cu
module de intrare care elimină efectul curenţilor reziduali.
- 3 fire (2 alimentare + semnal).
Dacă este necesar un răspuns rapid, intrările standard ale AP nu sunt satisfăcătoare, ele comportând o
temporizare (10 ms) pentru eliminarea efectelor vibraţiei contactelor.
Detectoarele fotoelectrice – fig. 3.20 sesizează întreruperea unui fascicul luminos (în infraroşu de
obicei, cu semnal modulat pentru a elimina influenţa iluminatului ambiant) între un emiţător şi un
fotoreceptor. Codoare de poziţie (traductoare, codificatoare) - fig. 3.21
- liniare - fig 3.21a, traduc poziţia unui element mobil prin tensiunea dată de un montaj
potenţiometric. Ex: pistoane, cilindri pneumatici.
- rotative - fig. 3.21b; un disc este solidar cu elementul mobil şi are piste marcate prin fante binare.
Poziţia curentă este tradusă cu elemente fotoreceptoare. Exemple de utilizare sunt în fig. 3.22.
Codoarele de poziţie pot fi absolute (cu fiecare poziţie codificată distinct) sau incrementale relative, la
care
important este numărul de impulsuri eliberate de la o poziţie iniţială, număr proporţional cu
deplasarea.
Detectoarele de cod de bare (fig. 3.23) sunt captori optici asociaţi cu un mic ansamblu de tratare care
verifică codul detectat, stochează informaţia, o transmite la cerere aparatului. Se face deci o
recunoaştere grafică a obiectelor, acestea putând fi de mai multe tipuri.
Elementele de marcare permit organizarea proceselor de fabricaţie şi distribuţie identificând
obiectele prin afectarea unui cod purtat de către o plăcuţă ce însoţeşte obiectul (paletă, cărucior etc.).
Produsul poate fi urmărit ca atare şi / sau se poate specifica stadiul prelucrării lui.
Traductoarele de greutate / forţă (fig. 3.24) sunt construite pe baza unor doze (timbre) tensometrice
care, în funcţie de forţă, dezechilibrează mai mult sau mai puţin o punte Wheatstone. Semnalul
analogic este convertit numeric local de dispozitivul de cântărire, iar acesta poate comunica cu AP
prin canale numerice. Traductoarele de cuplu sesizează gradul de torsiune al unui arbore elastic
montat între arborele conducător şi cel condus.
Traductoarele de presiune (monostrat, vacuostat) sunt alte tipuri de dispozitive tip captor pentru AP.

Fig. 3.17 Tipuri de semnale.

Fig. 3.18 Captori de tip limitator.


Fig. 3.19 Senzor de
proximitate şi conectare prin 2 sau 3 fire la AP.

Fig. 3.20 Senzori


fotoelectrici.

Fig. 3.21 Codoare de poziţie.

Fig. 3.22 Utilizare codoare de


poziţie.

Fig. 3.23 Citire


în cod de bare. Fig. 3.24 Cântar automat cu AP.
3.5.2. Elemente de execuţie

Elementele de execuţie conectate la un AP pot fi preacţionori (amplificatori intermediari de energie) şi


/ sau acţionori care activează direct instalaţia sau procesul tehnologic - fig. 3.25. Tipuri: - Acţionori
electrici: motoare, electrovane, rezistenţe de încălzire, electromagneţi, capete de sudură prin
rezistenţă, prin ultrasunete, capete de decupare cu laser etc. Preacţionori: contactoare, variatoare de
viteză. - Acţionori pneumatici: pistoane pneumatice. Asigură viteze de execuţie ridicate. Preacţionori:
distribuitoare (electro) pneumatice.
- Acţionori hidraulici: pistoane, motoare (pompe). Necesită un grup generator de presiune. Asigură
forţe (cupluri) mari la viteze relativ reduse, ce permit un control precis al poziţiei.
AP poate comanda direct:
- micromotoare;
- lămpi de semnalizare;
- electrovane de debit (P < 10W);
- contactoare.
AP comandă indirect (prin elemente intermediare):
- electrovane hidraulice (30 < P < 50 W);
- cilindri hidraulici sau pneumatici;
- motoare electrice sau hidraulice.
La comanda prin contactoare, AP poate fi informat direct, printr-un contact auxiliar de starea
(anclanşat - declanşat) a contactorului (fig. 3.26). Funcţia de comutaţie asigurată de AP este
completată de: - funcţia de secţionare circuit, care izolează circuitul comandat pentru efectuarea unor
intervenţii; - funcţia de protecţie la scurtcircuit (fuzibile sau disjunctoare magnetice);
- funcţia de protecţie la suprasarcini (releu termic).
Configuraţiile des întâlnite pentru comanda motoarelor electrice cu viteză constantă sunt redate în
fig.3.27. În configuraţia 1, fiecărei funcţii îi corespunde câte un element distinct, iar AP poate dialoga
cu fiecare. În configuraţia 2, disjunctorul magnetic înlocuieşte secţionerul şi fuzibilele. În
configuraţia 3, contactorul asigură funcţiile de comutaţie, iar protecţiile revin disjunctorului. În
ultima variantă toate funcţiile sunt integrate într-un singur element. În cazul comenzii motoarelor cu
viteză variabilă, AP trimite semnale direct la contactoarele de conectare (eventual cu ajutorul lor se
schimbă sensul de rotaţie) şi sub formă analogică sau numerică la variatoarele de viteză. Reacţiile
spre automat intervin de la toate etajele: contactoare, variatoare, motor - fig. 3.28.

Comanda instalaţiilor electropneumatice


Fiecare canal comandat poate fi completat cu o reacţie numerică de tip TOT - NIMIC ce informează
AP asupra poziţiilor extreme ale pistonului (fig. 3.29). Această configuraţie se poate repeta pentru
fiecare element de execuţie comandat (organizarea clasică). Mai nou, interfeţele electropneumatice
pot comanda direct cilindrii, fără intermedierea prin electrovane - fig. 3.30. Avantajele acestui sistem:
- simplitate în racordare (suprimare rigletă, conectori electrovane);
- imunitate mai bună la perturbaţii, fiind eliminat traseul circuitelor electrice AP - element de
execuţie. Alte posibilităţi / configuraţii (atipice) sunt posibile în funcţie de disponibilităţile unor AP şi
de necesităţile impuse de instalaţiile conduse. De asemenea se pot constitui structuri combinate în
raport cu variantele prezentate.

Ca o încheiere a prezentării elementelor hardware asociate AP şi elementelor conexe, trebuie


subliniată importanţa cunoaşterii şi respectării caracteristicilor echipamentului, ale procesului şi
instalaţiilor conduse. O implantare corectă şi eficientă a AP nu este posibilă fără documentaţiile
complete ale părţii operative, ale părţii de comandă şi fără a face o serie de evaluări legate de
compatibilitatea structurală, funcţională şi parametrică a celor 2 părţi. Automatele actuale sunt
concepute pentru o funcţionare internă transparentă pentru utilizator. Acesta trebuie să cunoască însă
foarte bine elementele de interfaţare cu instalaţia electromecanică din punct de vedere al
caracteristicilor funcţionale, electrice, de conectare, de protejare şi - nu în ultimul rând, de extindere
a lor fie din punct de vedere cantitativ (de exemplu creşterea numărului de canale numerice) fie
calitativ (cum poate fi introducerea ulterioară a unui modul de numărare rapidă pentru impulsuri în
sisteme de poziţionare, a unui convertor analog - numeric sau altele). Mai nou, sunt folosite pe scară
din ce în ce mai largă reţele de automate; deci trebuie avute în vedere şi elementele specifice de
conectare şi comunicare într-o asemenea structură.
Fig. 3.25
Acţionori şi preacţionori asociaţi AP.

Fig. 3.26 Comandă cu confirmare.

3.6 PROGRAMAREA AUTOMATELOR PROGRAMABILE

Numărul mare al constructorilor de automate programabile determină coexistenţa mai multor tehnici
şi limbaje de programare concomitent cu o ofertă bogată de pachete software de firmă. Indiferent însă
de particularităţile constructive şi funcţionale, o bună parte din elementele de programare au trăsături
comune.

3.6.1 Limbaje de programare. Aspecte generale

Limbajele simbolice se subdivid în:


a. Limbaje de tip mnemonic - utilizează abrevieri ale termenilor care definesc operaţii de achiziţie a
intrărilor, tratare a informaţiei şi activare a ieşirilor.
Ex: (Merlin Gerin):
OC 30 SI 010 OC 31 MU A00
010, 011: intrări 020 : ieşire

Fig. 3.27 Comenzi de


motoare cu AP.

Fig. 3.28 Configuraţie


complexă de comandă a motoarelor cu AP.

Fig.
3.29 Comandă cu confirmare pentru cilindrii pneumatici.
Fig. 3.30 Comanda prin
interfaţă electropneumatică.

OC 32 SI/ 011 SI,SI / : testare bit/ bit negat ("dacă"- în limba franceză)
OC 33 MZ A00 OC 34 SI A00 OC 35 ET 020
MZ, MU : pune variabila la 1 respectiv la 0 (mets à un, à zéro) A00 : variabilă internă
ET : şi logic;
OCxx : adresa memorie

b. Limbaje de tip boolean - se bazează pe implementarea ecuaţiilor logice aferente în special unor
structuri combinaţionale.
Ex1: (Renault): S5 E8 E9 + /E11 = A21 (S: etichetă; E: intrări; A: acţiuni).
c. Limbaje de tip literal - apelează la construcţii mnemonice similare cu ale unor limbaje de
programare de nivel înalt: IF - THEN - ELSE , WHILE - DO etc. Partea literală (simbolică) se
completează pentru inteligibilitate cu o serie de structuri şi construcţii grafice.
d. Limbajele grafice s-au dezvoltat simultan cu posibilitatea utilizării unor terminale de programare
cu facilităţi de vizualizare (tip display). Ele predomină în etapa actuală practic la toate tipurile de AP
şi cunosc două variante, în unele cazuri completâdu-se. S-au impus:
- limbajul cu contacte: ("LADDER" - termenul cel mai uzitat, "Contact Plan Programming",
"Kontact-plan " - KOP, "Echelle"); permite implementarea structurilor combinaţionale, secvenţiale,
precum şi a unor blocuri specifice schemelor de comandă clasice: temporizatoare, numărătoare,
programatoare ciclice etc. Unitatea de bază este constituită dintr-o reţea cu dimensiuni relativ reduse
(ex. 4 linii x 9 coloane).
- diagrame de stări ("GRAFCET" = Graphe Fonctionnel de Commande Etapes-Transitions,
"Sequential Function Chart "). GRAFCET se constituie ca o succesiune de etape şi tranziţii. Etapelor
li se asociază acţiuni (uneori condiţionate) iar tranziţiilor condiţii logice (receptivităţi) pentru a trece
sistemul în starea următoare. GRAFCET prezintă avantajul că se poate utiliza practic în toate stadiile
de descriere a funcţionării unei structuri automate, de la specificaţii prin caietul de sarcini, la redarea
în detaliu a elementelor utilizate (intrări, ieşiri). Acţiunile şi receptivităţile se descriu prin reţele
LADDER. Se menţionează originea franceză a instrumentului GRAFCET şi utilizarea sa pe scară
internaţională (în prezent normă CEI), similar cu preluarea LADDER - ului (de origine americană)
de către toate firmele constructoare de AP.

O prezentare panoramică a limbajelor de programare asociate diferitelor mărci de AP :

a.Télémécanique (grupul Schneider) - Franţa, produce familia de automate programabile TSX. Pentru
aplicaţii clasice de automatizări sunt disponibile pachetele de programe: PL 7-x.
PL 7-1: limbaj boolean; ex. de mnemonice: L (load ) - citeşte stare bit, A ( and), O (or ), XO (xor ),
(Pulse) - elaboreză un impuls, N (Neg.) - inversare variabilă etc.
PL 7-2: limbaje LADDER, GRAFCET.
PL 7-3: limbaje LADDER, GRAFCET, LITERAL (structurat)

b. Siemens - produce automate în seria SIMATIC (versiuni : S 5, S7).


Limbajul de bază este livrabil sub denumirea STEP (5, apoi 7) şi are următoarele componente : -
limbaj literal STL (Statement List )
- limbaj LADDER
- limbaj GRAFCET - CSF (Control System Flowchart )
c . Allen - Bradley - produce automate programabile în seriile SLC 500 ( Small Logic Controllers) -
seria de echipamente mici şi PLC - 5 - seria de automate medii – mari. Automatele mici pot fi
programate prin: - limbaj LADDER;
- limbaj literal , cu asociere de structuri grafice.
Exemple de mnemonice: XIC (Examine If Closed ) - testare bit; XIO (Examine If Open ) - testare bit;
OTE (Output Energize) - activare ieşire; TON (Time On - Delay ) – temporizare; CTU (Count Up) -
numără comutări; MUL (Multiply) – multiplicare; MOV ( Move ) – transfer.
Există intrucţiuni pentru: tratare intrări/ieşiri, temporizare-numărare, tratare întreruperi, comparare,
operaţii aritmetice şi logice, transfer, manipulare fişiere, salturi, tratare biţi. Automatele medii-mari
folosesc preponderent limbajul GRAFCET şi limbajul LADDER. Au disponibilităţi (instrucţiuni)
puternice pentru prelucrări aritmetice (calcule în virgulă mobilă), implementare algoritmi de reglare
(PID), analiză statistică proces etc.

d. Omron - produce familia SYSMAC - C.


Sunt utilizate limbajele LADDER şi simbolic (mnemonice). Exemple de mnemonice / instrucţiuni:
LD testare varibilă directă; SDEC-decodificare 7 segmente; NOT-testare variabilă negată;
MLPX-multiplexare; OUT-activare ieşire; ROOT-radical; CNT-numărare; KEEP-releu bistabil; DIV
– împărţire.

e. AEG - produce automate programabile încadrate în familia MODICON. Seria A, prin pachetul
Dolog AKF, este programabilă prin lista de instrucţiuni, LADDER şi GRAFCET, iar seria 984
utilizează diagramele LADDER şi o formă grafică bazată pe blocuri de funcţii. Instrucţiunile acoperă
o zonă largă, de la funcţii logice şi aritmetice standard, la liniarizări şi algoritmi PID. Unele
echipamentele pot fi programate în limbaje de nivel înalt - C. Diagramele cu blocuri de funcţii
combină într-o reprezentare grafică unică, utilizarea structurilor logice cu a elementelor (blocurilor)
funcţionale: registre, timere, numărătoare, comparatoare.

f. GE - Fanuc produce familia (seria) 90. Practic toate automatele se pot programa prin diagrame cu
blocuri de funcţii şi limbaj literal. Majoritatea (serile 90-30, 90-70 ) posedă şi instrucţiuni de
prelucrare complexă, exemplu PID. Subfamilia 90-70 acceptă programare structurată şi în limbaj C,
iar prin pachetul / interfaţă de control proces CIMPLICITY 90 sunt disponibile structuri de tip
WINDOWS.

Ca o evaluare globală, se poate observa pe de o parte utilizarea cvasi-generală (la toate categoriile de
echipamente şi majoritatea firmelor) a limbajului LADDER, iar pe de altă parte capacitatea de
integrare a elementelor structurale şi funcţionale dintr-o automatizare prin limbajul GRAFCET. Se
mai constată tendinţa de utilizare a unor limbaje de nivel înalt şi a unor tehnici bazate pe o grafică
conversaţională, aspect explicabil prin faptul că sistemele de producţie integrate (CIM) includ
automatele programabile în reţele
ierarhizate şi distribuite, programarea unităţilor nemaifăcându-se local, ci de la echipamente
puternice. Extinderea, accesibilitatea utilizării precum şi posibilităţile puternice asociate limbajelor
LADDER şi GRAFCET justifică o tratare detailată a acestora în continuare.
Pentru o prezentare inteligibilă, cursivă şi unitară, majoritatea elementelor asociate acestor limbaje de
programare vor fi referite la echipamentele din seria TSX Télémécanique.

3.6.2 Variabile de operare

Sub această denumire vor fi cuprinse toate variabilele program, incluzând prin abuz de limbaj şi
mărimile constante (inclusiv cuvinte constante). În acest sens larg, fiecare entitate cu care lucreză
programul (imagini ale intrărilor/ieşirilor, biţi/cuvinte sistem, blocuri funcţionale, stări ale
automatului) posedă un identificator atribuit de constructor sau de utilizator. În unele cazuri apar
explicit în program şi identificatori asociaţi unor parametri ai blocurilor funcţionale. Numărul
variabilelor de operare este limitat fie în mod explicit fie prin dimensiunea memoriei program. De
asemenea numele rezervate pentru fiecare categorie sunt limitate, iar organizarea memoriei (de obicei
la firma constructore) alocă spaţii (zone) distincte.

a. Biţi interni - variabile binare utilizabile pentru memorarea unor stări (valori) logice intermediare.
Ex: TSX 47: B00 - B 255; April 5000: % MXO - % MX 4095. Exemplu de utilizare: variabile de
trecere dintr-o linie în alta sau dintr-o reţea în alta (LADDER).
b. Cuvinte interne - variabile constituite din 8 sau 16 biţi, utilizabile pentru memorarea unor valori
(stări). Ex: TSX 17-20: W0-W127; APRIL 5000: % MWO- % MD???? (până la limita memoriei
disponibile) - cuvinte interne duble. Tratarea informaţiei la nivel de cuvânt (“word”, de aici abrevierea
W) este utilizată pentru: efectuarea operaţiilor cu valori numerice (operaţii aritmetice, conversii,
tratarea informaţiei provenite din exterior - comutatoare decadice, traductoare analogice); lucrul cu
blocuri de funcţii (valori preselectare temporizatoare, numărătoare, valori curente - de evoluţie pentru
aceste blocuri, dialog cu periferice prin schimb de mesaje alfanumerice). După codul numeric
utilizat, variabile de tip cuvânt intern necesită identificatori diferiţi. Ex: TSX 17-20: în zecimal -
valoarea ca atare; în hexazecimal: H'07C2'; în binar
L'1101100000011100'. Transferarea unei valori la un cuvânt intern se poate face de către utilizator
prin: - proceduri specifice definirii unor blocuri (de exemplu, valorile de prescriere de la
numărătoare); - operaţii de transfer propriu-zise.

c. Cuvinte constante - permit memorarea unor valori constante, asociate de obicei unor moduri de
configurare. Ex: CWO - CW6143.

d. Cuvinte indexate - indexarea cuvintelor constă în adăugarea conţinutului unui cuvânt intern la
adresa unui alt cuvânt intern sau constant. Ex: TSX: W5 (W120); W5 cuvânt intern, W120 cuvânt
intern index. Dacă W120 = 08, atunci W5 (W120) corespunde cuvântului de adresă W5 + 08 = W13.
Modificând conţinutul indexului se pot parcurge succesiv cuvintele unui tabel.

e. Biţi imagine intrări / ieşiri - asociază unor locaţii de memorie valorile binare ale intrărilor şi
ieşirilor la fiecare ciclu de scrutare. Adresarea se face distinct pentru intrări şi ieşiri. Ex: TSX 17-20:
I0,5 - intrare modul 0, canal5, O1,6 - ieşire modul 1, canal 10.

f. Biţi sistem - variabile logice utilizate pentru: definirea stării de funcţionare a automatului, urmărirea
execuţiei programului, facilităţi legate de scrierea programului. Starea acestor biţi se modifică de către
unitatea de comandă în timpul execuţiei programului sau de către utilizator - prin program şi
proceduri de setare. Ex. - TSX 17-20:
SY00: (pornire "la rece"). Normal pe zero, este comutat după o revenire a alimentării cu pierderea
datelor. De asemenea poate fi setat de utilizator în mod iniţializare. Starea pe 1 a sa determină o
ştergere generală (biţi I/O, biţi interni, valori curente) şi preluarea valorilor iniţiale de către parametrii
funcţiilor. SY01: (pornire "la cald"). Normal pe zero, este comutat pe 1 după o revenire a alimentării
fără pierderi de date (datorită unui acumulator de salvare). Comutarea pe 1 determină resetarea
numai a biţilor de ieşire şi interni nedeclaraţi salvabili. Ciclul de scrutare este reluat din punctul în
care a dispărut alimentarea. SY03: actualizare ceas de timp real.
SY05-SY07: baze de timp (100 ms, 1s, 1min).
SY09: normal pe 0, setat nu mai permite activarea ieşirilor în RUN.
SY10: diagnostic intrări / ieşiri disjunctate după 10 secunde.
SY13: stare acumulator (baterie).
SY17: depăşire (carry) la adunare şi decalaj circular biţi.
SY18: depăşire aritmetică.
SY19: inhibare task rapid.
SY20: depăşire index.
SY21: iniţializare GRAFCET - etapele active sunt dezactivate iar cele iniţiale sunt activate. SY22:
dezactivare etape GRAFCET (toate etapele).

La automatul April 5000 se foloseşte terminologia de "eveniment sistem" - % ES. Ex: % ES2: punere
sub tensiune (Off - On). Pentru controlul I/O, se asociază entităţi denumite "evenimente interfaţă" -
% EI.

g. Cuvinte sistem - permit realizarea unor funcţii de tipul: ceas de timp real; afişare în binar sau BCD
a unor valori / cuvinte; protejare programe la multiplicare.
Ex: TSX17- 20:
SW17: conţine suma de verificare (checksum) RAM.
SW18: checksum cartuş EPROM. Permite realizarea unei proceduri de împiedicare a duplicării unor
programe, în conjuncţie cu SW17.
SW41: memorează durata cea mai lungă a unui ciclu.
SW50-SW53: valori pentru ceasul de timp real.
SW54-SW57: valori pentru memorarea datei ultimului defect de reţea.
SW58: ora curentă.
SW59: data curentă.

h. Biţi şi cuvinte asociate blocurilor de funcţii.

i. Biţi şi cuvinte asociaţi GRAFCET. În afara identificatorilor de etapă - tranziţie, fiecărei etape i se
poate asocia (ex. TSX 17-20) un cuvânt (X i, v) conţinând durata în secunde a etapei. Acesta poate fi
util pentru controlul temporizării asociate unei tranziţii.

3.6.3 Programarea în LADDER

Prezentarea se va exemplifica prin pachetul pentru automatele TSX. Schema cu contacte este
constituită din mai multe linii orizontale conţinând simboluri grafice de test (contacte), de acţiune
(bobine) şi pentru blocuri funcţionale: temporizatoare, numărătoare, monostabile etc. Schema este
fracţionată în reţele cu număr redus de linii (4) astfel încât să poată fi vizualizată la terminalul de
programare o singură reţea la un moment dat. Fiecare reţea are asociată o etichetă (label).
Simboluri grafice de test:
- conexiune orizontală:
- conexiune verticală:
- contact direct: test al stării bitului asociat:
- contact invers: test al stării inverse a bitului asociat:
Simboluri grafice pentru acţiuni:
- transfer direct:
- transfer invers (transferă inversul rezultatului logic în bitul adresat):
- setare bobină (cu memorare până la reset):
- resetare bobină (cu memorare pînă la set):
- salt (jump) la o reţea desemnată prin eticheta respectivă:
- bobine "salvate" în cazul pierderii alimentării:
Simboluri grafice pentru blocuri de funcţii:

Simboluri pentru blocuri de operaţii:


-[<]- Comparaţii: <, > , < >, < =, > =, =.
-[OPER.]- Operaţii aritmetice : +, -, x, /, modulo;
Operaţii logice: SI, SAU, XOR;
Operaţii de conversie: BCD BIN, ASCII BIN;
Deplasare circulară registre;
Transfer şiruri de biţi sau tabele cuvinte.
Ex. 1 (TSX 17-20) - fig. 3.31 se referă la comanda de pornire reversibilă cu automenţinere a unui
motor. După cum se observă nu trebuie neapărat realizată o asociere directă între un contact normal
închis şi simbolul de test al contactului invers din reţeaua LADDER.
Automatul execută reţelele de contacte unele după altele, în ordinea introducerii lor în program. Un
LADDER poate fi modificat sau completat cu reţele noi (prin inserare). Pentru o anumită reţea,
ordinea de tratare a zonei de test este specificată de constructor. De exemplu la TSX 17-20, se citesc
stările contactelor pe coloane, începând din stânga.
Ciclul de scrutare (zeci - sute de ms) are structura din fig. 3.32. Se observă că dacă un bit intern sau
de ieşire este comandat în mai multe locuri din program, se actualizează starea comandată la ultima
referire în LADDER. În schimb, stările logice ale biţilor de ieşire şi interni pot fi citite de mai multe
ori în program. Ex: Dacă O 0,5 apare în reţelele de contacte 2 şi 6, la actualizarea ieşirilor se va
comuta starea ieşirii O 0,5 conform ultimei reţele executate, reţeaua 6.
Programarea blocurilor (TSX 17 - 20)
Blocuri temporizatoare. În fig. 3.33 intervin următorii parametri de programare:
T
i , P: valoare preselectată;
T
i , B: cuantă de timp (1min ; 1s ; 0,1s ; 0,01s );
t=T,PxT
i i B; i: numărul blocului
T , P este încărcată în valoarea curentă T
i i, V când E = 0. În timpul t, E trebuie pus la 1. Comanda
C lansează temporizarea când este 1, după care revenirea la zero determină reţinerea
valorii curente T
i, V. După t, D devine 1 iar R = 0. Diagrama din fig. 3.33 explică
comportarea blocului pentru toate combinaţiile
de comenzi. Biţii T , D şi T
i i, R asociaţi ieşirilor D şi R pot fi testaţi (citiţi) de program la fel ca biţii
I/O. Tot în fig. 3.33 este inserat o reţea LADDER care foloseşte un temporizarator. T0 realizează o
temporizare de 2 sec. (cu o precizie de 10 ms = cuanta de timp). B0 este un bit intern; I0,X constituie
intrări iar O0,5 ieşire.

Monostabile. Se elaborează un impuls cu durată programabilă.


M
i, P: valoare prescrisă;
M
i B: cuantă de timp (la fel ca la temporizator).
t =M,PxM
M i i, B;
În timpul evoluţiei monostabilului, S nu trebuie menţinut la 1 - fig. 3.34. Deci lansarea funcţiei M se
frontul ascendent al comenzii S. Starea bitului M
face pe i,R asociat ieşirii R, se poate testa de către
program la fel ca un bit I/O.

Numărătoare. Se pot număra impulsuri (evenimente) înainte sau înapoi ori simultan în ambele
sensuri, în funcţie de comutările survenite la intrările U şi D.
P=1: valoarea preselectată C ,P este încărcată în valoarea curentă C
i i,V.
P=0: numărătorul poate evolua.
Semnalele asociate sunt redate în fig. 3.34. E devine 1 când C
i,V trece de la 0 la 9999 (pe D) - similar
Borrow. F devine 1 când C ,V trece de la 9999 la 0 (pe U) - similar cu Carry. Biţii (C , D), (C , F)
cu i i i
şi (C asociaţi numărătorului C
i, E) i pot fi testaţi prin program.

3.6.4 Programarea în GRAFCET

3.6.4.1 Elemente generale

Se utilizează 3 elemente grafice de bază:


- Etapa (starea) corespunde unei comportări invariante a automatului în raport cu intrările şi ieşirile. -
Tranziţia: indică posibilitatea trecerii de la o stare (etapă) la alta în condiţiile realizării unor anumite
condiţii (receptivităţi).
Etapele sunt
- Legăturile: arată căile de evoluţie ale sistemului. Pot fi orientate (prin săgeţi) sau nu.
numerotate şi li se asociază un bit X . X = 0: etapă inactivă; X
i i i = 1: etapă activă (acţiunile asociate
sunt executate).
Receptivităţile sunt funcţii logice în care intervin variabile de intrare, de etapă, interne, de ieşire etc.
O tranziţie este validată dacă toate etapele imediat precedente sunt active.
Alte reguli:
- Realizarea unei tranziţii dezactivează simultan toate etapele imediat precedente conectate la această
tranziţie şi activează toate etapele imediat următoare conectate cu aceasta.
- Durata unei etape nu poate fi zero pentru că durata de îndeplinire a unei tranziţii este limitată inferior
de fenomene fizice.
- Dacă în timpul funcţionării o aceeaşi etapă trebuie să fie simultan activată şi dezactivată, ea rămîne
activă.

Fig.
3.31 Transpunerea in limbaj LADDER a unei scheme cu contacte şi relee.

Fig. 3.32 Structura ciclului de scrutare pentru programarea în LADDER.

Fig. 3.33
Lucrul cu temporizatoare în LADDER / TSX.

Fig. 3.34 Blocuri


monostabil şi numărător pentru LADDER / TSX.
Simboluri grafice utilizate:
- etapă iniţială. Este activă la început de ciclu. Cel mai des semnifică starea de repaus, fără
nici o acţiune asociată. Dacă are asociate acţiuni, ele se descriu printr-un LADDER în zona
de tratare Posterioară. Observaţie: iniţializarea sistemului constă în trecerea dintr-o situaţie
vidă (nici o etapă activă - nici o evoluţie posibilă) la o stare iniţială prin comandă operator sau
comandă de la altă structură de comandă.
- etapă. O etapă devine activă dacă:
- etapa din amonte este activă;
- condiţia de tranziţie amonte este îndeplinită.
Etapele sunt tratate în zona Secvenţială a programului, iar acţiunile asociate (descrise prin
LADDER) în zona Posterioară. Există automate la care acţiunile sunt programate în limbaj

literal. - etapă activă la un moment precis al funcţionării.


- tranziţia: separă obligatoriu 2 etape şi permite trecerea de la una la următoarea. Descrierea
receptivităţilor (sau a condiţiilor de tranziţie) se efectuează prin LADDER tratat în zona program
Secvenţială.

- receptivitate satisfăcută totdeauna (asociată reluării automate a ciclului).

- activare simultană de etape sau dezactivare simultană.


- divergenţă (ramificaţie) la diferite etape, una singură fiind cea spre care evoluează sistemul;
- convergenţă (sfîrşit ramificaţie).

- legătură orientată

3.6.4.2 Structuri tip

Diferitele tipuri de GRAFCET vor fi ilustrate prin exemple concludente. Structurile descrise separat
se pot considera şi ca părţi dintr-un GRAFCET complex.

A. Secvenţa liniară (unică)


Structura este compusă dintr-o succesiune de etape care vor fi activate sau dezactivate una după alta.
O aplicaţie este asociată cu fig. 3.35. Ciclul de funcţionare al unei maşini de găurit cuprinde etapele:

Fig. 3.35 Instalaţia comandată cu AP şi GRAFCET - ul liniar asociat.


- strîngere pneumatică piesă;
- găurire;
- eliberare piesă.
Intervin următoarele comenzi şi semnale de control:
-a
1: manocontact (senzor presiune). Confirmă strângerea de către pistonul P;
-a
0: piston retras;
-b
0: burghiu sus;
-b
1: burghiu la cota finală de găurire;
- c, d: comenzi Start (cu două mâini simultan);
- a+, a -: comenzi la distribuitorul pneumatic pentru strângere, respectiv slăbire;
- b+, b -: comenzi la distribuitorul pneumatic pentru avans / retragere cap găurire.

B. GRAFCET cu divergenţă (ramificaţie)


Secvenţele cu ramificaţie oferă posibilitatea mai multor evoluţii la un moment dat, dintre care numai
una este realizată. Deci, în general, condiţiile de evoluţie sunt exclusive unele în raport cu altele. O
aplicaţie este asociată cu fig. 3.36. O instalaţie de ridicat funcţionează astfel: în stare de repaus este
semnalizată disponibilitatea instalaţiei prin ieşirea O0,02. Limitatorii de cursă sus (I 0,04) şi jos (I
0,02) dau informaţia pentru poziţiile extreme. Butonul "Start" I 0,03 de la etajul inferior comandă
urcarea, iar butonul "Start" I 0,05 de la etajul superior comandă coborârea. Evident că dacă instalaţia
este în aşteptare jos, nu poate decât urca, iar dacă este în aşteptare sus nu poate decât coborî.

C. GRAFCET cu secvenţe simultane (paralelism structural)


Intervin structurile din fig. 3.37. Activarea şi dezactivarea simultană a mai multor secvenţe paralele
necesită utilizarea unor etape de sincronizare (de aşteptare).
O aplicaţie este asociată cu fig. 3.38. Un transfer de piese de pe o bandă (1) pe alta (2) se realizează cu
ajutorul a două pistoane plasate perpendicular. Operaţiile de avans şi retragere ale celor două pistoane
realiza simultan, adică retragerea P este comandată în acelaşi timp cu avansul P
se pot 1 2. Etapele 5 şi
7 sunt de sincronizare.

Elemente speciale
a. Funcţia de temporizare – fig. 3.39a. Când etapa este activă, se declanşează un numărător de
impulsuri. Sfârşitul numărării este determinat prin compararea conţinutului cu valoarea preselectată.
b. Considerarea fronturilor – fig. 3.39b.

Fig. 3.36 Explicativă la aplicaţia pentru GRAFCET cu divergenţă.

Fig. 3.37 Secvenţe simultane în GRAFCET.


c. Tipuri de acţiuni
- acţiuni continui - Durata y = durata etapei X
1(fig. 3.40a);
- acţiuni condiţionale - A este executată dacă X
2este activă şi dacă B = 1 (fig. 3.40b). Utilizări:
- oprire de urgenţă, prin inhibarea acţiunii (sau acţiunilor) în curs (fig. 3.40c);
- realizarea unei comenzi întârziate (fig. 3.40d).
- realizarea unei comenzi de o durată impusă.
- acţiuni memorate - o comandă poate continua pe durata mai multor etape consecutive prin: -
repetarea comenzii la fiecare etapă;
- utilizarea unei etape care va rămâne activă în acelaşi timp cu etapele considerate;
- utilizarea unei memorii auxiliare.
d. Forţarea (fig. 3.41): este utilizată şi local dar mai ales în sensul în care un graf de nivel superior
forţează unul inferior adică activează şi menţine active anumite etape şi le dezactivează pe toate
celelalte. Forţarea poate fi: continuă, temporară sau condiţională.
e. Macroreprezentări – fig. 3.42. Cu ajutorul macroreprezentărilor părţi din GRAFCET, care la un
moment dat nu sunt utile la nivel de detaliu, pot fi redate prin:
- macroetape: reprezintă condensat şi în mod unic un ansamblu de etape şi tranziţii caracterizate
printr-o etapă de intrare (IN) şi una de ieşire (OUT). O macroetapă se inserează în graf ca o etapă
normală şi respectă regulile de evoluţie. IN poate avea asociate acţiuni dar nu şi OUT. Realizarea
tranziţiei amonte activează etapa IN. Activarea etapei OUT validează tranziţia aval, a cărei
îndeplinire dezactivează etapa OUT.

Fig. 3.38 Explicativă la aplicaţia cu secvenţe simultane.

a.
b.
Fig. 3.39 Temporizări şi fronturi în GRAFCET.

a. b.

c. d. Fig. 3.40 Tipuri de acţiuni în GRAFCET.

Fig. 3.41 Forţări în GRAFCET.


Fig. 3.42 Macroreprezentări pentru GRAFCET.

- subprograme (task-uri): se trece controlul la GRAFCET-ul subprogram, după executarea căruia


(sesizată prin activarea etapei finale) se revine în programul principal. Spre deosebire de macroetape,
subprogramele pot fi apelate (aceleaşi) din mai multe locuri ale GRAFCET-ului.

3.6.4.3 Structurarea şi tratarea unui program GRAFCET

Ciclul de scrutare are structura din fig. 3.43. Programele


GRAFCET sunt divizate în 3 zone: 1. Zona de tratare
preliminară - conţine toate instrucţiunile
care nu depind de etapele GRAFCET. Intervin reţelele de
contacte pentru mers automat / manual, informaţii relative la
opriri de securitate etc. Programul din această zonă este citit la
fiecare ciclu de scrutare.
2. Zona de tratare secvenţială - conţine instrucţiunile
GRAFCET: etape şi tranziţii. Receptivităţile asociate
tranziţiilor se descriu prin LADDER în această zonă. La
fiecare ciclu de scrutare sunt citite numai etapele active şi
tranziţiile valide, celelalte fiind ignorate.
3. Zona de tratare posterioară - conţine reţelele de contacte
corespunzând acţiunilor (comenzilor) asociate etapelor.
La automatele TSX, cu ajutorul biţilor sistem SY21,
SY22 şi SY23 se gestionează modurile de lucru (mers normal
instalaţie, oprire de securitate, mers cu comandă manuală
pentru reglaje etc).
SY21: iniţializare GRAFCET - punerea la 1 printr-o bobină
SET a acestui bit determină dezactivarea etapelor active şi
activarea etapei (sau etapelor) iniţiale;
SY22: resetare GRAFCET - punerea la 1 printr-o bobină SET
a acestui bit determină dezactivarea tuturor etapelor.
SY23: blocare GRAFCET - punerea la 1 printr-o bobină SET a
acestui bit determină îngheţarea programului la etapa în curs
(menţinerea în activitate a etapelor deja active şi menţinerea
dezactivată a celor inactive).
La sfîrşitul zonei secvenţiale, aceşti biţi sistem sunt automat repuşi la 0.
Fig. 3.43 Ciclul de scrutare pentru GRAFCET.

Următoarea aplicaţie (fig. 3.44) pune în evidenţă zonele tipice ale unui program GRAFCET şi
modul cum se folosesc reţele LADDER pentru descrierea receptivităţilor şi a acţiunilor. La comanda
START CICLU, un cărucior se deplasează spre dreapta până la activarea limitatorului de cursă LD.
Rămâne în repaus aici 5 sec şi apoi revine spre stânga până la extremitatea marcată de limitatorul LS.
Tabelul 3.1 redă asocierea variabilelor GRAFCET cu intrări şi ieşiri ale unui automat TSX 17-20.

Tabel 3.1

S start ciclu I0,0


LS limitator stânga I0,1
LD limitator dreapta I0,2
MD motor dreapta O7,0
MS motor stânga O7,1

Fig. 3.44
Aplicaţie cu evidenţierea zonelor preliminară, secvenţială şi posterioară din GRAFCET.
3 EXEMPLU DE COMANDA NUMERICA A UNEI ACTIONARI
ELECTROMECANICE

3.1. Problema de soluţionat, restricţiile impuse şi etapele de sinteză ale variantelor posibile

Se propune ca sistemul de acţionare electrică să îndeplinească următoarele condiţii principale


de funcţionare:
să permită pornirea motorului M numai prin acţionarea butonului de pornire I, dacă
sunt îndeplinite în totalitate condiţiile de pornire impuse de către sistemele de protecţii
specifice sistemului;
să memoreze comanda de pornire;
(să comande pornirea motorului cu temporizarea de pornire dT propusă şi să semnalizeze optic pe
durata temporizării la pornire);
să semnalizeze optic punerea sub tensiune a motorului;
să semnalizeze optic corespunzător motivul de refuz al pornirii;
să menţină motorul sub tensiune atât timp cât sunt îndeplinite condiţiile normale de
funcţionare ;
să permită oprirea motorului M prin acţionarea manuală a butonului de oprire O, sau
prin acţionarea automată a subsistemelor de protecţie;
să semnalizeze optic corespunzător cauza deconectării automate;
să permită cicluri succesive de pornire-oprire a motorului M.
să deconecteze automat sarcina la dispariţia tensiunii şi să nu repună automat sub
tensiune consumatorul, la reapariţia acesteia.

3.1.1. Soluţia clasică cu contacte şi relee

Se propune, în prima etapă, pentru modelarea condiţiilor de funcţionare ale contactorului C,


respectiv ale motorului M, schema electrică cu contacte şi relee, figura 3.1, care va conţine: un
contactor electromagnetic de putere, C -pentru comutaţia de putere a motorului M; butoanele I şi
O pentru comanda manuală a contactorului C;
subsistemele de protecţie Umin -pentru controlul minimal al tensiunii electrice, Rsc
pentru controlul maximal în regim de scurtcircuit, Rss –pentru controlul în regim de
suprasarcina şi Rtemp- pentru controlul efectiv al temperaturii din consumatorul de
putere M;
un contact K1 de blocaj, care să restricţioneze accesul la circuitul de comandă al
acţionării.
Funcţia logică a circuitului de comanda al bobinei contactorului C, respectiv al motorului
M va fi condiţionată în totalitate de contactele cablate ale respectivului circuit, după cum
rezultă din expresia:
C=(I+C)*O*Rtemp*Umin*Rss*Rsc*K1

(1)
Pentru circuitul de semnalizări optice se sintetizează o schemă electrică corespunzătoare
fiecărui subsistem, în conformitate cu metodele clasice cunoscute (algebrică, Quine Mc
Clusky, Tison, etc.)

CCC

Umin
RST I
C O Rtemp.

C
Rsc
rel. min. tensiune Rsc Rss Umin
K1
releu de
scurtcircuit

Rss
releu
suprasarcina

Rtemp.
releu termic
M

Fig. 3.1. Schema electrică cu contacte şi relee


3.1.2. Schema sistemică a circuitului de comandă, control şi protecţie

Aceasta este prezentată explicit în Fig. 3.2, în care sunt inventariate toate intrările logice în
sistemul Black-Box, în număr de opt, pe latura din stânga a acestuia, respectiv toate ieşirile, în
număr de opt, pe latura din dreapta a acestuia.
comanda pornire (I)

releu de scurtcircuit
R,S,T M semnaliz. contact blocare
rel.de temperatura pornire (K1) semnaliz.
temporizare pornire (K2)
blocare pornie (K1)
semnaliz. releu minimal de
tensiune semnaliz. releu de
temporizare pornire (K2)
semnaliz. pornire motor suprasarcina semnaliz. releu
comanda oprire (O)
de scurtcircuit

rel. min. tensiune semnaliz. releu de temperaura

comanda pornire/oprire motor


releu suprasarcina

Fig. 3.2. Schema sistemică a circuitului sintetizat


3.1.3. Implementarea unui circuit cu microprocesor în schema sistemică

Din considerente de ordin didactic în această etapă s-a elaborat o soluţie de comandă
logică şi de control cu microprocesor ce utilizează kit-ul procesor 14.000A, [….] echipat cu
microprocesorul de un bit MMC-4500, Motorola.
K
+5V
A31, A32 tensiune (+5V)
comanda pornire (I) I1 semnaliz. prezenta
R,S,T M scurtcircuit (K1) semnaliz.
I6 I7 Q5
teporizare pornire
rel.de temperatura Q6
(K2)
semnaliz. pornire
Q0 motor semnaliz. releu
blocare pornie Q1
minimal de
Q2 comanda
tensiune semnaliz.
comanda oprire pornire/oprire
(K1) motor releu de
(O) rel. min. Kit procesor
suprasarcina
tensiune 14.1000A
I2 I3
Q3
semnaliz. contact
releu suprasarcina
I4 I5 Q4
releu de blocare pornire

temporizare pornire scurtcircuit semnaliz.


Q8
(K2) RS A3 releu de temperaura
A1, A2
Q7
I8 semnaliz. releu de
Fig. 3.3. Schema de conexiuni la KIT-ul Procesor 14.000A

În Fig.3.3. se prezintă explicit conexiunile de intrare-ieşire, proiectate, la sistemul cu


microprocesor de tip KIT Procesor14.000A, la care intrările de date TTL sunt marcate cu I0,
I1,…. I15, iar ieşirile logice cu Q0, Q1, …Q15. In circuitul din fig.3.3 s-a prevăzut o ieşire
suplimentară, pentru a permite şi semnalizarea optică a punerii sub tensiune a microsistemului,
după alimentarea cu tensiune a acestuia şi după lansarea în execuţie a programului e funcţionare
al aplicaţiei proiectate, (portul Q0-semnaliz. prezenţă tensiune +5V).
Schema explicită de interfaţare TTL la sistemul KIT Procesor 14.000A este prezentată în
fig. 3.4. Fiecare element informaţional oferă un semnal logic TTL, la portul corespunzător, prin
intermediul unor rezistenţe R de polarizare. De menţionat că porturile de intrare ne utilizate ale
kit-ului trebuiesc conectate la potenţialul de referinţă al sursei, adică la masa circuitului electric.
Porturile de ieşire ale Kit-ului comandă fie LED-uri de semnalizare optică, fie bobina
unui microreleu. Activarea ori cărei sarcini de pe un port de ieşire se face cu semnal O logic la
portul corespunzător.
tensiune releu K +5V (+5V) semnaliz.
00
suprasarcina
comanda pornire 9xR1 I1 pornire motor
semnaliz.
(I) 8xR2
I2 Q0
prezenta tensiune comanda
pornire/oprire
comanda oprire I3 Q1 motor
1 A31, A32
(O) rel. min.
Q2
pornire (K2) semnaliz.
I7
Q6
releu de scurtcircuit releu minimal de
RS I8
00000 Q7
rel.de temperatura tensiune semnaliz.
I0 Q8
01 A1, A2 releu de suprasarcina
temporizare pornire
A3
(K2) blocare pornie semnaliz. releu de
Kit procesor 14.1000A
I4
semnaliz. contact
(K1) blocare pornire (K1) scurtcircuit semnaliz.
I5 Q3
releu de temperaura
Q4 semnaliz. teporizare
I6
Q5

Fig. 3.4. Schema explicită de interfaţare TTL la sistemul KIT Procesor 14.000A

3.1.4. Algoritmul de funcţionare al microsistemului

3.1.4.1. Kit-ul procesor 14.000A. Acesta este un automat programabil uşor de programat şi
perfect adaptabil pentru numeroase proiecte de automatizare. Are la bază microprocesorul de un
bit MMC 4500, în condiţiile în care care un sistem de 8 biţi ridică probleme de eficienţă şi cost.
Fluxul de prelucrare al datelor şi de generare a comenzilor în Kit-ul 14000A este prezentat în
figura 3.5

LD, LDC
REGISTRU
AND, ANDC
STO, STOC
OR, ORC XNOR REZULTATE
UNITATE LOGICA IN RR

OUT

MULTIPLEXOR I Q Q
DEMULTIPLEXOR I I I I I I 0 1 2 3 4 5 15 0 1 2

Q Q Q Q
3 4 5 15 Q

Figura 3.5. Arhitectura microsistemului 14.000A


Stările logice ale intrărilor I0, I1, I2, …I15 pot fi citite una câte una, prin intermediul unui circuit
MULTIPLEXOR. Valoarea unei date de intrare se poate încărca prin intermediul UNITĂŢII
LOGICE în REGISTRUL DE REZULTAT (RR), aflat pe post de registru acumulator de un bit. Tot
cu ajutorul UNITĂŢII LOGICE în REGISTRUL DE REZULTAT se pot încărca diverse combinaţii
(ŞI, SAU, NU, SAU-EXCLUSIV, etc.,) între o variabilă de intrare şi propria stare curentă a
registrului RR.
Funcţiile unităţii logice se aleg cu ajutorul uneia din următoarele instrucţiuni:
LD, (LOAD)-încarcă data de intrare în RR;
LDC, (LOAD COMPLEMENTAT)- încarcă data de intrare complementată în RR;
AND-încarcă valoarea funcţiei logice (I AND RR) în RR;
ANDC (AND COMPLEMENTAT)- încarcă valoarea funcţiei logice (I complementat
AND RR) în RR
OR- încarcă valoarea funcţiei logice (I OR RR) în RR
ORC- încarcă valoarea funcţiei logice (I complementat OR RR) în RR
XNOR (XOR NEGAT)- încarcă valoarea funcţiei logice (I+ OR RR complementat) în
RR, sau mai explicit dacă I=RR, încarcă 1 logic în RR.
Conţinutul registrului RR poate fi transferat la oricare din cele 16 ieşiri Q0, Q1, Q2, …Q15,
printr-un circuit demultiplexor, ce conţine la ieşire un număr de 16 celule de memorie.
Transferul de date la ieşire se face cu una din cele două instrucţiuni:
STO, (STORE)-transferă valoarea conţinută în RR la ieşire;
STOC (STORE COMPLEMENTAT) -transferă valoarea complementată a lui RR la
ieşire;
La redactarea unui program, instrucţiunile de citire -adica de transfer a informaţiei în RR,
sau de scriere -adica de transfer a informaţiei din RR, trebuie însoţite de adresa intrării (respectiv
ieşirii) la care se face referire.
Figura 3.5 prezintă doar un detaliu al arhitecturii Kit-ului 14.000A, care pune în evidenţă
operarea cu 9 din totalul de 16 instrucţiuni ale kit-ului. O imagine mai detaliată a arhitecturii Kit
ului 14.000A este prezentată în fig. 3.6. Pentru a fi urmărită mai uşor, instrucţiunile sunt
încercuite.
Prima noutate adusă de schema din fig. 3.6 este apariţia a două registre IEN şi OEN în
fluxul de intrare-ieşire al datelor. Scopul acestor registre este acela de a valida sau inhiba
circulaţia datelor între periferie (multiplexor, demultiplexor) şi unitatea centrală (unitatea logică,
registrul RR). Registrele IEN şi OEN pot fi încărcate cu starea logică a uneia din cele 16 intrări,
I0, I1,….I15, acest lucru se face cu instrucţiunea IEN, respectiv OEN. Instrucţiunea IEN (INPUT
ENABLE), încarcă registrul IEN cu starea logică a intrării selectate prin program. Scopul
instrucţiunii IEN este de a crea una sau mai multe intrări cu prioritate absolută în controlul
procesului, indiferent de stările celorlalte intrări. Schimbarea stării registrului IEN s face cu o
nouă instrucţiune IEN. La iniţializarea sistemului (la punerea sub tensiune sau la resetarea
acestuia), registrul IEN se află în starea logica O. Pentru validarea accesului datelor de intrare,
este necesară încărcarea lui cu starea logica 1. Pentru aceasta una din intrările kit-ului (de
exemplu I0) se conectează la +5V, pentru a avea permanent starea logică 1, iar programul trebuie
să înceapă cu instrucţiunea IEN I0
X1 X2
NUMARATOR CLOCK TEMPORIZARI T1 T2 T4

NOPO, JUMP
R1, C1 R2, C2 R4, C4 RTN SKZ
MEMORIE DE
PROGRAM

LD, LDC
ORC XNOR
STO, STOC
UNITATE LOGICA
REGISTRU
REZULTAT RR

VALIDARE
AND, ANDC OR,
SCRIERE

DEMULTIPLEXOR
Q Q
MMMMMMM 0 1
IEN OENIEN OEN

Q Q Q Q Q
2 3 4 5 15 ....
MULTIPLEXOR

I
I I I I I I 0 1 2 3 4 5 15 ....

Fig. 3.6. Arhitectura de detaliu a Kit-ului 14.000A

Instrucţiunea OEN (OUTPUT ENABLE) încarcă registrul OEN cu starea logică a unei
intrări selectate prin program. Deci, registrul OEN controlează accesul datelor spre cele 16 ieşiri
ale kit-ului. În funcţie de valoarea cu care este încărcat apar două situaţii: Registrul OEN este 1
logic, datele circulă neafectate de la registrul RR la ieşiri; Registrul OEN este 0 logic, kit-ul
procesor refuză sau ignoră orice instrucţiune de scriere STO sau STOC. Scopul instrucţiunii
OEN este acela de a crea o intrare sau mai multe intrări care să condiţioneze comanda
elementelor de execuţie din proces. Schimbarea stării registrului OEN s face cu o nouă
instrucţiune OEN. La iniţializarea sistemului (la punerea sub tensiune sau la resetarea acestuia),
registrul OEN se află în starea logica O. Pentru validarea accesului datelor de intrare, este
necesară încărcarea lui cu starea logica 1. Pentru a valida executarea instrucţiunilor STO sau
STOC, este necesară încărcarea sa cu starea logica 1 de la una din intrări (de exemplu I0)
conectată la +5V, pentru a avea permanent starea logică 1, iar programul trebuie să înceapă cu
instrucţiunea OEN I0
Kit-ul procesor 14.000 A conţine un circuit de memorie, vezi fig. 3.6, în care se află
înscris programul de aplicaţie. Instrucţiunile sunt scrise succesiv, începând cu prima adresă din
MEMORIE, în ordinea crescătoare a adreselor Pentru ca instrucţiunile să poată fi executate rând
pe rând, intrările de adrese ale memoriei sunt conectate la un circuit NUMĂRĂTOR, care
primeşte impulsuri de tact de la un circuit oscilator, CLOKC şi adresează memoria, începând de
la adresa 0 până a adresa 255, după care reia numărarea de la adresa 0 în mod ciclic. În
majoritatea cazurilor, programul de aplicaţie are mai puţin de 256 de instrucţiuni. Pentru a evita
parcurgerea inutilă a locaţiilor libere rămase in memorie, Kit-ul procesor 14.000 A are
instrucţiuni speciale care pot comanda numărătorului reluarea numărării de la adresa 0 sau de la
o altă adresă de program. Aceste instrucţiuni se numesc INSTRUCŢIUNI DE SALT.
Pentru a executa un salt în program sunt necesare două instrucţiuni: NOPO si JMP. Acest
lucru se datorează construcţiei kit-ului procesor. NOPO este o instrucţiune pregătitoare, ea
trebuie scrisă înaintea instrucţiunii JMP, care execută saltul propriu-zis. Instrucţiunile NOPO şi
JMP trebuie însoţite de numărul sau eticheta liniei de program la care se execută saltul. De
reţinut că instrucţiunea NOPO poate sta în program la mai multe instrucţiuni distanţă de
instrucţiunea JMP, dar obligatoriu înaintea acesteia.
Pentru diversificarea posibilităţilor de programare, Kit-ul procesor 14.000 A are şi o
instrucţiune de salt condiţionat: SKZ (SKIP IF RR=0). Efectul instrucţiunii SKZ este următorul:
dacă registrul RR are valoarea 0, se sare (se ignoră) următoarea instrucţiune de program. Spre
deosebire de perechea NOPO-JMP, care execută salt necondiţionat, la orice linie de program,
instrucţiunea SKZ are o singură funcţiune-cea următoare ei şi numai atunci când RR=0.
Tehnica saltului condiţionat echivalează folosirea instrucţiunilor IEN, OEN în probleme
de decizie de tipul IF-THEN-ELSE. Alegerea tehnicii de programare este la dispoziţia
proiectantului de aplicaţie.
Apelarea subrutinelor este o tehnică de programare utilă atunci când fragmente de
program se repetă de un număr de ori. Tehnica presupune definirea unui astfel de fragment ca un
program autonom, numit subrutină, şi apelarea lui prin salt din programul principal, ori de câte
ori este nevoie. La Kit-ul procesor 14.000 A saltul la subrutină se face tot cu perechea NOPO
JMP, revenirea din subrutină în programul principal se face cu instrucţiunea RTN (RETURN). O
subrutină se termină obligatoriu cu RET, această instrucţiune nu are nevoie de o adresă auxiliară,
deoarece adresa de revenire este memorată automat la executarea fiecărui apel de subrutină. După
executarea instrucţiunii RTN se reintră în programul principal cu executarea instrucţiunii care
urmează apelului de subrutină. In interiorul unei subrutine se interzice folosirea instrucţiunii
JMP, face excepţie apelarea celui de al doilea nivel de subrutină. Două nivele de subrutină
înseamnă posibilitatea apelării unei subrutine dintr-o altă subrutină. Kit-ul procesor 14.000 A
oferă această facilitate. In acelaşi program, o subrutină poate fi atât de nivel 1, când se apelează
din programul principal, cât şi de nivel 2, când este apelat dintr-o subrutină.
Pentru oprirea temporară a activităţii Kit-ului procesor 14.000 A se foloseşte
instrucţiunea NOPF, urmată de unul din simbolurile T1, T2 sau T4. Această instrucţiune
declanşează un circuit monostabil pe kit, care blochează un imp tactul (clock-ul)
microprocesorului. Duratele celor trei temporizări pot fi reglate cu ajutorul unor potenţiometre
aflate pe kit.
Din punct de vedere constructiv Kit-ul procesor 14.000 A asigură temporizări astfel:
T1=130ms…1,3s; T2, T4=30ms…300ms.
Folosirea instrucţiunii NOPF este necesară la comanda unor elemente de execuţie
electromecanice, cu inerţie la acţionare şi revenire. Pauzele în program pot fi folosite şi la
comanda unor elemente de semnalizare.
Programele subprogramele pentru Kit-ul procesor 14.000 A sunt scrise în limbaj literar,
cu mnemonicele corespunzătoare instrucţiunilor şi adreselor de execuţie a instrucţiunilor. Pentru
ca un program să poată fi înţeles şi executat de către microprocesor este necesară compilarea lui
din limbajul scris (sursă, limbaj cu mnemonice sau de asamblare), în limbaj specific
microprocesorului numit limbaj în cod obiect sau cod maşină. Codurile obiect suntnumere scrise
în sistem hexazecimal:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.. Procedura de traducere a unui program
sursă în cod obiect se numeşte ASAMBLARE. Aceasta poate fi făcută manual, de către utilizator,
sau automat, cu ajutorul calculatorului, utilizând programe specifice de asamblare.
Pentru Kit-ul procesor 14.000 A se prezintă instrucţiunile acestuia, codurile zecimale ale
intrărilor şi ieşirilor, cu codurile obiect, scrise în sistem hexazecimal şi binar. Algoritmul de
funcţionare al sistemului propus
Algoritmul sintetizat şi propus în fig.3.7 oferă următoarele facilităţi secvenţiale
programului de lucru al unităţii cu microprocesor de tip Kit procesor 14.000 A. iniţializarea
porturilor de ieşire ale unităţii, imediat după punerea sub tensiune a acesteia; în primele cicluri
maşină, fiecare port, (al ieşirilor Qi conectate), este adus la starea 1 logic, mai puţin portul Q0,
prin care se semnalizează prezenţa tensiunii 5V. Se consideră validă comanda de activare a
ieşirilor cu semnalul 0 logic, având în vedere conexiunea OPEN COLECTOR a porturilor Qi .
Semnalul 0 logic pe porturile de ieşire nu produc efect asupra elementelor de execuţie conectate
(LED-uri, micro-relee ).
Cod Cod Cod BINAR MNEMONICA FUNCTIE
DECA HEXA

0 0 0000 NOPO Fixează adresa de salt

1 1 0001 LD DATA

2 2 0010 LDC

3 3 0011 AND

4 4 0100 ANDC

5 5 0101 OR

6 6 0110 ORC

7 7 0111 XNOR

8 8 1000 STO

9 9 1001 STOC

10 A 1010 IEN

11 B 1011 OEN

12 C 1100 JMP Salt în program

13 D 1101 RTN Revenire din subrutină

14 E 1110 SKZ Dacă RR 0, ignoră următoarea instrucţiune

15 F 1111 NOPF Pauză în execuţie

se verifică starea sistemelor de protecţie; se semnalizează optic dacă una sau mai
multe protecţii sunt acţionate; dacă nu sunt îndeplinite condiţiile de pornire din
punctul de vedere al protecţiilor se semnalizează optic corespunzător şi se
comandă saltul la eticheta ET0, ciclul se reia succesiv până la îndeplinirea
condiţiilor de funcţionare normală;
dacă starea protecţiilor este corespunzătoare, se trece la controlul stării contactului
K1, de blocaj, care permite accesul la comanda de pornire numai a persoanelor
autorizate ce deţin accesul pe respectivul contact; Dacă starea lui K1 este
necorespunzătoare, se semnalizează acest lucru şi se comandă reluarea ciclului de
control şi comandă începând de la eticheta ET0;
se verifică ciclic starea butonului de pornire I. Când acesta este acţionat se trece la
etapa de interogare a contactului K2 prin care se stabileşte dacă pornirea motorului
va fi fără sau cu temporizarea programata T; Dacă este programată temporizarea T
la pornire, se semnalizează optic, prin portul corespunzător, pe toată durata
temporizării;
START

ET 0

INITIALIZEAZA
PORTURI IESIRE SI
SEMNALIZEAZA TENS. +5v
SUBR 1SEMNALIZARE OPTICA
STARE SUBSISTEME
NU
PROTECTII
OK=?

DA

DA
BLOCARE, K1=?

ET 1 NU
K2=? TEMPORIZARE LA
PORNIRE= T[s] SI
COMANDA PORNIRE ET 2 SEMNALIZARE
NU
I=? OPTICA
NU DA
TEMPORIZARE
DA
PORNIRE

TEMPORIZ. PORNIRE
RESTRICTII
OPRESTE MOTOR SI
SEMNALIZEAZA
NU OPTIC
PROTECTII si
OK=? MOTOR SI
DA SEMNALIZ
OPTIC
ET 3
ET 4

PORNESTE

Fig. 3.7. Algoritmul de funcţionare al sistemului propus drept exemplu

înainte de a se da comanda de pornire motorului M, se verifică dacă nu a apărut


restrictii sau o comandă de oprire, O, care se execută prioritar;
după pornirea motorului, se semnalizează optic faptul că motorul este pornit şi se
comandă saltul la eticheta ET2, prin care se reiau ciclic toate interogările în
legătură cu subsistemele de protecţie-contactul de blocaj şi butonul de oprire. Ne
îndeplinirea în totalitate a condiţiilor programate de funcţionare corectă a
sistemului electromecanic va conduce automat la comanda de deconectare
automată a consumatorului M şi la semnalizarea optică corespunzătoare a
motivului pentru care s-a produs deconectarea tensiunii la consumator.

3.1.5. Sinteza programului sursă pentru algoritmul propus


ETICHE Adresa Cod SURSA Cod COMENTARII
TA PROGRAM OBIECT
PROG.

1 00 IEN I0 AO IEN=1

2 01 OEN I0 BO OEN=1

3 ET 0 02 LD I0 10 RR=1

4 03 STOC Q0 90 Q0=0, LED +5V aprins

5 04 STO Q1 81 Q1=1

6 05 STO Q2 82 Q2=1

7 06 STO Q3 83 Q3=1

8 07 STO Q4 84 Q4=1

9 08 STO Q5 85 Q5=1

10 09 STO Q6 86 Q6=1

11 0A STO Q7 87 Q7=1

12 0B STO Q8 88 Q8=1

13 0C NOPO SUBR 1 04

14 0D JMP SUBR 1 C1 Salt SUBR 1

15 0E LDC I3 23 Veifica protectii Umin

16 0F ANDC I4 44 Veifica protectii s.s.

17 10 ANDC I5 45 Veifica protectii s.c.

18 11 ANDC I6 46 Veifica protectii temperat.

19 12 ANDC I8 48 Verifica contact blocaj K1

20 13 SKZ EF

21 14 NOPO ET 1 01

22 15 SKZ EF

23 16 JMP ET 1 C9 Daca RR=1, salt la ET1

24 17 NOPO ET 0 00

25 18 JMP ET 0 C2 Daca RR=0, salt la ET 0

26 ET 1 19 LD I1 11 Verifica comanda de pornire I

27 1A SKZ EF

28 1B NOPO ET 0 00

29 1C SKZ EF

30 1D JMP ET0 C2 Daca RR=1, salt la ET0

31 1E LD I7 17 Verifica temporizare pornire K2


32 1F SKZ EF

33 20 STOC Q4 94 Daca RR=1, aprinde led


temporizare pornire

34 21 SKZ EF

35 22 NOPF T1 F1 Pauza T1 =1s

36 23 SKZ EF

37 24 NOPF T1 F1 Pauza T1 =1s

38 25 SKZ EF

39 26 NOPF T1 F1 Pauza T1 =1s

40 27 SKZ EF

41 28 NOPF T1 F1 Pauza T1 =1s

42 29 SKZ EF

43 2A NOPF T1 F1 Pauza T1 =1s

44 2B SKZ EF

45 2C STO Q4 84 Stinge led temporizare pornire

46 ET 2 2D LDC I2 22 Verifica buton oprire O

47 2E ANDC I3 43 Veifica protectii Umin

48 2F ANDC I4 44 Veifica protectii s.s.

49 30 ANDC I5 45 Veifica protectii s.c.

50 31 ANDC I6 46 Veifica protectii temperat.

51 32 ANDC I8 48 Verifica contact blocaj K1

52 33 SKZ EF

53 34 NOPO ET 3 03

54 35 SKZ EF

55 36 JMP ET 3 C9

56 37 NOPO ET4 03

57 38 JMP ET 4 CD

58 ET 3 39 STOC Q2 9D Porneste motor

59 3A STOC Q1 91 Semnalizeaza motor pornitt

60 3B NOPO ET 2 02

61 3C JMP ET 2 CD
62 ET 4 3D STOC Q2 92 Opreste motor

63 3E STOC Q1 91 Semnalizeaza motor oprit

64 3F NOPO ET 0 00

65 40 JMP ET 0 C2

66 SUBR. 1 41 LD I3 13 Citeste stare releu min. tensiune

67 42 STOC Q5 95 Afisaza stare releu min. tensiune

68 43 LD I4 14 Citeste stare releu suprasarcina

69 44 STOC Q6 96 Afisaza stare releu suprasarcina

70 45 LD I5 15 Citeste stare releu scurtircuit

71 46 STOC Q7 97 Afisaza stare releu scurtircuit

72 47 LD I6 16 Citeste stare releu temperatura

73 48 STOC Q8 98 Afisaza stare releu temperatura

74 49 LD I8 18 Citeste stare contact blocaj K1

75 4A STOC Q3 93 Afisaza stare contact blocaj K1

76 4B RTN DF

Programul în cod OBIECT urmează a fi încărcat într-o memorie RAM şi rulat pe un


sistem de exersare-dezvoltare, de tip SED 14, elaborat pentru dezvoltarea aplicaţiilor pe kit-ul
procesor 14.000A, ocazie cu care el poate fi testat şi corectat. După terminarea fazei de testare
programul poate fi scris (copiat) într-o memorie PROM-EPROM cu ajutorul aceluiaşi sistem.
Prin ataşarea cip-ului PROM-EPROM inscripţionat-cu programul aplicaţie, pe un nou kit
procesor acesta poate lucra independent în sistemul proiectat, cu funcţiile logice corespunzătoare.
4. IMPLEMENTAREA SISTEMULUI MICROPROGRAMABIL PE CHIP
(PSOC) ÎN SCHEMA SISTEMICĂ

4.1.1 Sistemul microprogramabil din familia de microcontrolere Cypress

In acest capitol se propune implementarea, în chema electrică fin Fig. 3.1, a unui sistem
microprogramabil de tip microcontroler. Microcontrolerul este un circuit integrat de tip
microprocesor, fiind orientat structural si funcţional spre lucrul cu intrări şi ieşiri. Dacă se
înglobează intr-un circuit integrat pe lângă microprocesor, memorie ROM , memoria RAM şi
elementele de intrare/ieşire necesare unei anumite aplicaţii se obţine cel mai complex circuit
integrat numit microcontroler. Un microcontroler este similar unui microprocesor. Ambele conţin
o unitate centrala de prelucrare sau UCP (Central Processing Unit). CPU execută instrucţiuni care
îndeplinesc operaţiile de baza logice, matematice şi de curgere a informaţiei.
Diagrama PSoC ilustrată în figura 4.1, ilustrează arhitectura nivelului înalt al familiei de
dispozitive PSoC. Fiecare bloc al diagramei este prezentat pe larg în paragrafele: PSoC Core,
Sistemul Digital, Sistemul Analogic şi Resursele sistem. Toate aceste paragrafe reprezintă
reţeaua de comunicaţii a sistemului magistrală (System bus).
Port 7 Port 6 Port 5 Port 4 Port 3 Port 2 Port 1 Port 0 Driver
Analogic
Magistrală

Magistrală digitală de
interconectare Intrerrupt
Memory
controller CPU (M8C) WatchDog
SRAM Magistrală analogică de
interconectare
SROM Flash

Oscilator principal Int. Oscillator low speed Crystal Oscillator

Magistrală
Referinţă
Aria Blocurilor Digitale Aria Blocurilor Analogice
Analogică
Intrare
Analogică

4 rânduri digitale
4 coloane analogice
Multiplicare

DecimatorsSwitch
Referintă

Clock
Reset Sistem
Acumulare
I2C Tensiune
USBMultiplx. IO
Digital Resursele Sistemului (MAC) Mode Pump Internă
POR sau LVD Analogică

Fig.4.1 Arhitectura sistemului microprogramabil pe chip din familia Cypress

Pentru a construi un calculator complet, microprocesorul necesită memorie pentru


păstrarea datelor şi a programelor şi interfeţe de intrare-ieşire (I/O) pentru conectarea
dispozitivelor externe cum ar fi tastatura sau monitorul. Spre diferenţa de microprocesor,
microcontrolerul este un calculator pe un chip deoarece el conţine şi memorie şi interfeţe de
intrare-ieşire pe lângă CPU. Deoarece memoria şi interfeţele care încap pe un chip sunt limitate,
microcontrolerele tind să fie utilizate în sisteme mai mici care necesită doar un microcontroler şi
câteva elemente adiţionale.
Pentru a alege un microcontroler din marea varietate de microcontrolere existente pe piaţă
trebuie ţinut cont de câteva caracteristici importante ale acestora:
⮚ numărul de biţi pe care îl poate procesa simultan, numărul mai mare de biţi indicând
un chip mai rapid şi mai puternic. Circuitele de 8 biţi sunt foarte populare, dar
există şi circuite de 4, 16, 32 biţi.
⮚ consumul de putere este important mai ales în cazul sistemelor alimentate de la
baterie. Circuitele realizate în tehnologia CMOS au un consum redus de putere.
Multe din dispozitivele CMOS au un mod special de "aşteptare" (stand-bye sau
sleep) care limitează consumul de curent la câţiva miliamperi când un circuit este
inactiv.
⮚ un alt considerent în proiectarea circuitelor cu microcontrolere este modul de
memorare a programului. Dintre modalităţile de memorare amintim memoriile
EPROM, EEPROM, ROM, NVRAM (nonvolatile RAM) şi FLASH EPROM.
⮚ opţiuni de intrare-ieşire. Majoritatea sistemelor necesită interfeţe cu senzori,
tastatura, comutatoare, relee, monitoare etc. În general microcontrolerele au porturi
pentru interfaţarea cu lumea exterioară.
Pe piaţa naţionala şi internaţională se găsesc microcontrolere de 4 biţi, de 8 biţi, de 16 biţi,
de 32 de biţi. Cele mai folosite microcontrolere sunt cele de 8 şi 16 biţi. În al doilea caz avem
microcontrolere cu arhitectura Von Neuman, având magistrala internă unică la care comunică
toate elementele, sau microcontrolere cu arhitectura Harvard, având două magistrale, una pentru
memoria ROM de programe şi alta pentru memoria RAM de date. În acest caz cele două tipuri de
memorii utilizează acelaşi spaţiu de adrese, ele nu se confundă datorita existenţei unor
instrucţiuni adecvate lucrului cu memoriile.
Proiectarea unor produse embedded, utile si ieftine poate fi o provocare chiar si pentru cei
mai experimentaţi ingineri. In prezent, proiectele embedded necesita optimizarea numărului de
componente, a dimensiunii fizice, a consumului de putere sau a costului, sau a tuturor celor de
mai sus. Produsele embedded complet optimizate folosesc foarte puţine resurse care se irosesc.
Aceasta forţează adesea proiectanţii sa aleagă componente mai puţin costisitoare care cred ei ca
vor funcţiona acolo unde componente mai scumpe ştiu ca vor funcţiona.
Pentru a rezolva aceasta problema si a uşura problematica prezentată mai sus, Cypress
MicroSystems, a dezvoltat o linie de sisteme semnal mixat care se caracterizează prin controler
pe placa. Aceste dispozitive PSoC permit personalizarea setului periferic in aşa fel încât sa se
adapteze cel mai bine la aplicaţia dorită - in orice moment pe durata procesului de dezvoltare.
Fiecare parte conţine blocuri de circuite analogice si blocuri de circuite digitale care pot fi
configurate in perifericele care se potrivesc cel mai bine aplicaţiei. În cazul în care circuitele de
comandă şi protecţie, spre exemplu, necesită o modificare în setul de caracteristici al sistemului
se poate modifica simplu configuraţia iniţială fără a mai fi nevoie de alegerea unei noi piese.
Blocurile analogice si digitale incorporate sunt folosite pentru a crea periferice pe aceste
dispozitive. Blocurile PSoC digitale pot implementa o varietate de funcţii microcontroler
standard, cum ar fi timere, PWMe (Pulse Width Modulators) si canale de comunicaţie seriala. Ele
pot, de asemenea, sa implementeze funcţii care nu sunt in mod normal disponibile in hardware pe
microcontrolere - cum ar fi PRS (Pseudo Random Sequence generators) si CRC (Cyclical
Redundancy Checkers).
Alegerea siliciului este influenţata in mare măsura de disponibilitatea uneltelor de înalta
calitate. Cypress MicroSystems a creat, de asemenea, un IDE (Integrated Development
Environment) pentru dezvoltare cu aceste produse. Numit "PsoC Designer", programul va
permite configurarea resursele analogice si digitale de la o interfaţa grafica utilizator. Utilizatorul
creează setul periferic care se potriveşte cel mai bine aplicaţiei si software-ul generează automat
un set de fişiere care setează biţii registrului corespunzător pentru a implementa alegerile făcute.
IDE-ul creează, de asemenea, interfeţe de programare pentru perifericele selectate pentru a iuţi
dezvoltarea software-lui.

4.1.3. Schema sistemică a circuitului de comandă numerică cu microcontroler de tip


Cypress

În figura 4.3 este prezentată schema sistemică a sistemului de comandă numerică dedicat
comutaţiei si protecţiei unui consumator de tip motor electric, în care sunt inventariate toate
intrările, respectiv ieşirile logice ale sistemului microprogramabil.
Fig.4.2 Schema sistemică a circuitului numeric

În faza de definire a problemei se determină semnalele de intrare şi ieşire din sistem,


viteza de variaţie a acestora, cantitatea şi viteza de prelucrare cerută, tipul de erori şi modul lor
de tratare.
La proiectarea şi realizarea sistemelor în logică programată se parcurg următoarele etape:
⮚ alegerea configuraţiei microsistemului, care se face pe baza analizei de sistem. În
această etapă se determină numărul porturilor de intrare şi celor de ieşire, numărul
dispozitivelor de transmisie a informaţiilor, capacitatea memoriei, tipurile şi numărul
dispozitivelor de interfaţă cu procesul. Tot în această fază se face o analiză
preliminară a performanţelor cerute sistemului şi a măsurilor speciale care se iau în
vedere la obţinerea acestora.
⮚ proiectarea programului, care constă într-o descriere schematică a operaţiilor pe
care sistemul de calcul trebuie să le execute pentru a rezolva sarcinile impuse; ⮚
scrierea limbajului sursa în limbaj de asamblare sau într-un limbaj de programare
superior;
⮚ asamblarea programului – fază executată automat şi care are drept rezultat
obţinerea programului în cod maşină;
⮚ testarea programului – este o fază care are drept scop asigurarea că programul
execută corect sarcinile care i-au fost impuse. Ciclul de scriere, asamblare si
testare se parcurge de obicei de mai multe ori până la obţinerea unui program n
cod maşină care să funcţioneze corect. În această etapă se pot utiliza software-uri
grafice, dedicate, pentru simularea corectă a funcţionarii.
În final trebuie verificat dacă programul scris satisface cerinţele impuse prin tema de
proiectare. Se verifică, în această etapă, îndeosebi viteza de răspuns a sistemului. Dacă sistemul
nu corespunde, în anumite condiţii, cerinţelor impuse, se încearcă optimizarea sistemului. Dacă
nici aşa nu se obţin condiţiile dorite, se reia analiza sistemului şi se determină ce sarcini ale
sistemului în logică programată pot fi relativ uşor rezolvat în logică cablată.

4.1.4. Implementarea circuitului cu microcontroler în schema sistemică

O altă rezolvare a aplicaţiei prezentate în subcapitolul 3.1 se poate aborda apelând la o


soluţie de comandă logică şi de control cu microcontroler ce utilizează un sistem
microprogramabil aparţinând companiei americane Cypress MicroSystems.
În fig.3.4. se prezintă explicit conexiunile de intrare-ieşire, proiectate, la sistemul cu
microcontroler de tip CY3C29466 din familia de Cypress, la care intrările de date TTL sunt
marcate şi ieşirile logice sunt conectate la porturile dedicate ale microcontrolerului. Pentru a
păstra aceeaşi logică, adoptată şi la construcţia schemei sistemice, driverele considerate ca intrări
ale sistemului s-au amplasat în partea stângă a sistemului microprogramabil, iar driverele
considerate ieşiri în parte dreaptă. De menţionat însă că datorită faptului că microcontrolerul din
familia Cypress este foarte versatil si permite alegerea porturilor de intrare / ieşire după cum
doreşte utilizatorul, din cei 28 de pini – 24 dintre aceştia pot fi utilizaţi ca porturi de intrare/ieşire.
VDD
P
1 VDD(5V)
Cypress Vdd M
P0[7] L_Pornire
28
MicroSystems
2 27 R
8

O P2[0] R L_Umin
3 4 5 6 7 8 P0[4]
6

K1
9 P0[2] 26 25 24 23 L_PermiteP
K2 6

P0[5] P0[3] 22 21 20 19 ornire.K1


P0[0]
P0[1] P2[7] 4
L_BlocareP
P2[5] P2[3] P2[6]
9

ornire.K1
R
P2[1] 2

L_temporiza
P2[4]
P0[6] R
P2[2] re.K2
Rss C

R C
Rrt 11 P1[1] P1[2] R
P1[5] 18 17 16
P1[6]
12
Y

L_Rss
RUmin P1[3] R
Rse 10 13 C P1[4] L_Rse L_Rt
P1[7] R
14 Vss 15
P1[0]
PSoC

Fig.4.3 Schema explicită de interfaţare TTL a microcontrolerului

Porturile de ieşire ale microcontrolerului comandă fie led-uri de semnalizare optică, fie
bobina unui microreleu. Activarea ori cărei sarcini de pe un port de ieşire se face cu semnal 1
logic la portul corespunzător.
4.1.2 Comanda numerică a sistemului de acţionare electromecanică propus

Se va evidenţia in continuare flexibilitatea cu care se poate programa un microcontroler


de tip Cypress, numit prescurtat PSoC – (Programmable System on Chip) „Sistem Programabil
pe Chip”. Programarea microcontrolerului se realizează prin intermediul software-ului PSoC
Designer 5.0 (Integrated Development Environment for Cypress MicroSystems' Programmable
System-on-Chip technology) şi este utilizat ca interfaţă in vederea configurării şi programării din
punct de vedere al sistemului analogic, respectiv al sistemului digital al PSoC, []. Resursele celor
două tipuri de sisteme integrat in microcontroler sunt:

Tot ce trebuie este o idee pentru a putea


IDEEA

PROIECTARE
SALVARE Salvarea proiectului în mod frecvent
PROIECT

Simularea și testarea modului în


SIMULARE care a fost gândit proiectul
începe programarea
microcontrolerului in PSOC Designer
DA
Amplasarea componentelor grafice
prin metoda Drag and Drop
NU
PERSONALIZARE COD
Funcţionare
corespunzătoare?
R
Construire
Proiect Atribuire
PROGRAMARE Pini
MICROCONTROLE

Fig.4.4 Algoritmul de proiectare utilizând microcontrolerul Cypress

Pentru a putea dezvolta un proiect, utilizând un microcontroler de tip Cypress programat


cu ajutorul software-ului dedicat PSoC Designer 5.0, trebuie identificate componentele grafice
puse la dispoziţia utilizatorului şi anume:

INTRARE – Acest simbol toate intrările disponibile în programul grafic


PSoC Designer

IEŞIRE – Acest simbol defineşte toate ieşirile disponibile în programul


grafic PSoC Designer
VALUATOR – Acest simbol defineşte variabilele locale şi analiza de
expresii, tabele de adevăr şi funcţiile de stare ale componentelor din PSoC
Designer

INTERFATĂ – Acest simbol defineşte interfaţa cu comunicaţiile exterioare


Programul grafic pune la dispoziţia utilizatorului interfeţele grafice prezentate mai sus, însă
pentru a dezvolta o aplicaţie trebuie parcurşi, secvenţial, trei paşi esenţiali şi anume:

Pasul 1

SELECTARE INTRĂRI ȘI IEȘIRI


Pasul 2
DEFINIRE A
COMPORTAMENTULUI
IEȘIRILOR FUNCȚIE DE
INTRĂRI

Pasul 3

SIMULARE SI VERIFICARE PE
CALCULATOR

PSoC Designer utilizează aceleaşi expresii logice acceptate de limbajul de programare C.


Să presupunem acum că dorim să verificăm validitatea unor date de intrare şi apoi să facem un
calcul sau să afişăm un mesaj de eroare, dar să nu le facem pe amândouă. Pentru aceasta va trebui
să punem o întrebare şi, bazându-ne pe răspuns, să alegem una sau alta dintre variantele de
evoluţie a programului.
Tabelul 1 Sintaxe utilizate în programul PSoC Designer
OPERATOR EXPRESIE DEFINIŢIE

>> TRANSFER UN BIT LA DREAPTA Deplasează toţi biţii la dreapta cu un bit

<< TRANSFER UN BIT LA STÂNGA Deplasează toţi biţii la stânga cu un bit

&& SI LOGIC ADEVĂRAT dacă ambii operanzi sunt


adevăraţi

|| SAU LOGIC ADEVĂRAT dacă cel puţin unul dintre


operanzi este adevărat

<= MAI MIC SAU EGAL ADEVĂRAT daca operandul din stânga
este mai mic sau egal decât operandul
din dreapta

>= MAI MARE SAU EGAL ADEVĂRAT daca operandul din stânga
este mai mare sau egal decât operandul
din dreapta

!= TESTE DE INEGALITATE ADEVĂRAT dacă operanzii nu sunt egali

( PARANTEZĂ LA STÂNGA Închide partea din stânga a unei ecuaţii

) PARANTEZĂ LA DREAPTA Închide partea din dreapta a unei ecuaţii

!Valoare NU LOGIC ADEVĂRAT dacă Valoare este egală cu


zero, altfel FALS
- MINUS Scade operandul din dreapta din cel din
stânga

+ PLUS Adună operandului din stânga valoare


operandului din dreapta

* ÎNMULŢIRE Înmulţeşte operandul din stânga cu cel


din dreapta

/ ÎMPĂRŢIRE Împarte operandul din stânga cu cel din


dreapta

% DIVIZIUNE MODULO Egal cu Restul împărţirii valorii din


dreapta la valoarea din stânga

< MAI MIC ADEVĂRAT dac valoarea din stânga este


mai mică decât valoarea din dreapta

> MAI MARE ADEVĂRAT dac valoarea din stânga este


mai mare decât valoarea din dreapta

& SI LA NIVEL DE BIT 1 daca ambele valori din stânga şi


dreapta sunt 1

~Valoare NU LA NIVEL DE BIT 1 daca Valoare este 0

^ XOR LA NIVEL DE BIT 1 daca valoarea din stânga şi din dreapta


sunt 1, dar nu ambele, altfel 0

== EGALITATE 1 daca valoarea din stânga este egală cu


valoarea din dreapta

| OR LA NIVEL DE BIT 1, dacă 1 în stânga, dreapta sau ambele

Pentru a pune o întrebare în C++, facem o presupunere care poate fi adevărată sau falsă.
Calculatorul evaluează presupunerea pentru a constata dacă este adevărată sau falsă. În C++
presupunerile iau forma expresiilor logice sau booleene. O astfel de expresie este alcătuită din valori
logice şi operaţii. Aceste funcţii ale unităţii logice se aleg cu ajutorul instrucţiunilor prezentate în
tabelul 1.

4.1.4. Programarea microcontrolerului din schema sistemică

Utilizarea logicii programate constituie o modalitate calitativ superioară de realizare a


echipamentelor electrice de comandă şi protecţie destinate atmosferei potenţial explozive. Se
asigură o flexibilitate deosebită a dispozitivelor de comandă şi protecţie permiţând modificări şi
dezvoltări ulterioare. Dacă în cazul logicii programate, utilizate în realizarea echipamentelor de
comandă şi protecţie actuale, orice modificare în funcţionarea echipamentului de comandă şi
protecţie implică realizarea unui cablaj nou, unor legături noi între elemente în cazul
echipamentelor cu logică programabilă modificarea constă în simpla înscriere a unor alte valori
în memoria program a microcontrolerului (microprocesorului).
Fig.4.5 Interfaţa grafică a bibliotecii de dispozitive prevăzute în software-ul PSoC Designer 5

Se realizează astfel economii însemnate de timp şi manoperă, totodată aceste facilităţi ale
utilizării echipamentelor cu logică programabilă permit tipizarea echipamentelor de intrare/ieşire
şi a unităţii centrale, personalizarea unui anumit dispozitiv de comandă făcându-se prin
programul implementat. Ciclul clasic schemă electrică – realizare cablaj (interconectarea
elementelor) – verificarea funcţionării – refacerea schemei etc., se modifică existând posibilitatea
realizării „în paralel” a punerii la punct a programelor pe un echipament de programare cu
execuţia electrică şi mecanică uzual cu elemente tipizate, a părţii electronice: unitatea centrală,
sursă de alimentare şi intrări, ieşiri într-un număr corespunzător aplicaţiei. Toate eventualele
modificări la punerea în funcţiune a instalaţiei se fac prin echipamentul de programare fără a
afecta cablajul realizat. Eficienţa activităţii de proiectare – implementare creşte considerabil.
Echipamentul de comandă şi protecţie cu microcontroler se remarcă prin reducerea numărului de
componente (datorită utilizării unor circuite integrate conţinute în arhitectura
microcontrolerului), creşterea fiabilităţii (numărul redus de componente externe
microcontrolerului conduce la o uzură electrică şi mecanică) şi reducerea importantă a
consumului de energie electrică. Există posibilitatea utilizării unor programe de autotestare ceea
ce uşurează activitatea de întreţinere şi de service. Datorită executării secvenţiale a operaţiilor,
există situaţii în special în cazul comenzilor rapide cum este cazul comenzii de decuplare la
scurtcircuit în care timpul de răspuns al releelor cu logică programată nu este satisfăcător şi se
impune utilizarea acestora în combinaţie cu logica electronică cablată[].
În figura 4.5 este prezentată interfaţa grafică a bibliotecii de dispozitive prevăzute în
software-ul PSoC Designer 5. Pentru a dezvolta aplicaţia propusă trebuie urmărită cu atenţie
schema sistemică concepută pentru a identifica, componentele care trebuie alese din biblioteca
programului grafic.

Lisa dispozitivelor ce urmează a fi alese pentru dezvoltarea aplicaţiei:


Nr.crt. Dispozitiv Librărie drivere/Mod de alegere

1 Buton pornire - P INTRARE / Tactile/Button/Normally Open/Internal Pullup N_O

2 Contact pornire - K1 INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O

3 Contact INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O


Temporizare - K2

4 Contact Releu INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O


Suprasarcină - Rss

5 Contact Releu INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O


scurtcircuit - Rsc

6 Contact releu INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O


tens. min. -
RUmin

7 Contact releul INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O


temperatură - Rt

8 Buton oprire - O INTRARE / Tactile/Button/Normally Closed/Internal Pullup N_O

9 Led Pornire IEŞIRE/Display/LED/Single Color/On/Off

10 Led Temporizare IEŞIRE/Display/LED/Single Color/On/Off

11 Led Rsc IEŞIRE/Display/LED/Single Color/On/Off

12 Led Rss IEŞIRE/Display/LED/Single Color/On/Off

13 Led Rt IEŞIRE/Display/LED/Single Color/On/Off

14 Led RUmin IEŞIRE/Display/LED/Single Color/On/Off

15 Led Blocare Pornire IEŞIRE/Display/LED/Single Color/On/Off

16 Led Permite Pornire IEŞIRE/Display/LED/Single Color/On/Off

După alegerea dispozitivelor din biblioteca de drivere ale programului grafic se va obţine,
pentru aplicaţia data, o interfaţă grafica similară celei prezentate în figura 4.5 Pornind de la
schema electrică de acţionare propusă, s-a construit o aplicaţie grafică, în vederea programării
microcontrolerului în conformitate cu algoritmul logic construit. Aplicaţia grafică emulează
driverele de intrare – ieşire ale sistemului de acţionare real şi a fost împărţită sugestiv în
următoarele subdiviziuni:
⮚ Pornire autorizată care cuprinde următoarele drivere de intrare – ieşire: ✔ contactul K1 de
blocaj, care restricţionează accesul la circuitul de comandă al acţionării
✔ LED BlocarePornire, care semnalizeze optic corespunzător motivul de refuz al
pornirii;
✔ LED PermitePornire, care semnalizeze optic corespunzător motivul de accept al
pornirii;
Fig.4.6 Interfaţa grafică a circuitului de comandă, control şi protecţie (1)

⮚ Comandă care cuprinde următoarele drivere de intrare:


Butonul de pornire P, care permite pornirea motorului M numai dacă sunt
îndeplinite în totalitate condiţiile de pornire impuse de către sistemele de protecţii
specifice sistemului;
Butonul de oprire I, care permite oprirea motorului M şi totodată să permită
cicluri succesive de pornire-oprire a motorului M
⮚ Bloc de temporizare care cuprinde următoarele drivere de intrare:
Contactul K2, prin care se stabileşte dacă pornirea motorului va fi fără sau cu
temporizarea programata T;
Temporizator Temp, prin care se generează intervale de timp utilizate la setarea
temporizării T;
⮚ Protecţii care cuprinde următoarele drivere de intrare:
Contact Rsc, care corespunde subsistemului de protecţie pentru controlul maximal
în regim de scurtcircuit;
Contact Rss, care corespunde subsistemului de protecţie pentru controlul în regim
de suprasarcina;
Contact Rt, care corespunde subsistemului de protecţie pentru controlul efectiv al
temperaturii din înfăşurările motorului M;
Contact RUmin, care corespunde subsistemului de protecţie pentru controlul
minimal al tensiunii electrice.
⮚ Semnalizări care cuprinde următoarele drivere de ieşire:
✔ LED L_Rsc, care semnalizează optic motivul de decuplare instantanee cauzată de
regimul de scurtcircuit;
✔ LED L_Rss, care semnalizează optic motivul de decuplare instantanee cauzată de
regimul de suprasarcina;
✔ LED L_Rt, care semnalizează optic motivul de decuplare instantanee cauzată de
supratemperatura din înfăşurările motorului M;
✔ LED L_RUmin, care semnalizează optic motivul de decuplare instantanee cauzată
de scăderea tensiunii electrice sub pragul de referinţă limită admis;
✔ LED L_Pornire, care semnalizează optic pornirea motorului daca toate condiţiile
de pornire sunt îndeplinite;
✔ LED L_Temporizare, care semnalizează optic faptul că pornirea motorului s-a
realizat cu temporizarea de pornire dT propusă.
⮚ Funcţii de transfer care cuprinde următoarele drivere corespondenţă între intrări şi ieşiri:
✔ Funcţia de transfer FcTransfer_1;
✔ Funcţia de transfer FcTransfer_2;
✔ Funcţia de transfer FcTIMP.

b)
c)
a)
Fig.4.7 Sinteza logica a evaluatorului FcTransfer_1

În figura 4.7,a este prezentată interfaţa grafică în care s-a sintetizat funcţia de evaluare, de
tip Table Lookup, corespunzătoare intrărilor P, K1, Rss, Rsc, RUmin, Rt. Funcţia de evaluare este
elementul care leagă intrările logice de ieşirile de control. Funcţiile de evaluare reprezintă esenţă
o metodă eficientă de analiză a expresiilor, de evaluare a priorităţilor, de identificare a tipului de
ieşiri şi de administrare a stărilor logice. Pentru sintetizarea funcţiei de evaluare FcTransfer_1 sau
ales intrările prezentate mai sus, prin apăsarea butonului ”Set Inputs”, utilizând interfaţa din fig.
4.7,b. După alegerea intrărilor se apasă Next şi pe ecran va apărea un interfaţa grafică ”Add
Values”, care permite programatorului altor valori logice a ieşirii obiect. În cazul de faţă avem
nevoie de două stări ale funcţiei de evaluare, valori care există implicit si anume ON căruia îi
corespunde valoarea 1 logic, respectiv OFF căruia îi corespunde valoarea 0 logic. Tabelul Table
Lookup este ultima etapă care face corelaţia dintre butoanele/contactele de intrare şi ieşire, în
cazul de faţă funcţia de evaluare.
Tabelul 2 Tabelul de adevăr al funcţiei de evaluare ”FcTransfer_1”
(RUm 0
Intrare 1 Intrare 2
(Rt) (Rss) 0 0

0 0 0 Intrare 5 Intrare 6
(P) (K1)
0 0
0 0

0
0 0
Intrar
0 0
1 FcTransf_1 0
0
0

0 0
1
Ieşire

01
.
0 0 0 1 1
1 1

1 0 1
0

1 0 1
0

. 1 1 1
.

În tabelul 2 este prezentată tabela de adevăr a funcţiei de evaluare ”FcTransfer_1”, în


care după cum se vede avem 6 intrări cu toate combinaţiile posibile. Pentru cazul aplicaţiei
noastre tabela de adevăr se exemplifică astfel: FcTransfer_1 a fost creată pentru a sintetiza
combinaţiile posibile ale intrărilor alese si anume aceasta trebuie sa aibă valoarea 1 logic
(Adevărat) nu mai in cazul în care contactul K1 este închis (1L) şi butonul de pornire P este
apăsat (1L), respectiv protecţiile motorului nu trebuie să fie active. Tabelul nu a fost prezentat în
totalitate, liniile intermediare fiind evidente, ci s-a pus accent pe linia 4 a acestuia (linia îngroşată)
deoarece aceste combinaţii ale intrărilor trebuie sa activeze funcţia de evaluare FcTransfer_1.

Fig.4.8 Sinteza logica a funcţiei de transfer corespunzătoare condiţiei de ”pornire autorizată”

Pentru subdiviziunea de Pornire autorizată care cuprinde contactul K1 de blocaj, LED-ul


BlocarePornire, respectiv LED-ul PermitePornire, se utilizează tot o funcţie de transfer de tip
Table Lookup. Tot ce trebuie realizat în cazul de faţă este alegerea ca intrare a contactului K1
precum în figura 4.8. În partea din stânga a figurii este prezentată interfaţa grafică a funcţiei de
transfer corespunzătoare comenzii de permitere a pornirii motorului. Astfel, se amplasează o
stare a intrării (din partea stângă a interfeţei) la o stare corespunzătoare a ieşirii (din partea
dreaptă a interfeţei), prin metoda ”drag and drop”. În cazul nostru dorim ca atunci când contactul
K1 este închis (ON) să se aprindă ledul corespunzător permiterii efectuării comenzii. Pentru
cazul în care contactul nu este apăsat ledul rămâne stins. În mod similar se face si pentru
comanda de BlocarePornire, doar ca de această data ledul se aprinde când contactul nu este
închis. Pentru a permite comanda de pornire se poate utiliza un led de culoare verde, care să
indice faptul că s-a permis comanda, iar pentru comanda de blocare a pornirii se poate utiliza un
led de culoare roşie, care să indice faptul că o posibilă comandă de pornire este blocată.
După ce s-a finalizat procesul de amplasare a stărilor ON/OFF se pasă OK şi se revine la
proiectul iniţial, putându-se observa o linie roşie de conexiune între driverul de intrare şi ce de
ieşire, precum în figura4.6.
Pentru a sintetiza temporizarea la pornire a motorului s-a utilizat o funcţie de evaluare
FC_TIMP, de tip Priority Encoder. O astfel de funcţie de evaluare evaluează din punct de vedere
logic dacă valoare de intrare este ”Adevărată” începând cu prima expresie a funcţiei grafice. În
interfaţa grafică se pot adăuga până la 63 de expresii logice. Utilizând această o funcţie de
evaluare starea logică a elementului de ieşire depinde de condiţiile de intrare introduse.
Expresiile introduse aparţin limbajului de programare C şi sunt de tipul if-then-else-if-then.
Pentru situaţia în care se stabileşte că pornirea motorului se va realiza cu temporizarea
programata T, s-a ales un element de intrare de tip Interval Generator. Utilizând acest element se
generează temporizări programate, iar pentru aplicaţia descrisă s-a ales o temporizare de 1000ms.

Fig.4.9 Sinteza logica a evaluatorului FC_TIMP

În figura 4.9 este prezentată detaliat interfaţa grafică a evaluatorului TC_TIMP, utilizat la
stabilirea temporizării le pornire, în care expresiile de tip Boole utilizate au următoare
semnificaţie: dacă generatorul de interval este declanşat atunci evaluatorul va incrementa câte o
secundă (1000ms).
Evaluatorul FcTransfer_2, utilizează ca intrare contactul K2, care atunci când este închis
pornirea motorului se realizează direct, fără temporizare.

Fig.4.9 Sinteza logica a evaluatorului FcTransfer_2


Dacă comutatorul K2 este închis atunci pornirea motorului trebuie să se realizeze direct
(FcTransfer_2__LipsaTemp), iar dacă comutatorul K2 este deschis atunci evaluatorul TC_TIMP
va incrementa câte o secundă. Deoarece generatorul de interval a fost programat la 1000ms
FC_TIMP va incrementa o singură dată şi astfel se va atinge T = 2s, durata temporizării dorite.
De menţionat că in condiţii reale de funcţionare temporizarea la pornire este cuprinsa, în general,
între 5 – 10 s. În această situaţie condiţia a doua din figura 4.9 va devenii:

If (K2 == K2__Off) && (FC_TIMP > 10) then FcTransfer_2 = FcTransfer__Temp

Pentru expresia de mai sus s-a utilizat un ŞI logic a cărui valoare este adevărată dacă
ambii operanzi sunt adevăraţi, adică evaluatorul FcTransfer_2 va fi adevărat dacă vom avea
contactul K2 deschis şi după scurgerea timpului programat de temporizare.

Fig.4.10 Sinteza logica a funcţiei de transfer corespunzătoare pornirii motorului

Semnalizările optice sunt realizate cu led-uri şi anume: LED L_Rsc, LED L_Rss, LED
L_Rt, LED L_RUmin, LED L_Pornire, LED L_Temporizare. Pentru ca fiecare din aceste
semnalizări să funcţioneze precum a fost impus prin condiţiile iniţiale s-a utilizat funcţii de
transfer de tip Table Lookup, similare cu cele utilizate în cazul subdiviziunii de ”pornire
autorizată”. Interfeţele grafice ale funcţiilor de transfer sunt identice cu cele prezentate în figura
4.8. Fiecare dintre aceste semnalizări corespunde unui anumit tip de avarie ceea ce însemna că in
interfaţa logică se va alege individual pentru fiecare tip de intrare-ieşire.
Funcţia care integrează toate celelalte subsisteme de evaluare este funcţia de transfer
Pornire, care utilizează un evaluator de tip Priority Encoder. În figura 4.10 este prezentată
interfaţa logică a evaluatorului, în care sunt consideraţi operatori de intrare funcţiile logice
FcTransfer_1, FcTransfer_2, respectiv butonul de oprire O.
Tabela de adevăr a funcţiei de transfer corespunzătoare pornirii motorului este prezentată
în tabelul 3. Conform acestui tabel de adevăr motorul trebuie să pornească dacă: ⮚ sunt
îndeplinite condiţiile de pornire – butonul de pornire autorizată K1 închis, butonul de pornire
apăsat şi în sistem să nu existe nici o avarie – ceea ce corespunde la faptul că funcţia
FCTransfer_1 este adevărată (1L)
⮚ este îndeplinită condiţia de interogare a contactului K2 prin care se stabileşte dacă pornirea
motorului va fi fără sau cu temporizarea programata T; Dacă este programată
temporizarea T la pornire, se semnalizează optic, prin portul corespunzător, pe toată
durata temporizării;
⮚ este îndeplinită condiţia de interogare a butonului de oprire O prin care se stabileşte că
trebuie să existe posibilitatea ca în orice moment motorul să poată fi oprit.
Tabelul 3 Tabelul de adevăr al funcţiei de transfer ”Pornire”
0
Intrare 1
(FcTransfer_1)

1
1

1 1 0
1

1 1
Intrare 2 0 0
(FcTransfer_2)
0 1

1 0
0

110
0

Deoarece în figura 4.10 nu au putut fi exemplificate toate expresiile logice, acestea sunt
prezentate explicit în figura 4.11. Această reprezentare este echivalentul expresiilor în limbajul de
programare C al tabelului 3.

Fig.4.11 Expresiile logice corespunzătoare pornirii motorului

După proiectarea grafică şi scrierea unor expresii logice clasice se trece la simularea
proiectului dezvoltat. Pentru aceasta se va folosii simulatorul cu care este prevăzut software-ul de
programare a microcontrolerului – PsoCDesigner5.0, cu ajutorul căruia se verifică dacă logica
din condiţiile iniţiale a fost corect exprimată în programarea grafică. Înainte de trecere la etapa de
simulare trebuie salvat proiectul etapa aceasta fiind prezentată şi în algoritmul din figura 4.4.
La intrarea în modul de simulare se observă că pe ecran va apărea o interfaţă similară celeia în
care sa realizat proiectul, cu excepţia faptului că lângă fiecare componentă de intrare/ieşire se
găseşte câte o căsuţă în care apare poziţia curentă a fiecărui element ales.
Fig.4.12 Simularea funcţionării sistemului de comandă numerică dezvoltat

În interfaţa grafică din figura 4.12 s-a simulat subdiviziunea de pornire autorizată, iar
pentru componenta de intrare K1 utilizând butonul din stânga al Mouse-ului se oferă posibilitatea
schimbării valorii componentei de intrare On sau Off (Buton apăsat Buton relaxat). Se observă că
în cazul în care contactul K1 este deschis se va aprinde ledul care indică blocarea comenzii de
pornire.

Fig.4.13 Simularea funcţionării sistemului de comandă numerică dezvoltat

În figura 4.13 s-a simulat pornirea motorului, caz în care contactul de pornire autorizată
K1 este închis, semnalizându-se optic prin ledul PermitePornire acest lucru, butonul de pornire P
este apăsat, nu există nici un fel de avarie în circuitul electric controlat, butonul de oprire O este
deschis, respectiv contactul de temporizare K1 este apăsat, deci pornirea are loc fără temporizare.
Fig.4.14 Simularea funcţionării sistemului de comandă numerică dezvoltat

În acest caz se semnalizează pornirea motorului prin intermediul Led-ului Pornire,


respectiv ledul L_Temporizare indică faptul ca pornirea a avut loc fără temporizare.

Fig.4.15 Simularea funcţionării sistemului de comandă numerică dezvoltat

În figura 4.14 s-a simulat pornirea motorului după intervalul programat de timp, în cazul
nostru 2 secunde. Se poate observa că FC_TIMP a ajuns la 3 secunde caz în care motorul a
primit deja comanda de pornire. În figura 4.15 s-a simulat cazul în care avem prezente avarii în
circuitul electric controlat, caz în care se observă că toate avariile apărute în sistem sunt
semnalizate corespunzător, iar tensiunea a fost decuplată instantaneu deoarece ieşirea Pornire este
OFF
Fig.4.16 Selectarea dispozitivului microprogramabil
După ce proiectul a fost simulat se trece la programarea efectivă a microcontrolerului, iar
pentru asta trebuie ale tipul de microcontroler, iar în figura 4.16 este prezentată interfaţa grafică
de alegere a familiei de microcontroler. În partea dreaptă a acestei interfeţe grafice sunt date
caracteristicile fiecărui tip de microcontroler. Pentru cazul nostru am ales un microcontroler cu
28 de pini seria CY8C29466.

Fig.4.17 Selectarea pinilor microcontrolerului


După alegerea tipului de microcontroler se apasă Next şi se ajunge la interfaţa prezentată
în figura 4.17 în care i se permite programatorului să aşeze componentele de intrare/ieşire la
oricare din pinii microcontrolerului. Se observă ca în momentul când este selectat un pin locaţiile
unde acesta ar putea fi amplasat sunt identificabile prin culoarea verde. După particularizarea
pinilor microcontrolerului se apasă Next, iar programul PSoCDesigner 5.0 va realiza
programarea automată a microcontrolerului fără să mai fie nevoie să scriem alte linii de
programare.
După compilarea programului se va genera automat codul C++:
#include <m8c.h> // part specific constants and macros #include
"PSoCAPI.h" // PSoC API definitions for all User Modules

#include "driverdecl.h"
#include "CMXSystem.h"
#include "CMXSystemExtern.h"
#include "TransferFunction.h"

#include "cmx.h"
#include "ProjectProperties.h"
#include "Custom.h"
// Channel includes

void main( void )


{
// Initialize Project
M8C_EnableGInt; // Turn on interrupts SystemTimer_Start();
SystemTimer_SetInterval(SystemTimer_64_HZ);
SystemTimer_EnableInt();

// Initialize Channels

I2C_CFG &= 0xFC; // Disable I2C in case it's not used.

// Initialize Variables
SystemVars.ReadOnlyVars.pse_BocarePornire = 0;
SystemVars.ReadOnlyVars.pse_FC_TIMP = 0;
SystemVars.ReadOnlyVars.pse_FcTransfer_1 = 0;
SystemVars.ReadOnlyVars.pse_FcTransfer_2 = 0;
SystemVars.ReadOnlyVars.pse_K1 = 0;
SystemVars.ReadOnlyVars.pse_K2 = 0;
SystemVars.ReadOnlyVars.pse_L_Rsc = 0;
SystemVars.ReadOnlyVars.pse_L_Rss = 0;
SystemVars.ReadOnlyVars.pse_L_Rt = 0;
SystemVars.ReadOnlyVars.pse_O = 0;
SystemVars.ReadOnlyVars.pse_P = 0;
SystemVars.ReadOnlyVars.pse_PermitePornire = 0;
SystemVars.ReadOnlyVars.pse_Pornire = 0;
SystemVars.ReadOnlyVars.pse_Rsc = 0;
SystemVars.ReadOnlyVars.pse_Rss = 0;
SystemVars.ReadOnlyVars.pse_Rt = 0;
SystemVars.ReadOnlyVars.pse_Temp = 0;

// Driver instantiations
CMX_GSWITCH_Instantiate(&pse_K1);
CMX_GSWITCH_Instantiate(&pse_O);
CMX_DIO_Instantiate(&pse_PermitePornire);
CMX_DIO_SetValue(&pse_PermitePornire,
(BYTE)SystemVars.ReadOnlyVars.pse_PermitePornire);
CMX_GSWITCH_Instantiate(&pse_P);
CMX_DIO_Instantiate(&pse_BocarePornire);
CMX_DIO_SetValue(&pse_BocarePornire,
(BYTE)SystemVars.ReadOnlyVars.pse_BocarePornire);
CMX_DIO_Instantiate(&pse_L_Rsc);
CMX_DIO_SetValue(&pse_L_Rsc, (BYTE)SystemVars.ReadOnlyVars.pse_L_Rsc);
CMX_GSWITCH_Instantiate(&pse_Rt);
CMX_DIO_Instantiate(&pse_L_Rss);
CMX_DIO_SetValue(&pse_L_Rss, (BYTE)SystemVars.ReadOnlyVars.pse_L_Rss);
CMX_GSWITCH_Instantiate(&pse_Rss);
CMX_DIO_Instantiate(&pse_L_Rt);
CMX_DIO_SetValue(&pse_L_Rt, (BYTE)SystemVars.ReadOnlyVars.pse_L_Rt);
CMX_GSWITCH_Instantiate(&pse_Rsc);
CMX_DIO_Instantiate(&pse_Pornire);
CMX_DIO_SetValue(&pse_Pornire, (BYTE)SystemVars.ReadOnlyVars.pse_Pornire);
CMX_GSWITCH_Instantiate(&pse_K2);
CMX_INTERVAL_Instantiate(&pse_Temp);

// Custom initization code.


CustomInit();
// End Initialize Project

while(1)
{
// Sync loop sample rate
#if ( SAMPLE_DIVIDER )
SystemTimer_SyncWait(SAMPLE_DIVIDER, SystemTimer_WAIT_RELOAD); #endif
// update input variables
SystemVars.ReadOnlyVars.pse_K1 = CMX_GSWITCH_GetValue(&pse_K1);
SystemVars.ReadOnlyVars.pse_K2 = CMX_GSWITCH_GetValue(&pse_K2);
SystemVars.ReadOnlyVars.pse_O = CMX_GSWITCH_GetValue(&pse_O);
SystemVars.ReadOnlyVars.pse_P = CMX_GSWITCH_GetValue(&pse_P);
SystemVars.ReadOnlyVars.pse_Rsc = CMX_GSWITCH_GetValue(&pse_Rsc);
SystemVars.ReadOnlyVars.pse_Rss = CMX_GSWITCH_GetValue(&pse_Rss);
SystemVars.ReadOnlyVars.pse_Rt = CMX_GSWITCH_GetValue(&pse_Rt);
SystemVars.ReadOnlyVars.pse_Temp =
CMX_INTERVAL_GetValue(&pse_Temp);

// Custom Post Input function


CustomPostInputUpdate();

// run transfer function and update output variables


TransferFunction();

// CustomPreOutputUpdate();
CustomPreOutputUpdate();

// set outputs
CMX_DIO_SetValue(&pse_BocarePornire,
(BYTE)SystemVars.ReadOnlyVars.pse_BocarePornire);
CMX_DIO_SetValue(&pse_L_Rsc,
(BYTE)SystemVars.ReadOnlyVars.pse_L_Rsc);
CMX_DIO_SetValue(&pse_L_Rss,
(BYTE)SystemVars.ReadOnlyVars.pse_L_Rss);
CMX_DIO_SetValue(&pse_L_Rt,
(BYTE)SystemVars.ReadOnlyVars.pse_L_Rt);
CMX_DIO_SetValue(&pse_PermitePornire,
(BYTE)SystemVars.ReadOnlyVars.pse_PermitePornire);
CMX_DIO_SetValue(&pse_Pornire,
(BYTE)SystemVars.ReadOnlyVars.pse_Pornire);

}
}
5. IMPLEMENTAREA UNUI AUTOMAT PROGRAMABIL ÎN SCHEMA
SISTEMICĂ ÎN SCHEMA SISTEMICĂ

Informatii generale asupra software-ului EASY-SOFT

Proiectarea grafică a aplicaţiei propuse se face utilizând software -ul EASY SOFT 6.10,
ce este oferit gratuit ca utilitar de către furnizorul de echipamente MOELLER, ce permite atât
simularea cât şi vizualizarea aplicaţiei. EASY-SOFT este un program pentru PC-uri care permite
crearea, salvarea, simularea, documentarea şi transferul facil al schemelor (diagramelor)
proiectate înspre un sistem funcţional ales de către proiectant. De asemenea oferă on-line un
display al circuitului în funcţiune precum şi un display al tuturor funcţiilor asociate ale
parametrilor de tip releu. Facilităţile programului permit formate de vizualizare, editare şi tipărire
ale programelor de tip SPECIFIC, IEC -în acord cu standardele internaţionale sau ANSI -în
acord cu standardele Americane. Câteva meniuri ale programului de proiectare amintit simplifică
mult activitatea de proiectare a aplicaţiei. Activitatea de proiectare grafică a circuitului funcţional
poate fi ceată doar prin selecţia contactelor, bobinelor, releelor funcţionale sau ale blocurilor
funcţionale din fereastra Toolbox şi aducerea lor în fereastra Circuit Diagram, prin procedura
cunoscută drag and drop. Mouse-ul poate fi utilizat pentru realizarea conexiunilor dintre
diferitele componente din schemă, dacă conexiunile nu sunt trasate automat. Diagrama
circuitului poate fi introdusă prin comenzi ale tastaturii, simplificând astfel proiectarea de pe un
laptop. Adnotări pot fi făcute pe contacte şi bobine pentru o mai bună identificare a
componentelor. Un listing al componentelor alese, al coordonatelor şi conexiunilior lor, împreună
cu comentariile conexe, poate fi printat pentru a realiza o documentaţie a proiectului conceput.
Acest instrument virtual de simulare permite testarea schemelor proiectate făra ca dispozitivul să
fie conectat. Programul proiectat poate fi testat în întregime sau pe secţiuni şi utilizează intrări,
ieşiri, break points şi facilităţi de afişare pentru a ajuta în faza de simulare.
Diagrama (schema proiectată) testată poate fi transferată dispozitivului automat
programabil prin intermediul unui cablu conectat între acesta şi calculatorul PC. Dispozitivele
EASY400 500 600 700 sunt automate programabile cu funcţia de relee de control electronic,
dotate cu funcţii logice, cu temporizatoare, cu numărătoare şi comutatoare temporizate, ce pot fi
interfaţate drept dispozitive de intrare. Spre deosebire de seria precedentă, dispozitivele EASY
800 oferă funcţii suplimentare de tip aritmetice şi permit un conexiuni pe reţele de Internet. Prin
conexiuni de internet se permite conectarea împreună a maximum 8 dispozitive de tip releu într
un sistem integrat de control.. Controlerele de tip Easy 800 permit implementarea sistemelor de
mare viteză şi distribuţia funcţiunilor pentru fiecare staţie de procesare pe reţeaua NET.
Dispozitivele MFD Titan sunt realizate in totalitate cu procesoarele Easy. Un dispozitiv
MFD oferă aceleaşi funcţii de control ca şi cele de tip Easy 800, dar au capabilitatea de a afişa
informaţii pe un display grafic propriu şipermit ca atare intervenţii în proces asupra variabilelor
de intrare.
Cu dispozitivele Easy se pot sintetiya diagrame de circuite logice în tehnica ladder.. Acest
lucru se poate realiza utilizând direct butoanele aferente şi display ul dispozitivului sau prin
utilizarea unui calculator PC şi a soft ului EASY-SOFT, care permite nu numai sinteza
aplicaţiilor ci şi testarea acestora. Informaţiile în legătură cu diagramele pot fi printate în format
DIN, ANSY sau format EASY.
Seria de dispozitive EASY 800 and MFD permite:
conectarea contactelor în serie şi în paralel;
comutaţia releelor de ieşire şi a unor relee auxiliare;
setarea circuitelor de ieşire ca bobine, relee de impuls, pe front crescător sau descrescător
sau a unor relee de tip latch, adica cu memorie;
selectia releelor de timp cu funcţii diferite (la acţionare, la acţionare/cu întârziere
aleatoare , la revenire, la revenire cu cu întârziere aleatoare, cu temporizare şi la acţionare
şi la revenire, aleatoare sau nu, cu sincronizare sau nu, etc.
utilizarea de numărătoare directe sau inverse;
numărarea de impulsuri de viteză mare;
afişarea de text;
procesarea de mărimi analogice, cele de tip DC;
programarea pe 7 zile sau pe durata unui an de zile;
procesarea aritmetică a semnalelor;
trasarea fluxului de informaţie pe diagrame;
încărcarea, salvarea şi protecţia cu password a schemelor (diagramelor) proiectate.
comunicarea pe reţele de NET;
Există trei moduri de bază de aplicaţii pentru care dispozitivele MFD pot fi utilizate:
aplicaţii ca dispozitiv de afişaj cu display;
aplicaţii ca terminal prevăzut cu modul de display şi butoane;
aplicaţii fără vizualizare, deci fără modul de display.

SINTEZA DIAGRAMEI APLICAŢIEI PE BAZA PROGRAMULUI DE PROIECTARE


GRAFICĂ EASY SOFT 6 PRO

După lansarea în execuţie a directorului EASY SOFT 6 PRO, intalat în PC, se observă că
fereastra deschisa conţine trei secţiuni: 1-Toolbox, 2-Properties field şi 3-Circuit Diagram, Fig
5.1
Figura 5.1 lansarea în execuţie a directorului EASY SOFT 6 PRO şi cele trei secţiuni: 1-Toolbox,
2-Properties field şi 3-Circuit Diagram
Din fereastra Toolbox -cu instrumente virtuale de tip EASY se alege varianta dorită de
automat programabil, în cazul de faţă am ales modelul EASY 620-DC-TC, pentru considerentele
enumerate anterior şi cu un click pe instrumentul dorit, prin operaţiunea drag and drop, acesta se
aduce în fereastra Circuit Diagram. Prin click dreapta pe instrumentul selecţionat se deschide în
fereastra Properties Field o nouă fereastră în care apar detaliile tehnice ale dispozitivului ales.
Prin dublu click pe instrumentul ales din fereastra Circuit Diagram aceasta devine operaţională.
Urmează etapa în care din zona cu Toolbox, sunt aduse în zona Circuit Diagram, rand pe
rând, toate componentele cu care se construieşte aplicaţia. In fig … apar contacte de rele, formate
din instrumentele I -Input Basic Unit, relee- din instrumentele Q -Output Basic Unit, relee
intermediare sau markeri, din instrumentele de tip M -Marker şi relee de timp, din instrumente de
tip -Timing relay. Fiecare instrument poate fi setat pentru o anumită funcţiune, de tip Contactor,
cu efect la acţionare -Make, sau la revenire -Break, dar şi din punct de vedere al performanţelor
de comutaţie în calitate de Contactor, Releu de impuls, activ la comanda de setare, -Set, sau cu
revenire la comanda Reset. Temporizări diverse Setpoint pot fi propuse pe domenii de timp şi în
limite extrem de largi, precum şi funcţii diverse de comutaţie. Fiecare componentă selectată din
spaţiul Circuit Diagram poate fi indexată -cu un indice numeric şi poate să conţină un comentariu
suplimentar, în spaţiul Comment.
Diagrama de circuit, sintetizată secvenţial pentru rezolvarea problemei propuse, apare fragmentat
în fereastra Diagram Circuit în următoarele planşe grafice, Fig 5.2,5.3,5.4,5.5,5.6,5.7,5.8,
5.9,5.10 precum şi detalii asupra setărilor instrumentelor folosite în schema electrică respectivă.
Figura 5.2 Diagrama de circuit pentru rezolvarea problemei propuse

Figura 5.3
Figura 5.4

Figura 5.5
Figura 5.6

Figura 5.7
Figura 5.8

S-ar putea să vă placă și