Documente Academic
Documente Profesional
Documente Cultură
Echipamente Numerice CURS
Echipamente Numerice CURS
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ă.
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.
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
Intrări Digitale
Magistrale
Analogice
analogice
analogice
Dispozitiv
Digitale
digitale
Blocuri
Blocuri
SRAM
Intrări
Flash
Ieşiri
PSoC
SISTEMUL DIGITAL
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
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.
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.
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.
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 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.23 Citire în cod de bare. Fig. 3.24 Cântar automat cu AP.
3.5.2. Elemente de execuţie
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.
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.
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ă 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.
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. c. d.
Fig. 3.40 Tipuri de acţiuni în 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.
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
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
C C C
Rsc
releu de scurtcircuit
Rss
releu suprasarcina
Rtemp.
M
releu termic
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
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
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.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
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
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
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 ).
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
NU OPRESTE MOTOR SI
PROTECTII
si RESTRICTII SEMNALIZEAZA OPTIC
OK=? ET 4
DA
ET 3
PORNESTE MOTOR
SI SEMNALIZ OPTIC
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
Analogică
Intrare
Analogică
Magistrală
Î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.
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
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
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
Pasul 2
DEFINIRE A
COMPORTAMENTULUI
IEȘIRILOR FUNCȚIE DE
INTRĂRI
Pasul 3
SIMULARE SI VERIFICARE PE
CALCULATOR
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.
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 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”
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.
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.
Î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
#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Ă
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.
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.4
Figura 5.5
Figura 5.6
Figura 5.7
Figura 5.8
Figura 5.9
Figura 5.10
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.
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
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
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.
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.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.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.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.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.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.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.121: Main/AlphaNumeric
Device Type : AlphaNumeric
Input pin 1 : Data (Any, Any)
Clear At Prerun : on
Clear at Activate : on
Indices Enabled : on
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)