Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » tehnologie » electronica electricitate
Automatul programabil

Automatul programabil


Automatul programabil

1 Introducere

Intr-o economie moderna, orice modernizare (control) are ca obiectiv sa ridice competivitatea unui produs, fie direct prin cost si calitate, fie indirect prin imbunatatirea conditiilor de munca.

Controlul implica conducerea unor sisteme dinamice avand stari continue.

Aceste sisteme sunt descrise de ecuatii diferentiale si au intrari si iesiri analogice.

Conducerea acestor sisteme se realizeaza cu calculatoare de proces echipate cu module de intrari/iesiri analogice performante. Exista situatii in care intrarile, iesirile si starile unor sisteme pot fi modelate prin variabile binare. In aceste cazuri cerintele impuse sistemelor de conducere sunt mai reduse, ultilizandu-se automatele programabile.



De la aparitia lor automatele programbile s-au raspandit rapid in industrie reprezentand astazi unul din cele mai utilizate echipamente. Succesul lor se datoreaza in primul rand pretului si faptului ca pot fi puse in functiune si eventual programate de personal fara pregatire de nivel inalt in domeniul informaticii.

Automatele programabile sunt microcalculatoare simple, special construite pentru a rezolva, prin program, problemele de logica secventiala. Aceste echipamante ofera mai putine oportunitati decat calculatoarele informatice sau cele de proces dar pot fi utlizate foarte usor de un personal mai putin specializat datorita limbajelor de programare mai simple. Derularea unui program automat este de tip sincron, ceeea ce elimina complicatiile care apar in cazul multi-taskingului.

Ceea mai mare parte a automatelor sunt construite pentru a inlocui releele , ele lucrand cu variabile booleane si avand unitatea centrala simplificata. Ca in toate domeniile, progresul tehnologic s-a concretizat si aici prin punerea la punct a unor automate programbile performante, de complexitatea calculaoarelor de proces care ofera multe facilitati si care pot fi utilizate in automatizari deosebit de complexe.

2 O scurta istorie a automatelor programbile

Primele automate programabile au fost introduse in anul 1969 in Statele Unite de catre inginerii de la General Motors pentru a satisface nevoile industreie de automabile. Scopul lor a fost de a inlocui releele utilizate pentru automatizarea liniilor de fabricatie cu echipamente mai ieftine si, in plus, mai flexibile. Primul automat a fost propus industriei de automobile sub numele de MODICON (Modular Digital Controller). Din punct de vedere hardware, in anii '70 tehnologia de realizare a unitatilor centrale ale automatelor programabile era dominata de procesoarele bit-slice. Circuitele AMD 2901 si 2903 echipau automatele MODICON si A-B (Allen Bradley). Chiar si azi unele automate sunt echipate cu aceste procesoare.

Aproximativ prin 1973 automatele programbile au inceput sa fie dotate cu facilitati de comunicare. Un astfel de sistem a fost MODICAN MODBUS. Acum automatele puteam comunica unele cu altele si se puteau situa la distante de procesul de condus. Din pacate, in lipsa unei standardizari corelata cu rapiditatea schimabarilor din tehnologia electica au facut ca multitudinea de protocoale utilizate , specifice firmelor producatoare , sa fie un cosmar pentru utilizatorii de automate programabile.

Anii '80 au constituit ani de incercare de standardizare a comunicatiilor utilizandu-se MAP (Manufacturing Automation Protocol) de la General Motors. Apoi s-a introdus, ca varianta europaeana, PROFIBUS promovat in special de firma SIEMENS. In acesti ani au fost realizate progrese insemnate in ceea ce priveste reducerea dimensiunilor autoomatelor programabile si aparitita limbajelor de programare realizabile prin intermediul calculatoarelor personale. In ceea ce priveste dimensiunile se poate constata ca un automat programabil poate atinge astazi dimensiunile unui releu, desi el poate ingloba sute de astfel de relee.

Din punct de vedere software cei mai multi dintre producatorii de automate au implementat la inceput limbajul LAD (Ladder Diagram). Acest limbaj a fost dezvolatat in jurul unei reprezentari schematice a circuiteleor cu contacte si relee. Pentru probleme simple de automatizare, programarea in Ladder Diagram este ideala deoarece este intuitive si poate fi inteleasa fara o pregatire speciala, dupa o scurta perioada de instrurire.

