You are on page 1of 55

Industrijski sistemi i protokoli

Vežbe – termin 3

Industrijski sistemi i protokoli


Programiranje PLC-a

Industrijski sistemi i protokoli


Programiranje PLC-a

Svaka promenljiva ima svoje ime (tag), tip i adresu Prilikom programiranja uvek
treba imati u vidu prirodu
kontakata koji su povezani
na ulaz PLC-a (hardver)
pošto od toga zavisi logika
kontakata u ladder
dijagramu (softver).

Kako seJednostavna
čita ovaj ladderinstrukcija u
dijagram? Jednostavan primer: pritiskom na
ladder
Ukoliko je nadijagramu
ulazu PLC-a kojom se ovo
I0.0 24VDC, NO taster povezan na ulaz PLC-a
postiže – logičko
odnosno sa leve 1strane
(što jenalazi (adresiran sa I0.0) treba uključiti
se bus
ekvivalentno linijadakoju
tome je namožemo
NO taster sijalicu koja je povezana na izlaz
na baš tomposmatrati
ulazu PLC-a kaopritisnut),
„izvor
PLC-a (adresiran sa Q0.0).
tada napajanja“, a sa desne
kontakt provodi i izlaz strane
PLC-a
nalazi se simbol
Q0.0 je napojen (što je ekvivalentnoza
izlaz/namotaj/coil.
tome da sijalica svetli).Primetiti da
je njegov tag adresa izlaza PLC-
a sa kojim je „povezan“. U
sredini je simbol za NO kontakt
koji provodi ili ne u zavisnosti
od stanja njegovog taga.

Industrijski sistemi i protokoli


Programiranje PLC-a
U principu, logika upravljačkih
relejnih šema je preuzeta kako bi
se programiranje PLC uređaja
Stare relejne šeme vs PLC program pojednostavilo.

Ova relejna šema kaže sledeće:


Simbol za NO Ako NZ STOP taster nije pritisnut, a NO
Simbol za NZ Simbol za
taster START START taster jeste, tada će se
taster STOP elektromagnet
elektromagnet releja napojiti i njegovi
releja
kontakti zatvoriti. Da bi se obezbedilo
to da elektromagnet releja ostane
napojen, tj. elektromagnet uključen i
kada se START taster pusti (ovo se
naziva SAMODRŽANJE), paralelno sa
Simbol za START tasterom vezan je kontakt
sijalicu releja. Ukoliko se pritisne STOP,jasno
je da L1 linija nikako ne može doći do
elektromagneta, tako da će relej biti
isključen. Ukoliko relej radi, sija zelena
sijalica, a ako relej ne radi sija crvena
sijalica.

Industrijski sistemi i protokoli


Programiranje PLC-a
Simbol za NO
Simbol za NO
kontakt, na
kontakt, na
adresu I0.0 je
Stare relejne šeme vs PLC program adresu I0.1 je
povezan
povezan STOP
START
Ovaj ladder dijagram u potpunosti
opisuje isti sled događaja kao i relejna
šema. Najbitnije je razumeti princip
samodržanja u ladder-u. Relej (Q0.0)
treba da bude aktivan ako je pritisnut Simbol za izlaz,
START, a STOP nije. Ako je START na adresu
pritisnut, NO kontakt sa tagom I0.0 je Q0.0 je
provodan je je na tom ulazu 24VDC. Ponovo, da bi se obezbedilopovezan relej
Ako STOP nije pritisnut, NO kontakt sa samodržanje, treba paralelno
Na izlaz adresiran
tagom I0.1 je takođe provodan jer je sa START tasterom vezati
Q0.1 povezana je
na tom ulazu 24VDC (setimo se da je kontakt releja. zelena sijalica
STOP NZ). Pošto su oba provodna,
tada i izlaz može da se napoji, tj. da se Na izlaz adresiran
na adresu Q0.0 upiše logičko 1. sa Q0.2 povezana
je crvena sijalica

Industrijski sistemi i protokoli


Programiranje PLC-a

Načini programiranja PLC-a

GRAFIČKI
Ladder logic (lestvičasta logika) je način crtanja el. logičkih šema.
To je grafički jezik, veoma popular kod PLC.
Originalno je izmišljen da zameni relejnu logiku.
Ime je dobio jer program podseća na merdevine.
-alternativa je Function Block Diagram (funkcionalni blok dijagram).

Industrijski sistemi i protokoli


Programiranje PLC-a

Ladder diagram Function block diagram

Industrijski sistemi i protokoli


Programiranje PLC-a

Načini programiranja PLC-a

TEKSTUALNI
Structured control language (higher level programski jezik)
-alternativa je Statement List (asemblerski jezik)

Industrijski sistemi i protokoli


Programiranje PLC-a

Structured control language


(SCL) Statement list (STL)

Industrijski sistemi i protokoli


Programiranje PLC-a

Ranije pomenuto:

Pojam normalno
stanje u kom se kontakt nalazi dok se na njega ne deluje spolja silom (odnosno dok je
u nepobuđenom stanju)

Primer:
NO (taster): provodi kada je pritisnut
NO (relej, kontaktor): kontakt provodi kada ima napajanja na namotaju

NC obratno

Industrijski sistemi i protokoli


Programiranje PLC-a

PLC S7 osnovni Ladder dijagram blokovi - Kontakti


NO
simbolički, energija teče kroz kontakt kada je zatvoren. NO je zatvoren kada je
statusni bit koji kontroliše taj kontakt 1 (npr.. kada je spoljni prekidač zatvoren,
tj. ima se 24V na ulazu PLC-a)

NC
obratno: provodan kada je statusni bit 0 (tj. kada je prekidač otvoren)

Namotaj (Coil)
simbolički predstavlja relej koji je pobuđen (energized) kada energija teče
prema njemu. Kada je pobuđen, on uključuje statusni bit odgovarajućeg izlaza.
Isti statusni bit može biti korišćen da kontroliše NO i NC kontakte bilo gde u
programu

