Sunteți pe pagina 1din 46

UNIVERSITATEA TEHNICA GH.

ASACHI IASI FACULTATEA DE MECANICA CATEDRA ORGANE DE MASINI SI MECATRONICA

Disciplina: Actionarea sistemelor mecatronice LUCRARE DE LABORATOR NR. 1


MODULAR PRODUCTION SYSTEM (MPS) ECHIPAMENT DE INSTRUIRE IN MECATRONICA Prezentare STATIE DE DISTRIBUTIE

1. Scopul lucrarii: cunoasterea hardware a unui sistem mecatronic cu actionare pneumatica (hidronica); cunoasterea tehnicii PLC (Programmable logic Controlers); prezentarea competentelor ce pot fi dezvoltate pe un astfel de sistem; 2. Introducere Staiile MPS sunt elemente centrale ale sistemelor modulare de producie. Fiecare staie are unul sau mai multe module legate ntre ele printr-o plcu universal de aluminiu cu profil plat i prin controlere PLC. Ele ajut la atingerea pregtirii profesionale ntr-un mod clar i eficient, deoarece ofer posibilitatea de studiu ntr-un cadru ct mai real, studiul efectundu-se pe componente ct mai reale. Avantaje: Staiile pot fi combinate i potrivite individual; Interfaa este standard i unic; Sistemul deschis noilor tehnologii - comunicaii pe baz de bus i vizualizare a procesului; Sistemul deschis noilor idei - definirea interfeelor este, de exemplu, baza noilor proiecte de lucru; Sistemul deschis noilor cerine de calificare - munca n echip. Sistemele MPS sunt legate prin conectori electrici i mecanici, prin interfee bine definite. n funcie de combinaia staiilor din standul din fig.1. se pot produce piese cilindrice funcionale formate din: Corp cilindric Piston Arc Capac

n componena standului intr urmtoarele staii MPS: Staia de distribuie; Staia de testare; Staia de procesare; Staia de manevrare-asamblare; Staia de memorare; Ansamblu staie cu robot; Staie de testare a funciilor; Staie de sortare; Staie de presare hidraulic.

Fig. 1. Ordinea staiilor corespunde procesului tehnologic. Corpurile cilindrilor sunt distribuite, testate i plasate n continuare cu ajutorul dispozitivelor de testare. Robotul asambleaz cilindrul pneumatic folosind corpul, pistonul, arcul i capacul care sunt fcute la o presa hidraulic. Cilindrii finisai sunt testai din punct de vedere al funcionalitii i sortai dup: tip, culoare, mrime. In dotarea laboratorului de Acionarea sistemelor mecatronice exist un modul MPS, denumit Staie de distribuie (Distribution station) (fig. 1). 3. Elementele componente ale (MPS)-Statie de distributie Componentele Staiei de distribuie i competenele dezvoltate prin instruire sunt prezentate n fig. 2., fig. 3. i tabelul 1.

Fig. 2

Fig. 3

Competena dezvoltat

Scopul instruirii dobndirea de cunotine despre componentele unui sistem mecanic; asamblarea si dezasamblarea componentelor mecanice; proiectarea i aezarea componentelor mecanice ntr-un sistem.

Sisteme mecanice

Pneumatic

dobndirea de cunotine i utilizarea componentelor pneumatice; citirea si construirea unor circuite pneumatice; dobndirea de cunotine i utilizarea tehnologiei cu vacuum; optimizarea si reglarea circuitelor pneumatice (viteza, sigurana etc.); realizarea practic a unor circuite pneumatice. instalarea i testarea componentelor electrice; citirea i proiectarea diagramelor circuitelor electrice; dobndirea de cunotine despre circuitele electronice i utilizarea lor; dobndirea de cunotine despre interfee i utilizarea lor. dobndirea de cunotine despre limitatori i senzori i utilizarea lor; dobndirea de cunotine despre diferitele tipuri de senzori (optic etc.). dobndirea de cunotine despre structura si modul e operare a PLC; programarea PLC;

Inginerie Electric/Electronic -

Senzori

Tehnologia PLC

utilizarea PLC mpreun cu un sistem de vizualizare.

Automatizare

dobndirea de cunotine despre sistemele automate si structura lor; proiectarea unor sisteme automate; Combinarea i optimizarea diferitelor tehnologii pentru un scop specific. msurarea variabilelor electrice i neelectrice.

Metrologie

Tehnologia manipulatoarelor

dobndirea de cunotine despre manipulatoare; programarea manipulatoarelor utiliznd PLC. adaptarea componentelor electrice si mecanice; adaptarea senzorilor i limitatorilor n sistemele automate. optimizarea unui sistem automat (durata unui ciclu, siguran); localizarea i repararea defectelor prin metode sistematice. utilizarea metodelor creative i sistemelor de planificare; organizarea i planificarea lucrului cu pai. lucrul practic n echip; comunicarea ntre echipe;

Reglaje

ntreinere, optimizare si depanare Competente metodologice

Abiliti sociale

4. Concluzii Staia de distribuie este ideal pentru instruirea n sistemele moleculare de producie;

Atenia este atras de aplicarea diferitelor valve de control, cilindri pneumatici i limitatorilor de curs a cilindrilor, precum i tehnologia de vacuum i valvele de presiune; Obiectivele atinse: Separarea unei piese dintr-o magazie; Alimentarea sistemului cu piese separate pentru obinerea unui proces tehnologic.

UNIVERSITATEA TEHNICA GH. ASACHI IASI FACULTATEA DE MECANICA CATEDRA ORGANE DE MASINI SI MECATRONICA

Disciplina: Actionarea sistemelor mecatronice LUCRARE DE LABORATOR NR. 2


MODULAR PRODUCTION SYSTEM (MPS) ECHIPAMENT DE INSTRUIRE IN MECATRONICA Mediul de programare FSTFEC pentru automatul programabil FEC-20-AC

1. Scopul lucrarii: Cunoastrea mediului de programare FSTFEC care permite elaborarea de programe pentru automatul programabil FEC-20-AC 2. Introducere Numele de FST FEC vine de la abrevierile denumirilor Festo Software Tools i Front End Controler. FST este un mediu de programare care a fost dezvoltat de FESTO pentru mai multe tipuri de automate programabile i calculatoare industriale pe care firma le produce. Principala caracteristic a acestui mediu este prezena unui sistem de meniuri standard pentru toate variantele n care este disponibil. Variantele de software FST depind de aparatul cruia i este destinat, acestea avnd ca particulariti seturile de comenzi pentru configurare i limbajele de programare utilizate. Pentru FEC sunt disponibile limbajele de programare Statement List (STL) i Ladder Diagram (LDR). Despre limbajele de programare se va discuta n capitolul 6. Mediul de programare FSTFEC trebuie instalat pe un PC obinuit. Pentru o instalare cu succes, calculatorul trebuie s dein un minim de caracteristici. Aceste caracteristici sunt enumerate mai jos: - hard disk i floppy disk de 3 (1.44 MB) - o memorie de cel puin 512 KB; pentru proiecte mari se recomand minim 640KB; - sistem de operare MS-DOS, Windows95 sau mai nou; - o interfa serial pentru conectarea cu automatul programabil; - o interfa paralel pentru imprimant (de preferat); - o alt interfa serial pentru mouse (de preferat); Programul se poate instala n directorul rdcin sau n orice alt director. Dup instalare programul poate fi rulat din directorul n care se afl fiierul FSTFEC.EXE, cu comanda FSTEC, urmat de apsarea tastei Enter. Urmtoarele directoare sunt create la instalarea mediului FSTFEC: - RUNTIME.FEC conine fiiere cu sistemul de operare la automatului programabil; - FBLIB.FEC conine fiiere cu module de funcii predefinite de productor; - BAUSTEIN.MSC conine fiiere cu librrii i exemple pentru programarea n C; - DOC conine documentaie pentru utilizarea FEC-ului. n afara acestor directoare, FSTFEC mai are nevoie de un director de proiecte n care vor fi pstrate programele create de utilizator. La prima rulare a programului FSTFEC se va cere utilizatorului s introduc calea i numele directorului de proiecte. 3. MEDIUL DE PROGRAMARE FSTFEC 3.1. Descrierea meniurilor. Imediat dup comanda FSTFEC apare o fereastr logo n care este scris cu iniiale mari: FST. Apsarea oricrei taste duce la ncrcarea meniului principal al mediului de programare. Meniul principal este prezentat n figura 1. Pentru lucrul cu meniurile se poate utiliza:

- mouse-ul; - tastele speciale F1, F2,, F8 i tastele direcionale: , , , . Aciunile declanate de tastele F1 F8 sunt descrise la fiecare moment n bara de stare de la baza ecranului (josul ferestrei). Ca regul, terminarea unei aciuni i ieirea dintr-un submeniu sau din programul principal se face prin apsarea tastei F8. Submeniul Project Management, fig. 2, cuprinde comenzi pentru: selectarea, crearea, tergerea, printarea unui proiect, ncrcarea acestuia n automatul programabil, salvarea pe harddisk-ul calculatorului a unui proiect aflat n automatul programabil i inserarea n proiectul curent a unor fiiere.

Fig. 1. Meniul principal al mediului de programare FSTFEC.

Fig. 2. Submeniul Project Manegement al mediului de programare FSTFEC. Submeniul Utilities, fig. 3, conine comenzi i aciuni necesare n pentru: - alctuirea listei de alocare a variabilelor absolute (paragraful 5.6); - editare de texte pentru documentaia proiectului; - editarea titlului i a antetului fiecrei pagini pentru textul scris n mediul FSTFEC; - configurarea calculatorului i a automatului programabil; - configurarea intrrilor i ieirilor FEC-ului; - configurarea driver-elor de comunicaie pentru cazul cnd FEC-ul se utilizeaz n reea; - conectarea calculatorului cu automatul programabil pentru aciuni de depanare on-line; - printare a documentelor ataate proiectului selectat.

Fig. 3. Submeniul Utilities al mediului de programare FSTFEC. Submeniul Statement List, fig. 4, conine comenzi i aciuni necesare crerii, modificrii i depanrii programelor STL din cadrul proiectului curent.

Fig. 4. Submeniul Statement List al mediului de programare FSTFEC. 3.2. Crearea unui proiect. n mediul de programare FST, un proiect este o unitate de control al programelor. Proiectul poate s conin unul sau mai multe programe i blocuri de funcii. Pe lng programe, un proiect poate s conin o list de alocare i un text cu documentaia proiectului. Pentru a se putea lucra n mediul FST este neaprat necesar s se creeze un proiect. Este indicat s se creeze un proiect nou pentru fiecare nou aplicaie de automatizare. Pentru crearea unui proiect se selecteaz opiunea Create project din meniul Project Management. n fereastra care apare, fig. 5, se introduce, de ctre utilizator, numele proiectului i, opional, un comentariu pentru descrierea aplicaiei. La sfrit se apas tasta F1 pentru confirmarea comenzii.

Fig. 5. Fereastra de creare a unui proiect.