La inceputul anilor '90 existau mai mult de o mie de producatori de automate programabile, fiecare din ei avand implementat limbajul Ladder Diagram. Din pacate, in absenta oricarei standardizari, fiecare producator a avut implementari usor diferite. Aceste implementari au ca scop extinderea setului de instructiuni. Pentru aceasta s-au introdus asa numitele operatii speciale. Exemple de astfel de operatii speciale snt diferite tratari numerice ale variabilelor, ale contoarelor de mare viteza, ale controlului motoarelor electrice, etc. Programele scrise pentru sisteme diferite erau similare, dar setul de instructiuni variaza de la un producator la altul. Aceasta situatie tinde sa lege un programator de un anumit producator, mai ales in cazul elaborari unor aplicatii complexe unde se utilizeaza intreg setul de instructiuni si toate tehnicile de programare. Cu scopul eliminarii acestei dependente, in anul 1979 s-a construit un grup de lucru al Comisiei Electrotehnice Internationale (CEI) care si-a propus o standardizare completa a automatelor. Standardul dezvoltat, IEC 1131, ulterior numit IEC 61131 este o astfel de incercare, standardul fiind respectat de tot mai multi producatori.

3 Automatul programbil Control Logix de la Rockwell

In aceasta lucrare s-a ultilizat pentru conducerea procesului neliniar automatul programabil de ultima generatie , Control Logix, produs de Allen Bradley, care acum este membru Rockwell Automation (Fig. 1).

Figura 1 Automatul programbil Control Logix

Automatul programabil Control Logix pe care l-am utilizat pentru conducerea procesului neliniar are o structura modulara :

Unitatea centrala - aceasta contine procesorul si memoriile ;

Modulele de intrare/iesire - acestea se impar in doua categorii si anume module care gestioneaza marimile analogice si module care se ocupa cu marimile digitale ;

Modulele de comunicatie - in cazul nostru avem un singur modul care gestioneaza comunicatia cu calculatorul sau cu celalalte automate prin protocolul EtherentIP ;

Carcasa inteligenta - aceste tipuri de automate programabile dispun de carcase inteligente prevazute cu sloturi in care se conecteaza fiecare modul in parte

In continuare vom lua fiecare modul si il vom descrie.

3.1 Unitatea centrala de procesare

Unitatea centrala de procesare are o structura modulara, ea fiind incapsulata intr-un modul care se introduce intr-un slot din carcasa. Acest modul contine un procesor puternic, capabil sa gestioneze 32 de taskuri (1 task continuu si 31 periodice sau 32 periodice). Aceste taskuri sunt la randul lor structurate in mai multe programme.Un singur task poate cuprinde pana la 32 de rutine. Am mentinoat la inceputul acestui subparagraf ca , procesorul (L55) poate gestiona task-uri periodice si un singur task continuu. Fiecarui task periodic i se poate adauga de catre programtor un numar care repreznta prioritatea cu care taskul respectiv intrerupe activitatea curenta a procesorului preluand controlul acestuia. De asemenea fiecarui task periodic i se seteaza tot de catre programtor si perioada. Spre deosebire de taskurile periodice, intr-un proiect poate exista doar un singur task continuu. Acesta se ruleaza tot timpul, cu exceptia momentelor cand este intrerupt de vreun task periodic. Dupa ce s-a executat acest task periodic, controlul procesului este preluat din nou de task-ul continuu.

Tot in acest modul se afla si memoria sistemului care variaza de la 64K la procesoarele mai vechi (L50) la 7,5M la cele mai noi (L55). De asemenea la generatia de controlere L63 este disponibil si un card de memorie externa de 64M. Acesta este util deoarece la caderea sursei de alimentare datele continute in memorie nu se pierd, spre deosebire de celalalte tipuri de procesoare.

La acest proiect am utilizat un procesor de tip L55 cu 7,5M. Aceasta memorie se afla plasata in modulul care contine procesorul. Din punct de vedere structural memoria este impartita in doua regiuni : memeoria de baza si memoria de program. In memoria de baza se stocheaza variabilele corespunzatoare marimilor de intrare si iesire ale procesului si toate celalalte constante utilizate de program (se numesc tag). In memoria de program sunt stocate toate taskurile care exista in proiect.

