Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Informatica


Index » educatie » Informatica
» AUTOMATE PROGRAMABILE PROGRAMARE


AUTOMATE PROGRAMABILE PROGRAMARE


AUTOMATE PROGRAMABILE PROGRAMARE



Principii de realizare a programelor de conducere cu automate programabile pentru procesele industriale

In acest capitol vor fi prezentate principalele metode de realizare a programelor de conducere implementate pe automate programabile. Aceste metode de descriere sunt:

-diagrama de stari (flow chart)

- diagrama GRAFCET (function chart)

- diagrama LADDER (ladder diagram)

Mai exista si alte metode de implementare a programelor pe automatele programabile precum metoda digramelor temporale, metoda schemelor logice, etc. dar mult mai putin utilizate.

In realizarea unui program de conducere cu un automat programabil se urmaresc

in general anumite etape:

- descrierea completa a conditiilor de functionare a procesului sau a instalatiei ce urmeaza a fi condusa, precizarea tuturor secventelor functionale si a regimurilor de operare;

- precizarea elementelor de achizitie din proces, tipul semnalelor acestora, numarul si tipul elementelor de executie, cat si recomandari privind fiabilitatea configuratiei de conducere;

- stabilirea unui protocol de functionare in functie de etapele anterioare care sa asigure derularea corecta a etapelor procesului, chiar si in conditii speciale de functionare (regim de avarie, zone critice din proces), si care poate fi insotit de diagrame temporale de semnal, de tabele de adevar, etc.

- analiza configuratiei automatului programabil, astfel incat acesta sa acopere cantitativ si calitativ functionarea corespunzatoare a procesului, ceea ce presupune stabilirea necesarului de memorie, a dimensiunii modulelor de intrari/iesiri si a compatibilitatii semnalelor electrice, dar si intrunirea conditiilor pentru o buna functionare in mediul industrial in care va fi amplasat;

- cunoscand foarte bine procesul si protocolul de functionare si alegand in consecinta un automat programabil (sau mai multe) se poate incepe transcrierea protocolului de functionare stabilit anterior, folosind una din metodele enumerate mai sus: diagrama de stari, diagrama GRAFCET, sau o diagrama LADDER.

Apoi alocandu-se variabilele de intrare, de iesire, de memorie, de numarare, de temporizare, etc. corespunzator semnalelor procesului, se poate trece la realizarea programului de conducere, asa cum va fi descris in continuare, pentru fiecare din cele trei metode.

GRAFCET

GRAFCET este un instrument conceput special pentru descrierea in mod abstract a evolutiei automatelor secventiale care se doresc a fi implementate cu ajutorul automatelor programabile; aceasta tehnica permite descrierea clara si cu usurinta a evolutiei automatelor fara a se pune problema minimizarii numarului de stari pe care trebuie sa le atinga acestea.

Avantaje

Principalul avantaj atat pentru proiectant cat si pentru utilizator il reprezinta abordarea grafica facila si intuitiva cat si aspectul de generalitate al metodei care este foarte bine adaptata sistemelor caracterizate printr-un numar mare de variabile intrare/iesire, independent de materializarea tehnologica ulterioara a sistemului de conducere, indiferent daca se opteaza pentru o solutie cablata sau una programata. Metoda permite transpunerea coerenta a caietului de sarcini aferent functionarii impuse, permitand alegerea rationala a variabilelor de stare si codificarea corespunzatoare, dar si posibilitatea de a lua in consideratie evolutii simultane in timp pentru mai multe procese.

Descrierea metodei GRAFCET

Metoda permite descrierea functionala a oricarui proces secvential cu ajutorul unor diagrame ce se bazeaza pe patru elemente: etapa (starea), actiunea (comanda), tranzitia, arcul. Practic derularea in timp a functionarii consta intr-o succesiune de etape in care sunt generate actiuni (comenzi), evolutia intre doua etape succesive realizandu-se numai daca o conditie logica numita tranzitie devine adevarata.

Etapa

Corespunde unei situatii functionale in care comportarea procesului este invarianta in raport cu variabilele de intrare/iesire. La un anumit moment al functionarii o etapa poate fi activa, inactiva sau activabila. Grafic etapa se reprezinta printr-un patrat numerotat interior cu un numar zecimal ce asigura identificarea(sau variabila interna alocata in cazul automatelor programabile), iar etapa initiala se reprezinta distinct printr-un careu dublu si de regula cu indicele zecimal zero(0) (figura37).

figura 37

Actiunea

Fiecarei etape i se pot asocia una sau mai multe actiuni (comenzi) in sistem, care vor fi realizate numai daca etapa respectiva este activa, atunci cand sistemul se afla in starea curenta asociata etapei. Grafic actiunea se reprezinta printr-o eticheta dreptunghiulara, plasata in dreapta simbolului etapei(figura38).

figura 38

O etapa poate fi insotita de o singura actiune, de mai multe actiuni, sau de nici o actiune(cazul etapelor virtuale) - caz in care eticheta poate lipsi sau nu este nimic inscriptionat in interiorul ei. Una sau mai multe actiuni asociate unei etape pot fi conditionate printr-o variabila binara sau o functie booleana complexa a variabilelor de intrare, parametrilor externi, sau de catre alte etape asa cum este reprezentat in exemplul urmator, in care actiunile ''Franeaza'' si ''Start Temporizare'' sunt comandate intotdeauna iar actiunea ''Inchide Clesti Blocare'' este comandata numai daca este indeplinita si conditia ''X''(figura39).

figura 39

Tranzitia

Tranzitia functioneaza ca o bariera ce separa in mod necesar si obligatoriu doua etape succesive, avand asociata o functie binara numita receptivitate, ce autorizeaza efectuare tranzitiei in stare succesoare numai daca sunt indeplinite doua conditii:

etapa curenta este activa

valoarea receptivitatii este logic adevarata

In exemplul urmator(figura40), cand etapa 5 este activata se genereaza actiunile corespunzatoare ''Franeaza'' si ''Start Temporizare'' si se activeaza etapa 6 numai atunci cand ''%TM0.Q=1'', simultan dezactivandu-se etapa 5 si implicit actiunile asociate. In acelasi exemplu sunt redate si cele doua moduri de reprezentare grafica a tranzitiei si a receptivitatii asociate.

figura 40

Arcul

Este un segment de dreapta orientat ce poate fi dispus numai vertical sau orizontal. Arcul vertical are sensul de parcurgere definit implicit de sus in jos, nefiind necesara marcarea cu sageti, insa daca sensul de parcurgere este invers (de jos in sus), atunci marcarea cu sageti este obligatorie. Arcul simplu leaga intotdeauna o etapa de o tranzitie sau o tranzitie de o etapa, niciodata doua etape sau doua tranzitii. Arcele simple orizontale se pot marca pentru indicarea sensului de parcurgere daca este cazul. Exista si arce orizontale duble care se folosesc pentru delimitarea grupurilor de etape cu evolutii paralele in timp si nu se marcheaza cu sageti.

GRAFCET de nivel 1 si GRAFCET de nivel 2

La utilizarea metodei GRAFCET pentru sinteza structurilor de comanda secventiale este util sa se procedeze in doua faze:

