PLC Dobra Skripta PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 137

PLC

Programmable Logic Controller


Programabilni logiki kontroler (PLC)

1. Osnovna struktura PLC-a


Prema standardizaciji Udruenja proizvoaa elektrine opreme (The National
Electrical Manufacturers Association -NEMA) programabilni logiki kontroler je
definisan kao:
Digitalni elktronski ureaj koji koristi programabilnu memoriju za
pamenje naredbi kojima se zahteva izvoenje specifinih funkcija, kao
to su logike funkcije, sekvenciranje, prebrojavanje, merenje vremena,
izraunavanje, u cilju upravljanja razliitim tipovima maina i procesa
preko digitalnih i analognih ulazno-izlaznih modula.
Prvobitno PLC je zamiljen kao specijalizovani raunarski uredjaj koji se moe
programirati tako da obavi istu funkciju kao i niz logikih ili sekvencijalnih elemenata koji
se nalaze u nekom relejnom ureaju ili automatu. Postepeno, obim i vrsta operacija koju
moe da obavi PLC proirena je uljuivanjem sloenijih funkcija potrebnih za direktno
digitalno upravljanje nekim sistemom.
Nezavisno od repertoara funkcija, od samog poetka projektovanja PLC-a, vodilo
se rauna o tome da on treba da radi u krajnje nepovoljnim klimo-tehnikim uslovima
koji vladaju u industrijskom okruenju i da treba da bude dovoljno fleksibilan u smislu
prilagoavanja razliitim izmrnama na procesu. Otuda je PLC projektovan kao izuzetno
pouzdan modularan ureaj koji se veoma lako odrava i programira. Pored toga, najvei
broj metoda za programiranje PLC-a zasniva se na grafikom metodu - lestviasti
logiki dijagram koji je ve dugi niz godina u upotrebi u industriji pri projektovanju
logikih i sekvencijalnih relejnih ureaja.
Funkcionalna organizacija PLC-a prikazana je na slici Sl. 1. Procesorski modul
sadri centralnu jedinicu i
Ureaji na memorju. U okviru ovog
pogonu modula smetaju se i program
i podaci i odatle se upravlja
Specijalni U /I radom celog sistema. Naziv
PLC moduli izlazni i ulazni moduli se
odnosi na digitalne ulaze i
izlaze preko kojih se primaju
Izlazni Izvrni
moduli organi
binarni signali sa senzora,
Procesorski odnosno zadaju binarni signali
Napajanje
modul
Ulazni Senzori pojedinim aktuatorima, dok
moduli specijalni U/I moduli
obuhvataju analogne U/I kao i
Komunikacioni module posebne namene kao
moduli to su brzi broja, pozicioni
servo sistem, PID regulator
itd. Komunikacioni moduli
vorovi u obezbeuju spregu sa
mrei
komunikacionom opremom
preko koje se razmenjuju
Sl. 1 Funkcionalni blok dijagram PLC-a podaci sa drugim raunarskim
ureajima u mrei i/ili
operatoriskim uredjajima preko kojih se PLC programira i nadzire njegov rad.
PLC se sastoji iz asije (rack) koja ima odreeni broj slotova u koji se stavljaju
pojedini moduli kao to je to ilustrovano na slici Sl. 2 . Prvi dva slota u asiji zauzimaju
uredjaj za napajanje i procesorski modul, dok je raspored modula u preostalim
slotovima proizvoljan. U zavisnosti od broja modula, PLC moe imati i vie od jedne
asije. Svaka asija ima sopstveno napajanje, dok se procesorski modul nalazi samo u
prvoj asiji. Programabilini logiki kontroleri iz familije Allen Bradley SLC 500 Modular
Controllers mogu imati najvie tri asije sa najvie 30 slotova. Pri tome, postoje asije
sa 4, 7, 10 i 13 slotova.

Sl. 2 Izgled PLC-a

Kao to se vidi, PLC se razlikuje od raunarskog sistema opte namene po tome


to nema spoljnu memoriju (diskove), kao i niz standardne ulazno/izlazne opreme.
Pored toga, njegov operativni sistem je jednostavniji i prua komparativno manje
mogunosti od raunara opte namene. Zapravo, PLC je koncipiran i projektovan za
jedan relativno uzan i jasno definisan obim poslova vezanih za nadzor i upravljanje
pojedinim ureajima, to je rezultovalo u njegovoj izuzetnoj efikasnosti i jednostavnosti.
U izvesnom smislu, podruje primene PLC-a isto je kao i za specijalizovane
mikroraunarske kontrolere ili signal procesore. Kljuna razlika lei u injenici da
korienje PLC-a ne zahteva od korisnika gotovo nikakvo predznanje o arhitekturi
mikroraunarskih sistema i programiranju. Drugim reima, korisnik PLC-a je u najveoj
moguoj meri osloboen reavanja razliitih problema vezanih za isto raunarski
aspekt, kao to su promena ili dodavanje U/I jedinica, vezivanje u raunarsku mreu,
razema podataka i sl. i moe da se u punoj meri koncentrie na projektovanje same
aplikacije.
Moe se slobodno rei da se PLC od svih drugih raunarskih uredjaja sline
namene razlikuje po svom operativnom sistemu, koji je skrojen tano za odreenu vrstu
primene. Naime, predpostavlja se da e u svojoj osnovnoj formi, PLC biti korien za
realizaciju izvesnih logikih funkcija koje preslikavaju signale sa senzora u signale koji
se prenose na aktuatore. Otuda se od PLC-a oekuje da periodino oitava (unosi)
signale sa senzora, izvrava odreen broj aritmetiko-logikih operacija (u skladu sa
zadanom funkcijom) iji rezultati se prenose na izvrne organe ili neke druge
indikatorske ureaje. Pored toga, sa istom ili nekom drugom uestanou, PLC treba da
odrava komunikaciju (razmenjuje podatke) sa nekim drugim raunarskim sistemima u
mrei. Polazei od ovog zahteva,
operativni sistem PLC-a projektovan je
tako da, u toku rada sistema,
automatski obezbedi ciklino
5. 1.
odravanje ponavljanje navedenih aktivnosti (Sken
ulazni
ciklus) kao to je to ilustrovano na Sl. 3.
sken
Sken ciklus zapoinje sa
ulaznim skenom u okviru koga PLC
4. oitava sadraj ulaznih linija (registara
komuni- Sken ciklus ulaznih modula). Oitani podaci se
kacija prenose u odredjeno podruje memorije
slika ulaza. Zatim se aktivira
k i programski sken u okviru koga
3. 2. ms
izlazni ra n procesor izvrava programske naredbe
rog ke kojima su definisane odgovarajue
sken p s
aritmetiko-logike funkcije. Podaci
(operandi) koji se koriste u programskim
naredbama uzimaju se iz memorije i to
iz podruja oznaenog kao slika ulaza
Sl. 3 Sken ciklus PLC-a (ako su operandi ulazni podaci) ili iz
podruja gde se smetaju interne
promenljive. Rezultati obrade se smetaju u posebno podruje memorije slika izlaza.
Ovde je vano da se istakne da se pri izvravanju programskih naredbi ne uzimaju
podaci disrektno sa ulaznih modula, niti se rezultati direktno iznose na izlazne module,
ve program razmenjuje podatke isljuivo sa memorijom (Sl. 4) . Po zvretku
programskog skena, operativni sistem PLC-a aktivira izlazni sken u okviru koga se
2 podaci iz slike izlaza
programski sken prenose na izlazne
linije (registre izlaznih
interne
promenljive
modula). etvrti deo
sken ciklusa
ulazni moduli

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.

2. SLC 500 Procesorski modul


1. Osnovne karakteristike
Kao to je ve reeno procesorski modul sadri centralnu procesorsku jedinicu
(CPU) i memoriju. Centralna jedinica obuhvata aritmetiko-logiku jedinicu (ALU),
registre i upravljaku jedinicu. U funkcionalnom smislu centralna jedinica se bitno ne
razlikuje od centralne jedinice bilo kog mikroraunara opte namene. Osnovna razlika
se ogleda u skupu naredbi koji je odabran tako da se zadovolje osnovni zahtevi u
pogledu korienja PLC-a. Osnovne karakteristike procesorskog modula izraavaju se
preko sledeih elemenata.
Memorija(RAM) - je okarakterisana svojom veliinom, mogunou proirenja i
konfigurisanja za smetanja programa ili podataka.
U/I take - su okarakterisane najveim brojem lokalnih U/I adresa koje podrava
procesor u toku ulaznog i izlaznog skena, kao i mogunou proirenja preko
udaljenih U/I. (Pod udaljenim U/I podrazumeva se posebna asija koja sadri U/I
module koji razmenjuju podatke sa PLC-om).
Komunikacione opcije - odnose se na raznovrsnost uredjaja za spregu (komunikaciong
interfejsa) koji podravaju razliite topologije mrea i razliite komunikacione
protokole.
Specifikacija SLC 5/01 SLC 5/02 SLC 5/03 SLC 5/04
12K UI i 4K DW
1K UI ili 4K DW
Memorija 4K UI ili 16K DW 12K UI i 4K DW 28K UI i 4K DW
4K UI ili 16K DW
60K UI i 4K DW
Lokalni U/I 256 digitalnih 480 digitalnih 960 digitalnih 960 digitalnih
Kapacitet zavisi od vrste napajanja i veliine programske
Udaljeni U/I nema memorije
- najvie moe biti 4096 ulaza i 4096 izlaza -
Trajno EEPROM ili EEPROM ili Fle EPROM Fle EPROM
pamenje UVPROM UVPROM
Tipino vreme
programskog 8 ms/K 4.8 ms/K 1 ms/K 0.9 ms/K
skeniranja
Izvravanje
4 s 2.4 s .44 s .37 s
bit naredbe
Broj mainskih
52 71 99 99
naredbi

T. 1 Osnovne karakteristike procesorskog modula SLC 5


Opcije trajnog pamenja - odnose se na raspoloivost razliitih tipova memorijskih
EPROM modula koji obezbeuju trajno pamenje podataka.
Performansa - se specificira preko vremena programskog skeniranja potrebnog za
1Kbajt programa, preko vremena potrebnog za ulazni i izlazni sken, kao i vremena
izvravanja jedne bit naredbe.
Programiranje - se specificira u odnosu na broj razliitih mainskih naredbi, kao i na
vrstu raspoloivih programskih jezika.
U tabeli T. 1 dat je pregled osnovnih karakteristika procesora SLC 5. Oznaka UI
odnosi se na naredbe korisnikog programa, dok je sa DW oznaena podatak
duine jedne rei. Potrebno je da se istakne da su iz tabele izostavljeni podaci koji se
odnose na komunikacione opcije. O njima e biti rei kasnije kada budu objanjenji
osnovni aspekti povezivanja SLC-ova u raunarsku mreu.

2. Organizacija RAM memorije


Operativni sistem kontrolera, koji realizuje sken cikluse, upravlja i zauzeem
RAM memorije, koja je organizovana na poseban nain. U principu, RAM meorija se
deli na program files (programske datoteke) i data files (datoteke podataka).
Skup programa i datoteka podataka koje su formirane za jednu aplikaciju ini
processor file (procesorsku datoteku). Ona sadri sve naredbe, podatke i specifikaciju
modula koji su relevantni za datu aplikaciju, odnosno korisniki program. Procesorska
datoteka ini jednu celinu koja se moe prenositi sa jednog procesorskog modula na
drugi, sa odnosno na EPROM memorijski modul, kao i operatorski terminal. To zapravo
znai da se jedna aplikacija moe razviti na jednom sistemu i zatim u celini preneti i
koristiti na drugom sistemu.
Programske datoteke
Programske datoteke sadre,informacije o samom kontroleru, glavni korisniki
program i potprograme. Svaka aplikacija (procesorska datoteka) mora da ima sledee
tri programske datoteke:
System Program sistemski program (file 0) - sadri razliite informacije o
samom sistemu kao to su tip proceosra, konfiguracija U/I modula, ime procesorske
datoteke, lozinku i niz drugih relevantnih podataka.
Reserved datoteka rezervisna za potrebe operativnog sistema (file 1)
Main Ladder Program glavni leder program (file 2) program koji formira
sam korisnik i u okviru koga se definie niz operacija koje SLC treba da izvede.
Subroutine Ladder Program - potprogrami (file 3 - 255) korisniki
potprogrami koji se aktiviraju u skladu sa naredbama za njihovo pozivanje koje se
nalaze u glavnom programu.
Datoteke podataka
Datoteke podataka sadre podatke koji se obradjuju pomou naredbi leder
programa. Pri tome se pod pojmom podaci podrazumevaju konvertovane (numerike)
vrednosti signala koji se preko ulazno/izlaznih modula unose u konrtoler, ili se iz
kontrolera prenose na izlazne ureaje, kao i interne promenljive koje se koriste kao
operandi u razliitim operacijama.
Datoteke podataka organizovane su u skladu sa tipom promenljivih koje sadre.
To zapravo znai da jedna datoteka sadri samo jedan tip (vrstu) podataka. Jedna
procesorska datoteka moe da ima najvie 256 datoteka podataka.

3. Organizacija datoteka podataka


Tipovi promenljivih i datoteka
Osnovna karakteristika datoteke podataka je njen tip. Kao to je ve istaknuto tip
datoteke, zapravo ukazuje na vrstu promenljivih koje se u njoj pamte. To nadalje
podrazumeva da tip datoteke ujedno odreuju i njenu organizaciju, koja zavisi od vrste
podatka i usvojenog naina za njegovo prikazivanje u raunaru.
Jedna datoteka se oznaava pomou rednog broja, koji jednoznano odreuje
mesto te datoteke u nizu datoteka podataka koje se nalaze u jednoj procesorskoj
datoteci i slova kojim se identifikuje tip datoteke. Prvih 9 datoteka imaju unapred
definisan tip koji ne moe da se menja. Tipove preostalih datoteke korisnik sam odabira
i definie u skladu sa aplikacijom koju razvija.
File 0 Tip O - output (izlaz) sadri sliku izlaza; sadraj datoteke se prenosi na
izlazne linije za vreme izlaznog skena.
File 1 Tip I - input (ulaz) - sadri sliku ulaza; u ovu datoteku se za vreme ulaznog
skena smetaju vrednosti sa ulaznih linija.
File 2 Tip S - status - sadri podatke vezane za rad kontrolera. Pregled znaenja
pojedinih bitova u ovoj datoteci dat je u posebnom dodatku (Dodatak S).
File 3 Tip B - bit sadri interne promenljive bit tipa.
File 4 Tip T - timer (asovnik) - sadri podatke koji se koriste za interne asovnike.
File 5 Tip C - counter (broja) - sadri podatke koji se koriste za interne brojae.
File 6 Tip R - control (upravljanje) sadri duinu, poloaj pokazivaa i bitove statusa
za odreene naredbe kao to su naredbe za pomeranje sadraja registara i
sekvenci.
File 7 Tip N - integer (celobrojna) sadri podatke celobrojnog tipa.
File 8 Tip F - floating point (realna) - sadri podatke predstavljene u tehnici pokretnog
zareza kao 32-bit brojeve u opsegu (1.1754944e-38 to 3.40282347e+38) - ovo
vai samo za SLC 5/03 i SLC5/04.
File 9 do file 255 Tip definie korisnik - korisnike datoteke ove datoteke definie
korisnik kao datoteke tipa B, T, C, N.
Za procesore tipa SLC 5/03 i SLC 5/04 korisnik moe da definie i datoteke tipa
F, St - string, A - ASCII. Pored toga datoteka 9 se moe koristiti i kao komunikacioni
interfejs, o emu e kasnije biti vie rei.
Specijalni U/I moduli imaju takoe memoriju u kojoj se, pored ostalog, nalaze i
njima pridruene datoteke. One se oznaavaju kao M0 i M1 files, i njihova organizacija
zavisi od specifinosti pojedinog modula.
Elemenat datoteke
Osnovna jedinica datoteke je jedan element. Svaki elemenat se satoji iz nekoliko
16-bitnih rei. Broj rei koje ine jedan element zavisi od tipa datoteke, odnosno vrste
podataka koji se u nju smetaju.
Kao to je ve istaknuto, podaci koji su smeteni u datotekama predstavljaju
operande (promenljive) koje se koriste u pojedinim programskim naredbama. Svaka od
ovih promenljivih ima definisanu logiku adresu. Pri tome, adrese omoguavaju da se
pozove ne samo elemenat u celini, ve i njegov deo. To znai da se mogu adresirati
pojedine rei u okviru elementa ili pojedini bitovi u okviru rei. Budui da su podaci u
izvesnom smislu hijerarhijski organizovani: 1 elemenat sadri nekoliko rei, a 1 re 16
bitova, to su i odgovarajue adrese struktuirane po istom hijerahijskom principu.
Pojedine rei i bitovi u nekim datotekama imaju i pridruene akronime, to dodatno
olakava njihovo korienje. Napomenimo i da se svakom elementu, rei ili bitu u okviru
elementa, u fazi formiranja aplikacije moe dodeliti i simboliko ime.
Adresa elementa u principu, svaki element
Broj datoteke
Tip redni broj u okviru datoteke se identifikuje pomou
datoteke elementa njegovog relativnog poloaja u odnosu na
poetak datoteke (nulti, prvi, drugi,
X f : e
element).
Adresa rei jedna re elementa
Redni broj
Tip
Broj datoteke Redni broj se identifikuje ili pomou
elementa
datoteke rei (ili relativnog poloaja te rei u
akronim ) okviru elementa, ili pomou
X f : e . w posebnog akronima (ukoliko je
isti definisan).

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.

Data file 3 Bit file


Adresa Adrese pojedinih
elementa bitova bitovi
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B3:0/0 B3:0/15
B3:0
B3/0 B3/15
B3:1/0 B3:1/15
B3:1
B3/16 B3/31
B3:2/0 B3:2/15
B3:2 *
B3/32 B3/47
B3:3/0 B3:3/15
B3:3
B3/48 B3/63
. . .
. .
. . .
B3:255/0 ... B3:255/15
B3:255
B3/4080 B3/4095
T. 3 Datoteka 3 Bit
Potrebno je da se zapazi da e u svakoj datoteci tipa bit koju korisnik sam
definie adrese biti iste, s tim to e se umesto broja datoteke (3) staviti broj koji
korisnik pridruuje svojoj datoteci (9 - 255).

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

posle posle posle


pre
obrade obrade obrade
kreiranja
prve druge tree
naredbi
naredbe naredbe naredbe

Sl. 5 Promena zauzea RAM memorije pri kreiranju naredbi

Kao to je ve reeno, dozvoljeno je kreiranje najvie 256 datoteka podataka.


Samo se po sebi razume da e broj kreiranih datoteka zavisiti od promenljivih koje
korisnik definie u programu. Pri tome sve kreirane datoteke reaju se u nizu jedna iza
druge. U formiranoj aplikaciji, datoteke podataka zauzimaju jedan neprekidan
memorijski prostor. Redni brojevi ovih datoteka poreani su u rastuem nizu, ali ne
moraju da ine kontinuallni niz.
Operativni sistem kontrolera dozvoljava da se datoteke podataka kreiraju i
direktno, a ne preko naredbi u kojima se navode adrese operanada. U tu svrhu koristi
se posebna procedura memory map function, koja omoguuje da se rezervie
odgovarajui prostor i u njega direktno upiu podaci. Ista procedura omoguava i da se
obrie grupa elemenata u nekoj definisanoj datoteci ili cela datoteka, naravno samo uz
uslov da se ne koriste u programu.

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

Bf:e/[N7:e] broj bita Bf:e/13 bit 13 elementa e u datoteci f tipa bit


broj datoteke, re 13 elementa 13 u datoteci 13 tipa
St[N7:e]:[N7:e].[N7:e] St13:13.13
elementa i rei string

T. 4 Primeri indirektnog adresiranja

Imajui u vidu injenicu da se pri indirektnom adresiranju, isto kao i pri


indeksnom, adresa promenljive odreuje tek za vreme izvoenja programa, potrebno je
i ovde voditi rauna o zauzimanju meorije i moguem prekoraenju granica.
Indeksno adresiranje
Pored direktnog adresiranja promenljive, kod kontrolera SLC 5/02, SLC 5/03 i
SLC 5/04 dozvoljeno je i indeksno adresiranje. Indeksnim adresiranjem se mesto u
memoriji na kome se nalazi jedna promenljiva definie relativno u odnosu na poloaj
neke druge promenljive. Pomeraj (ofset) promenljive sadran je u 25. rei datoteke 2
(status file) tako da je adresa rei koja sadi pomeraj S:24. Ovaj nain adresiranja je
izuzetno pogodan ako je potrebno da se manipulie sa nizom uzastopnih promenljivih.
Ako se bazna promenljiva
Pomeraj (S:24) nalazi u RAM-u na adresi 200, i
Tip datoteke (promenljive) Indeksna adresa
izraen u S:24=6 promenljiva je na
adresi
O-output; I-input; B-bit #O:e ; #I:e ; #Bf:e reima 206
N-integer #Nf:e reima 206
F-floating point #Ff:e elementima (2 rei) 212 i 213
St-string #Stf:e.w reima 206
T-timer; C-counter #Tf:e.ACC ; #Tf:e.PRE
elemtima (3 rei) 219 ; 220 (2. i 3. re elementa)
(ACC i PRE) #Cf:e.ACC ; #Cf:e.PRE
R-control (LEN i POS) #Rf:e.LEN ; #Rf:e.POS elementima 3 rei) 219 : 220 (2. i 3. re elementa)
T. 5 Indeksno adresiranje
Indeksno adresiranje promenljive ostvaruje se navoenjem simbola #
neposredno ispred adrese promenljive koja predstavlja bazu u odnosu na koju se
izraunava indeksna adresa. Pomeraj moe biti pozitivan ili negativan i u zavisnosti od
tipa promenljive predstavlja broj rei ili elemenata koje treba dodati baznoj adresi. Tipovi
promenljivih koje se mogu indeksno adresirati, kao i znaenje odgovarajueg pomeraja
dati su u tabeli T. 5.
N7:0 Potrebno je obratiti panju na
N7:1 -3
-3 injenicu da se za sve razliite indeksne
N7:2 adrese koje se ele koristiti, pomeraj
indeksna adresa #N7:3 N7:3
dozvoljeni pomeraj mora nalaziti u istoj rei (S:24). Isto tako,
bez prekoraenja
N7:4
granica neke naredbe prilikom izvoenja, koriste
tu re i unitavaju njen prethodni sadraj.
N7:5
+4
+4 Otuda je neobino vano da se pre
N7:6
korienja indeksne adrese obezbedi da
N7:7 se u lokaciji S:24 nae odgovarajui,
F8:0.0 eljeni pomeraj. Konano, napomenimo
F8:0.1 pomeraj = +10 da se prilikom servisiranja prekida,
F8:1.0
prekoraena
granica sadraj lokacije S:24 uva.
F8:1.1
U skladu sa onim to je reeno o
F8:2.0
nainu kreiranja datoteka, treba uoiti da
indeksno adresiranje moe da
F8:2.1
prouzrokuje izvesne probleme. Naime,
F8:3.0
veliina datoteke odreena je najveom
F8:3.1 adresom koja se neposredno navodi u
programu, i pri tome nema naina da se
Sl. 6 Indeksno adresiranje
u toku prevoenja programa ustanovi da
li e sve indeksne adrese biti unutar
zauzetog prostora. Drugim reima, postoji opasnost da pomeraj bude takav da indeksna
adresa premai najveu adresu koja je eksplicitno navedena u programu, to bi
prouzrokovali prekoraenje gornje granice datoteke. Da bi se ovo izbeglo, neophodno je
da se pri kreiranju datoteke definie najvea adresa do koje indeksno adresiranje moe
da dosegne. Isto tako, preveliki negativni pomeraj mogao bi da dovede do prekoraenja
donje granice datoteke.
Prekoraenje granica datoteke samo po sebi ne mora da ima negativne
posledice, sve dotle dok je korisnik svestan da do toga moe da doe i vodi rauna o
tipu susednih datoteka. U tom smislu korisnuku se prua mogunost da izabere da li
eli da dozvoli ili zabrani prekoraenje granica. Ukoliko je prekoraenje zabranjeno, a
do njega doe u toku izvoenja programa, signalizirae se greka.
Ako se predpostavi da se u nekoj aplikaciji koriste samo dve datoteke N7 sa
ukupno 8 elemenata i F8 sa ukupno 4 elementa, onda indeksna adresa #N7:3 moe da
prouzrokuje efekte koji su ilustrovani na slici Sl. 6.
Napomenimo i da je prekoraenje granica dozvoljeno kod kontrolera SLC 5/02
samo ako se indeksno adresiranje ne koristi u datotekama tipa: O, I ili S. Isto tako,
prekoraenje granica nije dozvoljeno kod kontrolera SLC 5/03 i SLC 5/04 ukoliko se
koristi indeksno adresiranje u datotekama tipa St.
Adresiranje datoteka
Pri realizaciji nekih algoritama, postoji potreba da se istovremeno ili na neki
ureen nain operie sa nizom podataka koji je smeten u nekoj datoteci, ili sa
datotekom u celini. U tu svrhu koristi se takoe indeksno adresiranje, ali se programski
sistem sam stara o adekvatnoj promeni sadraja indeksnog registra. Naime, ukoliko se
radi sa nizom podataka u datoteci onda se taj niz specificira tako to se definie bazna
adresa #fn:e gde je prvi ili nulti elemenat niza, to zavisi od konretne programske
naredbe. Istovremeno se na odgovarajui nain definie i duina niza. Rad sa
podacima iz niza se odvija uz korienje indeksnog registra, s tim to, za razliku od
naredbi u kojima se koristi indeksna adresa, korisnik ne mora da vodi rauna o sadraju
indeksnog registra. Vano je jedino da se ima na umu da sve naredbe za rad sa
datotekama menjaju sadraj indeksnog registra.

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.

Naziv Specifikacija Opseg


celobrojna
direktno navoenje vrednosti -32768 do +32767
konstanta
direktno navoenje vrednosti, koja sadri 1.1754944e-38 do
realna konstanta
decimalnu taku 3.40282347e+38
heksadecimalnia
&H &H0000 do &HFFFF
konstanta
oktalna konstanta &O &O000000 do &177777
&B0000000000000000 do
binarna konstanta &B
&B1111111111111111
ASCII konstanta &A

T. 6 - Specifikacija programskih konstanti

2. Diskretni U/I moduli (Discrete I/O modules)