Tot acest modul este prevaut si cu o interfata seriala RS232 pentru comunicatia cu echipamentele externe si o mini sursa de tensiune (baterie alcalina) care are rolul de a pastra datele incarcate in memoria controlerului in eventualitatea caderii tensiunii de la reteaua de alimentare. Daca si aceasta sursa redundanta nu mai functioneaza atunci la caderea tensiunii se vor pierde si datele din memoria automatului.

Fig 2 Unitatea centrala de procesare

3.2 Modulele de intrare/iesire

Legatura cu procesul este realizata la automatul programabil prin intermediul modulelor de intrare/iesire. In functie de tipul informatiei care este folosita la conducerea proceselor (marimile de proces pot fi fie analogice fie digitale) modulele sunt de doua tipuri : modulele care gestioneaza marimi digitale si module care se ocupa cu preluarea si calcularea marimilor analogice din proces. In cazul nostru cele doua marimi ale procesului (iesirea si comanda procesului) sunt marimi de tip analogic si deci sunt gestionate de modulele analogice de comnuicatie (Fig 3).

Fig. 3Modulele de intrare/iesire

Modulele analogice pe care le-am avut la dispozitie sunt de tipul 1756 - IF 6I

si respectiv   1756-OF6VI , avand fiecare cate 6 porturi izolate de intrare respectiv iesire. Ambele module analogice prelucreaza doar marimi electirce (analogice) continue, de aceea fiecare port de intrare/iesire este prevazut cu un punct de potential nul - masa si un punct «plus». Potentialul acestuia se masoara in functie de nulul asociat lui. De asemenea cele doua module permit selectarea mai multor intervalle in care marimile de proces pot functiona. Astfel se pot utliza 3 domenii : [-10V ;+10V], [0 ;+5V] si [0 ;+10V]. Toate aceste optiuni se pot selecta foarte usor cu ajutorul programelor pe care acest automat le utilizeaza. Legatura intre calculatorul pe care ruleaza aceste programe si automatul programabil se face prin modulul de Ethernet IP descris in paragraful urmator.

3.3 Modulul de comunicatie Ethernet IP (Ethernet Industrial Protocol)


Pe langa portul de comnuicatie seriala (RS 232) situat pe modulul unitatii centrale mai exista si module separate pentru stabilirea unei comunicatii a automatului programabil cu alte aparate. Aceste module se conecteaza direct intr-un slot al carcasei inteligente.

Avand in vedere ca protocolul Ethernet este foarte utlizat pentru proiectarea unei retele "obisnuite", tehnologia lui s-a implementat si in cazul echipamentelor industriale. Astfel au fost proiectate module de comunicatii intre echipamentele industriale care utlizeaza un astfel de protocol.

In cazul nostru automatul este echipat cu un modul de comunicatie care utilizeaza un astfel de protocol (1756-ENBT, Fig 4).

Fig. 4 Modulul de comunicatie EthernetIP

Dupa ce s-a instalat fizic in unul din sloturile carcasei, modulului de EthernetIP i se atribuie o adresa prin care se poate identifica pe o retea. Aceasta adresa nu este altceva decat un IP (un set de 4 numere cuprinse intre 0 si 255). Acest IP va deveni de fapt adresa de identificare a automatului in care se afla situat modulul.

De asemenea prin intermediul acestui modul se pot accesa si utiliza si celalalte module (analogice si digitale) si de mai multi operatori care se afla conectati la reteaua industriala unde functioneaza automatul. 'Poarta' de acces la toate modulele automatului programabil o reprezinta carcasa inteligenta.

3.4 Carcasa inteligenta - backplane

Fiecare modul, fie cele care contin microprocesoarele, fie modulele de intrare/iesire sau cele de comunicatii cu reteaua industriala sunt instalate intr-o carcasa inteligenta (Fig. 5). Modulele singure nu pot fi operationale. Asadar automatul programabil reprezinta (in cazul nostru) un sistem modular in care buna functionare a partilor lui componente este asifurata de controlerul carcasei.

Fig 5 Carcasa inteligente ControlLogix