Se realizeaza transpunerea caietului de sarcini aferent functionarii sistemului folosind un limbaj apropiat de cel natural, fara a lua in considerare aspectele functionale particulare si nici tehnologia de realizare a circuitelor de comanda. Structura se numeste GRAFCET de nivel 1 si este utila in descrierea generala a proceselor cat si pentru definitivarea caietului de sarcini intre beneficiar si proiectant.

GRAFCET - ul de nivel 2 are ca punct de plecare GRAFCET - ul de nivel 1 si ia in consideratie toate particularitatile tehnice ale implementarii dorite, inclusiv alocarile finale ale variabilelor intrare/iesire utilizate in proces, constituind punctul de plecare in realizarea fizica a sistemului de conducere.

Pentru exemplificare(figura41) se considera un motor electric comandat cu un automat programabil si ciclul de functionare urmator:

la comanda START data prin intermediul unui push-buton se incepe ciclul functional;

comanda pentru rotirea motorului in sens 1 timp de 5 secunde;

dupa expirarea celor 5 secunde se activeaza comanda pentru resetarea rotirii motorului in sens 1 si se comanda rotirea motorului in sens 2 timp de alte 5 secunde;

la expirarea celor 5 secunde pentru comanda de rotire a motorului in sens 2 se temporizeaza inca 5 secunde;

dupa expirarea celor 5 secunde se revine in pozitia initiala;

figura 41

IMPLEMENTAREA UNUI GRAFCET

Tehnica de implementare a unui GRAFCET se bazeaza pe transpunerea in limbajul automatelor programabile a unei functii logice ce defineste:

set pe conditiile de tranzitie TIN;

memorarea variabilei asociata etapei;

reset pe conditiile de tranzitie TOUT.

Daca se noteaza prin Ei variabila interna asociata etapei, conditiile de mai sus se pot scrie sub forma:

In cele mai multe cazuri conditia de set include nu numai variabilele TIN ci si variabila ce defineste etapa anterioara Ei-1, deci:

Primul termen va deveni conditia de amorsare a etapei Ei, iar al doilea asigura stabilitatea ei si in acelasi timp anularea ei prin conditiile TOUT.

Este posibil ca relatia anterioara sa sufere modificari sau completari, in functie de anumite elemente specifice. Daca Ei poate fi initializata printr-o conditie suplimentara TINIT, relatia de mai sus devine:

Aparent, aceasta relatie ofera solutia implementarii, insa practic aplicarea acestei

formule intr-o succesiune de stari ale unui GRAFCET, este improprie datorita hazardului de comutare produs de aceeasi variabila de conditie la setarea si resetarea a doua secvente consecutive.

STRUCTURI FUNDAMENTALE GRAFCET

Divergenta SAU

Etapa 15 devine activa daca tranzitia 14-15 se realizeaza prin indeplinirea receptivitatii 1, simultan etapa 14 devenind inactiva. Similar etapa 16 devine activa daca tranzitia 14-16 este realizata prin indeplinirea receptivitatii 2(figura42).

figura 42

Divergenta SI

Etapele 15 si 16 devin active simultan daca receptivitatea 1 este indeplinita, in acelasi timp etapa 14 devenind inactiva(figura43).

figura 43

Convergenta SAU

Etapa 17 devine activa in doua situatii: fie atunci cand etapa 15 este activa si receptivitatea 2 indeplinita sau cand etapa 16 este activa si receptivitatea 3 este indeplinita. Odata cu activarea starii 17 etapele

15 si 16 sunt inactivate(figura44).

figura 44

Convergenta SI

Etapa 17 devine activa numai daca simultan ambele etape 15 si 16 sunt active iar receptivitatea 3 este indeplinita (figura 45).

figura 45

Saltul conditionat peste mai multe etape. Din etapa 5 activa se pot activa atat etapa 6 cat si etapa 10. Daca receptivitatea 5 este indeplinita se realizeaza tranzitia 5-6, iar daca nu este indeplinita atunci se realizeaza tranzitia 5-11, etapele 6, . ,10 fiind ignorate. Daca reprezentarea grafica are o structura complexa si saltul nu poate fi redat ca in figura alaturata, atunci GRAFCET-ul este similar cu diferenta

ca saltul este indicat prin intermediul unei sageti al carei varf indica etapa in care se face tranzitia (figura46).

Reluarea conditionata

Grupul de etape 6-10 se repeta ciclic pana cand etapa 10 fiind activa receptivitatea 10 devine logic adevarata. In situatia in care etapa 10 devine activa dar receptivitatea 10 nu este realizata, se realizeaza tranzitia 10-6, reluandu-se evolutia ciclica (figura 47).

figura 47

Secvente repetate

Daca o aceeasi secventa de etape, de exemplu 10-15 apare de mai multe ori intro descriere GRAFCET , pentru compactarea reprezentarii este indicat a fi scrise detaliat o singura data.

La repetarea lor pe parcursul descrierii GRAFCET se poate utiliza marcajul prezentat in exemplul alaturat. Referitor la acest exemplu se impune precizarea ca grupul de etape 10-15 nu sunt prezentate explicit, presupunandu-se ca ele au fost definite aprioric(figura 48).

figura 48

DIAGRAME LADDER

Diagramele LADDER au fost si sunt cea mai obisnuita metoda de descriere a circuitelor logice cu relee, fiind utilizate initial pentru reprezentarea circuitelor electrice. Este un limbaj de programare pentru PLC-uri de nivel inalt orientat pe obiecte grafice, dar fara a fi complex sau a necesita un timp de invatare mare, precum majoritatea limbajelor de nivel inalt pentru calculatoare.

Descrierea metodei de programare in diagrame LADDER

Scrierea unui program in diagrame LADDER care este un limbaj orientat pe scheme de contacte presupune desenarea unei diagrame similare unei scheme electrice cu contacte. Elementele componente ale diagramei LADDER modeleaza functionarea elementelor unei scheme cu contacte. De aceea interpretarea functionarii diagramei LD este similara interpretarii schemelor electrice cu contacte.

Elementele de baza utilizate pentru scrierea unui program in limbaj LADDER sunt contactele, bobinele, temporizatoarele, numaratoarele si blocurile functionale (functiile).

Contactele

Contactele sunt elemente de programare care modeleaza contactele aparatelor electrice de comutatie. Ca si in cazul acestora din urma, contactele pot fi de tip normal deschise (a.) si normal inchise (b.)( figura 49).

figura 49

In cadrul unui program LADDER, contactele pot fi asociate intrarilor automatului programabil , iesirilor automatului programabil sau unor variabile interne. La intrari pot fi conectate dispozitive care au doua stari de functionare cum ar fi contactele auxiliare ale contactoarelor si releelor, contactele normal inchise sau normal deschise ale butoanelor de comanda, limitatoarelor de cursa, detectoarelor de marimi fizice, elementelor de protectie, iesirile digitale ale unor aparate de masura, protectie sau comanda, iesirile digitale ale altor automate programabile sau sisteme de comanda etc.

Pe langa contactele obisnuite, unii producatori pun la dispozitia programatorilor si alte elemente de programare corespunzatoare intrarilor automatului programabil, intalnite, indeosebi, in cazul circuitele numerice, cum ar fi intrari cu memorie (latch), intrari active pe frontul crescator sau active pe frontul descrescator.

