55
Lucrarea nr. 3. Automatizarea unei maşini de găurire automată 1 Lucrarea nr. 3. Automatizarea unei maşini de găurire automată 1. Introducere 1.1. Conectarea intrărilor şi ieşirilor unui automat programabil Cataloagele firmelor constructoare de AP indică modul specific de legare al intrărilor şi ieşirilor unui AP la un proces. În general conectarea unei intrări se face în funcţie de modul de realizare a acesteia de către producător. Există două variante de intrări: intrări în curent continuu şi intrări în curent alternativ. Modul de legare al unei intrări de curent continuu este prezentat în fig. 1. Fig. 1. Conectarea intrărilor automatului la o sursă de curent continuu La automatele cu alimentare în curent alternativ se realizează variante în care alimentarea se poate face fie direct de la sursa de curent alternativ (fig. 2), fie în curent continuu, obţinut în automat prin redresare. În acest ultim caz pe panoul automatului se vor găsi borne de curent continuu. Fig. 2. Conectarea intrărilor automatului la o sursă de curent alternativ Ieşirile automatelor programabile pot fi de două tipuri: ieşiri sub formă de tranzistor şi ieşiri sub formă de releu (fig. 3). Există, de obicei trei borne: una la care se cuplează sursa exterioară, borna de ieşire propriu-zisă şi borna de legătură cu pământul. Uneori borna de legătură cu sursa exterioară este comună pentru mai multe ieşiri, legătura fiind făcută în interior. Aceasta se poate vedea în cataloagele firmei producătoare. Activarea unei ieşiri sub formă de tranzistor are ca efect deschiderea tranzistorului, dacă este alimentat. Sarcina ieşirii trebuie să fie alimentată ca în fig. 3, astfel încât la activarea ieşirii să fie legată la sursa de alimentare. Activarea unei ieşiri sub formă de releu are ca efect închiderea contactului acestuia. Sarcina ieşirii trebuie să fie alimentată astfel încât la activarea ieşirii să fie legată la sursă.

Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

  • Upload
    ledan

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

1

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

1. Introducere

1.1. Conectarea intrărilor şi ieşirilor unui automat programabil

Cataloagele firmelor constructoare de AP indică modul specific de legare al intrărilor şi ieşirilor unui AP la un proces. În general conectarea unei intrări se face în funcţie de modul de realizare a acesteia de către producător. Există două variante de intrări: intrări în curent continuu şi intrări în curent alternativ. Modul de legare al unei intrări de curent continuu este prezentat în fig. 1.

Fig. 1. Conectarea intrărilor automatului la o sursă de curent continuu

La automatele cu alimentare în curent alternativ se realizează variante în care alimentarea se poate face fie direct de la sursa de curent alternativ (fig. 2), fie în curent continuu, obţinut în automat prin redresare. În acest ultim caz pe panoul automatului se vor găsi borne de curent continuu.

Fig. 2. Conectarea intrărilor automatului la o sursă de curent alternativ

Ieşirile automatelor programabile pot fi de două tipuri: ieşiri sub formă de tranzistor şi ieşiri sub formă de releu (fig. 3). Există, de obicei trei borne: una la care se cuplează sursa exterioară, borna de ieşire propriu-zisă şi borna de legătură cu pământul. Uneori borna de legătură cu sursa exterioară este comună pentru mai multe ieşiri, legătura fiind făcută în interior. Aceasta se poate vedea în cataloagele firmei producătoare. Activarea unei ieşiri sub formă de tranzistor are ca efect deschiderea tranzistorului, dacă este alimentat. Sarcina ieşirii trebuie să fie alimentată ca în fig. 3, astfel încât la activarea ieşirii să fie legată la sursa de alimentare.

Activarea unei ieşiri sub formă de releu are ca efect închiderea contactului acestuia. Sarcina ieşirii trebuie să fie alimentată astfel încât la activarea ieşirii să fie legată la sursă.

Page 2: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

2

Fig. 3. Conectarea elementelor de execuţie (sarcinii) la ieşirile automatelor

a. ieşire sub formă de tranzistor. b. ieşire sub formă de releu

1.2. Automatul Siemens S7-200

Va fi programat în mediul Step7 Micro/WIN utilizând limbajele STL, LAD şi FBD. Se poate folosi atât adresarea directă, cât şi cea indirectă.

Adresarea directă:

intrări: I0.0 – I0.7, I1.0 – I1.7;

memorie internă: poate fi adresată pe bit (V0.0 – V0.7, V1.0 – V1.7 ….), pe octet (VB0, VB1, VB2 …), pe cuvânt (VW0 – este alcătuit din octeţii VB0 şi VB1, octetul cel mai semnificativ fiind VB0, VW2,VW4…), sau pe dublu cuvânt (VD0 – alcătuit din octeţii VB0, VB1, VB2 şi VB3, octetul cel mai semnificativ fiind VB0, VD4, VD8…). În mod similar se adresează şi memoria internă cu prefixul M, diferenţa dintre cele două fiind că memoria internă V se poate utiliza pentru pointeri;

ieşiri: Q0.0 – Q0.7, Q1.0 – Q1.7.

Pentru adresarea indirectă variabilele trebuie declarate în Symbol Table.

Constantele pot fi de tip întreg sau reale.

Constantele de tip întreg se pot specifica în mai multe baze, de exemplu:

constantă zecimală: 180123 sau 180_123

constantă binară: 2#0101

constantă octală: 8#17

constantă hexazecimală: 16#F

constantă ASCII: ‘Un text’

Caracterul “_” poate fi introdus pentru a facilita citirea mai uşoară a constantelor.

Constantele reale vor fi specificate folosind literele e sau E sau caracterul “.”, de exemplu: 4e2, -3.4, 3E10.

Page 3: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

3

1.3. Automatul Siemens S7-300

Va fi programat în mediul Step 7 Manager, utilizând limbajele STL, LAD, FBD, Step7GRAPH şi SCL. Programarea acestor automate este uşor de realizat, iar depanarea poate fi realizată şi offline folosind simulatorul PLC Sim. Se poate folosi atât adresarea directă, cât şi cea indirectă.

Adresarea directă:

intrări: I124.0 – I124.7, I125.0 – I125.7, I126.0 – I126.7;

memorie internă: poate fi adresată pe bit (M0.0 – M0.7, M1.0 – M1.7 ….), pe octet (MB0, MB1, MB2 …), pe cuvânt (MW0 – este alcătuit din octeţii MB0 şi MB1, octetul cel mai semnificativ fiind MB0, MW2,MW4…), sau pe dublu cuvânt (MD0 – alcătuit din octeţii MB0, MB1, MB2 şi MB3, octetul cel mai semnificativ fiind MB0, MD4, MD8…);

ieşiri: Q124.0 – Q124.7, Q125.0 – Q125.7.

Adresele de intrare şi de ieşire 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ă: 180123 sau 180_123

constantă binară: 2#0101

constantă octală: 8#17

constantă hexazecimală: 16#F

constantă ASCII: ‘Un text’

Caracterul “_” poate fi introdus pentru a facilita citirea mai uşoară a constantelor.

Constantele reale vor fi specificate folosind literele e sau E sau caracterul “.”, de exemplu: 4e2, -3.4, 3E10.

1.4. Automatul ABB KT97

Va fi programat în mediul AC1131 (CoDeSys) utilizând limbajele IL, LAD, FBD, SFC şi ST. Programarea acestor automate este uşor de realizat, iar depanarea poate fi realizată şi offline folosind simulatorul. Se poate folosi atât adresarea directă, cât şi cea indirectă.

Adresarea directă:

intrări: %IX62.0 – %IX62.15, %IX63.0 – %IX63.7;

memorie internă: poate fi adresată pe bit (%M0.0 – %M0.7, %M1.0 – %M1.7 ….), pe octet (%MB0.0, %MB1.0, %MB2.0 …), pe cuvânt (%MW0, %MW2, %MW4…), sau pe dublu cuvânt (%MD0, %MD4, %MD8…);

ieşiri: %QX62.0 – %QX62.15.

Pentru adresarea indirectă variabilele trebuie declarate la Global Variables în pagina Resources sau în antetul fiecărui program, folosind următoarea sintaxă:

Page 4: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

4

<identificator> {AT <adresă directă>}: <tip> {:=<valoare iniţială>};

Constantele pot fi de tip întreg sau reale.

Constantele de tip întreg se pot specifica în mai multe baze, de exemplu:

constantă zecimală: 180123 sau 180_123

constantă binară: 2#0101

constantă octală: 8#17

constantă hexazecimală: 16#F

constantă ASCII: ‘Un text’

Caracterul “_” poate fi introdus pentru a facilita citirea mai uşoară a constantelor.

Constantele reale vor fi specificate folosind literele e sau E sau caracterul “.”, de exemplu: 4e+2, -3.4, 3E10.

1.5. Automatul Moeller XC200

Va fi programat în mediul easy Soft CoDeSys. Programarea acestor automate este uşor de realizat, iar depanarea poate fi realizată şi offline folosind simulatorul. Se poate folosi atât adresarea directă, cât şi cea indirectă.

Adresarea directă:

intrări: %IX0.0 – %IX0.7;

memorie internă: aceasta poate fi adresată pe bit (%MX0.0 – %MX0.7, %MX1.0 – %MX1.7 ….), pe octet (%MB0, %MB1, %MB2 …), pe cuvânt (%MW0 – este alcătuit din octeţii %MB0 şi %MB1, octetul cel mai semnificativ fiind %MB1, %MW2, %MW4…), sau pe dublu cuvânt (%MD0 – alcătuit din octeţii %MB0, %MB1, %MB2 şi %MB3, octetul cel mai semnificativ fiind %MB3, MD4, MD8…);

ieşiri: %QX0.0 – %QX0.5.

Pentru adresarea indirectă variabilele trebuie declarate la Global Variables în pagina Resources sau în antetul fiecărui program, folosind următoarea sintaxă:

<identificator> {AT <adresă directă>}: <tip> {:=<valoare iniţială>};

Constantele pot fi de tip întreg sau reale.

Constantele de tip întreg se pot specifica în mai multe baze, de exemplu:

constantă zecimală: 180123 sau 180_123

constantă binară: 2#0101

constantă octală: 8#17

constantă hexazecimală: 16#F

constantă ASCII: ‘Un text’

Caracterul “_” poate fi introdus pentru a facilita citirea mai uşoară a constantelor.

Constantele reale vor fi specificate folosind literele e sau E sau caracterul “.”, de exemplu: 4e+2, -3.4, 3E10.

Page 5: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

5

1.6. Prezentarea modului de programare în Step 7 MicroWin

Seria de automate programabile S7-200 este destinată aplicaţiilor de automatizare de mică complexitate şi cuprinde mai multe tipuri de unităţi centrale. Pentru realizarea unui program cu această serie sunt necesare, în afara automatului, un calculator PC, mediul de programare Step 7 MicroWIN 32 şi un cablu de comunicaţie între PC şi automat legat între portul PPI al automatului şi portul serial al calculatorului pe care rulează programul.

Firma SIEMENS produce astăzi şi o serie nouă de automate de clasă mică S7-22x, prevăzute cu facilităţi de comunicare pe reţea înglobate, în unitatea centrală.

Un automat S7-200 constă dintr-un modul CPU, singur sau cu mai multe extensii. Un modul CPU este alcătuit dintr-o unitate centrală, sursă şi intrări/ieşiri, într-o structură compactă. Un modul CPU are o serie de LED-uri de stare (RUN, STOP) şi de vizualizare a stării intrărilor şi ieşirilor.

Step 7 MicroWIN 32 este un pachet software pentru programarea şi configurarea automatelor din seria S7-200. Acest pachet software permite setarea parametrilor hardware, editarea, depanarea şi încărcarea în automat a programelor elaborate.

Limbajele suportate de Step 7 MicroWIN 32 sunt:

STL, care este un limbaj de tip text, alcătuit din instrucţiuni;

LAD, care este un limbaj semi-grafic, alcătuit din obiecte, prin interconectarea cărora se realizează circuite, numite reţele, care sunt asemănătoare celor realizate cu contacte şi relee;

FBD, care este un limbaj semi-grafic, alcătuit din obiecte, prin interconectarea cărora se realizează circuite numite reţele, care sunt asemănătoare celor realizate cu circuite integrate.