1. Ulazno/izlazni moduli
Uprkos injenici da diskretni senzori i aktuatori koji se nalaze na nekom procesu
ili postrojenju mogu imati veoma razliite tehnike karakteristike, zahtev koji se postavlja
pri njihovom vezivanju za kontroler je uvek isti. Naime, od kontrolera se oekuje da
obezbedi konverziju digitalnog (binarnog) signala koji dolazi sa semzora u numeriku
vrednost 0 ili 1 i da taj podatak smesti kao jedan bit na odogovarajue mesto u
memoriji, ili da oita numeriku vrednost (sadraj) nekog bita u memoriji, da ga
konvertuje u binarni signal koji se vodi na aktuator. Ova injenica omoguila je
projektovanje i izradu tipiziranih U/I kola koja su u stanju da obrauju gotovo sve signale
koji se sreu kod industrijske merne opreme i izvrnih organa. Pored toga, nekoliko U/I
kola su grupisana zajedno i ine Diskretni U/I modul, ija veza sa kontrolerom se
ostvaruje jednostvanimo ubacivanjem u odgovarajui slot na asiji.
Izgled tipinog U/I modula prikazan je na Sl. 7. Na prednjoj ploi U/I modula
nalazi se odreeni broj pinova (terminal points) za koje se vezuju izlazi sa mernih
instrumenata, odnosno ulazi u izvrne organe. Svaki pin je zapravo ulazna ili izlazna
Procesorski taka odgovarjueg kola za
modul asija spregu sa kontrolerom. U
skladu sa time svaki pin se
napajanje s
l
identifikuje svojim tipom
o (ulaz ili izlaz) i brojem koji
t odredjuje poloaj U/I kola u
okviru modula, i koji zapravo
modul U/I moduli predstavlja adresu pina.
Opis pinova dat je na
indika opis unutranjoj strani vrata na
tori pino
xn
n
va
xn n
modulu. Pored U/I pinova,
xnn
xn n na prednjoj ploi modula
nalaze se i pinovi koji su
xnn
xn n
xnn

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.

2. Sprezanje U/I modula sa kontrolerom


Vrednost binarnog signala koji dolazi na ulazni pin nekog U/I modula oitava se
za vreme ulaznog dela sken ciklusa. U zavisnosti od toga da li oitana vrednost
predstavlja logiku nulu ili jedinicu formira se odgovarajua vrednost bita (0 ili 1) i
upisuje na mesto u datoteci 0 (Input image file) koje odgovara adresi ulaznog pina. Isto
tako, vrednost bita koji treba da se prenese na izlazni pin kontrolera kao binarni signal,
nalazi se u datoteci 1 (output image file). Za vreme izlaznog dela sken ciklusa ova
vrednost se oitava, konvertuje u odgovarajui signal i prenosi na izlazni pin ija adresa
odgovara mestu u datoteci na kome se nalazi posmatrani bit.
Redni broj slota Redni broj rei [1]
Svakom modulu koji nema
0-30 - (decimalno) (0 se moe izostaviti) vie od 16 pinova pridruuje se po
jedna 16-bitna re u datoteci 0
N : e . w / b odnosno 1. Ako modul ima manje
od 16 pinova, onda se ne koriste
Tip pina Redni broj pina svi bitovi u pridruenoj rei. Ako
Potrebno samo ako je broj
O - output (izlaz) pinova na modulu vei od
(redni broj bita ) modul im 32 pina, njemu se
I - input (ulaz) 0 - 15 - (decimalno)
16
pridruuju dve susedne 16-bitne
rei. Pri tome, koja re e biti
Sl. 8 Format adresa binarnih U/I signala
pridruena modulu zavisi od slota u
kome se modul nalazi. Format
adresiranja prikazan je na slici Sl. 8.
Da bi se ilustrovao nain povezivanja adresa modula sa odgovarajuim
datotekama posmatrae se kontroler koji se sastoji iz jedne asije sa 7 slotova koja je
povezana sa asijom od 10 slotova kao to je to ilustrovano na slici Sl. 9. Kao to se
vidi prva asija sadri procesorski modul u slotu 0; kombinovani U/I modul sa 6 ulaza i 6
izlaza u slotu 1; ulazni modul sa 32 ulazna pina u slotu 2 itd. U drugoj asiji koriste se
samo prva etiri slota, dok se preostali slotovine koriste. Struktura datoteka 0 i 1 koje
odgovaraju datoj konfiguraciji prikazana je u tabelama T. 7 i T. 8.
Redni brojevi
slotova
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O
Napa Napa
CPU I 6 I 32
Process I 8 I 16 I 16 I 8
janje janje
O6 O 16 O 8 O 32 O 16 O 16 Mogue proirenje

Sl. 9 - Konfiguracija kontrolera

Slot - Data file 0 Output image


Adresa Adrese
U/I tip bitovi
rei bitova
(pinovi) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 - out O:1/0
O:1 Ne koristi se
(0-5) O:1/5
3 - out O:3/0
O:3
(0-15) O:3/15
4 out O:4/0
O:4 Ne koristi se
(0-7) O:4/7
5 out O:5/0
O:5
(0-15) O:5/15
5 out O:5.1/0 ...
O:5.1
(16-32) O:5.1/15
9 out O:9/0
O:9
(0-15) O:9/15
10 out O:10/0
O:10
(0-15) O:10/15
T. 7 Organizacija datoteke 0
Potrebno je da se sitakne da su I i O datoteke jedine dve datoteke kod kojih
elementi nisu poreani u neprekidnom nizu i kod kojih su elementi promenljive duine.
U ovom primeru tako posle elementa O:1, kao susedna re u memoriji nalazi se
element O:3. Isto tako posle elementa O:5 koji zauzima dve rei dolazi elemnat O:9 koji
zauzima jednu re. Ovo je, naravno, prirodna posledica injenice da su redni brojevi
elemenata vezani za slotove, a da je njihova duina odreena brojem pinova na
modulu. Neophodno je, meutim da se to ima na umu prilikom korienja indeksnog
adresiranja ili pri radu sa nizovima podataka. Naime, kao to je ve istaknuto, kod
datoteka ovog tipa indeksna adresa se odreuje tako to se baznoj adresi dodaje
sadraj indeksnog registra, pri emu je pomeraj izraen u reima. To znai da redni broj
rei na koju pokazuje indeksni registar ne mora biti, a najee i nije jednak rednom
broju elementa datoteke.
Slot - Data file 1 Input image
Adresa Adrese
U/I tip bitovi
rei bitova
(pinovi) 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 - in I:1/0
I:1 Ne koristi se
(0-5) I:1/5
2 - in I:2/0
I:2
(0-15) I:2/15
2 in I:2.1/0
I:2.1
(16-32) I:2.1/15
4 in I:4/0
I:4 Ne koristi se
(0-7) I:4/7
6 in I:6/0
I:6
(0-15) I:6/15
7 in I:7/0
I:7
(0-15) I:7/15
8 in I:8/0
Ne koristi se
(0-7) I:8 I:8/7
T. 8 - Organizacija datoteke 1
U posmatranom primeru, ako se kao indeksna adresa definie #I:2, ako se
podatak ija je bazna adresa I:2 nalazi u memoriji na adresi 200, i ako je sadraj indeks
registra S:24=3, onda e biti adresirana memorijska lokacija 203 na kojoj se prema T. 8
nalazi element I:6. Zapazimo da kada bi pri istom zauzeu memorije i sadraju indeks
registra koristila indeksna adresa #N:2, onda bi adresirani elemenat, na lokaciji 203, bio
N:5.

3. Digitalni senzori i digitalni izvrni organi


Kao to je ve reeno digitalni signal je
signal ija amplituda moe imati jednu od
opruga NO
kontakt konanog broja razliitih vrednosti. Posebna
podvrsta digitalnog signala je binarni (diskretni)
signal ija amplituda ima jednu od dve mogue
vrednosti koje se kodiraju kao binarna nula i
binarna jedinica (0 i 1). Ove vrednosti, u
zavisnosti od odreene aplikacije imaju
NC znaenje ukljuen/iskljuen, istinit/neistinit,
Napajanje kontakt prisutan/odsutan itd. Diskretni signali se koriste
navoj za ukljuivanje i iskljuivanje prekidaa,
pokretanje ili zaustavljanje motora, otvaranje ili
zatvaranje ventila i drugih aktuatora u zavisnosti
od radnih uslova ili u funkciji vremena. U isto
Sl. 10 NO i NC kontakt upravljani vreme, ovi signali se koriste i kao indikatori
pomou relea
stanja ovih ureaja.
Bez elje da se uputamo u detaljan pregled svih davaa digitalnih signala i
digitalnih izvrnih organa, izloie se sa samo osnovne odlike prekidaa kao digitalnih
davaa i solenoida koji se veoma esto koriste kao izvrni organi. Ovi elementi e se
kasnije koristiti pri formiranju programa za PLC.
Osnovna komponenta diskretnog senzora i aktuatora je kontakt. U principu, kontakt
moe biti realizovan kao bilo koja vrsta prekidaa, ili neka drugi elektro-mehaniki,
elektro-optiki, pneumatski ili hidraulini ureaj koji ima dva stanja:
zatvoren (closed) provodi struju (odnosno proputa odgovarajuu fiziku veliinu)
otvoren (open) - ne provodi struju (odnosno ne proputa odgovarajuu fiziku
veliinu).
Kontakt moe biti normalno
Simbol otvoren (NO) ili normalno zatvoren
Opis Normalno Normalno (NC), pri emu se izraz normalno
otvoren zatvoren odnosi na stanje u kome se
Obian prekida kontakt nalazi pre nego to se
delovanjem nekog spoljnog
Granini prekida
agensa promeni stanje kontakta.
Prekida sa oprugom Na slici (Sl. 10) prikazana su dva
Taster
tipina relejna kontakta, od kojih je
jedan normalno otvoren a drugi
Temperaturni prekida normalno zatvoren. Naime, sve
dok u kolu relea nema struje,
Prekida aktiviran protokom kotve koje su vezane za oprugu
imaju poloaj kao na slici, tako da
Prekida aktiviran nivoom je kontakt oznaen sa NC
zatvoren, a kontakt oznaen sa
Prekida aktiviran pritiskom NO otvoren. Kada se zatvori
prekida u kolu relea, u jezgru e
Prekida aktiviran se generisati elektromagnetna sila
rastojanjem
koja e privui kotve koje su
Relejni kontakt vezane za oprugu. Pri tome oba
kontakta menjaju stanje i to tako
Osigura
to se NC kontakt otvara, a NO
kontakt zatvara. Kada se prekida
u kolu relea otvori, opruga vraa
Relejni namotaj
kontakte u poetni poloaj.
Dvopoloajni prekida Senzori i kontakti koji se
koriste kao ulazni procesni ureaji
Sl. 11 Pregled grafikih simbola razliitih kontakta (alju signale prema kontroleru)
mogu biti otvarani ili zatvarani kao
rezultat dejstva neke mehanike
akcije (npr. granini prekidai), oveka (npr. tasteri), prisustvom ili odsustvom nekog
objekta (npr. senzori rastojanja), promenom temperature (npr. temperaturni prekidai)
itd. Simboli koji se koriste za prikazivanje najee korienih tipova kontakta prikazani
su na Sl. 11. Potrebno je zapaziti da se ni relejni namotaj, ni dvopolajni prekida, s
obzirom na specifian nain njihovog funkcionisanja, ne mogu klasifikovati ni kao NO ni
kao NC.
Izlazni procesni ureaji koji primaju signale iz kontrolera se koriste za pokretanje i
zaustavljanje motora ili promenu smera obrtanja, za aktiviranje i dezaktiviranje
signalizacije alarma, za paljenje i gaenje kontrolnih sijalica, otvaranje i zatvaranje
ventila, spajanje i razdvajanje kvaila, upravljanje releima, solenoidima itd. Osnovni
izlazni element je rele, koje se realizuje kao tranzistorsko rele (za mala optereenja),
elektromehaniko rele (za srednja optereenja) i kao kontaktor (za velika optereenja).
Svi ovi ureaji su ekvivalentni u smislu logike funkcije koju realizuju, ali se razlikuju u
pogledu elektrinih karakteristika. Ukoliko je potrebno da se izvri prekidanje izuzetno
velikih napona ili struja, mogu se koristiti vie stepeni relei. Nezavisno od realizacije,
rele se moe posmatrati kao elektrini prekida ijim stanjem se upravlja pomou
drugog prekidaa (npr. pomou binarnog signala koji dolazi iz kontrolera).
Pored relea, esto se koristi i solenoid jo jedan elektromehaniki aktuator, jim
radom se upravlja pomou elektromagnetne sile proizvedene u namotaju. U principu,
Opseg kretanja rad solenoida zasniva se na struji koja
- Smer kretanja + postoji u namotaju i koja proizvodi
magnetno polje. U zavisnosti od
smera struje, menja se i smer sile
magnetnog polja koja privlai
a- a+ gvozdeno jezgro ka centru namotaja ili
ga odbija od centra. Postoje dva tipa
opruga solenoidnih aktuatora:
A+
Jednosmerni solenoid koji ima
samo jedan izvod za napajanje, tako
Izlaz Ulaz
da struja ima uvek isti smer, to znai
kontrolera kontrolera da se i jezgro pod dejstvom magnetne
Sl. 12 Jednosmerni solenoid sile moe pomerati samo u jednom
smeru. U odsustvu napajanja
solenoida, mehanika opruga vraa jezgro u poetni poloaj (Sl. 12).
Potrebno je da se istakne da se uz solenoid po pravilu postavljaju i dva granina
prekidaa koji omoguavaju da se detektuje kada jezgro doe u krajnji desni ili krajnji
levi poloaj.
Dvosmerni solenoid koji ima dva izvoda za napajanje, tako da smer struje,
odnosno odgovarajue magnetne sile
Opseg kretanja
- Smer kretanja + zavisi od toga na koji izvod je
prikljueno napajanje. U skladu sa
time i jezgro se kree u jednom od dva
mogua smera. Ukoliko se napajanje
dovede na oba izvoda, jezgro se nee
a- a+ pomerati, Isto tako, ukoliko ni na
jednom kraju nema napajanja, jezgro
e ostati u zateenom poloaju, uz
A- A+
uslov da ne postoji neka mehanika
sila (npr. sila zemljine tee, ako je
Izlaz solenoid u vertikalnom poloaju) koja
kontrolera Ulaz
kontrolera bi izazvala njegovo kretanje. Drugim
reima, u odsustvu napajanja,
Sl. 13 Dvosmerni solenoid solenoid se nalazi u slobodnom stanju
(Sl. 13).
4. Vezivanje digitalnih ureaja za digitalni modul
Samo se po sebi razume da e digitalni senzor moi da generie odgovarajui
binarni signal ukoliko se nalazi u elektrinom kolu koje se zatvara (ili otvara) kada se
senzor aktivira. Otuda, se senzor mora vezati u elektrino kolo digitalnog ulaznog
modula. Ovo kolo e omoguiti detekciju binarnog signala i prenos odgovaajue
vrednosti u memoriju PLC-a. Na isti nain, diskretni izvrni organ mora biti povezan u
elektrino kolo digitalnog izlaznog modula. Ovo kolo omugaava da se binarni signal
koji odgovara vrednosti bita u memoriji prenese na izvrni organ.
Prilikom povezivanja digitalnih ureaja neobino je vano da se vodi rauna o
tome kako je ureaj projektovan, odnosno kakav treba da bude smer elektrinog
signala. U tom smislu razlikuju se dve vrste ureaja:
ureaji koji su izvor signala (source devices) povezuju se na pozitivni pol izvora
napajanja
ureaji koji su primaoci signala (sinking device) povezuju se na zajedniku taku
izvora napajanja.
Da bi se obezbedila kompatibilnost digitalnih ureaja i PLC-a za koji se oni
vezuju, digitalni moduli se takoe proizvode u dve kategorije
digitalna U/I kola koja su izvor signala za ureaje koji su projektovani kao primaoci.
digitalna U/I kola koja su primaoci signala za ureaje koji su projektovani kao izvor.

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

Sl. 14 Sprezanje digitalnih ureaja koji su projektovani kao izvori

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

Sl. 15 Sprezanje digitalnih ureaja koji su projektovani kao prijemnici


Izvesno je da postoje i digitalni ureaji koji ne pripadaju ni jednoj od ovih
kategorija. Tako, na primer, mehaniki prekidai mogu da provode struju u oba smera,
to znai da se mogu povezati na oba tipa modula. Sa druge strane, ureaji koji imaju
neke elektronske komponente zahtevaju da se vodi rauna o smeru struje, tako da
mogu da se koriste samo sa odgovarajuom vrstom digitalnih U/I modula.
3. Analogni U/I moduli
Analogni ulazni moduli su kola za spregu izmeu kontinualnih (analognih) signala
koji dolaze od mernih
instrumenata i digitalnih
AU (numerikih) vrednosti kojima su
ovi signali prikazani u PLC-u.
Analogni
instrument
Analogni izlazni moduli
AI
obezbeuju spregu izmeu
numerikih vrednosti u PLC-u i
analognih signala koji
predstavljaju ove vrednosti i koji
slue za upravljanje izvrnim
Analogni
itvrni organ organima.
Sl. 16 Kombinovani Analogni U/I modul U principu jedan modul se
spree sa vie spoljnih ureaja, pri
emu se svaka sprega posmatra kao jedan ulazni ili izlazni kanal. Moduli se meusobno
razlikuju po broju i vrsti kanala. Neki moduli su samo ulazni ili samo izlazni, a neki su
kombinovani, to zani da imaju i izlazne i ulazne linije.
Svaki modul se smeta u jedan slot
Redni broj rei
Redni broj
(analognog kanala na asiji PLC-a (Sl. 16). Otuda se, sa
slota
0, 1, ...) gledita adresiranja, on tretira isto kao i
digitalni modul, s tim to je znaenje pinova
P : e . w
i broj bitova koji odgovaraju jednom pinu
drugaiji. Drugim reima podaci koji se
Tip pina preko modula unose u raunar nalazie se
O - izlaz (output) u odreenim lokacijama datoteke ulaza (I),
I - ulaz (input) a podaci koji se iznose iz raunara, nalazie
Sl. 17 Adresiranje analognih ulaza i izlaza
se u datoteci izlaza (O). Broj rei koji
odgovara jednom kanalu zavisi od vrste
samog modula. U principu se moe 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. 17). Sadraj odgovarajuih memorijskih lokacija u ovim
datotekama menja se u toku ulaznog ili izlaznog sken ciklusa.
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, izvri se konverzija
odgovarajueg signala i on se smeta u odgovarajuu re u memorijskom podruju koje
odgovara datoteci ulaza.
Imajui u vidu da je merni signal uvek zaumljen, signal koji dolazi preko
analognog kanala se posle konverzije proputa kroz digitalni filter koji ima za cilj da
odbaci komponente visokih uestanosti koji potiu od uma. Tip i vrsta ovog ugraenog
filtra zavisi od proizvoaa. Kod nekih tipova modula korisniku moe sam da podeava
parametre filtra. Pored toga, neki analogni moduli pruaju mogunost korisniku da
dobije i informacije o prekoraenju opsega ili o drugim aspektima rada modula.
Vrsta A/D konvertora i njegova rezolucija zavise od tipa modula. U principu oni
se kreu od 12 do 16 bitova. Kod posmatrane klase SLC kontrolera koriste se 16-bitni
A/D konvertori. Otuda se svakom ulaznom kanalu pridruuje po jedna memorijska re.
Analogni To nadalje znai da se svaki ulazni kanal
dava ulazni adresira pomou adrese oblika I:e.w. U
+ -
modul principu, mogue je pristupiti i pojedinom
izvor
+ IN0+ bitu unutar svake od ovih rei, no ti bitovi
- IN0- nemaju nikakvo pojedinano znaenje, pa
ANL COM se ne vidi razlog zato bi se to radilo.
dava Analogni dava se vezuje tako to
izvor signal
se formira zatvoreno elektrino kolo. Pri
GND
+ IN1+ tome, izvor napajanja tog kola moe biti u
izvor
- IN1-
samom modulu ili spolja. Za razliku od
ANL COM digitalnih U/I, kod analognih modula izvor
napajanja je veoma esto spoljni. Samo
dava elektrino kolo se zatvara vezivanjem
+
izvor signal
IN2+
krajeva analognog davaa sa pinovima na
+ +
izvor
- IN2-
ploi analognog modula (Sl. 16). Svakom
- -
ANL COM
analognom ulaznom kanalu pridruena su
3 pina. Dva pina slue za ulaz signala,
dok je trei pin vezan za zajedniku masu
Sl. 18 Diferencijalna sprega analognog ulaza na samom modulu. Nain njihovog
korienja zavisi od vrste analognog
Analogni
davaa sa koga se signal vodi na kanal.
dava ulazni Ako dava ima dva, tri ili etiri izlaza onda
+ signal
modul se moe izvesti diferencijalna sprega
+ IN0+
izvor davaa i modula. Svakom davau
- IN0-
ANL COM
pridruuje se zaseban izvor napajanja i
svi kanali su meusobno odvojeni (Sl.
dava
18). Za davae koji imaju samo dva ili tri
+ signal
IN1+ izlaza, moe se izvesti veza sa jednim
IN1- krajem, tako da se elektrino kolo zatvara
ANL COM
preko zajednike take (mase) na samom
dava
modulu. U tom sluaju, dovoljan je jedan
izvor signal
izvor napajanja za vie analognih kanala
GND
IN2+
(Sl. 19).
IN2-
Potrebno je da se istakne da
ANL COM
diferencijalna sprega ima bolje
karakteristike posebno kad se radi o
Sl. 19 Sprega analognog ulaza sa jednim krajem potiskivanju smetnji koje potiu od
napajanja.
Anolgni ulazni kanali su, po pravilu, prilagoeni za standardizovane vrste signala
(strujne ili naponske) i to u opsezima koji se najee sreu kod razliitih analognih
davaa. Najee je modul tako podeen da se postavljanjem internih prekidaa moe
definisati da li e se kanal koristiti za strujni ili naponski signal. Tipini skup signala koji
se sree kod analognih ulaza, zajedno sa njihovim celobrojnim prezentacijama kod 16-
bitne konverzije dat je tabeliT. 9.
U skladu sa vrednostima iz tabele, oigledno je da se pretvaranje dobijenih
vrednosti u odgovarajue elektrine veliine moe izvriti prema sledeim formulama
10
ulazni napon (V) = celobrojna decimalna vrednost
32768
20
ulazna struja (mA) = celobrojna decimalna vrednost
16384

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

T. 9 Opseg ulaznih signala i njihova konverzija u celobrojne vrednosti


Neki analogni moduli pruaju mogunost da se zahteva da sam modul interno
izvri konverziju u elektrine ili ininjerske jedinice. Ukoliko modul nema takvu opciju,
konverzija moe da se izvri programski. Problemima transformacije signala bie
kasnije, kada se proui programiranje PLC-a, posveeno vie panje.
Napomenimo jo, da najvei broj analognih modula interno skenira ulazne kanale
i vri A/D konverziju ulaznih signala daleko ee 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 sledee konverzije. Sadraj tih registara, se
meutim, prebacuje u odgovarajue podruje datoteke ulaza samo u toku ulaznog sken
ciklusa. Ukoliko je korisniku, iz nekog razloga, vano da raspolae i sa trenutnom
vrednou ulaza na nekom kanalu, on to moe da ostvari posebnom programskom
naredbom koja e uzeti traenu vrednost iz registra i smestiti je na odgovarajue mesto
u datoteci.
Analogni izlazni kanal
Za razliku od analognih ulaza, svakom analognom izlaznom kanalu pridruen je
poseban D/A konvertor. Pomou njega se celobrojna vrednost koja se nalazi na
odgovarajuem mestu u datoteci izlaza pretvara u strujni ili naponski signal. U principu,
moduli se razlikuju po rezoluciji, ali se najee sreu konvertori ija je rezolucija 12 do
14 bitova. Kod posmatrane klase SLC kontrolera koriste se 14-bitni D/A konvertori.
Otuda se svakom ulaznom kanalu pridruuje po jedna memorijska re. To nadalje znai
da se svaki ulazni kanal adresira pomou adrese oblika O:e.w. Pri tome se za
smetanje podatka koristi 14 levih bitova, tako da dva poslednja desna bita nisu u
upotrebi.
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 prenoenje ili naponskih ili strujnih signala. Tipian skup signala i nain
njihovog pretvaranja iz celobrojnih vrednosti u elektrine signale dat je u tabeli T. 10.
U skladu sa podacima iz tablice, vidi se da se konverzija vrednosti moe izvriti
prema sledeim relacijama
32768
celobrojna decimalna vrednost = izlazni napon (V)
10
32768
celobrojna decimalna vrednost = izlazna struja (mA)
21
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 ogledae
se samo u poslednja dva bita, koja se ne koriste pri D/A konverziji.
Celobrojna decimalna
Opseg
reperezentacija Rezolucija
napona/struje
(datoteka izlaza)
-32768 do +32764 -10V dc do +10V dc
0 do 32764 0 do 10V dc
1.2207mV
0 do 16384 0 do 5V dc
3277 do 16384 1 do 5V dc
0 do 32764 0 do 21mA
0 do 31208 0 do 20mA 2.56348A
6242 do 31208 4 do 20mA
T. 10 Opseg izlaznih signala i konverzija celobrojnih vrednosti u elektrine veliine

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.

Sl. 20 Primer konfigurisanja PLC-a


U slotu 1 nalazi se kombinovani digitalni modul sa 6 ulaza i 6 izlaza. Ovaj modul
imae adrese I:1.0/b i O:1.0/b gde je b redni broj bita koji moe imati vrednost od 0 do
5. Pri tome, ulazni signali moraju biti jednosmerni u opsegu do 24 V, dok su izlazni
signali prilagoeni standardima za upravljanje relejima.
U slotu 2 smeten 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 podeava postavljanjem internih
prekidaa. 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 (adrese I:3.0/b , b = 0, 1,
2, ... , 7). Ovaj modul prima digitalne signale koji su naizmenini u opsegu do 200/240
V.
Tek kada se definie struktura PLC-a moe se poeti sa formiranjem programa.
Pri tome, potrebno je da se istakne da svaki proizvoa PLC-a razvija i posebni
softverski alat koji omoguava da se na izuzetno jednostavan nain definie struktura
PLC-a i formira odgovarajui program. Ovaj alat, koji kod najveeg broja proizvoaa
korristi grafiki interfejs (GUI), omoguava da se PLC emulira na standardnom PC
raunaru. To zapravo znai da se, sa gledita korsinika, PC raunar na kome je
softverski alat instaliran ponaa kao PLC. Korisnik, u fazi definisanja aplikacije,
razvijanja i testiranja programa, ima mogunost da koristi sve opcije i pogodnosti PC
raunara. Kada je program razvijen on se, posebnom tehnikom, prebaci na PLC (down
load programa). Ukoliko PLC ostane i dalje u vezi sa PC raunarom, onda se isti
softverski alat moe koristiti da se pomou PC-a prati izvravanje formiranog algoritma i
obavljaju eventualne korekcije.
1/plc_leder