Bobinele

Bobinele sunt elemente de programare care modeleaza functionarea bobinele contactoarelor si releelor electromagnetice. Ca si in cazul bobinelor din schemele electrice, bobinele din programele LD pot avea doua stari: alimentate sau nealimentate. Ele pot fi asociate iesirilor automatului dar si unor variabile interne modeland astfel releele auxiliare din cadrul schemelor electrice cu contacte(figura 50).

figura 50

Fiecare iesire este de asemenea identificata in mod unic, modul de identificare diferind de la un producator la altul. Fiecarei iesiri i se asociaza o singura bobina si unul sau mai multe contacte ce pot fi utilizate in schema in mod asemanator contactelor auxiliare ale contactoarelor si releelor.

La aceste iesiri pot fi conectate dispozitive care au doua stari de functionare cum ar fi bobinele contactoarelor sau releelor, elemente de semnalizare acustica sau luminoasa, sarcini de putere mica, intrarile digitale ale unor aparate de masura, protectie sau comanda, intrarile digitale ale altor automate programabile sau sisteme de comanda etc.

In figura anterioara sunt date simbolurile folosite pentru reprezentarea bobinelor. Avand in vedere ca bobinele sunt asociate iesirilor si ca acestea pot fi negate, putem intalni ca element de programare in limbajul LADDER, bobina negata. Intr-un automat, fiecare iesire este identificata in mod unic, identificarea fiind diferita de la producator la producator. Fiecarei iesiri i se asociaza unul sau mai multe contacte avand acelasi identificator si care pot fi folosite in diagrama LADDER.

Temporizatoarele

Temporizatoarele sunt elemente de programare care modeleaza functionarea releelor de timp si a contactelor temporizate. Ele sunt utilizate pentru a realiza actiuni intarziate sau ce dureaza un anumit interval de timp. Producatorii de automate programabile furnizeaza atat functii elementare de temporizare cat si functii mai complexe. In acest fel, temporizatoarele utilizate in programele LADDER au o flexibilitate si o functionalitate mult mai mare decat temporizatoarele utilizate in schemele electrice(figura 51).

figura 51

Temporizatoarele simple permit realizarea unei actiuni intarziate cu un anumit interval de timp ce poate fi programat. Functiile de temporizare mai complexe au in vedere obtinerea unor temporizari variabile, functie de anumite conditii care apar la un moment dat.

In cadrul programelor LADDER, un temporizator are o structura de tipul celei din de mai sus. Fiecare temporizator din schema este identificat in mod unic, modul de identificare fiind diferit de la un producator la altul.

Materializarea temporizatoarelor in automatele programabile se realizeaza utilizand circuite numaratoare. Ca urmare, indicarea temporizarii se va face precizand numarul de incremente de timp pe care temporizatorul il va numara (valoarea prestabilita) si durata unui increment (baza de timp). In cazul in care implementarea limbajului permite utilizarea unor baze de timp diferite pentru temporizatoare diferite, trebuie precizat pentru fiecare temporizator aceasta baza de timp. Valorile uzuale pe care le poate avea baza de timp sunt 0,01s; 0,1s sau 1s.

In cazul in care baza de timp este aceeasi pentru toate temporizatoarele, precizata in manualul de programare al automatului programabil, aceasta este omisa. Ca urmare, valoarea prestabilita poate fi exprimata in unitati de timp (s).

Temporizatoarele au cel putin o intrare de initializare, la activarea careia incepe temporizarea si o iesire. In unele variante, acestea sunt prevazute si cu o intrare de validare si inca o iesire care reprezinta negata primei iesiri.

Numaratoarele

Numaratoarele (figura52) sunt elemente de programare care pot primi o serie de impulsuri care sunt analizate in cadrul programului LADDER pentru a detecta numarul de aparitii ale unor evenimente cum ar fi: numarul de pasi efectuati de un motor pas cu pas, numarul de conectari-deconectari ale unui aparat. Numarul acestor evenimente poate fi comparat cu anumite valori prestabilite si in functie de rezultatul acestor comparatii pot fi luate anumite decizii si date comenzile corespunzatoare.

figura 52

Exista mai multe tipuri de numaratoare, printre cele mai uzuale fiind: numaratoarele unidirectionale, crescatoare sau descrescatoare si numaratoarele bidirectionale care pot numara atat descrescator cat si crescator.

In cadrul programelor LADDER, un numarator are o structura de tipul celei de mai sus. Fiecare numarator din schema este identificat in mod unic, modul de identificare fiind diferit de la un producator la altul. Pentru fiecare numarator se precizeaza valoarea prestabilita, aceasta reprezentand valoarea maxima pe care o va numara numaratorul dupa care va activa iesirea.

Numaratorul are cel putin doua intrari, una de numarare si una de initializare (la activarea acesteia numaratorul incepe sa numere impulsurile sosite la intrarea de numarare) si o iesire. Alte variante de numaratoare sunt prevazute si cu o intrare de validare si o iesire care reprezinta negata primei iesiri.

Blocurile functionale

Pentru materializarea unor functii mai complexe menite sa usureze scrierea programelor in limbaj LADDER sunt utilizate blocuri functionale. Aceste blocuri modeleaza diverse categorii de functii dintre care cele mai utilizate sunt urmatoarele: functii de incarcare a unor constante numerice, functii aritmetice, functii logice pe 8 sau 16 biti, functii de conversie a informatiei din diferite formate (binar, BCD, Gray, etc.), functii de tratare a intreruperilor, functii pentru detectarea fronturilor crescatoare sau descrescatoare a semnalelor, functii pentru realizarea controlerelor si secventiatoarelor, functii pentru actualizarea rapida a intrarilor si iesirilor, functii pentru comanda numaratoarelor de mare viteza.

De obicei, formatul si modul de functionare a blocurilor functionale difera de la un automat la altul, fiind specific fiecarui producator in parte. Prin intermediul standardului IEC61131-3 si a altor initiative recente se cauta standardizarea unor astfel de blocuri astfel incat ele sa aiba nu numai aceeasi interfata dar si acelasi comportament, diferenta fiind data numai de modul in care acestea sunt materializate pentru fiecare automat in parte. Standardul are drept scop si asigurarea ca aceste blocuri functionale pot fi utilizate, folosind aceeasi interfata in oricare alt limbaj din cele 4 adoptate.

Restrictii in scrierea programelor orientate pe scheme de contacte

Atunci cand se realizeaza scrierea unui program LADDER pentru un automat programabil concret, trebuie sa se tina seama de limitarile pe care pachetul de programe le poate avea.

Limitari importante pe care le pot avea pachetele de programe ce utilizeaza limbajul LADDER sunt cele legate de formatul diagramei care materializeaza schema cu contacte. O parte din aceste limitari tin de proprietatile intrinseci ale limbajului, altele sunt specifice diferitelor programe comerciale si sunt datorate solutiilor tehnice adoptate de firmele producatoare pentru implementarea diverselor elemente ale limbajului. O parte a acestor limitari sunt prezentate in continuare:

a) o bobina trebuie sa fie alimentata intotdeauna prin intermediul unui contact;