Fiecare modul in parte este identificat in functie de locul in care se afla plasat in carcasa. Fiecare slot in parte este identificat cu un numar de la 0 (slot-ul de langa sursa de alimentare) pana la n-1(unde n reprezinta numarul de slot-uri disponibile). Exista carcase cu patru, sapte si respectiv noua sloturi in functie de numarul modulelor cu care este chipat automatul. De asemenea fiecare carcasa are propria ei sursa de alimentare. Pentru proiectul nostru am utilizat o carcasa cu sapte sloturi disponibile. La automatul programabil Control Logix nu exista nici o regula de plasare a modulelor in sloturile din carcasa, astfel modulul cu unitatea de procesare poate fi plasat in oricare din sloturi. Acelasi principiu se aplica si pentru celalalate module.

Toate modulele care compun sistemul Control Logix, indifferent daca sunt modele de intrare/iesire, module de comunicatie pentru retele industriale sau modele care detin unitatile de procesare pot fi instalate sau dezinstalate din sloturile carcasei fara a intrerupe alimentarea acesteia. Astfel daca un modul ce controleaza un proces mai complex se strica , iar oprirea intregii instalatii tehnologice ar fi foarte costisitoare, el se poate schimba fara oprirea alimentarii. Totusi pentru evitarea unei astfel de situatii se instaleaza de obicei pe langa sistemul principal care conduce procesul si un sistem redundant. Astfel cand se defecteaza unul din automate sistemul redundant preia controlul procesului evitand oprirea instalatiei tehnologice.

Limbajele de programare ale automatului

6.1 Introducere

Cei mai multi producatori de automate programabile ofera aceleasi tipuri de instructiuni de baza, dar exista diferente de forma, operatii, etc., de la un producator la altul.

Comisia Electrotehnica Internationala (IEC) este o organizatie care dezvolta standarde pentru diferite domenii ale ingineriei electrice. In ultimii ani aceasta comisie a dezvoltat si publicat standarde pentru programarea automatelor programabile. In mod concret, aceste standarde recomanda diferitilor producatori sa ofere acelasi set de instructiuni. Documentul care se refera la aceasta problema este standardul IEC 1131. Standardul are cinci parti si cuprinde informatii despre cerintele hardware, limbajele de programare, ghidul utilizatorului, standarde de comunicatii.

In general, numarul instructiunilor care apare in IEC 1131 este mai mic decat cel oferit de producatori. Instructiunile care apar in plus sunt utilizate pentru elaborarea aplicatiilor mai deosebite si constituie un criteriu pentru alegerea unui anumit tip de automat, pe langa criteriile de pret si calitate. Studiul standardului permite realizarea cu usurinta a programelor pentru automatele programabile produse de diferiti producatori, cu foarte putine probleme de adaptare.

Normele IEC 1131 defienesc SFC (Sequential Function Chart ) ca fiind un mijloc destinat pentru structurarea si organizarea unui program. Unele medii de programare (cum este si cazul programul utilizat in lucrearea de fata) ofera compilatoarea grafice pentru realizarea programelor pentru automate. SFC are la baza reprezentarea sub forma de retea GRAFCET a actiunilor secventiale.

In cadrul acestor norme sunt definite doua limbaje litereale :

IL (Instruction List) sau STL (StaTement List), care are o structura asemanatoare cu limbajele de asambalare ala microprocesoarelor ;

ST (Structured Text), care foloseste instructiuni de atribuire, de selectie si de control a subprogramelor avand o structura apropiata de limbajele de nivel inalt;

si doua limbaje (semi)grafice :

LD (Ladder Diagram), care permite programarea aplicatiilor intr-o maniera asemanatoare cu proiectarea unui circuit cu contacte si relee. Limbajul opereaza numai cu variabile booleene ;

FBD (Function Block Diagram), care este o extensie a limbajului LD, continand blocuri complexe. Spre deosebire de LD, acest limbaj permite lucrul si cu variabile de tip real ;

Tipurile de date elementare definite de normele IEC 1131 sunt :

Booleene, notate cu BOO L ;

Intregi, notate cu INT;

Cuvinte (16 biti) si cuvinte duble (32 biti) notate cu WORD si respectiv DWORD ;

Reale (32 biti), notate cu REAL ;

Siruri de caractere, noatate cu STRING ;

Variabile de tip timp si data, notate TIME si respectiv DATE.

