Sunteți pe pagina 1din 110

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


Microcontroler RAM ROM CLOCK PPI SPI PIT ADC PWM
(nume) (B) (kB) (MHz) (nr.) (nr.) (nr.) (nr.) (nr.)
National 2x4
Semicond. 32 0.256 2.5 1x8 1 - - -
COPS400
(4 biţi)
Hitachi 1x16 - - - -
HD44780 80 1.2 2 1x40
(4 biţi)
Philips 87C752 64 2 12 1x5 I2C 1 5 1
(8 biţi) 2x8
Motorola 1x6
68HC11FI 512 1 4 6x8 2 1 8 -
(8 biţi)
CYPRESS 2x8
CY8Cxxxxx 2048 32 24 2x14 I2C IrDA 8 16
(8biti) 2x24 UART LCD
5x20
Siemens 1x2
80C166/167 1024 32 20 1x10 2 2 10 -
(16 biţi) 4x16
SiemensTCI775 72k 20 40 1x32 4 3 2 2
(32 biţi) 11x16

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
Nr Tip Producător Biti Caracteristici
crt.
1 TMS1000 Texas 4 4kB ROM; 128x4 biţi RAM; 16 linii de
Instruments ieşire; 8biţi ADC; 12 grupuri de instrucţiuni
2 NEC7500 Nippon 4 6kB ROM; 256x4 bits RAM; 35 linii I/O
Electrinics individuale; 4 canale ADC de 8 biţi; port
serial I/O de 8 biţi; 2 grupuri de instrucţiuni
3 HD44780 Hitachi 4 1.2kB ROM; 80x8biţi display RAM; 64x8
RAM generator de caractere; 40 linii
segment;16 linii uzuale; 7 grupuri de
instrucţiuni
4 80C552 Phillips 8 8kB ROM;256x8 bits RAM; 6 porturi de 8
biţi; 8 canale ADC; USART; 5 grupuri de
instrucţiuni
5 68HC11 Motorola 8 12kB ROM; 0.5kB EEPROM; 1kB RAM;
6 porturi de 8 biţi; 1 port de 6 biţi; 8 canale
ADC; USART; SPI; 5 grupuri de instrucţiuni
6 TMS370 Texas 8 16kB ROM; 0.5kB EEPROM; 0.5kB RAM;
Instruments 5 porturi I/O de 8 biţi; 4 porturi de 3 biţi; 8
canale; ADC; USART; SPI; 14 moduri de
adresare
7 M8C CYPRESS 8 26 porturi I/O; 16 blocuri digitale; 12 blocuri
analogice; Memoria 32KB Flash; Viteza
CPU 24 MHz; 9 functii SROM; 3 tipuri de
instructiuni; Arhitectura 4xMIPS care
cuprinde memoria SROM si memoria Flash

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
Intrări Digitale

Magistrale

Analogice
analogice

analogice

Dispozitiv
Digitale

digitale
Blocuri

Blocuri

SRAM
Intrări

Flash
Ieşiri

PSoC

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 Către Magistrale Către Sistemul
Analogic
De la Inima PSoC

SISTEMUL DIGITAL

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.
Resurse Globale Setare Parametrii Modul

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
x. 100: C 30 O 010 MZ a nr. 1instrucţiune
Se lucrează deci
C 31la nivel
021de limbaj specific
a nr. 2 AP, metoda fiind depăşită.
- 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 izolant de
permitivitate 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 010, 011: intrări
OC 31 MU A00 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 MZ, MU : pune variabila la 1 respectiv la 0 (mets à un, à zéro)
OC 34 SI A00 A00 : variabilă internă
OC 35 ET 020 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:


Ti , P: valoare preselectată;
Ti , B: cuantă de timp (1min ; 1s ; 0,1s ; 0,01s );
t = Ti, P x Ti B; i: numărul blocului
Ti, P este încărcată în valoarea curentă Ti, 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 Ti,
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 Ti, D şi Ti, 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ă.


Mi, P: valoare prescrisă;
Mi B: cuantă de timp (la fel ca la temporizator).
tM = Mi, P x Mi, B;
În timpul evoluţiei monostabilului, S nu trebuie menţinut la 1 - fig. 3.34. Deci lansarea funcţiei M se face pe
frontul ascendent al comenzii S. Starea bitului Mi,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ă Ci,P este încărcată în valoarea curentă Ci,V.
P=0: numărătorul poate evolua.
Semnalele asociate sunt redate în fig. 3.34. E devine 1 când Ci,V trece de la 0 la 9999 (pe D) - similar cu
Borrow. F devine 1 când Ci,V trece de la 9999 la 0 (pe U) - similar cu Carry. Biţii (Ci, D), (Ci, F) şi (Ci, E)
asociaţi numărătorului Ci 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).
- Legăturile: arată căile de evoluţie ale sistemului. Pot fi orientate (prin săgeţi) sau nu.
Etapele sunt numerotate şi li se asociază un bit Xi. Xi = 0: etapă inactivă; Xi = 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:
- a1: manocontact (senzor presiune). Confirmă strângerea de către pistonul P;
- a0: piston retras;
- b0: burghiu sus;
- b1: 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 se pot
realiza simultan, adică retragerea P1 este comandată în acelaşi timp cu avansul P2. 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 X1 (fig. 3.40a);
- acţiuni condiţionale - A este executată dacă X2 este 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 Fig. 3.43 Ciclul de scrutare pentru GRAFCET.
repuşi la 0.

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.)
R S T
I C
O Rtemp.
Umin C
rel. min. tensiune K1 Rsc Rss Umin

C C C

Rsc
releu de scurtcircuit

Rss
releu suprasarcina

Rtemp.
M
releu termic

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)
semnaliz. pornire motor
comanda oprire (O)
R,S,T

rel. min. tensiune


comanda pornire/oprire motor
releu suprasarcina

releu de scurtcircuit semnaliz. contact blocare pornire (K1)


semnaliz. temporizare pornire (K2)
M rel.de temperatura
semnaliz. releu minimal de tensiune
semnaliz. releu de suprasarcina
blocare pornie (K1)
semnaliz. releu de scurtcircuit

