Documente Academic
Documente Profesional
Documente Cultură
8
Motor IrDA
68HC1 2x LCD
(8 biţ 2x
2 I2C
2x -
UAR
5x
3
10
CYPRE 2
CY8Cxx
(8bit 1
2 2 2
1x
4x 2
3
Sieme
80C166
4 4
(16 bi 1x
PWM
11
ADC (nr.)
Phillips
8kB ROM;256x8
8 biţi; 8 canale A
80C552 de instrucţiuni
8
4
Motorola
12kB ROM; 0.5k
68HC11 6 porturi de 8 biţi
8 canale ADC; US
5 instrucţiuni
Texas
Instruments
TMS370
16kB ROM; 0.5k
6 8 RAM; 5 porturi
3 biţi; 8 canale; A
CYPRESS moduri de adresa
M8C
7 26 porturi I/O; 16
blocuri analogic
Viteza CPU 24 M
Biti tipuri de instruct
care cuprinde m
Flash
Producător 4kB RO
ieşire; 8
Microcontrolerul diferă de un microprocesor în multe feluri. În primul rând şi cel mai
important este funcţionalitatea sa deoarece pentru a putea fi utilizat unui microprocesor trebuie să
i se adauge alte componente ca memorie, sau componente pentru primirea şi trimiterea de date.
Pe scurt, aceasta înseamnă că microprocesorul este inima calculatorului. Pe de altă parte,
microcontrolerul este proiectat să fie toate acestea într-unul singur. Nu sunt necesare alte
componente externe pentru aplicarea sa pentru că toate perifericele necesare sunt deja incluse în
el. Astfel, economisim timpul şi spaţiul necesare pentru construirea de aparate.
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.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.
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
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.
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.
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].
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.
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.
Exista o mulţime de cipuri in familia PSoC Mixed Signal Array, dar diferenţiind grupurile
de cipuri PSoC, acestea se disting după numărul de linii digitale si coloanele analogice de care
dispun. Sistemul digital poate avea 4, 2 sau o linie digitala. Sistemul analogic poate avea 4, 2 sau
o coloana analogică. Fiecare dispozitiv PSoC are o combinaţie unica de linii digitale si coloane
analogice.
In tabelul 3, sunt ilustrate resursele sistem disponibile fiecărui grup de dispozitive PSoC.
CY8C21x34, CY7C603xx si CYWUSB6952 sunt singurele dispozitive PSoC care au I/O
multiplexate analogic, iar CY8C24x94 si CY7C64215 au resurse sistem USB. Pentru realizarea
obiectivului cercetării s-a utilizat familia de microcontrolere cu performanţele cele mai ridicate şi
anume CY8C29466.
Tabelul 3. Resursele specifice disponibile pentru cele mai reprezentative dispozitive PSoC
e e e e M h
Dispozitiv l
a l
e
i
e
i
c c i
c
A
s
r a
i
PSoC i
t
a
e
l u
l
r
i i
r
r
i
R l
a g g g S F
r ă u
g t i
a
i c r
t o c
i o ş o
t
t l l
D s o
l
i g e o
i l n a a
i a l
i I
g
I
r g
d n n
i n
ă B B
a a
a
r
A
D
t
M
n
Interconectare
Digitală Globală
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
Elementele fizice constituente şi legătura lor cu exteriorul sunt puse în evidenţă şi de fig. 3.2,
3.3. Unitatea centrală a unui automat programabil este organizată în jurul unui microprocesor
de 8 sau 16 biţi a cărui putere de tratare şi viteză determină complexitatea AP (a setului de
instrucţiuni asociat) şi viteza de scrutare
a programului. Unele echipamente sunt multiprocesor (multitasking), permiţând un volum
important de prelucrări. Ex.:
Automate Télémécanique: microprocesoare I 8052, 8031, 8086, 80386, 80C52, ... Automate
Merlin Gérin (PB, April): microprocesoare I 8031, M 6809, 68000.
Într-un AP, în majoritatea cazurilor, UC (microprocesor, memoria sistem sau monitor) nu sunt
accesibile utilizatorului. Memoria utilizator este destinată stocării programelor de aplicaţie.
Are două zone:
- zona program (RAM - rar, REPROM, EEPROM);
- zona date (RAM cu baterii pentru păstrare conţinut).
Capacitate: minim 1, 2 Kcuv. (Kword), până la 256 Kword sau mai mult / 8 sau 16 biţi. Pe
multe automate, este modulară, putându-se extinde cu 8, 16 sau 32 Kcuv.Accesul la
informaţia memorată poate fi:
- Explicit - utilizatorul precizând întâi adresa fizică şi apoi conţinutul care urmează să fie
înscris sau citit.
E
PB
O
SI
instrucţiune
O
a nr. 1
x.
100:
C 30
010
MZ
instrucţiune
Se lucrează deci la nivel de limbaj specific AP, metoda fiind depăşită.
a nr. 2
C 31
021
- Implicit (transparent), adaptat limbajelor grafice. Utilizatorul introduce linii de programe
sau reţele, afectându-le simboluri sau etichete. La compilare, UC interpretează datele şi
organizează spaţiul memoriei.
Ex. TSX 47; 47-20; TSX 80 (Télémécanique); April 5000.
Organizarea memoriei este de obicei particulară pentru fiecare tip de AP. Majoritatea posedă
însă o zonă de memorie pe bit şi o zonă de memorie pe cuvânt pentru utilizator. Adesea se
adaugă memorii pe bit sau cuvânt sistem, utilizate în comun (în anumite condiţii) cu UC. La
modelele evoluate, utilizatorul poate - printr-o procedură de configurare - să organizeze el
însuşi memoria.
Fig. 8
Organizarea fizică a unui AP
Fig. 9
Organizarea structurală a unui AP
2.2 INTERFEŢELE AP
Fig. 11 Canal de ieşire numerică cu releu. Fig. 12 Canal de ieşire numerică cu triac.
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.
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
Detectoarele de proximitate inductive sunt construite dintr-un oscilator (al cărui bobinaj este dispus
în partea sensibilă care trebuie să detecteze prezenţa, trecerea, defilarea unei piese), un etaj de
triggerare şi un amplificator de ieşire. Când o piesă feromagnetică este plasată în câmpul magnetic
creat, curenţii induşi constituie o sarcină adiţională care provoacă diminuarea oscilaţiilor, situaţie
sesizată de circuitul de prag şi care comută etajul static (tranzitor, triac) final.
Detectoarele capacitive pot sesiza prezenţa obiectelor izolante, lichide, pulverulente. Se compun
dintr-un oscilator al cărui condensator constituie faţa sensibilă. Când un material conductor sau
permitivitate
izolant de r > 1 este plasat în acest câmp, capacitatea de cuplaj se modifică şi
provoacă oscilaţii. Conectarea la AP se poate realiza prin (fig. 3.19):
- 2 fire: semnalul este transmis prin firele de alimentare. Se utilizează o sarcină pe circuitul intern al
senzorului şi AP sesizează dacă circuitul este închis sau nu. Conectarea se face direct la AP cu
module de intrare care elimină efectul curenţilor reziduali.
- 3 fire (2 alimentare + semnal).
Dacă este necesar un răspuns rapid, intrările standard ale AP nu sunt satisfăcătoare, ele comportând o
temporizare (10 ms) pentru eliminarea efectelor vibraţiei contactelor.
Detectoarele fotoelectrice – fig. 3.20 sesizează întreruperea unui fascicul luminos (în infraroşu de
obicei, cu semnal modulat pentru a elimina influenţa iluminatului ambiant) între un emiţător şi un
fotoreceptor. Codoare de poziţie (traductoare, codificatoare) - fig. 3.21
- liniare - fig 3.21a, traduc poziţia unui element mobil prin tensiunea dată de un montaj
potenţiometric. Ex: pistoane, cilindri pneumatici.
- rotative - fig. 3.21b; un disc este solidar cu elementul mobil şi are piste marcate prin fante binare.
Poziţia curentă este tradusă cu elemente fotoreceptoare. Exemple de utilizare sunt în fig. 3.22.
Codoarele de poziţie pot fi absolute (cu fiecare poziţie codificată distinct) sau incrementale relative, la
care
important este numărul de impulsuri eliberate de la o poziţie iniţială, număr proporţional cu
deplasarea.
Detectoarele de cod de bare (fig. 3.23) sunt captori optici asociaţi cu un mic ansamblu de tratare care
verifică codul detectat, stochează informaţia, o transmite la cerere aparatului. Se face deci o
recunoaştere grafică a obiectelor, acestea putând fi de mai multe tipuri.
Elementele de marcare permit organizarea proceselor de fabricaţie şi distribuţie identificând
obiectele prin afectarea unui cod purtat de către o plăcuţă ce însoţeşte obiectul (paletă, cărucior etc.).
Produsul poate fi urmărit ca atare şi / sau se poate specifica stadiul prelucrării lui.
Traductoarele de greutate / forţă (fig. 3.24) sunt construite pe baza unor doze (timbre) tensometrice
care, în funcţie de forţă, dezechilibrează mai mult sau mai puţin o punte Wheatstone. Semnalul
analogic este convertit numeric local de dispozitivul de cântărire, iar acesta poate comunica cu AP
prin canale numerice. Traductoarele de cuplu sesizează gradul de torsiune al unui arbore elastic
montat între arborele conducător şi cel condus.
Traductoarele de presiune (monostrat, vacuostat) sunt alte tipuri de dispozitive tip captor pentru AP.
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.
Fig.
3.29 Comandă cu confirmare pentru cilindrii pneumatici.
Fig. 3.30 Comanda prin
interfaţă electropneumatică.
OC 32 SI/ 011 SI,SI / : testare bit/ bit negat ("dacă"- în limba franceză)
OC 33 MZ A00 OC 34 SI A00 OC 35 ET 020
MZ, MU : pune variabila la 1 respectiv la 0 (mets à un, à zéro) A00 : variabilă internă
ET : şi logic;
OCxx : adresa memorie
b. Limbaje de tip boolean - se bazează pe implementarea ecuaţiilor logice aferente în special unor
structuri combinaţionale.
Ex1: (Renault): S5 E8 E9 + /E11 = A21 (S: etichetă; E: intrări; A: acţiuni).
c. Limbaje de tip literal - apelează la construcţii mnemonice similare cu ale unor limbaje de
programare de nivel înalt: IF - THEN - ELSE , WHILE - DO etc. Partea literală (simbolică) se
completează pentru inteligibilitate cu o serie de structuri şi construcţii grafice.
d. Limbajele grafice s-au dezvoltat simultan cu posibilitatea utilizării unor terminale de programare
cu facilităţi de vizualizare (tip display). Ele predomină în etapa actuală practic la toate tipurile de AP
şi cunosc două variante, în unele cazuri completâdu-se. S-au impus:
- limbajul cu contacte: ("LADDER" - termenul cel mai uzitat, "Contact Plan Programming",
"Kontact-plan " - KOP, "Echelle"); permite implementarea structurilor combinaţionale, secvenţiale,
precum şi a unor blocuri specifice schemelor de comandă clasice: temporizatoare, numărătoare,
programatoare ciclice etc. Unitatea de bază este constituită dintr-o reţea cu dimensiuni relativ reduse
(ex. 4 linii x 9 coloane).
- diagrame de stări ("GRAFCET" = Graphe Fonctionnel de Commande Etapes-Transitions,
"Sequential Function Chart "). GRAFCET se constituie ca o succesiune de etape şi tranziţii. Etapelor
li se asociază acţiuni (uneori condiţionate) iar tranziţiilor condiţii logice (receptivităţi) pentru a trece
sistemul în starea următoare. GRAFCET prezintă avantajul că se poate utiliza practic în toate stadiile
de descriere a funcţionării unei structuri automate, de la specificaţii prin caietul de sarcini, la redarea
în detaliu a elementelor utilizate (intrări, ieşiri). Acţiunile şi receptivităţile se descriu prin reţele
LADDER. Se menţionează originea franceză a instrumentului GRAFCET şi utilizarea sa pe scară
internaţională (în prezent normă CEI), similar cu preluarea LADDER - ului (de origine americană)
de către toate firmele constructoare de AP.
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)
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.
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ă.
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.
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:
Numărătoare. Se pot număra impulsuri (evenimente) înainte sau înapoi ori simultan în ambele
sensuri, în funcţie de comutările survenite la intrările U şi D.
P=1: valoarea preselectată C ,P este încărcată în valoarea curentă C
i i,V.
P=0: numărătorul poate evolua.
Semnalele asociate sunt redate în fig. 3.34. E devine 1 când C
i,V trece de la 0 la 9999 (pe D) - similar
Borrow. F devine 1 când C ,V trece de la 9999 la 0 (pe U) - similar cu Carry. Biţii (C , D), (C , F)
cu i i i
şi (C asociaţi numărătorului C
i, E) i pot fi testaţi prin program.
Fig.
3.31 Transpunerea in limbaj LADDER a unei scheme cu contacte şi relee.
Fig. 3.33
Lucrul cu temporizatoare în LADDER / TSX.
- legătură orientată
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.
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.
a.
b.
Fig. 3.39 Temporizări şi fronturi în GRAFCET.
a. b.
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
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
(1)
Pentru circuitul de semnalizări optice se sintetizează o schemă electrică corespunzătoare
fiecărui subsistem, în conformitate cu metodele clasice cunoscute (algebrică, Quine Mc
Clusky, Tison, etc.)
CCC
Umin
RST I
C O Rtemp.
C
Rsc
rel. min. tensiune Rsc Rss Umin
K1
releu de
scurtcircuit
Rss
releu
suprasarcina
Rtemp.
releu termic
M
Aceasta este prezentată explicit în Fig. 3.2, în care sunt inventariate toate intrările logice în
sistemul Black-Box, în număr de opt, pe latura din stânga a acestuia, respectiv toate ieşirile, în
număr de opt, pe latura din dreapta a acestuia.
comanda pornire (I)
releu de scurtcircuit
R,S,T M semnaliz. contact blocare
rel.de temperatura pornire (K1) semnaliz.
temporizare pornire (K2)
blocare pornie (K1)
semnaliz. releu minimal de
tensiune semnaliz. releu de
temporizare pornire (K2)
semnaliz. pornire motor suprasarcina semnaliz. releu
comanda oprire (O)
de scurtcircuit
Din considerente de ordin didactic în această etapă s-a elaborat o soluţie de comandă
logică şi de control cu microprocesor ce utilizează kit-ul procesor 14.000A, [….] echipat cu
microprocesorul de un bit MMC-4500, Motorola.
K
+5V
A31, A32 tensiune (+5V)
comanda pornire (I) I1 semnaliz. prezenta
R,S,T M scurtcircuit (K1) semnaliz.
I6 I7 Q5
teporizare pornire
rel.de temperatura Q6
(K2)
semnaliz. pornire
Q0 motor semnaliz. releu
blocare pornie Q1
minimal de
Q2 comanda
tensiune semnaliz.
comanda oprire pornire/oprire
(K1) motor releu de
(O) rel. min. Kit procesor
suprasarcina
tensiune 14.1000A
I2 I3
Q3
semnaliz. contact
releu suprasarcina
I4 I5 Q4
releu de blocare pornire
Fig. 3.4. Schema explicită de interfaţare TTL la sistemul KIT Procesor 14.000A
3.1.4.1. Kit-ul procesor 14.000A. Acesta este un automat programabil uşor de programat şi
perfect adaptabil pentru numeroase proiecte de automatizare. Are la bază microprocesorul de un
bit MMC 4500, în condiţiile în care care un sistem de 8 biţi ridică probleme de eficienţă şi cost.
Fluxul de prelucrare al datelor şi de generare a comenzilor în Kit-ul 14000A este prezentat în
figura 3.5
LD, LDC
REGISTRU
AND, ANDC
STO, STOC
OR, ORC XNOR REZULTATE
UNITATE LOGICA IN RR
OUT
MULTIPLEXOR I Q Q
DEMULTIPLEXOR I I I I I I 0 1 2 3 4 5 15 0 1 2
Q Q Q Q
3 4 5 15 Q
NOPO, JUMP
R1, C1 R2, C2 R4, C4 RTN SKZ
MEMORIE DE
PROGRAM
LD, LDC
ORC XNOR
STO, STOC
UNITATE LOGICA
REGISTRU
REZULTAT RR
VALIDARE
AND, ANDC OR,
SCRIERE
DEMULTIPLEXOR
Q Q
MMMMMMM 0 1
IEN OENIEN OEN
Q Q Q Q Q
2 3 4 5 15 ....
MULTIPLEXOR
I
I I I I I I 0 1 2 3 4 5 15 ....
Instrucţiunea OEN (OUTPUT ENABLE) încarcă registrul OEN cu starea logică a unei
intrări selectate prin program. Deci, registrul OEN controlează accesul datelor spre cele 16 ieşiri
ale kit-ului. În funcţie de valoarea cu care este încărcat apar două situaţii: Registrul OEN este 1
logic, datele circulă neafectate de la registrul RR la ieşiri; Registrul OEN este 0 logic, kit-ul
procesor refuză sau ignoră orice instrucţiune de scriere STO sau STOC. Scopul instrucţiunii
OEN este acela de a crea o intrare sau mai multe intrări care să condiţioneze comanda
elementelor de execuţie din proces. Schimbarea stării registrului OEN s face cu o nouă
instrucţiune OEN. La iniţializarea sistemului (la punerea sub tensiune sau la resetarea acestuia),
registrul OEN se află în starea logica O. Pentru validarea accesului datelor de intrare, este
necesară încărcarea lui cu starea logica 1. Pentru a valida executarea instrucţiunilor STO sau
STOC, este necesară încărcarea sa cu starea logica 1 de la una din intrări (de exemplu I0)
conectată la +5V, pentru a avea permanent starea logică 1, iar programul trebuie să înceapă cu
instrucţiunea OEN I0
Kit-ul procesor 14.000 A conţine un circuit de memorie, vezi fig. 3.6, în care se află
înscris programul de aplicaţie. Instrucţiunile sunt scrise succesiv, începând cu prima adresă din
MEMORIE, în ordinea crescătoare a adreselor Pentru ca instrucţiunile să poată fi executate rând
pe rând, intrările de adrese ale memoriei sunt conectate la un circuit NUMĂRĂTOR, care
primeşte impulsuri de tact de la un circuit oscilator, CLOKC şi adresează memoria, începând de
la adresa 0 până a adresa 255, după care reia numărarea de la adresa 0 în mod ciclic. În
majoritatea cazurilor, programul de aplicaţie are mai puţin de 256 de instrucţiuni. Pentru a evita
parcurgerea inutilă a locaţiilor libere rămase in memorie, Kit-ul procesor 14.000 A are
instrucţiuni speciale care pot comanda numărătorului reluarea numărării de la adresa 0 sau de la
o altă adresă de program. Aceste instrucţiuni se numesc INSTRUCŢIUNI DE SALT.
Pentru a executa un salt în program sunt necesare două instrucţiuni: NOPO si JMP. Acest
lucru se datorează construcţiei kit-ului procesor. NOPO este o instrucţiune pregătitoare, ea
trebuie scrisă înaintea instrucţiunii JMP, care execută saltul propriu-zis. Instrucţiunile NOPO şi
JMP trebuie însoţite de numărul sau eticheta liniei de program la care se execută saltul. De
reţinut că instrucţiunea NOPO poate sta în program la mai multe instrucţiuni distanţă de
instrucţiunea JMP, dar obligatoriu înaintea acesteia.
Pentru diversificarea posibilităţilor de programare, Kit-ul procesor 14.000 A are şi o
instrucţiune de salt condiţionat: SKZ (SKIP IF RR=0). Efectul instrucţiunii SKZ este următorul:
dacă registrul RR are valoarea 0, se sare (se ignoră) următoarea instrucţiune de program. Spre
deosebire de perechea NOPO-JMP, care execută salt necondiţionat, la orice linie de program,
instrucţiunea SKZ are o singură funcţiune-cea următoare ei şi numai atunci când RR=0.
Tehnica saltului condiţionat echivalează folosirea instrucţiunilor IEN, OEN în probleme
de decizie de tipul IF-THEN-ELSE. Alegerea tehnicii de programare este la dispoziţia
proiectantului de aplicaţie.
Apelarea subrutinelor este o tehnică de programare utilă atunci când fragmente de
program se repetă de un număr de ori. Tehnica presupune definirea unui astfel de fragment ca un
program autonom, numit subrutină, şi apelarea lui prin salt din programul principal, ori de câte
ori este nevoie. La Kit-ul procesor 14.000 A saltul la subrutină se face tot cu perechea NOPO
JMP, revenirea din subrutină în programul principal se face cu instrucţiunea RTN (RETURN). O
subrutină se termină obligatoriu cu RET, această instrucţiune nu are nevoie de o adresă auxiliară,
deoarece adresa de revenire este memorată automat la executarea fiecărui apel de subrutină. După
executarea instrucţiunii RTN se reintră în programul principal cu executarea instrucţiunii care
urmează apelului de subrutină. In interiorul unei subrutine se interzice folosirea instrucţiunii
JMP, face excepţie apelarea celui de al doilea nivel de subrutină. Două nivele de subrutină
înseamnă posibilitatea apelării unei subrutine dintr-o altă subrutină. Kit-ul procesor 14.000 A
oferă această facilitate. In acelaşi program, o subrutină poate fi atât de nivel 1, când se apelează
din programul principal, cât şi de nivel 2, când este apelat dintr-o subrutină.
Pentru oprirea temporară a activităţii Kit-ului procesor 14.000 A se foloseşte
instrucţiunea NOPF, urmată de unul din simbolurile T1, T2 sau T4. Această instrucţiune
declanşează un circuit monostabil pe kit, care blochează un imp tactul (clock-ul)
microprocesorului. Duratele celor trei temporizări pot fi reglate cu ajutorul unor potenţiometre
aflate pe kit.
Din punct de vedere constructiv Kit-ul procesor 14.000 A asigură temporizări astfel:
T1=130ms…1,3s; T2, T4=30ms…300ms.
Folosirea instrucţiunii NOPF este necesară la comanda unor elemente de execuţie
electromecanice, cu inerţie la acţionare şi revenire. Pauzele în program pot fi folosite şi la
comanda unor elemente de semnalizare.
Programele subprogramele pentru Kit-ul procesor 14.000 A sunt scrise în limbaj literar,
cu mnemonicele corespunzătoare instrucţiunilor şi adreselor de execuţie a instrucţiunilor. Pentru
ca un program să poată fi înţeles şi executat de către microprocesor este necesară compilarea lui
din limbajul scris (sursă, limbaj cu mnemonice sau de asamblare), în limbaj specific
microprocesorului numit limbaj în cod obiect sau cod maşină. Codurile obiect suntnumere scrise
în sistem hexazecimal:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.. Procedura de traducere a unui program
sursă în cod obiect se numeşte ASAMBLARE. Aceasta poate fi făcută manual, de către utilizator,
sau automat, cu ajutorul calculatorului, utilizând programe specifice de asamblare.
Pentru Kit-ul procesor 14.000 A se prezintă instrucţiunile acestuia, codurile zecimale ale
intrărilor şi ieşirilor, cu codurile obiect, scrise în sistem hexazecimal şi binar. Algoritmul de
funcţionare al sistemului propus
Algoritmul sintetizat şi propus în fig.3.7 oferă următoarele facilităţi secvenţiale
programului de lucru al unităţii cu microprocesor de tip Kit procesor 14.000 A. iniţializarea
porturilor de ieşire ale unităţii, imediat după punerea sub tensiune a acesteia; în primele cicluri
maşină, fiecare port, (al ieşirilor Qi conectate), este adus la starea 1 logic, mai puţin portul Q0,
prin care se semnalizează prezenţa tensiunii 5V. Se consideră validă comanda de activare a
ieşirilor cu semnalul 0 logic, având în vedere conexiunea OPEN COLECTOR a porturilor Qi .
Semnalul 0 logic pe porturile de ieşire nu produc efect asupra elementelor de execuţie conectate
(LED-uri, micro-relee ).
Cod Cod Cod BINAR MNEMONICA FUNCTIE
DECA HEXA
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
se verifică starea sistemelor de protecţie; se semnalizează optic dacă una sau mai
multe protecţii sunt acţionate; dacă nu sunt îndeplinite condiţiile de pornire din
punctul de vedere al protecţiilor se semnalizează optic corespunzător şi se
comandă saltul la eticheta ET0, ciclul se reia succesiv până la îndeplinirea
condiţiilor de funcţionare normală;
dacă starea protecţiilor este corespunzătoare, se trece la controlul stării contactului
K1, de blocaj, care permite accesul la comanda de pornire numai a persoanelor
autorizate ce deţin accesul pe respectivul contact; Dacă starea lui K1 este
necorespunzătoare, se semnalizează acest lucru şi se comandă reluarea ciclului de
control şi comandă începând de la eticheta ET0;
se verifică ciclic starea butonului de pornire I. Când acesta este acţionat se trece la
etapa de interogare a contactului K2 prin care se stabileşte dacă pornirea motorului
va fi fără sau cu temporizarea programata T; Dacă este programată temporizarea T
la pornire, se semnalizează optic, prin portul corespunzător, pe toată durata
temporizării;
START
ET 0
INITIALIZEAZA
PORTURI IESIRE SI
SEMNALIZEAZA TENS. +5v
SUBR 1SEMNALIZARE OPTICA
STARE SUBSISTEME
NU
PROTECTII
OK=?
DA
DA
BLOCARE, K1=?
ET 1 NU
K2=? TEMPORIZARE LA
PORNIRE= T[s] SI
COMANDA PORNIRE ET 2 SEMNALIZARE
NU
I=? OPTICA
NU DA
TEMPORIZARE
DA
PORNIRE
TEMPORIZ. PORNIRE
RESTRICTII
OPRESTE MOTOR SI
SEMNALIZEAZA
NU OPTIC
PROTECTII si
OK=? MOTOR SI
DA SEMNALIZ
OPTIC
ET 3
ET 4
PORNESTE
1 00 IEN I0 AO IEN=1
2 01 OEN I0 BO OEN=1
3 ET 0 02 LD I0 10 RR=1
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
20 13 SKZ EF
21 14 NOPO ET 1 01
22 15 SKZ EF
24 17 NOPO ET 0 00
27 1A SKZ EF
28 1B NOPO ET 0 00
29 1C SKZ EF
34 21 SKZ EF
36 23 SKZ EF
38 25 SKZ EF
40 27 SKZ EF
42 29 SKZ EF
44 2B SKZ EF
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
60 3B NOPO ET 2 02
61 3C JMP ET 2 CD
62 ET 4 3D STOC Q2 92 Opreste motor
64 3F NOPO ET 0 00
65 40 JMP ET 0 C2
76 4B RTN DF
In acest capitol se propune implementarea, în chema electrică fin Fig. 3.1, a unui sistem
microprogramabil de tip microcontroler. Microcontrolerul este un circuit integrat de tip
microprocesor, fiind orientat structural si funcţional spre lucrul cu intrări şi ieşiri. Dacă se
înglobează intr-un circuit integrat pe lângă microprocesor, memorie ROM , memoria RAM şi
elementele de intrare/ieşire necesare unei anumite aplicaţii se obţine cel mai complex circuit
integrat numit microcontroler. Un microcontroler este similar unui microprocesor. Ambele conţin
o unitate centrala de prelucrare sau UCP (Central Processing Unit). CPU execută instrucţiuni care
îndeplinesc operaţiile de baza logice, matematice şi de curgere a informaţiei.
Diagrama PSoC ilustrată în figura 4.1, ilustrează arhitectura nivelului înalt al familiei de
dispozitive PSoC. Fiecare bloc al diagramei este prezentat pe larg în paragrafele: PSoC Core,
Sistemul Digital, Sistemul Analogic şi Resursele sistem. Toate aceste paragrafe reprezintă
reţeaua de comunicaţii a sistemului magistrală (System bus).
Port 7 Port 6 Port 5 Port 4 Port 3 Port 2 Port 1 Port 0 Driver
Analogic
Magistrală
Magistrală digitală de
interconectare Intrerrupt
Memory
controller CPU (M8C) WatchDog
SRAM Magistrală analogică de
interconectare
SROM Flash
Magistrală
Referinţă
Aria Blocurilor Digitale Aria Blocurilor Analogice
Analogică
Intrare
Analogică
4 rânduri digitale
4 coloane analogice
Multiplicare
DecimatorsSwitch
Referintă
Clock
Reset Sistem
Acumulare
I2C Tensiune
USBMultiplx. IO
Digital Resursele Sistemului (MAC) Mode Pump Internă
POR sau LVD Analogică
Î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
O P2[0] R L_Umin
3 4 5 6 7 8 P0[4]
6
K1
9 P0[2] 26 25 24 23 L_PermiteP
K2 6
ornire.K1
R
P2[1] 2
L_temporiza
P2[4]
P0[6] R
P2[2] re.K2
Rss C
R C
Rrt 11 P1[1] P1[2] R
P1[5] 18 17 16
P1[6]
12
Y
L_Rss
RUmin P1[3] R
Rse 10 13 C P1[4] L_Rse L_Rt
P1[7] R
14 Vss 15
P1[0]
PSoC
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
PROIECTARE
SALVARE Salvarea proiectului în mod frecvent
PROIECT
Pasul 1
Pasul 3
SIMULARE SI VERIFICARE PE
CALCULATOR
<= MAI MIC SAU EGAL ADEVĂRAT daca operandul din stânga
este mai mic sau egal decât operandul
din dreapta
>= MAI MARE SAU EGAL ADEVĂRAT daca operandul din stânga
este mai mare sau egal decât operandul
din dreapta
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.
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.
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)
b)
c)
a)
Fig.4.7 Sinteza logica a evaluatorului FcTransfer_1
În figura 4.7,a este prezentată interfaţa grafică în care s-a sintetizat funcţia de evaluare, de
tip Table Lookup, corespunzătoare intrărilor P, K1, Rss, Rsc, RUmin, Rt. Funcţia de evaluare este
elementul care leagă intrările logice de ieşirile de control. Funcţiile de evaluare reprezintă esenţă
o metodă eficientă de analiză a expresiilor, de evaluare a priorităţilor, de identificare a tipului de
ieşiri şi de administrare a stărilor logice. Pentru sintetizarea funcţiei de evaluare FcTransfer_1 sau
ales intrările prezentate mai sus, prin apăsarea butonului ”Set Inputs”, utilizând interfaţa din fig.
4.7,b. După alegerea intrărilor se apasă Next şi pe ecran va apărea un interfaţa grafică ”Add
Values”, care permite programatorului altor valori logice a ieşirii obiect. În cazul de faţă avem
nevoie de două stări ale funcţiei de evaluare, valori care există implicit si anume ON căruia îi
corespunde valoarea 1 logic, respectiv OFF căruia îi corespunde valoarea 0 logic. Tabelul Table
Lookup este ultima etapă care face corelaţia dintre butoanele/contactele de intrare şi ieşire, în
cazul de faţă funcţia de evaluare.
Tabelul 2 Tabelul de adevăr al funcţiei de evaluare ”FcTransfer_1”
(RUm 0
Intrare 1 Intrare 2
(Rt) (Rss) 0 0
0 0 0 Intrare 5 Intrare 6
(P) (K1)
0 0
0 0
0
0 0
Intrar
0 0
1 FcTransf_1 0
0
0
0 0
1
Ieşire
01
.
0 0 0 1 1
1 1
1 0 1
0
1 0 1
0
. 1 1 1
.
În 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.
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.
Semnalizările optice sunt realizate cu led-uri şi anume: LED L_Rsc, LED L_Rss, LED
L_Rt, LED L_RUmin, LED L_Pornire, LED L_Temporizare. Pentru ca fiecare din aceste
semnalizări să funcţioneze precum a fost impus prin condiţiile iniţiale s-a utilizat funcţii de
transfer de tip Table Lookup, similare cu cele utilizate în cazul subdiviziunii de ”pornire
autorizată”. Interfeţele grafice ale funcţiilor de transfer sunt identice cu cele prezentate în figura
4.8. Fiecare dintre aceste semnalizări corespunde unui anumit tip de avarie ceea ce însemna că in
interfaţa logică se va alege individual pentru fiecare tip de intrare-ieşire.
Funcţia care integrează toate celelalte subsisteme de evaluare este funcţia de transfer
Pornire, care utilizează un evaluator de tip Priority Encoder. În figura 4.10 este prezentată
interfaţa logică a evaluatorului, în care sunt consideraţi operatori de intrare funcţiile logice
FcTransfer_1, FcTransfer_2, respectiv butonul de oprire O.
Tabela de adevăr a funcţiei de transfer corespunzătoare pornirii motorului este prezentată
în tabelul 3. Conform acestui tabel de adevăr motorul trebuie să pornească dacă: ⮚ sunt
îndeplinite condiţiile de pornire – butonul de pornire autorizată K1 închis, butonul de pornire
apăsat şi în sistem să nu existe nici o avarie – ceea ce corespunde la faptul că funcţia
FCTransfer_1 este adevărată (1L)
⮚ este îndeplinită condiţia de interogare a contactului K2 prin care se stabileşte dacă pornirea
motorului va fi fără sau cu temporizarea programata T; Dacă este programată
temporizarea T la pornire, se semnalizează optic, prin portul corespunzător, pe toată
durata temporizării;
⮚ este îndeplinită condiţia de interogare a butonului de oprire O prin care se stabileşte că
trebuie să existe posibilitatea ca în orice moment motorul să poată fi oprit.
Tabelul 3 Tabelul de adevăr al funcţiei de transfer ”Pornire”
0
Intrare 1
(FcTransfer_1)
1
1
1 1 0
1
1 1
Intrare 2 0 0
(FcTransfer_2)
0 1
1 0
0
110
0
Deoarece în figura 4.10 nu au putut fi exemplificate toate expresiile logice, acestea sunt
prezentate explicit în figura 4.11. Această reprezentare este echivalentul expresiilor în limbajul de
programare C al tabelului 3.
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.
Î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 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.
#include "driverdecl.h"
#include "CMXSystem.h"
#include "CMXSystemExtern.h"
#include "TransferFunction.h"
#include "cmx.h"
#include "ProjectProperties.h"
#include "Custom.h"
// Channel includes
// Initialize Channels
// 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);
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);
// 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Ă
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.
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