Industrijski sistemi i protokoli


Programiranje PLC-a

PLC S7 osnovni Ladder dijagram blokovi

NO kontakt provodi ako je bit sa kojim je asociran logičko


namotaj (coil)
NO 1 (odnosno na tom digitalnom ulazu PLC-a je 24VDC.)
NZ kontakt
Ukolikoprovodi ako
je taj bit najelogičkoj
bit sa kojim je asociran
0, kontakt logičko
ne vodi.
0 (odnosno na tom digitalnom ulazu PLC-a je 0VDC.)
NC
Ukoliko je taj bit na logičkoj 1, kontakt ne vodi.
NOT kontakt negira ono što mu dolazi sa leve strane –
negacija set Nubitova
ako je to logička 0 (negde počev prekid,
mreži postoji od Bit tj. neki
Pkontakt
kontaktneprovodi kada
vodi), sa desnedetektuje
strane („pozitivnu“) promenu
je logičko 1 i obrnuto.
Bit
vrednosti bita sa kojom je asociran sa 0 na 1. Pošto je
pozitivna ivica
jedan scan ciklus
N kontakt dovoljan
provodi kada da se ta promena
detektuje opazi, on
(„negativnu“)
Bit
praktičnobita
promenu vrednosti vodisajedan
kojomscan ciklus. sa 1 na 0.
je asociran
negativna ivica Pošto je jedan scanreset
ciklusNdovoljan
bitova počev
da se taod Bit
promena
opazi, on praktično vodi jedan scan ciklus.

Industrijski sistemi i protokoli


Programiranje PLC-a

PLC S7 osnovni Ladder dijagram blokovi

Set izlaz, bit, tj. adresa sa kojim je povezan je trajno


setovan na 1 ako sa njegove leve strane dolazi logičko
jedan (makar i jedan scan ciklus!) Po namotaj (coil)
želji se može više
NO
bitova setovati počevši od željene adrese.
NC Reset izlaz, bit, tj. adresa sa kojim je povezan je trajno
Izlaz/namotaj/coil
resetovan na 0 akopovezan je saleve
sa njegove bitom čija dolazi
strane je adresa neki
logičko
digitalni
jedan
negacija izlaz iPLC-a.
(makar jedan Ako
scanjeciklus!)
ono što Pomu željidolazi
set sa leve
Nsebitova
može počev od Bit
više
stranebitova
na logičkoj 1, onda
resetovati se i tajodbitželjene
počevši postaviadrese.
na 1 izlaz je
aktivan – napojen.
pozitivna ivica

negativna ivica reset N bitova počev od Bit

Industrijski sistemi i protokoli


Programiranje PLC-a
Primer upotrebe
Ako se na ulazu PLC-a I0.1 u nekomnekihtrenutku
od osnovnih
pojavilo
elemenata ladder
24VDC, 6 bitova počevši od izlaza Q0.2 (dakle, Q0.2,
PLC S7 osnovni Ladder dijagram blokovi
Q0.3, Q0.4, Q0.5, Q0.6, Q0.7) bivaju dijagrama.
setovani (postavljeni
Ako se na ulazu PLC-a
na logičku 1). trenutku pojavilo
I0.2 u nekom
24VDC, 6 bitova počevši od izlaza Q0.2 (dakle, Q0.2,
I0.1 Q0.2
Ako se na ulazu
Q0.3, Q0.4, PLC-a
Q0.5, I0.3
Q0.6,I na ulazu
Q0.7) PLC-a
bivaju I0.4 u nekom
resetovani
trenutku pojavilo
(postavljeni
24VDC ,na 8 bitova
logičkupočevši
0). od izlaza S
Q1.0 (dakle, Q1.0, Q1.1, Q1.2, Q1.3,..., Q1.7) bivaju 6
setovani. Sa druge strane, akoI0.2se na ulazu PLC-a I0.3 Q0.2
I na
ulazu PLC-a I0.5 u nekom trenutku pojavilo 24VDC , 8R
bitova počevši od izlaza Q1.0 bivaju resetovani. 6
I0.3 I0.4 Q1.0

S
8
I0.5 Q1.0

R
8

Industrijski sistemi i protokoli


Programiranje PLC-a

Još jedan tip blokova koji


mogu da se koriste u
Set ili Reset dominantan bistabil (flip flop) ladder programiranju
(BIT LATCHES).

Ovo je SR flip flop,


kod koga je prednost
data SET ulazu.

Ovo je RS flip flop,


kod koga je prednost
Ukoliko se na SET ulazu pojavi logičko 1, bit sa
data RESET ulazu.
kojim je čitav blok povezan se setuje. To stanje
ostaje i kad se SET ulaz izgubi (postane 0). Ukoliko
se na RESET ulazu pojavi logičko 1, bit sa kojim je
Oznaka bloka. čitav blok povezan se resetuje. U zavisnosti od tipa
Vremenski dijagram
Primetiti da blok ima Primer upotrebe u flip flopa, ukoliko se istovremeno i na SET i na
kojim se jednostavno
dva ulaza – SET i ladder dijagramu. RESET ulazu istovremeno pojave jedinice, kod SR
RESET i jedan izlaz. prednost je dataopisuje radpa
SET ulazu, bloka.
je izlaz setovan, a
kod RS flip flopa je obrnuta situacija.

Industrijski sistemi i protokoli


Programiranje PLC-a

Još jedan tip blokova koji