temporizare pornire (K2) semnaliz. releu de temperaura

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

comanda pornire (I) semnaliz. prezenta tensiune (+5V)


I1 A31, A32 Q0
R,S,T comanda oprire (O)
I2 semnaliz. pornire motor
Q1
rel. min. tensiune I3
Q2
comanda pornire/oprire motor

releu suprasarcina I4
Kit procesor
releu de scurtcircuit I5
14.1000A
M rel.de temperatura I6 semnaliz. contact blocare pornire (K1)
Q3
semnaliz. teporizare pornire (K2)
Q4
blocare pornie (K1) Q5 semnaliz. releu minimal de tensiune
I7
semnaliz. releu de suprasarcina
Q6
temporizare pornire (K2) I8 semnaliz. releu de scurtcircuit
Q7
RS semnaliz. releu de temperaura
A3 Q8

A1, A2

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.
K +5V

comanda pornire (I) 9xR1 semnaliz. prezenta tensiune (+5V)


8xR2
1
I1 A31, A32 Q0
comanda oprire (O) semnaliz. pornire motor
0
I2 Q1
rel. min. tensiune
0 comanda pornire/oprire motor
I3 Q2
releu suprasarcina
0
I4 Kit procesor
releu de scurtcircuit
0 14.1000A
I5 semnaliz. contact blocare pornire (K1)
rel.de temperatura
0 I6 Q3
semnaliz. teporizare pornire (K2)
temporizare pornire (K2)
0 Q4
I7 semnaliz. releu minimal de tensiune
blocare pornie (K1) 0 Q5
I8
semnaliz. releu de suprasarcina
0 Q6
I0 semnaliz. releu de scurtcircuit
RS Q7
1 semnaliz. releu de temperaura
A3
A1, A2 Q8

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
AND, ANDC REGISTRU
UNITATE LOGICA REZULTATE STO, STOC
OR, ORC
RR
XNOR
IN OUT

MULTIPLEXOR DEMULTIPLEXOR

I0 I1 I2 I3 I4 I5 I15 Q0 Q1 Q2 Q3 Q4 Q5 Q15

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
RTN R1, C1 R2, C2 R4, C4
MEMORIE DE SKZ
PROGRAM

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

VALIDARE
SCRIERE
IEN OEN
IEN OEN

MULTIPLEXOR DEMULTIPLEXOR
M M M M M M M

I0 I1 I2 I3 I4 I5 .... I15

Q0 Q1 Q2 Q3 Q4 Q5 .... Q15

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 DECA Cod HEXA Cod BINAR MNEMONICA FUNCTIE


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 1
SEMNALIZARE OPTICA
STARE SUBSISTEME
NU
PROTECTII
OK=?

DA

DA
BLOCARE, K1=?

ET 1 NU

NU
COMANDA PORNIRE
I=?
DA

DA TEMPORIZARE LA PORNIRE= T[s]


TEMPORIZ. PORNIRE SI
K2=? SEMNALIZARE OPTICA
TEMPORIZARE PORNIRE
ET 2 NU

NU OPRESTE MOTOR SI
PROTECTII
si RESTRICTII SEMNALIZEAZA OPTIC
OK=? ET 4
DA

ET 3

PORNESTE MOTOR
SI SEMNALIZ OPTIC

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


ETICHETA Adresa
PROG. PROGRAM Cod SURSA Cod OBIECT COMENTARII
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
Daca RR=1, aprinde led
33 20 STOC Q4 94 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 SROM Flash Magistrală analogică de
Intrerrupt interconectare
Memory
controller CPU (M8C)
SRAM WatchDog

Oscilator principal Int. Oscillator low speed Crystal Oscillator

Aria Blocurilor Digitale Aria Blocurilor Analogice Referinţă

Analogică
Intrare
Analogică

4 rânduri digitale 4 coloane analogice

Magistrală

Clock Multiplicare Switch Referintă


Decimators I2C Reset Sistem Multiplx. IO
Tensiune USB
Digital Acumulare Mode
POR sau LVD Analogică
Resursele Sistemului Internă
(MAC) Pump
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 Cypress Vdd 28 VDD(5V) L_PornireM
P0[7] MicroSystems
2 P0[6] 27 R
P0[5]
O 3 26
CY8C29466

P0[3] P0[4] R
K1 4 25 L_PermitePornire.K1
P0[1] P0[2]
K2 5 24 R L_BlocarePornire.K1
P2[7] P0[0]
6 23 R L_temporizare.K2
P2[5] P2[6]
7 P2[4]
22 R L_Umin
P2[3]
8 P2[1] 21
P2[2]
9 20 C
P2[0]
Rss 10 19
P1[7] R
Rse 11 L_Rss
P1[5] P1[6] 18
Rrt 12 P1[4] 17
R L_Rse
P1[3]
13 16 R L_Rt
P1[1] P1[2]
RUmin 14 15
Vss 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 începe programarea microcontrolerului in
PSOC Designer

Amplasarea componentelor grafice prin


PROIECTARE
metoda Drag and Drop

SALVARE Salvarea proiectului în mod frecvent


PROIECT

Simularea și testarea modului în care a fost


SIMULARE
gândit proiectul

NU Funcţionare DA PERSONALIZARE COD


corespunzătoare?

PROGRAMARE Construire Proiect


