Sunteți pe pagina 1din 337

Automate Programabile (PLC)

Automatul programabil este un dispozitiv electronic programabil, cu o structur i funcionalitate specific,


utilizat pentru automatizarea a diferite procese electro-mecanice industriale (producie) sau din domenii
precum transport, servicii, achiziie i prelucrare informaii, securitate etc.
Proces = Echipamente + specificaii de funcionare
Sistem de control:
-Logic cablat (controller hardware): relee, contacte, pori logice, numrtoare etc
-Logic programabil (controller software): arii logice programabile, microcontrollere, Automate Programabile
Caracteristici Logic cablat:
-Dificultate de proiectare, simulare a circuitului
-Necesitatea reproiectrii ntregului circuit la o modificare a specificaiilor procesului
-Timp mic de rspuns la variaii ale intrrilor
-Folosite n reglri de mrimi sau cnd intrrile variaz foarte rapid
Avantaje Logic programabil: schimbare doar a softului n cazul modificrii funcionrii procesului
Automate Programabile Productori
Allen Bradley
Siemens
Bosch
Mitsubishi
Moeller
Emerson
Structura Automatelor Programabile
Porturi de Comunicaie:
RS232 / RS485
Ethernet
Exemple de Automate programabile
Exist 2 tipuri de automate:
1.Compacte: au module de intrare / ieire integrate fr posibilitate de extensie
2.Modulare: unitatea centrala este independent de modulele de I/O care sunt ataate separat
Automate Programabile Modulare
Ciclul de funionare al Automatelor Programabile
EOS End of Scan
Timpul de rspuns al Automatelor Programabile
Timpul de rspuns al unui automat reprezint durata total a unui ciclu automat i constituie un parametru
important al automatelor programabile. Timpul de execuie a programului depinde de mai muli factori:
Numrul i tipul modulelor de I/O
Performanele procesorului automatului
Complexitatea programelor utilizator
Tipul instruciunilor folosite n program (care afecteaz timpul necesar executrii lor)
Timpul de rspuns al Automatelor Programabile
Un procesor este capabil s citeasc starea unei intrri att timp ct semnalul nu este mai rapid dect timpul
de rspuns (semnalul nu i schimb starea de la low la high sau invers de dou ori pe parcursul unui
ciclu automat).
Eroare la detecia schimbrii de stare a semnalului de intrare
Soluii de citire a semnalelor scurte
Folosirea unui modul care conine un circuit ce realizeaz prelungirea semnalului pe durata a cel puin un
ciclu complet automat
Detecia semnalelor de durat mic prin prelungirea semnalului
Soluii de citire a semnalelor scurte
Folosirea ntreruperilor, att pt intrri ct i pt ieiri
Mecanismul de tratare a semnalelor critice
Module de intrare / ieire
n general sunt dou tipuri constructive de module de intrare folosite n industrie: sourcing i sinking
denumire care se refer la modul n care curentul electric intr sau iese din modulul respectiv.
Curentul electric are sensul de la terminalul pozitiv la cel negativ. Dac modulul este de tipul sourcing
aa cum se poate observa i n figur, curentul parcurge circuitul din terminalul intrrii, acesta fiind un
terminal pozitiv, prin senzor ctre masa comun a modulului de intrare.
Modul de intrare de tip sourcing
Modul de intrare de tip sourcing
Ct timp senzorul nu nchide circuitul, intrarea pe care senzorul este legat nu va fi activ. Cnd senzorul este activ,
acesta va nchide circuitul, ceea ce va duce la activarea intrrii automatului.
Curentul electric are sensul de la terminalul pozitiv la cel negativ. Dac modulul este de tipul sourcing aa cum
se poate observa i n figur, curentul parcurge circuitul din terminalul intrrii, acesta fiind un terminal pozitiv,
prin senzor ctre masa comun a modulului de intrare.
n interiorul cardului se afl un optocuplor pentru a se realiza izolaia galvanic ntre circuitul industrial i cel al
unitii centrale.
Dac senzorul nchide circuitul, va aduce potenialul de 0V al sursei de alimentare pe terminalul modulului de
intrare, fcnd posibil apariia curentului necesar pentru aprinderea ledului optocuplorului, ceea ce va duce n
final la setarea registrului de intrare a automatului. Cand se alimenteaza ledul, lumina emisa de acesta deschide
jonctiunea colector-emitor a fototranzistorului
Modul de intrare de tip sinking
Dac modulul este de tipul sinking aa cum se poate observa n figur, curentul parcurge circuitul din
terminalul pozitiv al sursei prin senzor ctre terminalul modulului de intrare (n acest caz 5).
Ct timp senzorul nu nchide circuitul, intrarea pe care senzorul este legat nu va fi activ. Cnd senzorul
este activ, acesta va nchide circuitul, ceea ce va duce la activarea intrrii automatului.
Modul de intrare tip sinking
Modul de intrare de tip sinking
Schema intern de funcionare a modului de intrare este cea din figura 4. n interiorul cardului se afl
optocuplorul conectat ntre terminalul de intrare i masa comun.
Dac senzorul nchide circuitul, sursa de alimentare va debita curentul necesar pentru aprinderea ledului
optocuplorului prin intermediul contactului senzorului i a rezistenei R, ceea ce va duce la setarea
registrului de intrare a automatului.
Schema electronic intern a modului tip sinking
Modul de ieire de tip sourcing
Acestea conecteaz potenialul pozitiv de 24 Voli al sursei de alimentare la circuitul comandat.
n momentul cnd ieirea este inactiv, tranzistorul corespunztor ieirii respective este blocat, ceea ce
nseamn pentru circuitul comandat absena unui potenial pozitiv la borna sa.
Cnd din regitrii automatului are loc activarea (setarea) acestei ieiri, tranzistorul intr n saturaie,
acionnd ca un simplu contact. Atunci se nchide circuitul ceea ce conduce la apariia potenialului pozitiv
la borna circuitului comandat, acesta fiind astfel activat.
Modul de ieire cu tranzistori tip source
Modul de ieire de tip sinking
Modulul conecteaz potenialul de 0 voli la terminalul su atunci cnd regitrii automatului seteaz
ieirea respectiv.
Ct timp modulul este inactiv, la ieirea acestuia exist un potenial ridicat, circuitul fiind deschis. Cnd
ieirea a fost activat, tranzistorul intr n regimul de saturaie comportndu-se ca un contact, ceea ce
duce la nchiderea circuitului.
Modul de ieire cu tranzistori tip source
Modul de ieire de tip source cu relee
Dezavantajul major al modulelor cu tranzistoare este limitarea de curent i tensiune impuse de acestea.
Cele mai multe astfel de module nu ofer posibilitatea activrii de circuite comandate la o tensiune mai
mare de 24 de Voli curent continuu i un consum mai mare de 500mA.
Marii productori de automate programabile dau posibilitatea echiprii cu module de ieire cu relee.
Contactele releelor pot suporta n general tensiuni de pn la 240 Voli, iar un alt mare avantaj este faptul
c se poate folosi i curent alternativ.
Curentul maxim admis de contactele releelor difer de la productor la productor dar ca un minim
general s-a ales valoarea de 500mA la tensiunea de 240V.
Limbaje de programare pt. automate programabile
Mediul de programare IsaGRaf
Mediul ISaGRAF a fost dezvoltat de firma CJ International
O aplicaie Isagraf se numete proiect (project)
Un proiect este structurat n seciuni de programe:
Begin
Sequential
End
Functions
Limbajele de programare din Isagraf:
Programele pot fi:
Ciclice: se execut n ntregime la fiecare ciclu (LD, ST, IL, FBD)
Secveniale: urmeaz regulile dinamice ale limbajului SFC sau FC
Flow Chart (FC)
Ladder Diagram (LD)
Structured Text (ST)
Instruction List (IL)
Function Block Diagram (FBD)
Sequential Function Chart (SFC)
Caracteristici:
Mediu de dezvoltare complet
Independen fa de configuraia hardware a unui PLC
Limbaje de programare specificate n standardul IEC 1131-3
Faciliti de simulare
ON i OFF line debugger
Dezvoltarea de biblioteci software
Seciunile de programe ale unui proiect Isagraf
Seciunea BEGIN conine programe ciclice care se execut nainte de programele secveniale. Exist
situaii cnd seciunea BEGIN nu are programe. De obicei programele din Begin prelucreaza valorile unor
mrimi de intrare (calcule asupra lor gen medieri, filtrari) sau calculeaza valori actualizate ale unor
variabile interne.
Seciunea SEQUENTIAL conine programe secveniale (SFC sau FC) care se execut dup cele din seciunea
BEGIN i urmeaz legile dinamice ale limbajului SFC sau FC. Trebuie s existe cel puin un program
secvenial. Programele se dezvolt ntr-o structur ierarhizat de tip printe fiu.
Seciunea END este mai rar folosit, eventual pt. Prelucrri ale unor variabile de ieire.
Seciunea FUNCTIONS poate conine subprograme (funcii) care pot fi apelate din orice alt program al
proiectului.
Programe printe fiu
Fiecare program din seciunea SEQUENTIAL poate controla alte programe SFC, programele fiu (child). Un
program fiu este un program paralel, care poate fi pornit, oprit, suspendat sau repornit de ctre printele
su. Important este ca ambele programe, printe i fiu, s fie scrise n SFC sau FC.
Programele SFC care nu au un printe se numesc programe SFC principale i sunt activate de sistem la
pornirea aplicaiei.
Un program poate avea mai multe programe fiu.
Un program fiu nu poate avea mai mult dect un printe.
Un program fiu nu poate fi controlat dect de printele su direct.
Atunci cnd un program printe pornete un program fiu transmite un jeton (virtual) fiecrui pas iniial al
programului fiu.
n cazul opririi unui program fiu de ctre printele su, sunt eliminate toate jetoanele existente.
Atunci cnd un program printe nghea un program fiu, terge toate jetoanele din el, dar memoreaz
poziia acestora pentru cazul n care programul fiu va fi repornit. Programul suspendat poate fi repornit.
Declaraii referitoare la programe copil:
GSTART (nume_program_fiu): pornete un program fiu
GKILL (nume_program_fiu): oprete un program fiu
GFREEZE (nume_program_fiu): suspend execuia unui program fiu
GRST (nume_program_fiu): repornete un program fiu suspendat
Val: GSTATUS (nume_program_fiu): ntoarce starea unui program fiu:
0 programul este inactiv
1 programul este activ
2 programul este suspendat
Tipuri de variabile ntr-un proiect Isagraf
Variabilele pot fi de tip LOCAL sau GLOBAL. Variabilele locale pot fi folosite doar de programul n care sunt
declarate. Variabilele globale pot fi folosite de orice program al proiectului n care sunt declarate.
O variabil este identificat prin nume, comentariu, atribut, adres i alte cmpuri specifice.
Numele variabilelor trebuie s respecte urmtoarele reguli:
numele nu trebuie s depseasc 16 caractere
primul caracter trebuie s fie o liter, urmtoarele caractere pot fi litere, numere sau caracterul
underscore
Orice constant, expresie sau variabil folosit ntr-un program (scris n orice limbaj) trebuie s fie
caracterizat de un anumit tip. Tipurile de variabile disponibile pentru programe sunt :
BOOLEAN: valori binare de tipul true/ false
INTEGER: valori numerice ntregi
REAL: valori numerice reale
TIMER: valori de tip timp
MESSAGE: valori de tip ir de caractere
Constante de tip boolean:
TRUE: este echivalentul numrului ntreg 1
FALSE: este echivalentul numrului ntreg 0
Constantele de tip ntreg sunt reprezentate pe 32 de bii, avnd valorile cuprinse ntre -2
31
i 2
31
Constantele de tip real se scriu cu punct zecimal: 467.32 sau 115.0
Variabilele de tip timer iau valori cuprinse ntre 0 i 23h59m59s999ms. Constantele se scriu prefixate cu
t#. Exemplu: T#1h35m10s450ms = 1 or 35 minute 10 secunde i 450 milisecunde
Constantele de tip message iau valori de tip i de caractere: Text
Atributele variabilelor
Orice variabil are ca atribut una din valorile:
INTERNAL: variabil intern neasociat cu vreo linie de intrare / ieire
CONSTANT: variabil cu atributul read only i cu o valoare iniial
INPUT: variabil asociat cu o linie de intrare
OUTPUT: variabil asociat cu o linie de ieire
Orice semnal de intrare sau ieire trebuie asociat cu o variabil i anume:
Semnalele digitale cu variabile Booleene
Semnalele analogice cu variabile de tip Integer
Variabilele cu atributul Input i Output fac parte din domeniul Global
Variabilele de tip timer sunt ntotdeauna variabile interne
O variabil poate avea i o valoare iniial diferit de cea implicit (n general 0 sau False)
n cazul unor schimburi de date ntre mai multe automate, variabilelor li se poate asocia i o adres
Exemple de variabile
Reguli de execuie
ISaGRAF este un sistem sincron. Toate operaiile sunt declanate de ctre ceas. Intervalul dedicat
execuiei se numete durata ciclului:
Acest sistem face posibile:
garantarea unor valori constante pe durata unui ciclu pentru variabile
stabilitatea ieirilor, acestea nefiind modificate dect o singur dat ntr-un ciclu de execuie
accesul sigur la aceleai variabile globale al mai multor programe
estimarea i controlul timpului de rspuns a ntregii aplicaii
Descrierea limbajul Sequential Function Chart (SFC)
Sequential Function Chart (SFC) este un limbaj grafic utilizat pentru a descrie operaii secveniale
Procesul este reprezentat printr-o succesiune de pai finii explicii legai prin tranziii
Fiecrei tranziii i este ataat o condiie de tip boolean
Aciunile ce au loc la fiecare pas sunt descrise folosind celelalte limbaje (ST, IL, LD sau FBD)
Un program SFC se reprezint ca un graf orientat cu noduri de tip etape i tranziii. Legturile multiple
sunt utilizate pentru a reprezenta convergene i divergene
Regulile grafice de baz ale SFC:
Un nod de tip etap nu poate fi urmat de un nod de acelai tip
Un nod de tip tranziie nu poate fi urmat de un nod de acelai tip
Componentele de baz ale limbajului SFC
Etap (pas) (step): corespunde unei stri stabile a sistemului; in general au aciuni ataate
Etap iniial (initial step): este activat la pornirea aplicaiei. Trebuie s existe ntr-un program.
Fiecare etap are asociate dou variabile sistem:
GSnnn.x starea pasului: activ/inactiv (variabil boolean)
GSnnn.t ct timp este activ pasul (var de tip timer)
Unde ( nnn este numrul de referin al pasului )
Componentele de baz ale limbajului SFC
Tranziia (transition): reprezint tranziia ntre stri stabile ale sistemului. Fiecare tranziie are asociat o
condiie de tranziie care este o expresie de tip boolean (poate fi i TRUE in permanen).


Salt ctre un pas (jump to a step): indica o legtura dintre o tranziie i un pas, fr a fi nevoie s se
deseneze linia de conexiune
Divergene i convergene (paralelisme)
Divergen: sunt conexiuni multiple de la un simbol SFC (pas sau tranziie) ctre mai multe simboluri SFC
Divergene i convergene (paralelisme)
Paralelism: cu ajutorul acestui element se pot descrie aciuni ce au loc simultan. ncep i se termin cu
pai
Nu se poate face salt din interiorul unui paralelism
n afara lui sau invers
Macro Pas
Macro paii sunt un mod unic de reprezentare a unei succesiuni unice de pai i tranziii. Corpul unui
macro este descris separat n programul SFC, el aprnd ca un singur simbol n reprezentarea SFC
principal. Numrul de referin ce apare n simbolul macro-ului este referina pentru primul pas din
corpul unui macro. Acest prim pas trebuie s fie de tipul pas de nceput (beginning step). Corespondentul
su la terminarea reprezentrii este pasul de sfrit (ending step).
Reprezentarea unui macro trebuie s fie independent, neexistnd legturi n nicio direcie. Simbolul unui
macro poate fi inclus n reprezentarea altui macro. Deoarece un macro este reprezentat printr-un set unic
de pai i tranziii, nu poate fi folosit mai mult dect o dat n programul SFC
Aciuni n cadrul etapelor
Operaii asupra variabilelor booleene: Atribuirea de valori unor variabile booleene n timpul activrii unui
pas. Aceste variabile pot fi de ieire sau interne.
Sintaxa acestor operaii:
<var_bool>(N); asociaz starea pasului activ/inactiv cu TRUE/FALSE (1/0 logice) valoarea variabilei
<var_bool>; acelai efect atributul n fiind optional
/<var_bool>; asociaz negatul strii pasului cu valoarea variabilei
<var_bool>(S); variabila primete valoarea TRUE cnd pasul devine activ
<var_bool>(R); variabila primete valoarea FALSE cnd pasul devine activ
Aciuni n cadrul etapelor
Operaii de tipul impuls (pulse actions): Succesiune de instruciuni ST sau IL care se execut numai o
singur dat ntr-un singur ciclu automat, de obicei primul n care etapa este activ.
ACTION(P):
(*instruciuni Structured Text*)
END_ACTION;
Operaii de tipul nonpuls (non-stored actions): Succesiune de instruciuni ST sau IL care se execut la
fiecare ciclu automat n care etapa este activ.
ACTION(N):
(*instruciuni Structured Text*)
END_ACTION;
Aciuni SFC
O aciune SFC este o secven SFC fiu, pornit sau oprit dup cum se schimb starea pasului. Poate avea
unul din atributele: N (non stored), S (set), R (reset).
Sintaxa:
<prog_fiu>(N); prog_fiu este pornit cnd pasul devine activ i oprit cnd pasul devine inactiv
<prog_fiu>; acelai efect, atributul N fiind opional
<prog_fiu>(S); prog_fiu este pornit cnd pasul devine activ i i pstreaz starea cnd pasul devine inactiv
<prog_fiu>(R); prog_fiu este oprit cnd pasul devine activ i i pstreaz starea cnd pasul devine inactiv
Secvena SFC fiu prog_fiu trebuie s fie un program SFC fiu al programului curent.
Folosirea atributelor S(Set) sau R(Reset) pentru o aciune SFC are exact aceleai efecte cu folosirea lui
GSTART i GKILL ntr-o o
peraie de tipul impuls din ST.
Regulile dinamicii limbajului SFC
Cele cinci reguli ale dinamicii limbajului SFC sunt:
Starea iniial: caracterizat prin pai iniiali care sunt prin definiie n stare activ la nceputul operaiilor.
Fiecare program SFC trebuie s conin un pas iniial.
Depirea unei tranziii: tranziia poate fi validat cnd toi paii care o preced direct sunt activi, n caz contrar
fiind invalidat. Tranziia nu poate fi depait dect dac este validat i condiia asociat este TRUE.
Schimbarea strii pailor: depirea unei tranziii conduce simultan la activarea pailor care o succed i la
dezactivarea imediat a pailor precedeni.
Depirea simultan a tranziiilor: tranziiile care trebuiesc depite simultan pot fi indicate prin dou linii.
Dac aceste tranziii sunt descrise separat, indicatorul de stare al pailor precedeni (GSnnn.x) poate fi utilizat
pentru descrierea condiiilor de trecere. Concret, ieirea dintr-un paralelism se face atunci cnd toate etapele
finale ale paralelismului sunt active i condiia de tranziie urmtare paralelismului este TRUE.
Activarea i dezactivarea simultan a unui pas: dac n timpul operaiilor, un pas este simultan activat i
dezactivat, se d prioritate activrii.
La un moment dat, pot fi mai muli pai activi simultan, atunci cnd exist paralelisme n cadrul diagramei
La fiecare ciclu automat, mediul Isagraf verific paii activi, execut aciunile asociate i testeaz condiiile de
tranziie asociate acestora.
Daca vreuna este TRUE atunci i memoreaz starea pailor pentru ciclul automat urmtor
Limbajul Structured Text (ST)
Structured Text (ST) este un limbaj structurat de nivel
nalt proiectat pentru procesele de automatizare.
Este utilizat n special pentru a implementa proceduri
complexe ce nu pot fi uor exprimate ntr-un limbaj
grafic.
ST este limbajul implicit pentru descrierea operaiilor
din interiorul pailor i a condiiilor ataate tranziiilor
din limbajul SFC.
Este folosit la scrierea programelor din seciunile Begin
i End, descrierea aciunilor din etape i scrierea
condiiilor de tranziie.
Un program ST este o list de declaraii ST.
Tipurile de baz ale instruciunilor ST
Atribuire de valori (variabila:=expresie):
Sintaxa: <var>:=<expr>;
Apelare de subprograme sau funcii
Apelare de funcii bloc
Instruciuni de selecie (IF,THEN, ELSE, CASE)
Instruciuni de iteraie (FOR, WHILE, REPEAT)
Instuciuni de control (RETURN, EXIT)
Instruciuni dedicate legturilor cu alte limbaj
Instruciuni fundamentale n ST
Instruciunile fundamentale ale limbajului ST
sunt:
atribuirea
instruciunea RETURN
instruciunea IF-THEN-ELSEIF-ELSE
instruciunea CASE
instruciunea iterativ WHILE
instruciunea iterativ REPEAT
instruciunea iterativ FOR
instruciunea EXIT
Instruciuni fundamentale n ST
Atribuirea
Sintaxa: <var>:=<expr>;
Semnificaia: atribuie o variabil unei expresii
Operanzi: variabila trebuie s fie intern sau de ieire
variabila i expresia trebuie s aib acelai tip
Expresia poate fi apelat de un subprogram sau o funcie din biblioteca
ISaGRAF.
Instruciunea RETURN
Nume: RETURN
Semnificaia: termin execuia programului curent
Sintaxa: RETURN;
Operanzi: nici unul
ntr-un bloc SFC, instruciunea RETURN indic sfritul execuiei unui singur
bloc.
Instruciuni fundamentale n ST
Instruciunea IF-THEN-ELSIF-ELSE
Nume: IF...THEN...ELSIF...THEN...ELSE...END_IF
Semnificaia: execut una din dou liste de declaraii ST
selecia este fcut n concordan cu valoarea expresiei booleene
Sintaxa: IF <expr_bool> THEN
<instruciune>;
<instruciune>;
...
ELSIF <expr_bool> THEN
<instruciune>;
<instruciune>;
...
ELSE
<instruciune>;
<instruciune>;
...
END_IF;
Instruciunile ELSE i ELSIF sunt opionale. Dac instruciunea ELSE nu este scris, nu este executat
nicio instruciune cnd condiia este FALSE.
Instruciuni fundamentale n ST
Instruciunea CASE
Nume: CASE...OF...ELSE... END_CASE
Semnificaia: execut una din cteva liste de declaraii ST
selecia este fcut n concordan cu o expresie
ntreag
Sintaxa: CASE <expr_int> OF
<valoare>: <instruciuni>
<valoare>, <valoare>: <instruciuni>;
...
ELSE
<instruciuni>;
END_CASE;
Valorile CASE trebuie s fie expresii constante ntregi. Cteva valori, separate
prin virgule, pot duce la aceeai list de instruciuni. Instruciunea ELSE este
opional
Instruciuni fundamentale n ST
Instruciunea WHILE
Nume: WHILE ... DO ... END_WHILE
Semnificaia: structur iterativ pentru un grup de instruciuni ST
condiia continue este evaluat naintea oricrei iteraii
Sintaxa: WHILE <expr_bool> DO
<instruciune>;
<instruciune>;
....
END_WHILE;
Instruciunea REPEAT
Nume: REPEAT ... UNTIL ... END_REPEAT
Semnificaia: structur iterativ pentru un grup de instruciuni ST
condiia continue este evaluat dup orice iteraie
Sintaxa: REPEAT
<instruciune>;
<instruciune>;
....
UNTIL <expr_bool>
END_REPEAT;
Instruciuni fundamentale n ST
Instruciunea FOR
Nume: FOR ... TO ... BY ... DO ... END_FOR
Semnificaia: execut un numr limitat de iteraii folosind o variabil index analog
ntreag
Sintaxa: FOR <index> := <mini> TO <maxi> BY <step> DO
<instruciune>;
<instruciune>;
END_FOR;
Operanzi: index: variabil analog intern care crete la fiecare bucl
mini: valoare iniial pentru index (naintea primei bucle)
maxi: valoarea maxim permis pentru index
step: indexul de cretere la fiecare bucl
Instruciunea [BY step] este opional. Dac nu este specificat, pasul de incrementare este 1.
Instruciunea EXIT
Nume: EXIT
Semnificaia: ieirea dintr-o instruciune iterativ FOR, WHILE sau REPEAT
Sintaxa: EXIT;
Operanzi: nici unul
Operatori booleeni specifici ST
Operatori booleeni standard
NOT: negarea boolean
AND (&): I logic
OR: SAU logic
XOR: SAU logic exclusiv
Urmtorii operatori booleeni sunt specifici limbajului ST:
REDGE: rising edge detection
FEDGE: falling edge detection
Operatorul REDGE
Semnificaia: evalueaz frontul cresctor al unei expresii boolene complete
Sintaxa: <edge> := REDGE(<expr_logica>, <var_booleana>);
Operanzi: primul operand este orice variabil boolean sau expresie complex, al doilea operand este o
variabil boolean intern folosit pentru a reine valoarea expresiei din ciclul anterior
Valoarea returnat: TRUE atunci cnd expresia logic de la intrare trece din FALSE n TRUE n cadrul a dou cicluri
automate, FALSE altfel
Operatorul FEDGE
Valoarea returnat: TRUE atunci cnd expresia logic de la intrare trece din TRUE n FALSE n cadrul a dou cicluri
automate, FALSE altfel.
Frontul cresctor sau descresctor al unei expresii nu poate fi detectat mai mult dect o dat n acelai
ciclu de execuie. Aceti operatori pot fi folosii pentru a descrie condiiile ataate unei tranziii SFC.
Gestionarea timpului: instruciunile TSTART i TSTOP
Semnificaia: pornete (oprete) incrementarea unei variabile de tip timer, fr a-i reseta valoarea
Sintaxa: TSTART (<var_timp>) resp. TSTOP (<var_timp>) ;
Operanzi: o variabil de tip timer
Valoarea returnat: nici una
Exemplu: Program SFC care folosete instruciunile TSTART si TSTOP
Diagrama de timp n situaia n care Bi100 se menine fals.