3.3. Configurarea mediului de programare FST. Mediul de programare FST trebuie s fac posibil comunicarea ntre ele a trei echipamente hardware: calculatorul, automatul programabil si imprimanta. Setrile care se fac n ferestrele deschise de opiunea Configuration din submeniul Utilities, asigur o comunicare corect ntre aceste echipamente. n timpul configurrii, dac trebuiesc introduse valori numerice, se poate apsa tasta F9 pentru a obine informaii n legur cu valorile admise n acel cmp de date. Configurarea se poate face pentru: - calculator; - comunicarea cu automatul programabil; - modul de comportare n funcionare al automatului programabil; - selectarea imprimantei si a caracterelor de tiprire la imprimant; - modul de rulare a programelor. Configurarea calculatorului cuprinde: - selectarea directorului pentru salvarea proiectelor. Dac nu se specific un director anume directorul implicit (creat de program) este C:\FESTO; - selectarea de programe care s se execute imediat nainte de intrarea n mediul FST; - selectarea de programe care s se execute imediat dup iesirea din mediul FST; - selectarea controler-ului video pentru monitor dintr-un set recunoscut de mediul FST (aceast setare este de interes numai pentru calculatoare vechi sau necompatibile IBM); - setarea mouse-ului. Observaie. Dac s-a executat o setare gresit n configurarea calculatorului (n special pentru placa video) si monitorul apare negru, trebuie repornit calculatorul si, din mediul DOS, sters fisierul KONFIG.IPC care se afl n directorul n care a fost instalat mediul FST. Dup aceast operaie se reintr n mediul FST si se reface configurarea. Configurarea comunicrii cu automatul programabil are n vedere stabilirea corect a parametrilor de comunicaie ntre calculator si FEC. Se poate alege ntre porturile seriale COM1 si COM2. La portul selectat se va monta cablul de legtur. Odat ales portul serial se seteaz viteza de transmisie dintr-un set de valori permise de automatul programabil. Viteza maxim de transmisie, care este si cea implicit, este de 9600 baud (1 baud reprezint o vitez de transmisie de 1 bit/secund). Configurarea modului de comportare n funcionare al automatului programabil se poate face apsnd tasta F6 (IPC mode) dup ce s-a selectat opiunea Configuration din meniul Utilities. Pentru opiunea Machine function? Y/N: - dac se selecteaz Y (Yes) AP-ul se va comporta ca o masin. La comporatarea ca o masin, atunci cnd FEC-ul este oprit (datorit comutatorului START/STOP sau al unei erori) toate iesirile sunt setate la 0 logic. Cnd FEC-ul este repornit, se vor rula programele de la nceput. Cu alte cuvinte, nu se pstreaz starea din momentul opririi. - dac se selecteaz N (No) AP-ul se va comporta ca o unitate. La repornire programele se reiau din punctul de oprire, deci starea din momentul opririi se pstreaz. Acest modul nu este disponibil pentru FEC. La opiunea Program control se poate alege o intrare a FEC-ului care s funcioneze ca un comutator START/STOP. Pentru aceasta se introduce adresa absolut a intrrii alese de utilizator pentru acest scop. Opiunea Error program number ofer posibilitatea specificrii numrului unui program de tratare a erorilor. Programele sunt notate cu litera P dup care urmeaz un numr (ex. P0, P1, P2, etc.). n cazul apariiei unei erori n funcionarea FEC-ului acest program se va executa ciclic atta timp ct eroarea nu va fi anulat. Programul P0, care este programul

principal, nu poate fi considerat program de tratare a erorilor. De aceea, n cazul n care nu se doreste un asemenea program se va selecta valoarea 0. Opiunea Error output? Y/N se foloseste pentru specificarea unei iesiri digitale care va fi setat n 1 logic atunci cnd apare o eroare. Pentru aceasta se selecteaz Y (Yes). Adresa absolut a iesirii trebuie furnizat n cmpul Error output number. Dac nu se doreste o astfel de indicaie a erorilor atunci se selecteaz N (No). 3.4. Configurarea intrrilor si iesirilor automatului programabil. Configurarea intrrilor si iesirilor realizeaz o coresponden ntre intrrile/iesirile fizice (externe) ale automatului programabil si cele numerice (interne). Dac aceast configurare nu se execut (pentru fiecare proiect) atunci nu se pot accesa intrrile si iesirile fizice. Orice semnal de intrare n automatul programabil FEC reprezint un bit. O intrare se noteaz cu litera I urmat de numrul unui cuvnt si de numrul bitului din componena acestui cuvnt. Cele dou numere sunt separate prin punct. De exemplu: intrarea I5.2 nseamn al trei-lea bit din cuvntul numrul 5 (numrtoarea celor 16 bii ai unui cuvnt se face de la 0 la 15). Dac se face referire la tot cuvntul numrul 5, atunci se foloseste notaia IW5 (I = Input, W = Word). Acelasi lucru este valabil pentru iesiri care se noteaz cu litera O (Output). Desi un cuvnt are 16 bii, intrrile n FEC (care sunt n numr de 12) au fost grupate de constructor n dou cuvinte separate. Primul din aceste cuvinte va conine primele 8 intrri n primii 8 bii. Cel de-al doilea cuvnt va conine ultimele 4 intrri n primii 4 bii. Pentru iesiri se foloseste un singur cuvnt n care primii 8 bii desemneaz cele 8 iesiri. La configurarea intrrilor si iesirilor se stabilesc numerele cuvintelor (word) pe care utilizatorul vrea s le foloseasc pentru desemnarea adreselor absolute ale intrrilor si iesirilor FEC-ului. Dac se alege pentru intrare, ca adres a primului cuvnt, numrul 0 (cel de-al doilea cuvnt va avea automat numrul 1) atunci, n programare, cele 12 intrri vor putea fi accesate cu notaiile: I0.0 I0.1 I0.2 IW0 I0.3 I0.4 I0.5 I0.6 I0.7 I1.0 IW1 I1.1 I1.2 I1.3

Dac se alege pentru iesire, de exemplu, ca adres a cuvntului, numrul 3, n programare cele 8 iesiri se vor putea accesa cu notaiile: O3.0 O3.1 O3.2 OW3 O3.3 O3.4 O3.5 O3.6 O3.7

Pentru configurare se alege opiunea I/O Configuration din submeniul Utilities. n fereastra care apare se apas F1 pentru inserarea unui modul (card) de intrri/iesiri. Obligatoriu se selecteaza opiunea FEC(vezi fig. 6). Adiional se poate selecta opiunea trimmer pentru cazul folosirii poteniometrului de pe partea frontal a carcasei FEC-ului. La sfrsitul operaiei de configurare se apas F1 pentru confirmare, dup care se apas F8 si se selecteaz opiunea Save and quit editor.

Fig. 6. Fereastra de configurare a intrarilor/iesirilor pentru FEC. 4. Crearea unei liste de alocare. Variabilele de programare (operanzi) desemneaz locaii de memorie, intrri, iesiri, temporizatoare, numrtoare, etc. Toate aceste date au o adres intern de forma prezentat la paragraful 5.5. Pentru memorie se foloseste litera F (flag), pentru temporizatoare litera T (timer) iar pentru numrtoare litera C (counter). Literele denot tipul datei iar numerele constituie adresa din memorie. Exemple: - FW6 este cuvntul numrul 6 din memoria automatului programabil; - F2.1 este bitul 1 al cuvntului 2 din memorie; - T1 este temporizatorul 1 din memorie; - C4 este numrtorul 4. Variabilele din exemplele de mai sus se numesc operanzi absolui. Mediul de programare FST permite asocierea de nume simbolice la datele din memorie. Numele simbolice sunt siruri de caractere care se folosesc n timpul programrii si in locul operanzilor absolui (notaiilor convenionale ale variabilelor). n acest fel programarea aplicaiilor complexe se poate face mai usor, numele simbolice fiind asociate cu echipamentele i aciuni familiare utilizatorului. De exemplu, se pot utiliza asocieri de genul: I0.3 = START, O0.2 = bec_rosu, T1 = pauza_1s, iar n programe, n loc de I0.3 se va scrie START, n loc de O0.2 se va scrie bec_rosu, etc. Numele simbolice se numesc operanzi simbolici si pot fi formate din maxim 9 caractere alfanumerice la care se adaug caracterul _ (underscore). Numele simbolice nu trebuie s nceap cu o cifr si nu trebuie s conin spaii libere. n figura 7. se poate vizualiza fereastra de introducere a asocierilor n lista de alocare. Aceast fereastr se deschide dup selectarea opiunii Allocation List din submeniul Utilities. Dup deschidere, n bara de stare de la baza ferestrei sunt indicate aciunile posibile prin apsarea tastelor F1 F8. Principalul avantaj al utilizrii listei de alocare consta n scrierea si nelegerea mai rapid a programelor. Un al doilea avantaj se refer la necesitatea reactualizrii unui program n cazul n care s-au efectuat mici modificri n ordinea semnalelor de intrare sau de iesire. Dac se folosesc nume simbolice, programul surs poate s rmna neschimbat, modificrile fcndu-se numai n lista de alocare.

Este recomandat ca lista de alocare s se ntocmeasc nainte de scrierea programelor. Oricum, n timpul programrii se pot aduga asocieri noi n lista de alocare. La sfrsitul editrii listei de alocare se termin aciunea apsnd tasta F8 si selectnd opiunea Save and quit editor.

Fig. 7. Ferestre de editare a listei de alocare. 5. Crearea unui program. Pentru editarea de programe STL (sau LDR) se folesete submeniul Statement list (Ladder Diagram) din meniul principal, fig. 4. Acest submeniu ofer comenzi pentru: - crearea, scrierea i modificarea de programe STL (LDR); - verificarea corectitudinii sintactice a programelor scrise; - vizualizarea listei de erori n cazul programelor scrise incorect; - ncrcarea unui proiect n automatul programabil; - printarea separat a programelor; - urmrirea on-line a execuiei unui program; - conectarea on-line cu Fig. 8. Crearea unui program STL. automatul programabil pentru vizualizarea datelor din memoria acestuia. La selectarea primei opiuni din submeniu, STL editor (Ladder editor), se deschide o fereastr de vizualizare a programelor. Dac nu exist nici un program n proiectul curent se va deschide fereastra prezentat n figura 8. Pentru crearea unui program sunt necesare informaiile: - n cmpul Prog./Module se selecteaz litera P, care este i selecie implicit pentru crearea unui program principal. Litera B se folosete pentru crearea unui program modul, (vezi Cap. 6). - n cmpul Program no. se scrie numrul programului. Numrul maxim de programe admise n lucrul cu FEC-ul este de 64. La pornirea FEC-ului sau la comutarea START/STOP, primul program care se va executa va fi P0. De aceea, acesta trebuie s existe ntotdeauna. - n cmpul Version no. se scrie versiunea programului. Acelai program, de exemplu P2, poate avea mai multe versiuni: P2.0, P2.1, P2.2. n memoria FEC-ului se va

ncrca ntotdeauna o singur versiune a unui program. Prin incrementarea numrului de versiune al unui program se obine automat o copie a vechiului program. Aceast copie poate fi modificat i adaptat pentru noile cerine ale aplicaiei. - cmpul Description cuprinde o descriere sumar a programului, dat de utilizator. Dac exist deja programe STL (LDR) n cadrul proiectului curent, la selectarea opiunii STL editor (Ladder editor) se deschide o fereastr care conine o list cu programele create, fig. 9. n continuare se apas tasta F1 pentru crearea unui nou program.

Fig. 9. Lista programelor STL existente n proiectul curent. Odat creat un program se intr automat n fereastra de editare a programelor. n figura 10 este prezentat editarea unui mic program STL. Din fereastra de editare a programelor se poate ieii oricnd prin apsarea tastei F8 i dup selectarea opiunii de salvare sau nu a modificrilor efectuate n program. Pentru salvare se alege opiunea Save and quit editor.

Fig. 10. Fereastra de editare a programelor STL. Dac utilizatorul dorete tergerea unui program, aceasta se poate face cu opiunea Delete Program din submeniul Project management. Va aprea lista cu toate programele cuprinse n proiectul curent. Se selecteaz un program cu tastele direcionale (, ) dup care se apas tasta ENTER. Pentru confirmarea comenzii se va selecta Y (Yes) la ntrebarea Y/N?.

UNIVERSITATEA TEHNICA GH. ASACHI IASI FACULTATEA DE MECANICA CATEDRA ORGANE DE MASINI SI MECATRONICA

Disciplina: Actionarea sistemelor mecatronice LUCRARE DE LABORATOR NR. 3


MODULAR PRODUCTION SYSTEM (MPS) ECHIPAMENT DE INSTRUIRE IN MECATRONICA