MICROCONTROLER Atribuire Pini

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
ADEVĂRAT dacă ambii operanzi sunt
&& SI LOGIC
adevăraţi
ADEVĂRAT dacă cel puţin unul dintre
|| SAU LOGIC
operanzi este adevărat
ADEVĂRAT daca operandul din stânga este
<= MAI MIC SAU EGAL mai mic sau egal decât operandul din
dreapta
ADEVĂRAT daca operandul din stânga este
>= MAI MARE SAU EGAL 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
ADEVĂRAT dacă Valoare este egală cu
!Valoare NU LOGIC
zero, altfel FALS
Scade operandul din dreapta din cel din
- MINUS
stânga
Adună operandului din stânga valoare
+ PLUS
operandului din dreapta
Înmulţeşte operandul din stânga cu cel din
* ÎNMULŢIRE
dreapta
Împarte operandul din stânga cu cel din
/ ÎMPĂRŢIRE
dreapta
Egal cu Restul împărţirii valorii din dreapta
% DIVIZIUNE MODULO
la valoarea din stânga
ADEVĂRAT dac valoarea din stânga este
< MAI MIC
mai mică decât valoarea din dreapta
ADEVĂRAT dac valoarea din stânga este
> MAI MARE
mai mare decât valoarea din dreapta
1 daca ambele valori din stânga şi dreapta
& SI LA NIVEL DE BIT
sunt 1
~Valoare NU LA NIVEL DE BIT 1 daca Valoare este 0
1 daca valoarea din stânga şi din dreapta
^ XOR LA NIVEL DE BIT
sunt 1, dar nu ambele, altfel 0
1 daca valoarea din stânga este egală cu
== EGALITATE
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
Contact
3 INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O
Temporizare - K2
Contact Releu
4 INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O
Suprasarcină - Rss
Contact Releu
5 INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O
scurtcircuit - Rsc
Contact releu tens.
6 INTRARE / Tactile/Switch/Normally Open/Internal Pullup N_O
min. - RUmin
Contact releul
7 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)

a) c)
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”
Intrare 1 Intrare 2 Intrare 3 Intrare 4 Intrare 5 Intrare 6 Ieşire
(Rt) (Rss) (Rsc) (RUmin) (P) (K1) FcTransf_1
0 0 0 0 0 0 0
0 0 0 0 0 1 0
0 0 0 0 1 0 0
0 0 0 0 1 1 1
0 0 0 1 0 0 0
0 0 0 1 0 1 0
.
.
.
1 1 1 1 1 0 0
1 1 1 1 1 1 0

Î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”
Intrare 1 Intrare 2 Intrare 3 Ieşire
(FcTransfer_1) (FcTransfer_2) (O) (Pornire)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 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
Figura 5.9

Figura 5.10

După finalizarea diagramei secvenţiale a circuitului electric şi salvarea informaţiei


acesteia, de exemplu fişierul EX1.e60, se poate trece la faza de simulare, prin click în zona
Simulation din fereastra Toolbox. Pentru activarea componentelor aferente intrărilor de date se
dă click pe comutatorul I/R function , se selectează modul de conectare al intrării, prin contacte-
tip I, sau rezistenţe, tip R şi se setează tipurile de contacte ce se utilizează pentru fiecare intrare
în parte (normal închise, normal deschise, cu sau fără memorie pe starea acţionată, etc,) vezi
fig…k

Figura 5.11

Din comutatorul Display se comandă afişarea stării intrărilor I, a ieşirilor Q-outputs, sau
marker-ilor M markers, etc., vezi fig.l. După lansarea în execuţie a programului de simulare,
prin activarea comutatorului grafic PLAY de pe toolbar-ul aplicaţiei pot fi vizualizate stări ale
contactelor I al intrărilor după acţionarea contactelor corespunzătoare din zona I -inputs, vezi
fig…l., sau ale ieşirilor Q, vezi Fig…m.. Pentru intrări, culoarea verde înseamnă starea normală a
contactelor, iar pentru ieşiri, verde reprezintă starea activată ca efect al comenzilor primite în
cadrul programului grafic dezvoltat şi simulat.
În figura 5.12 se observă că primul contact I1 este deschis, iar celelalte contacte I2, I8
sunt închise, deci sunt îndeplinite condiţiile de pornire ale motorului conectat la portul Q2 al
aplicaţiei, se aşteaptă doar comanda de pornire prin activarea lui I1.
Figura 5.12

In figura 5.13 se prezintă starea porturilor de ieşire Q. După cum se vede Q1 a fost activat, deci
led-ul care este conectat la acestă ieşire anunţă că s-a primit comanda de pornire şi că o
temporizare la acţionare este în curs de executare. In Fig…n portul Q2 este acţionat şi comanda
de pornire este deci transmisă motorului.

Figura 5.12 Starea porturilor de ieşire


Figura 5.13

Ca efect al acţionării unei protecţii, de exemplu releul de temperatură, portul Q8 a fost activat în
consecinţă comanda de oprire automată a motorului a fost executată , portul Q2 a fost deci
dezactivat, Fig…o

Figura 5.14
Figura 5.15

Figura 5.16 Conexiunea electrică a modulului EASY 620-DC-TC

După verificarea funcţionării corecte a schemei proiectate a circuitului secvenţial, se


poate trece la etapa de transfer a aplicaţiei în memoria dispozitivului de comandă numerică ales
pentru aplicaţia descrisă. Prin cablu de comunicaţie specific instrumentelor EASY se face
conexiunea dintre modulul selectat şi calculator, la portul USB al acestuia. În fereastra Toolbars
se activează comutatorul Communication şi se executa clic pe comutatorul Connection, setat
Online. După ce instrumentul a fost identificat, programul exersat poate fi transferat din
calculator în modulul conexat, prin comanda pe comutatorul PC-Device, Fig p… În felul acesta
modulul ales de automat programabil poate fi instalat şi utilizat în aplicaţia descrisă, Fig. q ,
conform a ceea ce se doreşte şi a fost descris în cuvinte, la începutul capitolului şi grafic, prin
algoritmul de funcţionare, de asemenea prezentat.
6. COMANDA NUMERICA A ACŢIONĂRII UTILIZÂND SISTEME DE ACHIZIŢII DE
DATE ŞI MEDIUL DE PROGRAMARE GRAFICĂ HP VEE Pro & DT VPI