b) bobina trebuie sa fie introdusa intotdeauna la capatul din dreapta al liniei;

c) toate contactele trebuie sa fie pe directie orizontala;

d) numarul contactelor pe o linie de alimentare a unei bobine este limitat;

e) un grup de contacte poate alimenta o singura bobina;

f) realizarea buclelor poate fi realizata intr-un singur mod sau poate sa nu fie permisa;

g) sensul curentului prin circuit este de la stanga la dreapta diagramei.

De obicei manualele de utilizare ale programelor contin toate informatiile necesare pentru ca utilizatorul sa poata scrie programul in formatul acceptat de automatul programabil.

Limitari legate de modul de executie a programului

Functionarea automatului se bazeaza pe executia repetata a programului pe care il are inscris in memorie. Fiecare ciclu de executie a programului cuprinde 3 etape separate:

- etapa de citire a intrarilor, se citesc starile terminalelor de intrare in automatul programabil si conform acestora se inscrie informatia in tabelul intrarilor ;

- etapa de citire a intrarilor, se citesc starile terminalelor de intrare in automat si conform acestora se inscrie informatia in tabelul intrarilor ;

- etapa de actualizare a iesirilor consta in transferarea informatiei din tabela iesirilor catre terminalele de iesire a automatului.

Durata unui astfel de ciclu depinde atat de viteza procesorului cu care este dotat automatul, cat si de lungimea programului utilizatorului.

Cele trei etape amintite mai sus se executa separat, modificarea semnalelor de la intrarile automatului in etapa a doua nu are efect asupra valorilor intrarilor folosite pentru executia instructiunilor. Ele vor fi folosite doar dupa ce vor fi citite in urmatoarea etapa de citire a intrarilor.

Daca in etapa a doua, in urma executiei uneia sau mai multor instructiuni se modifica valoarea unei iesiri in tabela de iesiri, aceasta modificare nu va apare efectiv la terminalul de iesire corespunzator, decat in etapa a treia. Atunci se realizeaza actualizarea iesirilor pe baza tabelei iesirilor calculata in etapa de executie a instructiunilor care a precedat-o.

In scrierea unui program in limbajul LADDER trebuie avute in vedere si modul in care este interpretat programul scris.

Exista doua moduri de interpretare a unui program LADDER:

- citirea se face pe linie - se citesc contactele pe linie, de la stanga la dreapta, linie cu linie, incepand cu prima linie si terminand cu ultima;

- citirea se face pe coloana - se citesc contactele pe coloana, cate unul, de sus pana jos, coloana cu coloana, incepand cu prima coloana din stanga si terminand cu ultima din dreapta.

In ambele situatii trebuie sa se aiba in vedere diferenta fata de schemele de comanda cu relee:

- Relee: O modificare in starea unui contact din circuitul de alimentare a bobinei unui contactor poate duce la modificarea imediata a starii acesteia indiferent daca mai

exista sau nu alte elemente legate in serie sau paralel cu acel contact ;

- Program LADDER:starea bobinei nu va fi modificata decat dupa ce se va citi starea tuturor elementelor prin care aceasta este alimentata.

Datorita vitezei mari de executie a procesorului, acest lucru nu pune in general nici o problema. Ea trebuie considerata in cazurilor unor aplicatii critice unde ar putea sa apara o functionare diferita de cea dorita.

Executia programului

Se face astfel:

liniile programului sunt evaluate de la stanga la dreapta si de sus in jos;

ramificatiile din cadrul unei linii sunt evaluate de la stanga sus la dreapta jos.

Transcrierea schemelor electrice cu contacte

Scrierea unui program in limbajul LADDER poate fi realizata intr-un mod simplu pornind de la schema electrica cu contacte al unui circuit care ar indeplini aceeasi functie. Ceea ce trebuie sa faca programatorul este sa transpuna schema respectiva folosind elementele de programare ale limbajului. Pentru acest lucru el va trebui sa parcurga urmatoarele etape:

- definirea listei dispozitivelor conectate la intrarile si iesirile PLC-ului;

- atribuirea unor identificatori de intrare si de iesire acestor dispozitive, trasarea diagramei LADDER,

- indicarea conexiunilor la automatul programabil a elementelor de comanda.

Exemplu:

In figura urmatoare(figura 53) se da schema de comanda pentru pornirea unui motor din doua puncte diferite si oprirea dintr-un singur punct. Schema contine contactul normal inchis F1 al unui releu termic utilizat pentru protectia la suprasarcina, butonul de oprire S1, butoanele de pornire S2 si S3, contactoarele K1 si K2 reprezentate prin bobinele contactoarelor si contactele auxiliare K1 si K2.

figura 53

In continuare sunt reprezentate(figura 54) si diagrama LADDER bazata pe schema cu contacte (a) precum si modul de realizare a legaturilor elementelor de comanda la intrarile si iesirile automatului programabil (c).

figura 54

Pentru scrierea programului LD vom parcurge etapele amintite mai sus

Lista elementelor legate la intrarile si iesirile AP sunt: butoanele S1-S3 si contactoarele K1 si K2.

Atribuim acestor elemente urmatorii identificatori

Se traseaza diagrama LD

Se indica legaturile elementelor de comanda.

DIAGRAME DE INSTRUCTIUNI

Aceasta metoda de realizare a programelor de conducere utilizeaza instructiunile automatului programabil si poarta de denumirea de ''statement list'' (STL). Ea se poate baza pe descrierea functionarii procesului ca si diagrama de stari sau cateodata ca si diagrama GRAFCET(cum este cazul automatelor firmei franceze Telemecanique).

Pentru realizarea programului de conducere cu un automat programabil a unui proces a carui functionare va fi descrisa printr-o diagrama de stari trebuie parcurse etapele urmatoare:

descrierea completa a conditiilor de functionare a procesului;

alegerea automatului programabil necesar;

elaborarea documentului sursa sub forma unei diagrame de stari care sa asigure functionarea conform conditiilor formulate initial, si care sa redea cu exactitate etapele, conditiile de comutare, marimile de comanda generate la fiecare stare, ciclurile, etc.;

alocarea variabilelor de intrare, de iesire, de memorie si a altor tipuri de variabile necesare , specifice automatului programabil ales, care sa acopere semnalele din si inspre proces si variabilele de stare;

scrierea programului de conducere folosind setul de instructiuni al automatului programabil care presupune parcurgerea urmatoarelor etape:

scrierea programului pentru initializarea starilor si acolo unde este cazul aducerea procesului in starea initiala;

implementarea tuturor traseelor de evolutie din diagrama de stari si a tuturor starilor impreuna cu comenzile asociate;

Conditiile de initializare presupun de obicei aducerea in starea logica 1 a

variabilei de memorie alocate starii initiale si resetarea(aducerea in 0 logic) variabilelor de memorie asociate celorlalte stari.

Implementarea unei stari presupune scrierea unui set de instructiuni ce realizeaza:

apelarea din memorie a variabilei ce corespunde starii;

resetarea conditionata tuturor variabilelor de memorie asociate starilor ce preced etapa curenta;

resetarea conditionata a tuturor variabilelor de iesire generate in starile precedente;