mogu da se koriste u
Compare ladder programiranju
- byte (COMPARE). Prilikom
- integer upotrebe bloka jasno
treba definisati koji tip
- double
Primer ladder dijagrama sa compare blokovima
podataka se poredi.
(kontaktima). Uglavnom je iznad bloka neka
- real
adresa, a ispod bloka vrednost sa kojom se
poredi.
Primetiti i MOVE blok koji se ovde pojavljuje po Kako se poređenje vrši?
prvi put. On ima dva ulaza (EN, IN) i dva izlaza operacije su „jednako“ (==), „nejednako“ (<>),
Moguće
(ENO, OUT). Kada se na EN ulazu pojavi„veće
1, ono ili jednako“ (>=), „manje ili jednako“ (<=), „veće“
što je na IN ulazu se upiše na OUT izlaz.(>)
Dakle,
i „manje“ (<). U zavisnosti od tipa podataka upisuje
ono što je na jednoj adresi ili neu konstantu
se određeno slovo – za byte B, integer I, double D i real
možemo da upišemo na neku drugu adresu. R. Iznad i ispod bloka se pišu dve vrednosti koje se
ENO izlaz se retko kad koristi, na njemu porede
je (u primeru na slici to su IN1 i IN2). Ako je
logičko 1 ukoliko se MOVE operacija izvršilarezultat operacije poređenja logičko 1 (tačno),
ispravno, a u suprotnom je 0. compare kontakt vodi. U suprotnom ne vodi.

Industrijski sistemi i protokoli


Programiranje PLC-a
Brojači (counter-i) su veoma važan deo
ladder dijagrama i koriste se kad god je
potrebno prebrojavanje nečega (npr.,
Counter (brojači) proizvoda koji upadaju u kutiju ili broja
automobila na parkingu).
- Count up
Postoje tri osnovna tipa brojača – „brojač
- Count down naviše“ (count up), „brojač naniže“ (count
- Count up-down down) i „brojač i naviše i naniže“ (count up-
Oznake: down).
Cxx – C0 do C255 Sa desne strane se vidi izgled ovih blokova.
CU, CD - brojački ulazi (uvek broje na uzlaznu tranziciju!)
R – reset
LD – load
PV – preset value

Counter bit:
1. Cxx  PV  Cxx bit =1
2. Cxx  0  Cxx bit =1
3. Cxx  PV  Cxx bit =1

Industrijski sistemi i protokoli


Programiranje PLC-a
Count down brojač – primer upotrebe u ladder dijagramu i vremenski
dijagram. Ovaj brojač ima ulaze CD (ovde se dovode impulsi koji se broje),
PV (u njega se upisuje početna vrednost brojača), LD (kada na ovaj ulaz
Counter (brojači) dođe logičko 1, početna vrednost brojača – PV – postane trenutna vrednost
- Count down brojača) i izlaz CTD koji postane logičko 1 kada trenutna vrednost brojača
postane 0 (pošto od PV vrednosti broji naniže).

Početno stanje counter-a je broj upisan u PV ulaz (3). Kad god se detektuje
impuls na ulazu I0.0 (tj. tranzicija sa 0 na 1), stanje brojača se umanji za 1.
Kada se dođe do 0, izlaz brojača CTD se setuje. Izlaz counter-a je setovan
sve dok je trenutna vrednost brojača 0 (ili manja od 0). U svakom trenutku
se trenutna vrednost brojača može ponovo postaviti na PV vrednost (load-
ovati) ukoliko se na ulazu I0.1 pojavi logičko 1 (24VDC).

Industrijski sistemi i protokoli


Programiranje PLC-a

Count up-down brojač – primer upotrebe u ladder dijagramu i


vremenski dijagram. Ovaj brojač ima ulaze CU (ovde se dovode
Counter
Početno (brojači)
stanje counter-a je 0. impulsi koji treba da dovedu do uvećanja trenutne vrednosti
Kad- godCount up-down
se detektuje impuls na brojača), CD (ovde se dovode impulsi koji treba da dovedu do
ulazu I0.0 (tj. tranzicija sa 0 na smanjenja trenutne vrednosti brojača), PV (u njega se upisuje
1), stanje brojača se uveća za 1. vrednost do koje brojač treba da broji), R (kada na ovaj ulaz dođe
Kad god se detektuje impuls na logičko 1, trenutna vrednost brojača postane 0, tj. brojač se
ulazu I0.1 (tj. tranzicija sa 0 na resetuje) i izlaz CTUD koji postane logičko 1 kada trenutna
1), stanje brojača se umanji za vrednost brojača bude jednaka vrednosti upisane u PV ulaz.
1. Kada se dođe do PV (4), izlaz
brojača CTUD se setuje. Izlaz
brojača je setovan sve dok je
trenutna vrednost brojača veća
ili jednaka od PV vrednosti. U
svakom trenutku se trenutna
vrednost brojača može
postaviti na 0 (resetovati)
ukoliko se na ulazu I0.2 pojavi
logičko 1 (24VDC).

Industrijski sistemi i protokoli