Aceiaşi problemă de comandă numerică a unei acţionări electrice, precum cea prezentată în
aplicaţiile precedente din cadrul capitolului, urmează a fi rezolvată utilizând tehnologia
computerizată şi sisteme de achiziţii de date, pentru controlul şi comanda în timp real a procesului
amintit. Schema de principiu a ansamblului sistem de control-comandă şi proces este prezentată în
fig. 6.1. După cum se observă se apelează la o unitate de tip Personal Computer, cu sistem de
operare specific, la care se ataşează un sistem de tip Data Aquisition Board (Sistem de Achiziţii de
Date), prin conectarea acesteia la una din magistralele PC-ului (ISA, PCI, USB sau PCMCIA).
Pentru rezolvarea aplicaţiei propuse s-a ales o unitate de interfaţare DAQ de tip -DT 304, a
firmei Datatranslation, SUA, cu magistrală de tip PCI, ce realizează conexiunea cu procesul prin
intermediul unui cablu ecranat , SC şi a unui pannel terminal, T.P.
Pentru proiectarea software a aplicaţiei propuse se apelează la un program de proiectare
grafică, HP-VEE Pro, compatibil cu sistemul DAQ propus DT 304, de la firma Hewlett-Packard,.

PC
DAQ Personal Computer
ECHIPAMENT T.P. &
ELECTRIC Data
Terminal Acquisition Software:
CAPSULAT S.C. ( Shielded Cable ) Board - MS DOS andWindows x.x
Panel &
PRESURIZAT - Application software
Driver
Software
Accessories

ISA Bus; PCI Bus;...


Ex...p

Figura 6.1 Schema de principiu a ansamblului sistem de control-comandă şi proces


SISTEMUL DE ACHIZIŢII DE DATE, DAQ, DT 304 este un sistem de achiziţii de date
multifuncţional din seria DT 300, pentru conectare la magistralele PCI ale calculatoarelor
personale, care are câteva caracteristici speciale şi anume:
viteză mare de transfer bus-master a datelor, fără intervenţia procesorului central CPU,
eliberând astfel resursele sistemului pentru procesarea datelor;
capabilităţi flexibile de triggerare şi de clock;
nu necesită sistem de întreruperi, eliberând considerabil resursele sistemului;
suport software Windows extensiv.
Sistemul de achiziţii de date DT304 conţine un număr de 16 intrări analogice, de tip single-
ended, sau 8 intrări diferenţiale, 23 de linii de intrare/ieşire -I/O, digitale şi un număr de 4 canale
numărătoare/timere.
Rezoluţia convertorului analog-digital este realizată pe 12 biţi, la o frecvenţă maximă de
eşantionare de 400kHz. Sistemul DT 304 dispune şi de două canale de ieşie analogice.
Cu facilitatea plug and play a magistralei PCI, sistemul nu necesită jumpere sau comutatoare
pentru setări, iar arhitectura, accesoriile şi software-ul seriei DT 300, instalarea şi upgradarea
acestor plăci este extrem de facilă şi de accesibilă.
Intrările analogice. Seria de placi DT 300 este proiectată pentru a dispune de 16 intrări
single ended şi respectiv 8 diferenţiale. În plus, o conexiune Amp Low permite intrărilor single
ended să fie conectate la un potenţial de referinţă comun, altul de cât cel de ground, pentru a
asigura o funcţionare pseudo diferenţială a intrărilor analogice.
Prin software se selectează funcţionarea unipolară sau bipolară, amplificarea de 1, 2, 4, sau 8
ori a fiecărei intrări analogice şi intervalele de tensiune ale intrărilor: 0-10V, 0-5V, 0-2.5V, 0-
1.25V, +/- 10V, +/-5V, +/-2,5V şi +/-1,25 V.
Pentru o şi mai multă flexibilitate, o listă de 1024 de locaţii de amplificări ale canalelor
permite utilizatorului să execute eşantionări non secvenţiale ale canalelor şi valori diferite ale
amplificării acestora.
Subsistemul analogic de intrare poate fi calibrat automat, software.
Seria DT 300 de plăci de achiziţii de date poate realiza achiziţionarea unui singur eşantion,
de pe ori care dintre canale, sau a unui număr de eşantioane, de pe canale multiple. Pentru a
achiziţiona date de pe mai multe canale, seria DT 300 asigură două moduri de scanare: continuu şi
triggerate. Utilizând achizitionarea continuuă, placa realizează scanarea continua a listei
amplificării şi a canalelor şi achiziţionează date pâna la comanda stop sau până ce se realizează un
număr setat de eşantioane. Utilizând comanda triggerată de scanare, sistemul scanează lista de
amplificări-canale cu viteză mare, cu un interval programat între scanări, emulând un sistem de
eşantionare-memorare simultană. Utilizând o sursă de triggerare internă sau externă, se poate
retriggera o operaţie de scanare triggerată, pentru a putea cicla prin intermediul listei amplificare-
canale până la de 256 de ori per trigger; aceasta permite să se achiziţioneze un semnal temporar, de
date, pe fiecare canal, pentru fiecare triggerare, pâna la 256 de eşantioane per trigger.
Scanarea poate fi astfel sincronizată utilizând clock-ul intern sau unul extern plăcii de achiziţii.
Circuitul de clock şi cel de triggerare al convertorului A/D al seriei DT 300 este asigurat de doua
numărătoare-temporizatoare de 24 de biţi şi un oscilator de 20MHz. Patru numărătoare adiţionale,
de 16 biţi, sunt la dispoziţia utilizatorului.
Seria de circuite DT 300 asigură flexibilitate de triggerare, atât în modul trigger cât şi în situaţiile de
post şi pre triggerare. In situatiile de post triggerare, placa realizează achiziţia de date după ce un
semnal TTL de triggerare sau un semnal software a fost lansat. În schemele de pre-triggerare,
achiziţia de date se produce până la apariţia unui semnal de triggerare. Mai există şi modul “about
trigger”, când placa achiziţionează date atât înaintea cât şi după semnalul de trigger.
Performanţele de precizie ale conversiei analog digitale sunt asigurate cu cea mai mare fineţe,
datorită modului ENOB -effective number of bits, care specifică precizia totală a funcţiei de transfer
a convertorului A/D. Pentru DT 304, ENOB-ul proiectat este de 11.5 biţi.
Ieşirile analogice ale plăcii DT 304 sunt în număr de două, tip serial. Viteza de conversie pentru
fiecare canal de ieşire este tipică:-10kHZ. Rezoluţia şi domeniul de variaţie al mărimii de ieşire se
selectează software.
Intrările şi ieşirile digitale sunt în număr de 23. Aceste linii sunt divizate pe porturi, după cum
urmează:
Portul A, liniile 0…7;
Portul B, liniile 8…15;
Portul C, liniile 16…22.
Utilizând presesetările software, porturile A şi B pot fi combinate pentru a configura o intrare-ieşire
virtuală de 16 linii. Se poate programa fiecare port pentru a citi sau scrie date.
Se pot citi stările porturilor A sau B, cu rate de 3MHz, prin includerea liniilor digitale drept canale
de intrare în lista celor analogice. În felul acesta cele 16 linii digitale ale portului A şi B sunt citite ca
fiind un singur cuvânt de date.
Ieşirile digitale au capabilitate de curent suficientă pentru a comanda direct module statice, de tip
releu, absorbind max. 12 mA şi generând max. 15 mA.
Toate conexiunile plăcii DT 304 sunt accesibile printr-un conector cu 68 de pini. Panelul STP 300
este recomandat pentru a simplifica conectarea plăcii la proces.
Transferul datelor de tip bus-master, este realizat prin magistrala PCI la computerul gazdă. Prin
setarea unei bloc de memorie în computerul gazdă, sistemul DT 304 transferă datele fără intervenţia
procesorului central CPU, permiţând acestuia alte sarcini, precum analiza datelor sau grafică.
DT 304 nu necesita sistem de întreruperi, astfel instalarea driver-ului plăcii este facilă şi resursele
sistemului sunt disponibile pentru alte utilităţi.
Toate sistemele DT 300 sunt compatibile cu software-ul standard DT Open Layers, ceea ce face
posibilă upgradarea hard, prin încărcarea directă a noilor drivere, fără necesitatea re programării
ulterioare pentru utilizarea unor programe existente deja.
Schema bloc a seriei DT 300 este prezentată în fig.., iar datele tehnice ale modulului DT 304
utilizat sunt prezentate în figura 6.2.