Programarea aplicaiilor n limbajul statement list (STL). 1. Scopul lucrarii: Dobandirea de cunostinte in programarea automatului programabil FEC-20-AC in limbajul STL 2. Introducere La programarea n STL, programele sunt alctuite prin scrierea de instruciuni n modul text. Ca orice limbaj de programare n mod text, limbajul STL folosete un set de cuvinte cheie. Ordinea de scriere a instruciunilor i tipul acestora determin structura i modul de funcionare a programelor. Lucrarea de fa explic cuvintele cheie i structura limbajului STL aa cum a fost implementat n automatele programabile Festo. Trebuie menionat c limbajele asemntoare cu STL implementate de alte firme respect aceleai principii i aceeaii logic de construcie a programelor chiar dac folosesc alte cuvinte cheie. Subiectele dezvoltate n acest capitol sunt: operanzi i operatori STL, structura programelor STL, instruciuni STL, temporizatoare, numrtoare, module de programare. 2.1. Operanzi STL. Operanzii sunt identificatori ai sistemului (intrri, ieiri, timere, numrtoare, etc) i reprezint numele acestor resurse. n cadrul unui program utilizarea acestor operanzi este singurul mod de accesare a resurselor pe care le reprezint. n funcie de dimensiunea lor, exist doua tipuri de operanzi: operanzi de un singur bit (SBO - single bit operands); operanzi de mai muli biti (MBO - multibit operands) n general 16 bii care formeaz un cuvnt (word). Operanzii de un bit pot fi evaluai ca adevrai sau fali (1 sau 0 logic). De asemenea, ei pot fi modificai din 0 logic n 1 logic sau invers. Evaluarea i modificarea operanzilor de un bit se realizeaz cu ajutorul ctorva instruciuni specifice ce vor fi prezentate n acest capitol. n timpul interogrii i modificrii operanzilor de un bit, acetia se ncarc ntr-un registru special de un bit al procesorului, numit: Single Bit Accumulator (SBA). Operanzii multibit sunt acele resurse care se pot accesa ntr-un octet (8 bii) sau cuvnt (word, 16 bii) i care reprezint numere ntregi. Ei pot lua valori n domeniile: 0 255, pentru un octet (8 bii); 0 65535, pentru un cuvnt (16 bii) reprezentat ca numr intreg fr semn; 32767 32767, pentru un cuvnt (16 bii) reprezentat ca ntreg cu semn. Valoarea operanzilor MBO poate fi testat prin comparare (<, >, =, etc) cu valori constante sau cu ali operanzi multibit. Instruciuni STL permit modificarea coninutului unui operand MBO prin: scrierea n acetia a unor valori constante sau a valorilor altor operanzi MBO; incrementarea (adunarea cu o unitate a valorii operandului); decrementarea (scderea cu o unitate a valorii sale); manipulare a valorii MBO prin intermediul operatorilor multibit aritmetici sau a celor logici.

n momentul modificrii, operanzii MBO sunt ncrcai ntr-un registru special al procesorului numit: MultiBit Accumulator (MBA). n tabelul 1. sunt prezentati operanzii de un bit. n tabelul 2. sunt prezentai operanzii multibit. Tabelul 1. Operanzi SBO ( single bit operand) Operand Intrare (Input, Eingang) Iesire (Output, Ausgang) Flag sau bit memorie (Flag, Merker) Forma STL I O de F C T P Fn.m Cn Tn Pn Sintaxa: n i m reprezint numere oarecare. In.m On.m Parte a sentinei n care poate fi folosit: C* condiional; E* executiv. C C E C E C E C E C E

Numrtor (Counter) Temporizator (Timer) Program (Program)

explicaii sunt date n paragraful 6.4.

Tabelul 2. Operanzi MBO ( multibit operands). Operand Cuvnt de intrare Cuvnt de ieire Cuvnt de memorie Cuvntul (valoarea) unui numarator Cuvntul prestabilit al unui numarator Cuvntul (valoarea) unui timer Cuvntul prestabilit al unui timer Unitate funcional Registru
*

Forma STL IW OW FW CW CP TW TP FU R

Sintaxa: n reprezint un numr oarecare. Iwn Own FWn CWn CPn TWn TPn FUn Rn

Parte a sentinei n care poate fi folosit: C* condiional; E* executiv. C C E C E C E C E C E C E C E C E

explicaii sunt date n paragraful 6.4.

Operanzii sunt accesibili din orice program al proiectului curent. n lista de alocare, care a fost descris in capitolul 5, se pot da nume simbolice tuturor operanzilor SBO sau MBO. Lista de alocare se poate alctui i pe parcursul editrii programului.

6.3. Operatori de un bit i multibit n limbajul STL. Se numesc operatori acele simboluri care apar pe lng operanzi, modificnd sau folosind valoarea numeric sau logic a acestora. De exemplu simbolul + este operatorul de adunare i se aplic ntre doi operanzi multibit, rezultatul fiind suma celor doi operanzi. Exist operatori care se aplic operanzilor de un singur bit i operatori care se aplic operanzilor multibit. n tabelul 6.3 sunt prezentai toi operatorii ce pot fi utilizai n construcia programelor STL. n coloana Observaii se specific dac operatorii sunt aplicabili la operanzi de un bit (SBO) sau multibit (MBO). Tabelul 6.3. Operatori STL. Simbol Utilizare N Not negatie Valoare zecimala; folosit la introducerea V valorilor constante de ctre utilizator. Valoare hexazecimala; folosit la introducerea V$ valorilor constante de ctre utilizator. Valoare binara; folosit la introducerea valorilor V% constante de ctre utilizator. + Adunarea a doi operanzi Scderea a doi operanzi * nmulirea a doi operanzi / mprirea a doi operanzi < Compararea a doi operanzi mai mic dect > Compararea a doi operanzi mai mare dect = Compararea a doi operanzi egal cu <> Compararea a doi operanzi diferit de Compararea a doi operanzi mai mic sau <= egal ca Compararea a doi operanzi mai mare sau >= egal ca Parantezele sunt folosite pentru stabilirea () prioritilor de evaluare n expresii complexe Observaii SBO MBO MBO MBO MBO MBO MBO MBO MBO MBO MBO MBO MBO MBO SBO, MBO

2.2. Structura unui program STL. Pentru scrierea unui program n limbajul STL se poate alege ntre trei structuri posibile: 1) program cu pai (STEP program); 2) program paralel; 3) program executiv. Primul tip de program este cel mai general exemplu. Urmtoarele dou sunt cazuri particulare obinute prin simplificarea celui dinti. 1) Un program cu pai poate conine pn la 255 de pai. Paii programului sunt delimitai de instruciunea STEP, urmat (opional) de un nume sau un numr dat de utilizator. Urmtorul pas ncepe la urmtoarea instruciune STEP. Numrul sau numele

pasului este folosit pentru claritatea programului i pentru instruciuni de salt la pasul de interes din oricare parte a programului. Instruciunea de salt se va studia n paragraful 6.5. Un pas al programului cuprinde una sau mai multe sentine. O sentin complet conine: o clauz condiional format din cuvntul cheie IF urmat de o expresie logic simpl sau complex care se va evalua ca fiind adevrat sau fals. n expresia logic pot aprea operanzi SBO, operatori de comparaie cu operanzi MBO, alte instruciuni. o clauz executiv format din cuvntul cheie THEN urmat de un set de instruciuni care se vor executa numai n cazul n care partea condiional a fost evaluat ca fiind adevrat; o clauz executiv alternativ format din cuvntul cheie OTHRW urmat de un set de instruciuni care se vor executa dac expresia logic din partea condiional (IF) se evalueaz ca fiind fals. Instruciunea OTHRW poate s nu apar dac utilizatorul nu dorete prelucrri dect n clauza THEN. De reinut: Toate instruciunile din partea executiv, THEN, se execut numai dac expresia logic care urmeraz dup cuvntul cheie IF, este adevrat. Partea executiv cuprinde toate instruciunile care urmeaz dup cuvntul cheie THEN i pn la ntlnirea unei unuia din cuvintele cheie IF, STEP sau OTHRW. Exemplul 1: Program cu pai (STEP program) STEP init IF I0.1 AND N I0.2 THEN SET O0.1 SET O0.2 STEP 1 THEN RESET O0.3 IF THEN OTHRW ; pasul init al programului ; dac exist semnal la intrarea I0.1 (parte condiional) ; I dac NU exist semnal la intrarea I0.2 (parte condiional) ; atunci (parte executiv) ; atunci transmite semnal la ieirea O0.1 (parte executiv) ; transmite semnal la ieirea O0.2 (parte executiv) ; pasul 1 al programului ; nu transmite semnal la ieirea O0.3

n prima sentin din cadrul unui pas (imediat dup STEP) se poate omite partea condiional i se poate ncepe direct cu o instruciune THEN, aceasta fiind o sentin incomplet. Instruciunile din aceast parte a programului i pn la ntlnirea unuia din cuvintele cheie IF i STEP, se vor executa ntotdeauna. Un program STEP este executat pas cu pas. Programul va trece la pasul urmtor numai dac, la ultima sentin a pasului curent, se execut: fie instruciunile care urmeaz dup THEN (partea condiional este adevrat); fie pe cele care urmeaz dup OTHRW, dac exist (partea condiional este fals). Dac nu exist clauza OTHRW i partea condiional este fals atunci programul reia (execut de la nceput) instruciunile pasului curent. n acest fel se ateapt ndeplinirea ultimei condiii pentru trecerea la pasul urmtor. De reinut:

n ultima sentin IF THEN a pasului curent, se stabilete dac programul trece la pasul urmtor sau reia instruciunile pasului curent. 2) Un program paralel const doar n una sau mai multe sentine. ntr-un astfel de program nu exist pai. n fapt, tot programul este echivalent cu un pas dintr-un program STEP. Prima sentina a acestui program poate fi una incomplet (ncepe direct cu THEN). Toate celelalte sentine trebuie s fie complete. Un program paralel este rulat ciclic (n continuu) pn cnd acesta este dezactivat (oprit) prin comanda RESET Pn (n este numrul programului). Comanda de dezactivare se poate da din oricare alt program sau chiar din programul Pn. Ultima variant cuprinde i cazul n care se dorete ca programul paralel s se execute o singur dat. n acest caz trebuie ca n ultima instruciune se existe o comand RESET Pn. n exemplul 2, numele programului este P1. Se observ c la ultima sentin acesta se auto-dezactiveaz necondiionat. Exemplul 2: Program paralel. THEN IF THEN IF THEN OTHRW ... IF THEN OTHRW RESET F0.0 ; foreaz n 0 logic flagul F0.0 I1.0 ; Dac nu exist semnal la intrarea I0.1 SET O0.7 ; atunci transmite semnal la ieirea O0.7. I1.7 ; Dac exist semnal la intrarea I1.7 SET O1.7 ; atunci transmite semnal la ieirea O1.7 SET F0.0 ; Altfel foreaz n 1 logic flagul F0.0 RESET O1.7 ; i nu transmite semnal la ieirea O1.7. N F0.0 AND I1.0 SET RESET P1 RESET P1 ; Dac flagul F0.0 are valoarea logic 1 ; i dac la intrarea I1.0 exist semnal O1.0 ; atunci transmite semnal la ieirea O1.0 ; i dezactiveaz programul curent, P1. ; Altfel dezactiveaz programul curent, P1.

De reinut: Un program paralel NU conine cuvntul cheie STEP. 3) Programul executiv este echivalent cu o sentin incomplet dintr-un program paralel. Diferena consist n faptul c nu exist o introducere cu cuvntul cheie THEN. Instruciunile dintr-un program executiv se execut n totalitate deoarece nu exist o clauz condiional. Dac se va introduce o clauz IF n interiorul programului va rezulta o eroare de sintax la compilarea programului. Exemplul 3 este un program executiv. Exemplul 3: Program executiv. SET F0.0 ; seteaz flagul F0.0 RESET O1.0 ; nu transmite semnal la ieirea O1.0 LOAD V50 ; ncarc n acumulatorul MBA numrul zecimal 50 TO FW7 ; ncarc din acumulatorul MBA n cuvntul memoriei F7, valoarea zecimal 50 ... ; alte instruciuni

De reinut: Un program executiv NU conine cuvintele cheie STEP, IF i THEN.

