Prezentare Mediu de Programare GX IEC Developer

49
Prezantarea automatelor programabile Mitsubishi FX şi a mediului de programare GX IEC Developer

description

electrotehnica

Transcript of Prezentare Mediu de Programare GX IEC Developer

  • Prezantarea automatelor programabile Mitsubishi FX i a mediului de programare GX IEC

    Developer

  • Cuprins 1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1. Introducere in domeniul automatelor programabile . . . . . . . . . . . . . . . . . . . . 1.2. Introducere in standardul IEC 61131-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1. Programare Structurata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2. Limbajele de programare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Termeni de baza uitilizati in standardul IEC 61131-3 . . . . . . . . . . . . . . . . . 2.1. Proiecte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Modul de programare organizata (POU) . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Programe, functii bloc si functii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Parametrii si instantiere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. Task-uri (sarcini) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6. Variabile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7. Adresarea in GX IEC Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8. Limbaje de programare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8.1. Retele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8.2. Limbajul LD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8.3. Limbajul SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Mediul de programare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. Crearea noilor proiecte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Crearea de task-uri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Declararea variabilelor globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Crearea unui POU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5. Programarea Header-elor de POU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6. Programarea Corpului POU-lui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.1. Prezentarea timer-elor in GX IEC Developer . . . . . . . . . . . . . . . . . . . . . 3.6.2. Prezentarea contoarelor in GX IEC Developper . . . . . . . . . . . . . . . . . . . 3.6.3. Limbajul SFC (Sequential Function Chart) . . . . . . . . . . . . . . . . . . . . . . 3.7. Verificarea programelor automatului programabil (verificarea sintaxei) . . . . . . . . . 3.8. Configurarea task-urilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9. Compilarea proiectelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10. Setarea portului de comunicare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11. Incarcarea programelor pe automat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.12. Monitorizarea programelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.13. Descarcarea datelor de pe automat pe calculator . . . . . . . . . . . . . . . . . . . . .

    3 j 3 4 4 6 70 7 7 8 9 10 11 13 14 14 14 16 18i 18 19 20 22 23 23 24 25 26 42 43 44 45 46 47 48

    2

  • 1.Introducere 1.1. Introducere in domeniul automatelor programabile Intr-o economie moderna, orice automatizare (control) ar ca obieciv sa ridice competitivitatea unui produs, fie direct prin cost si calitate, fie indirect prin imbunatatirea conditiilor de munca. Controlul implica conducerea unor sisteme dinamice avand stari continue. Aceste sisteme sunt descrise de ecuatii diferentiale si au, in general, intrari si iesiri analogice. Conducerea acestor sisteme se realizeaza cu calculatoare de proces echipate cu module de intrari/iesiri analogice performante. Exista situatii in care intrarile, iesirile si starile unor sisteme pot fi modelate prin variabile binare. In aceste cazuri cerintele impuse sistemelor de conducere sunt mai reduse, utilizandu-se automate programabile. Primele automate programabile (Programmable Controllers) au fost introduse in anul 1969 in Statele Unite, de catre inginerii de la General Motors, pentru a satisface nevoile industriei de automobile. Scopul lor a fost de a inlocui releele utilizate pentru automatizarea liniilor de fabricatie cu echipamente mai ieftine si, in plus, mai flexibile. Primul automat a fost propus industriei de automobile sub numele MODICN (Modular Digital CONtroller). Din punct de vedere hardware, in anii 70 tehnologia de realizare a unitatilor centrale ale automatelor programabile era dominata de procesoarele bit-slice. Circuitele AMD 2901si 2903 echipau automatele MODICON si A-B (Allen Bradley). Chiar si azi unele automate sunt echipate cu aceste procesoare. Aproximativ prin 1973, automatele programabile (AP) au inceut sa fie dotate cu facilitate de comunicare. Un astfel de sistem a fost MODICON MODBUS. Acum AP puteau comunica unele cu altele si se puteau situa la distanta de procesul condus. Din pacate in lipsa unei standardizari, corelata cu rapiditatea schimbarilor din tehnologia electrica a facut ca multitudinea de protocoale utilizate, specifice firmeor producatoare, sa fie un cosmar pentru utilizatorii de AP. Anii 80 au constituit ani de incercare de standardizare a comunicatiilor utilizandu-se MAP (Manufacturing Automation Protocol) de la General Motors. Apoi s-a introdus, ca varianta europeana, PROFIBUS promovat in specila de firma Siemens. Acesti ani au fost de asemenea remarcati, in ceea ce priveste istoria AP, de progrese insemnate in ceea ce priveste reducerea dimensiunilor si pentru aparitia limbajelor de programare simbolice si a programelor de consola care au facut programarea mai usoara si realizabila pin intermediul calculatoarelor personale, care au inlocuit consolele de programare utilizate pana atunci. In ceea ce priveste dimensiunile se poate constata ca un AP poate atinge, astazi, dimensiunile unui releu, desi el poate ingloba sute de astfel de relee. Din punct de vedere software cei mai multi dintre producatorii de AP au implementat la inceput limbajul LAD (Ladder Diagram). Acst limbaj a fost dezvoltat in jurul unei reprezentari schematice a circuitelor cu contacte si relee. Pentru problemele simple de automatizare, programarea in Ladder Diagram este ideala deoarece este intuitive si poate fi inteleasa fara o pregatire speciala, dupa o scurta perioada de instruire. Pe la inceputul anlor 90 existau mai mult de o mie de producatori de AP, fiecare din ei avand implementat limbajul Ladder Diagram. Din pacate, in absenta oricarei standardizari, fiecare producator are implementari usor diferite. Aceste implementari au ca scop extinderea setului de instructiuni. Pentru aceasta s-au introdus asa numitel operatii speciale. Exemple de astfel de operatii speciale sunt tratari numerice ale variabilelor, contoarele de mare viteza, controlul motoarelor electrice etc. Programele scrise pentru sisteme diferite erau similare, dar setul de instructiuni variaza de la producator la producator. Aceasta situatie tinde sa lege un programator de un anumit producator, mai ales in cazul elaborarii unor aplicatii complexe, unde se utilizeaza intreg setul de instructiuni si toate tehnicile de programare. Cu scopul eliminarii acestei dependente, in anul 1979 s-a constituit un grup de lucru al Comisiei Electrotehnice Internationale (CEI), care si-a propus o standardizare completa a

    3

  • AP. Standardul dezvoltat, IEC 1131, ulterior numit IEC 61131, este o incercare de a realiza aceasta, el fiind respectat de tot mai multi producatori. De la apritia lor AP s-au raspandit rapid in industrie reprezantand astazi unul din cele mai utilizate echipamente. Succesul AP se datoreaza in primul rand pretului redus si faptului ca pot fi puse in functiune si eventual programate de personal fara pregatire de nivel inalt in domeniul informaticii. AP sunt microcalculatoare simple, special construite pentru a rezolva, prin program, probleme de logica secventiala si de a inlocui comanda automatizarilor secventiale cu logica cablata realizata cu circuite logice sau relee. Aceste echipamente ofera, in general, mai putine oportunitati decat calculatoarele informatice sau cele de proces, dar pot fi utilizate foarte usor de un personal mai putin specializat, datorita limbajelor de programare mai simple, de tipul limbajului cu relee, limbajului cu ecuatii booleene sau a limbajelor grafice. Derularea unui program pe un AP este, in general, de tip sincron, ceea ce elimina complicatiile care apar in cazul multitasking-ului. Cea mai mare parte a AP sunt construite pentru a inlocui releele, ele lucrand cu variabile booleene si avand unitatea centrala simplificata. Ca in toate domeniile, progresul tehnologic s-a concretizat si aici prin punerea la punct a unor AP performante, de complexitatea calculatoarelor de proces care ofera multe facilitate si care pot fi utlizate in automatizari dosebit de complexe. Desi, asa dupa cum am afirmat anterior, programarea AP este de competenta nivelului de pegatire mediu exista si in acest domeniu tehnici de programare structurata, care maresc considerabil fiabilitatea programelor si usureaza munca de documentare a programelor. Cunoasterea structurii hardware si mai ales a modului de executie a unui program pe un AP, pe langa bazele programarii structurate a acestora, sunt lucruri importante pentru un inginer automatist. 1.2. Introducere in standardul IEC 61131-3 IEC 61131-3 este noul standard international pentru automatele programabile, intocmit de catre Comisia Internationala de Electrotehnica (IEC). El defineste limbajele de programare si structura elementelor pentru programele automatelor programabile. 1.2.1. Programare Structurata Programarea structurata inlocuieste colectia dificila si intortocheata de instructiuni cu un aranjament transparent al instructiunilor in module. Aceste module se refera la Modulele de Programare Organiazata (POU), care alcatuiesc bazele noii abordari in programare. POU-rile sunt folosite la implementarea tuturor sarcinilor de programare.

    4

  • Aceste 3 clase diferite ale POU-rilor sunt clasificate dupa functionalitatea lor: -Programe -Functii -Functii bloc POU-rile declarate ca functii sau functii bloc sunt de-a dreptul instructiuni de programare si pot fi folosite ca atare in fiecare modul al programului. Programul final este asamblat din POU-rile pe care le definiti ca si programe. Acest proces este controlat de catre managementul sarcinilor, in task pool. POU-rile program sunt puse impreuna in grupuri referite ca si task-uri.

    POU-rile program sunt grupate la un loc in task-uri. La randul lor toate task-urile grupate la un loc formeaza programul propriu-zis al automatului. Limbajul SFC este de asemenea de ajutor in definirea structurii programelor. In particular se potriveste foarte bine programarii operatiilor secventiale.

    O secventa SFC este alcatuita dintr-o serie de pasi si tranzitii ( tranzitii sau conditii de continuare)

    5

  • 1.2.2. Limbajele de programare Codul propriu-zis al programelor automatelor consta din POU-uri, iar etapele si tanzitiile ale unui graf SFC pot fi scrise in limbajele de programare disponibile. Limbajul folosit va depinde de natura si marimea task-ului pe care vreti sa-l definiti. -Editoare de text IL (Instruction List- Lista de instructiuni) ST (Structured Text- Text Structurat) -Editoare grafice LD (Ladder Diagram) FBD (Function Block Diagram- diagrame de functii bloc) SFC (Sequencial Function Chart) Variabile Inainte de a incepe sa scrieti un program, mai intai trebuie sa va ganditi de ce variabile o sa aveti nevoie. Fiecare POU are o lista pentru variabilele locale, acolo unde se definesc si declara doar variabilele care se pot folosi in acel POU. Variabilele globale, care pot fi folosite de catre toate POU-urile din program sunt declarate pe o lista separata.

    6

  • 2.Termeni de baza uitilizati in standardul IEC 61131-3 2.1 Proiecte Fiecare proiect din mediul GX IEC Developer contine urmatoarele elemente:

    -Library Pool (bibliotecile disponibile): contine instructiunile din biblioteca standard si instructiunile din biblioteca producatorului -parametrii PLC -task-urile (sarcinile) in Task Pool -tipurile structurate de date in DUT Pool -variabilele globale -modulele de program organizate (denumite in continuare POU) in POU Pool

    Obiectele proiectului sunt prezentate in fereastra de navigare in cadrul proiectului

    2.2 Modul de programare organizata (POU) Fiecare modul de programare organizata (POU) este alcatuit din: -un header prezentat in partea de sus a figurii urmatoare -un body (corpul modulului) prezentat in partea de jos a figurii urmatoare Variabilele care vor fi folosite in POU sunt declarate in header.

    7

  • Body-ul contine programul propriu-zis. Modulele de programare organizata (POU) sunt clasificate in 3 categorii, dupa functionalitatea lor: -programe (PRG) -functii (FUN) -functii bloc(FB) 2.3 Programe, functii bloc si functii

    POU este modulul standard de organizare a programelor. POU-urile pot contine instructiuni din biblioteci, functii si functii bloc. Executia unui POU este controlata de catre o sarcina (task). POU-uri declarate ca si functii sau functii bloc sunt elemente de program independente. Ele functioneaza efectiv ca si instructiuni de programare care pot fi inlocuite oricand este necesar si pot de asemenea fi folosite in alte module de program, la fel ca si instructiunile obisnuite.

    8

  • NOTA 1.Functiile bloc pot fi apelate de POU-rile program sau de catre alte functii bloc, dar nu de catre functii. La randul lor pot contine instructiuni din biblioteci, functii sau alte functii bloc. 2.Functiile bloc returneaza una sau mai multe valori ca si rezultat. Toate valorile variabilelor de iesire precum si valorile interne din blocul de functii sunt memorate dupa incheierea executiei unei functii bloc. Aceste valori sunt apoi folosite cand functia bloc este reapelata. Acest lucru inseamna ca daca apelam o functie bloc de doua ori cu aceleasi valori de intrare nu inseamna ca vom obtine si aceleasi rezultate. 3.Functiile pot fi apelate de catre POU-urile program, de functii bloc sau de catre alte functii existente. Functiile pot contine instructiuni din biblioteci sau alte functii deja definite 4.Functiile returneaza intotdeauna o valoare si nu memoreaza nici o informatie de stare interna. Astfel ar trebui sa obtineti intotdeauna aceeasi valoare la iesire daca apelati functia cu aceleasi valori de intrare. Urmatorul tabel prezinta diferentele intre functii si functii bloc. Element Functie bloc Functie Memorarea variabilelor interne Se memoreaza Nu se memoreaza Instantierea Este necesara Nu este necesara Iesiri Nici o iesire, o iesire sau mai

    multe iesiri O iesire

    Executie repetata cu aceleasi valori la intrare

    Nu furnizeaza intotdeauna aceeasi valoare la iesire

    Furnizeaza intotdeauna aceeasi valoare la iesire

    2.4. Parametrii si instantiere Functiile si functiile bloc au parametrii formali si parametrii propriu-zisi. Parametrii formali sunt variabilele folosite cand se creeaza o functie sau o functie bloc. Parametrii formali ai instructiunilor din bibliotecile standard si ale producatorului nu sunt vizibili. Parametrii propriu-zisi sunt variabilele care sunt transmise functiilor sau instantelor functiilor bloc atunci cand acestea sunt folosite intr-un POU. Parametrii propriu-zisi pot fi variabile, adrese hardware sau constante.

    POU-ul denumit POU_9 este o functie bloc [FB]. Variabilele IN si OUT utilizate in acest program sunt declarate in header. IN si OUT sunt parametrii formali. Functiile bloc pot fi apelate numai ca si instante. Procesul de instantiere, respectiv de realizare a unei copii a functiei bloc, este realizat in header-ul POU-ului in care instanta va fi folosita. In acest header functia bloc este declarata ca si variabila iar instantei rezultante ii este asociat un nume. Este de

    9

  • remarcat faptul ca se pot declara instante multiple ale aceleiasi functii bloc, dar bineinteles instantele trebuie sa aibe nume diferite. Apoi instantele sunt apelate in corpul POU-ului si paramaterii propriu-zisi sunt transferati parametrilor formali. Fiecare instanta poate fi folosita de mai multe ori. Pentru detalii legate de activarea instantelor functiilor bloc in diferitele limbaje vezi capitolul 2.8."Limbaje de programare.

    Reset este o instanta a functiei bloc POU_9. IN si OUT sunt parametrii formali; TimerS1 si ComeIn sunt parametrii propriu-zisi ai instantei. 2.5 Task-uri (sarcini) Un task contine unul sau mai multe POU-uri declarate ca si programe [PRG]. Task-ul controleaza procesarea acestor programe de catre controller.

    Acest proiect contine doua task-uri: TASK_1 si TASK_2 Daca un proiect contine mai multe task-uri, veti putea defini conditii de executie pentru task-urile individuale.

    10

  • Event: se executa daca variabila are valoarea 1 Interval: se executa la un anumit interval de timp Priority: se executa intr-o anumita ordine predefinita

    2.6 Variabile Variabilele sunt similare operanzilor. Ele contin valorile intrarilor, iesirilor sau ale locatiilor de memorie interna ale automatului programabil. Variabilele pot fi clasificate in functie de scopul lor in program: -variabile globale -variabile locale Variabilele globale sunt create pentru intreg proiectul , ele vand un scop global, ceea ce inseamna ca sunt accesibile din toate POU-urile.Astfel este posibil sa schimbati informatii intre modulele individuale care alcatuiesc proiectul automatului programabil. Variabilele locale sunt valabile numai pentru un anumit POU. Ele nu pot fi folosite intr-un alt POU. Declararea variabilelor Inainte de incepe cu programarea propriu-zisa, este bines a se declare variabilele care vor fi folosite in intreg proiectul (variabilele globale) sau in POU-urile individuale (variabilele locale). Fiecare declaratie de variabila contine urmatoarele elemente: -clasa -identificator -adresa absoluta (numai la variabilele globale) -tipul de data -valoarea initiala (se insereaza automat) -comentariu (optional) -remarca (numai la variabilele globale)

    Tabela din header in care se declara variabilele locale ale functiei bloc POU_9 Clasa Cuvantul cheie class asociaza variabilei o anumita proprietate care defineste cum va fi aceasta folosita in proiect

    11

  • Utilizare in POU-uri Clasa PRG FUN FB

    Semnificatie

    VAR X X X Variabila care este folosita numai in POU

    VAR_CONSTANT X X X Variabila locala cu valoare initiala care nu poate fi schimbata

    VAR_INPUT - X X Variabila preluata din exterior care nu poate fi modifificata in POU

    VAR_OUTPUT - - X Variabila de iesire din POU VAR_IN_OUT - - X Variabila locala preluata din exterior si

    furnizata la iesire de catre POU, care poate fi modificata in cadrul programului

    VAR_GLOBAL X - X Variabila globala declarata in lista variabilelor globale

    VAR_GLOBAL_CONSTANT X - X Variabila globala cu valoare initiala care nu poate fi schimbata

    Identificatori si adrese absolute Fiecarei variabile ii este asociata o adresa simbolica (numele), aceasta reprezinta identificatorul. El este format dintr-un sir de caractere alfanumerice si din caracterul underscore _. Identificatorul trebuie sa inceapa intotdeauna cu o litera sau cu caracterul underscore. Nu sunt permise spatiile sau caracterele operator ( de ex: +,-,*). Exemple de identificatori: EROARE, ZEROSIG,LIM_SW_5 Atunci cand se declara variabile globale trebuie sa li se asocieze de asemenea adrese absolute care fac referire la locatia de memorie unde este memorata variabila sau la intrari sau iesiri fizice. Daca nu specificati o adresa absoluta atunci aceasta va fi alocata automat. Cand se declara variabilele globale in header-ul POU-ului li se aociaza automat o locatie de memorie. Se poate folosi sintaxa IEC sau sintaxa Mitsubishi pentru a asocia adrese absolute. Astfel vor fi disponibile doua coloane de adresa. De indata ce s-a introdus adresa in una din coloane, celealalta adresa va aparea automat. Se poate introduce una din cele doua adrese in oricare din coloane. Daca de exemplu introduceti o adresa MITSUBISHI in coloana IEC, GX IEC Developer va identifica acest lucru imediat, si va plasa adresa in coloana potrivita generand in acelasi timp adresa corespunzatoare in coloana IEC.

    Adresa IEC Adresa Mitsubishi Semnificatie %QX0 Y0 Iesirea Y0 %IX31 X1F Intrarea X1F %MW0.450 D450 Registrul de date D450 La specificarea adreselor trebuie utilizate numai majuscule si nu se pot insera spatii sau caractere care reprezinta operatori matematici (de ex: +,-,*). Modurile de adresare sunt prezentate in capitolul 2.7.

    12

  • Tipuri de date Tipul de data al unei variabile defineste numarul de biti pe care ii contine, cum sunt procesate si care este intervalul de valori pentru variabila respectiva. Tipurile de date disponibile sunt prezentate in urmatorul tabel Tipul de data Interval de vlori Dimensiune

    BOOL Boolean 0 (fals), 1 (adevarat) 1 bit INT Intreg -32768 pana la 32768 16 biti DINT Intreg dublu -2.147.483.648 pana la 2.147.483.648 32 de biti WORD Sir de 16 biti 0 pana la 65535 16 biti DWORD Sir de 32 de biti 0 pana la 4.294.96.295 32 de biti REAL valoare flotanta 3.4*10^ (+/- 38) 32de biti TIME Valoare de tip timp T#-24d-0h31m23s648.00ms pana la

    T#24d0h31m23s648.00ms 32 de biti

    STRING (numai la seria Q)

    Sir de caracere Max 50 de caractere

    Valoarea initiala Valorile initiale sunt setate automat de sistem si nu pot fi modificate de utilizator Comentariu Se poate adauga un comentariu de 64k pentru fiecare variabila Remarca Se poate adauga informatie suplimentara de catre utilizator 2.7. Adresarea in GX IEC Developer Posibilitatile de adresarea in GX IEC Developer sunt prezentate in tabelul ce urmeaza Adresa Mitsubishi Adresa IEC Descriere Exemplu X %I Intrare X0 %IX0

    X37 %IX31 Y %Q Iesire Y0 %QX0

    Y37 %QX31 %M Memorie interna D0 %MW0.0

    D450 %MW0.450 D

    %M Memorie interna D0.0 %MX0.0.0 D5.2 %MX0.5.2

    Dupa cum se observa sunt disponibile 3 zone de memorie: - zona de memorie corespunzatoare imaginilor intrarilor (adrese care incep cu I) - zona de memorie corespunzatoare imaginilor iesirilor (adrese care incep cu Q) - zona de memorie interna a automatului (adrese care incep cu M)

    13

  • 2.8. Limbaje de programare Mediul de programare GX IEC Developer suporta 5 limbaje de programare: 2 de tip text, 2 grafice si un limbaj structuat. Limbajele de tip text sunt: -IL (lista de instructiuni) disponibil in 2 variante: IEC IL (corespunzator standardului international) si MELSEC IL (corespunzator producatorului Mitsubishi) -ST (text structurat) Limbajele grafice sunt: -LD (foloseste contacte si relee) -FBD (foloseste blocuri care realizeaza fuctii specifice) Limbajul strucurat: SFC (se bazeaza pe graf) Obs.: Dupa ce un limbaj de programare a fost selectat acesta nu mai poate fi schimbat. Desi practic acest lucu este posibil, se va pierde intreg continutul corpului unitatii respective daca se schimba limbajul de programare. 2.8.1. Retele In toate editoarele, cu exceptia editoarelor SFC si ST, programul PLC este impartit intr-un numar de sectiuni cunoscute sub numele de retele. Fiecarei retele ii este asociat un nume (eticheta retelei) care poate fi folosit ca destinatie la o instructiune de salt. In continuare vom prezenta doar limbajele LD si SFC care sunt cel mai des utilizate de catre programatorii de aplicatii si care au fost utilizate si in cadrul acestui proiect pentru realizarea programelor demonstrative. 2.8.2. Limbajul LD In acest limbaj se pot folosi toate instructiunile disponibile in biblioteci. Diagramele LD contin contacte, bobine, functii bloc si functii. Aceste elemente sunt conectate prin linii de legatura verticale sau orizontale. Aceste linii incep intotdeauna la bara de alimentare din stanga.

    Programarea grafica in editorul ladder diagram

    14

  • Apelarea functiilor bloc Functiile bloc pot fi apelate numai ca si instante. Numele instantei trebuie declarat in header-ul POU-ului respectiv. In editorul LD, numele functiei bloc este afisat in interiorul acesteia iar numele instantei declarate in header trebuie introdus deasupra functiei bloc. Apoi parametrii propriu-zisi trebuie transferati din exterior catre parametrii formali inscrisi in interiorul blocului.

    Apelarea functiilor bloc

    Numar Descriere 1 Declararea lui Reset o instanta a blocului de functii POU_9 2 Activarea blocului de funcii POU_9. Cuvantul Instance de deasupra blocului

    indica faptul ca trebuie introdusa instanta blocului de functii in acest loc 3 Numele instantei Reset a fost introdus 4 In continuare, parametrii actuali TimerS1 si ComeIn sunt transferati

    parametrilor formali IN si OUT

    Numar Descriere 1 Bara de retea 2 Linia de alimentare 3 Varibila de intrare 4 Variabila de iesire 5 Intrare de validare 6 Iesire care specifica starea de functionare a blocului 7 Variabila de iesire 8 Contact 9 Bobina 10 Comentariu

    15

  • 2.8.3. Limbajul SFC SFC este un limbaj structurat care permite o reprezentare clara a proceselor complexe. NOTA: Nu se pot crea functii sau functii bloc in acest limbaj, ci doar module de program organizate (POU-uri). Elemente de baza ale limbajului SFC sunt etapele si tranzitiile. Fiecarei etape i se pot asocial intre 0 si n actiuni. O actiune poate fi o variabila booleana sau un program PLC. Aceste programe (care reprezinta actiunile) pot fi scrise in orice limbaj, inclusiv in limbajul SFC. Toate actiunile sunt listate in Action_Pool in fereastra de navigare in cadrul proiectului. Fiecarei tranzitii ii este asociata o conditie de parcurgere a tranzitiei. Conditiile de parcurgere a tranzitiilor pot fi scrise in orice limbaj, mai putin in limbajul SFC. De asemenea toate tranzitiile vor fi afisate in fereastra de navigare in cadrul proiectului. Tranzitiile sunt pacurse in momentul in care conditiile de parcurgere care le sunt asociate devin adevarate. Aceasta are ca efect dezactivarea etapei/etapelor anterioare si activarea etapei/etapelor urmatoare.

    Exemplu de proiect SFC

    Numar Descriere 1 POU-ul denumit P_Payment declarat ca si program 2 Header-ul contine variabilele din POU 3 Programul PLC a fost scris in limbajul SFC 4 Tranzitiile individuale pot fi scrise in diverse limbaje 5 Action Pool contine toate actiunile, care pot de asemenea fi definite in divese

    limbaje Asocierea actiunilor la etape si a conditiilor de parcurgere a tranzitiilor la tranzitii este realizata cu ajutorul urmatoarelor butoane din bara de unelte.

    Activarea actiunii/ conditiei de parcurgere a tranzitiei

    Dezactivarea actiunii/ conditiei de parcurgere a tranzitiei

    16

  • Reguli de constructie ale grafului Un graf incepe inttdeauna cu o stare initiala, reprezentata printr-un chenar dublu. Etapele sunt reprezentate prin dreptunghiuri inchise la culoare care au si un nume. Tranzitiile sunt reprezentate ca dreptunghiuri mici plasate pe liniile verticale care conecteaza etapele. n cazul in care doua sau mai multe conditii de parcurgere a tranzitiilor sunt adevarate in acelasi timp in cardul unui graf cu mai multe ramuri atunci prioritatea va fi acordata tranzitiei aflate cel mai in stanga. Chiar daca si celelalte conditii sunt satisfacute, tranzitiile aflate mai in dreapta nu vor fi parcurse.

    Numar Descriere 1 Etapa initiala 2 Etapa 3 Tranzitie 4 Punct de iesire al unui salt 5 Punct de intrare al unui salt 6 Etapa finala Grafurile pot de asemenea sa contina divergente si convergente, acestea fiind identificate prin linii orizontale duble. Intr-un graf pot sa apara si salturi, care sunt efectuate intre puncte de iesire (instructiuni de salt) si puncte de intrare (etichete). Fiecare etapa poate fi declarata ca macroetapa, care la randul ei contine alt graf. Marcoetapele sunt identificate prin 2 linii orizontale suplimentare in cadrul blocului. Un exemplu extins asupra modului de construire al unui graf va fi prezentat in capitolul 3.6.3..

    17

  • 3. Mediul de programare 3.1. Crearea noilor proiecte Cum sa creati un nou proiect 1) Selectati New in meniul Project. 2) Aceasta afiseaza casuta de dialog Select PLC Type. Selectati in PLC Type tipul PLC-ului si confirmati alegerea facuta apasand butonul OK.

    3) Casuta de dialog New Project este afisata. Selectati sau introduceti calea directorului in care doriti sa fie salvat proiectul. 4) Introduceti numele proiectului la sfarsitul caii (numele proiectului este de asemenea numele subdirectoriului/folderului in care este salvat).Apoi apasati pe butonul Create pentru a crea noul proiect.

    5) Apare casuta de dialog GX IEC Developer New Project Startup Options iar apoi selectati Empty Project si confirmati apasand OK.

    18

  • Imediat ce ati creat proiectul, fereastra de navigare in cadrul acestuia este afisata pe ecran automat cu toate elementele standard ale proiectului.

    Elementele proiectului sunt afisate intr-o structura ierarhica de tip arbore, care intotdeauna contine urmatoarele componente standard: -Project Name (Numele proiectului) -Library Pool (Bibliotecile disponibile) -PLC Parameters (Parametrii automatului) -Task Pool (Sarcinile definite) -Data Unit Types Pool (Tipurile comlexe de date) -Global Variables (Variabile globale) -Program Organisation Units (POU-ri) Informatia aditionala este afisata optional in paranteze in spatele fiecarei intrari in fereastra de navigare a proiectului. Poti afisa aceste detalii apasand Extended Information din meniul View . Culoarea standard de fundal a ferestrei GX IEC Developer este gri deschis. O poti schimba in culoarea dorita cu optiunea Colors din meniul View. 3.2. Crearea de task-uri Cum sa definiti un nou task 1) Selectati fereastra de navigare in cadrul proiectului.

    19

  • 2) Selectati New din meniul Object iar apoi selectati optiunea Task. Sau Apasati pe butonul task nou din bara de unelte

    NOTA: Acest simbol este afisat in bara de unelte cand fereastra de navigare in cadrul proiectului este afisata pe ecran adica atunci cand proiectul este deschis. Casuta de dialog a noului task este afisata:

    3) Introduceti un nume (maxim 32 de caractere) pentru noul task si confirmati apasand OK. GX IEC Developer va crea task-ul si il va afisa in TaskPool-ul ferestrei de navigare din cadrul proiectului. NOTA: Asocierea POU-urilor la task-uri si setarea proprietatilor task-urilor vor fi realizate in capitolul 3.8. 3.3. Declararea variabilelor globale Cum sa declarati variabile globale 1) Dati dublu click pe ramura Global_Vars din fereastra de navigare in cadrul proiectului. Aceasta deschide o fereastra in partea dreapta a ecranului ce contine lista variabilelor globale.

    2) Apasati cu mouse-ul in prima celula din dreptul coloanei Class apoi selectati apasand pe sageata in sus sau in jos VAR_GLOBAL sau VAR_GLOBAL_CONSTANT. 3) Apasati Tab pentru a va muta in coloana Identifier, apoi introduceti identificatorul pentru prima voastra variabila globala. 4) Apasati Tab pentru a va muta in una dintre coloanele urmatoare MIT-Addr. sau IEC_Addr. Introduceti adresa absoluta pentru variabila globala. 5) Apasati Tab pentu a va muta in coloana Type, apoi apasati pe sageata pentru a deschide casuta de dialog ce contine Type Selection.

    20

  • 6) Selectati Simple Types din campul Type Class. 7) Selectati tipul de data corespunzator din lista din stanga. Valoarea initiala din coloana Initial este asociata automat si nu poate fi schimbata de catre user. 8) Daca vreti sa introduceti si un comentariu pentru variabila apasati Tab pentru a va muta in coloana Comment, apoi introduceti textul tau. 9) Pentru a adauga o noua variabila, - in cazul in care cursorul de editare este activ in coloana Comment (fundalul este alb si cursorul clipeste), puteti crea un nou rand pentru declararea altei variabile apasand Tab.

    sau - selectati orice celula din ultima liniei a tabelului si apasati Shift+Enter

    sau - selectati New Declaration in meniul Edit, apoi selectati din submeniu pozitia in care va trebui sa fie inserata noua variabila. sau

    - copiati un rand deja existent: intai selectati randul, apoi apasati Ctrl+C pentru a-l copia. Apoi

    selectati pozitia de inserare prin apasarea unuia dintre simboluri pentru a insera deasupra sau sub linia selectata. Selectati linia creata si apasati Ctrl+V pentru a suprascrie noua linie cu ceea ce ati copiat mai inainte. 10) Salvati modificarile efectuate cu Object-Save. NOTA: Termenii Identifier, address si data type sunt definiti si explicati in capitolul 2.6.

    21

  • 3.4. Crearea unui POU POU-urile intotdeauna sunt alcatuite din doua mari parti : -un header -si un corp al programului. Cum sa creati un nou POU 1) Apasati pe urmatorul simbol din bara de unelte, care creaza un nou POU.

    NOTA: Acest simbol este afisat in bara de unelte doar cand fereastra de navigare in cadrul proiectului este afisata pe ecran, cand un proiect e deschis.

    2) Introduceti un nume pentru noul POU si specificati daca este creat ca si program (PRG), ca si functie (FUN) sau ca si functie bloc .Apoi selectati limbajul de programare ce va fi folosit scrierea codului in corpul POU-ului. Cand sunteti multumit de alegerile facute apasati OK pentru a adauga noul POU la proiect.

    Un nou POU numit Control e definit si declarat ca si Program (PRG). Programul in corpul POU-lui va fi scris in limbajul LD (Ladder Diagram). Noul POU cu numele Control este apoi adaugat proiectului si va aparea in POU Pool, in fereastra de navigare in cadrul proiectului.

    22

  • Simbolul [+] din stanga obiectului Control indica faptul ca mai sunt si ale obiecte subordonate care momentan sunt ascunse. Asteriscul din fata obietului Control indica faptul ca acest POU nu a fost compilat inca. 3) Dati Dublu-clic pe Control pentru a afisa intrarile subordonate. Fiecare POU are doua mari componente: un header si un corp care contine programul propriu-zis in limbajul de programare selectat.

    3.5. Programarea Header-elor de POU Header-ul POU-lui este folosit pentru a declara si a memora variabilele folosite in programul pe care POU-ul il contine. Inafara de variabilele globale si cele locale aceste declaratii pot include si functii bloc. Cum sa programati header-ul POU-lui: 1) Verificati daca intrarile in Header sau Corp sunt afisate sub intrarile POU-ului in POU Pool si le puteti extinde daca este necesar. 2) Dati dublu-click pe intrarea Header din fereastra de navigare in cadrul proiectului. Aceasta deschide o fereastra in partea dreapta a ecranului care contine un tabel cu declaratiile variabilelor locale ale header-ului. 3) Pentru a declara variabilele, procedati exact ca atunci cand ati declarat variabilele globale la punctual 3.3, completati in Class, Identifier si Type pentru fiecare variabila in parte.

    4) Selectati Save din meniul Object pentru a salva intrarile realizate. NOTA: Daca doriti sa adaugati variabile globale in header le puteti copia din tabelul ce contine declararea variabilelor globale (Ctrl+C) si apoi sa le inserati in acest tabel (Ctrl+V). Termenii Class, Identifier, Data Type sunt definiti si explicate in capitolul 2.6. 3.6. Programarea Corpului POU-lui Corpul POU-lui contine codul propriu-zis al programului automatului. Limbajul de programare folosit este indicat in paranteze dupa obiectul Body in arborele proiectului. Cum sa programati corpul POU-lui 1) Verifica daca intrarile Header-ului si Corpului sunt afisate sub intrarea POU-lui in POU Pool si le puteti extinde daca este necesar.

    23

  • 2) Dati dublu-click pe intrarea Body in fereastra de navigare in cadrul proiectului. Fereastra de editare corespunzatoare limbajului de programare selectat este deschisa in partea dreapta a ecranului. Ea contine o singura retea.

    Daca doriti, puteti dezactiva grid-ul de fundal apasand Grid in meniul View. Puteti modifica dimensiunea grid-ului de fundal cu ajutorul optiunii Environment din meniul View. Va rog tineti cont ca valoarea pe care o introduceti pentru spatiile grid-ului schimba setarile pentru intregul ecran, si nu doar pentru editorul de programare selectat. 3) Acum puteti incepe sa scrieti programul vostru. Veti gasi exemple de programe pentru diferitele limbaje de programare in paginile urmatoare. 4) Selectati Save in meniul Object pentru corpul POU-lui tau. NOTA: Puteti mari zona de editare folosind mouse-ul. 3.6.1. Prezentarea timer-elor in GX IEC Developer Un timer (temporizator) este utilizat in general fie pentru a cronometra o anumita operatie fie pentru a provoca intarzierea in timp a unei anumite actiuni. In continuare vom prezenta functia bloc TON_E care realizeaza o temporizare la pornire. Timer-ul este prezentat in figura ce urmeaza:

    Semnficatia intrarilor si iesirilor EN intrare de validare (daca este TRUE functia se executa, daca este FALSE nu se executa) IN intrare binara care la un front crescator determina inceperea cronometrarii timpului PT intervalul de timp dupa care iesirea devine 1 dupa ce intrarea a devenit 1. Se specifica in formatul T#xxHxxMxxSxxMS, unde H-ore, M-minute, S-secunde, MS-milisecunde ENO iesire care ne indica starea de executie a functiei, daca este TRUE functia a fost executata cu succes, daca este FALSE, fie intrarea EN este FALSE fie a aparut o eroare la executie Q iesirea binara a timer-ului ET timpul scurs de la trecerea in 1 a intrarii IN La fel ca si orice alta functie bloc, timer-ul trebuie instantiat, adica trebui sa-i dam un nume care va fi declarat ca variabila globala sau locala (de obicei locala). Numele va fi introdus deasupra blocului (in loc de Instance in figura de mai sus) Functionarea timer-ului: presupunem ca intrarea de validare este 1, in momentul in care IN devine 1 timer-ul incepe sa numere si iesirea Q devine 1 dupa scurgerea timpului specificat la intrarea PT. Cand IN devine 0, Q devine 0 instantaneu.

    24

  • Sunt disponibile si alte temporizatoare: TOF_E (realizeaza o temporizare la oprire) TP_E (furnizeaza la iesire un impuls de durata specificata). De asemenea aceste 3 temporizatoare sunt disponibile in variante fara intrare de validare: TON, TOF, TP sau in variante la care timpul poate fi specificat in unitati de 10ms: TON_10, TOF_10, TP_10. Exemplu de utilizare a timer-ului TON_E

    Se poate observa ca intrarea EN este legata la bara de alimentare, deci este totdeauna TRUE. Pe intrarea binara IN am legat un contact care reprezinta prima intrare fizica a automatului (%IX0). Cand aceasta intrare devine 1, temporizatorul incepe sa cronometreze timpul si dupa ce s-au scurs 10minute,10secunde si 100milisecunde iesirea binara Q devine 1. In acest caz la iesirea binara am legat o bobina care reprezeinta prima iesire fizica a automatului (%QX0). Dupa cum se observa acest temporizator a fost si instantiat, primind numele Instanta_TON_E 3.6.2. Prezentarea contoarelor in GX IEC Developper Un contor (temporizator) este utilizat in general pentru a numara impulsuri in diferite scopuri (de ex: poate determina cand o actiune s-a executat de un anumit numar de ori). In continuare vom prezenta functia bloc CTU_E care numara in sens pozitiv. Contorul este prezentat in figura ce urmeaza

    Semnficatia intrarilor si iesirilor EN intrare de validare (daca este TRUE functia se executa, daca este FALSE nu se executa) CU intrare binara care la un front crescator determina incrementarea continutului contorului cu 1 RESET la un front crescator pe aceasta intrare contorul se reseteaza (continutul lui devine 0) PV la aceasta intrare se introduce un numar, pana la care contorul sa fie incrementat pentru ca iesirea binara sa devina 1 ENO iesire care ne indica starea de executie a functiei, daca este TRUE functia a fost executata cu succes, daca este FALSE, fie intrarea EN este FALSE fie a aparut o eroare la executie Q iesirea binara a contorului CV continutul contorului

    25

  • La fel ca si orice alta functie bloc, contorul trebuie instantiat, adica trebui sa-i dam un nume care va fi declarat ca variabila globala sau locala (de obicei locala). Numele va fi introdus deasupra blocului (in loc de Instance in figura de mai sus) Functionarea contorului: presupunem ca intrarea de validare este 1, la fiecare impuls pe intrarea CU continutul contorului creste cu 1. Cand continutul contorului a ajuns la valoarea specificata la intrarea PV iesirea binara Q devine 1. Daca apare un impuls pe intrarea RESET atunci continutul contorului devine 0. Sunt disponibile si alte contoare: CTD_E (realizeaza numararea inversa), CTUD_E (permite numararea bidirectionala). De asemenea aceste 3 contoare sunt disponibile in variante fara intrare de validare: CTU,CTD,CTUD. Exemplu de utilizare a contorului CTU.

    Se poate observa ca intrarea EN este legata la bara de alimentare, deci este intotdeauna TRUE. Pe intrarea binara CU am legat un contact care reprezinta prima intrare fizica a automatului (%IX0). De fiecare data cand aceasta intrare devine 1, contorul este incrementat cu 1 iar in momentul in care s-au inregstrat 5 impulsuri pe intrarea CU, iesirea binara Q devine 1. In acest caz la iesirea binara am legat o bobina care reprezeinta prima iesire fizica a automatului (%QX0). Continutul contorului este adus la zero in momentul in care intrarea fizica a automatului %IX1 are o trecere din 0 in 1 (deoarece aceasta este legata pe intrarea RESET a contorului). Dupa cum se observa acest contor a fost si instantiate, primind numele Instanta_CTU_E. 3.6.3. Limbajul SFC (Sequential Function Chart) Programul exemplu Process. Programul este denumit Process si rezolva problema folosind o varietate de ramuri si instructiunea de salt.

    26

  • Executia programului -Cand automatul este comutat pe modul RUN, IESIREA 1 este setata. -Tranzitia TRAN_1 ia valoarea adevarat/fals in functie de Input1. Daca Input1 este setata Step_1(pasul 1) si Step_1_a(pasul_1_a) sunt activate.Output2 variaza intre 0 si 1 iar Output 3 este 1 constant. -Tranzitia denumita Input2 este parcursa cand Input2 este adevarata. Daca Input2 este adevarata etapa Step_2 este activata si Iesirea 4 este setata. -In ramurile care urmeaza tranzitiilor Input3, Input4 si Input5 mai multe secvente de program se executa in paralel. -Daca Input3 este setata , aceasta activeaza Step_3(pasul_3). Input5 activeaza punctul de salt de iesire Jump care conduce la punctul tinta al saltului Jump care activeaza tot etapa Step_3. Step_3 seteaza iesirea Output5. -Daca Input4 este adevarata, este activata Step_4,care determina trecerea in starea adevarata a Output6. -Intrarea 6 si Intrarea 7 conduc catre sfarsitul programului; Realizarea programului Pasul 1: Realizarea unui POU Creati un nou POU numit Process. Selectati PRG( program) tipul POU-ului si Sequential Function Chart ca limbaj de programare.

    27

  • Noul POU denumit Process este afisat in fereastra de navigare in cadrul proiectului

    In plus fata de header si corp, fiecare POU scris in limbajul SFC are de asemenea o intrare denumita Action_Pool in care actiunile associate etapelor sunt memorate. Pasul 2: Declararea varibilelor in header Deschideti headerul si introduceti variabilele locale ce vor fi folosite in POU. Variabilele globale nu trebuie neaparat declarate aici, ele pot fi folosite direct ca variabile globale.

    In acest exemplu sunt folosite doar variabilele locale Pasul 3: Deschideti corpul programului Dati dublu-click pe intrarea Body in fereastra de navigare in cadrul proiectului;

    28

  • Cand deschideti editorul SFC urmatoarele elemente sunt afisate: -Etapa initiala (caracterizata printr-un chenar dublu) -Tranzitia TRUE -Etapa finala NOTA: Etapele carora nu le sunt associate actiuni sunt desenate cu alb. Aceasta culoare se schimba in gri cand li se asociaza actiuni. Pasul 4: Crearea grafului 1) Selectati tranzitia TRUE cu cursorul;

    2) Apasati pe simbolul din imagine:

    Introduceti o noua etapa si o tranzitie de-o-data.

    3) Selectati etapa pe care ati inserat-o.

    29

  • 4) Apasati pe simbolul din imagine:

    Inserati o divergenta spre dreata si o etapa noua;

    5) Selectati tranzitia TRUE.

    6) Apasati pe simbolul din figura:

    Se insereaza o convergenta spre dreapta

    30

  • 7) Selectati tranzitia TRUE.

    8) Apasati simbolul din figura urmatoare:

    Inserati o etapa si o tranzitie de-o-data;

    31

  • 9) Selectati tranzitia TRUE

    10) Apasati de 2 ori pe simbolul urmator:

    Astfel se introduc 2 divergente spre dreapta impreuna cu tranzitii;

    32

  • 11) Selectati tranzitia TRUE;

    12) Apasati pe simbolul urmator:

    Inserati o etapa si o tranzitie de-o-data;

    33

  • 13) Apasati pe spatiul liber langa etapa pe care tocmai ati inserat-o;

    Dreptunghiul selectat pentru introducerea unei noi etape si a unei tranzitii. 14) Apasati pe simbolul urmator:

    Inserati o etapa si o tranzitie de-o-data;

    34

  • 15) Apasati pe ultima etapa;

    16) Apasati pe simbolul urmator:

    Inserati o convergenta spre dreapta

    35

  • 17) Apasati pe etapa din stanga de pe ultimul rand;

    18) Apasati pe simbolul din bara de unelte:

    36

  • Se insereaza un punct tinta pentru salt;

    19) Apasati pe spatiul liber de sub tranzitia libera;

    20) Apasati pe simbolul din bara de unelte:

    S insereaza un punct de salt de iesire.

    37

  • Pasul 5: Atribuiti nume etapelor si etichetelor de intrare si iesire ale saltului. 1) Apasati pe elementul caruia vreti sa-i atribuiti un nume. Activati modul de editare. 2) Introduceti un nume (Exemplu :Step_1 pana la Step_4 si Jump).

    Nume asociate etapelor si etichetelor de salt Pasul 6: Fixati conditiile de parcurgere a tranzitiilor NOTA: Pueti folosi ca si conditie de parcurgere a tranzitiei un program, TRUE/FALSE sau variabilele booleene (care sunt referite cu adresa sau nume). Creati si asociati programul conditiei de parcurgere a tranzitiei 1) Apasati pe tranzitia caruia doriti sa-i asociati un program. Activati modul de editare.

    38

  • 2) Introduceti un nume programului.( Exemplu: TRAN_1)

    3) Apasati pe simbolul din bara de unelte

    Noua casuta de dialog a tranzitiei este afisata, cu numele programului pe care tocmai l-ati inserat. 4) Selectati limbajul de programare.(Exemplu: Ladder Diagram)

    5) Apasati pe OK. Corpul programului conditiei de parcurgere a tranzitiei este afisat automat. 6) Scrieti programul conditiei de parcurgere a tranzitiei.

    Atribuirea unei variabile existente unei conditii de parcurgere a tranzitiei. 1) Dati dublu-click pe tranzitia careia vreti sa-i atribuiti o variabila; Se activeaza modul de editare. 2) Introduceti numele unei variabile existente (Exemplu: Input2 pana la Input7) NOTA: Aceasta inlocuieste conditia True a tranzitiei.

    39

  • Variabilele existente asociate tranzitiilor Pasul 7: Crearea actiunilor 1) Selectati POU-ul Process din fereastra de navigarea in cadrul proiectului. 2) Apasati pe simbolul din bara de unelte

    Se afiseaza casuta de dialog a noii actiuni. 3) Introduceti un nume pentru actiune (Exemplu: Action_1) si selectati limbajul de programare . (Exemplu: Ladder Diagram)

    Noua actiune este afisata in Action Pool in interiorul ferestrei de navigare in cadrul proiectului. 4) Dati dublu-click pe Action_1 pentru a deschide fereastra de editare.

    5) Scrieti programul actiunii.

    40

  • NOTA: Tranzitiile si programele actiunilor sunt scrise la fel ca si oricare POU. Puteti scrie aceste programe folosind limbajele IL, LD, FBD. Limbajul SFC nu e suportat de catre aceste programe. Pasul 8: Asocierea actiunilor si variabilelor booleene etapelor 1) Selectati etapa careia vreti sa-i asociati o actiune sau o variabila (Exemplu: Step_1) 2) Apasati pe simbolul din bara de unelte:

    Aceasta afiseaza casuta de dialog a actiunii asociate etapei, care e inca goala.

    3) Apasati pe tasta F2. Aceasta afiseaza lista cu numele actiunilor si a variabilelor booleene care sunt momentan disponibile. 4) Selectati actiunea/variabila corespunzatoare. Initial=Output1 Step_1=Action_1 Step_1_a=Output3 Step_2=Output4 Step_3=Output5 Step_4=Output6

    41

  • 5) Inchideti casuta cu lista numelor actiunilor prin dublu-click pe butonul din meniul de control.

    3.7. Verificarea programelor automatului programabil (verificarea sintaxei) Cum sa verificati sintaxa programului 1) Selectati obiectul care urmeaza sa fie verificat in fereastra de navigare din cadrul proiectului. 2) Selectati Check in meniul Object sau Apasati pe simbolul din bara de unelte ce semnifica verificarea sintaxei

    La verificarea sintaxei programului orice eroare gasita este afisata si explicata in casuta de dialog Compile/Check Messages dupa cum se observa in figura urmatoare.

    3) Puteti vedea cauza erorii gasite: prin dublu-click pe erorea corespunzatoare in lista cu erori si avertismente, sau selectati eroarea si apasati pe butonul Show. Acesta apeleaza obiectele care contin eroarea, sursa erorii fiind afisata in culoarea rosu.

    42

  • 3.8. Configurarea task-urilor Se presupune ca deja ati creat task-urile pentru proiectul dumneavoastra. Acestea sunt afisate in Task Pool in arborele de navigare in cadrul proiectului. Inainte sa le puteti folosi in program, trebuie sa specificati mai intai POU-urile pe care vreti sa le folositi in task-uri si sa configurati proprietatile task-ului. Cum sa asociati POU-urile de tip proram (PRG) task-urilor. 1) Dati dublu-click pe task-ul corespunzator in Task Pool. Un tabel este afisat, in care puteti construi un task specificandu-i POU-urile pe care le contine.

    Tabelul cu configurarea task-ului 2) Apasati pe simbolul listei de tip pop-up in prima linie a tabelului si selectati POU-ul pe care vreti sa-l adaugati task-ului in casuta de dialog afisata. Confirmati selectia facuta apasand butonul OK. Doar POU-rile declarate ca program (PRG) sunt incluse in lista din casuta de dialog. Numele POU-ului selectat va aparea apoi in coloana cu numele POU Name pe prima linie a tabelului. NOTA: Doar POU-rile care n-au fost inca incluse intr-un task sunt afisate in lista din casuta de dialog. Folositi tasta Tab, mutati cursorul in urmatoarea celula a tabelului si adaugati un comentariu pentru POU-ul introdus in coloana Comment. Repetati pasul 2 pentru fiecare POU suplimentar pe care doriti sa-l folositi in task. Pentru a insera o noua linie in tabel pentru un nou POU selectati New Declaration in meniul Edit, apoi selectati pozitia la care linia sa fie inserata. Cand cursorul este pe o coloana de comentariu care este momentan in modul de editare (background-ul negru) puteti sa inserati o noua linie in mod automat la sfarsitul tabelului apasand Tab. Cum sa configurati proprietatile de executie ale task-ului 1)Selectati task-ul care urmeaza sa fie configurat din fereastra de navigare din cadrul proiectului sau tabelul de configurare a task-ului. 2)Apasati Alt+Enter pentru a deschide casuta de dialog Task Information. Parametrii in aceasta casuta de dialog seteaza conditiile de executie si nivelul de securitate pentru task-ul curent. Task-urile pot fi declansate de evenimente sau la anumite intervale.

    43

  • Eveniment=TRUE (se executa intotdeauna) Interval=0 (pentru ca este declansat de eveniment) Priority=0 (prioritate maxima) Priority=31(cea mai scazuta prioritate) Casuta de dialog afiseaza de asemenea dimensiunea curenta a task-ului si data si ora ultimei modificari. 3.9. Compilarea proiectelor Cand compilati un proiect sistemul transforma codul programului intr-o forma executabila pentru a-l pregati de incarcare in automat. Cum sa compilati un proiect Selectati Rebuild all in meniul Project. Progresul procesului de compilare si orice erori gasite sunt afisate. Erorile sunt afisate si explicate in casuta Compile/Check Messages.

    44

  • AVERTIZARE! :-Compilarea nu reazileaza si incaracarea codului programului in automat, acest lucru trebuie facut separat! Este bine sa faceti o verificare a sintaxei intregului proiect inainte de a incerca sa-l compilati. 3.10. Setarea portului de comunicare Inainte sa puteti incarca un proiect pe automat trebuie sa configurati portul serial de comunicare pe care vreti sa-l folositi in acest scop. NOTA: Inainte de a incepe, asigurati-va ca stiti precis ce port urmeaza sa fie folosit pentru a transfera date pe automat. Cum sa selectati si sa configurati portul serial de comunicare 1) In meniul Online selectati Transfer Setup, apoi selectati Ports. Va aparea casuta de dialog Connection Setup.

    Selectia interfetei in Connection Setup

    2) Sub PLC side I/F apasati pe butonul Serial.

    45

  • Setarea serialei

    3) Selectati USB sau RS-232C. Portul poate fi selectat de la COM1 la COM10 din dreptul casutei COM port. 4) Confirmati alegerile facute in aceasta casuta apasand butonul OK. 3.11: Incarcarea programelor pe automat Cand programul proiectului d-voastra este complet si compilat fara erori, il puteti incarca pentru executie pe automat. Conectarea automatului programabil 1) Conectati automatul la calculatorul personal. 2) Introduceti cablul de conectare in calculator in acelasi port pe care l-ati definit in setarile decrise mai inainte la pasul 10. Cum sa incarcati un program pe automat 1) Selectati Transfer Setup in meniul Online, apoi selectati Project. Casuta de dialog Download Setup va fi afisata pe ecran.

    46

  • Casuta de dialog Transfer Setup este utilizata pentru a specifica ce date sunt incarcate pe automat. 2) Selectati PLC Parameter and Program, apoi confirmati cu OK. 3) Selectati Transfer in meniul Project, apoi selectati Download to PLC pentru a incepe incarcarea. Procesul de transferare este prezentat intr-o casuta; daca nu sunt afisate mesaje de eroare transferul a fost realizat cu success. 3.12: Monitorizarea programelor In modul de monitorizare, GX IEC Developer poate afisa starea curenta si schimbarile variabilelor /dispozitivelor folosite in program. NOTA: Puteti monitoriza doar programele fara erori care au fost compilate si incarcate pe automat pentru executie. 1) Selectati Monitoring Mode in meniul Online. Semnul din fata optiunii indica ca acest mod este activ, si elementele din fereastra de navigare din cadrul proiectului comuta catre gri deschis 2) Deschideti corpul POU-ului pe care doriti sa-l monitorizati. 3) Selectati Start Monitoring in meniulOnline. NOTA: Pentru ca monitorizarea sa fie posibila automatul trebuie sa fie in modul RUN. Urmatoarele exemple ilustreaza cum schimbarea starii variabileler este afisata in modul de monitorizare pentru diferitele limbaje de programare suportate de GX IEC Developer.

    47

  • Limbajul FBD Dreptunghi umplut: stare 1 Dreptunghi gol : stare 0 DATA= 40:40 secunde au trecut

    Limbajul Ladder Diagram Spatiul dintre barele contactului umplut: stare 1 Spatiul dintre barele contactului gol: stare 0 DATA=100:100 secunde au trecut

    Limbajul IL Starea 0/1 este indicata de dreptunghiurile goale/umplute.

    3.13. Descarcarea datelor de pe automat pe calculator Cum sa descarcati datele de pe automat in GX IEC developer 1) Selectati Transfer in meniul Project, apoi selectati optiunea Upload from PLC.

    48

  • 49

    2) Aceasta afiseaza o casuta de dialog ce cuprinde parametrii automatului. Selectati CPU Type corespunzator si confirmati cu OK. 3) In urmatoarea casuta de dialog trebuie sa specificati calea si numele pentru proiectul descarcat, care va fi memorat ca proiect nou. Daca doriti sa creati un proiect nou pentru programul descarcat de pe automat urmariti instructiunile de la punctual 3.1. Daca un proiect este deja deschis puteti abandona procesul apasand butonul Cancel. 4) Apasati pe Setup in casuta de dialog Transfer Setup. 5) Aceasta afiseaza casuta de dialog Transfer Setup (CPU port). Selectati portul corect pentru configurarea sistemului dumneavoastra (vezi 3.10). 6) Confirmati setarile facute in ambele casute apasand OK. Acest lucru porneste descarcarea. Progresul si eventualele erori sunt afisate intr-o casuta.