Figura 6.2 Schema bloc a seriei DT 300 - Data Acquisition Board.

MEDIUL DE PROGRAMARE GRAFICA HP VEE PRO & DT VPI 6.0, PENTRU


ACHIZITII DE DATE HP VEE Pro este un limbaj de programare grafică pentru dezvoltarea
unor programe de control al instrumentelor electronice de măsurare şi pentru sisteme de
achiziţii de date. Cu ajutorul software-ului HP VEE se pot proiecta programe de dezvoltare
grafică, prin interconectarea unor obiecte funcţionale, ce formează o schemă bloc.
DT VPI este interfaţa sistemelor de achiziţii de date produse de Data Translation, care împreună
cu HP VEE constituie mediul de programare utilizat în cadrul proiectului de cercetare ce vizează
eleborarea unei tehnologii de încercarea nedistructivă, sintetică a contactoarelor
electromagnetice de putere.
Multitudinea de funcţii a mediului HP VEE face din acesta un instrument universal pentru
dezvoltarea unor instrumente de măsură şi control. Utilizând HP VEE, se pot realiza:
colectări de date de la instrumente şi module specializate de tip plug-in;
controlul interfeţelor şi echipamentelor;
afişarea datelor utilizând diferite tipuri de display-uri grafice, alfa numerice, etc.;
încărcarea şi utilizarea comenzilor ActiveX, pentru a adăuga funcţionalitate mediului HP
VEE;
comunicarea cu alte tipuri de programe Windows utilizînd automatizări ActiveX;
salvarea programelor utilizând formate diferite: binare, ASCII, tabel, etc.;
procesarea datelor;
calculul, analiza şi simularea datelor;
utilizarea buclelor de program;
controlul şi reglajul în procese de reglare, pentru a simula, măsura şi calcula variabile de
ieşire;
creearea programelor structurale şi a interfeţelor utilizator, etc.
Software-ul VEE Pro lucrează cu obiecte. Iată principalele moduri în care utilizatorul HP VEE
interacţionează cu obiectele:
obţinerea obiectelor, din menu ;
deplasarea obiectelor în cadrul mediului de dezvoltare;
schimbarea dimensiunii obiectelor;
conectarea şi cablarea obiectelor;
ştergerea obiectelor şi a conexiunilor dintre acestea;
selectarea obiectelor;
schimbarea view-lui unor obiecte;
deschiderea căsuţei de dialog Properties a unui obiect;
ştergerea unor obiecte;
mutarea diagramei bloc în cadrul mediului de dezvoltare, etc.

SINTEZA PROGRAMULUI DE SIMULARE A PORNIRII MOTORULUI CU HP VEE


PRO & DT VPI 6.0.
După instalarea programului de proiectare grafică amintit şi al software-ului de funcţionare
al sistemului DAQ ales, se deschide aplicaţia din iconul Agilent VEE Pro 6.0. Din acest moment se
poate construi schema grafică a modelului de simulare al aplicaţiei, utilizând instrumentele
specifice, selectate din bara de instrumente grafice a lui VEE Pro 6.0., vezi fig 6.3
Figura 6.3 Fereastra de lucru a programului de proiectare grafică
Proiectul grafic pentru modelul de simulare al pornirii motorului, în care apar instrumentele
grafice precum :
butonul de pornire (lansare în execuţie al simulatorului)-Start MOTOR ;
butonul de oprire al motorului, respectiv al simulării- STOP ;
comutatoarele bipoziţionale Umin, Iss, Isc, Riz, Cond. pornire, prin care se simulează
starea subsistemelor de protecţie de tip minimal de tensiune, de suprasarcină, de
scurtcircuit, de control al rezistenţelor de izolaţie, respectiv de condiţionare a pornirii prin
cheie de comandă;
potenţiometrul de prescriere al temporizării la comanda de pornire a acţionării,
Temporizare pornire ;
dispozitivele de semnalizare optică de tip display Color Alarm, şi AlphaNumeric, pentru
toate subsistemele logice de condiţionare ce apar în circuitul grafic ;
instrumentele de condiţionare logică de tip NOTa şi AND ;
instrumente de temporizare programabila, de tip Delay, apar explicit în planşa din fig…..
Figura 6.4 Programul grafic VEE Pro pentru simularea controlului şi comenzii acţionării