Leder programiranje

1. Uvod u leder programiranje


Ako se PLC posmatra kao mikroraunarski sistem, to on sasvim sigurno i jeste,
onda bi se moglo oekivati da se za njegovo programiranje koriste standardni prgramski
jezici. Meutim, ako se poe od injenice da je PLC projektovan kao namenski
mikroraunarski sistem za upravljanje i nadzor rada nekog procesa, i da u skladu sa tim
ima poseban operativni sistem koji obezbeuje periodino ponavljanje sken ciklusa,
onda je logino oekivati da je za njegovo programiranje razvijen i poseban programski
jezik.
Kao to je ve ranije istaknuto, PLC je poetno razvijen sa idejom da zameni
relejne sisteme. To znai da se oekivalo da on realizuje odgovarajuu vremensku
sekvencu logikih operacija. Pored toga, uspena primena PLC-a u praksi, zahtevala je i
da se njegovo programiranje prilagodi tehnici koja je svim korisnicima relejnih sistema
dobro poznata.
Kada je re o projektovanju relejnih sistema onda je zapravo potrebno da se rei
problem grafikog predstavljanja vremenske sekvence logikih operacija. Klasini logiki
dijagrami su izuzetno korisni za prikazivanje relacija izmeu elemenata kombinacione
logike. Meutim, oni ne pruaju mogunost za prikazivanje razliitih ulazno/izlaznih
promenljivih kao funkcija vremena. Sa druge strane, vremenski dijagrami su izuzetno
pogodni za prikazivanje odnosa pojedinih promenljivih u toku vremena, ali ne
omoguavaju da se prikae logika koja uslovljava te odnose. U cilju spajanja obe vrste
prikazivanja, za projektovanje relejnih sistema razvijeni su leder (lestviasti) dijagrami.
Projektovanje PLC-ova je, dakle, podrazumevalo da se za njih mora razviti i
odgovarajui programski jezik zasnovan na leder dijagrmima leder programski jezik.
Potrebno je da se istakne da leder programski jezik nije jedini jezik za programiranje
PLC-a. U upotrebi su i jezici koji koriste funkcionalne blokove, zatim jezici na bazi
operacija Bool-ove algebre, BASIC orijentisani jezici, i u novije vreme objektno
orijentisani jezici tipa Visual BASIC-a. injenica je meutim da je, uprkos svojevrsnoj
proliferaciji programskih jezika koju je donela raunarska industrija, leder programiranje i
danas posle vie od 20 godina korienja PLC-a daleko najrasprostranjeniji nain
programiranja. Ima miljenja da je to dokaz konzervativnosti krajnjih korisnika koji su
navikli na projektovanje relejnih sistema. Izvesno je, meutim, da se i projektanti koji
dolaze iz sveta raunara, koji su dakle naviknuti na korienje razliitih programskih
jezika, kada sagledaju problem koji treba da se rei opredeljuju za projektovanje u
lederu.
Jedna programska linija leder jezika sastoji se iz niza grafikih simbola
(programskih naredbi) koji predstavljaju razliite logike elemente i druge komponente
kao to su asovnici i brojai, koji su poreani du horizontalne linije rang (rung) koja
je na oba kraja spojena sa dvema vertikalnim linijama. Prema tome, leder dijagram ima
izgled lestvica, odakle potie i njegov naziv (ladder lestvice).
Svaki rang leder dijagrama sastoji se iz dva dela. Na levoj strani ranga nalazi se
uslov izraen u formi kontaktne (prekidake) logike, dok se na desnoj strani ranga nalazi
akcija koja treba da se izvri ukoliko je uslov ispunjen (true) (Sl. 1).
Uslov U osnovi, grafiki simboli na levoj strani ranga odnose se ili na stanja
signala koji predstavljaju fizike ulaze PLC-a, i ije su vrednosti tokom ulaznog dela
2/plc_leder

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

XIC - Examine if closed (ispitivanje da li je kontakt zatvoren)

XIO - Examine if open (ispitivanje da li je kontakt otvoren)

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").

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 znai da e se
one izvriti samo ako je iskaz (uslov) na levoj strani ranga istinit.
4/plc_leder

OTE - Output energize (pobuivanje izlaza)

Potrebno je da se zapazi da se ovom naredbom vrednost bita ija je adresa a


moe promeniti samo jedanput za vreme sken ciklusa. Ova vrednost ostae
neizmenjena sve do sledeeg sken ciklusa, kada e se pri skeniranju odgovarajueg
ranga ponovo ispitati uslov i izvesti odgovarajua akcija.

OTL - Output latch (pamenje izlaza)

OTL naredbom se adresovani bit moe iskljuivo postaviti na 1. Naime za razliku


od OTE naredbe kojom se vrednost bita moe postavljati na 0 ili 1 svaki put kad se rang
skenira, kod OTL naredbe vrednost bita se postavlja (leuje) na 1 u prvom skenu u
kome je uslov istinit. Nakon toga ova naredba postaje neosetljiva na istinosnu vrednost
uslova. To znai 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 moe iskljuivo postaviti na 0. Pri tome,


vrednost bita se postavlja (leuje) 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.
5/plc_leder

Bit triger naredba


OSR - One-shot rising (uzlazna ivica)

OSR naredba omoguava da se obezbedi izvodjenje neke akcije samo


jedanput. Potrebno je da se istakne da je ovo specifina naredba koja istovremeno
pripada i kategoriji uslova i kategoriji akcije. Naime ova naredba se postavlja u rangu
izmeu 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 takoe dobija vrednost istinit (to ovu naredbu svrstava u
kategoriju naredbi uslova). Istovremeno se i bitu ija je adresa pridruena toj naredbi
dodeljuje vrednost 1 (po emu se ova naredba svrstava i u kategoriju akcija). Obe ove
vrednosti ostaju nepromenjene do sledeeg 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 pridruena ovoj naredbi ne
predstavlja vrednost naredbe. Naime, ovaj bit se koristi kao interna promenljiva i slui za
pamenje 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 identina sa OTE
naredbom. Navedeni bit se moe nalaziti u bilo kojoj bit-adresibilnoj datoteci izuzev
datoteke ulaza i izlaza.
Vrednost koju dobija OSR naredba koristi se kao uslov za izvoenje
naredbe akcije koja se nalazi na desnoj strani ranga (neposredno iza OSR naredbe).
Shodno tome, naredba akcije bie izvravana po jedanput pri svakom prelazu uslova
neistinit/istinit.
Iza OSR naredbe se moe nalaziti samo jedna naredba akcije. (Kod
kontrolera tipa SLC 500 i SLC 5/01 OSR naredba se ne sme nalaziti u paralelenim
granama na desnoj strani ranga).

3. Programski sken i vremenski dijagram


U toku programskog skena procesor izvrava pojedinane naredbe, obraujui
rang po rang od poetka pa do kraja programa. U okviru obrade jednog ranga, procesor
ispituje stanja bitova u datotekama podataka, odreuje vrednost pojedinanih naredbi
uslova, izvrava logike I i ILI operacije nad tim vrednostima, u skladu sa nainom na
koji je formiran desni deo ranga, i kao rezultat tih operacija odreuje istinosnu vrednost
uslova. Ukoliko je ova vrednost istinit, procesor e izvriti naredbe koje se nalaze na
levoj strani ranga i koje predstavljaju akciju.
U cilju ilustracije izvravanja leder programa u PLC-u posmatremo jedan rang
6/plc_leder

(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).

Sl. 3 Vremenski dijagram promene U/I linija i odgovarajueg ranga


Potrebno je da se zapazi da se stanje signala na ulaznoj liniji moe promeniti u
bilo kom trenutku. Meutim, vrednost bita pridruena toj liniji bie promenjena tek u toku
prvog ulaznog sken ciklusa koji nastupa posle promene stanja ulazne linije. Za vreme
programskog skana vrednost XIC naredbe se odreuje na osnovu stanja
odgovarajueg bita, a ne njemu odgovarajueg ulaznog signala. Otuda je u prvom sken
ciklusu vrednost ove naredbe 0 iako je ulazni signal ve u stanju logike jedinice.
Meutim, budui da je on promenio stanje tek posle prvog ulaznog skena, ta promena
jo uvek nije registrovana postavljanjem njemu odgovarajueg bita, koji je odgovaran za
vrednost XIC naredbe. U skladu sa tim, ne izvrava se OTE naredba, pa izlazni bit i
7/plc_leder

njemu odgovarajua 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
izvrava 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 generie signal koji
odgovara logikoj jedinici.
Kanjenje izmeu trenutka u kome signal na ulaznoj liniji menja vrednost i
trenutka u kome se ta promena registruje postavljanjem odgovarajueg bita, kao i
kanjenje izmeu trenutka u kome izlazni bit dobija neku vrednost i trenutka kada se ta
vrednost pojavi na izlaznoj liniji moe se izbei posebnim neposrednim naredbama, o
kojima e kasnije biti vie rei.

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

vrednosti odgovarajuih 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 prekidakog kola,
to znai da se moe detektovati pomou XIO naredbe, koja e dobiti vrednost istinit
kada je vrednost odgovarajueg bita u datoteci ulaza (I:1/1) postavljena na 0. Konano,
kako se nad tasterima 2 i 3 zahteva logika ILI opreacija, to odgovarajue naredbe
moraju biti vezane paralelno. Ispunjenost uslova treba da obezbedi da se na izlaznom
pinu generie naponski signal koji e da prouzrokuje paljenje sijalice. Ovaj zahtev se
moe ostvariti OTE naredbom. U skladu sa time odgovarajui rang leder programa ima
izgled kao na Sl. 6.

Sl. 6 Leder program koji realizuje elektrino kolo


Svakom bitu koji se koristi u leder programu moe se pridruiti simboliko 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 fiziko znaenje
signala na koji se odnosi. Pored toga, u cilju lake provere ispravnosti programa,
pogodno je da se ime formira tako da odgovara stanju pri kome bit koji se ispituje ima
vrednost 1. Potujui 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 dobie vrednost istinit ako bit ima vrednost 1 to znai da
taster P1 jeste pritisnut. Isto tako XIO naredba koja ispituje vrednost bita na adresi
I:1/1 dobie vrednost istinit ukoliko bit nema vrednost 1, to znai da taster P2 nije
nepritisnut.
Opisani sistem e ispravno raditi samo dotle dok se odgovarajui tasteri dre
pritisnuti. Naime, im se taster otpusti on se vraa u normalni poloaj i u sledeem sken
ciklusu, uslov vie nee biti ispunjen, pa e se sijalica ugasiti. Prirodno je meutim da se
zahtev postavi tako da sijalica nastavi da svetli i posle otputanja tastera.

Sl. 7 Leder program koji trajno postavlja izlazni bit ("pamti" ako je uslov bio ispunjen)
9/plc_leder

Postavljeni zadatak moe se reiti tako to e se na neki nain upamtiti da je


uslov za paljenje sijalice u nekom trenutku bio ispunjen. U tu svrhu moe se na izlaznom
delu ranga umesto OTE naredbe postaviti OTL naredba koja e obezbediti trajno
postavljanje (leovanje) izlaza (Sl. 7).

Sl. 8 Leder program sa postupkom samodranja


Umesto korienjem naredbe OTL isti efekat se moe postii i postupkom
takozvanog samodranja kojim se zadrava 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. 8) onda e, im se pritiskanjem tastera uslov prvi put
ispuni, odgovarajui bit biti postavljen na 1, to znai da e u sledeim sken ciklusima
naredba u paralelnoj grani stalno imati vrednost istinit, pa se vrednost izlaznog bita nee
menjati sa promenom stanja tastera.
Potrebno je da se istakne da su poslednja dva primera formirana tako da e
sijalica kad se jedanput upali nastaviti da svetli neogranieno dugo.

Sl. 9 Leder program sa trajnim pamenjem uslova do ptitiska STOP tastera


Da bi se omoguilo i gaenje sijalice neophodno je da sistemu doda jo jedan
taster (Stop). Pritiskom na ovaj taster, jedanput upaljena sijalica, bi bila iskljuena. Ako
se predpostavi da je ovaj taster normalno otvoren i da je vezan na pin 3 istog ulaznog
modula, onda se postavljeni zadatak moe realizovati na nain koji je prikazan na
10/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).

Sl. 10 Leder program sa samodranjem do pritiska STOP tastera

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

naredba ne izvrava. Meutim, vrednost uslova u drugom rangu postaje istinita, pa se


izvrava unletch naredba, i time signal za start motora dobija vrednost logike nule, pa
se motor zaustavlja.

Sl. 11 Start/Stop leder program

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

Sl. 12 Realizacija sekvence pomeranja klipova


1/plc_T/C

Naredbe za merenje vremena i prebrojavanje dogaaja


asovnik (timer) i broja (counter)

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

Akumulirana vrednost (accumulated value - ACC) predstavlja broj osnovnih


vremenskih intervala koje je asovnik izbrojao, odnosno broj dogaaja koje broja
registrovao u nekom trenutku. Kada akumulirana vrednost postane vea ili
jednaka od zadane vrednosti asovnik, odnosno broja, zavravaju svoj rad.
Opseg dozvoljenih vrednosti za akumuliranu vrednosti isti je kao i za zadanu
vrednost.

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)

Sl. 1 Elemenat datoteke asovnika i adresiranje asovnika

Na slici Sl. 1 prikazan je jedan elemenat datoteke asovnika, kojim se definie


jedan asovnik. Pored toga, prikazan je format adrese asovnika. Potrebno je da se
zapazi da broj elementa zapravo definie jedan odreeni 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 nain na koji se formira adresa u
bilo kojoj datoteci podataka, bilo preko odgovarajuih simbola. To zapravo znai da
su sledee adrese meusobno 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
3/plc_T/C

Tf:e.0/14 ili Tf:e/14 ili Tf:e/TT


Tf:e.0/13 ili Tf:e/13 ili Tf:e/DN
Naredbe asovnika
Kao to je ve reeno naredbe asovnika su naredbe akcije, to znai 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 nain njegovog rada definie
preko naredbe koja se uvrtava u leder program. Drugim reima, kad se u program
stavi jedna od mogue tri naredbe i u njoj naznai adresa asovnika u
odgovarajuem formatu, onda operativni sistem sam zauzme tri rei u datoteci koja je
navedena u adresi.
Timer on-delay (TON)
Kao to je ve reeno,
stavljanjem ove naredbe u leder
program automatski se definie
prva vrsta asovnika i zauzimaju
tri rei koje ine elemenat broj e u
datoteci asovnika broj f. Prilikom
formiranja naredbe specificaraju se i vremenska baza (tx) i zadana vrednost (ns).
TON naredba zapoinje 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
sledeem sken ciklusu, sve dok je uslov istinit asovnik vri auriranje akumulirane
vrednosti (ACC) u skladu sa proteklim vremenom izmeu 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
sledei nain:
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 zavri merenje
vremena.
U vezi sa radom asovnika potrebno je da se zapazi nekoliko injenica. Pre
svega asovnik radi samo dok je uslov istinit (signal na ulazu u asovnik je u stanju
on). Istonosnu vrednost uslova pokazuje EN bit. Drugim reima, ovaj bit ima
vrednost 1 onda kada je uslov istinit i to oznaava da je rad asovnika omoguen
(enable). Kada je uslov neistinit, EN bit ima vrednost 0, to znai da je rad asovnika
onemoguen. Meutim, injenica da EN bit ima vrednost 1 ne mora da znai da
asovnik zaista i radi, jer je on mogao i da zavri 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. Konano, kada je vrednost DN bita
1, onda to znai da je asovnik zavrio (done) svoj posao, tj. izmerio zadano vreme.
Pri tome, DN bit ne govori o tome kada je asovnik zavrio sa poslom, jer e on
ostati na vrednosti 1 sve dok uslov ne postane neistinit. Vremenski dijagram rada
asovnika ilustrovan je na slici Sl. 2.
4/plc_T/C

Sl. 2 Vremenski dijagram izvravanja TON naredbe

Stanje asovnika se moe restovati posebnom RES naredbom, o emu e


kasnije biti vie rei.
Timer off-delay (TOF)
Ovom naredbom se definie
druga vrsta asovnika i zauzimaju
tri rei 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 se automatski postavlja na 0.
TOF naredba zapoinje 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 sledeem sken ciklusu, sve dok je
uslov neistinit asovnik vri auriranje akumulirane vrednosti (ACC) u skladu sa
proteklim vremenom izmeu 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
sledei nain:
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
5/plc_T/C

resetuje na nulu kada uslov postane istinit ili kada se DN bit resetuje.

Sl. 3 Vremenski dijagram izvravanja TOF naredbe


U vezi sa radom asovnika potrebno je da se zapazi nekoliko injenica. Pre
svega 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 onemoguava rad asovnika. Drugim reima, ovaj bit ima vrednost 1 onda
kada je uslov istinit i to oznaava da je rad asovnika onemoguen. Kada je uslov
neistinit, EN bit ima vrednost 0, to znai da je rad asovnika omoguen. Meutim,
injenica da EN bit ima vrednost 0 ne mora da znai da asovnik zaista i radi, jer je
on mogao i da zavri 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. Konano, kada je vrednost DN bita 0, onda to znai da je
asovnik zavrio (done) svoj posao, tj. izmerio zadano vreme. Pri tome, DN bit ne
govori o tome kada je asovnik zavrio sa merbjen vremena, jer e on ostati na
vrednosti 0 sve dok uslov ne postane istinit. Vremenski dijagram rada asovnika
ilustrovan je na slici Sl. 3.
Retentive Timer (RTO)
Ovom naredbom se definie
trea vrsta asovnika i zauzimaju tri
rei 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 se automatski postavlja na 0.
6/plc_T/C

Sl. 4 Vremenski dijagram izvravanja RTO naredbe

RTO naredba razlikuje se od TON naredbe samo po tome to se akumulirana


vrednost ne resetuje, ve zadrava i onda kada uslov postane neistint. Drugim
reima, ovaj asovnik poinje da radi kada uslov postane istinit, i nastavlja sa radom
poveavajui akumuliranu vrednost sve dok je uslov istinit. Kada uslov postane
neistinit, asovnik prekida rad, ali se akumulirana vrednost pri tome ne menja. To
znai da e kada uslov ponovo postane istinit, asovnik nastaviti sa radom i
prethodno izmerenom vremenu (ACC) dodavati nove vrednosti. Na taj nain ovaj
asovnik omoguuje da se kumulativno mere intervali vremena u kojima je uslov bio
istinit (Sl. 4).
Bitovi stanja asovnika menjaju se u toku programskog sken ciklusa na
sledei nain:
DN - Timer done bit se postavlja na 1 kada je ACC PRE (asovnik je izmerio zadano vreme). On
se resetuje na 0 pomou posebne RES naredbe.
EN - Timer enable bit se postavlja na 1 kada je uslov u rangu istinit (rad asovnika je omoguen) i
resetuje na 0 kada uslov postane neistinit (rad asovnika je onemoguen).
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).

Reset naredba (RES)


RES naredba je naredba akcije i koristi
se za resetovanje asovnika. Kada je uslov
istinit ova naredba se izvrava tako to se u
asovniku ija je adresa (ili simboliko ime) a
navedena u RES naredbi, resetuju na nulu
bitovi DN, TT i EN, kao i akumulirana vrednost (ACC). S obzirom na nain rada
oigledno je da se RES naredbe ne sme koristiti za TOF tip asovnika.
7/plc_T/C

Nain rada asovnika


Sve dok asovnik radi u svakom sken ciklusu poveava se akumulirana
vrednost. Pri tome, iznos za koji e se poveati ACC vrednost zavisi od duine
trajanja sken ciklusa. Naime, kada se prilikom obrade ranga ustanovi da su se stekli
uslovi da asovnik pone sa radom onda se istovremeno startuje jedan interni
asovnik, koji se aurira preko prekida (interapta) na svakih 0,01 sec. Broj
registrovanih vremenskih intervala se smeta u interni 8-bitni registar (bitovi 0-7 u
prvoj rei). Ukoliko je u pitanju asovnik ija je vremenska baza 0,01 sec, onda se u
sledeem programskom skenu, kada se naie na dati rang, vrednost internog
registra, koja zapravo predstavlja interval vremena koji je protekao izmeu dva
sukcesivna sken-a, dodaje akumuliranoj vrednosti. Nakon toga se interni rgistar
resetuje na 0 i poinje ponovo da meri vreme do sledeeg skena. Budui da je
maksimalna vrednost koju moe da ima interni registar oko 2,5 sec (255x0,01), moe
se oekivati da e tajmer raditi ispravno samo ako sken ciklus ne traje due od 2,5
sekundi. Ukoliko se tajmer koristi u programu iji sken ciklus traje due, onda je
neophodno da se ista naredba za asovnik postavi na vie mesta u programu ime
e se obezbediti da se rangovi koji sadre taj asovnik obrauju sa uestanou koja
nije vea od 2,5 sekundi. (Svaki put kada se proe kroz rang koji sadri asovnik
izvri se auriranje internog registra i poveati akumulirana vrednost).
Ukoliko asovnik radi sa vremenskom bazom od 1 sekunde obrada asovnika
je donekle sloenija. Ovde se, naime i dalje koristi interni asovnik koji se aurira na
svakih 0,01 sekundi, ali se pri tome u toku obrade ranga akumulirana vrednost
aurira samo ako je akumulirana vrednost vea ili jednaka od 1 sekunde. Pri tome se
akumulurina vrednost uveava za 1, dok se eventualni ostatak vremena pamti u
internom brojau i na njega se dodaju sledei inkrimenti od po 0,01 sekunde.
Postupak auriranja akumulirane vrednosti je takav da se moe oekivati da e
asovnik raditi ispravno ako sken ciklus ne traje due od 1,5 sekundi (maksimalni
mogui ostatak posle oitavanja je 0,99, to uveano za 1,5 ini 2,5). Naravno, i ovde
se problem ciklusa dueg trajanja moe prevazii stavljanjem naredbe asovnika na
vie mesta u programu.
Potrebno je da se naglasi da je pri korienju asovnika neophodno da se
posebna panja posveti naredbama za skok. Naime, i ako je trajanje sken ciklusa u
dozvoljenim granicama, moe se desiti da se nekom od naredbi za skok u jednom ili
vie suskcesivnih sken ciklusa preskoi rang koji sadri asovnik. Jasno je da se u
tom sluaju nee vriti auriranje akumulirane vrednosti. To nadalje znai da je
neophodno da se obezbedi da u sluaju bilo kakvog programskog skoka, naredba za
asovnik ne bude iskljuena iz obrade u periodu koji je dui od maksimalno
dozvoljenog vremena.
Tanost asovnika (timer accuracy) je pojam koji se odnosi na duinu
vremenskog intervala koji protekne od trenutka kada se asovnik ukljui do trenutka
kada DN bit indicira da je merenje vremena zavreno. Kao to je ve istaknuto, za
asovnike koji rade sa vremenskom bazom od 0,01 sekunde tanost je u granicama
od 0,01 sec sve dok sken ciklus ne traje due od 2,5 sekunde. asovnici koji rade
sa vremenskom bazom od 1 sekunde zadravaju svoju tanost ukoliko je programski
sken krai od 1, 5 sec.
Neophodno je da se istakne, meutim, da tanost rada asovnika ne implicira
da e i neki dogaaj koji je vezan sa asovnikom da bude aktiviran sa istom
tanou. Aktiviranje dogaaja se ostvaruje ispitivanje DN bita. U najveem broju
sluajeva ovaj uslov se ispituje jedanput u okviru sken ciklusa. To nadalje znai da je
tanost aktiviranja dogaaja odreena trajanjem jednog sken ciklusa.
8/plc_T/C

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.

Sl. 5 Elemenat datoteke brojaa i adresiranje brojaa

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.

Sl. 6 Kruni rad brojaa


Jedina razlika izmeu brojaa sastoji se u tome to prvi (CTU) broji unapred
od 0 do 32767, i postavlja overflow bit (OV) na 1 kad pree 32767, dok drugi (CTD)
broji unazad, od 0 do 32767, i postavlja underflow bit (UN) kad pree 32767.
Potrebno je zapaziti da se u oba sluaja brojanje nastavlja (Sl. 6). Kada pree 32767,
broja unapred dodavanjem jo jednog bita dobija vrednost 32767 (u binarnoj
aritmetici drugog komplementa, sa 16-bitnom rei 32767+1= 32768) i nastavlja da
broji unapred od tog broja. Na isti nain, kada broja unazad dostigne vrednost od
32768, oduzomanjem sledeeg bita, broja dobija vrednost 32767 (u binarnoj
aritmetici drugog komplementa, sa 16-bitnom rei 32768-1= 32767) i nastavlja da
broji unazad od te vrednosti. To nadalje znai da korisnik sam mora da vodi rauna o
eventualnom prekoraenju opsega.
Count up (CTU)
Bitovi stanja brojaa
menjaju se u toku
programskog sken ciklusa na
sledei nain:
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 rei 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 odgovarajua RES naredba.

Count down (CTD)


Bitovi stanja brojaa
menjaju se u toku programskog
sken ciklusa na sledei nain:
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 rei 32768-1= 32767), i nastavlja da broji unazad od te vrednosti.
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 odgovarajua RES naredba.
10/plc_T/C

Reset naredba (RES)


RES naredba je naredba akcije i koristi
se za resetovanje brojaa. Kada je uslov istinit
ova naredba se izvrava tako to se u brojau
ija je adresa (ili simboliko ime) a navedeno u
RES naredbi, postavljaju na nulu svi indikatorski
bitovi, kao i akumulirana vrednost (ACC).

4. Primeri korienja asovnika i brojaa