activarea variabilei(variabilelor) de iesire asociate etapei curente.

Realizarea tranzitiei intre doua stari presupune o operatie logica de tip AND(SI) intre variabila asociata etapei curente si conditia logica de evolutie si activarea conditionata a variabilei corespunzatoare starii in care se evolueaza.

Iesirile de comanda corespunzatoare fiecarei stari pot fi implementate fie in cadrul etapei curente, fie la finalul programului intr-o asa numita sectiune de post-procesare.

Programul astfel realizat este introdus pe automat prin intermediul unei console de programare sau prin intermediul unui calculator pe care se afla software-ul de programare si care este conectat in mod corespunzator cu PLC-ul utilizat. Dupa transmisia programului se efectueaza verificari si teste ale acestuia pentru a se corecta eventualele deficiente.

Exemplu

Se considera un motor electric comandat cu un automat programabil si ciclul de functionare urmator:

procesul se afla initial in stare de asteptare;la comanda START se incepe ciclul functional;

comanda pentru rotirea motorului in sens 1 timp de 5 secunde;

dupa expirarea celor 5 secunde se activeaza comanda pentru resetarea rotirii motorului in sens 1 si se comanda rotirea motorului in sens 2 timp de alte 5 secunde;

la expirarea celor 5 secunde pentru comanda de rotire a motorului in sens 2 se temporizeaza inca 5 secunde;

dupa expirarea celor 5 secunde se revine in pozitia initiala;

Variabila de intrare

Cod

Variabila de iesire

Cod

Variabila de stare

Cod

START

%I0.0

SENS1

%Q0.0

%M1

T0

%TMO.Q

SENS2

%Q0.1

%M2

T1

%TM1.Q

%M3

T2

%TM2.Q

%M4

figura 55

In figura anterioara(figura 55) sunt redate tabelul cu alocarile variabilelor si diagrama de stari , si pornind de la acestea in continuare este prezentat programul implementat in lista de instructiuni pe un automat Twido Compact, prin intermediul softaware-ului de programare Twidosoft, ambele produse de firma franceza Telemecanique, un brand al grupului Schneider Electrics.

Software de programare- Twidosoft

TWIDOSOFT este un produs software al firmei franceze Telemecanique, utilizat la realizarea programelor de conducere pentru automatele programabile Twido Compact si Twido Modular. Este un mediu de dezvoltare grafic utilizat la crearea, configurarea si intretinerea aplicatiilor pentru PLC-urile TWIDO. TWIDOSOFT este o aplicatie ce ruleaza pe sistemele de operare pe 32 biti de tip Windows(minim necesar este Windows 98 Second Edition)dedicat pentru calculatoarele PC.

Principalele functii ale soft-ului de programare sunt:

alegerea tipului controller-ului folosit din catalogul Schneider integrat

configurarea elementelor programului

scrierea programului

transferul programului pe controller

rularea si oprirea executiei programului

corectarea programului

ajustarea variabilelor de lucru

determinarea defectiunilor aparute in timpul functionarii

editarea documentatiei aplicatiei

Interfata programului este bazata pe sistemele de operare Windows, cu multiple ferestre si moduri de vizualizare, iar operarea este facila.

Alegerea tipului de controller

Exista mai multe modele de automate programabile Twido, cu 10, 16, 24, 40 Intrari/Iesiri, fiecare model avand caracteristicile proprii, de aceea este necesara determinarea controllerului ce va fi folosit in functie de numarul de I/O necesare aplicatiei, software-ul pregatind diversele elemente ce pot fi utilizate cu acel tip de automat:intrari, iesiri, optiuni, etc. asa cum se vede in figura 17:

figura 17

Configurarea elementelor programului

In aplicatiile ce pot fi create cu acest software sunt uzual folosite functii precum temporizatoare, numaratoare, ceas de timp real, registrii, blocuri PID. Este preferabil ca aceste setari sa fie realizate la inceputul programului, insa este posibila modificarea acestor elemente si in timpul programarii, dupa cum avem nevoie.

De exemplu pentru un bloc de temporizare este necesar sa indicam:tipul, baza de timp, valoarea prestabilita (figura 18).

figura 18

Scrierea programului

Este principala functie a software-ului. In acest scop dispune de un editor grafic avansat ce permite implementarea on-line sau off-line a ciclului de functionare stabilit prin metoda diagramelor LADDER sau prin metoda listelor de instructiuni(statement list). Editorul dispune de functii de tip cut, copy, paste, permite programarea simbolica si animatii ale programului sau ale anumitor variabile. In continuare este prezentat un fragment dintr-un program bazat pe o diagrama GRAFCET scris in STL cu variabile simbolice si acelasi fragment implementat sub forma unei diagrame ladder (figura 19).

figura 19

Transferul programului pe controller

Programul este implementat pe calculator utilizand TWIDOSOFT si pentru a fi rulat pe automatul programabil trebuie realizata o conexiune intre cele 2(exemplu figura 20 ), conexiune ce poate fi creata in mai multe moduri :

- utilizarea unui cablu de comunicatie intre PC(COM - semnal RS-232 sau USB) si controllerul Twido(port1-semnal RS-485), cod TSX PCX 1031(RS-485 si RS-232) sau TSX PCX 3030(RS-485 si USB);

- utilizarea unui linii telefonice prin conectarea unui modem la portul 1 al automatului si a celui de-al doilea modem la calculator;

- in cazul anumitor controllere ( precum TWDLCAE40DRF Compact controller) conectarea se poate face si printr-un cablu Ethernet SFTP CAT5 RJ45, fie in mod direct, fie prin intermediul unor switch-uri/hub-uri.

figura 20

Transferul programului catre controller se face prin selectarea pictogramei connect     din bara de unelte a software-ului.

Rularea si oprirea executiei programului

Dupa transferul programului in memoria controllerului, aceste trebuie rulat pentru a executa ciclul functional de achizitie a intrarilor, executia instructiunilor, activarea iesirilor. Acest lucru se poate face din software-ul de programare, sau prin intermediul unui modul de comanda si afisaj daca automatul are aceasta optiune care se achizitioneaza separat. Executia programului poate fi oprita in mod similar. Rularea si oprirea executiei

programului de pe calculator este permisa numai in modul online prin selectarea pictogramelor RUN    respectiv STOP din tool bar-ul software-ului.

Corectare programului

Se poate face la cerere din meniul Program Analyze program sau in mod automat in momentul transferului aplicatiei de pe calculator pe automat. Daca programul nu inregistreaza erori de sintaxa este permis transferul catre automat, insa daca acestea sunt detectate este deschisa o fereastra in care este indicata linia unde apare eroarea si tipul acesteia. Aceasta fereastra poate fi solicitata si din meniul Program View program errors (figura 21).

figura 21

Ajustarea variabilelor de lucru si depanarea programului

Se poate face din Animation Table Editor (figura 22) care permite fortarea variabilelor de intrare sau de iesire in 1 sau 0 logic. In acelasi mod pot fi urmarite si starile tuturor celorlalte variabile inscrise in tabela care sunt actualizate in fiecare ciclu program executat de automat, sau este posibila urmarirea pas cu pas a programului prin animarea diagramei ladder care indica sugestiv etapa in care se afla programul si ce intrari/iesiri sunt active sau nu. Similar se poate monitoriza si modul de functionare al diferitelor elemente: timer-e, counter-e , drums-uri, etc.