Programiranje PLC-a
Count up brojač fukcioniše slično kao i prethodna dva tipa. Ovaj brojač ima
ulaze CU (ovde se dovode impulsi koji se broje), PV (u njega se upisuje
vrednost do koje brojač treba da broji), R (kada na ovaj ulaz dođe logičko 1,
Counter (brojači) trenutna vrednost brojača postane 0, tj. brojač se resetuje) i izlaz CTU koji
- Count up postane logičko 1 kada trenutna vrednost brojača postane jednaka PV
vrednosti.
Početno stanje counter-a je Važno: u PLC programu u
0. Kad god se detektuje svakom trenutku nam je
impuls na ulazu CU (tj. dostupna i trenutna
tranzicija sa 0 na 1), stanje vrednost brojača (brojač
brojača se uveća za 1. Kada zapravo ima još jedan
se dođe do PV, izlaz brojača izlaz CV – current value).
CTU se setuje. Izlaz counter- Nju kao varijablu
a je setovan sve dok je korisitmo kad otkucamo
trenutna vrednost brojača ime_brojača.CV
veća ili jednaka PV
vrednosti. U svakom Oznake za ulaze zavise od serije PLC-a, dok blokovi rade na isti
trenutku se trenutna način. Na primer, za seriju S7-200 izlaz brojača označava se sa
vrednost brojača može CTU, dok kod serije S7-1200 je oznaka Q.
postaviti na 0 (resetovati) Ovo ne treba da nas buni, ali treba da imamo u vidu kada
ukoliko se na ulazu R pojavi primetimo da su oznake neusklađene (a ima takvih slučajeva
logičko 1 (24VDC). u prezentaciji).
Industrijski sistemi i protokoli
Programiranje PLC-a
Timer-i su takođe važan deo ladder
dijagrama i koriste se kad god je
potrebno merenje proteklog
vremena (npr., prilikom zvezda-
Timer trougao pokretanja motora se
- TON namotaji prevezuju iz sprege zvezda
- TOFF u spegu trougao tačno nakon
- TON Retentive određenog vremena).
Postoje dva osnovna tipa timer-a (a
ima ih i više) – TON i TOFF timer.
Oznake: Sa desne strane se vidi izgled bloka
Txx – TC0 do T255 (S7-200).
IN – dozvola rada (+reset)
PT – preset time
Timer ima dva ulaza – IN (kada je na
njemu logičko 1, timer broji), PT (ovde se
Timer bit: upisuje vreme koje se zadaje timer-u da
1. Txx  PT  Txx bit =1 broji) i dva izlaza – Q (ovaj izlaz je 0 ili 1 u
2. Txx  PT  Txx bit =1 zavsinosti od stanja i tipa timer-a, ovde
3. Txx  PT  Txx bit =1 (bez reseta) nazvan Txx timer bit), kao i ET (u kome je
dostupno trenutno stanje timer-a)

Industrijski sistemi i protokoli


Programiranje PLC-a

Kod serije S7-200 svaki timer imao je svoju rezoluciju brojanja i samim
tim imena bita koji timer kontroliše se razlikovala (T4, T100 – zato na
Timer prethodnom slajdu piše Txx). Ovo se moralo uvažiti i kad se zadavalo
- TON vreme timer-u. Npr. ukoliko je rezolucija timer-a bila 10 ms, a zadato
- TOFF vreme timer-u treba da bude 1 s, u PT vrednost trebalo je da se upiše
1s/10ms=100. Kod naše serije S7-1200 timer-i nisu ovako realizovani i
- TON Retentive
nećemo morati da vodimo računa o realizaciji timer-a. Da bismo
pristupili bitu koji timer kontroliše, koristićemo adresu ime_timera.Q.

Timer Type Resolution Maximum Value Timer Number


TONR 1 ms 32.767 s (0.546min) T0, T64

10 ms 327.67 s (5.46min) T1-T4, T65-T68


100 ms 3276.7 s (54.6min) T5-T31, T69-T95
TON, TOFF 1 ms 32.767 s (0.546min) T32, T96

10 ms 327.67 s (5.46min) T33-T36, T97-T100


100 ms 3276.7 s (54.6min) T37-T63, T101-T255

Industrijski sistemi i protokoli


Programiranje PLC-a
Timer TON – primer upotrebe u ladder dijagramu i
vremenski dijagram. Kada je na ulazu I0.0 0VDC, timer je
nepobuđen i njegov izlaz je 0. Kada se na IN ulazu timer-
Timer a pojavi logičko 1, tada timer počinje da broji. Pošto je
- TON primer dat za S7-200 seriju („komplikovaniji“ slučaj),
vreme zadato timer-u na PT ulaz je 10∙100ms=1s. Kada
- Broji vreme kada je IN ulaz ON timer izbroji ovo vreme, svoj izlazni bit (kod ovog tipa
timer-a je to T37) setuje.
- Kada je Txx PT -> Txx bit = 1Ukoliko se u bilo kom trenutku IN ulaz izgubi (postane
- Reset: kada je IN ulaz OFF 0), trenutna vrednost timer-a postane 0 i samim tim bit
koji timer kontroliše takođe postane 0.

Primetiti da timer nema poseban reset ulaz! Ukoliko trenutno stanje


timer-a treba da se resetuje, potrebno je obezbediti da IN ulaz
postane 0. Na sledećem slajdu je dat primer autoreseta.

Industrijski sistemi i protokoli


Programiranje PLC-a
Ovde je dat primer u kome neki izlaz Q0.0
treba naizmenično držati 0,6s uključenim, a
potom 0,4s isključenim. To znači da je perioda
Timer koji se ponavljaju 1s, zbog toga se u
impulsa
Ovde je dat vremenski dijagram koji
PT- upisuje
TONvrednost
(autoreset)
100 (100∙10ms=1s) – opet
ovo potkrepljuje. Jasno se vidi da je
taj nesrećni S7-200. Koristi se compare blok
na lokaciji M0.0 upisana 1 samo
kako bi se trenutna vrednost timer-a poredila
jedan scan ciklus, koliko je potrebno
sa 40 (40∙10ms=0,4s). Izlaz Q0.0 je 1 ako je
da se detektuje da je timer odbrojao
ovo ispunjeno, a ako nije, onda je 0. Da bi se
1s. Već u sledećem scan ciklusu ta
obezbedilo resetovanje timer-a posle 1s, bit
memorijska lokacija biva resetovana
koji timer kontroliše se čuva u bit memorijskoj
jer se resetuje izlazni bit timer-a
lokaciji na adresi M0.0. Dakle, na početku je
T33, a opet on se resetuje zbog NZ
na M0.0 upisana 0 i NZ kontakt na IN ulazu
kontakta na IN ulazu timer-a…
timer-a vodi. Timer broji…dođe do 1s u nekom
Uh…
trenutku…setuje svoj izlazni bit…to se upiše u
Biće zabavno na ovaj način
M0.0…u sledećem scan ciklusu NZ kontakt na
objašnjavati čitave mreže u
IN ulazu timer-a ne vodi jer je sad u M0.0
zadacima koji nam slede…
upisana 1…timer se resetuje…M0.0 postane
0…i onda dolazimo u istu situaciju kao na
početku… I sve se vrti u krug. Praktično, timer
samog sebe resetuje preko lokacije M0.0.