Ekscentar presa
Zadatak
Data je jedna ekscentar presa koja se koristi za izradu zatvaraa za flae.
Ekscentrina Zatvarai se proiuvode tako
aura
to se komad metala stavi na
postolje ispod bata prese koji
Glavna se pomera u vertikalnoj ravni
osovina
motora (dole gore). Bat udara u
Osovina
motora
metal kada doe u krajnji
Frikciona
donji poloaj i deformie ga,
spojnica Poluga bata odnosno oblikuje na enjeni
nain. Za bat prese
privrena je poluga iji je
Bat prese Hod bata gornji kraj vezan
ekscentrino za osovinu
prese. Poloaj take
vezivanja odabran je tako da
obrtanje osovine prese
uzrokuje linearno (vertikalno)
pomeranje bata. Pri tome, za
Sl. 7 ematski prikaz ekscentar prese vreme za koje osovina prese
napravi pun obrt, bat prese
pree put od gorenjeg krajnjeg do donjeg krajnjeg poloaja i nazad. Obrtanje osovine
prese ostvaruje se preko motora ija je osovina vezana sa osovinom prese preko
frikcione spojnice. Uproeni model opisane prese prikazan je na slici Sl. 7.
Na presi radi radnik koji postavlja komad metala ispod bata, zatim aktivira
presu, saeka da ona zavri jedan krug, izvadi zatvara i stavlja novi komad metala.
Potrebno je napraviti sistem koji e pomou PLC-a upravljati radom prese.
Sistem treba da je projektovan tako da obezbedi maksimalnu zatitu radnika u toku
rada.
Reenje
Polazei od funkcionalnog opisa ureaja oigledno je da bi presom trebalo da
se upravlja tako to e posluilac prese na neki nain 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 (goredolegore), 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 puta u rad. Pri tome, postoje dve mogunosti. Ili da se sa
svakom aktivacijom prese motor pokree i zaustavlja ili da se jedanput pokrenut
motor stalno vrti, dok se radom same prese upravlja iskljuivo preko spojnice. Imajui
11/plc_T/C

u vidu da je proces proizvodnje zatvaraa serijski proces, ovo drugo reenje je


povoljnije. Budui 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. Simboliko ime ovog signala je "motor_on". Ovaj motor pokretae se
pritiskom na jedan poseban taster "start" i zaustavljatipritiskom na taster "stop".
Signale sa ova dva tastera dovodiemo na ulazni deo digitalnog U/I modula i to na
pinove 0 i 1.
Radom spojnice upravlja se preko jednog elektromagneta koji, kada ima
prikljueno 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
simboliko ime "spoj_on".
Da bi presom moglo da se upravlja neophodno je da se raspolae sa
informacijom o poloaju bata. Ovaj problem emo reiti postavljanjem jednog
graninog prekidaa na samu presu i to tako da je on zatvoren kada je presa u
gornjem graninom poloaju. Digitalnom signalu sa ovog prekidaa daemo
simboliko ime "swggr_on" i doveemo ga na drugi pin ulaznog dela U/I modula u
prvom slotu.
Preostaje jo da reimo nain na koji rukovaoc presom puta presu u rad.
Izvesno je da bi se to moglo reiti postavljanjem jednog tastera koji se pritisne svaki
put kad presa treba da napravi jedan hod. Meutim, ovo reenje 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, saeka da presa izvri
jedan puni radni ciklus, izvadi formirani zatvara i stavi novi komad metala. U elji da
se taj proces odvija to bre, rukovaoc presom bi mogao da odlui da jednom rukom
pritiska taster, a drugom postavlja materijal ispod prese. Jasno je da bi bio dovoljan
samo jedan trenutak nepanje pa da on ozbiljno povredi ruku. To nadalje znai da je
neophodno da se osmisli takav nain putanja prese u rad da je potpuno izvesno da
se u tom trenutku nijedna njegova ruka ne nalazi ispod bata. Ovako formulisan
zahtev prirodno namee ideju da se presa puta u rad pomou dva prostorno
udaljena tastera koji se mogu istovremeno pritisnuti samo sa obe ruke. Postaviemo
zato uz presu dva tastera za desnu i levu ruku i signale sa njih doveemo na trei i
etvrti pin ulaznig dela digitalnog U/I modula u prvom slotu. ("taster_lr_on" i
"taster_dr_on").
Budui da je osmiljena potrebna oprema (senzori i izvrni organi) moe se
pristupiti formiranju samog algoritma upravljanja i pisanju LADDER programa. U tom
cilju neophodno je da se ree dva problema. Prvi, jednostavniji, odnosi se na
detekciju trenutka kada je presa zavrila puni ciklus. Jasno je da e, kada je poluga
bata u gornjem graninom poloaju, granini prekida biti pritisnut. Problem je
meutim u tome to on to stanje ima i na poetku pre bilo kakvog pomeranja bata i
na kraju svakog punog ciklusa. Otuda, samo stanje graninog prekidaa ne govori o
tome da li je pokret izvren ili ne. Da bi se ovaj problem prevaziao, uvodi se jedna
interna bit promenljiva (u programu oznaena kao hod) koja se postavlja dok se bat
pomera. Na taj nain, kada se ustanovi da je granini prekida zatvoren, potrebno je
proveriti da li je istovremeno i interni bit (hod) i tek ta dva uslova zajedno ukazuju da
je presa zavrila jedan puni ciklus.
Drugi problem vezan je za ostvarivanje pune zatite rukovaoca presom.
Praksa pokazuje da postavljanjem dva tastera problem i dalje nije reen. Naime,
moe se desiti da rukovaoc, zanemarujui sopstvenu bezbednost, odlui da mu je
lake i bre da radi tako to e jedan od dva tastera zaglaviti tako da stalno bude
12/plc_T/C

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.

Sl. 8 Leder program sa trajnim pamenjem bita za upravljanje ekscentar presom


Dve varijante LADDER programa kojima se realizuje navedeni algoritam
13/plc_T/C

prikazane su na Sl. 8 i Sl. 9 .


Posmatrajmo kao prvo program koji koristi naredbe za trajno pamenje bitova
(Sl. 8). U toku programskog sken ciklusa obrauje se rang po rang. Sve dok se ne
pritisne "start" taster uslov u rangu 0 nee biti istinit pa motor nee dobiti pobudu.
Otuda je potpuno nebitno ta e se deavati u sledeim rangovima jer presa nee
raditi. Rang 1 e biti istinit tek kada se pritisne "stop" taster i tada e motor igubiti
pobudu. U meuvremenu rad prese bie diktiran ostalim rangovima programa.

Sl. 9 Leder program sa samodranjem za upravljanje ekscentar presom


14/plc_T/C

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

uslov u rangu 2. Konano, kada asovnik CONTROL izmeri 10 sekundi, on e


postaviti svoj DN bit na 1. Odmah zatim, u sledeem rangu u programu sa trajnim
postavljanjem bita (Sl. 10), bit MOVE_APLUS e biti resetovan i ventil e se
zatvoriti. Kod programa sa samodranjem (Sl. 11) to e se desiti tek u sledeem sken
ciklusu, kada uslov u paralelnoj grani ranga 2 postane neistinit.

Sl. 10 Leder program sa trajnim pamenjem bita za regulaciju protoka vazduha


Potrebno je obratiti panju na injenicu da program u kome se koristi
samodranje ima jedan rang manje i to zato to se kod njega u okviru istog ranga
ostvaruje i aktiviranje i dezaktiviranje signala A+. U programu u kome se koristi trajno
postavljanje bita, aktivacija solenoida se postie u jednom rangu i to na isti nain na
koji se to ostvaruje kod samodranja, dok se deaktivacija, prirodno, mora nai u
zasebnom rangu. U ovom primeru ta injenica pokdnostavljuje zavretak programa,
te nije neophodno da se uvodi interna promenljiva koja oznaava kraj rada.
16/plc_T/C

Sl. 11 Leder program sa samodranjem za regulaciju protoka vazduha

Paljenje i gaenje signalne lampe


Zadatak
Predpostavlja se da postoji neki hidraulicni mehanizam za iji rad je
neophodno da se ulje zagreje do odreene temperature. Pri tome se postizanje
zadane temperature detektuje pomocu jednog termo-prekidaa koji daje binarni
signal kada temperatura postugne 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 pinje stalno da
svetli.
Sistem se puta u rad pritiskom na jedan dvopolajni prekida.
Reenje
Predpostavimo da je prekida za putanje sistema u rad vezan za nulti pin
ulaznog modula, tako da ima adresu I:1/0 i neka je njegovo simbolicko ime
START_ON. Indikator temeperature je vezan za prvi pin, tako da je adresa signala
I:1/1, i pridrueno simboliko ime KRAJ_GREJANJA. Signalan sijalica je vezana za
pin 0 izlaznog modula (adresa O:2/0) i dodeljeno joj je simbolino ime LAMPA_ON.
Jedno mogue reenje postavljenog zadatka prikazano je na slici Sl. 12
Paljenje i gasenje signalne lampe moe se ostvariti korieme dva asovnika
od kojih je jedan TON tipa (simboliko ime PALI), a drugi TOF tipa (simboliko 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 odgovarajui DN bitovi postavljeni na 0 (PALI/DN) odnosno 1 (GASI/DN). U
17/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.

Sl. 12 - Leder program za paljenje i gaenje sijalice


Uslov za rad asovnika GASI je i dalje neistinit, to znai da bi on mogao da
radi. Meutim, kako je on izmerio zadano vreme i kako njegov DN bit nije resetovan
(resetuje ga promena uslova na istinit), to on nee raditi (GASI/TT=0). Uslov u rangu
2 je istinit, te sijalica svetli. Ovakva situacija ostae i u svim sledeim sken ciklusima
sve dok ne proe 1 sekunda, kada e da se postavi PALI/DN bit na 1. Uslov u rangu
1 posstaje istinit to dovodi do resetovanja GASI/DN bita (postavlja se na 1). Sijalica i
dalje svetli. U sledeem 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 pomou DN bita drugog
asovnika. To je ujedno i razlog, zato asovnici ne mogu biti istog tipa (oba TON ili
oba TOF). Naime, u tom sluaju ne bi bilo mogue da se otpone sa radom, jer bi na
poetku oba DN bita imala istu vrednost (0 ili 1). Vremenski dijagram promene
odgovarajuih bitova dat je na Sl. 13.
Sve dok se ne dostigne eljena temperatura, bit oznaen kao
KRAJ_GREJANJA ima vrednost 0, to znai 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 zahvaljujui samodranju u
rangu 2.
18/plc_T/C

Sl. 13. Vremenski dijagram promene indikatorskih bitova asovnika

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

pokazuje se da testiranje stanja prekidaa nije dovoljno da bi se pratio njihov rad.


Jasno je da je, kada je solenoid potpuno uvuen, njegov prekida na "-" kraju
pritisnut, no on to stanje ima i na poetku pre bilo kakvog pomeranja klipa i na kraju
svakog punog ciklusa (pomeranje napred nazad). Drugim reima, samo stanje
prekidaa "-" ne govori o tome da li je pokret izvren ili ne. Da bi se ovaj problem
prevaziao, uvodi se jedna interna bit promenljiva (u programu oznaena kao hod
unazad) koja se postavlja dok se klip pomera. Na taj nain stanje te promenljive,
zajedno sa stanjem prekidaa na "-" kraju solenoida ukazuju na to da li je ciklus
zavren ili ne.
20/plc_T/C

Sl. 14 Leder program za upravljanje mainom za pakovanje koja ima dva solenoida sa po dva
kraja

U drugom reenju (Sl. 15) je predpostavnjeno da je klip A dvosmerni solenoid,


dok je klip B jednosmerni solenoid, koga opruga vraa u poetni poloaj im prestane
napajanje njegovog kraja. Pri tome se signali za napajanje vode preko istih pinova
kao i u prvom reenju, s tim to je pin 3 slobodan (nema napajanja za kraj B-).
Granini prekidai oba klipa vezani su na isti nain, s tim to je su prekidai klipa B
realizovani kao normalno zatvoreni kontakti. Program je realizovan pomou naredbi
za trajno pamenje bitova. Sama logika programa je veoma slina prvom reenju,
tako da nema potrebe da se posebno komentarie.
21/plc_T/C

Sl. 15 Leder program za upravljanje mainom za pakovanje koja ima jedan solenoid sa dva
kraja i jedan solenoid sa oprugom
1/plc_math

Naredbe za operacije nad podacima


1. Uvod
U realizaciji razliitih algoritama esto je potrebno da se izvre odreena
izraunavanja, da se prenesu odgovarajue poruke ili da se u zavisnosti od vrednosti
nekih parametara promeni algoritam obrade. U osnovi svih navedenih aktivnosti
nalaze se promenljive podaci koji predstavljaju operande ili rezultate u razliitim
matematikim ili logikim operacijama.
operandi
Kao to je ve reeno, promenljive se u memoriji kontrolera pamte kao
numeriki podaci ili alfanumeriki podaci stringovi. Numeriki podaci se pri tome
mogu pamtiti kao celoborjne vrednosti (integers) ili decimalni brojevi prikazani u
tehnici pokretnog zareza (floating point). Razliiti tipovi numerikih podataka
smetaju se u datoteke podataka odgovarajueg tipa.
Celobrojni podaci smetaju se u datoteke tipa N, to znai da je njihova
adresa oblika Nn:w, gde je n broj datoteke (7 ili bilo koji broj od 9 do 255), a w redni
broj rei u datoteci (0 do 255).
Realni podaci smetaju se u datoteke tipa F, to znai da je njihova adresa
oblika Fn:w, gde je n broj datoteke (8ili bilo koji broj od 9 do 255), a w redni broj rei u
datoteci (0 do 255).
U principu, operandi mogu biti promenljive iz bilo koje datoteke. Potrebno je
uoiti, meutim, da iako se dozvoljava korienje bit-adresibilnih datoteka (B,I,O),
podaci smeteni u njima se u ovim operacijama mogu koristiti samo kao cele rei
(elementi), to znai da se operacija ne moe izvoditi nad pojedinim bitovima. Pored
toga, u datotekama asovnika i brojaa (T i C) mogu se kao operandi koristiti samo
druga i trea re elementa koje predstavljaju akumuliranu vrednost (ACC) i zadanu
vrednost (PRE). Konano, kao operandi se mogu javiti i neke promenljive iz kontrolne
datoteke (R). O znaenju i ulozi ovih promenljivih bie rei kasnije.
Pri adresiranju promenljivih moe se, pored direktnog adresiranja, koristiti i
indeksno i indirektno adresiranje.
Pored promenljivih, operandi u pojedinim operacijama mogu biti i programske
konstante nepromenljive veliine koje se definiu eksplicitnim navoenjem
vrednosti u okviru naredbe. Pri tome, nije dozvoljenno da oba operanda budu
programske konstante. Samo se po sebi razume da se programska konstanta ne
moe korsititi kao rezultat.
operacije
Operacija koja treba da se izvri nad operandima definie se u okviru naredbe.
Najvei broj ovih naredbi pojavljaju se kao naredbe akcije. Ovo je sasvim prirodno
ako se ima u vidu da je glavna svrha ovih naredbi da se obavi neka aritmetika ili
logika operacija nad operandima i dobijeni rezultat upamti kao odgovarajua
promenljiva. Drugim reima, sam proces izraunavanja predstavlja jednu akciju, ije
izvravanje moe biti uslovljeno istinosnom vrednou nekog uslova koji se nalazi u
levom delu ranga. Izuzetak su jedino naredbe za poreenje, koje opet, po svojoj
prirodi, proveraju da li je neka relacija izmeu operanada ispunjena ili nije odnosno
da li njena vrednost istinita ili neistinita. Shodno tome, takve naredbe moraju biti
naredbe uslova, tako da je rezultat njihovg izvoenja istinosna vrednost naredbe.

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.

Sl. 1 Opti izgled naredbe za poreenje

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

T. 1 - Grupa naredbi za poreenje

Pored navedenih naredbe meu nardbama za poreenje postoje i sledee


dve naredbe.
MEQ - masked comparison for equal (ispitivanje jednakosti pojedinih
bitova)

Sl. 2 Naredba za ispitivanje pojedinih bitova

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)

Sl. 3 Naredba za proveru granica


LIM naredbom se proverava da li se vrednost operanda Test nalazi unutar
datih granica. Ako je donja granica manja od gornje granice, vrednost naredbe je
istinita ako operand pripada segmentu koji odreuju granice. Potrebno je obratiti
panju na injenicu da donja granica moe biti i vea od gornje granice. U tom
sluaju naredba je istinita ako se operand nalazi izvan granica ili na njima, a neistinita
ako operand pripada intervalu koji odreuju granice.
Ako je operand test konstanta, onda obe granice moraju biti adrese
promenljivih. Meutim, ukoliko je test adresa promenljive, onda granice mogu biti bilo
adrese promenljivih bilo konstante.

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.

Izvoenje operacija celobrojnog mnoenja i deljenja


matematiki registar S:13 i S:14
Ako su operandi celobrojne promenljive duine 1 rei (16 bita) i ako se
zahteva njihovo mnoenje onda rezultat ima 32 bita. Budui da rezultat treba da se
upamti, ponovo kao celobrojna promenljiva, onda je jasno da se postavlja pitanje ta
raditi sa eventualnim vikom bitova koji se nalaze na pozicijama od 16 pa navie. Da
bi se omoguio ispravan rad i u ovom sluaju, koriste se dve rei datoteke 2 (Status) i
to na S:13 i S:14 koje predstavljaju 32-bitni matematiki registar. Naime, prilikom
izvoenja mnoenja, rezultat se dobija u matematikom registru i to tako to re na
adresi S:13 sadri prvih (manje znaajnih) 16 bitova rezultata, dok S:14 sadri
preostalih (vie znaajnih) 16 bitova rezultata. Pri tome, se donji, manje znaajni, deo
rezultata istovremeno smeta i na adresu koja je u naredbi navedana kao
promenljiva u kojoj se uva rezultat. Korisnik, tako ima mogunost da proverom
overflow bita V ustanovi da li je prilikom mnoenja dobijen rezultat koji vei od 15
bitova, i ako jeste moe nekom programskom naredbom obezbediti da se i sadraj
rei S:14 upamti na nekoj adresi. Naravno, u tom sluaju korisnik treba da obezbedi i
da se resetuje overflow trap bit, jer e u protivnom dobiti poruku o greci.

Sl. 4 Realizacija operacije mnoenja


Kod deljenja celih brojeva neminovno dolazi do situacije u kojoj se pojavljuje
ostatak deljenja. Naredba celobrojnog deljenja izvodi se tako to se rezultat zaokrui
i smeta u adresu koja je u naredbi navedena kao promenljiva u kojoj se uva
rezultat. Pri tome se nezaokrueni, ceo deo rezultata pamti u rei S:14, dok se
5/plc_math

ostatak pamti u rei S:13.

Sl. 5 Realizacija operacije deljenja


Sadraj matematikog registra ostaje neizmenjen sve do izvoenja sledee
programske naredbe koja ga koristi.
32-bitno sabiranje i oduzimanje bit S:2/14
Procesori SLC 5/02 (poev od serije C) i SLC 5/03 i SLC5/04 omoguavaju da
se realizuje sabiranje i oduzimanje 32-bitnih podataka. Ovo se ostvaruje
postavljanjem bita S:2/14 na vrednost 1.
Kao to je ve reeno, ukoliko kod celobrojnih operacija doe do prekoraenja
opsega, onda se kao rezultat dobijaju donja ili gornja granica opsega. Meutim,
ukoliko je bit S:2/14 postavljen na 1, onda e detekcija prekoraenja (postavljanje
overflow bita na 1) prouzrokovati samo da se prvih, najmanje znaajnih 16 bitova
rezultata, bez ikakvog zaokruivanja, prenese na adresu koja je u naredbi oznaena
kao promenljiva za uvanje rezultata. Na taj nain je korisniku ostavljena mogunost,
da po dve susedne rei koristi kao jednu jedinstvenu vrednost (jedan podatak) i da
odgovarajuim progranskim naredbama obrauje deo po deo podatka. Korisnik,
takoe mora da vodi rauna da pre isteka sken ciklusa resetuje overflow bit.
O ovoj tehnici bie kasnije vie rei kada se bude ilustrovalo korienje
matematikih naredbi.

Pregled matematikih naredbi


U odnosu na broj operanada i tip operacije koja se izvrava, matematike
naredbe se mogu podeliti u nekoliko grupa.

Aritmetike i logike binarne operacije


Opti oblik naredbe za aritmetike i logike binarne operacije dat je na Sl. 6,
dok je u tabeli T. 2 dat prikaz svih naredbi iz ove grupe.

Sl. 6 Opti oblik naredbe za aritmetike i logike binarne operacije


6/plc_math

Postavlja indikatorske bitove


Kod Ime naredbe Operacija
C bit V bit (ako je S:2/14=0) Z bit S bit
ADD Add (sabiranje) d=a+b uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
SUB Subtract (oduzimanje) d=ab uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
MUL Multiply (mnoenje) d = ab uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
1 za d izvan opsega, i
DIV Divide (deljenje) d = a/b uvek 0 1 za d=0 1 za d<0
deljenje sa 0
y
XPY X to the power of Y d=x uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
d = ab
AND And (logiko i) uvek 0 uvek 0 1 za d=0 1 za d<0
bit po bit
d = ab
OR Or (logiko ili) uvek 0 uvek 0 1 za d=0 1 za d<0
bit po bit
Exclusive OR d = ab
XOR uvek 0 uvek 0 1 za d=0 1 za d<0
(ekskluzivno ili) bit po bit

T. 2 - Pregled naredbi za aritmetike i logike binarne operacije

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.

Sl. 7 Algoritam sabiranja


Prilikom realizacije naredbe za sabiranje mogua su tri sluaja:
zbir prvog operanda i donjih 16 bitova drugog operanda ima manje od 17 bitova
operacija je zavrena (B3:3 se ne menja)
zbir prvog operanda i donjih 16 bitova drugog operanda ima vie od 16 bitova
ovo se identifikuje uz pomo C bita i taj bit prenosa treba dodati rei koja sadri
gornjih 16 bitova rezultata
prvi operand je negativan broj taj broj smeten u tehnici drugog komplementa
primenjenoj na 16 bitova, a u dvostrukoj tanosti drugi komplement treba da se
7/plc_math

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.

Sl. 8 Realizacija sabiranja sa dvostrukom tanou

Leder program za sabiranje sa dvostrukom tanou dat je na Sl. 8. Da bi se


lake razumela logika programa, svi mogui sluajevi i ilustrovani su na primeru
etvorobitnih brojeva (Sl. 9)
8/plc_math

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

Sl. 9 Sabiranje sa dvostrukom tanou (etvorobitni brojevi)

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.

Sl. 10 Opti oblik naredbe za unarne operacije

Postavlja indikatorske bitove


Kod Ime naredbe Operacija V bit (ako je
C bit Z bit S bit
S:2/14=0)
0 za 1 za d izvan opsega
NEG Negate (negacija) d = -a d=0 ili (samo ako je a=- 1 za d=0 1 za d<0
V=1 32768)
d=a
NOT Not (komplement) uvek 0 uvek 0 1 za d=0 1 za d<0
bit po bit
Double divide
d = reg/a
(deljenje 32-bitnog
DDV (rezultat uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
celog broja iz mat.
zaokruen)
reg. sa 16-bitnim
9/plc_math

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)

T. 3 - Pregled naredbi za unarne operacije

Primedba: Prilikom izraunavanja funkcija proverava se da li se operand


nalazi u oblasti definisanosti funkcije. Ukoliko to nije sluaj, izraunavanje se ne vri, i
V-bit se postavlja na 1.

Sloene matematike naredbe


CPT Compute (izraunavanje aritmetikog izraza)
CPT
Dest - rezultat
uslov COMPUTE expression - aritmetiki izraz koji ima najvie 255
Dest fn:w zbnakova rasporeenih u linijama. Svaka linija moe
da ima najvie 28 znbkova
expression fn:w - adresa promenljive ili simboliko ime

Pri formiranju izraza koriste se promenljive, konstante i sledei operatori:


ili NEG (unarni minus), +, ,* , | ili DIV, ** ili XPY, SQR, ABS, SIN, COS, TAN, ASN,
ACS, ATN, LN, LOG, NOT, AND, OR, XOR, TOD, FRD, DEG, RAD. (Znaenje nekih
od navedenih simbola bie objanjeno kasnije).
Prilikom izvoenja naredbe, odnosno izraunavanja izraza postavljaju se
sledei bitovi:
C bit, S bit i Z bit se postavljaju u zavisnosti od rezultata poslednje
operacije u izrazu.
V bit se postavlja svaki put kada pri izraunavanju izraza doe do
prekoraenja vrednosti.

SCP Scale with parameters (parametarsko skaliranje podatka)


10/plc_math

Ovom naredbom se ostvaruje linearno preslikavanje ulazne promenljive,


prema relaciji
scaled_max . - scaled_min .
scaled_out put = (input - input_min. ) + scaled_min .
input_max. - input_min.

y - y1 Potrebno je da se istakne da se u ovoj


y= 2 (x - x 1 ) + y 1 naredbi pojmovi najmanja i najvea vrednost
x 2 - x1
ulaza i rezultata zapravo koriste samo za
odreivanje dve take kroz koje se provlai
prava linija koja odreuje preslikavanje (Sl.
11). To znai da vrednost ulazne promenljive
ne mora biti unutar intervala odreenog sa
(input_min., input_max.), niti da vrednost
input_min. mora biti manja od input_max.
Prilikom izvoenja naredbe, odnosno
Sl. 11 Grafika ilustracija skaliranja (SCP) izraunavanja izraza postavljaju se sledei
bitovi:
C bit se uvek resetuje na nulu.
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 rezultat jednak nuli.
S bit se postavlja na 1 ako je rezultat negativan.

SCL - Scale data (skaliranje podatka)

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

RMP Ramp instruction (generisanje signala)


RMP
RMP Control - poetna adresa upravljakog bloka sa
uslov
Control fn:w podacima koji odreuju signal
Dest - rezultat
Dest fn:w fn:w - adresa promenljive ili simboliko ime

Ovom naredbom generie se vremenski


signal odreenog oblika. Vrednost koja se
izraunava pri skeniranju ranga (ako je uslov
istinit) jednaka je amplitudi signala u tom
vremenskom trenutku. Naredba omoguava da
se generiu etiri razliite funkcije:


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

Sl. 13 Znaenje pojedinih rei i bitova u upravljakom bloku

Ova naredba je izuzetno pogodna za generisinje upravljakog signala kod


runog voenja procesa.

4. Naredbe za manipulaciju sa numerikim podacima


Naredbe za manipulaciju sa podacima slue za definisanje vrednosti
promenljivih ili za odreene izmene u formi prezentacije podataka. U tom smislu one
se ne razlikuju bitno od matematikih naredbi. Naime, nema nikakve sumnje da se
matematikim naredbama takoe vri odreena manipulacija sa podacima.
Izdvajanjem ovih naredbi u posebnu grupu se zapravo eli naglasiti specifinost
oblika same naredbe i obrade podataka koja se njima vri.
Naredbe za postavljanje vrednosti
CLR Clear (postavi na nulu)

Bitovi C, V i S se postavljaju na 0, dok se bit Z postavlja na 1.

MOV Move (postavljanje vrednosti promenljive)


13/plc_math

MVM Masked move (postavljanje vrednosti pojedinih bitova)


MVM
MASKED MOVE Source - prvi operand (adresa promenljive)
uslov Mask - maska (promenljive ili konstanta)
Source fn:w
Mask fn:w Dest - rezultat (promenljive)
Dest fn:w fn:w - adresa promenljive ili simboliko ime