figura 22

Regimuri de editare

Anterior s-a spus ca implementarea programului si depanarea acestuia se poate face fie on-line, fie off-line. In continuare vor fi prezentate cateva caracteristici ale celor 2 regimuri de lucru:

- on-line reprezinta regimul de lucru in care calculatorul este conectat impreuna cu controllerul. Prin conexiune nu se intelege doar existenta cablului de transfer ci si actiunea de conectare efectuata de operatorul uman

prin apasarea pictogramei connect din toolbar-ul software-ului. In mod on-line pot fi executate operatii precum pornirea sau oprirea executiei programului, depanarea acestuia, reglarea parametrilor, diagnosticarea aplicatiei, sau eventual fortarea unor variabile de intrare/iesire atunci cand nu sunt conectate la automat toate dispozitivele.

- off-line reprezinta regimul de lucru in care controllerul nu este conectat la pc, sau acesta este conectat prin intermediul cablului de transfer de date dar nu este conectat si software. In acest mod de lucru se poate alege tipul controller-ului pe care va fi implementata aplicatia, se pot defini tipurile de timere sau alte elemente necesare, se poate scrie programul pentru aplicatie, se pot executa operatii de salvare, incarcare de programe de pe hard disk-ul calculatorului, etc., insa tot ceea ce se executa ramane pe calculator.

Elementele programului

Pentru editarea de aplicatii este necesara descrierea diverselor ferestre si elemente grafice ce intervin in acest proces:

browser-ul aplicatiei

editorul in limbaj LADDER sau in STL

bara de meniu

bara de unelte

bara de stare

Aceste elemente sunt prezentate in figura de ansamblu de mai jos (figura23):

figura 23

Browser-ul aplicatiei:

Este elementul fundamental al software-ului de programare ce permite selectarea tuturor optiunilor existente: numele proiectului, tipul controlerului si configurarea sa(module de extensie, echipamente master/slave, tipuri de conexiuni), configurarea software-ului(constante, numaratoare, temporizatoare), informatii despre program, acces la configurarea simbolurilor, la tabelele de animatie si la documentatia software-ului. Accesarea continutului optiunilor din browser-ul aplicatiei se face in mod similar cu navigarea in sistemele de operare Windows.

Bara de meniu

Este compatibila cu standardele tuturor soft-urilor ce ruleaza sub mediul Windows, continand traditionalele meniuri Files, Edit, Window si Help caracteristice oricarui editor de texte sau de calcul tabelar, dar si meniuri specifice programarii automatului:

View - permite selectarea elementelor ce apar in fereastra programului;

Tools - permite accesul la toate uneltele ce pot fi folosite, insa acestea sunt selectabile in functie de regimul de operare in care ne aflam;

Hardware - asigura accesul la tot ceea ce inseamna echipamente, inclusiv schimbai de configuratie, adaugare de elemente etc.;

Software - configureaza toate elementele unui automat programabil;

Program - are legatura cu tot ce tine de crearea unei aplicatii: alegerea editoarelor, editorul de tabele de animatii, editorul de simboluri, etc

Controller are legatura cu tot ceea ce inseamna Controller: conectarea, deconectarea, rularea programului, oprirea programului, transferuri etc.;

Bara de unelte

Creeaza o noua aplicatie Ascunde sau arata browser-ul

Deschide o aplicatie existenta Conecteaza calculatorul la PLC

Salveaza aplicatia curenta    Deconecteaza calculatorul de PLC

Tipareste aplicatia curenta    Porneste controller-ul

Taie ce este selectat si pune in    Opreste controller-ul

clipboard

Copiaza ce este selectat si pune in    Initializare controller

clipboard

Lipeste continutul clipboard-ului Schimba (activeaza/anuleaza) modul animatie

Anuleaza ultima operatie Cere ajutor

figura 24

Functiile pictogramelor din toolbar-ul Twidosoft sunt prezentate in figura anterioara(figura 24).

Bara de stare

Numele este sugestiv, bara de stare indicand starea de functionare curenta, care se poate schimba in functie de modul de lucru al programului la momentul respectiv (on-line sau off-line). In partea din stanga sunt uneori indicate posibile motive pentru nefunctionarea corespunzatoare a unor elemente.

Principii de programare

Scopul acestui subcapitol este acela de a prezenta sumar modul de functionare al unui automat programabil, ciclul controlerului, modul de reprezentare al variabilelor si cateva din principale elemente si facilitati oferite de automatele din gama Twido.

Ciclul unui controler consta in repetarea

continua a 3 pasi consecutivi asa cum este redat

in figura alaturata (figura 25):

achizitia intrarilor;

executarea instructiunilor;

activarea sau dezactivarea iesirilor;

revenire la pasul 1;

figura 25

Primul pas, achizitia de date consta in copierea starii intrarilor(senzori, butoane, detectoare, etc.) in memoria controller-ului astfel incat, programul are la un anumit timp, o imagine bine stabilita a sistemului pe care il controleaza si toate instructiunile sunt executate cu aceleasi valori pentru intrari.

Executia programului consta in rularea programului linie cu linie si datorita tabelei de intrari deja stabilita la pasul anterior procesorul poate calcula valorile pentru iesiri care vor fi memorate intr-o matrice pentru a fi toate actualizate simultan prin copierea acestora din memoria controllerului in etapa a treia catre iesirile fizice ale automatului.

Actualizarea iesirilor se efectueaza simultan pentru a elimina riscurile neprevazute legate de timpii de executie a instructiunilor din program. Este important de mentionat ca se recomanda ca in cadrul unui program o bobina de iesire sa fie utilizata o singura data.

Principalele variabile cu care opereaza automatele din gama Twido sunt:

intrarile - date discrete ce provin de la senzori a caror valoare poate fi 0 sau 1

(contact deschis sau contact inchis) si care sunt reprezentate sintactic sub forma %Ix.y.z, unde % indica ca este un obiect, I(Input)- este o intrare, x - reprezinta numarul modulului(implicit are valoarea 0, sau cuprinsa intre 0 si 7 daca este o retea de mai multe automate), y - reprezinta numarul modulului de extensie(0 implicit, maxim 7 in functie de model) iar z indica numarul intrarii;

iesirile - comenzi discrete ce sunt transmise elementelor de executie(relee), a

caror valoare poate fi 0 sau 1 (activat sau dezactivat), sintaxa pentru reprezentarea lor fiind %Qx.z.y, unde Q indica ca este o iesire iar celelalte simboluri sunt similare cu cele descrise anterior;

biti interni - cunoscuti si sub denumirea de variabile de memorie sunt

echivalentul unor relee intermediare ce permit salvarea unei anumite stari prin copierea valorii unei intrari sau a unei conexiuni cu mai multe contacte. Sintaxa folosita este %M.n, unde % indica faptul ca este un obiect, M- memorie interna iar n - numarul variabilei(cuprins intre 0 si o valoare maxima 255 insa aceasta valoare depinde de tipul automatului);

biti de sistem - indica starea controllerului sau valori speciale ale sistemului

