SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Mali_kontroleri/26
binarni signal ukoliko se nalazi u električnom kolu koje se zatvara (ili otvara) kada se
senzor aktivira. Otuda, se senzor mora vezati u električno kolo digitalnog ulaznog modula.
Ovo kolo će omogućiti detekciju binarnog signala i prenos odgovarajuće vrednosti u
memoriju PLC-a. Na isti način, diskretni izvršni organ mora biti povezan u električno kolo
digitalnog izlaznog modula koje omogućava da se digitalni signal koji odgovara vrednosti
bita u memoriji prenese na izvršni organ.
Prilikom povezivanja digitalnih uređaja neobično je važno da se vodi računa o
tome kako je uređaj projektovan, odnosno kakav treba da bude smer električnog signala.
U tom smislu razlikuju se dve vrste uređaja:
• uređaji koji su izvor signala (source device) – povezuju se na pozitivni pol izvora
napajanja
• uređaji koji su prijemnici signala (sinking device) – povezuju se na zajedničku tačku
izvora napajanja.
Da bi se obezbedila kompatibilnost digitalnih uređaja i PLC-a za koji se oni vezuju,
digitalni moduli se takođe proizvode u dve kategorije
• digitalni U/I izvori - za uređaje koji su projektovani kao prijemnici.
• digitalna U/I prijemnici - za uređaje koji su projektovani kao izvor.
Način vezivanja, ovih uređaja prikazan je na Sl. 2-7 i Sl. 2-8. Pri tome, potrebno je
da se istakne da digitalni moduli koji predstavljaju izvor signala moraju u sebi da imaju i
izvor napajanja. U tom slučaju, postojanje još jednog spoljnog izvora, je opciono. Za
razliku od njih digitalni moduli koji primaju signale nemaju izvor napajanja. To znači da u
kolu preko koga se vezuje digitalni uređaj mora da postoji spoljni izvor napajanja.
Izvesno je da postoje i digitalni uređaji koji ne pripadaju ni jednoj od ovih
kategorija. Tako, na primer, mehanički prekidači mogu da provode struju u oba smera, što
znači da se mogu povezati na oba tipa modula. Sa druge strane, uređaji koji imaju neke
elektronske komponente zahtevaju da se vodi računa o smeru struje, tako da mogu da se
koriste samo sa odgovarajućom vrstom digitalnih U/I modula.
SL. 2-7 SPREZANJE DIGITALNIH UREĐAJA KOJI SU PROJEKTOVANI KAO IZVORI
SL. 2-8 SPREZANJE DIGITALNIH UREĐAJA KOJI SU PROJEKTOVANI KAO PRIJEMNICI
izlazni pin
DC
COM
DC
izvor
napajanja
+
-
Digitalni izlazni
uređaj
(izvor)
izvor signal
VDC
DC izlazno
kolo
(prijemnik)
Mali_kontroler/27
2.4. ANALOGNI U/I MODULI
Analogni ulazni moduli su kola za
spregu između kontinualnih (analognih)
signala koji dolaze od mernih
instrumenata i digitalnih (numeričkih)
vrednosti kojima su ovi signali prikazani u
PLC-u. Analogni izlazni moduli
obezbeđuju spregu između numeričkih
vrednosti u PLC-u i analognih signala koji
predstavljaju ove vrednosti i koji služe za
upravljanje izvršnim organima.
U principu jedan modul se spreže
sa više spoljnih uređaja, pri čemu se svaka
sprega posmatra kao jedan ulazni ili izlazni kanal. Moduli se međusobno razlikuju po broju
i vrsti kanala. Neki moduli su samo ulazni ili samo izlazni, a neki su kombinovani, što
znači da imaju i izlazne i ulazne linije.
Svaki modul se smešta u jedan slot na
šasiji PLC-a (Sl. 2-9). Otuda se, sa gledišta
adresiranja, on tretira isto kao i digitalni modul,
s tim što je značenje pinova i broj bitova koji
odgovaraju jednom pinu drugačiji. Drugim
rečima podaci koji se preko modula unose u
računar nalaziće se u određenim lokacijama
datoteke ulaza (I), a podaci koji se iznose iz
računara, nalaziće se u datoteci izlaza (O).
Broj reči koji odgovara jednom kanalu zavisi od
vrste samog modula. U principu se može
smatrati da svakom ulaznom ili izlaznom kanalu
odgovara po jedna reč, tako da se adresa kanala formira u skladu sa rednim brojem slota
i rednim brojem kanala (Sl. 2-10). Sadržaj odgovarajućih memorijskih lokacija u ovim
datotekama menja se u toku ulaznog ili izlaznog sken ciklusa.
2.4.1. ANALOGNI ULAZNI KANAL
Nezavisno od toga koliko se
ulaznih kanala nalazi na jednom
modulu, modul, po pravilu, ima samo
jedan A/D konvertor. U toku ulaznog
sken ciklusa, uz pomoć multipleksera,
odabira se jedan po jedan ulazni kanal
na modulu, izvrši se konverzija signala i
on se smešta u odgovarajuću reč u
datoteci ulaza.
Imajući u vidu da je merni signal
uvek zašumljen, signal koji dolazi preko
analognog kanala se posle konverzije
propušta kroz digitalni filter koji ima za
cilj da odbaci komponente visokih
učestanosti koji potiču od šuma. Tip i
vrsta ovog ugrađenog filtra zavisi od
proizvođača. Kod nekih tipova modula
korisniku može sam da podešava
parametre filtra. Pored toga, neki
analogni moduli pružaju mogućnost
korisniku da dobije i informacije o
SL. 2-9 KOMBINOVANI ANALOGNI U/I MODUL
SL. 2-10 ADRESIRANJE ANALOGNIH ULAZA I
IZLAZA
SL. 2-11 DIFERENCIJALNA SPREGA ANALOGNOG ULAZA
Mali_kontroleri/28
prekoraćenju opsega ili o drugim aspektima rada modula.
Vrsta A/D konvertora i njegova rezolucija zavise od tipa modula. U principu oni se
kreću od 12 do 16 bitova. Kod posmatrane klase SLC kontrolera koriste se 16-bitni A/D
konvertori. Otuda se svakom ulaznom kanalu pridružuje po jedna memorijska reč. To
nadalje znači da se svaki ulazni kanal adresira pomoću adrese oblika I:e.w. U principu,
moguće je pristupiti i pojedinom bitu unutar svake od ovih reči, no ti bitovi nemaju nikakvo
pojedinačno značenje, pa se ne vidi razlog zašto bi se to radilo.
Analogni davač se vezuje tako što se formira zatvoreno električno kolo. Pri tome,
izvor napajanja tog kola može biti u samom modulu ili spolja. Za razliku od digitalnih U/I,
kod analognih modula izvor napajanja je veoma često spoljni. Samo električno kolo se
zatvara vezivanjem krajeva analognog davača sa pinovima na ploči analognog modula
(Sl. 2-9). Svakom analognom
ulaznom kanalu pridružena su 3
pina. Dva pina služe za ulaz signala,
dok je treći pin vezan za zajedničku
masu na samom modulu. Način
njihovog korišćenja zavisi od vrste
analognog davača sa koga se signal
vodi na kanal. Ako davač ima dva, tri
ili četiri izlaza onda se može izvesti
diferencijalna sprega davača i
modula. Svakom davaču pridružuje
se zaseban izvor napajanja i svi
kanali su međusobno odvojeni (Sl.
2-11). Za davače koji imaju samo
dva ili tri izlaza, može se izvesti veza
sa jednim krajem, tako da se
električno kolo zatvara preko
zajedničke tačke (mase) na samom
modulu. U tom slučaju, dovoljan je
jedan izvor napajanja za više
analognih kanala (Sl. 2-12).
Potrebno je da se istakne da diferencijalna sprega ima bolje karakteristike posebno kad
se radi o potiskivanju smetnji koje potiču od napajanja.
Anolgni ulazni kanali su, po pravilu, prilagođeni za standardizovane vrste signala
(strujne ili naponske) i to u opsezima koji se najčešće sreću kod različitih analognih
davača. Najčešće je modul tako podešen da se postavljanjem internih prekidača može
definisati da li će se kanal koristiti za strujni ili naponski signal. Tipični skup signala koji se
sreće kod analognih ulaza, zajedno sa njihovim celobrojnim prezentacijama kod 16-bitne
konverzije dat je u tabeli T. 2-10.
OPSEG NAPONA/STRUJE
CELOBROJNA DECIMALNA
REPREZENTACIJA
(DATOTEKA ULAZA)
REZOLUCIJA
-10V dc do +10V dc -32768 do +32767
305.176µV
0 do 10V dc 0 do 32767
0 do 5V dc 0 do 16384
1 do 5V dc 3277 do 16384
-20mA do +20mA -16384 do +16384
1.2207µA0 do 20mA 0 do 16384
4 do 20mA 3277 do 16384
U skladu sa vrednostima iz tabele, očigledno je da se pretvaranje dobijenih
vrednosti u odgovarajuće električne veličine može izvršiti prema sledećim formulama
SL. 2-12 SPREGA ANALOGNOG ULAZA SA JEDNIM KRAJEM
T. 2-10 OPSEG ULAZNIH SIGNALA I NJIHOVA KONVERZIJA U CELOBROJNE VREDNOSTI
Mali_kontroler/29
ULAZNI NAPON (V) ×=
32768
10
CELOBROJNA DECIMALNA VREDNOST
ULAZNA STRUJA (mA) ×=
16384
20
CELOBROJNA DECIMALNA VREDNOST
Neki analogni moduli pružaju mogućnost da se zahteva da sam modul interno
izvrši konverziju u električne ili inženjerske jedinice. Ukoliko modul nema takvu opciju,
konverzija može da se izvrši programski. Problemima transformacije signala biće kasnije,
kada se prouči programiranje PLC-a, posvećeno više pažnje.
Napomenimo još, da najveći broj analognih modula interno skenira ulazne kanale i
vrši A/D konverziju ulaznih signala daleko češće nego što to zahteva sken ciklus PLC-a.
Sve konvertovane vrednosti nalaze se u skupu internih registara PLC-a i bivaju
zamenjene sa novim vrednostima posle sledeće konverzije. Sadržaj tih registara, se
međutim, prebacuje u odgovarajuće područje datoteke ulaza samo u toku ulaznog sken
ciklusa. Ukoliko je korisniku, iz nekog razloga, važno da raspolaže i sa trenutnom
vrednošću ulaza na nekom kanalu, on to može da ostvari posebnom programskom
naredbom koja će uzeti traženu vrednost iz registra i smestiti je na odgovarajuće mesto u
datoteci.
2.4.2. ANALOGNI IZLAZNI KANAL
Za razliku od analognih ulaza, svakom analognom izlaznom kanalu pridružen je
poseban D/A konvertor. Pomoću njega se celobrojna vrednost koja se nalazi na
odgovarajućem mestu u datoteci izlaza pretvara u strujni ili naponski signal. U principu,
moduli se razlikuju po rezoluciji, ali se najčešće sreću konvertori čija je rezolucija 12 do 14
bitova.
Kod posmatrane klase kontrolera koriste se 14-bitni D/A konvertori. Otuda se
svakom izlaznom kanalu pridružuje po jedna memorijska reč. To nadalje znači da se svaki
izlazni kanal adresira pomoću adrese oblika O:e.w. Pri tome se za smeštanje podatka
koristi 14 levih bitova, tako da dva poslednja desna bita nisu u upotrebi. To znači da se po
četiri celobrojna podatka koja se međusobno razlikuju samo u vrednosti dva poslednja
desna bita (koja odgovaraju stepenima 20
i 21
) konvertuju u isti analogni signal kao što je
to ilustrovano na Sl. 2-13. To znači da je najmanje značajan bit (LSB) zapravo bit uz 22
.
Otuda se rezolucija konvertora, odnosno najmanji kvant rezultujućeg analognog signala
određuje prema sledećoj relaciji
X X X X X X X X X X X X X X 0 0
20
21
22
23
24
25
26
27
28
29
210
211
212
213
214
215
X X X X X X X X X X X X X X 0 1
X X X X X X X X X X X X X X 1 0
X X X X X X X X X X X X X X 1 1
Celobrojni podatak koji se konvertuje
Najmanja celobrojna vrednost različita od nule: 22
= 4 (ili 5, 6, 7)
Najveća celobrojna pozitivna vrednost: 215
- 22
= 32764 (ili 32765, 32766, 32767)
SL. 2-13 RELEVANTNI BITOVI KOD 14-TO BITNE A/D KONVERZIJE
Mali_kontroleri/30
opseg analognog izlaza
r 4
opseg celobrojnih vrednosti
= ×
Kao i analogni ulazi, i analogni izlazi se prave za standardizovane naponske i
strujne signale. Pri tome, za razliku od ulaznih modula, ovde je svaki kanal unapred
formiran za prenošenje ili naponskih ili strujnih signala. Tipičan skup signala i način
njihovog pretvaranja iz celobrojnih vrednosti u električne signale dat je u tabeli T. 2-11.
U skladu sa podacima iz tablice, vidi se da se konverzija vrednosti može izvršiti
prema sledećim relacijama
CELOBROJNA DECIMALNA VREDNOST ×=
10
32768
IZLAZNI NAPON (V)
CELOBROJNA DECIMALNA VREDNOST ×=
21
32768
IZLAZNA STRUJA (mA)
Pri tome je potrebno zapaziti da će se isti rezultat dobiti i ako se u gornjim relacijama
koristi konstanta 32764 umesto 32768. Naime, razlika u rezultatu ogledaće se samo u
poslednja dva bita koja se, kao što je već rečeno, ne koriste pri D/A konverziji.
CELOBROJNA DECIMALNA
REPEREZENTACIJA
(DATOTEKA IZLAZA)
OPSEG
NAPONA/STRUJE
REZOLUCIJA
-32768 do +32764 -10V dc do +10V dc
1.2207mV
0 do 32764 0 do 10V dc
0 do 16384 0 do 5V dc
3277 do 16384 1 do 5V dc
0 do 32764 0 do 21mA
2.56348µA0 do 31208 0 do 20mA
6242 do 31208 4 do 20mA
T. 2-11 OPSEG IZLAZNIH SIGNALA I KONVERZIJA CELOBROJNIH VREDNOSTI U ELEKTRIČNE VELIČINE
2.5. FORMIRANJE PROJEKTA
SL. 2-14 POKRETANJE PROJEKTA I IZBOR PROCESORA
Mali_kontroler/31
Formiranje projekta započinje uvek specifikacijom samog kontrolera na kome će
se data aplikacija realizovati. To znači da korisnik mora da pruži informaciju o vrsti i tipu
procesorskog modula koji će se koristiti, o ulazno izlaznim modulima koji će se postaviti u
šasiji i o tipu računarske mreže u koju će taj kontroler biti vezan. Najveći broj proizvođača
PLC-ova razvio je i odgovarajući grafički korisnički interfejs koji omogućava korisniku da
na veoma jednostavan način izvrši ove operacije. U tom slučaju specifikacija se odvija
kroz sistem "prozora" okviru kojih se korisniku nude sve moguće opcije među kojima on
odabira onu koja odgovara datoj konfiguraciji.
Za kontrolere tipa SLC500 i MicroLogix na raspolaganju je softverski alat
RSLogix500. Pokretanjem ovog alata korisniku se pruža mogućnost da kreira novi
projekat ili ažurira već postojeći. Ukoliko se otvara novi projekat onda je kao prvo
neophodno da se specificira procesor koji će biti korišćen u kontroleru. Ova specifikacija
se obavlja izborom željenog procesora sa liste raspoloživi procesora. Na Sl. 2-14 se vidi
izbor procesora SLC 5/03 sa 16K memorije.
SL. 2-15 IZBOR ŠASIJE I U/I MODULA
Čim se odabere procesor automatski se otvara prozor koji omogućava dalju
specifikaciju kontrolera i započinjanje pisanja programa. Samo se po sebi razume da je
pre formiranja programa neophodno da se definišu ulazni i izlazni moduli čije podatke će
program da koristi. Otuda je sledeći korak selekcija opcije IO Configuration, čime se
korisniku pruža mogućnost da odabere tip šasije koji želi dakoristi, a zatim da redom
odabira ulazno/izlazne module koje će postaviti u slotove 1, 2, itd (Sl. 2-15). Potrebno je
Izbor šasije
Izbor U/I modula u
slotu 1
Mali_kontroleri/32
zapaziti da je u slotu 0 već smešten odabrani procesor.
Na Sl. 2-16 prikazana je odabrana konfiguracija kontrolera. Budući da je odabrana
šasija koja ima 4 slota, pored procesora definisana su još 3 U/I modula. koji izgled prozora
pri definiciji konfiguracije PLC-a iz familije Allen Bradley SLC 500 Modular Controllers. Sa
slike se vidi da se u slotu 0 nalazi procesorski modul tipa 5/03, koji u šasiji ima prostor za
još tri modula.
Kao što se vidi sa Sl. 2-15 u slotu 1 nalazi se kombinovani digitalni modul sa 6
ulaza i 6 izlaza. Ovaj modul imaće adrese I:1.0/b i O:1.0/b gde je b redni broj bita koji
može imati vrednost od 0 do 5. Pri tome, ulazni signali moraju biti jednosmerni u opsegu
do 24 V, dok su izlazni signali prilagođeni standardima za upravljanje relejima.
U slotu 2 smešten je modul sa 2 analogna ulazna kanala i 2 analogna izlazna
kanala. Ulazni kanali mogu da se koriste za ulaz strujnih signala (-20mA do +20 mA) ili za
ulaz naponskih signala (–10V do +10V), što se podešava postavljanjem internih
prekidača. Adrese ova dva ulazna kanala su I:2.0 i I:2.1. Oba izlazna kanala daju
jednosmerne naponske signale u opsegu od –10V do +10V, dok su adrese ova dva izlaza
O:2.0 i O:2.1.
U slotu 3 nalazi se digitalni ulazni modul sa osam ulaza (I:3.0/b , b = 0,1,.. ,7). Ovaj
modul prima digitalne signale koji su naizmenični u opsegu do 200/240 V.
SL. 2-16 PRIMER KONFIGURISANJA PLC-A
Tek kada se definiše struktura PLC-a može se početi sa formiranjem programa.
Kao što je već rečeno, svaki proizvođač PLC-a razvija i posebni softverski alat koji
omogućava da se na izuzetno jednostavan način definiše struktura PLC-a i formira
odgovarajući program. Ovaj alat, koji kod najvećeg broja proizvođača korristi grafički
interfejs (GUI), omogućava da se PLC emulira na standardnom PC računaru. To zapravo
znači da se, sa gledišta korsinika, PC računar na kome je softverski alat instaliran ponaša
kao PLC. Korisnik, u fazi definisanja aplikacije, razvijanja i testiranja programa, ima
mogućnost da koristi sve opcije i pogodnosti PC računara. Kada je program razvijen on
se, posebnom tehnikom, prebaci na PLC (down load programa). Ukoliko PLC ostane i
dalje u vezi sa PC računarom, onda se isti softverski alat može koristiti da se pomoću PC-
a prati izvršavanje formiranog algoritma i obavljaju eventualne korekcije.
Leder_uvod/33
3. LEDER PROGRAMIRANJE
3.1. UVOD U LEDER PROGRAMIRANJE
Kao što je već rečeno jedna programska linija leder jezika sastoji se iz niza
grafičkih simbola (programskih naredbi) koji predstavljaju različite logičke elemente i
druge komponente kao što su časovnici i brojači, koji su poređani duž horizontalne linije –
rang (rung) – koja je na oba kraja
spojena sa dvema vertikalnim
linijama. Prema tome, leder
dijagram ima izgled lestvica, odakle
potiče i njegov naziv (ladder –
lestvice).
Svaki rang leder
dijagrama sastoji se iz dva dela. Na
levoj strani ranga nalazi se uslov
izražen u formi kontaktne (prekidačke)
logike, dok se na desnoj strani ranga nalazi akcija koja treba da se izvrši ukoliko je uslov
ispunjen (true) (Sl. 3-1).
U literaturi je uobičajeno da se i simboli koji označavaju uslov i simboli koji
označavaju akciju označavaju kao naredbe. Otuda je neophodno da se istakne suštinska
razlika između naredbi uslova i naredbi akcije. Naime, izvršavanje naredbi uslova obavlja
se tako što se u zavisnosti od vrednosti operanda, prema pridruženoj tablici istinitosti,
naredbi dodeljuje vrednost (0 ili 1). Dakle, naredbe uslova se izvršavaju u svakom sken
ciklusa i rezultat njihovog izvođenja je vrednost naredbe. Za razliku od toga naredbama
akcije se ili dodeljuje vrednost nekoj promenljivoj ili izvršava neka druga aktivnost. Ove
naredbe se izvršavaju samo ako je uslov koji im prethodi istinit (dodeljena mu je vrednost
1). Pri tome se samim naredbama akcije ne dodeljuje nikakva vrednost.
Leder program se izvršava u toku programskog dela sken ciklusa i to tako što se
obrađuje rang po rang u nizu kako su oni definisani. U svakom rangu ispituje se istinitost
uslova i ukoliko je uslov istinit izvršavaju se odgovarajuće naredbe u desnom delu ranga.
To znači da promenljive na desnom delu ranga mogu menjati svoju vrednost samo
jedanput u toku sken ciklusa, i to upravo onda kada se odgovarajući rang ispituje.
Potrebno je zapaziti, međutim, da ukoliko se promenljiva na desnoj strani ranga odnosi na
fizički izlaz, vrednost izlaza neće biti promenjena u istom trenutku vremena. Naime, za
vreme programskog skena menjaju se samo vrednosti promenljivih smeštenih u datoteku
izlaza (output image file). Tek kasnije, za vreme izlaznog dela sken ciklusa, sve
promenljive iz datoteke izlaza biće prenete na odgovarajuće izlazne linije. Ista stvar važi i
za ulazne promenljive. Drugim rečima, za vreme programskog skena ispitivanje istinitosti
uslova odnosi se na vrednosti promenljivih u datoteci ulaza (input image file), koje su tu
upisane za vreme ulaznog dela sken ciklusa koji je prethodio programskom skenu, a ne
na trenutne vrednosti promenljivih na ulaznim linijama. Naravno, svi uslovi i naredbe koji
su vezani za interne promenljive izvršavaju se u trenutku skeniranja pojedinog ranga.
3.2. BIT NAREDBE
Bit naredbe su, kao što samo ime kaže naredbe čiji su operandi bitovi. Sa gledišta
lokacije operanada, to znači da se oni najčešće nalaze u datoteci 3 (bit file), digitalnim
ulaznim ili izlaznim datotekama (input image file 1 ili output image file 0) ili u korisničkim
datotekama bit tipa. Pored toga, adresirani operand može da se nalazi i u bilo kojoj drugoj
datoteci u okviru koje je moguće adresirati pojedini bit. Gledano potpuno opšte za vreme
programskog skena u okviru bit naredbi ispituje se stanje pojedinog bita, ili se njegova
vrednost postavlja na 1 (set) ili na 0 (reset).
SL. 3-1 LEDER RANG
Leder_uvod/34
3.2.1. BIT NAREDBE ZA DEFINISANJE USLOVA
Ove naredbe se postavljaju na levoj strani ranga i definišu uslov koji se odnosi na
stanje bita čija je adresa definisana u naredbi. Kao rezultat izvođenja naredba dobija
istinosnu vrednost true (istinit) ili false (neistinit) .
• XIC - Examine if closed (ispitivanje da li je kontakt zatvoren)
• XIO - Examine if open (ispitivanje da li je kontakt otvoren)
Nazivi ove dve naredbe potiču od ispitivanja binarnnih signala koji dolaze sa
prekidačkih kola. U tom smislu XIC naredba se odnosi na normalno otvoren prekidač (ima
vrednost 1 kada je prekidač pritisnut), dok se XIO naredba odnosi na normalno zatvoren
prekidač (ima vrednost 1 kada prekidač niej pritisnut – "ne a").
3.2.2. BIT NAREDBE ZA POSTAVLJANJE VREDNOSTI IZLAZA
Ovim naredbama se bitu čija je adresa navedena u naredbi dodeljuje vrednost 1 ili
0. Podsetimo se da se ove nardebe nalaze na desnoj strani ranga, što znači da će se one
izvršiti samo ako je iskaz (uslov) na levoj strani ranga istinit.
• OTE - Output energize (pobuđivanje izlaza)
Potrebno je da se zapazi da se ovom naredbom vrednost bita čija je adresa “a”
može promeniti samo jedanput za vreme sken ciklusa. Ova vrednost ostaće neizmenjena
sve do sledećeg sken ciklusa, kada će se pri skeniranju odgovarajućeg ranga ponovo
ispitati uslov i izvesti odgovarajuća akcija.
• OTL - Output latch (pamćenje izlaza)
OTL naredbom se adresovani bit može isključivo postaviti na 1. Naime za razliku
od OTE naredbe kojom se vrednost bita može postavljati na 0 ili 1 svaki put kad se rang
Leder_uvod/35
skenira, kod OTL naredbe vrednost bita se postavlja (lečuje) na 1 u prvom skenu u kome
je uslov istinit. Nakon toga ova naredba postaje neosetljiva na istinosnu vrednost uslova.
To znači da će vrednost bita ostati neizmenjena bez obzira na to kako se menja vrednost
uslova.
• OTU - Output unlatch (resetovanje izlaza)
OTU naredbom se adresovani bit može isključivo postaviti na 0. Pri tome, vrednost
bita se postavlja (lečuje) na 0 u prvom skenu u kome je uslov ispunjen. Nakon toga ova
naredba postaje neosetljiva na vrednost uslova.
Potrebno je da se istakne da se OTL i OUT naredba koriste uvek u paru, pri čemu
se u obe naredbe adresira isti bit.
3.2.3. BIT TRIGER NAREDBA
• OSR - One-shot rising (uzlazna ivica)
OSR naredba omogućava da se obezbedi izvođenje neke akcije samo jedanput.
Potrebno je da se istakne da je ovo specifična naredba koja istovremeno pripada i
kategoriji uslova i kategoriji akcije. Naime ova naredba se postavlja u rangu između dela
koji predstavlja uslov i dela koji predstavlja akciju. Kada se u toku sken ciklusa detektuje
da je uslov promenio svoju vrednost sa neistinit na istinit (uzlazna ivica) onda OSR
naredba takođe dobija vrednost istinit (što ovu naredbu svrstava u kategoriju naredbi
uslova). Istovremeno se i bitu čija je adresa pridružena toj naredbi dodeljuje vrednost 1
(po čemu se ova naredba svrstava i u kategoriju akcija). Obe ove vrednosti ostaju
nepromenjene do sledećeg sken ciklusa, kada naredba dobija vrednost neistinit, dok se
adresovani bit postavlja na vrednost 0 ili 1 u zavisnosti od vrednosti uslova. U narednim
sken ciklusima vrednost naredbe ostaje nepromenjena sve dok se u uslovu (koji
predstavlja ulaz u OSR) ponovo ne detektuje prelaz “neistinit/istinit”.
Potrebno je da se istakne da bit čija je adresa pridružena ovoj naredbi ne
predstavlja vrednost naredbe. Naime, ovaj bit se koristi kao interna promenljiva i služi za
pamćenje vrednosti uslova koji prethodi OSR naredbi. Vrednost ovog bita je 1 ako je uslov
istinit, odnosno 0 ako je uslov neistinit. U tom smislu, sa aspekta dodeljivanja vrednosti
bitu čija se adresa navodi u OSR naredbi, ova naredba je identična sa OTE naredbom.
Navedeni bit se može nalaziti u bilo kojoj bit-adresibilnoj datoteci izuzev datoteke ulaza i
izlaza.
Vrednost koju dobija OSR naredba koristi se kao uslov za izvođenje naredbe
akcije koja se nalazi na desnoj strani ranga (neposredno iza OSR naredbe). Shodno
tome, naredba akcije biće izvršavana po jedanput pri svakom prelazu uslova
“neistinit/istinit”.
Iza OSR naredbe se može nalaziti samo jedna naredba akcije. (Kod kontrolera
tipa SLC 500 i SLC 5/01 OSR naredba se ne sme nalaziti u paralelenim granama na
Leder_uvod/36
desnoj strani ranga).
Kod kontrolera tipa MicroLogix postoje i ONS i OSF naredbe. ONS naredba ima
isti efekat kao i OSR, što znači da je aktivna pri uzlaznoj ivici signala (promena sa neistinit
na istinit), dok je OSF naredba aktivna pri silaznoj ivici (promena sa istinit na neistinit),
3.2.4. PROGRAMSKI SKEN I VREMENSKI DIJAGRAM
U toku programskog skena procesor izvršava pojedinačne naredbe, obrađujući
rang po rang od početka pa do kraja programa. U okviru obrade jednog ranga, procesor
ispituje stanja bitova u datotekama podataka, određuje vrednost pojedinačnih naredbi
uslova, izvršava logičke I i ILI operacije nad tim vrednostima, u skladu sa načinom na koji
je formiran desni deo ranga, i kao rezultat tih operacija određuje istinosnu vrednost
uslova. Ukoliko je ova vrednost istinit, procesor će izvršiti naredbe koje se nalaze na levoj
strani ranga i koje predstavljaju akciju.
U cilju ilustracije izvršavanja leder programa u PLC-u posmatraćemo jedan rang
(Sl. 3-2) nekog programa. U okviru ovog ranga
ispituje se stanje jedne ulazne linije koja je
vezana za nulti pin ulaznog dela kombinovanog
U/I modula, smeštenog u slotu 1 PLC-a. Na
osnovu stanja ulazne linije generiše se signal na
izlaznoj liniji koja je vezana za nulti pin izlaznog
dela istog U/I modula. Na slici Sl. 3-3 prikazan
je vremenski dijagram promene signala na
ulaznoj liniji, vrednosti bita u input image file-u
koji je pridružen toj liniji, vrednosti bita u output image file-u i signala na izlaznoj liniji koji je
sa tim bitom povezan. Pretpostavljeno je da ceo program ima više ulaznih signala i više
izlaznih signala čije očitavanje, odnosno generisanje zahteva određeni period vremena za
ulazni i izlazni sken interval. Isto tako, pretpostavljeno je i da se program sastoji od više
rangova, čija obrada zahteva neki period vremena (programski sken interval).
Potrebno je da se zapazi da se stanje signala na ulaznoj liniji može promeniti u
sken
programa
sken
programa
sken
programa
sken
programa
sken
izlaza
sken
ulaza
sken
izlaza
sken
ulaza
sken
izlaza
sken
ulaza
sken
izlaza
vreme
10 42 3
10 42 3
10 42 3
10 42 3
ulazna
linija
vrednost
bita
I:1/0
vrednost bita
O:1/0
Izlazna linija
43210
sken ciklus 1 sken ciklus2 sken ciklus3 sken ciklus 4
sken
ulaza
SL. 3-2 POSTAVLJANJE IZLAZA U ZAVISNOSTI
OD VREDNOSTI ULAZA
SL. 3-3 VREMENSKI DIJAGRAM PROMENE U/I LINIJA I ODGOVARAJUĆEG RANGA
Leder_uvod/37
bilo kom trenutku. Međutim, vrednost bita pridružena toj liniji biće promenjena tek u toku
prvog ulaznog sken ciklusa koji nastupa posle promene stanja ulazne linije. Za vreme
programskog skena vrednost XIC naredbe se određuje na osnovu stanja odgovarajućeg
bita, a ne njemu odgovarajućeg ulaznog signala. Otuda je u prvom sken ciklusu vrednost
ove naredbe 0 iako je ulazni signal već u stanju logičke jedinice. Međutim, budući da je on
promenio stanje tek posle prvog ulaznog skena, ta promena još uvek nije registrovana
postavljanjem njemu odgovarajućeg bita, koji je odgovaran za vrednost XIC naredbe. U
skladu sa tim, ne izvršava se OTE naredba, pa izlazni bit i njemu odgovarajuća izlazna
linija ostaju u stanju 0. Promena na ulazu dovodi do promene ulaznog bita tek u drugom
ulaznom sken ciklusu, tako da tek u drugom programskom ciklusu XIC naredba dobija
vrednost istinit. Kao rezultat ove vrednosti izvršava se OTE naredba i izlazni bit postavlja
na vrednost 1. U toku drugog izlaznog sken ciklusa ova vrednost prenosi se na izlaznu
liniju gde se generiše signal koji odgovara logičkoj jedinici.
Kašnjenje između trenutka u kome signal na ulaznoj liniji menja vrednost i trenutka
u kome se ta promena registruje postavljanjem odgovarajućeg bita, kao i kašnjenje
između trenutka u kome izlazni bit dobija neku vrednost i trenutka kada se ta vrednost
pojavi na izlaznoj liniji može se izbeći posebnim neposrednim naredbama, o kojima će
kasnije biti više reči.
3.2.5. PRIMERI
PR. 3-1 UPRAVLJANJE PALJENJEM SIJALICE
ZADATAK
Posmatra se električno kolo (Sl. 3-4) u kome
sijalica S svetli kada je zatvoren prekidač P1 i jedan od
prekidača P2 ili P3. Potrebno je da se ovo električno kolo
zameni sa PLC-om.
PROJEKTOVANJE SISTEMA
Da bi se postavljeni
zadatak rešio neophodno je kao
prvo da se ustanovi sa kojom
opremom se raspolaže i da se
odluči kako će se ona vezati za
PLC. Pretpostavimo da imamo tri
tastera od kojih su dva normalno
otvorena i jedan normalno
zatvoren i jedno električno kolo u
kome se nalazi sijalica koje se
zatvara pomoću releja.
Usvojićemo da normalno otvoreni
tasteri obavljaju funkciju
prekidača P1 i P3, dok će
normalno zatvoren taster obavljati
funkciju prekidača P2.
U skladu sa odabranim senzorima i izvršnim organom neophodno je da raspolažemo sa tri
digitalna ulaza i jednim digitalnim izlazom. Budući da imamo PLC koji u prvom slotu ima digitalni
U/I modul, možemo izvršiti vezivanje opreme. Po prirodi stvari vezaćemo tri tastera za ulazne
pinove 0, 1 i 2, dok će rele na izlazu biti vezano za izlazni pin 0. Shodno tome, adrese prekidača
P1, P2 i P3 su respektivno I:1/0, I:1/1 i I:1/2, dok je adresa sijalice O:1/0 (Sl. 3-5).
PROGRAMIRANJE
Kada je formirana šema vezivanja opreme za PLC, onda se pristupa pisanju leder
programa.
U cilju formiranja levog dela ranga treba uočiti da je uslov za paljenje sijalice da se
SL. 3-4 ELEKTRIČNO KOLO
SL. 3-5 SPREZANJE SENZORA I IZVRŠNOG ORGANA SA PLCOM
Leder_uvod/38
istovremeno pritisne taster P1 i jedan od tastera P2 ili P3. Budući da su tasteri P1 i P3 normalno
otvoreni, pritisak na njih dovodi do zatvaranja odgovarajućih prekidačkih kola, tako da se može
detektovati pomoću XIC naredbe, koja će dobiti vrednost istinit kada su vrednosti odgovarajućih
bitova u datoteci ulaza (I:1/0 и I:1/2) postavljene na 1. Pritisak na taster P2 koji je normalno
zatvoren, dovodi do otvaranja njegovog prekidačkog kola, što znači da se može detektovati
pomoću XIO naredbe, koja će dobiti vrednost istinit kada je vrednost odgovarajućeg bita u datoteci
ulaza (I:1/1) postavljena na 0. Konačno, kako se nad tasterima 2 i 3 zahteva logička ILI operacija,
to odgovarajuće naredbe moraju biti vezane paralelno. Ispunjenost uslova treba da obezbedi da se
na izlaznom pinu generiše naponski signal koji će da prouzrokuje paljenje sijalice. Ovaj zahtev se
može ostvariti OTE naredbom. U skladu sa time odgovarajući rang leder programa ima izgled kao
na Sl. 3-6.
Svakom bitu koji se koristi u leder programu može se pridružiti simboličko ime. U principu
nema nikakvih posebnih pravila u pogledu davanja imena. Ipak praksa je pokazala da je pogodno
da se ime formira tako da što vernije opisuje fizičko značenje signala na koji se odnosi. Pored toga,
u cilju lakše provere ispravnosti programa, pogodno je da se ime formira tako da odgovara stanju
pri kome bit koji se ispituje ima vrednost 1. Poštujući taj princip, u ovom primeru je bitu I:1/0 dato
ime p1_on (bit I:1/0 ima vrednost 1 kao je P1 pritisnut (on), dok je bitu I:1/1 dato ime p2_off (bit
I:1/1 ima vrednost 1 kad je P2 nepritisnut(off). U skladu sa time prva XIC naredba koja ispituje
vrednost bita na adresi I:1/0 dobiće vrednost istinit ako bit ima vrednost 1 što znači da taster P1
jeste pritisnut. Isto tako XIO naredba koja ispituje vrednost bita na adresi I:1/1 dobiće vrednost
istinit ukoliko bit nema vrednost 1, što znači da taster P2 nije nepritisnut.
SAMODRŽANJE
Opisani sistem će ispravno raditi samo dotle dok se odgovarajući tasteri drže pritisnuti.
Naime, čim se taster otpusti on se vraća u normalni položaj i u sledećem sken ciklusu, uslov više
neće biti ispunjen, pa će se sijalica ugasiti. Prirodno je međutim da se zahtev postavi tako da
sijalica nastavi da svetli i posle otpuštanja tastera.
Postavljeni zadatak može se rešiti tako što će se na neki način upamtiti da je uslov za
paljenje sijalice u nekom trenutku bio ispunjen. U tu svrhu može se na izlaznom delu ranga umesto
OTE naredbe postaviti OTL naredba koja će obezbediti trajno postavljanje (lečovanje) izlaza (Sl.
SL. 3-6 LEDER PROGRAM KOJI REALIZUJE ELEKTRIČNO KOLO
SL. 3-7 LEDER PROGRAM KOJI TRAJNO POSTAVLJA IZLAZNI BIT ("PAMTI" AKO JE USLOV BIO ISPUNJEN)
Leder_uvod/39
3-7).
Umesto korišćenjem naredbe OTL isti efekat se može postići i postupkom takozvanog
samodržanja kojim se zadržava vrednost izlazne promenljive i posle prestanka uslova za njeno
aktiviranje. Naime, ako se u delu ranga koji predstavlja uslov doda još jedna paralelna grana sa
XIC naredbom u kojoj se ispituje upravo bit koji se postavlja kao izlaz tog ranga (Sl. 3-8) onda će,
čim se pritiskanjem tastera uslov prvi put ispuni, odgovarajući bit biti postavljen na 1, što znači da
će u sledećim sken ciklusima naredba u paralelnoj grani stalno imati vrednost istinit, pa se vrednost
izlaznog bita neće menjati sa promenom stanja tastera.
ZAUSTAVLJANJE
Potrebno je da se istakne da su poslednja dva primera formirana tako da će sijalica kad se
jedanput upali nastaviti da svetli neograničeno dugo. Da bi se omogućilo i gašenje sijalice
neophodno je da sistemu doda još jedan taster (Stop). Pritiskom na ovaj taster, jedanput upaljena
sijalica, bi bila isključena. Ako se pretpostavi da je ovaj taster normalno otvoren i da je vezan na pin
3 istog ulaznog modula, onda se postavljeni zadatak može realizovati na način koji je prikazan na
slikama Sl. 3-9 i Sl. 3-10. Ovde je, naime na red sa delom ranga kojim se ostvaruje paljenje sijalice,
vezan uslov kojim se proverava da li Stop taster nije pritisnu. Sve dok Stop taster nije pritisnut,
vrednost tog dela uslova je istinita, dakle on ne utiče na ponašanje sijalice. Kad se Stop taster
pritisne, vrednost tog dela uslova postaje neistinita, a budući da je to redni (serijski) uslov, i
vrednost celog ranga postaje neistinita. U tom slučaju u programu sa trajnim postavljanjem
izlaznog bita uslov u drugom rangu postaje istinit i aktivira naredba OTU (Sl. 3-9). Kod rešenja sa
samodržanjem, sama činjenica da u rangu jedan od redno vezanih uslova postaje neistinit dovodi
do toga da je uslov neistinit pa se izlazni bit OTE naredbom postavlja na 0 (Sl. 3-10).
SL. 3-8 – LEDER PROGRAM SA POSTUPKOM SAMODRŽANJA
SL. 3-9 – LEDER PROGRAM SA TRAJNIM PAMĆENJEM USLOVA DO PRITISKA STOP TASTERA
Leder_uvod/40
Zapazimo da bi ceo problem oko paljenja i gašenja sijalice bio bi rešen rangom koji je
prikazan na Sl. 3-6, da su umesto tastera korišćeni dvopoložajni prekidači.
PR. 3-2 PUŠTANJE SISTEMA U RAD
ZADATAK
Posmatra se sistem koji počinje da radi kada se pritisne START taster. Sistem nastavlja sa
radom sve dok se ne pritisne stop taster. Istovremeno se zahteva da se prilikom započinjanja rada
sistema generiše impulsni signal koji realizuje brzo “zamrzavanje” nekog LED displeja. Potrebno je
da se formira leder program koji će podržavati rad opisanog sistema uz pretpostavku da se on
pušta u rad pomoću jednog “on/off” motora.
REŠENJE
Neka su kola koja sadrže START i STOP taster kao i kolo za pobudu motora vezani za U/I
modul koji je smešten u slotu 1 PLC-a i to na pinove kojima respektivno odgovaraju adrese I:1/0,
I:1/1 i O:1/0. Neka je nadalje signal koji upravlja zamrzavanjem displeja vezan za izlazni pin čija je
adresa O:1/1. Odgovarajući leder program dat je na Sl. 3-11.
U prvom rangu uslov je ispunjen ako je START taster pritisnut i STOP taster nije pritisnut.
U tom slučaju generisaće se signal za start motora i on će biti zalečovan, tako da se njegova
vrednost neće menjati ukoliko se zbog otpuštanja START tastera promeni vrednost uslova.
Istovremeno će, prilikom pritiska START tastera, OSR naredba detektovati promenu neistinit/istinit
što će dovesti do toga da ona u tom sken ciklusu dobije vrednost istinit tako da će se izvršiti OTE
naredba kojom se na izlazu O:1/1 generiše potreban impulsni signal. Sve dok se ne pritisne STOP
taster, vrednost uslova u drugom rangu biće neistinita, tako da se naredba unletch neće izvršavati.
Kada se pritisne STOP taster, uslov u prvom rangu postaje neistinit, što znači da se letch naredba
ne izvršava. Međutim, vrednost uslova u drugom rangu postaje istinita, pa se izvršava unletch
naredba, i time signal za start motora dobija vrednost “logičke” nule, pa se motor zaustavlja.
SL. 3-10 – LEDER PROGRAM SA SAMODRŽANJEM DO PRITISKA STOP TASTERA
SL. 3-11 – START/STOP LEDER PROGRAM
Leder_uvod/41
PR. 3-3 REALIZACIJA SEKVENCE
SL. 3-12 REALIZACIJA SEKVENCE POMERANJA KLIPOVA
Leder_uvod/42
ZADATAK
Dat je sistem koji sadrži jedan jednosmerni solenoid (A) i dva dvosmerna (B i C). Potrebno
je realizovati sledeću sekvencu pomeranja klipova: A+ B+ C+ B- A- C- . Pri tome se pretpostavlja
da su u početnom trenutku svi klipovi uvučeni. Granični prekidači koji indiciraju uvučenost klipa A i
B su normalno zatvoreni, dok su svi ostali granični prekidači normalno otvoreni. Sistem se pušta u
rad pomoću pritiska na taster i prestaje sa radom kada se jedanput izvrši zahtevana sekvenca.
REŠENJE
Jedno moguće rešenje postavljenog zadatka dato je na Sl. 3-12 Realizacija sekvence
pomeranja klipova. Pri tome je pretpostavljeno da su granični prekidači vezani za PLC preko
ulaznog modula koji se nalazi u slotu 3 (adrese I:3/b), dok se pobude solenoida dobijaju preko
izlaznih linija modula u slotu 1 (adrese O:1/b). Start taster je vezan preko nultog pina modula u
slotu 1 (I:1/0).
Interne promenljive kreni (B3:0/0) i kraj (B3:0/2) koriste za otpočinjanje i završetak rada.
Interna promenljiva vrati A (B3:0/1) služi za deaktiviranje pobude klipa A, posle čega ga opruga
vraća u početni položaj.
Potrebno je da se obrati pažnja na činjenicu da se, da ne bi došlo do slučajnog pomeranja
klipova (izazvanog recimo nekim opterećenjem), oni u izvučenom položaju drže pod naponom, sve
dok ne dođe trenutak za njihovo uvlačenje. Budući da se stanje graničnih prekidača menja čim se
klip pomeri, da bi se obezbedio kontinuitet napajanja koristi se postupak samodržanja (rang 3 i 4).
Zapazimo, takođe, da se stanje prekidača koji indiciraju uvučen položaj klipa ne može
ispitivati samo po sebi. Naime ovi prekidači su pritisnuti u početnom stanju, pa je neophodno
utvrditi da je došlo do pokreta pre nego što su oni ponovo pritisnuti (rang 5, 6 i7).
3.3. NAREDBE ZA MERENJE VREMENA I PREBROJAVANJE DOGAĐAJA
3.3.1. ČASOVNIK I BROJAČ
Prilikom upravljanja ili nadzora procesa često je potrebno da se neka aktivnost
otpočne ili zaustavi posle određenog vremenskog perioda, ili da se ponovi određeni broj
puta. U tom smislu neophodno je da kontroler koji će se koristiti za upravljanje procesom
pruži mogućnost za merenje vremena i prebrojavanje događaja. Prebrojavanje događaja
obavlja brojač (counter), koji nakon registrovanja unapred zadanog broja događaja
generiše odgovarajući signal. Merenje vremena ostvaruje se pomoću časovnika (timer). U
suštini časovnik izražava vreme kao multipl određenog osnovnog intervala (vremenska
baza). To zapravo znači da časovnik radi kao brojač protoka osnovnih intervala i da nakon
isteka određenog, unapred zadanog intervala vremena, generiše odgovarajući signal.
Gledano potpuno opšte merenje protoka vremena i prebrojavanje događaja u
okviru kontrolera može se realizovati hardverski pomoću odgovarajućih računarskih
komponenti (modula) ili softverski (programski). Hardverska realizacija podrazumeva da
kontroler ima posebni modul koji ostvaruje funkciju časovnika i brojača. Korisnik
odgovarajućim naredbama definiše parametre modula i u toku izvršavanja programa
kontroliše njegov rad. U slučaju softverske realizacije, ovu funkciju ostvaruje posebni
programski modul, koji korisnik, po potrebi, uključuje u svoj program i odgovarajućim
naredbama upravlja njegovim radom. Sa aspekta načina korišćenja, gotovo da i nema
razlike između ove dve realizacije. Razlika se zapravo ogleda samo u funkcionalnom
smislu. U principu, ukoliko su časovnik i brojač hardverski realizovani oni svoju funkciju
obavljaju autonomno, što znači da ne koriste procesor za svoj rad. Nasuprot tome,
softverski realizovani časovnik i brojač, kao i svi drugi programski moduli, za izvođenje
svojih funkcija zahtevaju izvesno procesorsko vreme. Budući da je procesor opterećen
čitavim nizom poslova, to znači da postoji samo određeno vreme koje on može posvetiti
radu časovnika i brojača. Otuda hardverska realizacija, bar u principu, omogućava rad sa
manjim intervalima vremena, odnosno bržim ponavljanjem događaja od softverske. Sa
druge strane međutim, softverska realizacija omogućava da se definiše i koristi praktično
neograničen broj časovnika i brojača, jer se kao jedino ograničenje javlja veličina
raspoložive memorije.
Leder_uvod/43
U seriji kontrolera SLC 5 časovnici i brojači su realizovani softverski, i koriste se
kao naredbe akcije. Kao što je već istaknuto ne postoji nikakvo posebno ograničenje u
pogledu njihovog broja. Potrebno je da se naglasi da su za neke od SLC 5 kontrolera, kao
i za MicroLogix kontrolere razvijeni i posebni hardverski brojači.
Pri korišćenju časovnika i brojača neophodno je da se definišu sledeći parametri.
• Vremenska baza (time base) određuje dužinu osnovnog intervala vremena. Kod
fiksnog kontrolera SLC/500 i modularnog SLC 5/01, vremenska baza je definisana kao
0.01 sec. Kod kontrolera SLC 5/02, 5/03 i 5/04 bira se jedna od dve moguće vrednosti:
0.01 sec ili 1.0 sec.
• Zadana vrednost (preset value - PRE) je vrednost kojom se definiše željeni broj
osnovnog intervala vremena (čime se određuje ukupno vreme koje časovnik treba da
izmeri), odnosno ukupni broj događaja koje brojač treba da registruje pre nego što se
generiče signal koji označava da su časovnik ili brojač završili rad.
Zadana vrednost za časovnik može da se kreće u intervalu od 0 do +32767, dok se
zadana vrednost za brojač kreće u opsegu od -32768 do +32767.
• Akumulirana vrednost (accumulated value - ACC) predstavlja broj osnovnih
vremenskih intervala koje je časovnik izbrojao, odnosno broj događaja koje brojač
registrovao u nekom trenutku. Kada akumulirana vrednost postane veća ili jednaka od
zadane vrednosti časovnik, odnosno brojač, završavaju svoj rad.
Opseg dozvoljenih vrednosti za akumuliranu vrednosti isti je kao i za zadanu vrednost.
3.3.2. DATOTEKA PODATAKA O ČASOVNIKU (TIMER DATA FILE)
S obzirom da je
časovnik realizovan
softverski, parametri
koji definišu njegov rad
moraju biti smešteni u
memoriji kontrolera. Za
pamćenje podataka o
časovnicima koristi se
datoteka podataka broj
4 (timer file – T). U ovoj
datoteci može se
definisati najviše 256
različitih časovnika.
Ukoliko je potrebno da
se koristi veći broj
časovnika, korisnik
može definisati i
dodatne datoteke
(korisnički definisane datoteke) čiji su brojevi od 9 do 255.
Svakom časovniku pridružuju se po jedan element koji se sastoji se od tri 16-bitne
reči (Sl. 3-13). Potrebno je da se zapazi da redni broj elementa zapravo definiše jedan
određeni časovnik unutar jedne datoteke časovnika. Svaki od tri bita stanja, kao i zadana i
akumulirana vrednost mogu se posebno adresirati i to bilo na standardan način na koji se
formira adresa u bilo kojoj datoteci podataka, bilo preko odgovarajućih simbola. To
zapravo znači da su sledeće adrese međusobno ekvivalentne:
Tf:e.1 ili Tf:e.PRE
Tf:e.2 ili Tf:e.ACC
Tf:e.0/15 ili Tf:e/15 ili Tf:e/EN
Tf:e.0/14 ili Tf:e/14 ili Tf:e/TT
Tf:e.0/13 ili Tf:e/13 ili Tf:e/DN
SL. 3-13 ELEMENAT DATOTEKE ČASOVNIKA I ADRESIRANJE ČASOVNIKA
Leder_uvod/44
3.3.3. NAREDBE ZA RAD SA ČASOVNIKOM
Kao što je već rečeno naredbe časovnika su naredbe akcije, što znači da se
nalaze na desnoj strani ranga u leder programu. Postoje tri tipa naredbi kojima se
realizuju tri vrste časovnika, i jedna naredba kojom se stanje časovnika resetuje.
Potrebno je da se istakne da se sam časovnik i način njegovog rada definiše preko
naredbe koja se uvrštava u leder program. Drugim rečima, kad se u program stavi jedna
od moguće tri naredbe i u njoj naznači adresa časovnika u odgovarajućem formatu, onda
operativni sistem sam zauzme tri reči u datoteci koja je navedena u adresi.
• Timer on-delay (TON)
Kao što je već rečeno,
stavljanjem ove naredbe u leder
program automatski se definiše prva
vrsta časovnika i zauzimaju tri reči
koje čine elemenat broj e u datoteci
časovnika broj f. Prilikom formiranja
naredbe specificiraju se i vremenska baza (tx) i zadana vrednost (ns). Akumulirana
vrednost (na)se automatski postavlja na 0.
TON naredba započinje rad časovnika (prebrojavanje osnovnih vremenskih
intervala) za vreme onog programskog sken ciklusa u kome uslov u rangu u kome se
naredba nalazi prvi put postaje istinit (prelaz neistini/istinit – uzlazna ivica). U svakom
sledećem sken ciklusu, sve dok je uslov istinit časovnik vrši ažuriranje akumulirane
vrednosti (ACC) u skladu
sa proteklim vremenom
između dva ciklusa.
Kada akumulirana
vrednost dostigne
zadanu vrednost,
časovnik prekida svoj rad
i postavlja DN bit na 1.
Pri tome, ako u nekom
sken ciklusu uslov
postane neistinit,
časovnik prekida svoj rad
i akumulirana vrednost
se postavlja na 0, bez
obzira da li je časovnik
pre toga izmerio
zahtevano vreme ili ne.
Bitovi stanja
časovnika menjaju se u
toku programskog sken
ciklusa na sledeći način:
• DN - Timer done bit
se postavlja na 1 kada
je ACC ≥ PRE. On se
resetuje na 0 kad uslov u rangu postane neistinit.
• EN - Timer enable bit se postavlja na 1 kada je uslov u rangu istinit i resetuje na 0
kada uslov postane neistinit.
• TT - Timer timing bit se postavlja na 1 kada je uslov istinit i ako je ACC ≤ PRE. On se
resetuje na 0 kada uslov postane neistinit ili kada se DN bit postavi na 1, odnosno kada
se završi merenje vremena.
U vezi sa radom časovnika potrebno je da se zapazi nekoliko činjenica. Pre svega
SL. 3-14 VREMENSKI DIJAGRAM IZVRŠAVANJA TON NAREDBE
Leder_uvod/45
časovnik radi samo dok je uslov istinit (signal na ulazu u časovnik je u stanju “on”).
Istonosnu vrednost uslova pokazuje EN bit. Drugim rečima, ovaj bit ima vrednost 1 onda
kada je uslov istinit i to označava da je rad časovnika omogućen (enable). Kada je uslov
neistinit, EN bit ima vrednost 0, što znači da je rad časovnika onemogućen. Međutim,
činjenica da EN bit ima vrednost 1 ne mora da znači da časovnik zaista i radi, jer je on
mogao i da završi rad zbog isteka zadanog vremena, a da pri tome uslov i nadalje ostane
istinit. Rad časovnika indicira TT bit. Naime, taj bit je postavljen na 1 za svo vreme za koje
časovnik aktivno meri vreme (timer timing), i postavlja se na 0 kada časovnik ne radi.
Konačno, kada je vrednost DN bita 1, onda to znači da je časovnik završio (done) svoj
posao, tj. izmerio zadano vreme. Pri tome, DN bit ne govori o tome kada je časovnik
završio sa poslom, jer će on ostati na vrednosti 1 sve dok uslov ne postane neistinit.
Vremenski dijagram rada časovnika ilustrovan je na Sl. 3-14.
Stanje časovnika se može resetovati posebnom RES naredbom, o čemu će
kasnije biti više reči.
• Timer off-delay (TOF)
Ovom naredbom se definiše
druga vrsta časovnika i zauzimaju tri
reči koje čine elemenat broj e u
datoteci časovnika broj f. Prilikom
formiranja naredbe specificaraju se i
vremenska baza (tx) i zadana
vrednost (ns). Akumulirana vrednost (na)se automatski postavlja na 0.
TOF naredba započinje rad časovnika za vreme onog programskog sken ciklusa u
kome uslov u rangu u kome se naredba nalazi prvi put postaje neistinit (prelaz
istini/neistinit – silazna ivica). U svakom sledećem sken ciklusu, sve dok je uslov neistinit
časovnik vrši ažuriranje akumulirane vrednosti (ACC) u skladu sa proteklim vremenom
između dva ciklusa. Kada akumulirana vrednost dostigne zadanu vrednost, časovnik
prekida svoj rad. Pri tome, ako u nekom sken ciklusu uslov postane istinit, časovnik
prekida svoj rad i akumulirana vrednost se postavlja na 0, bez obzira da li je časovnik pre
toga izmerio zahtevano vreme ili ne.
Bitovi stanja
časovnika menjaju se u
toku programskog sken
ciklusa na sledeći
način:
• DN - Timer done bit
se postavlja na 1 kada
je uslov istinit. On se
resetuje na 0 kada je
uslov neistinit i pri tome
je ACC ≥ PRE.
• EN - Timer enable
bit se postavlja na 1
kada je uslov istinit, i
resetuje na 0 kada je
uslov neistinit.
• TT - Timer timing bit
se postavlja na 1 kada
je uslov neistinit i pri tome
je ACC ≤ PRE. One se
resetuje na nulu kada uslov postane istinit ili kada se DN bit resetuje.
U vezi sa radom časovnika potrebno je da se zapazi nekoliko činjenica. Pre svega
SL. 3-15 VREMENSKI DIJAGRAM IZVRŠAVANJA TOF NAREDBE
Zadano
vreme (PRE)
Uslov
EN bit
TT bit
ACC vrednost
DN bit
trenutci obrade ranga
0 10 11 12 13 14 15 16 17 1918 20 21 22 23 24 25 26 27 28 2987654321 9 vreme
1
9
8-a
7
6
5
4
2-a
2-b
3
13
12
11
10
14
8-b
sken ciklus
Leder_uvod/46
časovnik radi samo dok je uslov neistinit (signal na ulazu u časovnik je u stanju “off”).
Istonosnu vrednost uslova pokazuje EN, ali za razliku od TON naredbe, ovde on
onemogućava rad časovnika. Drugim rečima, ovaj bit ima vrednost 1 onda kada je uslov
istinit i to označava da je rad časovnika onemogućen. Kada je uslov neistinit, EN bit ima
vrednost 0, što znači da je rad časovnika omogućen. Međutim, činjenica da EN bit ima
vrednost 0 ne mora da znači da časovnik zaista i radi, jer je on mogao i da završi rad zbog
isteka zadanog vremena, a da pri tome uslov i nadalje ostane neistinit. Rad časovnika
indicira TT bit. Naime, taj bit je postavljen na 1 za svo vreme za koje časovnik aktivno
meri vreme (timer timing), i postavlja se na 0 kada časovnik ne radi. Konačno, kada je
vrednost DN bita 0, onda to znači da je časovnik završio (done) svoj posao, tj. izmerio
zadano vreme. Pri tome, DN bit ne govori o tome kada je časovnik završio sa merenjem
vremena, jer će on ostati na vrednosti 0 sve dok uslov ne postane istinit. Vremenski
dijagram rada časovnika ilustrovan je na slici Sl. 3-15.
• Retentive Timer (RTO)
Ovom naredbom se definiše treća vrsta časovnika i zauzimaju tri reči koje čine
elemenat broj e u datoteci
časovnika broj f. Prilikom formiranja
naredbe specificaraju se i
vremenska baza (tx) i zadana
vrednost (ns). Akumulirana vrednost
(na) se automatski postavlja na 0.
RTO naredba razlikuje se od
TON naredbe samo po tome što se akumulirana vrednost ne resetuje, već zadržava i
onda kada uslov postane neistint (Sl. 3-16). Drugim rečima, ovaj časovnik počinje da radi
kada uslov postane istinit, i nastavlja sa radom povećavajući akumuliranu vrednost sve
dok je uslov istinit. Kada uslov postane neistinit, časovnik prekida rad, ali se akumulirana
vrednost pri tome ne menja. To znači da će kada uslov ponovo postane istinit, časovnik
nastaviti sa radom i prethodno izmerenom vremenu (ACC) dodavati nove vrednosti. Na taj
način ovaj časovnik
omogućuje da se
kumulativno mere
intervali vremena u
kojima je uslov bio
istinit (Sl. 3-16).
Bitovi stanja
časovnika menjaju se u
toku programskog sken
ciklusa na sledeći
način:
• DN - Timer done bit
se postavlja na 1 kada
je ACC ≥ PRE
(časovnik je izmerio
zadano vreme). On se
resetuje na 0 pomoću
posebne RES naredbe.
• EN - Timer
enable bit se
postavlja na 1 kada je uslov u rangu istinit (rad časovnika je omogućen) i resetuje na 0
kada uslov postane neistinit (rad časovnika je onemogućen).
• TT - Timer timing bit se postavlja na 1 kada je uslov istinit i ako je ACC ≤ PRE
(časovnik radi). On se resetuje na 0 kada uslov postane neistinit ili kada se DN bit
postavi na 1 (časovnik prestaje sa radom).
SL. 3-16 VREMENSKI DIJAGRAM IZVRŠAVANJA RTO NAREDBE
Leder_uvod/47
• Reset naredba (RES)
RES naredba je naredba akcije i koristi se
za resetovanje časovnika. Kada je uslov istinit ova
naredba se izvršava tako što se u časovniku čija je
adresa (ili simboličko ime) a navedena u RES
naredbi, resetuju na nulu bitovi DN, TT i EN, kao i
akumulirana vrednost (ACC). S obzirom na način rada očigledno je da se RES naredbe
ne sme koristiti za TOF tip časovnika.
3.3.4. NAČIN RADA ČASOVNIKA
Sve dok časovnik radi u svakom sken ciklusu povećava se akumulirana vrednost.
Pri tome, iznos za koji će se povećati ACC vrednost zavisi od dužine trajanja sken ciklusa.
Naime, kada se prilikom obrade ranga ustanovi da su se stekli uslovi da časovnik počne
sa radom onda se istovremeno startuje jedan interni časovnik, koji se ažurira preko
prekida (interapta) na svakih 0,01 sec. Broj registrovanih vremenskih intervala se smešta
u interni 8-bitni registar (bitovi 0-7 u prvoj reči). Ukoliko je u pitanju časovnik čija je
vremenska baza 0,01 sec, onda se u sledećem programskom skenu, kada se naiđe na
dati rang, vrednost internog registra, koja zapravo predstavlja interval vremena koji je
protekao između dva sukcesivna sken-a, dodaje akumuliranoj vrednosti. Nakon toga se
interni registar resetuje na nulu i počinje ponovo da meri vreme do sledećeg skena.
Budući da je maksimalna vrednost koju može da ima interni registar oko 2,5 sec
(255x0,01), može se očekivati da će tajmer raditi ispravno samo ako sken ciklus ne traje
duže od 2,5 sekundi. Ukoliko se tajmer koristi u programu čiji sken ciklus traje duže, onda
je neophodno da se ista naredba za časovnik postavi na više mesta u programu čime će
se obezbediti da se rangovi koji sadrže taj časovnik obrađuju sa učestanošću koja nije
veća od 2,5 sekundi. (Svaki put kada se prođe kroz rang koji sadrži časovnik izvršiće se
ažuriranje internog registra i povećati akumulirana vrednost).
Ukoliko časovnik radi sa vremenskom bazom od 1 sekunde obrada časovnika je
donekle složenija. Ovde se, naime i dalje koristi interni časovnik koji se ažurira na svakih
0,01 sekundi, ali se pri tome u toku obrade ranga akumulirana vrednost ažurira samo ako
je akumulirana vrednost veća ili jednaka od 1 sekunde. Pri tome se akumulurina vrednost
uvećava za 1, dok se eventualni ostatak vremena pamti u internom brojaču i na njega se
dodaju sledeći inkrimenti od po 0,01 sekunde. Postupak ažuriranja akumulirane vrednosti
je takav da se može očekivati da će časovnik raditi ispravno ako sken ciklus ne traje duže
od 1,5 sekundi (maksimalni mogući ostatak posle očitavanja je 0,99, što uvećano za 1,5
čini 2,5). Naravno, i ovde se problem ciklusa dužeg trajanja može prevazići stavljanjem
naredbe časovnika na više mesta u programu.
Potrebno je da se naglasi da je pri korišćenju časovnika neophodno da se
posebna pažnja posveti naredbama za skok. Naime, i ako je trajanje sken ciklusa u
dozvoljenim granicama, može se desiti da se nekom od naredbi za skok u jednom ili viče
suskcesivnih sken ciklusa preskoči rang koji sadrži časovnik. Jasno je da se u tom slučaju
neće vršiti ažuriranje akumulirane vrednosti. To nadalje znači da je neophodno da se
obezbedi da u slučaju bilo kakvog programskog skoka, naredba za časovnik ne bude
isključena iz obrade u periodu koji je duži od maksimalno dozvoljenog vremena.
Tačnost časovnika (timer accuracy) je pojam koji se odnosi na dužinu vremenskog
intervala koji protekne od trenutka kada se časovnik uključi do trenutka kada DN bit
indicira da je merenje vremena završeno. Kao što je već istaknuto, za časovnike koji rade
sa vremenskom bazom od 0,01 sekunde tačnost je u granicama od ±0,01 sec sve dok
sken ciklus ne traje duže od 2,5 sekunde. Časovnici koji rade sa vremenskom bazom od 1
sekunde zadržavaju svoju tačnost ukoliko je programski sken kraći od 1, 5 sec.
Neophodno je da se istakne, međutim, da tačnost rada časovnika ne implicira da
će i neki događaj koji je vezan sa časovnikom da bude aktiviran sa istom tačnošću.
Aktiviranje događaja se ostvaruje ispitivanjem DN bita. U najvećem broju slučajeva ovaj
uslov se ispituje jedanput u okviru sken ciklusa. To nadalje znači da je tačnost aktiviranja
Leder_uvod/48
događaja određena trajanjem jednog sken ciklusa.
3.3.5. DATOTEKA PODATAKA O BROJAČU (COUNTER DATA FILE)
Budući da je
brojač, isto kao i
časovnik, realizovan
softverski, parametri
koji definišu njegov
rad moraju biti
smešteni u memoriji
kontrolera. Za
pamćenje podataka o
brojačima koristi se
datoteka podataka
broj 5 (counter file –
C). U ovoj datoteci
može se definisati
najviše 256 različitih
brojača. Ukoliko je
potrebno da se koristi
veći broj brojača,
korisnik može
definisati i dodatne
datoteke (korisnički
definisane datoteke)
čiji su brojevi od 9 do
255.
Svakom
brojaču pridružuju
se po jedan element u odgovarajućoj datoteci, koji se sastoji od tri 16-bitne reč (Sl. 3-17).
Postoje dva osnovna tipa brojača brojač unapred (CTU – count up) i brojač unazad (CTD
– count down) i oba koriste istu datoteku. Isto kao i kod časovnika i brojaču i pojedinim
bitovima mogu se umesto adrese dodeliti simbolička imena.
3.3.6. NAREDBE ZA RAD SA BROJAČEM
Naredbe za oba tipa brojača su naredbe akcije, što znači da se smeštaju u desni
deo ranga. Oba brojača broje
promenu vrednosti uslova sa
neistinit na isitinit (uzlazna
ivica). Pri svim ostalim
vrednostima uslova, oni
zadržavaju prebrojani iznos i
čekaju sledeći prelaz. Drugim
rečima, brojači se niti
puštaju u rad, niti
zaustavljaju. Oni
neprekidno rade i beleže (broje) svaki prelaz istinit/neistinit. Dostizanje zadane vrednosti
se signalizira postavljanjem odgovarajućeg bita – done bit (DN) – na 1, ali se brojanje i
dalje nastavlja. Prebrojani iznos se može izbrisati jedino posebnom RES naredbom.
Jedina razlika između brojača sastoji se u tome što prvi (CTU) broji unapred od 0
do 32767, i postavlja overflow bit (OV) na 1 kad pređe 32767, dok drugi (CTD) broji
unazad, od 0 do –32767, i postavlja underflow bit (UN) kad pređe –32767. Potrebno je
zapaziti da se u oba slučaja brojanje nastavlja (Sl. 3-18). Kada pređe 32767, brojač
unapred dodavanjem još jednog bita dobija vrednost –32767 (u binarnoj aritmetici drugog
SL. 3-17 ELEMENAT DATOTEKE BROJAČA I ADRESIRANJE BROJAČA
SL. 3-18 KRUŽNI RAD BROJAČA
15 01234567891011121314
DNCDCU
zadana vrednost (PRE)
odbrojana vrednost (ACC)
Reč 0
Reč 2
Reč 1
Adresibilne reči
PRE - preset value (zadana vrednost)
ACC - accumulated value (odbrojana
vrednost)
C /w.e:f b
redni broj
datoteke
4 ili 10-255
redni broj elementa
u datoteci
0 - 255
redni broj
reči
u elementu
0 - 2
redni broj
bita u reči
0 - 15
Adresibilni bitovi
CU = bit 15 - counter up enable (indikator
uslova kod brojanja unapred)
CD = bit 14 -counter down enable (indikator
uslova kod brojanja unazad)
DN = bit 13 – done (indikator ostvarenog
zadanog broja)
OV = bit 12 – overflow (brojač unapred prešao
32767)
UN = bit 11 – underflow (brojač unazad prešao
-32768)
UA = bit 10 – indikator ažuriranja brzog
hardverskog brojača (HSC)
OV UN UA
Leder_uvod/49
komplementa, sa 16-bitnom reči 32767+1= –32768) i nastavlja da broji unapred od tog
broja. Na isti način, kada brojač unazad dostigne vrednost od –32768, oduzimanjem
sledećeg bita, brojač dobija vrednost 32767 (u binarnoj aritmetici drugog komplementa,
sa 16-bitnom reči –32768-1= 32767) i nastavlja da broji unazad od te vrednosti. To
nadalje znači da korisnik sam mora da vodi računa o eventualnom prekoračenju opsega.
• Count up (CTU)
Bitovi stanja brojača
menjaju se u toku programskog
sken ciklusa na sledeći način:
• OV - Count up overflow bit se
postavlja na 1 kada akumulirana
vrednost (ACC) prelazi sa 32767
na –32768 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom reči 32767+1= –
32768), i nastavlja brojanje unapredi.
• DN - Done bit se postavlja na 1 kada je ACC ≥ PRE;
• CU - Count up enable bit se postavlja na 1 kada je uslov istinit, a resetuje na 0 kada je
uslov neistinit ili kada se aktivira odgovarajuća RES naredba.
• Count down (CTD)
Bitovi stanja brojača
menjaju se u toku programskog
sken ciklusa na sledeći način:
• UN- Count down underflow bit
se postavlja na jedan kada
akumulirana vrednost (ACC)
prelazi sa – 32768 na 32767 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom
reči –32768-1= 32767), i nastavlja da broji unazad od te vrednosti.
• DN - done bit se postavlja na 1 kada je ACC ≤ PRE;
• CD - Count down enable bit se postavlja na 1 kada je uslov istinit, a resetuje na 0 kada
je uslov neistinit ili kada se aktivira odgovarajuća RES naredba.
• Reset naredba (RES)
RES naredba je naredba akcije i koristi se za
resetovanje brojača. Kada je uslov istinit ova
naredba se izvršava tako što se u brojaču čija je
adresa (ili simboličko ime) navedeno u RES naredbi,
postavljaju na nulu svi indikatorski bitovi, kao i
akumulirana vrednost (ACC).
3.3.7. PRIMERI KORIŠĆENJA ČASOVNIKA I BROJAČA
PR. 3-4 EKSCENTAR PRESA
ZADATAK
Data je jedna ekscentar presa koja se koristi za izradu zatvarača za flaše. Zatvarači se
proizvode tako što se komad metala stavi na postolje ispod bata prese koji se pomera u vertikalnoj
ravni (dole – gore). Bat udara u metal kada dođe u krajnji donji položaj i deformiše ga, odnosno
oblikuje na ženjeni način. Za bat prese pričvršćena je poluga čiji je gornji kraj vezan ekscentrično
za osovinu prese. Položaj tačke vezivanja odabran je tako da obrtanje osovine prese uzrokuje
linearno (vertikalno) pomeranje bata. Pri tome, za vreme za koje osovina prese napravi pun obrt,
bat prese pređe put od gornjeg krajnjeg do donjeg krajnjeg položaja i nazad. Obrtanje osovine
prese ostvaruje se preko motora čija je osovina vezana sa osovinom prese preko frikcione
spojnice. Uprošćeni model opisane prese prikazan je na slici Sl. 3-19.
Leder_uvod/50
Na presi radi radnik koji
postavlja komad metala ispod bata,
zatim aktivira presu, sačeka da ona
završi jedan krug, izvadi zatvarač i
stavlja novi komad metala.
Potrebno je napraviti sistem
koji će pomoću PLC-a upravljati
radom prese. Sistem treba da je
projektovan tako da obezbedi
maksimalnu zaštitu radnika u toku
rada.
REŠENJE
Polazeći od funkcionalnog
opisa uređaja očigledno je da bi
presom trebalo da se upravlja tako
što će poslužilac prese na neki način
dati znak za pokretanje bata
prese. Tada će frikciona spojnica
spojiti osovinu prese na motor i on će pokrenuti bat. Kada bat napravi jedan puni radni ciklus
(gore→dole→gore), spojnica rastavlja motor od prese i presa se zaustavlja.
Iz navedenog opisa željenog rada prese izvesno je da mora da postoji jedan prekidač
kojim se motor pušta u rad. Pri tome, postoje dve mogućnosti. Ili da se sa svakom aktivacijom
prese motor pokreće i zaustavlja ili da se jedanput pokrenut motor stalno vrti, dok se radom same
prese upravlja isključivo preko spojnice. Imajući u vidu da je proces proizvodnje zatvarača serijski
proces, ovo drugo rešenje je povoljnije. Budući da je brzina motora konstantna za upravljanje je
dovoljan jedan digitalni signal koji ćemo vezati za nulti pin izlaznog dela digitalnog U/I modula u
prvom slotu. Simboličko ime ovog signala je "motor_on". Ovaj motor pokretaće se pritiskom na
jedan poseban taster "start" i zaustavljati pritiskom na taster "stop". Signale sa ova dva tastera
dovodićemo na ulazni deo digitalnog U/I modula i to na pinove 0 i 1.
Radom spojnice upravlja se preko jednog elektromagneta koji, kada ima priključeno
napajanje, aktivira frikcionu spojnicu, čime se obrtni momenat motora prenese na osovinu
ekscentar-prese. Elektromagnet se napaja jednosmernim naponom od 24V. Otuda nam je
neophodan još jedan digitalni izlazni signal. Neka je on vezan za pin 1 izlaznog dela digitalnog U/I
modula u prvom slotu i neka je njegovo simboličko ime "spoj_on".
Da bi presom moglo da se upravlja neophodno je da se raspolaže sa informacijom o
položaju bata. Ovaj problem ćemo rešiti postavljanjem jednog graničnog prekidača na samu presu i
to tako da je on zatvoren kada je presa u gornjem graničnom položaju. Digitalnom signalu sa ovog
prekidača daćemo simboličko ime "swggr_on" i dovešćemo ga na drugi pin ulaznog dela U/I
modula u prvom slotu.
Preostaje još da rešimo način na koji rukovaoc presom pušta presu u rad. Izvesno je da bi
se to moglo rešiti postavljanjem jednog tastera koji se pritisne svaki put kad presa treba da napravi
jedan hod. Međutim, ovo rešenje bi moglo ozbiljno da ugrozi bezbednost radnika. Naime, njegov
radni proces sastojao bi se u tome što on uzme komad metala, stavi ga ispod prese, pritisne taster,
sačeka da presa izvrši jedan puni radni ciklus, izvadi formirani zatvarač i stavi novi komad metala.
U želji da se taj proces odvija što brže, rukovaoc presom bi mogao da odluči da jednom rukom
pritiska taster, a drugom postavlja materijal ispod prese. Jasno je da bi bio dovoljan samo jedan
trenutak nepažnje pa da on ozbiljno povredi ruku. To nadalje znači da je neophodno da se osmisli
takav način puštanja prese u rad da je potpuno izvesno da se u tom trenutku nijedna njegova ruka
ne nalazi ispod bata. Ovako formulisan zahtev prirodno nameće ideju da se presa pušta u rad
pomoću dva prostorno udaljena tastera koji se mogu istovremeno pritisnuti samo sa obe ruke.
Postavićemo zato uz presu dva tastera za desnu i levu ruku i signale sa njih dovešćemo na treći i
četvrti pin ulaznog dela digitalnog U/I modula u prvom slotu. ("taster_lr_on" i "taster_dr_on").
Budući da je osmišljena potrebna oprema (senzori i izvršni organi) može se pristupiti
formiranju samog algoritma upravljanja i pisanju LADDER programa. U tom cilju neophodno je da
se reše dva problema. Prvi, jednostavniji, odnosi se na detekciju trenutka kada je presa završila
puni ciklus. Jasno je da će, kada je poluga bata u gornjem graničnom položaju, granični prekidač
biti pritisnut. Problem je međutim u tome što on to stanje ima i na početku pre bilo kakvog
pomeranja bata i na kraju svakog punog ciklusa. Otuda, samo stanje graničnog prekidača ne
govori o tome da li je pokret izvršen ili ne. Da bi se ovaj problem prevazišao, uvodi se jedna interna
bit promenljiva (u programu označena kao hod) koja se postavlja dok se bat pomera. Na taj način,
SL. 3-19 ŠEMATSKI PRIKAZ EKSCENTAR PRESE
Osovina
motora
Glavna
osovina
motora
Frikciona
spojnica Poluga bata
Ekscentrična
čaura
Bat prese Hod bata
Leder_uvod/51
kada se ustanovi da je granični prekidač zatvoren, potrebno je proveriti da li je istovremeno i interni
bit (hod) i tek ta dva uslova zajedno ukazuju da je presa završila jedan puni ciklus.
Drugi problem vezan je za ostvarivanje pune zaštite rukovaoca presom. Praksa pokazuje
da postavljanjem dva tastera problem i dalje nije rešen. Naime, može se desiti da rukovaoc,
zanemarujući sopstvenu bezbednost, odluči da mu je lakše i brže da radi tako što će jedan od dva
tastera zaglaviti tako da stalno bude pritisnut, pa će onda jednom rukom pritiskati drugi taster, a
drugom menjati materijal. Naš je zadatak, da algoritam osmislimo tako da nateramo rukovaoca
presom da sa obe ruke istovremeno pritiska tastere. Jedan od načina da se postavljeni problem
SL. 3-20 LEDER PROGRAM SA TRAJNIM PAMĆENJEM BITA ZA UPRAVLJANJE EKSCENTAR PRESOM
Leder_uvod/52
reši je da se uslov za aktiviranje spojnice postavi tako da se ona ne sme aktivirati ako je jedan od
tastera stalno pritisnut, odnosno ako između pritiskanja jednog i drugog tastera prođe više od
nekog vremenskog intervala. Recimo da je to 500ms.
Dve varijante LADDER programa kojima se realizuje navedeni algoritam prikazane su na
Sl. 3-20 i Sl. 3-21.
Posmatrajmo kao prvo program koji koristi naredbe za trajno pamćenje bitova (Sl. 3-20). U
toku programskog sken ciklusa obrađuje se rang po rang. Sve dok se ne pritisne "start" taster uslov
u rangu 0 neće biti istinit pa motor neće dobiti pobudu. Otuda je potpuno nebitno šta će se dešavati
SL. 3-21 LEDER PROGRAM SA SAMODRŽANJEM ZA UPRAVLJANJE EKSCENTAR PRESOM
Leder_uvod/53
u sledećim rangovima jer presa neće raditi. Rang 1 će biti istinit tek kada se pritisne "stop" taster i
tada će motor izgubiti pobudu. U međuvremenu rad prese biće diktiran ostalim rangovima
programa.
Kada se pritisne taster leve ili desne ruke (ili oba) časovnik će početi da meri vreme. Pri
tome, budući da se taster nakon pritiska može i otpustiti, informacija o tome da je on bio pritisnut
pamti se trajno u jednom internom bitu, koji se onda u sledećem rangu (broj 3) koristi kao uslov za
pokretanje časovnika. Ovde je potrebno zapaziti da bi časovnik neprekidno radio kada bi jedan od
tastera bio zaglavljen u pritisnutom položaju, to znači da bi on stalno pokazivao vreme koje je veće
od 500ms.
Sledeći rang (broj 4) služi za aktiviranje spojnice. Uslov da bi se spojnica aktivirila je da su
oba tastera prititsnuta, da od trenutka pritiska prvog od njih nije proteklo više od 500ms, i da se
presa nalazi u gornjem graničnom položaju. Ukoliko je spojnica aktivirana, dolazi do pokreta što
znači da se otvara gornji granični prekidač. Kada su ova dva uslova istovremeno istinita, u rangu
broj 5 će se postaviti indikator pokreta bata . Konačno, ako je došlo do pokreta i pri tome je gornji
granični prekidač zatvoren (hod), u rangu broj 6 se resetuje pobuda spojnice i svi upamćeni bitovi,
čime se omogućava izvršavanje sledećeg ciklusa rada prese. (Podsetimo se da za svaku OTL
naredbu u programu mora da se stavi i OTU naredba koja će pod datim uslovima resetovati trajno
postavljen bit).
Program sa samodržanjem prati istu osnovnu logiku (Sl. 3-21). Razlika je jedino u tome što
se ovde u svakom rangu u kome se postavljaju bitovi, pomoću paralelne grane obezbeđuje da
uslov bude istinit i kada neki od tastera ili prekidača promeni stanje. Pri tome, da bi se obezbedilo
da se ovi bitovi resetuju kada se završi jedan ciklus rada prese uvodi se interna promenljiva "kraj"
koja se postavlja na 1 kada se ciklus prese završi. Posle toga, u sledećem programskom sken
ciklusu uslovi u svim rangovima biće neistiniti (jer se u njima ispituje promenljiva "kraj").
PR. 3-5 REGULACIJA PROTOKA VAZDUHA
ZADATAK
Posmatra se neki ventil čijim radom se upravlja pomoću jednosmernog solenoida (A). Pri
tome, kada se aktvira ventil, pritisak vazduha dostiže željeni nivo u roku od 5 sekundi. Nakon toga,
ventilom se može upravljati (pomeranjem klipa solenoida) i to u vremenu od 10 sekundi. Posle
isteka 10 sekundi, opruga solenoida vraća klip u početni položaj i zatvara ventil.
REŠENJE
Dva moguća rešenja postavljenog problema, od kojih jedno koristi izlaznu naredbu sa
trajnim postavljanjem bita, a drugo postupak samodržanja, prikazana su na Sl. 3-22 i Sl. 3-23.
Pretpostavljeno je da se signal sa prekidača za otpočinjanje programa vodi na nulti pin digitalnog
ulaza (simboličko ime START_ON), a da se signal na priključak A+ solenoida vodi preko nultog
pina digitalnog izlaza (simboličko ime MOVE_APLUS).
Pri analizi programa potrebno je imati na umu da se u svakom sken ciklusu ispituje redom
rang po rang. Pri tome, akcija će se izvršiti samo u onim rangovima u kojima je uslov istinit. Tako
će na primer, u prvom prolazu biti aktivan samo rang 0 i on će ostati jedini aktivan u svim sledećim
sken ciklusima, sve dok ne istekne 5 sekundi.
U sken ciklusu u kome se dostiže 5 sekundi, časovnik PRITISAK će postaviti DN bit, tako
da će uslov u rangu 1 biti istinit, pa će on postati aktivan i postaviti MOVE_APLUS na 1. Budući da
se ta promenljiva ispituje u rangu 2 i on će postati aktivan u istom sken ciklusu pa će pokrenuti
časovnik CONTROL. Uslov u rangu 3 (verzija sa trajnim postavljanjem bita Sl. 3-22) će i dalje biti
neistinit, pa se taj rang neće aktivirati.
U narednim sken ciklusima, sve dok ne prođe 10 sekundi biće istinit samo uslov u rangu 2.
Konačno, kada časovnik CONTROL izmeri 10 sekundi, on će postaviti svoj DN bit na 1. Odmah
zatim, u sledećem rangu u programu sa trajnim postavljanjem bita (Sl. 3-22), bit MOVE_APLUS
će biti resetovan i ventil će se zatvoriti. Kod programa sa samodržanjem (Sl. 3-23) to će se desiti
tek u sledećem sken ciklusu, kada uslov u paralelnoj grani ranga 2 postane neistinit.
Potrebno je obratiti pažnju na činjenicu da program u kome se koristi samodržanje ima
jedan rang manje i to zato što se kod njega u okviru istog ranga ostvaruje i aktiviranje i
deaktiviranje signala A+. U programu u kome se koristi trajno postavljanje bita, aktivacija solenoida
se postiže u jednom rangu i to na isti način na koji se to ostvaruje kod samodržanja, dok se
deaktivacija, prirodno, mora naći u zasebnom rangu. U ovom primeru ta činjenica pojednostavljuje
završetak programa, te nije neophodno da se uvodi interna promenljiva koja označava kraj rada.
Leder_uvod/54
SL. 3-22 LEDER PROGRAM ZA REGULACIJU PROTOKA VAZDUHA SA TRAJNIM PAMĆENJEM BITA
SL. 3-23 LEDER PROGRAM ZA REGULACIJU PROTOKA VAZDUHA SA SAMODRŽANJEM
Leder_uvod/55
PR. 3-6 PALJENJE I GAŠENJE SIGNALNE LAMPE
ZADATAK
Pretpostavlja se da postoji neki hidraulicni mehanizam za čiji rad je neophodno da se ulje
zagreje do određene temperature. Pri tome se postizanje zadane temperature detektuje pomoću
jednog termo-prekidača koji daje binarni signal kada temperatura postigne željenu vrednost. Za
vreme procesa zagrevanja ulja neophodno je da se signalna lampa pali i gasi, čime se indicira da
se ulje zagreva. Kada ulje dostigne željenu temperaturu, signalna lampa počinje stalno da svetli.
Sistem se pušta u rad pritiskom na jedan dvopoložajni prekidač.
REŠENJE
Pretpostavimo da je prekidač za puštanje sistema u rad vezan za nulti pin ulaznog modula,
tako da ima adresu I:1/0 i neka je njegovo simboličko ime START_ON. Indikator temperature je
vezan za prvi pin, tako da je adresa signala I:1/1, i pridruženo simboličko ime KRAJ_GREJANJA.
Signalan sijalica je vezana za pin 0 izlaznog modula (adresa O:2/0) i dodeljeno joj je simbolično
ime LAMPA_ON.
Jedno moguće rešenje postavljenog zadatka prikazano je na slici Sl. 3-24. Paljenje i
gašenje signalne lampe ostvaruje se korišćenjem dva časovnika od kojih je jedan TON tipa
(simboličko ime PALI), a drugi TOF tipa (simboličko ime GASI) i koji su vezani tako da, za svo
vreme za koje traje grejanje ulja, rade u protiv fazi.
Pre prvog prolaza kroz program nijedan od časovnika ne radi, tako da su njihovi
odgovarajući DN bitovi postavljeni na 0 (PALI/DN) odnosno 1 (GASI/DN). U skladu sa time uslov
ranga 0 će biti neistinit (PALI/EN=0), te časovnik PALI neće raditi. Uslov ranga 1 će zbog toga biti
neistinit i pokrenuće časovnik GASI. Uslov u rangu 2 je neistinit i sijalica ne svetli. Ovakvo stanje
trajaće dok časovnik GASI ne izmeri zadano vreme (ovde je usvojeno da to bude 1 sec). Kada
protekne 1 sekunda, časovnik GASI je završio rad i njegov DN bit postaje 0. U sledećem sken
ciklusu, uslov u rangu 0 će biti istinit (PALI/EN=1) i aktiviraće se časovnik PALI.
SL. 3-24 - LEDER PROGRAM ZA PALJENJE I GAŠENJE SIJALICE
Leder_uvod/56
Uslov za rad časovnika GASI je i dalje neistinit, što znači da bi on mogao da radi. Međutim,
kako je on izmerio zadano vreme i kako njegov DN bit nije resetovan (resetuje ga promena uslova
na istinit), to on neće raditi (GASI/TT=0). Uslov u rangu 2 je istinit, te sijalica svetli. Ovakva
situacija ostaće i u svim sledećim sken ciklusima sve dok ne prođe 1 sekunda, kada će da se
postavi PALI/DN bit na 1. Uslov u rangu 1 postaje istinit što dovodi do resetovanja GASI/DN bita
(postavlja se na 1). Sijalica i dalje svetli. U sledećem sken ciklusu uslov u rangu 0 postaje neistinit
(resetuju se bitovi časovnika
PALI). Zbog toga se u rangu
1 aktivira časovnik GASI
(GASI/TT=1). Sijalica se gasi
u rangu 3 i ceo ciklus se
ponavlja.
Potrebno je zapaziti
da se svaki od časovnika
aktivira pomoću DN bita
drugog časovnika. To je
ujedno i razlog, zašto
časovnici ne mogu biti istog
tipa (oba TON ili oba TOF).
Naime, u tom slučaju ne bi
bilo moguće da se otpočne sa
radom, jer bi na početku oba
DN bita imala istu
vrednost (0 ili 1).
Vremenski dijagram
promene odgovarajućih bitova dat je na Sl. 3-25. Sve dok se ne dostigne željena temperatura, bit
označen kao KRAJ_GREJANJA ima vrednost 0, što znači da sijalica svetli samo za ono vreme za
koje radi časovnik PALI, odnosno za koje je njegov EN bit postavljen na 1. Kada se dostigne
zadana temperatura sijalica će stalno svetleti zahvaljujući samodržanju u rangu 2.
PR. 3-7 MAŠINA ZA PAKOVANJE
ZADATAK
Posmatra se jedna mašina koja pakuje konzerve u kutiju i to tako da u kutiji ima tri reda
konzervi, pri čemu u svakom redu ima po 5 konzervi. Mašina radi tako što se pomoću jednog klipa
(A) konzerve koje dolaze preko pokretne trake guraju, jedna po jedna, na pomoćno postolje. Kada
se na postolje smesti 5 konzervi, onda se one, sve zajedno, pomoću drugog klipa (B) gurnu u
kutiju. U skladu sa time, za pakovanje jedne kutije potrebno je da se ostvari sledeća sekvenca
pomeranja klipova:
[ (A+ A-)x5 B+ B-]x3
REŠENJE
Dva moguća rešenja (sa i bez lečovanja) data su na Sl. 3-26 i Error! Reference source
not found..
U prvom rešenju (Sl. 3-26) je pretpostavljeno da su i klip A koji pomera konzerve i klip B
koji pomera ceo red konzervi dvosmerni solenoidi, što znači da se mora upravljati pokretima u oba
smera. Pri tome se signali za napajanje vode preko digitalnih izlaza u prvom slotu, pinovi od 0 do 4
redom za A-, A+, B- i B+. Senzori položaja oba klipa su normalno otvoreni prekidači čiji signali se
dovode na digitalni ulaz u prvom slotu i to na pinove od 1 do 4 redom za a-, a+, b- i b+. Taster za
otpočinjanje rada vezan je za pin 0. Budući da se početak rada zadaje tasterom, neophodno je da
se koristi interna promenljiva koja će pamtiti da je taster u nekom trenutku bio pritisnut. U programu
je ta promenljiva označena sa "nije kraj" i ona zapravo utiče na istinitost uslova ranga broj 1 kojim
se započinje ceo ciklus pokretanja klipova.
Za brojanje konzervi koristi se programski brojač na adresi C5:1 ("Brojac_5"), dok se za
brojanje redova konzervi koristi programski brojač C5:0 ("Brojac_3").
Sam program je veoma jednostavan i njegova logika se može pratiti uz pomoć komentara
koji su dati uz svaki rang. Napomenimo, da je dobra programerska praksa da se program opiše
detaljnim komentarima. Ovo ne samo da olakšava traženje grešaka pri testiranju programa, već je
od neobične koristi i kasnije kada dođe do eventualnih modifikacija programa. Program je
realizovan pomoću tehnike samodržanja. Samo se po sebi razume da se zadatak može rešiti i
pomoću naredbi za trajno postavljanje bitova.
SL. 3-25. VREMENSKI DIJAGRAM PROMENE INDIKATORSKIH BITOVA
ČASOVNIKA
GASI_DN
GASI_TT
GASI_EN
PALI_DN
PALI_TT
PALI_EN
1
2
5
6
8
7
2
3
4
1 sec
1 sec
9
10
11
12
13
1 sec
14
15
svetli svetli
1 sec
sken
ciklus
Leder_uvod/57
Leder_uvod/58
Kao i kod primera sa upravljanjem ekscentar presom i pri korišćenju solenoida pokazuje se
da testiranje stanja prekidača nije dovoljno da bi se pratio njihov rad. Jasno je da je, kada je
solenoid potpuno uvučen, njegov prekidač na "-" kraju pritisnut, no on to stanje ima i na početku
pre bilo kakvog pomeranja klipa i na kraju svakog punog ciklusa (pomeranje napred – nazad).
Drugim rečima, samo stanje prekidača "-" ne govori o tome da li je pokret izvršen ili ne. Da bi se
ovaj problem prevazišao, uvodi se jedna interna bit promenljiva (u programu označena kao hod
unazad) koja se postavlja dok se klip pomera. Na taj način stanje te promenljive, zajedno sa
stanjem prekidača na "-" kraju solenoida ukazuju na to da li je ciklus završen ili ne.
U drugom rešenju (Error! Reference source not found.) je pretpostavljeno da je klip A
dvosmerni solenoid, dok je klip B jednosmerni solenoid, koga opruga vraća u početni položaj čim
prestane napajanje njegovog kraja. Pri tome se signali za napajanje vode preko istih pinova kao i u
prvom rešenju, s tim što je pin 3 slobodan (nema napajanja za kraj B-). Granični prekidači oba klipa
vezani su na isti način, s tim što je su prekidači klipa B realizovani kao normalno zatvoreni kontakti.
Program je realizovan pomoću naredbi za trajno pamćenje bitova. Sama logika programa je veoma
slična prvom rešenju, tako da nema potrebe da se posebno komentariše.
SL. 3-26 LEDER PROGRAM ZA UPRAVLJANJE MAŠINOM ZA PAKOVANJE KOJA IMA DVA SOLENOIDA SA PO
DVA KRAJA
Leder_uvod/59
SL. 3-27 LEDER PROGRAM ZA UPRAVLJANJE MAŠINOM ZA PAKOVANJE KOJA IMA JEDAN SOLENOID SA DVA
KRAJA I JEDAN SOLENOID SA OPRUGOM

