Professional Documents
Culture Documents
PLC Dobra Skripta PDF
PLC Dobra Skripta PDF
PLC Dobra Skripta PDF
izlazni moduli
1
slika slika 3 komunikacija -
ulazni izlazni
sken ulaza izlaza namenjen je realizaciji
sken
razmene podataka sa
program ureajima koji su
povezani sa PLC-om.
memorija
Nakon toga, operativni
sistem dovodi PLC u
fazu odravanja u
4i5
okviru koje se auriraju
komunikacija i odravanje interni asovnici i
registri, obavlja
Sl. 4 Razmena podataka za vreme sken ciklusa upravljanje memorijom
kao i niz drugih poslova
vezanih za odravanje sistema, o kojima korisnik i ne mora da bude informisan. U
zavisnosti od tipa procesora ulazni i izlazni sken ciklus izvravaju se u vremenu reda
mili sekundi (od 0.25 ms do 2,56 ms). Trajanje programskog skena, svakako zavisi od
veliine programa.
Osnovni sken ciklus moe biti modifikovan pomou zahteva za prekid ili nekih
drugih specijalnih programskih naredbi o kojima e kasnije biti vie rei.
Gledano potpuno opte, od korisnika PLC-a se oekuje da, u zavisnosti od
aplikacije koju namerava da razvije, izvri izbor ulaznih, izlaznih komunikacionih i
specijalnih modula, dakle da odabere strukturu PLC-a i da formira program obrade
podataka. Sve ostale aktivnosti obavljae i nadzirati operativni sistem PLC-a.
Broj Redni broj Redni broj Refni broj bita (u Adresa bita Jedan bit u
datoteke elementa rei ili akronim odnosu na okviru rei identifikuje se ili
poetak rei ) ili
Tip akronim
preko njegovog relativnog
datoteke poloaja u okviru te rei (nulti,
X f : e . w / b prvi, drugi bit, brojano s
desna u levo) ili preko
relativnog poloaja u odnosu
Broj datoteke Redni broj
Tip elementa
Redni broj bita na poetak odgovarajueg
datoteke (u odnosu na poetak
elementa ) elementa kome pripada re
X f : e / b
iji se bit adresira.
1.
Duine elemenata u pojedinim datotekama date su u tabeli T. 2. Potrebno da se
istakne da se teorijski u svakoj datoteci mogu adresirati i elemenat u celini i njegove rei
i bitovi. U tabeli su, meutim, navedene samo one adrese koje sa aspekta vrste podatka
i naina organizacije datoteke imaju smisla. Podrazumeva se pri tome da je:
adresirani bit 0 b 15
adersirni element 0 e 255
Moe se uoiti da su iz tabelei T. 2 izostavljene ulazne i izlazne datoteke (I i O).
Ovo je uinjeno zato to one donekle odstupaju od navedenog pravila. Naime, kao to
e se kasnije videti, kod ovih datoteka elementi mogu biti duine od jedne ili dve rei,
to zavisi od tipa U/I modula. Elemenat ovih datoteka je zapravo odreen slotom u asiji
u koji se modul postavlja.
Duina
Tip datoteke Adresira se
elementa
bit b - Xf:e/b ;
B, N, A 1 re
element e Xf:e
F 2 rei element e Xf:e
bit b u rei 0 Xf:e.0/b ; (indikatori stanja su bitovi rei 0)
T, C, R 3 rei
re w Xf:e.w ; w = {1,2}, promenljive su u reima 1 ili 2
bit b u rei w Xf:e.w/b
St 42 rei re w - Xf:e.w ; 0 w 41
element e Xf:e
T. 2 Veliine elemenata pojedinih datoteka
U cilju ilustracije organizacije datoteka posmatrajmo binarnu datoteku bit file.
Maksimalna veliina ove datoteke iznosi 256 elemenata. Svaki elemenat je jedna 16-
bitna re, to znai da ova datoteka moe imati najvie 4096 bitova. U skladu sa
izloenim nainima adresiranja, jedan bit moe biti adresiran pomou rednog broja
elementa (0 - 255) i rednog broj bita u okviru elementa (0 15) ili pomou rednog broja
bita u okviru datoteke (0 4095), kao to je to ilustrovano u tabeli T. 3. Bit oznaen sa *
je jedanaesti bit u drugom elementu, odnosno etrdesetetvrti bit u celoj datoteci.
Prema tome njegova adresa je B3:2/11 ili B3/44. Iz tabele se takoe vidi da je mogue
da se adresira i ceo element ove datoteke.
O organizaciji ostalih datoteka bie rei kasnije kada se budu opisivali moduli ili
funkcije koje su sa njima povezane.
Kreiranje datoteke i zauzee memorije
Jedna datoteka podataka zauzima memorijski prostor koji obuhvata niz susednih
rei. Broj rei koje zauzima jedna datoteka odreen je najveom adresom elementa te
datoteke koji se koristi u programskim naredbama. Naime, sa izuzetkom datoteke
statusa S, koja se kreira automatski, sve ostale datoteke podataka ne postoje a priori
same po sebi, ve se formiraju u toku kreiranja programa i to navoenjem odgovarajue
adrese u programu. Prvo navoenje broja datoteke inicijalizuje njeno kreiranje. Pri tome
tip datoteke koji je naveden u adresi odreuje broj rei koje se pridruuju jednom
elementu, dok adresa elementa odreuje niz konsekutivnih elemenata za koje se u
memoriji rezervie prostor. Taj niz poinje od nule, a zavrava se sa adresom elementa
koja je navedena u naredbi. Ako se kasnije pojavi vea adresa elementa iste datoteke
onda se prethodno rezervisani prostor proiri tako da ukljui i tu adresu.
Predpostavimo da se u programskim naredbama pojavljuju redom adrese
operanada F8:3, F8:1 i F8:5. U tom sluaju, pri kreiranju prve naredbe rezervisae se
memorijski prostor za datoteku 8 i zauzeti ukupno 8 rei (elementi 0,1,2 i 3 ; svaki
element po dve rei). Kada se kasnije naie na adresu F8:1, ona nee prouzrokovati
nikakve promene u zauzeu memorije, jer je memorijski prostor za taj element ve
zauzet. Meutim, adresa F8:5, dovee do poveanja zauzetog prostora na ukupno 12
rei (6 elemenata), kao to je to ilustrovano na slici Sl. 5. Ovde je takoe
predpostavljeno da su pre nailaska na pomenute tri naredbe, nekim drugim naredbama
ve kreirane datoteka N7 i korisnika datoteka 9, kojoj je pridruen tip B.
Potrebno je da se istakne da veliina datoteke nije odreena stvarnim brojem
elemenata koji se koriste, ve najveem adresom. U posmatranom primeru se tako
koriste samo tri elementa datoteke 8, ali je zauzet prostor za 6 elemenata. To nadalje
znai, da se paljivim izborom adresa elemenata moe ostvariti uteda u zauzetom
memorijskom prostoru.
adrese adrese adrese adrese
RAM-a RAM-a RAM-a RAM-a
24 24 24 24
25 25 25 25
N7 N7 N7 N7
integer integer integer integer
28 28 28 28
29 29 re 0 29 re 0 29 re 0
re 1 re 1 re 1
B9
re 2 re 2 re 2
bit F8:1
re 3 re 3 re 3
33 33 re 4 33 re 4 33 re 4
34 34 re 5 34 re 5 34 re 5
re 6 re 6 re 6
F8:3
36 re 7 36 re 7 36 re 7
37 37 37 re 8
re 9
B9 B9
re 10
bit bit F8:5
40 re 11
RAM
41 41 41
42 42 42
B9
RAM bit
RAM
45
46
RAM
Indirektno adresiranje
U nekim sluajevima poeljno je da se omogui da se ista naredba izvri sa
razliitim promenljivima. Koja od promenljivih e se koristiti moe zavisiti od nekih
spoljnih uslova, rezultata nekog izraunavanja i sl. Radi pojednostavljenja relaizacije
ovakvih aplikacija kontroleri SLC 5/03 i SLC 5/04 omoguavaju korienje indirektnog
adresiranja.
U principu indirektno adresiranje se realizuje tako to se navodi adresa
promenljive iji sadraj predstavlja adresu promenljive (operanda) nad kojom se vri
neka operacija. U skladu sa time promenom sadraja navedene promenljive menja
adresa operanda.
Adresa promenljive ukljuuje broj datoteke (f), broje elementa (e), broj rei(w) i
broj bita (b). Svaki od ovih podataka moe biti indirektno adresiran navoenjem adrese
promenljive koja sadri traeni podatak. Pri tome, budui da su svi ovi podaci celi
brojevi, jasno je da promenljiva ija se adresa navodi mora biti celobrojnog tipa, duine
1 rei. Shodno tome, za indirektno adresiranje mogu se koristiti promenljive iz datoteke
tipa N, ili posebne promenljive iz datoteka tipa T ili C (ACC i PRE), odnosno datoteke
tipa R (LEN i POS). Indirektna adresa specificira se navoenjem promenljive koja sadri
adresu u uglastim zagradama, kao to je to ilustrovano u tabeli T. 4.
Indirektna adresa Indirektno se Ako je vrednost N7:e = 13, adresirana promenljiva je
adresira
N[N7:e]:e1 broj datoteke N13:e1 elemenat e1 u datoteci 13 tipa integer
elemenat 13 u datoteci f tipa floating
Ff:[N7:e] broj elementa Ff:13
point
Stf:e.[N7:e] broj rei Stf:e.13 re 13 elementa e u datoteci f tipa srtring
4. Programske konstante
Pored promenljvih koje se smetaju u datotekama podataka, u pojedinim
programskim naredbama doyvoljeno je korienje i programskih konstanti, brojnih
vrednosti koje sedefiniu pri formiranju aplikacije i ne mogu se programski menjati.
Programska konstanta se definie tako to se na mestu predvienom za adresu
promenljive (operanda), direktno navede odgovarajua brojna vrednost. Celobrojna
brojna vrednost je 16 bitna re, dok realna vrednost zauzima 2 rei (SLC 5/03 i SLC
5/04). Celobrojna brojna vrednost se moe zadati u dekadnom brojnom sistemu ili kao
heksadecimalna, oktalna ili binarna konstanta (T. 6). Pored toga, konstanta se moe
definisati i kao ASCII podatak sa 4 karaktera, pri emu svaki karakter zauzima 1 bajt.
Ako se konstanta ne specificira u dekadnom brojnom sistemu onda se ona definie sa
prefiksom & i odgovarajuim slovom koje ukazuje na nain predstavljanja konstante.
interno povezani sa
xn
n
U/I xnn
xn n
xnn
napajanjem (DC ili AC), sa
pinovi
xn n
xnn
xnn
xn n
zajednikom (nultom)
xn n
takom i sa zemljom. Nain
sprezanja pojedinog uraja
sa modulom zavisi od
Sl. 7 Digitalni U/I modul specifinosti samog
uredjaja, kao i karakteristika
modula (Dodatak UI). Detaljna ema sprege vezivanja data je uz svaki modul.
Za vreme rada U/I modula, stanje svakog pina se prikazuje na odogovarajuem
LED indikatoru. Indikator koji je povezan sa ulaznoim pinom svetli ako je ulazni signal u
stanju logike jedinice. Indikator povezan sa izlaznim pinom svetli ako je, kao rezultat
obrade programa, na izlazni pin postavljena logika jedinica.
Postoje tri tipa U/I modula: ulazni, izlazni i kombinovani ulazno/izlazn modul. Oni
se izrauju sa razliitim gustinama pinova (4, 8, 16 i 32 pina po modulu) i mogu se
sprezati sa AC, DC i TTL naponskim nivoima. Detaljnija specifikacija U/I modula data je
u Dodatku UI.
Kao to se vidi na Sl. 7 U/I moduli se smetaju u slotove na asiji. Maksimalni
broj modula koji se moe direktno povezati sa jednim kontrolerom, zavisi od veliine
asije i broja slobodnih slotova (uz uslov da je asija ima odgovarajui modul napajanja
Dodatak POW). Budui da svaki slot ima svoju adresu unutar asije, to znai da je
samim stavljanjem modula u slot odreena i njegova adresa. Konano, kao to je ve
istaknuto, i svaki pin unutar jednog modula ima svoju adresu. U skladu sa time svaki pin
ima u okviru kontrolera jedinstvenu adresu, koja je odreena adresom slota u koji se
modul postavljai adresom pina unutar modula. Potrebno je da se naglasi da je adresa
pina odreena automatski stavljanjem modula u asiju kontrolera i da se ne moe
programski menjati.
Nain vezivanja, ovih ureaja prikazan je na Sl. 14 i Sl. 15. Pri tome, potrebno je
da se istakne da digitalni moduli koji predstavljaju izvor signala moraju u sebi da imaju i
izvor napajanja. U tom sluaju, postojanje jo jednog spoljnog izvora, je opciono. Za
razliku od njih digitalni moduli koji primaju signale nemaju izvor napajanja. To znai da u
kolu preko koga se vezuje digitalni ureaj mora da postoji spoljni izvor napajanja.
Digitalni ulazni
ureaj
(izvor) VDC
izvor signal ulazni
DC + pin
DC izlazno
izvor
napajanja - DC ulazno DC +
Digitalni izlazni
ureaj kolo
izvor (izvor) (prijemnik)
kolo
(prijemnik)
napajanja - izvor signal
izlazni
pin
DC
DC COM
COM
Digitalni ulazni
ureaj
(prijemnik) VDC
ulazni
DC
izvor - com signal
pin Digitalni izlazni DC izlazno
napajanja DC ureaj kolo
(opcioni) + DC ulazno izvor + (prijemnik) (izvor)
kolo
(izvor)
napajanja
(opcioni) - com izlazni
pin
DC
VDC COM
Celobrojna decimalna
Opseg napona/struje reprezentacija Rezolucija
(datoteka ulaza)
-10V dc do +10V dc -32768 do +32767
0 do 10V dc 0 do 32767
305.176V
0 do 5V dc 0 do 16384
1 do 5V dc 3277 do 16384
-20mA do +20mA -16384 do +16384
0 do 20mA 0 do 16384 1.2207A
4 do 20mA 3277 do 16384
4. Formiranje aplikacije
Formiranje jedne aplikacije zapoinje uvek specifikacijom samog kontrolera na
kome e se data aplikacija realizovati. To znai da korisnik mora da prui informaciju o
vrsti i tipu procesorskog modula koji e se koristiti, o ulazno izlaznim modulima koji e
se postaviti u asiji i o tipu raunarske mree u koju e taj kontroler biti vezan. Najvei
broj proizvoaa PLC-ova razvio je i odgovarjui grafiki korisniki interfejs koji
omoguava korisniku da na veoma jednostavan nain izvri ove operacije. U tom
sluaju specifikacija se odvija kroz sistem "prozora" okviru kojih se korisniku nude sve
mogue opcije meu kojima on odabira onu koja odgovara datoj konfiguraciji.
Na prikazan je izgled prozora pri definiciji konfiguracije PLC-a iz familije Allen
Bradley SLC 500 Modular Controllers.
Sa slike (Sl. 20) se vidi da se u slotu 0 nalazi procesorski modul tipa 5/03, koji u
asiji ima prostor za jo tri modula.
Leder programiranje
sken ciklusa smetene u input image file, ili na stanja internih promenljivih, ije su
vrednosti smetene u odgovarajuim datotekama. Svaki simbol predstavlja jednu
unarnu binarnu operaciju kojoj je
pridruena odgovarajua tablica
istinitosti. Uz grafiki simbol naznaava
se i adresa promenljive koja
predstavlja operand. Pri ispitivanju
istinitosti uslova smatra se da se nad
Sl. 1 Leder rang svim simbolima u jednoj liniji (redna,
serijska veza) obavlja logika I
operacija. To znai da je uslov istinit ukoliko je svaki pojedinani iskaz istinit. Na levoj
strani ranga dozvoljena su i granjanja (paralelene veze). Pri ispitivanju istinitosti uslova
paralelene veze se tretiraju kao logika ILI operacija. To znai da e iskaz predstavljen
nizom paralelnih grana biti istinit, ako bar jedna od grana sadri istinit iskaz. Potrebno je
da se istakne da leva strana ranga moe biti formirana i tako da na njoj nema ni jednog
simbola. U tom sluaju smatra se da je uslov koji se na taj nain definie uvek istinit.
Akcija Grafiki simboli na desnoj strani ranga odnose se ili na fiziki izlaz
(promenljive smetene u output image file, koje e biti prenete na izlaze kontrolera u
toku izlaznog dela sken ciklusa) ili na interne promenljive, ije su vrednosti smetene
u odgovarajuim datotekama. Svaki simbol predstavlja jednu naredbu koja se
izvrava ako je uslov na desnoj strani istinit. Uz simbol se naznaava i adresa
promenljive ija se vrednost menja prilikom izvravanja naredbe, ili koja na bilo koji
drugi nain uestvuje u realizaciji naredbe (npr. otpoinjanje ili zaustavljanje neke
aktivnosti, skok na neki drugi rang, poziv potprograma itd.). Serijska veza na desnoj
strani ranga nije dozvoljena, dok paralelna veza oznaava da se vie razliitih
naredbi izvravaju kao rezultat ispitivnja istinitosti jednog istog uslova.
U literaturi je uobiajeno da se i simboli koji oznaavaju uslov i simboli koji
oznaavaju akciju oznaavaju kao naredbe. Otuda je neophodno da se istakne
sutinska razlika izmeu naredbi uslova i naredbi akcije. Naime, izvravanje naredbi
uslova obavlja se tako to se u zavisnosti od vrednosti operanda, prema pridruenoj
tablici istinitosti, naredbi dodeljuje vrednost (0 ili 1). Dakle, naredbe uslova se izvravaju
u svakom sken ciklusa i rezultat njihovog izvoenja je vrednost naredbe. Za razliku od
toga naredbama akcije se ili dodeljuje vrednost nekoj promenljivoj ili izvrava neka
druga aktivnost. Ove naredbe se izvravaju 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 izvrava u toku programskog dela sken ciklusa i to tako to se
obrauje rang po rang u nizu kako su oni definisani. U svakom rangu ispituje se istinitost
uslova i ukoliko je uslov istinit izvravaju se odgovarajue naredbe u desnom delu
ranga. To znai da promenljive na desnom delu ranga mogu menjati svoju vrednost
samo jedanput u toku sken ciklusa, i to upravo onda kada se odgovarajui rang ispituje.
Potrebno je zapaziti, meutim, da ukoliko se promenljiva na desnoj strani ranga odnosi
na fiziki izlaz, vrednost izlaza nee biti promenjena u istom trenutku vremena. Naime,
za vreme programskog skena menjaju se samo vrednosti promenljivih smetenih u
datoteku izlaza (output image file). Tek kasnije, za vreme izlaznog dela sken ciklusa, sve
promenljive iz datoteke izlaza bie prenete na odgovarajue izlazne linije. Ista stvar vai
i za ulazne promenljive. Drugim reima, za vreme programskog skena ispitivanje
3/plc_leder
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 izvravaju se u trenutku skaniranja
pojedinog ranga.
2. Bit naredbe
Bit naredbe su, kao to samo ime kae naredbe iji su operandi bitovi. Sa
gledita lokacije operanada, to znai da se oni najee nalaze u datoteci 3 (bit file),
digitalnim ulaznim ili izlaznim datotekama (input image file 1 ili output image file 0) ili u
korisnikim datotekama bit tipa. Pored toga, adresirani operand moe da se nalazi i u
bilo kojoj drugoj datoteci u okviru koje je mogue adresirati pojedini bit. Gledano
potpuno opte 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).
Bit naredbe za definisanje uslova
Ove naredbe se postavljaju na levoj strani ranga i definiu uslov koji se odnosi na stanje
bita ija je adresa definisana u naredbi. Kao rezultat izvoenja naredba dobija istinosnu
vrednost true (istinit) ili false (neistinit) .
Nazivi ove dve naredbe potiu od ispitivanja binarnnih signala koji dolaze sa
prekidakih 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").
(Sl. 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, smetenog u slotu 1 PLC-a. Na
osnovu stanja ulazne linije generie se signal na
izlaznoj liniji koja je vezana za nulti pin izlaznog
dela istog U/I modula. Na slici Sl. 3 prikazan je
vremenski dijagram promene signala na ulaznoj
Sl. 2 Postavljanje izlaza u zavisnosti od liniji, vrednosti bita u input image file-u koji je
vrednosti ulaza
pridruen toj liniji, vrednosti bita u output image file-
u i signala na izlaznoj liniji koji je sa tim bitom povezan. Predpostavljeno je da ceo
program ima vie ulaznih signala i vie izlaznih signala ije oitavanje, odnosno
generisanje zahteva odreeni period vremena za ulazni i izlazni sken interval. Isto tako,
predpostavljeno je i da se program sastoji od vie rangova, ija obrada zahteva neki
period vremena (programski sken interval).
4. Primeri
Upravljanje paljenjem sijalice
Posmatra se elektrino kolo (Sl. 4) u kome sijalica S svetli kada je zatvoren
prekida P1 i jedan od prekidaa P2 ili P3.
Potrebno je da se ovo elektrino kolo
zameni sa PLC-om.
Da bi se postavljeni zadatak reio
neophodno je kao prvo da se sa kojom
opremom se raspolae i da se odlui
kako e se ona vezati za PLC.
Predpostavimo da imamo tri
Sl. 4 Elektrino kolo tastera od kojih su dva normalno
otvorena i jedan normalno zatvoren i jedno elektrino kolo u kome se nalazi sijalica koje
se zatvara pomou releja.
Usvojiemo da normalno otvoreni
tasteri obavljaju funikciju
prekidaa P1 i P3, dok e
normalno zatvoren taster obavljati
funkciju prekidaa P2.
U skladu sa odabranim
senzorima i izvrnim organom
neophodno je da raspolaemo sa
tri digitalna ulaza i jednim
digitalnim izlazom. Budui da
Sl. 5 Sprezanje senzora i izvrnog organa sa PLCom
imamo PLC koji u prvom slotu ima
digitalni U/I modul, moemo
izvriti vezivanje opreme. Po prirodi stvari vezaemo tri tastera za ulazne pinove 0, 1 i 2,
dok e rele na izlazu biti vezano za izlazni pin 0. Shodno tome, adrese prekidaa P1, P2 i
P3 su respektivno I:1/0, I:1/1 i I:1/2, dok je adresa sijalice O:1/0 (Sl. 5).
Kada je formirana ema vezivanja opreme za PLC, onda se pristupa pisanju leder
programa.
U cilju formiranja levog dela ranga treba uoiti da je uslov za paljenje sijalice da
se istovremeno pritisne taster P1 i jedan od tastera P2 ili P3. Budui da su tasteri P1 i P3
normalno otvoreni, pritisak na njih dovodi do zatvaranja odgovarajuih prekidakih kola,
tako da se moe detektovati pomou XIC naredbe, koja e dobiti vrednost istinit kada su
8/plc_leder
Sl. 7 Leder program koji trajno postavlja izlazni bit ("pamti" ako je uslov bio ispunjen)
9/plc_leder
slikama Sl. 9 i Sl. 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 utie na ponaanje
sijalice. Kad se Stop taster pritisne, vrednost tog dela uslova postaje neistinita, a budui
da je to redni (serijski) uslov, i vrednost celog ranga postaje neistinita. U tom sluaju u
programu sa trajnim postavljanjem izlaznog bita uslov u drugom rangu postaje istinit i
aktivira naredba OTU (Sl. 9). Kod reenja sa smodranjem, 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. 10).
Naravno, ceo problem oko paljenja i gaenja sijalice bio bi reen rangom
koji je prikazan na slici Sl. 6, da su umesto tastera korieni dvopoloajni prekidai.
Putanje sistema u rad
Posmatra se sistem koji poinje da radi kada se pritisne START taster. Sistem
nastavlja sa radom sve dok se ne pritisne stop taster. Istovremeno se zahteva da se
prilikom zapoinjanja rada sistema generie impulsni signal koji realizuje brzo
zamrzavanje nekog LED displeja. Potrebno je da se formira leder program koji e
podravati rad opisanog sistema uz predpostavku da se on puta u rad pomou jednog
on/off motora.
Neka su kola koja sadre START i STOP taster kao i kolo za pobudu motora
vezani za U/I modul koji je smeten 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. Odgovarajui leder program dat je na
slici Sl. 11.
U prvom rangu uslov je ispunjen ako je START taster pritisnut i STOP taster nije
pritisnut. U tom sluaju generisae se signal za start motora i on e biti zaleovan, tako
da se njegova vrednost nee menjati ukoliko se zbog otputanja 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 izvriti OTE naredba kojom se na izlazu O:1/1
generie potreban impulsni signal. Sve dok se ne pritisne STOP taster, vrednost uslova
u drugom rangu bie neistinita, tako da se naredba unletch nee izvravati. Kada se
pritisne STOP taster, uslov u prvom rangu postaje neistinit, to znai da se letch
11/plc_leder
Realizacija sekvence
Dat je sistem koji sadri jedan jednosmerni solenoid (A) i dva dvosmerna (B i C).
Potrebno je realizovati sledeu sekvencu pomeranja klipova: A+ B+ C+ B- A- C- . Pri
tome se predpostavlja da su u poetnom trenutku svi klipovi uvueni. Granini prekidai
koji indiciraju uvuenost klipa A i B su normalno zatvoreni, dok su svi ostali granini
prekidai normalno otvoreni. Sistem se puta u rad pomou pritiska na taster i prestaje
sa radom kada se jedanput izvri zahtevana sekvenca.
Jedno mogue reenje postavljenog zadatkadata je na slici. Pri tome je
predpostavljeno da su granini prekidai vezani za PLC preko ulaznog modula koji se
nalazi u slotu 3 (adrese I:3/b), dok se pobude solenoida dobijaju preko izlaznig 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 otpoinjanje i
zavretak rada. Interna promenljiva vrati A (B3:0/1) slui za deaktiviranje pobude klipa
A, posle ega ga opruga vraa u poetni poloaj.
Potrebno je da se obrati panja na injenicu da se, da ne bi dolo do sluajnog
pomeranja klipova (izazvanog recimo nekim optereenjem), oni u izvuenom poloaju
dre pod naponom, sve dok ne doe trenutak za njihovo uvlaenje. Budui da se stanje
graninih prekidaa menja ima se klip pomeri, da bi se obezbedio kontinuitet napajanja
koristi se postupak samodranja (rang 3 i 4).
Zapazimo, takoe, da se stanje prekidaa koji indiciraju uvuen poloaj klipa ne
moe ispitivati samo po sebi. Naime ovi prekidai su pritisnuti u poetnom stanju, pa je
neophodno utvrditi da je dolo do pokreta pre nego to su oni ponovo pritisnuti (rang 5,
6 i7).
12/plc_leder
1. Uvod
Prilikom upravljanja ili nadzora procesa esto je potrebno da se neka aktivnost
otpone ili zaustavi posle odreenog vremenskog perioda, ili da se ponovi odreeni
broj puta. U tom smislu neophodno je da kontroler koji e se koristiti za upravljanje
procesom prui mogunost za merenje vremena i prebrojavanje dogaaja.
Prebrojavanje dogaaja obavlja broja (counter), koji nakon registrovanja unapred
zadanog broja dogaaja generie odgovarajui signal. Merenje vremena ostvaruje se
pomou asovnika (timer). U sutini asovnik izraava vreme kao multipl odreenog
osnovnog intervala (vremenska baza). To zapravo znai da asovnik radi kao broja
protoka osnovnih intervala i da nakon isteka odreenog, unapred zadanog intervala
vremena, generie odgovarajui signal.
Gledano potpuno opte merenje protoka vremena i prebrojavanje dogaaja u
okviru kontrolera moe se realizovati hardverski pomou odgovarajuih raunarskih
komponenti (modula) ili softverski (programski). Hardverska realizacija podrazumeva
da kontroler ima posebni modul koji ostvaruje funkciju asovnika i brojaa. Korisnik
odgovarajuim naredbama definie parametre modula i u toku izvravanja programa
kontrolie njegov rad. U sluaju softverske realizacije, ovu funkciju ostvaruje posebni
programski modul, koji korisnik, po potrebi, ukljuuje u svoj program i odgovarajuim
naredbama upravlja njegovim radom. Sa aspekta naina korienja, gotovo da i
nema razlike izmeu 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 znai da ne koriste procesor za svoj rad.
Nasuprot tome, softverski realizovani asovnik i broja, kao i svi drugi programski
moduli, za izvoenje svojih funkcija zahtevaju izvesno procesorsko vreme. Budui da
je procesor optereen itavim nizom poslova, to znai da postoji samo odreeno
vreme koje on moe posvetiti radu asovnika i brojaa. Otuda hardverska realizacija,
bar u principu, omoguava rad sa manjim intervalima vremena, odnosno brim
ponavljanjem dogaaja od softverske. Sa druge strane meutim, softverska
realizacija omoguava da se definie i koristi praktino neogranien broj asovnika i
brojaa, jer se kao jedino ogranienje javlja veliina raspoloive memorije.
U seriji kontrolera SLC 5 asovnici i brojai su realizovani softverski, i koriste
se kao naredbe akcije. Kao to je ve istaknuto ne postoji nikakvo posebno
ogranienje u pogledu njihovog broja. Potrebno je da se naglasi da su za neke od
SLC 5 kontrolera razvujeni i posebni hardverski brojai.
Pri korienju asovnika i brojaa neophodno je da se definiu sledei
parametri.
Vremenska baza (time base) odreuje duinu 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 mogue vrednosti: 0.01 sec ili 1.0 sec.
Zadana vrednost (preset value - PRE) je vrednost kojom se definie eljeni broj
osnovnog intervala vremena (ime se odreuje ukupno vreme koje asovnik treba
da izmeri), odnosno ukupni broj dogaaja koje broja treba da registruje pre nego
to se generie signal koji oznaava da su asovnik ili broja zavrili rad.
Zadana vrednost za asovnik moe da se kree u intervalu od 0 do +32767, dok
se zadana vrednost za broja kree u opsegu od -32768 do +32767.
2/plc_T/C
2. Realizacija asovnika
Datoteka podataka o asovniku (timer data file)
S obzirom da je asovnik realizovan softverski, parametri koji definiu njegov
rad moraju biti smeteni u memoriji kontrolera. Za pamenje podataka o asovnicima
koristi se datoteka podataka broj 4 (timer file T). U ovoj datoteci moe se definisati
najvie 256 razliitih asovnika. Ukoliko je potrebno da se koristi vei broj asovnika,
korisnik moe definisati i dodatne datoteke (korisniki definisane datoteke) iji su
brojevi od 9 do 255.
Svakom asovniku pridruuju se po jedan element u odgovarajuoj datoteci.
Osnovni element ovih datoteka sastoji se od tri 16-bitne rei:
Re 0 je kontrolna re koja sadri tri bita koja ukazuju na stanje asovnika, kao i
bitove za interno upravljanje radom asovnika
Re 1 sadri zadanu vrednost (PRE)
Re 2 sadri akumuliranu vrednost (ACC)
resetuje na nulu kada uslov postane istinit ili kada se DN bit resetuje.
3. Realizacija brojaa
Datoteka podataka o brojau (counter data file)
Budui da je broja, isto kao i asovnik, realizovan softverski, parametri koji
definiu njegov rad moraju biti smeteni u memoriji kontrolera. Za pamenje
podataka o brojaima koristi se datoteka podataka broj 5 (counter file C). U ovoj
datoteci moe se definisati najvie 256 razliitih brojaa. Ukoliko je potrebno da se
koristi vei broj brojaa, korisnik moe definisati i dodatne datoteke (korisniki
definisane datoteke) iji su brojevi od 9 do 255.
Svakom brojau pridruuju se po jedan element u odgovarajuoj datoteci.
Osnovni element ovih datoteka sastoji se od tri 16-bitne rei:
Re 0 je kontrolna re koja sadri 6 bitova koji ukazuju na stanje brojaa.
Re 1 sadri zadanu vrednost (PRE)
Re 2 sadri akumuliranu vrednost (ACC)
Postoje dva osnovna tipa brojaa broja unapred (CTU count up) i broja
unazad (CTD count down) i oba koriste istu datoteku (Sl. 5). Isto kao i kod
asovnika i brojau i pojedinim bitovima mogu se umesto adrese dodeliti simbolika
imena.
Naredbe brojaa
Naredbe za oba tipa brojaa su naredbe akcije, to znai da se smetaju u
desni deo ranga. Oba brojaa broje promenu vrednosti uslova sa neistinit na isitinit
(uzlazna ivica). Pri svim ostalim vrednostima uslova, oni zadravaju prebrojani iznos i
9/plc_T/C
ekaju sledei prelaz. Drugim reima, brojai se niti putaju u rad, niti zaustavljaju.
Oni neprekidno rade i belee (broje) svaki prelaz istinit/neistinit. Dostizanje zadane
vrednosti se signalizira postavljavanjem odgovarajueg bita done bit (DN) na 1,
ali se brojanje i dalje nastavlja. Prebrojani iznos se moe izbristai jedino posebnom
RES naredbom.
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 naina da se postavljeni problem rei
je da se uslov za aktiviranje spojnice postavi tako da se ona ne sme aktivirati ako je
jedan od tastera stalno pritisnut, odnosno ako izmeu pritiskanja jednog i drugog
tastera proe vie od nekog vremenskog intervala. Recimo da je to 500ms.
Kada se pritisne taster leve ili desne ruke (ili oba) asovnik e poeti da meri
vreme. Pri tome, budui da se taster nakon pritiska moe i otpustiti, informacija o
tome da je on bio pritisnut pamti se trajno u jednom internom bitu, koji se onda u
sledeem 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 poloaju, to znai da bi on stalno pokazivao vreme koje je vee od
500ms.
Sledei rang (broj 4) slui za aktiviranje spojnice. Uslov da bi se spojnica
aktivirila je da su oba tastera prititsnuta, da od trenutka pritiska prvog od njih nije
proteklo vie od 500ms, i da se presa nalazi u gornjem graninom poloaju. Ukoliko
je spojnica aktivirana, dolazi do pokreta to znai da se otvara gornji granini
prekida. Kada su ova dva uslova istovremeno istinita, u rangu broj 5 e se postaviti
indikator pokreta bata . Konano, ako je dolo do pokreta i pri tome je gornji granini
prekida zatvoren (hod), u rangu broj 6 se resetuje pobuda spojnice i svi upameni
bitovi, ime se omoguava izvravanje sledeeg 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 samodranjem prati istu osnovnu logiku (Sl. 9). Razlika je jedino u
tome to se ovde u svakom rangu u kome se postavljaju bitovi, pomou paralelne
grane obezbeuje da uslov bude istinit i kada neki od tastera ili prekidaa promeni
stanje. Pri tome, da bi se obezbedilo da se ovi bitovi resetuju kada se zavri jedan
ciklus rada prese uvodi se interna promenljiva "kraj" koja se postavlja na 1 kada se
ciklus prese zavri. Posle toga, u sledeem programskom sken ciklusu uslovi u svim
rangovima bie nesitiniti (jer se u njima ispituje promenljiva "kraj").
Regulacija protoka vazduha
Zadatak
Posmatra se neki ventil ijim radom se upravlja pomou jednosmernog
solenoida (A). Pri tome, kada se aktvira ventil, pritisak vazduha dostie eljeni nivo u
roku od 5 sekundi. Nakon toga, ventilom se moe upravljati (pomeranjem klipa
solenoida) i to u vremenu od 10 sekundi. Posle isteka 10 sekundi, opruga solenoida
vraa klip u poetni poloaj i zatvara ventil.
Reenje
Dva mogua reenja postavljenog problema, od kojih jedno koristi izlaznu
naredbu sa trajnim postavljanjem bita, a drugo postupak samodranja, prikazana su
na Sl. 10 i Sl. 11. Predpostavljeno je da se signal sa prekidaa za otpoinjanje
programa vodi na nulti pin digitalnog ulaza (simboliko ime START_ON), a da se
signal na prikljuak A+ solenoida vodi preko nultog pina digitalnog izlaza (simboliko
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 izvriti 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 sledeim sken ciklusima, sve dok ne istekne 5
sekundi.
U sken ciklusu u kome se dostie 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. Budui 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. 10) e i dalje biti neistinit, pa se taj rang nee
aktivirati.
U narednim sken ciklusima, sve dok ne proe 10 sekundi bie istinit samo
15/plc_T/C
skladu sa time uslov ranga 0 e biti neistinit (PALI/EN=0), te asovnik PALI nee
raditi. Uslov ranga 1 e zbog toga biti neistinit i pokrenue asovnik GASI. Uslov u
rangu 2 je neistinit i sijalica ne svetli. Ovakvo stanje trajae dok asovnik GASI ne
izmeri zadano vreme (ovde je usvojeno da to bude 1 sec). Kada protekne 1 sekunda,
asovnik GASI je zavrio rad i njegov DN bit postaje 0. U sledeem sken ciklusu,
uslov u rangu 0 e biti istinit (PALI/EN=1) i aktivirae se asovnik PALI.
Maina za pakovanje
Zadatak
Posmatra se jedna maina koja pakuje konzerve u kutiju i to tako da u kutiji
ima tri reda konzerrvi, pri emu u svakom redu ima po 5 konzervi. Maina radi tako
to se pomou jednog klipa (A) konzerve koje dolaze preko pokretne trake guraju,
jedna po jedna, na pomono postolje. Kada se na postolje smesti 5 konzervi, onda
se one, sve zajedno, pomou drugog klipa (B) gurnu u kutiju. U skladu sa time, za
pakovanje jedne kutije potrebno je da se ostvari sledea sekvenca pomeranja
klipova:
[ (A+ A-)x5 B+ B-]x3
Reenje
Dva mogua reenja (sa i bez leovanja) data su na Sl. 14 i Sl. 15.
U prvom reenju (Sl. 14) je predpostavljeno da su i klip A koji pomera
konzerve i klip B koji pomera ceo red konzervi dvosmerni solenoidi, to znai 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
poloaja oba klipa su normalno otvoreni prekidai 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
otpoinjanje rada vezan je za pin 0. Budui da se poetak 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 oznaena sa "nije kraj" i ona
zapravo utie na istinitost uslova ranga broj 1 kojim se zapoinje ceo siklus
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 moe pratiti uz pomo
komentara koji su dati uz svaki rang. Napomenimo, da je dobra programerska praksa
da se program opie detaljnim komentarima. Ovo ne samo da olakava traenje
greaka pri testiranju programa, ve je od neobine koristi i kasnije kada doe do
eventualnih modifikacija programa. Program je realizovan pomou tehnike
samodranja. Samo se po sebi razume da se zadatak moe reiti i pomou naredbi
za trajno postavljanje bitova.
Kao i kod primera sa upravljanjem ekscentar presom i pri korienju solenoida
19/plc_T/C
Sl. 14 Leder program za upravljanje mainom za pakovanje koja ima dva solenoida sa po dva
kraja
Sl. 15 Leder program za upravljanje mainom za pakovanje koja ima jedan solenoid sa dva
kraja i jedan solenoid sa oprugom
1/plc_math
2. Naredbe za poreenje
Naredbe za poreenje su naredbe uslova. U okviru ovih naredbi proverava se
2/plc_math
istinosna vrednost relacije izmeu dva operanda. Kao rezultat provere naredba
dobija vrednost istinit ili neistinit.
Jedna grupa naredbi za poreenje ima oblik kao to je to prikazano na slici Sl. 1. U
tabeli T. 1 dat je pregled svih naredbi za poreenje iz ove grupe. Potrebno je da se
istakne da je prvi operand je uvek promenljiva, dok drugi operand moe biti ili
promenljiva ili programska konstanta.
relacija
Kod
Ime naredbe istinita ako neistinita ako
naredbe
je je
EQU Equal (jednako) A=B AB
NEQ Not equal (nejednako) AB A=B
LES Less than (manje) A<B A>B
LEQ Less than or equal (manje ili jednako) AB AB
GRT Greater than (vee) A>B A<B
GEQ Greater than or equal (vee ili jednako) AB AB
Ova naredba slui za poreenje delova pojedinih rei. Naime na poloaju onih
bitova koji ne uestvuju u poreenju (maskirani bitovi) u maski se stavljaju nule.
Ostali bitovi maske, koji odgovaraju bitovima koji se porede (nemaskirani bitovi), se
postavljaju na 1. Ukoliko su bitovi operanda i reference koji nisu maskirani
3/plc_math
meusobno jednaki naredba ima vrednost istinit. U protivnom ona ima vrednost
neistinit. Pri definisanju maske, pogodno je koristiti heksadecimalnu konstantu ili
promenljivu.
LIM Limit test (ispitivanje granica)
3. Matematike naredbe
Opte napomene
Kako im i samo ime kae, matematike naredbe slue za realizaciju razliitih
operacija nad operandima. Ove naredbe su naredbe akcije i u najveem broju
sluajeva imaju dva operanda. Izvravanjem naredbe obavlja se zahtevana
matematika operacija nad operandima i dobija rezultat ija se vrednost pamti.
Operandi mogu biti programske poromenljive ili konstante, s tim to oba operanda ne
mogu biti konstante.
Postavljanje indikatorskih bitova
Tok izvoenje zahtevane operacije u smislu prekoraenja dozvoljenog opsega
brojeva, prenosa, pokuaja deljenja sa nulom itd, moe se pratiti preko vrednosti
indikatorski bitova u datoteci 2 (Status), koje se automatski postavljaju kad se
naredba izvrava. Pri tome se postavljaju sledei bitovi.
S:0/0 Carry bit (C) Ovaj bit se postavlja na 1 kada pri obavljanju operacije dolazi do prenosa
bita iz najvie, 15. lokacije, u protivnom bit C ima vrednost 0. Sa aspekta korisnika, vrednost ovog
bita je od znaaja ako se operacije izvode nad celobrojnim pozitivnim vrednostima. U tom sluaju,
ako je bit C postavljen na 1, onda to znai da je prilikom sabiranja dobijen rezultat koji ima vie od
16 bitova, ili da je od manjeg broja oduzet vei broj.
4/plc_math
S:0/1 Overflow bit (V) Ovaj bit se postavlja na vrednost 1 onda kada je rezultat matematike
operacije premaio dozvoljeni opseg brojeva., ili ako je operacijom zahtevano deljenje sa nulom, u
protivnom vrednost bita V je 0. Oigledno je da se ovaj bit zapravo koristi pri izvoenju
matematikih operacija nad celobrojnim ili realnim vrednostima. Pri tome, ako su operandi
celobrojne promenljive i pri izvoenju operacije doe do prekoraenja opsega, onda se kao
rezultat dobija ili gornja (32767) ili donja granica opsega (-32768). Napomenimo, da se negativni
brojevi i kod celobrojnih i kod realnih promenljivih predstavljaju u tehnici drugog komplementa.
S:0/2 Zero bit (Z) Ovaj bit se postavlja na vrednost 1 ako je rezultat zahtevane operacije jednak
nuli, u protivnom Z bit ima vrednost 0.
S:0/3 Sign bit (S) Ovaj bit se postavlja na vrednost 1 ako je rezultat matematike operacije
negativan, (odnosno ako bit 15 rezultata ima vrednost 1), u protivnom vrednost bita S je nula.
S:5/0 Overflow trap bit Ovaj bit se postavlja na 1 onda kada je overflow bit V bit postavljen na
1. Pri tome, ako se vrednost bita S:5/0 ne resetuje na nulu, pre zavretka programskog sken
ciklusa, operativni sistem e signalizirati da je dolo do popravljive greke (kod greke 0020).
Izraz popravljiva, zapravo oznaava da nee doi do prekida rada programa, ve se samo
korisniku skree panja da negde u zahtevanim operacijama ima problema, jer rezultati premauju
dozvoljeni opseg brojeva.
Primedba: U naredbi XPY ukoliko eksponent (y) nije ceo broj, vrednost izraza
se rauna prema relaciji d=2(ylog2x). To znai da ukoliko je osnova (x) negativna,
eksponent mora da bude ceo broj. Ukoliko ovaj uslov nije ispunjen V bit se
postavlja na 1.
Primer: Celobrojno sabiranje sa dvostrukom tanou
Operandi: Prvi operand smeten je u rei B3:1, dok je drugi operand celobrojna
vrednost dvostruke tanosti, tako da je donjih 16 bitova smeteno u rei na adresi
B3:2, a gornjih 16 na adresi B3:3. Rezultat takoe ima dvostruku tanost i pamti se
na istom mestu gde i drugi operand.
Algoritam: Donjih 16 bitova se dobija direktno naredbom za sabiranje ADD (Sl. 7). Pri
tome da bi se spreilo da se rezultat postavi na graninu vrednost reba postaviti bit
S:2/14 na 1.
primeni na 32 bita (to bi dovelo do toga da su svih gornjih 16 bitova jedinice koje
bi trebalo sabrati sa rei drugog operanda koja sadri gornjih 16 bitova). Otuda
sledi da se rezultat koriguje tako to se toj rei drugog operanda dodaje broj iji
su svih 16 bitova 1. Budui da ovaj broj predstavlja drugi komplement broja 1, to
znai da je potrebno da se od druge rei drugog operanda oduzme 1.
8. bitni
negativan 1 1 1 1 4. bitni 8. bitni
broj
1 0 0 1 -7 (9)
ADD
0 0 0 1 1 1 1 1 15 31
C=1 0 0 0 1 1 0 0 0 8 24
ADD 1 16
rezultat 0 0 1 0 1 0 0 0 40
SUB 1 16
rezultat 0 0 0 1 1 0 0 0 24
Unarne operacije
U grupu unarnih operacija svrstane su i aritmetike i logike unarne operacije,
ali i biblioteke funkcije jedne promenljive. Sve ove naredbe imaju isti opti oblik (Sl.
10). Pregledsvih naredbi dat je u tabeli T. 3.
operandom)
Square Root
SQR d= a uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
(kvadratni koren)
Absolute (apsolutna
ABS d =|a| uvek 0 1 samo za =-32768 1 za d=0 uvek 0
vrednost)
SIN Sine d = sin(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
COS Cosine d = cos(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
TAN Tangent d = tg(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
ASN Arc Sine d = arcsin(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
ACS Arc Cosine d = arccos(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
ATN Arc Tangent d = artg(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
Natural log
LN d = ln(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
(prirodni logaritam)
Log to the base 10
LOG d = log(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
(dekadni logaritam)
Ova naredba je veoma slina naredbi SCP, jer se i pomou nje ostvaruje
linearno skaliranje promenljive. Razlika je, zapravo samo u nainu definisanja
parametara skaliranja, odnosno prave linije . Skaliranje ulaza se izvodi prema
sledeoj relaciji:
Rate
Dest = Source + Offset
a 10000
y= x+b
10000 Prilikom izvoenja naredbe,
odnosno izraunavanja izraza postavljaju
se sledei bitovi:
C bit je rezervisan za potrebe
operativnog sistema
V bit se postavlja na 1 ako je u
toku izraunavanja dolo do prekoraenja
dozvoljenog opsega brojeva.
Z bit se postavlja na 1 ako je
Sl. 12 Grafika ilustracija skaliranja (SCL) rezultat jednak nuli.
S bit se postavlja na 1 ako je
rezultata negativan.
11/plc_math
Linearna nagibna rastua funkcija (nagibni
signal)
Rastui parabolini signal (ubrzanje)
Opadajui parabolini signal (usporenje)
t "S" funkcija
y = (y b y a ) + ya Pri tome se vreme izraava kao multipl
ts
osnovne jedinice koja se moe definisati kao
0.01 sec ili 1 sec. Signali ne mogu trajati due od nekog utvrenog vremenskog
intervala ts.
2
2 t t
t y = ( y b y a ) 1 s + ya
y = ( y b y a ) + y a t s
ts
Naredba se izvrava svaki put kada
y
S je uslov istinit. Pri tome se aurira vrednost
yb vremena i primenom odgovrajue relacije
odredi vrednost signala na izlazu (y). Kada
je uslov neistinit, vreme se ne aurira i
vrednost izlaza se ne izraunava. Prilikom
ya sledeeg prelaza uslova sa neistinitog na
istinit vreme e biti aurirano u odnosu na
ts t(sec)
poslednju vrednost koju je imalo.
Pri svakoj promeni uslova auriranje
2
t
( y b y a ) 2 + y a 0 t ts / 2
se ostvaruje sa tanou od 1 (jedinica
ts vremena) ili 1(vreme sken ciklusa),
y= 2
( y y ) 1 2 t s t + y ukoliko je vreme sken ciklusa vee od
b a t a ts / 2 > t > ts
s jedinice vremena (0.01sec ili 1 sec). Kao i
kod asovnika i ovde ja za taan rad
12/plc_math
neophodno da vremenski interval izmeu dva sken ciklusa ne bude vei od 1.5
sekunde.
Parametri signala se specificiraju u upravljakom bloku koji je celobrojna
datoteka (tip N) duine sedam elemenata
Naredbe za konverziju
BCD kod (Binary coded decimal) je kd kod koga se svaka decimalna cifra
predstavlja pomou jednog etvorocifrenog binarnog broja, kao to je to ilustrovano
na Sl. 18. (Samo se po sebi razume da je decimalni broj predstavljen u raunaru kao
binarni podatak). Ukoliko se kao celobrojni podatak u BCD naredbi unese negativan
broj, konvertovae se njegova apsolutna vrednost.
Postoji mogunost da se pomou TOD i FRD naredbi konvertuju i celi
15/plc_math
podatak se pamti u rei N7:1 (bcd podatak), koja se u sledeem sken ciklusu poredi
sa novo uitanim podatkom. Tek ako su oba podatka identina izvrava se FRD
naredba i rezultat se smeta u N7:2 (dec_podatak). Budui da u prvom sken ciklusu
nije mogue poreenje podataka, poreenje se vri tek od drugog sken ciklusa. Ovo
se postie ispitivanjem stanja indikatorskog bita u statusnoj datoteci S. Naime,
petnaesti bit prve rei (S:1/15) ima vrednost 1 samo u prvom sken ciklusu. Otuda i
potie njegovo simboliko ime first_pass (Sl. 19).
Primer konverzija u BCD kod
Celobrojni podatak smeten na adresi N7:3 treba da se konvertuje u BCD kod
i preko digitalnog izlaza prenese na BCD svetlei displej. Budui da originalni
podatak moe imati najvie pet cifara, konvertovani BCD podatak se smeta u
matematiki registar. Pretpostavlja se da se u slotovima 4 i 5 nalaze dva 16. bitna
digitalna izlaza. Donje etiri cifre podatka prebacuju se na izlaz O:4, dok se peta cifra
prebacuje na O:5.
Ovaj zadatak moe da se realizuje pomou dve MOV naredbe. Pri tome
budui da se iz gornjeg dela matematikog registra koristi samo jedan bajt
neophodno je da se realizuje maskirano prenoenje podataka (Sl. 20).
U posmatranom primeru predpostavljeno je da je pocetni podatak 32760. U
rangu 0, sadraj odredinog registra se prikazuje u heksadecimalnom formatu (koji
odgovara BCD kodu) i vide se prve etiri cifre (registar S:13). U rangovima 1 i 2
usvojen je decimalni prikaz podataka. Binarni broj koji odgovara decimalnom podatku
10080 je 0010 0111 0110 0000, odnosno odgovarajui heksadecimalni broj je 2760h.
numeriki podatak i to tako to se u njemu na 1 postavlja onaj bit iji redni broj u rei
odgovara numerikom podatku koji se konvertuje (Sl. 21). U ovoj naredbi koriste se
samo prva etiri bita promenljive source, to znai da se preostali bitovi mogu
koristiti u bilo koje druge svrhe.
Ova naredba je pogodna kada se eli multipleksiranje podataka kod ureaja
kao to su viepoloajni prekida, tastatura i sl.
ab | cd | ef | gh | ij |kl
tada e SWP naredba u kojoj se kao source adresira taj elemenat, i koja ima
duinu (length) jednaku 4 promeniti sadraj tog elementa u:
ba | dc | fe | hg | ji | lk
Sl. 24 Leder program za izraunavanje rastojanja i ugla koji koristi elementarne naredbe
20/plc_math
u u min
e = max (c c min ) + u min
c max c min
Ukoliko je funkcija f linearna tada se fizika veliina odreuje prema relaciji
v v min
v = max (e e min ) + v min
e max e min
Konano, ukoliko su granice elektrinog signala e i granice A/D konvertora
jednake, odnosno ako je
umin = min < emax = umax
tada se fizika veliina moe odrediti direktno na osnovu celobrojne vrednosti iz
relacije
v v min
v = max (c c min ) + v min
c max c min
Reenje
Na osnovu svega to je reeno o transformacijama ulaznog signala sada se
moe pristupiti reavanju postavljenog zadatka. Ovde su fizike veliine koordinate
objekta h i u, koje radar prati u opsegu od 250m do 1700m. To znai da su granice
fizikih signala xmin = ymin = 250 i xmax = ymax = 1700. Nadalje, budui da radar
generie strujni signal opsega od 4mA do 20mA to je emin = 4mA, a emax = 20mA.
Ako se pogledau karakteristike analognog U/I modula u slotu 3 videe se da on ovaj
strujni signal konvertuje u celobrojne vrednosti opsega od 3277 do 16384. To znai
da je cmin = 3277, a cmax =16384. Uzimajui u obzir sve to je reeno o transformaciji
signala, kao i injenicu da radar generie standardni strujni signal ije granice
odgovaraju granicama A/D konvertora, fizike veliine koje odgovaraju izmerenim
koordinatama mogu se odrediti preko relacije
1700 250
x= (c x 3277 ) + 250 = 0,11c x 112,53
16384 3277
.
1700 250
y= (c y 3277 ) + 250 = 0,11c y 112,53
16384 3277
gde cx i cy pretstavljaju celobrojne vrednosti koje su dobijene A/D konverzijom i koje
su, u toku ulaznog sken ciklusa smetene na adresama I:2.0 i I:2.1.
Obe relacije se mogu realizovati bilo matematikim naredbama bilo
korienjem posebne naredbi za skaliranje. U programu (Sl. 27) je koriena naredba
za skaliranje sa parametrima (SCP). Pri tome, da bi se ilustrovao postupak
inicijalizacije promenljivih, minimalna i maksimalna vrednost celobrojne promenljive
definiu se posebnim naredbama u nultom rangu. Samo se po sebi razume da to nije
neophodno i da se one mogu direktno zadati kao konstante u SCP naredbi kao to je
to uraeno sa minimalnom i maksimalnom vrednou fizike veliine.
Da se naredbe za definisanje vrednosti parametara ne bi izvravale u svakom
programskom sken ciklusu, kao uslov je korien "bit prvog prolaza" (S2:1/15). Ovaj
bit se nalazi u sistemskoj datoteci i njega sam procesor postavlja na 1 pre prvog sken
ciklusa i resetuje na nulu po zavretku prvog sken ciklusa. Otuda se, korienjem
ovog bita uvek moe izdvojiti deo programskih rangova u kojima se obavlja
inicijalizacija svih promenljivih.
23/plc_math
informaciju o procentu ugla koji treba da ostvari u odnosu na maksimalni ugao (kome
odgovara napon od 8V).
Formirati leder program kojim se realizuje ovaj zadatak.
Transformacije izlaznog signala
Kao i kod ulaznog signala oigledno je da je i pri formiranju izlaznog signala
neophodno da se izvri jedan broj transformacija (Sl. 28).
c c min
c = max ( v v min ) + c min ,
v max v min
odnosno
c max c min
c= ( v(%) v min (%)) + c min
100 v min (%)
Transformacija celobrojne vrednosti c u elektrini signal obavlja D/A konvertor
sam
Reenje
Na osnovu svega to je reeno o transformacijama analognih izlaznoh signala,
oigledno je da je kao prvo potrebno da se odrede granice fizikih veliina na osnovu
kojih se generiu nanalogni signali.
Polazei od granica izmerenih pravougaonih koordinata za koje se vri
izraunavanje rastojanja i ugla
700 x 1400, i 700 y 1400,
kao i relacija koje povezuju rastojanje i ugao sa pravougaonim koordinatama
y
= x2 + y2 ; = arctg
x
vidi se da su minimalna i maksimalna vrednost rastojanja i ugla
2 2 2 2
min (m) = x min + y min , max (m) = x max + y max
x x
min (rad) = arctg min , max (rad) = arctg max
y max y min
Poto minimalne vrednosti. treba da budu
predstavljene signalima od emin=2V, a maksimalne
vrednosti signalima od emax=8V, sledi da se za
vrednost rastojanje (m) odgovarajui naponski signal
moe dobiti prema relaciji
82
e = ( min ) + 2
max min
S obzirom na prirodu izvrnog organa, veliinu
ugla (rad) treba prvo pretvoriti u procenat od
maksimalne vrednosti ugla
p (%) = 100
max
Elektrini signal koji odgovara vrednosti ugla dobija se
prema relaciji
Sl. 29 Adrese i simbolika imena 82
internih promenljivih e = ( p (%) p min (%)) + 2
100 p min (%)
Ove veliine nadalje treba transformisati u celobrojne vrednosti koje e D/A
konvertor da pretvori u odgovarajue naponske signale. Podsetimo se da se za dati
analogni U/I modul naponski signal u opsegu od od 0V do 10V konvertuje u ceo broj
u opsegu od 0 do 32764. U skladu sa time odgovarajue granine vrednosti su
umin=0V, umax=10V, cmin=0, cmax=32764
tako da se konverzija vri prema sledeim relacijama
26/plc_math
32764 0 32764 0
c = (e 0) + 0 ; c = (e 0) + 0
10 0 10 0
Da bi se lake razumela struktura programa koji realizuje opisani algoritam na Sl. 29
je dat pregled simbolikih imena i adresa internih promenljivih koje se koriste u leder
programu (Sl. 30).
27/plc_math
Sve naredbe iz ove grupe koriste indeksni registar S:24, to znai da je posle
njihovog izvravanja, sadraj tog registra promenjen.
Svakoj datoteci (file) koja se navodi u okviru jedne od ovih naredbi pridruuje
se po jedan elemenat upravljake datoteke tipa R. U okviru elementa pamte se
indikatorski bitovi i duina niza. Pri tome se moe koristiti sistemska upravljaka
datoteka broj 6, ili korisnika datoteka (brojevi od 9 do 255). Jedan elemenat ove
datoteke, koji se odnosi na BSR i BSL naredbu ima izgled kao na slici Sl. 2. Potrebno
je zapaziti da se duina niza koje se pomera moe menjati u toku rada programa,
jednostavnim korienjem neke od naredbi za promenu podataka u kojoj se kao
4/plc_block_data
odredina adresa navodi Rn:1. Naravno, pri tome treba voditi rauna da se ne
prekorai maksimalna duina niza.
Ukoliko se kao duina niza zada 0 (len 0), naredba se izvodi tako to se
zadani bit smeta u UL.
Svaki put kada se uslov menja sa neistinit na instinit, ova naredba se izvrava
tako to se vrednost pointera povea za 1 i podatak koji je odreen kao source
prenese u datoteku file na onu adresu na koju pokazuje pointer. Na taj nain se pri
svakom sledeem izvravanju naredbe menja sadraj sledee rei u nizu. Ukoliko se
kao source adresa navede konstanta onda se ceo niz postavlja na istu vrednost. Ako
je source adresa promenljiva (fn:s), onda svaka re niza dobija vrednost koju
promenljiva ima u trenutku izvoenja naredbe. Meutim, ako se kao source adresa
navede datoteka (#fn:s), onda se ta adresa uzima kao bazna adresa izvorne
datoteke, to znai da se pri izvoenju naredbe podatak uzima sa one adrese na
koju u izvornoj datoteci pokazuje pointer. Pri tome se podrazumeva da obe datoteke
imaju istu duinu, definisanu kao length.
Pri sledeim sken ciklusima, za svo vreme za koje uslov ostaje istinit, vrednost
pointera se ne menja, ve se isti, prethodno odreeni, podatak prenosi u promenljivu
oznaenu sa dest.
onda e se rezultat upisati u onu re te datoteke na koju pokazuje pointer (Sl. 3). Isto
tako, ako je kao mask navedena datoteka #fn:m onda i maska prestaje da bude
fiksna, ve se svaki put kao maska uzima ona re iz datoteke na koju pokazuje
pointer. Potrebno je zapaziti da se u rei koja oznaena sa dest menjaju samo oni
bitovi koji su nemaskirani (odgovorajui bitovi maske su postavljeni na 1).
Pri sledeim sken ciklusima, za svo vreme za koje uslov ostaje istinit, vrednost
pointera se ne menja, ve se isti, prethodno odreeni, podatak prenosi u promenljivu
oznaenu sa dest.
Datoteka R Control
Naredbama za sekvenciranje pridruuju se indikatorski bitovi i upravljaki
8/plc_block_data
Length i position
Promenljive length se pamti u prvoj rei datoteke R i predstavlja broj rei koji
se nalazi u nizu u jednoj sekvencijalnoj datoteci. Maksimalna vrfednost duine je 255.
Pri definisanju duine, potrebno je voditi rauna o injenici da navedena adresa rei
w u datoteci #fn:w zapravo predstavlja nultu, poetnu poziciju. To znai da se za
datu duinu len u datoteci koristi zapravo len+1 re. Ovo se naravno odnosi i na
mask, source i dest ukoliko su u naredbi specificirane kao datoteke.
9/plc_block_data
Resetovanje parametara
Ukoliko se iz nekog razloga eli
prekinuti sekvencijalno upravljanje ili
poreenje, to se moe ostvariti pomou RES
naredbe u kojoj se navodi adresa nulte rei
elementa datoteke R koji je vezan za naredbu
iji se rad eli resetovati Rf:e. RES naredbom se vrednosti svih indikatorskih bitova,
izuzev FD-bita, postavljaju na 0. Istovremeno se i vrednost pointera postavlja na 0
(ova vrednost e se poveati na 1 pre prvog sledeeg izvoenja naredbe).
Punjenje steka
LFL LIFO load (punjenje LIFO steka)
FFL FIFO load (punjenje FIFO steka)
Ove naredbe se izvravaju svaki put kada se uslov menja sa neistinit na istinit,
i to tako to se podatak ija je adresa navedena kao source, prenese na poloaj u
steku koji je odreen pointerom. Nakon toga se vrednost pointera povea za 1. Ovaj
postupak je ilustrovana na slici Sl. 6, gde su prikazana tri uzastopna izvravanja bilo
koje od ove dve naredbe. Pri tome je predpostavljeno da je bazna adresa steka
locirana na memorijskoj adresi 200, i da su u steku, pre izvravanja ovih naredbi ve
smetena dva podatka (a i b).
Pranjenje steka
Stek
pre posle
dest
prve LFU
naredbe
205
204 e
203 d d
202 c c c
201 b b b
bazna adresa
steka
200 a a a
Ove naredbe se izvravaju svaki put kada se uslov menja sa neistinit na istinit,
i to tako to se vrednost pointera smanji za 1 i uzme podataka sa vrha steka (LFU),
odnosno sa dna steka (FFU) i prenese na adresu koja je navedena kao dest. Ovaj
postupak je ilustrovana na slikama Sl. 7 i Sl. 8, gde su prikazana tri uzastopna
izvravanja ovih naredbi. Pri tome je predpostavljeno da je bazna adresa steka
locirana na memorijskoj adresi 200, i da su u steku, pre izvravanja ovih naredbi ve
smetena dva podatka (a i b).
U toku izvravanja ovih naredbi menja se vrednost indeksnog registra S:24 i to
tako da on sadri vrednost koju pointer ima nakon izvravanja naredbe.
Datoteka R Control
Naredbama za rad sa stekom pridruuju se indikatorski bitovi i upravljaki parametri.
Ove informacije se smetaju u upravljaku datoteku tipa R. Pri tome se moe koristiti
sistemska upravljaka datoteka broj 6, ili korisnika datoteka (brojevi od 9 do 255).
Jedan elemenat ove datoteke, koji se odnosi na naredbe za rad sa stekom ima izgled
kao na slici Sl. 9.
2. Naredba za skok
Leder program se izvrava u okviru programskog sken ciklusa i to tako to se
obradjuje rang po rang u redosledu u kome su oni napisani u programu. U samom
procesoru postoji jedan registar, koji igra ulogu pokazivaa (pointera), koji sadri
memorijsku adresu sledeeg ranga u programu koji treba da se obradi. U svakom rangu
ispituje se istinitost uslova i ako je on istinit izvravaju se naredbe akcije. Kod nekih
aplikacija, meutim, neophodno je da se, pod odreenim uslovima odstupi od
normalnog toka programa, tako to se preskae jedan niz naredbi ili se neki niz naredbi
ciklino ponavlja odreeni broj puta. Ovakvi zahtevi mogu se ostvariti pomou naredbi
za skok.
LBL - naredba
Sve dotle dok se naredbe programa izvravaju u
lbl redosledu u kome su napisane nema nikakve potrebe da
uslov i se pojedini rangovi posebno oznae. Meutim, ukoliko se
akcija od programa oekuje da omogui skok na neku nardebu,
onda je neophodno da se omogui da se jedna odreena
Sl. 1 Simbol i poloaj labele u naredba identifikuje na nedvosmislen nain. Identifikacija
rangu naredbe ostvaruje se pomou simbolikog imena labele
koja se kao naredba uslova postavlja na prvo mesto u
rangu (Sl. 1). Labela se definie kao decimalni broj koji se kree od 0 do 999. U jednom
programu moe se definisati najvie 256 razliitih labela. Samo se po sebi razume da
se jedna labela, budui da predstavlja simboliko ime ranga, moe nalaziti u samo
jednom rangu.
Iako labela ima grafiki simbol naredbe uslova njoj se ne pridruuju nikakvi bitovi
ije bi stanje odreivalo istinosnu vrednost naredbe. Pri izvodjenju programa smatra se
da je naredba uvek istinita.
JMP Jump (skok)
Ova naredba je naredba akcije, to znai da se
jmp izvrava ukoliko je uslov istinit (Sl. 2). Naredba se izvodi
uslov tako to se menja vrednost pointera tako da on ukazuje
lbl na memorisjku adresu na kojoj se nalazi rang ija je
labela naznaena u JMP naredbi. To zapravo znai da se
Sl. 2 Simbol i poloaj naredbe vri skok na rang koji sadri datu labelu, i od njega se
za skok nastavlja izvravanje programa. Vie razliitih JMP
2/plc_tok
3. Potprogrami
Veoma esto u okviru neke aplikacije javlja se potreba da se jedna ista sekvenca
naredbi ponovi vie puta na razliitim mestima u programu. Nesumnjivo je da se ovo
moe reiti i tako to e se dati niz programskih rangova ponoviti onoliko puta koliko to
aplikacija zahteva, ali e se na taj nain nepotrebno zauzimati memorijski prostor. Da bi
se to izbeglo, dati niz rangova formira se samo jedanput kao podprogram (subroutine),
koji se poziva na izvravanje na vie mesta u leder programu.
Poziv potprograma
JSR Jump to Subroutine (skok na podprogram)
definisati unutar posbne MCR zone. Paljivo odabranim uslovima moe se postii da u
svakom trenutku samo jedna od ovih zona bude aktivna.
Pri korienju MCR zone potrebno je voditi rauna da se nekom naredbom za
skok ne skoi unutar zone, jer se u tom sluaju ponitava efekat inhibicije zone i
nastavlja se sa normalnim obraivanjem rangova.
Sl. 10 Simbol i poloaj naredbe za trenutno auriranje ulaznih ili izlaznih linija
glavni Servisni
potprogram
program
dogadjaj 4
n
naredbe
oprema 7
Povratak na
sledeu naredbu
glavnog
operater programa 5
1
CPU 2
pamti
Programski broja (PC) Memorija
registri (stek)
6 vraa
Sl. 13 Nain obrade signala prekida u zavisnosti od dela sken ciklusa u kome nailazi
8/plc_tok
Primer
Potrebno je pratiti nastanak dve vrste greaka:
Minor error at the end of scan (kod 0020h), postavljen bit S:5/0
Negative value in time pre or acc (0034h)
Ukoliko se greka detektuje predviaju se sledee reakcije
Spreava se reakcija ako je V bit S:5/0 setovan manje od 5 puta, posle toga
procesor prekida rad (odlazi u fault mode)
Spreava se reakcija ako je kod asovnika T4:0 acc<0. Pri tome se acc
resetuje na nulu i pali se signalna lampa koja indicira da je akumulirana vrednost
bila manja od nule.
Dozvoljava se prekid rada PLC za sve ostale greeke
Reenje
Osnovni servisni potprogram je programska datoteka broj 3 (Sl. 14) i taj broj se
mora upisati u statusnu datoteku u re S:29. Budui da postoje dva tipa greaka na koje
se oekuje neka reakcija one se zasebno obrauju u programskim datotekama broj 4
(kod greke 20h) (Sl. 15) i broj 5 (kod greeke 34h) (Sl. 16). To znai da servisni
potprogram mora da obezbedi pozivanje jednog od ova dva potprograma u zavisnosti
od koda greke.
slot u kome se nalazi digitalni ulazi koji primaju ove bitove. Kada procesor detektuje
pojavljivanje zadanog niza u odgovarajuem slotu, on registruje nastanak dogaaja. Pri
tome, ako je sistem prekida definisan tako da registruje svaki dogaaj, procesor e
automatski da pozove servisni potprogram. Ukoliko je, meutim sistem definisan tako
da prebrojava dogaaje, onda e servisni potprogram biti pozvan tek kad se dostigne
zadani broj nastanka dogaaja.
Definisanje naina rada ovog prekida, kao i odgovarajue reakcije obavlja se
pomou est rei u statusnoj datoteci. Sam procesor, opsluujui prekid postavlja jo
neke indikatorske bitove u statusnoj datoteci (Sl. 18).
Definisanje dogaaja
Da bi se definisao spoljni dogaaj neophodno je da korisnik, na neki nain,
definie vrednosti sledeih rei u statusnoj datoteci
S:47 broj slota broj slota u kome je smeten digitalni ulaz koji prima
informacije o dogaaju. Ukoliko se upie 0, sistem prekida je onemoguen.
S:48 maska broj izmeu 0 i 255 pomou koga se specificira kojih se od 8
bitova prate pri detekciji dogaaja. Vrednost bita 1 znai da se odgovarajua
ulazna linija oitava i da se taj bit uporeuje sa zadanim kodom dogaaja
S:49 referenca broj izmeu 0 i 255 kojim se definie kod dogaaja. Bitovi
reference koji se nalaze na mestima na kojima bitovi maske imaju vrednost 1 se
porede sa bitovima na ulaznim linijama u definisanom slotu. Kada se i poslednji
od ovih bitova sloi generie se signal prekida.
S:50 nain rada ukoliko je ova vrednost 0 ili 1, sistem prekida radi kao
detektor dogaaja. Ukoliko je vrednost vea od 1, sistem prebrojava dogaaje i
generie prekid kada se registruje zadani broj dogaaja.
14/plc_tok
Primer
Posmatra se pokretna
linija na kojoj se boce pune
nekim sokom i zatim se svaka
boca zatvara. Potrebno je
ustanoviti da li se na svakoj
boci nalazi zatvara. Ukoliko
se ne nalazi, otvaranjem
opruge, boca se izbaciju sa
trake.
Reenje
Na samoj traci (Sl. 19)
postavljen je prekida koji
detektuje prisustvo boce i koji
je vezan za nulti pin ulaznog
Sl. 19 ema vezivanja senzora i izvrnog organa modula u slotu 1 (I:1/0).
16/plc_tok
Primer
STI prekid treba da radi sa periodom
od 10ms.
Odrediti vremenski interval koji
protekne izmeu dva poziva servisnog
potprograma. Smestiti izmereno vreme u neku
datoteku radi kasnijeg prikazivanja na
Sl. 22 Odreivanje proteklog vremena displeju.
20/plc_tok
Reenje
Servisni potprogram je formiran u programskoj datoteci broj 4 (Sl. 24). To znai
da je neophodno da se pri inicijalizaciji STI prekida upie S:31=4. Budui da STI prekid
treba da radi sa periodom od 10ms odabrae se takt od 10ms (S:2/10=0) i kao period
e se upisati 1 (S:30=1).
Ukoliko se u ovaj program ulazi prvi put tada se samo upamti trenutna vrednost
asovnika u memorijskoj lokaciji N10:1 i postavi se indikatorski bit (B3:0/0) koji
oznaava da je prvi prolaz zavren. U svim sledeim pozivanjima ovog potprograma
oduzima se trenutna vrednost asovnika (S:45) od prethodne i rezultat se smeta u
memoriju na adresu N10:2. Pri tome, ukoliko je rezultat oduzimanja negativan to znai
da je od prethodnog pozivanja interni asovnik napravio pun krug.(preao preko 32767)
i poeo da broji od 0, tako da se to vreme mora dodati (Sl. 22).
S:43 mora koristiti adresa asovnika koji odgovara tom prekidu (S:44 za I/O, odnosno
S:45 za DII)
Pamti
S:0 mat. indikatori aurira
interni
S:13,14 mat. reg.
S:24 indeks reg. asovnik
S:44 t (m 10 s)
vieg prioriteta zavre pre nego to pone opsluivanje ovog prekida. Na isti nain,
ukoliko se u toku opsluivanja prekida pojavi zahtev za nekim prekidom vieg prioriteta
(Fault, DII ili STI), opluivanje se prekida i zapoinje opsluivanje prekida vieg
prioriteta.
Izvravanjem I/O prekida se moe dodatno upravljati pomou dve posebne
naredbe
IIE Interrupt enable
Ukoliko je uslov istinit, ova
naredba postavlja I/O interrupt enable
bitove (S:27/1 do S:28/14) u skladu sa
podatkom Slots koji je u naredbi
definisan, ime se omoguava
opsluivanje prekida koji potiu od strane
specijalnih modula koji se nalaze u datim
slotovima. Kada je uslov neistinit stanje enable bitova se ne menja. To znai da
e oni, koji su imali vrednost 1 zadrati tu vrednost sve dok ih naredba IID ne
resetuje na 0, ili dok se u okviru programa nekom drugom naredbom ne promeni
stanje bitova u datoteci statusa.
Ukoliko je za neki od slotova iji se prekid omoguava ovom naredbom,
postavljen pending bit (S:25/1 do S:26/14), odgovarajui servisni potprogram e
se odmah pozvati na izvravanje.
Podatak o slotovima se moe zadati na sledei nain
o n ukazuje na slot broj n
o m,n,... ukazuje na slotove m, n itd
o m to n ukazuje na slotove od broja m do broja n (m<n)
IID Interrupt disable
Ukoliko je uslov istinit ova
naredba resetuje I/O interrupt enable
bitove (S:27/1 do S:28/14) u skladu sa
podatkom Slots koji je u naredbi
definisan, ime se onemoguava
izvravanje odgovarajuih servisnih
potprograma. Umesto toga, ukoliko se
trai prekid, postavie se odgovarajui pending bit. Kada je uslov neistinit
naredba ne menja stanje enable bitova. Drugim reima ukoliko je neki enable bit
postavljen na 0, on e ostati 0 sve dok ga IIE naredba ne postavi na 1, ili dok se
u okviru programa nekom drugom naredbom ne promeni stanje bitova u datoteci
statusa.
Parovi IID i IIE naredbi mogu se koristiti za izdvajanje zona unutar leder
programa iji rad se ne moe prekidati usled I/O prekida.
Postavljanje internih indikatorskih bitova i rei
U toku rada, procesor postavlja niz inidkatorskih bitova vezanih za I/O prekid
ime se korisniku omoguava da prati nain na koji se prekid opsluuje.
S:11 i S:12 I/O Slots enables Bitovi S:11/1 do S:11/15 i S:12/0 do S:12/14
se odnose na slotove od 1 do 30. Kada je vrednost bita 1, ona ukazuje da je
odgovarajui slot aktivan. Ukoliko se pojavi signal prekida sa slota koji nije
aktivan, procesor javlja greku.
24/plc_tok
Primedba
I/O Slots enables bitovi (S:11 i S:12) se mogu koristiti i u sluajevima kada se ne
trai prekid. Naime, ukoliko se bilo koji bit postavi na nulu onda se u toku ulaznog
i izlaznog sken ciklusa ne vri skeniranje slota kome odgovara taj bit (slot nije
aktivan). To nadalje znai da se ni odgovarajui podatak u slici ulaza nee
promeniti, i da se podatak iz slike izlaza nee preneti na izlazni modul.
Pri inicijalizaciji PLCa ovi bitovi s epostavljaju na 1.
S:25 i S:26 I/O Interrupt pending bits Bitovi S:25/1 do S:25/15 i S:26/0 do
S:26/14 se odnos ena slotove od 1 do 30. Ovi bitovi s epostavljaju na 1 ako
modul iz nekog slota trai prekid, a izvravanje tog prekida nije omogueno. Bit
se restuje na nulu kada se odgovarajui enable bit postavi na 1
Stanje pending bitova se moe promeniti i pomou posebne RPI naredbe.
Kada je uslov istinit ova
naradeba resetuje pending bitove
za prekide koji su izazvali specijalni
moduli koji se nalaze u slotovima
definisanim pomou promenljive
slots. Pri tome, procesor
obavetava odgovarajue
specijalne module da prekidi koji su
bili traeni nee biti opslueni. Posle toga modul moe da odlui da li e ponovo
da zatrai prekid ili ne.
Kada je uslov neistinit, stanje pending bitova se ne menja.
S:27 i S:28 I/O Interrupt enables Bitovi S:11/1 do S:11/15 i S:12/0 do
S:12/14 se odnose na slotove od 1 do 30. Kada je vrednost bita 1, ona ukazuje
da je omogueno opsluivanje prekida koji dolazi sa odgovarajueg slota.
S:32 I/O Interrupt executing ova re sadri broj slota u komne se nalazi
modul koji je generisao prekid koji se trenutno opsluuje.
Ovaj podatak je veoma koristan kada se vie prekida multipleksia u jednom
servisnom potprogramu. koristiti kada se
S:44 I/O Interrupt Timer I/O interni asovnik se aurira svaki put kada
nastupa prekid. Vreme se izraava se kao multipl od 10s. To zapravo znai da
PLC ima interni asovnik koji neprekidno radi sa taktom od 10s tako da meri
vreme od 0 do 0.32767s. Kada dostigne 0.32767s, asovnik nastavi da meri
vreme od 0. U trenutku detekcije I/O prekida vrednost ovog asovnika se upisuje
u S:44.
1/plc_pid
primenjuje samo na izlaz procesa. Na ovaj nain izbegavaju se problemi koji mogu
nastati kod diskrente realizacije PIDa usled nagle promene zadanih vrednosti. Ukoliko
zadana vrednost nije konstanta, postoji mogunost i da se, u toku konfiguracije PID
modula, specificira zahtev da diferencijalno dejstvo obrauje signal greke.
of (offset) signal kojim se uspostavlja stacionarno stanje izvrnog organa ili signal
prenosnog upravljanja (feedforward) kojim se eli kompenzacija dejstva poremeaja
(posebno izraeno kod znaajnog transportnog kanjenja)
t -t
t = max min (s - s min ) + t min
s max - s min
3. PID Naredba
Grafiki simbol i poloaj u rangu
U principu ova naredba se stavlja bez ikakvog uslova, to znai da se izvrava
pri svakom programskom sken ciklusu. Vano je napomenuti da to ne znai da se i pri
svakom sken ciklusu obavlja izraunavanje jednog algoritamskog koraka. Kao to je ve
reeno izraunavanje koraka vri se u skladu sa periodom odabiranja. Ukoliko se
meutim, u rangu postavi uslov, onda sve dok je on neistinit izlaz PID bloka zadrava
poslednju izraunatu vrednost. Pri prelazu sa istinitog na neistinit vrednost integralnog
dejstva se resetuje na nulu.
5/plc_pid
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
re 0 EN DN PV SP LL UL DB DA TF SC RG OL CM AM TM
postavi Ti postavi Ti
13H Ti > 255 Ti < 0
0 < Ti 255 Ti 255
postavi
52H CVL< 0 ili CVH> 100
0 < CVL <CVH< 100
postavi
53H CVL > CVH
0 < CVL <CVH< 100
SLC 5/02 PID se prekida po drugi put Postoje bar tri PIDa u programu (jedan u glavnom
(PID je bio prekinut nekim signalom U/I programu, jedan u U/I prekidu i jedan u STI prekidu).
60H
prekida, koji je onda prekinut pomou Program se mora promeniti da bi se izbegle
STI prekida) ugnedene PID petlje.
STI prekid
STI adresa servisnog potprograma S:31 = 3
STI Setpoint period kao multipl od 10ns (S:30) = 10
STI Enabled bit (S:2/1) = 1
PID upravljaki blok, adresa N10:0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DA SC RG OL CM AM TM
re 0 EN DN PV SP LL UL DB TF
1 1 1 1 0 0 0
re 13 Loop Update 10
re 14 Scaled Proces Variable
re 15 Scaled Error (SE) SE = SP PV
re 16 Output CV (%)
re 17 MSW Integral Sum
re 18 LSW Integral Sum
re 19 interna upotreba
re 20 interna upotreba
re 21 interna upotreba
re 22 interna upotreba
Budui da PID daje upravljaki signal (c) kao celobrojnu promenljivu u opsegu od
15/plc_pid