Maskiranim bitovima, koji se ne prenose u dest u maski odgovaraju vrednosti


0, dok nemaskiranim bitovima odgovaraju vrednosti 1 (Sl. 14).

Sl. 14 Izvravanje maskirane move naredbe


U obe naredbe (MOV i MVM) bitovi C i V se postavljaju na 0. Bitovi Z i S se
postavljaju na 1 ukoliko je rezultat nula odnosno negativan.
Primer generisanje testerastog signala
U principu, generisanje signala se prekida kada vreme koje se meri od
poetka rada RMP naredbe dostigne vrednost koja odgovara zadanom vremenu
trajanja signala. To znai da ova naredba nee vie generisati signal ak i ako je
uslov u rangu istinit. Ukoliko se eli ponovno generisanje istog signala (dobijanje
testerastog signala) neophodno je da se, kada je RMP generisao ceo signal (DN=1)
ili kada je dolo do greke u specifikaciji parametara (ER=1), vreme resetuje na nulu,
odnosno da se sadraj druge rei odgovarajueg upravljakog bloka postavi na nulu.
Opisani postupak moe se realizovati pomou dva ranga u lestviastom programu
(Sl. 15).

Sl. 15 Generisanje testerastog signala


Pri formiranju programa bilo je neophodno i da se definiu vrednosti pojedinih
14/plc_math

y rei u upravljakom bloku koji je smeten od


poetne adrese N7:0. Odabrano je da se
yb=100
generie nagibni signal (kod 00, bitovi 0 i 1 u rei
N7:0) sa vremenskom bazom od 1 sekunde (kod
ya=0 1, bit 4 u rei N7:0). Otuda re nula u
t(sec) upravljakom bloku ima decimalnu vrednost 16.
ts
Trajanje signala je postavljeno na 100 sekundi
=100
Sl. 16 Generisani testerasti signal (N7:1). Poetno vreme je nula (N7:3), dok je
krajnje vreme 100 (N7:4). U skladu sa tim, rei u
upravljakom bloku imaju sledee vrednosti
N7:re 0 1 2 3 4 5 6
16 100 0 0 100

Naredbe za konverziju

Sl. 17 Opti oblik naredbi za konverziju


Postavlja indikatorske bitove
Kod Ime naredbe Operacija
C bit V bit Z bit S bit
d = (180/) a
Radians to degrees 1 za prekoraenje 1 za
DEG (pretvara radiane u uvek 0 1 za d<0
(radiani u stepene) opsega d=0
stepene)
d = (/180) a
Degrees to radians 1 za prekoraenje 1 za
RAD (pretvara stepene u uvek 0 1 za d<0
(stepenei u radiane) opsega d=0
radiane)
To BCD pretvara 16-bitni ceo broj u 1 za
TOD uvek 0 1 za d > 9999 1 za d<0
(u BCD kod) 4-oro cifreni BCD broj d=0
From BCD pretvara 4-oro cifreni BCD 1 ako a nije BCD 1 za
FRD uvek 0 uvek 0
(iz BCD koda) broj u 16-bitni ceo broj ili je d > 32767 d=0
dekodira prva 4 bita
Decode 4 to 1 of 16
DCD operanda u ceo broj iji ne menja bitove
(dekodiranje 4 16)
samo 1 bit ima vrednost 1
kodira operand (ceo broj) 1 ako operand
Encode 1 of 16 to 4 iji samo 1 bit ima vrednost nije ispravan 1 za
ENC uvek 0 uvek 0
(kodiranje 16 4) 1 u poslednja 4 bita (ne postavlja d=0
rezultata S:5/0)
T. 4 Pregled naredbi za konverziju podataka
Po svojoj funkciji ove naredbe vre razliite oblike konverzije poev od fizikih
veliina (konverzija ugaonih stepeni u radijane i obratno), preko naina prezentacija
podatka (konverzija binarne prezentaciju u binarno kodiranu decimalnu prezentaciju),
do kodiranja i dekodiranja binarnih podataka. Zajedniko za sve naredbe je njihov
opti oblik (Sl. 17). Pregled svih naredbi iz ove grupe dat je u tabeli T. 4.

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

decimalni brojevi koji


imaju vie od 4 cifre
(najvei ceo broj je
32768). U tom sluaju u
naredbi TOD treba kao
adresa rezultata dest da
se stavi matematiki
registar S:13, S:14.
Prilikom izvravanja
naredbe dobijeni BCD
kod bie smeten u rei
Sl. 18 Ilustracija BCD koda S:13 i u prva etiri bita
rei S:14. Potrebno je da
se istakne da e se tom prilikom V- bit postaviti na vrednost 1.
Kod kontrolera SLC 5/01 dest u BCD naredbi, odnosno source u FRD naredbi
mora biti matematiki registar, dok kod ostalih kontrolera to moe biti adresa rei bilo
koje datoteke. Po prirodi konverzije, source u BCD naredbi, odnosno dest u FRD
naredbi treba da bude celobrojna promenljiva.
Kod kontrolera SLC 5/01 dest u BCD naredbi, odnosno source u FRD naredbi
mora biti matematiki registar, dok kod ostalih kontrolera to moe biti adresa rei bilo
koje datoteke. Po prirodi konverzije, source u BCD naredbi, odnosno dest u FRD
naredbi treba da bude celobrojna promenljiva.
Primer konverzija iz BCD koda
Korienje FRD naredbe pretpostavlja da svaki bajt operanda pretstavlja BCD
kodiranu cifru. Meutim pri radu mernih ureaja koji daju BCD kod moe se dogoditi
da u toku promene veliine koja se meri izlaz ureaja ima podatak koji ne pretstavlja
BCD cifru. Ako se FRD naredba izvodi ba u tom trenutku postavie se V bit. Da bi
se to izbeglo, pri korienju ove naredbe vri se filtracija mernog podatka i to tako da
se porede dve uzastopne vrednosti izmerene veliine. Ukoliko su one iste, to znai
da nema nagle promene podatka, pa se moe smatrati da su svi bajtovi BCD
kodirane cifre. Ukoliko se oni, meutim razlikuju, osnovano je pretpostaviti da neki
bajt ne sadri BCD cifru, pa se u skladu sa time konverzija ne vri.

Sl. 19 Konverzija iz BCD koda


Opisani postupak ilustrovan je na primeru uitavanja podatka sa BCD meraa
iji se signal dovodi na re 0 u slotu 1 (adersa I:1.0, simbolicko ime bcd_merac). Ovaj
16/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.

Sl. 20 Formiranje BCD izlaznih signala

Dekodiranje 4 16 (DCD) je postupak u kome se etvorobitni numeriki podatak


koji moe imati vrednost u opsegu od 0 do 15, pretvara (dekodira) u 16-bitni
17/plc_math

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.

Kodiranje 16 4 (ENC) je postupak u kome se 16 bitni podatak iji samo jedan


bit ima vrednost 1, pretvara (kodira) u etvorobitni podatak i to tako to se redni broj
bita ija je vrednost 1, a koji se kree u opsegu od 0 do 15, zapisuje kao
etvorocifreni binarni broj (Sl. 21). Ukoliko je u promenljivoj source vie od jednog
bita postavljeno na 1, kodiranje e se izvriti prema bitu koji ima najmanji redni broj
od svih bitova koji imaju vrednost 1. U tom sluaju i V bit e biti postavljen na 1, ali
matematiki bit prekoraenja (S:5/0) nee dobiti vrednost 1.
Ova naredba je pogodna kada se eli multipleksiranje podataka kod ureaja
kao to su viepoloajni prekida, tastatura i sl.

Sl. 21 Ilustracija DCD i ENC naredbe

Naredba za premetanje bajtova


SWP Swap (zamena bajtova)

Ovom naredbom se zamenjuju vrednosti prvog i drugog bajta u rei. Adresa


operanda (source) mora biti indeksna adresa, dok se broj rei kojima se zamenjuju
bajtovi (length) zadaje kao celobrojna programska konstanta. Pri tome broj rei ne
moe biti vei od duine elementa. U principu, operandi mogu biti smeteni u bilo
kojoj datoteci, ali se
najee ova naredba
koristi za manipulaciju
nizom podataka (datoteka
tipa STRING). Naravno, i
ovde je duina ograniena
veliinom elementa.
Sl. 22 Ilustracija SWAP naredbe na duini od jedne rei Ako je formirana
datoteka tipa STRING,
duine elemenata od 6 rei, i ako se predpostavi da je sadraj prvog elementa, takav
da bajtovi sadre ASCII kodove prvih 12 slova abecede:
18/plc_math

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

5. Primeri korienja naredbi za matematike operacije


Izraunavanje rastojanja i nagiba
Zadatak
Pravougaone koordinate (x,y) koje
odreuju poloaj nekog objekta smetene su u
memoriji PLC-a u datoteci realnih podataka F8,
na adresama F8:0 i F8:1. Ovim lokacijama
pridruena su simbolika imena x i y. Ukoliko su
obe koordinate u opsegu od 700m do 1400m na
osnovu njih se izraunava rastojanje do objekta
= x 2 + y2
( = x 2 + y 2 ), kao i ugao koji radijus zaklapa
y
= arctg
x
sa apscisnom osom ( = arctg( y / x ) (Sl. 23).
Dobijeni podaci se smetaju u memoriju
Sl. 23 Grafika ilustracija potrebnih PLC-a na adrese F8:2 i F8:3, ija su simbolika
izraunavanja imena ro i alfa. Ukoliko je bilo koja od
koordinata izvan opsega pali se kontrolna sijalica, koja je vezana u elektrino kolo
preko nultog pina izlaznog dela digitalnog U/I modula u slotu 1 (adresa O:1/0,
simboliko ime sijalica).
Potrebno je formirati program za PLC koji e realizovati zahtevanu operaciju.
Reenje

Na Sl. 24 i Sl. 25prikazana su dva mogua reenja ovog problema, od kojih


prvo koristi elementarne naredbe za poreenje i matematike naredbe, a drugo
sloenije naredbe. U prvom reenju koriena su dva mogua naina ispitivanja da li
su koordinate y datim granicama. Za koordinatu x se proverava da li je izvan opsega,
dok se za koordinatu y proverava da li je unutar opsega. Samo se po sebi razume da
su oba naina provere potpuno ekvivalentna. Jedina je razlika u tome to indikatorski
bitovi imaju suprotna znaenja, o emu mora da se vodi rauna kada se oni koriste u
ostalim rangovima. U drugom reenju koristi se LIM naredba za proveru granica.
19/plc_math

Sl. 24 Leder program za izraunavanje rastojanja i ugla koji koristi elementarne naredbe
20/plc_math

Sl. 25 Leder program za izraunavanje rastojanja i ugla

Transformacije ulaznih analognih signala


Zadatak
Posmatra se jedan radarski sistem za praenje objekata koji odreuje
pravougaone koordinate objekta u opsegu od 250m do 1700m i generie strujne
signale u opsegu od 4mA do 20 mA. Signali sa radara dovode se u PLC preko
ulaznog dela analognog U/I modula koji se nalazi u slotu 2. Pri tome su signali vezani
za nulti i prvi ulazni kanal tako da se nakon A/D konverzije celobrojna vrednost koja
odgovara koordinati x smeta na adresu I:2.0, a koordinati y na adresu i I:2.1.
Potrebno je formirati program za PLC koji e konvertovane vrednosti pretvoriti
u fizike veliine i smestiti u memoriju PLC-a u datoteku realnih podataka F8, na
adrese F8:0 i F8:1. Ovim lokacijama pridruena su simbolika imena x i y. Pri tome,
sistem se puta u rad pomou start/stop prekidaa, koji je vezan za nulti pin ulaznog
dela digitalnog U/I modula u slotu 1 (adresa I:1.0/0, simboliko ime start). Prekida je
normalno otvoren, tako da sistem radi sve dok je prekida pritisnut.
21/plc_math

Transformacije analognih ulaznih signala


Pre nego to se pristupi reavanju postavljenog zadatka razmotriemo u optem
sluaju problem konverzije analognih ulaznih signala. Kao to je ve istaknuto
analogni signali koji dolaze sa mernih instrumenata su standardizovani elektrini
signali koji reprezentuju neke fizike veliine. Ovi signali se prilikom A/D konverzije
pretvaraju u celobrojne vrednosti, koje se zatim mogu dalje pretvoriti u odgovarajue
fizike veliine. Drugim reima signal prolazi kroz niz transformacija (Sl. 26) koje sve
zavise od granica signala u svakoj fazi transformacije, te se mogu definisati na
potpuno opti nain.

Sl. 26 Transformacije analognih ulaznih signala

Transformacija fizike veliine v u elektrini signal e ovu transformaciju obavlja


sam merni instrument koji meri neku fiziku veliinu u opsegu (vmin, vmax) i proizvodi
signal e (strujni ili naponski) u opsegu (emin, emax). Funkcionalna zavisnost izmeu
veliina v i e zavisi od tipa instrumenta i odreena je nekom poznatom funkcijom
e=f(v). Najee je ova relacija linearna tako da je
e e min
e = max ( v v min ) + e min
v max v min
Transformacija elektrinog signala e u celobrojnu vrednost c ovu transformaciju
obavlja A/D konvertor koji signale koji su u opsegu (umin, umax) pretvara u celobrojne
vrednosti u opsegu (cmin, cmax). Veza izmeu ovih veliina je linearna i odreena je
relacijom
c c min
c = max (e u min ) + c min ,
u max umin
Kao to je ve ranije istaknuto, za standardizovane signale granice celobrojnih
vrednosti dobijaju se direktno iz tablica konverzije za dati tip analognog modula.
Zapazimo da opseg mernog signala (emin, emax) ne mora biti jednak opsegu
signala sa kojim radi A/D konvertor (umin, umax), ali je izvesno da mora biti sadran u
njemu. To nadalje znai da moraju biti zadovoljene sledee relacije
umin min < emax umax
Transformacija celobrojne vrednosti c u fiziku veliinu v ovu transformaciju, po
pravilu, korisnik obavlja sam. U principu odgovarajua relacija zavisi od samog
instrumenta i dobija se preko inverzne funkcije e = f ( v ) v = f 1(e) , pri emu se
veliina e dobija inverznom transformacijom iz celobrojne veliine c
22/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

Sl. 27 Leder program kojim se transformiu analogni signali u fizike veliine

Transformacija izlaznih analognih signala


Zadatak
Podaci o rastojanju i nagibnom uglu nekog objekta nalaze se u memoriji PLC-
a na adresama F8:2 (simboliko ime ro) i F8:3 (simboliko ime alfa). Poznato je da su
ovi podaci izraunati na osnovu izmerenih pravougaonih koordinata objekta koje se
kreu u opsegu od 700m do 1400m. Ovi podaci se koriste kao referentni signali za
jedan sistem za protiv-gradnu odbranu i potrebno je da se oni prenesu na ulaz tog
sistema kao naponski signali u opsegu od 2V do 8V. Ulazi protiv-gradnog sistema
vezani su preko izlaznog dela analognog U/I modula koji se nalazi u slotu 3. Ulaz koji
prima informaciju o rastojanju vezan je preko nultog kanala (adresa O3:0, simboliko
ime ro_out). Informacija o uglu dolazi preko prvog kanala (adresa O3:1, simboliko
ime alfa _out). Pri tome je ureaj za upravljanje uglom podeen tako da prima
24/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).

Sl. 28 Transformacije analognih izlaznih signala

Transformacija fizike veliine v u elektrinu veliinu e ovu transformaciju


obavlja sam korisnik
U sutini analogni izlazni signal je najee neka fizika veliina koja
pretstavlja upravljaki signal u nekom sistemu. Ova veliina je, po pravilu, linearno
srazmerna nekom elektrinom (strujnom ili naponskom) signalu koji pretstavlja
pobudni signal za odgovarajui izvrni organ. Pretpostavljajui da se fiziki signal
kree u opsegu (vmin, vmax), a da je njemu odgovarajui elektrini signal u opsegu
(emin, emax), fizika veliina v se transformie u elektrinu veliinu e prema relaciji
e e min
e = max ( v v min ) + e min
v max v min
Naglasimo i da se analogni izlazi esto definiu kao procenat od maksimalne
aktivnosti izvrnog organa tako da 0% odgovara veliini emin, a 100% odgovara
veliini emax. U tom sluaju transformacija se izvodi prema relaciji
e max e min
e= ( v(%) v min (%)) + e min
100 v min (%)
Transformacija elektrine veliine e u celobrojnu vrednost c ovu transformaciju
obavlja korisnik
Da bi analogni izlazni modul mogao da generie zahtevani elektrini signal on
mora dobiti odgovarajuu celobrojnu vrednost. Budui da se za celobrojne vrednosti
koje su u opsegu (cmin, cmax) generiu elektrini signali u opsegu (umin, umax)
oigledno je da e signalu e odgovarati celobrojna vrednost koja se dobija prema
relaciji
c c min
c = max (e u min ) + c min
u max umin
Konano, ukoliko su granice signala e i u jednake, odnosno ako je
umin = min < emax = umax
tada se celobrojna vrednost moe dobiti direktno iz relacije
25/plc_math

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

Sl. 30 Leder program za formiranje analognih izlaznih signala


1/plc_block_data

V. Naredbe za rad sa datotekama podataka


