42 0 250KB
Universitatea “Dunarea de Jos” Facultatea de Automatica,Calculatoare,Inginerie Electrica si Electronica
Programmable Logic Controller (PLC) ------ Proiect------
Student : Cofa Daniela Indrumator: Bogdan Codres
I
Introducere
Un controler logic programabil, denumit PLC (Programmable Logic Controller) sau controler programabil, sau automat programabil – AP, este un dispozitiv de tipul unui computer utilizat pentru a controla procesele din mediul industrial. Astfel de procese, pe care PLC-urile le pot controla, sunt foarte variate cum ar fi: sisteme de transport (transportor), maşina din industria alimentară, liniile de asamblat autovehicule. Un PLC este soluţia bazată pe un microprocesor care utilizează modulele de intrare conectate la senzori pentru a citi starea sistemului controlat, schimbarea task-ului de analiză a stării sistemului şi clarificarea acţiunilor consecutive şi în sfârşit, utilizează modulele de ieşire pentru a dirija conductorii şi dispozitivele de acţionare. De aceea, task-ul software a PLC-ului constă din calcularea valorilor de ieşire corecte oferind o imagine a valorilor de intrare. PCL -- Un sistem electronic (digital) de operare, proiectat pentru utilizarea în mediul industrial, ce foloseşte o memorie programabilă pentru stocarea internă a instrucţiunilor necesare implementării unor funcţii specifice (logice, secvenţiale, temporizare, contorizare, calcul matematic), pentru a controla prin intrările şi ieşirile digitale şi analogice diferite tipuri de maşini sau procese.
II
Arhitectura PLC-ului
Unitatea centrală este în general, bazată pe un singur procesor dar pentru aplicaţiile complexe este disponibil multiprocesorul. Majoritatea PLC-urilor au o magistrală unică, comună cu UCP-ul, memoria şi interfeţele. Evoluţia controlerului este în direcţia soluţiilor multimagistrală (multibus) unde, în particular, canalele de I/O au propria lor magistrală serială sau paralelă. Unitatea de depanarea şi programare a PLC-ului este, de obicei, un dispozitiv extern, întinzându-se de la o tastatură dedicată cu un display mic până la un Computer Personal (PC). Modulele de intrare/ieşire (I/O) convertesc semnalele provenite de la senzori într-un format digital şi generează semnale electrice proporţionale cu valorile digitale de la variabilele de ieşire stocate în memoria PLC-ului. Semnalele înlocuite între sistem şi control pot fi discrete sau analogice. Sunt câteva criterii de selecţie a PLC-ului corespunzător pentru o aplicaţie dată. Tipic, clasa PLC-ului este definită de către numărul maxim de semnale de I/O care sunt capabile să comande şi să conducă. Un alt criteriu este viteza de
2
calcul a PLC-ului, capabilitatea de luare a deciziei corecte într-un interval de timp precizat.
Arhitectura PLC-ului
unitatea de programare
UCP
memoria
Magistrala
modulele de I/O
dispozitive de actionare
senzori
Într-un sistem de control industrial tradiţional, toate dispozitivele de control sunt cablate direct fiecare cu fiecare în conformitate cu modul cum trebuie să lucreze sistemul controlat. Oricum, într-un sistem cu PLC, acesta înlocuieşte cablarea dintre dispozitive. Astfel, înainte de a fi cablat direct fiecare cu fiecare, tot echipamentul este cablat la PLC. Atunci, programul de control din interiorul PLC-ului prevede ”cablarea” conectării dintre dispozitive. Un program de control este un program de calculator stocat în memoria PLC-ului care instruieşte PLC-ul despre ce urmează ca să se întâmple într-un sistem. Utilizarea PLC-ulul pentru a oferi cablarea legăturilor dintre dispozitivele sistem este denumită softwiring (cablare software). PLC-urile oferă şi alte avantaje pe lângă sistemele de control tradiţionale, cum ar fi: Siguranţă mai mare; Necesitatea unui spaţiu mic pentru implementare; Posibilitatea implementării de operaţii matematice; 3
Costuri reduse; Abilităţi de a rezista la un mediu aspru; Dezvoltare.
III Structura unui PLC
De fapt, un PLC este alcătuit din două elemente: Unitatea centrală de prelucrare; Sistemul de intrare/ieşire. Unitatea centrală de prelucrare (UCP) este partea controlerului programabil care extrage, decodează, stochează şi procesează informaţia. De asemenea, execută programul de control stocat în memoria PLC-ului. În esenţă, UCP-ul este “creierul” controlerului programabil. UCP-ul are trei părţi: Procesorul; Sistemul de memorare; Alimentarea.
4
Procesorul este partea din UCP care codează, decodează şi calculează date. Sistemul de memorare este partea din UCP care stochează atât programe cât şi date de control pentru echipamentul conectat la PLC. Memoria PLC-ului este împărţită în trei spaţii: spaţiul de sistem, spaţiul de program şi spaţiul de date. Spaţiul de sistem conţine programe instalate de către fabricant (sistemul de operare, modulele de diagnosticare şi simulare). Spaţiul de program conţine codul de control scris de către programator. Spaţiul de date stochează toate variabilele utilizate de către programul de aplicaţie. Alimentarea este acea parte care furnizează PLC-ului tensiunea şi curentul de care are nevoie pentru a funcţiona. Sistemul de intrare/ieşire (I/O) este partea din PLC la care sunt conectate toate dispozitivele din câmp. Dacă UCP-ul poate fi gândit ca un creier al PLCului, atunci sistemul de I/O poate fi gândit ca fiind mâinile şi picioarele PLC-ului. Sistemul de I/O constă din 2 părţi principale: Cadrul de montare (rack-ul); Modulele de intrare/ieşire (I/O). Cadrul este o cutie cu sloturi înăuntru care este conectat la UCP.
5
Modulele de intrare/ieşire sunt dispozitive cu terminale de conectare la care sunt legate dispozitivele din câmp. Împreună, cadrul şi modulele de I/O alcătuiesc interfaţa dintre dispozitvele din câmp şi PLC. Când se setează corect, fiecare dintre modulele de I/O este atât cablat la dispozitivele din câmp corespunzătoare cât şi instalat într-un slot din cadru. Aceast lucru creează o conectare fizică între echipamentul din câmp şi PLC. La unele PLC-uri mai mici, cadrul şi modulele de I/O sunt încapsulate într-o singură unitate. Toate dispozitivele de câmp conectate la PLC pot fi clasificate în una din două categorii: de intrare; de ieşire. Intrările sunt dispozitivele care transmit un semnal/dată la un PLC. Exemple tipice de intrări sunt butoanele de acţionare, întrerupătoarele şi dispozitivele de măsurare. Ieşirile sunt dispozitivele care aşteaptă un semnal/dată de la PLC pentru a efectua funcţiile de control. Semnalizările luminoase, hupele, motoarele şi valvele sunt toate bune exemple de dispozitive de ieşire. Există două tipuri de bază de dispozitive de intrare/ieşire: Discrete;
6
Analogice. Dispozitivele discrete sunt intrările şi ieşirile care au doar două stări: deschis şi închis. Ca un rezultat, ele trimit/primesc semnale simple de la /către PLC. Aceste semnale constau doar din 1 sau 0. Un 1 înseamnă că dispozitivul este deschis iar 0 înseamnă că dispozitivul este închis. Dispozitivele analogice sunt intrările/ieşirile care pot avea un număr infinit de stări. Aceste dispozitive nu pot fi doar deschis şi închis, dar pot fi de asemenea total aproape deschis, nu chiar închis, etc. Aceste dispozitive primesc/trimit semnale complexe la/de la PLC.
IV. Comunicarea Automatelor Programabile cu alte elemente de automatizare Exista mai multe tipuri de interfete ce sunt folosite atunci cand omul are nevoie sa interactioneze cu PLC pentru a-l configure sau a lucra cu el: simple lumini, switch-uri, afisari de text sau, la sisteme mai complexe, un calculator cu interfata web pe care se ruleaza sitemul Supervisory Control and Data Acquisition (SCADA). Modulele de comunicare Cea mai utilizata legatura pentru dialog între AP si elementele perife -ice(terminale de programare sau exploatare, imprimante) este cea serie. Acest mod de comunicare permite schimbul de caractere compuse din biti transmisi unul dupa altul pe linia de comunicare. Viteza de transmisie se exprima în biti pe secunda (bauds). Module de comunicare cu server Aceste module sunt utilizate pentru a permite AP sa realizeze o comunica tie bidirectionala cu un server care poate fi un PC sau un alt AP.În general, comunicarea de la server la AP prin intermediul acestor module este folosita pentru programarea AP. Pot 7
fi modificati anumiti parametri în program sau chiar întregul program existe nt în memoria AP. În sens invers, AP poate sa transmita serverului o serie de informatii care pot fi folosite de acesta pentru a determina durata unor procese, încheierea anu mitor etape, aparitia unor situatii de functionare necorespunzatoare. De obicei aceste module permit comunicarea AP cu serverul prin intermediul unei legaturi seriale de tip RS232.
V. Conectarea sistemelor PLC cu sistemele PC Conectarea între un controler PLC si un PC este realizata prin intermediul unei legaturi RS232. Unul din capetele cablului RS232 este conectat la portul s erial PC(conector 9-pini sau 25 pini), în timp ce celalalt capat este conectat la conectorul RS232C al modulului serial CPM1A. În scopul realizarii unei conexiuni cu un PC, switch-ul DIP de pe conectorul modulului serial CPM1A va trebui setat pe pozitia "HOST".
Module de comunicare de la egal la egal (peer-to-peer) Modulele de la egal la egal sunt utilizate pentru a permite comunicare AP între ele. Informatiile pe care acestea le schimba între ele sunt utilizate pentru obtinerea unei functionari în care AP sa coopereze în vederea îndeplinirii unor sarcini. Module de comunicare ASCII Au capacitatea de a receptiona si a transmite informatia codificata folosind fisiere în cod ASCII. Avantajul acestor module este faptul ca pot fi folosite pentru a realiza interfata dintre AP si alte echipamente care recunosc informatia în cod ASCII cum ar fi imprimantele sau terminalele de dialog cu utilizatorul. Module pentru controlul pozitiei
8
Aceste module sunt utilizate în cadrul aplicatiilor care necesita pozitionare spatiala a unor elemente componente prin intermediul unor elemente de a ctionare.Modulele pot fi utilizate pentru controlul pozitiei în sisteme în bucla deschisa - bucla închisa. a) Module de pozitionare în bucla deschisa În aceasta categorie intra modulele de control a pozitiei bazate pe utilizarea motoarelor pas cu pas (MPP).Asigura o serie de functii, în special de ac celerare si incetinire. Este mult usurata comanda MPP cu ajutorul AP în aplicatii ce i mplica pozitionarea precisa în doua sau trei axe. Alte functii: - pozitionare a sistemului într-o pozitie initiala, - protectie a sistemului prin limitarea cursei anumitor elemente mobile. b) Module de pozitionare în bucla închisa Utilizate pentru comanda masinilor cu comanda numerica, linii de a samblare automate sau robotica. Cele mai întâlnite aplicatii presupun pozitionarea u nei mese mobile care este actionata de motoare de c.c. sau de c.a. Pentru închiderea buclei, în cazul controlului pozitiei se utilizeaza un encoder. Pentru reglajul vitezei, închiderea buclei esterealizata cu ajutorul unui tahometru. Module video Folosite în special în aplicatiile care necesita realizarea unor operatii de inspectie în cadrul procesului de fabricatie. Se poate face un reglaj automat al procesului pentru eliminarea pieselor fabricate necorespunzator. Module cititoare pentru codurile de bare Utilizarea codurilor de bare pentru identificarea automata a devenit o practica curenta în cadrul liniilor de asamblare automata. Folosite pentru a codifica informatia referitoare la diverse etape ale procesului de productie/asamblare, pentru a urmari traseul si evolutia anumitor produse în cadrul fluxului tehnologic permit tinerea evidentei exacte a stocurilor existente si a celor care sunt în curs de a fi finalizate. Îmbogatesc capacitatea unui AP cu functii ce permit citirea informati ilor astfel codificate pentru a fi ulterior folosite în comanda instalatiei. Module pentru reglajul automat AP pot fi utilizate în acest scop în cazul în care nu se urmareste aplicarea unor algoritmi de reglare de complexitate ridicata. Variante: - utilizarea unor module de prelucrare speciale;-
9
-
utilizarea modulelor de intrare/iesire obisnuite si materializarea prin program a algoritmilor de reglaj. Cele mai utilizate module pentru reglajul automat sunt cele care implementeaza algoritmii de tip PID. Ajustarea sistemului se realizeaza prin reglarea potentiometrelor car e stabilesc parametrii buclelor de reactie proportionala, diferentiala si integrala. Reglaj automat materializat prin program În cazul în care bucla de reglare este materializata prin program, a justarea sistemului se realizeaza prin modificarea unor parametri din program. În acest caz pentru intrari se utilizeaza module de intrare analogice obisnuite în timp ce pentru iesiri se pot utiliza module de intrare analogice sau digitale. Exista module prin care se materializeaza alti algoritmi de reglare automata cum ar fi module pentru controlul folosind reactia pozitiva sau folosind logica fuzzy.Ca si în cazul reglarii PID, ca urmare a cresterii puterii de calcul a unitatii centrale , acesti algoritmi pot fi materializati prin programul automatului programabil. Dispozitive de intrare/iesire pentru interfata om-masina Functii: (principala) cea de programare a AP, monitorizarea functionarii AP, verificarea programului înscris în memoria AP, depanarea circuitului. Prin intermediul acestor terminale, operatorul uman poate introduce sau modifica programul unui AP la locul în care acesta se afla, fara a mai fi nevoie de alte dispozitive sau aparate ajutatoare. Prin cuplarea terminalului, comportarea AP poate fi examinata în timpul functionarii. Informatiile necesare operatorului sunt afisate prin intermediul unui ecran cu tub catodic sau cu cristale lichide. Dimensiunile acestora pot varia de la c âteva linii de caractere pâna la un ecran. În primul caz, dispozitivul de afisare vafi mai ieftin însa nu va permite decât afisarea unei portiuni mici din programul AP si un numar restrâns de informatii legate de starea AP. Informatiile catre AP sunt introduse de catre operatorul uman prin intermediul: unor butoane, a tastaturii, a ecranelor sensibile la atingere, cititoarelor de coduri de bare. Terminale simple Dispozitive simple care au de cele mai multe ori doar un monitor si o tastatura. Sunt dotate cu inteligenta, întreaga functionalitate privind comunicarea dintr e om si masina este înglobata în AP. Afiseaza informatia transmisa de AP si
10
permit introducerea si transmiterea informatiei de la utilizator la AP. Transmite rea informatiei prin intermediul acestor terminale se realizeaza în format ASCII. Avantaj:pret de cost redus, terminalul poate fi utilizat cu o gama larga de AP. Dezavantaj: nu permit încarcarea unui program sau modificarea acestuia în memoria AP. Utilizarea lor devine din ce în ce mai redusa. Terminale industriale dedicate Au încorporata o anumita inteligenta care le permite sa îndeplineasca o parte mai mica sau mai mare din functiile amintite mai sus. O serie de terminale permit scrierea directa a programului în memoria AP. O alta categorie de terminale sunt dotate cu memorie proprie astfel încât pro gramul poate fi scris în aceasta memorie dupa care el este transferat în memoria AP. Mare parte din aceste dispozitive permit utilizatorului sa depaneze progra mul scris chiar în timpul functionarii acestuia. Pot fi introduse valori pentru intrarile sau pentru iesirile automatului astfel încât sa se poata urmari functionarea acestuia în diverse situatii. Programatoare de mâna Sunt utilizate în general pentru programarea AP de dimensiuni mici. Cuplate la AP, ele pot afisa informatii privind: starea AP, starea intrarilor, starea iesirilor, valorile diferitelor variabile interne, valoarea curenta si cea prestabilita a numaratoarelor, valoarea curenta si cea prestabilita a temporizatoarelor. Programatoarele de mâna pot fi folosite pentru depanarea AP prin monitorizarea functionarii acestuia si prin modificarea intrarilor, iesirilor sau alti para metri ai programului. Avantaje : dimensiunile mici care le fac portabile. Dezavantaje: au înglobata inteligenta redusa, dimensiunea mica a ecranului de afisare (la un moment dat nu poate fi vizualizata decât o mica parte a programului din memoria calculatorului).
VI. Programarea controlerelor PLC Metoda uzuala de programare a unui controler PLC este cea care utilizeaza un PC conectat cu sistemul de control. Exista însa si posibilitatea programarii manuale a sistemului, utilizând o microtastatura si un monitor software cu functiuni specifice.
11
În scopul depanarii sistemului de control, un PLC este de regula însotit de un subsistem de testare, realizat pe baza unor switchuri ce pot pozitiona în 0 sau 1 logic diverse linii. În felul acesta sistemul de control poate fi testat pas cu pas, urmarindu-se modul de comportare conform diagramei de functionare specificata în doc umentatie. Diagrama de functionare este gândita astfel încât sa poata fi testata si înteleasa întreaga gama de posibilitati comportamentale si de eventuale malfunctiuni. Programatorul poate adauga comentarii programului de test, poate denumi dispozitive de intrare si/sau iesire si poate preciza secventele de executie ce trebuie urmate de catre sistem l a întâlnirea anumitor erori sau comportari defectuoase ale unor subansamble. De cele mai multe ori, un sistem cu PLC este documentat printr-o "diagrama în scara", care prezinta structura logica de functionare a întregului sistem. Întelegerea acestei diagrame permite depanatorului sa înteleaga comportamentul sistemului în diversele cazuri malfunctionale. IEC 61131-3 reprezintă partea a 3-a a standardadului IEC 61131 şi, spre beneficiul utilizatorilor de PLC-uri, standardizează cinci dintre cele mai utilizate limbaje de programare a PLC-urilor şi anume:
LD FBD IL ST SFC
- Ladder diagram (grafic), - Function Block Diagram (grafic), - Instruction list (text), - Structured text (text), - Sequential Function Chart.
1.Diagrama Funcţională Secvenţială (SFC) Diagrama Funcţională Secvenţială – SFC, este un formalism grafic foarte expresiv al standardului IEC 1131-3. Nu poate fi considerat un limbaj complet după cum cer instrucţiunile de la celelalte limbaje pentru a scrie un POU complet. Oricum, pentru rolul său important în dezvoltarea codului reutilizabil, utilizarea sa este studiată şi discutată profund în paragraful următor. Definiţiile SFC sunt derivate de la primitivele Grafcet cu schimbările necesare pentru a defini un set de elemente de control al execuţiei pentru POU-uri. SFC furnizează o modalitate pentru împărţirea POU-ului într-un set de paşi şi tranziţii interconectate de legături directe. Asociat cu fiecare pas este un set de acţiuni şi cu fiecare tranziţie o condiţie de tranziţie. De vreme ce elementele SFC solicită păstrarea informaţiei despre stare, singurele POU-uri care pot fi structurate folosind aceste elemente sunt blocurile funcţie şi programele (nu funcţiile).
12
Paşi şi tranziţii Un pas reprezintă o situaţie în care comportamentul unui POU cu respectarea intrărilor şi ieşirilor sale, urmează un set de reguli definite de acţiunile asociate pasului. Un pas este fie activ, fie inactiv. La orice moment dat, starea POU este definită de valorile variabilelor sale interne şi de ieşire şi de setul paşilor activi. Un pas este reprezentat grafic de un bloc conţinând un nume al pasului de forma unui identificator sau textual de o construcţie STEP...END_STEP
Si
PAS Si (*declaraţiile acţiunii*) END_STEP
Acţiuni Si
Reprezentarea grafică şi textuală a unui pas
Indicatorul pasului (starea activă sau inactivă a unui pas) este reprezentat de valoarea logică a variabilei Booleene S.X, unde S este numele pasului. Variabila booleeană X ia valoarea 1 dacă pasul corespunzător este activ şi valoarea 0 dacă pasul este inactiv. În mod similar, timpul consumat S.T. al pasului S este definit ca o variabilă TIME. Atunci când pasul este dezactivat, valoarea timpului consumat al pasului rămâne la valoarea pe care o avea în momentul dezactivării, în timp ce este resetată la t#0s atunci când pasul este activat. Sfera numelor pasului, indicatorii pasului şi timpii pasului sunt locali pentru POU-ul unde apar paşii. Starea iniţială a POU este reprezentată de valorile iniţiale ale variabilelor interne, de ieşirile sale şi de setul său de paşi iniţiali, de exemplu paşii care sunt iniţial activi. Fiecare reţea SFC sau echivalentul său textual, are exact un pas iniţial, desemnat grafic cu linii duble pentru margini. Pentru iniţializarea sistemului, indicatorul implicit al pasului iniţial este FALS pentru paşii normali şi ADEVĂRAT pentru paşii iniţiali. O tranziţie reprezintă condiţia prin care controlul trece de la unul sau mai mulţi paşi premergători tranziţiei la unul sau mai mulţi paşi succesori de-a lungul legăturii corespunzătoare orientate. Direcţia evoluţiei este de la baza pasului (paşilor) premergător(i) spre vârful pasului (paşilor) următor. Fiecare tranziţie are o condiţie de tranziţie asociată care este rezultatul evaluării unei singure expresii Booleene. O condiţie a tranziţiei care este întotdeauna adevărată va fi reprezentată de cuvântul cheie ADEVĂRAT. Legăturile care ating sau care părăsesc paşii sunt reprezentate de linii verticale (vezi Figura IV-2). O condiţie de tranziţie poate fi asociată cu o tranziţie prin unul dintre următoarele mijloace: expresie Booleană descrisă în ST;
13
reţea a diagramei în scară a cărei ieşire intersectează legătura orientată vertical; reţea în FBD a cărei ieşire intersectează legătura orientată vertical; reţea LD sau FBD a cărei ieşire intersectează legătura orientată vertical printr-un conector; construcţie TRANSITION...END_TRANSITION folosind ST, constând în cuvintele cheie TRANSITION FROM urmate de numele pasului(-şilor) premergător, cuvântul cheie TO urmat de numele pasului(-şilor) succesor, operatorul de alocare urmat de o expresie Booleeană specificând condiţia, cuvântul cheie de încheiere END_TRASITION; construcţie TRANSITION...END_TRANSITION folosind IL, constând în cuvintele cheie TRANSITION FROM, urmate de numele pasului(-şilor) premergător şi de două puncte, cuvântul cheie TO urmat de numele pasului(-şilor) succesor, o listă de instrucţiuni în limbajul IL determinând condiţia de tranziţie, cuvântul cheie de încheiere END_TRANSITION; un nume al tranziţiei asociat cu legătura orientată, referitor la o construcţie TRANSITION...END_TRANSITION, a cărei evaluare rezultă din alocarea unei valori Booleene pentru variabila denotată de numele tranziţiei şi a cărui conţinut este o reţea în limbajul LD sau FBD, o listă cu instrucţiuni în limbajul IL sau o alocare a unei expresii Booleene în limbajul ST. Valabilitatea unui nume al tranziţiei este locală pentru POU-ul în care tranziţia este localizată. Nici un “efect secundar” (de exemplu alocarea unei valori unei variabile, alta decât numele de tranziţie) nu poate avea loc în timpul evaluării unei condiţii de tranziţie.
TRANSITION Tij: (*condiţia tranziţiei*) END_TRANSITION
Tij
Reprezentarea grafică şi textuală a unei tranziţii
Acţiuni Zero, una sau mai multe acţiuni vor fi asociate cu fiecare pas. Un pas care are zero acţiuni asociate este considerat ca având o funcţie WAIT, ceea ce înseamnă că se aşteaptă ca următoarea condiţie de tranziţie să devină adevărată. O declaraţie a acţiunii constă în numele acţiunii (de tip şir) şi conţinutul acţiunii. Conţinutul acţiunii poate fi o variabilă Booleană, o colecţie de instrucţiuni în IL, o colecţie de formulări în ST, o colecţie de trepte (paşi orizontali) în LD, o colecţie de reţele în FBD sau o diagramă a funcţionalităţii secvenţiale (SFC) la rândul său. Acţiunile sunt declarate şi apoi asociate cu paşi prin
14
conţinuturile textuale ale corpului acţinii sau prin blocuri grafice ale acţiunii. Valabilitatea declaraţiei unei acţiuni este locală pentru POU-ul care conţine declaraţia. Controlul acţiunilor este exprimat de calificativi ai acţiunii. Valoarea calificativului acţiunii este una dintre cele enumerate în tabelul următor. Calificativii specifică ce acţiuni trebuie să fie executate în fiecare ciclu de execuţie, în relaţie cu stările paşilor asociaţi lor. Acţiunile normale (N sau noncalificative) sunt executate în mod continuu în timp ce paşii asociaţi lor sunt activi. Calificativii L, D, SD, DS şi SL solicită o durată asociată de tip TIME. Calif.
Definiţie
Efectul asupra acţiunii
N P S R L D SD DS SL P1 P0
Ne-stocat Impuls Setare Iniţializare timp Limitat timp Întârziat Stocat şi timp Întârziat timp Întârziat şi Stocat Stocat şi timp Limitat Puls Puls
execută în timp ce pasul asociat este activ execută când pasul asociat este activat execută până când calificativul relativ R este intersectat termină execuţia stocată (S) termină execuţia după un timp dat începe execuţia după un timp dat începe execuţia S după un timp dat începe execuţia S dacă pasul durează un timp dat începe execuţia S şi termină după un timp dat front crescător front căzător
Regulile de evoluţie ale SFC Situaţia iniţială a unei reţele SFC este caracterizată de pasul iniţial care este în starea inactivă după iniţializarea programului sau a blocului funcţie care conţine reţeaua. Evoluţia stărilor active ale paşilor are loc de-a lungul legăturilor orientate când este cauzată de validarea uneia sau a mai multor tranziţii. O tranziţie este validată atunci când toţi paşii precedenţi, conectaţi la simbolul tranziţiei corespunzătoare prin legături orientate, sunt activi. Execuţia unei tranziţii are loc atunci când tranziţia este validată şi când condiţia tranziţiei asociate este adevărată. Activarea unei tranziţii cauzează dezactivarea tuturor paşilor imediat precedenţi conectaţi la simbolul tranziţiei corespunzătoare prin legături orientate, urmată de activarea tuturor paşilor imediat următori. Timpul de activare a unei tranziţii poate fi considerat, teoretic, cât de scurt se doreşte, dar nu poate fi niciodată zero. În practică, timpul de activare va fi impus de implementarea controlerului programabil. Pentru acelaşi motiv, durata activităţii unui pas nu poate fi niciodată considerată a fi zero. Câteva tranziţii care pot fi activate simultan vor fi în prezent activate respectând limitările de timp ale controlerului programabil particular. Testarea condiţiei(-iilor) următoarei tranziţii a unui pas activ este efectuată până când efectele activării pasului se vor propaga peste tot POU-ul unde pasul este declarat. Divergenţă şi convergenţă Divergenţa este o legătură cu conectare multiplă de la un simbol SFC (pas sau tranziţie) spre multe alte simboluri SFC de tip opus. Convergenţa este o 15
legătură cu conectare multiplă de la mai mult de un simbol SFC de acelaşi tip spre un alt simbol de tip opus. Divergenţa şi convergenţa pot fi individuale sau duble. 1 Run & nu Error
1
Pornirea motorului M1
2 2
101 102
M1 pornit
Alarmă
Confirmare
Pornirea Timer-ului
3
Timer >t#3s
3
Oprirea motorului M1
4 4
Eroare
101
Tix
O divergenţă individuală este o legătură multiplă de la un pas spre mai multe tranziţii. După cum vom discuta în paragraful următor, doar o condiţie de tranziţie, a tranziţiilor care părăsesc pasul, devine adevărată la un moment dat, astfel încât doar un pas devine activ în următorul ciclu de execuţie. Cu toate acestea, condiţiile ataşate diferitelor tranziţii la începutul unei divergenţe individuale nu sunt în mod necesar exclusive, astfel încât exclusivitatea trebuie să fie asigurată fixând o prioritate printre tranziţiile conflictuale (sau implicit, depinzând de implementarea individuală) astfel încât doar o tranziţie este activată. O convergenţă individuală este o legătură multiplă de la mai multe tranziţii spre acelaşi pas. O convergenţă individuală este folosită în general pentru a grupa ramurile SFC care au fost începute pe o divergenţă individuală. Divergenţa şi convergenţa individuală sunt reprezentate de linii separate orizontale, ca în exemplul din Figura IV-3. Un salt al secvenţei este un caz special al divergenţei individuale unde una sau mai multe ramuri nu conţin paşi. O buclă a secvenţei este un caz special al divergenţei şi convergenţei individuale unde una sau mai multe ramuri se întorc la un pas precedent. O divergenţă dublă (sau divergenţă simultană) este o legătură multiplă de la o tranziţie la mai mulţi paşi. Aceasta corespunde operaţiilor paralele ale procesului, numite şi secvenţe simultane. Divergenţa dublă este executată atunci când pasul SFC precedent este activ şi condiţia de tranziţie devine adevărată. După divergenţă, toate secvenţele simultane şi-au activat paşii iniţiali. O convergenţă dublă (sau simultană) este o legătură multiplă de la mai mulţi paşi spre aceeaşi tranziţie. Este folosită în general pentru a grupa ramurile SFC pornite la o divergenţă dublă. Convergenţa dublă este executată atunci când toţi paşii simultani care o preced sunt activi şi următoarea condiţie de tranziţie este
16
adevărată. După convergenţă, paşii activi precedenţi sunt dezactivaţi şi un singur pas al schemei SFC este din nou activ. Divergenţa şi convergenţa dublă sunt reprezentate de linii duble orizontale: 1 1
Run 2
2
101
Proces 1
102
Aşteptarea Procesului 2
Proces 2 Finalul Procesului 2
101
Finalul Procesului 1 3
3
Iniţializare
Aşteptarea Procesului 2
Adevărat
2. Textul Structurat (ST) Textul Structurat este unul dintre cele două limbaje textuale din cadrul standardului IEC 1131-3, celălalt fiind limbajul Lista de Instrucţiuni. Standardul defineşte elemente textuale comune limbajelor textuale, printre care: Declaraţii tip; Declaraţii variabile; Declaraţii ale pasului SFC, ale tranziţiei şi acţiunii; Declaraţii ale funcţiei şi ale blocurilor funcţie. ST este un limbaj structurat de nivel înalt, similar cu Pascal şi C, proiectat pentru procesele automate de programare. Acest limbaj este folosit în special pentru a implementa proceduri complexe care nu pot fi exprimate uşor cu limbaje grafice. ST este limbajul implicit pentru descrierea acţiunilor din cadrul paşilor şi condiţiilor ataşate tranziţiilor limbajului SFC.
3. Lista cu instrucţiuni (IL) Lista cu instrucţiuni este un limbaj de nivel jos, similar cu limbajul de asamblare, foarte eficient pentru aplicaţiile mai mici sau pentru optimizarea părţilor unei aplicaţii. Instrucţiunile sunt tot timpul raportate la rezultatul curent (sau registrul IL) şi sunt determinate de un operator, care indică operaţia care
17
trebuie făcută între valoarea curentă şi operand. Rezultatul operaţiei este păstrat din nou în rezultatul curent.
4. Diagrama în scară (LD) Diagrama în scară (LD) este o reprezentare grafică a ecuaţiilor Booleene, combinând contacte (argumente de intrare) cu coil (rezultate de ieşire). Limbajul LD permite descrierea testelor şi a modificărilor datelor Booleene plasând simboluri grafice în schema programului. Simbolurile grafice LD sunt organizate în interiorul graficului într-un mod similar cu o “treaptă” a diagramei cu contacte electrice.
Şina din stânga Şina din dreapta
Exemplu de diagramă în scară (diagramă cu contacte)
O diagramă LD este limitată în partea dreaptă şi stângă de linii verticale, numite şina (bară de alimentare, magistrală) din stânga şi respectiv şina din dreapta. Simbolurile grafice ale diagramei LD sunt conectate la şine sau la alte simboluri prin linii de conectare, numite şi legături. Liniile de conectare sunt orizontale sau verticale. Componentele grafice de bază ale unei diagrame LD : Şina verticală din stânga
Linii de conectare multiplă (conectate toate împreună)
Şina (magistrala) verticală din dreapta
Contact asociat cu o variabilă
Linia de conectare orizontală
Coil asociată cu o variabilă de ieşire sau internă
Linia de conectare verticală
Fiecare element al legăturii are starea sa proprie, indicată de valorile simbolului Boolean 1 (TRUE, `ON`) sau respectiv 0 (FALSE `OFF`). Starea Booleană este aceeaşi pentru toate segmentele legate împreună direct. Termenul starea legăturii este sinonim cu termenul fluxul puterii. Starea magistralei din stânga este considerată PORNIT tot timpul. Nu este definită nici o stare pentru magistrala din dreapta.
18
Un element al legăturii orizontale este indicat de o linie orizontală. Un element al legăturii orizontale transmite starea elementului din imediata apropiere stânga elementului din imediata apropiere dreapta. Orice linie orizontală conectată la magistrala verticală din stânga are starea ADEVĂRAT. Un element al legăturii verticale constă într-o linie verticală care se intersectează cu unul sau mai multe elemente ale legăturii orizontale pe fiecare parte. Starea legăturii verticale reprezintă un SAU inclusiv a stărilor ON a legăturilor orizontale pe partea stângă, ceea ce înseamnă că starea legăturii verticale este OFF dacă stările tuturor legăturilor orizontale ataşate la stânga sa sunt OFF, în timp ce este ON dacă starea uneia sau mai multor legături orizontale ataşate la stânga sa este ON.
5. Diagrama cu blocuri funcţie (FBD) FBD este un limbaj grafic pentru programarea PLC-urilor, bazat pe interpretarea comportamentului sistemului în termenii fluxului de semnale dintre elementele de procesare, analog cu fluxurile de semnal care pot fi observate în diagramele circuitelor electronice. FBD exprimă comportamentul funcţiilor, a a ca un set decblocuri grafice interconectate, blocurilor funcţie şi a programelor care la rândul lor sunt funcţii sau blocuri funcţie. După cum s-a anticipat deja, a) FBD poate fi folosită pentru a detalia condiţiile tranziţiei şi acţiunile schemelor b SFC.
a b) b
OR
c
Comparaţie între sintaxa LD şi FBD
Elementele limbajului FBD vor fi interconectate de linii de flux al semnalului urmărind convenţiile stabilite în general pentru limbajele grafice. Ieşirile blocurilor funcţie nu vor fi conectate împreună. În particular, funcţia OR exprimată ca o conectare multiplă la dreapta, tipic pentru limbajului LD, nu este permisă în limbajul FBD; în schimb este folosit un bloc OR Boolean explicit. Exemplul din Figura IV-7 ne arată aceeaşi operaţie dintre variabilele Booleene (c := a OR b) în LD (a) şi FBD (b). O reţea FBD descrie un proces dintre variabilele de intrare şi variabilele de ieşire, după cum este arătat în Figura IV-8. Un proces este descris ca un set de blocuri elementare, care sunt funcţii sau blocuri funcţie. Variabilele de intrare şi de ieşire sunt conectate la blocuri prin linii de conectare. Detalii asupra funcţiilor şi a blocurilor funcţie sunt date în finalul acestui capitol. O ieşire a unui bloc poate fi conectată la o intrare a altui bloc.
19
intrări
ieşiri
Aspectul tipic al unei reţele FBD
Fiecare bloc are un număr fix de puncte de conectare la intrare şi un număr fix de puncte de conectare la ieşire. Un bloc este reprezentat de un singur dreptunghi. Intrările sunt conectate pe marginea sa stângă. Ieşirile sunt conectate pe marginea sa dreaptă. Un bloc elementar efectuează un singur proces între intrările şi ieşirile sale. Numele procesului care trebuie efectuat de bloc este scris în dreptunghiul de simbolizare. Fiecare intrare sau ieşire a unui intrări bloc are un& tip bine definit. ieşiri Numele funcţiei
***Sintaxa blocului FBD***
Variabilele de intrare ale unui program FBD trebuie conectate la punctele de conectare la intrare ale blocurilor. Tipul fiecărei variabile trebuie să fie acelaşi ca tipul aşteptat pentru intrarea asociată. O intrare pentru diagrama FBD poate fi o expresie constantă, orice variabilă internă sau de intrare sau o variabilă de ieşire. Variabilele de ieşire ale unui program FBD trebuie conectate la punctele de conectare la ieşire ale blocurilor. Tipul fiecărei variabile trebuie să fie acelaşi ca tipul aşteptat pentru ieşirea blocului asociat. O ieşire pentru diagrama FBD poate fi orice variabilă internă sau de ieşire. Variabilele de intrare şi de ieşire ale blocurilor funcţie sunt cuplate împreună cu liniile de conectare. Liniile individuale pot fi folosite pentru a conecta două puncte logice ale diagramei: (i) o variabilă de intrare şi o intrare a unui bloc; (ii) o ieşire a unui bloc şi o intrare a unui alt bloc; (iii) o ieşire a unui bloc şi o variabilă de ieşire. Conectarea este orientată, ceea ce înseamnă că linia duce datele asociate de la extremitatea stângă la extremitatea dreaptă. Extremitatea dreaptă şi cea stângă a liniei de conectare trebuie să fie de acelaşi tip. Conectarea multiplă la dreapta poate fi folosită pentru a difuza o informaţie de la extremitatea sa stângă la fiecare dintre extremităţile sale drepte. Toate extremităţile conectării trebuie să fie de acelaşi tip.
20
O linie de conectare individuală cu extremitatea sa dreaptă conectată la o intrare a unui bloc poate fi terminată de o Negaţie Booleană. Negaţia este reprezentată de un cerc mic. Atunci când este folosită o negaţie Booleană, extremitatea stângă şi cea dreaptă a liniei de conectare trebuie să fie de tip Boolean. intrarea 1 intrarea 2
&
ieşirea 1
Echivalenţa ST: output 1 : = input 1 AND NOT (input 2)
Negaţia Booleană
Etichetele şi salturile sunt folosite pentru a controla executarea diagramei. Nici un alt element nu poate fi conectat la dreapta unui simbol salt sau etichetă. Dacă linia de conectare la stânga simbolului salt are starea Booleană ADEVĂRAT, executarea programului sare direct după simbolul etichetă corespunzător. Un exemplu de folosire a salturilor : manual b1
&
NOMODIF
**Utilizarea saltului şi a etichetei
NOMODIF: rezultat valid
Echivalenţa IL: LD AND JMPC ... NOMODIF: LD OR ST
>=1
manual b1 NOMODIF ... ... result valid cmd 10
Cuvântul cheie RETURN poate fi folosit pentru a ieşi din diagramă. Trebuie conectat la un punct de conectare Boolean de ieşire a unui bloc funcţie. Formularea de întoarcere reprezintă un final condiţional al programului: dacă
21
cmd 10
ieşirea cutiei conectate la formulare are valoarea Booleană ADEVĂRAT, finalul (partea care a rămas) diagramei nu este executat.
auto_mode RETURN
>=1
alarm
***Utilizarea întoarcerii
bi 10
&
bi 23 x_cmd
bo 67
>=1
Echivalenţa ST: IF auto_mode OR alarm THEN RETURN ; END_IF ; bo 67 : = (bi 10 AND bi 23) OR x_cmd ; În interiorul unui POU scris în limbajul FBD, ordinea evaluării reţelei urmează regula conform căreia evaluarea unei reţele este completă înainte de începerea evaluării unei alte reţele care foloseşte una sau mai multe dintre ieşirile reţelei evaluate anterior. ena run s1 & a)
s2
OR
ena b)
s2 run
run
&
s1
OR
**Feedback explicit şi implicit s1 s2 ena c)
22
& ror
OR
ror
Direcţia de evaluare a unei reţele individuale este dependentă de implementare, de obicei de la vârf la bază şi de la stânga la dreapta. O cale feedback se spune că există într-o reţea atunci când ieşirea unei funcţii sau a unui bloc funcţie este folosită ca intrare pentru o funcţie sau un bloc funcţie care o precede în reţea. O cale explicită feedback este o conectare dintre o variabilă de ieşire a unui bloc dat cu o variabilă de intrare a unui bloc precedent. O cale implicită feedback este definită atunci când aceeaşi variabilă este o ieşire a unui bloc dat şi o intrare a unui bloc precedent. net_weight mode Cântărire delta
0
tare_weight
=
RETURN
weight
+
*** Utilizarea funcţiilor FBD Echivalenţa ST: net_weight : = Weighing (mode, delta) ; (* call *) IF (net_weight = 0) THEN RETURN ; END_IF ; weight : = net_weight + tare_weight ;
VII. Avantaje-Dezavantaje PLC ofera diverse avantaje, dar si dezavantaje. Ca avantaje avem: - cost favorabil pentru controlarea sistemelor complexe; - flexibil, putand fi reaplicat la controlul rapid si usor al altor sisteme; - abilitatile computationale permit control sofisticat;
23
- instrumentele de identificare a problemelor faciliteaza programarea si reduce timpul de nefunctionare; - componentele de incredere face ca sistemul sa functioneze mai multi ani fara probleme; - posibilitatea vizualizarii functionarii; - viteza de functionare; - metode diferite de programare. PLC-urile nu sunt atat de bune in: - a utiliza o multime mare de date, date complexe sau functii matematice complicate; - a citi si scrie baze de date; - a genera rapoarte; - a afisa datele si informatiile operatorului. Alt dezavantaj il constituie si noutatea tehnologiei. Controllerele Logice Programabile (PLC) au o utilizare variata incluzand controlul de baza al releelor, controlul miscarii, al procesului, putand fi folosit si la Sistemele de Control Distribuite. Pe scurt, un PLC este un automat ce foloseste intrarile pentru a monitoriza un proces si iesirile pentru a controla un proces, utilizand un program.
24