2.3. Instruciuni STL. Limbajul STL ofer un set de instruciuni care permit scrierea uoar a programelor destinate a controla automatizri simple sau complexe. n tabelul 44. sunt prezentate, mpreun cu o scurt descriere, toate instruciunile limbajului STL implementat pe automatele programabile FESTO. Tabelul 4. Instruciunile limbajului STL. Instruciune Semnificaie 1 AND Execut funcia I logic ntre doi operanzi (de un bit sau multibit) 2 BID Convertete coninutul acumulatorului multibit din cod binar n cod BCD 3 CFM n ncepe execuia sau iniializeaz un modul functional (rutin de sistem standard) 4 CMP n ncepe execuia unui modul de program (subrutin sau funcie de bibliotec) 5 CPL Complementul lui 2 al acumulatorului multibit ( echivalent cu o nmultire cu -1) 6 DEC Decrementeaz un operand sau acumulatorul multibit 7 DEB Convertete coninutul acumulatorului multibit din cod BCD n cod binar 8 EXOR Execut funcia logic SAU Exclusiv ntre doi operanzi (de un bit sau multibit) 9 IF Cuvant cheie ce marccheaz nceputul prii condiionale a unei sentine 10 INC Incrementeaz un operand sau acumulatorul multibit 11 INV Produce complementul fa de 1 al acumulatorului multibit 12 JMP TO Execut un salt la pasul cu numele (sau numrul): xx xx 13 LOAD xx ncarc operandul xx de un singur bit (sau multibit) n acumulatorul de un singur bit (sau multibit) 14 NOP Instructiune special, ntotdeauna adevarat n partea conditionala. Este utilizat i n partea executiv a unei sentine unde execuia ei nseamn: nu face nimic! 15 OR Executa funcia logic SAU ntre doi operanzi (de un bit sau multibit) 16 OTHRW Ofer posibilitatea de a continua un program dac partea condiional a unei instruciuni nu este adevrat 17 PSE Program Section End. Reia programul sau pasul de la prima instruciune. Aceast instruciune nu este utilizabil pentru FEC. 18 RESET Schimb valoarea unui operand de un bit. Valoarea final este totdeauna 0 logic. 19 ROL Rotete la stnga cu o poziie toi biii coninui de acumulatorul multibit. Bitul cel mai semnificativ (MSB) trece n cel mai putin semnificativ (LSB) 20 ROR Rotete la dreapta cu o poziie toi biii coninui de acumulatorul multibit. Bitul cel mai puin semnificativ (LSB) trece n cel mai semnificativ (MSB) 21 SET Schimb valoarea unui operand de un bit. Valoarea final este todeauna 1 logic. 22 SHIFT Execut o interschimbare ntre un operand de un singur bit i acumulatorul de un singur bit (SBA) 23 SHL Translateaz la stnga cu o poziie toi biii coninui de acumulatorul multibit. Bitul cel mai semnificativ (MSB) este pierdut iar cel mai puin semnificativ (LSB) este resetat la 0 logic

24 25 26 27 28

SHR SWAP TO THEN WITH

Translateaz la dreapta cu o poziie toi biii coninui de acumulatorul multibit. Bitul cel mai puin semnificativ (LSB) este pierdut iar cel mai semnificativ (MSB) este resetat la 0 logic Schimb ntre ei octeii superior i inferior ai acumulatorului multibit (MBA) Utilizat cu instruciunea LOAD pentru a specifica un operand destinaie Cuvant cheie ce indic nceputul prii executive a unei instruciuni Utilizat pentru a furniza parametrii modulelor CFM sau CMP (n cazurile n care acestea cer parametri)

n continuarea acestui paragraf se vor detalia cele mai folosite instruciuni i se vor da exemple de utilizare a lor. Instruciunile SET i RESET sunt comenzi date operanzilor SBO pentru activare respectiv dezactivare. Comenzile, aplicate asupra aceluiai operator, se anuleaz una pe cealalt. n tabelul 5. sunt explicate efectele comenzilor asupra operanzilor de un bit. Tabelul 5. Aciunea instruciunilor SET i RESET asupra operanzilor SBO Operan Sintaxa Efect d SET O1.6 Activeaz ieirea 1.6 Ieire RESET Dezactiveaz ieirea 1.6 O1.6 SET F2.1 Foreaz starea memoriei F2.1 n 1 logic Flag RESET F2.1 Foreaz starea memoriei F2.1 n 0 logic 1) CW2 este ncrcat cu valoarea 0 SET C2 2) Bitul C2 este activat (devine 1 logic) Counter 1) Bitul C2 este dezactivat (devine 0 logic) RESET C2 2) CW2 rmne neschimbat 1) Valoarea TP este ncrcat n TW SET T5 Timer 2) Bitul T5 este activat (devine 1 logic) RESET T5 Bitul T5 este dezactivat (devine 0 logic) Programul P1 este activat i ruleaz de la SET P1 nceput Program Programul P1 este dezactivat i nu se mai RESET P1 execut Instruciunea LOAD TO este deosebit de folosit n lucrul cu operanzi multibit. Ea se poate aplica i la operanzi de un bit. Aplicat unui operand multibit, instruciunea LOAD are ca efect ncrcarea valorii operandului respectiv n acumulatorul multibit (MBA). Dac se aplic asupra unui operand SBO, valoarea logic a acestuia se va copia n acumulatorul de un bit (SBA). Scopul instruciunii este de a permite efectuarea de operaii logice sau matematice. De asemenea, acumulatoarul poate fi un pas intermediar pentru transferul unor valori ntre diferii operanzi. Partea LOAD surs, ncarc n acumulator (SBA sau MBA) operandul surs. Partea TO destinaie, descarc valoarea din acumulator n operandul destinaie. ntre operaiile de ncrcare i descrcare se pot executa diverse alte operaii asupra coninutului acumulatorului. Exemplele care urmeaz sunt semnificative. a) Exemple pentru operanzi de un bit (SBO). 1) LOAD I1.0 ; ncarc n SBA starea logic a intrrii I1.0 TO O1.0 ; copiaz aceast stare la ieirea O1.0

LOAD I1.0 ; ncarc n SBA starea logic a intrrii I1.0 AND N I1.1 ; operaie logic ntre SBA i I1.0 negat. Rezultatul se nregistreaz n SBA. TO O0.1 ; copiaz SBA la ieirea O1.0 Exemplele de mai sus sunt instruciuni STL valabile dar se pot nlocui cu instruciuni de mai jos, care sunt mai uzuale: 1) IF THEN SET OTHRW RESET IF AND N THEN SET OTHRW RESET I1.0 O1.0 O1.0 I1.0 I1.0 O0.1 O0.1

2)

2)

b) Exemple pentru operanzi multibit (MBO). 1) LOAD V100 ; ncarc n acumulator valoarea zecimal 100 TO TP1 ; copiaz valoarea 100 n cuvntul Timer Preselect al temporizatorului 1 TO R10 ; copiaz aceeai valoare 100 n registrul 10. 2) 0F TO OW0 ; copiaz rezultatul n cuvntul de ieire OW0 n exemplul 2 s-au pstrat numai intrrile din primii 4 bii ai cuvntului de intrare IW1. Procedeul se numete mascare. Masca este valoarea hexazecimal 0f care n binar se scrie 00001111. Dup operaia logic SI, pot fi diferii de zero numai primii 4 bii. 3) Dac un automat programabil are 4 cuvinte de ieire de 16 bii fiecare: OW0, OW1, OW2, OW3, resetarea tuturor ieirilor prin metode uzuale (RESET OW0.1, RESET OW0.2, OW4.15) ar necesita 64 de linii de cod STL. Utiliznd instruciunea LOAD aceast operaie se poate face n 5 linii de cod, conform exemplului de mai jos. LOAD V0 TO OW0 TO OW1 TO OW2 TO OW3 Observaie:Instruciunea LOAD este una dintre cele mai puternice instruciuni din limbajul STL. Trebuie reinut c o instruciune LOAD pregtete sistemul pentru urmtoarele instruciuni. Dintre instruciunile care, de regul, se folosesc dup LOAD, se amintesc: SHL, SHR, ROL, ROR, SWAP, AND, OR, EXOR, etc. Instruciunea JMP TO furnizeaz un mijloc eficient de a influena cursul execuiei programului. Prin utilizarea instruciunii JMP TO.. se poate ocoli regula ca ultima sentin dintr-un pas s fie adevrat pentru ca programul s treac la pasul urmtor. Instruciunea LOAD IW1 ; ncarc n acumulator coninutul cuvntului de intrare IW1 AND V$0F ; execut funcia SI multibit cu valoarea hexazecimal

JMP TO.. poate fi utilizat pentru a stabili o prioritate de execuie a sentinelor dintr-un anumit pas al programului. Exemplul urmtor folosete instruciunea JMP TO.. pentru tratarea situaiei n care s-a apsat butonul EMERGENCY STOP. n funcionare normal acest buton este normal nchis. STEP 20 IF THEN urgen) . JMP TO . STEP 80 IF ateapt n AND (I2.1) a THEN la pasul 20 Urmtorul exemplu de utilizare a instruciunii JMP TO ilustreaz situaia n care un operator poate selecta o opiune din 3 posibiliti. STEP 40 IF AND N AND N THEN JMP TO IF N AND AND N THEN JMP TO IF N AND N AND THEN JMP TO I1.1 I1.2 I1.3 100 I1.1 I1.2 I1.3 150 I1.1 I1.2 I1.3 200 ; Dac intrarea 1.1 este singura activ ; ; ; execut salt la pasul 100 ; ; Dac intrarea 1.2 este singura activ ; ; execut salt la pasul 150 ; ; ; Dac intrarea 1.3 este singura activ ; execut salt la pasul 200 JMP TO 20 ; instalaiei i atunci se va continua programul de I2.1 ; acest loc pn se va apsa butonul de reset 80 I1.1 ; alte sentine n pasul 20 ; ali pai ai programului ; Dac s-a apsat butonul de oprire de urgen ; alte sentine n pasul 20 N I1.1 ; Dac s-a apsat butonul EMERGENCY STOP LOAD V0 ; incarc valoarea 0 n acumulator TO OW0 ; reseteaz toate ieirile (uzual pentru cazuri de

Prin ordonarea atent a mai multor sentine ntr-un pas, mpreun cu folosirea instruciunii JMP TO, se pot stabili prioriti de execuie a programului. n exemplul ce urmeaz se presupune c toi paii pn la 50 conin instruciuni pentru procese de automatizare iar de la pasul 50 pn la pasul 60, programul verific intrrile I1.1, I1.2, I1.3 i ateapt pn la apariia uneia din acestea. Numai una din cele 3 posibile intrri va fi tratat i, dac exist mai multe intrri la un moment dat, intrarea I1.1 va avea cea mai mare prioritate. STEP 60 IF N AND N AND N I1.1 I1.2 I1.3 ; Dac nici o intrare ; din cele trei ; nu este activ

THEN JMP TO ateptare) IF THEN JMP TO IF THEN JMP TO IF THEN (pasul urmtor) N AND N AND

60 I1.1 100 I1.2 150 I1.1 I1.2 I1.3 NOP

; atunci reia execuia pasului 60 (bucl de ; Dac intrarea 1.1 este activ ; execut salt la pasul 100 ; Dac intrarea 1.2 este activ ; execut salt la pasul 150 ; ; ; Dac intrarea 1.3 este activ ; atunci nu executa nimic i treci mai departe

Instruciunea NOP nseamn nici o operaie (NO Operation) i orict ar prea de ciudat este deseori util n programele STL. Consecinele utilizrii acestei instruciuni depind de locul unde este utilizat ntr-o sentin. n partea condiional instruciunea NOP va fi ntotdeauna adevrat (1 logic) i deci instruciunile din partea executiv se vor executa. STEP 45 IF THEN NOP ; ntotdeauna adevrat (1 logic) SET T6 ; atunci starteaz temporizatorul T6 RESET F1.1 ; reseteaz bitul 1 al flag-ului FW1

Dac un pas al unui program conine mai multe sentine care trebuie s fie prelucrate continuu, instruciunea NOP poate fi utilizat pentru controlul cursului execuiei programului. STEP 11 IF THEN

SET

I1.4 T4

; Dac intrarea 1.4 este activ ; atunci starteaz temporizatorul 4

IF THEN SET OTHRW RESET IF AND THEN INC IF N THEN JMP TO situaii IF THEN JMP TO STEP 90

I3.0 ; Dac este activ intrarea 3.0 (START MANUAL) O1.6 ; atunci pornete motorul (ieirea 1.6) O1.6 ; altfel oprete motorul T4 ; Dac temporizatorul 4 este pornit O1.6 ; i motorul este pornit CW3 ; incrementeaz numrtorul 3 I2.2 90 ; Dac s-a apsat butonul EMERGENCY STOP ; atunci execut salt la pasul de tratare a acestei

NOP ; ntotdeauna 11 ; continu de la nceputul pasului curent

IF reactivat AND aceste condiii) THEN JMP TO