1. Opte napomene
Naredbe za rad sa datotekama namenjane su manipulaciji sa nizom podataka
koji su smeteni u sukcesivnim elementima neke datoteke. U principu poetak niza
ne mora biti prvi element datoteke, ali niz mora poeti od nultog bita, nulte rei nekog
od elemenata u datoteci. Kraj niza podataka ne mora biti na kraju elementa, to znai
da se niz moe zavriti i u nekoj od rei elementa, ali se u tom sluaju preostali bitovi
i/ili rei do kraja tog elementa ne mogu da koriste.
Za rad sa nizom podataka neophodno je da se definie bazna adresa od koje
niz poinje. Bazna adresa mora biti poetak jednog elementa datoteke, to znai da
je ona oblika #fn:e i da kao indeksna adresa, uz uslov da je sadraj indeksnog
registra S:24 jednak nuli, pokazuje na nulti bit, nulte rei tog elementa (#fn:e.0/0). U
zavisnosti od konkretne naredbe, sam niz podataka poinje ili od bazne adrese ili od
elementa ija je adresa za 1 vea od bazne adrese.
Pored bazne adrese, potrebno je da se specificira i duina niza, kojom se
definie broj podataka u nizu. U zavisnosti od vrste naredbe ovaj broj moe biti
izraen u bitovima, reima ili elementima. Pri tome se mora voditi rauna da svi
podaci koji su obuhvaeni zadanom duinom niza budu unutar datoteke koja je
navedena kao bazna adresa. Ukoliko se to ne potuje, programski sistem e
detektovati znaajnu greku.
U principu, ako se poznaju bazna adresa i duina niza mogue je odrediti i
adresu poslednjeg elementa u nizu. Izuzetak su jedino nizovi u datotekama tipa I i O,
kod kojih naredni elemenat ne mora imati redni broj koji je za 1 vei od prethodnog, i
kod kojih elementi ne moraju biti iste duine. Ukoliko se eli rad sa nizovima iz ovih
datoteka onda je neophodno da se pri definisanju duine posebno obrati panja na
raspored U/I modula u slotovima kontrolera.
Potrebno je da se istakne da kod ove vrste naredbi postoji jedna terminoloka
nepreciznost. Naime, esto se niz podataka sa kojima se u nekoj od naredbi operie
oznaava kao datoteka. U izvesnom smislu, taj naziv je ispravan jer nema nikakve
sumnje da niz podataka smeten u nekom povezanom podruju memorije
predstavlja datoteku. Meutim, kod kontrolera je pojam datoteke pre svega vezan za
podruje u koje se smetaju odreene vrste podataka i koje se identifikuje
odreenom adresom kojom se precizira tip datoteke i njen broj. Takva, osnovna
datoteka moe sada da sadri vie grupa podataka (datoteka) sa kojima se operie u
naredbama za rad sa datotekama podataka. Teorijski, ove grupe podataka mogu ak
i da se meusobno preklapaju, i ako je teko zamisliti aplikaciju u kojoj bi to imalo
smisla. Bitno je jedino da sve pojedinane grupe podataka (datoteke) ija je bazna
adresa definisana preko elemenata osnovne datoteke budu smetene unutar te iste
osnovne datoteke.
Sve naredbe iz ove grupe koriste pointer koji ukazuje na adresu pojedinog
podatka u grupi. Ako je naredba takva da se pri svakom izvravanju obrauje drugi
podatak iz niza, onda se vrednost pointera pamti u upravljakoj datoteci (tipa R), to
znai da se svakom nizu podataka pridruuje jedan elemenat te datoteke. Nad
jednim istim nizom podataka moe da se izvrava vie razliitih tipova naredbi koje
se nalaze u ratliitim rangovima, ili se isti tip naredbi vezan za isti niz podataka, moe
nai u vie razliitih rangova u programu. Od korisnika se, pri tome, oekuje da ima
na umu da se prilikom izvravanja svake od ovih naredbi menja vrednost pointera i
da vodi rauna da jednom od tih naredbi ne pokvari eljeni efekat druge naredbe.
2/plc_block_data

Sve naredbe iz ove grupe koriste indeksni registar S:24, to znai da je posle
njihovog izvravanja, sadraj tog registra promenjen.

2. Naredbe za kreiranje datoteke


COP Copy file (kopiranje datoteke)
FLL Fil file (punjenje datoteke)

Ove naredbe se izvravaju ukoliko je uslov istinit i to tako to se elementima


datoteke dest pridruuju odreene vrednosti. Pri tome se pri izvravanju COP
naredbe ove vrednosti uzimaju iz neke druge datoteke, oznaene kao source. Podaci
se prenose u rastuem nizu, to znai da se vrednost prvog podatka koji se nalazi na
baznoj adresi u datoteci source prenosi na prvo mesto (na baznu adresu) u datoteci
dest i tako dalje. Ukupan broj podataka koji se prenosi jednak je zadanoj duini
length. Meutim, prilikom izvravanja FLL naredbe jedan isti podatak, koji se nalazi
na adresi source se prenosi u sve elemente odredine datoteke i to poev od bazne
adrese #fn:e zakljuno sa adresom #fn:(e+length-1). Naravno da se pri tome
podrazumeva da je izvorni podatak istog tipa (odnosno zauzima isti broj rei) kao i
element odredine datoteke. Budui da su obe ove naredbe naredbe akcije, one se
izvravaju svaki put kada je uslov istinit.
Ukoliko su elementi odredine datoteke rei, onda je maksimalna dozvoljena
duina length 128. Kada se radi sa datotekama iji je element dugaak 2 rei,
maksimalna dozvoljena duina je lengt h 64, dok je za datoteke duine tri rei,
maksimalna duina length 42. Kod datoteka tipa String, duina ne moe biti vea
od duine jednog elementa (42 rei).
U sluaju kada su odredine datoteke tipa T,C i R, treba voditi rauna ta e
se staviti u prvu re elementa gde se nalaze indikatorski bitovi. Naime postavljanje
nekih od ovih bitova na 1 ili na 0, moe prouzrokovati krajnje nepredvidive efekte
prilikom izvravanja naredbi za koje su ti elementi vezani.
Potrebno je da se istakne da se pomou COP naredbe moe ostvariti i
translacija itavog niza podataka unazad za odreeni broj mesta. Ovo se ostvaruje
tako to se obe adrese veu za istu datoteku, s tim to se kao source adresa definie
adresa koja je vea od bazne adrese odredita dest za iznos koji odgovara broju
mesta za koji se vri translacija. Ukoliko se eli translacija unapred (u smislu rastuih
adresa) onda je to mogue da se ostvari samo ako je razlika izmeu odredine i
izvornne adrese vea od duine niza podataka. U protivnom, ako taj uslov nije
ispunjen, doi e do preklapanja podataka i deo niza podataka e biti izgubljen.
Nakon izvoenja ovih naredbi indeks registar S:24 se postavlja na 0.
3/plc_block_data

3. Naredbe za translaciju bitova


BSL Bit shift left (translacija bitova u levo)
BSR Bit shift right (translacija bitova u desno)

Naredbe za translaciju bitova su naredbe akcije. Meutim, one se izvode


samo kada se uslov menja sa neistinit na istinit. Prilikom izvravanja naredbe niz od
length bitova koji je smeten u datoteci fn, poev od nultog bita u elementu e, se
translatorno pomera za jedno mesto u levo (BSL) odnosno u desno (BSR), pri emu
se na upranjeno mesto smeta bit ija je adresa fn:w/b dok se prvi (BSR), odnosno
poslednji (BSL) bit niza prebacuje u indikatorski bit UL (Sl. 1). Posle izvoenja ove
naredbe indeksni registar S:24 se postavlja na nulu.
Potrebno je da se istakne da kod svih datoteka, izuzev datoteke tipa String,
duina niza moe da bude vea od duine elementa. Drugim reima, niz moe da se
protee preko vie elemenata, ali ne sme da prekorai granicu datoteke. Ukoliko se
to dogodi, ER bit se postavlja na jedan i na kraju ciklusa se indicira da je dolo do
znaajne greke. Bitovi koji pripadaju jednom elementu, ali ne ine sastavni deo niza
(ostatak od kraja niza do kraja elementa) ne mogu da se koriste.

Sl. 1 Realizacija naredbi za pomeranje bitova

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.

Sl. 2 - Element upravljake datoteke za BSL i BSR naredbu

Bitovi stanja u elementu datoteke R menjaju se na sledei nain:


EN Enable bit se postavlja na 1 kada uslov prelazi sa neistinit na istinit. Postavljanje
ovog bita prouzrokuje da se izvri zahtevano pomeranje niza bitova u levo ili u desno
za jedno mesto. Pri svakom sledeem prolazu kroz ovaj rang, sve dok je uslov istinit,
EN bitr zadrava vrednost 1, ali se pomeranje bitova ne vri. Kada uslov postane
neistinit, EN bit se resetuje na nulu.
DN Done bit se postavlja na 1 kada se niz bitova pomeri za jedno mesto, kada uslov
postrane neistinit vrednost ovog bita se resetuje na nulu.
ER Error bit se postavlja na 1 ukoliko se pri izvravanju naredbe detektuje neka
nepravilnost (duina je negativan broj ili premauje veliinu datoteke) i ako se ne
restuje pre kraja sken ciklusa, javlja se znaajna greka. Kada uslov postrane
neistinit vrednost ovog bita se resetuje na nulu;
UL Unload bit posle pomeranja sadri poslednji bit poetnog niza, kod pomeranja u
levo, odnosno prvi bit kod pomeranja u desno.
S obzirom na nain na koji se izvrava ova naredba, oigledno je da se
rotacija niza moe ostvariti tako to e se kao bit address stvaiti ili adresa UL-bita, ili
adresa prvog (BSR) odnosno poslednjeg (BSL) bita u nizu.
Ukoliko se eli da se u okviru jednog sken ciklusa izvri pomeranje za vie
mesta, to se moe ostvariti pomou programskog ciklusa, koji e omoguiti da se ista
naredba (pomeranje za jedno mesto) izvri vie puta. O nainu formiranja cilklusa
bie kasnije vie rei.

4. Naredbe za sekevencijalnu obradu podataka


Jedan od izuzetno estih zadataka pri upravljanju procesima je sekvencijalno
upravljanje. Ovim upravljanjem se izvrnim organima na procesu zadaje niz naredbi
5/plc_block_data

binarnog tipa (ukljui/iskljui, napred/nazad, kreni/stani i sl.) koje se smenjuju u


vremenu, pri emu svaka aktivnost traje odreeni, unapred definisani interval
vremena, ili dok se ne detektuje nastanak nekog dogaaja. Bitno obeleje ovog
naina upravljanja je da je sekvenca unapred potpuno odreena i da se niz aktivnosti
moe definisati kao sukcesivan niz binarno kodiranih rei, kod kojih se svaki bit
odnosi na pojedini izvrni organ, koji je vezan za kontroler preko odgovarajueg
digitalnog izlaznog modula. Kako se proces odvija, tako se na izlazni modul prenosi
re po re iz upravljake sekvence.
Budui da prelazak sa jedne aktivnosti na drugu moe da bude uslovljen
stanjem u pojedinim delovima procesa, to znai da je neophodno da se, pod
odreenim uslovima, oitavaju stanja indikatora na procesu i porede sa unapred
definisanim stanjima. U zavisnosti od rezultata poreenja, odluuje se da li je dolo
vreme za sledeu aktivnost. Kada je odgovor potvrdan, onda je izvesno da proces
ulazi u sledeu fazu, te da se nadalje stanje mora porediti sa drugim nizom vrednosti
koji ukazuje na zavretak sledee faze. Dakle, i ovde je mogue da se svi parametri
koji uestvuju u poreenju, urede u jedan niz binarno kodiranih rei, i da se stanje
procesa, koje se uitava preko digitalnih ulaznih modula poredi sa odgovarajuom
rei iz niza.
Nema nikakve sumnje da bi se opisane operacije mogle izvesti
kombinovanjem naredbi za unoenje i iznoenje digitalnih podataka, naredbi za
poreenje i tehnike indirektnog ili indeksnog adresiranja. Meutim, poto je potreba
za ovim operacijama izuzetno izraena, predviene su dve posebne naredbe kojima
se one u celosti mogu realizovati. Obe naredbe su naredbe akcije

Naredbe za sekvencijalni rad sa datotekama


U okviru ovih naredbi bar jedan od operanada je datoteka u kojoj se nalazi niz
podataka. Pri tome se dozvoljava rad samo sa onim datotekama iji elementi su
duine jedne rei. Adrese pojedinih podataka odreuju se pomou bazne adrese koja
se definie u naredbi i pointera koji predstavlja upravljaki paramater, ija se
vrednost menja u toku ponovljenih izvravanja naredbe. Pri tome se adresa
operanda dobija kao zbir bazne adrese i vrednosti pointera. U naredbama se definie
poetna vrednost pointera kao i ukupna duina niza.
Ako neka aplikacija zahteva da se sekvencijalna obrada izvri nad podacima
koji su dui od 16 bitova, onda se ti podaci moraju podeliti na vie datoteka. Tada se
u svakom rangu na izlazu kao naredbe akcije mogu paralelno staviti vie istih naredbi
kojima se adresiraju sve definisane datoteke.
Svakoj datoteci koja se specificira u okviru neke sekvencijalne naredbe
pridruuje se po jedan elemenat upravljake datoteke R. U okviru ovog elementa
pamte se indikatorski bitovi, kao i vrednost pointera i duina same datoteke. O
formatu jednog elementa ove datoteke bie kasnije vie rei.
Prilikom izvravanja ovih naredbi menja se sadraj indeksnog registra. Nakon
zavretka naredbe, sadraj indeksnog registra jednak je vrednosti pointera.
Potrebno je da se naglasi da se ove naredbe ne izvode uvek na isti nain.
Naime, samo kada se uslov u rangu menja sa neistinit na istinit menja se vrednost
pointera i on ukazuje na drugi podatak. Meutim, ako uslov posle toga ostane i dalje
istinit, pointer ne menja vrednost ve se naredba izvrava sa podatkom koji je uzet
pri poslednjoj promeni pointera.
6/plc_block_data

SQL Sequencer Load (sekvencijalno punjenje datoteke)

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.

SQO Sequencer output (sekvencijalno upravljanje)

Sl. 3 - Ilustracija izvravanja SQO naredbe


Svaki put kada se uslov menja sa neistinit na instinit, ova naredba se izvrava
tako to se vrednost pointera (position) povea za 1 i uzme ona re iz datoteke file
(#fn:w) na koju pokazuje pointer. Ta re se filtrira kroz masku mask i rezultat filtracije
se prenosi u promenljivu oznaenu sa dest. Ako je kao dest navedena datoteka #fn:d
7/plc_block_data

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.

SQC Sequencer compare (sekvencijalno poreenje)

Sl. 4 - Ilustracija izvravanja SQC naredbe

Svaki put kada se uslov menja sa neistinit na instinit, SQC naredba se


izvrava tako to se vrednost pointera (position) povea za 1 i uzme ona re iz
datoteke #fn:w na koju pokazuje pointer. Ta re se poredi sa filtriranim podatkom koji
sadri promenljiva oznaena kao source i rezultat poreenja se upisuje u
odgovarajui indikatorski bit. Filtracija podatka vri se pomou maske mask i to tako
da u poreenju uestvuju samo oni bitovi kojima u maski odgovara vrednost bita 1
(nemaskirani bitovi). Ako je kao source navedena datoteka #fn:s onda e se podaci
koji uestvuju u poreenju uzimati iz one rei te datoteke na koju pokazuje pointer
(Sl. 4). 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.
Pri sledeim sken ciklusima, za svo vreme za koje uslov ostaje istinit, vrednost
pointera se ne menja, ve se isti, prethodno odreeni, podatak (source) uzima kao
podatak za poreenje.

Datoteka R Control
Naredbama za sekvenciranje pridruuju se indikatorski bitovi i upravljaki
8/plc_block_data

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 SQO i SQC naredbu ima
izgled kao na slici Sl. 5.

Sl. 5 - Elemenat upravljake datoteke za SQO i SQC naredbu

Bitovi stanja u elementu datoteke R menjaju se na sledei nain:


EN Enable bit se postavlja na 1 kada uslov prelazi sa neistinit na istinit.
Postavljanje ovog bita prouzrokuje da se izvri naredba i vrednost pointera povea
za 1. Pri svakom sledeem prolazu kroz ovaj rang, sve dok je uslov istinit, EN bit
ozadrava vrednost 1, ali se vrednost pointera ne menja, ve se naredba izvrava sa
istom vrednou pointera. Kada uslov postane neistinit, EN bit se resetuje na 0.
DN Done bit se postavlja na 1 kada vrednost pointera, posle niza izvoenja SQL,
SQO ili SQC naredbe, doe do kraja niza u zadanoj datoteci. Ovaj bit e biti
resetovan na 0 tek u onom sken ciklusu u kome uslov, poto je prethodno postao
neistinit, ponovo postaje istinit (kada se EN-bit ponovo postavi na 1).
ER Error bit se postavlja na 1 kada se u programu detektuje negativna vrednost
pointera, ili negativna ili nulta vrednost duine niza. Ako se ovaj bit ne resetuje pre
kraja sken ciklusa nastae znaajna greka.
FD Found bit se postavlja na 1 ako je rezultat poreenja u SQC naredbi istinit.
Drugim reima ovaj bit ukazuje na to da su nemaskirani bitovi podataka jednaki
odgovarajuim bitovima u datoteci referentnih vrednosti.

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

Vrednost pointera, oznaena kao position, pamti se u drugoj rei datoteke R.


Poetna vrednost pointera se definie pri specifikaciji naredbe. Vrednost pointera se
kree od 1 do len i ukazuje na rei u datoteci od fn:(w+1) do fn:(w+len+1). Kada
pointer stigne do poslednje rei u datoteci, postavlja se DN-bit na 1 i pri tome se u
prvom sledeem sken ciklusu u kome uslov ima prelaz sa neistinit na istinitinit (isiti
ciklus u kome se resetuje DN-bit) vrednost pointera automatski vraa na 1. Pri
definiciji poetne vrednosti pointera potrebno je obratiti panju na injenicu da se ona
povea za 1 pre prvog izvoenja naredbe.
Ako se kao poetna vrednost pointera definie 0, onda e pri izvoenju SQC
naredbe obrada poeti od rei u datoteci ija je adresa fn:(w+1). Meutim kod SQO
naredbe nain izvoenja operacije zavisi od istinitosti uslova u prvom sken ciklusu.
Ako je uslov istinit naredba se izvrava poev od nulte rei, ija je adresa fn:(w+0).
Meutim, ako je uslov neistinit, izvravanje naredbe se odlae sve dok uslov ne
postane istinit i tada se uzima prva re, ija je adresa w+1.
Konano, vano je da se istakne da se prilikom eventualne programske
promene duine i pozicije mora voditi rauna da se ne prekorai veliina definisanog
niza u datoteci.

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

5. Naredbe za formiranja steka


U raunarskoj terminologiji stek oznaava niz podataka koji se sekvencijalno
puni i prazni. Naime, stek se formira u nekom podruju memorije i to tako to se
definie poetna adresa steka i pointer steka se postavi na tu poetnu adresu. Svaki
put kada se podatak unese u stek, vrednost pointera poraste za 1, tako da on uvek
ukazuje na sledeu slobodnu lokaciju. U pogledu uzimanja podataka iz steka postoje
dva principa:
LIFO stek (Last in last out) je stek kod koga se podatak uzima sa vrha
steka, odnosno kod koga se kao prvo uzima podatak koji je poslednji smeten u
stek. Vrednost pointera se pri tome smanjuje za 1, ali se poloaj preostalih
podataka ne menja.
FIFO stek (First in first out) je stek kod koga se podatak uzima sa dna
steka, odnosno kao prvo uzima podataka koji je prvi stavljen na stek, pri emu se
svi preostali podaci transliraju za jedno mesto na dole prema dnu steka, dok se
memorijsko mesto koje je zauzimao podatak na vrhu steka postavlja na 0.
Istovremeno se i vrednost pointera smanjuje za 1.
S obzirom na izloeni princip formiranja steka, oigledno je da za svaki tip
steka moraju postojati odvojene naredbe. Pri tome se one javljaju u paru (za punjenje
i pranjenje steka). U okviru naredbe mora da se definie bazna adresa steka,
poetna vrednost pointer, kao i maksimalna duina steka. Svakom steku koji se
specificira u okviru neke naredbe se pridruuje po jedan elemenat upravljake
datoteke. U ovom elementu postavljaju se odreeni indikatorski bitovi, a takoe se
10/plc_block_data

pamti i vrednost pointera, kao i duina steka.


Nardbe za punjenje i pranjenje steka su naredbe akcije, ali se iztvode samo
onda kada se uslov menja sa neistinit na istinit.

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

Sl. 6 - Ilustracija izvravanja naredbi za punjenje steka LFL i FFL


I ako obe naredbe za punjenje steka rade na isti nain, one se mogu koristiti
samo za punjenje odgovarajueg tipa steka. Drugim reima ne moe se LFL
naredbom puniti FIFO stek i obratno. U principu, kao poetna pozicija pointera moe
da se zada bilo koja vrednost, ali je prirodno da ona bude nula, odnosno da se stek
puni od bazne adrese.
Prilikom izvoenja ovih naredbi menja se sadraj indeksnog registra S:24 i to
11/plc_block_data

tako to on dobija vrednost pointera pre otpoinjanja izvravanja naredbe.

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

pre pointer=5 pointer=4 pointer=3


izvoenja
UNLOAD LIFO
naredbe
u toku i posle pointer=4 pointer=3 pointer=2

prva LFU druga LFU treaLFU


naredba naredba naredba

Sl. 7 - Ilustracija izvravanja naredbe za pranjenja LIFO steka

Sl. 8 - Ilustracija izvravanja naredbe za pranjenja FIFO steka


12/plc_block_data

LFU LIFO unload (pranjenje LIFO steka)


FFU FIFO unload (pranjenje FIFO steka)

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.

Sl. 9 - Elemenat R datoteke za LFL, FFL, LFU i FFU naredbu


13/plc_block_data

Bitovi stanja u elementu datoteke R menjaju se na sledei nain:


EN Enable bit se postavlja na 1 kada uslov u rangu koji sadri FFL ili LFL naredbu
za punjenje steka, prelazi sa neistinit na istinit. Postavljanje ovog bita prouzrokuje da
se izvri naredba. Pri svakom sledeem prolazu kroz ovaj rang, sve dok je uslov
istinit, vrednost EN bita ostaje 1, ali se naredba ne izvrava. Kada uslov postane
neistinit, EN bit se resetuje na 0.
EU Enable bit se postavlja na 1 kada uslov u rangu koji sadri FFU ili LFU
naredbu za pranjenje steka, prelazi sa neistinit na istinit. Postavljanje ovog bita
prouzrokuje da se izvri naredba. Pri svakom sledeem prolazu kroz ovaj rang, sve
dok je uslov istinit, vrednost EU bita ostaje 1, ali se naredba ne izvrava. Kada uslov
postane neistinit, EU bit se resetuje na 0.
DN Done bit se postavlja na 1 kada vrednost pointera doe do vrha steka
(odnosno kada on ukazuje na prvu sledeu adresu iznad vrha steka). Ovaj bit indicira
da je stek pun i sve dotle dok je njegova vrednost 1, naredbe za punjenje steka se
nee izvravati, bez obzira na to to bi prema uslovu u rangu trebalo da se izvre.
Ovaj bit e biti resetovan na 0 tek nakon izvravanja naredbe za pranjednje steka,
ime u steku ostaje upranjeno jedno mesto.
EM Empty bit se postavlja na 1 kada vrednost pointera ukazuje na dno steka,
odnosno kada je stek prazan. Sve dotle dok je vrednost ovog bita 1, naredbe za
pranjenje steka se nee izvravati, bez obzira na to to bi prema uslovu u rangu
trebalo da se izvre.
1/plc_tok

Naredbe za upravljanje izvravanjem programa


1. Opte napomene
U principu kada PLC pone sa radom (ue u tzv Run mode) on zapoinje sken
ciklus koji se satoji iz ulaznog sken ciklusa, programskog sken ciklusa, izlaznog sken
ciklusa, komunikacionog ciklusa i odravanja. Pri tome se u okviru programskog sken
ciklusa obrauje rang po rang u redosledu u kome su oni napisani.
Razliite aplikacije mogu zahtevati da se redosled izvoenja leder programa, pod
odreenim uslovima, promeni. Isto tako moe biti potrebno da se program privremeno
prekine, da se pojedine aktivnosti suspenduju, da se stanja nekih veliina resetuju ili da
se usled nastanka nekih dogaaja preduzimaju i neke druge aktivnosti. Svi ovi efekti
mogu se ostavriti posebnim naredbama za upravljanje izvravanjem programa.

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

naredbi mogu koristiti istu labelu.


U principu skok se moe izvriti unapred ili unazad u odnosu na rang u kome se
nalazi JMP naredba. Ukoliko se skok unazad kombinuje sa brojaem ili nekim uslovom
moe se ostvariti programska petlja. Prilikom formiranja petlje treba voditi rauna da se
ukupno vreme skeniranja ne produi preko unapred definisane gornje granice trajanja
jednog programskog sken ciklusa. ukoliko se to dogodi procesor e prijaviti greku i
obustaviti rad.

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)

JSR Ova naredba je naredba akcije


JUMP TO SUBROUTINE (Sl. 3). Ukoliko je uslov istinit JSR
uslov
SBR file number naredba prouzrokuje prekid u
normalnom izvravanju leder
programa i ostvaruje skok na
podprogram ije je simboliko ime
(broj programske datoteke) naveden
Sl. 3 Simbol i poloaj naredbe za poziv potprograma kao adresa u JSR naredbi.
Izvravanje programa nastavlja se od
prvog ranga podprograma.
Formiranje i identifikacija podprograma
SBR Subroutine (podprogram)
SBR Potprogram je zasebna celina leder
programa koja se mora formirati u okviru posebne
SUBROUTINE
programske datoteke. Broj te datoteke (3 255)
predstavlja istovremeno i simboliko ime
potprograma. SBR naredba se koristi da bi se
naznailo da programska datoteka predstavlja
Sl. 4 Simbol i poloaj naredbe za
podprogram (Sl. 4). Ova naredba formalno pripada
identifikaciju potprograna kategoriji naredbi uslova, to znai da se postavlja
na levu stranu ranga. Pri tome ona se mora
definisati kao prva naredba, prvog ranga u programskoj datoteci u okviru koje se
definie potprogram. Budui da SBR naredba predstavlja identifikator podprograma njoj
se ne pridruuju nikakvi bitovi ije bi stanje odreivalo istinosnu vrednost naredbe. Pri
izvodjenju programa smatra se da je naredba uvek istinita.
U principu, u okviru podprograma izdvaja se jedna programska celina
(procedura) koja se ponavlja na vie mesta u programu, ime se, kao to je ve reeno,
tedi na potrebnom memorijskom prostoru. Pored toga, kod sloenijih aplikacija,
pogodno je da se pojedine logike celine izdvoje u podprograme, ime se znaajno
poveava preglednost programa. i olakava njegovo testiranje.
3/plc_tok

Pri korienju podprograma treba voditi rauna o injenici da e se svi bitovi


digitalnih izlaza kojima se upravlja u okviru podprograma menjati samo onda kada se
podprogram pozove.
Zavretak potprograma
RET return (povratak)
END End (kraj)
Poslednji rang svakog potrpograma, kao i glavnog programa, sadri samo jednu
naredbu akcije END naredbu. Pri tome, u delu za uslov nema nikakve naredbe, to
znai da se ovaj rang izvrava u svakom programskom sken ciklusu. Izvravanje END
naredbe u potprogramu ima za posledicu da se promeni vrednost pointera sledeeg
ranga i to tako da on ukazuje na prvi rang koji se nalazi neposredno iza JSR naredbe
kojom je ostvaren skok na ovaj potprogram.
RET U nekim aplikacijama potrebno je da
potrpogram ima vie razliitih zavretaka u
uslov RETURN zavisnosti od vrednosti pojedinih podataka.
U tu svrhu koristi se RET naredba (Sl. 5).
Ova naredba akcije izvrava se isto kao i
END naredba, to znai da prekida rad
potprograma i vraa izvravanje na prvi rang
Sl. 5 Simbol i poloaj naredbe za izlazak iz
potprograma
neposredno iza JSR naredbe. Jedina razlika
je u tome to se na levoj strani ranga koji
sadri RET naredbu mogu nai naredbe uslova. Ukoliko je uslov istinit izvoenjem RET
naredbe prekinue se rad potrpograma i pre njegovog fizikog kraja koji oznaava END
naredba.
Unutar jednog potprograma moe se nai vie RET naredbi.
Uaureni podprogrami
U principu jedan podprogram moe pozvati drugi podprogram koji poziva trei i
tako redom. Nain izvravanja tako uaurenih podprograma ilustrovan je na Sl. 6 .
Dozvoljeno je povezivanje do osam nivoa podprograma.

Sl. 6 Uaureni potprogrami


4/plc_tok

4. Promena toka sken ciklusa


Ova grupa naredbi koristi se u fazi testiranja programa ili za ubrzavanje sken
ciklusa u nekimsluajevima.
TND Temporary end
Ukoliko je uslov istinit (Sl. 7) ova naredba
prekida izvravanje programskog sken ciklusa. U tom
sluaju odmah zapoinje izlazni sken ciklus, posle
koga se nastavlja ciklus komunikacija i odravanja.
Sledei programski sken ciklus zapoinje od prve
programske naredbe.
Sl. 7 Simbol i poloaj naredbe za Samo sepo sebi trazume da se ova naredba
prekid programskog sken ciklusa najee koristi u fazi testiranja programa, kada se eli
ispitati ispravnost pojedinih programskih celina.
SUS Suspend naredba
Ukoliko je uslov istinit ova naredba (Sl.
8) prouzrokuje suspenziju rada procesora
(suspend idle mode PLCa) i ukidanje pobude
na svim izlaznim linijama. Istovremeno se ID
kod, koji se navodi u naredbi, upisuje u sedmu
re statusne datoteke (S:7), dok se broj
programske datoteke u kojoj se nalazi ova naredba upisuje u osmu re (S:8).
Sl. 8 Simbol poloaj naredbe za suspenziju
Naredba se koristi u fazi testiranja
programa i pronalaenja greaka. Ona se
stavlja u onim segmentima programa koje se
ele ispitati i kada procesor ue u stanje suspenzije ispituju su sve rei u statsnoj
doatoteci koje mogu dati informaciju o radu programa.
ID kod koji se navodi u naredbi slui za identifikaciju same nardbe. Naime,
budui da se u jednom programu moe nai vie ovakvih naredbi. One se meusobno
razlikuju po svom identifikacionom kodu i po broju programske datoteke u kojoj se
nalaze. Oitavanjem ova dva podatka iz statusne datoteke korisnik moe da identifikuje
deo programa koji se izvravao neposredno pre toga i da proveri ostale podatke iz
statusne datoteke.
MCR Master control reset
Par naredbi MCR i END MCR definie zonu unutar
MCR leder programa (Sl. 9) koja se moe izvravati na
uslov specifian nain. Ukoliko je uslov u MCR naredbi neistinit
onda se sve naredbe koje nalaze u MCR zoni izvravaju
regularno. To znai da se u svakom rangu ispituje uslov i
naredbe u MCR zoni u zavisnosti od vrednosti uslova izvrava odgovarajua
akcija. Meutim, ukoliko je uslov istinit u svim rangovima
END unutar zone se postavlja vrednost odgovarajuih bitova
MCR uslova, dok se nezavisno od ove vrednosti svi bitovi
akcije resetuju. Na taj nain se u izvesnoj meri smanjuje
trajanje programskog sken ciklusa.
Sl. 9 Simbol i poloaj MCR Smisao ove nardbe je da omogui kreiranje
naredbe programskih celina koej se po potrebi mogu aktivirati ili
inhibirati. Na ovaj nain se moe realizovati granjanje
programa na vie putanja. Tako, na primer, ukoliko se realizuje program koji upravlja
nekim procesom koji radi sa razliitim recepturama, svaka od receptura se moe
5/plc_tok

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.

5. Auriranje ulaznih i izlaznih podataka


Ve je istaknuto da se u toku programskog sken ciklusa ne obrauju direktno
ulazni podaci, ve vrednosti koje se u toku ulaznog sken ciklusa upisane u datoteku
ulaza. Na isti nain, rezultati obrade se ne prenose direktno na izlazne linije ve se
upisuju u datoteku izlaza iz koje e, u toku izlaznog sken ciklusa, biti prenete na izlazne
linije. To zapravo znai da postoji neko kanjenje izmeu oitavanja podataka i njihove
obrada, kao i izmeu definisanja izlaznih signala i njihovog prenoenja na izvrne
organe. U nekim aplikacijama, meutim, kanjenje nekih signala moe prouzrokovati
ozbiljnije poremeaje u efikasnosti upravljakog algoritma. Da bi se to izbeglo
omogueno je da se u toku samog programskog sken ciklusa zahteva oitavanje
trenutne vrednosti signala na nekoj od ulaznih linija, ili trenutno prenoenje izraunate
akcije na izlaznu liniju. Ovo se postie posebnim naredbamakojima se privremeno
prekida programski sken ciklus i izvrava deo ulaznog odnosno izlaznog sken ciklusa.
IIM Immediate input with mask
IOM Immediate output with mask

Sl. 10 Simbol i poloaj naredbe za trenutno auriranje ulaznih ili izlaznih linija

Ukolikoje uslov istinit, IIM naredba e prouzrokovati oitavanje (sken) svih


ulaznih linija koje se nalaze u modulu u datom slotu. Vrednosti bitova koji odgovaraju
bitovima koji su u masci postavljeni na 1 bie smeteno u sliku ulaza (ulaznu datotreku)
i koriena u svim sledeim sken naredbama.
Na isti nain, pri isitnitom uslovu IOM naredba e prouzrokovati da se vrednosti
bitova koji se nalaze u slici izlaza (izlaznoj datoteci), a koji odgovaraju bitovima koji su u
masci postavljeni na 1, trenutno prenesu na izlazne linije modula u datom slotu.
REF I/O refresh
Ukoliko je uslov istinit REF naredba prouzrokovae
prekid programskog sken ciklusa i obavljanje izlaznog
sken ciklusa, ciklusa komunikacije i odravanja, kao i
ulaznog sken ciklusa. Posle toga se programski sken
ciklus nastavlja od mesta gde je prekinut.
Oigledno je da se ova naredba koristi u
Sl. 11 Simbol i poloaj sluajevima kada je programski sken ciklus relativno
naredbe za auriranje svih dugaak pa je, radi smanjivanja kanjenja u operacijinad
podataka
podacima, neophodno da se oni auriraju ee nego to
6/plc_tok

bi to bio sluaj da se obavlja regularni sken ciklus.

6. Sistem prekida (Interrupt)


Prekid je mehanizam pomou koga se neki program privremeno prekida da bi se
omoguilo izvravanje nekog drugog posebnog dela programa, koji se oznaava kao
servisni potprogram. Kada se servisni potprogram zavri, nastavlja se izvravanje
programa koji je bio prekinut. Ovaj postupak je ilustrovan na slici (Sl. 12). Mehanizam
sistema prekida se aktivira pomou signala prekida, koji dolaze iz spoljanje sredine i
imaju poseban direktan ulaz u centralnu jedinicu. Svrha ovih signala je "obavetavanje"
procesora o nastanku nekih spoljanjih dogaaja. U zavisnosti od vrste dogaaja
procesor menja redosled izvoenja operacija ili reaguje na neki drugi unapred
predvien nain.
Skok na servisni
potprogram
3
vreme

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. 12 Realizacija sistema prekida

Pored ve pominjane mogunosti da se signalima prekida ukazuje da je neki U/I


ureaj spreman za prenos podataka, ime se eliminie potreba za ispitivanjem
njegovog stanja, ovi signali imaju izuzetan znaaj za rad sistema u realnom vremenu i
koriste se kao:
asovnik realnog vremena, gde spoljanji hardverski ureaj generie signal u
ravnomernim vremenskim intervalima; servisni potprogram broji ove signale i na osnovu
njih formira informaciju o vremenu;
dogaaji (alarmi), gde se nastanak neke nepredviene situacije (dogaaja) na
procesu moe identifikovati tako to e odgovarajui senzori generisati digitalne signale.
Ovakvi signali alarma su relativno retki, ali zahtevaju izuzetno brzu reakciju sistema, pa
je oigledno da njihovo opsluivanje preko sistema prekida prua efikasno reenje;
runo upravljanje, gde se korienjem prekida moe omoguiti da se preuzme runo
upravljanje procesom u sluaju regularnog remonta ili opravki na sistemu;
7/plc_tok

indikacije hardverskog otkaza, gde se informacija o otkazu spoljanjeg hardvera ili


podsistema za spregu moe dobiti preko signala prekida, posle ega servisni
potprogram moe da realizuje aktivnost predvienu u tom sluaju (automatska zamena,
ako postoji paralelni ureaj; promena algoritma dok se ne izvri opravka itd.);
pomo pri traenju greaka u programu, gde se prekid esto koristi za prekidanje
rada programa na odreenim mestima u fazi provere njegove ispravnosti;
nestanak napajanja, gde se u raunar ukljuuje kolo koje veoma brzo detektuje
gubitak napajanja u sistemu i obezbeuje upozorenje nekoliko milisekundi pre nego to
sistem prestane da radi. Ukoliko je ovakvo kolo vezano za signal prekida koji ima
prioritet nad svim ostalim aktivnostima u raunaru, onda ima dovoljno vremena da se
izvri nekoliko naredbi pomou kojih se rad procesa kojim se upravlja prekida na neki
predvieni nain.
Realizacija sistema prekida obuhvata detekciju signala prekida, suspenziju
trenutne aktivnosti, pronalaenje ureaja koji je traio prekid, opsluivanje prekida i
nastavak suspendovane aktivnosti.
Tipovi prekida i hijerarhijski nivoi
PLCovi iz familije SLC operiu sa etiri tipa prekida:
i. User Fault Routine upravlja radom PLCa u sluaju detekcije greke
ii. DII Discrete Input Interrupt detekcija dogaaja
iii. STI Selectable Timed Interval detkcija protoka vremena (odabiranje)
iv. I/O Interrupt obrauje signale prekida koji dolaze sa specijalnih U/I modula
Ukoliko se istovremeno javi vie od jednog signala prekida, procesor ih opsluuje
u redosledu kojim su ovde dati. Isto tako prekid nieg hijerarhijskog nivoa ne moe
odpoeti da se opsluuje ukoliko se u tom trenutku opsluuje neki prekid vieg
hijerarhijskog nivoa.
Detekcija signala prekida i period latentnosti

Sl. 13 Nain obrade signala prekida u zavisnosti od dela sken ciklusa u kome nailazi
8/plc_tok

Nailazak signala prekida, po pravilu, ne moe ba trenutno da prekine rad


procesora. To znai da e do poetka opsluivanja signala prekida protei izvesno
vreme. Taj vremenski interval oznaava se kao interval latentnosti i njegova duina
zavisi od operacije koja se trenutno izvodi i od zahteva koje specificira korisnik.
Postavljanjem bita S:33/8 korisnik moe zahtevati da se prekid opslui u najkraem
moguem periodu (Sl. 13).
Ukoliko signal prekida naie u trenutku kada se obrauje jedan slot u kome se
nalazi modul sa vie rei i ukoliko opsluivanje prekida zahteva taj isti slot, onda e
opsluivanje biti odloeno dok se na zavri obrada slota (nezavisno od stanja bit
S:33/8).
Opsluivanje prekida
Kada PLC registruje prekid i zavri zapoetu operaciju, odnosno doe u stanje u
kome se dozvoljava opsluivanje prekida, on sauva vrednosti statusnih bitova S:0
(indikator rezultata matematikih operacija), S:13 i S:14 (matematiki registar) i S:24
(indeks registar), a zatim pozove odgovarajui servisni potprogram.
Servisni potprogram
Servisni potrogram je posebna programska datoteka (broj 3 do 255).
U servisnom potprogramu ne smeju se koristiti TND, REF i SVC naredbe. Pored
toga, servisni potprogram moe pozivati najvie tri nivoa uaurenih potprograma.
Ukoliko se eli trenutna spoljna reakcija na detektovani prekid moraju se koristi
naredbe za trenutno oitavanje ulaza i izlaza (IIM i IOM).

7. User Fault Routine


User Fault Routine je specifina vrsta prekida koja nastaje ukoliko se u toku
izvoenja leder programa javi greka. Jedan broj ovih greaka moe biti prouzrokovan
izvoenjem matematikih operacija (npr. delenje sa nulom), nekom neusaglaenou
naredbi (npr. nepostojea datoteka u indirektnoj adresi) ili neadekvatnim adresiranjem
ulazno/izlaznih modula i tome slino.
Ukoliko se detektuje greka korisnik ima mogunost da zahteva prekid i da
pokua da otkloni greku.
Definisanje servisnog potprograma
S:29 - broj programske datoteke koja sadri servisni potprogram. Ukoliko je
ovaj broj nula, prekid je onemoguen.
Servisni potprogram, po pravilu ispituje kod greke i ustanovljava da li je ona
popravljiva ili nije. Ukoliko je greka popravljiva, ona se ispravlja i pri tome se, na
izlasku iz servisnog potprograma resetuje bit S:1/13. Ukoliko greka nije popravljiva, bit
S:1/13 se ne menja, ali se tada, po pravilu, poalje poruka nekom susednom voru u
mrei da PLC privremeno obustavlja rad (sve dok se ne ustanovi ta izaziva greku i ne
unesu se odgovarajue korekcije).
Detekcija i nain opsluivanja prekida
Kada se u toku izvravanja programa detektuje greka procesor generie
odreen broj podataka u datoteci statusa i zatim proverava sadraj rei S:29. Ako je
podatak u rei S:29 jednak 0, to znai da korisnik nije eleo da se bavi ispitivanjem i
eventualnim popravkom greeka, te e procesor zaustaviti dalji rad. Ukoliko se meutim
u toj rei nalazi bilo koji broj izmeu 3 i 255, onda taj broj oznaava programsku
datoteku koja sadri servisni potprogram i procesor otpoinje izvoenje servisnog
potrprograma.
9/plc_tok

Postavljanje internih indikatorskih bitova i rei


Ukoliko doe do greke procesor e postaviti sledee bitove u datoteci statusa
S:1/13 (major error bit)
S:6 - kod greke
S:20 - broj ranga u kome je greka nastala
S:21 - broj programske datoteke u kome se taj rang nalazi.

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

Sl. 14 Glavni servisni potprogram ija je adresa upisana u S:29


10/plc_tok

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.

Sl. 15 Servisni potprogram koji obrauje greku iji je kod 0020h


11/plc_tok

Sl. 16 Servisni potprogram koji obrauje greku iji je kod 0034h

Pored servisnih potprograma formiran je i glavni program u okviru koga se


generie bilo jedna bilo druga greka (Sl. 17). Vrednost bita B3:0 odreuje koja e od
dve greke biti generisana. Pri tome se predpostavlja da e se taj bit, na neki nain,
postavljati spolja.
12/plc_tok

Sl. 17 Glavni program koji generie greke

8. DII Discrete Input Interrupt


Ovaj nivo prekida koristi se za registrovanje nastanka odreenih dogaaja i
obezbeivanje odgovarajue reakcije na te dogaaje.
Dogaaji se detektuju preko oitavanja stanja linija na nekom ulaznom modulu.
Jedan dogaaj se definie specificiranjem niza od 8 bitova. Istovremeno se specificira i
13/plc_tok

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

Sl. 18 ematski prikaz izvravanja DII prekida

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

Definisanje servisnog potprograma


S:46 - broj programske datoteke koja sadri servisni potprogram. Ukoliko je
ovaj broj nula, prekid je onemoguen.
Detekcija i nain opsluivanja prekida
Bar jedanput u svakih 100s procesor oitava podatke o prvom bajtu u slotu iji
je broj definisan u S:47. (Ovo oitavanje se odvija paralelno sa sken ciklusom i
ne utie na vreme trajanja sken ciklusa.) Oitani podaci se uz pomo maske
(S:48) porede sa referencom (S:49). Ukoliko se podaci slau dalji postupak zavisi
od vrednosti rei S:50
S:50 = 1 (ili 0) Detekcija dogaaja generie se prekid i poziva se servisni
potprogram. Istovremeno se u interni mera vremena S:45 upisuje vreme koje je
proteklo od prethodne detekcije prekida (kao multipl od 10ms).
S:50 > 1 Brojanje dogaaja vrednost akumulatora (S:52) se poveava za
1. Ukoliko ova vrednost dostigne zadanu vrednost poziva se servisni potprogram
i resetuje se akumulirana vrednost (S:52) na nulu. Istovremeno se u interni
mera vremena S:45 upisuje vreme koje je proteklo od prethodne detekcije
prekida (kao multipl od 10ms).
Rekonfiguracija sistema prekida praenje sekvence dogaaja
U principu, definisanjem vrednosti rei u statusnoj datoteci omoguava se
definisanje jednog dogaaja. Kod sekvencijalnog programiranja, detkcija jednog
dogaaja i izvravanje odgovarajue reakcije na njega, po pravilu, zahteva da se
pristupi detekciji nekog drugog dogaaja. Realizacija ovakvog zahteva je mogua samo
ako se promene vrednosti odgovarajuih rei u statusnoj datoteci. Iako se vrednosti
ovih rei mogu redefinisati programski, za rekonfiguraciju celog sistema prekida
neophodno je i da se izvri resetovanje nekih internih promenljivih. Da bi se omoguilo
dinamiko rekonfigurisanje DII sistema prekida koristi se bit za rekonfiguraciju..
S:33/10 bit za rekonfiguraciju -. ukoliko je S:33/10 = 1, onda e na kraju
programskog sken ciklusa (naredbe END, TND i REF) ili na izlasku iz bilo kog
prekida da se obave sledee aktivnosti:
akumulirana vrednost S:52 se postavlja na nulu
vrednosti kojima se definie dogaaj (S:47, S:48, S:49 i S:50) se
ponovo oitavaju i uvrtavaju u DII prekid
resetuje se pending bit (S:2/11)
resetuje se bit za rekonfiguraciju (S:33/10)
Postavljanje internih indikatorskih bitova i rei
U toku rada, procesor postavlja niz inidkatorskih bitova vezanih za DII prekid
ime se korisniku omoguava da prati nain na koji se prekid opsluuje.
S:2/11 DII pending bit kada je vrednost ovog bita 1, ona ukazuje da je
akumulirana vrednost (S:52) jednaka zadanoj (S:50) i da servisni potprogram
eka na izvrenje. Ovaj bit se resetuje kada otpone izvravanje servisnog
potprograma. Ova vrednost ostaje 1 ako je izvravanje servisnog potprograma
onemogueno.
S:2/12 DII enable bit postavljanjem ovog bita na 1 omoguava se
opsluivanje prekida (ako servisnog potprograma nije 0). Ako je vrednost ovog
bita 0, kada se detektuje prekid, servisni potprogram se nee izvriti, ve e se
samo pending bit postaviti na 1.
15/plc_tok

Ukoliko je pending bit 1, tada se na kraju sken ciklusa jo jedanput ispituje


enable bit.
S:2/13 DII execution bit kada je vrednost ovog bita 1, ona ukazuje da je
izvravanje servisnog potprograma u toku. Kada se servisni potprogram zavri bit
se resetuje na nulu.
S:5/12 DII overflow bit ovaj bit se postavlja na 1 svaki put kad se detektuje
signal prekida, a servisni potprogram jo uvek obrauje prethodni. U tom sluaju,
odmah po zavretku opsluivanja prethodnog prekida, zapoinje opsluivanje
novog.
Ovaj bit e biti postavljen na 1 i svaki put kada se detketuje prekid, a pri tome je
postavljen pending bit (S:2/11=1) ili je opsluivanje prekida onemogueno
(S:2/12=1).
S:36/8 DII lost bit ovaj bit se postavlja ukoliko se detektuje signal prekida a
pri tome je pending bit postavljen na 1, odnosno kada se eka na otpoinjanje
opsluivanja prethodnog prekida. U tom sluaju, novo registrovani prekid nee
biti opsluen.
S:45 DII Timer DII 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 DII prekida vrednost ovog asovnika se upisuje u S:45.
S:51 return mask sadraj ove rei se aurira neposredno pre ulaska u DII
servisni potprogram. Ova re sadri bit-mapu koja odgovara poslednjem bitu iji
je prelaz doveo do detekcije dogaaja. Ako se desila promena vie od jednog
bita od poslednjeg oitavanja ulaza, svi promenjeni bitovi e biti smeteni. Ova
re e biti resetovana pri izlasku iz servisnog potprograma.
Podatak iz rei S:51 moe da se koristi u servisnom potprogramu da bi se
ustanovio redosled postavljanja bitova koji ine neki dogaaj. Isto tako, ovaj
podatak se moe koristiti da bi se utvrdilo da je okonana neka aktivnost i da je
potrebno prei na sledei dogaaj u sekvenci dogaaja.

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

Aktiviranje ovog prekidaa posmatra se kao dogaaj.


Kada se dogaaj detektuje poziva se servisni potprogram koji se nalazi u
programskoj datoteci broj 4. Ovaj potprogram oitava stanje senzora zapuaa koji je
vezan za osmi pin ulaznog modula u slotu 1 I:1/8. Ukoliko nema zapuaa, otvara se
opruga koja je vezana za PLC preko nultog pina izlaznog modula u slotu 2 (O:2/0).

Sl. 20 Servisni potprogram koji obrauje reakciju na dogaaj


Da bi se omoguio rad DII sistema neophodno je upisati sledee vrednosti u
statusnoj datoteci
S:46 = 4 servisni potprogram je u datoteci broj 4
17/plc_tok

S:47 (Slot) = 1 digitalni ulaz je u slotu 1


S:48 (Mask) = 0000 0001 testira se bit na nultom pinu
S:49 (Referenca) = 0000 0001 dogaaj nastupa kada je bit na nultom pinu 1
S:50 (Preset) = 1 sistem prekida radi kao detektor dogaaja S:33/8 = 1 eli se
opsluivanje prekida sa najveom moguom brzinom, da se ne bi propustila nijedna
boca
Odgovarajui servisni potprogram prikazan je na Sl. 20.

9. STI Selectable timed interrupt


STI je sistem prekida koji omoguava da se sken ciklus periodino prekida i da
se pri svakom prekidu obradi odgovarajui niz naredbi koji se nalazi u servisnom
potprogramu. Kada se servisni potprogram zavri, sken ciklus se nastavlja od momenta
u kome je bio prekinut.
ematski prikaz izvravanja STI prekida prikazan je na .

Sl. 21 ematski prikaz izvravanja STI prekida

Definisanje periode ponavljanja prekida


Sistemom prekida se upravlja pomou internog asovnika. Periodu ponavljanja
korisnik definie sam upisivanjem odgovarajue vrednosti u statusnoj datoterci.
S:30 period multipl osnovnog takta. Period ponavljanja se dobija kao
proizvod sdraja rei S:30 i osnovnog takta. Ukoliko se kao multipl upie 0,
sistem prekida je onemoguen.
Takt zavisi od tipa procesora
SLC 5/02 takt = 10ms, period : 10 2550 ms
18/plc_tok

SLC 5/03 i vie takt zavisi od vrednosti bita S:2/10


o S:2/10 = 0 takt = 10ms, period od 10 do 32760ms
o S:2/10 = 1 takt = 1ms, priod od 1 do 32767ms
Definisanje servisnog potprograma
S:31 - broj programske datoteke koja sadri servisni potprogram. Ukoliko je
ovaj broj nula, prekid je onemoguen.
Detekcija i nain opsluivanja prekida
U trenutku zapoinjanja programa interni asovnik, smeten na adresi S:43,
otpoinje sa radom. asovnik radi sa osnovnim taktom od 10s. Kada asovnik
izmeri vreme koje odgovara periodi odabiranja generie se signal prekida i
otpoinje izvravanje servisnog potprograma.
Izvravanjem STI prekida se moe dodatno upravljati pomou tri posebne
naredbe
STS selectable timed start
STS Ukoliko je uslov istinit, ova
Selectable Timed Start naredba e prouzrokovati resetovanje
uslov
internog asovnika i upisivanje
File nn podataka o adresi servisnog
Time tt
potrpograma i perioda prekida u rei
File broj servisnog potprograma S:31 i S:30 (ime se brie prethodni
Time period prekida sadraj tih rei). Posle izvravanja ove
naredbe, STI interni asovnik zapoinje
ponovno merenje vremena i STI enable bit je postavljen na 1.
Kada uslov postane neistinit podaci o STI pekidu se ne menjaju.
STE Selectable timed enable
Ukoliko uslov prelazi sa neistinit na
STE
istinit, ova naredba postavlja STI enable
Selectable Timed
uslov bit S:2/21, ime se omoguava
Enable
opsluivanje STI prekida. Kada je uslov
neistinit stanje STI enable bita se ne
menja. To znai da e on, ako je imao
vrednost 1 zadrati tu vrednost sve dok ga naredba STD ne resetuje na 0.
Potrebno je zapaziti da ova naredba ne utie na rad internog asovnika,
vea samo na to da li e, kada asovnik imeri zadani interval vremena, biti
dozvoljeno opsluivanje prekida ili ne.
STD selectable timed disabled
Ukoliko je uslov istinit ova naredba
resetuje STI enable bit ime se
onemoguava izvravanje servisnog
potprograma. Kada je uslov neistinit
naredba ne menja stanje STI enable bita.
Drugim reima ukoliko je STI enable bit
postavljen na 0, on e ostati 0 sve dok ga STE naredba ili STS naredba ne
postave na 1.

Parovi STD i STE naredbi mogu se koristiti za izdvajanje zona unutar


leder programa iji rad se ne moe prekidati usled STI prekida.
Postavljanje internih indikatorskih bitova i rei
U toku rada, procesor postavlja niz inidkatorskih bitova vezanih za STI prekid
19/plc_tok

ime se korisniku omoguava da prati nain na koji se prekid opsluuje.


S:2/0 STI pending bit kada je vrednost ovog bita 1, ona ukazuje da je
asovnik izmerio jednu periodu i da servisni potprogram eka na izvrenje
(recimo zato to se izvravaju prekidi vieg prioriteta, Fault routine ili DII). Ovaj
bit se resetuje kada otpone izvravanje servisnog potprograma ili kada je uslov
za STS naredbu istinit. Ova vrednost ostaje 1 ako je izvravanje servisnog
potprograma onemogueno.
S:2/1 STI enable bit postavljanjem ovog bita na 1 omoguava se
opsluivanje prekida uz uslov da adresa servisnog potprograma nije 0 i da
zadani period nije 0. Ako je vrednost ovog bita 0, kada se detektuje prekid,
servisni potprogram se nee izvriti, ve e se samo pending bit postaviti na 1.
STI enable bit se automatski postavlja izvravanjem STE i STS naredbe, i
automatski resetuje izvravanjem STD naredbe. U tom sluaju, postavljene
vrednosti direktno utiu na opsluivanje prekida. Meutim, ukoliko se vrednost
ovog bita promeni pomou neke druge naredbe onda e ta promene da ima
efekta tek u sledeem sken ciklusu.
Ukoliko je pending bit 1, tada se na kraju sken ciklusa jo jedanput ispituje
enable bit.
S:2/2 STI execution bit kada je vrednost ovog bita 1, ona ukazuje da je
izvravanje servisnog potprograma u toku. Kada se servisni potprogram zavri bit
se resetuje na nulu.
S:5/10 STI timer expires bit ovaj bit se postavlja na 1 svaki put kad treba
da nastane prekid, a STI servisni potprogram jo uvek obrauje prethodni, ili je
izvravanje servisnog potprograma onemogueno. Interni asovnik nastavlja sa
radom. Budui da postavljanje ovog bita prouzrokuje kod za greku neophodno
je da se on resetuje pre zavretka sken ciklusa.
S:36/9 STI lost bit ovaj bit se postavlja ukoliko treba da nastupi prekid, a
pri tome je pending bit postavljen na 1, odnosno kada se eka na otpoinjanje
opsluivanja prethodnog prekida. U tom sluaju, novo registrovani prekid nee
biti opsluen. Ukoliko se neeli prekid rada usled greke, ovaj bit treba resetovati
pre zavretka sken ciklusa.
S:43 STI Timer STI 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 STI prekida vrednost ovog asovnika se upisuje u S:43.
Vreme e biti ispravno upisano ako izmeu dva susedna prekida ne proe vie
od 0.32767s.

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

Sl. 23 Glavni program za primer korienja STI prekida

U delu glavnog programa koji je ovde prikazan se u prvom prolazu inicijalizuju


indikatorski bit i vrednost rezultata (postavljaju se na nulu). Uz pomo samoresetujueg
asovnika se vrednost izraunata u servisnom potprogramu na svakih pola sekunde
smeta na memorijsku lokaciju N10:3.
Potrebno je zapaziti da se isti program moe koristiti za detekciju vremena koje
proteklo izmeu dva DII prekida ili I/O prekida s tim to se umesto adrese asovnika
21/plc_tok

S:43 mora koristiti adresa asovnika koji odgovara tom prekidu (S:44 za I/O, odnosno
S:45 za DII)

Sl. 24 Servisni potprogram koji opsluuje STI prekid


22/plc_tok

10. I/O Prekid


Neki specijalni U/I moduli imaju sposobnost generisanja signala prekida. Ukoliko
se ovaj signal detektuje, procesor prekida sken ciklus i zapoinje opsluivanje
odgovarajueg servisnog potprograma.
Specijalni moduli koji se koriste uz sistema prekida treba da se postave u
poetne slotove. Maksimalni broj slotova za PLC iz familije SLC 5 je 30. Blok ema
izvravanja I/O prekida data je na Sl. 25
Specijalni
moduli

Prog. File 2 Prog. File n


(servisni
potprogram)
Prekid

Pamti
S:0 mat. indikatori aurira
interni
S:13,14 mat. reg.
S:24 indeks reg. asovnik
S:44 t (m 10 s)

S:25 S:26 Pending bits S:32 I/O executing slot

S:11 S:12 slot enable

S:27 S:28 interrupt enable


Sl. 25 ematski prikaz izvravanja I/O prekida

Definisanje servisnog potprograma


Broj programske datoteke koja sadri servisni potprogram mora se upisati u
samom specijalnom modulu za vreme njegove konfiguracije.
Prva naredba u prvom rangu
servisnog potprograma je INT
naredbom koja ukazuje da se radi o
potprogramu koji opsluuje I/O prekid.
(nije obavezno)

Detekcija i nain opsluivanja prekida


Kada specijalni U/I modul generie signal prekida onda procesor prekida svoj rad
i poziva odgovarajui servisni potprogram na izvravanje. Ukoliko se u trenutku zahteva
za prekidom izvrava neki prekid vieg prioriteta, onda e se saekati da se svi prekidi
23/plc_tok

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

Naredba za realizaciju proporcionolno-integralno-


diferencijalnog zakona upravljanja (PID)
1. Jednaina PIDa
Kontroler koji realizuje linearne zakone upravljanja PID - se moe formirati
softverski kao poseban modul koji se koristi u leder programu. U principu PID modul
uzima vrednost analognog signala sa nekog mernog mesta i koriem proporcionlno
integralno diferencijalnih zakona upravljanja, izraunava upravljaki signal, koji se preko
analognog izlaznog modula prenosi na izvrni organ. Ukoliko to struktura izvrnog
organa zahteva, analogni izlazni signal se moe pretvoriti i u irinski modulisan impulsni
signal.
PID modul se, kod familije SLC kontrolera, realizuje jednom naredbom PID
naredbom koja pripada grupi naredbi akcije. U principu ova naredba se izvrava tako
to seobavi jedan korak diskretnog algoritma PIDa.
U skladu sa teroijom direktnog digitalnog upravljanja, PID naredba se mora
izvravati periodino, sa nekom zadanom peridom odabiranja. Periodian rad moe
realizovati sam PID modul ukoliko se konfigurie na odgovarajui nain. Pored toga,
periodinost se moe ostvariti i pomou vremenski uslovljenog sistema prekida (STI). U
tom sluaju PID naredba se mora postaviti u STI servisni potprogram, tako da se ulaz i
izlaz PIDa auriraju svaki put kada se ovaj potprogram izvrava. Samo se po sebi
razume da perioda izvravanja STI potprograma i perioda sa kojom radi PID moraju biti
iste.
Potrebno je uoiti razliku izmeu periodinog programskog sken ciklusa sa kojim
se obrauju sve naredbe i periodinog izvoenja algoritma diskretnog PIDa kod koga se
jedan algoritamski korak izvodi unutar jedne periode odabiranja. U prvom sluaju radi
se zapravo o ciklinom ponavljanju niza operacija pri emu duina trakanja pojedinog
ciklusa zavisi od vie faktora. Otuda se ciklus ne ponavlja periodino u striktnom smislu
znaenja te rei. Za razliku od sken ciklusa, jedan algoritamski korak PID se mora
ponavljati sa tano definisanom periodom.
PID naredba realizuje diskretizovani algoritam lineranih zakona upravljanja (Sl. 1)
1
t
u( t ) = K p 1 + e( )d + Td f ( y ) + of
Ti 0
gde je
u(t) upravljaki signal (CV control value)
e(t) = r-y(t) signal greke koji predstavlja razliku referentne vrednosti - r (SP set
point) i izmerene vrednosti izlaza procesa - y (PV process variable)
f(y) je funkicija koja realizuje diferencijalno dejstvo i to tako da se signal iz
diferencijatora koji je realizovan kao visoko propusni filtar funkcije prenosa
s
G d ( s) = ;
1 + sTd / N
proputa kroz nisko propusni filtar ija je uestanost odsecanja 16 puta (za dve
oktave) vea od prelomne uestanosti diferencijalnog filtra (N/Td) (Sl. 1).
Interesanto je napomenuti da proizvoa ne daje podatke o prelomnoj
uestanosti visoko propusnog filtra niti o metodi koja se koristi za diskretizaciju PIDa.
Pri osnovnoj realizaciji diferencijalnog dejstva se pretpostavlja da je zadana
vrednost konstanta (to znai da je njen izvod nula), pa se diferencijalno dejstvo
2/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)