Este permisa utilizarea unor date de tip tablou (ARRAY) si structura (STRUCT), precum si date derivate din acestea. Identificarea datelor se face utilizand atat adrese absolute cat si simbolice.

Adresarea absoluta utlizeaza denumirea zonei de memorie pentru identificarea adresei. Denumirea zonelor de memorie pot cuprinde doua prefixe.

Primul prefix poate fi :

% I, pentru intrari ;

% Q, pentru iesiri ;

% M, pentru variabile interne ;

Iar al doilea poate fi :

x.y, pentru variabilele de tip boolean. Valoarea x reprezinta octetul , iar valoarea y  reprezinta bitul.

B, pentru octet(byte) ;

W, pentru cuvant(WORD) ;

D, pentru dublu cuvand ()

Adresarea indirecta utilizeaza identificatorii, care sunt siruri de caracatere alfanumerice, incepand cu o litera, pentru identificarea adresei. In aceste cazuri este nevoie de editarea unei tabele de simboluri pentru a face legatura dintre adresa absoluta si cea indirecta.

6.2 RSLogix 5000 si RSLinx

Pentru programarea automatului s-a utilizat programul produs de aceeasi firma Rockwell si anume RSLogix 5000 (Fig. 6.1). Acesta intruneste majoritatea cerintelor impuse de standardul IEC 1131 in privinta programarii automatelor.

Fig. 6.1 RSLogix 5000 - Mediul de programare al automatului

Acest mediu de programare permite utilizatorului sa poata scrie procedurile in diferite limbaje cum ar fi Ladder Diagram, Function Block Diagram, Sequential Function Chart. De asemenea este impletmentat si un limbaj literal cum este Structured Text.

Un proiect implementat in RSLogix este impartit in mai multe structuri ierarhice. Astfel proiectul poate contine (in cazul automatului programabil ControlLogix 5555) pana la 32 de task-uri. Fiecare task este impartit in programme iar fiecare program contine una sau mai multe rutine, in functie de memoria de care dispune automatul.

Rutina - este cea mai mica unitate in care se poate imparti un proiect implementat in RSLogix. Incercand sa dam o definitie, putem spune ca rutina este un bloc de cod executabil. Cu alte cuvinte putem asemana rutina cu o functie (in mediile de programare conoscute). Fiecare rutina poate fi implementata in unu din cele patru limbaje de programare pe care acest mediu le pune la dispozitie. Fiecare mediu in parte este reprezentat printr-o poza diferita pentru a putea fi diferentiate mai usor de catre programator.

Rutinele care sunt proiectate pentru un scop comun se grupeaza intr-un program, chiard aca ele sunt implementate in limbaje diferite. Fiecare rutina ce apartine unui program are acces doar la variabilele ce au fost definite in cadrul acelui program. In RSLogix aceste variabile se numesc tag-uri. De asemenea orice rutina din cadrul aceluiasi program poate cere executia altei rutine -aflate in acelasi program - chiar daca rutina chemata in executie este scrisa intr-un mediu diferit.

Programul - reprezinta urmatoarea treapa ierarhica in care se poate diviza un proiect. Ca o definitie putem spune ca un program este un grup de rutine si date care au un scop comun. Fiecare program are definit pentru rutinele care se afla ub componenta lui un set de variabile (tag-uri). Aceste tag-uri sunt accesibile doar rutinelor ce se afla in acelasi program. Datorita acestui fapt datele precum si rutinele din programe diferite sunt separate intre ele. Acest fapt permite reutilizarea codului scris. Programele sunt organizate in nivele superioare si anume in task-uri. Intr-un singur task se pot gasi pana la 32 de programe, fiecare din programe putand contine una sau mai multe rutine. Un program este iedntificat, ca si in cazul rutinelor de un simbol grafic ( Fig. 6.2) :

Fig 6.2 Simbolul grafic pentru un program

Task-urile - reprezinta ultimul nivel ierarhic. Taskurile sunt folosite pentru a putea « programa » executia programelor ce se afla in componenta lui. Taskurile pot fi de doua tipuri :

continuu - este taskul care se executa continuu pana cand este intrerupt de un task periodic ; intr-un proiect pot fi unul sau nici un task continuu .