I2.2 I3.3 11

; Dac butonul EMERGENCY STOP a fost ; i butonul RESET a fost apsat (se ateapt ; atunci continu scanarea pasului 11

Cnd este folosit n partea executiv a unei sentine instruciunea NOP este echivalent cu nu face nimic. Dei acest lucru pare s nu aib valoare practic, instruciunea este util n cazurile cnd programul trebuie s atepte ndeplinirea unui set de condiii nainte de a se merge mai departe. Exemplul urmtor relev aceast situaie. STEP 60 IF AND AND N THEN poate ; merge mai departe Instruciunile INC i DEC se folosesc pentru incrementarea, respectiv decrementarea cu 1 a operandului multibit la care sunt aplicate. Spre deosebire de alte operaii aritmetice, nu este nevoie de ncrcarea operandului n acumulator naintea operaiei propriu-zise. Instruciunile INC i DEC se pot utiliza cu orice operand multibit dar, de regul, ele se utilizeaz pentru actualizarea numrtoarelor. Aplicarea ambelor instruciuni asupra unui operator multibit este exemplificat mai jos. Pe o linie automat de ncrcat sticle, intrarea I1.3 este activat de fiecare dat cnd o sticl trece prin dreptul staiei de numrare. Numrul total de sticle este memorat n registrul R9. Se poate ntmpla ca o sticl s nu fie umplut n totalitate i acest lucru se sesizeaz cu senzorul I3.6 plasat dup staia de numrare. n cazul acesta numrul total de sticle memorat n registrul R9 trebuie sczut cu 1 iar sticla respectiv va fi reintrodus n circuitul de umplere. Programul STL care realizeaz aceast automatizare este prezentat n continuare. IF de numrare THEN IF umplere THEN n R9 SET O2.1 ; i se reintroduce sticla n circuitul de umplere Instruciunea INC R9 este echivalent cu instruciunile: LOAD R9 +V1 TO R9 ceeace accentueaz observaia despre flexibilitatea instruciunii LOADTO I1.3 INC R9 I2.2 ; intrarea 1.3 sesizeaz toate sticlele care trec prin staia ; i actualizeaz numrul acestora n registrul R9 ; Dac o sticl a ajuns la staia de testare a nivelului de ; i sticla nu este plin ; atunci se reduce cu 1 numrul total al sticlelor memorat I1.5 T7 C2 NOP ; Dac intrarea 1.5 este activ ; i temporizatorul 7 merge ; i numrtorul 2 a terminat de numrat ; atunci condiiile de mai sus sunt satisfcute i se

AND N I3.6 DEC R9

Instruciunea AND este folosit : - pentru operaia logic SI ntre doi sau mai muli operanzi SBO sau MBO n partea condiional a unei sentine; - pentru evaluarea funciei SI logic ntre doi operanzi MBO fie n partea condiional fie n cea executiv a unei sentine Exemple: 1) operanzi SBO. IF I1.1 AND T6 THEN SET O1.5 ; daca intrarea 1.1 are semnal ; i temporizatorul T6 este activat ; atunci transmite semnal la ieirea 1.5

2) operanzi MBO a) utilizare n partea condiional IF ( R6 ; dac operandul multibit obinut prin funcia I logic AND R7 ) ; ntre regitrii 6 i 7 = V34 ; este egal cu 34 (valoare zecimal) THEN . ; atunci . (partea executiv) b) utilizare n partea executiv IF . ; dac (parte condiional) THEN LOAD ( R38 ; atunci ncarc n acumulatorul multibit operandul AND R45) ; obinut cu funcia SI logic ntre regitrii 38 i 45 TO R17 ; descarc coninutul acumulatorului n registrul 17. Instruciunile OR i EXOR au acelai regim de utilizare ca i instruciunea AND. n continuare se va da un exemplu de aplicare a funciei EXOR (Sau Exclusiv). Exemplu: Pe o staie de umplere n serii de 8 sticle, exist 8 poziii de umplere. Sticlele sosesc la aceast staie transportate pe o band rulant. Cnd o sticl ajunge n poziia 8 linia se oprete i sticlele prezente sunt umplute. n fiecare poziie de umplere (n afar de poziia 8) este posibil ca la un moment dat s existe sau nu o sticl. Cnd la staie s-au terminat de umplut sticlele prezente ciclul se reia pentru o nou serie. Intrrile I0.0 I0.7 sunt conectate la senzorii de prezen a sticlelor n poziiile de umplere. Intrarile I1.0I1.7 sunt conectate la senzorii de umplere. Ieirile O0.0O0.7 controleaz dozatoarele de lichid. Ieirea O1.0, cnd este setat, nchide o poart pentru a imobiliza sticlele n timpul umplerii. STEP 10 IF N AND THEN SET LOAD ( EXOR TO IF ( = AND O1.0 I0.7 O1.0 IW0 IW1) OW0 OW0 V0 ) O1.0 ; Dac sticlele nu sunt oprite ; i o sticl exist la ultima poziie (poziia I0.7) ; oprete sticlele din micare ; nregistreaz care sticle sunt prezente ; i nu sunt umplute ; comand umplerea sticlelor. ; Dac toate ieirile ; sunt oprite ; i linia este oprit pentru umplere

THEN RESET JMP TO

O1.0 ; atunci repornete banda pentru urmtorul ciclu 10 ; i reia programul de la pasul 10

Instruciunile SHL (SHift Left) i SHR (SHift Right) sunt instruciuni care deplaseaz toi biii acumulatorului multibit cu o poziie spre stnga (n cazul SHL) sau spre dreapta (n cazul SHR). Bitul care dispare dup aceast mutare va fi pierdut. Bitul care apare va fi 0 logic. n tabelul 6.6. se d un exemplu de folosire al celor dou comenzi. Tabelul 6.6. Efecte ale instruciuniloe SHL i SHR Rezultat Operaie 1010111100001001 LOAD R10 SHL (prima) 10101111000010010 SHL (a doua) 01011110000100100 1010111100001001 0101011110000100 1 0010101111000010 0 Instruciunea SHL poate fi folosit pentru nmulirea cu 2 a coninutului acumulatorului. Utilizatorul trebuie s verifice nainte c bitul 16 nu este 1 logic. Altfel valoarea obinut nu mai este rezultatul nmulirii cu 2 i se obine o eroare numit overflow. n acelai mod pentru mprirea valorii acumulatorului multibit cu 2 se poate folosi instruciunea SHR. Rezultatul este un numr ntreg chiar dac valoarea iniial a fost un numr impar. Exemplul urmtor prezint o seciune de program STL pentru automatizarea unei linii de asamblare. Instruciunea SHL se folosete pentru simplificare programrii prin utilizarea repetat a acesteia asupra aceluiai operand multibit. Metoda se numete Shift Register. Exemplu:O linie de asamblare de cartue cu band pentru imprimante este compus din 10 posturi de lucru. Procesul ncepe n postul numrul 1 unde o carcas de cartu este plasat pe linia de asamblare. La postul numrul 10 cartuul complet este descrcat ntr-o main de ambalat. La fiecare post de lucru (1...10), dup teminarea operaiei de asamblare corespunztoare, este efectuat i o verificare a calitii. Piesele cu defecte sunt imediat scoase de pe linia de asamblare. n plus, cnd maina se pornete dimineaa (dup ce s-a oprit seara), numai posturile de lucru n care existau componente bune (la oprire) trebuie s reia lucrul. Fiecare post de lucru conine senzori pentru asigurarea poziionrii corespunztoare a pieselor naintea operaiei de asamblare. Ca operand multibit se folosete cuvntul de memorie (flag) FW1. n primii 10 bii ai cuvntului FW1 vor fi 1 logic numai acei bii corespunztori posturilor de lucru valide. SHR (a doua) LOAD R10 SHR (prima)

STEP 40 IF AND N AND N este bun)

F1.1 T1 I2.1