Utilizând facilităţile software-ului VEE Pro, se pot proiecta interfeţe grafice ale aplicaţiei
descrise, prin utilizarea instrumentelor Create User Objects sau Create User Functions, din bara
cu instrumentele de lucru, aşa cum se vede în fig 6.5
Figura 6.5

Figura 6.6 Panelul grafic în care se aşteaptă comanda de pornire, click, pe Start MOTOR
Figura 6.7

Figura 6.8 Panelul grafic în care se execută comanda de pornire, click pe Start MOTOR: se
afişează starea subsistemelor de protecţie şi instrumentul grafic PROTECŢII semnalizează
Protecţii OK. Pană la pornirea efectivă a motorului se execută întârzierea programată de 1.431s

Figura 6.8 Panelul grafic în care se arată că motorul este pornit, MOTOR PORNIT.
Figura 6.9

Figura 6.9 Panelul grafic în care se arată că motorul a primit comanda automată de oprire, Stop
Motor, ca urmare a acţionării protecţiei minimale de tensiune, Umin, după ce comutatorul Umin
de pe pannel a fost comutat. Se semnalizează optic ca au apărut restricţii la o eventuală nouă
comandă de pornire datorită protecţiei Umin.

Figura 6.10 Programul grafic VEE Pro pentru comanda acţionării prin intermediul sistemului de
achiziţii de date, DAQ
Pentru interfaţarea programului grafic cu procesul a fost necesară implementarea
instrumentelor grafice de comunicaţie cu exteriorul. În fig se prezintă programul grafic re
proiectat, în care apar şi instrumentele grafice Digital Aut Config, Put Single Value, DoutMux,
prin care se permite transferul de comenzi logice dinspre calculator spre proces prin intermediul
porturilor de ieşire de tip digitale. Pentru aducerea de informaţii logice de la proces înspre
calculator se pot instala şi instrumente de tip DigitalInConfig, GetsingleValue, DinMux, s.a.m.d.
La prima activare a aplicaţiei prin butonul Start MOTOR, fie din meniul principal fie din
pannel-ul grafic, sau din comanda PLAY de pe bara de instrumente, se deschide o fereastră prin
care se cere configurarea canalului de comunicaţie digitală al sistemului de achiziţie ales pentru
funcţia respectiva, vezi fig…. Dacă la PC sunt conectate mai multe sisteme de achiziţii de date,
în fereastra Select Device and Subsystem sa alege modelul dorit de DAQ pentru a stabili
comunicaţia cu procesul.

Figura 6.11 Configurarea sistemului utilizat pentru transferul de date

Programul grafic ce realizează atât funcţiuni de control, în timp real, al datelor logice
provenite de la subsistemele de protecţie cât şi comenzi logice ale motorului este sintetizat şi
prezentat în fig 6.11 Practic acest program grafic modelează funcţiile logice ale schemei electrice
de comandă şi protecţie computerizată a acţionării, propuse iniţial ca temă studiu, utilizând
software-ul HP VEE Pro.
Fig. 6.12 Programul grafic VEE Pro pentru controlul şi comanda în timp real a acţionării prin
intermediul sistemului de achiziţii de date, DAQ

Utilizând facilităţile lui HP VEE Pro programul grafic pentru controlul şi comandă în timp real a
acţionării prin intermediul sistemului de achiziţii de date, DAQ, prin compilare în limbajul
ANSY C, a fost salvat ca document Notepad şi este prezentat în continuare, pentru a avea o
imagine comparativă asupra avantajelor nete ale limbajele grafice de proiectare-programare în
comparaţie cu celelalte metode cunoscute de programare computerizată.

Source file: "E:\\Documents and Settings\\zoller carol\\My Documents\\Control si Comanda Motor cu DAQ.vee"
File last revised: Thu Feb 11 15:58:59 2010
Date documented: Thu Feb 11 16:04:08 2010
VEE revision: 6.01
Execution Mode: VEE 6
Convert Infinity on Binary Read: no

I/O Configuration
Embedded Configuration (Control si Comanda Motor cu DAQ.vee)

--------------------------------------------------
M: Main
Device Type : Main
Context is secured : off
Trig mode : Degrees
Popup Panel Title Text : Untitled
Show Popup Panel Title : on
Show Popup Panel Border : on
Popup Moveable : on
Popup Panel Title Text Color : Object Title Text
Popup Panel Title Background Color : Object Title
Popup Panel Title Text Font : Object Title Text
Delete Globals at Prerun : on

M.5: Main/U min


Device Type : Toggle Control
Input pin 1 : Default Value (Int32, Scalar)
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :1

M.6: Main/Start MOTOR


Device Type : Start

M.7: Main/I ss
Device Type : Toggle Control
Input pin 1 : Default Value (Int32, Scalar)
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :1

M.8: Main/I sc
Device Type : Toggle Control
Input pin 1 : Default Value (Int32, Scalar)
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :1

M.9: Main/R iz
Device Type : Toggle Control
Input pin 1 : Default Value (Int32, Scalar)
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.10: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.11: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.12: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.13: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.14: Main/U min


Device Type : ColorAlarm
Input pin 1 : Data (Real64, Scalar)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on
Low Limit : 0.33
High Limit : 0.66
High Text : Umin
Mid Text : Mid
Low Text :

M.15: Main/I ss
Device Type : ColorAlarm
Input pin 1 : Data (Real64, Scalar)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on
Low Limit : 0.33
High Limit : 0.66
High Text : Iss
Mid Text : Mid
Low Text :

M.16: Main/I sc
Device Type : ColorAlarm
Input pin 1 : Data (Real64, Scalar)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on
Low Limit : 0.33
High Limit : 0.66
High Text : Isc
Mid Text : Mid
Low Text :