Atunci când 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 locaţia. Se pot adresa diferite arii de memorie: V, M-pentru locaţii din memoria internă, I-pentru locaţii reprezentând imaginile în memoria RAM ale intrărilor automatului, Q-pentru locaţii reprezentând imaginile în memoria RAM ale ieşirilor automatului, T-pentru temporizatoare, C-pentru contoare, HC-pentru contoarele de mare viteză, AC-pentru acumulatoare, L-pentru variabile locale, AQ/AI-pentru ieşirile/intrările analogice, S-pentru variabilele utilizate pentru împărţirea programului în segmente logice şi SM-pentru locaţii speciale de memorie, adresate ca bit, octet, cuvânt sau dublu cuvânt. Pentru aceasta se foloseşte pe lângă arie şi terminaţia B, pentru octet, W, pentru cuvânt şi D, pentru dublu cuvânt. Locaţiile V şi M sunt de acelaşi tip. Amândouă sunt în memoria principală la CPU200. Există mici diferenţe în unele aplicaţii, de exemplu TD200 are nevoie de octeţi M pentru funcţiile tastelor şi de octeţi V pentru mesaje.

La adresarea pe byte, cuvânt sau dublu cuvânt se specifică byte-ul de start al adresei. La variabilele care ocupă mai mulţi octeţi se foloseşte memorarea big-endian byte order*.

* Big-endian byte-order înseamnă că primul octet este interpretat ca octetul cel mai semnificativ, iar următorii octeţi sunt în ordinea e la cel mai semnificativ spre cel mai puţin semnificativ.

Page 6: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

6

Variabilele care încep cu litera T sunt variabile legate de temporizatoarele (timere) automatului. Acestea sunt de fapt numărătoare de impulsuri, care au perioade diferite, asociate cu numărul care urmează după litera T. Valorile perioadei sunt la CPU S7-200 egale cu 1 ms, 10 ms sau 100 ms. Fiecărui timer i se asociază două valori:

Valoarea curentă, care este un întreg ce reprezintă timpul scurs de la validarea intrării timerului;

O valoare pe bit, care are o evoluţie în timp în funcţie de un parametru (valoarea presetată) şi de tipul timerului.

Ambele valori sunt accesate utilizând aceeaşi variabilă, compusă din litera T urmată de un număr. Accesul la una din cele două valori este funcţie de context.

Instrucţiunile cu operanzi pe bit au acces la valoarea de bit, în timp ce instrucţiunile cu operanzi pe cuvânt accesează valoarea curentă (fig. 4).

Fig. 4. Adresarea în funcţie de context avariabilelor de tip timer

Variabilele care încep cu litera C sunt variabile legate de contoarele automatului. Acestea sunt numărătoare de impulsuri care provin din exterior şi care trebuie asociate unei intrări. Fiecărui contor i se asociază două valori:

Valoarea curentă, care este un întreg ce reprezintă numărul de impulsuri numărate de la validarea intrării contorului;

O valoare pe bit, care are o evoluţie în timp în funcţie de un parametru (valoarea presetată) şi de tipul contorului.

Ambele valori sunt accesate utilizând aceeaşi variabilă, compusă din literă C urmată de un număr. Accesul la una din cele două valori este funcţie de context, la fel ca la timere. Instrucţiunile cu operanzi pe bit au acces la valoarea de bit, în timp ce instrucţiunile cu operanzi pe cuvânt accesează valoarea curentă.

Contoarele de mare viteză au de asemenea un mod de adresare direct, care se realizează prin folosirea literelor HC, urmate de numărul contorului. Contoarele de mare viteză sunt folosite pentru evenimente rapide, care nu pot fi controlate în cadrul ciclurilor automatului, adică a acelora care au schimbări de stare aşa de rapide încât pot fi pierdute dacă sunt legate de intrările obişnuite ale automatului. La CPU S7-200 sunt disponibile trei contoare de mare viteză al căror conţinut, pe patru octeţi, poate fi accesat direct, utilizând variabilele HC0, HC1 şi HC2.

Intrările acestor contoare sunt de obicei legate la traductoare incrementale, care dau un număr de impulsuri pe rotaţie şi un impuls de reset la fiecare rotaţie.

HC0 este un contor UP/DOWN, care acceptă o singură intrare de ceas cu frecvenţa de maximum 2 KHz. Intrarea de numărare este legată la I0.0, iar direcţia de numărare este setată

Page 7: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

7

prin intermediul unui bit special de memorie SM37.1 (Dacă este 0, contorul numără direct şi dacă este 1 contorul numără invers).

Contoarele HC1 şi HC2 sunt contoare de mare viteză, foarte flexibile care pot fi configurate să funcţioneze în 12 moduri. Configuraţiile posibile sunt: contoare bidirecţionale cu control intern al direcţiei de numărare, contoare bidirecţionale cu control extern al direcţiei de numărare, contoare UP/DOWN cu intrări diferite din exterior pentru numărare directă şi inversă şi contoare de impulsuri în cuadratură.

Înainte de a fi utilizat, un contor de mare viteză, trebuie realizată setarea unor biţi din categoria biţilor speciali de memorie, legaţi de contor. Aceşti biţi stabilesc nivelul de activare, al resetării ş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 biţi contorul trebuie configurat şi validat. Configurarea se realizează prin alegerea unuia din cele 12 moduri de lucru posibile. Se utilizează pentru aceasta instrucţiuni din setul de instrucţiuni al automatului.

Diagramele de semnale şi alte indicaţii în legătură cu modul de utilizare al contoarelor de mare viteză se găsesc în manualele firmei producătoare.

Acumulatorii sunt dispozitive care pot fi utilizate ca memorii. Aceştia se pot utiliza pentru transferul datelor către proceduri. La CPU S7-200 există patru acumulatori (AC0, AC1, AC2, AC3). Un acumulator poate fi adresat şi setat ca octet, cuvânt sau dublu cuvânt, în funcţie de instrucţiunea utilizată.

Variabilele care încep cu literele SM sunt asociate biţilor speciali de memorie. Aceştia sunt un mijloc de comunicare între CPU şi program, fiind utilizaţi pentru selectarea şi controlul unor funcţii speciale:

Biţi de stare care sunt actualizaţi de unitatea centrală la fiecare ciclu;

Biţi de stare a rezultatelor unor operaţii aritmetice; Biţi de identificare a tipului CPU şi a prezenţei modulelor de externe.

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 iniţial. În cadrul unui program în Ladder Diagram (LAD), introducerea marcajului iniţial se va face ca în fig. 5.

Se observă că transferul marcajului iniţial în locaţiile corespunzătoare (aici MB0) se face numai în primul ciclu, deoarece validarea blocului de transfer în memorie a vectorului I0 este realizată numai în primul ciclu.

Fig. 5. Introducerea marcajului iniţial

La automatul S7-200 este posibilă adresarea prin intermediul pointerilor care se numeşte 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.

Page 8: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

8

Pentru a adresa o locaţie în mod indirect trebuie creat mai întâi un pointer către acea locaţie. La CPU S7-200, pointerii sunt locaţii de memorie pe dublu cuvânt, care conţin adrese ale altei locaţii de memorie. Pentru pointeri se pot folosi doar locaţiile de tip V şi acumulatorii. Un pointer se creează mutând adresa unei locaţii de memorie într-o altă locaţie. La mutare, operandul care va reprezenta pointerul este precedat de caracterul &. În cazul în care se doreşte accesarea unei valori specificate printr-un pointer se foloseşte caracterul * în faţa operandului. Utilizarea adresării indirecte este ilustrată în exemplul din fig. 6.

Fig. 6. Lucrul cu pointeri în Step7 MicroWin

Asupra pointerilor se pot efectua operaţii aritmetice. Dacă, în programul de mai sus, se intercalează instrucţiunea +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 îmbunătăţiri faţă de versiunile anterioare printre care amintim: posibilitatea configurării aplicaţiilor cu noile tipuri de automate din seria 22x, posibilitatea configurării unor reţele Modbus, ASi şi Ethernet, posibilitatea utilizării unor vrăjitori (Wizard) pentru configurare etc.

În acest paragraf nu ne propunem să prezentăm numai modul de realizare a unui program, utilizând cea mai simplă legătură, realizată printr-un cablu cu convertor de reţea 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 interfaţa serială a calculatorului.

La pornirea programului pe ecran va apare interfaţa din fig. 7. Fereastra conţine diferite componente ale mediului. Cea mai mare parte a spaţiului de lucru este rezervată ferestrei de editare, a arborelui de instrucţiuni şi ferestrei de navigare. Fereastra de ieşire în care se afişează o serie de informaţii asupra operaţiilor pe care le execută programul şi eventualele erori de compilare. Fereastra de instrucţiuni mai conţine ş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 funcţie de tipul editorului lansat şi de limbajul ales pentru editare.

Primul lucru care trebuie făcut este setarea comunicaţiei între program şi automat. Înainte de a seta comunicaţia 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 comunicaţiei, există mai multe căi:

Selectarea din meniul programului a opţiunii PLC→ Type→ Communication;

Page 9: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

9

Apăsarea butonului Communication din fereastra de navigare.

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 interfaţa adecvată (în cazul nostru PC/PPI cable), iar prin apăsarea butonului Properties se pot seta proprietăţi pentru interfaţa selectată. Aceste proprietăţi trebuie să coincidă cu cele ale cablului de legătură şi portului la care este conectat acesta.

Fig. 7. Interfaţa cu utilizatorul a programului STEP 7-MicroWin 32

Fig. 8. Fereastra Communication

Page 10: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

10

După realizarea setărilor dorite, la revenirea în fereastra din fig. 8 parametrii de comunicaţie vor fi modificaţi corespunzător, iar prin efectuarea unui dublu clic în fereastră se va realiza şi vizualiza legătura cu automatul. Cu aceasta faza de setare a comunicaţiei se consideră încheiată

1.6.1. Componentele unui proiect

Un proiect are următoarele componente:

Blocul de program. Acesta cuprinde codul programului principal (MAIN), al subrutinelor şi al rutinelor de întrerupere;

Tabela de simboluri (Symbol Table). Aceasta conţine un tabel de asociere a variabilelor din memorie cu nume simbolice alese de programator;

Tabela de stări (Status Chart). Aceasta conţine unul sau mai multe tabele unde se poate urmări starea intrărilor, ieşirilor şi a variabilelor programului;

Blocul de date (Data Block). Acesta conţine date care reprezintă valori iniţiale ale unor locaţii de memorie, constante şi comentarii;

Blocul sistem (System Block). Acesta conţine date care se pot încărca în automat şi care se referă la adresa automatului, parametrii comunicaţiei, definirea zonelor de memorie care vor fi folosite la memorarea unor date la căderea tensiunii, setarea unor ieşiri de siguranţă la trecerea din RUN în STOP a automatului, setarea unor parametri ai filtrelor de pe intrările automatului etc.;

Tabela de referinţe încrucişate (Cross References). Aceasta poate conţine un tabel unde se află o listă cu operanzii utilizaţi în program, locul şi contextul în care sunt utilizaţi.

1.6.2. Editorul de programe

Dacă se apasă butonul Program Block, în fereastra de navigare se deschide editorul de programe. Un program în STEP 7 MicroWin are trei tipuri de unităţi de organizare (POU - Program Organization Unit ):

Programul principal (OB1);

Subrutine;

Rutine de întrerupere.

Se poate realiza o editare a programului într-unul din limbajele STL, LAD sau FBD. Comutarea între acestea este posibilă chiar în timpul editării din meniul View. Deoarece scrierea unui program în LAD este mai comodă decât în limbajul STL, vom descrie în cele ce urmează numai programarea în LAD şi vom face numai unele precizări asupra programării în FDB, care a devenit mai bine implementată în această versiune.

Un program în LAD este alcătuit din una sau mai multe reţele. Fereastra editorului LAD este împărţită în celule. În fiecare celulă poate fi plasată o instrucţiune, poate fi scris un operand al instrucţiunii (parametru) sau poate fi plasată o linie de legătură orizontală sau verticală.

Linia de alimentare stângă este prezentă în fiecare reţea, iar linia de alimentare dreaptă nu există.

Construirea unei reţele se face prin plasarea în celulele din suprafaţa editorului a unui obiect al limbajului. Plasarea se poate face în mai multe moduri. Cel mai comod este alegerea obiectului din arborele de instrucţiuni şi realizarea unui dublu clic pe acesta.

Orice obiect plasat are unul sau mai mulţi 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

Page 11: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

11

concordanţă cu valorile acceptate de obiectul respectiv. O parametrizare incorectă conduce la erori de compilare. Ea este semnalată încă din faza de editare prin sublinierea cu o linie roşie a parametrului incorect. În afara obiectelor limbajului, o reţea are un titlu şi un comentariu, care pot fi folosite pentru documentarea programului. Regulile cele mai importante care trebuie respectate la scrierea unui program în LAD sunt următoarele:

Fiecare reţea trebuie să înceapă cu un contact, în timp ce o reţea nu se poate termina cu un contact. Această regulă poate fi ocolită utilizând un contact legat la o variabilă care este întotdeauna egală cu unu. Bitul special de memorie SM0.0 poate fi folosit pentru acest scop;