; Dac n postul 1 exist o pies bun ; i operaia de asamblare s-a terminat ; iar senzorul de calitate este neactivat (piesa nu

THEN RESET IF

F1.1 ; atunci dezactiveaz bitul 1 al cuvntului FW1.

F1.2 ; la fel ca mai sus pentru postul 2 AND N T1 ; AND N I2.2 ; THEN RESET F1.2 ; . IF F1.10 ; la fel ca mai sus pentru postul 10 AND N T1 ; AND N I2.10 ; THEN RESET F1.10 ; IF THEN SET STEP 50 IF indexare THEN LOAD SHL + V1 pies nou) TO STEP 60 IF THEN RESET JMP TO FW1 ; i copiaz rezultatul n acelai cuvnt FW1 I2.0 ; Dac linia a terminat micarea de indexare O1.1 ; atunci oprete micarea ei 20 ; i reia programul de la pasul 40. FW1 ; ncarc cuvntul FW1 n acumulator ; deplaseaz la stnga coninutul acumulatorului ; seteaz primul bit la 1 logic (n postul 1 va fi o N T1 ; Dac operaia s-a terminat O1.1 ; atunci indexeaz linia de asamblare I2.0 ; linia de asamblare este nc n micare pentru

Instruciunile ROL i ROR rotesc coninutul acumulatorului multibit spre stng respectiv dreapta cu o poziie. Utilizarea lor este asemntoare cu cea a instruciunilor SHL i SHR. Tabelul 6.7. explic efectul aplicrii acestor instruciuni asupra MBA. Tabelul 6.7. Efecte ale instruciuniloe ROL i ROR Rezultat Operaie 1010111100001001 LOAD R10 ROL (prima) 10101111000010011 ROL (a doua) 01011110000100110 1010111100001001 1101011110000100 1 0110101111000010 0 ROR (a doua) LOAD R10 ROR (prima)

Instruciunile CPL i INV sunt asemntoare dei se aplic n situaii diferite. Instruciunea CPL se folosete pentru operaia de complement fa de 2 a coninutului acumulatorului multibit (MBA). Reprezentarea n complement fa de 2 este o tehnic uzual n aritmetica binar. Prin aceast tehnic se reprezenta digital numerele negative. Cnd CPL se aplic

la numere ntregi cu semn se obine numrul nmulit cu (1). De exemplu complementul fa de 2 al numrului 10 este 10. Aceasta din urm este principala utilizarea a instruciunii CPL. Tabelul 6.8. arat modul de obinere a unui complement fat de 2 aplicat la un operand de 16 bii. Tabelul 6.8. Rezultate obinute cu instruciunile CPL i INV Operand Operaie 0001 0111 1001 1101 MBO 1110 1000 0110 0011 CPL ( = INV + 1) 1110 1000 0110 0010 INV (= CPL 1) Mod de obinere a rezultatului Formula de obinere a complementului fat de 2 al unui 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (= 2 1) 0001 0111 1001 1101 (operand MBO (16 bii) este: MBO) CPL( MBO) = 216 MBO 1 1 1 0 1 0 0 0 0 1 1 0 0 0 1 0 + rezultat INV 0000 0000 0000 0001 ( + 1) 16 1110 1000 0110 0011 rezultat 2 = 1 0000 0000 0000 0000 = 1111 1111 1111 1111 + CPL 0000 0000 0000 0001
16

Instruciunea INV inverseaz toi biii acumulatorului multibit (MBA). Cnd se aplic la intregi cu semn, operaia este echivalent cu nmulirea numrului cu (1) dup care acesta se adun cu acelai ( 1). De asemenea instruciunea INV este echivalent cu operaia de negare bit cu bit a unui operand multibit. Urmtorul cod STL exemplific utilizarea instruciunii INV. O main de amestecat (mixer) are 16 puncte de lucru. Ciclul de lucru const n alternarea n timp a perioadelor de scuturare cu cele de ateptare a limpezirii produsului. La funcionarea normal a mainii, muncitorii nlocuiesc aleator oricare din cele 16 containere de lucru. De aceea, la pornirea operaiei de scuturare, trebuiesc activate numai posturile de lucru care conin containere. Pentru detectarea containerelor se folosesc senzori de proximitate. STEP 10 IF N THEN LOAD INV lucra) AND containere) TO SET STEP 20 IF N procesului THEN JMP TO OW1 ; noua comand de lucru a staiilor T1 ; activeaz temporizatorul 1 T1 10 ; ateapt trecerea timpului necesar completrii IW1 ; verific prezena containerelor ( dar numai cele cu T1 ; Dac ciclul scuturare ateptare s-a ncheiat OW1 ; atunci ncarc n MBA starea ieirilor ; inverseaz rezultatul (staiile care au stat, acum vor

; dup care se reia pasul 10.

Instruciunea SHIFT execut o schimbare ntre valorile logice ale unui operand de un bit (SBO) i acumulatorul de un bit (SBA). Instruciunea este folosit pentru operaii de

manipulare la nivel de bit. n acest fel se poate modifica orice bit dintr-un operand multibit. nainte de folosirea instruciunii trebuie ncrcat n acumulatorul de un bit (SBA) valoarea logic dorit. n exemplul urmtor de fiecare dat cnd intrarea I1.0 este activat ieirile O1.1 pn la O1.4 trebuie actualizare n felul urmtor. - Ieirea O1.4 va lua valoarea anterioar a ieirii O1.3; - Ieirea O1.3 va lua valoarea anterioar a ieirii O1.2; - Ieirea O1.2 va lua valoarea anterioar a ieirii O1.1; - Ieirea O1.1 va lua valoarea intrrii I1.1; STEP 10 IF THEN I1.0 ; Dac intrarea I1.0 este activ LOAD I1.1 ; atunci ncarc n SBA starea intrrii I1.1 TO F0.0 ; aceast stare este memorat i n flagul F0.0 SHIFT O1.1 ; n O1.1 va fi memorat starea lui I1.1 (n SBA ncrca O1.1) SHIFT O1.2 ; n O1.2 va fi memorat starea lui O1.1 (n SBA ncrca O1.2) SHIFT O1.3 ; n O1.3 va fi memorat starea lui O1.2 (n SBA ncrca O1.3) SHIFT O1.4 ; n O1.4 va fi memorat starea lui O1.3 (n SBA ncrca O1.4) STEP 20 IF N I1.0 ; THEN JMP TO 10 ;

se va se va se va se va

Instruciunea SWAP se aseamn cu instruciunea SHIFT dar se aplic pentru operanzi multibit. Efectul ei este de a inversa valorile celor doi octei ai acumulatorului multibit MBA. nainte de utilizare trebuie ncrcat n acumulator un operand multibit. n tabelul 6.9. se d un exemplu simplu din care se poate observa efectul acestei instruciuni. Tabelul 6.9. Aplicaie a instruciunii SWAP. 0000 0000 1111 1111 LOAD MBO 1111 1111 0000 0000 SWAP 1111 1111 0000 0000 TO MBO Instruciunile BID i DEB sunt folosite pentru trecere din sistemul binar n cel binar codat zecimal (BID) i invers (DEB). Sistemul de numeraie binar este cel utilizat n mod obinuit n automatul programabil. Sistemul binar codat zecimal este folosit pentru comunicarea cu aparate de afiare digital. n acest din urm sistem fiecare 4 bii reprezint o cifr. Deci 16 bii pot reprezenta 4 cifre pe un afior digital. Cu patru cifre se poate numra de la 0 la 9999. n tabelul 6.10. se prezint corespondena ntre cifrele din baza 10 i valorile lor n sistemul binar codat zecimal. n ambele cazuri operandul MBO trebuie ncrcat n acumulator. Instruciunea BID transform numrul binar ntr-un numr de 4 cifre, binar codat decimal. Instruciunea DEB transform cele 4 cifre n numr binar. Tabelul 6.10. Sistemul binar codat zecimal 0 1 2 3 4 5 0000 0001 0010 0011 0100 0101 6 0110 7 0111 8 1000 9 1001 Zecima l Binar

2.4. Temporizatoare (Timers). Temporizatoarele n automatele programabile FESTO sunt tipuri speciale de date constituite din trei operanzi. Referindu-ne la timerul numrul n, acetia sunt: Tn Timer Status; TPn Timer Preselect; TWn Timer Word; Pentru FEC sunt disponibile 256 de temporizatoare, numerotate de la 0 la 255. Tn Timer Status este un operand de un bit (SBO) care reprezint starea timer-ului. Acest operand poate fi interogat n orice moment pentru valoarea sa logic. De asemenea el poate fi activat i dezactivat cu instruciunile SET Tn respectiv RESET Tn. TPn Timer Preselect este un operand multibit (MBO) de un word (16 bii) care reprezint valoarea setat de utilizator n uniti de intervale de timp. Activarea sau dezactivarea temporizatorului Tn nu are influen asupra operandului TPn. Setarea unei valori n TPn se face explicit cu o instruciune de ncrcare. Exemplu: LOAD TO V200 ; ncarc valoarea zecimal 200 (2 secunde) TP2 ; n cuvntul Preselect al temporizatorului 2

La anumite automate programabile, intervalele de timp, numite i baze de timp, pot fi configurate de utilizator (de exemplu 0,01s; 0,1 s; 1s; 10s). La automatul programabil FEC baza de timp este de o sutime de secund (0,01s), acesta fiind cel mai mic interval de timp care se poate temporiza. Deoarece numrul maxim al unui word este de 65535 rezult c cea mai mare durat de timp care poate fi obinut pentru un timer este de 655s, adic aproximativ 10 minute. Pentru durate de timp mai mari se pot folosi combinaii ntre un timer i un counter. TWn Timer Word este un operand multibit (MBO) de un word (16 bii) care reprezint valoarea curent a timer-ului. Acest operand nu conine un numr stabil. La activarea temporizatorului valoarea TPn se ncarc automat n TWn. Acest numr va fi apoi decrementat (tot automat) la fiecare impuls de ceas. Cnd TWn ajunge la zero temporizatorul se dezactiveaz. Utilizarea temporizatoarelor. nainte de a putea folosi un timer acesta trebuie iniializat, adic trebuie ncrcat o valoare n Timer Preselect. Iniializarea trebuie fcut din nou numai dac se dorete modificarea duratei de timp de temporizare. Nu este necesar s se reiniializeze TP de fiecare dat cnd timer-ul este activat. Timer Preselect poate fi ncrcat cu o valoare constant sau cu coninutul unui operand multibit (regitri, cuvnt de memorie sau de intrri, etc.) La activarea unui timer cu instruciunea SET Tn, urmtoarele aciuni se execut automat: se va activa timer-ul (Tn = 1 logic); se va ncrca n TWn coninutul lui TPn dup care; se va ncepe temporizarea. Pe durata temporizrii, la fiecare impuls de ceas, va fi decrementat operandul TWn. Cnd numrul TWn devine zero atunci temporizarea se ncheie i timerul se reseteaz, adic operandul Tn devine 0 logic. Un timer se poate dezactiva la terminarea temporizrii sau n mod explicit, cu comanda RESET Tn. n acest caz Timer Status, Tn, devine 0 logic. Dac Tn era 0 logic n momentul comenzii de resetare atunci comanda nu are nici un efect.

2.5. Numrtoare (Counters). Numrtoarele, ca i temporizatoarele, sunt integrate n sistemul de operare al automatului programabil FEC. Numrtoarele pot fi utilizate pentru nregistrarea n timp a unui numr de evenimente (de exemplu numrul de piese care trec pe o band rulant). Pentru FEC sunt disponibili 256 de numrtoare, numerotate de la 0 la 255. Exist dou tipuri de numrtoare: incrementale i decrementale. Tipul standard n STL este tipul incremental care se va studia n continuare. Ca i temporizatoarele, numrtoarele sunt structuri de date formate din trei operanzi. Pentru cazul general al unui numrtor oarecare n, acetia sunt: Cn Counter Status ; CPn Counter Preselect; CWn Counter Word. Cn Counter Status este un operand de un bit (SBO) n care se memoreaz starea numrtorului. n partea executiv a unei sentine numrtorul poate fi activat sau dezactivat cu comenzile SET Cn i RESET Cn. Operandul Cn poate fi interogat n orice parte condiional a programului. CPn Counter Preselect este un operand multibit (MBO) de un cuvnt n care se ncarc valoarea setat de utilizator. Acest operand rmne neschimbat n timpul numrrii. Schimbarea valorii CPn se efectueaz o singur dat, la iniializare. Operandul CPn poate fi iniializat cu o valoare constant sau cu valoarea coninut n orice alt operand multibit (IWn, FWn, etc.). n cazul valorilor constante, limitele de variaie ale acestora pot fi: V0 V65535, ntreg zecimal de 16 bii, fr semn; V 32268 V32267, ntreg zecimal de 16 bii, cu semn; V$0000V$FFFF, ntreg reprezentat n baza 16 (hexazecimal); CWn Counter Word este un operand multibit (MBO) de un cuvnt n care se gsete valoarea curent a numrtorului. Incrementarea numrtorului se face cu instruciunea INC CWn. Utilizarea numrtoarelor. nainte de utilizarea unui numrtor acesta trebuie iniializat. Pentru numrtoare incrementale, la iniializare se ncarc valoarea 0 n CWn. Aceast operaie se efectueaz automat la activarea numrtorului. Pentru activarea unui numrtor este suficient comanda SET urmat de operandul de stare al acestuia, Cn. De fiecare dat cnd se activeaz un numrtor se efectueaz urmtoarele aciuni: Valoarea operandului Counter Word, CWn, este ncrcat cu valoarea 0; Bitul Couter Status, Cn, este setat la 1 logic. Dac numrtorul incremental Cn este deja activ i se reactiveaz cu comanda SET Cn, atunci numrtorul este repornit prin ncrcarea valorii 0 n CWn. Un numrtor activat i meninea valoarea (Cn = 1 logic) pn la apariia uneia din situaiile de mai jos: numrtorul se reseteaz cu comand RESET Cn; dup incrementri succesive ale operandului CWn, acesta devine egal cu valoarea setat: CWn = CPn; Dup apariia oricreia din situaiile de mai sus numrtorul se dezactiveaz (Cn=0 logic).

2.6. Elemente avansate de programare STL. Module software. n plus fa de programele concepute de utilizator se pot folosi module software care sunt de dou feluri: - module de funcii; - module program; Un modul software poate fi apelat din orice parte executiv a oricrui program STL. 2.6.1. Module de funcii create de constructor (CFM). Modulele de funcii, CFM, sunt mici programe utilizate pentru a efectua prelucrri de date de complexitate mic sau medie. Deoarece sunt utile i des folosite de utilizatori, ele sunt furnizate de productor i pot fi folosite imediat dup instalarea softului. La instalare mediului FST-FEC, modulele de funcii sunt plasate n directorul FBLIB.FEC. Dac se dorete utilizarea lor, ele trebuiesc importate n proiectul curent cu ajutorul opiunii Import file din meniul Project management. Numai n acest fel ele sunt disponibile pentru apelare n cadrul programelor. Dup selectarea funciilor modul din directorul FBLIB.FEC acestora li se atribuie un numr de ctre utilizator. O funcie CFM este ntotdeauna apelat din partea executiv a unei sentine. n programul STL apelarea unei funcii modul se face cu instruciunea compus: CFM n WITH x1 WITH x2 unde n este numrul dat de utilizator la importul fiierului iar x1, x2, sunt parametrii de intrare necesari funciei. Ca parametri se folosesc operanzi de diferite tipuri (intrri, ieiri, memorie, numere constante, etc.). 2.6.2 Module program create de utilizator (CMP). Modulele program, CMP, sunt subrutine create de utilizator n mediul FST-FEC. Sunt tratate n acelai fel ca programele obinuite, fiind gestionate cu aceleai comenzi. Pentru a crea un modul program trebuie selectat litera B n cmpul Prog./Module [P/B]: din fereastra de creare a unui nou program. Numrul modulului poate fi n domeniul 099. Editarea unui modul program este identic cu a unui program obinuit. Totui exist cteva detalii care trebuiesc reinute cnd se lucreaz cu module program: - nu se poate apela un CMP dintr-un alt CMP care conine pai; - programul care a apelat un CMP este oprit la instruciunea imediat urmtoare i va atepta pn cnd execuia modulului program se va ncheia; - sunt permise instruciuni de salt, dar trebuiesc luate msuri pentru evitarea formrii buclelor infinite; Procedura de scriere a instruciunii de apel a unui modul program este identic cu cea de la module de funcii cu observaia c se nlocuiete notaia CFM cu CMP. Unui modul program i se pot plasa parametri n mod asemntor modulelor funcie, CFM. Aceasta se face cu instruciunea WITH urmat de o constant sau de un operand multibit. Parametrii modulelor program sunt ncrcai n unitile speciale de funcii: FU32FU38. n programul STL al modulului program este indicat s se foloseasc aceste funcii deoarece numai n acest fel modulul va fi aplicabil n orice situaie. Dac n modul se specific un anumit operand absolut (de exemplu cuvntul intrrilor IW1) atunci modulul va putea fi folosit numai pentru o aplicaie specific i nu mai are un caracter general (de exemplu pentru un alt automat programabil configuraia intrrilor poate fi: IW0 sau IW7). Apelarea unui program modul se va face ntotdeauna din partea executiv a unei sentine.

2.7. Verificarea corectitudinii programelor i ncrcarea unui proiect n AP. nainte de ncrcarea programelor n automatul programabil acestea trebuiesc compilate. Prin compilare se nelege transcrierea instruciunilor scrise n limbaj STL ntr-un limbaj special numit cod main pe care automatul l poate nelege. Pentru a simplifica munca utilizatorului, mediile de programare ofer unelte de verificare a corectitudinii scrierii programelor. Verificarea se poate face nainte de compilare sau la compilare. n cazul n care programele conin erori i acestea sunt depistabile, utilizatorul va fi avertizat. Erorile care pot aprea n programele STL sunt de dou tipuri: erori de concepie; erori de sintax; Erorile de concepie nu pot fi depistate naintea sau n timpul compilrii. Ele in mai mult de structura programelor i de modul de concepere al aplicaiei pe care acestea trebuie s o rezolve. Printre erorile de concepie se numr: - bucle infinite; programul repet la infinit doar cteva instruciuni i nu are nici un criteriu de ieire din acel ciclu; - existena unei condiii care nu va putea fi niciodat ndeplinit; programul se va bloca ateptnd ceva imposibil sau nu va executa niciodat un set de instruciuni; - mprire la zero a unui operand n cazul utilizrii operaiilor aritmetice; - etc. Erorile de concepie se nltur printr-o scriere atent a programelor i cu ajutorul depanrii on-line care se va detalia n capitolul 7. Erorile de sintax sunt depistabile la compilare i se refer la corectitudinea scrierii fiecrei instruciuni n parte. Ca exemple de erori de sintax se pot da: - scrierea incorect a cuvintelor cheie; - ncercarea de a activa o ieire; - depirea limitelor permise ale unor valori numerice (numrul de temporizatoare este de maxim 255. ncercarea de a folosi temporizatorul T450 va fi semnalat ca eroare). n mediul de programare FST FEC programele STL se pot verifica din punct de vedere al corectitudinii sintaxei. Verificarea se poate face n timpul editrii sau dup editare. Pentru verificarea sintaxei n orice moment din timpul editrii, se apas tasta F7 (Extended Commands) i se selecteaz opiunea Check syntax, dup care se apas ENTER, figura

6.1. Fig. 6.1. Verificarea sintaxei n timpul editrii programelor. n cazul existenei unei erori (prima ntlnit de la nceputul programului), va apare o fereastr de anunare a tipului erorii iar linia de program n care a aprut eroarea va fi

poziionat n partea de sus a ecranului i scoas n eviden cu o dung n contrast. n figura 2 se poate observa mesajul de eroare aprut la descoperirea liniei de program n care se ncearc activarea ieirii I0.0 (de la intrri se poate numai citi, nu se poate scrie).

Fig. 2. Prima eroare descoperit n program. A doua eroare este n pasul STEP 1 unde dup THEN i nainte de bec1 ar trebui s urmaze SET sau RESET. Dup editare verificarea sintaxei se face cu opiunea Syntax test din submeniul Statement list. Va aprea o fereastr cu programele coninute n proiect, fig. 3. Cu ajutorul tastelor direcionale se selecteaz programul care se dorete a fi verificat (n cazul nostru P0 vrsiunea 1) i se apas ENTER. Dac nu exist nici o eroare atunci se revine n meniul principal. Dac exist erori va apare o nou fereastr n care este afiat numrul de erori din program. n exemplul nostru apar dou erori aa cum se vede n figura 6.4.

Fig. 3. Selectarea unui program pentru verificarea erorilor de sintax.

Fig. 6.4. Fereastra de afiare a erorilor din programul P0 versiunea 1. Pentru cutarea mai uoar a liniilor din program unde exist erori se poate consulta lista de erori prin activarea opiunii Error List din submeniul Statement list. Apare fereastra de selecie a programului. Figura 6.5. prezint lista de erori a programului P0 versiunea 1 dup selecia acestuia cu ajutorul tastelor direcionale i apsarea tastei ENTER. n lista de erori se d numrul liniei la care a aprut eroarea i o descriere a tipului erorii. Aceste informaii sunt suficiente pentru remedierea erorilor deoarece, la editarea programelor, n linia de stare din capul ferestrei, se afieaz n permanen numrul liniei

la care se gsete cursorul de editare. Fig. 6.5. Lista de erori din programul P0 versiunea 1. ncrcarea proiectului n automatul programabil se execut selectnd opiunea Load project din submeniul Statement list. nainte de ncrcarea proiectului n FEC trebuiesc ndeplinite condiiile: - FEC-ul alimentat cu tensiune i cablul de conexiune cu calculatorul montat; - Sistemul de operare al FEC-ului trebuie s fie pornit; - Proiectul trebuie s aib cel puin un program; - n proiect trebuie s existe o configuraie a intrrilor i ieirilor.

La activarea opiunii Load project va apare o fereastr cu programele, funciile modul (CFM) i modulele program (CMP) coninute n proiect, fig. 6.6. Programele i modulele care se doresc a fi ncrcate n FEC se selecteaz cu tastele direcionale i tasta ENTER. Trebuie apsat tasta ENTER pentru fiecare program care se dorete a fi ncrcat n FEC. Selecia se poate face i cu mouse-ul. La sfritul seleciei se apas tasta F1 pentru

nceperea operaiei de ncrcare. Fig. 6.6. Programele care se pot ncrca n FEC. Asteriscul (*) desemneaz programele care au fost selectate pentru ncrcare n FEC. La comanda de ncrcare a proiectului n automatul programabil se face n mod automat o verificare de sintax a fiierelor selectate pentru ncrcare. Dac exist programe cu erori, operaia de ncrcare se anuleaz i utilizatorul este anunat de existena erorilor. n cazul cnd nu exist erori la aceast ultim compilare, se ntreab utilizatorul dac vrea s ncarce n automatul programabil i fiierele care conin instruciunile STL. Aceste fiiere se numesc fiiere surs. Dac se selecteaz opiunea N (No) atunci acestea nu se ncarc, fig. 6.7. Dac se selecteaz opiunea Y (Yes) atunci, n viitor, proiectul se va putea ncrca din FEC pe oricare calculator care se va conecta la automatul programabil. Operaia se poate face cu opiunea Upload project din submeniul Project management. Dup apsarea tastei F1 fiierele sunt ncrcate n Fig. 6.7. Opiune de ncrcare n FEC a programelor surs. FEC unul dup altul. Operaia de ncrcare se poate anula n orice moment prin apsarea tastei ESC. Dac se rspunde afirmativ la ntrebarea de confirmare a acestei aciuni, ncrcarea se oprete iar fiierul care tocmai se ncrca se terge din FEC. Atenie! Varianta veche a acestui fiier NU va fi pstrat n FEC. Pentru ca proiectul ncrcat s devin activ, trebuie ca automatul programabil s fie repornit (cu ajutorul comutatorului de pe partea frontal a carcasei).

UNIVERSITATEA TEHNICA GH. ASACHI IASI FACULTATEA DE MECANICA CATEDRA ORGANE DE MASINI SI MECATRONICA

Disciplina: Actionarea sistemelor mecatronice LUCRARE DE LABORATOR NR. 4


MODULAR PRODUCTION SYSTEM (MPS) ECHIPAMENT DE INSTRUIRE IN MECATRONICA

Conectarea on-line la automatul programabil 1. Scopul lucrarii: Crearea abilitatilor de a lucra on line cu automatul programabil , lucru necesar in supravegherea functionarii automatului, inclusiv in depistarea erorilor de conceptie a programelor 2. Introducere. Una din caracteristicile unui automat programabil este aceea de a permite conectarea cu o consol de programare i diagnosticare. Consola poate s fie un calculator obinuit sau unul special dedicat acestei misiuni. De obicei consola este portabil. Despre programare s-a vorbit n capitolul 6. n acest capitol se vor detalia metodele i posibilitile de diagnosticare. Pentru diagnosticare trebuie s se poat stabili o comunicare ntre calculator i AP n timpul funcionrii normale a AP-ului. n acest caz se vorbete de conectare on-line. Conectarea on-line este necesar: 1) Pentru verificarea funcionrii echipamentelor periferice automatului programabil n timpul instalrii i punerii n funciune a instalaiilor de automatizare. n acest sens, fiecare senzor pentru semnalele de intrare se poate verifica separat, prin aducerea instalaiei n starea n care senzorul trebuie s funcioneze. De asemenea, fiecare ieire se poate fora n 1 logic (sau 0 logic) pentru observarea execuiei corecte a comenzilor date de automatul programabil. 2) Pentru depistarea erorilor de concepie din programele complexe. Dac intrrile i ieirile sunt conectate corect, dar instalaia funcioneaz necorespunztor, atunci exist, n programele STL, cel puin o eroare de concepie. Aceast eroare se poate depista prin observarea atent a strii fiecrui operand n timpul execuiei programelor. Acest capitol descrie modul de lucru on-line al mediului de programare FSTFEC cu aplicaie la automatul programabil E.FEC-20-AC. 3. Depanarea on-line a programelor STL Urmrirea execuiei unui program se poate face prin selectarea opiunii STL online display din submeniul Statement list. Aceast comand va deschide fereastra cu programele proiectului ateptndu-se selecia unuia din ele. Selecia se execut cu tastele direcionale i prin apsarea tastei ENTER. n fereastra care urmeaz este afiat programul STL. Lng fiecare operand apare valoarea acestuia care este actualizat n permanen, pe msur ce programul se execut n automatul programabil. n figura 1 se prezint fereastra de vizualizare a programului P0 (acelai de la sfritul capitolului 6) dup conectarea on-line. Dup apsarea butonului start programul a executat pasul 0 n care ieirea bec1 a fost activat cu comandda SET bec1. Programul s-a oprit la pasul 1 unde ateapt s fie ndeplinit condiia de apsare a butonului stop

