Sunteți pe pagina 1din 109

1.

MEDIUL DE PROGRAMARE ISaGRAF

Programul ISaGRAF a fost dezvoltat de firma CJ International i


reprezint unul dintre cele mai structurate i prietenoase medii de
programare pentru automatele programabile. Este compatibil cu standardul
IEC 1131-3.
Un proiect n ISaGRAF este mprit n mai multe uniti numite
programe. Un program este o unitate logic care descrie operaiile ntre
variabilele i constantele unui proces. Acestea sunt legate mpreun ntr-o
structur arborescent, avnd icoane diferite. Programele pot fi editate ntrunul din limbajele grafice sau literale:

Flow Chart (FC)

Ladder Diagram (LD)

Structured Text (ST)

Instruction List (IL)

Function Block Diagram (FBD)

Sequential Function Chart (SFC)

Un program poate fi ciclic sau secvenial. Un program ciclic se


execut n ntregime la fiecare ciclu, iar execuia unui program secvenial
urmeaz regulile dinamice ale limbajului SFC sau FC. Un program nu poate
conine instruciuni din mai multe limbaje, cu excepia limbajelor LD i
FBD, care pot fi combinate n cadrul aceluiai program.
Programele sunt considerate entitai de nivel unu. Se pot scrie i
subprograme, care sunt entitti de nivel doi. Entitile de nivelul unu sunt
lansate de sistemul de operare, n timp ce subprogramele, numite i
programe fiu, sunt activate de programe, care se mai numesc i programe
printe.
Programele apar ntr-una din urmtoarele trei seciuni:
BEGIN: se execut la nceputul ciclului;
SEQUENTIAL: se execut dup cele din seciunea BEGIN i
urmeaz legile dinamice ale limbajului SFC sau FC;
END: se execut la sfritul ciclului.

Programele din seciunea BEGIN se recomand a fi utilizate pentru


realizarea unor operaii preliminare asupra variabilelor de intrare (ex.:
filtrarea, citirea unei valori de la un traductor).
Programele din seciunea SEQUENTIAL descriu operaii secveniale
unde variabila timp sincronizeaz operaiile primare. Trebuie s existe cel
puin un program secvenial, restul doar dac este nevoie.
Programele din seciunea END se recomand a fi utilizate pentru
realizarea unor operaii de protecie nainte de a trimite o variabil ctre un
dispozitiv de ieire. Programele seciunilor BEGIN i END nu pot fi
descrise n SFC sau FC.
Fiecare program din seciunea SEQUENTIAL poate controla alte
programe SFC, programele fiu. 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.
Atunci cnd un program printe pornete un program fiu transmite
un jeton fiecrui pas iniial al programului fiu. Aceast comand este
descris de declaraia GSTART.
n cazul opririi unui program fiu de ctre printele su, sunt
eliminate toate jetoanele existente. Aceast comand este descris de
declaraia GKILL.
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 folosind
declaraia GRST.
i n cazul programelor FC ale seciunii secveniale pot exista
subprograme FC fiu, dar un printe FC este blocat n timpul execuiei unui
subprogram FC. Astfel nu sunt posibile operaii simultane n programul FC
printe i programul fiu FC.
Obiectele din ISaGRAF sunt utilizate n orice program scris n FC,
LD, ST, IL, FBD sau SFC. Aceste obiecte sunt: tipuri de baz, expresii
constante, variabile i comentarii.
Principalele tipuri de variabile disponibile pentru programe sunt:
BOOLEAN:
valori binare de tipul true/ false;
ANALOG:
valori ntregi (integer) sau reale (real);
TIMER:
valori de tip timer;
MESSAGE:
iruri de caractere.

Constantele de tip ntreg sunt reprezentate pe 32 de bii, avnd


valorile cuprinse ntre -232 i 232. Pot fi exprimate n baza zecimal, n baza
hexazecimal (valoarea trebuie precedat de 16#), n baz octal (valoarea
trebuie precedat de 8#) i n binar (valoarea trebuie precedat de 2#).
Constantele analogice reale pot fi scrise fie printr-o reprezentare
zecimal, fie printr-o reprezentare tiinific. Punctul zecimal este folosit
pentru a diferenia o constant real de una de tip ntreg. Reprezentarea
tiinific folosete literele E i F pentru a separa mantisa de exponent.
Partea exponenial a unei expresii tiinifice reale trebuie s fie o valoare
ntreag cu semn ntre -37 i +37.
Constantele de tip timer sunt valori cuprinse ntre 0 i
23h59m59s999ms. Cea mai mic unitate permis este milisecunda.
Valoarea trebuie precedat de caracterele T# sau time#.
O constant de tip mesaj reprezint un ir de caractere cuprins ntre
caracterele apostrof. Lungimea unei variabile nu poate depi 255 caractere.
Caracterul apostrof nu poate fi utilizat ntr-un string. Pentru utilizarea lui ct
i pentru caracterele netipribile se utilizeaz secvene care ncep cu
caracterul $.
Variabilele din ISaGRAF pot fi de dou categorii : locale sau
globale. Numele variabilelor trebuie s inceap cu o liter i nu trebuie s
depeasc 16 caractere. Variabilele locale pot fi folosite doar de un
program. Variabilele globale pot fi folosite de orice program al aplicaiei
curente.
Variabilele pot avea unul dintre urmtoarele atribute:
INTERNAL: variabile actualizate de program;
INPUT: variabil conectat la un dispozitiv de intrare;
OUTPUT: variabil conectat la un dispozitiv de ieire.
Comentariile pot fi introduse liber n limbajele literal acceptate i
sunt precedate de caracterele (* i succedate de caracterele *).

1.1. Crearea unui proiect ISaGRAF


Pentru a crea un proiect se lanseaz programul ISaGRAF prin
executarea unui dublu click pe iconia lui. Se va deschide fereastra Project
Management (vezi fig.1), mprit n dou sub-ferestre. n sub-fereastra de
sus, sunt listate proiectele deja existente, iar n sub-fereastra de jos sunt
scrise detalii despre proiectul selectat.

Fig.1. Fereastra ISaGRAF Project Management

Aciunile posibile n aceast etap sunt: deschiderea/rularea unui


proiect existent, modificarea lui sau crearea unui nou proiect.
Pentru crearea unui nou proiect se selecteaz File New; se va
deschide fereastra Create New Project (vezi fig.2). Se introduce numele
dorit al proiectului. Numele nu va depai 8 caractere i ncepe cu o liter.
Editarea descrierii proiectului se face prin alegerea opiunii Project
Project descriptor, dar este indicat ca aceast operaie s se fac la sfrit
pentru a cuprinde informaii ct mai complete despre proiect.

Fig.2. Fereasta Create new project

Pentru editarea programelor din cadrul unui proiect, se va da dublu


click n fereastra Project Management pe proiectul dorit. Apare fereastra
Programs (vezi fig.3).

Fig.3. Fereastra Programs

Pentru introducerea unui nou program n proiectul existent, se alege


din fereastra Programs opiunea File New. Se deschide fereastra New
Program (vezi fig.4). Trebuie ales numele programului, limbajul n care se
editeaz i locul su n ierarhia programelor (Begin, Sequential, End,
Function, Function block sau Child of).

Fig.4. Fereastra New Program

Dup completarea celor patru cmpuri, se apas OK, se nchide


fereastra iar programul apare n ierarhia de programe. Editarea programului
se face prin dublu click pe numele acestuia. nainte de editare, este indicat
s se scrie variabilele programului. Editarea variabilelor se face pornind de
la fereastra Programs, alegnd opiunea File Dictionary. Se editeaz
variabilele pentru fiecare categorie. n fig.5. sunt prezentate variabilele
booleene. Trebuie ales numele variabilei i atributul.

Fig.5. Fereastra Global booleans

n fig.6. este prezentat fereastra unei variabile booleene. n mod


identic, arat i fereastra pentru variabilele analogice, doar c modul de
afiare poate fi ales n mod diferit pentru cele ntregi i reale.

Fig.6. Fereastra Boolean Variable

Dup editarea variabilelor se trece la scrierea programelor. Lansarea


unui editor se face prin dublu click pe program. Se deschide editorul ales la
crearea programului SFC (Sequential Function Chart), FBD (Function
Block Diagram), LD (Ladder Diagram), ST (Structured Text), IL
(Instruction List) sau FC (Flow Chart).

1.2. Editarea n Sequential Function Chart


Sequential Function Chart combin editarea grafic cu cea sub form
de text. SFC permite editarea grafului de automatizare cu aciunile i
condiiile de parcurgere a tranziiilor. Componentele grafice sunt prezentate
n fig.7.

Fig.7. Componentele grafice ale editorului SFC

Componentele existente, n ordinea apariiilor lor n fig.7 sunt: etapa


iniial, etap, tranziie, salt la etap, nceputul divergenei, sfritul
divergenei, nceputul paralelismului, sfritul paralelismului, macroetap,
prima etap a unei macroetape, ultima etap a unei macroetape.
Un program SFC este n mod uzual mprit n dou nivele diferite:
nivelul 1: prezint graful automatizrii i numele etapelor i
tranziiilor
nivelul 2: se scriu aciunile i condiiile din tranziii n limbajele
ST sau IL.
Pentru a plasa un element, programatorul trebuie s selecteze acel
element din bara de componente grafice, apoi va selecta cu mouse-ul zona
n care va dori s fie plasat elementul.
Fig.8. prezint nivelul 1 al programului editat.

Fig.8. Nivelul 1 al programului SFC

Pentru a edita nivelul 2, se d dublu-click pe etap sau pe tranziie.


Se va deschide n partea dreapt a ecranului fereastra numit pentru o etap
Step GSnnn, unde nnn este numrul etapei, respectiv pentru o tranziie
Transition GTnnn, unde nnn este numrul tranziiei.

Fig. 9. Nivelul 2 al programului SFC pentru etapa 1

n editarea nivelului 2, mai ales la tranziii se pot folosi dou


variabile ataate fiecrei etape. Ele sunt actualizate n funcie de starea
etapelor din graf. Aceste variabile sunt :
GSnnn.x variabil boolean care reprezint starea etapei, n
timpul execuiei programului (1 dac etapa este activ i 0 n
cazul n care etapa este inactiv)
GSnnn.t variabil de tip timer; reprezint timpul scurs de la
activarea etapei.
Limbajul default pentru nivelul 2 de editare a programului SFC este ST.
Urmtoarele tipuri de aciuni pot fi asociate unei etape:
aciuni booleene : atribuie unei variabile interne sau de ieire o
valoare n funcie de starea etapei creia i s-a ataat aciunea.
Sintaxa:
<variabila_booleana>;

atribuie valoarea ataat etapei variabilei booleene


/<variabila_booleana> ;

atribuie valoarea negata atasata etapei variabilei booleene


aciuni memorate: aciuni de setare sau resetare. Sintaxa:
<variabila_booleana>(S);

seteaz variabila boolean la activarea etapei


/<variabila_booleana>(R);

reseteaz variabila boolean la activarea etapei


aciuni de tip puls: se execut o singur dat la activarea etapei,
n primul ciclu automat. Sintaxa:
ACTION(P):
(* Instructiuni ST *)
END_ACTION ;

aciuni de tip non-puls: se execut ct timp etapa este activ;


dac este o variabil boolean va avea forma unor impulsuri
scurte, care se repet la fiecare ciclu. Sintaxa:
ACTION(N):
(* Instructiuni ST *)
END_ACTION ;

aciuni SFC: pornesc sau opresc un program fiu, n funcie de


starea etapei.
ACTION(P):
GSTART(<Program_fiu>);
END_ACTION ;
ACTION(P):
GKILL(<Program_fiu>);
END_ACTION ;

1.3. Editarea n Function Block Diagram


FBD este un editor grafic. El combin capacitaile grafice cu cele de
editare de text. Se pot construi funcii complexe, prin utilizarea blocurilor
existente n biblioteca ISaGRAF i legarea acestora ntre ele.
FBD descrie o funcie ntre variabilele de intrare i variabilele de
ieire, funcia fiind descris de setul de blocuri elementare, care intra n
componena diagramei.
Intrrile pot fi constante, variabile (interne, de intrare sau de ieire)
sau ieirile altor blocuri. Ieirile pot fi variabile (interne sau de ieire),
intrrile altor blocuri sau subprograme.
Operatorii sunt reprezentai prin blocuri funcionale dreptunghice.
Intrrile funciei sunt conectate n partea stang a blocului n timp ce ieirile
sunt conectate n dreapta. Variabilele (intrrile i ieirile) sunt conectate la
blocurile funcionale cu legturi logice. Reprezentarea grafic a intrarilor i
ieirilor sunt dreptunghiuri cu colurile rotunjite (vezi fig.10).
Etichetele i salturile sunt folosite pentru a controla execuia
programului. Pentru introducerea etichetelor i a simbolului de salt exist pe
bara de instrumente obiecte speciale.

Fig.10. Editorul FBD

1.4. Editarea n Ladder Diagram


Editorul Ladder Diagram este un editor grafic. El permite
programatorului s reprezinte grafic ecuaii booleene prin combinarea
contactelor (variabile de intrare) cu bobine (variabile de ieire). Modul de
realizare a unui program este asemntor cu cel din FBD i nu sunt
dificulti n realizarea lui.

Fig.11. Editorul LD

1.5. Editarea n Structured Text i Instruction List


Aceste editoare sunt n mod text i sunt uor de utilizat dac este
cunoscut limbajul.
n cadrul fiecrui editor exist posibilitatea efecturii unei verificri
a programelor. Pentru aceasta este necesar s se aleag opiunea Files
Verify. In cazul n care sunt erori acest lucru este semnalat ntr-o fereastra
special n care se indic codul erorii, coordonatele obiectului care a produs
eroarea i un text explicativ. Fereastra trebuie nchis pentru a putea face o
nou verificare dup corectarea erorii.

1.6. Utilizarea editorului de conexiuni


Dup elaborarea programului pentru automat este necesar s se
stabileasc o legtur logic ntre variabilele de I/O ale programului i
canalele de pe automatul programabil. Pentru a realiza acest lucru
utilizatorul trebuie s indice i s seteze modulele de pe automat i apoi s
lege variabilele de canalele acestor module.

Fig. 12. Fereastra I/O connection

Alegerea, plasarea modulelor i conectarea variabilelor la canalele


acestora se face din fereasta Programs, prin alegerea opiunii Project I/O
connection.
La alegerea acestei opiuni apare fereastra din fig.12, n care n
partea stang este rack-ul automatului programabil cu sloturile pentru 255
module. Un slot poate fi utilizat pentru introducerea unui modul. Numrul
slotului este poziia n care se afl fa de CPU. Numerotoarea ncepe de la
zero. Adresa logic a unui modul ncepe de la unu i trebuie setat ntr-o
fereastr separat.
Prin realizarea unui dublu click asupra unui slot selectat al rack-ului
se deschide fereastra Select board/equipment (fig.13), unde n caseta din
stng se pot alege modulele automatului din biblioteca de module.

Fig.13. Fereastra Select board/equipment

Dup alegerea modulului corespunztor se apas butonul OK, iar n


fereastra I/O Connection va apare modulul respectiv avnd canalele cu care
productorul l-a echipat.
Urmeaz s se conecteze variabilele programului la aceste canale.
Realiznd un dublu click pe un canal va apare fereastra Connect I/O channel
#1 (fig.14), n care n caseta din stnga apar toate variabilele care pot fi
conectate la canal.

Fig. 14. Fereastra Connect I/O channel

Dac se apas butonul Connect, variabila respectiv va fi conectat


la canalul selectat i de trece la urmtorul canal. Astfel se pot conecta toate
variabilele i apoi se nchide fereastra apsnd butonul Close. n fereastra
I/O Connection operaiile fcute sunt reflectate prin plasarea variabilelor n
dreptul canalelor alese. n aceast fereastr trebuie aleas i adresa logic a
modulului.

1.7. Generarea codului aplicaiei


Generarea codului aplicaiei este urmtoarea etap care trebuie
parcurs naintea testrii i rulrii n automat. Mai nti, n funcie de
automatul folosit, se aleg parametrii pentru generarea codului. Acest lucru
se face pornind de la fereastra Programs, prin alegerea opiunii Make
Compiler options. n fereastra care apare (fig.15) se pot alege parametrii
pentru generarea codului. Se poate alege generarea de cod pentru simulare i
pentru uniti centrale cu procesor Motorola sau Intel. De asemenea, se pot
bifa diferite opiuni de optimizare a codului. De fiecare dat cnd se bifeaz
mai multe opiuni vor fi generate mai multe coduri.

Fig. 15. Fereastra Compiler options

1.8. Verificarea prin simulare a programului


Pentru a realiza o verificare offline a programului elaborat se poate
folosi opiunea Debug Simulate din fereastra Programs. Evident c
trebuie ca, la generarea codului, s fie bifat i opiunea de generare a
codului pentru simulare.
Aceast comand deschide debuggerul n modul simulare. Se ruleaz
simultan un simulator complet al automatului (fig.16). Simulatorul nu poate
fi pornit dac nu a fost generat codul pentru simulare i dac ferestrele de
editare, de generare de cod i I/O connection sunt deschise.

Fig.16. Fereatra de rulare a programului

Aceste ferestre pot fi deschise dup pornirea simulatorului pentru a


putea urmri evoluia programului. De exemplu n fereastra editorului SFC
se poate urmri poziia jetonului n graf. Utilizarea simulatorului este uoar
i intuitiv. Intrrile booleene sunt simulate prin butoane, care pot fi apsate,
iar ieirile booleene sunt simulate prin leduri care devin de culoare roie
dac ieirea respectiv este true. O intrare analogic este simulat printr-un
cmp de text, n care se introduce valoarea intrrii n zecimal sau
hexazecimal. Dac se execut un click pe acel cmp se poate introduce o
valoare nou. O ieire analogic este un cmp numeric de ieire n care
valoarea variabilei este afiat. La fel sunt tratate de ctre simulator i
variabilele de tip Messages.
Se poate seta simulatorul s afieze, lng variabila simulat i
numele acesteia.

1.9. Setarea legturii seriale


Pentru realizarea ncrcrii n automat a programului este nevoie, pe
lng cablul de legtur dintre PC i automat, care trebuie achiziionat odat
cu automatul i de setarea portului serial al calculatorului pe care ruleaz
ISaGRAF.
Pentru realizarea acestui lucru, din fereastra Programs se alege
opiunea Debug Link setup. n fereastra care apare (fig.17) se pot seta
portul de comunicaie, viteza i paritatea.

Fig.17. Fereastra PC-PLC link parameters

1.10. Utilizarea debuggerului grafic


ISaGRAF include un debugger grafic i simbolic. Dac din fereastra
Programs se alege opiunea Debug Debug se lanseaz debuggerul, care
controleaz ncrcarea aplicaiei n automat. Debuggerul comunic cu
automatul prin intermediul legturii seriale. Fereastra debuggerului conine
toate comenzile i informaiile pentru controlul aplicaiei. n aceast
fereastr se prezint starea aplicaiei i informaii asupra execuiei acesteia.
Sunt posibile urmtoarele stri:
Logging... - Stare n care debuggerul stabilete comunicaia cu
sistemul int
Disconected - Stare n care debuggerul nu poate comunica cu
aplicaia. n acest caz trebuie verificai parametrii legturii
seriale i cablul de legtur.
No target application Stare n care legtura este stabilit, dar
aplicaia nu este ncrcat. Pentru ncrcare se va folosi Files
Download.
Target application inactive Stare n care legtura este stabilit,
aplicaia este ncrcat, dar nu este activat. Pentru activare se va
folosi Files Activate PLC.
Target application active Stare n care legtura este stabilit,
aplicaia este ncrcat i ea este activat.
RUN Aplicaia este n modul Real Time.
STOP Aplicaia este n modul Cycle to cycle. Se ateapt
comenzi pentru executarea unui ciclu.
Fatal Error Aplicaia este oprit din cauza unei erori fatale.
Cnd se ncarc aplicaia trebuie realizat att ncrcarea codului ct
i a simbolurilor aplicaiei.
O aplicaie trebuie s se afle n modul STOP pentru a putea ncrca o
versiune modificat sau o alt aplicaie.

Problema 1: Controlul unei macarale


1. Descrierea sistemului i a procesului
Sistemul este format dintr-o macara acionat de dou motoare,
fiecare cu cte dou sensuri de rotaie i prevazute cu patru limitatoare de
curs. Aplicaia const n controlul acestei macarale care trebuie s realizeze
cele 2 cicluri de micare reprezentate n figura 1.1. Iniial, macaraua se
gsete n poziia de repaus 1. La apsarea butonului de pornire, macaraua
pornete i realizeaz ciclul 1 de micare, pn ajunge n poziia de repaus 2,
unde ramne pentru un anumit timp cunoscut (3s), nainte de a porni ciclul
2; cnd ajunge n poziia de repaus 1, macaraua se va opri. Un nou ciclu va
porni dup reapsarea butonului de pornire.

Fig.1.1. Controlul unei macarale

Elemente de execuie:
dou motoare cu dou sensuri de rotaie, unul pentru micarea
orizontal i unul pentru cea vertical;
Elemente de msur:
patru limitatoare de curs;
un buton de pornire.

2. Soluia de automatizare

Implementarea n mediul ISaGRAF

Prima soluie pentru controlul acestei aplicaii o reprezint un


automat programabil de tip PEP Smart pentru care s-a dezvoltat un proiect
ISaGRAF ce cuprinde un program principal secvenial.

Fig.1.2. Structura proiectului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare booleene:


o pornire: buton de pornit ciclul;
o l1:
limitator jos;
o l2:
limitator sus;
o l3:
limitator stnga;
o l4:
limitator dreapta.

Variabile de ieire booleene:


o M1S: acionare motor 1 stnga;
o M1D: acionare motor 1 dreapta;
o M2S: acionare motor 2 sus;
o M2J: acionare motor 2 jos.

Program main:

Implementarea n limbajul Ladder Diagram

Pentru controlul acestei aplicaii s-a ales un automat programabil de


tip Allen Bradley. Programul de tip Ladder Diagram este construit pe baza
diagramei logice din proiectul ISaGRAF prezentat anterior.
Asocierea intrrilor i ieirilor fizice cu bii din regitrii de intrare/ieire
este prezentat n tabelul 1.1:
Tabelul 1.1.

Intrare fizic
Pornire
l1
l2
l3
l4

Adres intern
I:1/1
I:1/2
I:1/3
I:1/4
I:1/5

Ieire fizic
M1S
M1D
M2S
M2J

Adres intern
O:3/1
O:3/2
O:3/3
O:3/4

Asocierea etapelor cu bii din fiierul de bit B3 i alegerea fiierului de timer este
pezentat n tabelul 1.2:
Tabelul 1.2.

Etapa
1
2
3
4
5
6
7
8

Adresa bit
B3/1
B3/2
B3/3
B3/4
B3/5
B3/6
B3/7
B3/8

Temporizare
Temporizare 1

Diagrama Ladder este prezentat n continuare:

Fiier de timer
T4:0

Comentarii:

n diagrama SFC se observ realizarea temporizrii folosind


variabila sistem GS5.t, care conine timpul scurs de la activarea
etapei asociate. Aceast metod de msurare a timpul poate fi
folosit doar n situatia cnd o etap trebuie sa fie activ pentru o
anumit perioad de timp, n alte situaii fiind necesar folosirea
unor variabile globale de tip timer i gestionarea lor de ctre funciile
TSTART i TSTOP.
n diagrama Ladder se observ c ramurile de tip 1 i 2 asociate unei
etape au fost scrise una dup alta, pentru aceast aplicaie programul
funcionnd corect, exist ns situaii cnd ordinea de scriere a
ramurilor trebuie s fie diferit (de multe ori se scriu primele
ramurile de tip 1 pentru fiecare etap, apoi ramurile de tip 2).

Problema 2: Comanda micrii oscilatorie a unui mobil


1. Descrierea procesului
Un mobil alunec pe un urub micat de un motor acionat de dou
contactoare (MD dreapta i MS stnga), ntre 2 limitatoare de curs.
Mobilul trebuie s realizeze o micare oscilatorie continu din momentul n
care se primete comanda (impuls) de la butonul M. Un impuls de la
butonul P trebuie s opreasc motorul, dar nu imediat, ci la finalul micrii
ncepute. Un impuls de la butonul E produce o retragere imediat a
mobilului n poziia de origine, iar sistemul se mai poate pune n micare
doar apsnd butonul R.

Fig. 2.1. Micarea oscilatorie a unui mobil

Element de execuie:
un motor cu dou sensuri de rotaie
Elemente de msur:
dou limitatoare de curs
4 butoane
2. Soluia de automatizare
Pentru controlul acestei aplicaii se alege un automat programabil de
tip PEP Smart PLC pentru care se dezvolt un proiect ISaGRAF. Proiectul
conine dou programe, un program principal i un program fiu, numit Osc.
Programul Osc este pornit i oprit de ctre programul principal i este

responsabil cu realizarea micrii oscilatorii i sesizarea apsrii butoanelor,


conform specificaiilor aplicaiei.

Fig. 2.2. Structura proiectului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare digitale:


o M: buton de pornire micare oscilatorie
o P: buton de oprire motor
o E: buton de retragere n poziia de origine
o R: buton de repornire
o L0 : limitator stnga
o L1 : limitator dreapta
Variabile de ieire digitale:
o MS: comand motor stnga
o MD: comand motor dreapta
Variabile interne de tip boolean:
o oprit: are valoarea TRUE cnd micarea oscilatorie este
oprit
o v_redgeM necesar funciei REDGE
o v_redgeR necesar funciei REDGE

Program main:

Program osc:
Pornire micare oscilatorie
1

ACTION (P):
IF NOT (L0) THEN
MD:=TRUE;
ELSE
MS:=TRUE;
END_IF;
END_ACTION;
100

100

Dac deplasare stnga


1

Dac deplasare dreapta


201

MS=TRUE;

MD=TRUE;

201

Atingere limitator dreapta


Atingere limitator stnga
2

Buton oprire
101

L0=TRUE;

202

Apsare buton oprire


301

L1=TRUE;

P=TRUE;

P=TRUE;
Schimbare sens
202

Schimbare sens
3

ACTION (P):
MS:=FALSE;
MD:=TRUE;
END_ACTION;

101

102

Atingere limitator stnga

ACTION (P):
MD:=FALSE;
MS:=TRUE;
END_ACTION;

301

302

203

Atingere limitator dreapta


L1=TRUE;

L0=TRUE;
Schimbare sens
Schimbare sens

100

102

100

302

ACTION (P):
MS:=FALSE;
oprit:=TRUE;
END_ACTION;
303

103

blocare

blocare
1<>1

1<>1
1
1

ACTION (P):
MD:=FALSE;
oprit:=TRUE;
END_ACTION;

Comentarii :

Funia REDGE este folosit pentru detectarea impulsurilor produse prin


apsarea butoanelor;
Comunicaia ntre programe este realizat prin intermediul variabilei oprit;
Programul principal oprete execuia programului fiu Osc atunci cnd
variabila oprit are valoare TRUE sau micarea este ntrerupt de apsarea
butonului E;
Programul putea fi realizat i fr un program fiu, dar diagrama s-ar fi
complicat mult, din cauza necesitii de a testa n fiecare etap starea
butonului E.

Propunere:
S se modifice programul n condiiile n care la apsarea butonului de
oprire, ciclul se ncheie totdeauna cnd mobilul ajunge prima dat n partea
dreapt.

Probl. 3: Detecia i expulzarea automat a sticlelor fr dop


1. Descrierea procesului
Una dintre fazele de producie ntr-o linie de mbuteliere const n
aezarea unui dop, ca urmare a ncheierii secveniei de umplere. O dat
astupate, sticlele se deplaseaz pe banda 1. Scopul aplicaiei este detectarea
i evacuarea sticlelor care ies din faza de nchidere fr dopul corespunztor.
n plus, dac sunt rejectate mai mult de 3 sticle consecutive, trebuie activat
o alarm. Repornirea ciclului se face prin apsarea butonului Pc. Pentru
detecia sticlei defecte se conjug aciunile unui senzor inductiv, care
detecteaz prezena dopului i un echipament fotoelectric care semnaleaz
prezena unei sticle.

Fig.3.1. Detecia i expulzarea sticlelor fr dop

Procesul este iniiat prin apsarea butonului M, care determin


pornirea benzii transportoare 1. Atunci cnd se detecteaz o sticl fr dop,
este oprit banda 1 i este pornit banda transportoare 2 (dac era oprit). n
momentul n care sticla fr dop se gsete n zona de expulzare, este activat
mecanismul de expulzare (un piston ce poate avansa i se poate retrage ntre
dou limite). Banda 1 va fi repornit n momentul n care sticla fr dop nu
se mai gsete n zona de expulzare (practic semnalul transmis de detectorul
fotoelectric are valoarea logic fals). Banda 2 va fi oprit dup 5 secunde de
la nceperea expulzrii ultimei sticle.
Elemente de execuie:
dou motoare care acioneaz dou benzi transportoare;
un piston folosit la expulzarea sticlelor fr dop.
Elemente de msur:
un detector inductiv pentru dopuri;
un detector fotoelectric pentru sticle.
2. Soluia de automatizare
Pentru controlul acestei aplicaii se alege un automat programabil de
tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, cu un singur
program principal dar cu dou seciuni programate: seciunea secvenial i
seciunea de sfrit ca n fig. 3.2.

Fig.3.2. Structura proiectului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare booleene:


o M:
buton de pornire;
o I:
detector inductiv;
o F:
detector fotoelectric;
o Pc:
buton de reponire a ciclului;
o l_av: limita de avans;
o l_ret: limita de retragere.

Variabile de ieire booleene:


o banda_1:
comand pornire/ oprire band 1;
o banda_2:
comand pornire/ oprire band 2;
o alarm:
comand alarma;
o p_av:
comand avansul pistonului;
o p_ret:
comand retragerea pistonului.

Variabile interne de tip ntreg:


o nr_sticle:
contorizeaz numrul de sticle fr dop
expulzate
consecutiv.
Variabile interne de tip Timer:
o timp:
folosit la contorizarea celor 5 secunde de
activare
a conveiorului 2.

Programul Timing:

IF (timp>t#5s) THEN
banda_2:=FALSE;
TSTOP(timp);
timp:=t#0s;
END_IF;

Programul Main:

Observaii:
seciunea de end (care conine programe ciclice) este necesar
deoarece timpul trebuie verificat la fiecare ciclu automat astfel nct
banda 2 s poat fi oprit n orice moment dac perioada ei de
activare a expirat;
contorizarea timpului este fcut cu ajutorul funciilor TSTART i
TSTOP;
dac o sticl trebuie s fie expulzat n timp ce o alta se gsete pe
conveiorul 2, timer-ul este resetat astfel nct contorizarea timpului
repornete de la 0 pentru a asigura i evacuarea acestei ultime sticle;
dac numrul de sticle evacuate consecutiv este 3, atunci vor ncepe
dou secvene de aciuni ce trebuie s aib loc simultan i anume:
o retragerea pistonului
o activarea dezactivarea alarmei.
Abia dup ncheierea ambelor secvene procesul poate reporni,
situaie reprezentat printr-un paralelism n cadrul diagramei.
Propuneri:
S se construiasc o diagram Ladder pentru un automat de tip Allen
Bradley, care s controleze acest proces.
S se modifice proiectul ISaGRAF dac aplicaia se schimb astfel:
o Dac pe band nu mai vin sticle timp de 2 minute, banda 1 va
fi oprit, se activeaz alarma, repornirea procesului avnd loc
la apsarea butonului Pc.

Problema 4: Staie automat de splat autovehicule


1. Descrierea procesului
Scopul proiectrii acestui sistem de control l reprezint
automatizarea unei staii de splat autovehicule. Staia are urmtoarea
structur:
band transportoare a mainilor;
patru posturi de lucru prevzute cu senzori fotoelectrici de prezen
a unei maini i cu echipamente de acionare specifice postului
respectiv (presplare, splare cu detergent, cltire i uscare);
o barier acionat de un motor cu dou sensuri de rotaie i dou
limitatoare de curs;
un semafor cu 2 culori, verde i rou.

Fig.4.1. Staie automat de splat autovehicule

Iniial banda este oprit, bariera ridicat i semaforul verde,


neexistnd maini pe band. n momentul n care o main apare n dreptul

postului 1, banda va trebui s porneasc pentru a transporta mainile prin


cele 4 posturi de lucru. Banda va fi oprit cnd nu mai exist maini pe
band. Bariera va fi cobort iar semaforul va deveni rou atta timp ct
postul 1 este ocupat. Ct timp o main trece printr-un post, echipamentul
postului respectiv trebuie s fie activ.
Elemente de execuie:
motorul benzii transportoare;
motorul barierei cu dou sensuri de rotaie;
un semafor;
patru posturi de lucru.
Elemente de msur:
cinci celule fotoelectrice;
dou limitatoare de curs ale barierei.
2. Soluia de automatizare
Pentru controlul acestei aplicaii se alege un automat programabil de
tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, proiect ce
const din ase programe editate n SFC care ruleaz n paralel. Structura
proiectului ISaGRAF este prezentat n fig.4.2.

Fig.4.2.Structura proiectului ISaGRAF

Dicionarul de variabile:

Variabile de intrare booleene:


o limita_sus: limitator de curs sus pentru barier;
o limita_jos:
limitator de curs jos pentru barier;

o
o
o
o

foto_1:
foto_2:
foto_3:
foto_4:

fotocelula postului 1;
fotocelula postului 2;
fotocelula postului 3;
fotocelula postului 4.

Variabile de ieire booleene


o banda:
comand pornire/oprire band;
o bariera_sus: comand ridicare barier;
o bariera_jos: comand coborre barier;
o semafor:
comand activare/ dezactivare semafor;
o post_1:
comand activare/ dezactivare post presplare;
o post_2:
comand activare/ dezactivare post splare;
o post_3:
comand activare/ dezactivare post cltire;
o post_4:
comand activare/ dezactivare post uscare.

Variabile interne integer


o nr_masini: numrul de maini existente n staia de
splare.

Program bariera:

Program start:

Program Post1:

Program Post2:

Program Post4:

Program Post3:

Observaii:
Toate programele dezvoltate sunt independente i ruleaz n paralel,
fapt ce uureaz foarte mult nelegerea i realizarea programului.
Determinarea faptului c mai exist sau nu maini pe band s-a fcut
cu ajutorul unei variabile de tip integer, nr_maini, o alt abordare
de genul testarea tuturor senzorilor de prezen fiind incorect,
putnd exista maini pe band dar ntre posturi, deci toi senzorii de
prezen putnd fi inactivi la un moment dat, dei exist maini pe
band.
Propunere:
S se modifice proiectul corespunztor situaiei n care pentru un
timp Tasteptare nu mai urc nicio main pe band, situaie n care
bariera va fi cobort iar reluarea procesului se poate face numai
prin apsarea unui buton, introdus suplimentar n sistem.

Problema 5: Elevator clasificator de pachete


1. Descrierea procesului
Pe o band transportoare vin dou tipuri de pachete (mic i mare).
Tipul pachetului este determinat de un cntar, n final pachetele fiind sortate
i transportate n direcii diferite, n funcie de tipul pachetului.
Componentele sistemului sunt:
patru benzi transportoare acionate de motoare cu un singur sens de
rotaie;
un cntar al carui traductor genereaz un semnal analogic ntre 4 i 20
mA, proportional cu o gam de valori ale greutii ntre 0 i 100 kg;
un piston (cilindru) C dotat cu un plan elevator pentru ridicarea
pachetelor, poate avansa i se poate retrage ntre 2 limite;
dou pistoane A i B pentru evacuarea pachetelor, pot avansa i se
pot retrage ntre 2 limite;
doi senzori de prezen pachet F0 i F1 poziionai ca n fig. 5.1.

Fig.5.1. Elevator clasificator de pachete

Procesul pornete cu transportul unui pachet ctre cntar. Cnd


pachetul ajunge pe cntar, banda 0 va fi oprit. Aici pachetul este cntrit
fiind astfel identificat n funcie de greutatea citit. n cazul n care cilindrul

C este n repaus i nu are pachet deasupra, pachetul de pe cntar este


transportat de banda 1 pn la planul elevator. Cnd banda 1 este oprit i
nu exist pachet pe cntar, banda 0 poate reporni. Cilindrul C ridic
pachetele. Apoi pachetele sunt transportate diferit: pachetele mici sunt
plasate pe banda 2 de ctre cilindrul A, iar pachetele mari sunt aezate pe
banda 3 de ctre cilindrul B. Cilindrul elevator C se retrage doar cnd
cilindrii A, respectiv B au atins poziia de avans. Benzile 2 i 3 se opresc
cnd cilindrul A, respectiv B ajunge la limita de retragere.
Elemente de execuie:
trei cilindri cu dublu efect (A,B,C);
patru benzi transportoare.
Elemente de msur:
ase limitatoare de curs;
dou detectoare de prezen.
2. Soluia de automatizare
Pentru controlul acestei aplicaii se alege un automat programabil de
tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, ce cuprinde
cinci programe secveniale ce ruleaz n paralel i un program n seciunea
begin, program ce se execut la nceputul fiecrui ciclu automat. Modulul de
intrare analogic al automatului accept un semnal ntre 0 i 20 mA,
conversia analog-numeric fcndu-se pe 12 bii. Structura proiectului
ISaGRAF este prezentat n fig.5.2.

Fig.5.2.Structura proiectului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare booleene:


o foto_0:
fotocelula 0;
o foto_1:
fotocelula 1;
o A0:
limit retragere cilindru A;
o A1:
limit avans cilindru A;
o B0:
limit retragere cilindru B;
o B1:
limit avans cilindru B;
o C0:
limit coborre cilindru C;
o C1:
limit ridicare cilindru C.

Variabile de ieire booleene:


o banda_0: activare/ dezactivare banda 0;
o banda_1: activare/ dezactivare banda 1;
o banda_2: activare/ dezactivare banda 2;
o banda_3: activare/ dezactivare banda 3;
o A_retras: retragere cilindru A;
o A_avans: avans cilindru A;
o B_retras: retragere cilindru B;
o B_avans: avans cilindru B;
o C_retras: retragere cilindru C;
o C_ridicare: ridicare cilindru C.

Variabile interne booleene:


o tip_det: variabila de sincronizare ntre cntrire i banda
transportoare 1;

Variabile globale analogice:


o cntar: variabil intern, reprezint valoarea real a greutii de
pe cntar (integer);
o traductor_cntar: variabil de intrare, valoarea primit de la
traductorul cntarului (integer, ntre 0 - 4096);
o pachet_actual: variabil intern, n care se memoreaz tipul
pachetului actual ce urmeaz a fi transportat;
o pachet_viitor: variabil intern, n care se memoreaz tipul
pachetului de pe cntar (urmtorul ce va fi transportat);
o lim_inf: constant, greutatea minim a pachetului mic;
o lim_sup_mic: greutatea maxim a pachetului mic;
o mic: constant cu valoarea 1;
o mare: constant cu valoarea 2.

Program banda_0:

Program banda_1:

Program Cilin_A

Program Cilin_B
Cilindru B n ateptare
ACTION (P):
B_retras:=FALSE;
B_avans:=FALSE;
END_ACTION;

Pn apare pachet
1

(C1= TRUE) AND


(pachet_actual=mare);
Avansare cilindru B

ACTION (P):
B_avans:=TRUE;
END_ACTION;
Pn la limita B1
2

B1=TRUE;
Pornire banda 3
ACTION (P):
banda_3:=TRUE;
B_avans:=FALSE;
B_retras:=TRUE;
END_ACTION;

Pn la limita B0
B0=TRUE;
Oprire banda 3

4
ACTION (P):
banda_3:=FALSE;
END_ACTION;
4

Program Cilin_C:

Programul Convers:
Programul convers realizeaz conversia din uniti CAN
(Convertor Analog Numeric) n valori exprimate n uniti de msur
inginereti. Intrarea analogic a modulului de intrare lucreaz pe 12 bii i
msoar un curent de 0-20 mA, dar traductorul de la cntar genereaz un
curent de 4-20 mA. n aceast situaie trebuie fcut o translaie de scal. Se
observ c la valoarea minim a domeniului de msur traductorul
genereaz 4mA, corespunztoare valorii 819 citit de automat, valoare
pentru care automatul trebuie s indice valoarea minim a mrimii msurate.
Astfel formula de conversie este:
val_ing = (val_cit - 819) * (Ds - Di) / (4096 - 819)
unde:
val_ing valoarea n uniti inginereti
val_cit valoarea citit n uniti CAN
Di domeniul inferior de msur
Ds domeniul superior de msur
n cazul nostru: Ds = 100, Di = 0, astfel nct instruciunea n programul
convers se scrie:
cantar:=ANA(((REAL(traductor_cantar)-819)*100)/3277);

Observaii:
s-au folosit 2 variabile pentru memorarea tipului pachetelor deoarece
la un moment dat n instalaie pot exista 2 pachete neevacuate, unul
pe cntar sau pe banda 1 i altul n curs de evacuare;
comunicaia ntre programul banda_0 care determin tipul pachetului
i programul banda_1 se face prin intermediul variabile tip_det, cu
valoarea TRUE din momentul n care tipul unui pachet a fost
determinat pn cnd pachetul a ajuns deasupra planului elevator.
Propunere:
S se modifice programul n cazul n care nu exist un senzor de
prezen pachet n dreptul cntarului, aceasta determinndu-se prin
creterea greutii de pe cntar peste o valoare numit marja.
Identificarea tipului pachetului se va face dup un timp numit
Tstabilizare de la detectarea prezenei pachetului deasupra
cntarului.

Problema 6: Dozare i malaxare automat


1. Descrierea instalaiei i a procesului

Sistemul conine:
un malaxor pivotant care se poate roti n jurul axei sale i poate
pivota dreapta/ stnga;
dou containere pline cu substanele A, respectiv B, prevzute cu
robinei pentru golire;
o band transportoare pe care vin brichete solubile;
un senzor de detecie brichet poziionat sub banda transportoare,
activ atta timp ct prin dreptul su trece o brichet (d);
un cntar prevzut cu un robinet pentru golire, care transmite dou
semnale digitale A i B, corespunztoare anumitor valori ale
greutii, respectiv semnalul Z, atunci cnd cntarul este gol.

Fig.6.1. Dozare i malaxare automat

Utilitatea acestei instalaii este de a amesteca anumite cantiti din cele


dou substane cu cte dou brichete solubile pentru a obine un produs finit.
O arj pornete la acionarea butonului de alimentare, moment n care se
pornete cntrirea i alimentarea produselor n urmtorul mod:
cntrirea produsului A prin deschiderea valvei A, pn la referina A;
cntrirea produsului B prin deschiderea valvei B, pn la referina B;
apoi, golirea cntarului n malaxor prin deschiderea valvei C pn la
referina zero;
simultan cu precedentele operaii are loc alimentarea malaxorului cu
dou brichete solubile.
Dup ce aceste secvene s-au ncheiat, malaxorul se va roti n jurul
axei sale timp de 2 minute, apoi, fr a opri rotaia, va pivota ctre dreapta
pentru a evacua coninutul. Apoi va pivota napoi ctre poziia sa de repaus.
Dup ce a atins aceast poziie un nou ciclu de producie poate porni la
apsaresa butonului de alimentare.
Elemente de execuie:
trei electrovalve (valva_A, valva_B, valva_C);
motorul benzii transportoare cu un singur sens de rotaie;
motorul de rotaie al malaxorului;
motorul de pivotare al malaxorului, cu dou sensuri de rotaie.

Elemente de msur:
trei senzori de greutate pentru referinele A, B i zero;
dou limitatoare de curs;
un detector de trecere.

2. Soluia de automatizare

Implementarea n mediul ISaGRAF

Pentru controlul acestei aplicaii se alege un automat programabil de


tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, ce cuprinde un
program principal. Structura proiectului ISaGRAF este prezentat n fig.6.2.

Fig.6.2. Structura proietului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare booleene:


o start: buton de pornire;
o d: detector de trecere brichete solubile;
o A: detectorul greutii produsului A;
o B: detectorul greutii produselor A + B;
o Z: detectorul golirii cntarului;
o lim_stanga: limitator stnga malaxor;
o lim_dreapta: limitator dreapta malaxor.
Variabile de ieire booleene:
o valva_ A: comand deschiderea/ nchiderea valvei A;
o valva_ B: comand deschiderea/ nchiderea valvei B;
o valva_ C: comand deschiderea/ nchiderea valvei C;
o Mt: comand motorul benzii transportoare;
o rotire: comand rotaia malaxorului;
o piv_dreapta:comand pivotarea ctre dreapta a malaxorului;
o piv_stanga: comand pivotarea ctre stnga a malaxorului.
Variabile globale de tip timer:
o timer: temporizare folosit la rotaia malaxorului.

Programul Main:

5
Pornire malaxor pentru 15 secunde
ACTION (P):
rotire:=TRUE;
timer:=t#0s;
TSTART(timer);
END_ACTION;

Pn expir timpul
6

timer > t#15s;


Pivotare i malaxare
ACTION (P):
piv_dreapta:=TRUE;
TSTOP(timer);
END_ACTION;

Pn la limita din dreapta


7

lim_dreapta=TRUE;
Oprire malaxare i pivotare
ACTION (P):
rotire:=FALSE;
piv_dreapta:=FALSE;
piv_stanga:=TRUE;
END_ACTION;

Pn la limita din stnga


8

lim_stanga=TRUE;
Oprire pivotare

ACTION (P):
piv_stanga:=FALSE;
END_ACTION;
9

Implementarea n limbajul Ladder Diagram

Pentru controlul acestei aplicaii s-a ales un automat programabil de


tip Allen Bradley. Programul de tip Ladder Diagram este construit pe baza
diagramei logice din proiectul IsaGraf prezentat anterior.
Asocierea intrrilor i ieirilor fizice cu bii din regitrii de
intrare/ieire este prezentat n tabelul 6.1:
Tabelul 1.1.

Intrare fizic
START
A
B
Z
lim_dreapta
d
lim_stanga

Adres intern
I:1/1
I:1/2
I:1/3
I:1/4
I:1/5
I:1/6
I:1/7

Ieire fizic
Valva_A
Valva_B
Valva_C
Mt
Rotire
Pit_dreapta
Pit_stanga

Adres intern
O:3/1
O:3/2
O:3/3
O:3/4
O:3/5
O:3/6
O:3/7

Asocierea etapelor cu bii din fiierul de bit B3 i alegerea fiierului de timer


este pezentat n tabelul 6.2:
Tabelul 1.2.

Etapa
1
2
3
4
5
6
7
8
9
102
103
104
105

Adresa bit
B3/1
B3/2
B3/3
B3/4
B3/5
B3/6
B3/7
B3/8
B3/9
B3/10
B3/11
B3/12
B3/13

Temporizare
Temporizare 1

Diagrama Ladder este prezentat n continuare:

Fiier de timer
T4:0

Observaii:
n diagrama SFC se pot observa cele dou secvene paralele,
aducerea lichidelor i aducerea brichetelor n malaxor. Ieirea din
paralelism se face atunci cnd ambele secvene s-au ncheiat.
Pentru exemplificare, temporizarea a fost realizat cu instruciunea
TSTART dei n acest caz putea fi folosit variabila global
GS006.t. Nu s-a mai folosit funcia TSTOP pentru c n etapa 7
variabila timer este resetat, deci incrementarea ei va rencepe de
la 0 din acel moment, n alte etape sau tranziii variabila nefiind
folosit.
Propunere:
S se modifice programul pentru cazul n care aducerea brichetelor
ncepe odat cu golirea cntarului iar numrul de brichete aduse
este oarecare (egal cu n).

Problema 7: Umplerea i astuparea automat a sticlelor


1. Descrierea instalaiei i a procesului
Scopul acestei aplicaii l constituie controlul unui sistem de umplere
i astupare a unor sticle.

Fig.7.1. Umplerea i astuparea automat a sticlelor

Componentele instalaiei sunt:


o band transportoare pe care circul sticle, acionat de un motor
cu un singur sens de rotaie;
un rezervor cu lichid folosit la umplerea sticlelor;
un cilindru cu dublu efect (A n fig. 7.1) cu ajutorul cruia sunt
umplute sticlele;
un cilindru cu dublu efect (B n fig. 7.1) care aduce dopurile pentru
astuparea sticlelor;
un cilindru cu dublu efect (C n fig. 7.1) care preia dopurile din
stiva de dopuri;
un mecanism rotativ care efectueaz efectiv astuparea sticlelor, a
crui micare este limitat de ctre un limitator;
doi senzori detectori de prezena unei sticle n poziiile de umplere,
respectiv de astupare;
un detector al poziiei de preluare dop de ctre cilindrul B.

Iniial, pentru simplificarea aplicaiei, se presupune c exist deja o


sticl umplut ntre cele dou poziii principale de pe band (umplere i
astupare).
La iniializarea aplicaiei se pornete motorul benzii transportoare.
Acesta se va opri cnd exist sticle att n poziia de umplere ct i n cea de
astupare. Se presupune c sticlele vin pe band la distane egale astfel nct
umplerea i astuparea s aib loc simultan. Aciunea de umplere are loc prin
avansul i retragerea cilindrului A ntre limitatoarele F1 i F2. Retragerea
cilindrului A trebuie s aib loc abia cnd cilindrul B a pus un dop deasupra
unei sticle. Secvena de astupare este urmtoarea: Cilindrul C aduce un dop
din stiva de dopuri, cilindrul B avanseaz pn n dreptul detectorului F7,
cilindrul C se retrage apoi cilindrul B avanseaz pn la limita sa de avans,
mpingnd dopul deasupra sticlei. Din acel moment ncep dou secvene de
aciuni care au loc n paralel. Prima const n nurubarea dopului de ctre
mecanismul rotativ, urmat de retragerea cilindului B, cea de-a doua fiind
retragerea cilindrului A. Cnd ambele secvene s-au ncheiat, banda
transportoare poate fi repornit, ciclul relundu-se cnd un nou lot de sticle
apar n cele dou poziii semnificative de pe band.
Elemente de execuie:
un cilindru A ce regleaz dozatorul volumetric;
un cilindru de avans B cu trei poziii;
un cilindru C ce reprezint mecanismul de transfer al capacelor;
motorul benzii transportoare;
un mecanism de nurubare dopuri.
Elemente de msur:
ase limitatoare de curs;
un detector de poziie;
o fotocelul pentru detecie sticl de umplut;
o fotocelul pentru detecie sticl plin.
2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un automat programabil de
tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un
program principal, numit main.

Fig.7.2. Structura proiectului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare booleene:


o F1: limitator sus cilindru A
o F2: limitator jos cilindru A
o F3: limitator sus cilindru B
o F4: limitator jos cilindru B
o F5: limitator stnga cilindru C
o F6: limitator dreapta cilindru C
o F7: Detector poziie de preluat dop
o senzor_rotire: limitator rotire dispozitiv de nurubare
o st_de_umplut: senzor detecie sticl de umplut
o st_plin: senzor detecie sticl plin

Variabile de ieire booleene:


o banda: comand pornire/ oprire band
o insurubare: comanda de nurubare a dopului
o A_avans: comand avans cilindru A
o A_retragere: comand retragere cilindru A
o B_avans: comand avans cilindru B
o B_retragere: comand retragere cilindru B
o C_avans : comand avans cilindru C
o C_retragere: comand retragere cilindru C

Programul main:

Observaii:
n program au fost folosite 2 paralelisme, fiecare avnd cte 2
secvene ce se execut simultan.
A doua secven paralel implementeaz condiia c o dat cu
umplerea unei sticle, alta s fie astupat.
Propunere:
S se modifice programul n situaia n care sticlele vin aleator pe
banda transportoare, iar umplerea i astuparea nu mai au loc
simultan.
S se modifice programul inndu-se cont de situaia n care nu
apar sticle simultan n cele 2 poziii semnificative. n acest caz s
fie declanat o alarm care s fie oprit i ciclul reluat abia cnd
nu mai exist sticle n niciuna din cele 2 poziii de pe band (sticla
este evacuat manual).

Problema 8: Controlul unui lift


1. Descrierea sistemului i a procesului
Componentele sistemului sunt:
10 butoane interioare;
10 butoane exterioare;
un senzor prezen persoan n interiorul liftului;
10 senzori prezen lift la fiecare etaj;
un contact de u nchis a cabinei liftului;
un motor cu dou sensuri de rotaie.
Funcionarea dorit a liftului este urmtoarea: iniial liftul se afl la
parter, gol. Dac o persoan se afl n lift i apas unul din cele 10 butoane
interne de comand, liftul va porni ctre nivelul destinaie, oprindu-se cnd
se activeaza senzorul de prezen lift, de la nivelul respectiv. Pornirea
liftului are loc numai dac ua de interior este nchis. Dac liftul este gol el
poate fi chemat de la alt nivel, cu ajutorul butoanelor externe.
Elemente de execuie:
motorul liftului
Elemente de msur:
10 senzori prezen lift;
20 butoane;
un senzor prezen persoan;
un contact de u nchis.
2. Soluia de automatizare
Pentru controlul acestei aplicaii se alege un automat programabil de
tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, ce cuprinde un
program n seciunea begin i un program n seciunea sequential, aa cum
este prezentat i n figura 8.1.

Fig.8.1. Structura proiectului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare booleene:


o bint1 ... bint10
o bext1 ... bext 10
o usa_cabina
o etaj1 ... etaj 10
o prez_persoana

Variabile de ieire booleene:


o Msus, Mjos

Variabile interne de tip ntreg:


o but_int
o but_ext
o etaj_curent
o etaj_dorit

Program det_etj
but_int:=0;
but_ext:=0;
etaj_curent:=0;
IF bint1 = TRUE THEN
but_int = 1;
END_IF;
IF bint2 = TRUE THEN
but_int = 2;
END_IF;
IF bint3 = TRUE THEN
but_int = 3;
END_IF;
IF bint4 = TRUE THEN
but_int = 4;
END_IF;
IF bint5 = TRUE THEN
but_int = 5;
END_IF;
IF bint6 = TRUE THEN
but_int = 6;
END_IF;
IF bint7 = TRUE THEN
but_int = 7;
END_IF;
IF bint8 = TRUE THEN
but_int = 8;
END_IF;
IF bint9 = TRUE THEN
but_int = 9;
END_IF;
IF bint10 = TRUE THEN
but_int = 10;
END_IF;
IF bext1 = TRUE THEN
but_ext = 1;
END_IF;
IF bext2 = TRUE THEN
but_ext = 2;
END_IF;
IF bext3 = TRUE THEN
but_ext = 3;

END_IF;
IF bext4 = TRUE THEN
but_ext = 4;
END_IF;
IF bext5 = TRUE THEN
but_ext = 5;
END_IF;
IF bext6 = TRUE THEN
but_ext = 6;
END_IF;
IF bext7 = TRUE THEN
but_ext = 7;
END_IF;
IF bext9 = TRUE THEN
but_ext = 9;
END_IF;
IF bext10 = TRUE THEN
but_ext = 10;
END_IF;
IF etaj1 = TRUE THEN
etaj_curent = 1;
END_IF;
IF etaj2 = TRUE THEN
etaj_curent = 2;
END_IF;
IF etaj3 = TRUE THEN
etaj_curent = 3;
END_IF;
IF etaj4 = TRUE THEN
etaj_curent = 4;
END_IF;
IF etaj5 = TRUE THEN
etaj_curent = 5;
END_IF;
IF etaj6 = TRUE THEN
etaj_curent = 6;
END_IF;
IF etaj7 = TRUE THEN
etaj_curent = 7;
END_IF;
IF etaj8 = TRUE THEN
etaj_curent = 8;

END_IF;
IF etaj9 = TRUE THEN
etaj_curent = 9;
END_IF;
IF etaj10 = TRUE THEN
etaj_curent = 10;
END_IF;

Program Principal

Observaii:
S-a ales soluia folosirii unui program ciclic n seciunea Begin
deoarece starea butoanelor i etajul unde se afl liftul trebuie
actualizate la fiecare ciclu automat pentru a putea controla corect
liftul.
ncercarea de a nu folosi un program ciclic i de a testa starea
butoanelor i a senzorilor ntr-un program SFC ar duce la crearea
unei diagrame foarte mari i stufoase, n mod practic nici nu ar fi
posibil la un numr mare de butoane i senzori ntruct mediile de
programare logic permit un numr limitat de condiii de tranziie
ataate unei etape.

Propunere:
n cazul n care ar exista un buton de urgen n interiorul liftului,
s se modifice programul astfel nct liftul s se opreasc la
apsarea acestuia, miscarea fiind reluat la apsarea oricrui buton
de comand micare.

Problema 9: Detectarea bagajelor care conin metale


1. Descrierea procesului
Elementele sistemului de condus sunt:
o band transportoare acionat de un motor (MT) cu un singur
sens de rotaie pe care sunt transportate bagaje ntr-un aeroport;
o barier comandat de un motor cu dou sensuri de rotaie
Msus, Mjos, avnd limitatoare de curs lsus i ljos;
un senzor de prezen bagaje s, activ ct timp n dreptul su se
gsete un bagaj;
un detector de metal d, activ dac bagajul din dreptul senzorului
s conine obiecte de metal.

Fig. 9.1. Detectarea bagajelor care conin metale

Aplicaia are ca scop detectarea automat si evacuarea manual a


bagajelor care conin metal. Iniial, bariera este ridicat. Pornirea benzii
transportoare se face prin apsarea unui buton B. Atunci cnd un bagaj apare
n dreptul senzorului s, bariera trebuie s coboare. Bariera se va ridica atunci
cnd bagajul dispare din dreptul senzorului s. Dac n timp ce se afl n
dreptul senzorului s, se activeaz senzorul d, banda va fi oprit i se ateapt
ca bagajul s fie preluat de pe band pentru a reporni banda i a ridica
bariera. Dac timp de 2 minute nu apare nici un bagaj n dreptul senzorului
s, banda va fi oprit iar repornirea se va face de la buton.

Elemente de execuie:
motorul benzii transportoare
motorul barierei
Elemente de msur:
dou limitatoare de curs
un senzor de prezen
un detector de metal
2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un automat programabil de tip PEP
Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde dou
programe conform figurii 9.2.

Fig.9.2. Structura proiectului ISaGRAF

Dicionarul de variabile globale:


Variabile de intrare booleene:
o s:
senzor de prezen bagaje
o d:
senzor detecie metal
o lsus: limitator de curs sus
o ljos: limitator de curs jos
o B:
buton de pornire

Variabile de ieire booleene:


o MT: comand banda transportoare
o Msus: comand bariera sus
o Mjos: comand bariera jos

Variabil intern de tip boolean:


o var1: necesar funciei REDGE

Program bariera:

Program banda:

Observaii:
Se observ ca testarea impulsului de la butonul B este facut
folosind funcia REDGE, deoarece trebuie depistat tranziia
strii butonului i nu starea lui la un moment dat
S-au folosit 2 programe ce ruleaz n paralel ntruct bariera
i banda transportoare funcioneaz independent i nu pot fi
gestionate in aceeai diagram
Propuneri:
S se construiasc diagrama Ladder care simuleaz acest
proiect ISaGRAF
\

Problema 10: Sortarea a patru tipuri de piese


1. Descrierea sistemului i a procesului
Componentele sistemului sunt:
un motor al benzii transportoare;
un senzor prezen pies (pentru detecie);
un cititor cod bare cu ieire pe doi bii;
4 senzori de prezen pies n dreptul clapetelor;
4 clapete comandate digital (cu delay);
un buton pornire band.

Fig.10.1. Sortarea a patru tipuri de piese

Scopul aplicaiei este de a sorta 4 tipuri de piese care vin pe o band


transportoare. Iniial pe band nu se afl nici o pies iar banda este oprit.
Aplicaia pornete prin apsarea butonului. Cnd o pies ajunge n dreptul
senzorului de prezen pentru detecie, tipul ei este determinat de ctre
cititorul de bare i transmis prin 2 bii de date. Atunci cnd o pies ajunge
n dreptul clapetei corespunztoare tipului su (ex. pies de tip 1 n dreptul
clapetei 1), banda transportoare trebuie oprit iar piesa evacuat prin
deschiderea i nchiderea clapetei. Comanda clapetei se face printr-o singur
comand digital, care trebuie meninut o perioad de 5 secunde pentru a
asigura deschiderea respectiv nchiderea clapetei.
Elemente de execuie:
motorul benzii transportoare
cele 4 clapete

Elemente de msur:
un dispozitiv de identificare pies
5 senzori de prezen pies
1 buton
2. Soluia de automatizare
Pentru controlul acestei aplicaii se alege un automat programabil de
tip PEP Smart pentru care se dezvolt un proiect ISaGRAF, ce cuprinde 5
programe n seciunea sequential, aa cum este prezentat i n figura 10.2.

Fig.10.2. Structura proiectului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare booleene:


o s_global: ataat senzorului de prezen din poziia de
identificare;
o d1: prima linie de la dispozitivul de identificare;
o d2: a doua linie de la dispozitivul de identificare;
o s1, s2, s3, s4: ataate senzorilor de prezen
o buton: ataat butonului

Variabile de ieire booleene:


o MT: comand banda transportoare;
o C1, C2, C3, C4: comand deschiderea/ nchiderea clapetelor;

Variabile interne booleene:


o vint, vint1, vint2, vint3, vint4: folosite de funciile REDGE

Variabile timer:
o const: tclapeta = t#2s;
Variabile interne de tip integer:
o variabile: rez, tip1, tip2, tip3, index1, index2, index3,
index_cit1, index_cit2, index_cit3, tip_citit1, tip_citit2,
tip_citit3
o constante: sir1=1; sir2=2; sir3=3;

Program identif:

Program Clapeta1:

Program clapeta2:

Program clapeta3:

Program clapeta4:

Observaii:
Soluia adoptat pentru a putea determina exact ce tip de pies
ajunge n dreptul senzorilor a fost de a crea 3 iruri de numere
ntregi, pentru primele 3 clapete (pentru a patra nu mai este necesar
deoarece aici nu pot ajunge dect piese de tipul 4). Fiecare ir este
modificat cnd o pies ajunge n dreptul senzorului de prezen
anterior. Exist cte o variabil index asociat fiecarui ir care indic
prime poziie liber din ir. irurile sunt de tip FIFO, tipul piesei
care se gsete in dreptul unui senzor este citit ntotdeauna de pe

prima poziie a irului asociat. n cazul n care tipul piesei nu


corespunde locaiei, valoarea este scoas din irul respectiv (prin
shiftarea irului) i introdus n prima poziie liber din irul asociat
clapetei urmtoare.

Propuneri:
S se modifice programul pentru situaia n care nu mai exist
senzori de prezen n dreptul clapetelor, cunoscndu-se ns viteza
benzii transportoare i distanele ntre poziia de identificare i cele 4
clapete.

Problema 11: Umplerea automat a unor containere


1.Descrierea procesului
Aplicaia const n umplerea cu lichid a 3 containere (A, B, C) i
evacuarea lor pe o band transportoare. Umplerea containerelor trebuie
fcut n urmtoarea manier:
- containerul 1: 5 secunde cu lichid de tip A;
- containerul 2: 7 secunde cu lichid de tip A i 7 secunde cu lichid de
tip B;
- containerul 3: 3 secunde cu lichid de tip C, 5 secunde cu lichid de tip
B i 8 secunde cu lichid de tip A.

Fig.11.1. Umplerea automat a unor containere


n cadrul sistemului exist o band transportoare 1 pe care vin, unul
dup altul, cele trei containere A, B, C. Primul dintre ele care ajunge la
platform este containerul C, apoi B i ultimul cel de tip A. Cilindrul E este
responsabil cu evacuarea recipienilor cu ajutorul celei de-a doua benzi
transportoare.
Iniierea procesului se face prin pornirea benzii transportoare 1 pe
care sunt aduse containerele. n momentul n care un container de tip C se
gsete pe platform, banda 1 va fi oprit iar cilindrul D va avansa o poziie.
Cnd containerul C activeaz detectorul 2, banda 1 va fi din nou activat iar
cilindrul D va fi oprit; banda 1 se va opri din nou cnd containerul B ajunge

la platform i n consecin cilindrul D va avansa din nou pn cnd


containerul C activeaz detectorul 3 iar containerul B activeaz detectorul 2.
n acest moment banda 1 este repornit pn cnd containerul A atinge
platforma, moment n care banda este oprit. n acel moment cele trei valve
vor fi deschise simultan, fiecare fiind meninut deschis un anumit timp,
astfel nct contaienrul A se va umple cu lichid A timp de 5 secunde,
containerul B cu lichid de tip B timp de 7 secunde iar containerul C timp de
3 secunde cu lichid de tip C. Cnd toate aceste temporizri au expirat,
valvele vor fi nchise, cilindrul E va avansa pentru a evacua containerul A
pn activeaz detectorul 4. n acest moment cilindrul E se retrage. Dup ce
a ajuns n poziia de retragere, cilindrul D va fi retras pn activeaz
detectoarele 1 i 2. Apoi containerele B i C vor fi umplute cu lichid de tip
A, respectiv B, dup care urmeaz evacuarea containerului B. n final
containerul C va fi umplut cu lichid de tip A i va fi evacuat. Dup evacuare
cilindrul D va fi retras i un nou ciclu poate ncepe.
Elemente de execuie:
3 electrovalve;
2 cilindri cu dublu efect;
2 motoare ale benzilor transportoare.
Elemente de msur:
4 detectoare de poziie.
2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un automat programabil de
tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un
program principal.
Dicionarul de variabile globale:

Variabile de intrare booleene:


o poz_A: detectorul de poziie A;
o poz_B: detectorul de poziie B;
o poz_C: detectorul de poziie C;
o lim_4: limitatorul de avans al cilindrului E.
Variabile de ieire booleene:
o banda_1: activare / dezactivare banda 1;
o banda_2: activare / dezactivare banda 2;
o D_avans: avans cilindru D;

o D_retragere: retragere cilindru D;


o E_avans: avans cilindru E;
o E_retragere: retragere cilindru E;
o valva_A: comanda de deschidere/nchidere valva A;
o valva_B: comanda de deschidere/nchidere valva B
o valva_C: comanda de deschidere/nchidere valva C;
Constante de tip Timer:
o TA_container_1: perioada de timp pentru umplerea
containerului 1 cu lichid de tip A
o TB_container_2: perioada de timp pentru umplerea
containerului 2 cu lichid de tip B
o TC_container_3: perioada de timp pentru umplerea
containerului 3 cu lichid de tip C
o TA_container_2: perioada de timp pentru umplerea
containerului 2 cu lichid de tip A
o TB_container_3: perioada de timp pentru umplerea
containerului 3 cu lichid de tip B
o TA_container_3: perioada de timp pentru umplerea
containerului 3 cu lichid de tip A

Programul main:

Deschidere valva A
7

ACTION (P):
valva_A:=TRUE;
END_ACTION;

Deschidere valva B
107

Temporizare
7

GS7.t > TA_container_1;

Etap de ateptare

ACTION (P):
valva_A:=FALSE;
END_ACTION;

ACTION (P):
valva_B:=FALSE;
END_ACTION;

108

Avans cilindru E

Pn n poziia 4
lim_4=TRUE;

Repornire banda 2 i retragere E


10

ACTION (P):
E_retragere:=TRUE;
banda_2:=TRUE;
E_avans:=FALSE;
END_ACTION;
Pn poziia e liber

10

poz_A=FALSE;
Retragere cilindru D

11

ACTION (P):
D_retragere:=TRUE;
END_ACTION;
Pn poziia A i B ocupate

11

poz_A AND poz_B;

Oprire cilindru D
12

12

GS107.t > TB_container_2;

Etap de ateptare

ACTION (P):
E_avans:=TRUE;
END_ACTION;

ACTION (P):
D_retragere:=FALSE;
END_ACTION;

Deschidere valva C
207

Temporizare
107

ACTION (P):
valva_B:=TRUE;
END_ACTION;

ACTION (P):
valva_C:=TRUE;
END_ACTION;
Temporizare

207

GS207.t > TC_container_3;


Etap de ateptare

108

ACTION (P):
valva_C:=FALSE;
END_ACTION;

12

Deschidere valva A
13

ACTION (P):
valva_A:=TRUE;
END_ACTION;

Deschidere valva B
113

Temporizare
13

GS13.t > TA_container_2;

Temporizare
113

Etap de ateptare
ACTION (P):
valva_A:=FALSE;
END_ACTION;

14

14

Avans cilindru E
15

ACTION (P):
E_avans:=TRUE;
END_ACTION;
Pn n poziia 4

15

lim_4=TRUE;
Retragere E

16

ACTION (P):
E_retragere:=TRUE;
E_avans:=FALSE;
END_ACTION;
Pn poziia A e liber

16

poz_A=FALSE;
Retragere cilindru D

17

ACTION (P):
D_retragere:=TRUE;
E_retragere:=FALSE;
END_ACTION;
Pn poziia A ocupat

17

poz_A;

Oprire cilindru D i valva A


18

18

ACTION (P):
D_retragere:=FALSE;
valva_A:=TRUE;
END_ACTION;
Temporizare
GS18.t > TA_container_3;

ACTION (P):
valva_B:=TRUE;
END_ACTION;

GS113.t > TB_container_3;


Etap de ateptare

114

ACTION (P):
valva_B:=FALSE;
END_ACTION;

Observaii:
n cadrul secvenelor de deschidere a valvelor, temporizrile au fost
implementate prin testarea permanent a parametrului GSxxx.t
asociat unei etape. Acest parametru indic timpul de cnd o etap
este activ. O alt variant era folosirea unor variabile de tip Timer.
Umplerea containerelor este facut n paralel cu ajutorul
paralelismului diagramelor SFC.

Problema 12: Controlul unor ui automate aflate la intrarea


ntr-o incint
1. Descrierea aplicaiei
Elementele sistemului de controlat sunt:

dou ui, fiecare dintre ele micat cu ajutorul a cte dou motoare
cu dou sensuri de rotaie (micare stnga dreapta pentru fiecare
u);
cte doi senzori de capt cursa (deschis nchis) pentru fiecare
u;
un senzor de prezen persoan n dreptul uii.

Fig.12.1. Controlul unor ui automate aflate la intrarea ntr-o incint

Funcionarea dorit a sistemului este: iniial uile sunt nchise. Dac


o persoan apare n dreptul uilor, uile vor ncepe s se deschid. Micarea
de deschidere este meninut att timp ct, pentru fiecare u n parte,
senzorul respectiv de deshidere este inactiv.
Dac ambele ui sunt deschise i nu mai exist nicio persoan n
dreptul uii timp de 2 secunde, uile ncep simultan s se nchid. nchiderea
uilor se oprete cnd ambele ajung la capt de curs sau apare o persoan n
dreptul uilor, n timp ce acestea se nchideau. Ele i vor opri nchiderea i
vor ncepe s se deschid.

Elemente de execuie:
Cele 4 motoare ale uilor.
Elemente de msur:
4 limitatoare de curs;
un senzor de prezen persoan.
2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un automat programabil de
tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un
program principal n seciunea Sequential vezi fig. 12.2.

Fig.12.2.Structura proiectului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare booleene:


o prezenta: senzorul de prezen persoan;
o l1_deschis: limitatorul de u 1 deschis;
o l1_inchis: limitatorul de u 1 nchis;
o l2_inchis: limitatorul de u 2 deschis;
o l2_deschis: limitatorul de u 2 nchis.
Variabile de ieire booleene:
o m1_deschidere: comanda de deschidere u 1;
o m1_inchidere: comanda de nchidere u 1;
o m2_deschidere: comanda de deschidere u 2;
o m2_inchidere: comanda de nchidere u 2.

Program main:

Observaii:
nchiderea i deschiderea uilor trebuie facut neaprat intr-un
paralelism deoarece aciunile ncep n acelai moment, se
desfoar independent, dar procesul poate continua numai dup ce
ambele secvene s-au ncheiat.
Etapa 2, aparent inutil deoarece nu are aciuni asociate, a fost
introdus pentru a putea intra n paralelismul de deschidere a uilor
atunci cnd condiia 5 devine adevarat.

Problema 13: Sortarea a dou tipuri de piese pe o band


transportoare
1. Descrierea instalaiei i a procesului
Elementele sistemului sunt:
o band transportoare acionat de un motor cu un singur sens de
rotaie;
3 senzori de prezen pies;
1 senzor de detecie tip pies (activ = piesa de tip 1, inactiv = piesa
de tip 2);
2 pistoane care pot avansa i se pot retrage;
4 limitatoare de curs, cte 2 pentru fiecare piston.

Fig. 13.1. Sortarea a dou tipuri de piese

Pe o band transportoare vin piese de dou tipuri. Iniial pe band nu


se afl nicio pies iar pistoanele sunt retrase. Banda transportoare trebuie
pornit o dat cu aplicaia. Dac o pies ajunge n dreptul senzorului de
prezen s0, banda trebuie oprit iar dup o secund de ateptare pentru
stabilizarea valorii semnalului senzorului de detecie tip pies, piesa poate fi
identificat. Semnalul senzorului de identificare este valid numai cnd o
pies se gsete n dreptul lui s0. Dup identificarea piesei banda va reporni.
Se presupune c doar dou piese pot exista n poriunea de band de
sortare, astfel nct dac o a treia pies apare n dreptul lui s0 n timp ce
piesele anterioare sunt nc neevacuate, banda se va opri, va fi activat o
alarm iar aplicaia se va relua prin apsarea i ridicarea unui buton special
de reset.
O pies va fi evacuat dac ajunge n dreptul senzorului
corespunztor tipului su. Evacuarea unei piese ncepe prin oprirea benzii,

apoi pistonul respectiv avanseaz i se retrage. Dup ncheierea retragerii


pistonului, banda va fi repornit.
Elemente de execuie:
un motor cu un singur sens de rotaie ce acioneaz banda transportoare;
dou pistoane care pot avansa i se pot retrage;
un dispozitiv de semnalizare n caz de eroare.
Senzori i elemente de masur:
3 senzori de prezen pies;
4 limitatoare de curs pentru pistoane;
un dispozitiv de identificare tip pies;
un buton de reset.

2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un automat programabil de
tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde
trei programe n seciunea Sequential conform figurii 13.2.

Fig. 13.2. Structura proiectului ISaGRAF

Dicionarul de variabile globale:

Variabile de intrare booleene:


o tip: semnal de la dispozitivul de identificare;
o prezenta: semnalul de la senzorul de prezen din postul de
identificare pies;
o s1: semnalul senzorului din poziia 1;
o s2: semnalul senzorului din poziia 2;
o l1_avans: semnalul limitatorului de avans al pistonului 1;

o
o
o
o

l2_avans: semnalul limitatorului de avans al pistonului 2;


l1_retragere: semnalul limitatorului de retragere al pistonului 1;
l2_retragere: semnalul limitatorului de retragere al pistonului 2;
reset: semnalul de la butonul de reset.

Variabile de ieire booleene:


o mt: comanda de pornire/ oprire a motorului benzii transportoare;
o P1_avans: comand avans piston 1;
o P1_retragere: comand retragere piston 1;
o P2_avans: comand avans piston 2;
o P2_retragere: comand retragere piston 2;
o eroare: comanda semnalului de eroare.

Variabile interne ntregi:


o v1: folosit pentru memorarea tipului primei piese ce urmeaz a fi
evacuat de ctre pistonul 1;
o v2: folosit pentru memorarea tipului celei de-a doua piese ce
urmeaz a fi evacuat de ctre pistonul 1;
o index: conine numrul de piese aflate pe band nainte de poziia
1;
o nr_piese: conine numrul de piese aflate pe band n drum ctre
poziiile de evacuare.

Variabile interne booleene:


o vprez: necesar funciei REDGE;
o vres: necesar funciei FEDGE;

Program piston1

Program piston2:

Program Identif:
Pornire band
ACTION (P):
mt:=TRUE;
eroare:=FALSE;
index:=0;
nr_piese:=0;
END_ACTION;

Dac senzor prezen activ


REDGE(prezen,vprez);
Oprire band

ACTION (P):
mt:=FALSE;
END_ACTION;

Dac numrul de piese e 2


2

101

Dac numrul de piese e mai mic dect 2


nr_piese < 2;

nr_piese=2;
Activare semnal eroare

ACTION (P):
eroare:=TRUE;
END_ACTION;

102
Atept 1 secund
102

GS102.t > t#1s;

Pn se dezactiveaz reset
3

Identificarea tipului

FEDGE (reset, vres);


103

103

ACTION (P):
IF (index = 1) THEN
IF tip=TRUE THEN
v2:=1;
ELSE v2:=2;
END_IF;
ELSE
IF tip = TRUE THEN
v1:=1;
ELSE v1:=2;
END_IF;
END_IF;
index:=index+1;
nr_piese:=nr_piese+1;
END_ACTION;

Observaii:
Pentru a determina corect tipul piesei care ajunge n dreptul
pistonului 1, au fost folosite 3 variabile: index, v1 i v2;
n programul Identif se observ folosirea funciei FEDGE, necesar
determinrii momentul cnd variabila reset trece din TRUE n
FALSE (corespunde ridicrii butonul dup ce a fost apsat).
Propuneri:
S se modifice programul pentru situaia n care numrul de piese
permis pe band este oarecare n;

Problema 14: Procesul de coacere al biscuiilor


1. Descrierea instalaiei i a procesului
Elementele care compun instalaia sunt:
un cuptor de ardere coninnd:
o un traductor de temperatur ce transmite un semnal analogic
n gama 420 mA, corespunztor unei game de temperaturi
ntre 0500C;
o un injector de gaz, comandat digital (pornete i oprete
flacra);
o banda transportoare
o un senzor prezen biscuit, activ att timp ct prin dreptul su
trece un biscuit;
un senzor de apreciere calitate biscuit, activ doar dac
biscuitul este rebut;
o un macaz care direcioneaz biscuiii, comandat simplu
digital (inactiv traseu biscuit bun, activ traseu biscuit
rebut);

Fig.14.1. Cuptor de ardere

Iniial banda transportoare trebuie pornit. Pe ea vin biscuii. n


interiorul cuptorului temperatura trebuie meninut ntre dou valori Tmin
(230C) i Tmax (290C).
n momentul n care un biscuit trece de senzorul de prezen, trebuie
testat calitatea lui. Dac este rebut, macazul va trece pe traseul rebut pentru
un timp de 5 secunde. Dac vin mai mult de 5 biscuii rebut consecutiv,
prima dat se shifteaz domeniul de temperatur cu 10% (se crete Tmin i
Tmax cu 10%) dac se mai ntmpl i dup aceasta, banda transportoare va

fi oprit i tot procesul se va relua doar la apsarea unui buton de repornire.


La fel i dac temperatura scade sub Tmin_abs (180C).
2. Soluia de automatizare
Pentru controlul acestei aplicaii s-a ales un automat programabil de
tip PEP Smart pentru care s-a dezvoltat un proiect ISaGRAF ce cuprinde un
program printe i dou programe fiu (biscuit i temper) n seciunea
Sequential, plus un program ciclic n seciunea Begin ce realizeaz
conversia din uniti CAN n uniti de msur inginereti.

Fig.14.2. Structura proiectului ISaGRAF

Dicionarul de variabile globale:


Variabile de intrare booleene:
o buton: atasata butonului de repornire ciclu
o s0: atasata senzorului de prezen
o inspectie: atasata senzorului de inspecie biscuii

Variabile de ieire booleene:


o MT: comanda motorului benzii transportoare
o Injector: comanda injectorului
o Macaz: comanda macazului

Variabile de intrare analogice


o Tempcit: ataat traductorului de temperatur

Variabile interne booleene


o Eroare: True dac de 2 ori consecutiv vin 5 bisucii rebut

o Vint: necesar funciei FEDGE

Variabile interne analogice


o Temp: valoarea curent a temperaturii, in grade
o T_min, T_max: valorile limit ale gamei de temperatur
o const Tmin_abs = 180
o nr_bisc.

Program main:

Program temper:

Program biscuit:

Program convers:
temp:= (tempcit -819)*500/ (4096-819)

Observaii:
S-a ales soluia unui proiect cu un program printe i doi fii deoarece
programele trebuie oprite n cazul apariiei unui anumit eveniment
(aici temperatura < temeperatura minim absolut), indiferent ce
etape sunt active la momentul respectiv. O alt soluie, care ar
complica diagramele foarte mult, ar fi testarea evenimentului n toate
etapele unui diagrame SFC.
Testarea faptului c o serie de 5 biscuii rebut apare de 2 ori la rnd
s-a fcut prin gestionarea unei singure variabile booleene, eroare.
S-a folosit funia FEDGE (Falling Edge Detection) deoarece trebuie
testat tranziia strii senzorului s0 din activ n inactiv.

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