Weitere ähnliche Inhalte

Empfohlen

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Pages from plc 1

  • 1. Mali_kontroleri/26 binarni signal ukoliko se nalazi u električnom kolu koje se zatvara (ili otvara) kada se senzor aktivira. Otuda, se senzor mora vezati u električno kolo digitalnog ulaznog modula. Ovo kolo će omogućiti detekciju binarnog signala i prenos odgovarajuće vrednosti u memoriju PLC-a. Na isti način, diskretni izvršni organ mora biti povezan u električno kolo digitalnog izlaznog modula koje omogućava da se digitalni signal koji odgovara vrednosti bita u memoriji prenese na izvršni organ. Prilikom povezivanja digitalnih uređaja neobično je važno da se vodi računa o tome kako je uređaj projektovan, odnosno kakav treba da bude smer električnog signala. U tom smislu razlikuju se dve vrste uređaja: • uređaji koji su izvor signala (source device) – povezuju se na pozitivni pol izvora napajanja • uređaji koji su prijemnici signala (sinking device) – povezuju se na zajedničku tačku izvora napajanja. Da bi se obezbedila kompatibilnost digitalnih uređaja i PLC-a za koji se oni vezuju, digitalni moduli se takođe proizvode u dve kategorije • digitalni U/I izvori - za uređaje koji su projektovani kao prijemnici. • digitalna U/I prijemnici - za uređaje koji su projektovani kao izvor. Način vezivanja, ovih uređaja prikazan je na Sl. 2-7 i Sl. 2-8. Pri tome, potrebno je da se istakne da digitalni moduli koji predstavljaju izvor signala moraju u sebi da imaju i izvor napajanja. U tom slučaju, postojanje još jednog spoljnog izvora, je opciono. Za razliku od njih digitalni moduli koji primaju signale nemaju izvor napajanja. To znači da u kolu preko koga se vezuje digitalni uređaj mora da postoji spoljni izvor napajanja. Izvesno je da postoje i digitalni uređaji koji ne pripadaju ni jednoj od ovih kategorija. Tako, na primer, mehanički prekidači mogu da provode struju u oba smera, što znači da se mogu povezati na oba tipa modula. Sa druge strane, uređaji koji imaju neke elektronske komponente zahtevaju da se vodi računa o smeru struje, tako da mogu da se koriste samo sa odgovarajućom vrstom digitalnih U/I modula. SL. 2-7 SPREZANJE DIGITALNIH UREĐAJA KOJI SU PROJEKTOVANI KAO IZVORI SL. 2-8 SPREZANJE DIGITALNIH UREĐAJA KOJI SU PROJEKTOVANI KAO PRIJEMNICI izlazni pin DC COM DC izvor napajanja + - Digitalni izlazni uređaj (izvor) izvor signal VDC DC izlazno kolo (prijemnik)
  • 2. Mali_kontroler/27 2.4. ANALOGNI U/I MODULI Analogni ulazni moduli su kola za spregu između kontinualnih (analognih) signala koji dolaze od mernih instrumenata i digitalnih (numeričkih) vrednosti kojima su ovi signali prikazani u PLC-u. Analogni izlazni moduli obezbeđuju spregu između numeričkih vrednosti u PLC-u i analognih signala koji predstavljaju ove vrednosti i koji služe za upravljanje izvršnim organima. U principu jedan modul se spreže sa više spoljnih uređaja, pri čemu se svaka sprega posmatra kao jedan ulazni ili izlazni kanal. Moduli se međusobno razlikuju po broju i vrsti kanala. Neki moduli su samo ulazni ili samo izlazni, a neki su kombinovani, što znači da imaju i izlazne i ulazne linije. Svaki modul se smešta u jedan slot na šasiji PLC-a (Sl. 2-9). Otuda se, sa gledišta adresiranja, on tretira isto kao i digitalni modul, s tim što je značenje pinova i broj bitova koji odgovaraju jednom pinu drugačiji. Drugim rečima podaci koji se preko modula unose u računar nalaziće se u određenim lokacijama datoteke ulaza (I), a podaci koji se iznose iz računara, nalaziće se u datoteci izlaza (O). Broj reči koji odgovara jednom kanalu zavisi od vrste samog modula. U principu se može smatrati da svakom ulaznom ili izlaznom kanalu odgovara po jedna reč, tako da se adresa kanala formira u skladu sa rednim brojem slota i rednim brojem kanala (Sl. 2-10). Sadržaj odgovarajućih memorijskih lokacija u ovim datotekama menja se u toku ulaznog ili izlaznog sken ciklusa. 2.4.1. ANALOGNI ULAZNI KANAL Nezavisno od toga koliko se ulaznih kanala nalazi na jednom modulu, modul, po pravilu, ima samo jedan A/D konvertor. U toku ulaznog sken ciklusa, uz pomoć multipleksera, odabira se jedan po jedan ulazni kanal na modulu, izvrši se konverzija signala i on se smešta u odgovarajuću reč u datoteci ulaza. Imajući u vidu da je merni signal uvek zašumljen, signal koji dolazi preko analognog kanala se posle konverzije propušta kroz digitalni filter koji ima za cilj da odbaci komponente visokih učestanosti koji potiču od šuma. Tip i vrsta ovog ugrađenog filtra zavisi od proizvođača. Kod nekih tipova modula korisniku može sam da podešava parametre filtra. Pored toga, neki analogni moduli pružaju mogućnost korisniku da dobije i informacije o SL. 2-9 KOMBINOVANI ANALOGNI U/I MODUL SL. 2-10 ADRESIRANJE ANALOGNIH ULAZA I IZLAZA SL. 2-11 DIFERENCIJALNA SPREGA ANALOGNOG ULAZA
  • 3. Mali_kontroleri/28 prekoraćenju opsega ili o drugim aspektima rada modula. Vrsta A/D konvertora i njegova rezolucija zavise od tipa modula. U principu oni se kreću od 12 do 16 bitova. Kod posmatrane klase SLC kontrolera koriste se 16-bitni A/D konvertori. Otuda se svakom ulaznom kanalu pridružuje po jedna memorijska reč. To nadalje znači da se svaki ulazni kanal adresira pomoću adrese oblika I:e.w. U principu, moguće je pristupiti i pojedinom bitu unutar svake od ovih reči, no ti bitovi nemaju nikakvo pojedinačno značenje, pa se ne vidi razlog zašto bi se to radilo. Analogni davač se vezuje tako što se formira zatvoreno električno kolo. Pri tome, izvor napajanja tog kola može biti u samom modulu ili spolja. Za razliku od digitalnih U/I, kod analognih modula izvor napajanja je veoma često spoljni. Samo električno kolo se zatvara vezivanjem krajeva analognog davača sa pinovima na ploči analognog modula (Sl. 2-9). Svakom analognom ulaznom kanalu pridružena su 3 pina. Dva pina služe za ulaz signala, dok je treći pin vezan za zajedničku masu na samom modulu. Način njihovog korišćenja zavisi od vrste analognog davača sa koga se signal vodi na kanal. Ako davač ima dva, tri ili četiri izlaza onda se može izvesti diferencijalna sprega davača i modula. Svakom davaču pridružuje se zaseban izvor napajanja i svi kanali su međusobno odvojeni (Sl. 2-11). Za davače koji imaju samo dva ili tri izlaza, može se izvesti veza sa jednim krajem, tako da se električno kolo zatvara preko zajedničke tačke (mase) na samom modulu. U tom slučaju, dovoljan je jedan izvor napajanja za više analognih kanala (Sl. 2-12). Potrebno je da se istakne da diferencijalna sprega ima bolje karakteristike posebno kad se radi o potiskivanju smetnji koje potiču od napajanja. Anolgni ulazni kanali su, po pravilu, prilagođeni za standardizovane vrste signala (strujne ili naponske) i to u opsezima koji se najčešće sreću kod različitih analognih davača. Najčešće je modul tako podešen da se postavljanjem internih prekidača može definisati da li će se kanal koristiti za strujni ili naponski signal. Tipični skup signala koji se sreće kod analognih ulaza, zajedno sa njihovim celobrojnim prezentacijama kod 16-bitne konverzije dat je u tabeli T. 2-10. OPSEG NAPONA/STRUJE CELOBROJNA DECIMALNA REPREZENTACIJA (DATOTEKA ULAZA) REZOLUCIJA -10V dc do +10V dc -32768 do +32767 305.176µV 0 do 10V dc 0 do 32767 0 do 5V dc 0 do 16384 1 do 5V dc 3277 do 16384 -20mA do +20mA -16384 do +16384 1.2207µA0 do 20mA 0 do 16384 4 do 20mA 3277 do 16384 U skladu sa vrednostima iz tabele, očigledno je da se pretvaranje dobijenih vrednosti u odgovarajuće električne veličine može izvršiti prema sledećim formulama SL. 2-12 SPREGA ANALOGNOG ULAZA SA JEDNIM KRAJEM T. 2-10 OPSEG ULAZNIH SIGNALA I NJIHOVA KONVERZIJA U CELOBROJNE VREDNOSTI
  • 4. Mali_kontroler/29 ULAZNI NAPON (V) ×= 32768 10 CELOBROJNA DECIMALNA VREDNOST ULAZNA STRUJA (mA) ×= 16384 20 CELOBROJNA DECIMALNA VREDNOST Neki analogni moduli pružaju mogućnost da se zahteva da sam modul interno izvrši konverziju u električne ili inženjerske jedinice. Ukoliko modul nema takvu opciju, konverzija može da se izvrši programski. Problemima transformacije signala biće kasnije, kada se prouči programiranje PLC-a, posvećeno više pažnje. Napomenimo još, da najveći broj analognih modula interno skenira ulazne kanale i vrši A/D konverziju ulaznih signala daleko češće nego što to zahteva sken ciklus PLC-a. Sve konvertovane vrednosti nalaze se u skupu internih registara PLC-a i bivaju zamenjene sa novim vrednostima posle sledeće konverzije. Sadržaj tih registara, se međutim, prebacuje u odgovarajuće područje datoteke ulaza samo u toku ulaznog sken ciklusa. Ukoliko je korisniku, iz nekog razloga, važno da raspolaže i sa trenutnom vrednošću ulaza na nekom kanalu, on to može da ostvari posebnom programskom naredbom koja će uzeti traženu vrednost iz registra i smestiti je na odgovarajuće mesto u datoteci. 2.4.2. ANALOGNI IZLAZNI KANAL Za razliku od analognih ulaza, svakom analognom izlaznom kanalu pridružen je poseban D/A konvertor. Pomoću njega se celobrojna vrednost koja se nalazi na odgovarajućem mestu u datoteci izlaza pretvara u strujni ili naponski signal. U principu, moduli se razlikuju po rezoluciji, ali se najčešće sreću konvertori čija je rezolucija 12 do 14 bitova. Kod posmatrane klase kontrolera koriste se 14-bitni D/A konvertori. Otuda se svakom izlaznom kanalu pridružuje po jedna memorijska reč. To nadalje znači da se svaki izlazni kanal adresira pomoću adrese oblika O:e.w. Pri tome se za smeštanje podatka koristi 14 levih bitova, tako da dva poslednja desna bita nisu u upotrebi. To znači da se po četiri celobrojna podatka koja se međusobno razlikuju samo u vrednosti dva poslednja desna bita (koja odgovaraju stepenima 20 i 21 ) konvertuju u isti analogni signal kao što je to ilustrovano na Sl. 2-13. To znači da je najmanje značajan bit (LSB) zapravo bit uz 22 . Otuda se rezolucija konvertora, odnosno najmanji kvant rezultujućeg analognog signala određuje prema sledećoj relaciji X X X X X X X X X X X X X X 0 0 20 21 22 23 24 25 26 27 28 29 210 211 212 213 214 215 X X X X X X X X X X X X X X 0 1 X X X X X X X X X X X X X X 1 0 X X X X X X X X X X X X X X 1 1 Celobrojni podatak koji se konvertuje Najmanja celobrojna vrednost različita od nule: 22 = 4 (ili 5, 6, 7) Najveća celobrojna pozitivna vrednost: 215 - 22 = 32764 (ili 32765, 32766, 32767) SL. 2-13 RELEVANTNI BITOVI KOD 14-TO BITNE A/D KONVERZIJE
  • 5. Mali_kontroleri/30 opseg analognog izlaza r 4 opseg celobrojnih vrednosti = × Kao i analogni ulazi, i analogni izlazi se prave za standardizovane naponske i strujne signale. Pri tome, za razliku od ulaznih modula, ovde je svaki kanal unapred formiran za prenošenje ili naponskih ili strujnih signala. Tipičan skup signala i način njihovog pretvaranja iz celobrojnih vrednosti u električne signale dat je u tabeli T. 2-11. U skladu sa podacima iz tablice, vidi se da se konverzija vrednosti može izvršiti prema sledećim relacijama CELOBROJNA DECIMALNA VREDNOST ×= 10 32768 IZLAZNI NAPON (V) CELOBROJNA DECIMALNA VREDNOST ×= 21 32768 IZLAZNA STRUJA (mA) Pri tome je potrebno zapaziti da će se isti rezultat dobiti i ako se u gornjim relacijama koristi konstanta 32764 umesto 32768. Naime, razlika u rezultatu ogledaće se samo u poslednja dva bita koja se, kao što je već rečeno, ne koriste pri D/A konverziji. CELOBROJNA DECIMALNA REPEREZENTACIJA (DATOTEKA IZLAZA) OPSEG NAPONA/STRUJE REZOLUCIJA -32768 do +32764 -10V dc do +10V dc 1.2207mV 0 do 32764 0 do 10V dc 0 do 16384 0 do 5V dc 3277 do 16384 1 do 5V dc 0 do 32764 0 do 21mA 2.56348µA0 do 31208 0 do 20mA 6242 do 31208 4 do 20mA T. 2-11 OPSEG IZLAZNIH SIGNALA I KONVERZIJA CELOBROJNIH VREDNOSTI U ELEKTRIČNE VELIČINE 2.5. FORMIRANJE PROJEKTA SL. 2-14 POKRETANJE PROJEKTA I IZBOR PROCESORA
  • 6. Mali_kontroler/31 Formiranje projekta započinje uvek specifikacijom samog kontrolera na kome će se data aplikacija realizovati. To znači da korisnik mora da pruži informaciju o vrsti i tipu procesorskog modula koji će se koristiti, o ulazno izlaznim modulima koji će se postaviti u šasiji i o tipu računarske mreže u koju će taj kontroler biti vezan. Najveći broj proizvođača PLC-ova razvio je i odgovarajući grafički korisnički interfejs koji omogućava korisniku da na veoma jednostavan način izvrši ove operacije. U tom slučaju specifikacija se odvija kroz sistem "prozora" okviru kojih se korisniku nude sve moguće opcije među kojima on odabira onu koja odgovara datoj konfiguraciji. Za kontrolere tipa SLC500 i MicroLogix na raspolaganju je softverski alat RSLogix500. Pokretanjem ovog alata korisniku se pruža mogućnost da kreira novi projekat ili ažurira već postojeći. Ukoliko se otvara novi projekat onda je kao prvo neophodno da se specificira procesor koji će biti korišćen u kontroleru. Ova specifikacija se obavlja izborom željenog procesora sa liste raspoloživi procesora. Na Sl. 2-14 se vidi izbor procesora SLC 5/03 sa 16K memorije. SL. 2-15 IZBOR ŠASIJE I U/I MODULA Čim se odabere procesor automatski se otvara prozor koji omogućava dalju specifikaciju kontrolera i započinjanje pisanja programa. Samo se po sebi razume da je pre formiranja programa neophodno da se definišu ulazni i izlazni moduli čije podatke će program da koristi. Otuda je sledeći korak selekcija opcije IO Configuration, čime se korisniku pruža mogućnost da odabere tip šasije koji želi dakoristi, a zatim da redom odabira ulazno/izlazne module koje će postaviti u slotove 1, 2, itd (Sl. 2-15). Potrebno je Izbor šasije Izbor U/I modula u slotu 1
  • 7. Mali_kontroleri/32 zapaziti da je u slotu 0 već smešten odabrani procesor. Na Sl. 2-16 prikazana je odabrana konfiguracija kontrolera. Budući da je odabrana šasija koja ima 4 slota, pored procesora definisana su još 3 U/I modula. koji izgled prozora pri definiciji konfiguracije PLC-a iz familije Allen Bradley SLC 500 Modular Controllers. Sa slike se vidi da se u slotu 0 nalazi procesorski modul tipa 5/03, koji u šasiji ima prostor za još tri modula. Kao što se vidi sa Sl. 2-15 u slotu 1 nalazi se kombinovani digitalni modul sa 6 ulaza i 6 izlaza. Ovaj modul imaće adrese I:1.0/b i O:1.0/b gde je b redni broj bita koji može imati vrednost od 0 do 5. Pri tome, ulazni signali moraju biti jednosmerni u opsegu do 24 V, dok su izlazni signali prilagođeni standardima za upravljanje relejima. U slotu 2 smešten je modul sa 2 analogna ulazna kanala i 2 analogna izlazna kanala. Ulazni kanali mogu da se koriste za ulaz strujnih signala (-20mA do +20 mA) ili za ulaz naponskih signala (–10V do +10V), što se podešava postavljanjem internih prekidača. Adrese ova dva ulazna kanala su I:2.0 i I:2.1. Oba izlazna kanala daju jednosmerne naponske signale u opsegu od –10V do +10V, dok su adrese ova dva izlaza O:2.0 i O:2.1. U slotu 3 nalazi se digitalni ulazni modul sa osam ulaza (I:3.0/b , b = 0,1,.. ,7). Ovaj modul prima digitalne signale koji su naizmenični u opsegu do 200/240 V. SL. 2-16 PRIMER KONFIGURISANJA PLC-A Tek kada se definiše struktura PLC-a može se početi sa formiranjem programa. Kao što je već rečeno, svaki proizvođač PLC-a razvija i posebni softverski alat koji omogućava da se na izuzetno jednostavan način definiše struktura PLC-a i formira odgovarajući program. Ovaj alat, koji kod najvećeg broja proizvođača korristi grafički interfejs (GUI), omogućava da se PLC emulira na standardnom PC računaru. To zapravo znači da se, sa gledišta korsinika, PC računar na kome je softverski alat instaliran ponaša kao PLC. Korisnik, u fazi definisanja aplikacije, razvijanja i testiranja programa, ima mogućnost da koristi sve opcije i pogodnosti PC računara. Kada je program razvijen on se, posebnom tehnikom, prebaci na PLC (down load programa). Ukoliko PLC ostane i dalje u vezi sa PC računarom, onda se isti softverski alat može koristiti da se pomoću PC- a prati izvršavanje formiranog algoritma i obavljaju eventualne korekcije.
  • 8. Leder_uvod/33 3. LEDER PROGRAMIRANJE 3.1. UVOD U LEDER PROGRAMIRANJE Kao što je već rečeno jedna programska linija leder jezika sastoji se iz niza grafičkih simbola (programskih naredbi) koji predstavljaju različite logičke elemente i druge komponente kao što su časovnici i brojači, koji su poređani duž horizontalne linije – rang (rung) – koja je na oba kraja spojena sa dvema vertikalnim linijama. Prema tome, leder dijagram ima izgled lestvica, odakle potiče i njegov naziv (ladder – lestvice). Svaki rang leder dijagrama sastoji se iz dva dela. Na levoj strani ranga nalazi se uslov izražen u formi kontaktne (prekidačke) logike, dok se na desnoj strani ranga nalazi akcija koja treba da se izvrši ukoliko je uslov ispunjen (true) (Sl. 3-1). U literaturi je uobičajeno da se i simboli koji označavaju uslov i simboli koji označavaju akciju označavaju kao naredbe. Otuda je neophodno da se istakne suštinska razlika između naredbi uslova i naredbi akcije. Naime, izvršavanje naredbi uslova obavlja se tako što se u zavisnosti od vrednosti operanda, prema pridruženoj tablici istinitosti, naredbi dodeljuje vrednost (0 ili 1). Dakle, naredbe uslova se izvršavaju u svakom sken ciklusa i rezultat njihovog izvođenja je vrednost naredbe. Za razliku od toga naredbama akcije se ili dodeljuje vrednost nekoj promenljivoj ili izvršava neka druga aktivnost. Ove naredbe se izvršavaju samo ako je uslov koji im prethodi istinit (dodeljena mu je vrednost 1). Pri tome se samim naredbama akcije ne dodeljuje nikakva vrednost. Leder program se izvršava u toku programskog dela sken ciklusa i to tako što se obrađuje rang po rang u nizu kako su oni definisani. U svakom rangu ispituje se istinitost uslova i ukoliko je uslov istinit izvršavaju se odgovarajuće naredbe u desnom delu ranga. To znači da promenljive na desnom delu ranga mogu menjati svoju vrednost samo jedanput u toku sken ciklusa, i to upravo onda kada se odgovarajući rang ispituje. Potrebno je zapaziti, međutim, da ukoliko se promenljiva na desnoj strani ranga odnosi na fizički izlaz, vrednost izlaza neće biti promenjena u istom trenutku vremena. Naime, za vreme programskog skena menjaju se samo vrednosti promenljivih smeštenih u datoteku izlaza (output image file). Tek kasnije, za vreme izlaznog dela sken ciklusa, sve promenljive iz datoteke izlaza biće prenete na odgovarajuće izlazne linije. Ista stvar važi i za ulazne promenljive. Drugim rečima, za vreme programskog skena ispitivanje istinitosti uslova odnosi se na vrednosti promenljivih u datoteci ulaza (input image file), koje su tu upisane za vreme ulaznog dela sken ciklusa koji je prethodio programskom skenu, a ne na trenutne vrednosti promenljivih na ulaznim linijama. Naravno, svi uslovi i naredbe koji su vezani za interne promenljive izvršavaju se u trenutku skeniranja pojedinog ranga. 3.2. BIT NAREDBE Bit naredbe su, kao što samo ime kaže naredbe čiji su operandi bitovi. Sa gledišta lokacije operanada, to znači da se oni najčešće nalaze u datoteci 3 (bit file), digitalnim ulaznim ili izlaznim datotekama (input image file 1 ili output image file 0) ili u korisničkim datotekama bit tipa. Pored toga, adresirani operand može da se nalazi i u bilo kojoj drugoj datoteci u okviru koje je moguće adresirati pojedini bit. Gledano potpuno opšte za vreme programskog skena u okviru bit naredbi ispituje se stanje pojedinog bita, ili se njegova vrednost postavlja na 1 (set) ili na 0 (reset). SL. 3-1 LEDER RANG
  • 9. Leder_uvod/34 3.2.1. BIT NAREDBE ZA DEFINISANJE USLOVA Ove naredbe se postavljaju na levoj strani ranga i definišu uslov koji se odnosi na stanje bita čija je adresa definisana u naredbi. Kao rezultat izvođenja naredba dobija istinosnu vrednost true (istinit) ili false (neistinit) . • XIC - Examine if closed (ispitivanje da li je kontakt zatvoren) • XIO - Examine if open (ispitivanje da li je kontakt otvoren) Nazivi ove dve naredbe potiču od ispitivanja binarnnih signala koji dolaze sa prekidačkih kola. U tom smislu XIC naredba se odnosi na normalno otvoren prekidač (ima vrednost 1 kada je prekidač pritisnut), dok se XIO naredba odnosi na normalno zatvoren prekidač (ima vrednost 1 kada prekidač niej pritisnut – "ne a"). 3.2.2. BIT NAREDBE ZA POSTAVLJANJE VREDNOSTI IZLAZA Ovim naredbama se bitu čija je adresa navedena u naredbi dodeljuje vrednost 1 ili 0. Podsetimo se da se ove nardebe nalaze na desnoj strani ranga, što znači da će se one izvršiti samo ako je iskaz (uslov) na levoj strani ranga istinit. • OTE - Output energize (pobuđivanje izlaza) Potrebno je da se zapazi da se ovom naredbom vrednost bita čija je adresa “a” može promeniti samo jedanput za vreme sken ciklusa. Ova vrednost ostaće neizmenjena sve do sledećeg sken ciklusa, kada će se pri skeniranju odgovarajućeg ranga ponovo ispitati uslov i izvesti odgovarajuća akcija. • OTL - Output latch (pamćenje izlaza) OTL naredbom se adresovani bit može isključivo postaviti na 1. Naime za razliku od OTE naredbe kojom se vrednost bita može postavljati na 0 ili 1 svaki put kad se rang
  • 10. Leder_uvod/35 skenira, kod OTL naredbe vrednost bita se postavlja (lečuje) na 1 u prvom skenu u kome je uslov istinit. Nakon toga ova naredba postaje neosetljiva na istinosnu vrednost uslova. To znači da će vrednost bita ostati neizmenjena bez obzira na to kako se menja vrednost uslova. • OTU - Output unlatch (resetovanje izlaza) OTU naredbom se adresovani bit može isključivo postaviti na 0. Pri tome, vrednost bita se postavlja (lečuje) na 0 u prvom skenu u kome je uslov ispunjen. Nakon toga ova naredba postaje neosetljiva na vrednost uslova. Potrebno je da se istakne da se OTL i OUT naredba koriste uvek u paru, pri čemu se u obe naredbe adresira isti bit. 3.2.3. BIT TRIGER NAREDBA • OSR - One-shot rising (uzlazna ivica) OSR naredba omogućava da se obezbedi izvođenje neke akcije samo jedanput. Potrebno je da se istakne da je ovo specifična naredba koja istovremeno pripada i kategoriji uslova i kategoriji akcije. Naime ova naredba se postavlja u rangu između dela koji predstavlja uslov i dela koji predstavlja akciju. Kada se u toku sken ciklusa detektuje da je uslov promenio svoju vrednost sa neistinit na istinit (uzlazna ivica) onda OSR naredba takođe dobija vrednost istinit (što ovu naredbu svrstava u kategoriju naredbi uslova). Istovremeno se i bitu čija je adresa pridružena toj naredbi dodeljuje vrednost 1 (po čemu se ova naredba svrstava i u kategoriju akcija). Obe ove vrednosti ostaju nepromenjene do sledećeg sken ciklusa, kada naredba dobija vrednost neistinit, dok se adresovani bit postavlja na vrednost 0 ili 1 u zavisnosti od vrednosti uslova. U narednim sken ciklusima vrednost naredbe ostaje nepromenjena sve dok se u uslovu (koji predstavlja ulaz u OSR) ponovo ne detektuje prelaz “neistinit/istinit”. Potrebno je da se istakne da bit čija je adresa pridružena ovoj naredbi ne predstavlja vrednost naredbe. Naime, ovaj bit se koristi kao interna promenljiva i služi za pamćenje vrednosti uslova koji prethodi OSR naredbi. Vrednost ovog bita je 1 ako je uslov istinit, odnosno 0 ako je uslov neistinit. U tom smislu, sa aspekta dodeljivanja vrednosti bitu čija se adresa navodi u OSR naredbi, ova naredba je identična sa OTE naredbom. Navedeni bit se može nalaziti u bilo kojoj bit-adresibilnoj datoteci izuzev datoteke ulaza i izlaza. Vrednost koju dobija OSR naredba koristi se kao uslov za izvođenje naredbe akcije koja se nalazi na desnoj strani ranga (neposredno iza OSR naredbe). Shodno tome, naredba akcije biće izvršavana po jedanput pri svakom prelazu uslova “neistinit/istinit”. Iza OSR naredbe se može nalaziti samo jedna naredba akcije. (Kod kontrolera tipa SLC 500 i SLC 5/01 OSR naredba se ne sme nalaziti u paralelenim granama na
  • 11. Leder_uvod/36 desnoj strani ranga). Kod kontrolera tipa MicroLogix postoje i ONS i OSF naredbe. ONS naredba ima isti efekat kao i OSR, što znači da je aktivna pri uzlaznoj ivici signala (promena sa neistinit na istinit), dok je OSF naredba aktivna pri silaznoj ivici (promena sa istinit na neistinit), 3.2.4. PROGRAMSKI SKEN I VREMENSKI DIJAGRAM U toku programskog skena procesor izvršava pojedinačne naredbe, obrađujući rang po rang od početka pa do kraja programa. U okviru obrade jednog ranga, procesor ispituje stanja bitova u datotekama podataka, određuje vrednost pojedinačnih naredbi uslova, izvršava logičke I i ILI operacije nad tim vrednostima, u skladu sa načinom na koji je formiran desni deo ranga, i kao rezultat tih operacija određuje istinosnu vrednost uslova. Ukoliko je ova vrednost istinit, procesor će izvršiti naredbe koje se nalaze na levoj strani ranga i koje predstavljaju akciju. U cilju ilustracije izvršavanja leder programa u PLC-u posmatraćemo jedan rang (Sl. 3-2) nekog programa. U okviru ovog ranga ispituje se stanje jedne ulazne linije koja je vezana za nulti pin ulaznog dela kombinovanog U/I modula, smeštenog u slotu 1 PLC-a. Na osnovu stanja ulazne linije generiše se signal na izlaznoj liniji koja je vezana za nulti pin izlaznog dela istog U/I modula. Na slici Sl. 3-3 prikazan je vremenski dijagram promene signala na ulaznoj liniji, vrednosti bita u input image file-u koji je pridružen toj liniji, vrednosti bita u output image file-u i signala na izlaznoj liniji koji je sa tim bitom povezan. Pretpostavljeno je da ceo program ima više ulaznih signala i više izlaznih signala čije očitavanje, odnosno generisanje zahteva određeni period vremena za ulazni i izlazni sken interval. Isto tako, pretpostavljeno je i da se program sastoji od više rangova, čija obrada zahteva neki period vremena (programski sken interval). Potrebno je da se zapazi da se stanje signala na ulaznoj liniji može promeniti u sken programa sken programa sken programa sken programa sken izlaza sken ulaza sken izlaza sken ulaza sken izlaza sken ulaza sken izlaza vreme 10 42 3 10 42 3 10 42 3 10 42 3 ulazna linija vrednost bita I:1/0 vrednost bita O:1/0 Izlazna linija 43210 sken ciklus 1 sken ciklus2 sken ciklus3 sken ciklus 4 sken ulaza SL. 3-2 POSTAVLJANJE IZLAZA U ZAVISNOSTI OD VREDNOSTI ULAZA SL. 3-3 VREMENSKI DIJAGRAM PROMENE U/I LINIJA I ODGOVARAJUĆEG RANGA
  • 12. Leder_uvod/37 bilo kom trenutku. Međutim, vrednost bita pridružena toj liniji biće promenjena tek u toku prvog ulaznog sken ciklusa koji nastupa posle promene stanja ulazne linije. Za vreme programskog skena vrednost XIC naredbe se određuje na osnovu stanja odgovarajućeg bita, a ne njemu odgovarajućeg ulaznog signala. Otuda je u prvom sken ciklusu vrednost ove naredbe 0 iako je ulazni signal već u stanju logičke jedinice. Međutim, budući da je on promenio stanje tek posle prvog ulaznog skena, ta promena još uvek nije registrovana postavljanjem njemu odgovarajućeg bita, koji je odgovaran za vrednost XIC naredbe. U skladu sa tim, ne izvršava se OTE naredba, pa izlazni bit i njemu odgovarajuća izlazna linija ostaju u stanju 0. Promena na ulazu dovodi do promene ulaznog bita tek u drugom ulaznom sken ciklusu, tako da tek u drugom programskom ciklusu XIC naredba dobija vrednost istinit. Kao rezultat ove vrednosti izvršava se OTE naredba i izlazni bit postavlja na vrednost 1. U toku drugog izlaznog sken ciklusa ova vrednost prenosi se na izlaznu liniju gde se generiše signal koji odgovara logičkoj jedinici. Kašnjenje između trenutka u kome signal na ulaznoj liniji menja vrednost i trenutka u kome se ta promena registruje postavljanjem odgovarajućeg bita, kao i kašnjenje između trenutka u kome izlazni bit dobija neku vrednost i trenutka kada se ta vrednost pojavi na izlaznoj liniji može se izbeći posebnim neposrednim naredbama, o kojima će kasnije biti više reči. 3.2.5. PRIMERI PR. 3-1 UPRAVLJANJE PALJENJEM SIJALICE ZADATAK Posmatra se električno kolo (Sl. 3-4) u kome sijalica S svetli kada je zatvoren prekidač P1 i jedan od prekidača P2 ili P3. Potrebno je da se ovo električno kolo zameni sa PLC-om. PROJEKTOVANJE SISTEMA Da bi se postavljeni zadatak rešio neophodno je kao prvo da se ustanovi sa kojom opremom se raspolaže i da se odluči kako će se ona vezati za PLC. Pretpostavimo da imamo tri tastera od kojih su dva normalno otvorena i jedan normalno zatvoren i jedno električno kolo u kome se nalazi sijalica koje se zatvara pomoću releja. Usvojićemo da normalno otvoreni tasteri obavljaju funkciju prekidača P1 i P3, dok će normalno zatvoren taster obavljati funkciju prekidača P2. U skladu sa odabranim senzorima i izvršnim organom neophodno je da raspolažemo sa tri digitalna ulaza i jednim digitalnim izlazom. Budući da imamo PLC koji u prvom slotu ima digitalni U/I modul, možemo izvršiti vezivanje opreme. Po prirodi stvari vezaćemo tri tastera za ulazne pinove 0, 1 i 2, dok će rele na izlazu biti vezano za izlazni pin 0. Shodno tome, adrese prekidača P1, P2 i P3 su respektivno I:1/0, I:1/1 i I:1/2, dok je adresa sijalice O:1/0 (Sl. 3-5). PROGRAMIRANJE Kada je formirana šema vezivanja opreme za PLC, onda se pristupa pisanju leder programa. U cilju formiranja levog dela ranga treba uočiti da je uslov za paljenje sijalice da se SL. 3-4 ELEKTRIČNO KOLO SL. 3-5 SPREZANJE SENZORA I IZVRŠNOG ORGANA SA PLCOM
  • 13. Leder_uvod/38 istovremeno pritisne taster P1 i jedan od tastera P2 ili P3. Budući da su tasteri P1 i P3 normalno otvoreni, pritisak na njih dovodi do zatvaranja odgovarajućih prekidačkih kola, tako da se može detektovati pomoću XIC naredbe, koja će dobiti vrednost istinit kada su vrednosti odgovarajućih bitova u datoteci ulaza (I:1/0 и I:1/2) postavljene na 1. Pritisak na taster P2 koji je normalno zatvoren, dovodi do otvaranja njegovog prekidačkog kola, što znači da se može detektovati pomoću XIO naredbe, koja će dobiti vrednost istinit kada je vrednost odgovarajućeg bita u datoteci ulaza (I:1/1) postavljena na 0. Konačno, kako se nad tasterima 2 i 3 zahteva logička ILI operacija, to odgovarajuće naredbe moraju biti vezane paralelno. Ispunjenost uslova treba da obezbedi da se na izlaznom pinu generiše naponski signal koji će da prouzrokuje paljenje sijalice. Ovaj zahtev se može ostvariti OTE naredbom. U skladu sa time odgovarajući rang leder programa ima izgled kao na Sl. 3-6. Svakom bitu koji se koristi u leder programu može se pridružiti simboličko ime. U principu nema nikakvih posebnih pravila u pogledu davanja imena. Ipak praksa je pokazala da je pogodno da se ime formira tako da što vernije opisuje fizičko značenje signala na koji se odnosi. Pored toga, u cilju lakše provere ispravnosti programa, pogodno je da se ime formira tako da odgovara stanju pri kome bit koji se ispituje ima vrednost 1. Poštujući taj princip, u ovom primeru je bitu I:1/0 dato ime p1_on (bit I:1/0 ima vrednost 1 kao je P1 pritisnut (on), dok je bitu I:1/1 dato ime p2_off (bit I:1/1 ima vrednost 1 kad je P2 nepritisnut(off). U skladu sa time prva XIC naredba koja ispituje vrednost bita na adresi I:1/0 dobiće vrednost istinit ako bit ima vrednost 1 što znači da taster P1 jeste pritisnut. Isto tako XIO naredba koja ispituje vrednost bita na adresi I:1/1 dobiće vrednost istinit ukoliko bit nema vrednost 1, što znači da taster P2 nije nepritisnut. SAMODRŽANJE Opisani sistem će ispravno raditi samo dotle dok se odgovarajući tasteri drže pritisnuti. Naime, čim se taster otpusti on se vraća u normalni položaj i u sledećem sken ciklusu, uslov više neće biti ispunjen, pa će se sijalica ugasiti. Prirodno je međutim da se zahtev postavi tako da sijalica nastavi da svetli i posle otpuštanja tastera. Postavljeni zadatak može se rešiti tako što će se na neki način upamtiti da je uslov za paljenje sijalice u nekom trenutku bio ispunjen. U tu svrhu može se na izlaznom delu ranga umesto OTE naredbe postaviti OTL naredba koja će obezbediti trajno postavljanje (lečovanje) izlaza (Sl. SL. 3-6 LEDER PROGRAM KOJI REALIZUJE ELEKTRIČNO KOLO SL. 3-7 LEDER PROGRAM KOJI TRAJNO POSTAVLJA IZLAZNI BIT ("PAMTI" AKO JE USLOV BIO ISPUNJEN)
  • 14. Leder_uvod/39 3-7). Umesto korišćenjem naredbe OTL isti efekat se može postići i postupkom takozvanog samodržanja kojim se zadržava vrednost izlazne promenljive i posle prestanka uslova za njeno aktiviranje. Naime, ako se u delu ranga koji predstavlja uslov doda još jedna paralelna grana sa XIC naredbom u kojoj se ispituje upravo bit koji se postavlja kao izlaz tog ranga (Sl. 3-8) onda će, čim se pritiskanjem tastera uslov prvi put ispuni, odgovarajući bit biti postavljen na 1, što znači da će u sledećim sken ciklusima naredba u paralelnoj grani stalno imati vrednost istinit, pa se vrednost izlaznog bita neće menjati sa promenom stanja tastera. ZAUSTAVLJANJE Potrebno je da se istakne da su poslednja dva primera formirana tako da će sijalica kad se jedanput upali nastaviti da svetli neograničeno dugo. Da bi se omogućilo i gašenje sijalice neophodno je da sistemu doda još jedan taster (Stop). Pritiskom na ovaj taster, jedanput upaljena sijalica, bi bila isključena. Ako se pretpostavi da je ovaj taster normalno otvoren i da je vezan na pin 3 istog ulaznog modula, onda se postavljeni zadatak može realizovati na način koji je prikazan na slikama Sl. 3-9 i Sl. 3-10. Ovde je, naime na red sa delom ranga kojim se ostvaruje paljenje sijalice, vezan uslov kojim se proverava da li Stop taster nije pritisnu. Sve dok Stop taster nije pritisnut, vrednost tog dela uslova je istinita, dakle on ne utiče na ponašanje sijalice. Kad se Stop taster pritisne, vrednost tog dela uslova postaje neistinita, a budući da je to redni (serijski) uslov, i vrednost celog ranga postaje neistinita. U tom slučaju u programu sa trajnim postavljanjem izlaznog bita uslov u drugom rangu postaje istinit i aktivira naredba OTU (Sl. 3-9). Kod rešenja sa samodržanjem, sama činjenica da u rangu jedan od redno vezanih uslova postaje neistinit dovodi do toga da je uslov neistinit pa se izlazni bit OTE naredbom postavlja na 0 (Sl. 3-10). SL. 3-8 – LEDER PROGRAM SA POSTUPKOM SAMODRŽANJA SL. 3-9 – LEDER PROGRAM SA TRAJNIM PAMĆENJEM USLOVA DO PRITISKA STOP TASTERA
  • 15. Leder_uvod/40 Zapazimo da bi ceo problem oko paljenja i gašenja sijalice bio bi rešen rangom koji je prikazan na Sl. 3-6, da su umesto tastera korišćeni dvopoložajni prekidači. PR. 3-2 PUŠTANJE SISTEMA U RAD ZADATAK Posmatra se sistem koji počinje da radi kada se pritisne START taster. Sistem nastavlja sa radom sve dok se ne pritisne stop taster. Istovremeno se zahteva da se prilikom započinjanja rada sistema generiše impulsni signal koji realizuje brzo “zamrzavanje” nekog LED displeja. Potrebno je da se formira leder program koji će podržavati rad opisanog sistema uz pretpostavku da se on pušta u rad pomoću jednog “on/off” motora. REŠENJE Neka su kola koja sadrže START i STOP taster kao i kolo za pobudu motora vezani za U/I modul koji je smešten u slotu 1 PLC-a i to na pinove kojima respektivno odgovaraju adrese I:1/0, I:1/1 i O:1/0. Neka je nadalje signal koji upravlja zamrzavanjem displeja vezan za izlazni pin čija je adresa O:1/1. Odgovarajući leder program dat je na Sl. 3-11. U prvom rangu uslov je ispunjen ako je START taster pritisnut i STOP taster nije pritisnut. U tom slučaju generisaće se signal za start motora i on će biti zalečovan, tako da se njegova vrednost neće menjati ukoliko se zbog otpuštanja START tastera promeni vrednost uslova. Istovremeno će, prilikom pritiska START tastera, OSR naredba detektovati promenu neistinit/istinit što će dovesti do toga da ona u tom sken ciklusu dobije vrednost istinit tako da će se izvršiti OTE naredba kojom se na izlazu O:1/1 generiše potreban impulsni signal. Sve dok se ne pritisne STOP taster, vrednost uslova u drugom rangu biće neistinita, tako da se naredba unletch neće izvršavati. Kada se pritisne STOP taster, uslov u prvom rangu postaje neistinit, što znači da se letch naredba ne izvršava. Međutim, vrednost uslova u drugom rangu postaje istinita, pa se izvršava unletch naredba, i time signal za start motora dobija vrednost “logičke” nule, pa se motor zaustavlja. SL. 3-10 – LEDER PROGRAM SA SAMODRŽANJEM DO PRITISKA STOP TASTERA SL. 3-11 – START/STOP LEDER PROGRAM
  • 16. Leder_uvod/41 PR. 3-3 REALIZACIJA SEKVENCE SL. 3-12 REALIZACIJA SEKVENCE POMERANJA KLIPOVA
  • 17. Leder_uvod/42 ZADATAK Dat je sistem koji sadrži jedan jednosmerni solenoid (A) i dva dvosmerna (B i C). Potrebno je realizovati sledeću sekvencu pomeranja klipova: A+ B+ C+ B- A- C- . Pri tome se pretpostavlja da su u početnom trenutku svi klipovi uvučeni. Granični prekidači koji indiciraju uvučenost klipa A i B su normalno zatvoreni, dok su svi ostali granični prekidači normalno otvoreni. Sistem se pušta u rad pomoću pritiska na taster i prestaje sa radom kada se jedanput izvrši zahtevana sekvenca. REŠENJE Jedno moguće rešenje postavljenog zadatka dato je na Sl. 3-12 Realizacija sekvence pomeranja klipova. Pri tome je pretpostavljeno da su granični prekidači vezani za PLC preko ulaznog modula koji se nalazi u slotu 3 (adrese I:3/b), dok se pobude solenoida dobijaju preko izlaznih linija modula u slotu 1 (adrese O:1/b). Start taster je vezan preko nultog pina modula u slotu 1 (I:1/0). Interne promenljive kreni (B3:0/0) i kraj (B3:0/2) koriste za otpočinjanje i završetak rada. Interna promenljiva vrati A (B3:0/1) služi za deaktiviranje pobude klipa A, posle čega ga opruga vraća u početni položaj. Potrebno je da se obrati pažnja na činjenicu da se, da ne bi došlo do slučajnog pomeranja klipova (izazvanog recimo nekim opterećenjem), oni u izvučenom položaju drže pod naponom, sve dok ne dođe trenutak za njihovo uvlačenje. Budući da se stanje graničnih prekidača menja čim se klip pomeri, da bi se obezbedio kontinuitet napajanja koristi se postupak samodržanja (rang 3 i 4). Zapazimo, takođe, da se stanje prekidača koji indiciraju uvučen položaj klipa ne može ispitivati samo po sebi. Naime ovi prekidači su pritisnuti u početnom stanju, pa je neophodno utvrditi da je došlo do pokreta pre nego što su oni ponovo pritisnuti (rang 5, 6 i7). 3.3. NAREDBE ZA MERENJE VREMENA I PREBROJAVANJE DOGAĐAJA 3.3.1. ČASOVNIK I BROJAČ Prilikom upravljanja ili nadzora procesa često je potrebno da se neka aktivnost otpočne ili zaustavi posle određenog vremenskog perioda, ili da se ponovi određeni broj puta. U tom smislu neophodno je da kontroler koji će se koristiti za upravljanje procesom pruži mogućnost za merenje vremena i prebrojavanje događaja. Prebrojavanje događaja obavlja brojač (counter), koji nakon registrovanja unapred zadanog broja događaja generiše odgovarajući signal. Merenje vremena ostvaruje se pomoću časovnika (timer). U suštini časovnik izražava vreme kao multipl određenog osnovnog intervala (vremenska baza). To zapravo znači da časovnik radi kao brojač protoka osnovnih intervala i da nakon isteka određenog, unapred zadanog intervala vremena, generiše odgovarajući signal. Gledano potpuno opšte merenje protoka vremena i prebrojavanje događaja u okviru kontrolera može se realizovati hardverski pomoću odgovarajućih računarskih komponenti (modula) ili softverski (programski). Hardverska realizacija podrazumeva da kontroler ima posebni modul koji ostvaruje funkciju časovnika i brojača. Korisnik odgovarajućim naredbama definiše parametre modula i u toku izvršavanja programa kontroliše njegov rad. U slučaju softverske realizacije, ovu funkciju ostvaruje posebni programski modul, koji korisnik, po potrebi, uključuje u svoj program i odgovarajućim naredbama upravlja njegovim radom. Sa aspekta načina korišćenja, gotovo da i nema razlike između ove dve realizacije. Razlika se zapravo ogleda samo u funkcionalnom smislu. U principu, ukoliko su časovnik i brojač hardverski realizovani oni svoju funkciju obavljaju autonomno, što znači da ne koriste procesor za svoj rad. Nasuprot tome, softverski realizovani časovnik i brojač, kao i svi drugi programski moduli, za izvođenje svojih funkcija zahtevaju izvesno procesorsko vreme. Budući da je procesor opterećen čitavim nizom poslova, to znači da postoji samo određeno vreme koje on može posvetiti radu časovnika i brojača. Otuda hardverska realizacija, bar u principu, omogućava rad sa manjim intervalima vremena, odnosno bržim ponavljanjem događaja od softverske. Sa druge strane međutim, softverska realizacija omogućava da se definiše i koristi praktično neograničen broj časovnika i brojača, jer se kao jedino ograničenje javlja veličina raspoložive memorije.
  • 18. Leder_uvod/43 U seriji kontrolera SLC 5 časovnici i brojači su realizovani softverski, i koriste se kao naredbe akcije. Kao što je već istaknuto ne postoji nikakvo posebno ograničenje u pogledu njihovog broja. Potrebno je da se naglasi da su za neke od SLC 5 kontrolera, kao i za MicroLogix kontrolere razvijeni i posebni hardverski brojači. Pri korišćenju časovnika i brojača neophodno je da se definišu sledeći parametri. • Vremenska baza (time base) određuje dužinu osnovnog intervala vremena. Kod fiksnog kontrolera SLC/500 i modularnog SLC 5/01, vremenska baza je definisana kao 0.01 sec. Kod kontrolera SLC 5/02, 5/03 i 5/04 bira se jedna od dve moguće vrednosti: 0.01 sec ili 1.0 sec. • Zadana vrednost (preset value - PRE) je vrednost kojom se definiše željeni broj osnovnog intervala vremena (čime se određuje ukupno vreme koje časovnik treba da izmeri), odnosno ukupni broj događaja koje brojač treba da registruje pre nego što se generiče signal koji označava da su časovnik ili brojač završili rad. Zadana vrednost za časovnik može da se kreće u intervalu od 0 do +32767, dok se zadana vrednost za brojač kreće u opsegu od -32768 do +32767. • Akumulirana vrednost (accumulated value - ACC) predstavlja broj osnovnih vremenskih intervala koje je časovnik izbrojao, odnosno broj događaja koje brojač registrovao u nekom trenutku. Kada akumulirana vrednost postane veća ili jednaka od zadane vrednosti časovnik, odnosno brojač, završavaju svoj rad. Opseg dozvoljenih vrednosti za akumuliranu vrednosti isti je kao i za zadanu vrednost. 3.3.2. DATOTEKA PODATAKA O ČASOVNIKU (TIMER DATA FILE) S obzirom da je časovnik realizovan softverski, parametri koji definišu njegov rad moraju biti smešteni u memoriji kontrolera. Za pamćenje podataka o časovnicima koristi se datoteka podataka broj 4 (timer file – T). U ovoj datoteci može se definisati najviše 256 različitih časovnika. Ukoliko je potrebno da se koristi veći broj časovnika, korisnik može definisati i dodatne datoteke (korisnički definisane datoteke) čiji su brojevi od 9 do 255. Svakom časovniku pridružuju se po jedan element koji se sastoji se od tri 16-bitne reči (Sl. 3-13). Potrebno je da se zapazi da redni broj elementa zapravo definiše jedan određeni časovnik unutar jedne datoteke časovnika. Svaki od tri bita stanja, kao i zadana i akumulirana vrednost mogu se posebno adresirati i to bilo na standardan način na koji se formira adresa u bilo kojoj datoteci podataka, bilo preko odgovarajućih simbola. To zapravo znači da su sledeće adrese međusobno ekvivalentne: Tf:e.1 ili Tf:e.PRE Tf:e.2 ili Tf:e.ACC Tf:e.0/15 ili Tf:e/15 ili Tf:e/EN Tf:e.0/14 ili Tf:e/14 ili Tf:e/TT Tf:e.0/13 ili Tf:e/13 ili Tf:e/DN SL. 3-13 ELEMENAT DATOTEKE ČASOVNIKA I ADRESIRANJE ČASOVNIKA
  • 19. Leder_uvod/44 3.3.3. NAREDBE ZA RAD SA ČASOVNIKOM Kao što je već rečeno naredbe časovnika su naredbe akcije, što znači da se nalaze na desnoj strani ranga u leder programu. Postoje tri tipa naredbi kojima se realizuju tri vrste časovnika, i jedna naredba kojom se stanje časovnika resetuje. Potrebno je da se istakne da se sam časovnik i način njegovog rada definiše preko naredbe koja se uvrštava u leder program. Drugim rečima, kad se u program stavi jedna od moguće tri naredbe i u njoj naznači adresa časovnika u odgovarajućem formatu, onda operativni sistem sam zauzme tri reči u datoteci koja je navedena u adresi. • Timer on-delay (TON) Kao što je već rečeno, stavljanjem ove naredbe u leder program automatski se definiše prva vrsta časovnika i zauzimaju tri reči koje čine elemenat broj e u datoteci časovnika broj f. Prilikom formiranja naredbe specificiraju se i vremenska baza (tx) i zadana vrednost (ns). Akumulirana vrednost (na)se automatski postavlja na 0. TON naredba započinje rad časovnika (prebrojavanje osnovnih vremenskih intervala) za vreme onog programskog sken ciklusa u kome uslov u rangu u kome se naredba nalazi prvi put postaje istinit (prelaz neistini/istinit – uzlazna ivica). U svakom sledećem sken ciklusu, sve dok je uslov istinit časovnik vrši ažuriranje akumulirane vrednosti (ACC) u skladu sa proteklim vremenom između dva ciklusa. Kada akumulirana vrednost dostigne zadanu vrednost, časovnik prekida svoj rad i postavlja DN bit na 1. Pri tome, ako u nekom sken ciklusu uslov postane neistinit, časovnik prekida svoj rad i akumulirana vrednost se postavlja na 0, bez obzira da li je časovnik pre toga izmerio zahtevano vreme ili ne. Bitovi stanja časovnika menjaju se u toku programskog sken ciklusa na sledeći način: • DN - Timer done bit se postavlja na 1 kada je ACC ≥ PRE. On se resetuje na 0 kad uslov u rangu postane neistinit. • EN - Timer enable bit se postavlja na 1 kada je uslov u rangu istinit i resetuje na 0 kada uslov postane neistinit. • TT - Timer timing bit se postavlja na 1 kada je uslov istinit i ako je ACC ≤ PRE. On se resetuje na 0 kada uslov postane neistinit ili kada se DN bit postavi na 1, odnosno kada se završi merenje vremena. U vezi sa radom časovnika potrebno je da se zapazi nekoliko činjenica. Pre svega SL. 3-14 VREMENSKI DIJAGRAM IZVRŠAVANJA TON NAREDBE
  • 20. Leder_uvod/45 časovnik radi samo dok je uslov istinit (signal na ulazu u časovnik je u stanju “on”). Istonosnu vrednost uslova pokazuje EN bit. Drugim rečima, ovaj bit ima vrednost 1 onda kada je uslov istinit i to označava da je rad časovnika omogućen (enable). Kada je uslov neistinit, EN bit ima vrednost 0, što znači da je rad časovnika onemogućen. Međutim, činjenica da EN bit ima vrednost 1 ne mora da znači da časovnik zaista i radi, jer je on mogao i da završi rad zbog isteka zadanog vremena, a da pri tome uslov i nadalje ostane istinit. Rad časovnika indicira TT bit. Naime, taj bit je postavljen na 1 za svo vreme za koje časovnik aktivno meri vreme (timer timing), i postavlja se na 0 kada časovnik ne radi. Konačno, kada je vrednost DN bita 1, onda to znači da je časovnik završio (done) svoj posao, tj. izmerio zadano vreme. Pri tome, DN bit ne govori o tome kada je časovnik završio sa poslom, jer će on ostati na vrednosti 1 sve dok uslov ne postane neistinit. Vremenski dijagram rada časovnika ilustrovan je na Sl. 3-14. Stanje časovnika se može resetovati posebnom RES naredbom, o čemu će kasnije biti više reči. • Timer off-delay (TOF) Ovom naredbom se definiše druga vrsta časovnika i zauzimaju tri reči koje čine elemenat broj e u datoteci časovnika broj f. Prilikom formiranja naredbe specificaraju se i vremenska baza (tx) i zadana vrednost (ns). Akumulirana vrednost (na)se automatski postavlja na 0. TOF naredba započinje rad časovnika za vreme onog programskog sken ciklusa u kome uslov u rangu u kome se naredba nalazi prvi put postaje neistinit (prelaz istini/neistinit – silazna ivica). U svakom sledećem sken ciklusu, sve dok je uslov neistinit časovnik vrši ažuriranje akumulirane vrednosti (ACC) u skladu sa proteklim vremenom između dva ciklusa. Kada akumulirana vrednost dostigne zadanu vrednost, časovnik prekida svoj rad. Pri tome, ako u nekom sken ciklusu uslov postane istinit, časovnik prekida svoj rad i akumulirana vrednost se postavlja na 0, bez obzira da li je časovnik pre toga izmerio zahtevano vreme ili ne. Bitovi stanja časovnika menjaju se u toku programskog sken ciklusa na sledeći način: • DN - Timer done bit se postavlja na 1 kada je uslov istinit. On se resetuje na 0 kada je uslov neistinit i pri tome je ACC ≥ PRE. • EN - Timer enable bit se postavlja na 1 kada je uslov istinit, i resetuje na 0 kada je uslov neistinit. • TT - Timer timing bit se postavlja na 1 kada je uslov neistinit i pri tome je ACC ≤ PRE. One se resetuje na nulu kada uslov postane istinit ili kada se DN bit resetuje. U vezi sa radom časovnika potrebno je da se zapazi nekoliko činjenica. Pre svega SL. 3-15 VREMENSKI DIJAGRAM IZVRŠAVANJA TOF NAREDBE Zadano vreme (PRE) Uslov EN bit TT bit ACC vrednost DN bit trenutci obrade ranga 0 10 11 12 13 14 15 16 17 1918 20 21 22 23 24 25 26 27 28 2987654321 9 vreme 1 9 8-a 7 6 5 4 2-a 2-b 3 13 12 11 10 14 8-b sken ciklus
  • 21. Leder_uvod/46 časovnik radi samo dok je uslov neistinit (signal na ulazu u časovnik je u stanju “off”). Istonosnu vrednost uslova pokazuje EN, ali za razliku od TON naredbe, ovde on onemogućava rad časovnika. Drugim rečima, ovaj bit ima vrednost 1 onda kada je uslov istinit i to označava da je rad časovnika onemogućen. Kada je uslov neistinit, EN bit ima vrednost 0, što znači da je rad časovnika omogućen. Međutim, činjenica da EN bit ima vrednost 0 ne mora da znači da časovnik zaista i radi, jer je on mogao i da završi rad zbog isteka zadanog vremena, a da pri tome uslov i nadalje ostane neistinit. Rad časovnika indicira TT bit. Naime, taj bit je postavljen na 1 za svo vreme za koje časovnik aktivno meri vreme (timer timing), i postavlja se na 0 kada časovnik ne radi. Konačno, kada je vrednost DN bita 0, onda to znači da je časovnik završio (done) svoj posao, tj. izmerio zadano vreme. Pri tome, DN bit ne govori o tome kada je časovnik završio sa merenjem vremena, jer će on ostati na vrednosti 0 sve dok uslov ne postane istinit. Vremenski dijagram rada časovnika ilustrovan je na slici Sl. 3-15. • Retentive Timer (RTO) Ovom naredbom se definiše treća vrsta časovnika i zauzimaju tri reči koje čine elemenat broj e u datoteci časovnika broj f. Prilikom formiranja naredbe specificaraju se i vremenska baza (tx) i zadana vrednost (ns). Akumulirana vrednost (na) se automatski postavlja na 0. RTO naredba razlikuje se od TON naredbe samo po tome što se akumulirana vrednost ne resetuje, već zadržava i onda kada uslov postane neistint (Sl. 3-16). Drugim rečima, ovaj časovnik počinje da radi kada uslov postane istinit, i nastavlja sa radom povećavajući akumuliranu vrednost sve dok je uslov istinit. Kada uslov postane neistinit, časovnik prekida rad, ali se akumulirana vrednost pri tome ne menja. To znači da će kada uslov ponovo postane istinit, časovnik nastaviti sa radom i prethodno izmerenom vremenu (ACC) dodavati nove vrednosti. Na taj način ovaj časovnik omogućuje da se kumulativno mere intervali vremena u kojima je uslov bio istinit (Sl. 3-16). Bitovi stanja časovnika menjaju se u toku programskog sken ciklusa na sledeći način: • DN - Timer done bit se postavlja na 1 kada je ACC ≥ PRE (časovnik je izmerio zadano vreme). On se resetuje na 0 pomoću posebne RES naredbe. • EN - Timer enable bit se postavlja na 1 kada je uslov u rangu istinit (rad časovnika je omogućen) i resetuje na 0 kada uslov postane neistinit (rad časovnika je onemogućen). • TT - Timer timing bit se postavlja na 1 kada je uslov istinit i ako je ACC ≤ PRE (časovnik radi). On se resetuje na 0 kada uslov postane neistinit ili kada se DN bit postavi na 1 (časovnik prestaje sa radom). SL. 3-16 VREMENSKI DIJAGRAM IZVRŠAVANJA RTO NAREDBE
  • 22. Leder_uvod/47 • Reset naredba (RES) RES naredba je naredba akcije i koristi se za resetovanje časovnika. Kada je uslov istinit ova naredba se izvršava tako što se u časovniku čija je adresa (ili simboličko ime) a navedena u RES naredbi, resetuju na nulu bitovi DN, TT i EN, kao i akumulirana vrednost (ACC). S obzirom na način rada očigledno je da se RES naredbe ne sme koristiti za TOF tip časovnika. 3.3.4. NAČIN RADA ČASOVNIKA Sve dok časovnik radi u svakom sken ciklusu povećava se akumulirana vrednost. Pri tome, iznos za koji će se povećati ACC vrednost zavisi od dužine trajanja sken ciklusa. Naime, kada se prilikom obrade ranga ustanovi da su se stekli uslovi da časovnik počne sa radom onda se istovremeno startuje jedan interni časovnik, koji se ažurira preko prekida (interapta) na svakih 0,01 sec. Broj registrovanih vremenskih intervala se smešta u interni 8-bitni registar (bitovi 0-7 u prvoj reči). Ukoliko je u pitanju časovnik čija je vremenska baza 0,01 sec, onda se u sledećem programskom skenu, kada se naiđe na dati rang, vrednost internog registra, koja zapravo predstavlja interval vremena koji je protekao između dva sukcesivna sken-a, dodaje akumuliranoj vrednosti. Nakon toga se interni registar resetuje na nulu i počinje ponovo da meri vreme do sledećeg skena. Budući da je maksimalna vrednost koju može da ima interni registar oko 2,5 sec (255x0,01), može se očekivati da će tajmer raditi ispravno samo ako sken ciklus ne traje duže od 2,5 sekundi. Ukoliko se tajmer koristi u programu čiji sken ciklus traje duže, onda je neophodno da se ista naredba za časovnik postavi na više mesta u programu čime će se obezbediti da se rangovi koji sadrže taj časovnik obrađuju sa učestanošću koja nije veća od 2,5 sekundi. (Svaki put kada se prođe kroz rang koji sadrži časovnik izvršiće se ažuriranje internog registra i povećati akumulirana vrednost). Ukoliko časovnik radi sa vremenskom bazom od 1 sekunde obrada časovnika je donekle složenija. Ovde se, naime i dalje koristi interni časovnik koji se ažurira na svakih 0,01 sekundi, ali se pri tome u toku obrade ranga akumulirana vrednost ažurira samo ako je akumulirana vrednost veća ili jednaka od 1 sekunde. Pri tome se akumulurina vrednost uvećava za 1, dok se eventualni ostatak vremena pamti u internom brojaču i na njega se dodaju sledeći inkrimenti od po 0,01 sekunde. Postupak ažuriranja akumulirane vrednosti je takav da se može očekivati da će časovnik raditi ispravno ako sken ciklus ne traje duže od 1,5 sekundi (maksimalni mogući ostatak posle očitavanja je 0,99, što uvećano za 1,5 čini 2,5). Naravno, i ovde se problem ciklusa dužeg trajanja može prevazići stavljanjem naredbe časovnika na više mesta u programu. Potrebno je da se naglasi da je pri korišćenju časovnika neophodno da se posebna pažnja posveti naredbama za skok. Naime, i ako je trajanje sken ciklusa u dozvoljenim granicama, može se desiti da se nekom od naredbi za skok u jednom ili viče suskcesivnih sken ciklusa preskoči rang koji sadrži časovnik. Jasno je da se u tom slučaju neće vršiti ažuriranje akumulirane vrednosti. To nadalje znači da je neophodno da se obezbedi da u slučaju bilo kakvog programskog skoka, naredba za časovnik ne bude isključena iz obrade u periodu koji je duži od maksimalno dozvoljenog vremena. Tačnost časovnika (timer accuracy) je pojam koji se odnosi na dužinu vremenskog intervala koji protekne od trenutka kada se časovnik uključi do trenutka kada DN bit indicira da je merenje vremena završeno. Kao što je već istaknuto, za časovnike koji rade sa vremenskom bazom od 0,01 sekunde tačnost je u granicama od ±0,01 sec sve dok sken ciklus ne traje duže od 2,5 sekunde. Časovnici koji rade sa vremenskom bazom od 1 sekunde zadržavaju svoju tačnost ukoliko je programski sken kraći od 1, 5 sec. Neophodno je da se istakne, međutim, da tačnost rada časovnika ne implicira da će i neki događaj koji je vezan sa časovnikom da bude aktiviran sa istom tačnošću. Aktiviranje događaja se ostvaruje ispitivanjem DN bita. U najvećem broju slučajeva ovaj uslov se ispituje jedanput u okviru sken ciklusa. To nadalje znači da je tačnost aktiviranja
  • 23. Leder_uvod/48 događaja određena trajanjem jednog sken ciklusa. 3.3.5. DATOTEKA PODATAKA O BROJAČU (COUNTER DATA FILE) Budući da je brojač, isto kao i časovnik, realizovan softverski, parametri koji definišu njegov rad moraju biti smešteni u memoriji kontrolera. Za pamćenje podataka o brojačima koristi se datoteka podataka broj 5 (counter file – C). U ovoj datoteci može se definisati najviše 256 različitih brojača. Ukoliko je potrebno da se koristi veći broj brojača, korisnik može definisati i dodatne datoteke (korisnički definisane datoteke) čiji su brojevi od 9 do 255. Svakom brojaču pridružuju se po jedan element u odgovarajućoj datoteci, koji se sastoji od tri 16-bitne reč (Sl. 3-17). Postoje dva osnovna tipa brojača brojač unapred (CTU – count up) i brojač unazad (CTD – count down) i oba koriste istu datoteku. Isto kao i kod časovnika i brojaču i pojedinim bitovima mogu se umesto adrese dodeliti simbolička imena. 3.3.6. NAREDBE ZA RAD SA BROJAČEM Naredbe za oba tipa brojača su naredbe akcije, što znači da se smeštaju u desni deo ranga. Oba brojača broje promenu vrednosti uslova sa neistinit na isitinit (uzlazna ivica). Pri svim ostalim vrednostima uslova, oni zadržavaju prebrojani iznos i čekaju sledeći prelaz. Drugim rečima, brojači se niti puštaju u rad, niti zaustavljaju. Oni neprekidno rade i beleže (broje) svaki prelaz istinit/neistinit. Dostizanje zadane vrednosti se signalizira postavljanjem odgovarajućeg bita – done bit (DN) – na 1, ali se brojanje i dalje nastavlja. Prebrojani iznos se može izbrisati jedino posebnom RES naredbom. Jedina razlika između brojača sastoji se u tome što prvi (CTU) broji unapred od 0 do 32767, i postavlja overflow bit (OV) na 1 kad pređe 32767, dok drugi (CTD) broji unazad, od 0 do –32767, i postavlja underflow bit (UN) kad pređe –32767. Potrebno je zapaziti da se u oba slučaja brojanje nastavlja (Sl. 3-18). Kada pređe 32767, brojač unapred dodavanjem još jednog bita dobija vrednost –32767 (u binarnoj aritmetici drugog SL. 3-17 ELEMENAT DATOTEKE BROJAČA I ADRESIRANJE BROJAČA SL. 3-18 KRUŽNI RAD BROJAČA 15 01234567891011121314 DNCDCU zadana vrednost (PRE) odbrojana vrednost (ACC) Reč 0 Reč 2 Reč 1 Adresibilne reči PRE - preset value (zadana vrednost) ACC - accumulated value (odbrojana vrednost) C /w.e:f b redni broj datoteke 4 ili 10-255 redni broj elementa u datoteci 0 - 255 redni broj reči u elementu 0 - 2 redni broj bita u reči 0 - 15 Adresibilni bitovi CU = bit 15 - counter up enable (indikator uslova kod brojanja unapred) CD = bit 14 -counter down enable (indikator uslova kod brojanja unazad) DN = bit 13 – done (indikator ostvarenog zadanog broja) OV = bit 12 – overflow (brojač unapred prešao 32767) UN = bit 11 – underflow (brojač unazad prešao -32768) UA = bit 10 – indikator ažuriranja brzog hardverskog brojača (HSC) OV UN UA
  • 24. Leder_uvod/49 komplementa, sa 16-bitnom reči 32767+1= –32768) i nastavlja da broji unapred od tog broja. Na isti način, kada brojač unazad dostigne vrednost od –32768, oduzimanjem sledećeg bita, brojač dobija vrednost 32767 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom reči –32768-1= 32767) i nastavlja da broji unazad od te vrednosti. To nadalje znači da korisnik sam mora da vodi računa o eventualnom prekoračenju opsega. • Count up (CTU) Bitovi stanja brojača menjaju se u toku programskog sken ciklusa na sledeći način: • OV - Count up overflow bit se postavlja na 1 kada akumulirana vrednost (ACC) prelazi sa 32767 na –32768 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom reči 32767+1= – 32768), i nastavlja brojanje unapredi. • DN - Done bit se postavlja na 1 kada je ACC ≥ PRE; • CU - Count up enable bit se postavlja na 1 kada je uslov istinit, a resetuje na 0 kada je uslov neistinit ili kada se aktivira odgovarajuća RES naredba. • Count down (CTD) Bitovi stanja brojača menjaju se u toku programskog sken ciklusa na sledeći način: • UN- Count down underflow bit se postavlja na jedan kada akumulirana vrednost (ACC) prelazi sa – 32768 na 32767 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom reči –32768-1= 32767), i nastavlja da broji unazad od te vrednosti. • DN - done bit se postavlja na 1 kada je ACC ≤ PRE; • CD - Count down enable bit se postavlja na 1 kada je uslov istinit, a resetuje na 0 kada je uslov neistinit ili kada se aktivira odgovarajuća RES naredba. • Reset naredba (RES) RES naredba je naredba akcije i koristi se za resetovanje brojača. Kada je uslov istinit ova naredba se izvršava tako što se u brojaču čija je adresa (ili simboličko ime) navedeno u RES naredbi, postavljaju na nulu svi indikatorski bitovi, kao i akumulirana vrednost (ACC). 3.3.7. PRIMERI KORIŠĆENJA ČASOVNIKA I BROJAČA PR. 3-4 EKSCENTAR PRESA ZADATAK Data je jedna ekscentar presa koja se koristi za izradu zatvarača za flaše. Zatvarači se proizvode tako što se komad metala stavi na postolje ispod bata prese koji se pomera u vertikalnoj ravni (dole – gore). Bat udara u metal kada dođe u krajnji donji položaj i deformiše ga, odnosno oblikuje na ženjeni način. Za bat prese pričvršćena je poluga čiji je gornji kraj vezan ekscentrično za osovinu prese. Položaj tačke vezivanja odabran je tako da obrtanje osovine prese uzrokuje linearno (vertikalno) pomeranje bata. Pri tome, za vreme za koje osovina prese napravi pun obrt, bat prese pređe put od gornjeg krajnjeg do donjeg krajnjeg položaja i nazad. Obrtanje osovine prese ostvaruje se preko motora čija je osovina vezana sa osovinom prese preko frikcione spojnice. Uprošćeni model opisane prese prikazan je na slici Sl. 3-19.
  • 25. Leder_uvod/50 Na presi radi radnik koji postavlja komad metala ispod bata, zatim aktivira presu, sačeka da ona završi jedan krug, izvadi zatvarač i stavlja novi komad metala. Potrebno je napraviti sistem koji će pomoću PLC-a upravljati radom prese. Sistem treba da je projektovan tako da obezbedi maksimalnu zaštitu radnika u toku rada. REŠENJE Polazeći od funkcionalnog opisa uređaja očigledno je da bi presom trebalo da se upravlja tako što će poslužilac prese na neki način dati znak za pokretanje bata prese. Tada će frikciona spojnica spojiti osovinu prese na motor i on će pokrenuti bat. Kada bat napravi jedan puni radni ciklus (gore→dole→gore), spojnica rastavlja motor od prese i presa se zaustavlja. Iz navedenog opisa željenog rada prese izvesno je da mora da postoji jedan prekidač kojim se motor pušta u rad. Pri tome, postoje dve mogućnosti. Ili da se sa svakom aktivacijom prese motor pokreće i zaustavlja ili da se jedanput pokrenut motor stalno vrti, dok se radom same prese upravlja isključivo preko spojnice. Imajući u vidu da je proces proizvodnje zatvarača serijski proces, ovo drugo rešenje je povoljnije. Budući da je brzina motora konstantna za upravljanje je dovoljan jedan digitalni signal koji ćemo vezati za nulti pin izlaznog dela digitalnog U/I modula u prvom slotu. Simboličko ime ovog signala je "motor_on". Ovaj motor pokretaće se pritiskom na jedan poseban taster "start" i zaustavljati pritiskom na taster "stop". Signale sa ova dva tastera dovodićemo na ulazni deo digitalnog U/I modula i to na pinove 0 i 1. Radom spojnice upravlja se preko jednog elektromagneta koji, kada ima priključeno napajanje, aktivira frikcionu spojnicu, čime se obrtni momenat motora prenese na osovinu ekscentar-prese. Elektromagnet se napaja jednosmernim naponom od 24V. Otuda nam je neophodan još jedan digitalni izlazni signal. Neka je on vezan za pin 1 izlaznog dela digitalnog U/I modula u prvom slotu i neka je njegovo simboličko ime "spoj_on". Da bi presom moglo da se upravlja neophodno je da se raspolaže sa informacijom o položaju bata. Ovaj problem ćemo rešiti postavljanjem jednog graničnog prekidača na samu presu i to tako da je on zatvoren kada je presa u gornjem graničnom položaju. Digitalnom signalu sa ovog prekidača daćemo simboličko ime "swggr_on" i dovešćemo ga na drugi pin ulaznog dela U/I modula u prvom slotu. Preostaje još da rešimo način na koji rukovaoc presom pušta presu u rad. Izvesno je da bi se to moglo rešiti postavljanjem jednog tastera koji se pritisne svaki put kad presa treba da napravi jedan hod. Međutim, ovo rešenje bi moglo ozbiljno da ugrozi bezbednost radnika. Naime, njegov radni proces sastojao bi se u tome što on uzme komad metala, stavi ga ispod prese, pritisne taster, sačeka da presa izvrši jedan puni radni ciklus, izvadi formirani zatvarač i stavi novi komad metala. U želji da se taj proces odvija što brže, rukovaoc presom bi mogao da odluči da jednom rukom pritiska taster, a drugom postavlja materijal ispod prese. Jasno je da bi bio dovoljan samo jedan trenutak nepažnje pa da on ozbiljno povredi ruku. To nadalje znači da je neophodno da se osmisli takav način puštanja prese u rad da je potpuno izvesno da se u tom trenutku nijedna njegova ruka ne nalazi ispod bata. Ovako formulisan zahtev prirodno nameće ideju da se presa pušta u rad pomoću dva prostorno udaljena tastera koji se mogu istovremeno pritisnuti samo sa obe ruke. Postavićemo zato uz presu dva tastera za desnu i levu ruku i signale sa njih dovešćemo na treći i četvrti pin ulaznog dela digitalnog U/I modula u prvom slotu. ("taster_lr_on" i "taster_dr_on"). Budući da je osmišljena potrebna oprema (senzori i izvršni organi) može se pristupiti formiranju samog algoritma upravljanja i pisanju LADDER programa. U tom cilju neophodno je da se reše dva problema. Prvi, jednostavniji, odnosi se na detekciju trenutka kada je presa završila puni ciklus. Jasno je da će, kada je poluga bata u gornjem graničnom položaju, granični prekidač biti pritisnut. Problem je međutim u tome što on to stanje ima i na početku pre bilo kakvog pomeranja bata i na kraju svakog punog ciklusa. Otuda, samo stanje graničnog prekidača ne govori o tome da li je pokret izvršen ili ne. Da bi se ovaj problem prevazišao, uvodi se jedna interna bit promenljiva (u programu označena kao hod) koja se postavlja dok se bat pomera. Na taj način, SL. 3-19 ŠEMATSKI PRIKAZ EKSCENTAR PRESE Osovina motora Glavna osovina motora Frikciona spojnica Poluga bata Ekscentrična čaura Bat prese Hod bata
  • 26. Leder_uvod/51 kada se ustanovi da je granični prekidač zatvoren, potrebno je proveriti da li je istovremeno i interni bit (hod) i tek ta dva uslova zajedno ukazuju da je presa završila jedan puni ciklus. Drugi problem vezan je za ostvarivanje pune zaštite rukovaoca presom. Praksa pokazuje da postavljanjem dva tastera problem i dalje nije rešen. Naime, može se desiti da rukovaoc, zanemarujući sopstvenu bezbednost, odluči da mu je lakše i brže da radi tako što će jedan od dva tastera zaglaviti tako da stalno bude pritisnut, pa će onda jednom rukom pritiskati drugi taster, a drugom menjati materijal. Naš je zadatak, da algoritam osmislimo tako da nateramo rukovaoca presom da sa obe ruke istovremeno pritiska tastere. Jedan od načina da se postavljeni problem SL. 3-20 LEDER PROGRAM SA TRAJNIM PAMĆENJEM BITA ZA UPRAVLJANJE EKSCENTAR PRESOM
  • 27. Leder_uvod/52 reši je da se uslov za aktiviranje spojnice postavi tako da se ona ne sme aktivirati ako je jedan od tastera stalno pritisnut, odnosno ako između pritiskanja jednog i drugog tastera prođe više od nekog vremenskog intervala. Recimo da je to 500ms. Dve varijante LADDER programa kojima se realizuje navedeni algoritam prikazane su na Sl. 3-20 i Sl. 3-21. Posmatrajmo kao prvo program koji koristi naredbe za trajno pamćenje bitova (Sl. 3-20). U toku programskog sken ciklusa obrađuje se rang po rang. Sve dok se ne pritisne "start" taster uslov u rangu 0 neće biti istinit pa motor neće dobiti pobudu. Otuda je potpuno nebitno šta će se dešavati SL. 3-21 LEDER PROGRAM SA SAMODRŽANJEM ZA UPRAVLJANJE EKSCENTAR PRESOM
  • 28. Leder_uvod/53 u sledećim rangovima jer presa neće raditi. Rang 1 će biti istinit tek kada se pritisne "stop" taster i tada će motor izgubiti pobudu. U međuvremenu rad prese biće diktiran ostalim rangovima programa. Kada se pritisne taster leve ili desne ruke (ili oba) časovnik će početi da meri vreme. Pri tome, budući da se taster nakon pritiska može i otpustiti, informacija o tome da je on bio pritisnut pamti se trajno u jednom internom bitu, koji se onda u sledećem rangu (broj 3) koristi kao uslov za pokretanje časovnika. Ovde je potrebno zapaziti da bi časovnik neprekidno radio kada bi jedan od tastera bio zaglavljen u pritisnutom položaju, to znači da bi on stalno pokazivao vreme koje je veće od 500ms. Sledeći rang (broj 4) služi za aktiviranje spojnice. Uslov da bi se spojnica aktivirila je da su oba tastera prititsnuta, da od trenutka pritiska prvog od njih nije proteklo više od 500ms, i da se presa nalazi u gornjem graničnom položaju. Ukoliko je spojnica aktivirana, dolazi do pokreta što znači da se otvara gornji granični prekidač. Kada su ova dva uslova istovremeno istinita, u rangu broj 5 će se postaviti indikator pokreta bata . Konačno, ako je došlo do pokreta i pri tome je gornji granični prekidač zatvoren (hod), u rangu broj 6 se resetuje pobuda spojnice i svi upamćeni bitovi, čime se omogućava izvršavanje sledećeg ciklusa rada prese. (Podsetimo se da za svaku OTL naredbu u programu mora da se stavi i OTU naredba koja će pod datim uslovima resetovati trajno postavljen bit). Program sa samodržanjem prati istu osnovnu logiku (Sl. 3-21). Razlika je jedino u tome što se ovde u svakom rangu u kome se postavljaju bitovi, pomoću paralelne grane obezbeđuje da uslov bude istinit i kada neki od tastera ili prekidača promeni stanje. Pri tome, da bi se obezbedilo da se ovi bitovi resetuju kada se završi jedan ciklus rada prese uvodi se interna promenljiva "kraj" koja se postavlja na 1 kada se ciklus prese završi. Posle toga, u sledećem programskom sken ciklusu uslovi u svim rangovima biće neistiniti (jer se u njima ispituje promenljiva "kraj"). PR. 3-5 REGULACIJA PROTOKA VAZDUHA ZADATAK Posmatra se neki ventil čijim radom se upravlja pomoću jednosmernog solenoida (A). Pri tome, kada se aktvira ventil, pritisak vazduha dostiže željeni nivo u roku od 5 sekundi. Nakon toga, ventilom se može upravljati (pomeranjem klipa solenoida) i to u vremenu od 10 sekundi. Posle isteka 10 sekundi, opruga solenoida vraća klip u početni položaj i zatvara ventil. REŠENJE Dva moguća rešenja postavljenog problema, od kojih jedno koristi izlaznu naredbu sa trajnim postavljanjem bita, a drugo postupak samodržanja, prikazana su na Sl. 3-22 i Sl. 3-23. Pretpostavljeno je da se signal sa prekidača za otpočinjanje programa vodi na nulti pin digitalnog ulaza (simboličko ime START_ON), a da se signal na priključak A+ solenoida vodi preko nultog pina digitalnog izlaza (simboličko ime MOVE_APLUS). Pri analizi programa potrebno je imati na umu da se u svakom sken ciklusu ispituje redom rang po rang. Pri tome, akcija će se izvršiti samo u onim rangovima u kojima je uslov istinit. Tako će na primer, u prvom prolazu biti aktivan samo rang 0 i on će ostati jedini aktivan u svim sledećim sken ciklusima, sve dok ne istekne 5 sekundi. U sken ciklusu u kome se dostiže 5 sekundi, časovnik PRITISAK će postaviti DN bit, tako da će uslov u rangu 1 biti istinit, pa će on postati aktivan i postaviti MOVE_APLUS na 1. Budući da se ta promenljiva ispituje u rangu 2 i on će postati aktivan u istom sken ciklusu pa će pokrenuti časovnik CONTROL. Uslov u rangu 3 (verzija sa trajnim postavljanjem bita Sl. 3-22) će i dalje biti neistinit, pa se taj rang neće aktivirati. U narednim sken ciklusima, sve dok ne prođe 10 sekundi biće istinit samo uslov u rangu 2. Konačno, kada časovnik CONTROL izmeri 10 sekundi, on će postaviti svoj DN bit na 1. Odmah zatim, u sledećem rangu u programu sa trajnim postavljanjem bita (Sl. 3-22), bit MOVE_APLUS će biti resetovan i ventil će se zatvoriti. Kod programa sa samodržanjem (Sl. 3-23) to će se desiti tek u sledećem sken ciklusu, kada uslov u paralelnoj grani ranga 2 postane neistinit. Potrebno je obratiti pažnju na činjenicu da program u kome se koristi samodržanje ima jedan rang manje i to zato što se kod njega u okviru istog ranga ostvaruje i aktiviranje i deaktiviranje signala A+. U programu u kome se koristi trajno postavljanje bita, aktivacija solenoida se postiže u jednom rangu i to na isti način na koji se to ostvaruje kod samodržanja, dok se deaktivacija, prirodno, mora naći u zasebnom rangu. U ovom primeru ta činjenica pojednostavljuje završetak programa, te nije neophodno da se uvodi interna promenljiva koja označava kraj rada.
  • 29. Leder_uvod/54 SL. 3-22 LEDER PROGRAM ZA REGULACIJU PROTOKA VAZDUHA SA TRAJNIM PAMĆENJEM BITA SL. 3-23 LEDER PROGRAM ZA REGULACIJU PROTOKA VAZDUHA SA SAMODRŽANJEM
  • 30. Leder_uvod/55 PR. 3-6 PALJENJE I GAŠENJE SIGNALNE LAMPE ZADATAK Pretpostavlja se da postoji neki hidraulicni mehanizam za čiji rad je neophodno da se ulje zagreje do određene temperature. Pri tome se postizanje zadane temperature detektuje pomoću jednog termo-prekidača koji daje binarni signal kada temperatura postigne željenu vrednost. Za vreme procesa zagrevanja ulja neophodno je da se signalna lampa pali i gasi, čime se indicira da se ulje zagreva. Kada ulje dostigne željenu temperaturu, signalna lampa počinje stalno da svetli. Sistem se pušta u rad pritiskom na jedan dvopoložajni prekidač. REŠENJE Pretpostavimo da je prekidač za puštanje sistema u rad vezan za nulti pin ulaznog modula, tako da ima adresu I:1/0 i neka je njegovo simboličko ime START_ON. Indikator temperature je vezan za prvi pin, tako da je adresa signala I:1/1, i pridruženo simboličko ime KRAJ_GREJANJA. Signalan sijalica je vezana za pin 0 izlaznog modula (adresa O:2/0) i dodeljeno joj je simbolično ime LAMPA_ON. Jedno moguće rešenje postavljenog zadatka prikazano je na slici Sl. 3-24. Paljenje i gašenje signalne lampe ostvaruje se korišćenjem dva časovnika od kojih je jedan TON tipa (simboličko ime PALI), a drugi TOF tipa (simboličko ime GASI) i koji su vezani tako da, za svo vreme za koje traje grejanje ulja, rade u protiv fazi. Pre prvog prolaza kroz program nijedan od časovnika ne radi, tako da su njihovi odgovarajući DN bitovi postavljeni na 0 (PALI/DN) odnosno 1 (GASI/DN). U skladu sa time uslov ranga 0 će biti neistinit (PALI/EN=0), te časovnik PALI neće raditi. Uslov ranga 1 će zbog toga biti neistinit i pokrenuće časovnik GASI. Uslov u rangu 2 je neistinit i sijalica ne svetli. Ovakvo stanje trajaće dok časovnik GASI ne izmeri zadano vreme (ovde je usvojeno da to bude 1 sec). Kada protekne 1 sekunda, časovnik GASI je završio rad i njegov DN bit postaje 0. U sledećem sken ciklusu, uslov u rangu 0 će biti istinit (PALI/EN=1) i aktiviraće se časovnik PALI. SL. 3-24 - LEDER PROGRAM ZA PALJENJE I GAŠENJE SIJALICE
  • 31. Leder_uvod/56 Uslov za rad časovnika GASI je i dalje neistinit, što znači da bi on mogao da radi. Međutim, kako je on izmerio zadano vreme i kako njegov DN bit nije resetovan (resetuje ga promena uslova na istinit), to on neće raditi (GASI/TT=0). Uslov u rangu 2 je istinit, te sijalica svetli. Ovakva situacija ostaće i u svim sledećim sken ciklusima sve dok ne prođe 1 sekunda, kada će da se postavi PALI/DN bit na 1. Uslov u rangu 1 postaje istinit što dovodi do resetovanja GASI/DN bita (postavlja se na 1). Sijalica i dalje svetli. U sledećem sken ciklusu uslov u rangu 0 postaje neistinit (resetuju se bitovi časovnika PALI). Zbog toga se u rangu 1 aktivira časovnik GASI (GASI/TT=1). Sijalica se gasi u rangu 3 i ceo ciklus se ponavlja. Potrebno je zapaziti da se svaki od časovnika aktivira pomoću DN bita drugog časovnika. To je ujedno i razlog, zašto časovnici ne mogu biti istog tipa (oba TON ili oba TOF). Naime, u tom slučaju ne bi bilo moguće da se otpočne sa radom, jer bi na početku oba DN bita imala istu vrednost (0 ili 1). Vremenski dijagram promene odgovarajućih bitova dat je na Sl. 3-25. Sve dok se ne dostigne željena temperatura, bit označen kao KRAJ_GREJANJA ima vrednost 0, što znači da sijalica svetli samo za ono vreme za koje radi časovnik PALI, odnosno za koje je njegov EN bit postavljen na 1. Kada se dostigne zadana temperatura sijalica će stalno svetleti zahvaljujući samodržanju u rangu 2. PR. 3-7 MAŠINA ZA PAKOVANJE ZADATAK Posmatra se jedna mašina koja pakuje konzerve u kutiju i to tako da u kutiji ima tri reda konzervi, pri čemu u svakom redu ima po 5 konzervi. Mašina radi tako što se pomoću jednog klipa (A) konzerve koje dolaze preko pokretne trake guraju, jedna po jedna, na pomoćno postolje. Kada se na postolje smesti 5 konzervi, onda se one, sve zajedno, pomoću drugog klipa (B) gurnu u kutiju. U skladu sa time, za pakovanje jedne kutije potrebno je da se ostvari sledeća sekvenca pomeranja klipova: [ (A+ A-)x5 B+ B-]x3 REŠENJE Dva moguća rešenja (sa i bez lečovanja) data su na Sl. 3-26 i Error! Reference source not found.. U prvom rešenju (Sl. 3-26) je pretpostavljeno da su i klip A koji pomera konzerve i klip B koji pomera ceo red konzervi dvosmerni solenoidi, što znači da se mora upravljati pokretima u oba smera. Pri tome se signali za napajanje vode preko digitalnih izlaza u prvom slotu, pinovi od 0 do 4 redom za A-, A+, B- i B+. Senzori položaja oba klipa su normalno otvoreni prekidači čiji signali se dovode na digitalni ulaz u prvom slotu i to na pinove od 1 do 4 redom za a-, a+, b- i b+. Taster za otpočinjanje rada vezan je za pin 0. Budući da se početak rada zadaje tasterom, neophodno je da se koristi interna promenljiva koja će pamtiti da je taster u nekom trenutku bio pritisnut. U programu je ta promenljiva označena sa "nije kraj" i ona zapravo utiče na istinitost uslova ranga broj 1 kojim se započinje ceo ciklus pokretanja klipova. Za brojanje konzervi koristi se programski brojač na adresi C5:1 ("Brojac_5"), dok se za brojanje redova konzervi koristi programski brojač C5:0 ("Brojac_3"). Sam program je veoma jednostavan i njegova logika se može pratiti uz pomoć komentara koji su dati uz svaki rang. Napomenimo, da je dobra programerska praksa da se program opiše detaljnim komentarima. Ovo ne samo da olakšava traženje grešaka pri testiranju programa, već je od neobične koristi i kasnije kada dođe do eventualnih modifikacija programa. Program je realizovan pomoću tehnike samodržanja. Samo se po sebi razume da se zadatak može rešiti i pomoću naredbi za trajno postavljanje bitova. SL. 3-25. VREMENSKI DIJAGRAM PROMENE INDIKATORSKIH BITOVA ČASOVNIKA GASI_DN GASI_TT GASI_EN PALI_DN PALI_TT PALI_EN 1 2 5 6 8 7 2 3 4 1 sec 1 sec 9 10 11 12 13 1 sec 14 15 svetli svetli 1 sec sken ciklus
  • 33. Leder_uvod/58 Kao i kod primera sa upravljanjem ekscentar presom i pri korišćenju solenoida pokazuje se da testiranje stanja prekidača nije dovoljno da bi se pratio njihov rad. Jasno je da je, kada je solenoid potpuno uvučen, njegov prekidač na "-" kraju pritisnut, no on to stanje ima i na početku pre bilo kakvog pomeranja klipa i na kraju svakog punog ciklusa (pomeranje napred – nazad). Drugim rečima, samo stanje prekidača "-" ne govori o tome da li je pokret izvršen ili ne. Da bi se ovaj problem prevazišao, uvodi se jedna interna bit promenljiva (u programu označena kao hod unazad) koja se postavlja dok se klip pomera. Na taj način stanje te promenljive, zajedno sa stanjem prekidača na "-" kraju solenoida ukazuju na to da li je ciklus završen ili ne. U drugom rešenju (Error! Reference source not found.) je pretpostavljeno da je klip A dvosmerni solenoid, dok je klip B jednosmerni solenoid, koga opruga vraća u početni položaj čim prestane napajanje njegovog kraja. Pri tome se signali za napajanje vode preko istih pinova kao i u prvom rešenju, s tim što je pin 3 slobodan (nema napajanja za kraj B-). Granični prekidači oba klipa vezani su na isti način, s tim što je su prekidači klipa B realizovani kao normalno zatvoreni kontakti. Program je realizovan pomoću naredbi za trajno pamćenje bitova. Sama logika programa je veoma slična prvom rešenju, tako da nema potrebe da se posebno komentariše. SL. 3-26 LEDER PROGRAM ZA UPRAVLJANJE MAŠINOM ZA PAKOVANJE KOJA IMA DVA SOLENOIDA SA PO DVA KRAJA
  • 34. Leder_uvod/59 SL. 3-27 LEDER PROGRAM ZA UPRAVLJANJE MAŠINOM ZA PAKOVANJE KOJA IMA JEDAN SOLENOID SA DVA KRAJA I JEDAN SOLENOID SA OPRUGOM