O reţea poate avea mai multe contacte plasate în serie sau în paralel;

O bobină nu poate fi plasată la începutul unei reţele, aceasta fiind posibil de utilizat la sfârşitul reţelei;

Bobinele nu pot fi legate în serie, dar pot fi legate în paralel în orice punct al reţelei;

Mai multe obiecte ale limbajului pot fi legate în serie utilizând ieşirea ENO, dacă utilizarea acestei ieşiri este suportată de automatul cu care se lucrează. Seria 22x acceptă acest mod de legare în cadrul reţelei;

Numărul de celule pe orizontală sau pe verticală nu poate depăşi 32 în aceeaşi reţea;

În această versiune nu este necesară plasarea instrucţiunilor END, RET şi RETI, ele fiind înserate automat de către compilator.

Utilizarea subrutinelor într-un program este utilă pentru împărţirea acestuia în mai multe părţi mai mici, mai uşor de gestionat şi documentat. În acest fel se obţin performanţe mai bune în programare. Iniţial un program are în componenţă o subrutină (SUBR_0) şi o rutină de întrerupere (INT_0). Pentru scrierea instrucţiunilor acestora se selectează ferestrele corespunzătoare 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 când evenimentul apare. Pentru aceasta se foloseşte instrucţiunea ATCH (fig. 9).

Fig. 9. Instrucţiunea de ataşare a unui eveniment unei rutine de întrerupere

Invalidarea acestei asocieri se realizează cu instrucţiunea 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. Numărul evenimentului asociat unei întreruperi este funcţie de tipul automatului folosit. În help-ul programului Step 7 MicroWin se găsesc tabele de asociere a evenimentelor cu numere. De asemenea sunt precizate în aceste tabele şi priorităţile asociate acestor întreruperi.

Fig. 10. Instrucţiune de dezactivare a unei întreruperi.

Page 12: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

12

Servirea cererilor de întrerupere multiple se face în tehnica LIFO şi în funcţie de priorităţi. Stiva LIFO are 128 locaţii. Din momentul în care începe execuţia unei rutine de întrerupere ea nu mai poate fi întreruptă decât de o întrerupere cu prioritate mai mare.

Versiunea 4.0 a programului are un editor FBD mai bine pus la punct decât versiunile anterioare. La fel ca şi editorul LAD, editorul FBD este semi-grafic bazat pe reţele ş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 utilizându-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 Tools→Options→General să fie selectat Programming Mode: IEC 1131-3 şi Mnemonic Set→International, ca în fig. 11.

Fig. 11. Fereastra Options

1.6.3. Tabela de variabile globale şi tabela de variabile locale

Variabilele globale sunt variabilele care au domeniul de vizibilitate extins la toate unităţile dintr-un proiect. Ele asociază nume simbolice adreselor de memorie ale automatului sau intrărilor şi ieşirilor. Numele simbolice trebuie să înceapă cu o literă. Dacă se utilizează modul de programare SIMATIC, variabilele simbolice se definesc în Symbol Table, iar dacă se utilizează modul de programare IEC 1131-3 acestea se definesc în Global Variable Table.

Fig. 12. Tabela variabilelor globale

În fig. 12 este prezentată o tabelă de variabile globale, iar în fig. 13 modul în care această tabelă este reflectată în programul MAIN.

Page 13: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

13

Fig. 13. Reflectarea în unitatea de program a variabilelor globale

Fiecare unitate de program (POU) a unui proiect are propria sa tabelă de variabile locale de 64 octeţi de tip L. Această tabelă defineşte variabile cu domeniu de vizibilitate restrâns la unitatea de program respectivă. Utilizarea variabilelor locale este recomandată atunci când se doreşte elaborarea unor subrutine generale, utilizabile şi în alte programe.

Dacă este vorba de subrutine atunci variabilele locale pot fi de mai multe tipuri:

IN reprezintă un parametru provenit din apelarea POU;

OUT reprezintă un parametru returnat în programul apelant;

IN_OUT reprezintă un parametru înlocuit la apelare, modificat în cursul execuţiei subrutinei şi returnat în programul apelant;

TEMP reprezintă valori care sunt salvate temporar în stiva variabilelor locale şi care după ce subrutina s-a executat sunt distruse.

1.6.4. Status Chart

Termenul status se referă la informaţii asupra valorilor curente ale operanzilor atunci când programul este executat în automat. Aceste informaţii se pot vizualiza într-o tabelă completată de utilizator numită Status Chart şi/sau direct în program dacă se selectează Debug→Status Chart şi/sau Debug→Program Status. În fig. 15 sunt prezentate informaţiile de stare din program, iar în fig. 16 informaţiile din Status Chart.

Fig. 15. Informaţii de stare într-un program STEP 7 MicroWin

Page 14: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

14

Fig. 16. Informaţii de stare în Status Chart din STEP 7 MicroWin

Informaţiile de stare sunt disponibile dacă sunt îndeplinite următoarele condiţii:

Programul a fost compilat şi încărcat în automat;

Comunicaţia cu automatul este stabilită;

S-a selectat Debug→Status Chart şi/sau Debug→ Program Status.

1.6.5. Data Block

Fereastra Data Block (Data Initialize) permite iniţializarea valorilor unor variabile de tip V. Editorul din fereastra blocului de iniţializare este un editor de text liber, neavând zone definite pentru introducerea informaţiilor. Un spaţiu sau TAB constituie separator de câmpuri, iar o singură linie conţine maximum 255 caractere.

O linie din blocul de iniţializare conţine adresa de start pentru una sau mai multe valori aflate într-o listă şi un comentariu, care trebuie precedat de caracterele //. Prima linie trebuie să aibă o adresă explicită. Următoarele linii pot să nu conţină adrese explicite, caz în care adresele care vor fi iniţializate urmează adresei explicite anterioare şi este de aceeaşi formă cu ea.

După ce o linie este introdusă şi se apasă tasta ENTER se realizează în mod automat aranjarea liniei pe câmpuri. Se poate omite specificarea tipului variabilei. În acest caz se atribuie valoarea unei locaţii de memorie în concordanţă cu lungimea datei. În fig. 17 este prezentat un bloc valid de iniţializare.

// //Comentariu la un bloc de date // VB0 1 // Atribuirea valorii 1 lui VB0 VB1 255, 233 // Atribuire multipla: 255 lui VB1 si 233 lui VB2

Fig. 17. Iniţializarea de date

Erorile care pot apare la scrierea unui bloc de iniţializare sunt::

Specificarea unui alt tip de zona de memorie decât cel de tip V;

Specificarea unei constante mai mari decât zona de memorie;

Nerespectarea condiţiei ca zona de memorie să preceadă data;

Specificarea unei adrese de mai multe ori.

Page 15: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

15

La compilare sunt specificate erorile şi din Data Block. Dacă în fereastra de ieşire se realizează un dublu clic pe eroare, se deschide fereastra şi cursorul este poziţionat 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.

1.6.6. System Block

La apăsarea butonului System Block va apare fereastra din fig. 18 cu mai multe pagini, în cadrul cărora se pot realiza setări importante ale automatului. În pagina Output Table se poate realiza setarea stării unor ieşiri ale automatului la trecerea din RUN în STOP. Se poate realiza de asemenea o îngheţare a ieşirilor. Aceste setări sunt importante pentru realizarea unor modificări ON-LINE ale unor programe şi anumite ieşiri sunt legate la elemente de acţionare, care trebuie să se afle în stări date la oprirea automatului. O astfel de ieşire este, de exemplu, ieşirea legată la electromagnetul de acţionare a frânei unui lift.

Fig. 18. Fereastra System Block (pagina Output Table)

În pagina Input Filters se pot realiza parametrizări ale filtrelor digitale de pe intrările automatului. Parametrizarea unui filtru digital înseamnă stabilirea timpului cât un semnal de intrare trebuie să rămână activ pentru a fi acceptat ca valid. În felul acesta, un astfel de filtru rejecteză zgomotele care apar pe linii de intrare impunând condiţia ca acestea să rămână stabile un timp înainte da a fi acceptate de automat.

În pagina Analogue Input Filters, dacă automatul are module de intrări analogice, se poate seta o filtrare software a anumitor intrări. Filtrarea software se realizează prin medierea unui număr de eşantioane de pe intrarea analogică.

Page 16: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

16

Filtrul realizează modificarea unei intrări analogice la ultima valoare de intrare, dacă aceasta depăşeşte o valoare numită bandă moartă (dead band), faţă de valoarea medie. Numărul de eşantioane şi banda moartă se stabileşte pentru toate intrările care se bifează în pagină.

În pagina Pulse Catch Bits se poate realiza gestionarea impulsurilor scurte de pe intrările automatului. Pe intrările automatului pot apare impulsuri scurte a căror schimbare de stare şi revenirea în starea iniţială nu poate fi sesizată de automat deoarece au loc într-un timp mai scurt decât durata ciclului automatului. Modelele CPU-22x permit prin aceste setări prelungirea impulsului până la ciclul următor, astfel încât să fie citite în faza PIIT (Process Image Input Table) a noului ciclu. În pagină trebuie efectuată bifarea intrărilor 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 comunicaţie. Valorile implicite ale adresei şi vitezei sunt 2 respectiv 9600 bps.

Toate modificările făcute în fereastra System Block devin operaţionale după încărcarea acestuia în automat.

1.6.7. Cross References

Fereastra Cross References are trei pagini: Cross References, Byte Usage şi Bit Usage. Această fereastră permite cunoaşterea modului de utilizare a variabilelor în cadrul programului. Se pot evidenţia numele variabilei, blocul în care este utilizată, locul şi contextul. Se mai pot evidenţia care octet şi bit din care arie este utilizat în cadrul programului.

1.6.8. Realizarea unui program în STEP 7 MicroWIN

Pentru a realiza şi încărca un program, utilizând STEP 7-MicroWIN 32 trebuie realizaţi următorii paşi:

Instalarea programului STEP 7-MicroWIN 32 pe un PC;

Conectarea cablului de legătură dintre PC şi automat;

Conectarea automatului la sursa de alimentare;

Setarea comunicaţiei dintre PC şi automat;

Analiza caietului de sarcini şi întocmirea grafului automatizării;

Realizarea programului pentru automat, utilizând una din metodele expuse în capitolele anterioare;

Crearea programului în mediul de programare;

Încărcarea programului în automat;

Testarea programului, utilizând simulatoare de proces şi facilităţile oferite de meniul Debug Program Status şi/sau Debug Status Chart.

Presupunând că primii paşi au fost efectuaţi în conformitate cu cele expuse în paragraful anterior, vom descrie modul de realizare a programului pornind de la caietul de sarcini.

1.7. Prezentarea modului de programare în Step 7 Manager

1.7.1. Particularităţi hardware şi software ale AP din seria S7-300

Seria de automate programabile S7-300 este destinată aplicaţiilor de automatizare de complexitate medie care cer memorie şi viteză de execuţie mai mare, un număr mai mare de intrări/ieşiri şi posibilităţi de programare şi comunicaţie cu alte automate mai extinse. Seria

Page 17: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

17

cuprinde mai multe tipuri de unităţi 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 comunicaţie între PC şi automat.

Un automat S7-300 constă dintr-un modul CPU, singur sau cu mai multe extensii. Un modul CPU este alcătuit dintr-o unitate centrală, sursă şi intrări/ieşiri, într-o structură compactă. Un modul CPU are o serie de LED-uri de stare (RUN, STOP) şi de vizualizare a stării intrărilor şi ieşirilor.

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 reţea a automatelor. Acest program de consolă ţine seama de particularităţile hardware şi software ale automatelor din această clasă. Aceste particularităţi 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 conţine toate funcţiile şi secvenţele care nu sunt asociate cu un program de control specific. Sarcinile sistemului de operare, la automatele din clasa S7-300, sunt:

Conduce repornirea completă (Complete restart) şi repornirea sistemului (Restart);

Apelează programul utilizator;

Detectează întreruperile şi apelează blocurile de servire a întreruperii;

Detectează şi semnalează erorile;

Gestionează ariile de memorie;

Gestionează comunicaţia cu modulele şi cu alţi parteneri.

Programul utilizator este creat cu scopul rezolvării unor sarcini specifice ale unei automatizări. În STEP 7 se poate realiza structurarea unui program utilizator, prin împărţirea lui în părţi de sine stătătoare numite blocuri. Acest lucru favorizează înţelegerea uşoară a programelor şi realizarea cu uşurinţă a modificărilor. Programul utilizator este alcătuit din blocuri, instrucţiuni şi adrese. Înainte ca un bloc să fie procesat el trebuie apelat. Apelarea blocurilor de tip OB se face de către sistemul de operare, iar apelarea celorlalte tipuri se face din interiorul blocurilor scrise de utilizator, în mod asemănător cu apelarea unei rutine. Principalele blocuri ale unui program sunt următoarele:

