Documente Academic
Documente Profesional
Documente Cultură
Ieirile automatelor programabile pot fi de dou tipuri: ieiri sub form de tranzistor i ieiri sub
form de releu (fig. 3). Exist, de obicei trei borne: una la care se cupleaz sursa exterioar,
borna de ieire propriu-zis i borna de legtur cu pmntul. Uneori borna de legtur cu sursa
exterioar este comun pentru mai multe ieiri, legtura fiind fcut n interior. Aceasta se poate
vedea n cataloagele firmei productoare. Activarea unei ieiri sub form de tranzistor are ca
efect deschiderea tranzistorului, dac este alimentat. Sarcina ieirii trebuie s fie alimentat ca n
fig. 3, astfel nct la activarea ieirii s fie legat la sursa de alimentare.
Activarea unei ieiri sub form de releu are ca efect nchiderea contactului acestuia. Sarcina
ieirii trebuie s fie alimentat astfel nct la activarea ieirii s fie legat la surs.
1
constant zecimal:
constant binar:
constant octal:
constant hexazecimal:
constant ASCII:
Adresele de intrare i de ieire prezentate sunt cele implicite alese de sistem, ele pot fi
modificate la configurarea hardware a automatului.
Pentru adresarea indirect, variabilele trebuie declarate fie la Symbols ca variabile globale, fie n
interiorul obiectelor (OB, FB sau FC) ca variabile locale.
Constantele pot fi de tip ntreg sau reale. Constantele de tip ntreg se pot specifica n mai multe
baze, de exemplu:
constant zecimal:
constant binar:
constant octal:
constant hexazecimal:
constant ASCII:
Pentru adresarea indirect variabilele trebuie declarate la Global Variables n pagina Resources sau
n antetul fiecrui program, folosind urmtoarea sintax:
<identificator>
iniial>};
{AT
<adres
direct>}:
<tip>
{:=<valoare
constant zecimal:
constant binar:
constant octal:
constant hexazecimal:
constant ASCII:
Pentru adresarea indirect variabilele trebuie declarate la Global Variables n pagina Resources sau
n antetul fiecrui program, folosind urmtoarea sintax:
<identificator>
iniial>};
{AT
<adres
direct>}:
<tip>
{:=<valoare
constant zecimal:
constant binar:
constant octal:
constant hexazecimal:
constant ASCII:
Atunci cnd se scrie un program n limbajele acceptate de acest pachet software se pot utiliza
dou moduri de adresare: direct i indirect.
Adresarea direct specific aria de memorie, dimensiunea i locaia. Se pot adresa diferite arii de
memorie: V, M-pentru locaii din memoria intern, I-pentru locaii reprezentnd imaginile n
memoria RAM ale intrrilor automatului, Q-pentru locaii reprezentnd imaginile n memoria
RAM ale ieirilor automatului, T-pentru temporizatoare, C-pentru contoare, HC-pentru
contoarele de mare vitez, AC-pentru acumulatoare, L-pentru variabile locale, AQ/AI-pentru
ieirile/intrrile analogice, S-pentru variabilele utilizate pentru mprirea programului n
segmente logice i SM-pentru locaii speciale de memorie, adresate ca bit, octet, cuvnt sau
dublu cuvnt. Pentru aceasta se folosete pe lng arie i terminaia B, pentru octet, W, pentru
cuvnt i D, pentru dublu cuvnt. Locaiile V i M sunt de acelai tip. Amndou sunt n
memoria principal la CPU200. Exist mici diferene n unele aplicaii, de exemplu TD200 are
nevoie de octei M pentru funciile tastelor i de octei V pentru mesaje.
La adresarea pe byte, cuvnt sau dublu cuvnt se specific byte-ul de start al adresei. La
variabilele care ocup mai muli octei se folosete memorarea big-endian byte order*.
Big-endian byte-order nseamn c primul octet este interpretat ca octetul cel mai semnificativ, iar
urmtorii octei sunt n ordinea e la cel mai semnificativ spre cel mai puin semnificativ.
5
Variabilele care ncep cu litera T sunt variabile legate de temporizatoarele (timere) automatului.
Acestea sunt de fapt numrtoare de impulsuri, care au perioade diferite, asociate cu numrul
care urmeaz dup litera T. Valorile perioadei sunt la CPU S7-200 egale cu 1 ms, 10 ms sau 100
ms. Fiecrui timer i se asociaz dou valori:
Ambele valori sunt accesate utiliznd aceeai variabil, compus din litera T urmat de un
numr. Accesul la una din cele dou valori este funcie de context.
Instruciunile cu operanzi pe bit au acces la valoarea de bit, n timp ce instruciunile cu operanzi
pe cuvnt acceseaz valoarea curent (fig. 4).
Variabilele care ncep cu litera C sunt variabile legate de contoarele automatului. Acestea sunt
numrtoare de impulsuri care provin din exterior i care trebuie asociate unei intrri. Fiecrui
contor i se asociaz dou valori:
Ambele valori sunt accesate utiliznd aceeai variabil, compus din liter C urmat de un
numr. Accesul la una din cele dou valori este funcie de context, la fel ca la timere.
Instruciunile cu operanzi pe bit au acces la valoarea de bit, n timp ce instruciunile cu operanzi
pe cuvnt acceseaz valoarea curent.
Contoarele de mare vitez au de asemenea un mod de adresare direct, care se realizeaz prin
folosirea literelor HC, urmate de numrul contorului. Contoarele de mare vitez sunt folosite
pentru evenimente rapide, care nu pot fi controlate n cadrul ciclurilor automatului, adic a
acelora care au schimbri de stare aa de rapide nct pot fi pierdute dac sunt legate de intrrile
obinuite ale automatului. La CPU S7-200 sunt disponibile trei contoare de mare vitez al cror
coninut, pe patru octei, poate fi accesat direct, utiliznd variabilele HC0, HC1 i HC2.
Intrrile acestor contoare sunt de obicei legate la traductoare incrementale, care dau un numr
de impulsuri pe rotaie i un impuls de reset la fiecare rotaie.
HC0 este un contor UP/DOWN, care accept o singur intrare de ceas cu frecvena de
maximum 2 KHz. Intrarea de numrare este legat la I0.0, iar direcia de numrare este setat
6
prin intermediul unui bit special de memorie SM37.1 (Dac este 0, contorul numr direct i
dac este 1 contorul numr invers).
Contoarele HC1 i HC2 sunt contoare de mare vitez, foarte flexibile care pot fi configurate s
funcioneze n 12 moduri. Configuraiile posibile sunt: contoare bidirecionale cu control intern
al direciei de numrare, contoare bidirecionale cu control extern al direciei de numrare,
contoare UP/DOWN cu intrri diferite din exterior pentru numrare direct i invers i
contoare de impulsuri n cuadratur.
nainte de a fi utilizat, un contor de mare vitez, trebuie realizat setarea unor bii din categoria
biilor speciali de memorie, legai de contor. Aceti bii stabilesc nivelul de activare, al resetrii i
startului. Ei sunt SM47.0, pentru HC1 i SM57.0, pentru HC2, pentru reset respectiv SM47.1 i
SM57.1 pentru start. Dup setarea acestor bii contorul trebuie configurat i validat.
Configurarea se realizeaz prin alegerea unuia din cele 12 moduri de lucru posibile. Se utilizeaz
pentru aceasta instruciuni din setul de instruciuni al automatului.
Diagramele de semnale i alte indicaii n legtur cu modul de utilizare al contoarelor de mare
vitez se gsesc n manualele firmei productoare.
Acumulatorii sunt dispozitive care pot fi utilizate ca memorii. Acetia se pot utiliza pentru
transferul datelor ctre proceduri. La CPU S7-200 exist patru acumulatori (AC0, AC1, AC2,
AC3). Un acumulator poate fi adresat i setat ca octet, cuvnt sau dublu cuvnt, n funcie de
instruciunea utilizat.
Variabilele care ncep cu literele SM sunt asociate biilor speciali de memorie. Acetia sunt un
mijloc de comunicare ntre CPU i program, fiind utilizai pentru selectarea i controlul unor
funcii speciale:
Pentru mai multe detalii se poate consulta help-ul programului Step 7 MicroWIN 32 sau
manualele firmei.
Bitul special de memorie SM0.1 este 1 n primul ciclu i 0 n celelalte cicluri. El este utilizat la
pentru introducerea marcajului iniial. n cadrul unui program n Ladder Diagram (LAD),
introducerea marcajului iniial se va face ca n fig. 5.
Se observ c transferul marcajului iniial n locaiile corespunztoare (aici MB0) se face numai
n primul ciclu, deoarece validarea blocului de transfer n memorie a vectorului I0 este realizat
numai n primul ciclu.
La automatul S7-200 este posibil adresarea prin intermediul pointerilor care se numete adresare
indirect. Acest lucru este posibil pentru ariile de memorie de tip I, Q, M, V, T, C. Valorile pe bit
sau analogice nu pot fi adresate indirect.
7
Pentru a adresa o locaie n mod indirect trebuie creat mai nti un pointer ctre acea locaie. La
CPU S7-200, pointerii sunt locaii de memorie pe dublu cuvnt, care conin adrese ale altei
locaii de memorie. Pentru pointeri se pot folosi doar locaiile de tip V i acumulatorii. Un
pointer se creeaz mutnd adresa unei locaii de memorie ntr-o alt locaie. La mutare,
operandul care va reprezenta pointerul este precedat de caracterul &. n cazul n care se dorete
accesarea unei valori specificate printr-un pointer se folosete caracterul * n faa operandului.
Utilizarea adresrii indirecte este ilustrat n exemplul din fig. 6.
Asupra pointerilor se pot efectua operaii aritmetice. Dac, n programul de mai sus, se
intercaleaz instruciunea +D +4, AC1, atunci programul de mai sus va conduce la
transferul n AC0 a datelor de la adresa VB104.
n continuare vom descrie modul de lucru cu versiunea 4.0 a programului de consol STEP 7
MicroWIN 32. Aceast versiune are o serie de mbuntiri fa de versiunile anterioare printre
care amintim: posibilitatea configurrii aplicaiilor cu noile tipuri de automate din seria 22x,
posibilitatea configurrii unor reele Modbus, ASi i Ethernet, posibilitatea utilizrii unor vrjitori
(Wizard) pentru configurare etc.
n acest paragraf nu ne propunem s prezentm numai modul de realizare a unui program,
utiliznd cea mai simpl legtur, realizat printr-un cablu cu convertor de reea serial. Vom
presupune deci, c programul este instalat i c un anumit tip de automat din seria S7-200 este
legat prin intermediul unui cablu cu convertor de la RS-232 la RS-485 la interfaa serial a
calculatorului.
La pornirea programului pe ecran va apare interfaa din fig. 7. Fereastra conine diferite
componente ale mediului. Cea mai mare parte a spaiului de lucru este rezervat ferestrei de
editare, a arborelui de instruciuni i ferestrei de navigare. Fereastra de ieire n care se afieaz o
serie de informaii asupra operaiilor pe care le execut programul i eventualele erori de
compilare. Fereastra de instruciuni mai conine i fereastra arborelui proiectului. Aceasta
permite schimbarea n fereastra de editare a editorului de program, a editorului tabelei de
simboluri, a editorului tabelei de stare, a editorului de blocuri de date. Aceste ferestre se pot
maximiza, minimiza sau cascada. Lansarea diferitelor editoare este posibil i din fereastra de
navigare.
Fereastra editorului de program este o fereastr de editor de semigrafic sau text n funcie de
tipul editorului lansat i de limbajul ales pentru editare.
Primul lucru care trebuie fcut este setarea comunicaiei ntre program i automat. nainte de a
seta comunicaia cu programul de consol se va avea n vedere realizarea prin intermediul
comutatoarelor de pe convertor a vitezei de transmisie dorite.
Pentru a ajunge n fereastra de setare a comunicaiei, exist mai multe ci:
La oricare cale aleas va apare fereastra Communication. Aceasta arat ca n fig. 8. Dac se apas
butonul Set PG/PC Interface, n care se poate alege interfaa adecvat (n cazul nostru PC/PPI
cable), iar prin apsarea butonului Properties se pot seta proprieti pentru interfaa selectat.
Aceste proprieti trebuie s coincid cu cele ale cablului de legtur i portului la care este
conectat acesta.
Dup realizarea setrilor dorite, la revenirea n fereastra din fig. 8 parametrii de comunicaie vor
fi modificai corespunztor, iar prin efectuarea unui dublu clic n fereastr se va realiza i
vizualiza legtura cu automatul. Cu aceasta faza de setare a comunicaiei se consider ncheiat
Se poate realiza o editare a programului ntr-unul din limbajele STL, LAD sau FBD. Comutarea
ntre acestea este posibil chiar n timpul editrii din meniul View. Deoarece scrierea unui
program n LAD este mai comod dect n limbajul STL, vom descrie n cele ce urmeaz numai
programarea n LAD i vom face numai unele precizri asupra programrii n FDB, care a
devenit mai bine implementat n aceast versiune.
Un program n LAD este alctuit din una sau mai multe reele. Fereastra editorului LAD este
mprit n celule. n fiecare celul poate fi plasat o instruciune, poate fi scris un operand al
instruciunii (parametru) sau poate fi plasat o linie de legtur orizontal sau vertical.
Linia de alimentare stng este prezent n fiecare reea, iar linia de alimentare dreapt nu exist.
Construirea unei reele se face prin plasarea n celulele din suprafaa editorului a unui obiect al
limbajului. Plasarea se poate face n mai multe moduri. Cel mai comod este alegerea obiectului
din arborele de instruciuni i realizarea unui dublu clic pe acesta.
Orice obiect plasat are unul sau mai muli parametri pe care programatorul trebuie s-i seteze
nainte de compilarea programului. Recomandat este ca parametrizarea s se realizeze imediat
dup plasarea obiectului. Pentru a realiza parametrizarea se utilizeaz tastatura, dup ce n
prealabil se selecteaz celula pentru parametru. Orice parametrizare trebuie realizat n
10
Utilizarea subrutinelor ntr-un program este util pentru mprirea acestuia n mai multe pri
mai mici, mai uor de gestionat i documentat. n acest fel se obin performane mai bune n
programare. Iniial un program are n componen o subrutin (SUBR_0) i o rutin de
ntrerupere (INT_0). Pentru scrierea instruciunilor acestora se selecteaz ferestrele
corespunztoare din editorul de program.
Pentru a crea o nou subrutin se poate realiza un clic dreapta n fereastra de editare i apoi se
alege Insert Subroutine.
ntreruperile sunt generate de evenimente. naintea apelului unei rutine de ntrerupere trebuie
stabilit o asociere ntre eveniment i segmentul de program, care se execut atunci cnd
evenimentul apare. Pentru aceasta se folosete instruciunea ATCH (fig. 9).
Invalidarea acestei asocieri se realizeaz cu instruciunea DTCH (fig. 10), care realizeaz
dezactivarea ntreruperii. Pentru a crea o nou rutin de ntrerupere se poate realiza un clic
dreapta n fereastra de editare i apoi se alege Insert Interrupt. Numrul evenimentului asociat
unei ntreruperi este funcie de tipul automatului folosit. n help-ul programului Step 7
MicroWin se gsesc tabele de asociere a evenimentelor cu numere. De asemenea sunt precizate
n aceste tabele i prioritile asociate acestor ntreruperi.
11
Servirea cererilor de ntrerupere multiple se face n tehnica LIFO i n funcie de prioriti. Stiva
LIFO are 128 locaii. Din momentul n care ncepe execuia unei rutine de ntrerupere ea nu mai
poate fi ntrerupt dect de o ntrerupere cu prioritate mai mare.
Versiunea 4.0 a programului are un editor FBD mai bine pus la punct dect versiunile
anterioare. La fel ca i editorul LAD, editorul FBD este semi-grafic bazat pe reele i celule n
care se pot introduce blocuri i parametri. Nu mai exist linii de alimentare i legarea blocurilor
se face automat sau manual, n acest ultim caz utilizndu-se Line Down, Line Up, Line Right i
Line Left de pe bara de scule. Legarea manual este destul de greoaie.
Pentru a putea utiliza bistabilele R-S i S-R trebuie ca n ToolsOptionsGeneral s fie selectat
Programming Mode: IEC 1131-3 i Mnemonic SetInternational, ca n fig. 11.
n fig. 12 este prezentat o tabel de variabile globale, iar n fig. 13 modul n care aceast tabel
este reflectat n programul MAIN.
12
Fiecare unitate de program (POU) a unui proiect are propria sa tabel de variabile locale de 64
octei de tip L. Aceast tabel definete variabile cu domeniu de vizibilitate restrns la unitatea
de program respectiv. Utilizarea variabilelor locale este recomandat atunci cnd se dorete
elaborarea unor subrutine generale, utilizabile i n alte programe.
Dac este vorba de subrutine atunci variabilele locale pot fi de mai multe tipuri:
13
1
255, 233
La compilare sunt specificate erorile i din Data Block. Dac n fereastra de ieire se realizeaz un
dublu clic pe eroare, se deschide fereastra i cursorul este poziionat pe acea eroare.
Dac se alege PLC Create Data Block from RAM, valorile curente din RAM sunt introduse n
blocul de date. Pentru aceasta trebuie ca automatul s fie conectat la PC i s fie n modul
STOP.
n pagina Input Filters se pot realiza parametrizri ale filtrelor digitale de pe intrrile automatului.
Parametrizarea unui filtru digital nseamn stabilirea timpului ct un semnal de intrare trebuie s
rmn activ pentru a fi acceptat ca valid. n felul acesta, un astfel de filtru rejectez zgomotele
care apar pe linii de intrare impunnd condiia ca acestea s rmn stabile un timp nainte da a
fi acceptate de automat.
n pagina Analogue Input Filters, dac automatul are module de intrri analogice, se poate seta o
filtrare software a anumitor intrri. Filtrarea software se realizeaz prin medierea unui numr de
eantioane de pe intrarea analogic.
15
Filtrul realizeaz modificarea unei intrri analogice la ultima valoare de intrare, dac aceasta
depete o valoare numit band moart (dead band), fa de valoarea medie. Numrul de
eantioane i banda moart se stabilete pentru toate intrrile care se bifeaz n pagin.
n pagina Pulse Catch Bits se poate realiza gestionarea impulsurilor scurte de pe intrrile
automatului. Pe intrrile automatului pot apare impulsuri scurte a cror schimbare de stare i
revenirea n starea iniial nu poate fi sesizat de automat deoarece au loc ntr-un timp mai scurt
dect durata ciclului automatului. Modelele CPU-22x permit prin aceste setri prelungirea
impulsului pn la ciclul urmtor, astfel nct s fie citite n faza PIIT (Process Image Input Table) a
noului ciclu. n pagin trebuie efectuat bifarea intrrilor care s realizeze prelungirea
impulsului. Acest lucru nu poate fi realizat la modelele CPU-21x.
n pagina Communication Port(s) se poate realiza schimbarea adresei automatului i a vitezei de
comunicaie. Valorile implicite ale adresei i vitezei sunt 2 respectiv 9600 bps.
Toate modificrile fcute n fereastra System Block devin operaionale dup ncrcarea acestuia n
automat.
cuprinde mai multe tipuri de uniti centrale. Pentru realizarea unui program cu aceast serie
sunt necesare, n afara automatului, de un calculator PC, de mediul de programare Step 7
Manager i un cablu de comunicaie ntre PC i automat.
Un automat S7-300 const dintr-un modul CPU, singur sau cu mai multe extensii. Un modul
CPU este alctuit dintr-o unitate central, surs i intrri/ieiri, ntr-o structur compact. Un
modul CPU are o serie de LED-uri de stare (RUN, STOP) i de vizualizare a strii intrrilor i
ieirilor.
Step 7 Manager este un pachet software pentru programarea i configurarea automatelor
programabile din seria SIEMENS S7-300 i S7-400, crearea i depanarea programelor i
configurarea i conectarea n reea a automatelor. Acest program de consol ine seama de
particularitile hardware i software ale automatelor din aceast clas. Aceste particulariti vor
fi analizate n cele ce urmeaz.
Pe un automat programabil S7-300, ca de altfel toate automatele, se execut dou tipuri de
programe:
Sistemul de operare;
Programele utilizator.
Specific acestor automate este modul cum sunt organizate programele utilizator. Automatul din
clasa S7-300, are un sistem de operare care conine toate funciile i secvenele care nu sunt
asociate cu un program de control specific. Sarcinile sistemului de operare, la automatele din
clasa S7-300, sunt:
Programul utilizator este creat cu scopul rezolvrii unor sarcini specifice ale unei automatizri.
n STEP 7 se poate realiza structurarea unui program utilizator, prin mprirea lui n pri de
sine stttoare numite blocuri. Acest lucru favorizeaz nelegerea uoar a programelor i
realizarea cu uurin a modificrilor. Programul utilizator este alctuit din blocuri, instruciuni
i adrese. nainte ca un bloc s fie procesat el trebuie apelat. Apelarea blocurilor de tip OB se
face de ctre sistemul de operare, iar apelarea celorlalte tipuri se face din interiorul blocurilor
scrise de utilizator, n mod asemntor cu apelarea unei rutine. Principalele blocuri ale unui
program sunt urmtoarele:
OB (Organization Block) este interfaa ntre sistemul de operare i programul utilizator. Acest
bloc este apelat de ctre SO ca urmare a generrii unei ntreruperi ciclice sau a altor tipuri de
ntreruperi, cum este, de exemplu, ntreruperea generat la pornirea automatului. De asemenea
blocurile OB gestioneaz rspunsul la erori. De cele mai multe ori tipul predominant de
program executat de automat este cel ciclic (blocul OB1). Aceasta nseamn c SO apeleaz n
mod ciclic blocul OB1 pentru fiecare execuie a programului scris de utilizator. Programul ciclic
poate fi ntrerupt de evenimente (ntreruperi). Dac un astfel de eveniment are loc, blocul care
se execut este ntrerupt, la terminarea comenzii care se executa, i un alt OB, acela care este
desemnat pentru ntreruperea respectiv, este apelat. Lista blocurilor de tip OB, i a
ntreruperilor care le apeleaz, pentru automatele din clasa S7-300 este dat n Tab. 1. Nu toate
automatele accept toate ntreruperile din aceast list.
17
NUMELE PROGRAMULUI
Programul ciclic
ntreruperi de tip Time of day
ntreruperi de timp
ntreruperi ciclice (1 ms-1min)
ntreruperi hardware
Erori asincrone
NUMELE BLOCULUI
OB1
OB10-OB17
OB20-OB23
OB30-OB38
OB40-OB47
OB80 Eroare de timp
OB81 Eroare de surs
OB82 Diagnostic
OB83 Inserare modul
OB84 Hardware
OB85 Prioritate
OB86 Rack
OB87 Comunicare
Ciclu background
OB90
Pornire sau trecerea comutatorului OB100
Din START n STOP
OB101
PRIORITATEA
1
2
3-6
7-15
16-23
26
28
29
27
27
Pentru informaii asupra blocurilor care pot fi folosite pentru un automat dat se utilizeaz n
STEP 7 Manager opiunea Properties, aa cum se va prezenta mai jos. De asemenea trebuie
precizat c prioritile pentru automatele din clasa S7-300 sunt fixe, ele pot fi modificate doar
pentru clasa S7-400. Fiecare bloc OB primete informaii de start ntr-un cmp de 20 octei,
care sunt transferai ctre el de ctre SO. Aceste informaii specific: evenimentul care a pornit
blocul, data i ora la care a pornit, eroarea care a avut loc i altele (de exemplu la o ntrerupere
hardware se specific adresa modulului care a generat ntreruperea).
La pornirea automatului, dup execuia blocului de pornire fr erori, se va executa blocul OB1.
Programul executat cuprinde: pornirea monitorizrii timpului de ciclu, citirea intrrilor i
actualizarea PIIT (Process Image Input Table), procesarea instruciunilor din program (instruciuni
coninute n OB1 i alte blocuri apelate de el), scrierea la ieiri a valorilor din PIOT (Process Image
Output Table), sarcini ale sistemului de operare (primirea i transmiterea datelor globale etc.)
Programul ciclic OB1 poate fi ntrerupt de: o alt ntrerupere, comanda de STOP, cderea
alimentrii, apariia unei erori. Se poate realiza o configurare a tipurilor de OB care ntrerup
ciclul OB1, fie prin intermediul lui STEP 7, fie prin apelarea unei funcii de sistem.
Primul ciclu al unui automat ncepe cu OB100, aa cum se vede n fig. 19. Blocul OB100 poate fi
folosit de ctre programatori pentru realizarea unor operaii unice, cum este operaia de
introducere a marcajului iniial n cazul n care se utilizeaz metoda activrii i dezactivrii
sincrone pentru proiectarea programului.
Timpul de ciclu (scan time) este timpul necesar sistemului de operare pentru execuia programului
ciclic i a tuturor blocurilor care ntrerup programul ciclic. Aa cum se vede n fig. 20 timpul de
ciclu nu este acelai la fiecare ciclu.
18
Dac utilizatorul a specificat un timp minim pentru ciclu (Tmin) i acesta este mai mare dect
timpul necesar procesrii instruciunilor, restul de timp va fi utilizat pentru executarea unui bloc
special de fond (background) numit OB90 (fig. 21). Acesta are o caracteristic special si anume
aceea c timpul su de execuie nu este monitorizat de sistemul de operare, aa c nu se pot
programa bucle de lungime mare n acest bloc.
Partea din programele utilizator care nu se execut ciclic va fi plasat n blocuri care nu se
execut dect n anumite condiii. Aceste blocuri pot fi activate de diferite evenimente:
evenimente care au loc la o anumit dat i or (time of day interrupt), evenimente care au loc cu o
ntrziere setabil sau evenimente ciclice.
n STEP 7 Manager sunt opt blocuri de tip Time-of-day interrupt. Blocurile au numere de la OB10
la OB17. Utilizatorul poate programa aceste blocuri pentru a fi procesate: o singur dat, la
fiecare minut, la fiecare or, o dat pe zi, o dat pe sptmn, o dat pe lun sau o dat pe an.
Pentru pornirea ntreruperilor de acest tip trebuie mai nti ca acestea s fie setate, iar apoi s fie
activate. Exist trei opiuni pentru pornire:
Pornirea automat a acestora. Acest lucru are loc dac se seteaz i se activeaz
ntreruperile time-of-day din STEP 7 Manager. Se pot alege una din urmtoarele
opiuni: Non (n acest caz nici un bloc OB nu este procesat, chiar dac este ncrcat
n automat), activated once (n acest caz ntreruperile time-of-day sunt dezactivate dup
procesarea lor o singur dat) sau activate o dat pe minut, or, zi, lun, an;
Setarea din STEP 7 Manager i activarea prin apelul funciei de sistem SFC30
(ACT_TINT) din programul utilizator;
Setarea prin apelarea funciei de sistem SFC28 (SET_TINT) i activarea prin apelul
funciei de sistem SFC30 (ACT_TINT) din programul utilizator.
n Step 7 Manager sunt patru blocuri de tip time-delay interrupt (OB20 la OB23), fiecare din ele
fiind procesat dup o ntrziere care poate fi setat. Blocurile sunt pornite prin apelul funciei de
sistem SFC32 (SRT_DINT), timpul de ntrziere fiind un parametru al funciei. Atunci cnd se
apeleaz SFC32, trebuie precizat numrul blocului OB, timpul n milisecunde i un identificator
specific dat de utilizator.
19
n afara apelului funciei SFC32, utilizatorul mai trebuie s scrie blocul corespunztor (OB20
OB23) i s-l ncarce ca parte a programului su. Aceste ntreruperi sunt procesate doar n
modul RUN. Se poate realiza o anulare a ntreruperii, dac ea nu a fost procesat, prin apelul
funciei SFC33 (CAN_DINT). Utiliznd funcia SFC34 (QRY_DINT) se poate afla starea
ntreruperii. Utilizatorul poate dezactiva sau ntrzia ntreruperile de acest tip prin apelul
funciilor SFC39 i SFC42. n Step 7 Manager sunt nou ntreruperi ciclice prin intermediul
crora se poate realiza pornirea unor programe la intervale de timp echidistante i predefinite.
Aceste intervale de timp pot fi modificate. n Step 7 Manager sunt cel mult opt ntreruperi
hardware independente una de alta fiecare din ele avnd propriul bloc OB. Prin intermediul lui
STEP 7 Manager se furnizeaz urmtoarele informaii pentru fiecare semnal care este considerat
generator de ntrerupere:
Dac apare o ntrerupere hardware, sistemul de operare identific ntreruperea determinnd care
bloc OB este asociat ntreruperii, iar n cazul n care nici o ntrerupere de prioritate mai mare nu
este activ, l activeaz. Confirmarea executrii ntreruperii are loc dup procesarea blocului.
Utilizatorul poate dezactiva sau ntrzia ntreruperile de acest tip prin apelul funciilor SFC39 i
SFC42.
Trebuie ca utilizatorul s se asigure c fiecare OB ciclic ruleaz un timp mai mic dect intervalul de timp la care
apare alt ntrerupere ciclic. Dac procesarea blocului nu este complet i s-a scurs un timp, astfel nct blocul
trebuie din nou apelat, se apeleaz blocul de eroare OB80.
20
Programul de consol STEP 7 Manager ine seama de particularitile hardware i software ale
acestor automate. Se va descrie modul de lucru cu versiunea 5.4 a acestui program. Ne
propunem, ca mai sus, s analizm modul de realizare a unui program, utiliznd o legtur cu
cablu cu convertor ntre automat i PC-ul unde ruleaz STEP 7 Manager. Vom presupune c
programul este instalat i c pe reeaua serial este legat un automat.
n STEP 7 Manager proiectul este utilizat pentru memorarea datelor i programelor care
realizeaz o automatizare. Acestea se memoreaz ntr-un proiect sub form de obiecte, care sunt
aranjate sub form arborescent, ntr-un mod asemntor cu cel din Windows Explorer. Singura
deosebire este c icoanele obiectelor au o form diferit.
Proiectul este structurat pe mai multe nivele:
Nivelul 1: Proiect;
Nivelul 2: Subreele, staii sau programe;
Nivelul 3: Depinde de obiectele de la nivelul 2.
Obiectul Project este entitatea care conine toate datele despre o soluie de automatizare. Acesta
conine la rndul lui obiectele prezentate n fig.22.
Obiectul Station cuprinde la rndul su obiectele Hardware i Programmable Module. Obiectul
Hardware permite introducerea ntr-un rack a automatului folosit, mpreun cu modulele de
extensie i eventual configurarea unei reele avnd n componen automatul care urmeaz a fi
programat. Obiectul Programmable Module este n acelai timp un obiect, la nivelul Station i un
fiier-obiect, la nivelul Programmable Module. Obiectul Programmable Module conine obiectul S7
Program (M7 Program), care la rndul su conine obiectele Source File i Blocks.
A realiza un proiect n STEP 7 Manager nseamn a crea obiectele, a le seta proprietile dorite
i a scrie programele pentru blocurile componente.
Exist dou ci pentru realizarea unui proiect:
21
Vom descrie n continuare modul manual de creare a unui proiect. Crearea manual a
proiectului presupune alegerea FileNew de unde se ajunge n fereastra din fig. 24, unde se d
un nume proiectului i se alege directorul n care va fi memorat proiectul.
La apsarea butonului OK se revine n fereastra principal, unde se adaug din meniu prin Insert
StationSimatic S300 Station i se ajunge n fereastra din fig. 25, unde se realizeaz un dublu
clic pe Hardware ceea ce are ca efect activarea unei ferestre n care se alege mai nti un rack din
list i ca urmare va apare fereastra din fig. 26.
22
23
Aceast setare poate fi schimbat de utilizator numai dac se lucreaz ONLINE cu automatul.
Se salveaz aceast alegere i se revine n fereastra principal. Proiectul este acum gata, avnd n
componena automatul ales i un singur bloc, blocul OB1.
Introducerea altor blocuri i funcii se poate face din meniu prin alegerea opiunii Insert. Prin
dublu clic asupra unui OB, FB, FC sau a altui element se deschide editorul pentru acel bloc i se
pot realiza programe. Nu exist deosebiri importante ntre editoarele din STEP 7 Manager i
cele din Step 7 MicroWIN.
Dac n fereastra de configurare din fig. 27 se selecteaz automatul ales i se realizeaz un clic
dreapta alegndu-se Object Properties; va apare o fereastr n care se pot realiza o serie de setri ale
unor parametri ai blocurilor de ntreruperi de tip Time-of-Day, Cyclic Interrupts, Hardware Interrupts
precum i alte setri privind comunicaia sau memoriile retentive.
Pentru tipul de automat ales sunt active numai acele elemente care sunt implementate n
sistemul de operare al automatului respectiv. Celelalte valori, care nu se pot modifica sunt
invalidate. Se vede c n cazul automatului
Se pot realiza de asemenea i schimbri ale adreselor variabilelor de intrare i ieire ale
automatului. Pentru a efectua o astfel de schimbare trebuie selectat slotul n care este montat
modulul respectiv, se realizeaz un clic dreapta i se alege Object Properties... In fereastra care
apare (fig. 29) se pot schimba adresele implicite pentru variabilele de intrare/ieire. n prealabil
trebuie realizat o deselectare a casetei System Default.
Dup efectuarea oricror modificri, care se fac OFF-LINE acestea trebuie salvate n proiect i
apoi ncrcate sub forma unor date de sistem n automat odat cu ncrcarea programului.
24
Fig. 29. Fereastra de schimbare a adreselor implicite pentru un modul al unui modul
Blocurile de tip FB sunt situate ierarhic sub blocurile OB. Ele conin acea parte a programului
care poate fi apelat de mai multe ori n OB1. Parametrii formali i statici ai unui bloc FB sunt
salvai n blocuri de date DB separate.
Crearea unui bloc FB se face din fereastra principal prin alegerea opiunii InsertS7 Block
Function Block, dup care n fereastra din fig. 30 se introduce numele funciei, limbajul n care va
fi scris funcia i dac este prevzut cu posibiliti de apelare cu mai multe instane.
25
Dup crearea blocului se execut dublu clic pe bloc, ceea ce deschide editorul blocului.
Fereastra editorului conine, n partea de sus un tabel pentru declararea variabilelor locale i n
partea de jos poriunea pentru scrierea codului. nainte de a putea fi apelat un bloc FB, acestuia
trebuie s i se defineasc i s introduc parametrii n tabelul variabilelor locale. Toi parametrii
de intrare/ieire specifici ai blocului trebuie transferai din/n programul apelant.
Parametrii unui bloc FB sunt de cinci feluri: IN - n care caz reprezint intrri ale blocului, OUT
- n care caz reprezint ieiri ale blocului, IN_OUT - n care caz sunt parametrii de
intrare/ieire, STAT - n care caz sunt parametri statici i TEMP - n care caz sunt parametrii
temporari.
n timpul introducerii variabilelor va fi rezervat un spaiu n stiva local, pentru variabilele
temporare, iar pentru variabilele de intrare/ieire i statice n instana blocului de date cu care
blocul va fi asociat ulterior.
Dup stabilirea variabilelor se poate trece la scrierea codului, care se poate face n oricare din
limbajele suportate de mediu. Evident c scrierea codului unei funcii trebuie precedat de o
analiz a caietului de sarcini al automatizrii.
Un bloc este apelat n mai multe instane. O instan a unui bloc este considerat structura
compus din blocul FB i blocul DB asociat lui.
Dac limbajul selectat este GRAPH atunci se va utiliza un editor special Step7 GRAPH, care
implementeaz limbajul SFC pe care l vom prezenta n detaliu mai jos. Funciile create cu acest
editor nu pot avea mai multe instane. Apelarea lor se va face cu parametrii specifici acestui tip
de programare.
Pentru a crea o instan a unui bloc trebuie creat i asociat acestuia, blocul de date. Blocul de
date este generat automat de ctre compilator la introducerea apelului de funcie, numele
acestuia trebuie stabilit de ctre programator. n cadrul unei instane a blocului de date se
stabilesc valori iniiale diferite pentru parametrii blocului.
Spre deosebire de FB, funciile FC sunt funcii care nu au memorie proprie, parametrii actuali
sunt salvai n stiva proprie. Crearea unui bloc FC se face n mod asemntor cu crearea unui
bloc FB. Spre deosebire de FB, funciile FC nu pot fi create n limbajul SFC.
Blocurile de date sunt utilizate pentru memorarea unor date ale programului utilizator. Spre
deosebire de variabilele locale, care sunt memorate n stiva local, datele din DB nu sunt terse
atunci cnd blocul este nchis (dup ce blocul a fost executat).
Exist dou tipuri de blocuri de date: blocuri de date de tip instan i blocuri de date partajate.
Crearea unui bloc de date se face cu opiunea: InsertS7 Block Data Block. Ca urmare a
alegerii acestei opiuni se deschide o fereastra, n care se poate alege numele blocului i tipul
acestuia.
Blocurile de date din STEP 7 Manager nu pot conine instruciuni. Ele conin doar seciunea de
declarare a variabilelor. Fiecare FB, FC sau OB poate citi sau scrie date n DB partajate.
Deschiderea unui bloc de date se poate face n dou moduri: Declaration View i Data View.
Modul Declaration View este utilizat pentru determinarea structurii blocului de date, iar modul
Data View, pentru modificarea datelor. Un bloc de date de tip instan este asociat fiecrui apel
de FB. Parametrii actuali i datele statice sunt salvai ntr-o instan a blocului de date. nainte
de a crea un bloc de date de tip instan trebuie creat blocul FB corespunztor. Dac acest lucru
nu se ntmpl STEP 7 Manager l creeaz n mod automat.
26
Blocurile de date partajate pot fi utilizate de toate blocurile unui program. Valorile iniiale ale
variabilelor dintr-un bloc de date sunt valorile care sunt ncrcate n automat la ncrcarea
blocului i la prima modificare, sunt alterate. La o nou pornire a automatului nu se revine la
valoarea iniial a variabilei. Acest lucru se ntmpl numai dac se rencarc blocul de date.
Blocurile de date de tip partajat conin structuri care pot fi definite de programator la crearea
blocului. Aceste structuri pot conine tipuri de date elementare (bool, byte, word etc.) sau tipuri
complexe (DATE_AND_TIME, STRING, ARRAY, STRUCT) sau tipuri de date definite de
utilizator). Adresarea unei variabile dintr-un bloc de date partajat se face cu regulile adresrii
elementelor unei structuri, numele structurii fiind numele blocului de date. Blocurile de date de
tip instan conin variabile simple care reprezint parametrii actuali ai blocurilor de tip FB i
variabilele statice ale acestora.
Observaie:
Tehnica de programare ncurajat de acest mod de organizare a sistemului de operare a
programului Step7 Manager este bazat pe mprirea automatizrii n taskuri individule.
La rndul lor aceste taskuri pot fi mprite n sub-taskuri. Tehnica de programare se
bazeaz pe identificarea relaiilor i interblocrilor ntre acestea, ceea ce conduce la
complicaii greu de depit pentru programatorii nceptori, cernd mult experien.
Programul Step7 Manager permite utilizarea metodelor structurate de programare,
pornind de la graful automatizrii, care sunt mai indicat pentru programatorii cu mai
puin experien.
27
n fereastra care se deschide, va aprea un graf format dintr-o singur etap (etapa iniial) i o
tranziie (fig. 32.).
Fig. 32. Iniial funcia bloc conine o etap (S1 Step1) i o tranziie (T1)
Exist trei moduri n care poate fi vizualizat funcia bloc, acestea pot fi selectate din meniul
View, i anume:
Funciile de parcurgere a tranziiilor pot fi programate n limbajele LAD sau FBD. Acest aspect
poate fi setat folosind opiunea Options Application Settings(fig. 33.). La pagina General poate
fi setat aceast opiune (n zona Conditions in New Blocks). O alt opiune important se gsete
la pagina Compile/Save, unde poate fi setat varianta n care va fi introdus funcia bloc atunci
cnd aceasta este apelat. Deoarece un graf este o funcie bloc i nu un program (bloc
organizaional OB), pentru ca acesta s se execute, el trebuie mai nti apelat (iniializat). De
aceea funcia bloc corespunztoare grafului trebuie apelat ntr-un bloc organizaional (de obicei
OB1) i numai apoi graful va evolua conform regulilor generale de evoluie a unui graf. Dac la
apelarea funciei bloc, nu se dorete dect iniializarea grafului, atunci la pagina Compile/Save,
seciunea FB Parameters trebuie aleas opiunea Minimum. n acest fel la apelare, funcia bloc va
avea o singur intrare i nici o ieire (pe lng intrarea EN i ieirea ENO). Acestei intrri
(denumit INIT_SQ) trebuie s i se transmit valoarea 1 logic atunci cnd se dorete
iniializarea grafului.
28
Simbol
Semnificaie
Semnificaie
Contact normal deschis
Contact normal nchis
Deschiderea unei ramuri paralele (pentru realizarea unei condiii OR)
nchiderea unei ramuri paralele
Comparator
Comparator ntre timpul de activitate al etapei (timpul scurs de la ultima
activare a etapei) i un interval de timp oarecare. Se folosete operandul
Stepi.T.
Comparator ntre timpul de activitate al etapei (timpul scurs de la ultima
activare a etapei, respectiv de la ultima perturbaie aprut) i un interval de
timp oarecare. Se folosete operandul Stepi.U.
29
Obs.: Ultimele dou comparatoare pot fi realizate i folosind comparatorul simplu, diferena
fiind c n cazul ultimelor dou comparatoare parametrii sunt introdui automat. n figura
urmtoare se prezint modul n care se introduce o condiie de parcurgere a unei tranziii pentru
cazul n care tranziia trebuie parcurs la un anumit timp de la ultima activare a etapei
anterioare.
Se observ faptul c timpul scurs de la ultima activare a unei etape poate fi adresat prin
operandul Stepi.T unde i reprezint numrul etapei. Se poate de asemenea folosi operandul
Stepi.U care reprezint acelai lucru ca i Stepi.T doar c n cazul apariiei unei perturbaii (eroare
de supervizare sau de interblocare), cronometrarea este reluat de la 0. Un al treilea operand
foarte important, utilizat des n condiiile de parcurgere a tranziiilor este Stepi.X care reprezint
variabila boolean asociat etapei i (care este 1 logic dac etapa este activ i 0 logic dac etapa
este inactiv). Ultimul operand de acest gen este Transi.TT. Acest operand boolean este 1 logic
atunci cnd tranziia i are att condiia de validare ct i cea de parcurgere adevrat, respectiv
cnd tranziia este parcurs. n cazul contactelor, operanzii pot fi adrese de intrare, de ieire sau
de memorie intern, sau variabile definite n Symbol Table. n cazul comparatorului se poate
folosi orice operator logic dintre urmtorii: >,<,==,>=,<=,<>.
1.7.3.3. Specificarea aciunilor
n continuare vom descrie modul n care se pot asocia una sau mai multe aciuni unei etape i
tipurile aciunilor. Pentru a se asocia o aciune unei etape, se va selecta dreptunghiul de lng
etap care conine i numele etapei (de exemplu n figura 32 Step 1). Se efectueaz clic-dreapta i
se alege Insert New ElementAction. Ca urmare vor aprea dedesubt dou dreptunghiuri, ca n
figura 35.
n dreptunghiul din stnga se va introduce tipul aciunii, iar n cel din dreapta aciunea propriuzis.
Vom prezenta n tabelul ce urmeaz tipurile de aciuni care sunt disponibile n Step 7 Manager.
Tipul aciunii
N
S
R
D
L
Semnificaie
Aciune nememorat, se execut att timp ct etapa este activ
Aciune memorat (de setare), se va executa pn cnd se realizeaz o
resetare
Aciune memorat (de resetare), aciunea va rmne resetat pn se
realizeaz o setare
Aciune ntrziat, se execut dac etapa este activ, dar numai la un anumit
timp de la activarea etapei
Aciune limitat, se execut dac etapa este activ, dar numai un anumit timp
de la activarea etapei
30
CALL
S1
S0
Aciunea propriu-zis poate fi o zon de memorie de intrare, ieire, memorie intern sau o
variabil declarat n Symbol Table.
n cazul aciunilor ntrziate i limitate, trebuie specificat i un timp sub forma
T#xHxxMxxSxxxMS.
De exemplu:
n acest caz, ieirea Q124.0 va deveni 1 logic la dou secunde de la activarea etapei 1.
n continuare vom prezenta modul n care se utilizeaz un contor n cadrul unui graf. n acest
caz avem patru tipuri de aciuni speciale, care sunt prezentate n urmtorul tabel.
Tipul aciunii
CS
CU
CD
CR
Semnificaie
Contorul este ncrcat cu valoarea iniial
Valoarea contorului este incrementat
Valoarea contorului este decrementat
Contorul este ncrcat cu valoarea zero
Fiecare dintre aceste aciuni se va executa fie la activarea fie la dezactivarea unei etape, ceea ce
nseamn c ele trebuie precedate fie de S1, respectiv de S0.
De exemplu:
Fig. 37. Introducerea unei aciuni de ncrcare cu o anumit valoare (aici 0) a unui contor
n acest caz, contorul C1 este ncrcat cu valoarea 0 (C#0). Apoi dac se dorete parcurgerea
unei tranziii n funcie de valoarea unui contor, este necesar s se compare valoarea contorului
cu o valoare oarecare.
1.7.3.4. Specificaii suplimentare
n cazul n care un program este alctuit din mai multe grafuri interdependente (de exemplu n
cazul n care condiiile de parcurgere a tranziiilor unui graf implic variabilele booleene asociate
etapelor celuilalt graf), atunci cele dou grafuri trebuie incluse n cadrul aceleiai funcii bloc.
Pentru aceasta se efectueaz clic-dreapta n spaiul de lucru i se alege opiunea Insert New
Element Sequencer. n acest fel se pot introduce oricte grafuri paralele.
n cazul n care un graf trebuie s conin mai multe etape iniiale, se va proceda n felul
urmtor: se selecteaz etapa care trebuie s devin etap iniial, se efectueaz clic-dreapta i se
alege opiunea Object Properties, iar aici se bifeaz opiunea Initial step. n acest fel oricte etape ale
unui graf pot deveni etape iniiale.
31
De asemenea n Step 7 Manager se pot specifica o serie de instruciuni permanente (n LAD sau
FBD) care s se execute naintea sau dup executarea grafului. Instruciunile permanente sunt
executate o dat la fiecare ciclu, indiferent de starea grafului. Aceste instruciuni permanente
sunt de dou tipuri: condiii sau apeluri de proceduri. Condiiile sunt de fapt reele n limbajul
LAD. Pentru a introduce instruciuni permanente, trebuie s se selecteze n organizatorul de
obiecte pagina Graphic i apoi una din opiunile:
Fig. 39. Apelarea unei funcii bloc (editat n limbajul GRAPH) n OB1
Observaie: Variabila ini este o variabil care trebuie s devin 1 logic atunci cnd se dorete
aducerea grafului n starea iniial (etapele iniiale ale grafului s devin active). Aceasta se
ntmpl fie la pornirea sistemului, fie dup apariia unei avarii.
Vom descrie n cele ce urmeaz modul de lucru cu versiunea 4.3.1 a programului. Vom
presupune c programul este instalat pe un calculator i c exist o legtur serial ntre AP i
PC prin cablul furnizat de firma ABB.
La lansarea programului AC 1131 apare fereastra programului (fig. 40) care conine urmtoarele
elemente:
Bara de meniu (Menu bar), localizat n partea de sus care conine toate comenzile;
Bara de unelte (Tool bar), care se afl sub bara de meniu i care conine butoane
pentru selectarea rapid a comenzilor;
Organizatorul de obiecte (Object organizer), care este n partea stng i care conine n
partea de jos patru posibiliti de selectare a obiectelor unui program;
Spaiul de lucru (Work space) n care se deschid diferitele editoare ale mediului i
managerul de bibliotec;
Fereastra de mesaje (Message windows), n care apar mesajele mediului de programare,
din care cele mai importante sunt erorile i atenionrile de la compilare;
Bara de stare (Status bar) care conine informaii despre starea curent a programului.
Pentru realizarea unui program care s poat fi ncrcat ntr-un automat ABB este necesar s se
creeze n mediul de programare un proiect.
Proiectul conine urmtoarele obiecte necesare unui program:
Vizualizri (Visualization);
Resurse (Resources).
Funciile, blocurile de funcii i programele sunt POU. Fiecare din ele conine o parte de
declaraii i corpul propriu-zis. Toate variabilele care se utilizeaz ntr-un POU sunt declarate n
zona de declaraii sub forma prezentat mai sus.
Corpul unui POU poate fi scris n oricare din limbajele acceptate de mediu. Un program poate
apela alt program sau o funcie, dar nu este permis apelarea unui program dintr-o funcie. Dac
un program cheam un alt program i n acest mod variabilele din acesta se schimb, atunci
aceste valori sunt memorate pn la un nou apel al programului chiar dac va fi apelat de un alt
POU.
n cadrul programelor exist unul predefinit care are numele PLC_PRG. Fiecare proiect trebuie
s conin acest program special. El este apelat de ctre sistemul de operare al automatului la
fiecare ciclu. tergerea acestui program se poate face numai atunci cnd se realizeaz o
configurare de taskuri, n cazul n care se adopt o strategie multitasking de elaborare a
aplicaiei. Vom preciza aceste lucruri mai jos.
O funcie este un POU, care ntoarce o singur dat. Aceasta poate fi alctuit din mai multe
cmpuri ale unei structuri. Declararea unei funcii nseamn asocierea cu un nume i un tip.
Numele funciei este chiar valoarea ntoars de funcie. Declaraia unei funcii are urmtoarea
sintax:
FUNCTION <nume>:<tip>
<corpul funciei>
END_FUNCTION
Valorile transmise funciei trebuie declarate n partea de declaraii a unei funcii. Pentru o
funcie nu se pot prevedea valori de ieire.
Un Function Block este un POU, care furnizeaz una sau mai multe valori sub forma parametrilor
de ieire. Atunci cnd se declar un Function Block, trebuie s i se precizeze numele, iar valorile
de intrare i de ieire trebuie precizate n partea de declaraii a acestuia.
Etapele pentru crearea i ncrcarea n AP unui proiect sunt urmtoarele:
Crearea unui proiect se face n fereastra principal, alegnd n Object Organizer pagina
POU. Apoi se alege FileNew, din meniul principal. Dup alegerea acestei opiuni
se va deschide fereastra Select CPU (fig. 41). n aceast fereastr trebuie s se aleag
tipul de automat din lista automatelor ABB posibil s fie programate cu mediul de
programare AC 1131. Dup ce se selecteaz automatul i se apas butonul OK, va
apare o alt fereastr New POU (fig. 42). n aceast fereastr se las nemodificat
PLC_PRG, dar se alege limbajul n care acesta va fi scris;
Dup nserarea blocului PLC_PRG se pot vedea urmtoarele obiecte globale, n
fiierul Global variables din pagina Resources:
o Obiectul Systemkonstanten, care conine variabilele sistem. Aceste variabile sunt
folosite pentru setarea bufferelor de transmisie i recepie, n cazul funcionrii
n reea a automatului, monitorizarea taskurilor, monitorizarea funciilor pentru
lucrul n virgul mobil, configurarea intrrilor i ieirilor analogice, configurarea
modului de funcionare a contoarelor de mare vitez. Valorile acestora sunt
iniializate cu valori date. Pentru a schimba configurarea, trebuie modificate
aceste valori, n conformitate cu documentaia pus la dispoziie de firm;
o Obiectul Fehlermerker conine flagurile erorilor de sistem;
34
diferite elemente ale limbajului sunt prezentate n culori diferite. Culorile folosite implicit sunt
urmtoarele:
Principalele comenzi ale editorului se gsesc ntr-un meniu contextual, care poate fi afiat la
apsarea butonului drept al mouse-ului.
Comentariile sunt incluse n secvene speciale (* si *).
Exemplu: (*Acesta este un comentariu.*)
Comentariile sunt permise n toate editoarele de text, n orice loc se dorete, adic n toate
declaraiile din limbajele IL, ST precum i n tipurile de date definite de utilizator. n limbajele
FBD i LD se pot introduce comentarii pentru fiecare reea. Pentru a realiza acest lucru trebuie
selectat reeaua creia i se va ataa comentariul i apoi se alege comanda Insert Comment din
bara de meniuri.
Constantele se identific prin cuvntul cheie CONSTANT i se pot declara local sau global n
felul urmtor:
VAR CONSTANT
<Identifier>:<Type>:=<initialization>;
END_VAR
Exemplu:
VAR CONSTANT
c1 : REAL :=2.86; (* 1. Constant*)
END_VAR
Etape simple, care au asociat o aciune i un flag. Acesta din urm indic dac etapa
este activ. Aciunile unei etape simple pot fi implementate n orice limbaj, prin
realizarea unui dublu clic pe etap. Dac aciunea unei etape simple a fost
implementat atunci va apare un triunghi n colul din dreapta sus al etapei;
Etape IEC, care au asociate una sau mai multe aciuni i un flag care indic starea
etapei. O etap IEC are o aciune ataat, care se gsete ntr-un dreptunghi la
36
dreapta etapei. Se pot aduga mai multe aciuni utiliznd Extras AssociateAction. n
cadrul unei etape aciunile pot avea mai multe atribute, care apar ntr-un dreptunghi
din stnga aciunii::
o N aciune nememorat sau boolean, care este activ att timp ct etapa este
activ;
o S aciune de setare, care aciune memorat. O astfel de aciune rmne activ
pn la o aciune de resetare;
o R aciune de resetare;
o L aciune limitat n timp. O astfel de aciune este activat o perioad limitat
n timp, dac etapa este activ;
o D aciune ntrziat n timp. O astfel de aciune devine activ dup trecerea
unui timp dat dup activarea etapei;
o P aciune n impuls. O astfel de aciune este executat o singur dat la
activarea etapei, sub forma unui puls care dureaz un singur ciclu;
o SD aciune memorat i ntrziat n timp. O astfel de aciune este ntrziat
cu valoarea parametrului SD i va rmne activ pn la efectuarea unei aciuni
de resetare. Setarea aciuni are loc, dup ntrzierea dat, chiar dac etapa de care
este legat nu mai este activ;
o SL aciune memorat i limitat n timp. O astfel de aciune este activat la un
anumit interval de timp de la activarea etapei i este i limitat n timp.
Atributele L, D, SD, SL au nevoie de o valoare ataat care este de forma unei constante de
timp. Aceasta se introduce n dreptunghiul destinat atributului lsnd un spaiu ntre atribut i
constant (fig. 43)
n SFC sunt declarate implicit trei variabile: <nume etapa>.x, <nume etapa>.t i <nume
actiune>.x. Variabila <nume etapa>.x este o variabil boolean care are valoarea TRUE,
dac etapa este activ i FALSE, n caz contrar. n varianta SFC, fr atributul IEC aceast
variabil implicit are numele <nume etapa>. Variabila <nume etapa>.t este o variabil
37
de tip TIME i reprezint timpul scurs de la activarea etapei. Variabila <nume actiune>.x
ofer posibilitatea de a vedea dac o aciune este activ sau nu, ea avnd valoarea TRUE dac
aciunea este activ. Dac o etap este activ un numr de indicatori sunt setai. Acetia sunt n
acelai timp i variabile care pot fi setate cu scopul de a controla fluxul ntr-un program SFC.
Pentru utilizarea acestora, trebuie declarate n cadrul programului, ca variabile globale sau locale,
de intrare sau ieire. Cele mai importante flaguri sunt:
SFCInit, variabil de tip BOOL. Atunci cnd aceast variabil este setat n TRUE se
trece automat n etapa iniial i celelalte flaguri sunt resetate. Etapa iniial este
activ dar nu se execut;
SFCPause, variabil de tip BOOL. Atunci cnd aceast variabil devine TRUE
execuia diagramei SFC este oprit. Pentru repornire trebuie trecut n FALSE;
SCFCurrentStep, variabil de tip string. n aceast variabil este memorat numele
etapei curente;
SFCErrorPOU, variabil de tip string. Aceast variabil conine numele blocului n
care apare o eroare.
Intr-un program SFC se pot realiza una sau mai multe ramuri paralele sau simultane. Ele poart
n AC 1131 denumirea de Alternative Branch i Parallel Branch.
Pentru editarea unei ramuri paralele trebuie selectat tranziia la care se dorete realizarea unei
ramuri paralele. Apoi se alege opiunea InsertAlternative Branch. Aceast opiune va introduce
n paralel cu tranziia selectat o alt tranziie. Dezvoltarea ulterioar a fiecrei ramuri paralele se
face prin InsertStep-Transition.
Pentru editarea unei ramuri simultane trebuie selectat etapa pentru care se dorete realizarea
unei ramuri simultane. Apoi se alege opiunea InsertParallel Branch. Aceast opiune va
introduce n paralel cu etapa selectat o alt etap. Dezvoltarea ulterioar a fiecrei ramuri
simultane se face prin InsertStep-Transition.
Se vede c, pentru evitarea greelilor, inserarea elementelor etap i tranziie se face simultan.
De asemenea tergerea unui singur element nu este permis. Se poate realiza o tergere doar
dac se selecteaz elemente pereche (etap-tranziie) sau dac prin tergere nu se ncalc regulile
de construcie GRAFCET.
Aceste atribute pot fi declarate ntr-o fereastr care se deschide atunci cnd se alege opiunea
InsertAppend Task. n fereastra Taskattributes, care se deschide (fig. 45) se pot seta atributele de
mai sus.
Numele taskului este un identificator i este numele programului care reprezint taskul. Pentru
fiecare task trebuie s se ataeze cel puin un program, care este apelat atunci cnd taskul este
activ. Prioritatea taskului este un numr cuprins ntre 0 i 31. Prioritatea cea mai mare dintre
dou taskuri cu numere diferite o are acela a crui numr este mai mic. Intervalul se introduce
sub forma unei constante de tip TIME. n caseta Single se introduce variabila pe al crei front
cresctor se va activa taskul. Dac se introduce la un task att o variabil de activare ct i un
interval de activare, atunci numai intervalul de activare va fi luat n considerare.
Regulile de execuie a mai multor taskuri sunt:
Se execut acel task care are condiia ndeplinit: fie s-a scurs timpul de activare, fie
variabila stabilit pentru activare a avut un front cresctor;
Dac dou taskuri au condiii de activare simultane atunci mai nti se execut taskul
cu prioritatea cea mai mare;
Dac dou taskuri au condiii de activare simultane i aceeai prioritate, atunci se
execut taskul care a stat mai mult n coada de ateptare, ceea ce nsemn c
prioritile sunt dinamice i bazate pe vrst.
Facilitatea de a putea avea mai multe taskuri este deosebit de util mai ales pentru realizarea
aciunilor la avarii a unui sistem condus de automatul programabil.
Un alt mod de utilizare a taskurilor, activate pe fronturi cresctoare ale unor variabile este acela
n care se dorete realizarea unor programe care s conin pri de reglare a condiiilor de
funcionare sau un mod de lucru manual al sistemului.
Se vor specifica de asemenea portul (COM1, COM2, etc.) i viteza de transmisie (n acest caz
19200).
ncrcarea are loc prin alegerea opiunii OnlineLogin i apoi OnlineDownload din bara de
meniuri. n continuare se poate realiza o monitorizare on-line a programului, putndu-se chiar
modifica starea variabilelor.
Este indicat ns, ca naintea ncrcrii unui proiect pe automat s se realizeze simularea offline a
acestuia, procedndu-se n felul urmtor: n meniul Online se alege Simulation Mode, apoi n
acelai meniu se selecteaz Login i apoi Run pentru a porni simularea (fig. 47).
Pentru a schimba starea unei variabile de intrare sau intern din TRUE n FALSE sau invers se
efectueaz dublu clic pe variabila respectiv i apoi se apas CTRL+F7 (astfel modificarea
devine definitiv). n figura urmtoare se observ c una dintre intrri fiind n starea TRUE la
rndul ei ieirea devine TRUE.
40
41
42
Exemplu:
n acest caz funcia bloc predefinit CTD (contor de tip Count Down) a fost instaniat cu
numele contor.
POU de tip funcie
O funcie este un POU, care ntoarce o singur valoare. Aceasta poate fi alctuit din mai multe
cmpuri ale unei structuri.
Valoarea ntoars de funcie este reprezentat chiar de numele funciei.
n cadrul acestei liste, variabilele se vor defini conform prototipului precizat mai sus.
Principalele comenzi ale editorului se gsesc ntr-un meniu contextual, care poate fi afiat la
apsarea butonului drept al mouse-ului.
Comentariile sunt incluse n secvene speciale (* si *).
Exemplu: (*Acesta este un comentariu.*)
Comentariile sunt permise n toate editoarele de text, n orice loc se dorete, adic n toate
declaraiile din limbajele IL, ST precum i n tipurile de date definite de utilizator. n limbajele
FBD i LD se pot introduce comentarii pentru fiecare reea. Pentru a realiza acest lucru trebuie
selectat reeaua creia i se va ataa comentariul i apoi se alege comanda Insert Comment din
bara de meniuri.
n plus comentariile pot fi adugate oriunde sunt inserate nume de variabile.
n LD un comentariu poate fi adugat fiecrui contact i fiecrei bobine prin alegerea opiunilor
Extras Options din bara de meniuri (fig. 53).
44
Fig. 53. Adugarea unui comentariu unui contact sau unei bobine
Constantele se identific prin cuvntul cheie CONSTANT i se pot declara local sau global n
felul urmtor:
VAR CONSTANT
<Identifier>:<Type>:=<initialization>;
END_VAR
Exemplu:
VAR CONSTANT
c1 : REAL :=2.86; (* 1. Constant*)
END_VAR
Nume;
Prioritate;
Intervalul de activare ciclic a task-ului sau variabila global pe a crei front
cresctor este activat task-ul;
POU-urile de tip program care aparin task-ului.
Aspectele amintite vor fi declarate ntr-o fereastr care se deschide dup ce s-a efectuat dublu
clic pe obiectul Task Configuration. n fereastra care se deschide, se efectueaz clic dreapta pe
obiectul System events i se apas Insert Task. Ca urmare se va deschide o nou fereastra, numit
Taskattributes (Fig. 54), unde se pot seta primele trei elemente din cele amintite mai sus.
Numele taskului reprezint un identificator asemntor celor ce reprezint variabile. Fiecrui
task trebuie s i se ataeze cel puin un program care este apelat atunci cnd task-ul este activ.
Prioritatea taskului este un numr cuprins ntre 0 i 31, prioritatea cea mai mare avnd-o taskurile cu numere mici de prioritate. Intervalul de timp se introduce sub forma unei constante de
tip TIME (de ex: t#200ms). Dac la tip se alege opiunea triggered by event, atunci n cmpul event
trebuie specificat variabila pe al crei front cresctor se va activa task-ul.
Astfel, sunt definite urmtoarele reguli de execuie a mai multor taskuri:
Se execut acel task care are condiia ndeplinit: s-a scurs timpul de activare sau
variabila stabilit pentru activare a avut un front cresctor;
Dac dou taskuri au condiii de activare simultane atunci mai nti se execut taskul cu prioritatea cea mai mare;
46
n continuare trebuie specificate POU-urile de tip program, care s fie executate n cadrul taskului. Acest lucru se realizeaz efectund clic dreapta pe numele task-ului definit i selectnd
opiunea AppendProgram Call. Va aprea fereastra Program Call (fig. 55) n care se va selecta
numele POU-ului.
n cadrul unui task se pot executa oricte POU-uri.
Acest aspect al proiectrii, i anume facilitatea de a putea avea mai multe taskuri, este deosebit
de util mai ales pentru realizarea aciunilor la avarii ale unui sistem condus de automatul
programabil.
Un alt mod de utilizare a taskurilor, activate pe fronturi cresctoare ale unor variabile este acela
n care se dorete realizarea unor programe care s conin pri de reglare a condiiilor de
funcionare sau un mod de lucru manual al sistemului.
47
n cadrul acestei ferestre se pot observa adresele de intrare i de ieire ale automatului precum i
biii speciali de intrare i de ieire. De asemenea aici trebuie specificate modulele suplimentare,
care sunt ataate automatului. Dup cum se observ, ultimele apte poziii sunt goale (Empty
Slot), ceea ce nseamn c se pot ataa n total apte module.
Pentru ataarea unui modul suplimentar se efectueaz clic dreapta pe prima locaie intitulat
Empty Slot (poziie liber) i se selecteaz Replace Element (nlocuire a elementului). Va aprea o
list care cuprinde toate modulele care se pot ataa automatului. Se va selecta de aici modulul
amintit mai sus i vom observa c acesta apare n loc de Empty Slot. Apsnd pe semnul plus de
dinaintea numelui modulului, va aprea o list cu adresele modulului. Selectnd una din adrese,
n partea dreapt va aprea fereastra Base parameters care conine proprietile intrrii sau ieirii
respective.
48
2. Caietul de sarcini
n figura 58 este prezentat o maina de gurit mpreun cu schema electric care trebuie
realizat pentru a putea efectua un ciclu automat de gurire. Iniial trebuie poziionat piesa, fapt
semnalat de traductorul PP, iar apoi la apsarea de ctre operatorul uman a butonului de pornire
BP se declaneaz ciclul automat de gurire.
Mai nti are loc deplasarea cu avans rapid a capului de gurire ntre traductoarele R1 i R2
(pentru aceasta se alimenteaz contactoarele K2 i K3). Apoi are loc o deplasare cu avans lent a
capului de gurire ntre traductoarele R2 i R3 (se alimenteaz doar contactorul K2). Urmeaz
retragerea capului de gurire cu avans rapid, pn la atingerea traductorului R1 (prin alimentarea
contactorului K1). O nou gaur va fi efectuat dup trecerea a dou secunde, pn cnd s-au
fcut cinci guri succesive.
Se va prevedea i alimentarea motorului electric de antrenare a pompei hidraulice care asigur
presiunea pentru circuitul hidraulic prin intermediul contactorului C1.
Butonul de pornire i senzorul de poziionare a piesei vor fi simulate printr-un ntreruptor.
La nceputul fiecrui ciclu, capul de gurire trebuie adus n poziia retras dac nu se afla deja
acolo, iar abia apoi se realizeaz cele cinci guri.
Un nou ciclu va putea fi efectuat abia dup ce s-a poziionat o noua piesa i dup ce s-a apsat
din nou butonul de pornire.
Observaie.
1. Obinerea vitezei de avans rapid se face utiliznd un regulator unidirecional de debit (RDU). Dac se
alimenteaz V2 de la distribuitorul D1, exist dou ci de ntoarcere pentru lichidul din pistonul P: una care
trece prin RDU si alta care trece prin distribuitorul D2, dac se alimenteaz bobina V3. Pe prima cale se
poate regla debitul de lichid astfel ca viteza s fie mai mic dect aceea care se obine pe cea de-a doua cale.
Pentru cazul in care este alimentat bobina V1 a distribuitorului, RDU este prevzut cu o supap care nu
opune rezisten trecerii lichidului i n consecin viteza pistonului este maxim.
2. Traductoarele de proximitate R2 i R3 au logic negativ.
49
50
3. Modul de lucru
3.1. Automatul S7-200
Se procedeaz n felul urmtor:
52
Fig. 61. Legturile dintre automatul ABB 07KT97 i Maina automat de gurit
53
54
Fig. 62. Legturile dintre automatul Moeller XC200 i Maina automat de gurit
55