si au sintaxa de forma %S.n, unde % indica faptul ca este un obiect, S- bit de sistem, n numarul bitului(cuprins intre 0 si 127 dar nu toate numerele sunt utilizate). Exemplu: bitul %S0 indica o lipsa a curentului, bitii de la %S4 la %S7 sunt biti bazati pe timp: %S4 este inchis timp de 5ms si deschis pentru 5ms, %S5 este inchis timp de 50ms si deschis pentru 50ms, %S6 este inchis timp de 1/2s si deschis pentru 1/2s, %S7 este inchis timp de 30s si deschis pentru 30s;

Alte exemple de biti de sistem:

%S0 indica o pornire la rece (cadere de tensiune, resetarea Controller-ului)

%S10 indica o eroare pentru intrare/iesire

%S18 indica o depasire a indexului in timpul unei operatii

%S21 initializeaza Grafcet-ul cand este setat pe 1

Bitii de sistem sunt numerotati de la 0 la 127 si sunt descrisi in detaliu in documentata tehnica aferenta.

Cuvinte interne

Cuvintele sunt zone de memorie folosite ca variabile. Ele retin rezultatele operatiilor numerice. Sunt folosite urmatoarele notatii:

%MWn unde: indica faptul ca este un obiect, M indica faptul ca este un obiect in Memoria interna, W indica un Cuvant de 16 biti, n este numarul de uvinte.

timer Blocurile de temporizare permit aplicatiei sa efectueze actiuni depinzand de timp, intarzieri: intarziere la actionare, intarziere la revenire sau reprezentarea unui impuls de o durata specifica.

are sintaxa %TM n, unde % reprezinta un obiect, TM - indica faptul ca este un timer, iar n reprezinta numarul temporizatorului (0-127 in functie de tipul automatului).

Pentru a functiona conform preciziei dorite, blocul de temporizare necesita introducerea unor valori particulare. Pentru %TMn acestea sunt:

tipul timerului: TON, TOF, TP, Timer ON-Delay, Timer OFF-Delay, Pulse;

-baza de timp: 1 ms, 10ms, 100 ms, 1 sec, 1min

- %TM n.P - valoarea prestabilita

- %TM n.V - valoarea curenta

- %TM n.Q - iesirea timer-ului

- %TM n.IN - intrarea timer-ului

figura 26

Operarea unui bloc de temporizare de tip TON

Bloc de temporizare de tip TON, cunoscut si ca blocul de temporizare cu intarziere la actionare, functioneaza in felul urmator:

Atunci cand intrarea IN este validata, temporizarea porneste. Iesirea Q este activata la sfarsitul timpului definit in %TM0.P (timpul de baza inmultit cu valoarea %TM0.P).

Operarea unui bloc de temporizare de tip TOF

Bloc de temporizare de tip TOF, cunoscut si ca bloc de temporizare cu intarziere la revenire, functioneaza in felul urmator:

Cand intrarea IN este validata, iesirea Q este activata si porneste temporizarea. Iesirea Q este dezactivata la sfarsitul timpului definit prin %TM0.P.

Operarea unui bloc de temporizare de tip TP

Functia blocului de temporizare de tip TP este de a genera un impuls de o durata specifica.

Cand intrarea IN este validata, cronometrul porneste si iesirea Q este activata un timp definit in variabila
%TM0.P

counter - numarator folosit la numararea crescatoare sau descrescatoare a impulsurilor, sintaxa utilizata fiind %Cn, unde % - indica un obiect, C reprezinta un contor, iar n - numarul contorului (cu o valoare cuprinsa intre 0 si 31). Ca si timer-ele numaratoarele au nevoie de setarea unor parametrii proprii ca in reprezentarea urmatoare(figura 27):

figura 27

Intrare de resetare

Intrare de presetare

Intrare pentru incrementare

Intrare pentru decrementare

%Cn.D: Iesire care indica faptul ca s-a atins valoarea presetata

%Cn.F: Iesire de overflow

%Cn.P: Valoare presetata

%Cn.V: Valoare curenta

- ADJ (Yes-No) permite modificarea valorilor din Animation Table

Un counter folosit pentru a incrementa (impuls pe intrarea CU) lucreaza in felul urmator:

La fiecare impuls, valoarea curenta creste pana la o valoare presetata.
Un impuls pe R reseteaza la 0 counter-ul.

Regulatoarele DRUM sunt echivalenta in program a mecanismelor cu came. Biti interni sau variabilele de iesire corespund fiecarui pas. Aceste variabile sunt definite in configurarea regulatoarelor. Sunt folosite urmatoarele notatii: %DRn, unde % are aceeasi semnificatie ca si in cazurile anterioare, DR- indica un drum, iar n este numarul drum-ului (cu o valoarea cuprinsa intre 0 si 7 in functie de tipul automatului). Functia drum are proprii parametrii ce trebuie setati pentru o functionare corecta:

%DRn.R - intrare pentru resetarea pe zero(pozitionarea in pasul zero)

%DRn.S - intrare pentru verificarea sau modificarea pasului curent

%DRn.U - intrare pentru avans din pasul curent la cel urmator

%DRi.F - indica daca numarul pasului curent este egal cu pasul final (1 logic)

numar de pasi - maxim 8 pentru fiecare drum, insa mai multe drum-uri consecutive pot fi unite pentru crearea unuia ce ofera un numar mai mare de pasi daca este cazul

matrice de functionare

In limbajul Ladder, regulatorul DRUM are o reprezentare grafica. Este descrisa de o functie cu 2 doua intrari si o iesire. De exemplu regulatorul DRUM %DR0 va fi reprezentat astfel:

Pentru a intelege mai bine cum functioneaza un regulator DRUM, sa examinam o reclama de farmacie cu urmatorul ciclu de operare:

Toate tuburile de iluminare sunt inchise

Toate tuburile lumineaza

Tubul interior lumineaza singur

Tubul central lumineaza singur

Tubul exterior lumineaza singur

Tubul exterior lumineaza

Tubul exterior si central lumineaza

Toate tuburile lumineaza

Sunt trei iesiri ce trebuie controlate, cate una pentru fiecare tub: %Q0.0.0, %Q0.0.1, %Q0.0.2, reprezentand 3 tuburi fluorescente de culori diferite, care sunt activate dupa ciclul de functionare reprezentat in figura mentionata.

In general drum-urile sunt utilizate atunci cand dorim sa executam o serie de actiuni repetate si succesive.

figura 28

RTC - Real Time Clock sau functia de timp real este o functie caracteristica

intregii game de automate Twido, insa poate fi activata numai daca piesa hardware este achizitionata separat deoarece este o optiune nefiind inclusa in pachetul standard. Controller-ele ce au aceasta optiune sunt capabile sa controleze iesiri dupa un orar predefinit, nefiind necesar un program pentru acest lucru ci doar configurarea optiunii RTC din browser-ul soft-ului, care se face prin simpla completare a ecranului de mai jos(figura 29):

figura 29

Principalele elemente ce trebuie configurate reies din figura anterioara care este un exemplu despre cum poate fi irigata peluza unei case pe perioada de vara 1 iunie - 30 septembrie in fiecare zi intre orele 19:00 si 23:59.