Industrijski sistemi i protokoli


Programiranje PLC-a
Timer TOFF – primer upotrebe u ladder dijagramu i
vremenski dijagram. Kada je na ulazu I0.0 24VDC, timer
je nepobuđen i njegov izlaz je 1. Kada se na IN ulazu
Timer timer-a pojavi logička 0, tada timer počinje da broji.
- TOFF Pošto je primer dat za S7-200 seriju („komplikovaniji“
slučaj), vreme zadato timer-u na PT ulaz je 100∙10ms=1s.
- Broji vreme kad je IN ulaz OFFKada timer izbroji ovo vreme, svoj izlazni bit (kod ovog
tipa timer-a je to T33) resetuje.
- Kada je Txx PT -> Txx bit = 0Ukoliko se u bilo kom trenutku IN ulaz aktivira (postane
- Reset: kada je IN ulaz ON 1), trenutna vrednost timer-a postane 0 i samim tim bit
koji timer kontroliše se ponovo vrati na 1.

Važno: da bi se izlaz timer-a setovao, na IN ulazu mora da se pojavi


24VDC (logičko 1). Dakle, bez toga, po default-u, bit koji timer
kontroliše je inicijalno na 0.

Industrijski sistemi i protokoli


Programiranje PLC-a
Timer TONR – primer upotrebe u ladder dijagramu i
vremenski dijagram. Ovaj timer radi slično kao TON
timer. Razlika je u tome što se kod njega pamti
Timer trenutno stanje timer-a čak i kada se IN ulaz izgubi
- TON Retentive (postane 0). Kako se onda ovaj timer resetuje?
Kod S7-200 bi se ručno morao resetovati bit koji
- Isti kao TON, samo se ne resetuje timer kontroliše (ovo je dato u ladder primeru i
vremenskom dijagramu).
kada je IN ulaz OFF, već samo R
instrukcijom
Kod naše serije
(S7-1200)
postoji poseban
reset ulaz –
kada se na
njemu pojavi
logička 1
trenutno stanje
i izlaz timer-a se
resetuju.

Industrijski sistemi i protokoli


Programiranje PLC-a

Interval tajmeri (ITIME)

- BGN_ITIME – čita vrednost


ugrađenog 1ms tajmera i vrednost
smešta u OUT (2^32 = 49.7dana)

- CAL_ITIME – računa razliku


trenutnog vremena i ulaza IN

Kod S7-200 može se meriti protekli


vremenski interval korišćenjem interval
timer-a. Proteklo vreme smešta se u
neku memorijsku lokaciju. Kod S7-1200
zasebna vrsta timer-a za ovo ne postoji.

Industrijski sistemi i protokoli


Programiranje PLC-a

Pulse Output Instruction


PTO (pulse train output) PWM (Pulse width modulation)

Za Step motor: Kod pojedinih PLC modela izlazi mogu da se


konfigurišu tako da daju impulse sa 50%
faktora ispune (ovo su PTO izlazi). Ovo se
koristi kod kontrole servo-motora ili step-
motora.
Sa druge strane, moguće je podešavati faktor
ispune impulsa ukoliko su izlazi podešeni kao
PWM. Na taj način se npr. može kontrolisati
brzina motora.

Industrijski sistemi i protokoli


Programiranje PLC-a

Osnovne matematičke instrukcije


Izuzetno važne
instrukcije koje
su postale
dostupne kako
su se PLC
uređaji razvijali
su matematičke
instrukcije –
sabiranje,
množenje,
deljenje…
Ovi blokovi imaju ulaze EN (enable, blok vrši operaciju kada se na njemu nađe logičko 1), IN1 i
IN2 (na ove adrese se dovode brojevi ili adrese na kojima se nalaze brojevi koji se sabiraju,
množe itd.) i izlaze ENO (ovaj izlaz je 1 ako je aritmetička operacija ispavno izvršena i retko kad
se koristi), kao i OUT (ovde se zadaje adresa na koju treba da se upiše rezultat operacije).
Potrebno je definisati i tip podataka nad kojima se operacija izvršava. Moguće je dodati još
ulaza (IN3…INkoliko hoćeš).

Industrijski sistemi i protokoli


Programiranje PLC-a

PID regulator

Naravno, radi bolje kontrole složenih industrijskih procesa, postoji


mogućnost implementacije PID regulatora u PLC program.
Ovaj blok je složeniji za razumevanje jer obuhvata razumevanje izbora
parametara regulatora, kao i korišćenje auto-tuning procesa koji je
moguć.

Industrijski sistemi i protokoli


Programiranje PLC-a

Kontrola toka programa (JMP and LBL)

Moguće je kontrolisati i tok izvršavanja programa – ne


mora se uvek program izvršavati sekvencijalno, već je
moguće koristiti JMP (jump) instrukciju u kojoj se skače
na LBL (label) sa posebnim imenom. Setiti se malo C-a, i
tamo postoji ovakva instrukcija i niste je nešto
eksploatisali, a nećete ni ovde.

Dodela vrednosti (MOV)


Ovaj blok smo već komentarisali na slajdu
- byte 16 – služi za prebacivanje vrednosti sa
- integer jedne memorijske lokacije (IN) na drugu
- double memorijsku lokaciju (OUT), kada je EN
ulaz aktivan. Treba definisati tip podatka
- real
koji se prebacuje.

Industrijski sistemi i protokoli