OB (Organization Block) este interfaţa între sistemul de operare şi programul utilizator. Acest bloc este apelat de către SO ca urmare a generării unei întreruperi ciclice sau a altor tipuri de întreruperi, cum este, de exemplu, întreruperea generată la pornirea automatului. De asemenea blocurile OB gestionează răspunsul 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 execuţie 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ă.

Page 18: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

18

Tab. 1. Lista blocurilor OB

NUMELE PROGRAMULUI NUMELE BLOCULUI PRIORITATEAProgramul ciclic OB1 1 Întreruperi de tip Time of day OB10-OB17 2 Întreruperi de timp OB20-OB23 3-6 Întreruperi ciclice (1 ms-1min) OB30-OB38 7-15 Întreruperi hardware OB40-OB47 16-23 Erori asincrone OB80 Eroare de timp

OB81 Eroare de sursă OB82 Diagnostic OB83 Inserare modul OB84 Hardware OB85 Prioritate OB86 Rack OB87 Comunicare

26 28

Ciclu background OB90 29 Pornire sau trecerea comutatoruluiDin START în STOP

OB100 OB101

27 27

Pentru informaţii asupra blocurilor care pot fi folosite pentru un automat dat se utilizează în STEP 7 Manager opţiunea Properties, aşa cum se va prezenta mai jos. De asemenea trebuie precizat că priorităţile pentru automatele din clasa S7-300 sunt fixe, ele pot fi modificate doar pentru clasa S7-400. Fiecare bloc OB primeşte informaţii de start într-un câmp de 20 octeţi, care sunt transferaţi către el de către SO. Aceste informaţii 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ă execuţia blocului de pornire fără erori, se va executa blocul OB1. Programul executat cuprinde: pornirea monitorizării timpului de ciclu, citirea intrărilor şi actualizarea PIIT (Process Image Input Table), procesarea instrucţiunilor din program (instrucţiuni conţinute în OB1 şi alte blocuri apelate de el), scrierea la ieşiri 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, căderea alimentării, apariţia 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 funcţii de sistem.

Primul ciclu al unui automat începe cu OB100, aşa cum se vede în fig. 19. Blocul OB100 poate fi folosit de către programatori pentru realizarea unor operaţii unice, cum este operaţia de introducere a marcajului iniţial în cazul în care se utilizează metoda activării şi dezactivării sincrone pentru proiectarea programului.

Fig. 19. Primul ciclu al unui automat din clasa S7-300

Timpul de ciclu (scan time) este timpul necesar sistemului de operare pentru execuţia programului ciclic şi a tuturor blocurilor care întrerup programul ciclic. Aşa cum se vede în fig. 20 timpul de ciclu nu este acelaşi la fiecare ciclu.

Page 19: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

19

Dacă utilizatorul a specificat un timp minim pentru ciclu (Tmin) şi acesta este mai mare decât timpul necesar procesării instrucţiunilor, 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 său de execuţie nu este monitorizat de sistemul de operare, aşa că nu se pot programa bucle de lungime mare în acest bloc.

Fig. 20. Cicluri de diferite lungimi

Fig. 21. Prelungirea unui ciclu cu un bloc de fond