M.17: Main/R iz
Device Type : ColorAlarm
Input pin 1 : Data (Real64, Scalar)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on
Low Limit : 0.33
High Limit : 0.66
High Text : Riz
Mid Text : Mid
Low Text :

M.19: Main/NOT a
Device Type : Formula
Input pin 1 : a (Any, Any)
Output pin 1 : Result
Formula : NOT a

M.20: Main/NOT a
Device Type : Formula
Input pin 1 : a (Any, Any)
Output pin 1 : Result
Formula : NOT a

M.21: Main/NOT a
Device Type : Formula
Input pin 1 : a (Any, Any)
Output pin 1 : Result
Formula : NOT a

M.22: Main/NOT a
Device Type : Formula
Input pin 1 : a (Any, Any)
Output pin 1 : Result
Formula : NOT a

M.23: Main/ AND


Device Type : Formula
Input pin 1 : a (Any, Any)
Input pin 2 : b (Any, Any)
Input pin 3 : C (Any, Any)
Input pin 4 : D (Any, Any)
Input pin 5 : E (Any, Any)
Output pin 1 : Result
Formula :
1. a AND b AND c AND d AND e
2.
3.

M.24: Main/PROTECTII
Device Type : ColorAlarm
Input pin 1 : Data (Real64, Scalar)
Input pin 2 : Clear (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on
Low Limit : 0.33
High Limit : 0.66
High Text : OK
Mid Text : Mid
Low Text : Restrictii pornire

M.27: Main/Cond. pornire


Device Type : Toggle Control
Input pin 1 : Default Value (Int32, Scalar)
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :1

M.28: Main/Cond. pornire


Device Type : ColorAlarm
Input pin 1 : Data (Real64, Scalar)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on
Low Limit : 0.33
High Limit : 0.66
High Text : High
Mid Text : Mid
Low Text : Low

M.29: Main/NOT a
Device Type : Formula
Input pin 1 : a (Any, Any)
Output pin 1 : Result
Formula : NOT a

M.36: Main/MOTOR
Device Type : ColorAlarm
Input pin 1 : Data (Real64, Scalar)
Input pin 2 : Clear (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on
Low Limit : 0.33
High Limit : 0.66
High Text : MOTOR PORNIT
Mid Text : Mid
Low Text : STOP MOtor

M.62: Main/Until Break


Device Type : Until Break
Output pin 1 : Continuous

M.70: Main/If A == B
Device Type : If/Then/Else
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Output pin 1 : Then
Output pin 2 : Else
If/Else cases : A==B

M.71: Main/Button
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.72: Main/O
Device Type : Toggle Control
Input pin 1 : Reset (Any, Any)
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : on
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :1

M.74: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.75: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.76: Main/Stop
Device Type : Stop
Exit code :0

M.77: Main/Gate
Device Type : Gate
Input pin 1 : A (Any, Any)
Output pin 1 :X

M.78: Main/Button
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

--------------------------------------------------
M.82: Digital Out Config
<Secured UserObject, no documentation generated>

M.83: Main/Bit 0
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.84: Main/Bit 1
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.85: Main/Bit 2
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : on
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.86: Main/Bit 3
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : on
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.87: Main/Bit 4
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : on
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.88: Main/Bit 5
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : on
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.89: Main/Bit 6
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : on
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.90: Main/Bit 7
Device Type : Toggle Control
Output pin 1 : Toggle
Wait For Event : off
Auto execute : off
Initialize At Prerun : on
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.91: Main/Channel
Device Type : Constant
Output pin 1 : Int32
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

M.92: Main/DoutMux
Device Type : Formula
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Input pin 3 : C (Any, Any)
Input pin 4 : D (Any, Any)
Input pin 5 : E (Any, Any)
Input pin 6 : F (Any, Any)
Input pin 7 : G (Any, Any)
Input pin 8 : H (Any, Any)
Output pin 1 : Result
Formula : a+(2*b)+(4*c)+(8*d)+(16*e)+(32*f)+(64*g)+(128*h)

M.93: Main/Put Single Value


Device Type : Call
Input pin 1 : hSubsys (Int32, Any)
Input pin 2 : Channel (Int32, Any)
Input pin 3 : Value (Real64, Any)
Output pin 1 : hSubsys
Function name : dtv.PutSingleValue

M.94: Main/a AND b


Device Type : Formula
Input pin 1 : a (Any, Any)
Input pin 2 : b (Any, Any)
Output pin 1 : Result
Formula : a AND b

M.95: Main/Delay
Device Type : Delay
Input pin 1 : Delay (Real64, Scalar)
Output pin 1 : Done
Delay : 0.5680000000000001

M.96: Main/Gate
Device Type : Gate
Input pin 1 : A (Any, Any)
Output pin 1 :X

M.97: Main/Temporiz pornire


Device Type : Knob
Output pin 1 : Real64
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Value Range : 0 10
Detent Size : 0.001
Real64 Value : 0.5680000000000001

M.121: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.123: Main/Get Single Value


Device Type : Call
Input pin 1 : hSubsys (Int32, Any)
Input pin 2 : Channel (Int32, Any)
Output pin 1 : hSubsys
Output pin 2 : Value
Function name : dtv.GetSingleValue

M.124: Main/Until Break


Device Type : Until Break
Output pin 1 : Continuous

M.125: Main/Channel
Device Type : Constant
Output pin 1 : Int32
Wait For Event : off
Auto execute : off
Initialize At Prerun : off
Initialize at Activate : off
Constant size fixed : off
Password masking : off
Indices Enabled : on
Int32 Value :0

--------------------------------------------------
M.126: DinDemux
Device Type : UserObject
Input pin 1 : A (Any, Any)
Output pin 1 : Bit 0
Output pin 2 : Bit 1
Output pin 3 : Bit 2
Output pin 4 : Bit 3
Output pin 5 : Bit 4
Output pin 6 : Bit 5
Output pin 7 : Bit 6
Output pin 8 : Bit 7
Context is secured : off
Trig mode : Degrees
Popup Panel Title Text : DinDemux
Show Popup Panel Title : on
Show Popup Panel Border : on
Popup Moveable : off
Popup Panel Title Text Color : Object Title Text
Popup Panel Title Background Color : Object Title
Popup Panel Title Text Font : Object Title Text

M.126.0: DinDemux/If/Then/Else
Device Type : If/Then/Else
Input pin 1 : A (Any, Any)
Output pin 1 : Then
Output pin 2 : Else If
Output pin 3 : Else
If/Else cases :
1. bit(a, 0)*1
2. ( NOT bit(a, 0))*0.01

M.126.1: DinDemux/If/Then/Else
Device Type : If/Then/Else
Input pin 1 : A (Any, Any)
Output pin 1 : Then
Output pin 2 : Else If
Output pin 3 : Else
If/Else cases :
1. bit(a, 1)*1
2. ( NOT bit(a, 1))*0.01

M.126.2: DinDemux/If/Then/Else
Device Type : If/Then/Else
Input pin 1 : A (Any, Any)
Output pin 1 : Then
Output pin 2 : Else If
Output pin 3 : Else
If/Else cases :
1. bit(a, 2)*1
2. ( NOT bit(a, 2))*0.01

M.126.3: DinDemux/If/Then/Else
Device Type : If/Then/Else
Input pin 1 : A (Any, Any)
Output pin 1 : Then
Output pin 2 : Else If
Output pin 3 : Else
If/Else cases :
1. bit(a, 3)*1
2. ( NOT bit(a, 3))*0.01

M.126.4: DinDemux/If/Then/Else
Device Type : If/Then/Else
Input pin 1 : A (Any, Any)
Output pin 1 : Then
Output pin 2 : Else If
Output pin 3 : Else
If/Else cases :
1. bit(a, 4)*1
2. ( NOT bit(a, 4))*0.01

M.126.5: DinDemux/If/Then/Else
Device Type : If/Then/Else
Input pin 1 : A (Any, Any)
Output pin 1 : Then
Output pin 2 : Else If
Output pin 3 : Else
If/Else cases :
1. bit(a, 5)*1
2. ( NOT bit(a, 5))*0.01

M.126.6: DinDemux/If/Then/Else
Device Type : If/Then/Else
Input pin 1 : A (Any, Any)
Output pin 1 : Then
Output pin 2 : Else If
Output pin 3 : Else
If/Else cases :
1. bit(a, 6)*1
2. ( NOT bit(a, 6))*0.01

M.126.7: DinDemux/If/Then/Else
Device Type : If/Then/Else
Input pin 1 : A (Any, Any)
Output pin 1 : Then
Output pin 2 : Else If
Output pin 3 : Else
If/Else cases :
1. bit(a, 7)*1
2. ( NOT bit(a, 7))*0.01

M.126.8: DinDemux/JCT
Device Type : Junction
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Output pin 1 : Data

M.126.9: DinDemux/JCT
Device Type : Junction
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Output pin 1 : Data

M.126.10: DinDemux/JCT
Device Type : Junction
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Output pin 1 : Data

M.126.11: DinDemux/JCT
Device Type : Junction
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Output pin 1 : Data

M.126.12: DinDemux/JCT
Device Type : Junction
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Output pin 1 : Data

M.126.13: DinDemux/JCT
Device Type : Junction
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Output pin 1 : Data

M.126.14: DinDemux/JCT
Device Type : Junction
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Output pin 1 : Data

M.126.15: DinDemux/JCT
Device Type : Junction
Input pin 1 : A (Any, Any)
Input pin 2 : B (Any, Any)
Output pin 1 : Data

--------------------------------------------------
M.135: Digital In Config
<Secured UserObject, no documentation generated>

M.137: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.139: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.142: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.145: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.148: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.151: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

M.154: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on

--------------------------------------------------
M.157: Converter
Device Type : UserObject
Input pin 1 : x (Any, Any)
Input pin 2 : x (Any, Any)
Input pin 3 : x (Any, Any)
Input pin 4 : x (Any, Any)
Input pin 5 : x (Any, Any)
Input pin 6 : x (Any, Any)
Input pin 7 : x (Any, Any)
Input pin 8 : x (Any, Any)
Output pin 1 : Result
Output pin 2 : Result
Output pin 3 : Result
Output pin 4 : Result
Output pin 5 : Result
Output pin 6 : Result
Output pin 7 : Result
Output pin 8 : Result
Output pin 9 : Result
Output pin 10 : Result
Output pin 11 : Result
Output pin 12 : Result
Output pin 13 : Result
Context is secured : off
Trig mode : Degrees
Popup Panel Title Text : UserObject
Show Popup Panel Title : on
Show Popup Panel Border : on
Popup Moveable : on
Popup Panel Title Text Color : Object Title Text
Popup Panel Title Background Color : Object Title
Popup Panel Title Text Font : Object Title Text

M.157.0: Converter/asVariant(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asVariant(x)

M.157.1: Converter/asInt32(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asInt32(x)

M.157.2: Converter/asVariant(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asVariant(x)

M.157.3: Converter/asInt32(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asInt32(x)

M.157.4: Converter/asVariant(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asVariant(x)

M.157.5: Converter/asInt32(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asInt32(x)

M.157.6: Converter/asVariant(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asVariant(x)

M.157.7: Converter/asInt32(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asInt32(x)

M.157.8: Converter/asVariant(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asVariant(x)

M.157.9: Converter/asInt32(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asInt32(x)

M.157.10: Converter/asVariant(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asVariant(x)

M.157.11: Converter/asInt32(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asInt32(x)

M.157.12: Converter/asVariant(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asVariant(x)

M.157.13: Converter/asInt32(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asInt32(x)

M.157.14: Converter/asVariant(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asVariant(x)

M.157.15: Converter/asInt32(x)
Device Type : Formula
Input pin 1 : x (Any, Any)
Output pin 1 : Result
Formula : asInt32(x)

Pentru conectarea intrărilor, respectiv a ieşirilor sistemului DT 304 la schema electrică a


aplicaţiei, sunt necesare informaţii în legătură cu semnificaţia fiecărui pin al conectorului
acestuia, aşa cum se prezintă în tabelul 17 din documentaţia de firmă .