Sunteți pe pagina 1din 43

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:

1.              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.

2. 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:

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

2)                                             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 Cod Variabila de Cod Variabila de
intrare iesire stare

Cod

START %I0.0 SENS1 %Q0.0 1 %M1

T0 %TMO.Q SENS2 %Q0.1 2 %M2

T1 %TM1.Q 3 %M3

T2 %TM2.Q 4 %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 Functie


echivalent
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, SAU exclusiv, cu variantele : SAU exclusiv negat, SAU
XORR, XORF exclusiv pe front crescator, SAU exclusiv pe front descrescator

MPS Memory Push on to stack(punere in stiva), Memory Read from


stack(citire din stiva), Memory Pop from stack(scoatere din
MRD stiva).

MPP
N -- Negare (NOT)

Instructiuni care semnifica o actiune:

Nume Element grafic Functie


echivalent
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 Functie


echivalent
Temporizatoare (timers), Pentru fiecare tip de functii bloc exista instructiuni
numaratoare (counters), pentru control specifice. Un mod este acela de a conecta
registrii(registers) etc. 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:

1)     pentru asignare: :=

2)     pentru comparare: >, >=, <, <=, =, <>

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

4)     operatori logici: AND, OR, XOR, NOT

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

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

7)     pentru conversii intre cuvinte simple(word) si duble(double word): LW,


HW, CONCATW, DWORD

-        instructiuni avansate :

1)     blocuri avansate : registrii LIFO/FIFO, DRUM-uri, FAST COUNTERS


(%FC), VERZ FAST COUNTERS(%VFC), etc

2)     functii pentru controlul ceasului de timp

3)     functii PID


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

5)     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 Functia


Twidosoft
=*= 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 Testeaza starea pasului i.

AND %Xi, ANDN %Xi,

OR %Xi, ORN %Xi

XOR %Xi, XORN %Xi


S %Xi Activeaza pasul i
R %Xi Dezactiveaza pasul i
Exemple:

figura 36

S-ar putea să vă placă și