Programiranje PLC-a
Postoji mugućnost organizovanja programa u podblokove koji se
pozivaju iz glavnog programa, slično kao funkcije u C programiranju.
Kreira potprogram koji ima svoje ulaze i izlaze, samo je potrebno
Potprogram (subroutine) definisati sa kojih se adresa kupe ulazi i naravno na koju adresu/e
se upisuju rezultati izvršavanja potprograma.
Iz glavnog programa PLC skače u potprogram, izvršava ga i vraća
se nazad, na mesto odakle je imao skok
Parametar Opis
IN Ulaz u pp
IN_OUT ulazi u rutinu i vraća se kao njen rezultat
OUT izlaz

-Modularnost
-Sekvencijalnost

Industrijski sistemi i protokoli


Programiranje PLC-a
Kao i kod svakog mikroprocesorskog sistema (o čemu će neki od vas
učiti kasnije), moguće je generisati prekide kako bi se tok izvršavanja
programa prekinuo i momentalno skočilo na izvršavanje nekog drugog
Prekid (interrupt) zadatka, kada se ne može osloniti na to kako će teći scan ciklus, npr.
ukoliko je potrebno precizno pozicioniranje
-Prekid se dešava trenutno, tj. ne čeka kraj scan-a! (prekida se sama instrukcija,
koja se sastoji od više manjih, koja se trenutno izvršava)

-Asinhronizam

-Princip je: prvi se pojavio - prvi će biti servisiran; ostali idu u que (red)

-Postoji prioritet: 1. komunikacioni


2. diskretni
3. vremenski

Industrijski sistemi i protokoli


Programiranje PLC-a

Prekid (interrupt)
- Enable interrupts (ENI) - dozvola prekida
- Disable Interrupt (DISI) - zabrana prekida
- Attach Interrupt (ATCH) - pridružuje prekidni
događaj prekidnoj rutini i dozvoljava prekid
- Detach Interrupt (DTCH) – raskida prekidni
događaj sa prekidnom rutinom i zabranjuje prekid
- (C)RETI –(conditional) povratak iz prekida

Ovi blokovi se koriste u radu sa prekidima. Prilikom


učenja osnova PLC programiranja, generisanje prekida
nam neće biti prioritetno. Zapravo, za većinu aplikacija za
koje se PLC koristi, scan ciklus je dovoljno brz da obavi sve
svoje zadatke u realnom vremenu, bez lošeg uticaja na
sam tok procesa.

Industrijski sistemi i protokoli


Programiranje PLC-a

String – dodavanje, dužina, kopiranje

U PLC programiranju omogućene su


i operacije nad stringovima, npr.
kopiranje stringa, određivanje U ovom ladder dijagramu se na adresu VB400 (koja se može
dužine stringa, konkatenacija, npr. iščitavati na nekom displeju i sl.) upisuje string „High
traženje stringa u okviru stringa itd. Temp“ ukoliko je Pump_Temp_Error (statusni bit koji se
aktivira ukoliko je senzor izmerio previsoku temperaturu) na
logičkoj 1, a ukoliko nije, što znači da je 0 (eto nam i primera
upotrebe NOT kontakta kojim se vrši logička negacija), tada
je u adresu VB400 upisan string „OK“.

Industrijski sistemi i protokoli


Programiranje PLC-a

String - find

Traženje stringa u stringu (STR_FIND)


(IN1 se traži u IN2, počev od OUT pozicije)
U ovom primeru string koji se nalazi na
adresi VB0 se koristi da bi se odlučilo da li
pumpa treba da se uključi ili isključi.
String „On“ čuva se na lokaciji VB20, a
„Off“ na VB30. Rezultat STR_FIND
instrukcije čuva se na adresi AC0 (OUT).

String je nađen i to na poziciji 11 u adresi VB0. String nije nađen ako je rezultat 0.

Industrijski sistemi i protokoli


Programiranje PLC-a

Podaci (tipovi)
Tipovi podataka su se
spominjali i na prethodnim
slajdovima, ali evo ih i ove,
izlistani su svi mogući
tipovi, kod kojih serija
postoje, kao i koliko
memorije zauzimaju. Bool
promenljive (0/1) ćemo
najviše koristiti. Postoje i
celobrojne i realne
promenljive, sa
predznakom i bez…
Posebno interesantan tip je
TIME koji se koristi kod
blokova koji barataju sa
proteklim vremenom.

Industrijski sistemi i protokoli


Programiranje PLC-a
Kako se pristupa nekom podatku? → Mora mu se poznavati adresa.
Kako da znamo adresu podatka? → Adresa se dodeljuje u zavisnosti od tipa
podatka. Ona se sastoji od sledećih elemenata: slova koje identifikuje
Podaci (pristup) memorijsku oblast (kao što je I, Q, M), tipa podatka koji se koristi (kao što je
B-byte, W-word, D-Dword) i početne adrese.
Jedino kod bool promenljivih nije sve ovo neophodno – samo se navede koja
je memorijska oblast
Area identifier, u pitanju,
data koji bajt
size, starting bytei !koji bit u okviru bajta (npr. I0.2,
Q0.0, M3.1).

Jasno je da word promenljiva zapravo ima


2 bajta, tj. 16 bitova.

Jasno je da double word promenljiva zapravo ima 4 bajta, tj. 64 bita.

Industrijski sistemi i protokoli


Programiranje PLC-a

Podaci Process-Image Input Register: I Deo memorije u koji se


Bit: I0.1 smešta slika ulaza označava
Byte, Word, or Double Word: IB4 se sa I.

Process-Image Output Register: Q


Bit: Q1.1
Deo memorije u koji se
smešta slika izlaza označava
Byte, Word, or Double Word: QB5
se sa Q.

Kod S7-1200 PLC Variable Memory Area: V