Editorul de programe pentru limbajul LADDER

Apare implicit in momentul in care este deschisa o noua aplicatie. Editorul are in partea superioara o bara de unelte care sunt descrise in figura urmatoare(figura 30):

figura 30

Prin selectare primei pictograme - Insert vom avea acces la unelte pentru introducerea unei baterii de elemente specifice programului care este descrisa in figura urmatoare(figura31):

figura 31

Al doilea rand de pictograme reprezinta simbolurile grafice ale elementelor caracteristice unui LADDER (contacte, bobine, blocuri), ce pot fi selectate atat cu mouse-ul, cat si prin apasarea tastelor shortcut indicate sub fiecare pictograma. Cele reprezentate in figura anterioara sunt cele mai uzuale elemente, insa daca se doreste vizualizarea tuturor elementelor se apeleaza tabela extinsa prin apasarea tastelor Shift+F12. In partea dreapta a acestor pictograme este afisata icoana pentru Help si in continuarea acesteia pe toolbar sunt indicate informatii despre selectia curenta.

Editorul de programare in lista de instructiuni

Poate fi apelat din meniul Program -> List Editor si are forma generala prezentata in figura de mai jos(figura32):

figura 32

Asa cum se observa ca si editorul LADDER permite selectia instructiunilor si tipurilor de variabile prin utilizarea mouse-ului sau a tastelor scurtatura indicate sub fiecare pictograma. In tabelul ce urmeaza sunt descrise instructiunile cu care opereaza automatele din gama Twido Compact si Modular, in functie de tipul lor, incepand cu cele de test:

Nume

Element grafic echivalent

Functie

LD

Rezultatul Boolean este acelasi cu valoarea operandului.

LDN

Rezultatul Boolean este acelasi cu inversul valorii operandului.

LDR

Rezultatul Boolean devine 1 la detectia frontului crescator (din 0 in 1) a operandului.

LDF

   

Rezultatul Boolean devine 1 la detectia frontului descrescator (din 1 in 0) a operandului.

AND

Rezultatul Boolean este egal cu rezultatul unui SI logic intre ceea ce se afla in acumulator si valoarea operandului curent.

ANDN

Rezultatul Boolean este egal cu rezultatul unui SI logic negat intre ceea ce se afla in acumulator si valoarea operandului curent.

ANDR

Rezultatul Boolean este egal cu rezultatul unui SI logic intre ceea ce se afla in acumulator si detectia unui front crescator al operandului curent.

ANDF

Rezultatul Boolean este egal cu rezultatul unui SI logic intre ceea ce se afla in acumulator si detectia unui front descrescator al operandului curent.

OR

   

Rezultatul Boolean este egal cu rezultatul unui SAU logic intre ceea ce se afla in acumulator si valoarea operandului curent.

AND(

SI logic cu un numar de maxim 8 paranteze imbricate.

OR(

SAU logic cu un numar de maxim 8 paranteze imbricate.

XOR, XORN, XORR, XORF

   

SAU exclusiv, cu variantele : SAU exclusiv negat, SAU exclusiv pe front crescator, SAU exclusiv pe front descrescator

MPS

MRD

MPP

Memory Push on to stack(punere in stiva), Memory Read from stack(citire din stiva), Memory Pop from stack(scoatere din stiva).

N

Negare (NOT)

Instructiuni care semnifica o actiune:

Nume

Element grafic echivalent

Functie

ST

Operandul asociat ia valoarea rezultatului zonei de test.

STN

   

Operandul asociat ia valoarea negata a rezultatului zonei de test.

S

   

Operandul asociat ia valoarea 1 cand rezultatul zonei de test este 1.

R

   

Operandul asociat ia valoarea 0 cand rezultatul zonei de test este 1.

JMP

Salt neconditionat la o eticheta ce poate fi declarata fie anterior, fie posterior instructiunii curente.

SRn

Indica inceputul unei subrutine.

RET

Operatia de intoarcere din subrutina.

END

Sfarsitul programului.

ENDC

   

Incheiere conditionata a unei sectiuni de program cand acumulatorul are valoarea 1.

ENDCN

   

Incheiere conditionata a unei sectiuni de program cand acumulatorul are valoarea 0.

Tipuri de functii bloc:

Nume

Element grafic echivalent

Functie

Temporizatoare (timers), numaratoare (counters), registrii(registers) etc.

Pentru fiecare tip de functii bloc exista instructiuni pentru control specifice. Un mod este acela de a conecta intrarile si iesirile direct.

Nota: Iesirile unor functii bloc nu pot fi conectate intre ele.

In cele ce urmeaza vor fi prezentate pentru exemplificare cateva metode de programare a functiilor bloc intr-o maniera comparativa LADDER - STL, fara a mai indica semnificatia simbolurilor ce intervin si care sunt explicate anterior:

- temporizator(figura33)

figura 33

numarator(figura34):

figura 34

- registru de deplasare(figura35):

figura 35

Pe langa toate aceste tipuri de functii enumerate mai sus Twidosoft ofera o multitudine de alte clase de functii care doar vor fi enumerate, pentru detalii asupra lor se recomanda utilizarea manualului programului:

instructiuni de procesare numerica:

pentru asignare: :=

pentru comparare: >, >=, <, <=, =, <>

aritmetice asupra operanzilor intregi: +, -, *, /, REM, SQRT, INC, DEC

operatori logici: AND, OR, XOR, NOT

pentru deplasare (shift): SHL, SHR, ROR, ROL

conversii: BTI(BCD Binary), ITB(Binary BCD)

pentru conversii intre cuvinte simple(word) si duble(double word): LW, HW, CONCATW, DWORD

instructiuni avansate :

blocuri avansate : registrii LIFO/FIFO, DRUM-uri, FAST COUNTERS (%FC), VERZ FAST COUNTERS(%VFC), etc

functii pentru controlul ceasului de timp

functii PID

pentru procesare numerica in virgula mobila: aritmetice, trigonometrice, conversii

functii pentru controlul obiectelor de tip tabel

Descrierea instructiunilor GRAFCET

Nu exista un editor dedicat pentru implementarea programelor in GRAFCET acest lucru realizandu-se prin intermediul editorului STL folosind notatiile din tabel:

Reprezentare grafica

Transcrierea in limbaj Twidosoft

Functia

=*= i

Pas initial ce indica inceputul procesului secvential si in consecinta sfarsitul etapei de preprocesare.

# i

Activeaza pasul i dupa dezactivarea pasului curent

-*- i

Indica inceputul pasului i si valideaza tranzitiile asociate.

Dezactiveazp pasul curent fara activarea altor stari.

#Di

Dezactiveaza pasul i si pasul curent.

=*= POST

Indica inceputul post-procesarii si incheie procesul secvential.

%Xi

Bit asociat cu pasul i, care poate fi testat si scris(numarul bitilor de acest tip depinde de tipul automatului).

LD %Xi, LDN %Xi

AND %Xi, ANDN %Xi,

OR %Xi, ORN %Xi

XOR %Xi, XORN %Xi

Testeaza starea pasului i.

S %Xi

Activeaza pasul i

R %Xi

Dezactiveaza pasul i

Exemple:

figura 36





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate