Documente Academic
Documente Profesional
Documente Cultură
Cuprins
1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 j
1.1. Introducere in domeniul automatelor programabile . . . . . . . . . . . . . . . . . . . .
1.2. Introducere in standardul IEC 61131-3 . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Programare Structurata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2. Limbajele de programare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Termeni de baza uitilizati in standardul IEC 61131-3 . . . . . . . . . . . . . . . . .
2.1. Proiecte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Modul de programare organizata (POU) . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Programe, functii bloc si functii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Parametrii si instantiere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. Task-uri (sarcini) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6. Variabile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7. Adresarea in GX IEC Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8. Limbaje de programare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.1. Retele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.2. Limbajul LD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.3. Limbajul SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Mediul de programare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1. Crearea noilor proiecte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Crearea de task-uri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Declararea variabilelor globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Crearea unui POU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5. Programarea Header-elor de POU . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6. Programarea Corpului POU-lui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1. Prezentarea timer-elor in GX IEC Developer . . . . . . . . . . . . . . . . . . . . .
3.6.2. Prezentarea contoarelor in GX IEC Developper . . . . . . . . . . . . . . . . . . .
3.6.3. Limbajul SFC (Sequential Function Chart) . . . . . . . . . . . . . . . . . . . . . .
3.7. Verificarea programelor automatului programabil (verificarea sintaxei) . . . . . . . . .
3.8. Configurarea task-urilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9. Compilarea proiectelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10. Setarea portului de comunicare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.11. Incarcarea programelor pe automat . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12. Monitorizarea programelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13. Descarcarea datelor de pe automat pe calculator . . . . . . . . . . . . . . . . . . . . .
3
4
4
6
70
7
7
8
9
10
11
13
14
14
14
16
18i
18
19
20
22
23
23
24
25
26
42
43
44
45
46
47
48
1.Introducere
1.1. Introducere in domeniul automatelor programabile
Intr-o economie moderna, orice automatizare (control) ar ca obieciv sa ridice competitivitatea unui
produs, fie direct prin cost si calitate, fie indirect prin imbunatatirea conditiilor de munca.
Controlul implica conducerea unor sisteme dinamice avand stari continue. Aceste sisteme sunt
descrise de ecuatii diferentiale si au, in general, intrari si iesiri analogice. Conducerea acestor sisteme
se realizeaza cu calculatoare de proces echipate cu module de intrari/iesiri analogice performante.
Exista situatii in care intrarile, iesirile si starile unor sisteme pot fi modelate prin variabile binare. In
aceste cazuri cerintele impuse sistemelor de conducere sunt mai reduse, utilizandu-se automate
programabile.
Primele automate programabile (Programmable Controllers) au fost introduse in anul 1969 in Statele
Unite, de catre inginerii de la General Motors, pentru a satisface nevoile industriei de automobile.
Scopul lor a fost de a inlocui releele utilizate pentru automatizarea liniilor de fabricatie cu echipamente
mai ieftine si, in plus, mai flexibile. Primul automat a fost propus industriei de automobile sub numele
MODICN (Modular Digital CONtroller).
Din punct de vedere hardware, in anii 70 tehnologia de realizare a unitatilor centrale ale automatelor
programabile era dominata de procesoarele bit-slice. Circuitele AMD 2901si 2903 echipau automatele
MODICON si A-B (Allen Bradley). Chiar si azi unele automate sunt echipate cu aceste procesoare.
Aproximativ prin 1973, automatele programabile (AP) au inceut sa fie dotate cu facilitate de
comunicare. Un astfel de sistem a fost MODICON MODBUS. Acum AP puteau comunica unele cu
altele si se puteau situa la distanta de procesul condus. Din pacate in lipsa unei standardizari, corelata
cu rapiditatea schimbarilor din tehnologia electrica a facut ca multitudinea de protocoale utilizate,
specifice firmeor producatoare, sa fie un cosmar pentru utilizatorii de AP.
Anii 80 au constituit ani de incercare de standardizare a comunicatiilor utilizandu-se MAP
(Manufacturing Automation Protocol) de la General Motors. Apoi s-a introdus, ca varianta europeana,
PROFIBUS promovat in specila de firma Siemens. Acesti ani au fost de asemenea remarcati, in ceea
ce priveste istoria AP, de progrese insemnate in ceea ce priveste reducerea dimensiunilor si pentru
aparitia limbajelor de programare simbolice si a programelor de consola care au facut programarea
mai usoara si realizabila pin intermediul calculatoarelor personale, care au inlocuit consolele de
programare utilizate pana atunci. In ceea ce priveste dimensiunile se poate constata ca un AP poate
atinge, astazi, dimensiunile unui releu, desi el poate ingloba sute de astfel de relee.
Din punct de vedere software cei mai multi dintre producatorii de AP au implementat la inceput
limbajul LAD (Ladder Diagram). Acst limbaj a fost dezvoltat in jurul unei reprezentari schematice a
circuitelor cu contacte si relee. Pentru problemele simple de automatizare, programarea in Ladder
Diagram este ideala deoarece este intuitive si poate fi inteleasa fara o pregatire speciala, dupa o scurta
perioada de instruire.
Pe la inceputul anlor 90 existau mai mult de o mie de producatori de AP, fiecare din ei avand
implementat limbajul Ladder Diagram. Din pacate, in absenta oricarei standardizari, fiecare
producator are implementari usor diferite. Aceste implementari au ca scop extinderea setului de
instructiuni. Pentru aceasta s-au introdus asa numitel operatii speciale. Exemple de astfel de operatii
speciale sunt tratari numerice ale variabilelor, contoarele de mare viteza, controlul motoarelor electrice
etc. Programele scrise pentru sisteme diferite erau similare, dar setul de instructiuni variaza de la
producator la producator. Aceasta situatie tinde sa lege un programator de un anumit producator, mai
ales in cazul elaborarii unor aplicatii complexe, unde se utilizeaza intreg setul de instructiuni si toate
tehnicile de programare. Cu scopul eliminarii acestei dependente, in anul 1979 s-a constituit un grup
de lucru al Comisiei Electrotehnice Internationale (CEI), care si-a propus o standardizare completa a
3
AP. Standardul dezvoltat, IEC 1131, ulterior numit IEC 61131, este o incercare de a realiza aceasta, el
fiind respectat de tot mai multi producatori.
De la apritia lor AP s-au raspandit rapid in industrie reprezantand astazi unul din cele mai utilizate
echipamente. Succesul AP se datoreaza in primul rand pretului redus si faptului ca pot fi puse in
functiune si eventual programate de personal fara pregatire de nivel inalt in domeniul informaticii.
AP sunt microcalculatoare simple, special construite pentru a rezolva, prin program, probleme de
logica secventiala si de a inlocui comanda automatizarilor secventiale cu logica cablata realizata cu
circuite logice sau relee. Aceste echipamente ofera, in general, mai putine oportunitati decat
calculatoarele informatice sau cele de proces, dar pot fi utilizate foarte usor de un personal mai putin
specializat, datorita limbajelor de programare mai simple, de tipul limbajului cu relee, limbajului cu
ecuatii booleene sau a limbajelor grafice. Derularea unui program pe un AP este, in general, de tip
sincron, ceea ce elimina complicatiile care apar in cazul multitasking-ului.
Cea mai mare parte a AP sunt construite pentru a inlocui releele, ele lucrand cu variabile booleene si
avand unitatea centrala simplificata. Ca in toate domeniile, progresul tehnologic s-a concretizat si aici
prin punerea la punct a unor AP performante, de complexitatea calculatoarelor de proces care ofera
multe facilitate si care pot fi utlizate in automatizari dosebit de complexe.
Desi, asa dupa cum am afirmat anterior, programarea AP este de competenta nivelului de pegatire
mediu exista si in acest domeniu tehnici de programare structurata, care maresc considerabil
fiabilitatea programelor si usureaza munca de documentare a programelor.
Cunoasterea structurii hardware si mai ales a modului de executie a unui program pe un AP, pe langa
bazele programarii structurate a acestora, sunt lucruri importante pentru un inginer automatist.
Aceste 3 clase diferite ale POU-rilor sunt clasificate dupa functionalitatea lor:
-Programe
-Functii
-Functii bloc
POU-rile declarate ca functii sau functii bloc sunt de-a dreptul instructiuni de programare si pot fi
folosite ca atare in fiecare modul al programului.
Programul final este asamblat din POU-rile pe care le definiti ca si programe. Acest proces este
controlat de catre managementul sarcinilor, in task pool. POU-rile program sunt puse impreuna in
grupuri referite ca si task-uri.
O secventa SFC este alcatuita dintr-o serie de pasi si tranzitii ( tranzitii sau conditii de continuare)
Obiectele proiectului
sunt prezentate in
fereastra de navigare
in cadrul proiectului
Body-ul contine programul propriu-zis. Modulele de programare organizata (POU) sunt clasificate in 3
categorii, dupa functionalitatea lor:
-programe (PRG)
-functii (FUN)
-functii bloc(FB)
POU este modulul standard de organizare a programelor. POU-urile pot contine instructiuni din
biblioteci, functii si functii bloc. Executia unui POU este controlata de catre o sarcina (task).
POU-uri declarate ca si functii sau functii bloc sunt elemente de program independente. Ele
functioneaza efectiv ca si instructiuni de programare care pot fi inlocuite oricand este necesar si pot de
asemenea fi folosite in alte module de program, la fel ca si instructiunile obisnuite.
NOTA
1.Functiile bloc pot fi apelate de POU-rile program sau de catre alte functii bloc, dar nu de catre
functii. La randul lor pot contine instructiuni din biblioteci, functii sau alte functii bloc.
2.Functiile bloc returneaza una sau mai multe valori ca si rezultat. Toate valorile variabilelor de iesire
precum si valorile interne din blocul de functii sunt memorate dupa incheierea executiei unei functii
bloc. Aceste valori sunt apoi folosite cand functia bloc este reapelata. Acest lucru inseamna ca daca
apelam o functie bloc de doua ori cu aceleasi valori de intrare nu inseamna ca vom obtine si aceleasi
rezultate.
3.Functiile pot fi apelate de catre POU-urile program, de functii bloc sau de catre alte functii existente.
Functiile pot contine instructiuni din biblioteci sau alte functii deja definite
4.Functiile returneaza intotdeauna o valoare si nu memoreaza nici o informatie de stare interna. Astfel
ar trebui sa obtineti intotdeauna aceeasi valoare la iesire daca apelati functia cu aceleasi valori de
intrare.
Urmatorul tabel prezinta diferentele intre functii si functii bloc.
Element
Memorarea variabilelor interne
Instantierea
Iesiri
Executie repetata cu aceleasi
valori la intrare
Functie bloc
Se memoreaza
Este necesara
Nici o iesire, o iesire sau mai
multe iesiri
Nu furnizeaza intotdeauna
aceeasi valoare la iesire
Functie
Nu se memoreaza
Nu este necesara
O iesire
Furnizeaza intotdeauna aceeasi
valoare la iesire
POU-ul denumit POU_9 este o functie bloc [FB]. Variabilele IN si OUT utilizate in acest
program sunt declarate in header. IN si OUT sunt parametrii formali.
Functiile bloc pot fi apelate numai ca si instante. Procesul de instantiere, respectiv de realizare a unei
copii a functiei bloc, este realizat in header-ul POU-ului in care instanta va fi folosita. In acest header
functia bloc este declarata ca si variabila iar instantei rezultante ii este asociat un nume. Este de
9
remarcat faptul ca se pot declara instante multiple ale aceleiasi functii bloc, dar bineinteles instantele
trebuie sa aibe nume diferite. Apoi instantele sunt apelate in corpul POU-ului si paramaterii propriuzisi sunt transferati parametrilor formali. Fiecare instanta poate fi folosita de mai multe ori. Pentru
detalii legate de activarea instantelor functiilor bloc in diferitele limbaje vezi capitolul 2.8."Limbaje de
programare.
Reset este o instanta a functiei bloc POU_9. IN si OUT sunt parametrii formali; TimerS1 si
ComeIn sunt parametrii propriu-zisi ai instantei.
10
2.6 Variabile
Variabilele sunt similare operanzilor. Ele contin valorile intrarilor, iesirilor sau ale locatiilor de
memorie interna ale automatului programabil.
Variabilele pot fi clasificate in functie de scopul lor in program:
-variabile globale
-variabile locale
Variabilele globale sunt create pentru intreg proiectul , ele vand un scop global, ceea ce inseamna ca
sunt accesibile din toate POU-urile.Astfel este posibil sa schimbati informatii intre modulele
individuale care alcatuiesc proiectul automatului programabil.
Variabilele locale sunt valabile numai pentru un anumit POU. Ele nu pot fi folosite intr-un alt POU.
Declararea variabilelor
Inainte de incepe cu programarea propriu-zisa, este bines a se declare variabilele care vor fi folosite in
intreg proiectul (variabilele globale) sau in POU-urile individuale (variabilele locale).
Fiecare declaratie de variabila contine urmatoarele elemente:
-clasa
-identificator
-adresa absoluta (numai la variabilele globale)
-tipul de data
-valoarea initiala (se insereaza automat)
-comentariu (optional)
-remarca (numai la variabilele globale)
Tabela din header in care se declara variabilele locale ale functiei bloc POU_9
Clasa
Cuvantul cheie class asociaza variabilei o anumita proprietate care defineste cum va fi aceasta folosita
in proiect
11
Clasa
Utilizare in POU-uri
PRG
FUN
FB
X
X
X
VAR
VAR_CONSTANT
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
X
X
VAR_GLOBAL
VAR_GLOBAL_CONSTANT
Semnificatie
Variabila care este folosita numai in
POU
Variabila locala cu valoare initiala care
nu poate fi schimbata
Variabila preluata din exterior care nu
poate fi modifificata in POU
Variabila de iesire din POU
Variabila locala preluata din exterior si
furnizata la iesire de catre POU, care
poate fi modificata in cadrul
programului
Variabila globala declarata in lista
variabilelor globale
Variabila globala cu valoare initiala care
nu poate fi schimbata
Adresa Mitsubishi
Y0
X1F
D450
Semnificatie
Iesirea Y0
Intrarea X1F
Registrul de date D450
La specificarea adreselor trebuie utilizate numai majuscule si nu se pot insera spatii sau caractere care
reprezinta operatori matematici (de ex: +,-,*).
Modurile de adresare sunt prezentate in capitolul 2.7.
12
Tipuri de date
Tipul de data al unei variabile defineste numarul de biti pe care ii contine, cum sunt procesate si care
este intervalul de valori pentru variabila respectiva. Tipurile de date disponibile sunt prezentate in
urmatorul tabel
Tipul de data
BOOL
INT
DINT
WORD
DWORD
REAL
TIME
STRING (numai
la seria Q)
Boolean
Intreg
Intreg dublu
Sir de 16 biti
Sir de 32 de biti
valoare flotanta
Valoare de tip timp
Interval de vlori
0 (fals), 1 (adevarat)
-32768 pana la 32768
-2.147.483.648 pana la 2.147.483.648
0 pana la 65535
0 pana la 4.294.96.295
3.4*10^ (+/- 38)
T#-24d-0h31m23s648.00ms pana la
T#24d0h31m23s648.00ms
Dimensiune
1 bit
16 biti
32 de biti
16 biti
32 de biti
32de biti
32 de biti
Sir de caracere
Max 50 de caractere
Valoarea initiala
Valorile initiale sunt setate automat de sistem si nu pot fi modificate de utilizator
Comentariu
Se poate adauga un comentariu de 64k pentru fiecare variabila
Remarca
Se poate adauga informatie suplimentara de catre utilizator
Adresa IEC
%I
Descriere
Intrare
%Q
Iesire
%M
Memorie interna
%M
Memorie interna
Exemplu
X0 %IX0
X37 %IX31
Y0 %QX0
Y37 %QX31
D0 %MW0.0
D450 %MW0.450
D0.0 %MX0.0.0
D5.2 %MX0.5.2
13
2.8.1. Retele
In toate editoarele, cu exceptia editoarelor SFC si ST, programul PLC este impartit intr-un numar de
sectiuni cunoscute sub numele de retele. Fiecarei retele ii este asociat un nume (eticheta retelei) care
poate fi folosit ca destinatie la o instructiune de salt.
In continuare vom prezenta doar limbajele LD si SFC care sunt cel mai des utilizate de catre
programatorii de aplicatii si care au fost utilizate si in cadrul acestui proiect pentru realizarea
programelor demonstrative.
2.8.2. Limbajul LD
In acest limbaj se pot folosi toate instructiunile disponibile in biblioteci.
Diagramele LD contin contacte, bobine, functii bloc si functii. Aceste elemente sunt conectate prin
linii de legatura verticale sau orizontale. Aceste linii incep intotdeauna la bara de alimentare din
stanga.
14
Numar
1
2
3
4
5
6
7
8
9
10
Descriere
Bara de retea
Linia de alimentare
Varibila de intrare
Variabila de iesire
Intrare de validare
Iesire care specifica starea de functionare a blocului
Variabila de iesire
Contact
Bobina
Comentariu
Numar Descriere
1
Declararea lui Reset o instanta a blocului de functii POU_9
2
Activarea blocului de funcii POU_9. Cuvantul Instance de deasupra blocului
indica faptul ca trebuie introdusa instanta blocului de functii in acest loc
3
Numele instantei Reset a fost introdus
4
In continuare, parametrii actuali TimerS1 si ComeIn sunt transferati
parametrilor formali IN si OUT
15
Numar
1
2
3
4
5
Descriere
POU-ul denumit P_Payment declarat ca si program
Header-ul contine variabilele din POU
Programul PLC a fost scris in limbajul SFC
Tranzitiile individuale pot fi scrise in diverse limbaje
Action Pool contine toate actiunile, care pot de asemenea fi definite in divese
limbaje
Numar
1
2
3
4
5
6
Descriere
Etapa initiala
Etapa
Tranzitie
Punct de iesire al unui salt
Punct de intrare al unui salt
Etapa finala
Grafurile pot de asemenea sa contina divergente si convergente, acestea fiind identificate prin linii
orizontale duble.
Intr-un graf pot sa apara si salturi, care sunt efectuate intre puncte de iesire (instructiuni de salt) si
puncte de intrare (etichete).
Fiecare etapa poate fi declarata ca macroetapa, care la randul ei contine alt graf. Marcoetapele sunt
identificate prin 2 linii orizontale suplimentare in cadrul blocului.
Un exemplu extins asupra modului de construire al unui graf va fi prezentat in capitolul 3.6.3..
17
3. Mediul de programare
3.1. Crearea noilor proiecte
Cum sa creati un nou proiect
1) Selectati New in meniul Project.
2) Aceasta afiseaza casuta de dialog Select PLC Type. Selectati in PLC Type tipul PLC-ului si
confirmati alegerea facuta apasand butonul OK.
3) Casuta de dialog New Project este afisata. Selectati sau introduceti calea directorului in care doriti
sa fie salvat proiectul.
4) Introduceti numele proiectului la sfarsitul caii (numele proiectului este de asemenea numele
subdirectoriului/folderului in care este salvat).Apoi apasati pe butonul Create pentru a crea noul
proiect.
5) Apare casuta de dialog GX IEC Developer New Project Startup Options iar apoi selectati
Empty Project si confirmati apasand OK.
18
Imediat ce ati creat proiectul, fereastra de navigare in cadrul acestuia este afisata pe ecran automat cu
toate elementele standard ale proiectului.
Elementele proiectului sunt afisate intr-o structura ierarhica de tip arbore, care intotdeauna contine
urmatoarele componente standard:
-Project Name (Numele proiectului)
-Library Pool (Bibliotecile disponibile)
-PLC Parameters (Parametrii automatului)
-Task Pool (Sarcinile definite)
-Data Unit Types Pool (Tipurile comlexe de date)
-Global Variables (Variabile globale)
-Program Organisation Units (POU-ri)
Informatia aditionala este afisata optional in paranteze in spatele fiecarei intrari in fereastra de
navigare a proiectului. Poti afisa aceste detalii apasand Extended Information din meniul View .
Culoarea standard de fundal a ferestrei GX IEC Developer este gri deschis. O poti schimba in culoarea
dorita cu optiunea Colors din meniul View.
2) Selectati New din meniul Object iar apoi selectati optiunea Task.
Sau
Apasati pe butonul task nou din bara de unelte
NOTA: Acest simbol este afisat in bara de unelte cand fereastra de navigare in cadrul proiectului este
afisata pe ecran adica atunci cand proiectul este deschis.
Casuta de dialog a noului task este afisata:
3) Introduceti un nume (maxim 32 de caractere) pentru noul task si confirmati apasand OK. GX IEC
Developer va crea task-ul si il va afisa in TaskPool-ul ferestrei de navigare din cadrul proiectului.
NOTA: Asocierea POU-urilor la task-uri si setarea proprietatilor task-urilor vor fi realizate in capitolul
3.8.
2) Apasati cu mouse-ul in prima celula din dreptul coloanei Class apoi selectati apasand pe sageata in
sus sau in jos VAR_GLOBAL sau VAR_GLOBAL_CONSTANT.
3) Apasati Tab pentru a va muta in coloana Identifier, apoi introduceti identificatorul pentru prima
voastra variabila globala.
4) Apasati Tab pentru a va muta in una dintre coloanele urmatoare MIT-Addr. sau IEC_Addr.
Introduceti adresa absoluta pentru variabila globala.
5) Apasati Tab pentu a va muta in coloana Type, apoi apasati pe sageata pentru a deschide casuta de
dialog ce contine Type Selection.
20
sau
- selectati orice celula din ultima liniei a tabelului si apasati Shift+Enter
sau
- selectati New Declaration in meniul Edit, apoi selectati din submeniu pozitia in care va trebui sa
fie inserata noua variabila.
sau
- copiati un rand deja existent: intai selectati randul, apoi apasati Ctrl+C pentru a-l copia. Apoi
selectati pozitia de inserare prin apasarea unuia dintre simboluri
pentru a insera deasupra sau sub linia selectata. Selectati linia creata si apasati Ctrl+V pentru a
suprascrie noua linie cu ceea ce ati copiat mai inainte.
10) Salvati modificarile efectuate cu Object-Save.
NOTA: Termenii Identifier, address si data type sunt definiti si explicati in capitolul 2.6.
21
NOTA: Acest simbol este afisat in bara de unelte doar cand fereastra de navigare in cadrul proiectului
este afisata pe ecran, cand un proiect e deschis.
2) Introduceti un nume pentru noul POU si specificati daca este creat ca si program (PRG), ca si
functie (FUN) sau ca si functie bloc .Apoi selectati limbajul de programare ce va fi folosit scrierea
codului in corpul POU-ului. Cand sunteti multumit de alegerile facute apasati OK pentru a adauga
noul POU la proiect.
22
Simbolul [+] din stanga obiectului Control indica faptul ca mai sunt si ale obiecte subordonate care
momentan sunt ascunse. Asteriscul din fata obietului Control indica faptul ca acest POU nu a fost
compilat inca.
3) Dati Dublu-clic pe Control pentru a afisa intrarile subordonate.
Fiecare POU are doua mari componente: un header si un corp care contine programul propriu-zis in
limbajul de programare selectat.
Daca doriti, puteti dezactiva grid-ul de fundal apasand Grid in meniul View.
Puteti modifica dimensiunea grid-ului de fundal cu ajutorul optiunii Environment din meniul View.
Va rog tineti cont ca valoarea pe care o introduceti pentru spatiile grid-ului schimba setarile pentru
intregul ecran, si nu doar pentru editorul de programare selectat.
3) Acum puteti incepe sa scrieti programul vostru.
Veti gasi exemple de programe pentru diferitele limbaje de programare in paginile urmatoare.
4) Selectati Save in meniul Object pentru corpul POU-lui tau.
NOTA: Puteti mari zona de editare folosind mouse-ul.
24
Sunt disponibile si alte temporizatoare: TOF_E (realizeaza o temporizare la oprire) TP_E (furnizeaza
la iesire un impuls de durata specificata).
De asemenea aceste 3 temporizatoare sunt disponibile in variante fara intrare de validare: TON, TOF,
TP sau in variante la care timpul poate fi specificat in unitati de 10ms: TON_10, TOF_10, TP_10.
Exemplu de utilizare a timer-ului TON_E
Se poate observa ca intrarea EN este legata la bara de alimentare, deci este totdeauna TRUE.
Pe intrarea binara IN am legat un contact care reprezinta prima intrare fizica a automatului (%IX0).
Cand aceasta intrare devine 1, temporizatorul incepe sa cronometreze timpul si dupa ce s-au scurs
10minute,10secunde si 100milisecunde iesirea binara Q devine 1. In acest caz la iesirea binara am
legat o bobina care reprezeinta prima iesire fizica a automatului (%QX0).
Dupa cum se observa acest temporizator a fost si instantiat, primind numele Instanta_TON_E
25
La fel ca si orice alta functie bloc, contorul trebuie instantiat, adica trebui sa-i dam un nume care va fi
declarat ca variabila globala sau locala (de obicei locala). Numele va fi introdus deasupra blocului (in
loc de Instance in figura de mai sus)
Functionarea contorului: presupunem ca intrarea de validare este 1, la fiecare impuls pe intrarea CU
continutul contorului creste cu 1. Cand continutul contorului a ajuns la valoarea specificata la intrarea
PV iesirea binara Q devine 1. Daca apare un impuls pe intrarea RESET atunci continutul contorului
devine 0.
Sunt disponibile si alte contoare: CTD_E (realizeaza numararea inversa), CTUD_E (permite
numararea bidirectionala).
De asemenea aceste 3 contoare sunt disponibile in variante fara intrare de validare: CTU,CTD,CTUD.
Exemplu de utilizare a contorului CTU.
Se poate observa ca intrarea EN este legata la bara de alimentare, deci este intotdeauna TRUE.
Pe intrarea binara CU am legat un contact care reprezinta prima intrare fizica a automatului (%IX0).
De fiecare data cand aceasta intrare devine 1, contorul este incrementat cu 1 iar in momentul in care sau inregstrat 5 impulsuri pe intrarea CU, iesirea binara Q devine 1. In acest caz la iesirea binara am
legat o bobina care reprezeinta prima iesire fizica a automatului (%QX0). Continutul contorului este
adus la zero in momentul in care intrarea fizica a automatului %IX1 are o trecere din 0 in 1 (deoarece
aceasta este legata pe intrarea RESET a contorului).
Dupa cum se observa acest contor a fost si instantiate, primind numele Instanta_CTU_E.
26
Executia programului
-Cand automatul este comutat pe modul RUN, IESIREA 1 este setata.
-Tranzitia TRAN_1 ia valoarea adevarat/fals in functie de Input1. Daca Input1 este setata
Step_1(pasul 1) si Step_1_a(pasul_1_a) sunt activate.Output2 variaza intre 0 si 1 iar Output 3
este 1 constant.
-Tranzitia denumita Input2 este parcursa cand Input2 este adevarata. Daca Input2 este
adevarata etapa Step_2 este activata si Iesirea 4 este setata.
-In ramurile care urmeaza tranzitiilor Input3, Input4 si Input5 mai multe secvente de program se
executa in paralel.
-Daca Input3 este setata , aceasta activeaza Step_3(pasul_3). Input5 activeaza punctul de salt
de iesire Jump care conduce la punctul tinta al saltului Jump care activeaza tot etapa Step_3.
Step_3 seteaza iesirea Output5.
-Daca Input4 este adevarata, este activata Step_4,care determina trecerea in starea adevarata a
Output6.
-Intrarea 6 si Intrarea 7 conduc catre sfarsitul programului;
Realizarea programului
Pasul 1: Realizarea unui POU
Creati un nou POU numit Process. Selectati PRG( program) tipul POU-ului si Sequential Function
Chart ca limbaj de programare.
27
In plus fata de header si corp, fiecare POU scris in limbajul SFC are de asemenea o intrare denumita
Action_Pool in care actiunile associate etapelor sunt memorate.
Pasul 2: Declararea varibilelor in header
Deschideti headerul si introduceti variabilele locale ce vor fi folosite in POU.
Variabilele globale nu trebuie neaparat declarate aici, ele pot fi folosite direct ca variabile globale.
28
29
30
31
32
33
13) Apasati pe spatiul liber langa etapa pe care tocmai ati inserat-o;
34
35
36
Noua casuta de dialog a tranzitiei este afisata, cu numele programului pe care tocmai l-ati inserat.
4) Selectati limbajul de programare.(Exemplu: Ladder Diagram)
5) Apasati pe OK.
Corpul programului conditiei de parcurgere a tranzitiei este afisat automat.
6) Scrieti programul conditiei de parcurgere a tranzitiei.
39
Noua actiune este afisata in Action Pool in interiorul ferestrei de navigare in cadrul proiectului.
4) Dati dublu-click pe Action_1 pentru a deschide fereastra de editare.
NOTA: Tranzitiile si programele actiunilor sunt scrise la fel ca si oricare POU. Puteti scrie aceste
programe folosind limbajele IL, LD, FBD. Limbajul SFC nu e suportat de catre aceste programe.
Pasul 8: Asocierea actiunilor si variabilelor booleene etapelor
1) Selectati etapa careia vreti sa-i asociati o actiune sau o variabila (Exemplu: Step_1)
2) Apasati pe simbolul din bara de unelte:
Aceasta afiseaza casuta de dialog a actiunii asociate etapei, care e inca goala.
5) Inchideti casuta cu lista numelor actiunilor prin dublu-click pe butonul din meniul de control.
La verificarea sintaxei programului orice eroare gasita este afisata si explicata in casuta de dialog
Compile/Check Messages dupa cum se observa in figura urmatoare.
3) Puteti vedea cauza erorii gasite: prin dublu-click pe erorea corespunzatoare in lista cu erori si
avertismente, sau selectati eroarea si apasati pe butonul Show. Acesta apeleaza obiectele care contin
eroarea, sursa erorii fiind afisata in culoarea rosu.
42
43
44
45
Setarea serialei
3) Selectati USB sau RS-232C. Portul poate fi selectat de la COM1 la COM10 din dreptul casutei
COM port.
4) Confirmati alegerile facute in aceasta casuta apasand butonul OK.
46
Casuta de dialog Transfer Setup este utilizata pentru a specifica ce date sunt incarcate pe automat.
2) Selectati PLC Parameter and Program, apoi confirmati cu OK.
3) Selectati Transfer in meniul Project, apoi selectati Download to PLC pentru a incepe incarcarea.
Procesul de transferare este prezentat intr-o casuta; daca nu sunt afisate mesaje de eroare transferul a
fost realizat cu success.
47
Limbajul FBD
Dreptunghi umplut: stare 1
Dreptunghi gol : stare 0
DATA= 40:40 secunde au trecut
Limbajul IL
Starea 0/1 este indicata de dreptunghiurile goale/umplute.
48
2) Aceasta afiseaza o casuta de dialog ce cuprinde parametrii automatului. Selectati CPU Type
corespunzator si confirmati cu OK.
3) In urmatoarea casuta de dialog trebuie sa specificati calea si numele pentru proiectul descarcat, care
va fi memorat ca proiect nou.
Daca doriti sa creati un proiect nou pentru programul descarcat de pe automat urmariti instructiunile
de la punctual 3.1.
Daca un proiect este deja deschis puteti abandona procesul apasand butonul Cancel.
4) Apasati pe Setup in casuta de dialog Transfer Setup.
5) Aceasta afiseaza casuta de dialog Transfer Setup (CPU port). Selectati portul corect pentru
configurarea sistemului dumneavoastra (vezi 3.10).
6) Confirmati setarile facute in ambele casute apasand OK.
Acest lucru porneste descarcarea. Progresul si eventualele erori sunt afisate intr-o casuta.
49