periodice - sunt task-urile care se executa in functie de timp ; pentru astfel de task-uri se defineste o perioada (o rata de executie) si o prioritate de intrerupere a alor task-uri. Pot exista intr-un proiect pana la 32 de task-uri periodice (daca nu exista nici unul continuu) sau 31 de task-uri periodice si unul continuu.

Si in cazul task-urilor exista un simbolism grafic, pentru a putea fi diferentiate, Fig 6.3 :

Fig. 6.3 Task Continuu siTask Periodic

Odata ce un task a fost declansat, el va executa toate programele care se afla in el, pana cand este intrerupt de un alt task. Programele se executa in ordinea in care sunt plasate in task, de la primul pana la ultimul. Ordinea de executie a programelor din interiorul unui task se poate schimba.

In Fig. 6.4 este prezentata o astfel de ordine de executie a unor programme ce se afla in cadrul unui task continuu:

Fig 6.4 Ordinea de executare a programelor din cadrul unui task

Fiecare program din orice task (indiferent daca este periodic sau continuu) poate contine una sau mai multe rutine scrise in cele patru limbaje de programare. Insa obligatoriu ca o rutina din fiecare program sa fie setata ca fiind «rutina principala », ea fiind prima care se va executa cand programul respectiv va fi executat. Pe langa aceasta rutina principala se mai poate seta inca o rutinacare se va ocupa cu tratarea diferitelor erori ce pot aparea in rularea programelor. Rutina principala poate sa fie implementata in oricare din cele patru limbaje de programare. Cand o rutina este setata ca fiind principala, pe simbolul ei grafic apare imprimat cifra «1 », semn ca ea va fi prima care se va executa din programul respectiv (Fig. 6.5).

Fig. 6.5 Rutina principala

Dupa cum am mai spus si mai devreme, o rutina are acces doar la variabilele(tag-urile) din cadrul aceluiasi program. Insa mai exista si aun alt tip de variabile si anume cele care sunt organizate pe acelasi controler (L55). La acest tip de tag-uri au acces toate rutinele ce lucreaza pe acel procesor (controler).

Dupa cum reiese si din Fig. 6.6 toate aceste informatii despre proiectul in RSLogix apar situate intr-o fereastra pozitionata in partea stanga jos a ecranului principal. In partea superioara a ecranului se afla optiunile pentru setarea caii catre procesorul automatului in memoria caruia se va incarca proiectul. Tot in aceasta parte se afla si optiunile prin care programatorul poate sa porneasca rularea proiectului, odata ce el a fost incarcat in memoria automatului.

Fig. 6.6 Proiect implementat in RSLogix

Legatura dintre modulele automatului programabil si softul de proiectare se face prin intermediul unor drivere de comunicatie. Aceste drivere se gasesc grupate toate intr-un singur progra numit RSLin. Acest program se instaleaza si ramane in memoria calculatorului care ruleaza RSLogix. Programul de drivere face efectiv posibila incarcarea in memoria automatului a proiectelor ce au fost implemetate in RSLogix si punerea automatului pe modul de rulare (run mode).

In Fig. 6.7 se poate observa stuructura programului RSLinx :

Fig 6.7 RS Linx

in dreapta sunt automatele programabile detectate, active. Doar unul este pornit, aceasta conexiune s-a realizat prin EthernetIP

in partea stanga in chenarele albastre sunt modulele care sunt instalate in automat precum si tipul lor, numarul din fata ficarui modul semnifica nr slotului din carcasa in care este instalat respectivul modul

6.3 Limbajul FBD (Function Block Diagram)

Fiind la prima utilizare a acestui automat programabil si a softurilor prin care se poate programa automatul am ales sa implementez algoritmul de conducere a procesului neliniar intr-un limbaj accesibil pentru cei fara experienta. De aceea rutina care contine codul proiectului a fost implementata in FBD. (Fig. 6.8).

Fig 6.8 Structura Proiectului

Datorita faptului ca am utilizat doar o rutina scrisa in FBD, celalalte limbaje nefiind utilizate in proiect, voi face o descriere doar a acestui tip de limbaj de programare a automatelor.

Limbajul FBD este un limbaj ce utilizeaza elemente grafice. El permite programatorului sa construiasca functii complexe utilizand blocurile existente in bibliotecile mediului.

Un program FBD este alcatuit din blocuri de functii elementare, conectate intre ele prin linii de legatura. Programul se executa de sus in jos si de la standa la dreapta. Fiecare bloc are un numar de intrari si iesiri. Blocul este reprezentat printr-un dreptunchi. Intrarile sunt in partea din stanga si iesirile sunt in partea din dreapta a blocului. Un bloc elementar realizeaza o singura functie asupra intrarilor. Functia pe care o realizeaza blocul este scrisa in interiorul acestuia. La intrarile fiecarui bloc sunt legate variabile de intrare, iar variabilele de iesire ale blocurilor pot fi conectate la iesirile automatului sau la intrarile altor blocuri. Tipul variabilelor de intrare trebuie sa corescpunda cu tipul cerut de intrarea blocului. Iesirea blocului poate fi de acelasi tip ca si intarea, dar exita cazuri cand pot diferi tipul marimilor de intrare fata de tipul marimilor de iesire.

Evaluarea unui bloc nu se poate face decat atunci cand starile tuturor intrarilor sunt precizate.

Conform recomandarilor IEC, fiecare bloc are o intrare de validare EN pe langa intararile asupra carora realizeaza operatii si o iesire ENO, care poate fi folosita pentru testare. Cand EN este FALSE operatiile definite pe bloc nu sunt executate si iesirea ENO este FALSE. Daca valoarea EN este TRUE, operatiile se executa si iesirea ENO devine TRUE. De asemenea, valoarea ENO devine FALSE, daca a aparut o eroare la executarea operatiilor blocului (Fig. 6.9).


Fig. 6.10 Bloc Functional, conform recomandarilor IEC 1131

Bibliotecile mediilor de programare pentru automate ofera o mare varietate de blocuri, care respecta sau nu recomandarile IEC 1131. Unele medii ofera blocuri complexe, care realizeaza functii de reglare (PID) sau operatii matematice complexe(integrale, dezvoltari in serie, etc.)

Principalele blocuri pot fi impartite in doua mari categorii:

Blocurile standard- care corespunde operatorilor standard si limbajului ST ;

Blocurile speciale- implementate prin proceduri complexe;

Blocurile standard sunt blocuri de manipulare a datelor (se mai numesc si blocuri de asignare), blocuri pentru operatii boolene (AND, OR, XOR), blocuri aritmetice (pentru efectuarea de operatii de adunare, scadere, inmultire si impartire), blocuri de comparative (pentru implementarea operatorilor logici: mai mic, mai mare, etc.).

Blocurile speciale sunt blocuri de manipulare a datelor (multiplexoare, generatoare de numere aleatoare), contoare, temporizatoare, blocuri de procesare a semnalelor (regluatoare PID, integratoare, derivatoare), blocuri generatoare de semnal, blocuri matematice (de calcul a valorii absolute, a functiei exponentiale, logaritmului, a radacinii patrate, a functiilor trigonometrice).

Aspectul general al unui program FBD este prezentat in Fig 6.10

Fig 6.10 Aspectul unui program FBD

6.4 Interfata Om-Masina

Se spune ca orice system de automatizare fara o interfata om-masina asociata este "orb". Interfata om-masina (Human Machine Interface - HMI) ofera posibiliatatea operatorilor sa poata urmari in timp real evolutia procesului. De asemenea prin intermediul acestor interfete se pot implementa, salva si chiar tipari in timp real alarme care sa previna operatorii ca exista problme cu sistemul pe care il controleaza.

Exista astazi multe programe care pot implementa astfel de interfete om-masina care pot fi folosite la monitorizarea si controlul proceselor industriale. Un exemplu in acest sens este si programul ultilizat in acest proiect pentru supervizarea si conducerea procesului nelinar, RSView Fig 6.11.

Fig 6.11 Interfata om-masina RSView

Principalele utilitati ale unei interfete om-masina sunt acelea de a conduce, superviza si monitoriza procesele. Acestea pot fi folosite la controlul si conducerea proceselor din diverse industrii cum ar fi industria petrolului, a semiconductorilor, industria producatoare de autovehicole, industria chimica si farmaceutica si in multe alte domenii.

O astfel de interfata om-masina trebuie sa fie capabila sa expuna texte, imagini, grafice ce au fost declansate in sistem. De asemenea aceste programe trebuie sa fie capabile sa manipuleze sirusi de caractere, sa efectueze diverse calcule matematice, sa opereze in algebra booleana, toate acestea usurand sarcinile automatului programbil.

Prin intermediul acestor interfete operatorul poate urmari evolutia procesului condus dintr-un loc sigur, nefiind necesara presenta lui in apropierea insalatiei tehnologice. Problemele sau anomanliile ce pot aparea in timpul conducerii proceselor pot fi rapid sesizate si remediate datorita alarmelor ce pot fi implementate in cadrul acestor interfete. De asemenea, urmarirea unui istoric al acestor probleme a caror evidenta poate fi pastrata in anumite baze de date sau chiar printate pot duce la remedierea diverselor greseli de proiectare in algoritmii de conducere a proceselor. Aceste erori corectate vor duce la optimizarea proceselor conduse si la cresterea productivitatii.

Fig 6.12 Evolutia marimilor de proces

Pe langa alarme, prin intermediul interfetelor om-masina se pot proiecta grafice de evolutie a diversilor parametrii ai proceselor (trend). Aceste grafice sunt foarte utile mai ales in cazul utilizarii unor algoritmi de reglare a proceselor cum este spre exemplu un regularor PID. Pe aceste reprezentari grafice se pot observa curba pe care valorile marimilor de iesire din proces o urmaresc pana la atingerea unei valori a referintei setate. Un exemplu de astfel de grafic este prezentat in Fig 6.12. Aici apare coloarata cu rosu evolutia marimii de iesire care tinde sa urmareasca referinta setata - in reprezentarea din Fig 6.12 referinta setata apare in culoarea albastru.

Aceste grafice pot fi configurate astfel incat la producerea anumitor evenimente sa porneasca sau sa opreasca reprezentarea marimilor de proces care intereseaza operatorul uman. Si aceste reprezentari ca si alarmele pot fi salvate in baze de date si analizate ulterior de catre operatori.

Exista doua categorii de astfel de trend-uri si anume:

cele care ruleaza in timp real - marimile din cadrul unei astfel de reprezentari sunt actualizate continuu pe toata durata de functionare;

cele offline - care ofera evolutiile diverselor marimi de proces din trecut. Spre deosebire de graficele care ruleaza in timp real, marimile care sunt reprezentate in trend-urile offline sunt actualizate numai atunci cand apar anumite evenimente sau cand sunt programate de operatori.

Pentru a putea obtine evolutia marimilor de process precum si alte informatii importante care de obicei se afla stocate in memoria cutomatului programabil, interfata om-masina trebuie sa dispuna de un mijloc de comunicare cu automatul. In cazul proiectului de fata, legatura dintre automatul programabil si interfata s-a stability fizic prin modulul de EtherenetIP. Programul care gestioneaza comunicatia cu automatul este RSLinx.

In continuare vom face o scura descriere a programului RSView SE   prin intermediul caduia am realizat interfata om-masina asociata sisetemului de conducere a procesului neliniar.

Dupa cum se poate observa din Fig 6.11 in partea stanga a ecranului din RSView avem o fereastra (Explorer) in care se gasesc aproape toate elementele necesare pentru proiectarea interfetei. In fig 6.13 am incercat sa explic o parte din elementele utilizate in aceasta interfata:

Fig 6.13 Fereastra Explorer din RSView

In partea superioara a mediului de proiectare se afla meniurile cu principalele elemente grafice ce pot fi plasate intr-o interfata cu utilizatorul. Tot in aceasta zona se mai afla si obisnuitele butoane de salvare, deschidere si printare a proiectului precum si butoanele de rulare a aplicatiei. Elementele grafice se comporta la fel ca in cazul unor medii de programare vizuala (adica pentru plasarea lor in cadrul unei interfete, programatorul nu trebuie sa faca altceva decat sa le "traga" in zona activa de lucru-drag and drop, dupa care se pot seta eventualele propietati ale obiectului).

In Fig. 6.14 sunt exemplificate cele prezentate anterior:

Fig 6.14 Meniul superior din RSView

In partea din centru dreapta se afla suprafata de lucru unde se implementeaza practice toate elemetele discutate anterior, de la poze, texte, animatii, pana la butoane de pornire/oprire a instaltiilor, grafice de evolutii a marimilor de process, etc.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.