Timerul menine aceeai valoare n timpul unui ciclu automat.


Operatori standard
Transferul datelor:
atribuirea: alocarea unei variabile n alt variabil
<var_0> := <var_1>
negaia analogic : alocarea negrii unei variabile
<var_0> := -<var_1>
Operaii booleene:
boolean AND: I boolean ntre dou sau mai multe valori
<var_0> := <var_1> AND <var_2>
boolean OR: SAU boolean ntre dou sau mai multe valori
<var_0> := <var_l> OR <var_2>
boolean Exclusive XOR : SAU exclusiv boolean ntre dou valori de intrare
<var_0> := <var_1> XOR <var_2>
Operatori standard
Operaii aritmetice:
adunarea a dou sau mai multe variabile analogice
<var_0> :=<var_l> + <var_2>
scderea a dou variabile analogice
<var_0> :=<var_l> - <var_2>
nmulirea a dou sau mai multe variabile analogice
<var_0> :=<var_l> * <var_2>
mprirea a dou variabile analogice
<var_0> :=<var_l> / <var_2>
Operaii logice asupra operanzilor de tip integer:
AND_MASK: I bit cu bit
<rezultat> := AND_MASK <(16#abc,16#f0f)>
(*rezultatul este 16#a0c*)
OR_MASK: SAU bit cu bit
<rezultat> := OR_MASK <(16#abc,16#f0f)>
(*rezultatul este 16#fbf*)
XOR_MASK: SAU EXCLUSIV bit cu bit
<rezultat> := XOR_MASK <(16#012,16#011)>
(*rezultatul este 16#003*)
NOT_MASK: NEGAIE bit cu bit
<rezultat> := NOT_MASK <(16#1234)>
(*rezultatul este 16#FFFF_EDCB*)
Operatori standard Conversia datelor
BOO: convertete orice variabil n valoare de tip boolean
<rezultat1> := BOO <(10)> ;
(*rezultatul1 este adevrat*)
<rezultat2> := BOO <(t#0s)> ;
(*rezultatul2 este fals*)
ANA: convertete orice variabil n valoare de tip ntreg
<rezultat1> := ANA <(true)> ;
(*rezultatul1 este 1*)
<rezultat2> := ANA <(t#1s46ms)> ;
(*rezultatul2 este 1046*)
REAL: convertete orice variabil n valoare de tip real
<rezultat1> := REAL <(true)> ;
(*rezultatul1 este 1.00*)
<rezultat2> := REAL <(198)> ;
(*rezultatul2 este 198.0*)
TMR: convertete orice variabil analogic ntr-o valoare de tip timer
<rezultat> := TIMER <(1234)> ;
(*rezultatul este t#1s234ms*)
MSG: convertete orice variabil ntr-o valoare de tip mesaj
<rezultat> := MSG <(true)> ;
(*rezultatul este TRUE*)
Funcii standard
Funcii matematice:
ABS: Absolute value
returneaz valoarea absolut (pozitiv) a valorii reale
EXPT: Exponent
returneaz rezultatul real al operaiei (baza
exponent
) baza fiind primul
argument i exponent al doilea
LOG: Logarithm
calculeaz logaritmul (baza 10) a unei valori reale
POW: Power calculation
returneaza rezultatul real al operatiei (baza
exponent
) baza fiind primul
argument si exponent al doilea; exponentul este o valoare real
SQRT: Square root
calculeaz rdcina ptrat a unei valori reale
TRUNC: Truncate decimal part
trunchiaz o valoare real pentru a avea doar partea ntreag
Funcii standard
Funcii trigonometrice:
ACOS: Arc cosine: Calculeaz arccosinusul unei valori reale
ASIN: Arc sine: Calculeaz arcsinusul unei valori reale
ATAN: Arc tangent: Calculeaz arctangenta unei valori reale
COS: Cosine: Calculeaz cosinusul unei valori reale
SIN: Sine: Calculeaz sinusul unei valori reale
TAN: Tangent: Calculeaz tangenta unei valori reale
Funcii de control a irurilor de bii:
ROL: Rotate Left: Rotirea la stnga a biilor unui ntreg; rotirea se face pe
32 de bii
ROR: Rotate Right: Rotirea la dreapta a biilor unui ntreg; rotirea se face pe
32 de bii
SHL: Shift Left: Deplasarea la stnga a biilor unui ntreg; deplasarea
este fcut pe 32 de biti
SHR: Shift Right: Deplasarea la dreapta a biilor unui ntreg; deplasarea
este fcut pe 32 de bii
Funcii standard
Funcii de control a datelor:
MIN: Minimum: Calculeaz minimul dintre dou valori ntregi
MAX: Maximum: Calculeaz maximul dintre dou valori ntregi
LIMIT: Limit: Limiteaz valoarea unei variabile ntr-un interval precizat
MOD: Modulo: Calculeaz modulul unei valori ntregi
MUX4, MUX8: Multiplexer (4 or 8 entries): Multiplexor cu 4 sau 8
intrri; selecteaz o valoare ntre 4 sau 8 valori ntregi
ODD: Odd parity: Testeaz paritatea unui ntreg: rezultatul este par sau
impar
RAND: Random value: Genereaz o valoare ntreag aleatoare ntr-un interval
dat
SEL: Binary selector: Selecteaz o valoare dintre dou valori ntregi
Funcii de conversie a datelor:
ASCII: Character ASCII code: Genereaz codul ASCII al unui caracter
CHAR: ASCII code Character: Genereaz un caracter pornind de la codul
ASCII dat ca parametru
Funcii standard
Funcii pentru iruri de caractere:
DELETE: Delete sub-string: terge subir de caractere
FIND: Find sub-string: Gsete un subir ntr-un ir; ofer poziia n ir a subirului
INSERT: Insert string: Introduce un subir ntr-un ir ncepnd cu o anumit poziie dat
LEFT: Extract left of a string: Extrage un numr specificat de caractere din partea stng a
unui ir de caractere
MID: Extract middle of a string: Extrage un numr specificat de caractere dintr-un ir pornind de la o
poziie specificat
MLEN: Get string length: Calculeaz lungimea unui ir de caractere
REPLACE: Replace sub-string: nlocuiete o parte a unui ir de caractere cu un nou set de
caractere
RIGHT: Extract right of a string: Extrage un numr specificat de caractere din partea dreapt
a unui ir de caractere
DAY_TIME: Time of day: ntoarce data/ timpul ca un ir de caractere
Funcii pentru vectori:
ARCREATE: Creeaz un vector de valori ntregi
ARREAD: Citete un element dintr-un vector de valori ntregi
ARWRITE: Scrie o valoare ntr-un vector de valori ntregi
Funcii pentru iruri de ntregi
ARCREATE: Creeaz un ir de valori ntregi
Sintaxa: ok := ARCREATE (id, size) unde:
id: INT identificatorul vectorului ntre 0 i 15
size INT numrul de elemente al vectorului
ok INT rezultatul execuiei:
1 : irul corect creat
2 : identificator invalid sau ir deja creat
3 : dimensiune invalid
4 : memorie insuficient
ARREAD: Citete o valoare dintr-un ir
Sintaxa: val := ARREAD (id, pos) unde:
id: INT identificatorul vectorului ntre 0 i 15
pos INT poziia elementului n cadrul irului
val INT valoarea elementului
ARWRITE: Memoreaz (scrie) o valoare ntr-un ir
Sintaxa: ok := ARwrite (id, pos, val) unde:
id: INT identificatorul vectorului ntre 0 i 15
pos INT poziia elementului n cadrul irului
val INT valoarea care va fi scris n element
ok INT rezultatul execuiei:
1 : valoare scris corect
2 : identificator invalid sau ir deja creat
3 : dimensiune invalid
Dezvoltarea unei aplicaii de control
Pasul 1: Descrierea complet a echipamentelor componente
ale sistemului de controlat
Pasul 2: Descrierea detaliat a funcionrii proceselor din
cadrul sistemului de controlat (secvenialitate, constrngeri)
Pasul 3: Conceperea unui sistem de programe de control pe
pricipiu controlrii separate a fiecrui element de execuie i
a comunicaiei ntre programe prin variabile globale
Pasul 4: Dezvoltarea programelor secveniale i ciclice de
control a proceselor
Automatele Allen Bradley tipul SLC 500
Organizarea memoriei
Memoria este mprit n fiiere, care sunt de 2 tipuri:
fiiere program
fiiere de date
Fiecare program creat pentru automatul Allen Bradley are asociate att
fiiere program, ct i fiiere de date.
Fiierele programsunt numerotate i pot fi maxim 256. Implicit sunt
create doar 3 fiiere program i anume:
fiierul 0 ce cuprinde informaii referitoare la configuraia hardware a
automatului
fiierul 1 este rezervat
fiierul 2 conine diagrama Ladder realizat de ctre utilizator
Celelate posibile fiiere program sunt create numai n situaia n care
utilizatorul folosete subrutine.
Fiiere de date
Fiierele de date conin informaii asociate cu intrrile i ieirile (externe)
precum i cu toate celelalte instruciuni care compun diagrama Ladder. n
plus, ele mai conin informaii cu privire la operaiile procesorului.
Fiierele de date sunt numerotate i pot fi maxim 256. Implicit sunt create
primele 10 fiiere. Fiecare fiier conine maxim 256 elemente formate din
1 sau 3 cuvinte. Structura acestor fiiere de date este prezentat mai jos:
0: Imagine ieiri: conine valorile intrrilor n format binar
1: Imagine intrri: conine valorile ieirilor n format binar
2: Stare: conine informaii de stare
3: Bit: utilizat de catre instructiunile pe bit
4: Timer: utilizat de ctre instruciunile de temporizare (timer)
5: Counter: utilizat de ctre instruciunile de numrare (counter)
6: Control: utilizat n instruciuni de stiv, shiftare, secveniere etc.
7: ntregi: folosit de catre instruciunile care au ca parametri
operanzi de tip Integer
8: Rezervat
9: Folosit n reea
Adresarea fiierelor de date
Adresarea fiierelor de date
Fiierele de date conin elemente. Elementele pot fi de un cuvnt sau de trei
cuvinte. Un cuvnt are 16 bii. n consecin este necesar adresarea la nivel de:
element
cuvnt
bit
Adresarea la nivel de element: N7:15
N este tipul fiierului
7 este numrul fiierului
: este delimitatorul de element
15 este numrul elementului
Adresarea la nivel de cuvnt: T4:7.ACC
T7:4 au aceeai semnificaie ca n primul caz
. este delimitatorul de cuvnt
ACC este cuvntul adresat
Adresarea la nivel de bit: B3/15
/ este delimitatorul de bit
15 este bitul adresat
Structura Fiierelor de imagine ale intrmrilor i ieirilor
Biii din aceste fiiere corespund ieirilor i intrrilor
fizice ale automatului. Formatul general de adresare
pentru aceste fiiere este:
O:s/b respectiv I:s/b
unde:
O ieire, I intrare,
s numrul slotului pe care se gsete modulul de I/O
/ delimitatorul de bit
b numrul intrrii adresate
Exemplu:
O:4/6 : ieirea 6 de pe slotul 4
I:1/7: intrarea 7 de pe slotul 1
Structura Fiierului de bit
Formatul general de adresare pentru aceste fiiere
este: Bf:e/b sau Bf/b
unde,
B identific tipul fiierului
f numrul fiierului
e cuvntul din cadrul fiierului
b bitul adresat
Exemplu:
B3:1/5 bitul 5 din cuvntul 1 al fiierului de bit B3
B3/18 bitul 18 al fiierului B3
Aceste tipuri de fiiere sunt folosite n cadrul
instruciunilor pe bit
Structura Fiierului de tip Timer
Aceste fiiere conin elemente a cte trei cuvinte, avnd maxim 256 de elemente. Un
element tipic are structura din tabelul de mai jos:
Formatul de adresare este: Tf:e.s sau Tf:e/b
unde, T identific tipul fiierului (Timer)
f numrul fiierului
e elementul din cadrul fiierului
s cuvntul din cadrul elementului
b bitul adresat
Exemplu:
T4:0.ACC cuvntul ACC din elementul 0 al fiierului de Timer 4
T4:1/DN bitul DN din elementul 1 al fiierului de Timer 4
Aceste tipuri de fiiere sunt folosite n cadrul instruciunilor de tip timer
Structura Fiierului de tip Counter
Aceste fiiere conin elemente de trei cuvinte, avnd maxim 256 de elemente. Un
element tipic are structura din tabelul 2.3:
cu semnificaia:
CU = Count Up
CD = Count Down
DN = Done
OV = Overflow
UN = Underflow
UA = Update Accumulated Value
Formatul general de adesare este: Cf:e.s sau Cf:e/b, semnificaiile fiind cele de la
fiierele de tip timer
Aceste tipuri de fiiere sunt folosite n cadrul instruciunilor de tip counter
Structura Fiierului de tip Control
Aceste fiiere conin elemente de trei cuvinte, avnd maxim 256 de elemente. Un element
tipic are structura din tabelul de mai jos:
cu semnificaia:
EN = Enable
EU = Unload Enable
DN = Done
EM = Stack Empty
ER = Error
UL = Unload
IN = Inhibit
FD = Found
Formatul general de adresare este Rf:e.s sau Rf:e/b cu semnificaiile deja cunoscute.
Aceste tipuri de fiiere sunt folosite n cadrul instruciunilor de tip stiv, shiftare, secveniere
Structura Fiierului de tip Integer
Acest tip de fiier conine elemente de un cuvnt, maxim 255 de elemente.
Formatul de adresare este Nf:e.
unde e = 0..255 reprezint numrul elementului.
Sunt folosite n instruciuni de comparaie, matematice, practic aici sunt stocate variabilele
de tip ntreg.
Limbajul Ladder Diagram pt. Automatele Allen Bradley
Un program n Ladder Diagram este o niruire de ramuri. ntruct
instruciunile pot fi mprite n dou mari categorii, de intrare i de ieire,
pe orice ramur trebuie s existe cel puin o instruciune de ieire. Fiecare
instruciune are asociat un simbol grafic i o valoare logic TRUE sau
FALSE.
n partea stng se gsesc instruciuni de intrare (una sau mai multe) care
formeaz ntotdeauna o expresie logic de intrare. Expresia logic de la
intrare este alcatuit din operatori logici (I, SAU).
n partea dreapt se gsesc instruciuni de ieire, una sau mai multe.
Efectul instruciunii de ieire depinde de valoarea logic a expresiei de la
intrare.
Execuia ramurilor
Execuia ramurilor
Pentru a mri flexibilitatea realizrii programelor, exist posibilitatea de a
introduce expresii logice complexe pe o ramur, mrind astfel
complexitatea blocului logic generat:
Expresia de intrare = ( A AND NOT(B) ) OR C
Execuia ramurilor
n mod asemnator poate avea loc i o ramificare a instruciunilor de
ieire.
D = (A AND NOT(B)) OR C
E = (A AND NOT(B)) OR C
F = (A AND NOT(B)) OR C
Toate instruciunile de ieire depind n mod identic de instruciunile de
intrare
Execuia ramurilor
n mod asemnator poate avea loc i o ramificare a instruciunilor de
ieire.
F = ((A AND B) OR C) AND E
D = (A AND B) OR C
Exemplu de diagramm Ladder
Prima ramur din diagrama de mai sus nu este corect, ntruct conine
dou instruciuni de intrare i nici una de ieire. Celelalte ramuri sunt
corect editate, cu observaia c ultima ramur are doar o instruciune de
ieire, situaie ntlnit doar atunci cnd acea instruciune trebuie
executat la fiecare ciclu automat.
Tipuri de instruciuni
instruciuni pe bit
instruciuni de tip timer/counter
instruciuni de I/O i ntreruperi
instruciuni de comparaie
instruciuni matematice
instruciuni logice i de mutare
instruciuni pentru lucrul cu fiiere
instruciuni de shiftare
instruciuni de secveniere
instruciuni de control
blocuri funcionale
Instruciuni pe bit
Toate instruciunile pe bit necesit ca parametru adresa unui
bit dintr-un fiier de date.
--] [-- XIC (Examine if Close). Instruciune de intrare. Este
TRUE cnd bitul testat este 1 (on).
--]/[-- XIO (Examine if Open). Instruciune de intrare. Este
TRUE cnd bitul testat este 0 (off).
--( )-- OTE (Output Energize). Instruciune de ieire. Este
TRUE (seteazm bitul de ieire) cnd toate condiiile
precedente din ramurm sunt TRUE. Reseteazm bitul altfel.
Instruciuni pe bit
--(L)-- OTL (Output Latch). Instruciune de ieire. Bitul adresat
devine TRUE (1) cnd condiiile precedente de pe ramur
sunt TRUE. Cnd condiiile devin FALSE, OTL rmne TRUE
pn cnd o ramur ce conine o instruciune OTU cu aceeai
adres devine TRUE.
--(U)-- OTU (Output Unlatch). Instruciune de ieire. Bitul
adresat devine FALSE (0) cnd condiiile precedente de pe
ramur sunt TRUE. Cnd condiiile devin FALSE, OTU rmne
FALSE pn cnd o ramur ce conine o instruciune OTL cu
aceeai adres devine TRUE.
--[OSR]-- OSR (One-Shot Rising). Instruciune de intrare.
Trece ramura n TRUE pentru o scanare, la fiecare tranziie din
FALSE TRUE a condiiilor precedente din ramur.
Instruciunea OSR
Cnd instruciunea de intrare trece din FALSE (ciclul automat anterior) n
TRUE (ciclul automat curent), instruciunea OSR condiioneaz ramura
astfel nct ieirea trece n TRUE pentru o scanare a programului (adic in
cadrul ciclului automat actual). Apoi, la urmtoarele cicluri automat,
ieirea devine sau rmne FALSE pentru urmtoarele scanri, pn cnd
intrarea face o nou tranziie din FALSE n TRUE.
OSR este o instruciune de intrare util activrii unei instruciuni de ieire
o singur dat i anume la prima scanare a programului de ctre automat.
Este des folosit pentru activarea unei etape iniiale dintr-o diagram SFC
sau pentru testarea tranziiei din starea inactiv in cea activ a unei intrri
digitale. Necesit ca parametru adresa unui bit care va fi folosit intern de
ctre instruciune, pnetru memorarea starii anterioare (de la ciclul
automat anterior) a expresiei de dinaintea ei de pe ramur.
Instruciuni de tip Timer
1. TON (Timer On-Delay). Instruciune de ieire.
Parametrii instruciunii:
Timer : adresa unei element din fiierul de tip timer T4
Time base: reprezint pasul de incrementare al acumulatorului pentru
numrare. n cazul automatului nostru este fixat la 0.01 sec = 10 ms.
Preset: valoarea presetat timpul dorit de msurat/ baza de timp
Acc: valoare acumulat se introduce la editare de obicei este 0 ca valoare de
start a acumulatorului, valoarea acestuia fiind incrementat n timpul
execuiei programului, la fiecare ciclu automat, cu o valoare numeric egal
cu valoarea timpului scurs de la ciclul anterior mparit la baza de timp
Funcionarea instruciunii TON
Dac expresia de la intrare este adevarat atunci
instruciunea TON incrementeaz accumulatorul la fiecare
ciclu automat cu numrul de incremente de timp trecute de la
ciclul anterior.
Dac valoarea accumulatorului depete valoarea presetat
atunci bitul DN din primul cuvnt al elementului de timer
folosit devine 1 (acest bit putnd fi testat intr- ramura
urmtoare), asta nsemnnd c a trecut timpul dorit.
Dac expresia de la intrare este fals, contorizarea se oprete,
accumulatorul i biii de stare (EN, TT, DN.....) sunt resetai.
Instruciuni de tip Timer
2. TOF (Timer Off-Delay). Instruciune de ieire.
Analog cu TON, dar incrementarea valorii din acumulator are loc atta timp
ct n ramur condiiile sunt FALSE. Cnd condiiile devin TRUE, ( ACC ) = 0
3. RTO (Retentive Timer). Instruciune de ieire.
Analog cu TON, dar dac expresia de la intrare trece din TRUE n FALSE atunci
se oprete incrementarea dar (ACC) i bii destare rmn la ultima valoare
(nu devin 0).
Instruciuni de tip Counter
1. CTU (Count Up). Instruciune de ieire.
Parametrii instruciunii:
Counter: adresa unei element din fiierul counter C5
Preset: valoarea presetat se introduce atunci cnd se editeaz programul
Acc: reprezint valoarea acumulat dup fiecare incrementare a numrtorului
Funcionarea:
Instruciunea incrementeaz ACC la fiecare trecere din FALSE n TRUE a expresiei de la
intrare (n cadrul a dou cicluri automate consecutive).
Dac valoarea ACC depete PRE atunci bitul DN din primul cuvnt al bitului folosit
devine 1
Resetarea ACC i a biilor de stare se face numai prin instruciunea Reset.
Instruciuni de tip Counter
CTD (Count Down). Instruciune de ieire.
Similar cu CTU, cu deosebirea c decrementez valoarea acumulat. Necesit ca
parametri adresa unui element dintr-un fiier de tip Counter precum i o valoare
presetat i una iniial pentru acumulator.
RES (Reset). Instruciune de ieire. Reseteaz elemente de tip Timer sau Counter.
Dac expresia de la intrare este adevarat reseteaz accumulatorul i biii de
stare ai elementului adresat.
Instruciuni de comparaie
Sunt instruciuni de intrare, au ca operanzi cuvinte ale fiierelor de date.
EQU (Equal)
Compar (A) cu (B), unde A i B sunt adrese de cuvinte
Dac (A) = (B), atunci instruciunea devine TRUE.
NEQ (Not Equal).
Devine TRUE dac (A) diferit de (B).
LES (Less Than).
Devine TRUE dac (A) < (B).
LEQ (Less Than or Equal)
Devine TRUE dac (A) (B).
GRT (Greater Than)
Devine TRUE dac (A) > (B).
GEQ (Greater Than or Equal)
Devine TRUE daca (A) (B).
Instruciuni de comparaie
MEQ (Masked Comparison for Equal): Permite testarea egalitii dup aplicarea
unei mti.
LIM (Limit Test) : Permite testarea ncadrrii unei valori ntre dou limite. Low
Limit = val./adr. limit inferioar. Test = val./adr.val. test. High Limit = val./adr.
limit superioar. Este TRUE cnd Low Lim Test High Lim.
Instruciuni matematice
Sunt instruciuni de ieire, accept trei operanzi, dintre care maxim unul poate fi o
constant.
ADD (Add) Dest = A + B
SUB (Substract) Dest = A - B
MUL (Multiply) Dest = A * B
DIV (Divide) Dest = A / B
NEG (Negate) Dest = (complement fa de 2) Sursa
CLR (Clear) Dest 0
SQR (Square Root)
SCL (Scale Data) Dest (Sursa):Rate.
Instruciuni logice i transfer de date
Sunt instruciuni de ieire. Instruciunile logice se aplic bit cu bit datelor
stocate la adresele surs. Au efect doar cnd condiiile de pe ramur sunt
TRUE
MOV (Move) (Dest) (Sursa).
MVM (Masked Move) : Analog cu MOV, dar dup ce sursa a fost trecut
prin Mask; masca poate fi o valoare hexa (o constant).
AND (And) (Dest) = A AND B
OR (Or) (Dest) = A OR B
XOR (Exclusive Or) (Dest) = A XOR B
Instruciunile Jump i Label
JMP este o instruciune de ieire care are efect doar cnd expresia de intrare
de pe ramur este TRUE
JMP produce un salt n program pe ramura etichetat corespunztor. Se
poate face i salt napoi dar cu precauii.
LBL este o instruciune de intrare i trebuie s fie prima de pe ramur
Instruciuni relativ la subrutine
JSR : instruciune de ieire, produce salt la prima ramur din subrutina din
fiierul program dat ca parametru
SBR : instruciune de intrare, TRUE tot timpul, folosit doar pt. Claritate
RET : instruciune de ieire, marcheaz sfritul execuiei unei subrutine
Exist 8 nivele de ierarhizare
Dezvoltarea unui program Ladder pornind de la o
diagramm Grafcet (SFC)
Pentru ca un program de control conceput sub forma unei diagrame Ladder s
funcioneze corect i s fie dezvoltat uor, o soluie foarte eficient este ridicarea
iniial a unei diagrame de tip Grafcet (SFC) pornind de la specificaiile procesului
Elementele principale ale unei diagrame Grafcet sunt etapele, tranziiile, aciunile
asociate etapelor, divergenele, paralelismul etc. Etapele de creare ale unei diagrame
Ladder pentru un automat Allen Bradley SLC 500 sunt urmtoarele:
Se construiete diagrama Grafcet de control logic al procesului
Se identific intrrile, ieirile necesare automatului, precum i numrul de
temporizri, contorizri necesar
Se asociaz intrrile i ieirile cu bii din fiierele de imagine ale intrrilor i
ieirilor
Se asociaz fiecare etap a diagramei Grafcet cu cte un bit dintr-un fiier de tip
BIT al automatului Allen Bradley (spre exemplu din fiierul B3)
Se aloc pentru fiecare temporizare sau contorizare cte un element dintr-un
fiier de tip Timer sau Counter.
Dezvoltarea unui program Ladder pornind de la o
diagramm Grafcet (SFC)
Pentru fiecare etap se scriu, n principiu dou ramuri de tipul:

Etapele iniiale sunt activate cu ajutorul instruciunii OSR. Mici modificri apar atunci
cnd n diagrama Grafcet exist divergene i paralelisme.
n cazul n care dintr-o etap se poate tranzita n diferite alte etape din cauza
existenei mai multor condiii de tranziie, trebuie editat cte o ramur de tip 2
pentru fiecare condiie de tranziie. Starea de activare a unei etape se testeaz cu
instruciunea XIC aplicat bitului asociat etapei.
Dac ulterior activrii unei tranziii urmeaz un paralelism n care mai multe secvene
vor rula simultan, o dat cu dezactivarea etapei curente vor fi activate toate etapele
iniiale ale tuturor secvenelor paralele.
Ieirile digitale pot fi activate i dezactivate att cu instruciunea OTE ct i cu
instruciunile pereche OTL i OTU. Instruciunea OTE se folosete atunci cnd o
aciune este activ numai n etapa curent i va trebui dezactivat o dat cu
dezactivarea etapei. Dac o ieire trebuie s i menin valoarea i n etapele
urmtoare, ea trebuie activat obligatoriu cu instruciunea OTL.
Exemplu
S considerm c avem de controlat un proces a crui diagram Grafcet este
reprezenat n figura:
Identificarea I/O i asocierea biilor cu etapele
diagramei
Presupunnd c pe slotul 1 al automatului se gsete un modul de intrri digitale cu
16 intrri iar pe slotul 3 un modul de ieiri digitale cu 24 ieiri, putem conecta intrrile
i ieirile ctre proces conform tabelului
Asocierea etapelor Grafcet cu bii din fiierul de Bit B3 se poate face conform
tabelului
Scrierea programului Ladder
Bitul B3/0 va fi rezervat instruciunii OSR ca parametru intern.
Etapa 1 va fi activat iniial cu ajutorul instruciunii OSR astfel:
Deoarece n etapa 1 nu au loc aciuni, nu se mai scrie nici o ramur de tip 1 pentru
etap. n schimb, deoarece are loc o divergen pornind din etapa 1, trebuie scrise
dou ramuri de tip 2 pentru cele dou condiii de tranziie ce se exclud:
Scrierea programului Ladder
Pentru tranziia cu condiia i1:
Pentru tranziia cu condiia i2:
Scrierea programului Ladder Etapa 2
Pentru etapa 2 trebuie scrise cele 2 ramuri tipice:
Ramura tip 1
Ramura tip 2
Scrierea programului Ladder Etapa 3
Etapa 3 nu are aciuni asociate, iar tranziia din aceast etap este condiionat de
activarea etapei 103, astfel nct pentru etapa 3 se scrie o singur ramur de tip 2 i
anume:
Aceast ramur este valabil ca ramur de tip 2 i pentru traziia din etapa 103, fiind
suficient editarea ei o singur dat.
Scrierea programului Ladder Etapa 101
Ramura de tip 1:
Ramura de tip 2:
Scrierea programului Ladder Etapa 102
Ramura de tip 1:
Ramura de tip 2:
Mediul de programare Indralogic (Codesys)
Mediul de programare IndraLogic reprezint o soluie complet att
pentru programarea unui automat programabil ct i pentru a realiza o
interfa grafic cu utilizatorul.
Proiectul este mprit n patru zone de interes:
POU: programele ce vor rula pe automat
Data Types: structurile de date complexe declarate de programator
Visualisation: vizualizrile
Resources: resursele implicate.
Conceptul Program Organization Unit (POU)
Reprezint o funcie, un bloc funcional sau un program.
Fiecare POU este constituit dintr-o zon de declaraii i un corp. Acest
corp poate fi scris ntr-unul din limbajele de programare conform IEC care
include IL, ST, SFC, FBD sau LD.
O funcie este un POU a crui ieire este un singur element de date. La
declararea unei funcii trebuie s se hotrasc tipul de date returnat.
Un bloc funcional este un POU a crui rezultat poate fi diferit chiar dac
argumentul de intrare este acelai dar, spre deosebire de o funcie, blocul
nu returneaz o valoare. El poate avea mai multe instane (copii) ce au
comportament particular n funcie de starea lor intern. Fiecare dintre
instane are identificatorul propriu (numele instanei), i o structur de
date ce conine intrrile, ieirile, i variabilele interne. Instanele se
declar local sau global ca variabile unde numele blocului este
identificatorul.
Conceptul Program Organization Unit (POU)
Un program este un POU ce poate returna mai multe valori n timpul rulrii.
Programele sunt recunoscute global n proiect. Toate valorile se rein de la ultima
rulare pn la urmtoarea rulare. Programele nu pot fi apelate de ctre o funcie,
i nu pot exista mai multe instane ale aceluiai program. Dac un POU a apelat un
program, valorile interne ale acestuia modificndu-se, acele valori sunt reinute i
folosite la urmtoarea rulare chiar dac programul este apelat i de un alt POU.
Important n aceast categorie este programul denumit PLC_PRG. El este
un program special predefinit, fiind apelat exact o singur dat pe ciclu de
automat. Prima dat cnd se iniiaz un nou proiect, se va deschide o
fereastr de configurare a acestui program.
Conceptul Data Types
Data types este cea de-a doua zon de interes ntr-un proiect IndraLogic, i
reprezint pe lng tipurile de date standard predefinite i pe cele definite specific
de programator. Se pot crea aici structuri, enumeraii i referine.
Conceptul Visualizations
IndraLogic ofer posibilitatea de a face i o interfaa om-main. Aici se
pot trasa obiecte geometrice, tabele de variabile i alte elemente de
desenare n mod offline. Online, elementele desenate i modific
proprietile astfel nct s corespund strilor din automatul
programabil.
Seciunea Resources
Global Variables declararea variabilelor globale ce pot fi folosite n ntreg
proiectul i pentru variabile de reea;
Alarm Configuration configurarea evenimentelor care genereaz alarme
Library manager permite adugarea sau excluderea unor librrii de
funcii, structuri de date, etc.;
Log este un sistem de arhivare a aciunilor pe parcursul unei sesiuni
online;
PLC Configuration este un instrument pentru configurarea elementelor
hardware ale automatului (carduri de intrare, ieire, comunicaie etc.);
Task Configuration permite organizarea programelor n task-uri ce se
vor executa pe automat;
Watch and Recipe Manager utilizat la vizualizarea anumitor variabile i
setarea valorilor implicite ale unor variabile;
Target system settings se folosete pentru a selecta i configura
automatul i proprietile acestuia pe care va rula proiectul
Seciunea Resources
Tipuri de date n IndraLogic
Variabile de tip Bool tipul de variabil boolean poate lua doar dou valori TRUE
sau FALSE.
Variabile de tip Integer. Acest tip de variabil se folosete pentru a memora
numere ntregi cu semn sau fr semn. Ele sunt mprite n urmtoarele categorii:
BYTE numr ntreg fr semn codificat pe opt bii de date;
WORD numr ntreg fr semn codificat pe aisprezece bii de date;
DWORD numr ntreg fr semn codificat pe treizeci i doi de bii de date;
SINT numr ntreg codificat pe opt bii de date cu semn cu valori ntre (-128, 127);
USINT numr ntreg codificat pe opt bii de date fr semn cu valori ntre (0, 255);
INT numr ntreg codificat pe aisprezece bii de date cu semn cu valori ntre (-32768,
32767);
UINT numr ntreg codificat pe aisprezece bii de date fr semn cu valori ntre (0 ,
65535);
DINT numr ntreg codificat pe treizeci i doi de bii de date cu semn cu valori ntre (-
2147483648, 2147483647);
UDINT numr ntreg codificat pe treizeci i doi de bii de date fr semn cu valori ntre
(0, 4294967295).
Tipuri de date n IndraLogic
Variabile de tip Real. Acest tip de variabil se folosete pentru reprezentarea
numerelor n formatul virgul mobil (numere reale) i sunt de dou tipuri:
REAL numere reale codificate pe treizeci i doi de bii de date;
LREAL numere reale codificate pe aizeci i patru de bii de date.
Variabile de tip String. Sunt tipul de variabile n care se poate memora un ir de
caractere. Numrul de caractere, cunoscut drept lungimea acestora se poate seta
la declarare, iar dac acesta nu este definit, implicit se acord 80 de caractere
lungime.
Variabile de tip Time. Acest tip de variabile este folosit pentru reinerea
momentelor de timp. Are rezoluie de milisecund iar intervalul de valori este (0,
49d17h2m47s295ms). Tipurile de tip Time sunt:
TIME
TIME_OF_DAY(TOD)
DATE
DATE_AND_TIME
Ultimele dou tipuri de date sunt tratate intern ca DWORD, timpul fiind redat n
secunde, i nu n milisecunde.
Tipuri de date definite de utilizator
Variabile de tip Array. Aceste variabile sunt folosite pentru declararea
vectorilor i a matricilor. Se pot defini cmpuri de date cu pn la trei
dimensiuni de orice tip de date, predefinite sau definite de utilizator.
Variabile de tip Struct. Acest tip de date reprezint structuri pe care
programatorul le poate implementa, structuri ce pot conine toate tipurile
de date i la rndul lor pot fi grupate n array-uri.
Variabile de tip Pointer. Sunt variabile ce pot indica un pointer ctre orice
tip de date sau bloc funcional chiar i pe cele definite de utilizator. Acest
tip de date se folosete n conjuncie cu funcia ADR pentru a asigna
valoarea dorit.
Variabile de tip Enumeration. Cu ajutorul lor se d posibilitatea
utilizatorului s creeze un numr de string-uri constante ce vor fi
considerate valori ale enumerrii. Important este faptul c acelai string
constant nu poate fi folosit n dou enumerri.
Variabile globale
.
Particulariti Indralogic
Toate programele au aceeai prioritate la execuie, depinznd
numai de setrile impuse de utilizator prin configurarea task-
urilor.
Prin meniul de proprieti se pot seta parametrii de timp ai
unei etape (timpul minim sau maxim ct automatul rmne n
etapa respectiv), opiuni de inserare a unei etape+tranziie,
paralelism sau divergen, proprieti vizuale ale etapei
(nlime, lime, comentarii) i cele legate de aciunile
asociate etapei.
Spre deosebire de proprietile aciunilor din ISaGRAF,
aciunile din IndraLogic sunt de trei tipuri:
Entry Action se execut o singur dat la intrare ntr-o etap;
Action se execut pe tot parcursul etapei la fiecare ciclu;
Exit Action se execut o singura dat la ieirea din etap.
Particulariti Indralogic
Blocuri funionale
R_TRIG. Acest bloc funcional face detecia trecerii unei variabile
booleene de la un nivel low la un nivel high sau de la false la true. Aceast
variabil poate fi o intrare digital sau orice alt variabil boolean
existent. Ieirea acestui bloc va rmne false att timp ct intrarea n
acest bloc este false. Imediat ce intrarea acestui bloc devine true, i
ieirea lui va avea aceeai valoare pentru un ciclu automat, dup care
devine false, pn cnd la intrare se va detecta nc o trecere din false n
true.
Blocuri funionale
CTU. Acest bloc funcional numr impulsurile de la intrare, incrementnd
o valoare de la care se pornete aceast numrare. Blocul funcional are
drept intrri booleene: CU (variabila pe al crui front cresctor se dorete
numrarea, incrementarea valorii counterului fcndu-se cu o singur
unitate la un puls), RESET (variabil care reiniializeaz counterul cu
valoarea 0), intrare de tip integer PV (reprezint valoarea cu care se
compar numrul de pulsuri incrementate), i dou ieiri: Q (variabila de
ieire boolean care devine true cnd valoarea din counter este egal sau
depete valoarea PV) i CV (valoarea actual a counterului).
Blocuri funionale
CTD. Acest bloc funcional decrementeaz o valoare cu o unitate la fiecare
puls, tranziie de la false la true a variabilei de la intrarea sa. El are drept
intrri booleene: CD (variabil pe al crui front descresctor se
decrementeaz valoarea din counter), LOAD (pe frontul cresctor al
acestei variabile se va face ncrcarea counterului cu o valoare
prestabilit), intrare de tip integer PV (valoarea cu care se dorete
iniializarea counterului), ieirea booleana Q (va fi adevarat att timp ct
valoarea counterului este 0) i ieirea de tip integer CV (valoarea actual a
counterului).
Blocuri funionale
CTDU. Acest bloc funcional este o combinaie ntre cele dou, adic
prezint ambele funcii de numrare incremental i decremental,
precum i cele de reset i load. Ieirile lui digitale sunt aceleai ca la cele
dou blocuri prezentate anterior.
Blocul funional TON
TON. Timer On Delay are drept scop ntrzierea cu un anumit timp a unui
semnal digital boolean. El are drept intrri: IN aici se conecteaz
variabila a crei schimbare din false n true se dorete a fi ntrziat, PT
o variabil de tip TIME sau o constant n formatul TIME care spune ct
timp se dorete a fi ntrziat semnalul, iar ca ieiri are Q variabila care va
deveni true dup trecerea timpului PT, precum i ET cea care d
valoarea timpului actual al timerului.
Modul de funcionare presupune c att timp ct intrarea IN este false,
ieirea Q s rmn false. Imediat ce IN devine true, atunci timpul din
timer, ET va ncepe s creasc de ordinul milisecundelor, pn cnd
valoarea sa atinge ceea ce utilizatorul a specificat n PT, dup care va
rmne constant. Dac intrarea IN devine false, timerul se reiniializeaz.
Ieirea Q devine true numai dac IN este true i ET este egal cu PT, altfel
este false.
Blocul funional TON
Graficul ce explic funcionarea acestui bloc
Blocul funional TOF
TOF. Timer Off Delay are o funcionalitate asemntoare. Are aceleai
intrari i ieiri dar face o ntrziere a frontului descresctor al variabilei de
la intrare.
Modul de funcionare presupune c att timp ct intrarea este true
ieirea Q s rmn true. Imediat ce IN devine false, timpul din timer ET
va ncepe s creasc de ordinul milisecundelor pn cnd valoarea sa
atinge ceea ce utilizatorul a specificat n PT, dup care va rmne
constant. Dac intrarea IN devine true, timerul se reiniializeaz.
Ieirea Q devine false numai dac IN este false i ET este egal cu PT, altfel
este true.
TOF
Graficul ce explic funcionarea acestui bloc
Problematica Timpului n IndraLogic
Msurarea timpului n mediul de programare IndraLogic necesit o
abordare diferit de cea din ISaGRAF. Dac se dorete ca automatul s
atepte un timp ntr-o etapa nainte de a efectua tranziia la etapa
urmtoare, utilizatorul nu are acces la variabila de timp local, care
msoar durata ct automatul se afl n acea stare, i de aceea trebuie
gsite alte soluii. Prima soluie provine chiar din proprietile unei etape.
Printre aceste proprieti utilizatorul poate stabili timpul minim ct
automatul trebuie s stea n etapa respectiv.
Dac se dorete ca automatul s stea ntr-o etap un interval de timp
variabil, atunci se folosete o alt metod care se bazeaz pe proprietile
aciunilor din IndraLogic. Dup cum a fost menionat mai sus, sunt trei
tipuri de aciuni: cele care se execut la intrarea ntr-o etap, cele care se
execut la fiecare ciclu att timp ct automatul se afl n acea etap i
cele care se execut la ieirea dintr-o etap. n plus trebuie s se
foloseasc o funcie predefinit a mediului de programare i anume
funcia TIME(). Aceast funcie returneaz n milisecunde timpul care a
trecut de cnd automatul a fost pornit sub forma unei variabile de tip
TIME.
Problematica Timpului n IndraLogic
Modul de folosire este urmtorul: variabila1:=TIME().
Metoda propus presupune memorarea momentului de timp n care se intr n
etapa respectiv (n engleza time stamp) i apoi citirea periodic a funciei
TIME(), pn cnd diferena ntre cele dou momente de timp este egal sau mai
mare cu intervalul de timp. Paii care trebuiesc urmai sunt:
se creaz etapa dorit dac aceasta nu exist deja;
se selecteaz etapa respectiv i se apas butonul din dreapta al mouse-ului;
se alege de acolo Add Entry Action n limbajul ST;
se declar o variabil de timp n care se va memora time stamp-ul de intrare
folosind funcia TIME();
se apas dublu click pe etapa respectiv pentru a se putea introduce aciunile
dorite a se efectua la fiecare ciclu;
se declar o variabil de timp n care se va memora time stamp-ul curent
folosind funcia TIME();
condiia de ieire din etapa este: time-stamp curent time-stamp de intrare
>= variabila de timp.
Problematica Timpului n IndraLogic
Aciune de tipul Entry
Problematica Timpului n IndraLogic
Aciune de tipul Action
Alarme
Alarma este privit ca o condiie special (valoarea unei expresii)
Evenimentul care declaneaz alarma descrie momentul n care o condiie iese
din starea ei normal.
Confirmarea alarmelor: scopul unei alarme este de a atrage atenia supervizorului
asupra unei stri anormale. Se decalneaz anumite aciuni cnd apare o alarm.
Supervizorul trebuie s confirme recepia alarmei pentru ca ea s dispar din list
Alarmele pot avea prioriti
Starea unei alarme:
NORM ( nu e activ)
INTO (abia a aprut)
ACK ( a fost confirmat de ctre user)
OUTOF (alarma a disprut fr s fie confirmat)
Sub-starea: o condiie de alarm poate avea limite:
LO, HI
LOLO, HIHI
Clase de Alarme
Pofi declarate clase de alarme
Clase de Alarme
Tipuri de confirmare:
NO_ACK: Nu e necesar confirmarea
ACK_INTO: Starea INTO a alarmei trebuie confirmat.
ACK_OUTOF: Starea "OUTOF", alarm terminattrebuie confirmat.
ACK_ALL: Ambele stri trebuie confirmate.
Aciuni asociate alarmelor:
Save
Print
Message: apare un text n obicetul de vizualizare ataar alarmei
E-mail
Variable: o variabil din proiect va cpta starea alarmei
Execute: un program va fi executat (ex. Notepad)
Grupuri de alarme
Tipuri de alarme
DIG=0 Alarm digital, activ indat ce expresia devine FALSE.
DIG=1 Alarm digital, activ indat ce expresia devine TRUE.
LOLO Alarm analogic, activ ndat ce valoarea expresiei scade sub valoarea
LOLO. Se poate defini o toleran (Deadband). Ct timp expresia este n
interiorul toleranei nu va fi activat alarma.
LO Corespunztor lui LOLO
HI Alarm analogic, activ ndat ce valoarea expresiei crete peste valoarea
HI. Se poate defini o toleran (Deadband). Ct timp expresia este n interiorul
toleranei nu va fi activat alarma..
HIHI Corespunztor lui HI
DEV- Deviaie de la valoarea int; Alarma se activeaz ndat ce valoarea
expresiei scade sub valoarea definit pt. Alarma de tip DEV- plus procentul
deviaiei. Procentul deviaiei = valoarea int * (deviaia in %) / 100.
DEV+ Deviaie de la valoarea int; Alarma se activeaz ndat ce valoarea
expresiei crete peste valoarea definit pt. Alarma de tip DEV+ plus procentul
deviaiei. Procentul deviaiei = valoarea int * (deviaia in %) / 100
ROC Viteza de variaie pe unitatea de timp; Alarma se activeaz cnd expresia
deviaz puternic fa de valoarea precedent.
Taskuri
Taskurile sunt colecii de programe executate de ctre automatul care ruleaza
aplicaia Indralogic
Un Task este definit de un nume, o prioritate i de un tip ce determin satisfacerea
crei condiii va porni acel task. Aceste condiii pot fi definite de un moment de
timp (ciclic, freewheeling), sau un eveniment intern sau extern, de exemplu
frontul cresctor al unei variabile globale sau o ntrerupere n automatul
programabil.
Dac taskul este executat n ciclul prezent, atunci programele taskului vor fi
procesate pe ntreaga lungime a unui ciclu. Ordinea n care se execut taskurile va
fi determinat de combinaia, de prioritatea i condiiile de pornire.
Proprietile unui Task
Tipurile unui Task
Cyclic: taskul va fi procesat ciclic conform cu perioada de timp declarat
Freecycling: taskul va fi procesat in continuu, adic odat ncheiat va fi
reluat imediat
Triggered by event: taskul va fi pornit doar atunci cnd variabila declarat
n cmpul Event trece din False in True
Triggered by external event: taskul va fi pornit atunci cnd evenimentul
extern, definit n cmpul Event, are loc. Evenimentul depinde de
automatul int i apare sub form de list.
Watchdog: pentru fiecare task poate fi definit un control de timp
(watchdog). Dac taskul depete timpul specificat el va fi oprit din
execuie cu un cod de eroare, dar nu neaprat la prima ntrziere a
taskului, ci in funcie de valoarea parametrului Sensitivity.
Ecrane de vizualizare
n cadrul unui proiect IndraLogic pot fi dezvoltate ecrane de vizualizare a
valorilor unor variabile print-o reprezentare grafic precum i de
introducere a unor date n automatul programabil n timp real cu ajutorul
mouse-ului sau a tastaturii.
Editorul de vizualizri, care este o parte integrant a mediului de
programare, permite utilizarea unor elemente grafice care pot fi
configurate astfel nct s fie conectate la variabilele proiectului prin
intermediul unui dialog corespunztor unui singur element al unei
vizualizri. Parametrii de baz pot fi setai prin activarea unor opiuni, iar
prin introducerea variabilelor procesului se poate obine parametrizarea
dinamic.
Pot fi fi inserate diferite forme geometrice, poze n format bitmap,
fiiere metafile, butoane i chiar alte vizualizri existente.
Ecrane de vizualizare
Editarea proprietilor unui obiect
Editarea proprietilor unui obiect
Standardul de comunicaie OPC
OPC = OLE for Process Control
OPC este un standard de comunicaie n timp real a datelor unui proces de
control ntre dispozitive de control provenind de la diferii productori.
OPC ofer un mecanism de tip server-client prin care datele preluate de la
o surs sunt comunicate oricrei aplicaii client printr-o modalitate
standard.
Clienii obinuii de OPC sunt ecrane de vizualizare sau prorame care
stocheaz date.
Un furnizor poate acum dezvolta un server, reutilizabil, optimizat, care s
menin un mecanism eficient pentru accesul datelor de la sursa de date /
device. Furnizarea, alturi de echipamentul de proces, a unui server cu
interfaa OPC, va permite oricrui client s acceseze sursele de date /
echipamentele respective.
Sistemele moderne de proramare a automatelor proramabile vin cu un
OPC server
OPC are la baz tehnoloia Microsoft OLE COM
Standardul de comunicaie OPC
Relaia dintre client i server
Serverul OPC nu este un subproram pasiv ci un proram executabil care
pornete imediat ce o conexiune este stabilit ntre un client i controller.
Informeaz clientul atunci cnd valoarea sau starea unei variabile s-a
schimbat.
Specificaii OPC: OPC Data Acces
Este primul rup de specificaii OPC
Server-ul OPC Data Access sau OPC DA furnizeaz accesul la datele de
proces de timp real sub forma unei comunicaii continue (nu date istorice)
La nivelul de sus, un OPC DA se compune din urmtoarele obiecte:
Server-ul
Grupul
Item-uri.
Server-ul OPC menine informaii despre obiectul Server i constituie un
container pentru obiectele de tip Group. La rndul lui, un obiect Group
menine informaii leate de el i ofer un mod pentru oranizarea loic
a obiectelor Item.
Grupurile OPC ofer clientului o modalitate pentru oranizarea datelor. De
exemplu, grupul poate reprezenta item-urile pentru operator ntr-un
raport sau ecran particular, care urmeaz a fi citite sau scrise. n fiecare
Grup clientul poate defini unul sau mai multe Item-uri OPC.
Accesul la date
Item-urile OPC reprezint conexiuni cu sursele de date dintr-un server. Un Item
OPC, daca este s fie privit din perspectiva interfeei cu clientul, nu este accesibil
de Clientul OPC ca un obiect. Astfel, toate accesrile ctre Item-urile OPC se fac
prin intermediul Grupului OPC care conine Item-ul respectiv.
Fiecare Item-ul are asociat tripletul:
Valoare
Calitate
Amprent de Timp
Aceste valori sunt trimise
clientului la cererea acestuia
Dac sursa de date nu poate furniza
amprenta de timp, serverul OPC
trebuie s o creeze
OPC Historical Data Access
Server-ul OPC Historical Data Access sau OPC HAD este
folosit pentru colectarea i analiza istoricului cu datele de
proces care de cele mai multe ori sunt stocate n arhivele cu
datele de proces, baze de date, etc. Exist disponibile mai
multe tipuri de servere pentru furnizarea istoricului datelor.
Cele mai importante tipurile de servere HDA sunt:
Servere care furnizeaz un istoric cu date simple datele
din istoric sunt de tipul celor furnizate de server-ul OPC
DA, fiind oferite sub form de triplet [Timp, Valoare,
Calitate].
Servere care furnizeaz date compresate i analize
stocheaz i comprima datele culese de la procese i sunt
capabile s ofere rapoarte cu analiza datelor, cum ar fi:
valori medii, minime i maxime
OPC Alarme i Evenimente
Aceste interfee ofer un mecanism de notificare pentru Clienii OPC n
cazul apariiei alarmelor i evenimentelor specificate. De asemenea,
interfeele ofer servicii care permit Clienilor OPC s determine
evenimentele i condiiile pe care un Server OPC le suport i s obin
starea lor curent.
n OPC, o alarm este o condiie anormal, deci un caz special al unei
condiii. O condiie este o stare definit a Server-ului de Evenimente OPC.
Poate avea urmtoarele condiii asociate: HighAlarm, HighHighAlarm,
Normal, LowAlarm i LowLowAlarm.
Pe de alt parte, un eveniment reprezint o apariie detectat la un
anumit moment, care are o anumit semnificaie. Un eveniment poate s
aibe sau nu asociat o condiie. De exemplu, ndeplinirea condiiilor de
HihAlarm i Normal sunt evenimente care sunt asociate cu aceste
condiii. In schimb, Aciune Operator, Schimbare Confiurare Sistem i
Eroare Sistem sunt exemple de evenimente care nu se enereaz pe baza
unei condiii specifice.
Aplicabilitatea n Sistemele SCADA i DCS
Deci OPC este n primul rnd proiectat pentru accesul la datele unui server din
reea, interfaa OPC poate fi folosit la diferite nivele ale unei aplicaii. La nivelul
cel mai de jos, prin interfaa OPC se pot transfera datele de la echipamentele de
proces la sistemele SCADA sau DCS, sau de la sistemele SCADA sau DCS la aplicaie.
Arhitectura i desinul acestui standard fac posibil construirea unui server OPC
care sa permit unei aplicaii client s acceseze datele de la mai multe servere OPC
furnizate de productori OPC diferii i care ruleaz pe diferite noduri n reea.
Folosirea Interfeelor OPC la Diferite Niveluri
Arhitectura i Componentele OPC
Specificaiile OPC ntotdeauna conin dou seturi de interfee: interfee custom
i interfee automation .
La fel ca toate implementrile COM, arhitectura OPC este un model Client / Server
n care componentele server-ului OPC expun o interfa ctre obiectele OPC.
Arhitectura OPC
O aplicaie client comunic cu serverul OPC prin intermediul interfeelor custom
i automation specificate. Server-ele OPC trebuie s implementeze interfaa
custom i opional poate implementa interfaa automation. Pentru interfaa
automation este disponibil o bibliotec wrapperDLL prin intermediul creia
care se pot conecta clieni la interfaa automation
Arhitectura serverului OPC din Indralogic
Funcionarea serverului OPC din Indralogic
Serverul OPC se bazeaz pe serverul Gateway
Atunci cnd un proiect Codesys este ncrcat ntr-un controller, se poate enera
un fiier de simboluri (.sdb sau .sym) care se transmite serverului Gateway i
controllerului.
Fiierul symbol conine item-uri. Un item (obiect de date) corespunde exact unei
variabile din proiectul Codesys. Variabilele unui controller pot fi accesate prin
intermediul acestor item-uri.
Serverul OPC server solict Gateway-ului s i transmit coninutul fiierului
symbol apoi acesta creaz o list de item-uri, pornind de la informaia
recepionat. Deoarece coninului listei de item-uri este determinat de
accesibilitatea variabilelor din controller, el nu poate fi influenat de un client OPC.
n fiecare caz serverul OPC citete ultimul fiier symbol care a fost ncrcat n
canalul Gateway al unui proiect.
Item-uri de la diferite proiecte, pot fi accesate simultan daca fiierul symbol a fost
furnizat prin acelai canal Gateway.
Lista de item-uri din serverul OPC este actualizat cu date de la controller(e) la
intervale fixe. n comparaie cu accesul direct la controller, citirea i scrierea
variabilelor via liste cache conduce la creterea tipului de acces (max. approx. 1ms
per item).
Funcionarea serverului OPC din Indralogic
Serverul OPC se descurc bine cu maxim 15.000 de item-uri i fiiere symbol de
maxim 1,5 MB
Serverul OPC permite ruparea item-urilor n rupuri:
Publice: furnizate de serverul OPC
Private: furnizate de clientul OPC
Se poate confiura astfel nct serverul OPC poate rupa item-urile (variabile)
conform POU n care sunt utilizate (Cte un rup per POU).
Grupurile private pot fi create din oricare item-uri.
Iniial ele nu influeneaz rupurile din server dar pot fi transformate n rupuri
publice dac e necesar.
Grupurile ar trebui citite consistent din server adic toate variabilele s fie citite
simultan. Este important de tiut c nu e totdeauna posibil chestia asta cu
dispozitive care au buffere limitate de comunicaie.
Este posibil obinerea accesului la un server OPC localizat pe un alt computer din
reea dac este instalat un OPC server local.
Configurarea unui singur controller
Update Rate (ms): Implicit: 200. Reprezint perioada de update a serverului OPC n msec =
perioada ciclic n care toate item-urile sunt citite din controller (aceast informaie e scris
in cache-ul cu care clientul comunic la o perioad diferit).
Public Groups: Implicit: active (tick). Serverul OPC seteaz cte un rup public pentru fiecare
POU precum i pentru variabilele lobale.
Sync Init: Implicit: active (tick). Iniializare sincron: serverul OPC reacioneaz doar cnd
fiierul symbol a fost ncrcat.
Log Events: Implicit: active (tick). Aciunile care au loc pe serverul OPC precum i erorile sunt
stocate ntr-n fiier lo.
Configurarea unui singur controller
Timeout (ms): Dac serverul OPC nu primete feedback de la controller n aceast perioad
de timp se nchide automat.
Number of Tries: Numrul de ncercri pt transferul unui bloc. Dac eueaz va fi produs o
eroare de comunicare..
Buffer Size (Byte): Dimensiunea buffer-ului de comunicaie cu sistemul int. 0 inseamn
nelimita n unele cazuri.
Wait Time (s): Timpul n secunde pe care serverul OPC l ateapt pn cnd controllerul
devine operaional (important n timpul pornirii automate a controller-ului)
Reconnect Time (s): Intervalul de timp n care serverul OPC ncearc repetitiv s se
reconecteze la controller prin ateway.
Serverul Gateway din Codesys
Scopurile serverului Gateway:
Posibilitatea interrii n Codesys a driverelor de comunicaie specifice fr a fi
nevoie de a crea un executabil specific coninnd driverul. Clientul poate dezvolta i
intera drivere fr a fi nevoit s le linkeze n executabilele sale.
Utilizatorul s se poat loa pe dispozitive care nu folosesc reea, spre exemplu pe
port serial RS232.
Aplicaiile utilizator s poat comunica cu controllerul, chiar dac sistemul Codesys
nu este disponibil.
Aplicaiile utilizator s poat folosi o interfa simbolic cu controllerul, fr nevoia
de a utiliza vreun fiier enerat de Codesys
Serverul Gateway este divizat in 3 mari module:
Interfaa client
Procesul server
Driverele de dispozitiv
Modulele Serverului Gateway din Codesys
Magistrale seriale de comunicaie
Caracteristica principal a oricrei maistrale seriale este transmisia
secvenial, bit cu bit, a informaiilor, folosindu-se un numr redus de
semnale (linii de comunicaie).
n contrast, o maistral paralel permite transferul simultan al mai multor
bii (8, 16, 32), folosind n acest scop mai multe linii de date.
n principiu, transmisia serial asiur o vitez de transfer mai redus, n
comparaie cu transmisia paralel, ns este mai economic (numr mai redus
de linii de transmisie), iar distana maxim de transfer este semnificativ mai
mare.
Maistralele seriale pot fi clasificate dup mai multe criterii :
a. dupa modul de sincronizare :
transfer sincron - se utilizeaz un semnal explicit de ceas (de sincronizare) pentru specificarea
momentului n care un bit de data este valid
transfer asincron - nu se utilizeaz semnal de ceas, sincronizarea ntre unitatea emitent i cea
receptoare se face n mod implicit pe baza structurii specifice a datei transmise
Magistrale seriale de comunicaie
b. dup lunimea blocului de date transmis :
transfer pe octet
transfer pe bloc (numr mai mare de octeti)
c. dup numrul de uniti comunicante
transfer serial de tip punct-la-punct : letura se realizeaz ntre dou echipamente
transfer serial multipunct : leatura se realizeaz simultan ntre mai multe
echipamente, din care la un moment dat unul transmite i restul recepioneaz
d. dup direcia de transfer
transfer unidirecional (ntr-un sinur sens)
transfer bidirecional sau full duplex (simultan in doua sensuri)
transfer bidirecional pe o sinur linie sau half duplex (se transmite pe rnd n cele
dou direcii)
e. dupa domeniul de utilizare
maistrale de sistem - folosite pentru interconectarea componentelor unui
microsistem (ex : microcontroller, memorii, convertoare A/D si D/A etc.)
canale de comunicaie serial folosite pentru interconectarea unor echipamente
inteliente (ex : calculatoare, imprimant , consol ) prin leatura punc-la-punct
Reea de comunicaie folosita pentru asiurarea comunicaiei multipunct ntre un set
de echipamente de calcul
Magistrale seriale de comunicaie
Pentru a asiura interoperabilitatea ntre diferite echipamente realizate de diveri
productori, s-au definit o serie de standarde internaionale, care specific :
modul de transmisie a datelor (sincron/asincron),
modul de structurare a datelor transmise (octet, bloc),
viteza de transmisie,
mecanismele de detecie i corecie a eventualelor erori
tipul semnalelor folosite pentru transmisie ( tensiune, curent, tensiune diferenial,
etc.)
mecanismele de sincronizare a echipamentelor comunicante (ex : protocol
XON/XOFF, sincronizare prin semnale explicite, etc.)
tipul de conectori folosii
natura i parametrii fizici ai mediului de transmisie (ex : cablu bifilar torsadat, cablu
coaxial, fibr optic, etc.)
Cele mai cunoscute standarde folosite pentru comunicaia serial sunt : RS 232 (V24),
RS 485, I2C si HDLC/SDLC.
Nivelul fizic al sistemelor de
comunicaie serial asincron
Standardul RS232
Codificarea electric a informaiei este de tip sinle ended, adic informaia este
transmis pe un sinur fir, iar biii 1 si 0 sunt definii prin nivele de tensiune fa de o
referin comun.
Ca nivele de tensiune :
Pentru TX i RX
0 Loic = 3 : 15V (activ)
1 Loic = -3 : -15V (inactiv)
Pentru celelate semnale :
Activ = tensiune pozitiv
Inactiv = tensiune neativ
DCD Data Carrier Detect.
DTR Data Terminal Ready.
DSR Data Set Ready. Raspunsul la DTR
RTS Request To Send cerere de transmisie
CTS Clear To Send este rspunsul la RTS
i indic faptul c receptorul are loc n buffer
i poate prelua efectiv datele.
TXD linia de transmisie
RXD linia de recepie
Caracteristicile Standardului RS232
codificarea informaiilor binare : prin nivele de tensiune sau curent (bucla de
curent) :
1 loic (-3V -15V)
0 loic (+3V-15V)
structura informaiei elementare transmise :
un bit de start (0 loic)
5-8 bii de date
0-1 bit de paritate (paritate par sau impar)
1-2 bii de stop (1 loic)
semnale utilizate pentru transmisia de date i pentru controlul fluxului de date
tipul de conectori folosii (RK 25, mufa i soclu) i poziia semnalelor pe pinii
conectorilor
modul de interconectare a semnalelor la cele dou capete ale unui cablu de
transmisie
viteza de transmisie (110, 300, 600, 1200, 2400, 4800, 9600, 19200 bauds)
reuli de control al fluxului de date (control hardware protocolul DTR/DSR sau
software - protocolul XON/XOFF)
Dezavantaje RS232
Lunimea maxim a liniei de comunicaie este
limitat de modul de transmisie unipolar al
semnalelor RxD i TxD, rezistena liniei influennd
nefavorabil atenuarea semnalului sub limitele
impuse de marinea de zomot a standardului
Viteza de comunicaie scade cu distana i oricum e
mic pentru cerinele industriale
Topoloie strict point to point
Vulnerabilitate mare la perturbaii elecromanetice
Standardul RS485
Pentru medii industriale unde zomotele i interferenele cu reeaua de curent
alternativ sunt mari, a fost imainat un alt standard (EIA-485) cu imunitate mult
mai bun la zomote, funcionnd cu semnale de ieire difereniale pe o lunime
arantat a tronsonului de cablu de 10001200m.
Avantajul suplimentar este posibilitatea interfarii unui numr mare de
echipamente pe linie, 32 pentru standardul iniial sau 64 pn la 256 dac se
reduce cu un factor corespunztor curentul injectat n linie (cu sau din
valoarea iniial standardizat de 60 mA) i implicit lunimea liniei.
Tipul conectorului ce trebuie utilizat pentru interfaare i protocolul software sunt
opiunea utilizatorului.
Sunt standardizate limitele extreme de variaie a semnalelor i parial impedana
receptoarelor, valoarea curentului diferenial injectat n linie i prezena
terminatoarelor rezistive pe linie pentru viteze de comunicaie mari
Conexiunea pe RS485 se realizeaz pe 2 sau 4 fire (full duplex) + un fir de mas,
cele dou fire notate A i B sunt purttoare de semnal.
Valoarea semnalului se calculeaz n funcie de voltajul (diferena de potenial )
dintre liniile A i B, maxim 6V, tipic 5V
n stare inactiv Vb = 5V i Va = 0V
Standardul RS485
Pentru conexiunea ntre dispozitive se utilizeaz cablu torsadat care are o
impedan cam de 100 120 ohmi
Vitezele ajun pn la 35Mbit/s pn la 10m i 120Kbit/s la 1200m
Driverele se pot si n starea de impedan nalt (hih impedance) n cazul
folosirii variantei cu 3 fire
Cicuitul interat SN75176
Unde DE = Data Enable (driverele sunt puse explicit n modul transmisie)
RE Reception Enable
Standardul RS485
Structura posibil a unei linii:
Datorita discontinuitii impendanei cablului de comunicaie pot s apar reflexii
care pot corupe transferul de date daca sunt destul de mari ca amplitudine
La capetele liniilor se utilizeaz terminatoare (100 .. 120 ohmi) pentru evitarea
reflexiilor
Standardul RS485
Dac distana total depaete 1200m se pot folosi repetoare
Standardul RS485
Din punct de vedere structural, dispozitivele se mpart n:
Master (1 sau mai multe)
Slave (mai multe)
Fiecare echipament are o adres n cadrul reelei 485
Implicit toate driverele sunt n starea hih impedance (tri state)
Masterul iniiaz o comunicaie adresnd un dispozitiv Slave
Toate echipamentele primesc datele dar numai Slave-ul adresat rspunde
Dup transmisie automatul driverul trece n tri-state
Master-ul este poziionat central n cadrul reelei
Exist multe protocoale de comunicaie industrial care folosesc ca suport fizic
RS485:
Profibus
Modbus
CAN
Controlul unui celule de fabricaie cu A.P.
Exist 5 posturi de lucru
Controlul unui celule de fabricaie cu A.P.
Cele cinci posturi de lucru sunt constituite n jurul unor roboi
Adept ce pot executa operaii de asamblare/profilare i sunt
organizate dup cum urmeaz:
dou posturi echipate cu roboi articulai orizontal Cobra 600 i
efectueaz:
montarea de piese tip ax, r,l i t.
inspecie video n faza intermediar i final.
dou posturi echipate cu roboi articulai vertical Viper 650 i
maini unealt (CNC) subordonate acestora putndu-se efectua:
montare piese tip ax, l, i, t, i-modificat, aib.
manipularea pieselor brute n vederea prelucrrii pe mainile
unealt subordonate.
inspecie video n faza intermediar i final.
un post de alimentare echipat cu un robot articulat orizontal
Cobra 800 i dou feed-ere de piese tip AnyFeeder i care poate
efectua:
identificarea pieselor vrac din recipientele anyfeeder-elor.
poziionarea acestora pe palete de transport
Descrierea sistemului de transport
Port Paleta: este folosit pentru transportul paletelor, iar pe palete
sunt depozitate piesele asupra crora se fac prelucrrile
Port-paletele(160 x 160 mm) alunec pe suprafaa mediului conveior,
aceasta metod avnd urmtoarele avantaje:
o Poziionare. Paletele sunt poziionate n dreptul staiilor de lucru cu o precizie de
0.05mm atunci cnd sunt folosite uniti de poziionare, permind efectuarea
operaiilor de asamblare de mare precizie.
o Montare. Paletele sunt prevzute cu dispozitive de fixare pentru a securiza
componentele pentru asamblri manuale sau automate. De asemenea, exist
posibilitatea ca pe palete s se monteze dispozitive de identificare a lor i
transport al unor date/informaii folosite pentru coordonarea secvenelor de
asamblare.
o Oprire. Port-paletele pot fi oprite pe band indiferent de orientarea lor pe
conveior.
o Detecia. Senzori montai pe spatele sau lateralul paletelor funcioneaz mpreun
cu conveiorul pentru detecia prezenei paletelor.
Conveiorul longitudinal i Unitatea de transfer
Rolul conveiorului longitudinal este acela de a transporta paletele
ntr-o bucl nchis
Conveiorul transversal este folosit pentru a uni dou benzi paralele
Opritoare i lifturi
De-a lungul benzilor conveioare se afl opritoare pneumatice care pot
opri paletele n diferite puncte, aceste opriri fiind necesare fie pentru
lucru asupra produselor transportate, fie pentru a opri eventualele
ciocniri ntre palete.
Ele au doar o comand de tip boolean: dac aceasta este false
opritorul blocheaz trecerea paletei, dac este true opritorul
permite trecerea nestingherit a paletei.
Pentru a se putea face devierea de pe o banda principal pe una
secundar de deviere se folosesc lifturi pneumatice cu trei stri:
o jos pentru ca paleta s poat trece fr probleme prin dreptul deviaiei
o mijloc pentru ca paleta s se opreasc pe lift i s se fac alinierea cu banda de
deviaie pe care aceasta va intra
o sus paleta s-a aliniat pentru intrarea pe banda secundar de deviere.
Automatul programabil
Comanda elementelor constituente ale sistemului de transport este
efectuat de un automat programabil Bosch-Rexroth seria
IndraControl L40. Automatul are urmtoarea configuraie de module:
5 module de cte 32 intrri digitale
1 modul de 8 intrri digitale
3 module de cte 32 ieiri digitale
Automatul poate fi programat cu ajutorul mediului Indralogic
(Codesys adaptat de Bosch)
Interfeele de comunicaie
Interfaa serial
Interfaa Ethernet
Interfaa RS485: Unitatea central prezint o interfa de tip RS485,
tipul cablului folosit pereche torsadat ecranat. Protoclul
implementat este Profibus
Arhitectura reelei Profibus
Reeaua ProfiBus are drept Master unitatea central IndraControl L40 a crei
adres este configurat automat la valoarea 1.
Module slave:
unitate de extensie Bosh B-IO M-DP, configurat la valoarea arbitrar 3
dou procesoare RFID care comand 4 capete de citire scriere, ale cror adrese sunt
configurate la 12 i 13. Configurarea adreselor profibus ale modulelor slave se face manual cu
ajutorul selectoarelor de adres corespunztoare
Selectoarele de adres ale modulelor Slave
Arhitectura reelei Ethernet
Sistemul de identificare de tip RFID RD i RD/WR
Sistemul de identificare folosit este realizat de firma BALLUFF i este de tipul
BIS-C 600. El este format dintr-un procesor, capete de citire/scriere i pastil-
memorie RFID asupra creia se fac aceste operaii de scriere/citire.
Procesorul BIS C-602-019-650-03-KL2 este conectat cu automatul programabil
prin intermediul interfeei ProfiBus iar legtura cu capetele de citire/scriere se
realizeaz prin cablurile speciale oferite de productor
Senzorii de citire sunt de tipul BIS C 60R -001-08P-PU-10 i ofer pe 8 linii
digitale datele i pe 1 linie digital validitatea acelor date ceea ce conduce la
existena a maxim 256 de coduri valide de identificare RFID (vezi fig)
Sistemul de identificare de tip RFID RD i RD/WR
nscrierea codului paletei corespunztor planificrii produselor se face dup
urmtorul principiu: dei memoria folosit n sistemul de identificare permite
scrierea i citirea a 1023 de octei, senzorii de citire de tipul BIS C-60R-001-
08P-PU-10 nu pot oferi dect o informaie cuprins ntr-un singur octet.
Pentru a evita identificarea greit sau erorile de scriere se folosesc primii trei
octei de pe palet, primul dintre cei trei fiind efectiv codul de indentificare iar
urmtorii doi fiind complementul binar fa de 1.
Magazia de produse
Introducerea paletelor n sistem precum i preluarea i stocarea acestora
dup ce au fost realizate trebuie efectuat n mod automat cu ajutorul unui
robot.
Datorit aplicaiei specifice n care acesta va fi utilizat a fost proiectat o
magazie pentru stocarea produselor i a port-paletelor acestora. Aceasta
conine patru sertare mobile, acionate de patru pistoane pneumatice, pe
fiecare dintre aceste sertare putndu-se poziiona patru palete produs sau
patru port-palete.
Magazia de produse
Aceste palete sunt pe rnd introduse n spaiul de lucru al robotului pentru a
putea fi preluate sau stocate n funcie de necesitate. S-a apelat la aceast
soluie constructiv ntruct anvelopa de lucru a robotului este mult mai mic
dect volumul total ocupat de produse.
Pentru a putea controla dispozitivele mecanice ale magaziei, s-a utilizat un
dispozitiv tip microcontroller. Acesta poate comunica direct cu controllerul
robotului Cartezian prin intermediul interfeei seriale i prin aceasta preia
comenzi n privina sertarului pe care robotul vrea s l acceseze pentru a
poziiona produsul.
Magazia de produse
Arhitectura sistemului de nmagazinare de produse inteligente a fost centrat pe
microcontroller. Acesta are drept intrri digitale informaiile oferite de senzorii
de poziionare a sertarelor, precum i butoanele de comand manual pentru a
da posibilitatea operatorului uman s acceseze paletele. Ieirile digitale ale
acestuia sunt conectate la un display alfanumeric pentru a informa utilizatorul
asupra strilor n care se afl magazia i comenzile electrovalvelor de comand
ale celor patru pistoane. Senzorii i electrovalvele utilizate sunt identice cu cele
care ntr n componena sistemului de transport i care au fost prezentate
anterior.
Structura software din automat
Sistemul are trei regimuri de funcionare:
Manual
Diagnoz
Automat
n regimul manual, operatorul uman are posibilitatea de a porni individual,
elementele constituente ale sistemului de transport, pentru a putea face
verificri de rutin sau a aduce sistemul ntr-o anumit stare dorit.
Regimul de diagnoz permite deplasarea unei palete ntre posturile de lucru,
oprirea acesteia n anumite puncte cheie ale sistemului de transport astfel nct
operatorul s nu fie nevoit s realizeze succesiunea de operaii complicate asupra
elementelor mecanice. Acest regim ofer drept rezultat, att deplasarea paletei
ntre punctele dorite precum i diagnoza a strii de funcionare a ntregului
sistem prin mesaje de confirmare a efecturii operaiilor sau de eroare.
Regimul automat este regimul normal de funcionare. El presupune ca sistemul
de transport s interacioneze cu celelalte componente ale celulei de fabricaie si
s efectueze operaiile necesare deplasrii paletelor-produs ntre posturile de
lucru. De asemenea el trebuie s intermedieze comunicaia ntre planificatorul
global i celul, n cazul unui defect s anune acest lucru i operatorului uman
iar n cazul epuizrii unuia din stocurile de piese al roboilor s declaneze
realimentarea cu piese a robotului respectiv.
Regimul manual
Cnd automatul se afl n regimul manual, el trebuie s permit operatorului uman s
comande individual toate elementele de acionare ale sistemului de transport, pentru a
putea face verificri de rutin sau a aduce sistemul ntr-o anumit stare dorit.
n celelalte regimuri de control ale automatului accesul la resursele conveiorului este
limitat, putnd fi activate doar benzile principale. Strile senzorilor elementelor
constituente ale sistemului de transport pot fi cu uurin monitorizate pentru a
confirma: pornirea/oprirea utilajelor, ridicarea/coborrea mecanismelor de transfer al
paletei de pe o band conveioare pe alta, poziiile paletelor n dreptul elementelor cheie
implicate i poziiile lifturilor (sus/jos/la mijloc).
Comutarea n regimul manual se realizeaz dup pornirea mediului de programare
IndraLogic, iar realizarea conexiunii cu automatul prin apsarea butonului de Login, fie
prin apsarea butonului Manual ntr-un alt ecran de vizualizare, fie prin alegerea
vizualizrii cu numele ModManual ca n figur
Regimul manual
Comenzile elementelor de acionare pot fi mprite n trei categorii:
- comanda motoarelor electrice;
- comanda opritoarelor mecanice;
- comanda lifturilor pneumatice;
Comanda unui motor cu dou sensuri de rotaie a fost implementat cu ajutorul a
dou butoane de comand, cte unul pentru fiecare din cele dou sensuri, care
realizeaz activarea ieirilor digitale corespunztoare. Deoarece schimbarea de
sens a unui motor se face prin inversarea celor trei faze de comand (motoarele
sunt trifazate), activarea simultan a celor dou sensuri duce la scurtcircuit
respectiv la activarea siguranei termice corespunzatoare motorului respectiv.
Fiind o situaie anormal, butoanele sunt interblocate astfel nct, dac unul este
activ, cellalt nu poate fi apsat. Din punct de vedere grafic s-a ales includerea
pe lng litera M i a unei sgei care s indice sensul pe care butonul de
comand al motorului l va activa
Regimul manual
Comanda opritoarelor mecanice presupune activarea unei ieiri digitale care
la rndul ei activeaz o electrovalv pneumatic. Astfel aerul din circuitul
pneumatic intr n opritor, fcnd acest element s coboare i s lase paleta
s treac mai departe pe banda conveioare. Pentru a ridica opritorul trebuie
doar dezactivat ieirea digital care comand electrovalva i aerul va prsi
opritorul acesta ridicndu-se i oprind eventualele palete care circul pe
banda conveioare
n figura de mai sus sunt prezentate mai multe opritoare i martorii
corespunztori lor. Butoanele de comand au fost implementate cu simbolul
de comand o iar martorii lor i schimb culoarea n funcie de opritor (rou
dac opritorul este inactiv i verde dac acesta a cobort lsnd paleta liber).
Regimul manual
Comanda lifturilor cu trei poziii este asemntoare cu cea a motoarelor cu
dou sensuri de rotaie. Au fost realizate dou comenzi digitale care pot activa
dou electrovalve pneumatice.
Dei activarea simultan a dou butoane nu produce scurtcircuit ca n cazul
motorului cu dublu sens a fost implementat acelai mecanism de interblocare
pentru a evita creeare unor tensiuni n circuitul de aer comprimat.
Dac nu e activ nici o comand, liftul rmne n poziia din mijloc. Simbolurile
alese pentru butoane sunt ^ pentru comanda de ridicare a liftului iar v
pentru coborrea acestuia.
n modul manual este util s se tie dac paleta a ajuns n locaiile dorite i de
aceea au fost configurate i elemente grafice care figureaz poziile acestora
Regimul manual
n figura de mai jos este surprins o instan cu trei palete care ateapt n
poziii cheie. Dou dintre acestea se afl n dreptul senzorilor de citire a
codurilor RFID i acestea sunt afiate deasemenea. Dac senzorii inductivi sunt
inactivi, n dreptul poziiei cheie nu se afl nici un element grafic.
Regimul de diagnoz
n regimul de diagnoz sunt testate elementele mecanice ale
sistemului de transport i trebuie s permit operatorului uman
detectarea facil a posibilelor defecte de funcionare.
Pentru a putea mica o palet prin sistemul de transport trebuie
efectuat o succesiune de operaii bine determinate, iar n
funcie de destinaia final dorit a acesteia, aceast succesiune
este diferit.
Regimul de diagnoz a fost implementat pentru a permite fixarea
destinaiilor paletei, aceasta putnd fi oricare din poziiile unde o
palet poate fi oprit, iar apoi pe parcursul traseului operatorul
uman este informat, printr-un mesaj text, asupra poziiilor
intermediare prin care paleta trece.
n cazul n care paleta nu ajunge la destinaie dup un anumit
timp sau nu face tranziia printr-o poziie intermediar suficient
de repede, operatorul uman este informat asupra posibilitii
defectrii sistemului.
Regimul de diagnoz
Comutarea n regimul de diagnoz se realizeaz dup pornirea mediului
de programare IndraLogic, fie prin apasarea butonului Diagnoza ntr-
un alt ecran de vizualizare, fie prin alegerea vizualizrii cu numele
ModDiagnoz.
Interfaa prin care se poate face diagnoza este cea din figura de mai
jos.
Regimul de diagnoz
Procedura care a fost implementat pentru verificarea rutrii paletelor
dintr-un punct n alt punct este urmtoarea:
se pornesc motoarele benzilor principale
se introduce destinaia dorit n chenarul Noua destinaie sub form numeric
se valideaz destinaia
se ateapt ca paleta s ajung n poziia dorit.
Destinaiile se introduc sub forma unor numere acestea fiind aezate n
dreptul fiecrei poziie unde paleta ar putea fi oprit. n exemplul dat se
observ c a fost introdus destinaia 4 care corespunde poziiei de
mijloc pe liftul ce face devierea catre robotul 1.
Odat ce paleta a atins destinaia operatorul este informat printr-un
mesaj text, iar un buton de confirmare a citirii mesajului va aprea pe
ecran. De fiecare dat cnd paleta parcurge o zon de conveior i trece
prin dreptul unei poziii operatorul uman este informat prin mesaj text. n
cazul n care paleta nu parcurge un segment operatorul este informat ca
in figura
Regimul de diagnoz
Regimul automat
Trebuie s asigure primirea datelor de la planificatorul global, s transpun
aceste date n micri ale elementelor de execuie i n plus s detecteze
strile de anormalitate ale sistemului
Problema de control a sistemului de transport pentru rutarea produselor din
pachetul n execuie simultan presupune preluarea datelor de la
planificatorul global (ce ruleaza pe un server de tip IBM xSeries 3500) i
transpunerea lor n comenzi pentru elementele de acionare a conveiorului.
Primul pas de proiectare a constat n alegerea formei sub care se vor reine
datele de la planificator. Paleta produs sufer mai multe operaii, fiecare
dintre acestea necesitnd i o serie de informaii suplimentare: postul la care
operaia se execut, durata operaiei, etc
S-a definit structura standard de forma:
TYPE datemasina :
STRUCT
post: BYTE; (*postul de lucru al robotului codificat numeric*)
operatie: BYTE; (*operaia care va fi efectuata asupra piesei codificata numeric*)
timpmin: WORD; (*timpul minim pe care l ia operaia la postul robotului*)
timpmax: WORD;(*timpul maxim pe care l ia operaia*)
raport: BYTE; (*un raport succint ce specifica succes, failed etc.. *)
END_STRUCT
END_TYPE
Regimul automat
Aceasta structur este repetat pentru fiecare operaie pe care produsul
trebuie s o suporte pentru a fi finalizat iar memorarea acestora se face ntr-o
matrice numit sir_palete.
Ea cuprinde 256 de cmpuri, n care se rein 16 structuri de tipul datamasina,
structura fiind de tipul unei matrici cu 256 de linii a cte 16 coloane, fiecare
element din matrice fiind la rndul su format din cele 5 elemente
constituente ale structurii datamasina.
Pentru a avea acces la un element anume al acestei structuri trebuie s se
precizeze cele dou coordonate (coloana i linia) ale structurii de tipul
datamasina dorite precum i cmpul dorit din structura respectiv.
Linia este dat de numrul/ordinul paletei asupra creia urmeaz s se
execute operaiile iar coloana este indexul operaiei. Pentru a uura accesul la
aceti indeci (256) se memoreaz valorile ntr-un vector denumit sir_index
cu 256 de poziii corespunztoare fiecrei palete/ordin, valoarea regsit aici
indicnd la a cta operaie se afl paleta.
Poziie 1 2 10 256
Index-ul operaiei 5 4 2 1
Regimul automat
Folosind aceast structur automatul programabil are toate datele
necesare pentru a putea ruta prin comenzi de aciuni mecanice o
palet-produs n sistem.
S-a decis ca sistemul de transport s fie mpartit n segmente, fiecare
din ele fiind gestionat de un program propriu care, innd cont i de
starea elementelor din vecintate, d comenzile necesare pentru
transportul paletei n afara propriei arii de aciune, unde va fi preluat
de programul segmentului urmtor.
Produsul poate urmri traseul de pe benzile conveioare principale,
fcnd o bucl sau poate fi deviat ctre cele patru posturi de lucru,
ctre postul de alimentare cu piese sau ctre ieirea din sistem.
La cele cinci locaii unde sunt posibile devieri exist senzori ce pot
identifica codul nscris pe pastila magnetic i n funcie de destinaia
urmtoare traseul paletei va fi sau nu deviat ctre un post robot sau
ieire
Sistemul de identificare a paletelor utilizand
senzori RFID READ
Regimul automat
Odat ce paleta a ajuns n dreptul senzorilor, cel inductiv este activat
iar cel de identificare ncepe citirea automat a identificatorului
paletei. Imediat ce codul unic de identificare a fost citit este pus la
ieirea paralel a senzorului, automatul putndu-l citi pe liniile de
intrare respective (senzorii de identificare sunt conectai direct prin
linii de intrare ieire digital).
Imediat dup citirea codului de identificare, automatul programabil
verific pe baza lui i a structurii de date ce conine ordinele de
producie, care este urmatorul post la care paleta trebuie s ajung.
Dac acesta nu corespunde postului de lucru unde se poate face
devierea, paleta este lasat s treac mai departe ctre urmtoarea
poziie unde ar putea fi deviat (ramne n circuit pn cnd
ntlnete locaia urmtoarei operaii). Dac totui paleta trebuie s
efectueze o operaie la acest post de lucru, atunci se ncepe
interogarea prin interfaa Ethernet a robotului pentru a afla dac se
accepta jobul respectiv. Odat primit acceptul jobului, paleta este
deviat i adus n poziia de lucru, iar acest eveniment este
semnalizat robotului prin liniile de I/E digitale pentru a se putea
ncepe execuia operaiei.
Regimul automat
n exemplul ce urmeaz (Tabel 3.5) o palet se afl pe banda principala n
drum ctre macazul corespunztor robotului 2, iar codul nscris pe pastila
magnetic este cel cu numrul 10. n momentul n care paleta se afla n
dreptul senzorului de citire din faa acestui macaz, codul ei este citit ntr-o
variabil numit Cod_paleta_r2, fcndu-se verificarea dac urmtorul post la
care paleta trebuie s treac este cel al robotului 2 prin accesarea structurii
sir_paleta figurat n tabelul de mai jos, i a vectorului sir_index figurat n
tabelul de mai sus
Pentru a vedea postul la care paleta trebuie s intre se apeleaz structura sub
forma
sir_palete[code_paleta_r2 ,sir_index[code_paleta_r2]].post care n acest caz devine:
sir_palete[10,sir_index[10]].post i nlocuind cu valoarea gsita n tabel:
sir_palete[10,2].post adic ceea ce se gsete n cmpul post din Structura2.
Ordinul Structura1 Structura2 Structura3 Structura16

10 Post = 3
Operaie=2
Timpmin=123
Timpmax=128
Raport=0
Post = 2
Operaie=0
Timpmin=12
Timpmax=18
Raport=0
Post = 255
Operaie=0
Timpmin=0
Timpmax=0
Raport=0
Post = 0
Operaie=0
Timpmin=0
Timpmax=0
Raport=0

Date schimbate cu planificatorul celulei


Structura de date ce este memorat n automat presupune transferul a
256(linii) x 16(coloane) x 5(elemente din structura) = 20480 de itemi n
structura fiierului de simboluri, ceea ce ar depi posibilitile oferite de OPC
Server. Din acest motiv s-a hotrt transmisia succesiv a datelor folosind o
structur de variabile mai mic, i alegerea logic a fost transmisia simultan a
16 structuri de cte 5 elemente plus alte dou elemente de date necesare
gestionrii acestei structuri, in formatul:
post1: BYTE;
operatie1: BYTE;
timpmin1: WORD;
timpmax1: WORD;
raport1: BYTE;
post2: BYTE;
operatie2: BYTE;
timpmin3: WORD;
timpmax3: WORD;
raport3: BYTE;
..
...............................
post16: BYTE;
operatie16: BYTE;
timpmin16: WORD;
timpmax16: WORD;
raport16: BYTE;
Date schimbate cu planificatorul celulei
Odat cu aceste date se transmite n plus un ir de caractere numit time_insertion n care este
trecut momentul de timp la care ar trebui s fie introdus n sistem paleta-produs, un indicator
boolean care semnalizeaz dac paleta mai poate fi produs numit failed i un alt ir de caractere
numit product_name n care se regsete denumirea produsului.
Pentru feedback se folosesc urmtoarele variabile
index_pal_1: BYTE; (*indexul/ordinul primei palete din sistem*)
index_pal_2: BYTE;
index_pal_3: BYTE;
index_pal_4: BYTE;
index_pal_5: BYTE;
location_pal_1: BYTE; (*localizarea paletelor*)
location_pal_2: BYTE;
location_pal_3: BYTE;
location_pal_4: BYTE;
location_pal_5: BYTE;
Perechea de variabile index_pal i location_pal arat unde se afl fiecare ordin din sistem.
Variabilele de stare ale fiecrui robot sunt:
robot1_status:BYTE;(*statusul robotului 1*)
robot2_status:BYTE;(*statusul robotului 2*)
robot3_status:BYTE;(*statusul robotului 3*)
robot4_status:BYTE;(*statusul robotului 4*)
robot5_status:BYTE;(*statusul robotului 5*)
Protocolul de comunicaie ntre automat i Robot
Automatul programabil este conectat la controllerele resurselor (ex.
controllere robot) prin intermediul a dou tipuri de interfee:
Ethernet
linii digitale de intrare/ieire

PLC
Controller Robot
Request Job
Ready
Pal in Pos
Job Done
Request Status
Status Reply
Ethernet TCP/IP
Protocolul de comunicaie ntre automat i Robot
Protocolul de comunicaie Robot Automat
Liniile de semnal au semnificaia urmtoare:
READY semnalul prin care robotul indic starea de liber sau ocupat;
RQST-JOB semnalul prin care AP face o cerere pentru ocuparea unui robot;
TCP Robot linia de transmisie de la robot la AP D2 reprezint acceptul sau refuzul pentru job;
TCP PLC linia de transmisie de la AP la robot D1 reprezint detaliile legate de job-ul dorit;
Pal n Pos semnalul ctre robot care indica prezenta paletei n poziia de lucru a robotului;
Job Done semnalul care indic terminarea jobului iar D3 reprezint caracterizarea detaliilor legate de
terminarea jobului (succes, fail, etc.);
T1 timpul de decizie (interogare stocuri, etc.) asupra acceptrii jobului;
T2 timpul necesar sistemului de transport pentru a aduce paleta n poziie;
T3 timpul necesar efecturii job-ului.

READY
RQST-JOB
TCP Robot
TCP PLC
Pal In Pos
Job Done
D1
D2
T1 T3 T2
D3
Rejectarea perturbaiilor de defectare/recuperare a funcionalitilor
unei resurse
Natura perturbaiilor n cadrul funcionrii acestui sistem poate fi de dou feluri:
- Defectarea sau repararea unei resurse de producie;
- Terminarea stocului de piese al unei resurse de producie.
Pentru a putea rejecta perturbaiile provocate de defectarea sau repararea unei
resurse sistemul interogheaz ciclic starea acestora prin protocolul implementat
prin liniile de intrare ieire digitale (n cazul de fa cea a roboilor ) iar dac una
dintre acestea nu rspunde ntr-un anumit timp este declarat ca fiind defect.
Imediat sistemul reacioneaz efectund urmtoarele operaii:
1. Oprete toate aciunile de natur mecanic.
2. Reimprospteaz holonul resurs privind noile stri ale resurselor.
3. Citete strea produselor aflate n sistem (ce operaii au fost efectuate).
4. Evalueaz toate ordinele rmase dac mai pot fi terminate:
n cazul defectrii:
Dac resursa poate fi nlocuit toate produsele pot fi nc terminate;
Dac resursa nu poate fi nlocuit toate produsele care utilizeaz aceast resurs nu mai pot fi executate i sunt marcate corespunztor.
n cazul unei reparri:
Dac produsele marcate ca fiind imposibil de realizat se pot executa, le re-marcheaz pentru executare.
5. Iniializeaz planificatorul cu starea actual a sistemului.
6. Replanific produsele innd cont ordinele executate deja, ordinele marcate ca imposibil de
efectuat i cele demarcate.
7. Supra-scrie planificarea n automatul programabil cu noile date.
8. Reia toate aciunile mecanice.
Rejectarea perturbaiilor de defectare/recuperare a funcionalitilor
unei resurse

Legenda: P operaie de planificare; W ateapt instruciuni; C verificarea


statusurilor; R Robot operaional; T operaii de transport; F defectare
robot; H semnal de oprire; S oprirea aciunilor mecanice; I iniializarea
planificatorului; Rr reparare robot; TP- terminarea produciei n curs; RP-
replanificare;

P
L
C







F
A
I
L
U
R
E

M
A
N
A
G
E
M
E
N
T

P
W
C
R T R T
C
F S
C H I
TP
W R T
C
Rr S
C H I
W
timp
P
L
A
N
N
E
R

RP
TP
RP
Organizarea sistemului de programe pentru controlul automat
Sistemul de programe proiectat pentru regimurile de control manual, de
diagnoz, de pilotare automat n vederea rutrii i execuiei produselor i de
trasabilitate a proceselor i produselor cu vizualizare prin interfee grafice, i
implementat pe automatul programabil are o structur complex fiind format
din mai multe programe ce ruleaz n paralel, aa cum se prezint n figura
3.43.
Primul dintre acestea este programul de comunicaie prin OPC Server cu
planificatorul off-line aflat pe serverul de aplicaii. El preia datele de fabricaie
i le memoreaz n structura specific automatului pentru a fi ulterior
accesate de ctre programele de transport. Pentru fiecare palet se transmite
ordinea posturilor cu operaiile corespunztoare pe la care paleta trebuie s
ajung precum i timpul pentru inseria n sistem.
Failure MANAGER este o unitate care verific tot timpul statusul roboilor.
Dac un robot nu rspunde la semnalul Request status atunci Failure
management oprete (pune pauz) toate programele de transport i
informeaz planificatorul, iniializnd comunicaia prin OPC pentru a
semnaliza astfel schimbarea strii de funcionare a robotului.
Organizarea sistemului de programe pentru controlul automat


Structura paletelor
Ordinea operatiilor
Timpul pentru inserare
Citire
intrare
NU
Citire cod
paleta

DA
DA
DA
Deviere
paleta
Actiuni
mecanice
pentru a
Identificare
problema si
rezolvare
NU
NU

NU
Actiuni
mecanice
pentru a
Unitate decizie intrare in post
Unitate de transfer
Planificator
Comunicatie

Verificare
Accepta
Robotul
DEFECT
OK
Informeaza Planificatorul
si initializeaza comunicatia
prin OPC
Reluare
Proces
Failure/Recovery MANAGER
DA
Paleta detectata
si conditii indeplinite
Organizarea sistemului de programe pentru controlul automat
Structura sistemului software de programe gestionate de Automatul
Programabil ca unitate central de pilotare i urmrire a produciei conine un
total de 39 de module de programe i trei funcii. Aceste subsisteme software
au fost imparite n 10 categorii:
Programe de tip opritor
Programe de tip lift
Programe de tip transfer
Programe de tip comunicaie robot I/E digitale
Programe de tip TCP data send
Program de tip scrie cod (RFID)
Program de tip gestiune timp
Programe de tip gui (graphical user interface)
Program de tipul comunicaie OPC
Funciile de comunicaie specifice TCP/IP
Programe de tip Opritor
Programul de tip opritor pentru introducerea paletelor n sistem
Procedura de evacuare a paletelor din sistem
Programe de tip lift
Programul de tip transfer
Programul de tip "transfer" are n gestiune comanda unui lift dublu i a
opritorului ce l precede. Acest transfer va prelua paleta de pe o banda
principal a conveiorului i o transport pe cealalt band principal
Tipuri de Control
Exist mai multe tipuri de control:
Control de Proces (Process Control ): reprezint o gam de arhitecturi,
mecanisme, algoritmi de meninere a ieirii unui proces ntr-o anumit
gam. Se mparte n:
Control discret: Variabile care variaz discret n timp. Folosit n aplicaii de
manufactur, micare, mpachetare, asamblarea robotizat (cum ar fi de exemplu
n industria auto)
Control continuu: Deseori, un sistem fizic este reprezentat rpin variabile continue
i nentrerupte n timp. Controlul temperaturii apei dintr-o incint este un
exemplu. Procese importante continue au loc n producia de carburani,
chimicale i plastic. Procesele continue sunt folosite pentru a produce cantiti
mari de produse finale anual.
Control pe loturi (Batch Process Control): Unele aplicaii necesit cantiti
specifice de materie prim combinate ntr-un anumit fel pentru anumite perioade
de timp astfel nct s produc un rezultat intermediar sau final. Exemple:
producia de mncare, buturi, meciamente, adezivi etc.
Control de Produs (Product Control): Product Automation reprezint
automatizarea etapelor individuale sau a etapelor ntregului lan de a
produce ceva
Nivele ale controlului de proces
1. Masur i comand: < 1 secund
2. Siguran, protecie ambiental i a
echipamentelor: < 1 secund
3. Control regulator : secunde - minute
4. Control Multivariabil: minute - ore
5. Optimizarea n timp real: ore - zile
6. Planificare: zile luni
Automatizarea de proces este folosit n scopul
maximizrii produciei meninnd un nivel dorit
la calitii produselor i al securitii
Msur i comand
Dispozitive de masur (senzori i
traductoare) i echipamente de
comand (motoare, valve de control)
sunt folosite pentru a msura variabilele
de proces i a implementa aciunile de
control necesare
Dispozitivele sunt interfaate cu sistemul
de control, de obicei un automat
programabil
Sunt indispensabile sistemului de
control
Siguran i protecie
Procesul trebuie sa opereze n siguran i s
satisfac condiiile de mediu
Se bazeaz pe principiul straturilor multiple
de protecie care implic combinaia de
echipamente i aciuni umane
Un strat include funcii de control al
procesului, cum ar fi gestionarea alarmelor n
cazuri de funcionare anormal i
echipamente pentru oprirea de urgen
(emergeny shutdown)
Echipamentele de siguran opereaz
independent de instrumentaia obinuit
Tehnici de validare a strii senzorilor pot fi
folosite pentru a confirma funcionarea lor
corect
Controlul Regulator
Variabile de proces ca:
temperatur, presiune, flux etc
trebuie s opereze ct mai aproape
de valorile de referin
Reglarea lor se obine prin tehnici
standard de tip feedback i
feedforward
Dac tehnicile standard nu satisfac,
se folosesc tehnici mai avansate
(fuzzy logic, reele neuronale)
Controlul multivariabil
Procese dificile:
1. Interaciuni semnificative ntre
variabile importante din proces
2. Constrngeri de inegalitate pentru
variabilele controlate i manipulate
Constrngerile includ limitele
superioare i inferioare.
Se folosesc tehnici de control
avansate, spre exemplu MPC
(model predictive control)
Optimizare n timp real
Condiiile de operare optim se pot schimba frecvent datorit:
Disponibilitatea echipamentelor
Disturbri ale procesului
Condiii economice schimbate (ex. costurile materie prim)
Condiiile de operare optim trebuie recalculate regulat i
stabilite noi valori de referin pentru variabilele controlate
Acest nivel include i analiz de date pentru a asigura faptul c
modelul procesului folosit n calculele RTO (Real Time
Optimization) sunt corecte pentru condiiile actuale.
Tehnici de reconciliere a datelor pot fi folosite pentru a asigura
c balanele energetice sunt satisfcute (tehnologie care
folosete informaiile din proces i metode matematice n
scopul corectrii automate a masurtorilor din procesele
industriale)
De asemenea modelul procesului poate fi actualizat folosind
tehnici de estimare a parametrilor i informaii recente despre
fabric.
Planificare
Se planific i se programeaz
operaiile pentru ntreaga fabric
La procese continue, rata de producere
pentru fiecare produs trebuie planificat
i coordonat, bazat pe constrngerile
echipamentelor, capacitatea de stocare,
estimare a vnzrilor
Structura unui sistem de control avansat
Structura unui sistem de control avansat
Camera de control
Sinoptice
Vizualizare presiuni, temperaturi,
nivel, debit etc.
Grafice de evoluie
Lmpi de tip indicator
Butoane
Comutatoare / selectoare
Generatoare de alarme
Controllere
Camera de control
Camera de control
INSTRUMENTAIA
Instrumente de msur temperatur, presiune,
nivel, conductivitate, rezisten, etc.
Instrumente de acionare (operare) -
contactoare, butoane, comutatoare.
Instrumente de monitorizare - indicatoare de
stare, lmpi, indicatoare analogice
Echipamente electrice - motoare, electrovalve
Echipamente inteligente- Incorporeaz
procesoare (conversie, presiune diferenial, flux-
cantitate, adjustri etc)
Echipamente Compuse - Analizoare (proprieti
fizice, compoziie, analiz materiale)
INSTRUMENTAIA
n instalaiile noi traductoare inteligente i
senzori conectai la magistrale de cmp
(ProfiBus, ControlNET, DeviceNET) au
nceput s fie utilizate n locul dispozitivelor
clasice, avnd 2 mari avantaje:
Reducerea costurilor de cablare
Mentenan uoar
Pentru aceste echipamente productorii
furnizeaz pachete de programe care dau
informaii att despre sistem ct i despre
dispozitivul n sine dnd posibilitatea
determinrii dac un dispozitiv de cmp
funcioneaz corect sau nu.
INSTRUMENTAIA
Selectarea instrumentaiei depinde de factori ca:
Tipul i natura fluidului sau solidului implicat
Condiiile relevante ale procesului
Gam, acuratee i repetabilitate necesare
Timpul de rspuns
Costurile instalrii
Mentenan i fiabilitate
O valv const dintr-un corp i un actuator
Alegerea unei valve performant necesit
considerarea caracteristicilor procesului cum ar fi
caracteristica fluidului, gama de valori, sigurana,
timpul de rspuns
Transmisia semnalelor
Conectare clasic cu fir de la instrument
la sistemul de control (0-20 mA sau 0-5V)
Comunicaie cu fir pe magistrale de cmp
(serial, RS485)
Fr fir (wireless)
Ethernet
Satelit
Tipuri de control
Reglare (cu dispozitive poziionate local,
mai rar de la distan, algoritmi de tip
PID)
Supervizare, control discret (cu PLC-
uri+ interfee grafice)
Control avansat (algoritmi avansai gen
Fuzzy Logic)
Controllere
Funciile unui controller:
Scanarea periodic a liniilor de I/O
Aciuni asupra I/O:
Interblocri
Filtrri
Calcule
Mesaje, alarme
Execuie de operaii ciclice i secveniale
Transmisie de date ctre alte echipamente
Transmisie de date ctre supervizor (HMI)
Pentru reglare cel mai folosit controller feedback este
proporional-integral cu 2 parametri:
Constanta proporional Kc
Constanta de timp de integrare
Pt. un rspuns mai rapid se utilizeaz controlul PID
n general se folosete forma discret a algoritmului PID
Funciile unei interfee HMI (Human Machine
Interface)
Prezentarea grafic a procesului
Introducerea de date sau parametri
Alarme
Mesaje pe ecran, anunuri de
evenimente
Butoane virtuale pentru operare
Grafice n timp real i istorice
Rapoarte
Bucle de control, transmisie ctre
echipamentele din cmp
Exemplu de HMI (Human Machine Interface)
Alarme
Grafice n timp real
Tipuri de sisteme de control
PLC (Programmable Controller)
DDC (Direct Digital Control)
DCS (Distributed Control System)
HMI (Human Machine Interface)
SCADA (Supervisory Control and
Data Acquisition)
Dulapuri de automatizare
Probleme de securitate
Scopul unui sistem de siguran este de a proteja oamenii
i echipamentele. Cnd apare un pericol sistemul va duce
dispozitivul ntr-o stare sigur.
Standardele de securitate impun implementarea de
sisteme sigure cu un mare grad de redundan, cu scopul
de a asigura un rspuns al sistemului n orice situaie,
pentru a evita catastrofele.
De obicei se implementeaz un sistem numit ESD
(Emergency Shut Down) format dintr-un PLC i o HMI care
este complet independent de sistemul de control .
Este obligatorie separarea dintre sistemul de control al
procesului i sistemul de shutdown.
Exemplu de sistem de oprire de siguran
Oprirea unui furnal cnd se detecteaz presiune mic de gaz
Exist 2 sisteme separate: hard i soft
Sistemul informaional
Deasupra sistemului de control este necesar un sistem informaional
care s centralizeze informaiile de la toate echipamentele
sistemului de control precum i din cadrul procesului de fabricaie
astfel nct s poata genera rapoarte despre eficiena produciei ct
mai rapid posibil.
Funciile principale ale sistemului informatic:
Istoric de date
Calcul de performane: energie consumat, cantitatea de
materie prim
Distribuie de informaie:
Evoluii ale parametrilor proceselor
Foi de calul electronice
Alte informaii alocate anumitor utilizatori
Interfaarea cu alte sisteme
Sistemul informaional
Integrarea cu alte sisteme informatice pentru realizarea:
Proiectarea a sistemului de control
Planificarea produciei
Optimizare
Simulare
Cerinelor de marketing
Sistemelor de preuri
Gestionrii materiilor prime
Sistemelor de mentenan a echipamentelor
Proiectarea i Implementarea unui Sistem de
Control
Proiectarea i implementarea unui Sistem de control nou
Modernizarea unui sistem de control existent
Etape:
Cerinele benficiarului
Proiectare de baz
Planificare funcional (flow chart-uri, liste de alarme )
Specificaii de sistem
Proiectare detaliat
Implementare
Proiectarea i Implementarea unui Sistem de
Control
Pregtirea n detaliu a sistemului de control(cantitatea i tipul
semnalelor de I/O, dispozitive de control i staii de operare)
Cumprarea sistemului de control
Pregtirea liniilor directoare pentru implementare
(prezentarea culorilor, strategia de alarmare etc.)
Preparea schielor de interfa grafic (HMI)
Pregtirea bazelor de date
Configurarea sistemului
Lista de echipamente i intrumente
Lista de intrri ieiri
Specificaiile instrumentaiei
Planificarea cablrii:
Construcia rackurilor
Aranjarea cardurilor de I/O
Pregtirea buclelor de control
Dezvoltarea programelor de control
Proiectarea i Implementarea unui Sistem de
Control
Proiectarea i Implementarea unui Sistem de
Control
Simboluri de instrumentaie
Simboluri de instrumentaie
Tabel tipic
List de echipamente
Cablarea
Proiectarea sistemului de control
Trebuie inut cont de dinamica procesului i de eventuale probleme de
control din timp, n faza de proiectarea a procesului.
Exist 2 abordri pentru proiectarea sistemului de control
Metoda tradiional:
Strategia de control i hardware-ul sistemului de control sunt alese
bazndu-se pe cunotine despre proces i experien
Dup ce sistemul de control este instalat n fabric, setrile controllerului
(ex. PID) sunt ajustate. Aceast activitate este numit controller tuning
Metoda bazat pe model:
Un model dinamic al procesului este mai nti dezvoltat i poate fi util n cel
puin 3 moduri:
Poate fi folosit ca baz pentru proiectarea controllerului
Modelul dinamic poate fi ncorporat direct n legea de control
Poate fi folosit n simularea computerizat pentru a evalua diferite
strategii de control i pentru a determina valorile iniiale ale
controllerului
Modelul procesului este neaprat necesar pt. procese complexe
Dezvoltarea unui sistem de control de proces
Formularea obiectivelor de control
Se bazeaz pe obiectivele de operare i pe constrngerile procesului
Spre exemplu reglarea unui parametru ntr-o coloan de distilare
Modelul dinamic poate avea o baz teoretic, spre exemplu principii fizice i
chimice (legi de conservare etc) sau poate fi dezvoltat empiric din date
experimentale. Dac date experimentale sunt disponibile, modelul dinamic
ar trebui s fie validat
Pasul urmtor este dezvoltarea unei strategii de control care s
implementeze obiective controlului i s satisfac constrngerile
Se bazeaz pe teorii de control i pe experiena cu fabrici existente (dac e
cazul)
Se face simulare pe computer
Automatizarea obiectivelor existente
Este necesar gsirea unei soluii de comand i control a mainilor
existente fr posibilitatea de nlocuire sau adugare de noi senzori sau
traductoare
Probleme care pot aprea:
Dificultatea identificrii cablurilor
Lipsa documentaiei sistemului de control vechi
mpmntare incorect sau inexistent
Dificultatea testrii funcionrii corecte a instrumentaiei vechi
Constrngeri de buget al beneficiarului
Toate astea conduc la timp de lucru ndelungat
Automatizarea Proceselor in Lot (Batch Process
Automation)
Procesarea/producia n loturi este alternativa la procesarea
continu, deoarece aceasta se face ntr-o succesiune de mai
muli pai ceea ce duce la o anumit cantitate de produs finit.
Pentru c volumul produs este relativ mic, produciile mai
mari se execut prin repetarea procesului pe baza unui
program predeterminat scopul fiind acela de a maximiza
utilizarea echipamentului disponibil. n figura 1 se pot observa
diferitele interconexiuni ale blocurilor de comand i control
existente n asemenea sisteme.
n contrast cu procesele continue, punctul de interes nu mai este
reglarea ci schimbrile referinei, sistemul trebuind s fie
capabil s analizeze i intrri discrete, de tip puls, precum i
semnale analogice de la senzori.
Figura 1 Sistemul de control al produciei n
loturi.
Funcionalitile sunt dup cum urmeaz:
Controlul secvenial i Logica de comand: Trebuie s se urmeze secvena
logic de producie pe care o implic reeta incluznd i procese cum ar fi
malaxarea de ingrediente, nclzirea, ateptarea terminrii unei reacii,
transferul de materiale dintr-o parte a instalaiei n alta, msurarea i
cntrirea materialelor, etc. n plus, la logica discret a procesului trebuie
s se adauge i interblocri de securitate. Acestea din urm previn
accidentele prin blocarea sistemului pn la ndeplinirea unor condiii ce
pot surveni numai n urma utilizrii corecte a instalaiei (de exemplu: un
motor nu poate fi pornit dac o trap este deschis).
Controlul n timpul lotului: Aici se ncadreaz buclele de reglare pentru
controlul fluxului, temperaturii, presiunii, compoziiei, nivelului i includ
strategii de reglare dintre cele mai avansate. n aplicaiile sofisticate
aceasta solicit specificarea unor traiectorii de operare pentru lot (de
exemplu temperatura ca funcie de timp) pe cnd n cele mai simple se
face doar urmrirea referinei care poate implica urmrirea unui semnal
tip ramp sau meninerea unor ieiri constante, etc.
Comanda pentru fiecare lot: Se bazeaz pe msurrile calitii
produsului offline la sfritul unui lot. n funcie de acestea se
reajusteaz, folosind diferite metode de optimizare, condiiile
i profilurile de operare pentru obinerea performanelor
dorite.
Managementul de producie: Aceast activitate atrage dup
sine avertizarea operatorului uman asupra strii procesului i
interaciile cu reetele i cu comenzile de reglare, secveniale
i discrete. Se menin informaii complete legate de valorile
referinelor, timpii de procesare, numele reetelor,
ingredientele i proporiile acestora. Este strns corelat cu
baze de date i poate memora datele legate de loturile
produse zilnic, sptmnal precum i necesarul de materiale
i consumurile de energie.
Reete
O reet este n general o procedur cu un set de date, operaii i pai de
comand i control necesare pentru a fabrica un produs. O formul
reprezint o list de parametrii a unei reete care include materialele
prime, caracteristicile de procesare i ieirile de produse. O procedur de
reet are operaii att pentru condiiile normale de funcionare ct i
pentru cele anormale. Fiecare operaie conine cereri de resurse pentru
anumite ingrediente precum i cantitile lor. Operaiile dintr-o reet pot
ajusta referinele i porni sau opri echipamentele. O producie complet
pentru o anumit reet se numete campanie (loturi multiple).
Modificrile reetelor pot surveni de la un lot la altul, deoarece parametrii de
funcionare pot varia n timp; de exemplu, ntr-un proces de depunere de
vapori, pe pereii reactorului se pot acumula depuneri ceea ce poate duce
la o serie de loturi cu caracteristici diferite.
Societatea de Instrumentaie din America (ISP) a fixat un standard SP-88 prin
care se fixeaz terminologia implicat n procesarea pe loturi. Conform
acesteia se numete faz punctul logic n care procesarea poate fi
ntrerupt de calculator sau de operator, fr a afecta n mod negativ
produsul, de exemplu: adugarea secvenial de ingrediente, amestecarea
etc..
n industria farmaceutic s-au stabilit nite standarde ISO (ISO 9000)
prin care companiile productoare trebuie s documenteze c
procedura de execuie pentru fiecare produs a fost urmrit,
acestea fiind supuse foarte des auditului pentru a-i putea pstra
certificarea ISO. Datorit naturii critice a produselor, pacienii
putnd fi rnii de o medicamentaie inadecvat, s-a introdus
tehnologia analitic a procesului de fabricaie, prin care se
efectueaz operaii de analiz la anumite intervale de timp chiar n
timpul produciei. mpreun cu aceste analize se fac redeterminri
a modelului procesului, monitorizndu-se variaiile de model cu
timpul, pentru a putea fi nglobate n buclele de reglare.
Un alt exemplu de procesare pe loturi este fabricarea
semiconductorilor. Un circuit semiconductor presupune o
stratificare de pelicule alterate chimic pentru a se obine
caracteristicile electrice dorite. n aceste procese sunt implicate
ntre 30 i 300 de pai de procesare pentru a construi un set de
circuite pe un substrat cristalin, pe care mai trziu se vor face
depuneri de film care la rndul lor vor fi corodate n geometrii
exacte. Cele mai multe procese sunt bazate pe semi-loturi.
De exemplu, pentru fabricarea unui lot de substraturi
cristaline se urmeaz paii:
Un bra robotic ncarc seria de substraturi.
Maina de prelucrare transfer un singur substrat n
camera de procesare.
Un flux de gaze faciliteaz reacia
Maina evacueaz substratul
Urmtorul substrat este procesat.
Cnd s-a terminat procesarea tuturor substraturilor
din lot acestea sunt tranferate de ctre un operator
uman la urmtoarea main.
Automatizrile n fabricaia semiconductoarelor integreaz
echipamentele individuale n niveluri mai nalte de
automatizare pentru a reduce timpul total al unui ciclu de
fabricaie, cu scopil de a mri productivitatea i numrul
tipurilor de produse. Principalele funcii ale sistemului de
automatizare sunt:
Planificarea operaiilor fabricii de la intrarea comenzii (cererii)
unui produs pn la finalizare
Planificarea resurselor pentru a se putea ndeplini planul de
producie
Modelarea i simularea operaiunilor fabricii
Generarea i mentenana procesului, specificaiilor de produs
i a reetelor
Urmrirea execuiei
Monitorizarea performanelor fabricii
Comandarea, monitorizarea i diagnoza mainilor implicate
Comandarea, monitorizarea i diagnoza procesului
Product Automation
Product Automation reprezint automatizarea etapelor
individuale sau a etapelor intregului lan de a produce ceva.
Deci componenta manual a unei sistem de producie
(manufacturing) este realizat de ctre unelte, maini sau
alte dispozitive. Aceste dispozitive se numesc automation
products. Exemple:
maini controlate numeric (CNC)
roboi
dispozitive de sortare
Aceste dispozitive conin elemente care la rindul lor trebuie
sa fie automatizate. De exemplu un robot conine motoare
care trebuie sa aib un anumit grad de automatizare.
Product Automation
Automatizarea de produs reprezint
tentativa de a echipa produsele cu
funcionaliti astfel nct s-i
ndeplineasc rolurile parial sau
complet ntr-o manier automat. De
exemplu, unui ciocan pentru a putea
bate cuie i se poate asocia un bra
robotic care s imite micarea uman.
Exemplu
Scopul ciocanului ar fi s furnizeze un impuls mecanic unui alt obiect (cui).
Este necesar un alt sistem care s realizeze funciile unui operator uman.
Sistemul trebuie s realizeze:
Specificarea unei inte (cuiul)
O for (un actuator) pentru a mica ciocanul
Controlul micrii sub diferite aspecte:
Acceleraie
Direcie
Vitez
Unghi de impact
Precizie a traiectoriei
Preluarea informaiei c aciunea a fost realizat
Aducerea ciocanului n poziia iniial
Figura 1 Automatizarea de produs
Pentru a putea automatiza un produs trebuie s se ndeplineasc anumite cerine vizibile i
Senzorii
Senzorii sunt necesari pentru a
putea inspecta mediul
nconjurtor i pentru a putea da
informaii legate despre efectele
aciunilor dispozitivului. Tipul de
senzor folosit depinde foarte
mult de aplicaia n care acesta va
funciona. O clasificare a
senzorilor n funcie de
parametrii fizici ce pot fi msurai
este exemplificat n tabelul1.
Tabelul 1. Parametrii fizici ce pot
fi msurai cu senzori
Proprieti mecanice Distana, viteza,
acceleraia, poziia,
unghiul, nivelul,
tensiunea, micarea,
vibraia
Proprieti
termodinamice
Temperatura,
presiunea, compoziia,
densitatea
Proprieti electrice
Tensiune, curent, faz,
frecven, unghiul de
faz, conductivitatea
Proprieti magnetice Cmpul magnetic
Proprieti
electromagnetice
Intensitatea radiaiilor,
fluctuaiile de lumin,
parametrii de
propagare a luminii
Alte proprieti Radioactivitatea
Sistemele de comand interpreteaz semnalele analogice sau digitale i le compar cu
un model al sarcinii dispozitivului declannd, dac este cazul, dispozitivele de
acionare. Pentru porniri i opriri de dispozitive se folosesc controllere logice
simple, controllere secveniale n cazul operaiilor dependente de timp, iar cele cu
algoritmi de reglare PID sunt utilizate la scar larg pentru controlul parametrilor.
De exemplu pornirea n ramp a unui motor de acionare a unei valve.
Dispozitivele de acionare reprezint mecanismele prin care un controller acioneaz
n sistemul pe care l comand. De exemplu micrile mecanice pot fi efectuate
prin elemente cu arcuri, hidraulice i sau pneumatice, fore magnetice, valve sau
energie termic. Schimbri ale proprietilor termodinamice se induc prin
nclzire, rcire sau variaii ale presiunii. Pentru a modifica proprieti electrice se
pot ncrca sau descrca condensatoare, modifica tensiunile i curenii de
alimentare etc..
Sursele de energie sunt necesare pentru a asigura funciile de baz ale dispozitivelor.
Energia necesar funcionrii poate fi de mai multe forme: mecanic, electric sau
termic, i poate fi furnizat prin dou metode: prin conductori (fire) sau fr
conductori (unde electromagnetice ca n RFID).
Sistemul de control
Elementele de acionare
Actuatoarele sunt nite dispozitive prin care controllerul
acioneaz asupra sistemului comandat. Tipurile de
actuatoare folosite depind foarte mult de tipul aplicaiei.
Micrile mecanice sunt introduse de ctre dispozitive
mecanice, hidraulice, pneumatice, fore magnetice, valve sau
energie termic.
Proprietile electrice sunt modificate prin ncrcare/descrcare
condensatori sau prin aplicarea de tensiune / curent.
Furnizarea de energie
Energia este necesar pentru a efectua funcia de baz a unui
dispozitiv. Ea poate fi furnizat n diferite forme, cum ar fi
electric, mecanic sau termic.
Energia (de obicei electric) poate fi furnizat prin cabluri sau
fr cabluri ( de ex. prin cmpuri eletromagnetice) sau poate
fi preluat de la dispozitive interne (de obicei baterii,
acumulatori).
Apare o problem de proiectare atunci cnd un dispozitiv
opereaz ntr-o zon indeprtat pentru mult timp, trebuie
gasit o soluie de stocare a energiei.
Schimbul de informaii cu celelalte sisteme este necesar pentru
a putea opera n mod automat. Acest schimb de informaii se
bazeaz n general pe senzori ce monitorizeaz parametrii
externi, dar n majoritatea cazurilor dispozitivul astfel
automatizat trebuie s comunice cu sisteme de comand
supervizor/superioare. n plus, de cele mai multe ori,
dispozitivul trebuie s prezinte i o interfa cu operatorul
uman pentru a putea fi comandat i n mod manual. Schimbul
de informaii cu ceilali parteneri din sistem trebuie s fie
bidirecional, iar de cele mai multe ori trebuie s se fac ntr-
un limbaj (protocol de comunicaie) standard, pentru a putea
fi mai uor de interfaat.
Schimbul de informaii
Elemente pentru Automatizarea de produs
Senzorii i aparatura de msurat reprezint
elementul crucial pentru automatizarea de produs.
n figura 2 sunt prezentai att un senzor de presiune
ct i unul de temperatur. n ambele cazuri, sonda
propriu-zis este esenial dar este doar o parte
infim din sistemul ntreg, baza fiind ns n partea
electronic ce evalueaz datele i face transmisia de
semnal printr-un protocol comun.
Senzori de presiune i temperatur
Un alt aspect important este cel al interfeei cu
utilizatorul, aceasta devenind cu timpul mult mai
intuitiv, avnd i cteva butoane simple pentru
efectuarea reglajelor senzorilor.
Ali senzori se bazeaz pe noile tehnologii,
perfecionnd efectele fizice cum ar fi influena
cmpului magnetic asupra polarizrii luminii ce se
propag n acest cmp. n figura 3 se arat un astfel
de senzor pentru msurarea curentului continuu
ntr-o topitorie.
Figura 3 Senzor de curent folosind efectul cmpului
magnetic
Senzorul este format dintr-o fibr optic nfurat
pe bara de metal conductor de curent. Cmpul
magnetic generat de efectul curentului continuu,
influeneaz propagarea undelor de lumin n fibr,
ceea ce poate ajuta la calcularea amplitudinii
curentului. Funcionarea corect a senzorului
depinde ns mai ales de procesarea luminii
transformate i de aceea aceasta este partea
central a senzorului.
Figura 4 Senzor de oxigen
O alt tendin este folosirea sistemelor micro-electro-mecanice (MEMS), ceea ce
conduce la senzori mai precii i mai uor de fabricat. Un exemplu elocvent n
aceast direcie o reprezint senzorul de oxigen din figura 4.
Senzorul de oxigen
n comparaie cu alte gaze oxigenul are o nalt
susceptibilitate magnetic, element necesar pentru
detecia lui ntr-un flux de gaze. Senzorul este
constituit dintr-un mecanism de deplasare, aflat ntr-
un puternic gradient de cmp magnetic. Msurnd
momentul de torsiune al acestui mecanism se poate
determina concentraia oxigenului magnetic.
Tehnologia de fabricaie a acestor mecanisme a
evoluat odat cu cea a fabricaiei de circuite
integrate i de aceea a fost foarte uor integrat n
sistemele de msurare.
Figura 5 - Interuptoare
Interuptoarele sunt dispozitive ce pot conecta sau deconecta energia
electric ctre un consumator, sau n caz de urgen s ntrerup un scurt-
circuit. Dei variantele iniiale ale acestor dispozitive se bazau pe micarea
mecanic a unor contacte metalice, versiunile moderne au un grad nalt
de automatizare vezi figura 5.
Interuptoare
Cele mai bune soluii n acest domeniu permit o setare a
parametrilor de declanare foarte uor de folosit, de obicei o
metod ce poate fi folosit off-line, iar n plus au indicatoare
care s arate motivul pentru care acestea s-au declanat,
precum i funcia de a nregistra datele cantitilor de energie
electric nainte i dup eveniment. Accesarea acestor date
se poate efectua de oriunde chiar i fr a avea nevoie de a
cupla fizic un cablu ntre dispozitiv i PC.
Elementul cel mai important dintr-un asemenea dispozitiv
este senzorul de curent. n interuptoarele de cureni slabi,
aceti senzori nu sunt folosii doar la msurarea curentului
electric ci ajut i la alimentarea montajului electronic.
Interuptoare
Un senzor destul de des folosit este bobina Rogowsky care ofer un
semnal proporional cu derivata curentului, ceea ce necesit integrarea
semnalului. Aceast operaie este realizat digital cu un procesor de
semnal (DSP) puternic, care pe lng aceasta trebuie s asigure i
comunicaia, ceea ce conduce la simplificri foarte mari n ceea ce
privete mrimea i costurile plcuei electronice (n trecut folosindu-se 4
astfel de plcue pentru fiecare interuptor).
Interuptorul din figura 6 are chiar i interfa cu utilizatorul (HMI). Un
display de rezoluie mare cu consum redus este folosit pentru a afia
datele, acestea din urm putnd fi asociate unor mesaje de alarm ce pot
fi afiate pe o durat de 48 de ore, far a avea nevoie de surs auxiliar de
alimentare. Tehnologia wireless, bazat pe Bluetooth, face conexiunea
ntre dispozitiv i un PC, PDA sau laptop, pentru a uura programarea
dispozitivului iar n plus se poate face reglarea optimal, printarea de
rapoarte etc.
Figura 6 Interuptor cu interfa cu utilizatorul
Motoare
Motoarele sunt elementele cel mai des ntlnite n sistemele de
producie. Pentru a se evita influenele acestora asupra
reelei electrice la pornirea motoarelor se folosesc dispozitive
soft-starter. Acestea ofer posibilitatea pornirii motorului la
un cuplu mare fr a cauza cderi de tensiune n reeaua
electric. Odat ce motorul a atins parametrii dorii
dispozitivul se deconecteaz de la motor i face legatura
direct cu reeaua electric.
De cele mai multe ori, circuitele de soft-start sunt reprezentate
de convertizoarele de frecven, care au rolul de a aduce
motorul la viteza dorit. Acestea sunt de dou tipuri: cu bucl
nchis i n bucl deschis. Cele cu bucl nchis folosesc
encodere care dau informaiile despre starea motorului,
informaii care sunt introduse n algoritmul de comand.
Motoare
Sistemele n bucl deschis sunt mai simple pentru c se omit
encoderele dar se pierde din acurateea sistemului. Totui
aceasta se poate atinge prin reglarea pe baz de model al
motorului. Sistemul de reglare de la ABB (vezi figura 7) cu
comand a cuplului (direct torque control - DTC) folosete
funcii matematice pentru a prezice starea motorului.
Acurateea i repetabilitatea sistemului sunt comparabile cu
cele ale controllerelor n bucl nchis cu avantajul unui
raspuns mult mai rapid (de pn la 10 ori mai rapid), iar
pentru dispozitivele de curent alternativ, performanele
atinse sunt foarte apropiate de cele teoretice.
Figura 10 Controllerul DTC (Direct Torque Control)
Circuite de Soft-Start
n general circuitele de soft-start sunt folosite pentru puteri mai mici.
Odat cu creterea puterii necesare motorului, i circuitul de comand
devine mai complex, gabaritul acestora crescnd. Aceste sisteme pot
atinge astzi puteri de pn la 50MW, iar avansul n tehnologia
semiconductorilor a nceput s reduc cu mult dimensiunile acestora.
Ele trebuie s susin pe lng comanda motorului alte dou funcii: o
interfa simplificat om-main precum i comunicaiile cu sistemul de
automatizare din care acesta face parte. Interfeele ethernet au captat
din ce n ce mai multe funcii devenind pri integrante din mentenana i
monitorizarea sistemelor, iar utilizarea cu precdere a automatelor
programabile au redus drastic costurile i au mbuntit fiabilitatea
sistemelor de automatizare.
Figura 11 Panou de programare a sistemelor
de comand standard
Sistemul modern de comand a motoarelor se programeaz cu ajutorul unui panou foarte similar
unui telefon mobil ca dimensiuni i funcionalitate vezi figura 11.
Un display grafic mare precum i tastele fac foarte uoara navigarea prin
meniurile de setri posibile, i pot ajuta la depanrile necesare. De
exemplu, cnd se detecteaz un defect, un sistem de asisten va oferi
detaliile cunoscute despre defect i va sugera posibiliti de remediere a
acestuia. O alt opiune interesant este posibilitatea de a copia datele de
programare ale unui sistem de comand la altele prin simpla accesare a
acestei funcii din panoul de programare.
n industrie cele mai bnoase metode de a schimba un sistem de comand
a unui motor o reprezint modificarea softului. Acest lucru este posibil
pentru c dezvoltarea soft-ului a dat posibilitatea atingerii de noi
performane i noi funcionaliti cu mai puin hardware disponibil, ceea
ce duce la posibilitatea folosirii aceluiai sistem n mai multe tipuri de
sistem de automatizare.
Microcontrollere
Microcontrollere
Microcontrollerele trebuie s ofere rspuns n timp real la
evenimentele aprute n cadrul sistemelor embedded pe
care le controleaz. Cnd intervin anumite evenimente,
un sistem de ntreruperi poate semnala ctre unitatea
central suspendarea procesrii secvenei curente de
instruciuni i nceperea unei rutine de tratare a
ntreruperii. Aceast rutin va realiza orice cerin de
procesare bazat pe sursa ntreruperii respective nainte
de a reveni la secvena de instruciuni iniial.
Sursele de ntreruperi posibile sunt dependente de
dispozitiv i includ adesea evenimente ca overflow al
ceasului intern, finalizarea unei conversii digital-
analogice, o schimbare de nivel logic la intrare sau date
primite pe un canal de comunicaii.
Microcontrollere
n general microcontrollerele conin de la civa pn la
zeci de pini pentru intrri/ieiri de uz general. Aceti pini
pot fi configurai software drept pini de intrare sau pini de
ieire. Atunci cnd pinii sunt configurai drept pini de
intrare, n principiu sunt folosii pentru a citi date de la
senzori externi. Configurai ca pini de ieire, pinii pot
conduce (controla) dispozitive externe cum ar fi motoare,
led-uri, lcd-uri.
Multe sisteme embedded trebuie s citeasc semnale
analogice de la diferii senzori. Aici intervine convertorul
analog-digital (ADC).
n funcie de dispozitiv, memoria program poate fi
permanent, memorie read-only ce poate fi programat
doar de ctre fabricant, sau poate fi memorie flash sau
memrie read-only volatil.
Microcontrollere - Timere
Pe lng convertoare, multe microcontrollere conin o
varietate de timere. Unul dintre cele mai comune tipuri
de timere este Timerul Programabil Periodic. Acesta
poate numra descresctor de la o anumit valoare la
zero, sau cresctor pn la capacitatea registrului de
numrare, a crui depire conduce la resetarea
timerului. Odat ce ajunge la zero, timerul trimite un
semnal de ntrerupere ctre unitatea central,
semnalnd c a terminat de numrat.
Unitatea de procesare a timpului este un contor sofisticat.
Pe lng posibilitatea de a numra descresctor,
aceasta poate detecta evenimente de intrare, poate
genera evenimente de ieire i poate efectua alte
operaii folositoare.
Un bloc de PWM (Pulse Width Modulation) face posibil ca
unitatea central s controleze convertoare de putere,
motoare etc.
Microcontrollere vs. Automate programabile
Dup cte am vzut, ambele sunt programabile, deci pot fi
dezvoltate programe de control pentru aplicaii diverse
utiliznd ambele dispozitive. Un utilizator trebuie s
decid dac se impune folosirea unui automat
programabil sau a unui microcontroller. Totul depinde de
complexitatea aplicaiei i de viteza de procesare e
semnalelor ce intervin n cadrul aplicaiei.
O situaie tipic n care un automat programabil nu poate fi
folosit este aceea cnd exist semnale de intrare ce
variaz foarte rapid.
Un microcontroller poate gestiona semnale ce variaz cu
viteze de ordinul s.
Daca secvenele de comand sunt foarte simple, folosirea
unui automat programabil este nejustificat (un automat
programabil putnd gestiona aplicaii de complexitate
foarte ridicat). n aceast situaie, dac numrul de
semnale de intrare/ieire este suficient de mic, se
recomand folosirea unui microcontroller.
Microcontrollere vs. Automate programabile
n afar de prima situaie, cnd folosirea automatului
programabil este aproape imposibil, n celelalte dou
situaii se poate folosi fie unul, fie cellalt. ns dac
investiia material nu se justific, recomandabil este s
se foloseasc un microcontroller (preul unui
microcontroller este incomparabil mai mic dect al unui
automat).
De asemenea, un automat programabil are dimensiuni mult
mai mari dect un microcontroller, care este un circuit
integrat cu dimensiuni de ordinul centimetrilor, pe cnd
un automat, n funcie de complexitate, poate ajunge la
dimensiuni considerabile.
Microcontrollere vs. Automate programabile
Asemnri:
Aa cum am ilustrat n paginile anterioare, ambele pot gestiona
intrri/ieiri digitale i analogice.
De asemenea, ambele sunt programabile, deci pot fi dezvoltate
programe de control pe oricare dintre ele.
Deosebiri:
Un microcontroller de clas medie are un numr redus de linii de
intrare/ieire. Aadar, nu se preteaz aplicaiilor ce necesit un
numr mare de semnale de intrare/ieire.
Folosirea unui microcontroller presupune proiectarea unui circuit de
dezvoltare a aplicaiei, bazat pe microcontroller. Mai exact, este
vorba despre o plcu pe care s fie montat, alturi de alte
dispozitive: optocuploare, surse de alimentare, condensatoare,
quartz, relee, rezistoare, drivere pentru motoare etc.
O aplicaie poate fi dezvoltat mult mai uor i mai eficient folosind
automate programabile, ntruct acestea dispun de medii de
programare logic foarte performante i uor de manipulat. A
dezvolta o aplicaie pe un microcontroller presupune fie cunotine
de asamblare, fie de programare de nivel nalt (n limbajul C cu
precdere). Pentru a programa un automat programabil este nevoie
mai mult de gndire logic i viziune asupra programului ce
urmeaz s fie realizat.
Microcontrollerele au memorii mici, ceea ce scade complexitatea
programelor ce pot fi ncrcate pe ele. Dac se dorete totui
folosirea microcontrollerului se poate aduga memorie extern, ns
acest lucru poate crete preul i dificultatea realizrii fizice a
montajului.
IMPLEMENTAREA DIAGRAMELOR SFC
FOLOSIND MICROCONTROLLERE
Diagrame SFC
IMPLEMENTAREA DIAGRAMELOR SFC FOLOSIND
MICROCONTROLLERE
Dinamica unei astfel de diagrame este bine cunoscut:
dac un pas este activ se execut aciunile asociate, iar
cnd o condiie de tranziie devine adevrat, pasul
respectiv este dezactivat i pasul urmtor (paii
urmtori) din diagram este/sunt activat/activai.
Pentru ca aceste diagrame s fie interpretate de un
microcontroller, mai inti trebuie modelat un ciclu de
execuie al unui automat programabil. Toate automatele
programabile au urmtorul ciclu de execuie (simplificat):
IMPLEMENTAREA DIAGRAMELOR SFC FOLOSIND
MICROCONTROLLERE
Primul element ce trebuie implementat cnd se ncearc
emularea unui automat programabil este crearea unui
timer de sistem. n mod normal, microcontrollerele de
clas medie au 2-3 circuite de timer pe 8 sau 16 bii
sau chiar mai multe. Ideea const n a crea o funcie
care poate msura perioade mari de timp pn la
overflow. Acest lucru poate fi realizat folosind un timer
pe 32 bii (n mod normal scalat la maxim pentru o
msurare a timpului mai mare), sau, dac un timer pe 32
bii nu este disponibil, timer-ul poate fi extins
incrementnd o variabil pe 16 bii la fiecare overflow
al timer-ului, obinndu-se rezultate similare.
Gestionarea timpului
Exemplu pt. un procesor Atmel ATMEGA cu timer pe 16
bii. Durata de timp maxim ce poate fi msurat este de
peste 12 zile cnd oscilatorul are o frecven de 3.68
Mhz.
Funciile principale folosite sunt:
-void system_timer(void): incrementeaz variabila de extensie la
fiecare overflow al timer-ului pe 16 bii;
-void reset_timer(void): reseteaz regitrii de timer pe 16 bii i
variabila de extensie;
-void set_timer(word valoare_timp): scrie n variabila de extensie +
regitri de timer valoarea parametrului valoare_timp;
-word get_timer(void): returneaz valoarea curent din combinaia
variabil de extensie + regitri de timer, drept o valoare pe 32
bii;
-word timer_to_usec(word perioad): returneaz numrul de s
corespunztoare valorii parametrului perioad.
Pot fi create i alte funcii de timer, ca Timer On/Off Delay,
dar numrul lor este limitat de numrul ntreruperilor de
comparare a timer-ului (de obicei maxim 3 astfel de
ntreruperi pot exista pentru un circuit de timer), pe baza
crora funcioneaz.
Gestionarea I/O
Pentru a emula un ciclu automat, microcontrollerul trebuie s
execute o funcie similar celei de mai jos, care pur i simplu
apeleaz alte 3 funcii ce implementeaz cele 3 etape
discutate anterior:
Void ciclu_de_execuie (void)
{
scanarea_intrrilor();
execuia_SFC();
actualizarea_ieirilor();
}
n cadrul microcontrollerelor, intrrile digitale sunt scanate
automat la fiecare puls al ceasului i sunt stocate n regitri
speciali de intrare/ieire, care nu sunt plasai n RAM-ul
utilizatorului. ns lucrul cu aceti regitri este dificil. Astfel, n
cadrul funciei scanarea_intrrilor(), valoarea acestor regitri
este transferat unor variabile alocate din memoria RAM.
Pentru un semnal digital este alocat un bit.
Gestionarea I/O
n ceea ce privete semnalele analogice, de obicei
microcontrollerele au un numr redus de linii analogice (8 sau
16) i conversia din curent n valori numerice este realizat
printr-o procedur simpl. Este nevoie ns de o anumit
perioad de timp pentru fiecare canal. n funcie de rezoluia
CAN, trebuie alocate 1 sau 2 locaii de memorie RAM (pot fi
declarate ca variabile C) pentru a stoca valorile numerice ale
semnalelor analogice. Aadar, funcia scanarea_intrrilor()
conine cod ce reine valorile liniilor analogice n aceste locaii.
Din punct de vedere logic funcia scanarea_intrrilor() are
urmtoarea structur:
void scanarea_intrrilor(void)
{
-transfer valoarea regitrilor de intrare n locaiile de memorie
asociate
- for i:=1 to numr_total_de_semnale_analogice do
variabilele_asociate_pentru_liniile_analogice=
valoarea_convertit_de_la_linia_analogic_i
}
Gestionarea I/O
n ceea ce privete actualizarea ieirilor, ideea este c de obicei
microcontrollerele de clas medie au doar ieiri digitale (de
fapt liniile digitale sunt de obicei bidirecionale). Aadar, m-am
concentrat doar pe ieiri digitale. Cu toate c ieirile digitale
pot fi accesate direct pentru a le schimba valoarea, aceast
abordare nu este recomandat deoarece n unele aplicaii
valorile de ieire pot fi modificate n cadrul mai multor pai
(eventual datorit bug-urilor din program sau
comportamentului inadecvat al sistemului). Astfel, nu este
indicat s se schimbe efectiv valoarea ieirilor n timpul
interpretrii diagramelor SFC. Aadar, sunt alocate cteva
locaii de memorie (variabile) pentru a stoca temporar valorile
ieirilor, n timpul execuiei SFC. Aceste valori sunt transferate
direct la regitrii de ieire, cnd este executat
actualizarea_ieirilor().
Practic, funcia actualizarea_ieirilor() arat astfel:
void actualizarea_ieirilor (void)
{
for i:=1 to numr_total_de_regitri_de_ieire do
regitri_de_ieire = variabile_de_ieire_asociate
}
Interpretarea diagramelor SFC
Cea mai complex parte a emulrii unui automat programabil
este interpretarea SFC. n general, mai multe diagrame SFC
pot fi interpretate i executate.
Pentru a determina care pai sunt activi la fiecare ciclu automat
se declar un vector de pointeri la funcie, folosit astfel:
Numrul de pointeri din vector este egal cu numrul de
diagrame SFC separate (independente sau extrase din
paralelisme) i fiecare pointer este folosit pentru a stoca
adresa funciei asociate pasului activ curent, din diagrama
SFC asociat.
Iniial, pointerii la funcie indic paii iniiali corespunztori
diagramelor. Unii pointeri asociai cu diagrame non-
independente pot avea valoarea NULL deoarece diagramele
nu sunt independente i este posibil ca uneori ele s nu aiba
pai activi.
n timpul execuiei SFC, pointerii primesc valoarea adresei
funciilor asociate pailor cureni activi.
Funcia general execuie_ciclu va testa valorile pointerilor i
va executa doar funciile indicate de pointerii diferii de NULL.
n acest fel secvenele de pai incluse ntr-un paralelism nu
sunt executate cnd nu au pai activi.
Interpretarea diagramelor SFC
Fiecare combinaie de aciuni asociate pailor este implementat ca o
funcie C. n cadrul unei astfel de funcii utilizatorul trebuie s scrie
codul corect pentru a realiza urmtoarele obiective:
1)Execuia aciunilor de tip pulse asociate se va face doar n cadrul
primului ciclu de execuie n care este apelat funcia. Pentru a
realiza acest lucru, fiecare funcie trebuie asociat cu o variabil
logic (denumit primul_ciclu_pas_i) care trebuie s fie adevrat
doar la primul ciclu cnd funcia este executat. n alt caz, trebuie s
fie fals.
2)Execuia aciunilor de tip non-pulse asociate se va face la fiecare
ciclu cnd funcia este executat.
3)Testarea tuturor condiiilor de tranziie asociate. Dac oricare este
adevrat, pointerul asociat cu diagrama SFC respectiv este
actualizat cu adresa funciei asociate pasului urmtor din cadrul
diagramei.
4)Actualizarea strii pailor. Pentru fiecare pas al fiecrei diagrame
SFC este declarat o variabil logic, coninnd starea pasului
(activ/inactiv). Acest lucru are o importan particular la ieirea din
paralelism, condiia fiind ca toi paii finali s fie activi.
Interpretarea diagramelor SFC
Analogia pas-funcie C este ilustrata n figura urmtoare:
De asemenea, printr-un simplu artificiu am considerat c
SFC-urile ce conin paralelisme pot fi mprite virtual n
diagrame separate. Un exemplu de creare a unei
diagrame SFC virtual dintr-o diagram SFC normal cu
paralelism este prezentat n Fig urmtoare
Interpretarea diagramelor SFC
Diagramele virtuale nu au o etap iniial activ
Interpretarea diagramelor SFC
void pas_i (void)
{
if primul_ciclu_pas_i = TRUE then
{
execut_aciunile_pulse;
stare_pas_i = TRUE;
}
execut_aciunile_non_pulse;
for j:=1 to numr_total _de_condiii_de_tranziie do
if condiie_j = TRUE then
{
actualizare_pointer_funcie_corespunztoare;
if urmeaz_paralelism then
actualizare_pointeri_la_funcie_pentru_SFC_virtuale;
stare_pas_i = FALSE;
ieire_din_funcie;
}
}
Interpretarea diagramelor SFC
Se poate observa c dac o condiie de tranziie este
adevrat, celelalte sunt ignorate. Acest lucru se
datoreaz faptului c n mod normal, ntr-o diagram
SFC, cnd exist divergene, condiiile de tranziie se
exclud reciproc. Totui, dac nu se exclud reciproc,
trebuie stabilite nivele de prioritate. n acest caz funcia
asociat pasului trebuie modificat n sensul analizrii
fiecrei condiii de tranziie i validarea aceleia cu
prioritate maxim.
O situaie aparte este aceea cnd pasul activ este pasul
final al unei secvene dintr-un paralelism (considerat
drept pas dintr-o SFC virtual). n acest caz condiia de
tranziie este ca toi ceilali pai finali din cadrul
secvenelor din paralelism s fie activi.
n cazul n care un pas este urmat de un paralelism, toi
pointerii asociai pailor iniiali (considerai drept pai
iniiali ai SFC virtuale) ai tuturor secvenelor paralele
trebuie actualizai. Vor deveni diferii de NULL i
diagramele SFC virtuale vor fi executate n cadrul
urmtorului ciclu automat.
Managementul diagramelor multiple
Acest lucru este ndeplinit de funcia execuia_SFC().
Proiectul a fost dezvoltat avnd n vedere s fie un
sistem deschis i de a aduga uor alte diagrame pentru
a fi interpretate i executate. Structura logic a acestei
funcii este urmtoarea:
void execuia_SFC(void)
{
i = 1;
do
if pointer_la_funcie(i) != NULL then
execut_funcie (pointer_la_funcie(i))
i++;
while i<=numr_total_de_diagrame_SFC;
}
Managementul diagramelor multiple
Unde:
-pointer_la_funcie(i) este elementul i din vectorul pointerilor la
funcie;
-execut_funcie este o simpl funcie care practic produce un
salt n program la adresa indicat de pointer_la_funcie(i);
-numr_total_de_diagrame_SFC este o variabil egal cu
numrul diagramelor SFC gestionate de acest program;
aceast variabila poate fi uor updatat cnd n program este
adugat o nou diagram SFC.
Din structura prezentat mai sus deducem c funcia
execuia_SFC testeaz starea tuturor diagramelor SFC reale
sau virtuale, iar dac pointerii asociai sunt diferii de NULL,
va avea loc un salt n program la funcia asociat pasului
curent activ.
Diagramele SFC sunt procesate una cte una n ordinea n care
sunt introduse, dar, avnd n vedere c valorile semnalelor de
intrare i de ieire rmn constante pe parcursul etapei de
execuie, acest lucru poate fi privit ca o procesare paralel a
tuturor diagramelor.
Iniializare
Scheletul de baz al programului conine de asemenea o
parte de iniializare. Toate diagramele SFC care sunt
introduse n acest program de interpretare trebuie s
aib un pas iniial, care s fie iniial activ sau inactiv
(discutat nainte). Toate diagramele SFC care au pasul
iniial activ trebuie declarate n cadrul unei funcii
speciale pentru a iniializa pointerii la funcie asociai. A
fost creat o funcie specific numit SFC_Init, avnd
urmtoarea structur logic:
void SFC_Init (void)
{
pointer_la_funcie(1) = adresa_funciei_iniiale_din_SFC_1;
pointer_la_funcie(2) = adresa_funciei_iniiale_din_SFC_2;
---------------------------------
pointer_la_funcie(n) = adresa_funciei_iniiale_din_SFC_n;
}
Aplicaie: Staie de splat autovehicule
Aplicaie: Staie de splat autovehicule
Pentru realizarea controlului acestei aplicaii se poate folosi
un automat de tip PEP Smart, iar programul poate fi
dezvoltat n cadrul unui proiect ISaGRAF. Acest proiect
const din 6 programe editate n Sequencial Function
Chart (SFC), care ruleaz n paralel:
-program barier (pentru comanda barierei i a
semaforului);
-program start (pentru pornirea i oprirea benzii
transportoare);
-program post1 (pentru postul de presplare);
-program post2 (pentru postul de splare);
-program post3 (pentru postul de cltire);
-program post4 (pentru postul de uscare).
Aplicaie: Staie de splat autovehicule
Variabile de ieire:
-band (pentru comanda pornire/oprire band
transportoare);
-barier_sus (pentru comanda ridicare barier);
-barier_jos (pentru comanda coborre barier);
-semafor_v (pentru comanda activare/dezactivare culoare
verde semafor);
-semafor_r (pentru comanda activare/dezactivare culoare
roie semafor);
-post_1 (pentru comanda pornire/oprire post presplare);
-post_2 (pentru comanda pornire/oprire post splare);
-post_3 (pentru comanda pornire/oprire post cltire);
-post_4 (pentru comanda pornire/oprire post uscare).
Aplicaie: Staie de splat autovehicule
Variabile de intrare:
-limit_sus (pentru limitatorul de curs sus al barierei);
-limit_jos (pentru limitatorul de curs jos al barierei);
-foto_1 (pentru senzorul din postul 1);
-foto_2 (pentru senzorul din postul 2);
-foto_3 (pentru senzorul din postul 3);
-foto_4 (pentru senzorul din postul 4).
Variabile interne integer:
-nr_maini (pentru contorizarea numrului de maini
prezente pe band).
Programul Bariera
Programul Start
Programul Post1
Programul Post4
Microcontroller Atmel Atmega 16
Gestionarea I/O
#define iesire1 PORTA.0
#define iesire2 PORTA.1
#define iesire3 PORTA.2
#define iesire4 PORTA.3
#define iesire5 PORTA.4
#define iesire6 PORTA.5
#define iesire7 PORTA.6
#define iesire8 PORTA.7
#define iesire9 PORTB.7
#define intrare1 PINB.0
#define intrare2 PINB.1
#define intrare3 PINB.2
#define intrare4 PINB.3
#define intrare5 PINB.4
#define intrare6 PINB.5
Gestionarea I/O
void scanarea_intrarilor(void)
{
limita_sus=intrare1;
limita_jos=intrare2;
foto_1=intrare3;
foto_2=intrare4;
foto_3=intrare5;
foto_4=intrare6;
}
void actualizarea_iesirilor(void)
{
iesire1=banda;
iesire2=bariera_sus;
iesire3=bariera_jos;
iesire4=semafor_v;
iesire5=post_1;
iesire6=post_2;
iesire7=post_3;
iesire8=post_4;
iesire9=semafor_r;
}
Asocierea etapelor cu funcii C
Etapa i condiia de tranziie n SFC Funcia C asociat


void pas1_bariera(void)
{
bariera_sus=0; //iniial bariera
//este sus
bariera_jos=0;
semafor_v=1; //i semaforul este
semafor_r=0; //verde

if (foto_1==1)
{
pointer_la_functie[0]=
&pas2_bariera;
return;
}
}



void pas2_bariera(void)
{
bariera_jos=1; //coborre barier
semafor_v=0; //i semaforul devine
semafor_r=1; //rou

if (limita_jos==0)
{
pointer_la_functie[0]=
&pas3_bariera;
return;
}
}


void pas3_bariera(void)
{
bariera_jos=0; //oprire coborre
//barier

if (foto_1==0)
{
pointer_la_functie[0]=
&pas4_bariera;
return;
}
}


void pas4_bariera(void)
{
bariera_sus=1; //ridicare barier
semafor_v=1; //i semaforul devine
semafor_r=0; //verde

if (limita_sus==0)
{
pointer_la_functie[0]=
&pas1_bariera;
return;
}
}

Etapa i condiia de tranziie n SFC Funcia C asociat


void pas1_start(void)
{
banda=0;

if (foto_1==1)
{
pointer_la_functie[1]=
&pas2_start;
return;
}
}


void pas2_start(void)
{
banda=1;

if (1)
{
pointer_la_functie[1]=
&pas3_start;
return;
}
}


void pas3_start(void)
{
if (nr_masini==0)
{
pointer_la_functie[1]=
&pas1_start;
return;
}
}

Managementul diagramelor
Managementul celor 6 diagrame este realizat n cadrul funciei
execuia_SFC:
void executia_SFC(void)
{
int i;
i=0;
do
{
if (pointer_la_functie[i] != NILL)
{
(*pointer_la_functie[i])();
}
i++;
}
while (i<=5);
}
Iniializarea i programul principal
Iniializarea pointerilor la funcie cu adresele funciilor asociate pailor
iniiali din cadrul programelor SFC este realizat n cadrul funciei
SFC_init:
void SFC_init(void)
{
pointer_la_functie[0]=&pas1_bariera;
pointer_la_functie[1]=&pas1_start;
pointer_la_functie[2]=&pas1_post1;
pointer_la_functie[3]=&pas1_post2;
pointer_la_functie[4]=&pas1_post3;
pointer_la_functie[5]=&pas1_post4;
}
n main rmne s apelm funciile descrise mai sus:
SFC_init();
while (1)
{
scanarea_intrarilor();
executia_SFC();
actualizarea_iesirilor();
}
Aplicaii cu microcontrollere Interfaarea cu display LCD
Display-urile, n principal cele fabricate n tehnologie LCD, reprezint una din cele mai
folosite moduri pentru a oferi informaii provenind de la circuite electronice bazate pe
microcontrollere. Unul din cele mai uzuale controllere pt. Display-urile LCD este Hitachi
44780 ce ofer o modalitate simpl de interfaare cu un microcontroller.
Pinii unui astfel de display sunt:
Pin Descriere
1 mpmntare (Ground)
2 Alimentare Vcc (+5V)
3 Contrast (0V = Contrast maxim, 5V = Contrast minim)
4 Pinul RS comut ntre modul date i modul instruciuni
5 Pinul RW comut ntre citire / scriere de la / n display
6 Pinul E (enable) folosit pt. preluarea datelor de ctre
display
7 - 14 Pini de date
Aplicaii cu microcontrollere Interfaarea cu display LCD
Interfaarea liniilor de date cu un microcontroller se face pe 4 sau 8 linii.
Aplicaii cu microcontrollere Interfaarea cu display LCD
Pinul RS : 0 ----- Instruciune
1 ----- Caracter de afiat
Pinul RW : 0 ----- @ransmisie ctre display (scriere)
: 1 ----- Citire de la display
Pinul E (enable) are efect pe frontul cresctor
Datele se pot transmite pe 8 bii sau pe 4 bii (de 2 ori cte 4 bii).
n cazul utilizrii a doar 4 linii, mai nti se transmit bitii cei mai semnificativi, apoi ceilali
4.
Display-ul poate avea 1, 2 sau 4 linii a cte 8, 10, 16 caractere pe linie.
Circuitul mai conine 2 tipuri de memorii:
DDRAM : memoria n care se gsesc caracterele afiate pe display. Adresa celei de a doua
linii a display-ului ncepe de la 0x40!!
CGRAM : memoria n care se gsesc matricile de puncte care determin un caracter, n
principiu fiecare caracter se gsete la o adres corespunztoare codului ASCII al
caracterului respectiv. Un caracter este format din 5x7 sau 5x10 puncte.
00 01
40 41
Memoria CGRAM
Aplicaii cu microcontrollere Interfaarea cu display LCD
Etapele de transmisie a unei instruciuni (efectuate de ctre microcontrollerul conectat la
display)
Pinul ucontrollerului legat la RS este pus pe 0
Pinul ucontrollerului legat la RWeste pus pe 0
Se pregtete octetul corespunztor instruciunii pe pinii ucontrollerului conectai la pinii
de date ai display-ului (pinii 7-14)
Pinul ucontrollerului legat la E este fcut 1
Se ateapt o perioad de timp de aprox. 10 ms
Pinul ucontrollerului legat la E este fcut 0
Etapele de transmisie a unui caracter (efectuate de ctre microcontrollerul conectat la
display)
Pinul ucontrollerului legat la RS este pus pe 1
Pinul ucontrollerului legat la RWeste pus pe 0
Se pregtete codul ASCII corespunztor caracterului pe pinii ucontrollerului conectai la
pinii de date ai display-ului (pinii 7-14)
Pinul ucontrollerului legat la E este fcut 1
Se ateapt o perioad de timp de aprox. 10 ms (caracterul este deja vizibil pe diplay n
poziia curent a cursorului)
Pinul ucontrollerului legat la E este fcut 0
Instruciunile unui controller Hitachi 44780
Setarea direciei de deplasare a cursorului:
ID incrementeaz cursorul dup fiecare octet ce este scris (dac este setat)
S shifteaza displayul atunci cnd este scris un caracter pe acesta
Activeaz display-ul/ cursorul
D Activeaz displayul On(1)/Off(0)
C Activeaz cursorul On(1)/Off(0)
B Seteaz cursorul pe blink On(1)/Off(0)
Mutarea cursorului/ Shiftarea displayului
SC Activeaz shiftarea displayului On(1)/Off(0)
RL Seteaz direcia de shiftare la dreapta Right(1)/Left(0)
Setarea dimensiunii interfeei
DL Laimea interfeei de conectare: 8 linii(1) / 4 linii(0)
N Numarul de linii afisare de display 1 linie(0)/2 linii(1)
F Fontul caracterelor afisate 5x10(1)/5x7(0(
Iniializarea display-ului
nainte de a trimite comenzi sau date ctre display, acesta trebuie iniializat.
Pentru modul 8 bii etapele sunt:
Se ateapt mai mult de 15 msec dup ce display-ul a fost alimentat.
Se scrie 0x030 la LCD i se ateapt 5 msec pt ca instruciunea s fie executat
Se scrie 0x030 la LCD i se ateapt 160 usec pt ca instruciunea s fie executat
Se scrie din nou 0x030 la LCD i se ateapt 160 usec pt ca instruciunea s fie executat
Se seteaz de operare ale display-ului
Se scrie "Set Interface Length"
Se scrie 0x010 pt a opri display-ul
Se scrie 0x001 pt a terge display-ul
Eventual se scrie "Set Cursor Move Direction"
Se scrie "Enable Display/Cursor" astfel nct display-ul s porneasc
Pentru modul 4 bii etapele sunt:
Se ateapt mai mult de 15 msec dup ce display-ul a fost alimentat.
Se scrie 0x030 la LCD i se ateapt 5 msec pt ca instruciunea s fie executat
Se scrie 0x030 la LCD i se ateapt 160 usec pt ca instruciunea s fie executat
Se scrie din nou 0x030 la LCD i se ateapt 160 usec pt ca instruciunea s fie executat
Se scrie 0x002 la LCD pentru a activa modul 4 bii
De aici nainte toate datele se vor transmite n 2 trane de cte 4 bii
Se seteaz de operare ale display-ului
Se scrie "Set Interface Length"
Se scrie 0x010 pt a opri display-ul
Se scrie 0x001 pt a terge display-ul
Eventual se scrie "Set Cursor Move Direction"
Se scrie "Enable Display/Cursor" astfel nct display-ul s porneasc
Protocoale sincrone de comunicaie serial
Pentru comunicaia ntre componentele aflate ladistane foarte mici (pe aceeai plac electronic) se poate
utiliza un protocol de comunicie sincronizat de un semnal de ceas. Un avantaj major este c aceste protocoale se
pot folosi ntr-o configuraie one_master - multi_slave sau chiar multi_master multi_slave. Practic, comunicaia are
loc pe o magistral, magistrala care unete circuitul master de circuitele slave.
Protocolul I2C (Philips)
Acest protocol inventat si dezvoltat de Philips a aprul prima oara pe plcile televizoarelor. Este nevoie doar de dou
linii:
SCL (ceasul) : ceasul sincron generat de master
SDA (data) : linia de date
Configuraiile posibile sunt multi_master multi slave, existnd mecanism de arbitrare ntre masteri.
Avantaje:
configuraie multi master posibilitatea arbitrprii masterilor
clock-stretching perifericele lente pot cere un delay de la master
utilizarea intensiv a bit-ului ACK (acknowledge)
Detecia foarte simpl a perifericelor active (n funcie de configuratia placii, avand un soft unic, se poate detecta la start-up care sunt perifericele
prezente pe magistrala)
o validarea rapid a datelor
doar doua linii de semnal pentru toat magistrala
Dezavantaje:
viteza mic de transfer
selecia perifericului (prin adresa de slave)
Protocolul I2C
Considerm situaia 1 master (ucontroller) 1 slave ( memorie eeprom)
Din punctul de vedere OSI, nivelul fizic se defineste prin:
dou linii:
o SCL ceasul sincron generat de master
o SDA linia de date bidirectionala
nivelele sunt @@L, respectiv
o VIL ( 0 Logic ) avem intre 0 si 0.8V
o VIH ( 1 Logic) avem intre 2V si 5V (5V este chiar VCC-ul )
driverele pinilor sunt:
o SDA = open-drain/input si SCL = open-drain (la master = microcontroler)
o SDA = open-drain/input si SCL = input (la slave)
liniile din magistral (SDA si SCL) sunt prevzute cu cte o rezisten de pull-up
Comunicaia se desfasoara bidirecional ntre master i slave. Iniial, master-ul trimite date, urmnd ca slave-ul s
trimit ulterior date. Practic, slave-ul nu trimite niciodat date fr s i se cear. Semnalul SCL este generat de
master. Pentru slave, acest semnal este necesar pentru sincronizare, biii care intr i ies prin SDA sunt sincronizai cu
SCL. Frecvena semnalului de clock este configurabil prin programul ucontrollerului i trebuie adaptat n funcie de
specificaiile circuitului slave.
Condiia de start este o tranziie high-to-low a liniei SDA cu linia SCL pe valoarea high.
Condiia de stop este o tranziie low-to-high a liniei SDA cu linia SCL pe valoarea high.
n mod normal linia SDA este inut High cu un dispozitiv extern. Ea se poate schimba doar cnd SCL este pe Low.
Acknowledge: toate adresele i datele sunt transmise serial n pachete de 8 bii. Eepromul transmite un zero pt. A
confirma recepia unui pachet de date, n timpul celui de al noulea semnal de SCL.
Comunicaia ncepe prin transmisia unui octet de start de ctre ucontroller. Valoarea acestuia depinde de
specificaiile slave-ului. Spre exemplu, pt o memorie eeprom de tip 24c16 acesta arat:
Protocolul I2C Eeprom 24c16
Capsula unei memorii eeprom 24c16 arat astfel:
Unde:
A0, A1, A2 sunt linii de adres ele trebuie conectate electric la GND sau VCC pt a forma o adres
GND masa
VCC alimentarea
WP linia de Write protect (dac e conectat la VCC nu se mai poate scrie n Eeprom)
SCL semnalul de ceas
SDA linia de date
Ciclul de comunicaie:
Protocolul I2C Eeprom 24c16
Validitatea datelor:
Condiiile de Start i Stop:
Ieirea Acknowledge:
Protocolul I2C eeprom 24c16
Adresarea Eepromului:
Scrierea unui octet la o anumit adres n Eeprom:
Citire de la adresa curent:
Citire aleatoare:
Protocolul SPI (Serial Peripheral Interface)
SPI este un standard sincron (ca i I2C) dezvoltat de Motorola ce opereaz n mod full-duplex (transferul de date are
loc n ambele direcii simultan). Device-urile comunic folosind o relaie de tipul master multi slave) master-ul fiind
cel care iniiaz frame-urile de date.
SPI folosete 4 linii:
SCLK Serial Clock ( ieire de la master)
MOSI/SIMO Master Output, Slave Input (ieire de la master)
MISO/SOMI Master Input, Slave Output (ieire de la slave)
SS Slave Select (activ pe valoarea Low; ieire de la master)
Configuraia 1 master 1 slave:
Configuraia 1 master multi Slave:
Protocolul SPI Modul de funcionare
Comunicaia pe SPI implica existena a doi registri de shiftare (Shift Registers), unul n master i unul n slave,
conectati n felul urmtor:
Masterul configureaz frecvena semnalului de ceas astfel nct s nu depeasc frecevna maxim admis a Slave-
ului apoi pornete comunicaia punnd 0 pe linia SS a acestuia.
In timpul unui ciclu SPI, transmisia este full-duplex: Masterul trimite un bit pe linia MOSI, iar slave-ul l citete de pe
aceeai linie; Simultan, prin shiftarea regitrilor, Slave-ul trimite un bit pe linia MISO, iar master-ul l citete de pe
aceeai linie; De obicei masterul transmite o comand specific apoi trimite un octet dummy i recepioneaz date.
Unele ucontrollere au circuit SPI hardware (ex. Pt Atmega 16):
Protocolul SPI Modul de funcionare
Exist 4 moduri de funcionare SPI, n funcie de faza (Pha) i polaritatea (POL) semnalui de ceas, relativ la datele
seriale:
Aceasta este varianta cu PHA = 0 (prima parte a perioadei semnalului SCK), bitul este valid pe SCK = HIGH cnd SCK =
LOW in standby (SPI mod 1) sau pe SCK = LOW cnd SCK = HIGH in standby (SPI mod 2)
Protocolul SPI Modul de funcionare
Exist 4 moduri de funcionare SPI, n funcie de faza (Pha) i polaritatea (POL) semnalui de ceas, relativ la datele
seriale:
Aceasta este varianta cu PHA = 1 (a doua parte a perioadei semnalului SCK), bitul este valid pe SCK = HIGH cnd SCK =
HIGH in standby (SPI mod 4) sau pe SCK = LOW cnd SCK = LOW in standby (SPI mod 3)

S-ar putea să vă placă și