pentru a merge mai departe. Se observ c n partea dreapt a fiecrui operand se afieaz valoarea acestuia funcie de instruciunile care s-au efectuat pn n acel moment. Linia contrast arat pasul din program care este n execuie.

Fig. 1. Fereastra de depanare on-line a unui program STL. Trebuie amintit c informaiile despre valorile operanzilor i pasul n execuie se obin prin comunicare permanent cu automatul programabil. Viteza de actualizare a valorilor operanzilor depinde de mrimea programului, adic de cantitatea de informaii necesar. Opiunea STL online display ofer posibilitatea de a modifica forat valorile operanzilor cu ajutorul tastei F3, Modify FU. Alegerea operandului care trebuie modificat se poate face cu mouse-ul, cu tastele direcionale i apsarea tastei ENTER sau prin scrierea explicit, prin selectarea tastei F2, Altern operand. 3.1. Verificarea on-line a operanzilor de intrare i ieire. Totui termenul de diagnosticare are un sens mai general dect cel prezentat n paragraful anterior. Astfel, este posibila o conexiune on-line pentru vizualizarea i modificarea operanzilor, chiar dac utilizatorul nu dispune de programele STL surs. Opiunea IPC online mode, care se gsete n submeniurile Statement list i Utilities, stabilete o conexiune on-line adevrat cu automatul programabil. Prima fereastr care apare dup selecie, prezentat n figura 2, ofer posibilitatea de alegere a urmtoarelor aciuni: - tasta F1: vizualizarea i modificarea operanzilor din AP; - tasta F3: comunicare cu automatul prin comenzi scrise de utilizator. Modul terminal se utilizeaz de programatorii avansai i ofer aceleai posibiliti ca i selecia F1; - tasta F4: cu acest selecie se terg toate programele i toi operanzii din automatul programabil; - tasta F7: vizualizeaz programele i modulele existente n automatul programabil. - tasta F8: termin sesiunea de conectare on-line cu automatul programabil.