Partea din programele utilizator care nu se execută ciclic va fi plasată în blocuri care nu se execută decât în anumite condiţii. 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 întârziere 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 săptămână, o dată pe lună sau o dată pe an. Pentru pornirea întreruperilor de acest tip trebuie mai întâi ca acestea să fie setate, iar apoi să fie activate. Există trei opţiuni 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 următoarele opţiuni: Non (în acest caz nici un bloc OB nu este procesat, chiar dacă este încărcat î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 funcţiei de sistem SFC30 (ACT_TINT) din programul utilizator;

Setarea prin apelarea funcţiei de sistem SFC28 (SET_TINT) şi activarea prin apelul funcţiei 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 întârziere care poate fi setată. Blocurile sunt pornite prin apelul funcţiei de sistem SFC32 (SRT_DINT), timpul de întârziere fiind un parametru al funcţiei. Atunci când se apelează SFC32, trebuie precizat numărul blocului OB, timpul în milisecunde şi un identificator specific dat de utilizator.

Page 20: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

20

În afara apelului funcţiei SFC32, utilizatorul mai trebuie să scrie blocul corespunzător (OB20 – OB23) şi să-l încarce ca parte a programului său. Aceste întreruperi sunt procesate doar în modul RUN. Se poate realiza o anulare a întreruperii, dacă ea nu a fost procesată, prin apelul funcţiei SFC33 (CAN_DINT). Utilizând funcţia SFC34 (QRY_DINT) se poate afla starea întreruperii. Utilizatorul poate dezactiva sau întârzia întreruperile de acest tip prin apelul funcţiilor SFC39 şi SFC42. În Step 7 Manager sunt nouă întreruperi ciclice prin intermediul cărora 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 având propriul bloc OB. Prin intermediul lui STEP 7 Manager se furnizează următoarele informaţii pentru fiecare semnal care este considerat generator de întrerupere:

Ce canal va fi triggerat şi în ce condiţii;

Care bloc OB va fi ataşat fiecărui canal individual.

Dacă apare o întrerupere hardware, sistemul de operare identifică întreruperea determinând care bloc OB este asociat întreruperii, iar în cazul în care nici o întrerupere de prioritate mai mare nu este activă, îl activează. Confirmarea executării întreruperii are loc după procesarea blocului. Utilizatorul poate dezactiva sau întârzia întreruperile de acest tip prin apelul funcţiilor SFC39 şi SFC42.

Trebuie ca utilizatorul să se asigure că fiecare OB ciclic rulează un timp mai mic decât intervalul de timp la care apare altă întrerupere ciclică. Dacă procesarea blocului nu este completă şi s-a scurs un timp, astfel încât blocul trebuie din nou apelat, se apelează blocul de eroare OB80.

1.7.2. Crearea unui proiect în Step7 Manager

La pornirea programului pe ecran va apare interfaţa din fig. 22. Fereastra conţine diferite componente ale mediului. Cea mai mare parte a spaţiului de lucru este rezervată ferestrei proiectului.

Fig. 22. Fereastra programului Step7 Manager

Page 21: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

21

Programul de consolă STEP 7 Manager ţine seama de particularităţile 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ă analizăm modul de realizare a unui program, utilizând o legătură cu cablu cu convertor între automat şi PC-ul unde rulează STEP 7 Manager. Vom presupune că programul este instalat şi că pe reţeaua 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 asemănător 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: Subreţele, staţii sau programe;

Nivelul 3: Depinde de obiectele de la nivelul 2.

Un exemplu de proiect cu mai multe nivele este prezentat în fig. 23.

Fig. 23. Proiect în STEP 7 Manager

Obiectul Project este entitatea care conţine toate datele despre o soluţie de automatizare. Acesta conţine la rândul lui obiectele prezentate în fig.22.

Obiectul Station cuprinde la rândul său obiectele Hardware şi Programmable Module. Obiectul Hardware permite introducerea într-un rack a automatului folosit, împreună cu modulele de extensie şi eventual configurarea unei reţele având în componenţă automatul care urmează a fi programat. Obiectul Programmable Module este în acelaşi timp un obiect, la nivelul Station şi un fişier-obiect, la nivelul Programmable Module. Obiectul Programmable Module conţine obiectul S7 Program (M7 Program), care la rândul său conţine obiectele Source File şi Blocks.

A realiza un proiect în STEP 7 Manager înseamnă a crea obiectele, a le seta proprietăţile dorite şi a scrie programele pentru blocurile componente.

Există două căi pentru realizarea unui proiect:

Page 22: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

22

Utilizarea unui Wizard, care porneşte automat la lansarea programului STEP 7 Manager, cu setările implicite;

Crearea manuală a proiectului.

Vom descrie în continuare modul manual de creare a unui proiect. Crearea manuală a proiectului presupune alegerea File→New 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.

Fig. 24. Fereastra New Project

La apăsarea butonului OK se revine în fereastra principală, unde se adaugă din meniu prin Insert →Station→Simatic 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 întâi un rack din listă şi ca urmare va apare fereastra din fig. 26.

Fig. 25. Fereastra my_proj după înserarea staţiei

Page 23: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

23

Fig. 26. Fereastra HW Config după introducerea unui rack

Apoi se introduce în slotul 2 al acestuia automatul care trebuie programat prin dublu clic pe acel automat, după ce a fost selectat slotul. După introducerea automatului în rack se pot vedea o serie de informaţii despre automatul selectat cum ar fi: adresele hardware implicite ale tuturor intrărilor, ieşirilor şi a altor module ale automatului setate de producător (fig. 27).

Fig. 27. Fereastra HW Config după introducerea automatului

Page 24: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

24

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, având în componenţa automatul ales şi un singur bloc, blocul OB1.

Fig. 28. Fereastra proiectului după introducerea automatului

Introducerea altor blocuri şi funcţii se poate face din meniu prin alegerea opţiunii 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 alegându-se Object Properties; va apare o fereastră în care se pot realiza o serie de setări ale unor parametri ai blocurilor de întreruperi de tip Time-of-Day, Cyclic Interrupts, Hardware Interrupts precum şi alte setări privind comunicaţia 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 schimbări ale adreselor variabilelor de intrare şi ieşire 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/ieşire. În prealabil trebuie realizată o deselectare a casetei System Default.

După efectuarea oricăror modificări, care se fac OFF-LINE acestea trebuie salvate în proiect şi apoi încărcate sub forma unor date de sistem în automat odată cu încărcarea programului.

Page 25: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

25

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 conţin acea parte a programului care poate fi apelată de mai multe ori în OB1. Parametrii formali şi statici ai unui bloc FB sunt salvaţi în blocuri de date DB separate.

Crearea unui bloc FB se face din fereastra principală prin alegerea opţiunii Insert→S7 Block→ Function Block, după care în fereastra din fig. 30 se introduce numele funcţiei, limbajul în care va fi scrisă funcţia şi dacă este prevăzută cu posibilităţi de apelare cu mai multe instanţe.

Fig. 30. Fereastra Properties pentru introducerea unui FB

Page 26: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

26

După crearea blocului se execută dublu clic pe bloc, ceea ce deschide editorul blocului. Fereastra editorului conţine, în partea de sus un tabel pentru declararea variabilelor locale şi în partea de jos porţiunea 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. Toţi parametrii de intrare/ieşire specifici ai blocului trebuie transferaţi din/în programul apelant.

Parametrii unui bloc FB sunt de cinci feluri: IN - în care caz reprezintă intrări ale blocului, OUT - în care caz reprezintă ieşiri ale blocului, IN_OUT - în care caz sunt parametrii de intrare/ieşire, STAT - în care caz sunt parametri statici şi TEMP - în care caz sunt parametrii temporari.

În timpul introducerii variabilelor va fi rezervat un spaţiu în stiva locală, pentru variabilele temporare, iar pentru variabilele de intrare/ieşire şi statice în instanţa 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 funcţii trebuie precedată de o analiză a caietului de sarcini al automatizării.

Un bloc este apelat în mai multe instanţe. 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. Funcţiile create cu acest editor nu pot avea mai multe instanţe. 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 către compilator la introducerea apelului de funcţie, numele acestuia trebuie stabilit de către programator. În cadrul unei instanţe a blocului de date se stabilesc valori iniţiale diferite pentru parametrii blocului.

Spre deosebire de FB, funcţiile FC sunt funcţii care nu au memorie proprie, parametrii actuali sunt salvaţi în stiva proprie. Crearea unui bloc FC se face în mod asemănător cu crearea unui bloc FB. Spre deosebire de FB, funcţiile 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 când 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 opţiunea: Insert→S7 Block →Data Block. Ca urmare a alegerii acestei opţiuni se deschide o fereastra, în care se poate alege numele blocului şi tipul acestuia.

Blocurile de date din STEP 7 Manager nu pot conţine instrucţiuni. Ele conţin doar secţiunea 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 fiecărui apel de FB. Parametrii actuali şi datele statice sunt salvaţi într-o instanţă a blocului de date. Înainte de a crea un bloc de date de tip instanţă trebuie creat blocul FB corespunzător. Dacă acest lucru nu se întâmplă STEP 7 Manager îl creează în mod automat.

Page 27: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

27

Blocurile de date partajate pot fi utilizate de toate blocurile unui program. Valorile iniţiale ale variabilelor dintr-un bloc de date sunt valorile care sunt încărcate în automat la încărcarea blocului şi la prima modificare, sunt alterate. La o nouă pornire a automatului nu se revine la valoarea iniţială a variabilei. Acest lucru se întâmplă numai dacă se reîncarcă blocul de date. Blocurile de date de tip partajat conţin structuri care pot fi definite de programator la crearea blocului. Aceste structuri pot conţine 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 adresării elementelor unei structuri, numele structurii fiind numele blocului de date. Blocurile de date de tip instanţă conţin variabile simple care reprezintă parametrii actuali ai blocurilor de tip FB şi variabilele statice ale acestora.

Observaţie:

Tehnica de programare încurajată de acest mod de organizare a sistemului de operare a programului Step7 Manager este bazată pe împărţirea automatizării în taskuri individule. La rândul lor aceste taskuri pot fi împărţite în sub-taskuri. Tehnica de programare se bazează pe identificarea relaţiilor şi interblocărilor între acestea, ceea ce conduce la complicaţii greu de depăşit pentru programatorii începători, cerând multă experienţă.

Programul Step7 Manager permite utilizarea metodelor structurate de programare, pornind de la graful automatizării, care sunt mai indicată pentru programatorii cu mai puţină experienţă.

1.7.3. Programarea în Step7 GRAPH

Pentru a putea elabora un program în limbajul SFC pentru automatul programabil S7-300 trebuie să se creeze mai întâi un proiect nou. Blocul de bază al fiecărui proiect este OB1, care poate fi editat doar în limbajele LAD, FBD sau STL. De aceea, în mediul Step 7 Manager programele în limbajul SFC se introduc sub forma unor funcţii bloc. Pentru a crea un graf trebuie să se selecteze obiectul Blocks din arborele proiectului şi apoi opţiunea Insert →S7 Block → Function Block. În fereastra care apare (fig. 31.) trebuie apoi ales numele funcţiei bloc (aici FB3) şi limbajul în care se va programa blocul ( în cazul de faţă GRAPH). Apăsând butonul OK, funcţia bloc va fi creată şi aceasta poate fi apoi programată efectuând dublu-clic pe aceasta.

Fig. 31. Crearea unei funcţii bloc în limbajul GRAPH

Page 28: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

28

În fereastra care se deschide, va apărea un graf format dintr-o singură etapă (etapa iniţială) şi o tranziţie (fig. 32.).

Fig. 32. Iniţial funcţia bloc conţine o etapă (S1 – Step1) şi o tranziţie (T1)

Există trei moduri în care poate fi vizualizată funcţia bloc, acestea pot fi selectate din meniul View, şi anume:

Sequencer : se vizualizează întreg graful;

Single Step: se vizualizează fiecare etapă separat;

Permanent instructions : se vizualizează instrucţiunile permanente care se execută fie înainte, fie după execuţia grafului.

Funcţiile de parcurgere a tranziţiilor pot fi programate în limbajele LAD sau FBD. Acest aspect poate fi setat folosind opţiunea Options → Application Settings…(fig. 33.). La pagina General poate fi setată această opţiune (în zona Conditions in New Blocks). O altă opţiune importantă se găseşte la pagina Compile/Save, unde poate fi setată varianta în care va fi introdusă funcţia bloc atunci când aceasta este apelată. Deoarece un graf este o funcţie bloc şi nu un program (bloc organizaţional – OB), pentru ca acesta să se execute, el trebuie mai întâi apelat (iniţializat). De aceea funcţia bloc corespunzătoare grafului trebuie apelată într-un bloc organizaţional (de obicei OB1) şi numai apoi graful va evolua conform regulilor generale de evoluţie a unui graf. Dacă la apelarea funcţiei bloc, nu se doreşte decât iniţializarea grafului, atunci la pagina Compile/Save, secţiunea FB Parameters trebuie aleasă opţiunea Minimum. În acest fel la apelare, funcţia bloc va avea o singură intrare şi nici o ieşire (pe lângă intrarea EN şi ieşirea ENO). Acestei intrări (denumită INIT_SQ) trebuie să i se transmită valoarea 1 logic atunci când se doreşte iniţializarea grafului.

Fig. 33. Fereastra Application Settings

Page 29: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

29

1.7.3.1. Construirea grafului

După ce toate aceste opţiuni au fost setate, se poate trece la construirea grafului (regulile de construire a unui graf sunt aceleaşi cu cele din recomandările IEC). Comenzile necesare construirii grafului se găsesc în meniul din stânga ferestrei. În tabelul următor vom prezenta opţiunile împreună cu semnificaţiile lor şi cu condiţiile în care pot fi selectate.

Simbol Semnificaţie Condiţie în care poate fi selectat

Introducerea unei eta-pe şi a unei tranziţii

Se selectează etapa sau tranziţia după care se doreşte introducerea perechii etapă + tranziţie

Introducerea unui salt Se selectează o tranziţie (după care nu urmează

nici o etapă). Trebuie specificată etapa câtre care se efectuează saltul (Si)

Terminarea ramurii actuale

Se selectează o tranziţie (după care nu urmează nici o etapă)

Introducerea unei ra-muri alternative (diver-genţă OR)

Se selectează etapa dinaintea divergenţei OR

Încheierea unei ramuri alternative (conver-genţă OR)

Se selectează ultima tranziţie dinaintea convergenţei OR a ramurii din dreapta

Introducerea unei ramuri paralele (diver-genţă AND)

Se selectează tranziţia dinaintea divergenţei AND (cu condiţia ca după acea tranziţie să mai existe cel puţin o etapă)

Încheierea unei ramuri paralele (convergenţă AND)

Se selectează ultima etapă dinaintea convergenţei AND a ramurii din dreapta

1.7.3.2. Programarea condiţiilor de parcurgere a tranziţiilor

După ce s-a construit graful, se poate trece la programarea condiţiilor de parcurgere a tranziţiilor. Elementele care se vor folosi în acest caz se găsesc tot în meniul din stânga şi sunt prezentate în următorul tabel (pentru cazul în care se alege programarea în limbajul LAD).

Simbol Semnificaţie

Contact normal deschis

Contact normal închis

Deschiderea unei ramuri paralele (pentru realizarea unei condiţii 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 foloseşte operandul Stepi.T.

Comparator între timpul de activitate al etapei (timpul scurs de la ultima activare a etapei, respectiv de la ultima perturbaţie apărută) şi un interval de timp oarecare. Se foloseşte operandul Stepi.U.

Page 30: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

30

Obs.: Ultimele două comparatoare pot fi realizate şi folosind comparatorul simplu, diferenţa fiind că în cazul ultimelor două comparatoare parametrii sunt introduşi automat. În figura următoare se prezintă modul în care se introduce o condiţie de parcurgere a unei tranziţii pentru cazul în care tranziţia trebuie parcursă la un anumit timp de la ultima activare a etapei anterioare.

Fig. 34. Parcurgerea unei tranziţii la 100ms după activarea etapei 4

Se observă faptul că timpul scurs de la ultima activare a unei etape poate fi adresat prin operandul Stepi.T unde i reprezintă numărul etapei. Se poate de asemenea folosi operandul Stepi.U care reprezintă acelaşi lucru ca şi Stepi.T doar că în cazul apariţiei unei perturbaţii (eroare de supervizare sau de interblocare), cronometrarea este reluată de la 0. Un al treilea operand foarte important, utilizat des în condiţiile de parcurgere a tranziţiilor 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 când tranziţia i are atât condiţia de validare cât şi cea de parcurgere adevărată, respectiv când tranziţia este parcursă. În cazul contactelor, operanzii pot fi adrese de intrare, de ieşire sau de memorie internă, sau variabile definite în Symbol Table. În cazul comparatorului se poate folosi orice operator logic dintre următorii: >,<,==,>=,<=,<>.

1.7.3.3. Specificarea acţiunilor

În continuare vom descrie modul în care se pot asocia una sau mai multe acţiuni unei etape şi tipurile acţiunilor. Pentru a se asocia o acţiune unei etape, se va selecta dreptunghiul de lângă etapă care conţine şi numele etapei (de exemplu în figura 32 Step 1). Se efectuează clic-dreapta şi se alege Insert New Element→Action. Ca urmare vor apărea dedesubt două dreptunghiuri, ca în figura 35.

Fig. 35. Căsuţa cu acţiuni după adăugarea unei noi acţiuni

În dreptunghiul din stânga se va introduce tipul acţiunii, iar în cel din dreapta acţiunea propriu-zisă.

Vom prezenta în tabelul ce urmează tipurile de acţiuni care sunt disponibile în Step 7 Manager.

Tipul acţiunii Semnificaţie

N Acţiune nememorată, se execută atât timp cât etapa este activă S Acţiune memorată (de setare), se va executa până când se realizează o

resetare R Acţiune memorată (de resetare), acţiunea va rămâne resetată până se

realizează o setare D Acţiune întârziată, se execută dacă etapa este activă, dar numai la un anumit

timp de la activarea etapei L Acţiune limitată, se execută dacă etapa este activă, dar numai un anumit timp

de la activarea etapei

Page 31: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

31

CALL Apelarea unei proceduri (FB, FC, SFB, SFC) S1 Acţiune executată o singură dată la activarea unei etape S0 Acţiune executată o singură dată la dezactivarea unei etape

Acţiunea propriu-zisă poate fi o zonă de memorie de intrare, ieşire, memorie internă sau o variabilă declarată în Symbol Table.

În cazul acţiunilor întârziate şi limitate, trebuie specificat şi un timp sub forma T#xHxxMxxSxxxMS.

De exemplu:

Fig.36. Acţiune întârziată

În acest caz, ieşirea 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 acţiuni speciale, care sunt prezentate în următorul tabel.

Tipul acţiunii Semnificaţie

CS Contorul este încărcat cu valoarea iniţială CU Valoarea contorului este incrementată CD Valoarea contorului este decrementată CR Contorul este încărcat cu valoarea zero

Fiecare dintre aceste acţiuni 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 acţiuni de încărcare cu o anumită valoare (aici 0) a unui contor

În acest caz, contorul C1 este încărcat cu valoarea 0 (C#0). Apoi dacă se doreşte parcurgerea unei tranziţii în funcţie de valoarea unui contor, este necesar să se compare valoarea contorului cu o valoare oarecare.

1.7.3.4. Specificaţii suplimentare

În cazul în care un program este alcătuit din mai multe grafuri interdependente (de exemplu în cazul în care condiţiile de parcurgere a tranziţiilor unui graf implică variabilele booleene asociate etapelor celuilalt graf), atunci cele două grafuri trebuie incluse în cadrul aceleiaşi funcţii bloc. Pentru aceasta se efectuează clic-dreapta în spaţiul de lucru şi se alege opţiunea Insert New Element → Sequencer. În acest fel se pot introduce oricâte grafuri paralele.

În cazul în care un graf trebuie să conţină mai multe etape iniţiale, se va proceda în felul următor: se selectează etapa care trebuie să devină etapă iniţială, se efectuează clic-dreapta şi se alege opţiunea Object Properties, iar aici se bifează opţiunea Initial step. În acest fel oricâte etape ale unui graf pot deveni etape iniţiale.

Page 32: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

32

De asemenea în Step 7 Manager se pot specifica o serie de instrucţiuni permanente (în LAD sau FBD) care să se execute înaintea sau după executarea grafului. Instrucţiunile permanente sunt executate o dată la fiecare ciclu, indiferent de starea grafului. Aceste instrucţiuni permanente sunt de două tipuri: condiţii sau apeluri de proceduri. Condiţiile sunt de fapt reţele în limbajul LAD. Pentru a introduce instrucţiuni permanente, trebuie să se selecteze în organizatorul de obiecte pagina Graphic şi apoi una din opţiunile:

Permanent instructions before sequencer;

Permanent instructions after sequencer.

Fig. 38. Exemplu de instrucţiune permanentă

Apoi în fereastra de lucru, în cadrul dreptunghiului intitulat Permanent instructions before/after sequencer se efectuează clic-dreapta şi se alege opţiunea Insert New Element → Permanent Instruction → Condition respectiv Call.

În final funcţia bloc trebuie salvată, astfel se va realiza automat şi compilarea, şi se va genera şi obiectul DB corespunzător dacă în urma compilării nu au rezultat erori.

Rămâne doar ca funcţia bloc, respectiv graful sau grafurile (în cazul în care funcţia bloc conţine mai multe grafuri paralele), să fie iniţializat. Pentru aceasta se va apela funcţia bloc în blocul OB1.

Fig. 39. Apelarea unei funcţii bloc (editată în limbajul GRAPH) în OB1

Observaţie: Variabila ini este o variabilă care trebuie să devină 1 logic atunci când se doreşte aducerea grafului în starea iniţială (etapele iniţiale ale grafului să devină active). Aceasta se întâmplă fie la pornirea sistemului, fie după apariţia unei avarii.

1.8. Prezentarea modului de programare în AC1131

1.8.1. Crearea unui proiect în AC1131

Cunoscuta firmă ABB produce mai multe serii de unităţi centrale: seria 40, seria 50, seria 70 şi seria 90. Seriile 40 şi 50 sunt destinate aplicaţiilor de mică şi medie complexitate cu până la 110 intrări/ieşiri. Seria 90 este destinată aplicaţiilor de mare complexitate cu peste 1000 intrări/ieşiri.

În cele ce urmează ne vom referi la seria 90 de AP, în special la modelul 07 KT 97. Mediul de programare necesar este AC 1131 şi este în concordanţă cu recomandările IEC 61131. Limbajele suportate de acest mediu reprezintă toată gama de limbaje recomandate de IEC: IL, LD, FBD, SFC şi ST. Programarea acestor automate este uşor de realizat şi depanat, mai ales din cauza simulatorului OFF-LINE.

Page 33: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

33

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 legătură serială între AP şi PC prin cablul furnizat de firma ABB.

La lansarea programului AC 1131 apare fereastra programului (fig. 40) care conţine următoarele elemente:

Bara de meniu (Menu bar), localizată în partea de sus care conţine toate comenzile;

Bara de unelte (Tool bar), care se află sub bara de meniu şi care conţine butoane pentru selectarea rapidă a comenzilor;

Organizatorul de obiecte (Object organizer), care este în partea stângă şi care conţine în partea de jos patru posibilităţi de selectare a obiectelor unui program;

Spaţiul 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 atenţionările de la compilare;

Bara de stare (Status bar) care conţine informaţii despre starea curentă a programului.

Fig. 40. Elementele ferestrei a programului AC 1131

Pentru realizarea unui program care să poată fi încărcat într-un automat ABB este necesar să se creeze în mediul de programare un proiect.

Proiectul conţine următoarele obiecte necesare unui program:

POU (Program Organization Unit);

Tipuri de date (Data Type);

Page 34: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

34

Vizualizări (Visualization);

Resurse (Resources).

Funcţiile, blocurile de funcţii şi programele sunt POU. Fiecare din ele conţine o parte de declaraţii şi corpul propriu-zis. Toate variabilele care se utilizează într-un POU sunt declarate în zona de declaraţii 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 funcţie, dar nu este permisă apelarea unui program dintr-o funcţie. Dacă un program cheamă un alt program şi în acest mod variabilele din acesta se schimbă, atunci aceste valori sunt memorate până 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ă conţină acest program special. El este apelat de către sistemul de operare al automatului la fiecare ciclu. Ştergerea acestui program se poate face numai atunci când se realizează o configurare de taskuri, în cazul în care se adoptă o strategie multitasking de elaborare a aplicaţiei. Vom preciza aceste lucruri mai jos.

O funcţie este un POU, care întoarce o singură dată. Aceasta poate fi alcătuită din mai multe câmpuri ale unei structuri. Declararea unei funcţii înseamnă asocierea cu un nume şi un tip. Numele funcţiei este chiar valoarea întoarsă de funcţie. Declaraţia unei funcţii are următoarea sintaxă:

FUNCTION <nume>:<tip> <corpul funcţiei> END_FUNCTION

Valorile transmise funcţiei trebuie declarate în partea de declaraţii a unei funcţii. Pentru o funcţie nu se pot prevedea valori de ieşire.

Un Function Block este un POU, care furnizează una sau mai multe valori sub forma parametrilor de ieşire. Atunci când se declară un Function Block, trebuie să i se precizeze numele, iar valorile de intrare şi de ieşire trebuie precizate în partea de declaraţii a acestuia.

Etapele pentru crearea şi încărcarea în AP unui proiect sunt următoarele:

Crearea unui proiect se face în fereastra principală, alegând în Object Organizer pagina POU. Apoi se alege File→New, din meniul principal. După alegerea acestei opţiuni 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 următoarele obiecte globale, în fişierul Global variables din pagina Resources: o Obiectul Systemkonstanten, care conţine variabilele sistem. Aceste variabile sunt

folosite pentru setarea bufferelor de transmisie şi recepţie, în cazul funcţionării în reţea a automatului, monitorizarea taskurilor, monitorizarea funcţiilor pentru lucrul în virgulă mobilă, configurarea intrărilor şi ieşirilor analogice, configurarea modului de funcţionare a contoarelor de mare viteză. Valorile acestora sunt iniţializate cu valori date. Pentru a schimba configurarea, trebuie modificate aceste valori, în conformitate cu documentaţia pusă la dispoziţie de firmă;

o Obiectul Fehlermerker conţine flagurile erorilor de sistem;

Page 35: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

35

o Obiectul Auslastung conţine flaguri care reflectă utilizarea automatului; o Obiectul Global_Variables este un obiect gol, în care se pot introduce variabilele

globale ale programului. În cadrul paginii de resurse se selectează Global_Variables şi se selectează din meniu Project Import. Se alege fişierul de importat, care în cazul lui 07 KT 97 va fi K97_onb.exp. Acest fişier conţine declaraţiile pentru toate intrările şi ieşirile automatului. Deschizând cu dublu clic acest fişier, se pot vedea numele simbolice care pot fi folosite pentru intrări şi ieşiri;

Fig. 41. Fereastra Select CPU

Proiectul creat conţine şi o bibliotecă IEC_S90_V41.lib. În această bibliotecă se găsesc o serie de obiecte: bistabile, contoare, funcţii pentru manipularea stringurilor, timere şi triggere. Pentru a putea folosi şi alte obiecte se pot încărca biblioteci disponibile în cadrul programului de consolă. Acest lucru se poate face utilizând Insert→ Additional Library. Conţinutul fiecărei biblioteci se poate vedea imediat după încărcare în Library Manager. Tot aici se găsesc informaţii despre utilizarea obiectelor componente.

Fig. 42. Fereastra New POU

Se revine în pagina POU şi se trece la editarea programului PLC_PRG. Editarea acestuia se face prin lansarea automată a editorului corespunzător limbajului pentru care s-a optat la crearea programului.

1.8.2. Editoarele mediului AC1131

Editorul de text

Editorul de text va fi folosit pentru toate limbajele de programare. El prezintă principalele facilităţi ale editoarelor de text din Windows. În plus prezintă facilitatea Syntax Colouring, adică

Page 36: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

36

diferite elemente ale limbajului sunt prezentate în culori diferite. Culorile folosite implicit sunt următoarele:

Albastru, pentru cuvinte cheie;

Verde pentru comentarii în partea de declarare;

Gri, pentru comentarii în editor (în LD şi FBD) ;

Roz, pentru adrese;

Roşu, pentru erori;

Negru, pentru variabile, operatori de asignare etc.

Principalele comenzi ale editorului se găsesc într-un meniu contextual, care poate fi afişat la apăsarea butonului drept al mouse-ului.

Comentariile sunt incluse în secvenţe speciale “(*” si “*)”.

Exemplu: (*Acesta este un comentariu.*)

Comentariile sunt permise în toate editoarele de text, în orice loc se doreşte, adică în toate declaraţiile din limbajele IL, ST precum şi în tipurile de date definite de utilizator. În limbajele FBD şi LD se pot introduce comentarii pentru fiecare reţea. Pentru a realiza acest lucru trebuie selectată reţeaua căreia i se va ataşa comentariul şi apoi se alege comanda Insert → Comment din bara de meniuri.

Constantele se identifică prin cuvântul cheie CONSTANT şi se pot declara local sau global în felul următor:

VAR CONSTANT <Identifier>:<Type>:=<initialization>; END_VAR

Exemplu:

VAR CONSTANT c1 : REAL :=2.86; (* 1. Constant*) END_VAR

Editoarele pentru limbajele LD şi FBD

Aceste editoare sunt editoare semi-grafice, programele fiind alcătuite din reţele. La deschiderea editorului, pe ecran apare o singură reţea. Se pot adăuga noi reţele prin alegerea uneia dintre opţiunile Insert→Network (before) sau Insert→Network (after). Zona activă din cadrul unei reţele este marcată printr-un dreptunghi cu linie punctată. La introducerea unui obiect, acesta se va plasa în zona marcată.

Editorul SFC

Un POU scris în SFC este alcătuit dintr-o serie de etape, conectate între ele prin arce şi tranziţii, cu respectarea regulilor din IEC1131. La deschiderea editorului SFC apare automat o etapă iniţială şi o tranziţie. Etapele sunt de două feluri:

Etape simple, care au asociată o acţiune şi un flag. Acesta din urmă indică dacă etapa este activă. Acţiunile unei etape simple pot fi implementate în orice limbaj, prin realizarea unui dublu clic pe etapă. Dacă acţiunea unei etape simple a fost implementată atunci va apare un triunghi în colţul din dreapta sus al etapei;

Etape IEC, care au asociate una sau mai multe acţiuni şi un flag care indică starea etapei. O etapă IEC are o acţiune ataşată, care se găseşte într-un dreptunghi la

Page 37: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

37

dreapta etapei. Se pot adăuga mai multe acţiuni utilizând Extras Associate→Action. În cadrul unei etape acţiunile pot avea mai multe atribute, care apar într-un dreptunghi din stânga acţiunii:: o N – acţiune nememorată sau booleană, care este activă atât timp cât etapa este

activă; o S – acţiune de setare, care acţiune memorată. O astfel de acţiune rămâne activă

până la o acţiune de resetare; o R – acţiune de resetare; o L – acţiune limitată în timp. O astfel de acţiune este activată o perioadă limitată

în timp, dacă etapa este activă; o D – acţiune întârziată în timp. O astfel de acţiune devine activă după trecerea

unui timp dat după activarea etapei; o P – acţiune în impuls. O astfel de acţiune este executată o singură dată la

activarea etapei, sub forma unui puls care durează un singur ciclu; o SD – acţiune memorată şi întârziată în timp. O astfel de acţiune este întârziată

cu valoarea parametrului SD şi va rămâne activă până la efectuarea unei acţiuni de resetare. Setarea acţiuni are loc, după întârzierea dată, chiar dacă etapa de care este legată nu mai este activă;

o SL – acţiune memorată şi limitată în timp. O astfel de acţiune 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 ataşată care este de forma unei constante de timp. Aceasta se introduce în dreptunghiul destinat atributului lăsând un spaţiu între atribut şi constantă (fig. 43)

Fig. 43. Declararea atributelor unei etape

Pentru etapele IEC se mai pot adăuga acţiuni de intrare şi de ieşire. O acţiune de intrare se execută o singură dată la activarea etapei, iar o acţiune de ieşire se execută o singură dată la dezactivarea etapei.

Adăugarea unei etape de intrare se face selectând etapa şi alegând din meniu opţiunea Insert→Add Entry-Action. După adăugarea unei acţiuni de intrare în colţul din stânga jos al etapei apare un dreptunghi cu litera E. Adăugarea unei etape de ieşire se face selectând etapa şi alegând din meniu opţiunea Insert→Add Exit-Action. După adăugarea unei acţiuni de ieşire în colţul din dreapta jos al etapei apare un dreptunghi cu litera X. O acţiune de intrare sau ieşire poate fi scrisă în orice limbaj. Pentru a edita o acţiune de intrare sau de ieşire se execută un dublu clic pe colţul corespunzător. Un exemplu de etapă cu acţiuni de intrare şi ieşire este prezentat în fig. 44.

Fig. 44. Exemplu de etapă cu acţiuni de intrare şi ieşire

Î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, fără atributul IEC această variabilă implicită are numele <nume etapa>. Variabila <nume etapa>.t este o variabilă

Page 38: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

38

de tip TIME şi reprezintă timpul scurs de la activarea etapei. Variabila <nume actiune>.x oferă posibilitatea de a vedea dacă o acţiune este activă sau nu, ea având valoarea TRUE dacă acţiunea este activă. Dacă o etapă este activă un număr de indicatori sunt setaţi. Aceştia sunt în acelaşi 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 ieşire. Cele mai importante flaguri sunt:

SFCInit, variabilă de tip BOOL. Atunci când această variabilă este setată în TRUE se trece automat în etapa iniţială şi celelalte flaguri sunt resetate. Etapa iniţială este activă dar nu se execută;

SFCPause, variabilă de tip BOOL. Atunci când această variabilă devine TRUE execuţia 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ă conţine 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ă tranziţia la care se doreşte realizarea unei ramuri paralele. Apoi se alege opţiunea Insert→Alternative Branch. Această opţiune va introduce în paralel cu tranziţia selectată o altă tranziţie. Dezvoltarea ulterioară a fiecărei ramuri paralele se face prin Insert→Step-Transition.

Pentru editarea unei ramuri simultane trebuie selectată etapa pentru care se doreşte realizarea unei ramuri simultane. Apoi se alege opţiunea Insert→Parallel Branch. Această opţiune va introduce în paralel cu etapa selectată o altă etapă. Dezvoltarea ulterioară a fiecărei ramuri simultane se face prin Insert→Step-Transition.

Se vede că, pentru evitarea greşelilor, inserarea elementelor etapă şi tranziţie se face simultan. De asemenea ştergerea unui singur element nu este permisă. Se poate realiza o ştergere doar dacă se selectează elemente pereche (etapă-tranziţie) sau dacă prin ştergere nu se încalcă regulile de construcţie GRAFCET.

1.8.3. Definirea sarcinilor (taskurilor)

În mod normal derularea unui program pe un automat programabil este de tip sincron, adică există un singur fir reprezentat de programul ciclic. Acesta poartă diferite nume: OB1, în cazul automatelor firmei SIEMENS, Main, în cazul automatelor OMRON, PLC_PRG, în cazul automatelor ABB.

La automatele ABB există posibilitatea realizării mai multor fire (taskuri) de execuţie utilizând Task Configuration, care este un obiect în cadrul pagina Resources, din Object Organizer.

Pentru a putea utiliza un task, acesta trebuie declarat. Prin declararea unui task se înţelege setarea unor atribute ale acestuia:

Atribuirea unui nume;

Stabilirea unei priorităţi;

Stabilirea intervalului de activare ciclică a taskului;

Stabilirea unei variabile globale pe a cărui front crescător este activat taskul.

Page 39: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

39

Aceste atribute pot fi declarate într-o fereastră care se deschide atunci când se alege opţiunea Insert→Append Task. În fereastra Taskattributes, care se deschide (fig. 45) se pot seta atributele de mai sus.

Fig. 45. Fereastra Taskattributes

Numele taskului este un identificator şi este numele programului care reprezintă taskul. Pentru fiecare task trebuie să se ataşeze cel puţin un program, care este apelat atunci când taskul este activ. Prioritatea taskului este un număr cuprins între 0 şi 31. Prioritatea cea mai mare dintre două taskuri cu numere diferite o are acela a cărui număr este mai mic. Intervalul se introduce sub forma unei constante de tip TIME. În caseta Single se introduce variabila pe al cărei front crescător se va activa taskul. Dacă se introduce la un task atât o variabilă de activare cât şi un interval de activare, atunci numai intervalul de activare va fi luat în considerare.

Regulile de execuţie a mai multor taskuri sunt:

Se execută acel task care are condiţia îndeplinită: fie s-a scurs timpul de activare, fie variabila stabilită pentru activare a avut un front crescător;

Dacă două taskuri au condiţii de activare simultane atunci mai întâi se execută taskul cu prioritatea cea mai mare;

Dacă două taskuri au condiţii de activare simultane şi aceeaşi prioritate, atunci se execută taskul care a stat mai mult în coada de aşteptare, ceea ce însemnă că priorităţile sunt dinamice şi bazate pe vârstă.

Facilitatea de a putea avea mai multe taskuri este deosebit de utilă mai ales pentru realizarea acţiunilor la avarii a unui sistem condus de automatul programabil.

Un alt mod de utilizare a taskurilor, activate pe fronturi crescătoare ale unor variabile este acela în care se doreşte realizarea unor programe care să conţină părţi de reglare a condiţiilor de funcţionare sau un mod de lucru manual al sistemului.

1.8.4. Finalizarea proiectului

După ce întreg programul a fost redactat, acesta trebuie compilat prin alegerea opţiunii Project→ Build din bara de meniuri. După ce compilarea a avut loc, se va afişa un mesaj în fereastra de mesaje situată în partea de jos a ecranului. Dacă în urma compilării au fost găsite erori, acestea vor fi enumerate în fereastra de mesaje împreună cu numele POU şi numărul rândului unde a apărut fiecare eroare.

Odată ce toate erorile au fost eliminate, proiectul poate fi încărcat pe automatul programabil. Pentru aceasta trebuie stabilită în prealabil o conexiune cu AP prin legătură serială.

Se vor seta apoi parametrii de comunicare prin opţiunea Online→ Communication Parameters…(fig. 46), de unde se alege comanda New, iar în fereastra care apare se va alege opţiunea Serial(RS232).

Page 40: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

40

Se vor specifica de asemenea portul (COM1, COM2, etc.) şi viteza de transmisie (în acest caz 19200).

Fig. 46. Specificarea parametrilor de comunicare

Încărcarea are loc prin alegerea opţiunii Online→Login şi apoi Online→Download din bara de meniuri. În continuare se poate realiza o monitorizare on-line a programului, putându-se chiar modifica starea variabilelor.

Este indicat însă, ca înaintea încărcării unui proiect pe automat să se realizeze simularea offline a acestuia, procedându-se în felul următor: în meniul Online se alege Simulation Mode, apoi în acelaşi 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 următoare se observă că una dintre intrări fiind în starea TRUE la rândul ei ieşirea devine TRUE.

Fig. 47. Modul de simulare a unui proiect

Page 41: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

41

1.9. Prezentarea modului de programare în easy Soft CoDeSys

1.9.1. Introducere în mediul de programare CoDeSys

Easy Soft CoDeSys (Controlled Development System) este un mediu de programare pentru automatele programabile ale firmei Moeller.

Folosind acest mediu, se pot dezvolta programe pentru automatizarea celor mai complexe sarcini din toate ramurile industriei.

Limbajele suportate de acest mediu reprezintă toată gama de limbaje recomandate de IEC: IL, LD, FBD, SFC şi ST, având în plus şi limbajul CFC.

Tipurile de variabile disponibile în mediul de programare CoDeSys sunt cele din standardul IEC: BOOL, BYTE, DATE, DINT, DWORD, INT, LREAL, REAL, SINT, STRING, TIME, UDINT, USINT, WORD.

1.9.2. Crearea unui proiect

Pentru a crea un nou proiect se va proceda în felul următor:

Se alege File→New, din meniul principal;

Apoi se va deschide automat fereastra Target Settings (Fig. 48). În această fereastră trebuie să se aleagă tipul de automat din lista automatelor Moeller care pot fi programate cu soft-ul CoDeSys. După ce se selectează automatul şi se apasă butonul OK, fereastra Target Settings (Fig. 49) se va extinde şi se vor putea seta diferite opţiuni, ca de exemplu: Target Platform, Memory Layout, General, Network Functionality şi Visualization. În cadrul acestui proiect se va dori de asemenea realizarea unei comunicări cu un panou operator al firmei MicroInnovation. Pentru a putea realiza acest lucru trebuie bifată opţiunea Download Symbol file de la pagina General. După selectarea opţiunilor dorite se apasă butonul OK;

Astfel va apărea fereastra New POU (Fig. 50), unde trebuie specificat numele POU-ului.

În cazul în care se va lăsa nemodificat numele POU-ului (PLC_PRG), proiectul va conţine un singur POU care se va executa ciclic nemaifiind necesară o configurare a task-urilor

În cazul în care se modifica numele POU-ului va fi necesară o configurare a task-urilor.

După specificarea numelui POU-ului se va alege tipul acestuia (Program, Function Block sau Function) şi limbajul în care va fi scris acesta (IL, LD, FBD, SFC, ST sau CFC). După ce au fost selectate şi aceste opţiuni se apasă din nou OK.

Fig. 48. Alegerea tipului de automat

Page 42: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

42

Fig. 49. Setarea diferitelor opţiuni referitoare la automatul selectat

Fig. 50. Fereastra New POU

Un proiect este format din următoarele patru componente:

POU (Program Organization Block);

Tipuri de date (Data Type);

Vizualizări (Visualization);

Resurse (Resources).

Comutarea între cele patru componente se va realiza cu ajutorul organizatorului de obiecte descris mai sus, fiecărei componente corespunzându-i un tab. În continuare prin POU vom face referire la funcţii, funcţii bloc şi programe propriu-zise. Fiecare din ele conţine o parte de declaraţii (header) şi corpul propriu-zis. Toate variabilele locale care se utilizează într-un POU sunt declarate în zona de declaraţii sub forma prezentată în paragraful anterior. Fiecare dintre POU-uri poate fi scris în oricare din limbajele acceptate de mediu.

Page 43: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

43

POU de tip program

Un program poate apela alt program sau o funcţie, dar nu este permisă apelarea unui program dintr-o funcţie. În cazul în care un program apelează un alt program şi în acest mod variabilele locale ale acestuia se schimbă, atunci aceste valori sunt memorate până la un nou apel al acelui program chiar dacă va fi apelat de un alt POU.

La crearea unui nou proiect se va genera în mod automat un POU de tip program intitulat PLC_PRG. Fiecare proiect trebuie să conţină un POU de tip program cu acest nume, el fiind apelat de către sistemul de operare al automatului la fiecare ciclu. Ştergerea acestui program se poate face numai atunci când se realizează o configurare de sarcini (task-uri), aceasta fiind impusă în cazul în care se adoptă o strategie multitasking de elaborare a aplicaţiei. Aspectele legate de task-uri sunt prezentate în subcapitolul 1.9.5.

POU de tip funcţie bloc

O funcţie bloc este un POU, care furnizează una sau mai multe valori prin intermediul variabilelor de ieşire. Atunci când se declară o funcţie bloc, trebuie să i se precizeze numele, iar variabilele de intrare şi de ieşire trebuie precizate în partea de declaraţii a acesteia. Definirea unei funcţii bloc începe cu cuvântul cheie FUNCTION_BLOCK. Pentru a apela o funcţie bloc trebuie creată o instanţă a acesteia.

Obs: pentru a asigura funcţionarea corectă a contoarelor este necesar ca acestea să fie prevăzute pe intrarea de numărare cu un bloc de sesizare a frontului crescător (Fig. 51).

Exemplu:

Fig. 51. Modul de utilizare a unui contor în limbaj LD

În acest caz funcţia bloc predefinită CTD (contor de tip Count Down) a fost instanţiată cu numele contor.

POU de tip funcţie

O funcţie este un POU, care întoarce o singură valoare. Aceasta poate fi alcătuită din mai multe câmpuri ale unei structuri.

Valoarea întoarsă de funcţie este reprezentată chiar de numele funcţiei.

1.9.3. Definirea variabilelor globale

Fiecare proiect va conţine şi o lista de variabile globale, care vor putea fi folosite de toate obiectele de tip POU. Avantajul utilizării acestor variabile este acela că pot fi transferate valori foarte uşor între diferite POU-uri. Variabilele globale vor fi declarate într-o listă specială denumită Global_Variables (Fig. 52).

Pentru a accesa această lista se va proceda în felul următor:

Page 44: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

44

Se alege pagina Resources;

Se efectuează dublu clic pe ramura Global Variables a fişierului Global Variables.

Fig. 52. Modul de declarare a variabilelor globale

În cadrul acestei liste, variabilele se vor defini conform prototipului precizat mai sus.

1.9.4. Editoarele mediului CoDeSys

Editorul de text

Editorul de text va fi folosit pentru toate limbajele de programare. El prezintă principalele facilităţi ale editoarelor de text din Windows. În plus prezintă facilitatea Syntax Coloring, adică diferite elemente ale limbajului sunt prezentate în culori diferite. Culorile folosite implicit sunt următoarele:

Albastru, pentru cuvinte cheie;

Verde pentru comentarii în partea de declarare;

Gri, pentru comentarii în editor (în LD şi FBD) ;

Roz, pentru adrese;

Roşu, pentru erori;

Negru, pentru variabile, operatori de asignare etc.

Principalele comenzi ale editorului se găsesc într-un meniu contextual, care poate fi afişat la apăsarea butonului drept al mouse-ului.

Comentariile sunt incluse în secvenţe speciale “(*” si “*)”.

Exemplu: (*Acesta este un comentariu.*)

Comentariile sunt permise în toate editoarele de text, în orice loc se doreşte, adică în toate declaraţiile din limbajele IL, ST precum şi în tipurile de date definite de utilizator. În limbajele FBD şi LD se pot introduce comentarii pentru fiecare reţea. Pentru a realiza acest lucru trebuie selectată reţeaua căreia i se va ataşa comentariul şi apoi se alege comanda Insert → Comment din bara de meniuri.

În plus comentariile pot fi adăugate oriunde sunt inserate nume de variabile.

În LD un comentariu poate fi adăugat fiecărui contact şi fiecărei bobine prin alegerea opţiunilor Extras → Options din bara de meniuri (fig. 53).

Page 45: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

45

Fig. 53. Adăugarea unui comentariu unui contact sau unei bobine

Constantele se identifică prin cuvântul cheie CONSTANT şi se pot declara local sau global în felul următor:

VAR CONSTANT <Identifier>:<Type>:=<initialization>; END_VAR

Exemplu:

VAR CONSTANT c1 : REAL :=2.86; (* 1. Constant*) END_VAR

Editoarele pentru limbajele LD şi FBD

Aceste editoare sunt editoare grafice, programele fiind alcătuite din reţele. La deschiderea editorului, pe ecran apare o singură reţea. Se pot adăuga noi reţele prin alegerea uneia dintre opţiunile Insert→Network (before) sau Insert→Network (after). Zona activă din cadrul unei reţele este marcată printr-un dreptunghi cu linie punctată. La introducerea unui obiect, acesta se va plasa în zona marcată.

Editorul SFC

Un POU scris în SFC este alcătuit dintr-o serie de etape, conectate între ele prin arce şi tranziţii, cu respectarea regulilor enunţate la prezentarea generală a limbajului. La deschiderea editorului SFC apare automat o etapă iniţială şi o tranziţie. Regulile de construcţie şi de evoluţie ale unui graf sunt identice cu cele din standardul internaţional.

Compilarea, simularea sau încărcarea în automat a unui program în limbajul SFC este permisă numai dacă se încarcă biblioteca iecsfc.lib. Procedura de încărcare a unei biblioteci în mediul de programare CoDesys este următoarea:

În pagina Resouces al mediului de programare se executa dublu clic pe Library manager, apoi Insert→Additional Library. În fereastra, care va apare se va alege din directorul Lib_Common biblioteca iecsfc.lib.

1.9.5. Definirea sarcinilor (task-urilor)

În mod normal derularea unui program pe un automat programabil este de tip sincron, adică există un singur fir reprezentat de programul ciclic. Acesta poartă diferite nume: OB1, în cazul

Page 46: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

46

automatelor SIEMENS, Main, în cazul automatelor OMRON, PLC_PRG, în cazul automatelor ABB şi Moeller.

La automatele Moeller există posibilitatea realizării mai multor fire (taskuri) de execuţie utilizând Task Configuration, care este un obiect în cadrul paginaui Resources. Pentru a putea utiliza un task, acesta trebuie mai întâi declarat. Prin declararea unui task se înţelege definirea următoarelor aspecte:

Nume;

Prioritate;

Intervalul de activare ciclică a task-ului sau variabila globală pe a cărei front crescător este activat task-ul;

POU-urile de tip program care aparţin task-ului.

Fig. 54. Fereastra Taskattributes

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 asemănător celor ce reprezintă variabile. Fiecărui task trebuie să i se ataşeze cel puţin un program care este apelat atunci când task-ul este activ. Prioritatea taskului este un număr cuprins între 0 şi 31, prioritatea cea mai mare având-o task-urile 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 opţiunea triggered by event, atunci în câmpul event trebuie specificată variabila pe al cărei front crescător se va activa task-ul.

Astfel, sunt definite următoarele reguli de execuţie a mai multor taskuri:

Se execută acel task care are condiţia îndeplinită: s-a scurs timpul de activare sau variabila stabilită pentru activare a avut un front crescător;

Dacă două taskuri au condiţii de activare simultane atunci mai întâi se execută task-ul cu prioritatea cea mai mare;

Page 47: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

47

Dacă două taskuri au condiţii de activare simultane şi aceeaşi prioritate, atunci se execută taskul care a stat mai mult în coada de aşteptare, ceea ce înseamnă că priorităţile sunt dinamice şi bazate pe vârstă;

În cadrul unui task, POU-urile de tip program se vor executa în ordinea în care au fost introduse în lista de programe a acelui task.

În continuare trebuie specificate POU-urile de tip program, care să fie executate în cadrul task-ului. Acest lucru se realizează efectuând clic dreapta pe numele task-ului definit şi selectând opţiunea Append→Program Call. Va apărea fereastra Program Call (fig. 55) în care se va selecta numele POU-ului.

În cadrul unui task se pot executa oricâte POU-uri.

Fig. 55. Asocierea unui POU la un task

Acest aspect al proiectării, şi anume facilitatea de a putea avea mai multe taskuri, este deosebit de util mai ales pentru realizarea acţiunilor la avarii ale unui sistem condus de automatul programabil.

Un alt mod de utilizare a taskurilor, activate pe fronturi crescătoare ale unor variabile este acela în care se doreşte realizarea unor programe care să conţină părţi de reglare a condiţiilor de funcţionare sau un mod de lucru manual al sistemului.

1.9.6. Realizarea configuraţiei automatului

Configuraţia automatului se realizează selectând opţiunea Ressources din organizatorul de obiecte (fig. 56), iar în cadrul acesteia se selectează PLC Configuration. Ca urmare va apărea următoarea fereastră:

Fig. 56. PLC Configuration

Page 48: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

48

În cadrul acestei ferestre se pot observa adresele de intrare şi de ieşire ale automatului precum şi biţii speciali de intrare şi de ieşire. De asemenea aici trebuie specificate modulele suplimentare, care sunt ataşate automatului. După cum se observă, ultimele şapte poziţii sunt goale (Empty Slot), ceea ce înseamnă că se pot ataşa în total şapte module.

Pentru ataşarea unui modul suplimentar se efectuează clic dreapta pe prima locaţie intitulată Empty Slot (poziţie liberă) şi se selectează Replace Element (înlocuire a elementului). Va apărea o listă care cuprinde toate modulele care se pot ataşa automatului. Se va selecta de aici modulul amintit mai sus şi vom observa că acesta apare în loc de Empty Slot. Apăsând pe semnul plus de dinaintea numelui modulului, va apărea o listă cu adresele modulului. Selectând una din adrese, în partea dreaptă va apărea fereastra Base parameters care conţine proprietăţile intrării sau ieşirii respective.

1.9.7. Finalizarea proiectului

După ce întreg programul a fost redactat, acesta trebuie compilat prin alegerea opţiunii Project→ Build din bara de meniuri . După ce compilarea a avut loc, se va afişa un mesaj în fereastra de mesaje situată în partea de jos a ecranului. Dacă în urma compilării au fost găsite erori, acestea vor fi enumerate în fereastra de mesaje împreună cu numele POU-ului şi numărul rândului unde a apărut fiecare eroare.

Odată ce toate erorile au fost eliminate, proiectul poate fi încărcat pe automatul programabil. Pentru aceasta trebuie stabilită în prealabil o conexiune cu AP fie prin legătură serială, fie prin Ethernet.

Încărcarea are loc prin alegerea opţiunii Online → Login şi apoi Online → Download din bara de meniuri. În prealabil trebuie setaţi parametrii de comunicare alegând opţiunea Online → Communication Parameters…. Există două variante: Serial (RS232) - în acest caz trebuie specificată viteza de transmisie (9600, 19200, 38400…) şi portul (COM1, COM2…) – sau Tcp/Ip – în acest caz trebuie specificat IP-ul automatului (192.168.119.200) şi portul (1200).

În continuare se poate realiza o monitorizare online a programului, putându-se chiar modifica starea variabilelor.

Este indicat însă, ca înaintea încărcării unui proiect pe automat să se realizeze simularea offline a acestuia, procedându-se în felul următor: în meniul Online se alege Simulation Mode, apoi în acelaşi meniu se selectează Login şi apoi Run pentru a porni simularea.

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 fig. 57 se observă că una dintre intrări fiind în starea TRUE la rândul ei ieşirea devine TRUE.

Fig. 57. Modul de simulare a unui proiect

Page 49: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

49

2. Caietul de sarcini

În figura 58 este prezentată o maşina de găurit împreună cu schema electrică care trebuie realizată pentru a putea efectua un ciclu automat de găurire. Iniţial trebuie poziţionată piesa, fapt semnalat de traductorul PP, iar apoi la apăsarea de către operatorul uman a butonului de pornire BP se declanşează ciclul automat de găurire.

Mai întâi are loc deplasarea cu avans rapid a capului de găurire între traductoarele R1 şi R2

(pentru aceasta se alimentează contactoarele K2 şi K3). Apoi are loc o deplasare cu avans lent a capului de găurire între traductoarele R2 şi R3 (se alimentează doar contactorul K2). Urmează retragerea capului de găurire cu avans rapid, până la atingerea traductorului R1 (prin alimentarea contactorului K1). O nouă gaură va fi efectuată după trecerea a două secunde, până când s-au făcut cinci găuri 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 poziţionare a piesei vor fi simulate printr-un întrerupător.

La începutul fiecărui ciclu, capul de găurire trebuie adus în poziţia retras dacă nu se afla deja acolo, iar abia apoi se realizează cele cinci găuri.

Un nou ciclu va putea fi efectuat abia după ce s-a poziţionat o noua piesa şi după ce s-a apăsat din nou butonul de pornire.

Observaţie. 1. Obţinerea vitezei de avans rapid se face utilizând un regulator unidirecţional de debit (RDU). Dacă se

alimentează V2 de la distribuitorul D1, există două căi 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ă decât aceea care se obţine pe cea de-a doua cale. Pentru cazul in care este alimentată bobina V1 a distribuitorului, RDU este prevăzut 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ă.

Page 50: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

50

Page 51: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

51

3. Modul de lucru

3.1. Automatul S7-200

Se procedează în felul următor:

Se porneşte mediul de programare Step7MicroWin şi se întocmeşte Symbol Table, conform legăturilor dintre automat şi reactor prezentate în fig. 59;

Se realizează graful automatizării conform caietului de sarcini;

Se alcătuieşte programul cu una din metodele: o Activarea şi dezactivarea sincronă; o Utilizarea variabilelor SCR.

Se execută montajul din fig. 59, folosind modelul de reactor de etilare. Se vor face numai legăturile punctate;

Fig. 59. Legăturile dintre automatul S7-215 şi Maşina automată de găurit

Se încarcă programul în automat;

Se verifică funcţionarea automatizării conform caietului de sarcini.

3.2. Automatul S7-300

Se procedează în felul următor:

Se porneşte mediul de programare Step7 Manager şi se introduc variabilele în obiectul Symbols, conform legăturilor dintre automat şi reactor prezentate în fig. 60;

Se realizează graful automatizării conform caietului de sarcini;

Page 52: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

52

Se alcătuieşte programul cu una din metodele: o Activarea şi dezactivarea sincronă; o Utilizarea limbajului SFC (folosind o funcţie bloc editată în limbajul GRAPH).

Se execută montajul din fig. 60, folosind modelul de reactor de etilare. Se vor face numai legăturile punctate;

Fig. 60. Legăturile dintre automatul S7-314C-2DP şi Maşina automată de găurit

Se încarcă programul în automat;

Se verifică funcţionarea automatizării conform caietului de sarcini.

Page 53: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

53

3.3. Automatul ABB

Fig. 61. Legăturile dintre automatul ABB 07KT97 şi Maşina automată de găurit

Page 54: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

54

Se procedează în felul următor:

Se porneşte mediul de programare AC1131 şi se introduc variabilele în obiectul Global Variables din tab-ul Resources, conform legăturilor dintre automat şi reactor prezentate în fig. 61;

Se realizează graful automatizării conform caietului de sarcini;

Se alcătuieşte programul cu una din metodele: o Activarea şi dezactivarea sincronă; o Utilizarea limbajului SFC (Pentru ca graful să poată fi editat în standardul

internaţional trebuie adăugată o bibliotecă specială alegând opţiunea Window → Library Manager din bara de meniuri. Apare o fereastră nouă iar în lista bibliotecilor deja adăugate – care conţine iniţial o singură bibliotecă – se efectuează clic-dreapta şi se alege opţiunea Additional Library…. Din lista bibliotecilor afişate se alege biblioteca IECSFC_S90_V41.lib).

Se execută montajul din fig. 61, folosind modelul de reactor de etilare. Se vor face numai legăturile punctate;

Se încarcă programul în automat;

Se verifică funcţionarea automatizării conform caietului de sarcini.

3.2. Automatul XC200

Se procedează în felul următor:

Se porneşte mediul de programare easy Soft CoDeSys şi se introduc variabilele în obiectul Global Variables din tab-ul Resources, conform legăturilor dintre automat şi reactor prezentate în fig. 62;

Se realizează graful automatizării conform caietului de sarcini;

Se alcătuieşte programul cu una din metodele: o Activarea şi dezactivarea sincronă; o Utilizarea limbajului SFC.

Se execută montajul din fig. 62, folosind modelul de reactor de etilare. Se vor face numai legăturile punctate;

Se încarcă programul în automat;

Se verifică funcţionarea automatizării conform caietului de sarcini.

Page 55: Lucrarea nr. 3. Automatizarea unei maşini de găurire …432x.ncss.ro/Anul III/AMP/Laborator/Lucrarea 3.pdf · Automatizarea unei maşini de găurire automată ... automat prin redresare

Lucrarea nr. 3. Automatizarea unei maşini de găurire automată

55

Fig. 62. Legăturile dintre automatul Moeller XC200 şi Maşina automată de găurit