Sl. 1 Blok dijagrama PIDa

Kp bezdimenziona konstanta proporcionalnog dejstva koja se kree u sledeim


vrednostima
o 0.1 do 25.5 (SLC 5/02)
o 0.01 do 327.67 (SLC 5/03 i viim)
Ti konstanta integralnog dejstva koja se zadaje u jedinicama minut/obrt i kree se
u sledeim vrednostima
o 0.1 do 25.5 min/obrt (SLC 5/02)
o 0.01 do 327.67 min/obrt (SLC 5/03 i viim)
Td konstanta diferencijalnog dejstva koja se zadaje u jedinicama minuta
o 0.1 do 25.5 min (SLC 5/02)
o 0.01 do 327.67 min (SLC 5/03 i viim)

2. Skaliranje mernih i upravljakih signala


Ulazni signali koje obrauje PID, kao i upravljaka promenljiva koju on
izraunava mogu predstavljati razliite fizike signale koji se kreu u razliitim
opsezima. Budui da se ulazni (merni) signali dobijaju preko analognog ulaznog modula
oni e, posle konverzije, biti predstavljeni kao celobrojne veliine u opsegu koji zavisi od
tipa signala koji se dovodi na ulaz A/D konvertora.
PID modul modul realizuje algoritamski korak korienjem celobrojne aritmetike,
odnosno aritmetike fiksnog zareza. To znai da su, sa aspekta programske realizacije
PID modula, sve ulazne i izlazne promenljive celobrojne vrednosti. Imajui u vidu duinu
rei SLCa ove celobrojne vrednosti se kreu u opsegu od 0 do 16383.
Nesumnjivo je da je za korisnika izuzetno zametno da prati ponaanje PIDa
oitavanjem ovih celobrojnih vrednosti koje, same po sebi, nita ne govore o samom
fizikom procesu kojim se upravlja. Drugim reima, korisniku je mnogo pogodnije da
prati rad PIDa ukoliko su sve promenljive izraene u fizikim (ininjerskim) jedinicama.
Ovu konverziju PID moe sam da obavi ukoliko se, pri konfiguraciji modula, definiu
minimalne i maksimalne vrednosti fizikih signala.
3/plc_pid