serije su V i M Bit: V10.2 Deo memorije u koji se
objedinjeni i Byte, Word, or Double Word: VW100 smeštaju promenljive
koristi se samo M. (varijable) označava se sa V.
Dakle, tu se
Bit Memory Area: M (CPU 224XP: 32byte ) Deo memorije u koji se
skladište neki
Bit: M M26.7 smeštaju promenljive,
međurezultati,
statusni bitovi Byte, Word, or Double Word: MD20 najčešće privremeno,
(flag-ovi) i sl. označava se sa M.

Industrijski sistemi i protokoli


Programiranje PLC-a
Podaci Timer Memory Area: T
trenutna vrednost: 16 bita
Kod S7-200 su
timer bit
se posebni
delovi memorije
Counter Memory Area: C
rezervisali za
timer-e, trenutna vrednost: 16 bita

counter-e itd. za counter


U SM bit
registre smeštaju se
smeštaj bitova bitovi koji imaju posebnu
neophodnih za High-Speed Counters:
funkciju, npr.HCbit koji je
rad tih blokova. brziuvek 1, bit
događaji, koji je
nezavisno od 1 samo
CPU scana.u
prvom
Označen, 32-bitscan ciklusu ili bit
integer Ovo je posebna vrsta brojača
U AC registre se koji menja svoje stanje u specijalizovana da detektuje
uglavnom nekom impulse koji se toliko brzo
Accumulators: AC definisanom
smeštaju vremenu. menjaju, brže od trajanja jednog
AC0, AC1, AC2, AC3
međurezultati scan ciklusa.
operacija ili
prenošenje Special Memory: SM Deo memorije u koji se
parametara Always On (SM0.0), First pass (SM0.1), 30 s off / 30 s on (SM0.4), analog smeštaju lokalne
između promenljive asocirane sa
potprograma. Local Memory Area: L potprogramima.
stek (razmena podataka za potprograme), inače slična Variable Memory Area

Industrijski sistemi i protokoli


Programiranje PLC-a

Podaci Analog Inputs: AI Analogni ulazi i izlazi su po default-u word


16 bita -> AIW0 i AIW2 promenljive, kako bi se analogni podatak što
preciznije prikazao (sa većom
Analog Outputs: AQ rezolucijom/tačnošću). Startna adresa za
16 bita -> AQW0 analogne ulaze i izlaze zavisi od tipa PLC-a i
nalazi se u njegovoj memorijskoj mapi.
Strings

Constant value
Primeri
mogućih
prikaza
vrednosti koji
se mogu
izabrati u PLC
softveru.

Industrijski sistemi i protokoli


Podaci

Tipovi podataka i mogući opsezi

Celobrojn
i

Realni

Industrijski sistemi i protokoli


Podaci

Podaci

Vreme

Znakovni

Industrijski sistemi i protokoli


Programiranje PLC-a

Podaci (mapa, primer)

Iz mape podataka moguće videti koje adrese


se koriste za promenljive. U ovom primeru
promenljive su digitalni i analogni ulazi i
izlazi. Takođe, izlistane su i adrese koje
postaju dostupne ukoliko se dodatni moduli
povežu sa osnovnim PLC uređajem.

Industrijski sistemi i protokoli


Programiranje PLC-a

Podaci (mapa, primer)

Ova mapa podataka


preuzeta je iz
korisničkog uputstva
(S7-200). Jasno se vidi
kako se adresiraju
određeni memorijski
opsezi i koji deo
memorije je rezervisan
za pojedine entitete
poput ulaza, timer-a,
potprograma itd.

Industrijski sistemi i protokoli


Programiranje PLC-a

Ovo smo već pričali,


ali evo i za kraj…
Samodržanje (verzija 1) Da se dobro nauči 

Pritisnut normalno otvoren start_taster Prva verzija, pretpostavimo


i nepritisnut normalno otvoren stop_taster da su i START i STOP taster
uključuju izlaz. NO.

Izlaz sam sebe drži aktivnim (setovanim) sve dok neko ne pritisne
stop_taster.

Ovo važi u slučaju da se koriste dva radna tastera.

Industrijski sistemi i protokoli


Programiranje PLC-a

Samodržanje (verzija 1)
start_taster
24 V
izlaz
I0.1 Q0.0
PL
Skica povezivanja
ovih tastera na I0.2 C
PLC. stop_taster
Da bi se obezbedilo
samodržanje, paralelno sa Izlaz treba da je aktivan ako je
START tasterom se vezuje START pritisnut (na I0.1 je 24VDC)
kontakt asociran sa izlazom. i STOP nije (na I0.2 je 0VDC). U
tom slučaju treba iskoristiti NO
Ovakvoj
kontakt u ladderu sa tagom
hardverskoj
start_taster, kao i NZ kontakt sa
postavci odgovara
tagom stop_taster. Tada je izlaz
ovakva logika u
spojen sa bus linijom jer oba
ladder dijagramu.
kontakta vode.

Industrijski sistemi i protokoli


Programiranje PLC-a

Samodržanje (verzija 2)

Pritisnut normalno otvoren start_taster i nepritisnut


normalno zatvoren stop_taster uključuju izlaz.

Izlaz sam sebe drži aktivnim (setovanim) sve dok neko ne pritisne
stop_taster.

Ovo važi u slučaju da se za stop koriste mirni taster!

NaSetite se zašto
primer, smo pričalisklopka
podnaponska da je verzija
dok2imabolja. Šta akodrži
napona slučajno
stop dođe do nestanka napajanja za
tastere/oštećenja
provodnim, provodnika?
ako napon nestane,Kodstop
NO izbacuje
STOP tastera je ovo posebno kritično jer u tom slučaju ne
pogon.
bi bilo moguće prekinuti napajanje izlaza jer bi STOP izgubio svoju funkciju – mogli bismo da ga
do sutra pritiskamo, a na njegov PLC ulaz uvek bi dolazilo 0VDC. Zato je bolje da se koristi NZ
STOP taster. Tada u slučaju nekog hardverskog prekida imamo efekat kao da je STOP pritisnut i
možemo da naslutimo šta nije u redu.

Industrijski sistemi i protokoli


Programiranje PLC-a
Izlaz treba da je aktivan ako je
START pritisnut (na I0.1 je
24VDC) i STOP nije (na I0.2 je
Samodržanje (verzija 2) opet 24VDC). U tom slučaju
treba iskoristiti NO kontakt u
start_taster ladderu i za START i za STOP
taster. Tada je izlaz spojen sa
24 V bus linijom jer oba kontakta
vode. Ukoliko izlaz
Skica povezivanja I0.1 Q0.0 se pritisne STOP,
na ulazu I0.2 pojavi se 0VDC,
ovih tastera na
PLC.
PL NO kontakt sa tagom
stop_taster ne vodi i samim
I0.2 C tim izlaz više nije napojen. Da
stop_taster bi se obezbedilo samodržanje
(odnosno napajanje izlaza i
Ovakvoj
kada se START pusti), paralelno
hardverskoj
sa START tasterom se vezuje
postavci
kontakt asociran sa izlazom.
odgovara ovakva
Primetiti da tag može biti
logika u ladder
adresa, ali i simboličko ime
dijagramu.
promenljive.

Industrijski sistemi i protokoli


Programiranje PLC-a

Samodržanje (verzija 2) - primer JM

SIEMENS
SIMATIC
S 7-200

1L 0.0 0.1 0.2 . 2L 0.3 0.4 0.5 N L1 AC


SF
Q0 CPU 222
RUN .0 .1 .2 .3 .4 .5 AC / DC / RLY

STOP

.0 .1 .2 .3 .4 .5 .6 .7

Evo primera žičenja za situaciju u kojoj I0

1M 0.0 0.1 0.2 0.3 2M 0.4 0.5 0.6 0.7 M L .


je su na ulazu NO START (I0.0) i NZ
STOP (I0.1) taster, a na izlazu MJS PORT
0

(Q0.0). Napajanje i ulaza i izlaza vrši se Napajanje 24V za senzore

sa kleme dostupne na PLC-u na kojoj je (maksimalna struja do 180mA)

24VDC.

Industrijski sistemi i protokoli


Programiranje PLC-a
Da utvrdimo znanje o osnovnim
blokovima… Da li biste mogli da
predvidite promenu svih izlaza u
Vremenski dijagrami vremenu, ako je promena ulaza
data na vremenskim dijagramima
ispod?

NO kontakti sa tagovima I0.0 i I0.1 su redno vezani (formiraju logičko I


kolo). Dakle, ako su oba bita (I0.0 i I0.1) na 1, Q0.0 će biti 1, a u svim
ostalim mogućim slučajevima će biti 0. Izlaz Q0.1 će biti invertovan
Ovo je najinteresantnija mreža. Čim se detektuje promena sa 0 na 1
Q0.0.
ulaza I0.4, setovaće se izlaz Q0.3. Kad se detektuje promena sa 1 na 0 Oba kontakta treba da budu
ulaza I0.4, taj isti izlaz Q0.3 će se resetovati. Dakle, u vremenu će se neprovodna. Dakle, I0.2 treba
ponašati isto kao i ulaz I0.4. A šta je sa izlazima Q0.4 i Q0.5? Pa oni da bude na 0, a I0.3 treba da
će biti aktivni koliko vode P i N kontakt… A to je koliko im je potrebno bude na 1.
da tranziciju signala detektuju… A to je jedan scan ciklus.
Ovde imamo logičko ILI kolo jer su kontakti vezani paralelno, ali ne
klasično ILI jer je jedan kontakt NZ. Koji je jedini slučaj kad će Q0.2 biti
jednak 0?

Industrijski sistemi i protokoli


Programiranje PLC-a
Evo i detaljnog rešenja predstavljenog
u vidu vremenskog dijagrama. Trebalo
bi da sami znamo da ih nacrtamo ako
Vremenski dijagrami dobro razumemo blokove. Samo treba
u obzir uzeti sve moguće kombinacije
ulaza (00, 01, 10, 11).

Industrijski sistemi i protokoli


Programiranje PLC-a

Česte greške...

Program se neće kompajlirati ukoliko se


neka greška nalazi u njemu. Rekli smo I0.5 kontakte treba vezivati direktno na
da tok izvršavanja programa ide s leva bus liniju. Uz to, I0.4 u poslednjoj liniji
na desno i odgore ka dole. Ne može se je mogao da bude vezan paralelno sa
ostvariti tok s desna na levo (kod I0.3)! NO I0.3 i NZ I0.1 kontaktima.

Industrijski sistemi i protokoli


Programiranje PLC-a

Česte greške...

Drugom mrežom smo poništili prvu,


Izlaz Q0.1 ne može da bude povezan
odnosno efekat na Q0.1 imaće samo
paralelno sa oba kontakta sa tagovima
poslednja mreža. Ne sme se isti tip
I0.0 i I0.1. U tom slučaju jednom kad bi
izlaza sa istom adresom koristiti više
se napojio, ne bi mogao da se isključi.
puta u ladder dijagramu!

Industrijski sistemi i protokoli


Kraj

Nadam se da je ovakav tip prezentacije jasan i bez usmenog


predavanja. Audio fajlovi zauzimaju dosta memorije i ne mogu
trajno da budu vidljivi na SOVA platformi. Budite slobodni da
dajete predloge za poboljšanje. Ukoliko imate nekih nejasnoća,
slobodno započnite diskusiju ili mi pošaljite pitanje na mail
ivana.isakov@uns.ac.rs.

Budite dobro i čuvajte se.

Industrijski sistemi i protokoli

You might also like