Fig. 2. Prima fereastr dup conectarea on-line cu automatul programabil. La apsarea tastei F1 (Display IPC-Info) apare fereastra prezentat n figura 3. Din aceast fereastr se pot vizualiza i modifica: F1 intrrile i ieirile; F2 memoria; F3 temporizatoarele; F4 numrtoarele; F5 regitrii; F6 i F7 se discut n paragraful 7.5. Mergnd mai departe cu selecia tastei F1 se obine fereastra din fig 7.7. Tastele F1 i F2 permit vizualizarea intrrilor respectiv ieirilor locale automatului programabil. Cele de fieldbus sunt active numai cnd automatul lucreaz n reea cu alte echipamente inteligente.

Fig. 3. Prima fereastra Display IPC-Info care apare la selectarea tastei F1 (vezi i fig. 2).

Fig. 4. A doua fereastra Display IPC-Info care apare la selectarea tastei F1 (vezi i fig. 3).

Pentru vizualizarea intrrilor se apas F1. Pentru vizualizarea i modificarea ieirilor se apas F2. Ferestrele prezentate n fig. 5.a) i b) vizualizeaz toate intrrile (inputs) respectiv ieirile (outputs). Operanzii sunt prezentai ca: - valoare a cuvintelor (operanzi pe 16 bii); - valoare a fiecrui bit n parte. n fereastra intrrilor, fig. 5 a), valorile cuvintelor nu se pot modifica deoarece de la intrri se o poate doar citi. n fereastra ieirilor valorile cuvintelor se pot schimba de utilizator prin scrierea unui numr n cmpul activ i apsarea tastei ENTER. Pentru a ajunge la cmpul dorit se folosesc tastele direcionale.

a) intrri

b) ieiri

Fig. 5. Ferestre de vizualizare. Pentru cuvintele de ieire este posibil modificarea. Din ferestrele prezentate n figurile 5. a) i b), pentru a schimba valoarea fiecrui bit n parte trebuie apsat tasta TAB. Meniul de la baza ferestrei se va schimba, fig. 6, iar cursorul de editare se va poziiona n coloanele de bii. n coloanele de bii a ieirilor se poate modifica orice bit astfel: - tasta F1 (Set operrand): bitul este activat i devine 1 logic; - tasta F2 (Reset operrand): bitul este dezactivat i devine 0 logic; - tasta F3 (Toggle operrand): bitul este inversat la fiecare apsare, adic dac a fost 1 logic va deveni 0 logic i invers.

a) intrri

b) ieiri

Fig. 6. Accesul la cmpurile de bii. Biii de ieire se pot modifica cu tastele F1, F2 i F3. Ieirea din cmpurile de bii se realizeaz prin apsarea tastei ESC. Se va reveni la ferestrele din figura 5. n general terminarea unei aciuni (nchiderea unei ferestre) se realizeaz prin apsarea testei F8.

7.4. Verificarea on-line a memoriei, temporizatoarelor i numrtoarelor. La fel ca operanzii intrrilor i ieirilor se pot vizualiza i ceilali operanzi STL. Mai mult, acetia se pot modifica foarte uor de ctre utilizator. n figura 7. a) este prezentat fereastra de vizualizare i modificare a cuvintelor de memorie. Se ajunge aici prin apsarea tastelor F1 i F2 imediat dup conectarea on-line Prin apsarea tastei TAB se pot modifica biii memoriei, fig. 7.b).

a) modificare cuvinte memorie b) modificare bii memorie Fig. 7. Accesul on-line la cuvintele i biii de memorie. n figura 8. este prezentat fereastra de vizualizare i modificare a celor trei operanzi ce costituie un temporizator. Se ajunge aici prin apsarea tastelor F1 i F3 imediat dup conectarea on-line (vezi i fig. 3). Se observ c timerul T0 este inactiv (0 logic), c valoarea setat este de 1 secund (TP0 = 100) i c timpul a expirat (TW0 = 0). De asemenea se observ c temporizatorul T3 este setat la 20 de secunde (TP3 = 2000). n aceast fereastr se pot modifica: - starea timerului, Tn; - timpul setat, TPn. Fig. 8. Accesul on-line la temporizatoare. Cursorul de editare se deplaseaz cu ajutorul tastelor direcionale pe fiecare coloan iar ntre coloane de deplaseaz apsnd tasta TAB. Strile temporizatoarelor sunt cele existente n automatul programabil n momentul deschiderii ferestrei. Pentru o actualizare permanent trebuie selectat opiunea Dynamic display (tasta F3). n figura 9 este prezentat fereastra de vizualizare i modificare a numrtoarelor. Se ajunge aici prin apsarea tastelor F1 i F4 imediat dup conectarea on-line (vezi i fig. 3). Deplasarea ntre cmpurile de date se face la fel ca pentru temporizatoare. Pentru o actualizare permanent trebuie selectat opiunea Dynamic display (tasta F3).

Fig. 9. Accesul on-line la numrtoare. Se pot vizualiza i modifica toi cei 3 operanzi ai fiecrui temporizator. De exemplu, n figura 9 se observ c utilizatorul a modificat operanzii primelor 3 temporizatoare, astfel: - T0 are valoarea preselect, TP0 = 10, a numrat de 2 ori dup care a fost dezactivat, probabil cu o comand RESET T0; - T1 este activ dar nu a numrat nimic din 20, ct are stabilit n TP1. - T2 este dezactivat i ateapt o comand SET T2 pentru a deveni activ i a numra pn la 30 (TP2). 3.2. Verificarea on-line strii programelor ncrcate n automatul programabil. Dac n automatul programabil exist ncrcat un proiect i acesta este n funciune, este posibil o verificare on-line a strii programelor din proiect. Prin selectarea tastelor F1 i F7 imediat dup conectarea on-line, se deschide fereastra prezentat n figura 7.13. Pentru fiecare program se poate vizualiza starea acestuia (dac este activat sau dezactivat) i pasul n execie n momentul apariiei ferestrei. Pentru o actualizare permanent trebuie selectat opiunea Dynamic display (tasta F3). Din fereastra de vizualizarea a strii programelor, cu tasta F7, se poate activa sau dezactiva fiecare program din AP. Folosirea acestei operaii asupra programului principal, P0, este echivalent cu aciunea comutatorului RUN/STOP de pe partea frontal a carcasei FEC-ului. Programul P0 se va activa i dezactiva indiferent de poziia comutatorului. n exemplul prezentat n figura 10, proiectul din automatul programabil conine un singur program, P0.

Fig. 10. Accesul on-line la programele ncrcate n AP. 3.3. Gestiunea fiierelor ncrcate n automatul programabil FEC. Mediul de programare FSTFEC ofer acces la fiierele din automatul programabil. n FEC exist dou directoare rdcin (drive-uri): A: - n care se gsesc fiierele cu sistemul de operare. B: - ce conine fiierele necesare funcionrii proiectului ncrcat n FEC. Accesul la aceste directoare este deplin n sensul c fiierele din ele se pot terge sau copia din FEC pe calculator sau de pe calculator n FEC. Vizualizarea fiierelor se face cu comanda Program Execution din submeniul Utilities. Se mai tasteaz o dat ENTER dup apariia mesajului File operations. Va aprea fereastra din figura 11. n care se ofer opiunile: F1 se vor vizualiza fiierele din automatul programabil, din directorul afiat n partea de sus a ferestrei (n cazul de fa A:); F2 se vor vizualiza fiierele din directorul calculatorului afiat n partea de sus a ferestrei.

Fig. 11. Fereastra principal dup selecia comenzii Utilities > Program execution. 1) n cazul seleciei opiunii from IPC (F1) va aprea o nou fereastr care este prezentat n figura 12.

Fig. 12. Lista cu fiierele coninute n directorul rdcin A: al automatului programabil n aceast fereastr sunt afiate toate fiierele care se gsesc n directorul rdcina A al FEC-ului. n acest moment sunt posibile aciunile: tasta F1 terge fiierul (selectat cu tastele direcionale); tasta F2 copiaz din FEC pe calculator (n directorul afiat n partea de sus a ferestrei) fiierul selectat; tasta F7 ofer posibilitatea de a schimba directorul rdcin al FEC-ului, aa cum se observ n figura 13.

Fig. 13. Selectarea vizualizrii coninutului directorului rdcin B: al FEC-ului 2 ) n cazul seleciei opiunii from PC (tasta F2, vezi i fig. 11) va aprea o nou fereastr care este prezentat n figura 14. n aceast fereastr sunt afiate toate fiierele care se gsesc n directorul calculatorului: C:\FESTO\FSTFEC\RUNTIME.IPC (afiat n partea de sus a ferestrei). n acest moment sunt posibile aciunile: tasta F1 (download file) copiaz fiierul de pe calculator (selectat cu tastele direcionale) n directorul rdcin A: sau B: (cel care este scris n partea de sus a ferestrei, dup textul: Actual IPC drive: ); tasta F7 (target drive) permite selecia directorului rdcin A: sau B: unde vor fi transferate fiierele de pe calculator; tasta F8 (Exit) nchide fereastra i se ntoarce la cea precedent.

Trebuie specificat c n fereastra prezentat n fig. 14, se poate selecta orice fiier din orice director al calculatorului (pe drive-ul C:).

Fig. 14. Selectarea vizualizrii coninutului directorului rdcin B: al FEC-ului

3.4. Conectarea n serie a dou automate programabile fec Este posibil ca dou automate programabile FEC s funcioneze conectate ntre ele ca o reea master slave. n acest caz: - primul FEC (master) are n memorie proiectul care se va executa iar la configurarea intrrilor i ieirilor se adaug opiunea Remote FEC la care se vor seta numere pentru cuvintele de intrare i de ieire (distincte de cele folosite pentru intrrile i ieirile lui); - al doilea FEC (slave) trebuie s fie dezactivat (comutatorul RUN/STOP de pe partea frontal a carcasei este n poziia STOP) i trebuie terse din directorul rdcin B: fiierele PROJECT.RUN i STARTUP.BAT. Pentru tergerea fiierelor din FEC-ul slave: - se monteaz cablul de conexiune ntre calculator i acesta iar comutatorul RUN/STOP se comut pe poziia STOP; - n mediul de programare FSTFEC se selecteaz comanda Program Execution din submeniul Utilities. n continuare se selecteaz tasta F1 (from IPC). Vor aprea fiierele coninute n directorul rdcin A: al automatului programabil. Pentru schimbarea directorului din A: pe B: se selecteaz tasta F7 (IPC drive) i se introduce litera B urmat de apsarea tastei ENTER. Dup afiarea fiierelor coninute n directorul rdcin B: se pot selecta fiierele de interes cu tastele direcionale. Fiierul selectat se poate terge apsnd tasta F1 i tasta y la ntrebarea de confirmare a comenzii. Dup tergerea fiierelor, FEC-ul slave trebuie deconectat i reconectat la tensiunea de alimentare pentru descrcarea din memorie a sistemului de operare.