Konano, sledei uobiajenu ininjersku praksu, vrednost upravljakog signala


PID modula se prikazuje u procentima od pune vrednosti, to znai da u ovom sluaju
vrednosti od 100% odgovara celobrojna konstanta 16383. Drugim reima, polazi se od
predpostavke da svaki realni izvrni organ ima zasienje, odnosno da postoji neka
maksimalna aktivnost koju on moe da obavi i koja predstavlja 100% njegove aktivnosti.
Potrebno je da se istakne da ak i ako se od PIDa zahteva konverzija signala u
fizike jedinice, samo izraunavanje se i dalje obavlja u celobrojnoj aritmetici.
Konverzija se vri samo u komunikaciji sa korisnikom (zadavanje reference i oitavanje
upravljakog signala).
U skladu sa svime to je reeno, izvesno je da je potrebno da se vrednosti
analognog ulaza, odnosno analognog izlaza skaliraju na puni opseg PID modula. Ovo je
svakako neophodno ako je tip analognog signala takav da odgovarajua A/D ili D/A
konverzija koriste celobrojne vrednosti koje su izvan opsega PID modula. Meutim, ak
i ako to nije sluaj, skaliranjem e se ispravna konverzija u fizike jedinice. Naime,
definisane minimalne i maksimalne vrednosti fizikih signala PID modul uvek vezuje za
granice svog opsega (0 i 16383), a ne za granice A/D, odnosno D/A konvertora.
Skaliranje ulaznog (mernog) signala - Izlaz procesa se meri preko nekog
instrumenta i dovodi u PLC pomou A/D modula. A/D konvertor e u toku ulaznog sken
ciklusa obavljati konverziju mernog signala i generisati celobrojnu vrednost iji opseg
zavisi od tipa ulaznog signala. U principu, ako su vrednosti koju daje A/D konvertor
unutar opsega PID modula, ove vrednosti se mogu direktno da koriste kao ulaz u PID
modul. Meutim, ako su vrednosti koju daje A/D konvertor izvan opsega PID modula, ili
ako se eli da PID obavlja konverziju u fizike veliine, neophodne je da se ove
vrednosti skaliraju na puni opseg PID modula. Samo skaliranje se moe obaviti pomou
odgovarajuih SCP ili SCL programskih naredbi. ulaz naredbe: celobrojna vrednost koju
daje A/D konvertor (y)
izlaz naredbe: celobrojna promenljiva s (PV)
SCP naredba
s -s
s = max min (y - y min ) + smin SCL naredba
y max - y min
Rate
s= y + offset
10000
Parametri konverzije za standardne tipove strujnih i naponskih ulaznih signala dati su u
tabelama T. 1 i T. 2
Primer
merni signal temperatura u opsegu od tmin=-500C do tmax=10000C se meri pomou
instrumenta koji daje strujni signal u opsegu od imin=4mA do imax=20mA
strujni signal e posle pijema u Analognom modulu i A/D konverzije biti predstavljen
celobrojnom vrednou u opsegu
ymin = (16383/20)4=3277 do ymax = 16384
analogni celobrojni signal treba da se skalira na puni opseg smin=0, smax=16383
konverzija (posebna programska naredba)
s -s
s = max min (y - y min ) + smin
y max - y min
celobrojna vrednost se moe konvertovati u fiziku veliinu ako se u PID naredbi
definiu minimalna i maksimalna vrednost fizikih veliina tmin i tmax. U tom sluaju
sam PID obavlja konverziju svih signala vezanih za merni signal prema relaciji
4/plc_pid

t -t
t = max min (s - s min ) + t min
s max - s min

analogni ulaz analogni izlaz


4 20mA 0 5V 0 10V 4 20mA 0 5V 0 10V
ymin 3277 0 0 cmin 0 0 0
ymax 16384 16384 32767 cmax 16383 16383 16383
smin 0 0 0 umin 6242 0 0
smax 16383 16383 16383 umax 31208 16384 32764

T. 1 Parametri za skaliranje standardnih ulaznih i izlaznih signala pomou SCP naredbe

Skaliranje upravljakog signala - PID modul generie upravljaki signal kao


celobrojnu promenljivu u opsegu (0, 16383). Ako je ova promenljiva u opsegu koji prima
D/A konvertor, ona se moe direktno da koristi kao ulaz za D/A konvertor. Meutim, ako
je promenljiva van opsega, ili ako se eli konverzija u fizike jedinice, promenljiva mora
da se skalira na opseg D/A konvertora. Skaliranje se moe obaviti pomou
odgovarajuih SCP ili SCL programskih naredbi. ulaz naredbe: izraunati upravljaki
signal c (CV), (celobrojna vrednost koju daje PID modul)
izlaz naredbe: celobrojna vrednost koja se void na D/A konvertor - u
SCP naredba
u -u
u = max min (c - c min ) + u min SCL naredba
c max - c min
Rate
u= c + offset
10000
Parametri konverzije za standardne tipove strujnih i naponskih izlaznih signala dati su u
tabelama T. 1 i T. 2.
analogni ulaz analogni izlaz
4 20mA 0 5V 0 10V 4 20mA 0 5V 0 10V
Rate/10 000 12499 10000 5000 Rate/10 000 15239 10000 19999
offset 4096 0 0 offset 6242 0 0

T. 2 Parametri za skaliranje standardnih ulaznih i izlaznih signala pomou SCL naredbe

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

Sve promenljive koje uestvuju u


realizaciji ove naredbe moraju biti
celobrojne. Ukoliko se kao neki od
parametara naredbe definie
promenljiva sa pokretnim zarezom, doi e automatski do njenog pretvaranja u
celobrojnu promenljivu.
Control block je adresa upravljake datoteke koja sadri podatke neophodne za
izvoenje naredbe. Datoteka treba da se definie kao celobrojna (N) i ima duinu od
23 rei. Tako, na primer, ako se kao adresa definie N10:0, onda e upravljaki blok
zauzeti rei od N10:0 do N10:22.
Process variable je adresa promenljive koja sadri vrednost izmerenog izlaza
procesa. Kao to je ve reeno, ova adresa moe biti adresa rei u koju se smeta
podatak sa analognog ulaza, odnosno rezultat A/D konverzije. Naravno, ukoliko se
eli skaliranje izmerenog analognog signala u cilju njegovog prilagoavanja datom
opsegu ili pretvranja u fitike jedinice, onda je to adresa celobrojne promenljive u
koju se smeta rezultat skaliranja signala, koji se moe kretati u opsegu od 0 do
16383.
Control variable je adresa promenljive u koju se smeta rezultat izraunavanja
jednog koraka PID algoritma. Ova vrednost kree se u opsegu od 0 do 16383, pri
emu vrednost od 16383 odgovara maksimalnoj vrednosti koju izvrni organ moe
da primi (100% aktivnosti izvrnog organa). Izraunata vrednost se, po pravilu, pri
smetanju u adresu rei iz koje se dobija podatak za ananalogni izlaz (D/A
konvertor) skalira na puni opseg D/A konvertora

Sl. 2 Maska za definisanje upravljakog bloka


6/plc_pid

Struktura PID Control Block-a

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

re 1 PID Sub Error Code (Msbyte)


celobrojna vrednost: SMIN do SMAX ili 0 do 16383
re 2 Setpoint SP
(ako SMIN i SMAX nisu definisani)
re 3 Kp interpretira se kao
celobrojna
vrednost: 0 3276.7 (za RG=0) 0 327.67 (za RG=1)
re 4 Ti (min/obrt)
0 do 32767
re 5 Td (min) interpertira se kao 0 327.67 min (za Td)
re 6 Offset celobrojna vrednost: 16383 do 16383

re 7 Setpoint Max Scaled (SMAX) celobrojna vrednost: 32767 do 32767 (ako se ne


definie SC se postavlja na nulu), koristi se kad se
re 8 Setpoint Min Scaled (SMIN) izmerna vrednost pretvara u fizike jedinice
celobrojna vrednost: 0 do SMAX ili 0 do 32767
Deadband definie opseg oko SP (gde se smatra da je greka 0)
re 9
(mrtva zona) kad greka ue u taj opseg i proe kroz 0, postavlja
se DB na 1
re 10 interna upotreba
re 11 Output Max (CVH) celobrojna vrednost: 0 100% (od vrednosti izlaza CV)
za OL=1 prekida integraciju kad dostigne limit, postavlja bit na 1,
re 12 Output Min (CVL) za OL=0 ne prekida integraciju, ali postavlja bit na 1
Loop Update celobrojna vrednost: 0 do 1024
re 13
Period odabiranja perioda odabiranja: T=(Loop Update)0.01 sec
celobrojna vrednost: 0 do 16383 ili SMIN do SMAX (ako je
Scaled Proces Variable
re 14 definisano skaliranje) (skalirani) merni signal, oitava se u
(SPV)
fizikim jedinicama
celobrojna vrednost: 32767 do 32767, ne moe da se
re 15 Scaled Error (SE) definie, ve se samo oitava
SE = SP PV ako je CM=0 ; SE = PV SP ako je CM=0
celobrojna promenljiva (100% je 16383)
pri automatskom upravljanju (AM=0) ne moe se definisati,
re 16 Output CVP (%)
ve samo oitavati
pri runom upravljanju (AM=1) aurira se automatski
re 17 MSW Integral Sum celobrojna promenljiva (32 bita - dve rei):
do 2 174 483 648, ukupna vrednost integralnog dejstva,
re 18 LSW Integral Sum aurira se automatski pri runom upravljanju
re 19 interna upotreba
re 20 interna upotreba
re 21 interna upotreba
re 22 interna upotreba

T. 3 Izgled Control block-a


Kao to je ve reeno Control block zapravo definie sve promenljive neophodne
za realizaciju algoritma. On obuhvata 23 rei, od kojih svaka ima jasno definisano
7/plc_pid

znaenje. Neke od ovih rei moraju da se unapred definiu i to se postie jednostavnim


otvaranjem prozora u koji se upisuju podaci (Sl. 2). U istom prozoru mogu se i oitavati
vrednosti pojednih rei ili bitova koje se postavljaju u toku izvravanja programa. Ove
vrednosti mogu se menjati i u toku izvoenja programa navoenjem odgovarajuih
adresa promenljivih.
Strukutra bloka prikazana je u tabeli T. 3.
Ako se definie skaliranje (zadaju se SMAX i SMIN) onda se sve veliine vezane
za proces (Setpoint, Deadzone, SPV, SE) izraavaju u fizikim jedinicama.

Definisanje naina rada Control block Nn:0


Nain pozivanja (obrade signala) Bit TM (Nn:0/0)
TM = 1 izraunavanje se vri periodino sa vrednou definisanom pomou Loop
Update
TM= 0 izraunavanje je kontrolisano pomou prekida (STI potprogram mora imati
isti period ponavljanja kao i Loop Update koji se mora definisati)
Kljuna razlika je u tome to se u prvom sluaju u svakom programskom skenu
obrauje PID naredba (ako je uslov istinit) i tek se tada ustanovljava da li je vreme
da se izvri novi algoritamski korak. Meutim, kod korienja STI, PID naredba se
uopte ne obrauje sve dok se ne aktivira STI servisni potprogram, odnosno sve
dok nije vreme za izvravanje sledeeg algoritamskog koraka.
Runo i automatsko upravljanje Bit AM (Nn:0/1)
AM = 0 automatski nain rada, upravljanje se odreuje na osnovu algoritma. ak
i ako bi se vrednost upravljake promenljive programski promenila,
algoritam e ignorisati ovu promenu.
AM = 1 runo upravljanje, upravljaki signal je promenljiva ija vrednost se moe
programski menjati. (CV vrednost treba da se zadaje kao celobrojna
promenljiva od 0 do 16383). Za vreme runog upravljanja, PID algoritam
aurira CVP (re 16), odreuje greku i aurira integralnu komponentu
urpavljanja, da bi se spreio udar pri promeni reima rada.
Pored eventualnog dovoenja procesa u radnu taku, ova opcija je
korisna u procesu podeavanja parametara PIDa.
Greka Bit CM (Nn:0/2)
CM = 0 signal greke se izraunava kao razlika set-point i vrednosti izlaza
procesa (e = SP PV)
CM = 1 signal greke se izraunava kao razlika vrednosti izlaza procesa i set-
point (e = PV SP)
Struktura PIDa Bit DA (Nn:0/7)
DA = 0 diferencijalno dejstvo po izlazu procesa (PV)
DA = 1 diferencijalno dejstvo po signalu greke
Postavljanjem diferencijalnog dejstva po izlazu izbegavaju se efekti nagle promene
upravljakog signala pri promeni zadane vrednosti
Skaliranje vrednosti parametara Kp i Ti Bit RG (Nn:0/4)
RG = 0 vrednosti parametara izraunavaju se deljenjem zadane celobrojne
vrednosti sa 10
RG = 1 vrednosti parametara izraunavaju se deljenjem zadane celobrojne
vrednosti sa 100
Ukoliko vrednosti parametara nisu velike (manje od 327.67) korienjem ove opcije
8/plc_pid

(RG=1) ostvaruje se vea preciznost u definisanju parametara (manja razlika


izmeu dve uzsatopne digitalne vrednosti parametara).
Ova opcija nije predvina za diferencijalno dejstvo zato to njegova vrednost nikada
nije izuzetno velika.
Kontrola navijanja integratora Bit OL (Nn:0/3)
OL = 0 nema nikakvih ogranienja u pogledu rasta integralnog dejstva, a time i
cele upravljake promenljive
OL = 1 kada upravljaka promenljiva dostigne vrednost zadanih granica, prekida
se izraunavanje integralnog dejstva i ono se zadava na poslednjoj
izraunatoj vrednosti. Integralno desjtvo se ponovo ukljuuje kada
upravljaki signal padne ispod zadanih granica. Sve dok je signal izvan
zadanih granica upravljaki signal ima vrednost CVL (donja granica) ili
CVH (gornja granica).
U oba sluaja, ukoliko upravljaki signal izae izvan granica postavie se
indikatorski bit LL=1 (prekoraenje donje granice), odnosno UL=1 (prekoraenje
gornje granice).
Informacije o radu PIDa
Skaliranje Setpoint-a Bit SC (Nn:0/5)
SC = 0 specificirano je skaliranje Setpoint-a (konverzija u fizike jedinice),
odnosno definisani su SMAX i SMIN
SC = 1 nije definisano skaliranje Setpoint-a
Greka unutar mrtve zone Bit DB (Nn:0/8)
DB = 0 greka nije unutar mrtve zone
OL = 1 signal greke je proao kroz nulu i njegova vrednost je unutar opsega
mrtve zone, to znai da algoritam usvaja da je vrednost greke nula. Otuda, se
upravljaki signal ne menja, te vrednost izlaza procesa ostaje u opsegu koji je odreen
definisanjem mrtve zone. Na ovaj nain mogue je kontrolisati meru do koje se izlaz
procesa eli pribliiti zadanoj vrednosti referentnog signala (setpoint-a).
Upravljaki signal vei od gornje granice Bit UL (Nn:0/9)
UL = 0 upravljaki signal je manji od gornje granice (CVH)
UL = 1 upravljaki signal je vei od gornje granice (CVH), resetovae se kad
bude pao ispod gornje granice
Upravljaki signal manji od donje granice Bit LL (Nn:0/10)
LL = 0 upravljaki signal je vei od donje granice (CVL)
LL = 1 upravljaki signal je manji od donje granice (CVL), resetovae se kad
bude postao vei od donje granice
Setpoint izvan opsega Bit SP (Nn:0/11)
SP = 0 setpoint je unutar opsega definsanog sa SMIN i SMAX
SP= 1 setpoint je manji od SMIN ili vei od SMAX
Izlaz procesa izvan opsega Bit PV (Nn:0/12)
PV = 0 izlaz procesa je unutar opsega definisanog sa SMIN i SMAX
PV = 1 izlaz procesa je manji od SMIN ili vei od SMAX. U tom sluaju vrednost
izlaza se postavlja na SMIN ili na SMAX (to odgovara celobrojnim vrednostima 0 i
16383)
Premala perioda odabiranja Bit TF (Nn:0/6)
9/plc_pid

TF = 0 scen ciklus PLCa i zahtevani period PIDa su usklaeni


TF= 1 PID ne moe da ostvari zahtevani period izraunavanja, zato to sken
ciklus PLCa predugo traje
Informacije o izvravanju PID naredbe
Aktivnost PID naredbe Bit EN (Nn:0/15)
EN = 0 uslov u rangu PID naredbe nije ispunjen
EN= 1 uslov u rangu PID nardbe je ispunjen
Zavretak algoritamskog koraka Bit DN (Nn:0/13)
DN = 0 PID nije zavrio algoritamski korak (ili ga nije ni zapoinjao)
DN = 1 PID je u datom sken ciklusu bio aktiviran i zavrio je jedan algoritamski
korak. Resetuje se automatski kad pone sledei sken ciklus PLCa.
Kodovi za greke pri izvravanju PID naredbe
Ukoliko u toku izvoenja PID naredbe doe do neke greke javlja se kod za
greku 0036. Svakoj vrsti greke pridruen je jednoznaan kod duine 1 bajta koji je
smeten u drugoj rei Control block-a (Msbyte). Kodovi greaka, kao i mogue reakcije
u cilju njihovog uklanjanja prikazani su u tabeli T. 4.

Kode Uzrok greke Mogua reakcija da se greka ukloni


greeke
SLC 5/02 SLC5/03 i vie SLC 5/02 SLC5/03 i vie
11H 1. T > 255 1. T > 1024 postavi T postavi T
2. T = 0 2. T = 0 0 < T < 255 0 < T < 1024
Kc > 255 postavi Kc postavi Kc
12H Kc < 0
Kc = 0 0 < Kc 255 Kc 0

postavi Ti postavi Ti
13H Ti > 255 Ti < 0
0 < Ti 255 Ti 255

Td> 255 Td < 0 postavi Td postavi Td


14H
0 < Td 255 Td 255

21H postavi Smax


Smax> 16383 ili Smax< -16383
(SLC 5/02) -16383 < Smin < Smax < 16383

22H postavi Smin


Smin> 16383 ili Smin< -16383
(SLC 5/02) -16383 < Smin < Smax < 16383
postavi Smin
22H Smin> Smax -16383 < Smin < Smax < 16383
(-32768 do +32767 SLC 5/03 i vie)
Smin> SP> Smax ili SP> 16383
postavi
u prvom prolazu postavi Bit 11
31H Smin < SP< Smax ili (ako se nekoristi skaliranje)
ako se kasnije promeni SP onda javlja
0 < SP< 16383
kod za greku, ali koristi prethodnu SP
Izabrano Nije izabrano
Izabrano skaliranje Nije izabrano skaliranje
skaliranje skaliranje
Deadband< 0 ili
41H . Deadband>
Deadband< 0 ili postavi
(Smax Smin) ili postavi
Deadband> 0 < deadband<(Smax -
Deadband> 0 < deadband< 16383
16383 Smin)< 16383
16383
(5/02)
10/plc_pid

Kode Uzrok greke Mogua reakcija da se greka ukloni


greeke
postavi
51H CVH< 0 ili CVH> 100
0 < CVH< 100

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.

T. 4 Kodovi greaka koje mogu nastati pri korienju PID modula

4. Primeri korienja PIDa


Primer 1. - Skaliranje
PID upravlja snagom grejaa koji zagreva vazduh u nekoj komori. Temperatura u
komori moe da se menja u opsegu tmin = 5oC do tmax=80oC. Temperatura se meri
termospregom koji daje strujni signali u opsegu 4 do 20mA koji se vodi na analogni
ulazni modul u slotu 1.
Kolo za upravljanje grejaem prima strujni signali u opsegu 4 do 20mA, koji
dolazi sa analogni izlazni u slotu 2.
PID radi sa periodom od 100ms i treba da odrava temepraturu na 20 oC.
Napisati STI servisni potprogram koji realizuje PID.
Reenje (Sl. 3)
Pretpostavlja se da su definisani svi potrebni parametri

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 1 PID Sub Error Code (Msbyte)


re 2 Setpoint SP 20
re 3 Kp 500 interpretira se kao 5
re 4 Ti (min/obrt) 20 interpretira se kao 0.2
re 5 Td (min) 2 interpertira se kao 2
re 6 Offset 0

re 7 Setpoint Max Scaled (SMAX) 5


11/plc_pid

re 8 Setpoint Min Scaled (SMIN) 80


re 9 Deadband (mrtva zona) 0
re 10 interna upotreba
re 11 Output Max (CVH) 100

re 12 Output Min (CVL) 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

Izgled maske pri definisanju Control blocka u PID naredbi


12/plc_pid
13/plc_pid

Sl. 3 Servisni potrpogram koji u kome se realizuje PID

Primer 2 - Generisanja irinski modulisanog impulsa


Formirana je PID naredba koja generie upravljaki signal za neki izvrni organ
koji prima irinski modulisane impulse. Izvrni organ je vezan za nulti pin digitalnog
izlaznog modula koji se nalazi u slotu 1
Control block PIDa nalazi se na adresi N10:0. Skalirani merni signal smeten je
na adresi N7:1, upravljaka promenljiva smetena je na adresi N7:2.
Perioda odabiranja PIDa je T=10s.
Formirati leder program koji e na osnovu upravljakog signala koji daje PID
generisati irinski modulisane module.
Reenje (Sl. 5)
Generisani irinski modulisani impuls treba da ima izgled kao na Sl. 4 , gde u(%)
predstavlja vrednost upravljake promenljive svedene na procenat od periode
odabiranja T.

Sl. 4 irinski modulisan upravljaki signal


14/plc_pid

Sl. 5 Realizacija irinski modulisanog impulsa na osnovu izlaza PIDa

Budui da PID daje upravljaki signal (c) kao celobrojnu promenljivu u opsegu od
15/plc_pid

0 do 16383, to znai da veliini c=0 odgovara upravljanje u=0, a veliini c=16383,


upravljanje u=T. Otuda se konverzija upravljakog signala vri prema relaciji
cT
u=
16383
Izlazni signal generie se pomou samoresetujueg asovnika koji meri vreme T
(10s). Sve dok je izmereno vreme manje od u, na izlaz analognog modula se dovodi
vrednost 1. Kada vreme postane vee od u, na izlaz asovnika se dovodi vrednost 0.
Budui da se PID naredba nalazi u samom leder programu on mora sam
generisati periodu odabiranja (timed mode) to znai da se u upravljakom bloku bit TM
(N10:0/0) mora postaviti na 1.

Primer Runi reim rada


Jedan PID modul definisan je preko upravljakog bloka koji se nalazi na adresi
N7:10. PID prima procesnu promenljivu (PV) sa adrese N7:0 i generie upravljaku
promenljivu na adresi N7:1 (CV).
Izbor izmeu runog i automatskog reima rada obavlja se pomou
dvopoloajnog prekidaa. Poloaj prekidaa koji oznaava automatski reim rada vezan
je preko prvog pina digitalnog ulaznog modula, koji se nalazi u slotu 2, dok je poloaj
koji oznaava runi reim vezan za drugi pin istog modula.
Runo upravljanje generie se pomou jednog trocifrenog BCD digitalnog
davaa koji je vezan je za prvih 12 pinova digitalnog ulaznog modula koji se nalazi u
slotu 1. (Preostali pinovi tog modula se ne koriste). Runo upravljanje se zadaje kao
procenat od maksimalne aktivnosti izvrnog organa (u opsegu od 0 do 100). Izvrni
organ je tako odabran da prima stvarni, apsolutni iznos upravljanja.
Zahtev za oitavanje stanja na davau vri se pritiskom na taster koji je vezan za
nulti pin digitalnog ulaza u slotu 2.
Formirati deo leder programa koji realizuje runo upravljanje.
Reenje
Svaki put kad se pritisne taster podatak sa BCD davaa se konvertuje u
celobrojnu promenljivu c i smeta na adresu N7:2. Ukoliko je zadana vrednost u
dozvoljenom opsegu, na osnovu nje se izraunava stvarna apsolutna vrednost ulaza
izvrnog organa u. Konverzija se vri prema relaciji
16383c
CV =
100
Dobijena vrednost se smeta kao CV na odgovarajuu adresu PID modula.
Predpostavlja se, naime, da se u preostalom delu leder programa nalaze naredbe koje
e, nezavisno od reima rada PIDa, ovu vrednost skalirati u skladu sa odabranim
analognim izlaznim modulom i obezbediti smetanje rezultata na izlaznu adresu koju
odreuje analogni izlazni modul.
Ukoliko je vrednost izvan opsega postavlja se indikatorski bit.
Potrebno je zapaziti da se, i pored toga to je PID u runom reimu rada, on
aktivira u skladu sa periodom odabiranja. Tom prilikom on koristi vrednost upravljake
promenljive (CV) za auriranje procentualne vrednosti upravljake promenljive (CVP -
re 16 upravljakog bloka), odreivanje signala greke i auriranje integralnog dejstva
(rei 17 i 18 upravljakog bloka).
16/plc_pid

You might also like