You are on page 1of 238

PROGRAMABILNI LOGIČKI KONTROLERI

ALLEN BRADLEY – SLC500

SRBIJANKA TURAJLIĆ

BEOGRAD, 2008
i

SADRŽAJ

1. PROGRAMABILNI LOGIČKI KONTROLER (PLC) .................................... 1


1.1. OSNOVNE KARAKTERISTIKE PLC-A............................................................... 1
1.1.1. SLC 500 Procesorski modul............................................................................. 3
1.1.2. Organizacija RAM memorije kontrolera SLC 500 ............................................. 4
1.2. ORGANIZACIJA DATOTEKA PODATAKA ........................................................... 4
1.2.1. Tipovi promenljivih i datoteka........................................................................... 4
1.2.2. Element datoteke............................................................................................. 5
1.2.3. Kreiranje datoteke i zauzeće memorije ............................................................ 7
1.2.4. Indirektno adresiranje ...................................................................................... 8
1.2.5. Indeksno adresiranje........................................................................................ 8
1.2.6. Adresiranje datoteka...................................................................................... 10
1.2.7. Programske konstante ................................................................................... 10
1.3. DISKRETNI U/I MODULI .............................................................................. 10
1.3.1. Ulazno/izlazni modul ...................................................................................... 10
1.3.2. Sprezanje U/I modula sa kontrolerom ............................................................ 11
1.3.3. Vezivanje digitalnih uređaja za digitalni modul ............................................... 13
1.4. ANALOGNI U/I MODULI ............................................................................... 14
1.4.1. Analogni ulazni kanal ..................................................................................... 15
1.4.2. Analogni izlazni kanal .................................................................................... 16
1.5. FORMIRANJE APLIKACIJE ........................................................................... 17

2. LEDER PROGRAMIRANJE ................................................................ 20


2.1. UVOD U LEDER PROGRAMIRANJE ................................................................ 20
2.2. BIT NAREDBE ............................................................................................ 21
2.2.1. Bit naredbe za definisanje uslova................................................................... 22
2.2.2. Bit naredbe za postavljanje vrednosti izlaza................................................... 22
2.2.3. Bit triger naredba ........................................................................................... 23
2.2.4. Programski sken i vremenski dijagram........................................................... 24
2.2.5. Primeri ........................................................................................................... 25
2.3. NAREDBE ZA MERENJE VREMENA I PREBROJAVANJE DOGAĐAJA .................... 30
2.3.1. Časovnik i brojač ........................................................................................... 30
2.3.2. Datoteka podataka o časovniku (Timer data file) ........................................... 31
2.3.3. Naredbe za rad sa časovnikom...................................................................... 32
2.3.4. Način rada časovnika..................................................................................... 35
2.3.5. Datoteka podataka o brojaču (Counter data file) ............................................ 36
2.3.6. Naredbe za rad sa brojačem.......................................................................... 36
2.3.7. Primeri korišćenja časovnika i brojača ........................................................... 37

3. LEDER NAREDBE ZA OPERACIJE NAD PODACIMA ............................... 48


3.1. NAREDBE ZA OPERACIJE NAD PODACIMA ..................................................... 48
3.2. NAREDBE ZA POREĐENJE .......................................................................... 48
3.3. MATEMATIČKE NAREDBE............................................................................ 50
3.3.1. Opšte napomene ........................................................................................... 50
3.3.2. Pregled matematičkih naredbi........................................................................ 52
3.4. NAREDBE ZA MANIPULACIJU SA NUMERIČKIM PODACIMA................................ 58
3.5. NAREDBE ZA KONVERZIJU .......................................................................... 60
3.6. NAREDBA ZA PREMEŠTANJE BAJTOVA ......................................................... 63
ii

3.7. PRIMERI KORIŠĆENJA NAREDBI ZA MATEMATIČKE OPERACIJE ........................ 64

4. NAREDBE ZA RAD SA DATOTEKAMA PODATAKA ..................................74


4.1. OPŠTE NAPOMENE .................................................................................... 74
4.2. NAREDBE ZA KREIRANJE DATOTEKE ............................................................ 75
4.3. NAREDBE ZA TRANSLACIJU BITOVA ............................................................. 75
4.4. NAREDBE ZA SEKEVENCIJALNU OBRADU PODATAKA ...................................... 77
4.4.1. Naredbe za sekvencijalni rad sa datotekama ................................................ 77
4.5. NAREDBE ZA FORMIRANJA STEKA ............................................................... 81

5. NAREDBE ZA UPRAVLJANJE IZVRŠAVANJEM PROGRAMA .....................85


5.1. OPŠTE NAPOMENE .................................................................................... 85
5.2. NAREDBA ZA SKOK .................................................................................... 85
5.3. POTPROGRAMI .......................................................................................... 86
5.4. PROMENA TOKA SKEN CIKLUSA ................................................................... 87
5.5. AŽURIRANJE ULAZNIH I IZLAZNIH PODATAKA ................................................. 88
5.6. SISTEM PREKIDA (INTERRUPT).................................................................... 89
5.6.1. Tipovi prekida i hijerarhijski nivoi ................................................................... 90
5.6.2. User Fault Routine ........................................................................................ 91
5.6.3. DII – Discrete Input Interrupt.......................................................................... 95
5.6.4. STI – Selectable timed interrupt .................................................................... 99
5.6.5. I/O Prekid .....................................................................................................104

6. NAREDBA ZA REALIZACIJU PROPORCIONOLNO-INTEGRALNO-


DIFERENCIJALNOG ZAKONA UPRAVLJANJA (PID) ...................................107
6.1. JEDNAČINA PIDA .................................................................................... 107
6.2. SKALIRANJE MERNIH I UPRAVLJAČKIH SIGNALA ........................................... 108
6.3. PID NAREDBA ........................................................................................ 110
6.4. PRIMERI KORIŠĆENJA PIDA...................................................................... 115

7. NAREDBE ZA KOMUNIKACIJU SLCA ...............................................123


7.1. NAREDBE ZA RAD SA ASCII KARAKTERIMA ................................................ 123
7.1.1. ASCII naredbe za manipulaciju karakterima .................................................124
7.1.2. ASCII naredbe za komunikaciju....................................................................125
7.1.3. Primeri korišćenja ASCII naredbi..................................................................129
7.2. NAREDBE ZA KOMUNIKACIJU SLCA U MREŽI............................................... 134
7.2.1. Format naredbi za komunikaciju...................................................................134
7.2.2. SLC kontroler kao odredišni uređaj (500CPU)..............................................135
7.2.3. Odredišni uređaj je 485CIF (emulator PLC-2)...............................................138
7.2.4. Komunikacija preko eterneta ........................................................................141
7.2.5. Indikatori statusa ..........................................................................................142
7.2.6. Izvršavanje message naredbe......................................................................144
7.2.7. Primeri korišćenja mesage naredbi...............................................................146

8. KOMUNIKACIJA SLC-A .................................................................153


8.1. KONFIGURISANJE KOMUNIKACIONIH KANALA SLC KONTROLERA .................. 153
8.1.1. Konfiguracija kanala 0 ..................................................................................154
8.1.2. Opšte specifikacije mreže.............................................................................155
8.2. DH-485 MREŽA ...................................................................................... 155
8.3. DH+ MREŽA ........................................................................................... 157
8.4. ETERNET MREŽA ..................................................................................... 159
iii

8.4.1. Konfiguracija Eternet mreže......................................................................... 159


8.4.2. Dijagnostička datoteka................................................................................. 162
8.5. RS-232 INTERFEJS ................................................................................. 163
8.6. DF1 PUNI DUPLEKS PROTOKOL (POINT-TO-POINT)...................................... 163
8.6.1. Konfiguracija kontrolera ............................................................................... 164
8.6.2. Dijagram toka procesa ................................................................................. 164
8.6.3. Dijagnostička datoteka................................................................................. 165
8.7. DF1 POLU-DUPLEKS PROTOKOL ............................................................... 165
8.7.1. DF1 polu-dupleks standardni master protokol .............................................. 166
8.7.2. DF1 poludupleks - message based mode .................................................... 173
8.7.3. DF1 polu-dupleks slave protokol.................................................................. 174
8.8. KORIŠĆENJE MODEMA ZA DF1 PROTOKOLE ............................................... 175
8.8.1. Signali za upravljanje modemima................................................................. 176
8.8.2. Način rada modema u zavisnosti od Control line parametra ........................ 177
8.8.3. Komunikacija preko telefonskih linija............................................................ 178
8.9. ASCII KOMUNIKACIONI PROTOKOL............................................................ 181

DODACI ............................................................................................ 183

A. DIGITALNI SENZORI I DIGITALNI IZVRŠNI ORGANI............................... 185

B. ELEMENTI RAČUNARSKIH KOMUNIKACIJA ....................................... 189


B.1. OSNOVE RAČUNARSKIH KOMUNIKACIJA ......................................................... 189
B.1.1. Uređaji za prenos podataka......................................................................... 190
B.1.2. Komunikacioni kanali................................................................................... 191
B.1.3. Protokol ....................................................................................................... 193
B.1.4. Sedmoslojni OSI model ............................................................................... 194
B.1.5. Standardi fizičkih veza................................................................................. 195
B.2. KOMUNIKACIONE MREŽE ............................................................................. 197
B.2.1. WAN mreže................................................................................................. 197
B.2.2. Komponente LAN-a ..................................................................................... 197
B.2.3. Topologija LAN mreža ................................................................................. 199
B.2.4. Tehnike upravljanja radom mreže i metode pristupa mreži .......................... 199

C. INDUSTRIJSKE (UPRAVLJAČKE) RAČUNARSKE MREŽE ...................... 203


C.1. NIVOI KOMUNIKACIJA PRI UPRAVLJANJU PROCESOM....................................... 203
C.2. STRUKTURA UPRAVLJAČKIH MREŽA .............................................................. 204
C.3. INDUSTRIJSKE MAGISTRALE ......................................................................... 206
C.4. MREŽE I PROTOKOLI ZA MASTER/SLAVE KOMUNIKACIJU .................................. 207
C.4.1. Udaljeni U/I uređaji (remote I/O) .................................................................. 207
C.4.2. Standardni master/slave protokoli ............................................................... 208
C.5. MREŽE I PROTOKOLI KOJI RADE NA PRINCIPU RAZMENE ŽETONA...................... 209
C.5.1. DH485 mreža .............................................................................................. 209
C.5.2. ControlNet mreža ........................................................................................ 210
C.6. MREŽE I PROTOKOLI KOJI RADE NA PRINCIPU VIŠESTRUKOG EMITOVANJA ........ 211
C.6.1. DeviceNet (CAN Bus) mreža....................................................................... 211
C.6.2. Ethernet (CSMA/CD)................................................................................... 212
C.7. BEŽIČNA KOMUNIKACIJA PREKO GSM MREŽE ............................................... 213

D. SCADA – SUPERVISORY CONTROL AND DATA ACQUISITION............ 217


D.1. OD TELEMETRIJE DO SCADA-E................................................................... 217
D.2. PRIMENA RAČUNARA U REALIZACIJI NADZORNO UPRAVLJAČKIH SISTEMA .......... 219
iv

D.3. NADZORNO-UPRAVLJAČKI SISTEM – SCADA SISTEM ..................................... 220


D.4. SCADA SISTEMI – HARDVER I FIRMVER ........................................................ 222
D.4.1. Udaljene stanice (RTU Remote Terminal Units)...........................................222
D.4.2. Centralna stanica.........................................................................................223
D.4.3. Komunikacija ...............................................................................................224
D.5. PROJEKTOVANJE SCAD-E – SCADA SOFTVER ............................................ 225
D.6. OPERATORSKI TERMINALI ............................................................................ 228
PLC_uvod/1

1. PROGRAMABILNI LOGIČKI KONTROLER (PLC)

1.1. OSNOVNE KARAKTERISTIKE PLC-A


Prema standardizaciji Udruženja proizvođača električne opreme (The National
Electrical Manufacturers Association -NEMA) programabilni logički kontroler je definisan
kao:
“Digitalni elktronski uređaj koji koristi programabilnu memoriju za pamćenje
naredbi kojima se zahteva izvođenje specifičnih funkcija, kao što su logičke
funkcije, sekvenciranje, prebrojavanje, merenje vremena, izračunavanje, u
cilju upravljanja različitim tipovima mašina i procesa preko digitalnih i
analognih ulazno-izlaznih modula.”
Prvobitno PLC je zamišljen kao specijalizovani računarski uredjaj koji se može
programirati tako da obavi istu funkciju kao i niz logičkih ili sekvencijalnih elemenata koji
se nalaze u nekom relejnom uređaju ili automatu. Postepeno, obim i vrsta operacija koju
može da obavi PLC proširena je uključivanjem složenijih funkcija potrebnih za direktno
digitalno upravljanje nekim sistemom.
Međutim, nezavisno od repertoara
funkcija, od samog početka
projektovanja PLC-a, vodilo se računa
o tome da on treba da radi u krajnje
nepovoljnim klimo-tehničkim uslovima
koji vladaju u industrijskom okruženju i
da treba da bude dovoljno fleksibilan
u smislu prilagođavanja različitim
izmenama na procesu. Otuda je PLC
projektovan kao izuzetno pouzdan
modularan uređaj koji se veoma lako
održava i programira. Pored toga,
najveći broj metoda za programiranje
PLC-a zasniva se na grafičkom
metodu - lestvičasti logički dijagram
(ledder programiranje) – koji je već
SL. 1-1 FUNKCIONALNI BLOK DIJAGRAM PLC-A
dugi niz godina u upotrebi u industriji
pri projektovanju logičkih i
sekvencijalnih relejnih uređaja.
Funkcionalna organizacija PLC-a prikazana je na slici (Sl. 1-1). Procesorski modul
sadrži centralnu jedinicu i memorju. U okviru ovog modula smeštaju se i program i podaci
i odatle se upravlja radom celog sistema. Ulazni moduli sadrže digitalne i analogne ulaze
preko kojih se primaju signali sa senzora i druge merne opreme. Upravljački i indikatroski
signali koji se izračunavaju u PLCu, prenose se na izvršne organe preko izlaznih modula
koji sadrže digitalne i analogne izlaze. Specijalni U/I moduli obuhvataju opremu koja
obavlja određene funkcije, kao što su brzi brojač, "inteligentna" merna oprema, pozicioni
servo sistem, PID regulator itd. Komunikacioni
moduli obezbeđuju spregu sa računarskim
uređajima u mreži i/ili operatoriskim uredjajima
preko kojih se PLC programira i nadzire njegov
rad.
PLC se sastoji iz šasije (rack) koja ima
određeni broj slotova u koji se stavljaju pojedini
moduli. Prvi dva slota u šasiji zauzimaju uredjaj za
SL. 1-2 IZGLED PLC-A napajanje i procesorski modul, dok je raspored
modula u preostalim slotovima proizvoljan (Sl. 1-2).
PLC_uvod/2

U zavisnosti od broja modula, PLC može imati i više od jedne šasije. Svaka šasija ima
sopstveno napajanje, dok se procesorski modul nalazi samo u prvoj šasiji. Programabilini
logički kontroleri iz familije Allen Bradley SLC 500 Modular Controllers mogu imati najviše
tri šasije sa najviše 30 slotova. Pri tome, postoje šasije sa 4, 7, 10 i 13 slotova (Sl. 1-3).
Kao što se vidi, PLC se razlikuje od računarskog sistema opšte namene po tome
što nema spoljnu memoriju (diskove), kao i niz standardne ulazno/izlazne opreme. Pored
toga, njegov operativni sistem je jednostavniji i pruža komparativno manje mogućnosti od
računara opšte namene. Zapravo, PLC je koncipiran i projektovan za jedan relativno uzan
i jasno definisan obim poslova vezanih za nadzor i upravljanje pojedinim uređajima, što je
rezultovalo u njegovoj izuzetnoj efikasnosti i jednostavnosti. U izvesnom smislu, područje
primene PLC-a isto je kao i za specijalizovane mikroračunarske kontrolere ili signal
procesore. Ključna razlika leži u činjenici da korišćenje PLC-a ne zahteva od korisnika
gotovo nikakvo predznanje o arhitekturi mikroračunarskih sistema i programiranju. Drugim
rečima, korisnik PLC-a je u najvećoj mogućoj meri oslobođen rešavanja različitih
problema vezanih za čisto računarski aspekt, kao što su promena ili dodavanje U/I
jedinica, vezivanje u računarsku
mrežu, razema podataka i sl. i može
da se u punoj meri koncentriše na
projektovanje same aplikacije.
Može se slobodno reči da se
PLC od svih drugih računarskih
uredjaja slične namene razlikuje po
svom operativnom sistemu, koji je
skrojen tačno za određenu vrstu
primene. Naime, predpostavlja se
SL. 1-3 ALLEN BRADLEY SLC 500 KONTROLERI da će u svojoj osnovnoj formi,
PLC biti korišćen za realizaciju
izvesnih funkcija koje periodično preslikavaju signale sa merne opreme u signale koji se
prenose na aktuatore. Otuda se od PLC-a očekuje da periodično očitava (unosi) signale
sa senzora, izvršava određen broj aritmetičko-logičkih operacija (u skladu sa zadanom
funkcijom) čiji rezultati se prenose na izvršne organe ili neke druge indikatorske uređaje.
Pored toga, sa istom ili nekom drugom učestanošću, PLC treba da održava komunikaciju
(razmenjuje podatke) sa nekim drugim računarskim sistemima u mreži. Polazeći od ovog
zahteva, operativni sistem PLC-a projektovan je tako da, u toku rada sistema, automatski
obezbedi ciklično ponavljanje navedenih aktivnosti (Sken ciklus) kao što je to ilustrovano
na Sl. 1-4.
Sken ciklus započinje sa ulaznim skenom u
okviru koga PLC očitava sadržaj ulaznih linija
(registara ulaznih modula). Očitani podaci se
prenose u odredjeno područje memorije – slika
ulaza. Zatim se aktivira programski sken u okviru
koga procesor izvršava programske naredbe kojima
su definisane odgovarajuće aritmetičko-logičke
funkcije. Podaci (operandi) koji se koriste u
programskim naredbama uzimaju se iz memorije i to
iz područja označenog kao slika ulaza (ako su
2. ms k i operandi ulazni podaci) ili iz područja gde se
r a smeštaju interne promenljive. Rezultati obrade se
og en
pr sk smeštaju u posebno područje memorije – slika
izlaza. Ovde je važno da se istakne da se pri
izvršavanju programskih naredbi ne uzimaju podaci
disrektno sa ulaznih modula, niti se rezultati direktno
SL. 1-4 SKEN CIKLUS PLC-A iznose na izlazne module, već program
razmenjuje podatke isljučivo sa memorijom (Sl.
1-5) . Po zvršetku programskog skena, operativni sistem PLC-a aktivira izlazni sken u
PLC_uvod/3

okviru koga se podaci iz slike


izlaza prenose na izlazne linije
(registre izlaznih modula).
Četvrti deo sken ciklusa –
komunikacija - namenjen je
ulazni moduli

realizaciji razmene podataka

izlazni moduli
sa uređajima koji su povezani
sa PLC-om. Nakon toga,
operativni sistem dovodi PLC
u fazu održavanja u okviru
koje se ažuriraju interni
časovnici i registri, obavlja
upravljanje memorijom kao i
niz drugih poslova vezanih za
održavanje sistema, o kojima
korisnik i ne mora da bude informisan. U zavisnosti od tipa procesora ulazni i izlazni sken
SL. 1-5 RAZMENA PODATAKA ZA VREME SKEN CIKLUSA ciklus izvršavaju se u vremenu
reda mili sekundi (od 0.25 ms
do 2,56 ms). Trajanje programskog skena, svakako zavisi od veličine programa. Osnovni
sken ciklus može biti modifikovan pomoću zahteva za prekid ili nekih drugih specijalnih
programskih naredbi o kojima će kasnije biti više reči.
Gledano potpuno opšte, od korisnika PLC-a se očekuje da, u zavisnosti od
aplikacije koju namerava da razvije, izvrši izbor ulaznih, izlaznih komunikacionih i
specijalnih modula, dakle da odabere strukturu PLC-a i da formira program obrade
podataka. Sve ostale aktivnosti obavljaće i nadzirati operativni sistem PLC-a.

1.1.1. SLC 500 PROCESORSKI MODUL


Kao što je već rečeno procesorski modul sadrži centralnu procesorsku jedinicu
(CPU) i memoriju. Centralna jedinica obuhvata aritmetičko-logičku jedinicu (ALU), registre
i upravljačku jedinicu. U funkcionalnom smislu centralna jedinica se bitno ne razlikuje od
centralne jedinice bilo kog mikroračunara opšte namene. Osnovna razlika se ogleda u
skupu naredbi koji je odabran tako da se zadovolje osnovni zahtevi u pogledu korišćenja
PLC-a. Osnovne karakteristike procesorskog modula izražavaju se preko sledećih
elemenata.
• Memor ija(RAM) - je okarakterisana svojom veličinom, mogućnošću proširenja i
konfigurisanja za smeštanja programa ili podataka.
• U/I tačke - su okarakterisane najvećim brojem lokalnih U/I adresa koje podržava
procesor u toku ulaznog i izlaznog skena, kao i mogućnošću proširenja preko udaljenih
U/I. (Pod udaljenim U/I podrazumeva se posebna šasija koja sadrži U/I module koji
razmenjuju podatke sa PLC-om).
• Komunikacione opcije - odnose se na raznovrsnost uredjaja za spregu
(komunikaciong interfejsa) koji podržavaju različite topologije mreža i različite
komunikacione protokole.
• Opcije trajnog pamćenja - odnose se na raspoloživost različitih tipova
memorijskih EPROM modula koji obezbeđuju trajno pamćenje podataka.
• Perf ormansa - se specificira preko vremena programskog skeniranja potrebnog za
1Kbajt programa, preko vremena potrebnog za ulazni i izlazni sken, kao i vremena
izvršavanja jedne bit naredbe.
• Programiranje - se specificira u odnosu na broj različitih mašinskih naredbi, kao i na
vrstu raspoloživih programskih jezika.
PLC_uvod/4

1.1.2. ORGANIZACIJA RAM MEMORIJE KONTROLERA SLC 500


Operativni sistem kontrolera, koji realizuje sken cikluse, upravlja i zauzećem RAM
memorije, koja je organizovana na poseban način. U principu, RAM meorija se deli na
programske datoteke (program files ) i datoteke podataka (data files ). Skup programa i
datoteka podataka koje su formirane za jednu aplikaciju čini processor file (procesorsku
datoteku). Ona sadrži sve naredbe, podatke i specifikaciju modula koji su relevantni za
datu aplikaciju, odnosno korisnički program. Procesorska datoteka čini jednu celinu koja
se može prenositi sa jednog procesorskog modula na drugi, sa odnosno na EPROM
memorijski modul, kao i operatorski terminal. To zapravo znači da se jedna aplikacija
može razviti na jednom sistemu i zatim u celini preneti i koristiti na drugom sistemu.
• Programske datoteke
Programske datoteke sadrže,informacije o samom kontroleru, glavni korisnički
program i potprograme. Svaka aplikacija (procesorska datoteka) mora da ima
sledeće tri programske datoteke:
o Sistemski program (System Program) – datoteka 0 - sadrži različite informacije o
samom sistemu kao što su tip proceosra, konfiguracija U/I modula, ime procesorske
datoteke, lozinku i niz drugih relevantnih podataka.
o Datoteka 1 (Reserved) – datoteka rezervisna za potrebe operativnog sistema
o Glavni leder program (Main Ladder Program) – datoteka 2 – program koji formira sam
korisnik i u okviru koga se definiše niz operacija koje SLC treba da izvede.
o Leder potprogram (Subroutine Ladder Program) – datoteke 3 do 255 – korisnički
potprogrami koji se aktiviraju u skladu sa naredbama za njihovo pozivanje koje se
nalaze u glavnom programu.
• Datoteke podataka
Datoteke podataka sadrže podatke koji se obradjuju pomoću naredbi leder
programa. Pri tome se pod pojmom podaci podrazumevaju konvertovane (numeričke)
vrednosti signala koji se preko ulazno/izlaznih modula unose u konrtoler, ili se iz
kontrolera prenose na izlazne uređaje, kao i interne promenljive koje se koriste kao
operandi u različitim operacijama. Datoteke podataka organizovane su u skladu sa tipom
promenljivih koje sadrže. To zapravo znači da jedna datoteka sadrži samo jedan tip
(vrstu) podataka. Jedna procesorska datoteka može da ima najviše 256 datoteka
podataka.

1.2. ORGANIZACIJA DATOTEKA PODATAKA

1.2.1. 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 odrđeuju i njenu organizaciju, koja zavisi od vrste
podatka i usvojenog načina za njegovo prikazivanje u računaru.
Jedna datoteka se označava pomoću rednog broja, koji jednoznačno određuje
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 može da se menja (T. 1-1). Tipove preostalih datoteke korisnik sam odabira i definiše u
skladu sa aplikacijom koju razvija.
Specijalni U/I moduli imaju takođe memoriju u kojoj se, pored ostalog, nalaze i
njima pridružene datoteke. One se označavaju kao M0 i M1 datoteke, i njihova
organizacija zavisi od specifičnosti pojedinog modula.
PLC_uvod/5

TIP BROJ NAZIV OPIS


Sadrži sliku izlaza; sadržaj datoteke se prenosi na izlazne
O 0 Izlaz (Output)
linije za vreme izlaznog skena.
Sadrži sliku ulaza; u ovu datoteku se za vreme ulaznog skena
I 1 Ulaz (Input)
smeštaju vrednosti sa ulaznih linija.
Sadrži podatke vezane za rad kontrolera. Pregled značenja
2 S Status
pojedinih bitova u ovoj datoteci dat je u posebnom dodatku
3 B Bit Sadrži interne promenljive bit tipa
Časovnik
4 T Sadrži podatke koji se koriste za interne časovnike
(Timer)
Brojač
5 C Sadrži podatke koji se koriste za interne brojače
(Counter)
Upravljanje Sadrži dodatne parametre neophodne za izvršavanje jednog
6 R
(Control) broja naredbi
Celobrojna Sadrži podatke celobrojnog tipa (16 bitni brojevi u opsegu
7 N
(Integer) −32768 do 32767)
sadrži podatke predstavljene u tehnici pokretnog zareza kao
Realna
8 F 32-Sbit brojeve u opsegu ±1.1754944e-38 do
(Floating point)
±3.40282347e+38. Važi samo za kontrolere SLC 5/03 i više.
Ove datoteke definiše korisnik kao datoteke tipa B, T, C, N.
Za procesore tipa SLC 5/03 i više korisnik može da definiše i
Korisničke
9 - 255 datoteke tipa F, St - string, A - ASCII.
datoteke
Pored toga datoteka 9 se može koristiti i kao komunikacioni
interfejs, o čemu će kasnije biti više reči.

T. 1-1 DATOTEKE PROMENLJIVIH

1.2.2. ELEMENT DATOTEKE


Osnovna jedinica datoteke je jedan element. Svaki elemenat se satoji iz nekoliko
16-bitnih reči. Broj reči koje čine jedan element zavisi od tipa datoteke, odnosno vrste
podataka koji se u nju smeštaju.
Kao što je već istaknuto, podaci koji su smešteni u datotekama predstavljaju
operande (promenljive) koje se koriste u pojedinim programskim naredbama. Svaka od
ovih promenljivih ima definisanu logičku adresu. Pri tome, adrese omogućavaju da se
pozove ne samo elemenat u celini, već i njegov deo. To znači da se mogu adresirati
pojedine reči u okviru elementa ili pojedini bitovi u okviru reči. Budući da su podaci u
izvesnom smislu hijerarhijski organizovani: 1 elemenat sadrži nekoliko reči, a 1 reč 16
bitova, to su i odgovarajuće adrese struktuirane po istom hijerahijskom principu. Pojedine
reči i bitovi u nekim datotekama imaju i pridružene akronime, što dodatno olakšava
njihovo korišćenje. Napomenimo i
da se svakom elementu, reči ili bitu
u okviru elementa, u fazi formiranja
aplikacije može dodeliti i simboličko
ime.
Sve adrese se formiraju tako
što se određuje relativni položaj
(nulti, prvi, drugi,...) u odnosu na
početak grupe kojoj adresa pripada.
Za elemente to je položaj u odnosu
na početak datoteke, za reč u
odnosu na početak elementa, a za
SL. 1-6 FORMAT ADRESE
bit u odnosu na početak reči u kojoj
se bit nalazi (Sl. 1-6). Izuzetno, bit se može adresirati i preko relativnog položaja u odnosu
na početak elementa.
Adresa elementa – u principu, svaki element u okviru datoteke se identifikuje
PLC_uvod/6

pomoću njegovog relativnog položaja u odnosu na početak datoteke (nulti, prvi, drugi, …
element).
DUŽINE ELEMENATA U POJEDINIM DATOTEKAMA DATE SU U TABELI T. 1-2 VELIČINE ELEMENATA POJEDINIH
DATOTEKA
. Potrebno je da se istakne da se teorijski u svakoj datoteci mogu adresirati i
elemenat u celini i njegove reči i bitovi. U tabeli su, međutim, navedene samo one adrese
koje sa aspekta vrste podatka i načina organizacije datoteke imaju smisla. Podrazumeva
se pri tome da je:
adresirani bit 0 ≤ b ≤ 15
adersirni element 0 ≤ e ≤ 255
MOŽE SE UOČITI DA SU IZ TABELEI T. 1-2 VELIČINE ELEMENATA POJEDINIH DATOTEKA
izostavljene ulazne i izlazne datoteke (I i O). Ovo je učinjeno zato što one donekle
odstupaju od navedenog pravila. Naime, kao što će se kasnije videti, kod ovih datoteka
elementi mogu biti dužine od jedne ili dve reči, što zavisi od tipa U/I modula. Element ovih
datoteka je zapravo određen slotom u šasiji u koji se modul postavlja.
TIP DUŽINA
ADRESIRA SE
DATOTEKE ELEMENTA
bit “b” - Xf:e/b ;
B, N, A 1 reč
element “e“ – Xf:e
F 2 reči element “e“ – Xf:e
bit “b” u reči 0– Xf:e.0/b ; (indikatori stanja su bitovi reči 0)
T, C, R 3 reči
reč “w“ – Xf:e.w ; w = {1,2}, promenljive su u rečima 1 ili 2
bit “b” u reči “w”– Xf:e.w/b
St 42 reči reč “w“ - “ – Xf:e.w ; 0 ≤ w ≤ 41
element “e” – Xf:e

T. 1-2 VELIČINE ELEMENATA POJEDINIH DATOTEKA


U CILJU ILUSTRACIJE ORGANIZACIJE DATOTEKA POSMATRAJMO BINARNU DATOTEKU. MAKSIMALNA VELIČINA
OVE DATOTEKE IZNOSI 256 ELEMENATA. SVAKI ELEMENAT JE JEDNA 16-BITNA REČ, ŠTO ZNAČI DA OVA
DATOTEKA MOŽE IMATI NAJVIŠE 4096 BITOVA. U SKLADU SA IZLOŽENIM NAČINIMA ADRESIRANJA, JEDAN BIT
MOŽE BITI ADRESIRAN POMOĆU REDNOG BROJA ELEMENTA (0 - 255) I REDNOG BROJ BITA U OKVIRU
ELEMENTA (0 – 15) ILI POMOĆU REDNOG BROJA BITA U OKVIRU DATOTEKE (0 – 4095), KAO ŠTO JE TO
ILUSTROVANO U TABELI T. 1-3 DATOTEKA 3 – BIT
. Bit označen sa * je jedanaesti bit u drugom elementu, odnosno četrdesetčetvrti
bit u celoj datoteci. Prema tome njegova adresa je B3:2/11 ili B3/44. Iz tabele se takođe
vidi da je moguće da se adresira i ceo element ove datoteke.
DATA FILE 3 – BIT FILE
ADRESE POJEDINIH
ADRESA ELEMENTA BITOVI
BITOVA
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:255/0 ... B3:255/15
B3:255
B3/4080 … B3/4095

T. 1-3 DATOTEKA 3 – BIT


Potrebno je da se zapazi da će u svakoj datoteci tipa bit koju korisnik sam definiše
adrese biti iste, s tim što će se umesto broja datoteke (3) staviti broj koji korisnik
pridružuje svojoj datoteci (9 - 255).
O organizaciji ostalih datoteka biće reči kasnije kada se budu opisivali moduli ili
PLC_uvod/7

funkcije koje su sa njima povezane.

1.2.3. KREIRANJE DATOTEKE I ZAUZEĆE MEMORIJE


Jedna datoteka podataka zauzima memorijski prostor koji obuhvata niz susednih
reči. Broj reči koje zauzima jedna datoteka određen je najvećom 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 navođenjem odgovarajuće adrese u
programu. Prvo navođenje broja datoteke inicijalizuje njeno kreiranje. Pri tome tip
datoteke koji je naveden u adresi određuje broj reči koje se pridružuju jednom elementu,
dok adresa elementa određuje niz konsekutivnih elemenata za koje se u memoriji
rezerviše prostor. Taj niz počinje od nule, a završava se sa adresom elementa koja je
navedena u naredbi.
Ako se kasnije pojavi
veća adresa elementa
iste datoteke onda se
prethodno rezervisani
prostor proširi tako da
uključi i tu adresu.
Predpostavimo
da se u programskim
naredbama pojavljuju
redom adrese
operanada F8:3, F8:1 i
F8:5. U tom slučaju, pri
kreiranju prve naredbe
rezervisaće se
memorijski prostor za
datoteku 8 i zauzeti
ukupno 8 reči (elementi
0,1,2 i 3 ; svaki element
po dve reči). Kada se
kasnije naiđe na adresu
F8:1, ona neće
prouzrokovati nikakve
promene u zauzeću
memorije, jer je
memorijski prostor za
taj element već zauzet.
SL. 1-7 PROMENA ZAUZEĆA RAM MEMORIJE PRI OBRAĐIVANJU NAREDBI
Međutim, adresa F8:5,
dovešće do povećanja
zauzetog prostora na ukupno 12 reči (6 elemenata), kao što je to ilustrovano na slici Sl.
1-7. Ovde je takođe predpostavljeno da su pre nailaska na pomenute tri naredbe, nekim
drugim naredbama već kreirane datoteka N7 i korisnička datoteka 9, kojoj je pridružen tip
B.
Potrebno je da se istakne da veličina datoteke nije određena stvarnim brojem
elemenata koji se koriste, već najvećem adresom. U posmatranom primeru se tako koriste
samo tri elementa datoteke 8, ali je zauzet prostor za 6 elemenata. To nadalje znači, da
se pažljivim izborom adresa elemenata može ostvariti ušteda u zauzetom memorijskom
prostoru.
Kao što je već rečeno, dozvoljeno je kreiranje najviše 256 datoteka podataka.
Samo se po sebi razume da će broj kreiranih datoteka zavisiti od promenljivih koje
korisnik definiše u programu. Pri tome sve kreirane datoteke ređaju se u nizu jedna iza
druge. U formiranoj aplikaciji, datoteke podataka zauzimaju jedan neprekidan memorijski
PLC_uvod/8

prostor. Redni brojevi ovih datoteka poređani su u rastućem nizu, ali ne moraju da čine
kontinualni 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 omogućuje da se rezerviše odgovarajući
prostor i u njega direktno upišu podaci. Ista procedura omogućava i da se obriše grupa
elemenata u nekoj definisanoj datoteci ili cela datoteka, naravno samo uz uslov da se ne
koriste u programu.

1.2.4. INDIREKTNO ADRESIRANJE


U nekim slučajevima poželjno je da se omogući da se ista naredba izvrši sa
različitim promenljivima. Koja od promenljivih će se koristiti može zavisiti od nekih spoljnih
uslova, rezultata nekog izračunavanja i sl. Radi pojednostavljenja relaizacije ovakvih
aplikacija kontroleri SLC 5/03 i SLC 5/04 omogućavaju korišćenje indirektnog adresiranja.
U principu indirektno adresiranje se realizuje tako što se navodi adresa
promenljive čiji sadržaj predstavlja adresu promenljive (operanda) nad kojom se vrši neka
operacija. U skladu sa time promenom sadržaja navedene promenljive menja adresa
operanda.
Adresa promenljive sadtrži broj datoteke (f), broje elementa (e), broj reči(w) i broj
bita (b). Svaki od ovih podataka može biti indirektno adresiran navođenjem adrese
promenljive koja sadrži traženi podatak. Pri tome, budući da su svi ovi podaci celi brojevi,
jasno je da promenljiva čija se adresa navodi mora biti celobrojnog tipa, dužine 1 reči.
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 navođenjem promenljive koja sadrži adresu u
uglastim zagradama, kao što je to ilustrovano u tabeli T. 1-4.

INDIREKTNO SE AKO JE VREDNOST N7:e = 13,


INDIREKTNA ADRESA
ADRESIRA ADRESIRANA PROMENLJIVA JE

N[N7:e]:e1 broj datoteke N13:e1 elemenat e1 u datoteci 13 tipa N

Ff:[N7:e] broj elementa Ff:13 elemenat 13 u datoteci f tipa F

Stf:e.[N7:e] broj reči Stf:e.13 reč 13 elementa e u datoteci f tipa St

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


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

T. 1-4 PRIMERI INDIREKTNOG ADRESIRANJA


Imajući u vidu činjenicu da se pri indirektnom adresiranju, adresa promenljive
određuje tek za vreme izvođenja programa, potrebno je i ovde voditi računa o zauzimanju
memorije i mogućem prekoraćenju granica.

1.2.5. INDEKSNO ADRESIRANJE


Pored direktnog adresiranja promenljive, kod kontrolera SLC 5/02 i viših
dozvoljeno je i indeksno adresiranje. Indeksnim adresiranjem se mesto u memoriji na
kome se nalazi jedna promenljiva definiše relativno u odnosu na položaj neke druge
promenljive. Pomeraj (ofset) promenljive sadržan je u 25. reči datoteke 2 (status file) tako
da je adresa reči koja sadži pomeraj S:24. Ovaj način adresiranja je izuzetno pogodan
ako je potrebno da se manipuliše sa nizom uzastopnih promenljivih.
INDEKSNO ADRESIRANJE PROMENLJIVE OSTVARUJE SE NAVOĐENJEM SIMBOLA # NEPOSREDNO ISPRED
ADRESE PROMENLJIVE KOJA PREDSTAVLJA BAZU U ODNOSU NA KOJU SE IZRAČUNAVA INDEKSNA ADRESA.
POMERAJ MOŽE BITI POZITIVAN ILI NEGATIVAN. . ON SE IZRAŽAVA U BROJU ELEMENATA KOJE TREBA DODATI
PLC_uvod/9

BAZNOJ ADRESI. IZUZETNO, KOD DATOTEKA TIPA STRING, POMERAJ SE IZRAŽAVA U REČIMA. TIPOVI
PROMENLJIVIH KOJE SE MOGU INDEKSNO ADRESIRATI, KAO I ZNAČENJE ODGOVARAJUĆEG POMERAJA DATI
SU U TABELI T. 1-5 INDEKSNO ADRESIRANJE
.
AKO SE BAZNA PROMENLJIVA
TIP DATOTEKE POMERAJ (S:24)
INDEKSNA ADRESA NALAZI U RAM-U NA ADRESI 200, I
(PROMENLJIVE) IZRAŽEN U
S:24=6 ADRESA PROMENLJIVE JE
O-output; I-input;
#O:e ; #I:e ; #Bf:e elementima (1 reč) 206
B-bit
N-integer #Nf:e elementima (1 reč) 206
F-floating point #Ff:e elementima (2 reči) 212 i 213
St-string #Stf:e.w rečima 206
T-timer; C-counter #Tf:e.ACC ; #Tf:e.PRE
elementima (3 reči) 219 ; 220 (2. i 3. reč elementa)
(ACC i PRE) #Cf:e.ACC ; #Cf:e.PRE
R-control (LEN i
#Rf:e.LEN ; #Rf:e.POS elementima (3 reči) 219 : 220 (2. i 3. reč elementa)
POS)
T. 1-5 INDEKSNO ADRESIRANJE
Potrebno je obratiti pažnju na činjenicu da se
za sve različite indeksne adrese koje se žele koristiti,
N7:0
pomeraj mora nalaziti u istoj reči (S:24). Isto tako,
N7:1 -3 neke naredbe prilikom izvođenja, koriste tu reč i
uništavaju njen prethodni sadržaj. Otuda je neobično
N7:2
važno da se pre korišćenja indeksne adrese obezbedi
dozvoljeni pomeraj
N7:3 bez prekoračenja da se u lokaciji S:24 nađe odgovarajući, željeni
N7:4
granica pomeraj. Konačno, napomenimo da se prilikom
servisiranja prekida, sadržaj lokacije S:24 čuva.
N7:5 U skladu sa onim što je rečeno o načinu
+4
N7:6
kreiranja datoteka, treba uočiti da indeksno
adresiranje može da prouzrokuje izvesne probleme.
N7:7 Naime, veličina datoteke određena je najvećom
F8:0.0 adresom koja se neposredno navodi u programu, i pri
tome nema načina da se u toku prevođenja programa
F8:0.1 pomeraj = +10 ustanovi da li će sve indeksne adrese biti unutar
prekoračena
F8:1.0 granica zauzetog prostora. Drugim rečima, postoji opasnost
da pomeraj bude takav da indeksna adresa premaši
F8:1.1
najveću adresu koja je eksplicitno navedena u
F8:2.0 programu, što bi prouzrokovali prekoračenje donje ili
gornje granice datoteke (Sl. 1-8). Da bi se ovo izbeglo,
F8:2.1
neophodno je da se pri kreiranju datoteke definiše
F8:3.0 najveća adresa do koje indeksno adresiranje može da
F8:3.1
dosegne. Isto tako, preveliki negativni pomeraj mogao
bi da dovede do prekoračenja donje granice datoteke.
Prekoraćenje granica datoteke samo po sebi
SL. 1-8 INDEKSNA ADRESA #N7:3
ne mora da ima negativne posledice, sve dotle dok je
korisnik svestan da do toga može da dođe i vodi računa o tipu susednih datoteka. U tom
smislu korisnuku se pruža mogućnost da izabere da li želi da dozvoli ili zabrani
prekoraćenje granica. Ukoliko je prekoračenje zabranjeno, a do njega dođe u toku
izvođenja programa, signaliziraće se greška.
Napomenimo i da je prekoračenje granica dozvoljeno kod kontrolera SLC 5/02
samo ako se indeksno adresiranje ne koristi u datotekama tipa: O, I ili S. Isto tako,
prekoračenje granica nije dozvoljeno kod kontrolera SLC 5/03 i viših ukoliko se indeksno
adresiranje koristi u datotekama tipa St.
PLC_uvod/10

1.2.6. ADRESIRANJE DATOTEKA


Pri realizaciji nekih algoritama, postoji potreba da se istovremeno ili na neki uređen
način operiše sa nizom podataka koji je smešten u nekoj datoteci, ili sa datotekom u
celini. U tu svrhu koristi se takođe indeksno adresiranje, ali se programski sistem sam
stara o adekvatnoj promeni sadržaja indeksnog registra. Naime, ukoliko se radi sa nizom
podataka u datoteci onda se taj niz specificira tako što se definiše bazna adresa #fn:e gde
je prvi ili nulti elemenat niza, što zavisi od konretne programske naredbe. Istovremeno se
na odgovarajući način definiše i dužina niza. Rad sa podacima iz niza se odvija uz
korišćenje indeksnog registra, s tim što, za razliku od naredbi u kojima se koristi indeksna
adresa, korisnik ne mora da vodi računa o sadržaju indeksnog registra. Važno je jedino da
se ima na umu da sve naredbe za rad sa datotekama menjaju sadržaj indeksnog registra.

1.2.7. PROGRAMSKE KONSTANTE


Pored promenljvih koje se smeštaju u datotekama podataka, u pojedinim
programskim naredbama doyvoljeno je korišćenje i programskih konstanti, brojnih
vrednosti koje sedefinišu pri formiranju aplikacije i ne mogu se programski menjati.
Programska konstanta se definiše tako što se na mestu predviđenom za adresu
promenljive (operanda), direktno navede odgovarajuća brojna vrednost. Celobrojna brojna
vrednost je 16 bitna reč, dok realna vrednost zauzima 2 reči. Celobrojna brojna vrednost
se može zadati u dekadnom brojnom sistemu ili kao heksadecimalna, oktalna ili binarna
konstanta (Error! Reference source not found.). Pored toga, konstanta se može
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 definiše sa
prefiksom & i odgovarajuđim slovom koje ukazuje na način predstavljanja konstante.

NAZIV SPECIFIKACIJA OPSEG


celobrojna
direktno navođenje vrednosti -32768 do +32767
konstanta
direktno navođenje vrednosti, koja sadrži ±1.1754944e-38 do
realna konstanta
decimalnu tačku ±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. 1-6 - SPECIFIKACIJA PROGRAMSKIH KONSTANTI

1.3. DISKRETNI U/I MODULI

1.3.1. ULAZNO/IZLAZNI MODUL


Uprkos činjenici da diskretni senzori i aktuatori koji se nalaze na nekom procesu ili
postrojenju mogu imati veoma različite tehničke karakteristike, zahtev koji se postavlja pri
njihovom vezivanju za kontroler je uvek isti. Naime, od kontrolera se očekuje da obezbedi
konverziju digitalnog (binarnog) signala koji dolazi sa senzora u numeričku vrednost 0 ili 1
i da taj podatak smesti kao jedan bit na odogovarajuće mesto u memoriji, ili da očita
numeričku vrednost (sadržaj) nekog bita u memoriji, da ga konvertuje u binarni signal koji
se vodi na aktuator. Ova činjenica omogućila je projektovanje i izradu tipiziranih U/I kola
koja su u stanju da obrađuju gotovo sve signale koji se sreću kod industrijske merne
opreme i izvršnih 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
PLC_uvod/11

odgovarajući slot na šasiji.


Izgled tipičnog U/I modula
prikazan je na Sl. 1-9. Na prednjoj
ploči U/I modula nalazi se
određeni broj pinova (terminal
points) za koje se vezuju izlazi sa
mernih instrumenata, odnosno
ulazi u izvršne organe. Svaki pin je
zapravo ulazna ili izlazna tačka
odgovarjućeg kola za spregu sa
kontrolerom. U skladu sa time
svaki pin se identifikuje svojim
tipom (ulaz ili izlaz) i brojem koji
odredjuje položaj U/I kola u okviru
modula, i koji zapravo predstavlja
adresu pina. Opis pinova dat je na
unutrašnjoj strani vrata na modulu.
Pored U/I pinova, na prednjoj ploči
modula nalaze se i pinovi koji su
interno povezani sa napajanjem (DC ili AC), sa zajedničkom (nultom) tačkom i sa
zemljom. Način sprezanja pojedinog uređaja sa modulom zavisi od specifičnosti samog
uredjaja, kao i karakteristika modula. Detaljna šema sprege vezivanja data je uz svaki
modul.
SL. 1-9 DIGITALNI U/I MODUL
Za vreme rada U/I modula,
stanje svakog pina se prikazuje na odogovarajućem LED indikatoru. Indikator koji je
povezan sa ulaznoim pinom svetli ako je ulazni signal u stanju logičke jedinice. Indikator
povezan sa izlaznim pinom svetli ako je, kao rezultat obrade programa, na izlazni pin
postavljena logička jedinica.
Postoje tri tipa U/I modula: ulazni, izlazni i kombinovani ulazno/izlazn modul. Oni
se izrađuju sa različitim 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. 1-9 U/I moduli se smeštaju u slotove na šasiji. Maksimalni
broj modula koji se može direktno povezati sa jednim kontrolerom, zavisi od veličine šasije
i broja slobodnih slotova. Budući da svaki slot ima svoju adresu unutar šasije, to znači da
je samim stavljanjem modula u slot određena i njegova adresa. Konačno, 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 određena adresom slota u koji se
modul postavljai adresom pina unutar modula. Potrebno je da se naglasi da je adresa
pina određena automatski stavljanjem modula u šasiju kontrolera i da se ne može
programski menjati.

1.3.2. SPREZANJE U/I MODULA SA KONTROLEROM


Vrednost binarnog signala koji dolazi na ulazni pin nekog U/I modula očitava se za
vreme ulaznog dela sken ciklusa. U
zavisnosti od toga da li očitana
vrednost predstavlja logičku nulu ili
jedinicu formira se odgovarajuća
vrednost bita (0 ili 1) i upisuje na
mesto u datoteci 0 koje odgovara
adresi ulaznog pina. Isto tako,
vrednost bita koji treba da se
prenese na izlazni pin kontrolera
SL. 1-10 FORMAT ADRESA BINARNIH U/I SIGNALA kao binarni signal, nalazi se u datoteci
PLC_uvod/12

1. Za vreme izlaznog dela sken ciklusa ova vrednost se očitava, konvertuje u odgovarajući
signal i prenosi na izlazni pin čija adresa odgovara mestu u datoteci na kome se nalazi
posmatrani bit.
Svakom modulu koji nema više od 16 pinova pridružuje se po jedna 16-bitna reč u
datoteci 0 odnosno 1. Ako modul ima manje od 16 pinova, onda se ne koriste svi bitovi u
pridruženoj reči. Ako modul im 32 pina, njemu se pridružuju dve susedne 16-bitne reči. Pri
tome, redni broj reči koja će biti pridružena modulu zavisi od slota u kome se modul
nalazi. Format adresiranja prikazan je na Sl. 1-10.

SL. 1-11 KONFIGURACIJA KONTROLERA


DA BI SE ILUSTROVAO NAČIN POVEZIVANJA ADRESA MODULA SA ODGOVARAJUĆIM DATOTEKAMA
POSMATRAĆE 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 SL. 1-11. KAO ŠTO SE VIDI PRVA ŠASIJA SADRŽI
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. 1-7 I T. 1-8 - ORGANIZACIJA DATOTEKE 1

.
SLOT - DATOTEKA 0 – IZLAZ
U/I tip ADRESA REČI ADRESE BITOVA BITOVI
(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. 1-7 – ORGANIZACIJA DATOTEKE 0


Potrebno je da se sitakne da su I i O datoteke jedine dve datoteke kod kojih
elementi nisu poređani u neprekidnom nizu i kod kojih su elementi promenljive dužine. 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 reči 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 dužina određena brojem pinova na modulu. Neophodno
je, međutim da se to ima na umu prilikom korišćenja indeksnog adresiranja ili pri radu sa
nizovima podataka. Naime, kao što je već istaknuto, kod datoteka ovog tipa indeksna
adresa se određuje tako što se baznoj adresi dodaje sadržaj indeksnog registra, pri čemu
je pomeraj izražen u rečima. To znači da redni broj reči na koju pokazuje indeksni registar
ne mora biti, a najčešće i nije jednak rednom broju elementa datoteke. Ako se u
posmatranom primeru kao indeksna adresa definiše #I:2, ako se podatak čija je bazna
PLC_uvod/13

adresa I:2 nalazi u memoriji na adresi 200, i ako je sadržaj indeks registra S:24=3, onda
će biti adresirana memorijska lokacija 203 na kojoj se prema T. 1-8 nalazi element I:6.
Zapazimo da kada bi se pri istom zauzeću memorije i sadržaju indeks registra koristila
indeksna adresa #N:2, onda bi adresirani elemenat, na lokaciji 203, bio N:5.
SLOT - DATOTEKA 1 – ULAZ
ADRESA
U/I tip ADRESE BITOVA BITOVI
REČI
(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. 1-8 - ORGANIZACIJA DATOTEKE 1

1.3.3. VEZIVANJE DIGITALNIH UREĐAJA ZA DIGITALNI MODUL


Samo se po sebi razume da će digitalni senzor moći da generiše odgovarajući
binarni signal ukoliko se nalazi u električnom kolu koje se zatvara (ili otvara) kada se
senzor aktivira. Otuda, se senzor mora vezati u električno kolo digitalnog ulaznog modula.
Ovo kolo će omogućiti detekciju binarnog signala i prenos odgovaajuće vrednosti u
memoriju PLC-a. Na isti način, diskretni izvršni organ mora biti povezan u električno kolo
digitalnog izlaznog modula koje omugaćava da se digitalni signal koji odgovara vrednosti
bita u memoriji prenese na izvršni organ.
Prilikom povezivanja digitalnih uređaja neobično je važno da se vodi računa o
tome kako je uređaj projektovan, odnosno kakav treba da bude smer električnog signala.
U tom smislu razlikuju se dve vrste uređaja:
• uređaji koji su izvor signala (source devices) – povezuju se na pozitivni pol izvora
napajanja
• uređaji koji su prijemnici signala (sinking device) – povezuju se na zajedničku tačku
izvora napajanja.
Da bi se obezbedila kompatibilnost digitalnih uređaja i PLC-a za koji se oni vezuju,
digitalni moduli se takođe proizvode u dve kategorije
• digitalni U/I izvori - za uređaje koji su projektovani kao primaoci.
• digitalna U/I prijemnici - za uređaje koji su projektovani kao izvor.
Način vezivanja, ovih uređaja prikazan je na Sl. 1-12 i Sl. 1-13. Pri tome, potrebno
je da se istakne da digitalni moduli koji predstavljaju izvor signala moraju u sebi da imaju i
izvor napajanja. U tom slučaju, postojanje još jednog spoljnog izvora, je opciono. Za
razliku od njih digitalni moduli koji primaju signale nemaju izvor napajanja. To znači da u
kolu preko koga se vezuje digitalni uređaj mora da postoji spoljni izvor napajanja.
PLC_uvod/14

SL. 1-12 SPREZANJE DIGITALNIH UREĐAJA KOJI SU PROJEKTOVANI KAO IZVORI

SL. 1-13 SPREZANJE DIGITALNIH UREĐAJA KOJI SU PROJEKTOVANI KAO PRIJEMNICI


Izvesno je da postoje i digitalni uređaji koji ne pripadaju ni jednoj od ovih
kategorija. Tako, na primer, mehanički prekidači mogu da provode struju u oba smera, što
znači da se mogu povezati na oba tipa modula. Sa druge strane, uređaji koji imaju neke
elektronske komponente zahtevaju da se vodi računa o smeru struje, tako da mogu da se
koriste samo sa odgovarajućom vrstom digitalnih U/I modula.

1.4. ANALOGNI U/I MODULI


AU
Analogni ulazni moduli su kola za
Analogni spregu između kontinualnih (analognih)
instrument AI
signala koji dolaze od mernih
instrumenata i digitalnih (numeričkih)
vrednosti kojima su ovi signali prikazani u
PLC-u. Analogni izlazni moduli
Analogni obezbeđuju spregu između numeričkih
izvršni organ

SL. 1-14 KOMBINOVANI ANALOGNI U/I MODUL vrednosti u PLC-u i analognih signala
koji predstavljaju ove vrednosti i koji
služe za upravljanje izvršnim organima.
U principu jedan modul se spreže sa
Redni broj
Redni broj reči više spoljnih uređaja, pri čemu se svaka
slota
(analognog kanala sprega posmatra kao jedan ulazni ili izlazni
0, 1, ...)
kanal. Moduli se međusobno razlikuju po broju
P : e . w i vrsti kanala. Neki moduli su samo ulazni ili
samo izlazni, a neki su kombinovani, što znači
da imaju i izlazne i ulazne linije.
Tip pina
O - izlaz (output)
Svaki modul se smešta u jedan slot na
I - ulaz (input) šasiji PLC-a (Sl. 1-14). Otuda se, sa gledišta
adresiranja, on tretira isto kao i digitalni modul,
s tim što je značenje pinova i broj bitova koji
SL. 1-15 ADRESIRANJE ANALOGNIH ULAZA I odgovaraju jednom pinu drugačiji. Drugim
IZLAZA rečima podaci koji se preko modula unose
PLC_uvod/15

u računar nalaziće se u određenim lokacijama datoteke ulaza (I), a podaci koji se iznose
iz računara, nalaziće se u datoteci izlaza (O). Broj reči koji odgovara jednom kanalu zavisi
od vrste samog modula. U principu se može smatrati da svakom ulaznom ili izlaznom
kanalu odgovara po jedna reč, tako da se adresa kanala formira u skladu sa rednim
brojem slota i rednim brojem kanala (Sl. 1-15). Sadržaj odgovarajućih memorijskih lokacija
u ovim datotekama menja se u toku ulaznog ili izlaznog sken ciklusa.

1.4.1. ANALOGNI ULAZNI KANAL


Nezavisno od toga koliko se ulaznih kanala nalazi na jednom modulu, modul, po
pravilu, ima samo jedan A/D konvertor.
U toku ulaznog sken ciklusa, uz pomoć
multipleksera, odabira se jedan po
jedan ulazni kanal na modulu, izvrši se
konverzija signala i on se smešta u
odgovarajuću reč u datoteci ulaza.
Imajući u vidu da je merni signal
uvek zašumljen, signal koji dolazi preko
analognog kanala se posle konverzije
propušta kroz digitalni filter koji ima za
cilj da odbaci komponente visokih
učestanosti koji potiču od šuma. Tip i
vrsta ovog ugrađenog filtra zavisi od
proizvođača. Kod nekih tipova modula
korisniku može sam da podešava
parametre filtra. Pored toga, neki
analogni moduli pružaju mogućnost
korisniku da dobije i informacije o
prekoraćenju opsega ili o drugim
aspektima rada modula.
SL. 1-16 DIFERENCIJALNA SPREGA ANALOGNOG ULAZA
Vrsta A/D konvertora i njegova
rezolucija zavise od tipa modula. U principu oni se kreću od 12 do 16 bitova. Kod
posmatrane klase SLC kontrolera
Analogni
ulazni koriste se 16-bitni A/D konvertori.
davač
modul Otuda se svakom ulaznom kanalu
signal
+
+
IN0+ pridružuje po jedna memorijska reč.
izvor To nadalje znači da se svaki ulazni
- IN0-
ANL COM
kanal adresira pomoću adrese
oblika I:e.w. U principu, moguće je
davač pristupiti i pojedinom bitu unutar
+ signal svake od ovih reči, no ti bitovi
IN1+
nemaju nikakvo pojedinačno
IN1-
značenje, pa se ne vidi razlog zašto
ANL COM
bi se to radilo.
Analogni davač se vezuje
davač
tako što se formira zatvoreno
izvor GND signal
IN2+
električno kolo. Pri tome, izvor
napajanja tog kola može biti u
IN2-
samom modulu ili spolja. Za razliku
ANL COM
od digitalnih U/I, kod analognih
modula izvor napajanja je veoma
SL. 1-17 SPREGA ANALOGNOG ULAZA SA JEDNIM KRAJEM često spoljni. Samo električno kolo
se zatvara vezivanjem krajeva
analognog davača sa pinovima na ploči analognog modula (Sl. 1-14). Svakom analognom
ulaznom kanalu pridružena su 3 pina. Dva pina služe za ulaz signala, dok je treći pin
PLC_uvod/16

vezan za zajedničku masu na samom modulu. Način njihovog korišćenja zavisi od vrste
analognog davača sa koga se signal vodi na kanal. Ako davač ima dva, tri ili četiri izlaza
onda se može izvesti diferencijalna sprega davača i modula. Svakom davaču pridružuje
se zaseban izvor napajanja i svi kanali su međusobno odvojeni (Sl. 1-16). Za davače koji
imaju samo dva ili tri izlaza, može se izvesti veza sa jednim krajem, tako da se električno
kolo zatvara preko zajedničke tačke (mase) na samom modulu. U tom slučaju, dovoljan je
jedan izvor napajanja za više analognih kanala (Sl. 1-17). Potrebno je da se istakne da
diferencijalna sprega ima bolje karakteristike posebno kad se radi o potiskivanju smetnji
koje potiču od napajanja.
Anolgni ulazni kanali su, po pravilu, prilagođeni za standardizovane vrste signala
(strujne ili naponske) i to u opsezima koji se najčešće sreću kod različitih analognih
davača. Najčešće je modul tako podešen da se postavljanjem internih prekidača može
definisati da li će se kanal koristiti za strujni ili naponski signal. Tipični skup signala koji se
sreće kod analognih ulaza, zajedno sa njihovim celobrojnim prezentacijama kod 16-bitne
konverzije dat je u tabeli T. 1-9.
U skladu sa vrednostima iz tabele, očigledno je da se pretvaranje dobijenih
vrednosti u odgovarajuće električne veličine može izvršiti prema sledećim formulama
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.176μV
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.2207μA
4 do 20mA 3277 do 16384

T. 1-9 OPSEG ULAZNIH SIGNALA I NJIHOVA KONVERZIJA U CELOBROJNE VREDNOSTI


Neki analogni moduli pružaju mogućnost da se zahteva da sam modul interno
izvrši konverziju u električne ili inžinjerske jedinice. Ukoliko modul nema takvu opciju,
konverzija može da se izvrši programski. Problemima transformacije signala biće kasnije,
kada se prouči programiranje PLC-a, posvećeno više pažnje.
Napomenimo još, da najveći broj analognih modula interno skenira ulazne kanale i
vrši A/D konverziju ulaznih signala daleko češće nego što to zahteva sken ciklus PLC-a.
Sve konvertovane vrednosti nalaze se u skupu internih registara PLC-a i bivaju
zamenjene sa novim vrednostima posle sledeće konverzije. Sadržaj tih registara, se
međutim, prebacuje u odgovarajuće područje datoteke ulaza samo u toku ulaznog sken
ciklusa. Ukoliko je korisniku, iz nekog razloga, važno da raspolaže i sa trenutnom
vrednošću ulaza na nekom kanalu, on to može da ostvari posebnom programskom
naredbom koja će uzeti traženu vrednost iz registra i smestiti je na odgovarajuče mesto u
datoteci.

1.4.2. ANALOGNI IZLAZNI KANAL


Za razliku od analognih ulaza, svakom analognom izlaznom kanalu pridružen je
poseban D/A konvertor. Pomoću njega se celobrojna vrednost koja se nalazi na
odgovarajućem mestu u datoteci izlaza pretvara u strujni ili naponski signal. U principu,
moduli se razlikuju po rezoluciji, ali se najčešće sreću konvertori čija je rezolucija 12 do 14
bitova. Kod posmatrane klase SLC kontrolera koriste se 14-bitni D/A konvertori. Otuda se
PLC_uvod/17

svakom izlaznom kanalu pridružuje po jedna memorijska reč. To nadalje znači da se svaki
izlazni kanal adresira pomoću adrese oblika O:e.w. Pri tome se za smeštanje podatka
koristi 14 levih bitova, tako da dva poslednja desna bita nisu u upotrebi.
Kao i analogni ulazi, i analogni izlazi se prave za standardizovane naponske i
strujne signale. Pri tome, za razliku od ulaznih modula, ovde je svaki kanal unapred
formiran za prenošenje ili naponskih ili strujnih signala. Tipičan skup signala i način
njihovog pretvaranja iz celobrojnih vrednosti u električne signale dat je u tabeli T. 1-10.
U skladu sa podacima iz tablice, vidi se da se konverzija vrednosti može izvršiti
prema sledećim 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 ogledaće 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.56348μA
6242 do 31208 4 do 20mA
T. 1-10 OPSEG IZLAZNIH SIGNALA I KONVERZIJA CELOBROJNIH VREDNOSTI U ELEKTRIČNE VELIČINE

1.5. FORMIRANJE APLIKACIJE


Formiranje jedne aplikacije započinje uvek specifikacijom samog kontrolera na
kome će se data aplikacija realizovati. To znači da korisnik mora da pruži informaciju o
vrsti i tipu procesorskog modula koji će se koristiti, o ulazno izlaznim modulima koji će se
postaviti u šasiji i o tipu računarske mreže u koju će taj kontroler biti vezan. Najveći broj
proizvođača PLC-ova razvio je i odgovarjući grafički korisnički interfejs koji omogućava
korisniku da na veoma jednostavan način izvrši ove operacije. U tom slučaju specifikacija
se odvija kroz sistem "prozora" okviru kojih se korisniku nude sve moguće opcije među
kojima on odabira onu koja odgovara datoj konfiguraciji.
Na Sl. 1-18 prikazan je izgled prozora pri definiciji konfiguracije PLC-a iz familije
Allen Bradley SLC 500 Modular Controllers. Sa slike se vidi da se u slotu 0 nalazi
procesorski modul tipa 5/03, koji u šasiji ima prostor za još tri modula.
U slotu 1 nalazi se kombinovani digitalni modul sa 6 ulaza i 6 izlaza. Ovaj modul
imaće adrese I:1.0/b i O:1.0/b gde je b redni broj bita koji može imati vrednost od 0 do 5.
Pri tome, ulazni signali moraju biti jednosmerni u opsegu do 24 V, dok su izlazni signali
prilagođeni standardima za upravljanje relejima.
U slotu 2 smešten je modul sa 2 analogna ulazna kanala i 2 analogna izlazna
kanala. Ulazni kanali mogu da se koriste za ulaz strujnih signala (-20mA do +20 mA) ili za
ulaz naponskih signala (–10V do +10V), što se podešava postavljanjem internih
prekidača. Adrese ova dva ulazna kanala su I:2.0 i I:2.1. Oba izlazna kanala daju
jednosmerne naponske signale u opsegu od –10V do +10V, dok su adrese ova dva izlaza
O:2.0 i O:2.1.
U slotu 3 nalazi se digitalni ulazni modul sa osam ulaza (I:3.0/b , b = 0,1,.. ,7). Ovaj
modul prima digitalne signale koji su naizmenični u opsegu do 200/240 V.
PLC_uvod/18

Tek kada se definiše struktura PLC-a može se početi sa formiranjem programa.


Pri tome, potrebno je da se istakne da svaki proizvođač PLC-a razvija i posebni softverski
alat koji omogućava da se na izuzetno jednostavan način definiše struktura PLC-a i
formira odgovarajući program. Ovaj alat, koji kod najvećeg broja proizvođača korristi
grafički interfejs (GUI), omogućava da se PLC emulira na standardnom PC računaru. To
zapravo znači da se, sa gledišta korsinika, PC računar na kome je softverski alat instaliran
ponaša kao PLC. Korisnik, u fazi definisanja aplikacije, razvijanja i testiranja programa,
ima mogućnost da koristi sve opcije i pogodnosti PC računara. Kada je program razvijen
on se, posebnom tehnikom, prebaci na PLC (down load programa). Ukoliko PLC ostane i
dalje u vezi sa PC računarom, onda se isti softverski alat može koristiti da se pomoću PC-
a prati izvršavanje formiranog algoritma i obavljaju eventualne korekcije.

SL. 1-18 PRIMER KONFIGURISANJA PLC-A


PLC_uvod/19
Plc_leder/20

2. LEDER PROGRAMIRANJE

2.1. UVOD U LEDER PROGRAMIRANJE


Ako se PLC posmatra kao mikroračunarski sistem, što on sasvim sigurno i jeste,
onda bi se moglo očekivati da se za njegovo programiranje koriste standardni prgramski
jezici. Međutim, ako se pođe od činjenice da je PLC projektovan kao namenski
mikroračunarski sistem za upravljanje i nadzor rada nekog procesa, i da u skladu sa tim
ima poseban operativni sistem koji obezbeđuje periodično ponavljanje sken ciklusa, onda
je logično očekivati da je za njegovo programiranje razvijen i poseban programski jezik.
Kao što je već ranije istaknuto, PLC je početno razvijen sa idejom da zameni
relejne sisteme. To znači da se očekivalo da on realizuje odgovarajuću vremensku
sekvencu logičkih operacija. Pored toga, uspešna 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 reši
problem grafičkog predstavljanja vremenske sekvence logičkih operacija. Klasični logički
dijagrami su izuzetno korisni za prikazivanje relacija između elemenata kombinacione
logike. Međutim, oni ne pružaju mogućnost za prikazivanje različitih ulazno/izlaznih
promenljivih kao funkcija vremena. Sa druge strane, vremenski dijagrami su izuzetno
pogodni za prikazivanje odnosa pojedinih promenljivih u toku vremena, ali ne
omogućavaju da se prikaže logika koja uslovljava te odnose. U cilju spajanja obe vrste
prikazivanja, za projektovanje relejnih sistema razvijeni su leder (lestvičasti) dijagrami.
Projektovanje PLC-ova je, dakle, podrazumevalo da se za njih mora razviti i
odgovarajući 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 međutim da je, uprkos svojevrsnoj proliferaciji programskih
jezika koju je donela računarska industrija, leder programiranje i danas posle više od 20
godina koriščenja PLC-a daleko najrasprostranjeniji način programiranja. Ima mišljenja da
je to dokaz konzervativnosti krajnjih korisnika koji su navikli na projektovanje relejnih
sistema. Izvesno je, međutim, da se i projektanti koji dolaze iz sveta računara, koji su
dakle naviknuti na korišćenje različitih programskih jezika, kada sagledaju problem koji
treba da se reši opredeljuju za projektovanje u lederu.
Jedna programska linija leder jezika sastoji se iz niza grafičkih simbola
(programskih naredbi) koji predstavljaju različite logičke elemente i druge komponente kao
što su časovnici i brojači, koji su poređani duž horizontalne linije – rang (rung) – koja je na
oba kraja spojena sa dvema
vertikalnim linijama. Prema tome,
leder dijagram ima izgled lestvica,
odakle potiče i njegov naziv (ladder
– lestvice).
Svaki rang leder
dijagrama sastoji se iz dva dela. Na
levoj strani ranga nalazi se uslov
SL. 2-1 LEDER RANG
izražen u formi kontaktne
(prekidačke) logike, dok se na desnoj strani ranga nalazi akcija koja treba da se izvrši
ukoliko je uslov ispunjen (true) (Sl. 2-1).
• U S L O V – U osnovi, grafički simboli na levoj strani ranga odnose se ili na stanja signala
koji predstavljaju fizičke ulaze PLC-a, i čije su vrednosti tokom ulaznog dela sken ciklusa
smeštene u input image file, ili na stanja internih promenljivih, čije su vrednosti
smeštene u odgovarajućim datotekama. Svaki simbol predstavlja jednu unarnu logičku
operaciju kojoj je pridružena odgovarajuća tablica istinitosti. Uz grafički simbol
Plc_leder/21

naznačava se i adresa promenljive koja predstavlja operand. Pri ispitivanju istinitosti


uslova smatra se da se nad svim simbolima u jednoj liniji (redna, serijska veza) obavlja
logička “I” operacija. To znači da je uslov istinit ukoliko je svaki pojedinačni iskaz istinit.
Na levoj strani ranga dozvoljena su i granjanja (paralelene veze). Pri ispitivanju istinitosti
uslova paralelene veze se tretiraju kao logička “ILI” operacija. To znači da će iskaz
predstavljen nizom paralelnih grana biti istinit, ako bar jedna od grana sadrži istinit iskaz.
Potrebno je da se istakne da leva strana ranga može biti formirana i tako da na njoj
nema ni jednog simbola. U tom slučaju smatra se da je uslov koji se na taj način definiše
uvek istinit.
• A K C I J A – Grafički simboli na desnoj strani ranga odnose se ili na fizički izlaz
(promenljive smeštene u output image file, koje će biti prenete na izlaze kontrolera u
toku izlaznog dela sken ciklusa) ili na interne promenljive, čije su vrednosti smeštene u
odgovarajućim datotekama. Svaki simbol predstavlja jednu naredbu koja se izvršava
ako je uslov na desnoj strani istinit. Uz simbol se naznačava i adresa promenljive čija se
vrednost menja prilikom izvršavanja naredbe, ili koja na bilo koji drugi način učestvuje u
realizaciji naredbe (npr. otpočinjanje ili zaustavljanje neke aktivnosti, skok na neki drugi
rang, poziv potprograma itd.). Serijska veza na desnoj strani ranga nije dozvoljena, dok
paralelna veza označava da se više različitih naredbi izvršavaju kao rezultat ispitivnja
istinitosti jednog istog uslova.
U literaturi je uobičajeno da se i simboli koji označavaju uslov i simboli koji
označavaju akciju označavaju kao naredbe. Otuda je neophodno da se istakne suštinska
razlika između naredbi uslova i naredbi akcije. Naime, izvršavanje naredbi uslova obavlja
se tako što se u zavisnosti od vrednosti operanda, prema pridruženoj tablici istinitosti,
naredbi dodeljuje vrednost (0 ili 1). Dakle, naredbe uslova se izvršavaju u svakom sken
ciklusa i rezultat njihovog izvođenja je vrednost naredbe. Za razliku od toga naredbama
akcije se ili dodeljuje vrednost nekoj promenljivoj ili izvršava neka druga aktivnost. Ove
naredbe se izvršavaju samo ako je uslov koji im prethodi istinit (dodeljena mu je vrednost
1). Pri tome se samim naredbama akcije ne dodeljuje nikakva vrednost.
Leder program se izvršava u toku programskog dela sken ciklusa i to tako što se
obrađuje rang po rang u nizu kako su oni definisani. U svakom rangu ispituje se istinitost
uslova i ukoliko je uslov istinit izvršavaju se odgovarajuće naredbe u desnom delu ranga.
To znači da promenljive na desnom delu ranga mogu menjati svoju vrednost samo
jedanput u toku sken ciklusa, i to upravo onda kada se odgovarajući rang ispituje.
Potrebno je zapaziti, međutim, da ukoliko se promenljiva na desnoj strani ranga odnosi na
fizički izlaz, vrednost izlaza neće biti promenjena u istom trenutku vremena. Naime, za
vreme programskog skena menjaju se samo vrednosti promenljivih smeštenih u datoteku
izlaza (output image file). Tek kasnije, za vreme izlaznog dela sken ciklusa, sve
promenljive iz datoteke izlaza biće prenete na odgovarajuće izlazne linije. Ista stvar važi i
za ulazne promenljive. Drugim rečima, za vreme programskog skena ispitivanje istinitosti
uslova odnosi se na vrednosti promenljivih u datoteci ulaza (input image file), koje su tu
upisane za vreme ulaznog dela sken ciklusa koji je prethodio programskom skenu, a ne
na trenutne vrednosti promenljivih na ulaznim linijama. Naravno, svi uslovi i naredbe koji
su vezani za interne promenljive izvršavaju se u trenutku skaniranja pojedinog ranga.

2.2. BIT NAREDBE


Bit naredbe su, kao što samo ime kaže naredbe čiji su operandi bitovi. Sa gledišta
lokacije operanada, to znači da se oni najčešće nalaze u datoteci 3 (bit file), digitalnim
ulaznim ili izlaznim datotekama (input image file 1 ili output image file 0) ili u korisničkim
datotekama bit tipa. Pored toga, adresirani operand može da se nalazi i u bilo kojoj drugoj
datoteci u okviru koje je moguće adresirati pojedini bit. Gledano potpuno opšte za vreme
programskog skena u okviru bit naredbi ispituje se stanje pojedinog bita, ili se njegova
vrednost postavlja na 1 (set) ili na 0 (reset).
Plc_leder/22

2.2.1. BIT NAREDBE ZA DEFINISANJE USLOVA


Ove naredbe se postavljaju na levoj strani ranga i definišu uslov koji se odnosi na
stanje bita čija je adresa definisana u naredbi. Kao rezultat izvođenja naredba dobija
istinosnu vrednost true (istinit) ili false (neistinit) .

• XIC - Exam ine if closed (ispitivanje da li je kontakt zatvoren)

• XIO - Exam ine if open (ispitivanje da li je kontakt otvoren)

Nazivi ove dve naredbe potiču od ispitivanja binarnnih signala koji dolaze sa
prekidačkih kola. U tom smislu XIC naredba se odnosi na normalno otvoren prekidač (ima
vrednost 1 kada je prekidač pritisnut), dok se XIO naredba odnosi na normalno zatvoren
prekidač (ima vrednost 1 kada prekidač niej pritisnut – "ne a").

2.2.2. BIT NAREDBE ZA POSTAVLJANJE VREDNOSTI IZLAZA


Ovim naredbama se bitu čija je adresa navedena u naredbi dodeljuje vrednost 1 ili
0. Podsetimo se da se ove nardebe nalaze na desnoj strani ranga, što znači da će se one
izvršiti samo ako je iskaz (uslov) na levoj strani ranga istinit.
• OTE - Output energize (pobuđivanje izlaza)
Grafički simbol Tablica istinitosti Položaj u rangu

Adresa bita Ako je vrednost Bit na adresi “а”


uslova dobija vrednost a
a 1 (set)
1 (istinit) uslov
0 (neistinit) 0 (reset)

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


može promeniti samo jedanput za vreme sken ciklusa. Ova vrednost ostaće neizmenjena
sve do sledećeg sken ciklusa, kada će se pri skeniranju odgovarajućeg ranga ponovo
ispitati uslov i izvesti odgovarajuća akcija.
• OTL - Output latch (pamćenje izlaza)

OTL naredbom se adresovani bit može isključivo postaviti na 1. Naime za razliku


od OTE naredbe kojom se vrednost bita može postavljati na 0 ili 1 svaki put kad se rang
Plc_leder/23

skenira, kod OTL naredbe vrednost bita se postavlja (lečuje) na 1 u prvom skenu u kome
je uslov istinit. Nakon toga ova naredba postaje neosetljiva na istinosnu vrednost uslova.
To znači da će vrednost bita ostati neizmenjena bez obzira na to kako se menja vrednost
uslova.
• OTU - Output unlatch (resetovanje izlaza)

OTU naredbom se adresovani bit može isključivo postaviti na 0. Pri tome, vrednost
bita se postavlja (lečuje) na 0 u prvom skenu u kome je uslov ispunjen. Nakon toga ova
naredba postaje neosetljiva na vrednost uslova.
Potrebno je da se istakne da se OTL i OUT naredba koriste uvek u paru, pri čemu
se u obe naredbe adresira isti bit.

2.2.3. BIT TRIGER NAREDBA


• OSR - One-shot rising (uzlazna ivica)

OSR naredba omogućava da se obezbedi izvodjenje neke akcije samo jedanput.


Potrebno je da se istakne da je ovo specifična naredba koja istovremeno pripada i
kategoriji uslova i kategoriji akcije. Naime ova naredba se postavlja u rangu između dela
koji predstavlja uslov i dela koji predstavlja akciju. Kada se u toku sken ciklusa detektuje
da je uslov promenio svoju vrednost sa neistinit na istinit (uzlazna ivica) onda OSR
naredba takođe dobija vrednost istinit (što ovu naredbu svrstava u kategoriju naredbi
uslova). Istovremeno se i bitu čija je adresa pridružena toj naredbi dodeljuje vrednost 1
(po čemu se ova naredba svrstava i u kategoriju akcija). Obe ove vrednosti ostaju
nepromenjene do sledećeg sken ciklusa, kada naredba dobija vrednost neistinit, dok se
adresovani bit postavlja na vrednost 0 ili 1 u zavisnosti od vrednosti uslova. U narednim
sken ciklusima vrednost naredbe ostaje nepromenjena sve dok se u uslovu (koji
predstavlja ulaz u OSR) ponovo ne detektuje prelaz “neistinit/istinit”.
Potrebno je da se istakne da bit čija je adresa pridružena ovoj naredbi ne
predstavlja vrednost naredbe. Naime, ovaj bit se koristi kao interna promenljiva i služi za
pamćenje vrednosti uslova koji prethodi OSR naredbi. Vrednost ovog bita je 1 ako je uslov
istinit, odnosno 0 ako je uslov neistinit. U tom smislu, sa aspekta dodeljivanja vrednosti
bitu čija se adresa navodi u OSR naredbi, ova naredba je identična sa OTE naredbom.
Navedeni bit se može nalaziti u bilo kojoj bit-adresibilnoj datoteci izuzev datoteke ulaza i
izlaza.
Vrednost koju dobija OSR naredba koristi se kao uslov za izvođenje naredbe
akcije koja se nalazi na desnoj strani ranga (neposredno iza OSR naredbe). Shodno
tome, naredba akcije biće izvršavana po jedanput pri svakom prelazu uslova
“neistinit/istinit”.
Iza OSR naredbe se može nalaziti samo jedna naredba akcije. (Kod kontrolera
tipa SLC 500 i SLC 5/01 OSR naredba se ne sme nalaziti u paralelenim granama na
Plc_leder/24

desnoj strani ranga).

2.2.4. PROGRAMSKI SKEN I VREMENSKI DIJAGRAM


U toku programskog skena procesor izvršava pojedinačne naredbe, obrađujući
rang po rang od početka pa do kraja programa. U okviru obrade jednog ranga, procesor
ispituje stanja bitova u datotekama podataka, određuje vrednost pojedinačnih naredbi
uslova, izvršava logičke I i ILI operacije nad tim vrednostima, u skladu sa načinom na koji
je formiran desni deo ranga, i kao rezultat tih operacija određuje istinosnu vrednost
uslova. Ukoliko je ova vrednost istinit, procesor će izvršiti naredbe koje se nalaze na levoj
strani ranga i koje predstavljaju akciju.
U cilju ilustracije izvršavanja leder programa u PLC-u posmatrćemo jedan rang (Sl.
2-2) nekog programa. U okviru ovog ranga
ispituje se stanje jedne ulazne linije koja je
vezana za nulti pin ulaznog dela kombinovanog
U/I modula, smeštenog u slotu 1 PLC-a. Na
osnovu stanja ulazne linije generiše se signal na
izlaznoj liniji koja je vezana za nulti pin izlaznog
SL. 2-2 POSTAVLJANJE IZLAZA U ZAVISNOSTI dela istog U/I modula. Na slici Sl. 2-3 prikazan
OD VREDNOSTI ULAZA je vremenski dijagram promene signala na
ulaznoj liniji, vrednosti bita u input image file-u
koji je pridružen toj liniji, vrednosti bita u output image file-u i signala na izlaznoj liniji koji je
sa tim bitom povezan. Predpostavljeno je da ceo program ima više ulaznih signala i više
izlaznih signala čije očitavanje, odnosno generisanje zahteva određeni period vremena za
ulazni i izlazni sken interval. Isto tako, predpostavljeno je i da se program sastoji od više
rangova, čija obrada zahteva neki period vremena (programski sken interval).

SL. 2-3 VREMENSKI DIJAGRAM PROMENE U/I LINIJA I ODGOVARAJUĆEG RANGA


Potrebno je da se zapazi da se stanje signala na ulaznoj liniji može promeniti u
bilo kom trenutku. Međutim, vrednost bita pridružena toj liniji biće promenjena tek u toku
prvog ulaznog sken ciklusa koji nastupa posle promene stanja ulazne linije. Za vreme
programskog skana vrednost XIC naredbe se određuje na osnovu stanja odgovarajućeg
Plc_leder/25

bita, a ne njemu odgovarajućeg ulaznog signala. Otuda je u prvom sken ciklusu vrednost
ove naredbe 0 iako je ulazni signal već u stanju logičke jedinice. Međutim, budući da je on
promenio stanje tek posle prvog ulaznog skena, ta promena još uvek nije registrovana
postavljanjem njemu odgovarajućeg bita, koji je odgovaran za vrednost XIC naredbe. U
skladu sa tim, ne izvršava se OTE naredba, pa izlazni bit i njemu odgovarajuća izlazna
linija ostaju u stanju 0. Promena na ulazu dovodi do promene ulaznog bita tek u drugom
ulaznom sken ciklusu, tako da tek u drugom programskom ciklusu XIC naredba dobija
vrednost istinit. Kao rezultat ove vrednosti izvršava se OTE naredba i izlazni bit postavlja
na vrednost 1. U toku drugog izlaznog sken ciklusa ova vrednost prenosi se na izlaznu
liniju gde se generiše signal koji odgovara logičkoj jedinici.
Kašnjenje između trenutka u kome signal na ulaznoj liniji menja vrednost i trenutka
u kome se ta promena registruje postavljanjem odgovarajućeg bita, kao i kašnjenje
između trenutka u kome izlazni bit dobija neku vrednost i trenutka kada se ta vrednost
pojavi na izlaznoj liniji može se izbeći posebnim neposrednim naredbama, o kojima će
kasnije biti više reči.

2.2.5. PRIMERI
PR. 2-1 UPRAVLJANJE PALJENJEM SIJALICE
ZADATAK
Posmatra se električno kolo (Sl. 2-4) u kome
sijalica S svetli kada je zatvoren prekidač P1 i jedan od
prekidača P2 ili P3. Potrebno je da se ovo električno kolo
zameni sa PLC-om.

SL. 2-4 ELEKTRIČNO KOLO

PROJEKTOVANJE SISTEMA
Da bi se postavljeni
zadatak rešio neophodno je kao
prvo da se ustanovi sa kojom
opremom se raspolaže i da se
odluči kako će se ona vezati za
PLC. Pretpostavimo da imamo tri
tastera od kojih su dva normalno
otvorena i jedan normalno
zatvoren i jedno električno kolo u
kome se nalazi sijalica koje se
zatvara pomoću releja.
Usvojićemo da normalno otvoreni
tasteri obavljaju funikciju
prekidača P1 i P3, dok će
SL. 2-5 SPREZANJE SENZORA I IZVRŠNOG ORGANA SA PLCOM normalno zatvoren taster obavljati
funkciju prekidača P2.
U skladu sa odabranim senzorima i izvršnim organom neophodno je da raspolažemo sa tri
digitalna ulaza i jednim digitalnim izlazom. Budući da imamo PLC koji u prvom slotu ima digitalni
U/I modul, možemo izvršiti vezivanje opreme. Po prirodi stvari vezaćemo tri tastera za ulazne
pinove 0, 1 i 2, dok će rele na izlazu biti vezano za izlazni pin 0. Shodno tome, adrese prekidača
P1, P2 i P3 su respektivno I:1/0, I:1/1 i I:1/2, dok je adresa sijalice O:1/0 (Sl. 2-5).
PROGRAMIRANJE
Kada je formirana šema vezivanja opreme za PLC, onda se pristupa pisanju leder
programa.
U cilju formiranja levog dela ranga treba uočiti da je uslov za paljenje sijalice da se
istovremeno pritisne taster P1 i jedan od tastera P2 ili P3. Budući da su tasteri P1 i P3 normalno
otvoreni, pritisak na njih dovodi do zatvaranja odgovarajućih prekidačkih kola, tako da se može
detektovati pomoću XIC naredbe, koja će dobiti vrednost istinit kada su vrednosti odgovarajućih
Plc_leder/26

bitova u datoteci ulaza (I:1/0 и I:1/2) postavljene na 1. Pritisak na taster P2 koji je normalno
zatvoren, dovodi do otvaranja njegovog prekidačkog kola, što znači da se može detektovati
pomoću XIO naredbe, koja će dobiti vrednost istinit kada je vrednost odgovarajućeg bita u datoteci
ulaza (I:1/1) postavljena na 0. Konačno, kako se nad tasterima 2 i 3 zahteva logička ILI opreacija,
to odgovarajuće naredbe moraju biti vezane paralelno. Ispunjenost uslova treba da obezbedi da se
na izlaznom pinu generiše naponski signal koji će da prouzrokuje paljenje sijalice. Ovaj zahtev se
može ostvariti OTE naredbom. U skladu sa time odgovarajući rang leder programa ima izgled kao
na Sl. 2-6.

SL. 2-6 LEDER PROGRAM KOJI REALIZUJE ELEKTRIČNO KOLO


Svakom bitu koji se koristi u leder programu može se pridružiti simboličko ime. U principu
nema nikakvih posebnih pravila u pogledu davanja imena. Ipak praksa je pokazala da je pogodno
da se ime formira tako da što vernije opisuje fizičko značenje signala na koji se odnosi. Pored toga,
u cilju lakše provere ispravnosti programa, pogodno je da se ime formira tako da odgovara stanju
pri kome bit koji se ispituje ima vrednost 1. Poštujući taj princip, u ovom primeru je bitu I:1/0 dato
ime p1_on (bit I:1/0 ima vrednost 1 kao je P1 pritisnut (on), dok je bitu I:1/1 dato ime p2_off (bit
I:1/1 ima vrednost 1 kad je P2 nepritisnut(off). U skladu sa time prva XIC naredba koja ispituje
vrednost bita na adresi I:1/0 dobiće vrednost istinit ako bit ima vrednost 1 što znači da taster P1
jeste pritisnut. Isto tako XIO naredba koja ispituje vrednost bita na adresi I:1/1 dobiće vrednost
istinit ukoliko bit nema vrednost 1, što znači da taster P2 nije nepritisnut.
SAMODRŽANJE
Opisani sistem će ispravno raditi samo dotle dok se odgovarajući tasteri drže pritisnuti.
Naime, čim se taster otpusti on se vraća u normalni položaj i u sledećem sken ciklusu, uslov više
neće biti ispunjen, pa će se sijalica ugasiti. Prirodno je međutim da se zahtev postavi tako da
sijalica nastavi da svetli i posle otpuštanja tastera.

SL. 2-7 LEDER PROGRAM KOJI TRAJNO POSTAVLJA IZLAZNI BIT ("PAMTI" AKO JE USLOV BIO ISPUNJEN)
Postavljeni zadatak može se rešiti tako što će se na neki način upamtiti da je uslov za
paljenje sijalice u nekom trenutku bio ispunjen. U tu svrhu može se na izlaznom delu ranga umesto
OTE naredbe postaviti OTL naredba koja će obezbediti trajno postavljanje (lečovanje) izlaza (Sl.
2-7).
Umesto korišćenjem naredbe OTL isti efekat se može postići i postupkom takozvanog
samodržanja kojim se zadržava vrednost izlazne promenljive i posle prestanka uslova za njeno
Plc_leder/27

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. 2-8) onda će,
čim se pritiskanjem tastera uslov prvi put ispuni, odgovarajući bit biti postavljen na 1, što znači da
će u sledećim sken ciklusima naredba u paralelnoj grani stalno imati vrednost istinit, pa se vrednost
izlaznog bita neće menjati sa promenom stanja tastera.

SL. 2-8 – LEDER PROGRAM SA POSTUPKOM SAMODRŽANJA


ZAUSTAVLJANJE
Potrebno je da se istakne da su poslednja dva primera formirana tako da će sijalica kad se
jedanput upali nastaviti da svetli neograničeno dugo. Da bi se omogućilo i gašenje sijalice
neophodno je da sistemu doda još jedan taster (Stop). Pritiskom na ovaj taster, jedanput upaljena
sijalica, bi bila isključena. Ako se pretpostavi da je ovaj taster normalno otvoren i da je vezan na pin
3 istog ulaznog modula, onda se postavljeni zadatak može realizovati na način koji je prikazan na
slikama Sl. 2-9 i Sl. 2-10. Ovde je, naime na red sa delom ranga kojim se ostvaruje paljenje sijalice,
vezan uslov kojim se proverava da li Stop taster nije pritisnu. Sve dok Stop taster nije pritisnut,
vrednost tog dela uslova je istinita, dakle on ne utiče na ponašanje sijalice. Kad se Stop taster
pritisne, vrednost tog dela uslova postaje neistinita, a budući da je to redni (serijski) uslov, i
vrednost celog ranga postaje neistinita. U tom slučaju u programu sa trajnim postavljanjem
izlaznog bita uslov u drugom rangu postaje istinit i aktivira naredba OTU (Sl. 2-9). Kod rešenja sa
smodržanjem, sama činjenica da u rangu jedan od redno vezanih uslova postaje neistinit dovodi do
toga da je uslov neistinit pa se izlazni bit OTE naredbom postavlja na 0 (Sl. 2-10).

SL. 2-9 – LEDER PROGRAM SA TRAJNIM PAMĆENJEM USLOVA DO PTITISKA STOP TASTERA
Plc_leder/28

SL. 2-10 – LEDER PROGRAM SA SAMODRŽANJEM DO PRITISKA STOP TASTERA


Zapazimo da bi ceo problem oko paljenja i gašenja sijalice bio bi rešen rangom koji je
prikazan na Sl. 2-6, da su umesto tastera koriščeni dvopoložajni prekidači.

PR. 2-2 PUŠTANJE SISTEMA U RAD


ZADATAK
Posmatra se sistem koji počinje da radi kada se pritisne START taster. Sistem nastavlja sa
radom sve dok se ne pritisne stop taster. Istovremeno se zahteva da se prilikom započinjanja rada
sistema generiše impulsni signal koji realizuje brzo “zamrzavanje” nekog LED displeja. Potrebno je
da se formira leder program koji će podržavati rad opisanog sistema uz predpostavku da se on
pušta u rad pomoću jednog “on/off” motora.
REŠENJE
Neka su kola koja sadrže START i STOP taster kao i kolo za pobudu motora vezani za U/I
modul koji je smešten u slotu 1 PLC-a i to na pinove kojima respektivno odgovaraju adrese I:1/0,
I:1/1 i O:1/0. Neka je nadalje signal koji upravlja zamrzavanjem displeja vezan za izlazni pin čija je
adresa O:1/1. Odgovarajući leder program dat je na Sl. 2-11.

SL. 2-11 – START/STOP LEDER PROGRAM


U prvom rangu uslov je ispunjen ako je START taster pritisnut i STOP taster nije pritisnut.
U tom slučaju generisaće se signal za start motora i on će biti zalečovan, tako da se njegova
vrednost neće menjati ukoliko se zbog otpuštanja START tastera promeni vrednost uslova.
Istovremeno će, prilikom pritiska START tastera, OSR naredba detektovati promenu neistinit/istinit
što će dovesti do toga da ona u tom sken ciklusu dobije vrednost istinit tako da će se izvršiti OTE
naredba kojom se na izlazu O:1/1 generiše potreban impulsni signal. Sve dok se ne pritisne STOP
taster, vrednost uslova u drugom rangu biće neistinita, tako da se naredba unletch neće izvršavati.
Kada se pritisne STOP taster, uslov u prvom rangu postaje neistinit, što znači da se letch naredba
ne izvršava. Međutim, vrednost uslova u drugom rangu postaje istinita, pa se izvršava unletch
naredba, i time signal za start motora dobija vrednost “logičke” nule, pa se motor zaustavlja.
Plc_leder/29

PR. 2-3 REALIZACIJA SEKVENCE

SL. 2-12 REALIZACIJA SEKVENCE POMERANJA KLIPOVA


Plc_leder/30

ZADATAK
Dat je sistem koji sadrži jedan jednosmerni solenoid (A) i dva dvosmerna (B i C). Potrebno
je realizovati sledeću sekvencu pomeranja klipova: A+ B+ C+ B- A- C- . Pri tome se predpostavlja
da su u početnom trenutku svi klipovi uvučeni. Granični prekidači koji indiciraju uvučenost klipa A i
B su normalno zatvoreni, dok su svi ostali granični prekidači normalno otvoreni. Sistem se pušta u
rad pomoću pritiska na taster i prestaje sa radom kada se jedanput izvrši zahtevana sekvenca.
REŠENJE
Jedno moguće rešenje postavljenog zadatkadata je na Sl. 2-12. Pri tome je
predpostavljeno da su granični prekidači vezani za PLC preko ulaznog modula koji se nalazi u slotu
3 (adrese I:3/b), dok se pobude solenoida dobijaju preko 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 otpočinjanje i završetak rada.
Interna promenljiva vrati A (B3:0/1) služi za deaktiviranje pobude klipa A, posle čega ga opruga
vraća u početni položaj.
Potrebno je da se obrati pažnja na činjenicu da se, da ne bi došlo do slučajnog pomeranja
klipova (izazvanog recimo nekim opterećenjem), oni u izvučenom položaju drže pod naponom, sve
dok ne dođe trenutak za njihovo uvlačenje. Budući da se stanje graničnih prekidača menja čima se
klip pomeri, da bi se obezbedio kontinuitet napajanja koristi se postupak samodržanja (rang 3 i 4).
Zapazimo, takođe, da se stanje prekidača koji indiciraju uvučen položaj klipa ne može
ispitivati samo po sebi. Naime ovi prekidači su pritisnuti u početnom stanju, pa je neophodno
utvrditi da je došlo do pokreta pre nego što su oni ponovo pritisnuti (rang 5, 6 i7).

2.3. NAREDBE ZA MERENJE VREMENA I PREBROJAVANJE DOGAĐAJA

2.3.1. ČASOVNIK I BROJAČ


Prilikom upravljanja ili nadzora procesa često je potrebno da se neka aktivnost
otpočne ili zaustavi posle određenog vremenskog perioda, ili da se ponovi određeni broj
puta. U tom smislu neophodno je da kontroler koji će se koristiti za upravljanje procesom
pruži mogućnost za merenje vremena i prebrojavanje događaja. Prebrojavanje događaja
obavlja brojač (counter), koji nakon registrovanja unapred zadanog broja događaja
generiše odgovarajući signal. Merenje vremena ostvaruje se pomoću časovnika (timer). U
suštini časovnik izražava vreme kao multipl određenog osnovnog intervala (vremenska
baza). To zapravo znači da časovnik radi kao brojač protoka osnovnih intervala i da nakon
isteka određenog, unapred zadanog intervala vremena, generiše odgovarajući signal.
Gledano potpuno opšte merenje protoka vremena i prebrojavanje događaja u
okviru kontrolera može se realizovati hardverski pomoću odgovarajućih računarskih
komponenti (modula) ili softverski (programski). Hardverska realizacija podrazumeva da
kontroler ima posebni modul koji ostvaruje funkciju časovnika i brojača. Korisnik
odgovarajućim naredbama definiše parametre modula i u toku izvršavanja programa
kontroliše njegov rad. U slučaju softverske realizacije, ovu funkciju ostvaruje posebni
programski modul, koji korisnik, po potrebi, uključuje u svoj program i odgovarajućim
naredbama upravlja njegovim radom. Sa aspekta načina korišćenja, gotovo da i nema
razlike između ove dve realizacije. Razlika se zapravo ogleda samo u funkcionalnom
smislu. U principu, ukoliko su časovnik i brojač hardverski realizovani oni svoju funkciju
obavljaju autonomno, što znači da ne koriste procesor za svoj rad. Nasuprot tome,
softverski realizovani časovnik i brojač, kao i svi drugi programski moduli, za izvođenje
svojih funkcija zahtevaju izvesno procesorsko vreme. Budući da je procesor opterećen
čitavim nizom poslova, to znači da postoji samo određeno vreme koje on može posvetiti
radu časovnika i brojača. Otuda hardverska realizacija, bar u principu, omogućava rad sa
manjim intervalima vremena, odnosno bržim ponavljanjem događaja od softverske. Sa
druge strane međutim, softverska realizacija omogućava da se definiše i koristi praktično
neograničen broj časovnika i brojača, jer se kao jedino ograničenje javlja veličina
raspoložive memorije.
U seriji kontrolera SLC 5 časovnici i brojači su realizovani softverski, i koriste se
kao naredbe akcije. Kao što je već istaknuto ne postoji nikakvo posebno ograničenje u
Plc_leder/31

pogledu njihovog broja. Potrebno je da se naglasi da su za neke od SLC 5 kontrolera


razvujeni i posebni hardverski brojači.
Pri korišćenju časovnika i brojača neophodno je da se definišu sledeći parametri.
• Vremenska baza (t ime base) određuje dužinu osnovnog intervala vremena. Kod
fiksnog kontrolera SLC/500 i modularnog SLC 5/01, vremenska baza je definisana kao
0.01 sec. Kod kontrolera SLC 5/02, 5/03 i 5/04 bira se jedna od dve moguće vrednosti:
0.01 sec ili 1.0 sec.
• Zadana vrednost ( preset value - PRE) je vrednost kojom se definiše željeni broj
osnovnog intervala vremena (čime se određuje ukupno vreme koje časovnik treba da
izmeri), odnosno ukupni broj događaja koje brojač treba da registruje pre nego što se
generiče signal koji označava da su časovnik ili brojač završili rad.
Zadana vrednost za časovnik može da se kreće u intervalu od 0 do +32767, dok se
zadana vrednost za brojač kreće u opsegu od -32768 do +32767.
• Akumulir ana vr ednost (accumulated value - ACC) predstavlja broj osnovnih
vremenskih intervala koje je časovnik izbrojao, odnosno broj događaja koje brojač
registrovao u nekom trenutku. Kada akumulirana vrednost postane veća ili jednaka od
zadane vrednosti časovnik, odnosno brojač, završavaju svoj rad.
Opseg dozvoljenih vrednosti za akumuliranu vrednosti isti je kao i za zadanu vrednost.

2.3.2. DATOTEKA PODATAKA O ČASOVNIKU (TIMER DATA FILE)


S obzirom da je
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 časovnik realizovan
Reč 0 EN TT DN za internu upotrebu softverski, parametri
Reč 1 zadana vrednost (PRE) koji definišu njegov rad
Reč 2 izmerena vrednost (ACC) moraju biti smešteni u
memoriji kontrolera. Za
Adresibilni bitovi Adresibilne reči pamćenje podataka o
EN = bit 15 - enable (indikator vrednosti uslova) PRE – zadana vrednost časovnicima koristi se
TT = bit 14 - timer timing (indikator rada časovnika) ACC – izmerena vrednost
DN = bit 13 - done (indikator ostvarenog zadanog vremena) datoteka podataka broj
4 (timer file – T). U ovoj
datoteci može se
Т f : e . w / b definisati najviše 256
redni broj različitih časovnika.
redni broj bita u reči
datoteke 0 - 15
Ukoliko je potrebno da
redni broj elementa u redni broj reči u
4 ili 10-255
datoteci 0 - 255 elementu 0 - 2 se koristi veći broj
časovnika, korisnik
SL. 2-13 ELEMENAT DATOTEKE ČASOVNIKA I ADRESIRANJE ČASOVNIKA može definisati i
dodatne datoteke
(korisnički definisane datoteke) čiji su brojevi od 9 do 255.
Svakom časovniku pridružuju se po jedan element koji se sastoji se od tri 16-bitne
reči (Sl. 2-13). Potrebno je da se zapazi da redni broj elementa zapravo definiše jedan
određeni časovnik unutar jedne datoteke časovnika. Svaki od tri bita stanja, kao i zadana i
akumulirana vrednost mogu se posebno adresirati i to bilo na standardan način na koji se
formira adresa u bilo kojoj datoteci podataka, bilo preko odgovarajućih simbola. To
zapravo znači da su sledeće adrese međusobno ekvivalentne:
Tf:e.1 ili Tf:e.PRE
Tf:e.2 ili Tf:e.ACC
Tf:e.0/15 ili Tf:e/15 ili Tf:e/EN
Tf:e.0/14 ili Tf:e/14 ili Tf:e/TT
Tf:e.0/13 ili Tf:e/13 ili Tf:e/DN
Plc_leder/32

2.3.3. NAREDBE ZA RAD SA ČASOVNIKOM


Kao što je već rečeno naredbe časovnika su naredbe akcije, što znači da se
nalaze na desnoj strani ranga u leder programu. Postoje tri tipa naredbi kojima se
realizuju tri vrste časovnika, i jedna naredba kojom se stanje časovnika resetuje.
Potrebno je da se istakne da se sam časovnik i način njegovog rada definiše preko
naredbe koja se uvrštava u leder program. Drugim rečima, kad se u program stavi jedna
od moguće tri naredbe i u njoj naznači adresa časovnika u odgovarajućem formatu, onda
operativni sistem sam zauzme tri reči u datoteci koja je navedena u adresi.
• Timer on-delay (TON)
Kao što je već rečeno,
stavljanjem ove naredbe u leder
program automatski se definiše prva
vrsta časovnika i zauzimaju tri reči
koje čine elemenat broj e u datoteci
časovnika broj f. Prilikom formiranja
naredbe specificaraju se i vremenska baza (tx) i zadana vrednost (ns). Akumulirana
vrednost (na)se automatski postavlja na 0.
TON naredba započinje rad časovnika (prebrojavanje osnovnih vremenskih
intervala) za vreme onog programskog sken ciklusa u kome uslov u rangu u kome se
naredba nalazi prvi put postaje istinit (prelaz neistini/istinit – uzlazna ivica). U svakom
sledećem sken ciklusu, sve dok je uslov istinit časovnik vrši ažuriranje akumulirane
vrednosti (ACC) u skladu sa proteklim vremenom između dva ciklusa. Kada akumulirana
vrednost dostigne zadanu vrednost, časovnik prekida svoj rad i postavlja DN bit na 1. Pri
tome, ako u nekom sken ciklusu uslov postane neistinit, časovnik prekida svoj rad i
akumulirana vrednost se postavlja na 0, bez obzira da li je časovnik pre toga izmerio
zahtevano vreme ili ne.
Bitovi stanja časovnika menjaju se u toku programskog sken ciklusa na sledeći
način:
• DN - Timer done bit se postavlja na 1 kada je ACC ≥ PRE. On se resetuje na 0 kad
uslov u rangu postane neistinit.
• EN - Timer enable bit se postavlja na 1 kada je uslov u rangu istinit i resetuje na 0
kada uslov postane
1 7 neistinit.
Uslov
4
• TT - Timer timing bit
12 se postavlja na 1 kada
2-a 8-a
EN bit je uslov istinit i ako je
5 ACC ≤ PRE. On se
13 resetuje na 0 kada
TT bit
uslov postane neistinit
Zadano ili kada se DN bit
vreme
(PRE) 3 postavi na 1, odnosno
9
2-b 6 8-b kada se završi merenje
vremena.
Izmereno
vreme
11 U vezi sa radom
10
(ACC) časovnika potrebno je da
se zapazi nekoliko
činjenica. Pre svega
DN bit
časovnik radi samo dok
vreme
je uslov istinit (signal na
ulazu u časovnik je u
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 stanju “on”). Istonosnu
trenutci obrade ranga
vrednost uslova pokazuje
sken ciklus

SL. 2-14 VREMENSKI DIJAGRAM IZVRŠAVANJA TON NAREDBE


Plc_leder/33

EN bit. Drugim rečima, ovaj bit ima vrednost 1 onda kada je uslov istinit i to označava da
je rad časovnika omogućen (enable). Kada je uslov neistinit, EN bit ima vrednost 0, što
znači da je rad časovnika onemogućen. Međutim, činjenica da EN bit ima vrednost 1 ne
mora da znači da časovnik zaista i radi, jer je on mogao i da završi rad zbog isteka
zadanog vremena, a da pri tome uslov i nadalje ostane istinit. Rad časovnika indicira TT
bit. Naime, taj bit je postavljen na 1 za svo vreme za koje časovnik aktivno meri vreme
(timer timing), i postavlja se na 0 kada časovnik ne radi. Konačno, kada je vrednost DN
bita 1, onda to znači da je časovnik završio (done) svoj posao, tj. izmerio zadano vreme.
Pri tome, DN bit ne govori o tome kada je časovnik završio sa poslom, jer će on ostati na
vrednosti 1 sve dok uslov ne postane neistinit. Vremenski dijagram rada časovnika
ilustrovan je na Sl. 2-14.
Stanje časovnika se može restovati posebnom RES naredbom, o čemu će kasnije
biti više reči.
• Timer off -delay (TOF)
Ovom naredbom se definiše
druga vrsta časovnika i zauzimaju tri
reči koje čine elemenat broj e u
datoteci časovnika broj f. Prilikom
formiranja naredbe specificaraju se i
vremenska baza (tx) i zadana
vrednost (ns). Akumulirana vrednost (na)se automatski postavlja na 0.
TOF naredba započinje rad časovnika za vreme onog programskog sken ciklusa u
kome uslov u rangu u kome se naredba nalazi prvi put postaje neistinit (prelaz
istini/neistinit – silazna ivica). U svakom sledećem sken ciklusu, sve dok je uslov neistinit
časovnik vrši ažuriranje akumulirane vrednosti (ACC) u skladu sa proteklim vremenom
između dva ciklusa. Kada akumulirana vrednost dostigne zadanu vrednost, časovnik
prekida svoj rad. Pri tome, ako u nekom sken ciklusu uslov postane istinit, časovnik
prekida svoj rad i akumulirana vrednost se postavlja na 0, bez obzira da li je časovnik pre
toga izmerio zahtevano vreme ili ne.
Bitovi stanja
1
Uslov časovnika menjaju se u
4 7 12 toku programskog sken
EN bit
ciklusa na sledeći
2-a 5 8-a
način:

TT bit 13 • DN - Timer done bit


se postavlja na 1
Zadano
10 kada je uslov istinit.
vreme (PRE)
2-b
3
6 8-b
On se resetuje na 0
9 14 kada je uslov neistinit
i pri tome je ACC ≥
ACC vrednost PRE.
11
• EN - Timer enable
DN bit bit se postavlja na 1
kada je uslov istinit, i
resetuje na 0 kada je
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
trenutci obrade ranga
vreme
uslov neistinit.
sken ciklus TT - Timer timing bit •
SL. 2-15 VREMENSKI DIJAGRAM IZVRŠAVANJA TOF NAREDBE se postavlja na 1
kada je uslov neistinit
i pri tome je ACC ≤ PRE. One se resetuje na nulu kada uslov postane istinit ili kada se
DN bit resetuje.
Plc_leder/34

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
onemogućava rad časovnika. Drugim rečima, ovaj bit ima vrednost 1 onda kada je uslov
istinit i to označava da je rad časovnika onemogućen. Kada je uslov neistinit, EN bit ima
vrednost 0, što znači da je rad časovnika omogućen. Međutim, činjenica da EN bit ima
vrednost 0 ne mora da znači da časovnik zaista i radi, jer je on mogao i da završi rad zbog
isteka zadanog vremena, a da pri tome uslov i nadalje ostane neistinit. Rad časovnika
indicira TT bit. Naime, taj bit je postavljen na 1 za svo vreme za koje časovnik aktivno
meri vreme (timer timing), i postavlja se na 0 kada časovnik ne radi. Konačno, kada je
vrednost DN bita 0, onda to znači da je časovnik završio (done) svoj posao, tj. izmerio
zadano vreme. Pri tome, DN bit ne govori o tome kada je časovnik završio sa merenjem
vremena, jer će on ostati na vrednosti 0 sve dok uslov ne postane istinit. Vremenski
dijagram rada časovnika ilustrovan je na slici Sl. 2-15.
• Retent ive Timer (RT O)
Ovom naredbom se definiše treća vrsta časovnika i zauzimaju tri reči koje čine
elemenat broj e u datoteci
časovnika broj f. Prilikom formiranja
naredbe specificaraju se i
vremenska baza (tx) i zadana
vrednost (ns). Akumulirana vrednost
(na) se automatski postavlja na 0.
RTO naredba razlikuje se od
TON naredbe samo po tome što se akumulirana vrednost ne resetuje, već zadržava i
onda kada uslov postane neistint (Sl. 2-16). Drugim rečima, ovaj časovnik počinje da radi
kada uslov postane istinit, i nastavlja sa radom povećavajući akumuliranu vrednost sve
dok je uslov istinit. Kada uslov postane neistinit, časovnik prekida rad, ali se akumulirana
vrednost pri tome ne menja. To znači da će kada uslov ponovo postane istinit, časovnik
nastaviti sa radom i prethodno izmerenom vremenu (ACC) dodavati nove vrednosti. Na taj
način ovaj časovnik
omogućuje da se
kumulativno mere
intervali vremena u
kojima je uslov bio
istinit (Sl. 2-16).
Bitovi stanja
časovnika menjaju se u
toku programskog sken
ciklusa na sledeći
način:
• DN - Timer done bit
se postavlja na 1
kada je ACC ≥ PRE
(časovnik je izmerio
zadano vreme). On
se resetuje na 0
pomoću posebne
RES naredbe.
SL. 2-16 VREMENSKI DIJAGRAM IZVRŠAVANJA RTO NAREDBE EN• - Timer
enable bit se
postavlja na 1 kada je uslov u rangu istinit (rad časovnika je omogućen) i resetuje na 0
kada uslov postane neistinit (rad časovnika je onemogućen).
Plc_leder/35

• 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 izvršava tako što se u časovniku čija je
adresa (ili simboličko ime) a navedena u RES
naredbi, resetuju na nulu bitovi DN, TT i EN, kao i
akumulirana vrednost (ACC). S obzirom na način rada očigledno je da se RES naredbe
ne sme koristiti za TOF tip časovnika.

2.3.4. NAČIN RADA ČASOVNIKA


Sve dok časovnik radi u svakom sken ciklusu povećava se akumulirana vrednost.
Pri tome, iznos za koji će se povećati ACC vrednost zavisi od dužine trajanja sken ciklusa.
Naime, kada se prilikom obrade ranga ustanovi da su se stekli uslovi da časovnik počne
sa radom onda se istovremeno startuje jedan interni časovnik, koji se ažurira preko
prekida (interapta) na svakih 0,01 sec. Broj registrovanih vremenskih intervala se smešta
u interni 8-bitni registar (bitovi 0-7 u prvoj reči). Ukoliko je u pitanju časovnik čija je
vremenska baza 0,01 sec, onda se u sledećem programskom skenu, kada se naiđe na
dati rang, vrednost internog registra, koja zapravo predstavlja interval vremena koji je
protekao između dva sukcesivna sken-a, dodaje akumuliranoj vrednosti. Nakon toga se
interni rgistar resetuje na nulu i počinje ponovo da meri vreme do sledećeg skena. Budući
da je maksimalna vrednost koju može da ima interni registar oko 2,5 sec (255x0,01),
može se očekivati da će tajmer raditi ispravno samo ako sken ciklus ne traje duže od 2,5
sekundi. Ukoliko se tajmer koristi u programu čiji sken ciklus traje duže, onda je
neophodno da se ista naredba za časovnik postavi na više mesta u programu čime će se
obezbediti da se rangovi koji sadrže taj časovnik obrađuju sa učestanošću koja nije veća
od 2,5 sekundi. (Svaki put kada se prođe kroz rang koji sadrži časovnik izvršiće se
ažuriranje internog registra i povećati akumulirana vrednost).
Ukoliko časovnik radi sa vremenskom bazom od 1 sekunde obrada časovnika je
donekle složenija. Ovde se, naime i dalje koristi interni časovnik koji se ažurira na svakih
0,01 sekundi, ali se pri tome u toku obrade ranga akumulirana vrednost ažurira samo ako
je akumulirana vrednost veća ili jednaka od 1 sekunde. Pri tome se akumulurina vrednost
uvećava za 1, dok se eventualni ostatak vremena pamti u internom brojaču i na njega se
dodaju sledeći inkrimenti od po 0,01 sekunde. Postupak ažuriranja akumulirane vrednosti
je takav da se može očekivati da će časovnik raditi ispravno ako sken ciklus ne traje duže
od 1,5 sekundi (maksimalni mogući ostatak posle očitavanja je 0,99, što uvećano za 1,5
čini 2,5). Naravno, i ovde se problem ciklusa dužeg trajanja može prevazići stavljanjem
naredbe časovnika na više mesta u programu.
Potrebno je da se naglasi da je pri koriščenju časovnika neophodno da se
posebna pažnja posveti naredbama za skok. Naime, i ako je trajanje sken ciklusa u
dozvoljenim granicama, može se desiti da se nekom od naredbi za skok u jednom ili viče
suskcesivnih sken ciklusa preskoči rang koji sadrži časovnik. Jasno je da se u tom slučaju
neće vršiti ažuriranje akumulirane vrednosti. To nadalje znači da je neophodno da se
obezbedi da u slučaju bilo kakvog programskog skoka, naredba za časovnik ne bude
isključena iz obrade u periodu koji je duži od maksimalno dozvoljenog vremena.
Tačnost časovnika (timer accuracy) je pojam koji se odnosi na dužinu vremenskog
intervala koji protekne od trenutka kada se časovnik uključi do trenutka kada DN bit
indicira da je merenje vremena završeno. Kao što je već istaknuto, za časovnike koji rade
sa vremenskom bazom od 0,01 sekunde tačnost je u granicama od ±0,01 sec sve dok
sken ciklus ne traje duže od 2,5 sekunde. Časovnici koji rade sa vremenskom bazom od 1
sekunde zadržavaju svoju tačnost ukoliko je programski sken kraći od 1, 5 sec.
Neophodno je da se istakne, međutim, da tačnost rada časovnika ne implicira da
Plc_leder/36

će i neki događaj koji je vezan sa časovnikom da bude aktiviran sa istom tačnošću.


Aktiviranje događaja se ostvaruje ispitivanje DN bita. U najvećem broju slučajeva ovaj
uslov se ispituje jedanput u okviru sken ciklusa. To nadalje znači da je tačnost aktiviranja
događaja određena trajanjem jednog sken ciklusa.

2.3.5. DATOTEKA PODATAKA O BROJAČU (COUNTER DATA FILE)


Budući da je
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
brojač, isto kao i
Reč 0 CU CD DN OV UN UA
časovnik, realizovan
Reč 1 zadana vrednost (PRE)
Reč 2 odbrojana vrednost (ACC)
softverski, parametri
koji definišu njegov
rad moraju biti
Adresibilni bitovi Adresibilne reči smešteni u memoriji
CU = bit 15 - counter up enable (indikator PRE - preset value (zadana vrednost)
uslova kod brojanja unapred)
kontrolera. Za
ACC - accumulated value (odbrojana
CD = bit 14 -counter down enable (indikator vrednost) pamćenje podataka o
uslova kod brojanja unazad) brojačima koristi se
DN = bit 13 – done (indikator ostvarenog
zadanog broja)
datoteka podataka
OV = bit 12 – overflow (brojač unapred prešao broj 5 (counter file –
32767) C). U ovoj datoteci
UN = bit 11 – underflow (brojač unazad prešao
-32768) može se definisati
UA = bit 10 – indikator ažuriranja brzog najviše 256 različitih
hardverskog brojača (HSC) brojača. Ukoliko je
potrebno da se koristi
C f : e . w / b veći broj brojača,
redni broj redni broj korisnik može
datoteke
redni broj elementa redni broj
bita u reči definisati i dodatne
4 ili 10-255
u datoteci reči
0 - 15 datoteke (korisnički
0 - 255 u elementu definisane datoteke)
0-2
čiji su brojevi od 9 do
255.
SL. 2-17 ELEMENAT DATOTEKE BROJAČA I ADRESIRANJE BROJAČA Svakom
brojaču pridružuju
se po jedan element u odgovarajućoj datoteci, koji se sastoji od tri 16-bitne reč (Sl. 2-17).
Postoje dva osnovna tipa brojača brojač unapred (CTU – count up) i brojač unazad (CTD
– count down) i oba koriste istu datoteku. Isto kao i kod časovnika i brojaču i pojedinim
bitovima mogu se umesto adrese dodeliti simbolička imena.

2.3.6. NAREDBE ZA RAD SA BROJAČEM


Naredbe za oba tipa brojača su naredbe akcije, što znači da se smeštaju u desni
deo ranga. Oba brojača broje
promenu vrednosti uslova sa
neistinit na isitinit (uzlazna
ivica). Pri svim ostalim
vrednostima uslova, oni
zadržavaju prebrojani iznos i
čekaju sledeći prelaz. Drugim
rečima, brojači se niti
SL. 2-18 KRUŽNI RAD BROJAČA puštaju u rad, niti
zaustavljaju. Oni
neprekidno rade i beleže (broje) svaki prelaz istinit/neistinit. Dostizanje zadane vrednosti
se signalizira postavljavanjem odgovarajućeg bita – done bit (DN) – na 1, ali se brojanje i
dalje nastavlja. Prebrojani iznos se može izbristai jedino posebnom RES naredbom.
Jedina razlika između brojača sastoji se u tome što prvi (CTU) broji unapred od 0
do 32767, i postavlja overflow bit (OV) na 1 kad pređe 32767, dok drugi (CTD) broji
Plc_leder/37

unazad, od 0 do –32767, i postavlja underflow bit (UN) kad pređe –32767. Potrebno je
zapaziti da se u oba slučaja brojanje nastavlja (Sl. 2-18). Kada pređe 32767, brojač
unapred dodavanjem još jednog bita dobija vrednost –32767 (u binarnoj aritmetici drugog
komplementa, sa 16-bitnom reči 32767+1= –32768) i nastavlja da broji unapred od tog
broja. Na isti način, kada brojač unazad dostigne vrednost od –32768, oduzomanjem
sledećeg bita, brojač dobija vrednost 32767 (u binarnoj aritmetici drugog komplementa,
sa 16-bitnom reči –32768-1= 32767) i nastavlja da broji unazad od te vrednosti. To
nadalje znači da korisnik sam mora da vodi računa o eventualnom prekoračenju opsega.
• Count up (CTU)
Bitovi stanja brojača
menjaju se u toku programskog
sken ciklusa na sledeći način:
OV - Count up overflow bit se

postavlja na 1 kada akumulirana
vrednost (ACC) prelazi sa 32767
na –32768 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom reči 32767+1= –
32768), i nastavlja brojanje unapredi.
• DN - Done bit se postavlja na 1 kada je ACC ≥ PRE;
• CU - Count up enable bit se postavlja na 1 kada je uslov istinit, a resetuje na 0 kada je
uslov neistinit ili kada se aktivira odgovarajuća RES naredba.
• Count down (CTD)
Bitovi stanja brojača
menjaju se u toku programskog
sken ciklusa na sledeći način:
UN- Count down underflow bit

se postavlja na jedan kada
akumulirana vrednost (ACC)
prelazi sa – 32768 na 32767 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom
reči –32768-1= 32767), i nastavlja da broji unazad od te vrednosti.
• DN - done bit se postavlja na 1 kada je ACC ≤ PRE;
• CD - Count down enable bit se postavlja na 1 kada je uslov istinit, a resetuje na 0 kada
je uslov neistinit ili kada se aktivira odgovarajuća RES naredba.
• Reset naredba (RES)
RES naredba je naredba akcije i koristi se za
resetovanje brojača. Kada je uslov istinit ova
naredba se izvršava tako što se u brojaču čija je
adresa (ili simboličko ime) navedeno u RES naredbi,
postavljaju na nulu svi indikatorski bitovi, kao i
akumulirana vrednost (ACC).

2.3.7. PRIMERI KORIŠĆENJA ČASOVNIKA I BROJAČA


PR. 2-4 EKSCENTAR PRESA
ZADATAK
Data je jedna ekscentar presa koja se koristi za izradu zatvarača za flaše. Zatvarači se
proizvode tako što se komad metala stavi na postolje ispod bata prese koji se pomera u vertikalnoj
ravni (dole – gore). Bat udara u metal kada dođe u krajnji donji položaj i deformiše ga, odnosno
oblikuje na ženjeni način. Za bat prese pričvršćena je poluga čiji je gornji kraj vezan ekscentrično
za osovinu prese. Položaj tačke vezivanja odabran je tako da obrtanje osovine prese uzrokuje
linearno (vertikalno) pomeranje bata. Pri tome, za vreme za koje osovina prese napravi pun obrt,
bat prese pređe put od gorenjeg krajnjeg do donjeg krajnjeg položaja i nazad. Obrtanje osovine
Plc_leder/38

prese ostvaruje se preko motora čija je osovina vezana sa osovinom prese preko frikcione
spojnice. Uprošćeni model opisane
Ekscentrična
čaura prese prikazan je na slici Sl. 2-19.
Na presi radi radnik koji
postavlja komad metala ispod bata,
Glavna
osovina
zatim aktivira presu, sačeka da ona
motora završi jedan krug, izvadi zatvarač i
Osovina
motora stavlja novi komad metala.
Potrebno je napraviti sistem
Frikciona
spojnica Poluga bata koji će pomoću PLC-a upravljati
radom prese. Sistem treba da je
projektovan tako da obezbedi
maksimalnu zaštitu radnika u toku
Bat prese Hod bata rada.

REŠENJE
Polazeći od funkcionalnog
opisa uređaja očigledno je da bi
presom trebalo da se upravlja tako
što će poslužilac prese na neki način
SL. 2-19 ŠEMATSKI PRIKAZ EKSCENTAR PRESE dati znak za pokretanje bata
prese. Tada će frikciona spojnica
spojiti osovinu prese na motor i on će pokrenuti bat. Kada bat napravi jedan puni radni ciklus
(gore→dole→gore), spojnica rastavlja motor od prese i presa se zaustavlja.
Iz navedenog opisa željenog rada prese izvesno je da mora da postoji jedan prekidač
kojim se motor pušta u rad. Pri tome, postoje dve mogućnosti. Ili da se sa svakom aktivacijom
prese motor pokreće i zaustavlja ili da se jedanput pokrenut motor stalno vrti, dok se radom same
prese upravlja isključivo preko spojnice. Imajući u vidu da je proces proizvodnje zatvarača serijski
proces, ovo drugo rešenje je povoljnije. Budući da je brzina motora konstantna za upravljanje je
dovoljan jedan digitalni signal koji ćemo vezati za nulti pin izlaznog dela digitalnog U/I modula u
prvom slotu. Simboličko ime ovog signala je "motor_on". Ovaj motor pokretaće se pritiskom na
jedan poseban taster "start" i zaustavljatipritiskom na taster "stop". Signale sa ova dva tastera
dovodićemo na ulazni deo digitalnog U/I modula i to na pinove 0 i 1.
Radom spojnice upravlja se preko jednog elektromagneta koji, kada ima priključeno
napajanje, aktivira frikcionu spojnicu, čime se obrtni momenat motora prenese na osovinu
ekscentar-prese. Elektromagnet se napaja jednosmernim naponom od 24V. Otuda nam je
neophodan još jedan digitalni izlazni signal. Neka je on vezan za pin 1 izlaznog dela digitalnog U/I
modula u prvom slotu i neka je njegovo simboličko ime "spoj_on".
Da bi presom moglo da se upravlja neophodno je da se raspolaže sa informacijom o
položaju bata. Ovaj problem ćemo rešiti postavljanjem jednog graničnog prekidača na samu presu i
to tako da je on zatvoren kada je presa u gornjem graničnom položaju. Digitalnom signalu sa ovog
prekidača daćemo simboličko ime "swggr_on" i dovešćemo ga na drugi pin ulaznog dela U/I
modula u prvom slotu.
Preostaje još da rešimo način na koji rukovaoc presom pušta presu u rad. Izvesno je da bi
se to moglo rešiti postavljanjem jednog tastera koji se pritisne svaki put kad presa treba da napravi
jedan hod. Međutim, ovo rešenje bi moglo ozbiljno da ugrozi bezbednost radnika. Naime, njegov
radni proces sastojao bi se u tome što on uzme komad metala, stavi ga ispod prese, pritisne taster,
sačeka da presa izvrši jedan puni radni ciklus, izvadi formirani zatvarač i stavi novi komad metala.
U želji da se taj proces odvija što brže, rukovaoc presom bi mogao da odluči da jednom rukom
pritiska taster, a drugom postavlja materijal ispod prese. Jasno je da bi bio dovoljan samo jedan
trenutak nepažnje pa da on ozbiljno povredi ruku. To nadalje znači da je neophodno da se osmisli
takav način puštanja prese u rad da je potpuno izvesno da se u tom trenutku nijedna njegova ruka
ne nalazi ispod bata. Ovako formulisan zahtev prirodno nameće ideju da se presa pušta u rad
pomoću dva prostorno udaljena tastera koji se mogu istovremeno pritisnuti samo sa obe ruke.
Postavićemo zato uz presu dva tastera za desnu i levu ruku i signale sa njih dovešćemo na treći i
četvrti pin ulaznig dela digitalnog U/I modula u prvom slotu. ("taster_lr_on" i "taster_dr_on").
Budući da je osmišljena potrebna oprema (senzori i izvršni organi) može se pristupiti
formiranju samog algoritma upravljanja i pisanju LADDER programa. U tom cilju neophodno je da
se reše dva problema. Prvi, jednostavniji, odnosi se na detekciju trenutka kada je presa završila
puni ciklus. Jasno je da će, kada je poluga bata u gornjem graničnom položaju, granični prekidač
biti pritisnut. Problem je međutim u tome što on to stanje ima i na početku pre bilo kakvog
Plc_leder/39

pomeranja bata i na kraju svakog punog ciklusa. Otuda, samo stanje graničnog prekidača ne
govori o tome da li je pokret izvršen ili ne. Da bi se ovaj problem prevazišao, uvodi se jedna interna
bit promenljiva (u programu označena kao hod) koja se postavlja dok se bat pomera. Na taj način,
kada se ustanovi da je granični prekidač zatvoren, potrebno je proveriti da li je istovremeno i interni
bit (hod) i tek ta dva uslova zajedno ukazuju da je presa završila jedan puni ciklus.

SL. 2-20 LEDER PROGRAM SA TRAJNIM PAMĆENJEM BITA ZA UPRAVLJANJE EKSCENTAR PRESOM
Drugi problem vezan je za ostvarivanje pune zaštite rukovaoca presom. Praksa pokazuje
da postavljanjem dva tastera problem i dalje nije rešen. Naime, može se desiti da rukovaoc,
zanemarujući sopstvenu bezbednost, odluči da mu je lakše i brže da radi tako što će jedan od dva
Plc_leder/40

tastera zaglaviti tako da stalno bude pritisnut, pa će onda jednom rukom pritiskati drugi taster, a
drugom menjati materijal. Naš je zadatak, da algoritam osmislimo tako da nateramo rukovaoca
presom da sa obe ruke istovremeno pritiska tastere. Jedan od načina da se postavljeni problem
reši je da se uslov za aktiviranje spojnice postavi tako da se ona ne sme aktivirati ako je jedan od
tastera stalno pritisnut, odnosno ako između pritiskanja jednog i drugog tastera prođe više od
nekog vremenskog intervala. Recimo da je to 500ms.
Dve varijante LADDER programa kojima se realizuje navedeni algoritam prikazane su na
Sl. 2-20 i Sl. 2-21.

SL. 2-21 LEDER PROGRAM SA SAMODRŽANJEM ZA UPRAVLJANJE EKSCENTAR PRESOM


Plc_leder/41

Posmatrajmo kao prvo program koji koristi naredbe za trajno pamćenje bitova (Sl. 2-20). U
toku programskog sken ciklusa obrađuje se rang po rang. Sve dok se ne pritisne "start" taster uslov
u rangu 0 neće biti istinit pa motor neće dobiti pobudu. Otuda je potpuno nebitno šta će se dešavati
u sledećim rangovima jer presa neće raditi. Rang 1 će biti istinit tek kada se pritisne "stop" taster i
tada će motor izgubiti pobudu. U međuvremenu rad prese biće diktiran ostalim rangovima
programa.
Kada se pritisne taster leve ili desne ruke (ili oba) časovnik će početi da meri vreme. Pri
tome, budući da se taster nakon pritiska može i otpustiti, informacija o tome da je on bio pritisnut
pamti se trajno u jednom internom bitu, koji se onda u sledećem rangu (broj 3) koristi kao uslov za
pokretanje časovnika. Ovde je potrebno zapaziti da bi časovnik neprekidno radio kada bi jedan od
tastera bio zaglavljen u pritisnutom položaju, to znači da bi on stalno pokazivao vreme koje je veće
od 500ms.
Sledeći rang (broj 4) služi za aktiviranje spojnice. Uslov da bi se spojnica aktivirila je da su
oba tastera prititsnuta, da od trenutka pritiska prvog od njih nije proteklo više od 500ms, i da se
presa nalazi u gornjem graničnom položaju. Ukoliko je spojnica aktivirana, dolazi do pokreta što
znači da se otvara gornji granični prekidač. Kada su ova dva uslova istovremeno istinita, u rangu
broj 5 će se postaviti indikator pokreta bata . Konačno, ako je došlo do pokreta i pri tome je gornji
granični prekidač zatvoren (hod), u rangu broj 6 se resetuje pobuda spojnice i svi upamćeni bitovi,
čime se omogućava izvršavanje sledećeg ciklusa rada prese. (Podsetimo se da za svaku OTL
naredbu u programu mora da se stavi i OTU naredba koja će pod datim uslovima resetovati trajno
postavljen bit).
Program sa samodržanjem prati istu osnovnu logiku (Sl. 2-21). Razlika je jedino u tome što
se ovde u svakom rangu u kome se postavljaju bitovi, pomoću paralelne grane obezbeđuje da
uslov bude istinit i kada neki od tastera ili prekidača promeni stanje. Pri tome, da bi se obezbedilo
da se ovi bitovi resetuju kada se završi jedan ciklus rada prese uvodi se interna promenljiva "kraj"
koja se postavlja na 1 kada se ciklus prese završi. Posle toga, u sledećem programskom sken
ciklusu uslovi u svim rangovima biće nesitiniti (jer se u njima ispituje promenljiva "kraj").

PR. 2-5 REGULACIJA PROTOKA VAZDUHA


ZADATAK
Posmatra se neki ventil čijim radom se upravlja pomoću jednosmernog solenoida (A). Pri
tome, kada se aktvira ventil, pritisak vazduha dostiže željeni nivo u roku od 5 sekundi. Nakon toga,
ventilom se može upravljati (pomeranjem klipa solenoida) i to u vremenu od 10 sekundi. Posle
isteka 10 sekundi, opruga solenoida vraća klip u početni položaj i zatvara ventil.
REŠENJE
Dva moguća rešenja postavljenog problema, od kojih jedno koristi izlaznu naredbu sa
trajnim postavljanjem bita, a drugo postupak samodržanja, prikazana su na Sl. 2-22 i Sl. 2-23.
Predpostavljeno je da se signal sa prekidača za otpočinjanje programa vodi na nulti pin digitalnog
ulaza (simboličko ime START_ON), a da se signal na priključak A+ solenoida vodi preko nultog
pina digitalnog izlaza (simboličko ime MOVE_APLUS).
Pri analizi programa potrebno je imati na umu da se u svakom sken ciklusu ispituje redom
rang po rang. Pri tome, akcija će se izvršiti samo u onim rangovima u kojima je uslov istinit. Tako
će na primer, u prvom prolazu biti aktivan samo rang 0 i on će ostati jedini aktivan u svim sledećim
sken ciklusima, sve dok ne istekne 5 sekundi.
U sken ciklusu u kome se dostiže 5 sekundi, časovnik PRITISAK će postaviti DN bit, tako
da će uslov u rangu 1 biti istinit, pa će on postati aktivan i postaviti MOVE_APLUS na 1. Budući da
se ta promenljiva ispituje u rangu 2 i on će postati aktivan u istom sken ciklusu pa će pokrenuti
časovnik CONTROL. Uslov u rangu 3 (verzija sa trajnim postavljanjem bita Sl. 2-22) će i dalje biti
neistinit, pa se taj rang neće aktivirati.
U narednim sken ciklusima, sve dok ne prođe 10 sekundi biće istinit samo uslov u rangu 2.
Konačno, kada časovnik CONTROL izmeri 10 sekundi, on će postaviti svoj DN bit na 1. Odmah
zatim, u sledećem rangu u programu sa trajnim postavljanjem bita (Sl. 2-22), bit MOVE_APLUS
će biti resetovan i ventil će se zatvoriti. Kod programa sa samodržanjem (Sl. 2-23) to će se desiti
tek u sledećem sken ciklusu, kada uslov u paralelnoj grani ranga 2 postane neistinit.
Plc_leder/42

SL. 2-22 LEDER PROGRAM ZA REGULACIJU PROTOKA VAZDUHA SA TRAJNIM PAMĆENJEM BITA

SL. 2-23 LEDER PROGRAM ZA REGULACIJU PROTOKA VAZDUHA SA SAMODRŽANJEM


Plc_leder/43

Potrebno je obratiti pažnju na činjenicu da program u kome se koristi samodržanje ima


jedan rang manje i to zato što se kod njega u okviru istog ranga ostvaruje i aktiviranje i
dezaktiviranje signala A+. U programu u kome se koristi trajno postavljanje bita, aktivacija
solenoida se postiže u jednom rangu i to na isti način na koji se to ostvaruje kod samodržanja, dok
se deaktivacija, prirodno, mora naći u zasebnom rangu. U ovom primeru ta činjenica
pojednostavljuje završetak programa, te nije neophodno da se uvodi interna promenljiva koja
označava kraj rada.

PR. 2-6 PALJENJE I GAŠENJE SIGNALNE LAMPE


ZADATAK
Predpostavlja se da postoji neki hidraulicni mehanizam za čiji rad je neophodno da se ulje
zagreje do određene temperature. Pri tome se postizanje zadane temperature detektuje pomocu
jednog termo-prekidača 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 pčinje stalno da svetli.
Sistem se pušta u rad pritiskom na jedan dvopolžajni prekidač.
REŠENJE
Predpostavimo da je prekidač za puštanje sistema u rad vezan za nulti pin ulaznog
modula, tako da ima adresu I:1/0 i neka je njegovo simbolicko ime START_ON. Indikator
temeperature je vezan za prvi pin, tako da je adresa signala I:1/1, i pridruženo simboličko ime
KRAJ_GREJANJA. Signalan sijalica je vezana za pin 0 izlaznog modula (adresa O:2/0) i dodeljeno
joj je simbolično ime LAMPA_ON.
Jedno moguće rešenje postavljenog zadatka prikazano je na slici Sl. 2-24. Paljenje i
gasenje signalne lampe ostvaruje se korišćenjem dva časovnika od kojih je jedan TON tipa
(simboličko ime PALI), a drugi TOF tipa (simboličko ime GASI) i koji su vezani tako da, za svo
vreme za koje traje grejanje ulja, rade u protiv fazi.

SL. 2-24 - LEDER PROGRAM ZA PALJENJE I GAŠENJE SIJALICE


Pre prvog prolaza kroz program nijedan od časovnika ne radi, tako da su njihovi
odgovarajući DN bitovi postavljeni na 0 (PALI/DN) odnosno 1 (GASI/DN). U skladu sa time uslov
ranga 0 će biti neistinit (PALI/EN=0), te časovnik PALI neće raditi. Uslov ranga 1 će zbog toga biti
neistinit i pokrenuće časovnik GASI. Uslov u rangu 2 je neistinit i sijalica ne svetli. Ovakvo stanje
Plc_leder/44

trajaće dok časovnik GASI ne izmeri zadano vreme (ovde je usvojeno da to bude 1 sec). Kada
protekne 1 sekunda, časovnik GASI je završio rad i njegov DN bit postaje 0. U sledećem sken
ciklusu, uslov u rangu 0 će biti istinit (PALI/EN=1) i aktiviraće se časovnik PALI.
Uslov za rad časovnika GASI je i dalje neistinit, što znači da bi on mogao da radi. Međutim,
kako je on izmerio zadano vreme i kako njegov DN bit nije resetovan (resetuje ga promena uslova
na istinit), to on neće raditi (GASI/TT=0). Uslov u rangu 2 je istinit, te sijalica svetli. Ovakva
situacija ostaće i u svim sledećim sken ciklusima sve dok ne prođe 1 sekunda, kada će da se
postavi PALI/DN bit na 1. Uslov u rangu 1 posstaje istinit što dovodi do resetovanja GASI/DN bita
(postavlja se na 1). Sijalica i dalje svetli. U sledećem sken ciklusu uslov u rangu 0 postaje neistinit
(resetuju se bitovi časovnika
GASI_DN PALI). Zbog toga se u rangu
1 6 11 1 aktivira časovnik GASI
PALI_EN
svetli svetli (GASI/TT=1). Sijalica se gasi
7 10 u rangu 3 i ceo ciklus se
2
2 12 ponavlja.
PALI_TT
1 sec 8 1 sec Potrebno je zapaziti
da se svaki od časovnika
PALI_DN aktivira pomoću DN bita
9 15
3 5 13 drugog časovnika. To je
GASI_EN ujedno i razlog, zašto
4 14 časovnici ne mogu biti istog
tipa (oba TON ili oba TOF).
GASI_TT
1 sec 1 sec Naime, u tom slučaju ne bi
bilo moguće da se otpočne sa
sken
ciklus radom, jer bi na početku oba
DN bita imala istu vrednost (0
SL. 2-25. VREMENSKI DIJAGRAM PROMENE INDIKATORSKIH BITOVA ili 1). Vremenski dijagram
ČASOVNIKA promene odgovarajućih
bitova dat je na Sl. 2-25.
Sve dok se ne dostigne željena temperatura, bit označen kao KRAJ_GREJANJA ima vrednost 0,
što znači da sijalica svetli samo za ono vreme za koje radi časovnik PALI, odnosno za koje je
njegov EN bit postavljen na 1. Kada se dostigne zadana temperatura sijalica će stalno svetleti
zahvaljujući samodržanju u rangu 2.

PR. 2-7 MAŠINA ZA PAKOVANJE


ZADATAK
Posmatra se jedna mašina koja pakuje konzerve u kutiju i to tako da u kutiji ima tri reda
konzerrvi, pri čemu u svakom redu ima po 5 konzervi. Mašina radi tako što se pomoću jednog klipa
(A) konzerve koje dolaze preko pokretne trake guraju, jedna po jedna, na pomoćno postolje. Kada
se na postolje smesti 5 konzervi, onda se one, sve zajedno, pomoću drugog klipa (B) gurnu u
kutiju. U skladu sa time, za pakovanje jedne kutije potrebno je da se ostvari sledeća sekvenca
pomeranja klipova:
[ (A+ A-)x5 B+ B-]x3
REŠENJE
Dva moguća rešenja (sa i bez lečovanja) data su na Sl. 2-26 i Sl. 2-27.
U prvom rešenju (Sl. 2-26) je predpostavljeno da su i klip A koji pomera konzerve i klip B
koji pomera ceo red konzervi dvosmerni solenoidi, što znači da se mora upravljati pokretima u oba
smera. Pri tome se signali za napajanje vode preko digitalnih izlaza u prvom slotu, pinovi od 0 do 4
redom za A-, A+, B- i B+. Senzori položaja oba klipa su normalno otvoreni prekidači čiji signali se
dovode na digitalni ulaz u prvom slotu i to na pinove od 1 do 4 redom za a-, a+, b- i b+. Taster za
otpočinjanje rada vezan je za pin 0. Budući da se početak rada zadaje tasterom, neophodno je da
se koristi interna promenljiva koja će pamtiti da je taster u nekom trenutku bio pritisnut. U programu
je ta promenljiva označena sa "nije kraj" i ona zapravo utiče na istinitost uslova ranga broj 1 kojim
se započinje ceo 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 može pratiti uz pomoć komentara
koji su dati uz svaki rang. Napomenimo, da je dobra programerska praksa da se program opiše
detaljnim komentarima. Ovo ne samo da olakšava traženje grešaka pri testiranju programa, već je
Plc_leder/45

od neobične koristi i kasnije kada dođe do eventualnih modifikacija programa. Program je


realizovan pomoću tehnike samodržanja. Samo se po sebi razume da se zadatak može rešiti i
pomoću naredbi za trajno postavljanje bitova.
Plc_leder/46

SL. 2-26 LEDER PROGRAM ZA UPRAVLJANJE MAŠINOM ZA PAKOVANJE KOJA IMA DVA SOLENOIDA SA PO
DVA KRAJA
Kao i kod primera sa upravljanjem ekscentar presom i pri korišćenju solenoida pokazuje se
da testiranje stanja prekidača nije dovoljno da bi se pratio njihov rad. Jasno je da je, kada je
solenoid potpuno uvučen, njegov prekidač na "-" kraju pritisnut, no on to stanje ima i na početku
pre bilo kakvog pomeranja klipa i na kraju svakog punog ciklusa (pomeranje napred – nazad).
Drugim rečima, samo stanje prekidača "-" ne govori o tome da li je pokret izvršen ili ne. Da bi se
ovaj problem prevazišao, uvodi se jedna interna bit promenljiva (u programu označena kao hod
unazad) koja se postavlja dok se klip pomera. Na taj način stanje te promenljive, zajedno sa
stanjem prekidača na "-" kraju solenoida ukazuju na to da li je ciklus završen ili ne.

U drugom rešenju (Sl. 2-27) je predpostavnjeno da je klip A dvosmerni solenoid, dok je klip
B jednosmerni solenoid, koga opruga vraća u početni položaj čim prestane napajanje njegovog
kraja. Pri tome se signali za napajanje vode preko istih pinova kao i u prvom rešenju, s tim što je
pin 3 slobodan (nema napajanja za kraj B-). Granični prekidači oba klipa vezani su na isti način, s
tim što je su prekidači klipa B realizovani kao normalno zatvoreni kontakti. Program je realizovan
pomoću naredbi za trajno pamćenje bitova. Sama logika programa je veoma slična prvom rešenju,
tako da nema potrebe da se posebno komentariše.
Plc_leder/47

SL. 2-27 LEDER PROGRAM ZA UPRAVLJANJE MAŠINOM ZA PAKOVANJE KOJA IMA JEDAN SOLENOID SA DVA
KRAJA I JEDAN SOLENOID SA OPRUGOM
Plc_math/48

3. LEDER NAREDBE ZA OPERACIJE NAD PODACIMA

3.1. NAREDBE ZA OPERACIJE NAD PODACIMA


U realizaciji različitih algoritama često je potrebno da se izvrše određena
izračunavanja, da se prenesu odgovarajuće 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 različitim matematičkim
ili logičkim operacijama.
• operandi
Kao što je već rečeno, promenljive se u memoriji kontrolera pamte kao numerički
podaci ili alfanumerički podaci – stringovi. Numerički podaci se pri tome mogu pamtiti kao
celoborjne vrednosti (integers) ili decimalni brojevi prikazani u tehnici pokretnog zareza
(floating point). Različiti tipovi numeričkih podataka smeštaju se u datoteke podataka
odgovarajućeg tipa.
Celobrojni podaci smeštaju se u datoteke tipa N, što znači 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 reči u
datoteci (0 do 255). Realni podaci smeštaju se u datoteke tipa F, što znači da je njihova
adresa oblika Fn:w, gde je n broj datoteke (8ili bilo koji broj od 9 do 255), a w redni broj
reči u datoteci (0 do 255).
U principu, operandi mogu biti promenljive iz bilo koje datoteke. Potrebno je uočiti,
međutim, da iako se dozvoljava korišćenje bit-adresibilnih datoteka (B,I,O), podaci
smešteni u njima se u ovim operacijama mogu koristiti samo kao cele reči (elementi), što
znači da se operacija ne može izvoditi nad pojedinim bitovima. Pored toga, u datotekama
časovnika i brojača (T i C) mogu se kao operandi koristiti samo druga i treća reč elementa
koje predstavljaju akumuliranu vrednost (ACC) i zadanu vrednost (PRE). Konačno, kao
operandi se mogu javiti i neke promenljive iz kontrolne datoteke (R). O značenju i ulozi
ovih promenljivih biće reči kasnije.
Pri adresiranju promenljivih može se, pored direktnog adresiranja, koristiti i
indeksno i indirektno adresiranje.
Pored promenljivih, operandi u pojedinim operacijama mogu biti i programske
konstante – nepromenljive veličine koje se definišu eksplicitnim navođenjem vrednosti u
okviru naredbe. Pri tome, nije dozvoljenno da oba operanda budu programske konstante.
Samo se po sebi razume da se programska konstanta ne može korsititi kao rezultat.
• operacije
Operacija koja treba da se izvrši nad operandima definiše se u okviru naredbe.
Najveći 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 aritmetička ili logička
operacija nad operandima i dobijeni rezultat upamti kao odgovarajuća promenljiva.
Drugim rečima, sam proces izračunavanja predstavlja jednu akciju, čije izvršavanje može
biti uslovljeno istinosnom vrednošću nekog uslova koji se nalazi u levom delu ranga.
Izuzetak su jedino naredbe za poređenje, koje opet, po svojoj prirodi, proveraju da li je
neka relacija između 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 izvođenja istinosna vrednost naredbe.

3.2. NAREDBE ZA POREĐENJE


Naredbe za poređenje su naredbe uslova. U okviru ovih naredbi proverava se
istinosna vrednost relacije između dva operanda. Kao rezultat provere naredba dobija
vrednost istinit ili neistinit.
Jedna grupa naredbi za poređenje ima oblik kao što je to prikazano na Sl. 3-1. U
tabeli T. 3-1 dat je pregled svih naredbi za poređenje iz ove grupe. Potrebno je da se
Plc_math/49

istakne da je prvi operand je uvek promenljiva, dok drugi operand može biti ili promenljiva
ili programska konstanta.

SL. 3-1 OPŠTI IZGLED NAREDBE ZA POREĐENJE


Kod relacija
Ime naredbe
naredbe istinita ako je neistinita ako je
EQU Equal (jednako) A=B A≠B
NEQ Not equal (nejednako) A≠B A=B
LES Less than (manje) A<B A>B
LEQ Less than or equal (manje ili jednako) A≤B A≥B
GRT Greater than (veće) A>B A<B
GEQ Greater than or equal (veće ili jednako) A≥B A≤B

T. 3-1 GRUPA NAREDBI ZA POREĐENJE


Pored navedenih naredbe među nardbama za poređenje postoje i sledeće dve
naredbe.
• MEQ - masked comparison for equal (ispitivanje jednakosti pojedinih bitova)

SL. 3-2 NAREDBA ZA POREĐENJE POJEDINIH BITOVA


Ova naredba služi za poređenje delova pojedinih reči. Naime na položaju onih
bitova koji ne učestvuju u poređenju (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 međusobno jednaki
naredba ima vrednost istinit. U protivnom ona ima vrednost neistinit. Pri definisanju
maske, pogodno je koristiti heksadecimalnu konstantu ili promenljivu.
• LI M – Limit test (ispitivanje 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 određuju granice. Potrebno je obratiti pažnju na činjenicu
da “donja granica” može biti i veća od “gornje granice”. U tom slučaju naredba je istinita
ako se operand nalazi izvan granica ili na njima, a neistinita ako operand pripada intervalu
koji određuju granice.
Ako je operand test konstanta, onda obe granice moraju biti adrese promenljivih.
Međutim, ukoliko je test adresa promenljive, onda granice mogu biti bilo adrese
Plc_math/50

promenljivih bilo konstante.

SL. 3-3 NAREDBA ZA PROVERU GRANICA

3.3. MATEMATIČKE NAREDBE

3.3.1. OPŠTE NAPOMENE


Kako im i samo ime kaže, matematičke naredbe služe za realizaciju različitih
operacija nad operandima. Ove naredbe su naredbe akcije i u najvećem broju slučajeva
imaju dva operanda. Izvršavanjem naredbe obavlja se zahtevana matematička operacija
nad operandima i dobija rezultat čija se vrednost pamti. Operandi mogu biti programske
promenljive ili konstante, s tim što oba operanda ne mogu biti konstante.
POSTAVLJANJE INDIKATORSKIH BITOVA
Tok izvođenje zahtevane operacije u smislu prekoraćenja dozvoljenog opsega
brojeva, prenosa, pokušaja deljenja sa nulom itd, može se pratiti preko vrednosti
indikatorski bitova u datoteci 2 (Status), koje se automatski postavljaju kad se naredba
izvršava. Pri tome se postavljaju sledeći bitovi.
• S:0/0 – Carr y bit (C) Ovaj bit se postavlja na 1 kada pri obavljanju operacije
dolazi do prenosa bita iz najviše, 15. lokacije, u protivnom bit C ima vrednost 0. Sa
aspekta korisnika, vrednost ovog bita je od značaja ako se operacije izvode nad
celobrojnim pozitivnim vrednostima. U tom slučaju, ako je bit C postavljen na 1, onda to
znači da je prilikom sabiranja dobijen rezultat koji ima više od 16 bitova, ili da je od
manjeg broja oduzet veći broj.
• S:0/1 – Overf low bit (V) Ovaj bit se postavlja na vrednost 1 onda kada je rezultat
matematičke operacije premašio dozvoljeni opseg brojeva., ili ako je operacijom
zahtevano deljenje sa nulom, u protivnom vrednost bita V je 0. Očigledno je da se ovaj
bit zapravo koristi pri izvođenju matematičkih operacija nad celobrojnim ili realnim
vrednostima. Pri tome, ako su operandi celobrojne promenljive i pri izvođenju operacije
dođe do prekoračenja 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 – Zer o 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 matematičke
operacije negativan, (odnosno ako bit 15 rezultata ima vrednost 1), u protivnom
vrednost bita S je nula.
• S:5/0 – O verf low trap bit Ovaj bit se postavlja na 1 onda kada je overflow bit V bit
Plc_math/51

postavljen na 1. Pri tome, ako se vrednost bita S:5/0 ne resetuje na nulu, pre završetka
programskog sken ciklusa, operativni sistem će signalizirati da je došlo do popravljive
greške (kod greške 0020). Izraz popravljiva, zapravo označava da neće doći do prekida
rada programa, već se samo korisniku skreće pažnja da negde u zahtevanim
operacijama ima problema, jer rezultati premašuju dozvoljeni opseg brojeva.
IZVOĐENJE OPERACIJA CELOBROJNOG MNOŽENJA I DELJENJA –
MATEMATIČKI REGISTAR S:13 I S:14
Ako su operandi celobrojne promenljive dužine 1 reči (16 bita) i ako se zahteva
njihovo množenje onda
rezultat ima 32 bita. Budući
da rezultat treba da se
upamti, ponovo kao
celobrojna promenljiva,
onda je jasno da se
postavlja pitanje šta raditi
sa eventualnim viškom
bitova koji se nalaze na
pozicijama od 16 pa
naviše. Da bi se omogućio
ispravan rad i u ovom
slučaju, koriste se dve reči
SL. 3-4 REALIZACIJA OPERACIJE MNOŽENJA
datoteke 2 (Status) i to na
S:13 i S:14 koje
predstavljaju 32-bitni matematički registar. Naime, prilikom izvođenja množenja, rezultat
se dobija u matematičkom registru i to tako što reč na adresi S:13 sadrži prvih (manje
značajnih) 16 bitova rezultata, dok S:14 sadrži preostalih (više značajnih) 16 bitova
rezultata. Pri tome, se donji, manje značajni, deo rezultata istovremeno smešta i na
adresu koja je u naredbi navedana kao promenljiva u kojoj se čuva rezultat Sl. 3-4.
Korisnik, tako ima mogućnost da proverom overflow bita V ustanovi da li je prilikom
množenja dobijen rezultat koji veći od 15 bitova, i ako jeste može nekom programskom
naredbom obezbediti da se i sadržaj reči S:14 upamti na nekoj adresi. Naravno, u tom
slučaju korisnik treba da obezbedi i da se resetuje overflow trap bit, jer će u protivnom
dobiti poruku o grešci.
Kod deljenja celih
brojeva neminovno dolazi
do situacije u kojoj se
pojavljuje ostatak deljenja.
Naredba celobrojnog
deljenja izvodi se tako što
se rezultat zaokruži i
smešta u adresu koja je u
naredbi navedena kao
promenljiva u kojoj se čuva
rezultat. Pri tome se
nezaokruženi, ceo deo
rezultata pamti u reči S:14,
SL. 3-5 REALIZACIJA OPERACIJE DELJENJA
dok se ostatak pamti u reči
S:13 (Sl. 3-5).
Sadržaj matematičkog registra ostaje neizmenjen sve do izvođenja sledeće
programske naredbe koja ga koristi.
32-BITNO SABIRANJE I ODUZIMANJE – BIT S:2/14
Procesori SLC 5/02 (počev od serije C) i viši omogućavaju da se realizuje
sabiranje i oduzimanje 32-bitnih podataka. Ovo se ostvaruje postavljanjem bita S:2/14 na
Plc_math/52

vrednost 1.
Kao što je već rečeno, ukoliko kod celobrojnih operacija dođe do prekoračenja
opsega, onda se kao rezultat dobijaju donja ili gornja granica opsega. Međutim, ukoliko je
bit S:2/14 postavljen na 1, onda će detekcija prekoračenja (postavljanje overflow bita na
1) prouzrokovati samo da se prvih, najmanje značajnih 16 bitova rezultata, bez ikakvog
zaokruživanja, prenese na adresu koja je u naredbi označena kao promenljiva za čuvanje
rezultata. Na taj način je korisniku ostavljena mogućnost, da po dve susedne reči koristi
kao jednu jedinstvenu vrednost (jedan podatak) i da odgovarajućim progranskim
naredbama obrađuje deo po deo podatka. Korisnik, takođe mora da vodi računa da pre
isteka sken ciklusa resetuje overflow bit.
O ovoj tehnici biće kasnije više reči kada se bude ilustrovalo korišćenje
matematičkih naredbi.

3.3.2. PREGLED MATEMATIČKIH NAREDBI


U odnosu na broj operanada i tip operacije koja se izvršava, matematičke naredbe
se mogu podeliti u nekoliko grupa.
ARITMETIČKE I LOGIČKE BINARNE OPERACIJE
Opšti oblik naredbe za aritmetičke i logičke binarne operacije dat je na Sl. 3-6, dok
je u tabeli T. 3-2 dat prikaz svih naredbi iz ove grupe.

SL. 3-6 OPŠTI OBLIK NAREDBE ZA ARITMETIČKE I LOGIČKE BINARNE OPERACIJE

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=a–b uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
MUL Multiply (množenje) 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 = a∧b
AND And (logičko “i”) uvek 0 uvek 0 1 za d=0 1 za d<0
bit po bit
d = a∨b
OR Or (logičko “ili”) uvek 0 uvek 0 1 za d=0 1 za d<0
bit po bit
Exclusive OR d = a∨b
XOR uvek 0 uvek 0 1 za d=0 1 za d<0
(ekskluzivno “ili”) bit po bit

T. 3-2 - PREGLED NAREDBI ZA ARITMETIČKE I LOGIČKE BINARNE OPERACIJE


Primedba: U naredbi XPY ukoliko eksponent (y) nije ceo broj, vrednost izraza se
računa prema relaciji d=2(ylog2x). To znači da ukoliko je osnova (x) negativna, eksponent
mora da bude ceo broj. Ukoliko ovaj uslov nije ispunjen V – bit se postavlja na 1.

PR. 3-1 CELOBROJNO SABIRANJE SA DVOSTRUKOM TAČNOŠĆU


Operandi: Prvi operand smešten je u reči B3:1, dok je drugi operand celobrojna vrednost dvostruke
tačnosti, tako da je donjih 16 bitova smešteno u reči na adresi B3:2, a gornjih 16 na adresi B3:3.
Rezultat takođe ima dvostruku tačnost i pamti se na istom mestu gde i drugi operand.
Algoritam: Donjih 16 bitova se dobija direktno naredbom za sabiranje ADD (Sl. 3-7). Pri tome da bi
Plc_math/53

se sprečilo da se rezultat postavi na graničnu vrednost reba postaviti bit S:2/14 na 1.


Prilikom realizacije naredbe za sabiranje moguća su tri slučaja:
• zbir prvog operanda i donjih 16
bitova drugog operanda ima
manje od 17 bitova ⇒ operacija
je završena (B3:3 se ne menja)
• zbir prvog operanda i donjih 16
bitova drugog operanda ima
više od 16 bitova ⇒ ovo se
identifikuje uz pomoć C bita i taj
bit prenosa treba dodati reči
koja sadrži gornjih 16 bitova
rezultata
• prvi operand je negativan broj
⇒ taj broj smešten u tehnici
SL. 3-7 ALGORITAM SABIRANJA
drugog komplementa
primenjenoj na 16 bitova, a u
dvostrukoj tačnosti drugi komplement treba da se primeni na 32 bita (što bi dovelo do toga da su
svih gornjih 16 bitova jedinice koje bi trebalo sabrati sa reči drugog operanda koja sadrži gornjih
16 bitova). Otuda sledi da se rezultat koriguje tako što se toj reči drugog operanda dodaje broj čiji
su svih 16 bitova 1. Budući da ovaj broj predstavlja drugi komplement broja 1, to znači da je
potrebno da se od druge reči drugog operanda oduzme 1.
Da bi se lakše razumela logika programa, svi mogući slučajevi i ilustrovani su na primeru
četvorobitnih brojeva (Sl. 3-8). Leder program za sabiranje sa dvostrukom tačnošću dat je na Sl.
3-9.

SL. 3-8 SABIRANJE SA DVOSTRUKOM TAČNOŠĆU (ČETVOROBITNI BROJEVI)


Plc_math/54

SL. 3-9 REALIZACIJA SABIRANJA SA DVOSTRUKOM TAČNOŠĆU

UNARNE OPERACIJE

SL. 3-10 OPŠTI OBLIK NAREDBE ZA UNARNE OPERACIJE


Plc_math/55

U grupu unarnih operacija svrstane su i aritmetičke i logičke unarne operacije, ali i


bibliotečke funkcije jedne promenljive. Sve ove naredbe imaju isti opšti oblik (Sl. 3-10).
Pregled svih naredbi dat je u tabeli T. 3-3.

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
(deljenje 32-bitnog d = reg/a
DDV celog broja iz mat. (rezultat uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0
reg. sa 16-bitnim zaokružen)
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-3 - PREGLED NAREDBI ZA UNARNE OPERACIJE


Primedba: Prilikom izračunavanja funkcija proverava se da li se operand nalazi u
oblasti definisanosti funkcije. Ukoliko to nije slučaj, izračunavanje se ne vrši, i V-bit se
postavlja na 1.

SLOŽENE MATEMATIČKE NAREDBE


• CPT – Compute (izračunavanje aritmetičkog izraza)

Pri formiranju izraza koriste se promenljive, konstante i sledeći 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. (Značenje nekih od
navedenih simbola biće objašnjeno kasnije).
Prilikom izvođenja naredbe, odnosno izračunavanja izraza postavljaju se sledeći
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 izračunavanju izraza dođe do prekoračenja
Plc_math/56

vrednosti.

• SCP – Scale with parameters (parametarsko skaliranje podatka)

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.

Potrebno je da se istakne da se u ovoj


y 2 - y1
y= (x - x1 ) + y1
naredbi pojmovi “najmanja i najveća vrednost
x 2 - x1 ulaza i rezultata” zapravo koriste samo za
skalirana vrednost

određivanje dve tačke kroz koje se provlači


prava linija koja određuje preslikavanje (Sl.
3-11). To znači da vrednost ulazne promenljive
ne mora biti unutar intervala određenog sa
(input_min., input_max.), niti da vrednost
input_min. mora biti manja od input_max.
Prilikom izvođenja naredbe, odnosno
izračunavanja izraza postavljaju se sledeći
SL. 3-11 GRAFIČKA ILUSTRACIJA SKALIRANJA bitovi:
(SCP) C – bit se uvek resetuje na nulu.
V – bit se postavlja na 1 ako je u
toku izračunavanja došlo do prekoraćenja 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 slična naredbi SCP, jer se i pomoću nje ostvaruje linearno
skaliranje promenljive. Razlika je, zapravo samo u načinu definisanja parametara
skaliranja, odnosno prave linije . Skaliranje ulaza se izvodi prema sledećoj relaciji:
Rate
Dest = × Source + Offset
10000
Prilikom izvođenja naredbe, odnosno izračunavanja izraza postavljaju se sledeći
bitovi:
Plc_math/57

a
y= x+b C – bit je rezervisan za potrebe
10000
y operativnog sistema
V – bit se postavlja na 1 ako je u toku
izračunavanja došlo do prekoraćenja dozvoljenog
rezultat

opsega brojeva.
a=tg Z – bit se postavlja na 1 ako je rezultat
jednak nuli.
S – bit se postavlja na 1 ako je rezultata
x operand negativan.
b

SL. 3-12 GRAFIČKA ILUSTRACIJA SKALIRANJA


(SCL)

• RMP – Ramp instruction (generisanje signala)

Ovom naredbom generiše se vremenski signal određenog oblika. Vrednost koja se


izračunava pri skeniranju ranga (ako je uslov istinit) jednaka je amplitudi signala u tom
vremenskom trenutku. Naredba omogućava da se generišu četiri različite funkcije:
• Linearna nagibna rastuća funkcija (nagibni signal)
• Rastući parabolični signal (ubrzanje)
• Opadajući parabolični signal (usporenje)
• "S" funkcija
y
«S»
y yb
nagibni
yb

ya

ya
ts t(sec)
⎧ ⎛ t ⎞
2
ts t(sec) ⎪ ( y b − y a ) × 2 × ⎜⎜ ⎟⎟ + y a 0 ≤ t ≤ ts / 2
t ⎪⎪ ⎝ ts ⎠
y = (y b − y a ) × + ya y=⎨
ts ⎡ 2⎤
⎪( y − y ) × ⎢1 − 2 × ⎛⎜ t s − t ⎞⎟ ⎥ + y ts / 2 > t > ts
⎪ b a
⎢ ⎜ t ⎟ ⎥ a
⎪⎩ ⎣ ⎝ s ⎠ ⎦

2 2
⎛ t ⎞ ⎛ t −t⎞
y = ( y b − y a ) × ⎜⎜ ⎟⎟ + y a y = ( y b − y a ) × ⎜⎜1 − s ⎟ + ya
⎝ ts ⎠ ⎝ t s ⎟⎠

SL. 3-13 FUNKCIJE KOJE SE GENERIŠU RMP NAREDBOM


Plc_math/58

Vreme izražava kao multipl osnovne jedinice koja se može definisati kao 0.01 sec
ili 1 sec. Signali ne mogu trajati duže od nekog utvrđenog vremenskog intervala ts.
Naredba se izvršava svaki put kada je uslov istinit. Pri tome se ažurira vrednost
vremena i primenom odgovrajuće relacije odredi vrednost signala na izlazu (y). Kada je
uslov neistinit, vreme se ne ažurira i vrednost izlaza se ne izračunava. Prilikom sledećeg
prelaza uslova sa neistinitog na istinit vreme će biti ažurirano u odnosu na poslednju
vrednost koju je imalo.
Pri svakoj promeni uslova ažuriranje se ostvaruje sa tačnošću od ±1 (jedinica
vremena) ili ±1(vreme
sken ciklusa), ukoliko
je vreme sken ciklusa
veće od jedinice
vremena (0.01sec ili 1
sec). Kao i kod
časovnika i ovde ja za
tačan rad neophodno
da vremenski interval
između dva sken
ciklusa ne bude veći od
1.5 sekunde.
Parametri
SL. 3-14 ZNAČENJE POJEDINIH REČI I BITOVA U UPRAVLJAČKOM BLOKU signala se
specificiraju u
upravljačkom bloku koji je celobrojna datoteka (tip N) dužine sedam elemenata kao što je
to prikazano na Sl. 3-14.
Ova naredba je izuzetno pogodna za generisinje upravljačkog signala kod ručnog
vođenja procesa.

3.4. NAREDBE ZA MANIPULACIJU SA NUMERIČKIM PODACIMA


Naredbe za manipulaciju sa podacima služe za definisanje vrednosti promenljivih
ili za određene izmene u formi prezentacije podataka. U tom smislu one se ne razlikuju
bitno od matematičkih naredbi. Naime, nema nikakve sumnje da se matematičkim
naredbama takođe vrši određena manipulacija sa podacima. Izdvajanjem ovih naredbi u
posebnu grupu se zapravo želi naglasiti specifičnost oblika same naredbe i obrade
podataka koja se njima vrši.
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.


• MO V – Move (postavljanje vrednosti promenljive)
Plc_math/59

• MVM – Masked move (postavljanje vrednosti pojedinih bitova)

Maskiranim bitovima,
koji se ne prenose u dest u
maski odgovaraju vrednosti 0,
dok nemaskiranim bitovima
odgovaraju vrednosti 1 (Error!
Reference source not
found.). U obe naredbe (MOV i
SL. 3-15 IZVRŠAVANJE MASKIRANE MOVE NAREDBE MVM) bitovi C i V se postavljaju
na 0. Bitovi Z i S se postavljaju na
1 ukoliko je rezultat nula odnosno negativan.

PR. 3-2 GENERISANJE TESTERASTOG SIGNALA


Testerasti signal se može generisati sukcesivnim ponavljanjem izvođenja RMP naredbe.
Budući da se generisanje signala prekida kada vreme koje se meri od početka rada RMP naredbe
dostigne vrednost koja odgovara zadanom vremenu trajanja signala, to znači da ova naredba neće
više generisati signal čak i ako je uslov u rangu istinit. Ukoliko se želi ponovno generisanje istog
signala neophodno je da se, kada je RMP generisao ceo signal (DN=1) ili kada je došlo do greške
u specifikaciji parametara (ER=1), vreme resetuje na nulu, odnosno da se sadržaj druge reči
odgovarajućeg upravljačkog bloka postavi na nulu. Opisani postupak može se realizovati pomoću
dva ranga u lestvičastom programu (Sl. 3-16).

SL. 3-16 GENERISANJE TESTERASTOG SIGNALA


Pri formiranju programa bilo je neophodno i da se definišu vrednosti pojedinih reči u
upravljačkom bloku koji je smešten od početne adrese N7:0. Odabrano je da se generiše nagibni
signal (kod 00, bitovi 0 i 1 u reči N7:0) sa vremenskom bazom od 1 sekunde (kod 1, bit 4 u reči
N7:0). Otuda reč nula u upravljačkom bloku ima decimalnu vrednost 16. Trajanje signala je
postavljeno na 100 sekundi (N7:1). Početno vreme je nula (N7:3), dok je krajnje vreme 100 (N7:4).
U skladu sa tim, reči u upravljačkom bloku imaju vrednosti prikazane na Sl. 3-17.
Plc_math/60

SL. 3-17 GENERISANI TESTERASTI SIGNAL I IZGLED UPRAVLJAČKE DATOTEKE N7

3.5. NAREDBE ZA KONVERZIJU

SL. 3-18 OPŠTI 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 prekoračenje 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 prekoračenje 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
A.1.1. 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. 3-4 PREGLED NAREDBI ZA KONVERZIJU PODATAKA
Po svojoj funkciji ove naredbe vrše različite oblike konverzije počev od fizičkih
veličina (konverzija ugaonih stepeni u radijane i obratno), preko načina prezentacija
podatka (konverzija binarne prezentaciju u binarno kodiranu decimalnu prezentaciju), do
kodiranja i dekodiranja binarnih podataka. Zajedničko za sve naredbe je njihov opšti oblik
(Sl. 3-18). Pregled svih naredbi iz ove grupe dat je u tabeli T. 3-4.
• BCD kod (Binary coded decimal) je kôd kod koga se svaka decimalna cifra predstavlja
pomoću jednog četvorocifrenog binarnog broja, kao što je to ilustrovano na Sl. 3-19.
(Samo se po sebi razume da je decimalni broj predstavljen u računaru kao binarni
podatak). Ukoliko se kao celobrojni podatak u BCD naredbi unese negativan broj,
Plc_math/61

konvertovaće se njegova
apsolutna vrednost.
Postoji mogućnost da se
pomoću TOD i FRD naredbi
konvertuju i celi decimalni
brojevi koji imaju više od 4 cifre
(najveći ceo broj je 32768). U
tom slučaju u naredbi TOD treba
kao adresa rezultata dest da se
stavi matematički registar S:13,
S:14. Prilikom izvršavanja
SL. 3-19 ILUSTRACIJA BCD KODA naredbe dobijeni BCD kod biće
smešten u reči S:13 i u prva
četiri bita reči 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 matematički registar, dok kod ostalih kontrolera to može biti adresa reči 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 matematički registar, dok kod ostalih kontrolera to može biti adresa reči bilo koje
datoteke. Po prirodi konverzije, source u BCD naredbi, odnosno dest u FRD naredbi treba
da bude celobrojna promenljiva.

PR. 3-3 KONVERZIJA IZ BCD KODA


Korišćenje FRD naredbe pretpostavlja da svaki bajt operanda pretstavlja BCD kodiranu
cifru. Međutim pri radu mernih uređaja koji daju BCD kod može se dogoditi da u toku promene
veličine koja se meri izlaz uređaja ima podatak koji ne pretstavlja BCD cifru. Ako se FRD naredba
izvodi baš u tom trenutku postaviće se V bit. Da bi se to izbeglo, pri korišćenju ove naredbe vrši se
filtracija mernog podatka i to tako da se porede dve uzastopne vrednosti izmerene veličine. Ukoliko
su one iste, to znači da nema nagle promene podatka, pa se može smatrati da su svi bajtovi BCD
kodirane cifre. Ukoliko se oni, međutim razlikuju, osnovano je pretpostaviti da neki bajt ne sadrži
BCD cifru, pa se u skladu sa time konverzija ne vrši.

SL. 3-20 KONVERZIJA IZ BCD KODA

Opisani postupak ilustrovan je na primeru učitavanja podatka sa BCD merača čiji se signal
dovodi na reč 0 u slotu 1 (adersa I:1.0, simbolicko ime bcd_merac). Ovaj podatak se pamti u reči
N7:1 (bcd_podatak), koja se u sledećem sken ciklusu poredi sa novo učitanim podatkom. Tek ako
Plc_math/62

su oba podatka identična izvršava se FRD naredba i rezultat se smešta u N7:2 (dec_podatak).
Budući da u prvom sken ciklusu nije moguće poređenje podataka, poređenje se vrši tek od drugog
sken ciklusa. Ovo se postiže ispitivanjem stanja indikatorskog bita u statusnoj datoteci S. Naime,
petnaesti bit prve reči (S:1/15) ima vrednost 1 samo u prvom sken ciklusu. Otuda i potiče njegovo
simboličko ime first_pass (Sl. 3-20).

PR. 3-4 KONVERZIJA U BCD KOD


Celobrojni podatak smešten na adresi N7:3 treba da se konvertuje u BCD kod i preko
digitalnog izlaza prenese na BCD svetleći displej. Budući da originalni podatak može imati najviše
pet cifara, konvertovani BCD podatak se smešta u matematički 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 može da se realizuje pomoću dve MOV naredbe. Pri tome budući da se iz
gornjeg dela matematičkog registra koristi samo jedan bajt neophodno je da se realizuje maskirano
prenošenje podataka (Sl. 3-21).
U posmatranom primeru predpostavljeno je da je pocetni podatak 32760. U rangu 0,
sadržaj odredišnog 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
odgovarajući heksadecimalni broj je 2760h.

SL. 3-21 FORMIRANJE BCD IZLAZNIH SIGNALA

• Dekodir anje 4 – 16 (DCD) je postupak u kome se četvorobitni numerički podatak


koji može imati vrednost u opsegu od 0 do 15, pretvara (dekodira) u 16-bitni numerički
podatak i to tako što se u njemu na 1 postavlja onaj bit čiji redni broj u reči odgovara
numeričkom podatku koji se konvertuje (Sl. 3-22). U ovoj naredbi koriste se samo prva
Plc_math/63

četiri bita promenljive source, što znači da se preostali bitovi mogu koristiti u bilo koje
druge svrhe.
Ova naredba je pogodna kada se želi multipleksiranje podataka kod uređaja kao
što su višepoložajni 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 kreće u opsegu od 0 do 15, zapisuje kao četvorocifreni
binarni broj (Sl. 3-22). Ukoliko
je u promenljivoj source više
od jednog bita postavljeno na
1, kodiranje će se izvršiti
prema bitu koji ima najmanji
redni broj od svih bitova koji
imaju vrednost 1. U tom
slučaju i V – bit će biti
postavljen na 1, ali
SL. 3-22 ILUSTRACIJA DCD I ENC NAREDBE
matematički bit prekoračenja
(S:5/0) neće dobiti vrednost 1.
Ova naredba je pogodna kada se želi multipleksiranje podataka kod uređaja kao
što su višepoložajni prekidač, tastatura i slično.

3.6. NAREDBA ZA PREMEŠTANJE BAJTOVA


• SW P – Swap (zamena bajtova)

Ovom naredbom
se zamenjuju vrednosti
prvog i drugog bajta u
reči. Adresa operanda
(source) mora biti
indeksna adresa, dok se
broj reči kojima se
zamenjuju bajtovi
SL. 3-23 ILUSTRACIJA SWAP NAREDBE NA DUŽINI OD JEDNE REČI (length) zadaje kao
celobrojna programska
konstanta. Pri tome broj reči ne može biti veći od dužine elementa. U principu, operandi
mogu biti smešteni u bilo kojoj datoteci, ali se najčešće ova naredba koristi za
manipulaciju nizom podataka (datoteka tipa STRING). Naravno, i ovde je dužina
ograničena veličinom elementa.
Ako je formirana datoteka tipa STRING, dužine elemenata od 6 reči, i ako se
predpostavi da je sadržaj prvog elementa, takav da bajtovi sadrže ASCII kodove prvih 12
slova abecede:
ab | cd | ef | gh | ij |kl
tada će SWP naredba u kojoj se kao source adresira taj elemenat, i koja ima dužinu
(length) jednaku 4 promeniti sadržaj tog elementa u:
ba | dc | fe | hg | ji | lk
Plc_math/64

3.7. PRIMERI KORIŠĆENJA NAREDBI ZA MATEMATIČKE OPERACIJE


PR. 3-5 IZRAČUNAVANJE RASTOJANJA I NAGIBA
ZADATAK
Pravougaone koordinate (x,y) koje određuju
položaj nekog objekta smeštene su u memoriji PLC-a
u datoteci realnih podataka F8, na adresama F8:0 i
F8:1. Ovim lokacijama pridružena su simbolička
imena x i y. Ukoliko su obe koordinate u opsegu od
700m do 1400m na osnovu njih se izračunava
rastojanje do objekta ( ρ = x 2 + y 2 ), kao i ugao koji
radijus zaklapa sa apscisnom osom
ρ = x 2 + y2
( α = arctg( y / x ) (Sl. 3-24).
⎛ y⎞
α = arctg⎜ ⎟ Dobijeni podaci se smeštaju u memoriju PLC-
⎝x⎠
a na adrese F8:2 i F8:3, čija su simbolička imena ro i
alfa. Ukoliko je bilo koja od koordinata izvan opsega
pali se kontrolna sijalica, koja je vezana u električno
kolo preko nultog pina izlaznog dela digitalnog U/I
SL. 3-24 GRAFIČKA ILUSTRACIJA POTREBNIH
modula u slotu 1 (adresa O:1/0, simboličko ime
IZRAČUNAVANJA
sijalica).
Potrebno je formirati program za PLC koji će realizovati zahtevanu operaciju.
REŠENJE
Na Sl. 3-25 i Sl. 3-26 prikazana su dva moguća rešenja ovog problema, od kojih prvo
koristi elementarne naredbe za poređenje i matematičke naredbe, a drugo složenije naredbe. U
prvom rešenju korišćena su dva moguća načina 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 načina provere potpuno ekvivalentna. Jedina je razlika
u tome što indikatorski bitovi imaju suprotna značenja, o čemu mora da se vodi računa kada se oni
koriste u ostalim rangovima. U drugom rešenju koristi se LIM naredba za proveru granica.
Plc_math/65

SL. 3-25 LEDER PROGRAM ZA IZRAČUNAVANJE RASTOJANJA I UGLA KOJI KORISTI ELEMENTARNE NAREDBE
Plc_math/66

SL. 3-26 LEDER PROGRAM ZA IZRAČUNAVANJE RASTOJANJA I UGLA

PR. 3-6TRANSFORMACIJE ULAZNIH ANALOGNIH SIGNALA


ZADATAK
Posmatra se jedan radarski sistem za praćenje objekata koji određuje pravougaone
koordinate objekta u opsegu od 250m do 1700m i generiše 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 smešta 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 fizičke
veličine i smestiti u memoriju PLC-a u datoteku realnih podataka F8, na adrese F8:0 i F8:1. Ovim
lokacijama pridružena su simbolička imena x i y. Pri tome, sistem se pušta u rad pomoću start/stop
prekidača, koji je vezan za nulti pin ulaznog dela digitalnog U/I modula u slotu 1 (adresa I:1.0/0,
simboličko ime start). Prekidač je normalno otvoren, tako da sistem radi sve dok je prekidač
pritisnut.
Plc_math/67

TRANSFORMACIJE ANALOGNIH ULAZNIH SIGNALA


Pre nego što se pristupi rešavanju postavljenog zadatka razmotrićemo u opštem slučaju
problem konverzije analognih ulaznih signala. Kao što je već istaknuto analogni signali koji dolaze
sa mernih instrumenata su
standardizovani električni
signali koji reprezentuju neke
fizičke veličine. Ovi signali se
prilikom A/D konverzije
pretvaraju u celobrojne
vrednosti, koje se zatim mogu
dalje pretvoriti u odgovarajuće
fizičke veličine. Drugim rečima
signal prolazi kroz niz
transformacija (Sl. 3-27) koje
SL. 3-27 TRANSFORMACIJE ANALOGNIH ULAZNIH SIGNALA sve zavise od granica signala u
svakoj fazi transformacije, te se
mogu definisati na potpuno opšti način.
• Transformacija fizičke veličine v u električni signal e – ovu transformaciju obavlja sam merni
instrument koji meri neku fizičku veličinu u opsegu (vmin, vmax) i proizvodi signal e (strujni ili
naponski) u opsegu (emin, emax). Funkcionalna zavisnost između veličina v i e zavisi od tipa
instrumenta i određena je nekom poznatom funkcijom e=f(v). Najčešće je ova relacija linearna
tako da je
e − e min
e = max (v − v min ) + emin
v max − vmin
• Transformacija električnog 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 između ovih veličina je linearna i određena je relacijom
c − cmin
c = max (e − u min ) + cmin ,
u max − u min
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 sadržan u njemu. To nadalje znači
da moraju biti zadovoljene sledeće relacije
umin ≤ еmin < emax ≤ umax
• Transformacija celobrojne vrednosti c u fizičku veličinu v – ovu transformaciju, po pravilu, korisnik
obavlja sam. U principu odgovarajuća relacija zavisi od samog instrumenta i dobija se preko
inverzne funkcije e = f (v) ⇒ v = f −1 (e) , pri čemu se veličina e dobija inverznom transformacijom
iz celobrojne veličine c
u − u min
e = max (c − c min ) + u min
cmax − cmin
Ukoliko je funkcija f linearna tada se fizička veličina određuje prema relaciji
v − vmin
v = max (e − e min ) + v min
e max − emin
Konačno, ukoliko su granice električnog signala e i granice A/D konvertora jednake,
odnosno ako je
umin = еmin < emax = umax
tada se fizička veličina može odrediti direktno na osnovu celobrojne vrednosti iz relacije
v − vmin
v = max (c − c min ) + v min
c max − cmin

REŠENJE
Na osnovu svega što je rečeno o transformacijama ulaznog signala sada se može pristupiti
rešavanju postavljenog zadatka. Ovde su fizičke veličine koordinate objekta h i u, koje radar prati u
opsegu od 250m do 1700m. To znači da su granice fizičkih signala xmin = ymin = 250 i xmax = ymax =
1700. Nadalje, budući da radar generiše strujni signal opsega od 4mA do 20mA to je emin = 4mA, a
Plc_math/68

emax = 20mA. Ako se pogledau karakteristike analognog U/I modula u slotu 3 videće se da on ovaj
strujni signal konvertuje u celobrojne vrednosti opsega od 3277 do 16384. To znači da je cmin =
3277, a cmax =16384. Uzimajući u obzir sve što je rečeno o transformaciji signala, kao i činjenicu da
radar generiše standardni strujni signal čije granice odgovaraju granicama A/D konvertora, fizičke
veličine 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 smeštene na adresama I:2.0 i I:2.1.

SL. 3-28 LEDER PROGRAM KOJIM SE TRANSFORMIŠU ANALOGNI SIGNALI U FIZIČKE VELIČINE
Obe relacije se mogu realizovati bilo matematičkim naredbama bilo korišćenjem posebne
naredbi za skaliranje. U programu (Sl. 3-28) je korišćena naredba za skaliranje sa parametrima
(SCP). Pri tome, da bi se ilustrovao postupak inicijalizacije promenljivih, minimalna i maksimalna
vrednost celobrojne promenljive definišu 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 urađeno sa minimalnom i maksimalnom vrednošću fizičke veličine.
Plc_math/69

Da se naredbe za definisanje vrednosti parametara ne bi izvršavale u svakom


programskom sken ciklusu, kao uslov je korišćen "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 završetku prvog sken ciklusa. Otuda se, korišćenjem ovog bita uvek može izdvojiti deo
programskih rangova u kojima se obavlja inicijalizacija svih promenljivih.

PR. 3-7 TRANSFORMACIJA IZLAZNIH ANALOGNIH SIGNALA


ZADATAK
Podaci o rastojanju i nagibnom uglu nekog objekta nalaze se u memoriji PLC-a na
adresama F8:2 (simboličko ime ro) i F8:3 (simboličko ime alfa). Poznato je da su ovi podaci
izračunati na osnovu izmerenih pravougaonih koordinata objekta koje se kreću 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,
simboličko ime ro_out). Informacija o uglu dolazi preko prvog kanala (adresa O3:1, simboličko ime
alfa _out). Pri tome je uređaj za upravljanje uglom podešen tako da prima 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 očigledno je da je i pri formiranju izlaznog signala neophodno da
se izvrši jedan broj transformacija (Sl. 3-29).

SL. 3-29 TRANSFORMACIJE ANALOGNIH IZLAZNIH SIGNALA

• Transformacija fizičke veličine v u električnu veličinu e – ovu transformaciju obavlja sam korisnik
U suštini analogni izlazni signal je najčešće neka fizička veličina koja pretstavlja upravljački
signal u nekom sistemu. Ova veličina je, po pravilu, linearno srazmerna nekom električnom
(strujnom ili naponskom) signalu koji pretstavlja pobudni signal za odgovarajući izvršni organ.
Pretpostavljajući da se fizički signal kreće u opsegu (vmin, vmax), a da je njemu odgovarajući
električni signal u opsegu (emin, emax), fizička veličina v se transformiše u električnu veličinu e
prema relaciji
e − e min
e = max (v − v min ) + emin
v max − vmin
Naglasimo i da se analogni izlazi često definišu kao procenat od maksimalne aktivnosti
izvršnog organa tako da 0% odgovara veličini emin, a 100% odgovara veličini emax. U tom slučaju
transformacija se izvodi prema relaciji
e −e
e = max min (v(%) − vmin (%)) + emin
100 − vmin (%)
• Transformacija električne veličine e u celobrojnu vrednost c– ovu transformaciju obavlja korisnik
Da bi analogni izlazni modul mogao da generiše zahtevani električni signal on mora dobiti
odgovarajuću celobrojnu vrednost. Budući da se za celobrojne vrednosti koje su u opsegu (cmin,
cmax) generišu električni signali u opsegu (umin, umax) očigledno je da će signalu e odgovarati
celobrojna vrednost koja se dobija prema relaciji
Plc_math/70

cmax − cmin
c= (e − u min ) + cmin
u max − u min
Konačno, ukoliko su granice signala e i u jednake, odnosno ako je
umin = еmin < emax = umax
tada se celobrojna vrednost može dobiti direktno iz relacije
c − c min
c = max (v − v min ) + cmin ,
v max − vmin
odnosno
c −c
c = max min (v(%) − vmin (%)) + cmin
100 − vmin (%)
• Transformacija celobrojne vrednosti c u električni signal – obavlja D/A konvertor sam
REŠENJE
Na osnovu svega što je rečeno o transformacijama analognih izlaznoh signala, očigledno
je da je kao prvo potrebno da se odrede granice fizičkih veličina na osnovu kojih se generišu
nanalogni signali.
Polazeći od granica izmerenih pravougaonih koordinata za koje se vrši izračunavanje
rastojanja i ugla
700 ≤ x ≤ 1400, i 700 ≤ y ≤ 1400,
kao i relacija koje povezuju rastojanje i ugao sa pravougaonim koordinatama
⎛y⎞
ρ = x 2 + y 2 ; α = arctg ⎜ ⎟
⎝x⎠
vidi se da su minimalna i maksimalna vrednost rastojanja i ugla
ρmin (m) = x 2min + y 2min , ρmax (m) = x 2max + y 2max
⎛x ⎞ ⎛x ⎞
α min (rad) = arctg ⎜ min ⎟ , α max (rad) = arctg ⎜ max ⎟
⎝ ymax ⎠ ⎝ y min ⎠
Pošto minimalne vrednosti. treba da budu
predstavljene signalima od emin=2V, a maksimalne vrednosti
signalima od emax=8V, sledi da se za vrednost rastojanje ρ(m)
odgovarajući naponski signal može dobiti prema relaciji
8−2
eρ = (ρ − ρmin ) + 2
ρmax − ρmin
S obzirom na prirodu izvršnog organa, veličinu ugla
α(rad) treba prvo pretvoriti u procenat od maksimalne
vrednosti ugla
α
α p (%) = 100
α max
Električni signal koji odgovara vrednosti ugla dobija se
prema relaciji
8− 2
eα = (α p (%) − α p min (%)) + 2
100 − α p min (%)

SL. 3-30 ADRESE I SIMBOLIČKA Ove veličine nadalje treba transformisati u


IMENA INTERNIH PROMENLJIVIH celobrojne vrednosti koje će D/A konvertor da pretvori u
odgovarajuće 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 odgovarajuće granične vrednosti su
umin=0V, umax=10V, cmin=0, cmax=32764
tako da se konverzija vrši prema sledećim relacijama
32764 − 0 32764 − 0
cρ = (eρ − 0) + 0 ; cα = (eα − 0) + 0
10 − 0 10 − 0
Da bi se lakše razumela struktura programa koji realizuje opisani algoritam na Sl. 3-30 je
dat pregled simboličkih imena i adresa internih promenljivih koje se koriste u leder programu (Sl.
3-31).
Plc_math/71
Plc_math/72

SL. 3-31 LEDER PROGRAM ZA FORMIRANJE ANALOGNIH IZLAZNIH SIGNALA


Plc_math/73
Plc_flow/74

4. NAREDBE ZA RAD SA DATOTEKAMA PODATAKA

4.1. OPŠTE NAPOMENE


Naredbe za rad sa datotekama namenjane su manipulaciji sa nizom podataka koji
su smešteni u sukcesivnim elementima neke datoteke. U principu početak niza ne mora
biti prvi element datoteke, ali niz mora početi od nultog bita, nulte reči nekog od
elemenata u datoteci. Kraj niza podataka ne mora biti na kraju elementa, što znači da se
niz može završiti i u nekoj od reči elementa, ali se u tom slučaju preostali bitovi i/ili reči do
kraja tog elementa ne mogu da koriste.
Za rad sa nizom podataka neophodno je da se definiše bazna adresa od koje niz
počinje. Bazna adresa mora biti početak jednog elementa datoteke, što znači da je ona
oblika #fn:e i da kao indeksna adresa, uz uslov da je sadržaj indeksnog registra S:24
jednak nuli, pokazuje na nulti bit, nulte reči tog elementa (#fn:e.0/0). U zavisnosti od
konkretne naredbe, sam niz podataka počinje ili od bazne adrese ili od elementa čija je
adresa za 1 veća od bazne adrese.
Pored bazne adrese, potrebno je da se specificira i dužina niza, kojom se definiše
broj podataka u nizu. U zavisnosti od vrste naredbe ovaj broj može biti izražen u bitovima,
rečima ili elementima. Pri tome se mora voditi računa da svi podaci koji su obuhvaćeni
zadanom dužinom niza budu unutar datoteke koja je navedena kao bazna adresa. Ukoliko
se to ne poštuje, programski sistem će detektovati značajnu grešku (major error).
U principu, ako se poznaju bazna adresa i dužina niza moguće 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 veći od prethodnog, i kod kojih
elementi ne moraju biti iste dužine. Ukoliko se želi rad sa nizovima iz ovih datoteka onda
je neophodno da se pri definisanju dužine posebno obrati pažnja na raspored U/I modula
u slotovima kontrolera.
Potrebno je da se istakne da kod ove vrste naredbi postoji jedna terminološka
nepreciznost. Naime, često se niz podataka sa kojima se u nekoj od naredbi operiše
označava kao datoteka. U izvesnom smislu, taj naziv je ispravan jer nema nikakve sumnje
da niz podataka smešten u nekom povezanom području memorije predstavlja datoteku.
Međutim, kod kontrolera je pojam datoteke pre svega vezan za područje u koje se
smeštaju određene vrste podataka i koje se identifikuje određenom adresom kojom se
precizira tip datoteke i njen broj. Takva, osnovna datoteka može sada da sadrži više
grupa podataka (datoteka) sa kojima se operiše u naredbama za rad sa datotekama
podataka. Teorijski, ove grupe podataka mogu čak i da se međusobno preklapaju, i ako je
teško zamisliti aplikaciju u kojoj bi to imalo smisla. Bitno je jedino da sve pojedinačne
grupe podataka (datoteke) čija je bazna adresa definisana preko elemenata osnovne
datoteke budu smeštene 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 izvršavanju obrađuje drugi podatak iz
niza, onda se vrednost pointera pamti u upravljačkoj datoteci (tipa R), što znači da se
svakom nizu podataka pridružuje jedan elemenat te datoteke. Nad jednim istim nizom
podataka može da se izvršava više različitih tipova naredbi koje se nalaze u ratličitim
rangovima, ili se isti tip naredbi vezan za isti niz podataka, može naći u više različitih
rangova u programu. Od korisnika se, pri tome, očekuje da ima na umu da se prilikom
izvršavanja svake od ovih naredbi menja vrednost pointera i da vodi računa da jednom od
tih naredbi ne pokvari željeni efekat druge naredbe.
Sve naredbe iz ove grupe koriste indeksni registar S:24, što znači da je posle
njihovog izvršavanja, sadržaj tog registra promenjen.
Plc_flow/75

4.2. NAREDBE ZA KREIRANJE DATOTEKE


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

Ove naredbe se izvršavaju ukoliko je uslov istinit i to tako što se elementima


datoteke dest pridružuju određene vrednosti. Pri tome se pri izvršavanju COP naredbe
ove vrednosti uzimaju iz neke druge datoteke, označene kao source. Podaci se prenose u
rastućem nizu, što znači 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 dužini length. Međutim, prilikom
izvršavanja FLL naredbe jedan isti podatak, koji se nalazi na adresi source se prenosi u
sve elemente odredišne datoteke i to počev od bazne adrese #fn:e zaključno sa adresom
#fn:(e+length-1). Naravno da se pri tome podrazumeva da je izvorni podatak istog tipa
(odnosno zauzima isti broj reči) kao i element odredišne datoteke. Budući da su obe ove
naredbe naredbe akcije, one se izvršavaju svaki put kada je uslov istinit.
Ukoliko su elementi odredišne datoteke reči, onda je maksimalna dozvoljena
dužina length ≤ 128. Kada se radi sa datotekama čiji je element dugačak 2 reči,
maksimalna dozvoljena dužina je lengt h≤ 64, dok je za datoteke dužine tri reči,
maksimalna dužina length ≤ 42. Kod datoteka tipa String, dužina ne može biti veća od
dužine jednog elementa (42 reči).
U slučaju kada su odredišne datoteke tipa T,C i R, treba voditi računa šta će se
staviti u prvu reč elementa gde se nalaze indikatorski bitovi. Naime postavljanje nekih od
ovih bitova na 1 ili na 0, može prouzrokovati krajnje nepredvidive efekte prilikom
izvršavanja naredbi za koje su ti elementi vezani.
Potrebno je da se istakne da se pomoću COP naredbe može ostvariti i translacija
čitavog niza podataka unazad za određeni broj mesta. Ovo se ostvaruje tako što se obe
adrese vežu za istu datoteku, s tim što se kao source adresa definiše adresa koja je veća
od bazne adrese odredišta dest za iznos koji odgovara broju mesta za koji se vrši
translacija. Ukoliko se želi translacija unapred (u smislu rastućih adresa) onda je to
moguće da se ostvari samo ako je razlika između odredišne i izvornne adrese veća od
dužine niza podataka. U protivnom, ako taj uslov nije ispunjen, doći će do preklapanja
podataka i deo niza podataka će biti izgubljen.
Nakon izvođenja ovih naredbi indeks registar S:24 se postavlja na 0.

4.3. NAREDBE ZA TRANSLACIJU BITOVA


• BSL – Bit shift left (translacija bitova u levo)
• BSR – Bit shift right (translacija bitova u desno)
Plc_flow/76

Naredbe za translaciju bitova su naredbe akcije. Međutim, one se izvode samo


kada se uslov menja sa neistinit na istinit. Prilikom izvršavanja naredbe niz od length
bitova koji je smešten u datoteci fn, počev od nultog bita u elementu e, se translatorno
pomera za jedno mesto u levo (BSL) odnosno u desno (BSR), pri čemu se na upražnjeno
mesto smešta bit čija je adresa fn:w/b dok se prvi (BSR), odnosno poslednji (BSL) bit niza
prebacuje u indikatorski bit UL (Sl. 4-1). Posle izvođenja ove naredbe indeksni registar
S:24 se postavlja na nulu.
Potrebno je da se istakne
da kod svih datoteka, izuzev
datoteke tipa String, dužina niza
može da bude veća od dužine
elementa. Drugim rečima, niz
može da se proteže preko više
elemenata, ali ne sme da
prekorači granicu datoteke.
Ukoliko se to dogodi, ER bit se
postavlja na jedan i na kraju
ciklusa se indicira da je došlo do
značajne greške. Bitovi koji
pripadaju jednom elementu, ali ne
čine sastavni deo niza (ostatak
SL. 4-1 IZVOĐENJE NAREDBI ZA POMERANJE BITOVA
od kraja niza do kraja
elementa) ne mogu da se
koriste.
Svakoj datoteci (file) koja se navodi u okviru jedne od ovih naredbi pridružuje se
po jedan elemenat
upravljačke datoteke
tipa R. U okviru
elementa pamte se
indikatorski bitovi i
dužina niza. Pri tome
se može koristiti
sistemska upravljačka
datoteka broj 6, ili
SL. 4-2 ELEMENT UPRAVLJAČKE DATOTEKE ZA BSL I BSR NAREDBU korisnička datoteka
(brojevi od 9 do
255). Jedan elemenat ove datoteke, koji se odnosi na BSR i BSL naredbu ima izgled kao
na slici Sl. 4-2. Potrebno je zapaziti da se dužina niza koje se pomera može menjati u
toku rada programa, jednostavnim korišćenjem neke od naredbi za promenu podataka u
kojoj se kao odredišna adresa navodi Rn:1. Naravno, pri tome treba voditi računa da se
ne prekorači maksimalna dužina niza.
Ukoliko se kao dužina niza zada 0 (len 0), naredba se izvodi tako što se zadani bit
smešta u UL.
Bitovi stanja u elementu datoteke R menjaju se na sledeći način:
EN – Enable bit se postavlja na 1 kada uslov prelazi sa neistinit na istinit. Postavljanje
ovog bita prouzrokuje da se izvrši zahtevano pomeranje niza bitova u levo ili u desno za
jedno mesto. Pri svakom sledećem prolazu kroz ovaj rang, sve dok je uslov istinit, EN bitr
zadržava vrednost 1, ali se pomeranje bitova ne vrši. 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 izvršavanju naredbe detektuje neka
nepravilnost (dužina je negativan broj ili premašuje veličinu datoteke) i ako se ne restuje
Plc_flow/77

pre kraja sken ciklusa, javlja se značajna greška. Kada uslov postrane neistinit vrednost
ovog bita se resetuje na nulu.
UL – Unload bit posle pomeranja sadrži poslednji bit početnog niza, kod pomeranja u
levo, odnosno prvi bit kod pomeranja u desno.
S obzirom na način na koji se izvršava ova naredba, očigledno je da se rotacija
niza može 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 izvrši pomeranje za više mesta,
to se može ostvariti pomoću programskog ciklusa, koji će omogućiti da se ista naredba
(pomeranje za jedno mesto) izvrši više puta. O načinu formiranja cilklusa biće kasnije više
reči.

4.4. NAREDBE ZA SEKEVENCIJALNU OBRADU PODATAKA


Jedan od izuzetno čestih zadataka pri upravljanju procesima je sekvencijalno
upravljanje. Ovim upravljanjem se izvršnim organima na procesu zadaje niz naredbi
binarnog tipa (uključi/isključi, napred/nazad, kreni/stani i sl.) koje se smenjuju u vremenu,
pri čemu svaka aktivnost traje određeni, unapred definisani interval vremena, ili dok se ne
detektuje nastanak nekog događaja. Bitno obeležje ovog načina upravljanja je da je
sekvenca unapred potpuno određena i da se niz aktivnosti može definisati kao sukcesivan
niz binarno kodiranih reči, kod kojih se svaki bit odnosi na pojedini izvršni organ, koji je
vezan za kontroler preko odgovarajućeg digitalnog izlaznog modula. Kako se proces
odvija, tako se na izlazni modul prenosi reč po reč iz upravljačke sekvence.
Budući da prelazak sa jedne aktivnosti na drugu može da bude uslovljen stanjem u
pojedinim delovima procesa, to znači da je neophodno da se, pod određenim uslovima,
očitavaju stanja indikatora na procesu i porede sa unapred definisanim stanjima. U
zavisnosti od rezultata poređenja, odlučuje se da li je došlo vreme za sledeću aktivnost.
Kada je odgovor potvrdan, onda je izvesno da proces ulazi u sledeću fazu, te da se
nadalje stanje mora porediti sa drugim nizom vrednosti koji ukazuje na završetak sledeće
faze. Dakle, i ovde je moguće da se svi parametri koji učestvuju u poređenju, urede u
jedan niz binarno kodiranih reči, i da se stanje procesa, koje se učitava preko digitalnih
ulaznih modula poredi sa odgovarajućom reči iz niza.
Nema nikakve sumnje da bi se opisane operacije mogle izvesti
kombinovanjem naredbi za unošenje i iznošenje digitalnih podataka, naredbi za
poređenje i tehnike indirektnog ili indeksnog adresiranja. Međutim, pošto je
potreba za ovim operacijama izuzetno izražena, predviđene su dve posebne
naredbe kojima se one u celosti mogu realizovati. Obe naredbe su naredbe akcije

4.4.1. 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 dužine
jedne reči. Adrese pojedinih podataka određuju se pomoću bazne adrese koja se definiše
u naredbi i pointera koji predstavlja upravljački paramater, čija se vrednost menja u toku
ponovljenih izvršavanja naredbe. Pri tome se adresa operanda dobija kao zbir bazne
adrese i vrednosti pointera. U naredbama se definiše početna vrednost pointera kao i
ukupna dužina niza.
Ako neka aplikacija zahteva da se sekvencijalna obrada izvrši nad podacima koji
su duži od 16 bitova, onda se ti podaci moraju podeliti na više datoteka. Tada se u
svakom rangu na izlazu kao naredbe akcije mogu paralelno staviti više istih naredbi
kojima se adresiraju sve definisane datoteke.
Svakoj datoteci koja se specificira u okviru neke sekvencijalne naredbe pridružuje
se po jedan elemenat upravljačke datoteke R. U okviru ovog elementa pamte se
indikatorski bitovi, kao i vrednost pointera i dužina same datoteke. O formatu jednog
elementa ove datoteke biće kasnije više reči.
Plc_flow/78

Prilikom izvršavanja ovih naredbi menja se sadržaj indeksnog registra. Nakon


završetka naredbe, sadržaj indeksnog registra jednak je vrednosti pointera.
Potrebno je da se naglasi da se ove naredbe ne izvode uvek na isti način. Naime,
samo kada se uslov u rangu menja sa neistinit na istinit menja se vrednost pointera i on
ukazuje na drugi podatak. Međutim, ako uslov posle toga ostane i dalje istinit, pointer ne
menja vrednost već se naredba izvršava sa podatkom koji je uzet pri poslednjoj promeni
pointera.
• SQL – Sequencer Load (sekvencijalno punjenje datoteke)

Svaki put kada se uslov menja sa neistinit na instinit, ova naredba se izvršava tako
što se vrednost pointera poveća za 1 i podatak koji je određen kao source prenese u
datoteku file na onu adresu na koju pokazuje pointer. Na taj način se pri svakom
sledećem izvršavanju naredbe menja sadržaj sledeće reči 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 izvođenja naredbe. Međutim, ako se kao source adresa navede datoteka (#fn:s),
onda se ta adresa uzima kao bazna adresa izvorne datoteke, što znači da se pri izvođenju
naredbe podatak uzima sa one adrese na koju u izvornoj datoteci pokazuje pointer. Pri
tome se podrazumeva da obe datoteke imaju istu dužinu, definisanu kao length.
Pri sledećim sken ciklusima, za svo vreme za koje uslov ostaje istinit, vrednost
pointera se ne menja, već se isti, prethodno određeni, podatak prenosi u promenljivu
označenu sa dest.
• SQO – Sequencer output (sekvencijalno upravljanje)

Svaki put kada


se uslov menja sa
neistinit na instinit, ova
naredba se izvršava
tako što se vrednost
pointera (position)
poveća 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
SL. 4-3 - ILUSTRACIJA IZVRŠAVANJA SQO NAREDBE označenu sa dest.
Plc_flow/79

Ako je kao dest navedena datoteka #fn:d onda će se rezultat upisati u onu reč te datoteke
na koju pokazuje pointer (Sl. 4-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 reči koja označena sa
dest menjaju samo oni bitovi koji su nemaskirani (odgovorajući bitovi maske su postavljeni
na 1).
Pri sledećim sken ciklusima, za svo vreme za koje uslov ostaje istinit, vrednost
pointera se ne menja, već se isti, prethodno određeni, podatak prenosi u promenljivu
označenu sa dest.
• SQC – Sequencer compare (sekvencijalno poređenje)

Svaki put kada se


uslov menja sa neistinit
na instinit, SQC naredba
se izvršava tako što se
vrednost pointera
(position) poveća za 1 i
uzme ona reč iz datoteke
#fn:w na koju pokazuje
pointer. Ta reč se poredi
SL. 4-4 - ILUSTRACIJA IZVRŠAVANJA SQC NAREDBE sa filtriranim podatkom
koji sadrži promenljiva
označena kao source i rezultat poređenja se upisuje u odgovarajući indikatorski bit.
Filtracija podatka vrši se pomoću maske mask i to tako da u poređenju učestvuju 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 učestvuju u poređenju uzimati iz one reči
te datoteke na koju pokazuje pointer (Sl. 4-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 sledećim sken ciklusima, za svo vreme za koje uslov ostaje istinit, vrednost
pointera se ne menja, već se isti, prethodno određeni, podatak (source) uzima kao
podatak za poređenje.
DATOTEKA R – CONTROL
Naredbama za
sekvenciranje pridružuju
se indikatorski bitovi i
upravljački parametri.
Ove informacije se
smeštaju u upravljačku
datoteku tipa R. Pri tome
se može koristiti
sistemska upravljačka
SL. 4-5 - ELEMENAT UPRAVLJAČKE DATOTEKE ZA SQL, SQO I SQC datoteka broj 6, ili korisnička
NAREDBU
Plc_flow/80

datoteka (brojevi od 9 do 255). Jedan elemenat ove datoteke, koji se odnosi na SQO i
SQC naredbu ima izgled kao na Sl. 4-5.
Bitovi stanja u elementu datoteke R menjaju se na sledeći način:
EN – Enable bit se postavlja na 1 kada uslov prelazi sa neistinit na istinit. Postavljanje
ovog bita prouzrokuje da se izvrši naredba i vrednost pointera poveća za 1. Pri svakom
sledećem prolazu kroz ovaj rang, sve dok je uslov istinit, EN bit ozadržava vrednost 1, ali
se vrednost pointera ne menja, već se naredba izvršava sa istom vrednošću pointera.
Kada uslov postane neistinit, EN – bit se resetuje na 0.
DN – Done bit se postavlja na 1 kada vrednost pointera, posle niza izvođenja SQL, SQO
ili SQC naredbe, dođe do kraja niza u zadanoj datoteci. Ovaj bit će biti resetovan na 0 tek
u onom sken ciklusu u kome uslov, pošto 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 dužine niza. Ako se ovaj bit ne resetuje pre kraja
sken ciklusa nastaće značajna greška.
FD – Found bit se postavlja na 1 ako je rezultat poređenja u SQC naredbi istinit. Drugim
rečima ovaj bit ukazuje na to da su nemaskirani bitovi podataka jednaki odgovarajućim
bitovima u datoteci referentnih vrednosti.
LENGTH I POSITION
Promenljive length se pamti u prvoj reči datoteke R i predstavlja broj reči koji se
nalazi u nizu u jednoj sekvencijalnoj datoteci. Maksimalna vrfednost dužine je 255. Pri
definisanju dužine, potrebno je voditi računa o činjenici da navedena adresa reči w u
datoteci #fn:w zapravo predstavlja nultu, početnu poziciju. To znači da se za datu dužinu
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.
Vrednost pointera, označena kao position, pamti se u drugoj reči datoteke R.
Početna vrednost pointera se definiše pri specifikaciji naredbe. Vrednost pointera se kreće
od 1 do len i ukazuje na reči u datoteci od fn:(w+1) do fn:(w+len+1). Kada pointer stigne
do poslednje reči u datoteci, postavlja se DN-bit na 1 i pri tome se u prvom sledećem sken
ciklusu u kome uslov ima prelaz sa neistinit na istinitinit (isiti ciklus u kome se resetuje
DN-bit) vrednost pointera automatski vraća na 1. Pri definiciji početne vrednosti pointera
potrebno je obratiti pažnju na činjenicu da se ona poveća za 1 pre prvog izvođenja
naredbe.
Ako se kao početna vrednost pointera definiše 0, onda će pri izvođenju SQC
naredbe obrada početi od reči u datoteci čija je adresa fn:(w+1). Međutim kod SQO
naredbe način izvođenja operacije zavisi od istinitosti uslova u prvom sken ciklusu. Ako je
uslov istinit naredba se izvršava počev od nulte reči, čija je adresa fn:(w+0). Međutim, ako
je uslov neistinit, izvršavanje naredbe se odlaže sve dok uslov ne postane istinit i tada se
uzima prva reč, čija je adresa w+1.
Konačno, važno je da se istakne da se prilikom eventualne programske promene
dužine i pozicije mora voditi računa da se ne prekorači veličina definisanog niza u
datoteci.
RESETOVANJE PARAMETARA
Ukoliko se iz nekog razloga želi prekinuti
sekvencijalno upravljanje ili poređenje, to se
može ostvariti pomoću RES naredbe u kojoj se
navodi adresa nulte reči 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 povećati na 1 pre
prvog sledećeg izvođenja naredbe).
Plc_flow/81

4.5. NAREDBE ZA FORMIRANJA STEKA


U računarskoj terminologiji stek označava niz podataka koji se sekvencijalno puni i
prazni. Naime, stek se formira u nekom području memorije i to tako što se definiše
početna adresa steka i pointer steka se postavi na tu početnu adresu. Svaki put kada se
podatak unese u stek, vrednost pointera poraste za 1, tako da on uvek ukazuje na
sledeću 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 smešten u stek. Vrednost
pointera se pri tome smanjuje za 1, ali se položaj 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 izloženi princip formiranja steka, očigledno je da za svaki tip steka
moraju postojati odvojene naredbe. Pri tome se one javljaju u paru (za punjenje i
pražnjenje steka). U okviru naredbe mora da se definiše bazna adresa steka, početna
vrednost pointer, kao i maksimalna dužina steka. Svakom steku koji se specificira u okviru
neke naredbe se pridružuje po jedan elemenat upravljačke datoteke. U ovom elementu
postavljaju se određeni indikatorski bitovi, a takođe se pamti i vrednost pointera, kao i
dužina steka.
Naredbe za punjenje i pražnjenje 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 izvršavaju svaki put kada se uslov menja sa neistinit na istinit, i to
tako što se podatak čija je adresa navedena kao source, prenese na položaj u steku koji
je određen pointerom. Nakon toga se vrednost pointera poveća za 1. Ovaj postupak je
ilustrovana na slici
Sl. 4-6 - Ilustracija izvršavanja naredbi LFL i FFL za punjenje steka
Plc_flow/82

, gde su prikazana tri uzastopna izvršavanja bilo koje od ove dve naredbe. Pri
tome je pretpostavljeno da je bazna adresa steka locirana na memorijskoj adresi 200, i da
su u steku, pre izvršavanja ovih naredbi već smeštena dva podatka (a i b).
I ako obe naredbe za punjenje steka rade na isti način, one se mogu koristiti samo
za punjenje odgovarajućeg tipa steka. Drugim rečima ne može se LFL naredbom puniti
FIFO stek i obratno. U principu, kao početna pozicija pointera može da se zada bilo koja
vrednost, ali je prirodno da ona bude nula, odnosno da se stek puni od bazne adrese.
Prilikom izvođenja ovih naredbi menja se sadržaj indeksnog registra S:24 i to tako
što on dobija vrednost pointera pre otpočinjanja izvršavanja naredbe.

SL. 4-6 - ILUSTRACIJA IZVRŠAVANJA NAREDBI LFL I FFL ZA PUNJENJE STEKA

PRAŽNJENJE STEKA

SL 4-7 - ILUSTRACIJA IZVRŠAVANJA NAREDBE ZA PRAŽNJENJA FIFO STEKA


Plc_flow/83

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


izvođenja
UNLOAD LIFO
naredbe
u toku i posle pointer=4 pointer=3 pointer=2

prva LFU druga LFU trećaLFU


naredba naredba naredba
SL. 4-8 - ILUSTRACIJA IZVRŠAVANJA NAREDBE ZA PRAŽNJENJA LIFO STEKA

• LFU – LIFO unload (pražnjenje LIFO steka)


• FFU – FIFO unload (pražnjenje FIFO steka)

Ove naredbe se
izvršavaju svaki put kada
Plc_flow/84

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 Sl. 4-8 i Sl. 4-7, gde su prikazana tri
uzastopna izvršavanja ovih naredbi. Pri tome je predpostavljeno da je bazna adresa steka
locirana na memorijskoj adresi 200.
U toku izvršavanja ovih naredbi menja se vrednost indeksnog registra S:24 i to
tako da on sadrži vrednost koju pointer ima nakon izvršavanja naredbe.

DATOTEKA R – CONTROL
Naredbama za rad sa stekom pridružuju se indikatorski bitovi i upravljački
SL. 4-9 - ELEMENAT R DATOTEKE ZA LFL, FFL, LFU I FFU NAREDBU parametri. Ove
informacije se smeštaju
u upravljačku datoteku tipa R. Pri tome se može koristiti sistemska upravljačka datoteka
broj 6, ili korisnička 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. 4-9.
Bitovi stanja u elementu datoteke R menjaju se na sledeći način:
EN – Enable bit se postavlja na 1 kada uslov u rangu koji sadrži FFL ili LFL naredbu za
punjenje steka, prelazi sa neistinit na istinit. Postavljanje ovog bita prouzrokuje da se
izvrši naredba. Pri svakom sledećem prolazu kroz ovaj rang, sve dok je uslov istinit,
vrednost EN bita ostaje 1, ali se naredba ne izvršava. Kada uslov postane neistinit, EN –
bit se resetuje na 0.
EU – Enable bit se postavlja na 1 kada uslov u rangu koji sadrži FFU ili LFU naredbu za
pražnjenje steka, prelazi sa neistinit na istinit. Postavljanje ovog bita prouzrokuje da se
izvrši naredba. Pri svakom sledećem prolazu kroz ovaj rang, sve dok je uslov istinit,
vrednost EU bita ostaje 1, ali se naredba ne izvršava. Kada uslov postane neistinit, EU –
bit se resetuje na 0.
DN – Done bit se postavlja na 1 kada vrednost pointera dođe do vrha steka (odnosno
kada on ukazuje na prvu sledeću adresu iznad vrha steka). Ovaj bit indicira da je stek pun
i sve dotle dok je njegova vrednost 1, naredbe za punjenje steka se neće izvršavati, bez
obzira na to što bi prema uslovu u rangu trebalo da se izvrše. Ovaj bit će biti resetovan na
0 tek nakon izvršavanja naredbe za pražnjednje steka, čime u steku ostaje upražnjeno
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 pražnjenje steka
se neće izvršavati, bez obzira na to što bi prema uslovu u rangu trebalo da se izvrše.
Plc_flow/85

5. NAREDBE ZA UPRAVLJANJE IZVRŠAVANJEM PROGRAMA

5.1. OPŠTE NAPOMENE


U principu kada PLC počne sa radom (uđe u tzv Run mode) on započinje sken
ciklus koji se satoji iz ulaznog sken ciklusa, programskog sken ciklusa, izlaznog sken
ciklusa, komunikacionog ciklusa i održavanja. Pri tome se u okviru programskog sken
ciklusa obrađuje rang po rang u redosledu u kome su oni napisani.
Različite aplikacije mogu zahtevati da se redosled izvođenja leder programa, pod
određenim uslovima, promeni. Isto tako može biti potrebno da se program privremeno
prekine, da se pojedine aktivnosti suspenduju, da se stanja nekih veličina resetuju ili da se
usled nastanka nekih događaja preduzimaju i neke druge aktivnosti. Svi ovi efekti mogu
se ostvariti posebnim naredbama za upravljanje izvršavanjem programa.

5.2. NAREDBA ZA SKOK


Leder program se izvršava 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 pokazivača (pointera), koji sadrži
memorijsku adresu sledećeg ranga u programu koji treba da se obradi. U svakom rangu
ispituje se istinitost uslova i ako je on istinit izvršavaju se naredbe akcije. Kod nekih
aplikacija, međutim, neophodno je da se, pod određenim uslovima odstupi od normalnog
toka programa, tako što se preskače jedan niz naredbi ili se neki niz naredbi ciklično
ponavlja određeni broj puta. Ovakvi zahtevi mogu se ostvariti pomoću naredbi za skok.
• LBL - naredba
Sve dotle dok se naredbe programa izvršavaju u
redosledu u kome su napisane nema nikakve potrebe da se
pojedini rangovi posebno označe. Međutim, ukoliko se od
programa očekuje da omogući skok na neku nardebu, onda je
neophodno da se omogući da se jedna određena naredba
identifikuje na nedvosmislen način. Identifikacija naredbe ostvaruje se pomoću
simboličkog imena – labele koja se kao naredba uslova postavlja na prvo mesto u rangu .
Labela se definiše kao decimalni broj koji se kreće od 0 do 999. U jednom programu može
se definisati najviše 256 različitih labela. Samo se po sebi razume da se jedna labela,
budući da predstavlja simboličko ime ranga, može nalaziti u samo jednom rangu.
Iako labela ima grafički simbol naredbe uslova njoj se ne pridružuju nikakvi bitovi
čije bi stanje određivalo istinosnu vrednost naredbe. Pri izvodjenju programa smatra se da
je naredba uvek istinita.
• JMP – Jump (skok)
Ova naredba je naredba akcije, što znači da se
izvršava ukoliko je uslov istinit. Naredba se izvodi tako što se
menja vrednost pointera tako da on ukazuje na memorisjku
adresu na kojoj se nalazi rang čija je labela naznačena u JMP
naredbi. To zapravo znači da se vrši skok na rang koji sadrži
datu labelu, i od njega se nastavlja izvršavanje programa. Više različitih JMP naredbi
mogu koristiti istu labelu.
U principu skok se može izvršiti unapred ili unazad u odnosu na rang u
kome se nalazi JMP naredba. Ukoliko se skok unazad kombinuje sa brojačem ili
nekim uslovom može se ostvariti programska petlja. Prilikom formiranja petlje
treba voditi računa da se ukupno vreme skeniranja ne produži preko unapred
definisane gornje granice trajanja jednog programskog sken ciklusa. ukoliko se to
dogodi procesor će prijaviti grešku i obustaviti rad.
Plc_flow/86

5.3. POTPROGRAMI
Veoma često u okviru neke aplikacije javlja se potreba da se jedna ista sekvenca
naredbi ponovi više puta na različitim mestima u programu. Nesumnjivo je da se ovo
može rešiti i tako što će se dati niz programskih rangova ponoviti onoliko puta koliko to
aplikacija zahteva, ali će se na taj način nepotrebno zauzimati memorijski prostor. Da bi
se to izbeglo, dati niz rangova formira se samo jedanput kao podprogram (subroutine),
koji se poziva na izvršavanje na više mesta u leder programu.
POZIV POTPROGRAMA
•JSR – Jump to Subroutine (skok na podprogram)
Ova naredba je naredba akcije. Ukoliko je
uslov istinit JSR naredba prouzrokuje prekid u
normalnom izvršavanju leder programa i
ostvaruje skok na podprogram čije je simboličko
ime (broj programske datoteke) naveden kao
adresa u JSR naredbi. Izvršavanje programa
nastavlja se od prvog ranga podprograma.
FORMIRANJE I IDENTIFIKACIJA PODPROGRAMA
• SBR – Subroutine (podprogram)
Potprogram je zasebna celina leder programa koja se mora formirati u okviru
posebne programske datoteke. Broj te datoteke (3 –
255) predstavlja istovremeno i simboličko ime
potprograma. SBR naredba se koristi da bi se
naznačilo da programska datoteka predstavlja
podprogram. Ova naredba formalno pripada
kategoriji naredbi uslova, što znači 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 definiše potprogram. Budući da SBR naredba
predstavlja identifikator podprograma njoj se ne pridružuju nikakvi bitovi čije bi stanje
određivalo 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 više mesta u programu, čime se, kao što je već rečeno, štedi na
potrebnom memorijskom prostoru. Pored toga, kod složenijih aplikacija, pogodno je da se
pojedine logičke celine izdvoje u podprograme, čime se značajno povećava preglednost
programa. i olakšava njegovo testiranje.
Pri korišćenju podprograma treba voditi računa o činjenici da će se svi bitovi
digitalnih izlaza kojima se upravlja u okviru podprograma menjati samo onda kada se
podprogram pozove.
ZAVRŠETAK POTPROGRAMA
• RET – return (povratak)
• END – End (kraj)
Poslednji rang svakog potrpograma, kao i
glavnog programa, sadrži samo jednu naredbu
akcije – END naredbu. Pri tome, u delu za uslov
nema nikakve naredbe, što znači da se ovaj rang
izvršava u svakom programskom sken ciklusu.
Izvršavanje END naredbe u potprogramu ima za
posledicu da se promeni vrednost pointera sledećeg ranga i to tako da on ukazuje na prvi
rang koji se nalazi neposredno iza JSR naredbe kojom je ostvaren skok na ovaj
potprogram.
U nekim aplikacijama potrebno je da potrpogram ima više različitih završetaka u
Plc_flow/87

zavisnosti od vrednosti pojedinih podataka. U tu svrhu koristi se RET naredba. Ova


naredba akcije izvršava se isto kao i END naredba, što znači da prekida rad potprograma
i vraća izvršavanje na prvi rang neposredno iza JSR naredbe. Jedina razlika je u tome što
Glavni program
se na levoj strani ranga koji sadrži RET
File 3
Potprogram
File 4
Potprogram
File 5
naredbu mogu naći naredbe uslova.
Ukoliko je uslov istinit izvođenjem RET
4 1 naredbe prekinuće se rad potrpograma i
JSR SBR SBR
2 pre njegovog fizičkog kraja koji
5 označava END naredba.
JSR Unutar jednog potprograma
može se naći više RET naredbi.
UČAURENI PODPROGRAMI
RET RET
U principu jedan podprogram
može pozvati drugi podprogram koji
3
poziva treći i tako redom. Način
4 izvršavanja tako učaurenih
podprograma ilustrovan je na Sl. 5-1. .
SL. 5-1 UČAURENI POTPROGRAMI Dozvoljeno je povezivanje do osam
nivoa podprograma.

5.4. PROMENA TOKA SKEN CIKLUSA


Ova grupa naredbi koristi se u fazi testiranja programa ili za ubrzavanje sken
ciklusa u nekimslučajevima.
• TND – Temporary end
Ukoliko je uslov istinit ova naredba prekida
izvršavanje programskog sken ciklusa. U tom slučaju odmah
započinje izlazni sken ciklus, posle koga se nastavlja ciklus
cv

komunikacija i održavanja. Sledeći programski sken ciklus


započinje od prve programske naredbe.
Samo se po sebi trazume da se ova naredba najčešće koristi u fazi testiranja
programa, kada se želi ispitati ispravnost pojedinih programskih celina.
• SUS – Suspend naredba
Ukoliko je uslov istinit ova naredba 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).
Naredba se koristi u fazi testiranja programa i
pronalaženja grešaka. Ona se stavlja u onim segmentima programa koje se žele ispitati i
kada procesor uđe u stanje suspenzije ispituju su sve reči u statsnoj doatoteci koje mogu
dati informaciju o radu programa.
ID kod koji se navodi u naredbi služi za identifikaciju same nardbe. Naime, budući
da se u jednom programu može naći više ovakvih naredbi. One se međusobno razlikuju
po svom identifikacionom kodu i po broju programske datoteke u kojoj se nalaze.
Očitavanjem ova dva podatka iz statusne datoteke korisnik može da identifikuje deo
programa koji se izvršavao neposredno pre toga i da proveri ostale podatke iz statusne
datoteke.
• MCR, END MCR – Master control reset
Par naredbi MCR i END MCR definiše zonu unutar leder programa koja se može
izvršavati na specifičan način. Ukoliko je uslov u MCR naredbi neistinit onda se sve
Plc_flow/88

naredbe koje nalaze u MCR zoni izvršavaju regularno. To


znači da se u svakom rangu ispituje uslov i u zavisnosti
od vrednosti uslova izvršava odgovarajuća akcija.
Međutim, ukoliko je uslov istinit u svim rangovima unutar
zone se postavlja vrednost odgovarajućih bitova uslova,
dok se nezavisno od ove vrednosti svi bitovi akcije
resetuju. Na taj način se u izvesnoj meri smanjuje
trajanje programskog sken ciklusa.
Smisao ove nardbe je da omogući kreiranje
programskih celina koej se po potrebi mogu aktivirati ili
inhibirati. Na ovaj način se može realizovati granjanje
programa na više putanja. Tako, na primer, ukoliko se realizuje program koji upravlja
nekim procesom koji radi sa različitim recepturama, svaka od receptura se može definisati
unutar posbne MCR zone. Pažljivo odabranim uslovima može se postići da u svakom
trenutku samo jedna od ovih zona bude aktivna.
Pri korišćenju MCR zone potrebno je voditi računa da se nekom naredbom za
skok ne skoči unutar zone, jer se u tom slučaju poništava efekat inhibicije zone i nastavlja
se sa normalnim obrađivanjem rangova.

5.5. AŽURIRANJE ULAZNIH I IZLAZNIH PODATAKA


Već je istaknuto da se u toku programskog sken ciklusa ne obrađuju direktno
ulazni podaci, već vrednosti koje se u toku ulaznog sken ciklusa upisane u datoteku ulaza.
Na isti način, 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 znači da postoji neko kašnjenje između očitavanja podataka i njihove obrada, kao
i između definisanja izlaznih signala i njihovog prenošenja na izvršne organe. U nekim
aplikacijama, međutim, kašnjenje nekih signala može prouzrokovati ozbiljnije poremećaje
u efikasnosti upravljačkog algoritma. Da bi se to izbeglo omogućeno je da se u toku
samog programskog sken ciklusa zahteva očitavanje trenutne vrednosti signala na nekoj
od ulaznih linija, ili trenutno prenošenje izračunate akcije na izlaznu liniju. Ovo se postiže
posebnim naredbamakojima se privremeno prekida programski sken ciklus i izvršava deo
ulaznog odnosno izlaznog sken ciklusa.
• IIM – Immediate input with mask
• IOM – Immediate output with mask

Ukolikoje uslov istinit, IIM naredba


će prouzrokovati očitavanje (sken) svih
ulaznih linija koje se nalaze u modulu u
datom slotu. Vrednosti bitova koji
odgovaraju bitovima koji su u masci
postavljeni na 1 biće smešteno u sliku ulaza
(ulaznu datotreku) i korišćena u svim
sledećim sken naredbama.
Na isti način, 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 prouzrokovaće
prekid programskog sken ciklusa i obavljanje izlaznog sken
ciklusa, ciklusa komunikacije i održavanja, kao i ulaznog
sken ciklusa. Posle toga se programski sken ciklus nastavlja
od mesta gde je prekinut.
Plc_flow/89

Očigledno je da se ova naredba koristi u slučajevima kada je programski sken


ciklus relativno dugačak pa je, radi smanjivanja kašnjenja u operacijinad podacima,
neophodno da se oni ažuriraju češće nego što bi to bio slučaj da se obavlja regularni sken
ciklus.

5.6. SISTEM PREKIDA (INTERRUPT)


Prekid je mehanizam pomoću koga se neki program privremeno prekida da bi se
omogućilo izvršavanje
nekog drugog posebnog
dela programa, koji se
označava kao servisni
potprogram. Kada se
servisni potprogram završi,
nastavlja se izvršavanje
programa koji je bio
prekinut. Ovaj postupak je
ilustrovan na slici (Sl. 5-2).
Mehanizam sistema
prekida se aktivira pomoću
signala prekida, koji dolaze
iz spoljašnje sredine i
imaju poseban direktan
ulaz u centralnu jedinicu.
Svrha ovih signala je
"obaveštavanje" procesora
o nastanku nekih
SL. 5-2 REALIZACIJA SISTEMA PREKIDA
spoljašnjih događaja. U
zavisnosti od vrste
događaja procesor menja redosled izvođenja operacija ili reaguje na neki drugi unapred
predviđen način.
Pored već pominjane mogućnosti da se signalima prekida ukazuje da je neki U/I
uređaj spreman za prenos podataka, čime se eliminiše potreba za ispitivanjem njegovog
stanja, ovi signali imaju izuzetan značaj za rad sistema u realnom vremenu i koriste se
kao:
• časovnik realnog vr emena, gde spoljašnji hardverski uređaj generiše signal u
ravnomernim vremenskim intervalima; servisni potprogram broji ove signale i na osnovu
njih formira informaciju o vremenu;
• događaji (alarmi), gde se nastanak neke nepredviđene situacije (događaja) na
procesu može identifikovati tako što će odgovarajući senzori generisati digitalne signale.
Ovakvi signali alarma su relativno retki, ali zahtevaju izuzetno brzu reakciju sistema, pa
je očigledno da njihovo opsluživanje preko sistema prekida pruža efikasno rešenje;
• ručno upravljanje, gde se korišćenjem prekida može omogućiti da se preuzme ručno
upravljanje procesom u slučaju regularnog remonta ili opravki na sistemu;
• indikacije hardverskog otkaza, gde se informacija o otkazu spoljašnjeg hardvera ili
podsistema za spregu može dobiti preko signala prekida, posle čega servisni
potprogram može da realizuje aktivnost predviđenu u tom slučaju (automatska zamena,
ako postoji paralelni uređaj; promena algoritma dok se ne izvrši opravka itd.);
• pomoć pri traženju grešaka u programu, gde se prekid često koristi za
prekidanje rada programa na određenim mestima u fazi provere njegove ispravnosti;
• nestanak napajanja, gde se u računar uključuje kolo koje veoma brzo detektuje
gubitak napajanja u sistemu i obezbeđuje upozorenje nekoliko milisekundi pre nego što
Plc_flow/90

sistem prestane da radi. Ukoliko je ovakvo kolo vezano za signal prekida koji ima
prioritet nad svim ostalim aktivnostima u računaru, onda ima dovoljno vremena da se
izvrši nekoliko naredbi pomoću kojih se rad procesa kojim se upravlja prekida na neki
predviđeni način.
Realizacija sistema prekida obuhvata detekciju signala prekida, suspenziju
trenutne aktivnosti, pronalaženje uređaja koji je tražio prekid, opsluživanje prekida i
nastavak suspendovane aktivnosti.

5.6.1. TIPOVI PREKIDA I HIJERARHIJSKI NIVOI


PLCovi iz familije SLC operišu sa četiri tipa prekida:
i. User Fault Routine – upravlja radom PLCa u slučaju detekcije greške
ii. DII – Discrete Input Interrupt – detekcija događaja
iii.STI – Selectable Timed Interval – detkcija protoka vremena (odabiranje)
iv. I/O Interrupt – obrađuje signale prekida koji dolaze sa specijalnih U/I modula
Ukoliko se istovremeno javi više od jednog signala prekida, procesor ih opslužuje
u redosledu kojim su ovde dati. Isto tako prekid nižeg hijerarhijskog nivoa ne može
odpočeti da se opslužuje ukoliko se u tom trenutku opslužuje neki prekid višeg
hijerarhijskog nivoa.
DETEKCIJA SIGNALA PREKIDA I PERIOD LATENTNOSTI
Sken ciklus

SL. 5-3 NAČIN OBRADE SIGNALA PREKIDA U ZAVISNOSTI OD DELA SKEN CIKLUSA U KOME NAILAZI

Nailazak signala prekida, po pravilu, ne može baš trenutno da prekine rad


procesora. To znači da će do početka opsluživanja signala prekida proteći izvesno vreme.
Taj vremenski interval označava se kao interval latentnosti i njegova dužina zavisi od
operacije koja se trenutno izvodi i od zahteva koje specificira korisnik. Postavljanjem bita
S:33/8 korisnik može zahtevati da se prekid opsluži u najkraćem mogućem periodu (Sl.
5-3).
Ukoliko signal prekida naiđe u trenutku kada se obrađuje jedan slot u kome se
nalazi modul sa više reči i ukoliko opsluživanje prekida zahteva taj isti slot, onda će
opsluživanje biti odloženo dok se na završi obrada slota (nezavisno od stanja bit S:33/8).
OPSLUŽIVANJE PREKIDA
Kada PLC registruje prekid i završi započetu operaciju, odnosno dođe u stanje u
kome se dozvoljava opsluživanje prekida, on sačuva vrednosti statusnih bitova S:0
(indikator rezultata matematičkih operacija), S:13 i S:14 (matematički registar) i S:24
Plc_flow/91

(indeks registar), a zatim pozove odgovarajući 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 može pozivati najviše tri nivoa učaurenih potprograma. Ukoliko
se želi trenutna spoljna reakcija na detektovani prekid moraju se koristi naredbe za
trenutno očitavanje ulaza i izlaza (IIM i IOM).

5.6.2. USER FAULT ROUTINE


User Fault Routine je specifična vrsta prekida koja nastaje ukoliko se u toku
izvođenja leder programa javi greška. Jedan broj ovih grešaka može biti prouzrokovan
izvođenjem matematičkih operacija (npr. delenje sa nulom), nekom neusaglašenošću
naredbi (npr. nepostojeća datoteka u indirektnoj adresi) ili neadekvatnim adresiranjem
ulazno/izlaznih modula i tome slično.
Ukoliko se detektuje greška korisnik ima mogućnost da zahteva prekid i da pokuša
da otkloni grešku.
DEFINISANJE SERVISNOG POTPROGRAMA
• S:29 - broj programske datoteke koja sadrži servisni potprogram. Ukoliko je ovaj broj
nula, prekid je onemogućen.
Servisni potprogram, po pravilu ispituje kod greške i ustanovljava da li je ona
popravljiva ili nije. Ukoliko je greška popravljiva, ona se ispravlja i pri tome se, na izlasku
iz servisnog potprograma resetuje bit S:1/13. Ukoliko greška nije popravljiva, bit S:1/13 se
ne menja, ali se tada, po pravilu, pošalje poruka nekom susednom čvoru u mreži da PLC
privremeno obustavlja rad (sve dok se ne ustanovi šta izaziva grešku i ne unesu se
odgovarajuće korekcije).
DETEKCIJA I NAČIN OPSLUŽIVANJA PREKIDA
Kada se u toku izvršavanja programa detektuje greška procesor generiše određen
broj podataka u datoteci statusa i zatim proverava sadržaj reči S:29. Ako je podatak u reči
S:29 jednak 0, to znači da korisnik nije želeo da se bavi ispitivanjem i eventualnim
popravkom grešeka, te će procesor zaustaviti dalji rad. Ukoliko se međutim u toj reči
nalazi bilo koji broj između 3 i 255, onda taj broj označava programsku datoteku koja
sadrži servisni potprogram i procesor otpočinje izvođenje servisnog potrprograma.
POSTAVLJANJE INTERNIH INDIKATORSKIH BITOVA I REČI
Ukoliko dođe do greške procesor će postaviti sledeće bitove u datoteci statusa
• S:1/13 (major error bit)
• S:6 - kod greške
• S:20 - broj ranga u kome je greška nastala
• S:21 - broj programske datoteke u kome se taj rang nalazi.

PR. 5-1
ZADATAK
Potrebno je pratiti nastanak dve vrste grešaka:
• Minor error at the end of scan (kod 0020h), postavljen bit S:5/0
• Negative value in time pre or acc (0034h)
Ukoliko se greška detektuje predviđaju se sledeće reakcije
• Sprečava se reakcija ako je V bit S:5/0 setovan manje od 5 puta, posle toga procesor prekida rad
(odlazi u fault mode)
• Sprečava 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.
Plc_flow/92

• Dozvoljava se prekid rada PLC za sve ostale grešeke

REŠENJE
Osnovni servisni potprogram je programska datoteka broj 3 (Sl. 5-4) i taj broj se
mora upisati u statusnu datoteku u reč S:29. Budući da postoje dva tipa grešaka na koje
se očekuje neka reakcija one se zasebno obrađuju u programskim datotekama broj 4 (kod
greške 20h) (Sl. 5-5) i broj 5 (kod grešeke 34h) (Sl. 5-6). To znači da servisni potprogram
mora da obezbedi pozivanje jednog od ova dva potprograma u zavisnosti od koda greške.

SL. 5-4 GLAVNI SERVISNI POTPROGRAM ČIJA JE ADRESA UPISANA U S:29


Plc_flow/93

SL. 5-5 SERVISNI POTPROGRAM KOJI OBRAĐUJE GREŠKU ČIJI JE KOD 0020H
Plc_flow/94

SL. 5-6 SERVISNI POTPROGRAM KOJI OBRAĐUJE GREŠKU ČIJI JE KOD 0034H

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


generiše bilo jedna bilo druga greška (Sl. 5-7). Vrednost bita B3:0 određuje koja će od dve
greške biti generisana. Pri tome se predpostavlja da će se taj bit, na neki način, postavljati
spolja.
Plc_flow/95

SL. 5-7 GLAVNI PROGRAM KOJI GENERIŠE GREŠKE

5.6.3. DII – DISCRETE INPUT INTERRUPT


Ovaj nivo prekida koristi se za registrovanje nastanka određenih događaja i
obezbeđivanje odgovarajuće reakcije na te događaje.
Događaji se detektuju preko očitavanja stanja linija na nekom ulaznom modulu.
Jedan događaj se definiše specificiranjem niza od 8 bitova. Istovremeno se specificira i
Plc_flow/96

slot u kome se nalazi


digitalni ulazi koji primaju
ove bitove. Kada procesor
detektuje pojavljivanje
zadanog niza u
odgovarajućem slotu, on
registruje nastanak
događaja. Pri tome, ako je
sistem prekida definisan
tako da registruje svaki
događaj, procesor će
automatski da pozove
servisni potprogram.
Ukoliko je, međutim sistem
definisan tako da
prebrojava događaje, onda
će servisni potprogram biti
pozvan tek kad se dostigne
zadani broj nastanka
događaja.
Definisanje
SL. 5-8 ŠEMATSKI PRIKAZ IZVRŠAVANJA DII PREKIDA
načina rada ovog
prekida, kao i
odgovarajuće reakcije obavlja se pomoću šest reči u statusnoj datoteci. Sam procesor,
opslužujući prekid postavlja još neke indikatorske bitove u statusnoj datoteci (Sl. 5-8).
DEFINISANJE DOGAĐAJA
Da bi se definisao spoljni događaj neophodno je da korisnik, na neki način,
definiše vrednosti sledećih reči u statusnoj datoteci
• S:47 – broj slota – broj slota u kome je smešten digitalni ulaz koji prima informacije o
događaju. Ukoliko se upiše 0, sistem prekida je onemogućen.
• S:48 – maska – broj između 0 i 255 pomoću koga se specificira kojih se od 8 bitova
prate pri detekciji događaja. Vrednost bita 1 znači da se odgovarajuća ulazna linija
očitava i da se taj bit upoređuje sa zadanim kodom događaja
• S:49 – referenca – broj između 0 i 255 kojim se definiše kod događaja. 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 složi
generiše se signal prekida.
• S:50 – način rada – ukoliko je ova vrednost 0 ili 1, sistem prekida radi kao detektor
događaja. Ukoliko je vrednost veća od 1, sistem prebrojava događaje i generiše prekid
kada se registruje zadani broj događaja.
DEFINISANJE SERVISNOG POTPROGRAMA
• S:46 - broj programske datoteke koja sadrži servisni potprogram. Ukoliko je ovaj broj
nula, prekid je onemogućen.
DETEKCIJA I NAČIN OPSLUŽIVANJA PREKIDA
Bar jedanput u svakih 100μs procesor očitava podatke o prvom bajtu u slotu čiji je
broj definisan u S:47. (Ovo očitavanje se odvija paralelno sa sken ciklusom i ne utiče na
vreme trajanja sken ciklusa.) Očitani podaci se uz pomoć maske (S:48) porede sa
referencom (S:49). Ukoliko se podaci slažu dalji postupak zavisi od vrednosti reči S:50
• S:50 = 1 ( ili 0) – Detekcija događaja – generiše se prekid i poziva se servisni
potprogram. Istovremeno se u interni merač vremena S:45 upisuje vreme koje je
Plc_flow/97

proteklo od prethodne detekcije prekida (kao multipl od 10ms).


• S:50 > 1 – Brojanje događaja – vrednost akumulatora (S:52) se povećava 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 – PRAĆENJE SEKVENCE DOGAĐAJA
U principu, definisanjem vrednosti reči u statusnoj datoteci omogućava se
definisanje jednog događaja. Kod sekvencijalnog programiranja, detkcija jednog događaja
i izvršavanje odgovarajuće reakcije na njega, po pravilu, zahteva da se pristupi detekciji
nekog drugog događaja. Realizacija ovakvog zahteva je moguća samo ako se promene
vrednosti odgovarajućih reči u statusnoj datoteci. Iako se vrednosti ovih reči mogu
redefinisati programski, za rekonfiguraciju celog sistema prekida neophodno je i da se
izvrši resetovanje nekih internih promenljivih. Da bi se omogućilo dinamičko
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 sledeće aktivnosti:
o akumulirana vrednost S:52 se postavlja na nulu
o vrednosti kojima se definiše događaj (S:47, S:48, S:49 i S:50) se
ponovo očitavaju i uvrštavaju u DII prekid
o resetuje se pending bit (S:2/11)
o resetuje se bit za rekonfiguraciju (S:33/10)
POSTAVLJANJE INTERNIH INDIKATORSKIH BITOVA I REČI
U toku rada, procesor postavlja niz inidkatorskih bitova vezanih za DII prekid čime
se korisniku omogućava da prati način na koji se prekid opslužuje.
• 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 izvršenje. Ovaj
bit se resetuje kada otpočne izvršavanje servisnog potprograma. Ova vrednost ostaje 1
ako je izvršavanje servisnog potprograma onemogućeno.
• S:2/12 – DII enable bit – postavljanjem ovog bita na 1 omogućava se opsluživanje
prekida (ako servisnog potprograma nije 0). Ako je vrednost ovog bita 0, kada se
detektuje prekid, servisni potprogram se neće izvršiti, već će se samo pending bit
postaviti na 1.
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
izvršavanje servisnog potprograma u toku. Kada se servisni potprogram završi 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 obrađuje prethodni. U tom slučaju, odmah po
završetku opsluživanja prethodnog prekida, započinje opsluživanje 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 opsluživanje prekida onemogućeno (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 otpočinjanje opsluživanja
prethodnog prekida. U tom slučaju, novo registrovani prekid neće biti opslužen.
• S:45 – DII Timer – DII interni časovnik se ažurira svaki put kada nastupa prekid.
Vreme se izražava se kao multipl od 10μs. To zapravo znači da PLC ima interni
časovnik koji neprekidno radi sa taktom od 10μs tako da meri vreme od 0 do 0.32767s.
Plc_flow/98

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 – sadržaj ove reči se ažurira neposredno pre ulaska u DII servisni
potprogram. Ova reč sadrži bit-mapu koja odgovara poslednjem bitu čiji je prelaz doveo
do detekcije događaja. Ako se desila promena više od jednog bita od poslednjeg
očitavanja ulaza, svi promenjeni bitovi će biti smešteni. Ova reč će biti resetovana pri
izlasku iz servisnog potprograma.
Podatak iz reči S:51 može da se koristi u servisnom potprogramu da bi se ustanovio
redosled postavljanja bitova koji čine neki događaj. Isto tako, ovaj podatak se može
koristiti da bi se utvrdilo da je okončana neka aktivnost i da je potrebno preći na sledeći
događaj u sekvenci događaja.

PR. 5-2
ZADATAK
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.

REŠENJE
Na samoj traci (Sl. 5-9) postavljen
je prekidač koji detektuje prisustvo boce i
koji je vezan za nulti pin ulaznog modula u
slotu 1 (I:1/0). Aktiviranje ovog prekidača
posmatra se kao događaj.
Kada se događaj detektuje poziva
SL. 5-9 ŠEMA VEZIVANJA SENZORA I IZVRŠNOG ORGANA se servisni potprogram koji se nalazi u
programskoj datoteci broj 4. Ovaj
potprogram očitava stanje senzora zapušača koji je vezan za osmi pin ulaznog modula u slotu 1 –
I:1/8. Ukoliko nema zapušača, otvara se opruga koja je vezana za PLC preko nultog pina izlaznog
modula u slotu 2 (O:2/0).
Da bi se omogućio rad DII sistema neophodno je upisati sledeće vrednosti u statusnoj
datoteci
• S: 4 6 = 4 – servisni potprogram je u datoteci broj 4
• S: 4 7 ( S l ot) = 1 – digitalni ulaz je u slotu 1
• S: 4 8 ( M as k ) = 00 0 0 00 01 – testira se bit na nultom pinu
• S: 4 9 ( R ef er e nc a) = 00 00 00 0 1 – događaj nastupa kada je bit na nultom pinu 1
• S: 5 0 ( Pr es et) = 1 – sistem prekida radi kao detektor događaja
• S: 3 3/ 8 = 1 – želi se opsluživanje prekida sa najvećom mogućom brzinom, da se ne bi
propustila nijedna boca
Odgovarajući servisni potprogram prikazan je na Sl. 5-10.
Plc_flow/99

SL. 5-10 SERVISNI POTPROGRAM KOJI OBRAĐUJE REAKCIJU NA DOGAĐAJ

5.6.4. STI – SELECTABLE TIMED INTERRUPT


STI je sistem prekida koji omogućava da se sken ciklus periodično prekida i da se
pri svakom prekidu obradi odgovarajući niz naredbi koji se nalazi u servisnom
potprogramu. Kada se servisni potprogram završi, sken ciklus se nastavlja od momenta u
kome je bio prekinut.
Šematski prikaz izvršavanja STI prekida prikazan je na Sl. 5-11.
Plc_flow/100

DEFINISANJE PERIODE PONAVLJANJA PREKIDA


Sistemom prekida se upravlja pomoću internog časovnika. Periodu ponavljanja
korisnik definiše sam upisivanjem
odgovarajuće vrednosti u statusnoj
Interni STI
časovnik Prog. File 2 Prog. File n datoterci.
(servisni
Prekid potprogram) • S:30 – period – multipl osnovnog
period T takta. Period ponavljanja se dobija
(trenutci ti) kao proizvod sdržaja reči S:30 i
osnovnog takta. Ukoliko se kao
Pamti
multipl upiše 0, sistem prekida je
S:0 mat. indikatori onemogućen.
S:13,14 mat. reg. S:30 T (kxtakt)
S:24 indeks reg. S:31 n • Takt zavisi od tipa procesora
ažurira
TAKT (MS) PERIOD (MS)
interni SLC 5/02 10 10-2550
S:43 t (m x10 s)
časovnik
korisnik
SLC 5/03 TAKT ODREĐEN BITOM S:2/10
S:2/0 S:2/1 S:2/2 S:2/10
S:2/10
STI pending STI enable STI executing
0 - takt =10ms 0 10 10-32760
1 - takt = 1ms
S:5/10 S:36/9 1 1 1-32767
STI timer expires STI lost

SL. 5-11 ŠEMATSKI PRIKAZ IZVRŠAVANJA STI PREKIDA

DEFINISANJE SERVISNOG POTPROGRAMA


• S:31 - broj programske datoteke koja sadrži servisni potprogram. Ukoliko je ovaj broj
nula, prekid je onemogućen.
DETEKCIJA I NAČIN OPSLUŽIVANJA PREKIDA
U trenutku započinjanja programa interni časovnik, smešten na adresi S:43,
otpočinje sa radom. Časovnik radi sa osnovnim taktom od 10μs. Kada časovnik izmeri
vreme koje odgovara periodi odabiranja generiše se signal prekida i otpočinje izvršavanje
servisnog potprograma.
Izvršavanjem STI prekida se može dodatno upravljati pomoću tri posebne naredbe
• STS – selectable timed start
Ukoliko je uslov istinit, ova naredba će
STS
prouzrokovati resetovanje internog časovnika i
uslov Selectable Timed Start
upisivanje podataka o adresi servisnog
File nn potrpograma i perioda prekida u reči S:31 i S:30
Time tt
(čime se briše prethodni sadržaj tih reči). Posle
File – broj servisnog potprograma izvršavanja ove naredbe, STI interni časovnik
Time – period prekida započinje 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 istinit,
ova naredba postavlja STI enable bit S:2/21, čime
se omogućava opsluživanje STI prekida. Kada je
uslov neistinit stanje STI enable bita se ne menja.
To znači da će on, ako je imao vrednost 1 zadržati
tu vrednost sve dok ga naredba STD ne resetuje
na 0.
Potrebno je zapaziti da ova naredba ne utiče na rad internog časovnika, veća
Plc_flow/101

samo na to da li će, kada časovnik imeri zadani interval vremena, biti dozvoljeno
opsluživanje prekida ili ne.
• STD – selectable timed disabled
Ukoliko je uslov istinit ova naredba resetuje
STI enable bit čime se onemogućava izvršavanje
servisnog potprograma. Kada je uslov neistinit
naredba ne menja stanje STI enable bita. Drugim
rečima 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 može prekidati usled STI prekida.
POSTAVLJANJE INTERNIH INDIKATORSKIH BITOVA I REČI
U toku rada, procesor postavlja niz inidkatorskih bitova vezanih za STI prekid čime
se korisniku omogućava da prati način na koji se prekid opslužuje.
• 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 izvršenje (recimo zato što se
izvršavaju prekidi višeg prioriteta, Fault routine ili DII). Ovaj bit se resetuje kada otpočne
izvršavanje servisnog potprograma ili kada je uslov za STS naredbu istinit. Ova vrednost
ostaje 1 ako je izvršavanje servisnog potprograma onemogućeno.
• S:2/1 – STI enable bit – postavljanjem ovog bita na 1 omogućava se opsluživanje
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 neće izvršiti,
već će se samo pending bit postaviti na 1.
STI enable bit se automatski postavlja izvršavanjem STE i STS naredbe, i automatski
resetuje izvršavanjem STD naredbe. U tom slučaju, postavljene vrednosti direktno utiču
na opsluživanje prekida. Međutim, ukoliko se vrednost ovog bita promeni pomoću neke
druge naredbe onda će ta promene da ima efekta tek u sledećem 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 izvršavanje
servisnog potprograma u toku. Kada se servisni potprogram završi 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 obrađuje prethodni, ili je izvršavanje
servisnog potprograma onemogućeno. Interni časovnik nastavlja sa radom. Budući da
postavljanje ovog bita prouzrokuje kod za grešku neophodno je da se on resetuje pre
završetka 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 otpočinjanje opsluživanja
prethodnog prekida. U tom slučaju, novo registrovani prekid neće biti opslužen. Ukoliko
se neželi prekid rada usled greške, ovaj bit treba resetovati pre završetka sken ciklusa.
• S:43 – STI Timer – STI interni časovnik se ažurira svaki put kada nastupa prekid.
Vreme se izražava kao multipl od 10μs. To zapravo znači da PLC ima interni časovnik
koji neprekidno radi sa taktom od 10μs 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 između dva susedna prekida ne prođe više od
0.32767s.
Plc_flow/102

PR. 5-3
ZADATAK
STI prekid treba da radi sa periodom od 10ms. Odrediti vremenski interval koji protekne
između dva poziva servisnog potprograma. Smestiti izmereno vreme u neku datoteku radi kasnijeg
prikazivanja na displeju.
REŠENJE
Proteklo vreme = 32767 - tp + ts Servisni potprogram je formiran u
programskoj datoteci broj 4 (Sl. 5-14). To znači da je
neophodno da se pri inicijalizaciji STI prekida upiše
Interni časovnik (10 s) S:31=4. Budući da STI prekid treba da radi sa
0 32767 periodom od 10ms odabraće 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
Sadašnje Prethodno tada se samo upamti trenutna vrednost časovnika u
vreme (ts<tp) vreme (tp) memorijskoj lokaciji N10:1 i postavi se indikatorski
bit (B3:0/0) koji označava da je prvi prolaz
SL. 5-12 ODREĐIVANJE PROTEKLOG VREMENA završen. U svim sledećim pozivanjima ovog
potprograma oduzima se trenutna vrednost
časovnika (S:45) od prethodne i rezultat se smešta u memoriju na adresu N10:2. Pri tome, ukoliko
je rezultat oduzimanja negativan to znači da je od prethodnog pozivanja interni časovnik napravio
pun krug.(prešao preko 32767) i počeo da broji od 0, tako da se to vreme mora dodati (Sl. 5-12).

SL. 5-13 GLAVNI PROGRAM ZA PRIMER KORIŠĆENJA STI PREKIDA


Plc_flow/103

U delu glavnog programa koji je ovde prikazan (Sl. 5-13) se u prvom prolazu inicijalizuju
indikatorski bit i vrednost rezultata (postavljaju se na nulu). Uz pomoć samoresetujućeg časovnika
se vrednost izračunata u servisnom potprogramu na svakih pola sekunde smešta na memorijsku
lokaciju N10:3.
Potrebno je zapaziti da se isti program može koristiti za detekciju vremena koje proteklo
između dva DII prekida ili I/O prekida s tim što se umesto adrese časovnika S:43 mora koristiti
adresa časovnika koji odgovara tom prekidu (S:44 za I/O, odnosno S:45 za DII)

SL. 5-14 SERVISNI POTPROGRAM KOJI OPSLUŽUJE STI PREKID


Plc_flow/104

5.6.5. I/O PREKID


Neki specijalni U/I moduli imaju
Specijalni
moduli sposobnost generisanja signala prekida.
Ukoliko se ovaj signal detektuje,
Prog. File n
procesor prekida sken ciklus i započinje
Prog. File 2
(servisni opsluživanje odgovarajućeg servisnog
potprogram) potprograma.
Prekid
Specijalni moduli koji se koriste
uz sistema prekida treba da se postave
u početne slotove. Maksimalni broj
slotova za PLC iz familije SLC 5 je 30.
Pamti
S:0 mat. indikatori
Blok šema izvršavanja I/O prekida data
interni ažurira
S:13,14 mat. reg. je na Sl. 5-15
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. 5-15 ŠEMATSKI PRIKAZ IZVRŠAVANJA I/O PREKIDA

DEFINISANJE SERVISNOG POTPROGRAMA


•INT naredba - Prva naredba u prvom rangu servisnog potprograma je INT naredba
koja ukazuje da se radi o potprogramu koji opslužuje
I/O prekid. Ova naredba je informativnog karaktera i
može se izostaviti.
Broj programske datoteke koja sadrži servisni
potprogram mora se upisati u samom specijalnom
modulu za vreme njegove konfiguracije.
DETEKCIJA I NAČIN OPSLUŽIVANJA PREKIDA
Kada specijalni U/I modul generiše signal prekida onda procesor prekida svoj rad i
poziva odgovarajući servisni potprogram na izvršavanje. Ukoliko se u trenutku zahteva za
prekidom izvršava neki prekid višeg prioriteta, onda će se sačekati da se svi prekidi višeg
prioriteta završe pre nego što počne opsluživanje ovog prekida. Na isti način, ukoliko se u
toku opsluživanja prekida pojavi zahtev za nekim prekidom višeg prioriteta (Fault, DII ili
STI), opluživanje se prekida i započinje opsluživanje prekida višeg prioriteta.
Izvršavanjem I/O prekida se može dodatno upravljati pomoću 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 omogućava
opsluživanje prekida koji potiču od strane
specijalnih modula koji se nalaze u datim
slotovima. Kada je uslov neistinit stanje
enable bitova se ne menja. To znači da će
oni, koji su imali vrednost 1 zadržati 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.
Plc_flow/105

Ukoliko je za neki od slotova čiji se prekid omogućava ovom naredbom, postavljen


pending bit (S:25/1 do S:26/14), odgovarajući servisni potprogram će se odmah pozvati
na izvršavanje.
Podatak o slotovima se može zadati na sledeći način
n – ukazuje na slot broj n
m,n,... – ukazuje na slotove m, n itd
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
onemogućava izvršavanje odgovarajućih
servisnih potprograma. Umesto toga,
ukoliko se traži prekid, postaviće se
odgovarajući pending bit. Kada je uslov
neistinit naredba ne menja stanje enable bitova. Drugim rečima 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 može prekidati usled I/O prekida.
POSTAVLJANJE INTERNIH INDIKATORSKIH BITOVA I REČI
U toku rada, procesor postavlja niz inidkatorskih bitova vezanih za I/O prekid čime
se korisniku omogućava da prati način na koji se prekid opslužuje.
•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 odgovarajući
slot aktivan. Ukoliko se pojavi signal prekida sa slota koji nije aktivan, procesor javlja
grešku.
Primedba
I/O Slots enables bitovi (S:11 i S:12) se mogu koristiti i u slučajevima kada se ne
traži prekid. Naime, ukoliko se bilo koji bit postavi na nulu onda se u toku ulaznog i
izlaznog sken ciklusa ne vrši skeniranje slota kome odgovara taj bit (slot nije
aktivan). To nadalje znači da se ni odgovarajući podatak u slici ulaza neće
promeniti, i da se podatak iz slike izlaza neće 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 traži prekid, a izvršavanje tog prekida nije omogućeno. Bit se restuje na nulu
kada se odgovarajući enable bit postavi na 1

• 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 omogućeno
opsluživanje prekida koji dolazi sa odgovarajućeg slota.
• S:32 – I/O Interrupt executing – ova reč sadrži broj slota u komne se nalazi modul koji
je generisao prekid koji se trenutno opslužuje.
Ovaj podatak je veoma koristan kada se više prekida multipleksia u jednom servisnom
potprogramu. koristiti kada se
• S:44– I/O Interrupt Timer – I/O interni časovnik se ažurira svaki put kada nastupa
prekid. Vreme se izražava se kao multipl od 10μs. To zapravo znači da PLC ima interni
časovnik koji neprekidno radi sa taktom od 10μs tako da meri vreme od 0 do 0.32767s.
Plc_flow/106

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.
• RPI – reset pending interrupts naredba
Ovom naredbom može se promeniti
stanje pending bitova.
Kada je uslov istinit ova naradeba
resetuje pending bitove za prekide koji su
izazvali specijalni moduli koji se nalaze u
slotovima definisanim pomoću promenljive
slots. Pri tome, procesor obaveštava
odgovarajuće specijalne module da prekidi koji
su bili traženi neće biti opsluženi. Posle toga modul može da odluči da li će ponovo da
zatraži prekid ili ne. Kada je uslov neistinit, stanje pending bitova se ne menja.
Plc_PID/107

6. NAREDBA ZA REALIZACIJU PROPORCIONOLNO-INTEGRALNO-


DIFERENCIJALNOG ZAKONA UPRAVLJANJA (PID)

6.1. JEDNAČINA PIDA


Kontroler koji realizuje linearne zakone upravljanja – PID - se može formirati
softverski kao poseban modul koji se koristi u leder programu. U principu PID modul
uzima vrednost analognog signala sa nekog mernog mesta i korišćem proporcionlno
integralno diferencijalnih zakona upravljanja, izračunava upravljački signal, koji se preko
analognog izlaznog modula prenosi na izvršni organ. Ukoliko to struktura izvršnog organa
zahteva, analogni izlazni signal se može 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 izvršava tako
što seobavi jedan korak diskretnog algoritma PIDa.
U skladu sa teroijom direktnog digitalnog upravljanja, PID naredba se mora
izvršavati periodično, sa nekom zadanom peridom odabiranja. Periodičan rad može
realizovati sam PID modul ukoliko se konfiguriše na odgovarajući način. Pored toga,
periodičnost se može ostvariti i pomoću vremenski uslovljenog sistema prekida (STI). U
tom slučaju PID naredba se mora postaviti u STI servisni potprogram, tako da se ulaz i
izlaz PIDa ažuriraju svaki put kada se ovaj potprogram izvršava. Samo se po sebi razume
da perioda izvršavanja STI potprograma i perioda sa kojom radi PID moraju biti iste.
Potrebno je uočiti razliku između periodičnog programskog sken ciklusa sa kojim
se obrađuju sve naredbe i periodičnog izvođenja algoritma diskretnog PIDa kod koga se
jedan algoritamski korak izvodi unutar jedne periode odabiranja. U prvom slučaju radi se
zapravo o cikličnom ponavljanju niza operacija pri čemu dužina trakanja pojedinog ciklusa
zavisi od više faktora. Otuda se ciklus ne ponavlja periodično u striktnom smislu značenja
te reči. Za razliku od sken ciklusa, jedan algoritamski korak PID se mora ponavljati sa
tačno definisanom periodom.
PID naredba realizuje diskretizovani algoritam lineranih zakona upravljanja (Sl.
6-1)
⎡ 1
t ⎤
u( t ) = K p ⎢1 + ∫ e( τ)dτ + Td f ( y )⎥ + of
⎢⎣ Ti 0 ⎥⎦
gde je
of • u(t) - upravljački signal (CV
– control value)
+
rt + et
PI
+ + ut
• e(t) = r-y(t) - signal greške
- - koji predstavlja razliku
Nisko yt referentne vrednosti - r (SP –
propusni Gd KpTd set point) i izmerene
filter
vrednosti izlaza procesa - y
f(y) (PV – process variable)
f (y) – je funkicija koja

SL. 6-1 BLOK DIJAGRAMA PIDA 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
propušta kroz nisko propusni filtar čija je učestanost odsecanja 16 puta (za dve oktave)
veća od prelomne učestanosti diferencijalnog filtra (N/Td) (Sl. 6-1).
Interesanto je napomenuti da proizvođač ne daje podatke o prelomnoj učestanosti
Plc_PID/108

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 znači da je njen izvod nula), pa se diferencijalno dejstvo
primenjuje samo na izlaz procesa. Na ovaj način izbegavaju se problemi koji mogu nastati
kod diskrente realizacije PIDa usled nagle promene zadanih vrednosti. Ukoliko zadana
vrednost nije konstanta, postoji mogućnost i da se, u toku konfiguracije PID modula,
specificira zahtev da diferencijalno dejstvo obrađuje signal greške.
• of (off set) – signal kojim se uspostavlja stacionarno stanje izvršnog organa ili signal
prenosnog upravljanja (feedforward) kojim se želi kompenzacija dejstva poremećaja
(posebno izraženo kod značajnog transportnog kašnjenja)
• K p - bezdimenziona konstanta proporcionalnog dejstva koja se kreće u sledećim
vrednostima
0.1 do 25.5 (SLC 5/02)
0.01 do 327.67 (SLC 5/03 i višim)
• T i - konstanta integralnog dejstva koja se zadaje u jedinicama minut/obrt i kreće se u
sledećim vrednostima
0.1 do 25.5 min/obrt (SLC 5/02)
0.01 do 327.67 min/obrt (SLC 5/03 i višim)
• T d - konstanta diferencijalnog dejstva koja se zadaje u jedinicama minuta
0.1 do 25.5 min (SLC 5/02)
0.01 do 327.67 min (SLC 5/03 i višim)

6.2. SKALIRANJE MERNIH I UPRAVLJAČKIH SIGNALA


Ulazni signali koje obrađuje PID, kao i upravljačka promenljiva koju on izračunava
mogu predstavljati različite fizičke signale koji se kreću u različitim opsezima. Budući da
se ulazni (merni) signali dobijaju preko analognog ulaznog modula oni će, posle
konverzije, biti predstavljeni kao celobrojne veličine u opsegu koji zavisi od tipa signala
koji se dovodi na ulaz A/D konvertora.
PID modul modul realizuje algoritamski korak korišćenjem celobrojne aritmetike,
odnosno aritmetike fiksnog zareza. To znači da su, sa aspekta programske realizacije
PID modula, sve ulazne i izlazne promenljive celobrojne vrednosti. Imajući u vidu dužinu
reči SLCa ove celobrojne vrednosti se kreću u opsegu od 0 do 16383.
Nesumnjivo je da je za korisnika izuzetno zametno da prati ponašanje PIDa
očitavanjem ovih celobrojnih vrednosti koje, same po sebi, ništa ne govore o samom
fizičkom procesu kojim se upravlja. Drugim rečima, korisniku je mnogo pogodnije da prati
rad PIDa ukoliko su sve promenljive izražene u fizičkim (inžinjerskim) jedinicama. Ovu
konverziju PID može sam da obavi ukoliko se, pri konfiguraciji modula, definišu minimalne
i maksimalne vrednosti fizičkih signala.
Konačno, sledeći uobičajenu inžinjersku praksu, vrednost upravljačkog signala
PID modula se prikazuje u procentima od pune vrednosti, što znači da u ovom slučaju
vrednosti od 100% odgovara celobrojna konstanta 16383. Drugim rečima, polazi se od
predpostavke da svaki realni izvršni organ ima zasićenje, odnosno da postoji neka
maksimalna aktivnost koju on može da obavi i koja predstavlja 100% njegove aktivnosti.
Potrebno je da se istakne da čak i ako se od PIDa zahteva konverzija signala u
fizičke jedinice, samo izračunavanje se i dalje obavlja u celobrojnoj aritmetici. Konverzija
se vrši samo u komunikaciji sa korisnikom (zadavanje reference i očitavanje upravljačkog
signala).
U skladu sa svime što je rečeno, 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 odgovarajuća A/D ili D/A
konverzija koriste celobrojne vrednosti koje su izvan opsega PID modula. Međutim, čak i
Plc_PID/109

ako to nije slučaj, skaliranjem će se dobiti ispravna konverzija u fizičke jedinice. Naime,
definisane minimalne i maksimalne vrednosti fizičkih 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 pomoću 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. Međutim, ako su vrednosti koju daje A/D
konvertor izvan opsega PID modula, ili ako se želi da PID obavlja konverziju u fizičke
veličine, neophodne je da se ove vrednosti skaliraju na puni opseg PID modula. Samo
skaliranje se može obaviti pomoću odgovarajućih SCP ili SCL programskih naredbi.
• ulaz naredbe: celobrojna vrednost koju daje A/D konvertor (y)
• izlaz naredbe: celobrojna promenljiva s (PV)
s -s
• SCP naredba s = max min (y - y min ) + smin
y max - y min
Rate
• SCL naredba s= y + offset
10000
Parametri konverzije za standardne tipove strujnih i naponskih ulaznih signala dati
su u tabelama T. 6-1 i T. 6-2.
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. 6-1 PARAMETRI ZA SKALIRANJE STANDARDNIH ULAZNIH I IZLAZNIH SIGNALA POMOĆU SCP NAREDBE

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. 6-2 PARAMETRI ZA SKALIRANJE STANDARDNIH ULAZNIH I IZLAZNIH SIGNALA POMOĆU SCL NAREDBE

PR. 6-1 – KONVERZIJA MERNOG SIGNALA


0 0
Merni signal temperatura u opsegu od tmin=-50 C do tmax=1000 C se meri pomoću
instrumenta koji daje strujni signal u opsegu od imin=4mA do imax=20mA . Odgovarajući strujni signal
će posle pijema u analognom modulu i A/D konverzije biti predstavljen celobrojnom vrednošću u
opsegu
ymin = (16383/20)×4=3277 do ymax = 16384
Dobijena celobrojna vrednost treba da se, pomoću posebne programske naredbe SCP ili
SCL, skalira na puni opseg smin=0, smax=16383. Ako se, međutim, u PID naredbi definišu minimalna
i maksimalna vrednost fizičkih veličina tmin i tmax, tada će sama PID naredba obaviti dalju konverziju
ove celobrojne vrednosti u vrednost izraženu u fizičkim jedinicima prema relaciji
Plc_PID/110

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

SKALIRANJE UPRAVLJAČKOG SIGNALA


PID modul generiše upravljački signal kao celobrojnu promenljivu u opsegu (0,
16383). Ako je ova promenljiva u opsegu koji prima D/A konvertor, ona se može direktno
da koristi kao ulaz za D/A konvertor. Međutim, ako je promenljiva van opsega, ili ako se
želi konverzija u fizičke jedinice, promenljiva mora da se skalira na opseg D/A konvertora.
Skaliranje se može obaviti pomoću odgovarajućih SCP ili SCL programskih naredbi.
• ula z naredbe: izračunati upravljački signal c (CV), (celobrojna vrednost koju daje
PID modul)
• i zla z naredbe: celobrojna vrednost koja se void na D/A konvertor - u
u -u
• SCP naredba u = max min (c - c min ) + u min
c max - c min

Rate
• SCL naredba u= c + offset
10000
Parametri konverzije za standardne tipove strujnih i naponskih izlaznih signala dati
su u tabelama T. 6-1 i T. 6-2.

6.3. PID NAREDBA


U principu ova naredba se stavlja
bez ikakvog uslova, što znači da se
izvršava pri svakom programskom sken
ciklusu. Važno je napomenuti da to ne
znači da se i pri svakom sken ciklusu
obavlja izračunavanje jednog algoritamskog
koraka. Kao što je već rečeno
izračunavanje koraka vrši se u skladu sa
periodom odabiranja. Ukoliko se međutim, u rangu postavi uslov, onda sve dok je on
neistinit izlaz PID bloka zadržava poslednju izračunatu vrednost. Pri prelazu sa istinitog na
neistinit vrednost integralnog dejstva se resetuje na nulu.
Sve promenljive koje učestvuju u realizaciji ove naredbe moraju biti celobrojne.
Ukoliko se kao neki od parametara naredbe definiše promenljiva sa pokretnim zarezom,
doći će automatski do njenog pretvaranja u celobrojnu promenljivu.
• Control block – je adresa upravljačke datoteke koja sadrži podatke neophodne za
izvođenje naredbe. Datoteka treba da se definiše kao celobrojna (N) i ima dužinu od 23
reči. Tako, na primer, ako se kao adresa definiše N10:0, onda će upravljački blok
zauzeti reči od N10:0 do N10:22.
• Process var iable – je adresa promenljive koja sadrži vrednost izmerenog izlaza
procesa. Kao što je već rečeno, ova adresa može biti adresa reči u koju se smešta
podatak sa analognog ulaza, odnosno rezultat A/D konverzije. Naravno, ukoliko se želi
skaliranje izmerenog analognog signala u cilju njegovog prilagođavanja datom opsegu ili
pretvranja u fitičke jedinice, onda je to adresa celobrojne promenljive u koju se smešta
rezultat skaliranja signala, koji se može kretati u opsegu od 0 do 16383.
• Control variable – je adresa promenljive u koju se smešta rezultat izračunavanja
jednog koraka PID algoritma. Ova vrednost kreće se u opsegu od 0 do 16383, pri čemu
vrednost od 16383 odgovara maksimalnoj vrednosti koju izvršni organ može da primi
(100% aktivnosti izvršnog organa). Izračunata vrednost se, po pravilu, pri smeštanju u
Plc_PID/111

adresu reči iz koje se dobija podatak za ananalogni izlaz (D/A konvertor) skalira na puni
opseg D/A konvertora.
• Def inisanje načina r ada – Control block Nn:0
Kao što je već rečeno Control block zapravo definiše sve promenljive neophodne
za realizaciju algoritma. On obuhvata 23 reči, od kojih svaka ima jasno definisano
značenje. Strukutra bloka prikazana je u tabeli T. 6-3.
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
DEFINIŠE SC SE POSTAVLJA NA NULU), KORISTI SE KAD SE
REČ 8 SETPOINT MIN SCALED (SMIN) IZMERNA VREDNOST PRETVARA U FIZIČKE JEDINICE

CELOBROJNA VREDNOST: 0 DO SMAX ILI 0 DO 32767


DEADBAND DEFINIŠE OPSEG OKO SP (GDE SE SMATRA DA JE GREŠKA 0)
REČ 9
(MRTVA ZONA) KAD GREŠKA UĐE U TAJ OPSEG I PROĐE 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, OČITAVA SE U
(SPV)
FIZIČKIM JEDINICAMA

CELOBROJNA VREDNOST: −32767 DO 32767, NE MOŽE DA SE


REČ 15 SCALED ERROR (SE) DEFINIŠE, VEĆ SE SAMO OČITAVA
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 MOŽE SE DEFINISATI,
REČ 16 OUTPUT CVP (%)
VEĆ SAMO OČITAVATI
PRI RUČNOM UPRAVLJANJU (AM=1) AŽURIRA SE AUTOMATSKI

REČ 17 MSW INTEGRAL SUM CELOBROJNA PROMENLJIVA (32 BITA - DVE REČI):
DO ± 2 174 483 648, UKUPNA VREDNOST INTEGRALNOG DEJSTVA,
REČ 18 LSW INTEGRAL SUM AŽURIRA SE AUTOMATSKI PRI RUČNOM UPRAVLJANJU

REČ 19 INTERNA UPOTREBA

REČ 20 INTERNA UPOTREBA

REČ 21 INTERNA UPOTREBA

REČ 22 INTERNA UPOTREBA

T. 6-3 STRUKTURA CONTROL BLOCK-A


Plc_PID/112

Ako se definiše skaliranje (zadaju se SMAX i SMIN) onda se sve veličine vezane
za proces (Setpoint, Deadzone, SPV, SE) izražavaju u fizičkim jedinicama.
Pojedini bitovi u prvoj reči bloka služe za definisanje načina rada PIDa, a pojedini
pružaju informacije o radu PIDa.
BITOVI KOJIMA SE DEFINIŠE NAČIN RADA PID-A
• Način pozivanja (obr ade signala) – Bit TM (Nn:0/0)
TM = 1 ⇒ izračunavanje se vrši periodično sa vrednošću definisanom pomoću Loop
Update
TM= 0 ⇒ izračunavanje je kontrolisano pomoću prekida (STI potprogram mora imati isti
period ponavljanja kao i Loop Update koji se mora definisati)
Ključna razlika je u tome što se u prvom slučaju u svakom programskom skenu
obrađuje PID naredba (ako je uslov istinit) i tek se tada ustanovljava da li je vreme da se
izvrši novi algoritamski korak. Međutim, kod korišćenja STI, PID naredba se uopšte ne
obrađuje sve dok se ne aktivira STI servisni potprogram, odnosno sve dok nije vreme za
izvršavanje sledećeg algoritamskog koraka.
• Ručno i automatsko upravljanje – Bit AM (Nn:0/1)
AM = 0 ⇒ automatski način rada, upravljanje se određuje na osnovu algoritma. Čak i
ako bi se vrednost upravljačke promenljive programski promenila, algoritam će ignorisati
ovu promenu.
AM = 1 ⇒ ručno upravljanje, upravljački signal je promenljiva čija vrednost se može
programski menjati. (CV vrednost treba da se zadaje kao celobrojna promenljiva od 0
do 16383). Za vreme ručnog upravljanja, PID algoritam ažurira CVP (reč 16), određuje
grešku i ažurira integralnu komponentu urpavljanja, da bi se sprečio udar pri promeni
režima rada.
Pored eventualnog dovođenja procesa u radnu tačku, ova opcija je korisna u
procesu podešavanja parametara PIDa.
• Greška – Bit CM ( Nn:0/2)
CM = 0 ⇒ signal greške se izračunava kao razlika set-point i vrednosti izlaza procesa
(e = SP − PV)
CM = 1 ⇒ signal greške se izračunava 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 greške
Postavljanjem diferencijalnog dejstva po izlazu izbegavaju se efekti nagle promene
upravljačkog signala pri promeni zadane vrednosti
• Skalir anje vrednost i parametara K p i T i – Bit RG (Nn: 0/4)
RG = 0 ⇒ vrednosti parametara izračunavaju se deljenjem zadane celobrojne vrednosti
sa 10
RG = 1 ⇒ vrednosti parametara izračunavaju se deljenjem zadane celobrojne vrednosti
sa 100
Ukoliko vrednosti parametara nisu velike (manje od 327.67) korišćenjem ove
opcije (RG=1) ostvaruje se veća preciznost u definisanju parametara (manja razlika
između dve uzsatopne digitalne vrednosti parametara).
Ova opcija nije predviđna za diferencijalno dejstvo zato što njegova vrednost
nikada nije izuzetno velika.
• Kontrola navijanja integratora – Bit OL (Nn:0/3)
OL = 0 ⇒ nema nikakvih ograničenja u pogledu rasta integralnog dejstva, a time i cele
upravljačke promenljive
Plc_PID/113

OL = 1 ⇒ kada upravljačka promenljiva dostigne vrednost zadanih granica, prekida se


izračunavanje integralnog dejstva i ono se zadžava na poslednjoj izračunatoj vrednosti.
Integralno desjtvo se ponovo uključuje kada upravljački signal padne ispod zadanih
granica. Sve dok je signal izvan zadanih granica upravljački signal ima vrednost CVL
(donja granica) ili CVH (gornja granica).
U oba slučaja, ukoliko upravljački signal izađe izvan granica postaviće se
indikatorski bit LL=1 (prekoraćenje donje granice), odnosno UL=1 (prekoraćenje gornje
granice).
• Skalir anje Set point-a – Bit SC (Nn:0/ 5)
SC = 0 ⇒ specificirano je skaliranje Setpoint-a (konverzija u fizičke jedinice), odnosno
definisani su SMAX i SMIN
SC = 1 ⇒ nije definisano skaliranje Setpoint-a.
BITOVI KOJI PRUŽAJU INFORMACIJE O PIDA
• Greška unutar mrtve zone – Bit DB (Nn:0/8)
DB = 0 ⇒ greška nije unutar mrtve zone
OL = 1 ⇒ signal greške je prošao kroz nulu i njegova vrednost je unutar opsega mrtve
zone, što znači da algoritam usvaja da je vrednost greške nula. Otuda, se upravljački
signal ne menja, te vrednost izlaza procesa ostaje u opsegu koji je određen
definisanjem mrtve zone. Na ovaj način moguće je kontrolisati meru do koje se izlaz
procesa želi približiti zadanoj vrednosti referentnog signala (setpoint-a).
• Upravljački signal veći od gornje granice – Bit UL (Nn:0/ 9)
UL = 0 ⇒ upravljački signal je manji od gornje granice (CVH)
UL = 1 ⇒ upravljački signal je veći od gornje granice (CVH), resetovaće se kad bude
pao ispod gornje granice
• Upravljački signal m anji od donje granice – Bit LL ( Nn:0/10)
LL = 0 ⇒ upravljački signal je veći od donje granice (CVL)
LL = 1 ⇒ upravljački signal je manji od donje granice (CVL), resetovaće se kad bude
postao veći od donje granice
• Setpoint izvan opseg a – Bit SP (Nn:0/11)
SP = 0 ⇒ setpoint je unutar opsega definsanog sa SMIN i SMAX
SP= 1 ⇒ setpoint je manji od SMIN ili veći 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 veći od SMAX. U tom slučaju vrednost
izlaza se postavlja na SMIN ili na SMAX (što odgovara celobrojnim vrednostima 0 i
16383)
• Premala per ioda odabiranja – Bit TF (Nn:0/6)
TF = 0 ⇒ scen ciklus PLCa i zahtevani period PIDa su usklađeni
TF= 1 ⇒ PID ne može da ostvari zahtevani period izračunavanja, zato što sken ciklus
PLCa predugo traje
BITOVI KOJI PRUŽAJU INFORMACIJE O IZVRŠAVANJU PID NAREDBE
• Aktivnost PI D naredbe – Bit EN ( Nn:0/15)
EN = 0 ⇒ uslov u rangu PID naredbe nije ispunjen
EN= 1 ⇒ uslov u rangu PID nardbe je ispunjen
• Završetak algorit amskog koraka – Bit DN (Nn:0/13)
DN = 0 ⇒ PID nije završio algoritamski korak (ili ga nije ni započinjao)
Plc_PID/114

DN = 1 ⇒ PID je u datom sken ciklusu bio aktiviran i završio je jedan algoritamski


korak. Resetuje se automatski kad počne sledeći sken ciklus PLCa.

Iz same definicije reči


i bitova u upravljačkom bloku
jasno je da neke od njih
moraju da se unapred
definišu. To se postiže
jednostavnim otvaranjem
prozora u koji se upisuju
podaci (Sl. 6-2). Sve ove
vrednosti kojima se definiše
način rada PID-a, mogu se
menjati i u toku izvođenja
programa navođenjem
odgovarajućih adresa
promenljivih. U istom
prozoru mogu se i očitavati
vrednosti pojednih reči ili
bitova koje se postavljaju u
toku izvršavanja
SL. 6-2 MASKA ZA DEFINISANJE UPRAVLJAČKOG BLOKA
programa.

KODOVI ZA GREŠKE PRI IZVRŠAVANJU PID NAREDBE


Ukoliko u toku izvođenja PID naredbe dođe do neke greške javlja se kod za
grešku 0036. Svakoj vrsti greške pridružen je jednoznačan kod dužine 1 bajta koji je
smešten u drugoj reči Control block-a (Msbyte). Kodovi grešaka, kao i moguće reakcije u
cilju njihovog uklanjanja prikazani su u tabeli T. 6-4.

Kode
Uzrok greške Moguća reakcija da se greška ukloni
grešeke
SLC 5/02 SLC5/03 i više SLC 5/02 SLC5/03 i više
11H 1. T > 255 1. T > 1024
Vrati T u granice
2. T = 0 2. T = 0
12H Kc > 255 ili Kc = 0 Kc < 0 Vrati Kc u granice
13H Ti > 255 Ti < 0 Vrati Ti u granice
14H Td> 255 Td < 0 Vrati Td u granice
21H
Smax> 16383 ili Smax< -16383 Vrati Smax u granice
5/02
22H
Smin> 16383 ili Smin< -16383 Vrati Smin u granice
5/02
22H Smin> Smax Popravi odnos Smin i Smax
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 kod za grešku,
0 < SP< 16383
ali koristi prethodnu SP
Nije izabrano
Izabrano skaliranje Nije izabrano skaliranje Izabrano skaliranje
skaliranje
41H DB< 0 ili . DB> postavi postavi
Deadband< 0 ili
(Smax –Smin) ili 0 < deadband<(Smax - 0 < deadband<
Deadband> 16383
DB> 16383 (5/02) Smin)< 16383 16383
51H CVH< 0 ili CVH> 100 Vrati CVH u granice
52H CVL< 0 ili CVL> 100 Vrati CVL u granice
53H CVL > CVH Popravi odnos CVL I CVH
SLC 5/02 – PID se prekida po drugi put (PID je Postoje bar tri PIDa u programu (jedan u glavnom programu,
60H bio prekinut nekim signalom U/I prekida, koji je jedan u U/I prekidu i jedan u STI prekidu). Program se mora
onda prekinut pomoću STI prekida) promeniti da bi se izbegle ugneždene PID petlje.
T. 6-4 KODOVI GREŠAKA KOJE MOGU NASTATI PRI KORIŠĆENJU PID MODULA
Plc_PID/115

6.4. PRIMERI KORIŠĆENJA PIDA


PR. 6-2 SKALIRANJE
ZADATAK
PID upravlja snagom grejača koji zagreva vazduh u nekoj komori. Temperatura u komori
o o
može da se menja u opsegu tmin = 5 C do tmax=80 C. 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 grejačem prima strujni signali u opsegu 4 do 20mA, koji dolazi sa
analogni izlazni u slotu 2.
o
PID radi sa periodom od 100ms i treba da održava temepraturu na 20 C.
Napisati STI servisni potprogram koji realizuje PID.
REŠENJE
Servisni potprogram prikazan je na Sl. 6-3. Pri tome su svi neophodni parametri definisani
na sledeći način.
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 upravljački blok, adresa N10:0 (Izgled maske dat je na )

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

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


Plc_PID/116
Plc_PID/117

SL. 6-3 SERVISNI POTRPOGRAM KOJI U KOME SE REALIZUJE PID

SL. 6-4 IZGLED MASKE PRI DEFINISANJU PID NAREDBE


Plc_PID/118

PR. 6-3 - GENERISANJE ŠIRINSKI MODULISANOG IMPULSA


ZADATAK
Formirana je PID naredba koja generiše upravljački signal za neki izvršni organ koji prima
širinski modulisane impulse. Izvršni 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 smešten je na adresi
N7:1, upravljačka promenljiva smeštena je na adresi N7:2.
Perioda odabiranja PIDa je T=10s.
Formirati leder program koji će na osnovu upravljačkog signala koji daje PID generisati
širinski modulisane module.
REŠENJE
Servisni potprogram prikazan je na Sl. 6-6.
Generisani širinski modulisani impuls treba da ima izgled kao na Sl. 6-5 , gde u predstavlja
vrednost upravljačke promenljive svedene na procenat od periode odabiranja T.
Budući da PID daje upravljački signal (c) kao celobrojnu promenljivu u opsegu od 0 do
16383, to znači da veličini c=0 odgovara upravljanje u=0, a veličini c=16383, upravljanje u=T.
Otuda se konverzija upravljačkog signala vrši prema relaciji
cT
u=
16383
Izlazni signal generiše se pomoću samoresetujućeg č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 veće od u, na izlaz časovnika se dovodi vrednost 0.
Pošto se PID naredba nalazi u samom leder programu, on mora sam generisati periodu
odabiranja (timed mode) što znači da se u upravljačkom bloku bit TM (N10:0/0) mora postaviti na
1.

SL. 6-5 ŠIRINSKI MODULISAN UPRAVLJAČKI SIGNAL


Plc_PID/119

SL. 6-6 REALIZACIJA ŠIRINSKI MODULISANOG IMPULSA NA OSNOVU IZLAZA PIDA


Plc_PID/120

PR. 6-4 RUČNI REŽIM RADA


ZADATAK
Jedan PID modul definisan je preko upravljačkog bloka koji se nalazi na adresi N7:10. PID
prima procesnu promenljivu (PV) sa adrese N7:0 i generiše upravljačku promenljivu na adresi N7:1
(CV).
Izbor između ručnog i automatskog režima rada obavlja se pomoću dvopoložajnog
prekidača. Položaj prekidača koji označava automatski režim rada vezan je preko prvog pina
digitalnog ulaznog modula, koji se nalazi u slotu 2, dok je položaj koji označava ručni režim vezan
za drugi pin istog modula.
Ručno upravljanje generiše se pomoću jednog trocifrenog BCD digitalnog davača koji je
vezan je za prvih 12 pinova digitalnog ulaznog modula koji se nalazi u slotu 1. (Preostali pinovi tog
modula se ne koriste). Ručno upravljanje se zadaje kao procenat od maksimalne aktivnosti
izvršnog organa (u opsegu od 0 do 100). Izvršni organ je tako odabran da prima stvarni, apsolutni
iznos upravljanja.
Zahtev za očitavanje stanja na davaču vrši se pritiskom na taster koji je vezan za nulti pin
digitalnog ulaza u slotu 2.
Formirati deo leder programa koji realizuje ručno upravljanje.
REŠENJE
Program kojim se realizuje promena režima rada prikazan je na
Svaki put kad se pritisne taster podatak sa BCD davača se konvertuje u celobrojnu
promenljivu c i smešta na adresu N7:2. Ukoliko je zadana vrednost u dozvoljenom opsegu, na
osnovu nje se izračunava stvarna apsolutna vrednost ulaza izvršnog organa u. Konverzija se vrši
prema relaciji
16383
CV = c
100
Dobijena vrednost se smešta kao CV na odgovarajuću adresu PID modula. Predpostavlja
se, naime, da se u preostalom delu leder programa nalaze naredbe koje će, nezavisno od režima
rada PIDa, ovu vrednost skalirati u skladu sa odabranim analognim izlaznim modulom i obezbediti
smeštanje rezultata na izlaznu adresu koju određuje analogni izlazni modul.
Ukoliko je vrednost izvan opsega postavlja se indikatorski bit.
Potrebno je zapaziti da se, i pored toga što je PID u ručnom režimu rada, on aktivira u
skladu sa periodom odabiranja. Tom prilikom on koristi vrednost upravljačke promenljive (CV) za
ažuriranje procentualne vrednosti upravljačke promenljive (CVP -reč 16 upravljačkog bloka),
određivanje signala greške i ažuriranje integralnog dejstva (reči 17 i 18 upravljačkog bloka).
Plc_PID/121

SL. 6-7 REALIZACIJA ŠIRINSKI MODULISANOG IMPULSA NA OSNOVU IZLAZA PIDA


122
Plc_comnaredbe_SLC/123

7. NAREDBE ZA KOMUNIKACIJU SLCA

7.1. NAREDBE ZA RAD SA ASCII KARAKTERIMA


Postoje dve vrste naredbi za rad sa ASCII karakterima.
NAREDBE ZA UPRAVLJANJE KOMUNIKACIONIM KANALOM
Ove naredbe se koriste za prenos podataka preko komunikacionog kanala. Pri
tome da bi se one mogle izvršavati, konfiguracija sistema mora biti postavljena na user
mode. Izuzetak su naredbe za prenos podataka (upisivanje) mogu da rade i kada je kanal
konfigurisan kao system mode. Podsetimo se da se konfiguracija može inicijalno
definisati, ali i dinamički menjati u toku rada.
U principu kada neka od ovih naredbi postane aktivna u programu ona se
postavlja u red čekanja i neće biti izvršena dok se ne završi prethodna naredba koja se
nalazi u redu. Procesor, međutim, ne čeka na izvršavanje naredbe, već nastavlja sa
skeniranjem leder programa.
NAREDBE ZA MANIPULACIJU NIZA KARAKTERA (STRING)
Ovim naredbama se formira niz karaktera koji će se prenositi preko mreže.
Naredbe se izvršavaju odmah, čim uslov u leder programu postane istinit.

Pri radu sa ASCII karakterima mogu se korstiti ASCII datoteka ili String datoteka.
• ASCII datoteka – A (samo SLC 5/04 i 5/05)
Ova datoteka
sadrži elemente dužine
jedne reči koji se mogu
adresirati na nivou
SL. 7-1 ELEMENT ASCII DATOTEKE elementa ili pojedinog bita.
Elemenat sadrži bajtove
ASCII karaktera.
• String datoteka – ST (SLC 5/03, 5/04 i 5/05)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Datoteka sadrži
Reč 0 Dužina niza u datoteci (Length) elemente čija je dužina
Reč 1 Drugi bajt Prvi bajt najviše 42 reči (84
Reč 2 Sledeća dva bajta karaktera, odnosno 84
Reč 3 Sledeća dva bajta bajtova) i može se
. adresirati na nivou
..
elementa, reči ili pojedinih
Reč 42 Poslednja dva bajta bitova u reči.

SL. 7-2 ELEMENT STRING DATOTEKE

UPRAVLJAČKA DATOTEKA
ASCII naredbe
koje koje se koriste pri
prenosu podataka
zahtevaju dodatne
informacije koje se
SL. 7-3 IZGLED JEDNOG ELEMENTA UPRAVLJAČKE DATOTEKE ZA ASCII smeštaju u upravljačku R
NAREDBU datoteku čiji element ima 3
reči. R datoteka se
generiše automatski pri kreiranju ASCII naredbi za čiji rad je ona neophodna.
Plc_comnaredbe_SLC/124

Bitovi u prvoj reči elementa imaju sledeće značenje


• Bit 15 – EN – enable – postavlja se na 1 kada se uslov menja sa neistinit na istinit.
Ostaje postavljen sve dok se naredba ne izvrši ili se ne signalizira greška
• Bit 14 – EU – queue – postavlja se na 1 kada se naredba stavi u red. Ova akcija može
biti zakašnjena u slučaju da je red pun (ima mesta za najviše 16 naredbi)
• Bit 13 – DN- asynchronous done – postavlja se u trenutku kada se naredba izvrši
(nezavisno od programskog skena)
• Bit 12 – EM – synchronous done – postavlja se u programskom sken ciklusu, pri
obrađivanju odgovarajućeg ranga, ukoliko je naredba izvršena (odnosno DN bit
postavljen)
• Bit 11 – ER – error – postavlja se na 1 ukoliko je došlo do greške u toku izvršavanja
naredbe
• Bit 10 – UL – unload – zaustavlja operaciju pre odpočinjanja (ako je u redu čekanja) ili
u toku izvođenja; kada se ovaj bit (progrmaski spolja) postavi na 1, svi podaci koji su
dotle obrađeni će biti prosleđeni odredištu, ali se preostali podaci neće obrađivati.
Naredba se ne pomera iz reda, već se samo neki podaci ne obrađuju
• Bit 9 – IN – running – ukazuje da se naredba u redu čekanja izvršava
• Bit 8 – FD – found – ukazuje da je naredba naišla na internu oznaku za kraj niza
karaktera (end-of-character) koji označava da je cela poruka primljena ili na termination
character (koji je specificiran pri konfigurisanju kanala).

7.1.1. ASCII NAREDBE ZA MANIPULACIJU KARAKTERIMA


Većina naredbi za manipulaciju karaktera su naredbe akcije koje se izvršavaju
ukoliko je uslov istinit. Samo jedna naredba je naredba uslova.
KONVERZIJA: NIZ PODATAKA – CELOBROJNA VREDNOST
• ACI – ASCII string to integer – konverzija niza numeričkih karaktera u celobrojni
podatak između (-32768 i 32767)
Ukoliko je uslov istinit, započinje
pretraživanje niza koji se nalazi na adresi source,
sve dok se ne pronađe prvi ASCII karakter koji
predstavlja cifru. Ona se izdvoji i zatim se
izdvajaju svi sledeći karakteri koji predstavljaju
cifre dok se ne naiđe na karakter koji nije cifra ili se naiđe na karakter koji označava kraj
niza. Broj koji čine ovako sakupljeni karakteri se onda konvertuje u celobrojni podatak i
smešta na adresu definisanu kao dest.
Ukoliko je dužina stringa izvan dozvoljenog opsega (0 – 82) postavlja se ASCII
error bit (S:15/5), dok se kao celobrojna vrednost postavlja 32,767.
Niz može sadržavati predznak (+ ili -) i zapetu. Samo negativni predznak se
prikazuje u rezultatu.
Pri izvođenju naredbi postavljaju se i aritmetički bitovi u Status registru.
• AIC – Integer to ASCII string – pretvara celobrojnu vrednost u opsegu (-32768, 32767)
u niz numeričkih karaktera.
Celobrojna vrednost može biti konstanta
ili promenljiva i nalazi se na adresi određenoj kao
source. Svaka cifra se konvertuje u odgovarajući
ASCII karakter. Rezultat operacije je string
elemenat koji se smešta na adresu dest.
Plc_comnaredbe_SLC/125

EKSTRAKCIJA I DOPUNJAVANJE PODATAKA


• AEX – ASCII string extract – formiranje
novog niza od početnog
Ukupno nd karaktera počev od
karaktera ni iz string elementa definisanog
adresom source se smešta kao novi string
elemenat koji se smešta na adresu dest.
Podaci nd i ni se mogu zadati kao konstante ili
celobrojne promenljive.
Error bit se postavlja ukoliko je dužina
stringa izvan opsega, ukoliko su nd i ni izvan definisane dužine stringa, ili ako je ni veći od
dužine stringa. U tom slučaju odredišni string se ne menja.
Ukoliko je ni+nd veći od dužine stringa, odredišni string se menja, a error bit se ne
postavlja.
• ACN - ASCII string concatenate – povezivanje dva niza
String elementi definisini kao source A i
source B se nadovezuju jedan na drugi i
formiraju string elemenat koji se smešta na
adresu definisanu sa dest.
Samo prvih 82 karaktera se smešta na
odredište. Ako oba niza zajedno imaju više od
82 karaktera postavlja se error bit.

PRETRAŽIVANJE I POREĐENJE
•ASC – ASCII string search – traženje
zadatog niza
Ispituje da li se u string elementu
definisanom sa string search nalazi niz
definisan u string elementu na adresi source i
to počev od karaktera čiji je redni broj određen
kao index. (Index=1 ukazuje na prvi levi
karakter u string elementu source).
Ukoliko se pronađe niz u rezultat se
upisuje redni broj karaktera u elementu string search od koga počinje slaganje. Ako se ne
ustanovi slaganje, rezultat je nula.
Error bit se postavlja ako je dužina stringa izvan dozvoljenog opsega ili ako je
indeks izvan opsega ili veći od dužine source stringa. Rezultat se u tom slučaju ne menja.
• ASR – ASCII string compare – poređenje dva niza podataka
Naredba se izvršava tako što se
dva elementa string datoteka porede u
pogledu dužine i sadržaja. ukoliko su svi
elementi identični naredba je istinita.
Nedozvoljena dužina string
elementa postavlja error bit.

7.1.2. ASCII NAREDBE ZA KOMUNIKACIJU


Razmena podataka između SLCa i nekog uređaja koji prima ili šalje ASCII
karaktere obavlja se preko dva bafera (ulaznog i izlaznog) kanala 0 koji je konfigurisan za
user mode. Podaci se iz bafera šalju ka nekom ASCII uređaju, ili se iz njega primaju u
okviru nezavisnog procesa komunikacije. Pri tome, važno je da se istakne da se
Plc_comnaredbe_SLC/126

komunikacija obavlja direktno sa uređajem koji je vezan za kanal 0.


U suštini postoje dve vrste naredbi. Jedna grupa naredbi služi za proveru stanja
bafera i manipulaciju redovima čekanja koji su pridruženi baferima. Druga grupa naredbi
služi za prenos podataka između datoteka SLCa i bafera. Drugim rečima ovde se ne radi
o komunikaciji sa bilo kojim od kontrolera u mreži, jer bi u tom slučaju naredba za
komunikaciju morala da uključi i adresu kontrolera.
U principu ove naredbe se ne izvršavaju trenutno u toku programskog skena, veće
se samo smeštaju u red čekanja.
Kada uslov ima prelaz sa neistinit na istinit postavlja se EN bit i naredba se stavlja
u red čekanja (EU bit se postavlja na 1). Kada naredba dođe na red za izvršavanja IN bit
se postavlja. Procesor tada izvrši naredbu i postavlja DN bit.
Kada u nekom sledećem programskom sken ciklusu, procesor utvrdi da je DN bit
postavljen, on postavlja EM bit, čime označava da je naredba izvršena.
MANIPULACIJA BAFERA
• ACL - ASCII Clear Receive and/or Send Buffer
Kada uslov prelazi sa neistinit na istinit
prijemni i/ili predajni bafer kanala 0
(konfigurisan kao ASCII u user mode-u) se
prazni. To znači da se iz redova izbacuju sve
naredbe za čitanje (prijem), odnosno pisanje
(predaja) koje se zateknu u čekanju na prenos.
Ova naredba se izvršava odmah pri
izvođenju leder programa.
Kanal 0 može biti u bilo kom stanju (system ili user). Ukoliko je kanal u system
mode, prazni se samo bafer za slanje (transmit) i to samo ukoliko je odabran protokol
DF1.
• ACB - Number of Characters In Buffer
Kanal 0 mora biti u user mode.
Ovom naredbom se određuje
ukupni broj karaktera u baferu i smešta
u pos reč upravljačkog bloka Rn:w. Ovaj
broj se istovremeno prikazuje i kao
podatak (characters) u bloku leder
programa. Korišćenjem ove naredbe se
zapravo proverava da li je bafer primio
neke karaktere iz spoljnjeg uređaja. Ukoliko se u baferu nai]e na terminalne karaktere
postavlja se i FD bit.
Ukoliko dođe do greške, heksadecimalni kod za grešku se prikazuje kao error.
Bit za grešku biće postavljen ukoliko kanal nije u user mode, ukoliko je, dok je
naredba bila u redu, došlo do promene mode-a i ukoliko je UL bit postavljen pre nego što
je naredba počela da se izvršava (izašla iz reda čekanja).
• ABL - Test Buffer for Line
Kanal 0 mora biti u user mode.
Ovom naredbom se određuje
broj karaktera u ulaznom baferu
zaključno sa "end-of-line" karakterima.
To su dva terminalna karaktera koja su
definisana pri konfiguraciji kanala 0 za
rad u user modu. Na taj način ova
naredba određuje dužinu jedne linije
podataka.
Rezultat se smešta u pos reč upravljačkog bloka Rn:w Ovaj broj se istovremeno
Plc_comnaredbe_SLC/127

prikazjuje i kao podatak (characters) u bloku leder programa.


Ukoliko dođe do greške, heksadecimalni kod za grešku se prikazuje kao error.
Ukoliko se u baferu ne pronađu terminalni karakteri u pos polje se upisuje 0. Ukoliko
vrednost u pos polju nije nula FD bit se postavlja na 1. Bit za grešku biće postavljen
ukoliko kanal nije u user mode, ukoliko je dok je naredba bila u redu došlo do promene
mode-a i ukoliko je UL bit postavljen pre nego što je naredba počela da se izvršava (izašla
iz reda čekanja).
OČITAVANJE PODATAKA IZ BAFERA (PRIJEM PODATAKA)
• ARD ASCII - Read Characters
Učitava parametre iz bafera i smešta ih
u elemenat string datoteke definisan kao dest.
Za obavljanje operacije neophodno je da se
definiše elemenat upravljačke datoteke i da se
specificira broj karaktera koji se želi učitati
(string length). Ovaj broj će biti upisan na
poziciju len u datoteci Rn:w. Broj očitanih
karaktera se prikazuje u naredbi. Ovaj broj se
smešta i kao pos reč u upravljačkom bloku
Rn:w.
Ukoliko dođe do greške, heksadecimalni kod za grešku se prikazuje kao error.
Potrebno je zapaziti da se broj karaktera koji se očitava može menjati u toku rada.
Da bi se ovo postiglo potrebno je da se nekom naredbom definiše sadržaj reči Rn:w.len.
Po prirodi stvar za tu svrhu će se koristiti pos reč kontrolnog bloka koji je vezan za jednu
od naredbi kojom se određuje broj karaktera u baferu.
Bit za grešku biće postavljen ukoliko kanal nije u user mode, ukoliko je dok je
naredba bila u redu došlo do promene mode-a, ukoliko je UL bit postavljen pre nego što je
naredba počela da se izvršava (izašla iz reda čekanja), ukoliko se izvrši ACL naredba, i
ukoliko se ustanovi da modem nije na vezi (uz uslov da je pri konfiguraciji kanala
odabrana bilo koja opcija izuzev no handshaking).
• ARL - ASCII Read Line
Ova naredba radi isto što i ARD
naredba, s tim što se učitava niz
karaktera zaključno sa karakterima koji su
specificirani kao terminalni.
Ukoliko se u nizu dužine
specificirane kao string length ne naiđe
na terminalne karaktere, učitavanje će se
prekinuti, kada se pročita zadani broj
karaktera. Ukoliko se naiđe na terminalne
karaktere, očitavanje se prekida i pre
dostizanja zadane dužine niza.
UPISIVANJE PODATAKA U BAFER (SLANJE PODATAKA)
Ove naredbe mogu da rade i u
system i u user mode.
• AW T - ASCII Write
Broj karaktera određen sa string
length se prenosi iz string elementa Stn:w
na neki spoljni uređaj. Ukoliko se kao string
length definiše 0, prenosi se ceo element.
Broj poslatih karaktera biće upisan u pos
reč upravljačke datoteke Rn:w.
Bit za grešku biće postavljen ukoliko
Plc_comnaredbe_SLC/128

je kanal system mode konfigurisan za DH485, ukoliko je UL bit postavljen pre nego što je
naredba počela da se izvršava (izašla iz reda čekanja), ukoliko se izvrši ACL naredba, i
ukoliko se ustanovi da modem nije na vezi (uz uslov da je pri konfiguraciji kanala
odabrana bilo koja opcija izuzev no
handshaking).
• AW A - ASCII Write with Append
U osnovi radi isto kao i AWA
naredba, s tim što se emitovanim
karakterima dodaju dva terminalna
karaktera koja su specificirana pri
konfigurisanju kanala za user mode.

HANDSHAKE
• AHL - ASCII Handshake Lines
Može da radi i u system i u user
mode.
Koristi se za resetovanje RS-232
kanala i to linija DTR (ready line) i RTS
(request to send line). Naredba se izvršava
tako što se, u zavisnosti od bita u masci,
DTR i RTS linije setuju ili resetuju. Obe
maske se specificiraju kao heksadecimalni
podaci pri čemu Bit 0 odgovara DTR liniji,
dok Bit 1 odgovara RTS liniji.
AND maska služi za resetovanje bitova. Ako je odgovarajući bit 1 linija se resetuje,
ako je 0 stanje linije se ne menja.
OR maska služi za postavljanje bitova. Ako je odgovarajući bit 1 linija se setuje,
ako je 0 stanje linije se ne menja.

Status kanala je informacija o stanju modemskih linija u toku rada. Ona se


kreće od 00 do 1F (heksadecimalno) prema sledećoj tabeli
KODOVI GREŠAKA U PRENOSU
KOD UZROK GREŠKE

00 nema greške

02 Operacija se ne može završiti jer je modem izgubio vezu

03 Prenos se ne može završiti jer je izgubljen CTS signal

04 Ne može da ostvari ASCII prijem jer je Kanal 0 u system mode

05 U toku pokušaja da se ostvari ASCII prenos detektovan je

07 Ne može da ostvari ASCII prenos jer je konfiguracija kanala promenjena pomoću menija

08 Ne može da ostvari ASCII prenos, jer je drugi ASCII prenos već u toku

09 ASCII komunikacija nije podržana trenutnom konfiguracijom kanala

0A UL bit je postavljen, čime je prekinuto izvođenje naredbe

0B Zahtevana dužina niza je ili negativna ili veća od 82 (ARD ili ARL naredbe)

0C Zahtevana dužina niza je ili negativna ili veća od 82 (AWA ili AWT naredbe)
Plc_comnaredbe_SLC/129

7.1.3. PRIMERI KORIŠĆENJA ASCII NAREDBI


Pretpostavlja se da je jedan
kontroler spregnut sa ASCII uređajem koji
radi i kao prijemnik i kao predajnik (Sl. 7-4).
Kanal 0 kontrolera konfigurisan je
kao user mode. Terminalni karakteri
specificirani su tako da odgovaraju ASCII
kodovima za "carriage return" i "line feed".
Kodovi su uneti kao heksadecimalni (Sl.
SL. 7-4 SPREGA KONTROLERA I ASCII UREĐAJA 7-5).

SL. 7-5 SPREGA KONTROLERA I ASCII UREĐAJA

PR. 7-1 UČITAVANJE NIZA ASCII KARAKTERA


ZADATAK
Pročitati niz podataka sa nekog spoljneg ASCII uređaja i izdvojiti učitane karaktere u dva
posebna niza tako da prvi niz sadrži prva tri karaktera iz učitanog niza, a drugi niz osam karaktera
počev od 5. karaktera učitanog niza. Pri tome, se prvi niz ažurira samo ako su učitana bar tri nova
karaktera, dok se drugi niz ažurira posle svakog očitavanja stanja bafera, nezavisno da li su učitani
novi karakteri ili ne. Karakteri se očitavaju sa učestanošću od 1 sekunde.
Pretpostaviti da je kraj stringa koji šalje spoljni uređaj označen terminalnim karakterom.
Ako to nije slučaj, niz ne treba očitavati
REŠENJE
Leder program koji realizuje postavljeni zadatak prikazan je na Sl. 7-6.
Imajući u vidu postavljene uslove, za očitavanje bafera se koristi ARL naredba koja ispituje
prisustvo terminalnog karaktera i ukoliko ga ustanovi postavlja FD bit.
Prvi niz se ažurira samo ako je ustanovljeno da u baferu ima bar 3 karaktera. U tom
slučaju se postavlja i indikatorski bit koji se može koristiti u nekom drugom delu programa (koji
ovde nije prikazan). Samo se po sebi razume da se nakon korišćenja taj bit mora odlečovati, da bi
bio spreman za sledeću upotrebu.
Drugi niz se bezuslovno ažurira čim časovnik izmeri vremenski interval od 1 sekunde.
Plc_comnaredbe_SLC/130

SL. 7-6 UČITAVANJE NIZA ACII KARAKTERA

PR. 7-2 PRIJEM ASCII KARAKTERA


ZADATAK
Formirati leder program u okviru koga SLC kontroler saopštava ASCII uređaju da je
spreman da primi podatke i zatim otpočinje prijem karaktera onako kako oni stižu u prijemni bafer.
REŠENJE
Program je realizovan tako da se sukcesivno ispituje stanje bafera i ukoliko u njemu ima
karaktera, svi karakteri se prenose u privremenu datoteku (St9:0). Iz ove privremene datoteke
karakteri se, nadovezivanjem, slažu u jedan niz koji se čuva u datoteci St12:0.
Dužina niza koji se očitava iz bafera određuje se ACB naredbom. Ukoliko spoljni uređaj
nije poslao podatke, onda će ova dućina biti nula. U principu, moglo bi se dopustiti da se aktivirra
naredba za očitavanje sa dužinom nula, što zapravo znači da ova naredba ne bi imalo šta da radi.
Plc_comnaredbe_SLC/131

Međutim, da bi se ostvarila ušteda na vremenu, može se usloviti aktiviranje naredbe za očitavanje


(kao što je to ovde i urađeno). Uslovljavanje može da se izvrši ispitivanjem stanja FD bita, ili
ispitivanjem broja očitanih karaktera (POS) koji mora biti veći od nule. Naredba za ispitivanje bita je
povoljnija jer se brže izvršava. (U programu su ilustrovana oba postupka ispitivanja)

SL. 7-7 PRIJEM ASCII KARAKTERA


Plc_comnaredbe_SLC/132

PR. 7-3 PRIKAZIVANJE PODATAKA NA DISPLEJU


ZADATAK
Na pokretnoj traci preko koje se prenose finalni proizvodi nalazi se senzor koji generiše
logičku jedinicu pri prolazu svakog proizvoda. Potrebno je da se na displeju prikazuje broj
registrovanih proizvoda, kao i datum i vreme u kome je taj broj registrovan.
REŠENJE
Signal sa senzora se vodi na brojač. Pri tome se pretpostavlja da je učestanost detekcije
proizvoda na traci značajno manja od vremena skeniranja, što znači da će u sukcesivnim sken
ciklusima senzor menjati stanje. Stanje brojača se zajedno sa datumom i vremenom (podaci
postoje u odgovarajučim rečima statusnog registra) smešta u celobrojnu datoteku. Elementi ove
datoteke se koriste u okviru string datoteke koja se prikazuje na displeju. Naime, ukoliko se u nizu
podataka naiđe na elemenat datoteke u uglastim zagradama, onda će procesor uzeti iz memorije
odgovarajući brojni podatak, prebaciti ga u ASCII kod i uvrstiti u niz. Ovaj način prikazivanja
podataka označava se kao In-line Indirection.
Da bi se preneli traženi podaci odgovarajući elemenat string datoteke treba da ima sledeći
izgled

Poslednja dva karaktera su ASCII karakteri za "carriage return" i "line feed"


(hekasedecimalni kodovi /d i /a) . Napomenimo da se ubacivanje ovih karaktera moglo postići i
automatski da je umesto AWT naredbe korišćena AWA naredba.

Odgovarajući leder program prikazan je na Sl. 7-7.


Plc_comnaredbe_SLC/133

SL. 7-8 PRIKAZIVANJE PODATAKA NA DISPLEJU


Plc_comnaredbe_SLC/134

7.2. NAREDBE ZA KOMUNIKACIJU SLCA U MREŽI

7.2.1. FORMAT NAREDBI ZA KOMUNIKACIJU


Zahtev za uspostavljanje komunikacije između dva čvora u mreži, odnosno za
otpočinjanje prenosa podataka, izražava se u okviru naredbe koja se postavlja u leder
program. Sve naredbe za komunikaciju koje se aktiviraju u okviru jednog programskog
skena ciklusa postavljaju svoje zahteve u red čekanja. Sama komunikacija, međutim,
obavlja se u okviru komunikacionog dela sken ciklusa. Kontroler SLC5/02 može da
servisira jednu naredbu u jednom trenutku, dok ostali kontroleri mogu da servisiraju do
četiri naredbe po svakom od kanala, što čini ukupno 8 instrukcija u jednom trenutku.
Postoji mogućnost da se komunikacija pospeši i to tako što se komunikacioni deo
sken ciklusa ponavlja više puta u okviru jednog sken ciklusa SLC.
• SVC - Service Communications instruction
Ova naredba je naredba akcije i koristi
se za iniciranje posebnog komunikacionog
ciklusa. Ukoliko je uslov istinit, programski
sken se privremeno prekida i otpočinje
komunikacioni ciklus. Po okončanju
komunikacije, programski sken se nastavlja
od mesta prekida.
Kod kontrolera koji imaju dva kanala,
naredba omogućava da se specificira da li će
se u okviru dodatnog komunikacionog ciklusa
servisirati oba kanala ili samo jedan od njih. Samo se po sebi razume, da ovaj izbor ne
utiče na redovono izvršavanje komuniacionog ciklusa.
SVC naredba se, po pravilu, postavlja kao bezuslovna naredba. Ne može se
koristiti u potprogtramima kojima se servisiraju prekidi.

• MSG - Message naredba


SLC kontroler koji predstavlja jedan
MSG čvor u mreži ostvaruje komunikaciju sa
uslov EN
nekim drugim čvorom u mreži pomoću
READ/WRITE MESSAGE
Read/Write xxxx DN naredbe za komunikaciju (mnessage
Target Device xxxx naredba – msg). Ova naredba je naredba
SLC5/02 ER akcije i postavlja se u pogramu onog SLC
Control Block Nn:w
Control Block Length 7 kontrolera koji će igrati ulogu inicijatora
Setup Screen prenosa podataka. Ukoliko je uslov u rangu
istinit naredba se izvršava tako što
postavlja zahtev za prenos podataka
MSG između dva čvora u mreži. Kao što je već
uslov EN
READ/WRITE MESSAGE rečeno,sam prenos se obavlja u
Type xxxx
DN komunikacionom delu sken ciklusa PLCa.
Read/Write xxxx
Naredba uključuje niz parametara
SLC5/03-05 Target Device xxxx ER kojima se opisuje vrsta komunikacije (smer,
Local/Remote xxxx
Control Block Nn:w adresa čvora sa kojim se komunicira,
Control Block Length 14 adresa skupa podataka koji se prenose
Setup Screen itd.), kao i same podatke koji se prenose
preko mreže. Neki do ovih parametara
postavljaju se direktno u samoj naredbi, a neki se smeštaju u posebnu upravljačku
datoteku (Control block) koja se specificira kao celobrojna datoteka (tipa N). Dužina
datoteke zavisi od tipa SLCa i to je podatak koji se ne može menjati. On se kreće od 7 za
kontrolere tipa SLC5/2 do najmanje 14 za kontrolere višeg tipa.
Plc_comnaredbe_SLC/135

Type – tip komunikacije


Svi procesori realizuju peer-to-peer komunikaciju sa nekim čvorom u mreži. Pored
toga, procesor SLC5/05 preko kanala 1 realzuje peer-to-peer multihop ethernet
komunikaciju sa ControlLogix kontrolerom ili preko ControlLogix gateway sa mrežama
ControlNet, DH+ ili DH-485.
U cilju slanja msg naredbi koristi se TCP/IP protokol za uspostavljanje Eternet
veze. Ova veza može biti inicirana ili od strane klijentskog programa ili od strane
procesora u lokalnom čvoru.
U slučaju dolazećih poruka koje lokalni procesor traži od nekog klijentskog
programa (INTERCHANGE ili RSLinx aplikacija) ili nekog drugog procesora u eternet
mreži, vezu može inicirati ili klijentski program ili lokalni procesor.
Kod odlazećih poruka koje lokalni procesor, bez traženja, šalje klijentskom
programu, klijentski program mora uspostaviti vezu.
Za slanje peer-to-peer poruka, lokalni procesor mora, kao prvo, da
uspostavi vezu sa odredišnim čvorem koji ima datu IP adresu na eternet mreži. Veza se
uspostavlja pri izvršavanju msg naredbe, uz uslov da već ne postoji veza sa istim
uređajem. Samo jedna veza se uspostavlja sa jednim odredišnim čvotom. Ukoliko više
msg naredbi adresira isti čvor one sve dele istu vezu.
Jedan lokalni procesor može istovremeno uspostaviti sledeće veze
o 4 odlazeće veze za peer poruke
o 4 dolazeće veze za klijent poruke
o 8 (kod nekih procesora i 16) veza za ili peer ili klijent poruke

Read/Write – smer komunikacije


Read naredba inicira prenos (učitavanje) podataka iz neke datoteke odredišnog
čvora u datoteku lokalnog čvora u kome se nalazi Msg naredba. Write naredbom se
obezbeđuje slanje (upisivanje) podataka iz neke datoteke lokalnog čvora u datoteku
odredišnog čvora.
Target device – tip čvora sa kojim se komunicira
Svi čvorovi u jednoj mreži ne moraju nužno biti SLC kontroleri, što znači da se i
sama komunikacija između čvorova ne obavlja uvek na isti način.
Specifikacija uređaja sa kojim se vrši komunikacija (kome se šalju ili od koga se
uzimaju podaci).
Dozvoljene opcije su 500CPU ako je taj uredjaj SLC kontroler i 485CIF ako je to
neki uređaj ne SLC tipa (emulator PLC-2). Za procesore SLC5/03 i više odredišni uređaj
može biti PLC-5, ukoliko taj uređaj prima naredbe za PLC-5. .
Local/Rem ote – mreža preko koje se komunicira
Definiše da li se odredišni uređaj nalazi u lokalnoj mreži (local) ili u udaljenoj mreži
(remote) sa kojom se komunicira preko bridge-a.
Parametri koji nisu uključeni u samu naredbu postavljaju se pomoću
odgovarajućeg prozora koji se otvara pomoću opcije Setup Screen. S obzirom da se
odredišni uređaji mogu razlikovati po tipu, izvesno je da se i način komunikacije i
odgovarajući parametri moraju razlikovati.

7.2.2. SLC KONTROLER KAO ODREDIŠNI UREĐAJ (500CPU)


Budući da je struktura ovog uređaja unapred poznata, odnosno da se tačno zna
mogući izgled datoteke čiji podaci učestvuju u komunikaciji, sve neophodne adrese u
ciljnom čvoru mogu se sasvim jasno definisati.
Za svaku msg naredbu neophodno je da se definiše
Data table address - adresa prvog elementa lokalne i odredišne datoteke
Size in elements - veličina datoteke izražena brojem elemenata koji se
Plc_comnaredbe_SLC/136

prenose, koja se automatski preračunava u broj reči


Local node address - redni broj (adresa) odredišnog čvora

Maksimalni broj elemenata koji se može preneti, odnosno dužina poruke, određen
je tipom datoteke koja prima podatke. To znači da je kod read naredbe broj elemenata
određen tipom lokalne datoteke, dok je kod write naredbe broj elemenata određen tipom
odredišne datoteke. Ovaj broj zavisi od vrste kontrolera.

Dozvoljeni tipovi datoteka:


O, I, B, N, S T, C, R F St A
SLC500 – 5/02 41 13 X X X
SLC5/03-04 i 05 Kanal 0 103 34 51 2 103
SLC5/05 Kanal 1 256 256 256 25 256

• Kontroler SLC5/ 02
Parametri se definišu u prozoru koji je prikazan na Sl. 7-9.

SL. 7-9 PROZOR ZA DEFINISANJE PARAMETARA PRI KOMUNIKACIJI SLC 5/02 KONTROLERA
U datom primeru (Sl. 7-9) upravljački blok, (definisan u msg naredbi na adresi
N7:0) ima sledeći izgled.

o Reč 0 (adresa N7: 0) – indikatorski bitovi


o Prvi bvajt reči 1 (adresa N7:1) – adresa odredišnog čvora (4)
o Reč 2 (adresa N7:2) - dužina poruke (6 reči)
o Reč 3 (adresa N7:3) – broj odredišne datoteke (15)
o Reč 4 (adresa N7:4) – kod za celobrojnu datoteku N (137)
o Reč 5 (adresa N7:5) – adresa prvog elementa odredišne datoteke (10)
o Reč 6 (adresa N7:6) - rezervisano
Plc_comnaredbe_SLC/137

• Kontroler i SLC5/03-05 – Komunikacija u lokalnoj mreži


Ako kontroler komunicira u lokalnoj mreži prozor je veoma sličan Sl. 7-10. Podaci
se smeštaju u kontrolnu datoteku dužine 14 reči. Pored ranje definisanih podataka
potrebno je da se specificira i
• Broj kanala (Channel) u lokalnom čvoru, preko koga se vrši komunikacija. Ovim se
ujedno specificira i tip mreže preko koje se prenosi poruka
•Message timeout, dozvoljeni interval čekanja da se prenos završi, koji se pamti u prvom
bajtu reči 8 upravljačkog bloka.
Ukoliko je adresa upravljačke datoteke je N7:10, i ukoliko se u prozor unesu
podaci prema Sl. 7-10, njen sadržaj će biti

SL. 7-10 PROZOR ZA DEFINISANJE PARAMETARA PRI KOMUNIKACIJI SLC 5/03 I VIŠIH KONTROLERA U
LOKALNOJ MREŽI

• Kontroler i SLC5/03-05 – Udaljena mreža


Za komunikaciju u udaljenoj mreži neophodno je još da se specificira
• Local bridge address – broj čvora u lokalnoj mreži u kome se nalazi bridge.
• Remote bridge address – ukoliko je bridge konfigurisan kao gateway, specificira broj
čvora u mreži preko koje se spaja sa udaljenom mrežom. U protivnom se stavlja 0.
Podatak, pomnožen sa 256, se smešta u reč 7 upravljačkog bloka.
• Remote station address – broj čvora odredišnog uređaja u udaljenoj mreži – smešta se
u prvi bajt reči 1 upravljačkog bloka. Ovo je zapravo adresa uređaja sa kojim se
komunicira.
• Remote brdige link ID – identifikacija veze u udaljenoj mreži u kojoj se nalazi odredišni
uređaja (0-255).
Plc_comnaredbe_SLC/138

SL. 7-11 PROZOR ZA DEFINISANJE PARAMETARA PRI KOMUNIKACIJI SLC 5/03 I VIŠIH KONTROLERA U
UDALJENOJ MREŽI

U posmatranom primeru (Sl. 7-11), u naredbi je definisano da jeadresa


upravljačkog bloka je N12:0. Otuda on ima sledeći izgled

7.2.3. ODREDIŠNI UREĐAJ JE 485CIF (EMULATOR PLC-2)


Ako je odredišni uređaj nije SLC kontroler onda je izvesno da se komunikacija
mora obaviti na drugi
Datoteke
način. Naime, svaki tip
podataka uređaja ima neki
#0 - #8 drugačiji način za
SLC CIF Mreža
smeštanje podataka, te
write
Leder program MSG (Datoteka #9) se odgovarajuće adrese
read
moraju definisati u skladu
Datoteke
sa pravilima koja diktira
podataka odgovarajući odredišni
#10 - #255 uređaj. O tome se, pored
drugih stvari, stara modul
SL. 7-12 ILUSTRACIJA KOMUNIKACIJE SA UREĐAJIMA KOJI NISU SLC TIPA za prilagođavanje
preko koga se
odredišni uređaj vezuje na mrežu.
Komunikacija sa raznovrsnim modulima se ostvaruje preko posebnog bafera
podataka koji se nalazi u lokalnom uređaju. Kao bafer se koristi datoteka - Datoteka 9 –
Common interface file - 485CIF sa kojom SLC razmenjuje podatke pomoću message
naredbe. To zapravo znači da se nakon aktivacije message naredbe, u komunikacionom
ciklusu podaci prenose iz određene datoteke SLCa u lokalnom čvoru u CIF datoteku u
istom kontroleru (write naredba) ili iz CIF datoteke u odgovarajuću datoteku SLCa (read
naredba). Sa druge strane prenos podatka između CIF datoteke i drugih čvorova u mreži
odvija se van ladder programa (u pozadini) u okviru nezaštićenog upisa ili očitavanja
podataka (unprotected write or read).
CIF datoteka se mora posebno kreirati u vreme programiranja SLC-a. Ona mora
biti dovoljno velika da primi celokupan adresirani prostor čitanja i pisanja. Ukoliko to nije
Plc_comnaredbe_SLC/139

sčučaj prenos podataka se neće izvršiti. CIF se formira pomoću odgovarajućeg prozora
(Sl. 7-13).
CIF datotekom se upravlja preko definisanja područja u koje se podaci upisuju i
područja iz koga se podaci očitavaju. Ukoliko se želi informacija o tome da li su se podaci
u CIF datoteci promenili neophodno je da se podacima doda "handshaking" bit.
Potrebno je da se istakne
da nezaštićeni upis i čitanje nisu
baš potpuno slobodni. Naime,
oni su podvrgnuti zaštitnim
tehnikama SLC-a. To nadalje
znači da će prenos podataka biti
odbijen ako se pokuša dok traje
prenošenje programa (download)
ili ako je CIF već otvoren od
strane nekog drugog uredjaja.
Prilikom definisanja
message naredbe u kojoj je kao
ciljni uređaj naznačen 485CIF,
parametri kontrolnog bloka
definišu se u okviru posebnog
prozora kod koga deo koji se
odnosi na odredišni uređaj ima
nešto drugačiji izgled. Naime,
umesto adrese izvorne ili
odredišne datoteke, ovde se
navodi adresa prvog elementa
prostora CIF datoteke u koji se
smeštaju podaci (Data Table
Offset). Ovaj podatak se smešta
SL. 7-13 PROZOR ZA DEFINISANJE CIF PODRUČJA u reč 3 upravljačke datoteke.

• Kontroler SLC5/ 02 (Upravljačka datoteka na adresi N11:10)

SL. 7-14 PROZOR ZA DEFINISANJE PARAMETARA PRI KOMUNIKACIJI SLC 5/02 PREKO CIF-A I
ODGOVARAJUĆA UPRAVLJAČKA DATOTEKA
Plc_comnaredbe_SLC/140

• Kontroler i SLC5/03-05 – Local network (Upravljačka datoteka na adresi N13:0)

SL. 7-15 PROZOR ZA DEFINISANJE PARAMETARA PRI KOMUNIKACIJI SLC 5/03 I VIŠIH U LOKALNOJ MREŽI
PREKO CIF-A I ODGOVARAJUĆA UPRAVLJAČKA DATOTEKA

• Kontroler i SLC5/03- 05 – Remote network (Upravljačka datoteka na adresi


N14:0)

SL. 7-16 PROZOR ZA DEFINISANJE PARAMETARA PRI KOMUNIKACIJI SLC 5/03 I VIŠIH U UDALJENOJ MREŽI
PREKO CIF-A I ODGOVARAJUĆA UPRAVLJAČKA DATOTEKA

Ukoliko je odredišni čvor PLC-5 parametri se definišu na isti način s tim što se kao
adresa odredišnog čvora navodi adresa datoteke u PLC-5 u skladu sa pravilima
adresiranja koja važe za tu vrstu kontrolera.
Plc_comnaredbe_SLC/141

7.2.4. KOMUNIKACIJA PREKO ETERNETA


Prilikom specifikacije parametara za komunikaciju preko eterneta, odredišni uređaj
se specificra preko IP (eternet) adrese. Kod određenih tipova procesora može se koristiti i
ime uređaja, koje je definisano u domain name server-u.
Pored adrese, potrebno je i definisati da li se poruka rutira prema Logix kontroleru
ili preko ControlLogix gateway-a – multiHop opcija. U tom slučaju neophodno je i da se
specificira način rutiranja.
Preostali parametri definišu se na isti način kao i kod drugih opcija msg naredbe,
kao što se vidi iz navedenog primera.

SL. 7-17 PROZORI ZA DEFINISANJE PARAMETARA PRI KOMUNIKACIJI PREKO ETERNET MREŽE
Plc_comnaredbe_SLC/142

7.2.5. INDIKATORI STATUSA


Pri opsluživanju MSG naredbi postavljaju se 3 statusna bita po svakom kanalu.
Kod kontrolera SLC5/02 ti se bitovi nalaze u reči broj 2 (S:2) statusne datoteke, dok se
kod procesora SLC5/03 i viših oni nalaze u ovoj reči za kanal broj 1, a u reči broj 33 (S:33)
za kanal 0.
• Bit S:2/5, Bit S: 33/0 - Incoming Command Pending - Status – Ovaj bit se postavlja
kada procesor detektuje da neki drugi čvor u mreži traži informaciju (read sa tog čvora)
ili šalje neku naredbu (write sa tog čvora). Ovaj bit može biti postavljen u bilo kom
trenutku, a resetuje se kada procesor izvrši zahtev.
• Bit S:2/6, Bit S:33/1 - Message Reply Pending - Status – Ovaj bit se postavlja kada
je neki čvor u mreži poslao informaciju koja je tražena msg naredbom (read msg u
programu). Bit se resetuje kada procesor smesti informaciju u odredjenu datoteku
(destination address) i ažurira msg naredbu.
• Bit S:2/7, Bit S:33/ 2 - Outgoing Message Command Pending - Status – Ovaj bit se
postavlja kada su jedna ili više msg naredbi aktivirane (istinit uslov u odgovarajućim
programskim rangovima), ali se sve nalaze u redu čekanja (ne vrši se prenos
informacija u tom trenutku). Čim otpočne prenos, bit se resetuje. Kada se prenos završi,
bit se ponovo setuje ukoliko ima još msg naredbi koje su u redu čekanja. U protivnom bit
ostaje resetovan.
U cilju upravljanja komunikacijom koriste se još dva statusna bita
• Bit S:2/15, Bit S:33/ 5 - Communication servicing selection bit – Kada je ovaj bit
postavljen samo jedan komunikacioni zahtev (odlazeći zahtev – write, odgovor na msg
naredbu – read, ili dolazeći zahtev iz nekog čvora) može da se izvrši u okviru jednog
sken ciklusa (END ili TND naredba označavaju kraj ciklusa) odnosno u okviru jedne
REF ili SVC naredbe. Kada je bit resetovan onda se opslužuju svi aktivni komunikacioni
zahtevi. Očigledno je da se resetovanjem ovog bita povećava komunikaciona propusna
moć. Medjutim, i vreme skeniranja se takodje povećava ukoliko se više komunikacionih
zahteva ili naredbi primi u okviru istog sken ciklusa.
• Bit S:33/7 (SLC5/02 ili kanal 1), Bit S:33/6 (kanal 0) – Message Servicing
Selection bit – Ovaj bit je u funkciji samo ako je Communication servicing selection bit
resetovan (opslužuju se svi komunikacioni zahtevi). U tom slučaju, postavljanjem ovog
bita ograničava se broj opsluživanja odlazećih poruka (write ili read) na jedan zahtev po
jednom sken ciklusu (END ili TND), odnosno po jednoj REF ili SVC naredbi.

Pored statusnih bitova koji služe kao indikatori celokupne komunikacije, svaka
MSG naredba postavlja svoje indikatroske bitove koji se smeštaju u gornji bajt reči broj 0
u upravljačkom bloku. (Donji bajt reči 0 sadrži kod za grešku.)
PRIPREMA ZA PRENOS – RED ČEKANJA I BAFER
• EN - Enable bit (bit 15) – postavlja se kada je u toku izvodjenja programskog skena
uslov u rangu istinit i pri tome ima mesta za poruku bilo u redu čekanja bilo u baferu.
Ovaj bit označava da je poruka u redu čekanja i ostaje postavljen sve dok se ne izvrši
prenos poruke i nakon toga uslov ne postane neistinit. Može se resetovati kada DN bit ili
ER bit budu postavljeni. Time se omogućava da se, ukoliko je uslov u rangu istinit,
ponovi pokušaj izvršavanja msg naredbe.
• EW - Enabled and waiting bit (bit 10) – postavlja se kada je EN bit postavljen i kada
ima mesta u baferu. Postavljanje ovog bita ukazuje da je poruka ušla u bafer.
• W Q – Waiting for queue space (reč 7, bit 0, kontroleri SLC5/3 i viši) – postavlja se na 1
kada je red čekanja pun.
EN=1 - kada počne izvršavanje msg naredbe, informacija se stavlja u FIFO red
Plc_comnaredbe_SLC/143

čekanja (ne sadrži podatke koji učestvuju u prenosu, već samo zaglavlje
naredbe sa pointerima). Ukoliko se radi o write msg naredbi, izvorni podaci
nisu zaštićeni.
EN=1 i EW=1 – kada zahtev ispostavljen msg naredbom uđe u bafer (koji
može da sadrži 4 naredbe). Bafer sadrži kompletnu poruku sa pripadajućim
izvornim podacima (ako je u pitanju write msg naredba)
WQ=1 kada je red (koji može da sadrži najviše 10 msg naredbi pun). Naredba
za koju je EN=1, a koja ne može da uđe u red čekanja će ući u red tek u
nekom sledećem sken ciklusu u kome u redu bude bilo mesta. (Ovo zahteva
da se obezbedi da uslov u rangu za to vreme ostane istinit)
Ukoliko se u toku jednog sken ciklusa konstantno aktivira više msg
naredbi nego što red i bafer mogu da prime, redosled izvršavanja naredbi
zavisi od njihovog mesta u leder programu. To znači da se može očekivati
da če msg naredbe koje se nalaze pri vrhu programa regularno ulaziti u red
čekanja, dok naredbe pri kraju programa mogu da nikada ne uđu u red.
INFORMACIJE O PRENOSU
• DN - Done bit (bit 13) – postavlja se kada je prenos izvršen uspešno. DN bit se
resetuje kada se, posle uspešno izvršenog prenosa, uslov u rangu promeni sa neistinit
na istinit.
• ER - Error bit (bit 12) – postavlja se kada prenos nije uspešno završen. ER bit se
resetuje kada se, posle neuspešno izvršenog prenosa, uslov u rangu promeni sa
neistinit na istinit.
• ST - Start bit (bit 14) – postavlja se kada procesor primi ACK signal od odredišnog
uredjaja. Resetuje se kada je jedan od bitova DN, ER ili TO postavljen.
Kod kontrolera SLC5/05 u eternet komunikaciji (kanal 1), ST bit interno ukazuje
da je primljena naredba i da treba pokušati prenos.
• NR - No response bit (bit 09) – postavlja se kada odredišni uredjaj ne odgovori na prvi
zahtev, odnosno kada odredišni uređaj informiše procesor da ne može da obradi zahtev
(u skladu sa protokolima DH485 i DH+ mreže). Bit se restuje kade je jedan od bitova
DN, ER ili ST postavljen.
• TO - Time out bit (bit 08) – kada je postavljen ukazuje da aktivna MSG naredba treba
da bude uklonjena iz liste komunikacionih zahteva. Svrha ovog bita je da ukaže
procesoru da nema više smisla da se čeka na završetak prenosa, te da prenos treba
označiti kao neuspešan. Kod kontrolera SLC5/02 ovaj bit se mora postaviti pomoću
programske naredbe koju formira sam korisnik. Kod kontrolera SLC5/03 i viših, vrednost
intervala čekanja posle koga se postavlja TO bit se zadaje kao parametar. Interni
program se u tom slučaju stara o postavljanju ovog bita. (Ukoliko se ne želi kotišćenje
internog programa, timeout parametar se postavlja na 0.)

• CO – Continuous operation (bit 11 – SLC5/03 i viši) – Kada je ovaj bit postavljen na 1


on predstavlja zahtev da da se msg naredba kontinuirano izvršava. U tom slučaju,
naredba se neprekidno nalazi u jednom od bafera i stalno je aktivna ukoliko je uslov u
rangu istinit. Posle postavljanja DN bita, odmah započinje nova komunikacija, pri čemu
se, ukoliko je u pitanju msg write naredba, izvorni podaci obnavljaju. Ukoliko se u toku
prenosa javi greška (ER bit se postavi na 1) pre nego što istekne tajmaut interval,
automatski će se pokušati sa novim prenosom i to će se ponavljati sve dok se ne obavi
uspešan prenos. Ukoliko, međutim, istekne tajmaut interval, prenos se obustavlja i neće
biti nastavljen sve dok EN bit ne bude resetovan i ponovo setovan.
Ukoliko se želi ovaju tip komunikacije, uobičajeno je da se u rangu ne postavlja nikakav
Plc_comnaredbe_SLC/144

uslov, već da se komunikacijom upravlja preko tajmaut intervala. (Budući da postoje


samo četiri bafera izvesno je da CO bit može da bude postavljen kod najviše četiri
naredbe).

7.2.6. IZVRŠAVANJE MESSAGE NAREDBE


Kada u toku izvodjenja programskog skana uslov u rangu u kome se nalazi MSG
naredba postane istinit postavlja se EN bit (Sl. 7-18). Ovaj bit ostaje postavljen sve dok se
ne postavi jedan od sledećih bitova: DN (prenos uspešno izvršen), ER (prenos neuspešno
okončan) ili TO (zahtev da se prenos okonča kao neuspešan). Istovremeno se ukoliko ima
mesta u baferu postavlja i EW bit koji ukazuje da je zahtev za prenos podataka sadržan u
MSG naredbi stavljen u bafer. Ako u baferu nema mesta, zahtev se postavlja u red
čekanja, koji radi na FIFO principu. Pri tome, red čekanja se puni redom kako zahtevima
koje dolaze od msg naredbi u lokalnom uredjaju (bit S:2/7), tako i zahtevima za
komunikaciju koji dolaze od drugih čvorova u mreži (bit S:2/5). Konačno, ako u redu
čekanja nema mesta postavlja se WQ bit.
Potrebno je zapaziti
da postavljanje EN bita ne
U skan

inicira prenos podataka.


Komunikacija će se obaviti
u housekeeping ciklusu.
istinit Eventualno komunikacija
Programski sken

Uslov MSG EN = 1 se može obaviti u okviru


izvršenja SVC (Service
Drugi čvorovi u mreži
(S:2/7 = 1) communication) naredbe ili
REF (Refresh) naredbe u
leder programu.
(S:2/5 = 1) U housekeeping
ciklusu procesor ispituje
I skan

statusne bitove da bi
ustanovio da li je neki od
B ranije započetih prenosa
a
završen i da li ima još
Housekeeping

f
e zahteva u redu čekanja i
S:2/7 = 1 r
na bazi njih odlučuje šta će
ili Red čekanja
S:2/5 = 1
EW = 1 da radi. Ukoliko je neka od
komunikacija završena,
procesor može da servisira
SL. 7-18 FORMIRANJE I OPSLUŽIVANJE REDA ČEKANJA odgovarajuću msg
naredbu (recimo smesti
primljene podatke). Pored toga, ako je neki
od bafera prazan, procesor može da prebaci
naredbe iz reda čekanja u bafere. Broj
ovakvih servisiranja zavisi od bitova statusa.
Ako procesor zaključi da treba da
obavi komunikaciju on uzima zahtev iz reda
čekanja i formira paket (Sl. 7-19). Ako se
paket može uspešno da formira on se stavlja
u predajni bafer. Pri tome ako je msg naredba
bila write u paket se ubacuju i podaci koji se
šalju ka odredišnom čvoru (target). Procesor
tada izlazi iz komuniiacionog ciklusa, dok se
sam prenos podataka obavlja u pozadini,
paralelno sa regularnim sken ciklusom. Ako
SL. 7-19 POSTUPAK FORMIRANJA I SLANJA paket ne može da se formira, postavlja se
PAKETA
Plc_comnaredbe_SLC/145

ER bit.
Nema
Pod uslovom da komunikaciona
odgovora veza i odredišni čvor ispravno
Target čvor (NAK) funkcionišu, on će primiti paket i poslati
U funkciji? Ne
ACK (acknowledgment) signal (Sl.
7-20). Ukoliko se na adresi čvora ne
Da nalazi nikakav uredjaj, ukoliko je paket
pri slanju pokvaren do mere da se ne
Prima paket
može primiti ili ukoliko se odgovor čvora
pokvari pri slanju procesor neće primiti
NAK
nikakav odgovor. Ako je odredišni čvor
Paket ispravan? Ne suviše zauzet ili ako je primio pokvaren
paket on će poslati NAK (not
Da acknowledged) signal. (Procsor
ACK odsustvo bilo kakvog signala tumači isto
kao i prijem NAK signala.) Potrebno je
SL. 7-20 PRIJEM PAKETA I POTVRDA O PRIJEMU zapaziti da čak i kada target čvor
pošalje ACK signal, on još uvek nije
raspakovao paket da vidi da li razume zahtev.
Lokalni čvor Po prijemu ACK
signala procesor postavlja
Da ACK Ne (NAK) ST bit i počinje da čeka
Programski sken

odgovor od target čvora


EW = 0 (Sl. 7-21). Za vreme dok je
ST = 1 Ne NR = 0 Da
ST bit postavljen
NR = 0 odgovarajući bafer je
EW = 0 zauzet. Budući da, u
TO = 0 Ne NR = 1
principu, target čvor nema
Čeka Ne
Da nikakvo ograničenje u
Sken ciklusi

odgovor od pogledu odgovora,


target Ponovi slanje
čvora
Odgovor
paketa
čekanje bi moglo da traje
stigao?
(bafer neograničeno dugo. Da bi
blokiran)
Da
se ovo sprečilo, korisnik
ima mogućnost da
Uspeh? Ne
programski definiše neko
vreme čekanja i da po
Housekeeping ciklus

isteku tog vremena postavi


Da ER = 1 TO bit. Sve dok je ST bit
ST = 0
DN = 1
postavljen, u svakom
sledeći
ciklus po ST = 0 hosekeeping ciklusu,
prijemu (ako je MSG read
podaci se unose u
procesor testira TO bit.
odgovra
destination file) Kad ustanovi da je TO bit
postavljen, procesor
prekida dalje čekanje
Programski sken

odgovora i javlja da je
EN = 0 došlo do greške u
(ako je uslov
neistinit) prenosu.
Ukoliko, procesor
ne primi ACK signal on će
SL. 7-21 ALGORITAM KOMUNIKACIJE U LOKALNOM ČVORU u sledećem programskom
skenu, kada naiđje na msg
naredbu, inicirati još jedan pokušaj slanja paketa. Ukoliko i drugi pokušaj bude neuspešan
prijavljuje se greška. NR bit služi kao interni brojač za broj pokušaja slanja paketa (u
drugom prolazu kroz MSG naredbu on je 0, a u trećem 1).
Plc_comnaredbe_SLC/146

Ukoliko target čvor


uspešno primi paket on će
poslati odgovarajući odgovor (Sl.
7-22). Po prijemu odgovora, u
toku housekeeping ciklusa,
lokalni čvor će analizirati
primljeni paket. Ako je paket
ispravan postaviće se DN bit i
resetovati ST bit. Ako nije,
postaviće se ER bit. Tek nakon
toga, u sledećem programskom
skenu, EN bit će biti resetovan
ukoliko je uslov neistinit. Ukoliko
je, medjutim, uslov istinit
SL. 7-22 MOGUĆI ODGOVORI TARGET ČVORA
iniciraće se novi prenos
podataka.
Napomenimo da se za procesore SLC5/03 i više opisana procedura odvija
paralelno za sva četiri bafera po svakom od komunikacionih kanala. To tnači da oni mogu
imati do osam istovremeno aktivnih msg prenosa.
Konačno, eternet komunikacija nema ACK/NAK mehanizam. Kod ove
komunikacije ST bit se postavlja kada eterenet komunikacioni podsistem interno
signalizira da je primio naredbu od procesora i da će je proslediti preko mreže.

7.2.7. PRIMERI KORIŠĆENJA MESAGE NAREDBI


PR. 7-4 KOMUNIKACIJA DVA SLC KONTROLERA
ZADATAK
Kontroler SLC 5/02 vezan je za senzor temperature, kontroler SLC 5/01 obezbeđuje
upravljački signal za ventilator. Kontroleri komuniciraju preko mreže DH 485. Za proveru
ispravnosti prenosa podataka koristi se interlock bit. U slučaju otkaza oba kontrolera prestaju sa
radom.
REŠENJE
Šematski prikaz sistema
dat je na (Sl. 7-23). Budući da oba
1 - On kontrolera imaju samo kanal 0, oni
0 - Off se vezuju u DH485 mrežu preko
AIC interfejsa.
Senzor temperature
SLC 5/02 SLC 5/01 spregnut je preko prekidača
osetljivog na temperaturu sa
ulaznim modulom kontrolera SLC
O:1/0
I:1/0 5/02 na pinu čija je adresa I:1/0.
Ovaj senzor upravlja radom
ventilatora koji je prikačen preko
Cvor 0 Cvor 1
izlaznog modula kontrolera SLC
DH485 5/01 na adresi O:1/0. Perioda
AIC

AIC

odabiranja je 1280 ms. Ventilator

SL. 7-23 SPREGA SENZORA I VENTILATORA radi (izlazni bit 1) ako je


temeperatura prešlu neku
odredjenu granicu (ulazni bit 1).
Za prenošenje podatka o temperaturi u kontroler SLC 5/01 koristi se izvorna datoteka
(source file) u kontroleru SLC 5/02 koja sadrži samo jedan elemenat i njena adresa je N7:0. Ova
informacija se smešta u kontroleru SLC 5/01 u datoteci N7:0.
Informacija koja se prenosi iz kontrolera SLC 5/02 u kontroler SLC 5/01 (write naredba)
organizovana je tako da nulti bit N7:0/0 izvorne datoteke pretstavlja interlock bit dok prvi bit N7:0/1
pretstavlja indikator temperature (Sl. 7-24). Identično je organizovana i izvorna datoteka koja se iz
kontrolera SLC 5/01 prenosi u kontroler SLC 5/02 (read naredba).
Plc_comnaredbe_SLC/147

Kontrola ispravnosti
prenosa vrši se tako što se
interlock bit u kontroleru
SLC 5/02 postavlja na 1 i
prenosi u SLC 5/01. Zatim
ga SLC 5/01 resetuje, tako
da se pri očitavanju taj bit
vraća sa vrednošću 0. SLC
5/02 proverava vrednost
ovog bita i ukoliko on nije
resetovan u roku od 4
sekunde prijavljuje se
greška u komunikaciji. U
SL. 7-24 DATOTEKA KOJA SE PRENOSI
tom slučaju kontroler čiji
časovnik odbroji 4 sekunde
pali signalnu lampu koja je vezana za digitalni izlaz (O:1/0 za SLC5/02, i O:1/1 zaq SLC5/01).
U skladu sa izloženim reč N7:0
treba da ima vrednost 1 ili 3 za vreme
izvršavanja write naredbe, a 0 ili 2 za
vreme izvršavanja read naredbe.
Za kontrolu vremena odabiranja
koristi se interni časovnik koji je
smešten u datoteci stanja na adresi
S:4/0. Vrednost ovog registra se
SL. 7-25 INTERNI ČASOVNIK postavlja na nulu pri puštanju kontrolera
u rad. Prvih osam bitova ovog registra
(S:4/0 do S:4/7) menjaju se sa učestanostima od 20, 40, 80, 160, 320, 640, 1280, i 2560 ms (Sl.
7-25). Pri tome u prvoj polovini ciklusa bit ima
vrednost 1, a drugoj polovini 0 (Sl. 7-26). To znači da
je za tačno praćenje promene bita neophodno da se
njegova vrednost očitava sa učestanošću koja je
nešto manja od polovine odgovarajuće periode.
Indikator prvog prolaza kroz program je bit
S:1/15, koji početno ima vrednost 1, a zatim se
SL. 7-26 SIGNAL KOJI GENERIŠE INTERNI resetuje na nulu.
ČASOVNIK

Kontroler SLC5/01 Kontroler SLC5/02

SL. 7-27 KONFIGURACIJA KONTROLERA ZA KOMUNIKACIJU PREKO DH485 MREŽE


Konfiguracija kontrolera prikazana je na Sl. 7-27, a definisani upravljački blokovi za
message naredbe u kontroleru SLC5/02 na Sl. 7-28. odgovarajući programi prikazani su na Sl.
Plc_comnaredbe_SLC/148

7-29 i Sl. 7-30.

SL. 7-28 KONTROLER SLC5/02 MSG UPRAVLJAČKI BLOKOVI

SL. 7-29 LEDER PROGRAM ZA KONTROLER SLC 5/01


Plc_comnaredbe_SLC/149
Plc_comnaredbe_SLC/150

SL. 7-30 LEDER PROGRAM ZA KONTROLER SLC 5/02

PR. 7-5 – KORIŠĆENJE TAJMAUT INTERVALA


ZADATAK
Napisati leder program koji omogućava pet sukcesivnih pokušaja prenosa poruke i pali
kontrolnu sijalicu ako se komunikacija ne uspostavi. Svaki pokušaj traje 2 sekunde.
REŠENJE
Ako se ovaj zadatak realizuje pomoću kontrolera SLC5/02, onda je neophodno da se
koristi časovnik koji će postavljati TO bit posle isteka intervala od 2 sekunde. Postavljanjem ovog
bita, prenos se prekida.
Međutim, ako se koristi kontroler SLC5/03 ili viši, onda se u okviru definicije msg naredbe
može definisati dozvoljeni interval čekanja, pa će se prenos automatski prekidati kada taj interval
vremena istekne.
U oba slučaja, pošto se želi odmah ponoviti prenos, mora se resetovati upravljačka reč.
Naime, msg naredba će resetovati upravljačke bitove tek pri sledećem prelazu sa istinit na neistinit,
dok je u ovom slučaju uslov u rangu stalno istinit.

Kontroler SLC5/02 - upravljački blok i odgovarajući program prikazani su na Sl. 7-31 i Sl. 7-32.

SL. 7-31 UPRAVLJAČKI BLOK ZA MESSAGE NAREDBU U KONTROLERU SLC 5/02


Plc_comnaredbe_SLC/151

SL. 7-32 LEDER PROGRAM ZA KONTROLER SLC 5/02


Plc_comnaredbe_SLC/152

Kontroler SLC5/03 upravljački blok i odgovarajući program prikazani su na Sl. 7-33 I Sl. 7-34.

SL. 7-33 UPRAVLJAČKI BLOK ZA MESSAGE NAREDBU U KONTROLERU SLC 5/03

SL. 7-34 LEDER PROGRAM ZA KONTROLER SLC 5/03


Plc_com_SLC/153

8. KOMUNIKACIJA SLC-A

8.1. KONFIGURISANJE KOMUNIKACIONIH KANALA SLC KONTROLERA


Sa gledišta savremene primene PLCova u industriji nemoguće je zamisliti
izolovani PLC koji bi obavljao neku funkciju. Kontroleri su, naime, uvek deo nekog
decentralizovanog hijerarhijski organizovanog sistema. Oni se nalaze u mreži i po prirodi
stvari moraju međusobno razmenjivati čitav niz informacija. U skladu sa time neophodno
je da svaki kontroler ima mogućnost priključivanja na jedan ili više tipova industrijske
mreže i da je u stanju da komunicara na toj mreži u skladu sa datim protokolom.
Kontroleri iz familije SLC podržavaju sledeće komunikacione protokole:
• DH-485 - multi-master mreža sa rotirajućim žetonom koja može da podrži do 32 čvora.
Protokolom je omogućeno
da se sa jedne lokacije (jednog čvora u mreži u kome se nalazi neki PC) prate
podaci i stanje procesora bilo kog kontrolera u mreži. Istovremeno se sa te
lokacije može izvršiti i prenošenje programa (up-load i down-load) iz bilo kog
kontrolera
komunikacija između dva kontrolera (peer-to-peer)
pristup bilo kom kontroleru u mreži pomoću operatorskog terminala koji se
nalazi u istoj mreži.
• DH+ - ovaj protokol je sličan protokolu DH-485. Jedina razlika je u tome što podržava
do 64 čvorova i radi sa većim brzinama prenosa
• Ethernet – pored opcija koje podržavaju protokoli DH-485 i DH+ ovaj protokol
omogućava
podršku SNMP za upravljanje Eternet mrežom
dinamičku konfiguraciju IP adresa pomoću BOOTP opcije
slanje kompletnih korisničkih datoteka podataka u okviru jedne poruke
neograničen broj čvorova u mreži
maksimalno 16 istovremeno otvorenih prenosa poruka (4 dolazeće, 4
odlazeće i 8 bilo dolazećih, bilo odlazećih poruka)
• DF1 Puni-dupleks (DF1 point-to-point) protokol - omogućava istovremenu dvosmernu
komunikaciju dva uređaja. Ovaj protokol se koristi za prenos informacija uz pomoć
modema, kao i za komunikaciju AB proizvoda sa proizvodima drugih kompanija
• DF1 Polu-dupleks (Master i Slave) protokol - omogućava realizaciju mreže sa
višestrukim emitovanjem (multi-drop single master/multiple slave) koja može imati
najviše 255 čvorova. Pored toga on podržava i komunikaciju uz pomoć modema. Multi-
drop karakter mreže čini ga veoma pogodnim za SCADA aplikacije.
• ASCII protokol - omogućava povezivanje kontrolera sa drugim ASCII uređajima kao
što su čitači bar-kodova, serijski štampači itd.

Kontroleri SLC 5/01 i SLC 5/02 imaju samo jedan komunikacioni kanal (Kanal 1)
koji je prilagodjen mreži DH-485 i to SLC 5/01 kao responder, a SLC 5/02 i kao inicijator
komunikacije i kao responder.
Kontroleri SLC 5/03, SLC 5/04 i SLC 5/05 imaju raznovrsnije komunikacione
opcije. Oba kontrolera imaju dva komunikaciona kanala:
• Kanal 0 (RS-232) - koji se može povezati direktno na RS-232 komunikaciju (veza
tačka na tačku) i konfigurisati tako da podržava DF1 ili ASCII protokol, ili na DH-485
Plc_com_SLC/154

mrežu preko posebnog modula za prilagodjenje (PIC).


• Kanal 1: DH-485 za SLC/03, DH+ za SLC/04 i Ethernet za SLC/05.

Mreža se konfiguriše programski na isti način


na koji se specificiraju ostale karkateristike
kontrolera. Ovo se postiže izborom opcije Channel
Configuration u meniju (Sl. 8-1), kojom se otvara
prozor za konfiguraciju kanala.
Oni kontroleri koji imaju dva kanala mogu da
budu čvorovi u dve različite mreže. Samo se po sebi
razume da je u tom slučaju neophodno da se
konfigurišu protokoli za oba kanala.

8.1.1. KONFIGURACIJA KANALA 0


Postoji posebna specifičnost vezana za
konfiguraciju kanala 0. Naime, ako on nije
konfigurisan da radi u DH485 mreži, onda je njegov
drajver određen statusom u kome se kontroler nalazi.
Pri tome kontroler može biti u
SL. 8-1 OTVARANJE MENIJA ZA
KONFIGURISANJE MREŽE • System mode – komunikacija se obavlja preko
DF1 protokola
•User mode – komunikacija se obavlja preko ASCII protokola.
Informacija o stanju u kome se nalazi kanal 0 pamti se u statusnom registru na
adresi S:33/3. Pri tome važi
• S:33/3=1 – kanal 0 - system mode (DF1)
• S:33/3=0 – kanal 0 - user mode (ASCII)
U principu ova informacija se definiše prilikom konfigurisanja mreže. Međutim,
postoji mogućnost da se ona i
dinamički menja, tako da isti
čvor može da u nekom periodu
vremena koristi jedan, a u
nekom periodu drugi protokol.
Ovo se postiže u okviru menija
za konfiguraciju u kome pod
stavkom Channel 0 (SL. 8-2),
postoje sledeće opcije.
• Mode – inicijalni izbor
načina komunikacije preko
kanala 0 (system ili user)
• Mode Change Enabled –
odabiranjem ove opcije
omogućava se promena
načina komunikacije u toku
rada kontrolera. Promena se
SL. 8-2 MENI "GENERAL" ZA KONFIGURISANJE MREŽE vrši prijemom
odgovarajućeg karaktera
sa nekog spoljnjeg uređaja
• Mode Attention Char acter – specifikacija karaktera koji će procesoru da ukaže da
sledeći karakter koji se primi ima značenje zahteva za promenom načina rada. Karakter
može biti bilo koja heksadecimalna konstanta ili ASCII karakter. Default vrednost je \1b
Plc_com_SLC/155

(Esc)
• System Mode Char acter – ovaj karakter sledi Mode Attention Character i ukazuje
procesoru da treba da pređe u system mode. Karakter može biti bilo koja
heksadecimalna konstanta ili ASCII karakter. Default vrednost je S.
• User Mode Charact er - ovaj karakter sledi Mode Attention Character i ukazuje
procesoru da treba da pređe u user mode. Karakter može biti bilo koja heksadecimalna
konstanta ili ASCII karakter. Default vrednost je U.

8.1.2. OPŠTE SPECIFIKACIJE MREŽE


Nezavisno od tipa mreže, neophodno je da se u okviru konfigurisanja kanala
definiše niz zajedničkih parametara, što se postiže izborom opcije General (SL. 8-2).
Parametri koje je potrebno definisati u okviru ovog menija imaju sledeće značenje.
Driver – informacija o specificiranom drajveru (odnosno tipu mreže) za odgovarajući kanal
• W r ite pr o t ec t e d – ukoliko se izabere ova opcija upisivanje podataka preko tog kanala nije
dozvoljeno.
Potrebno je obratiti pažnju da se, ukoliko je ovaj kanal jedini korišćeni komunikacioni kanal, ovom
opcijom može u potpunosti blokirati svaka eventualna buduća promena programa, jer upisivanje
preko njega više neće biti dozvoljeno
• P as s t hr u L i nk ID ( d e c ) – identifiktor eventualnog "bridge-a" koji omogućava razmenu
poruka između dve mreže. Parametar je decimalni broj između 1 i 16. Default vrednost je 1 za
kanal 0 i 2 za kanal 1. (Kasnije će biti više reči o ovoj opciji.)
• E di t Res o ur c e /O wn er Ti m eo ut – period vremena posle koga se prekida komunikacija,
odnosno obustavljaju pokušaji da se pošalje poruka. Dozvoljeni vremeski interval je između 1 i
16535. Automatski se postavlja na 60 (default vrednost).
• Di a gn os tic F i le – parametar koji definiše broj korisničke celobrojne datoteke podataka
(između 9 i 255) koja se koristi za smeštanje informacija o toku komunikacija. (Ovu opciju imaju
samo neki kontroleri 03 i svi kontroleri 04 i 05). Ukoliko se kao broj datoteke postavi 0, to znači
da se ne želi konfigurisanje ove datoteke.
Dijagnostička datoteka je "read-only" tipa. To znači da se datoteka može resetovati samo
pomoću posebne naredbe - Clear Diagnostic Counters PCCC naredba.
Preduslov za dobijanje informacije o statusu kanala je da odgovarajuća dijagnostička datoteka
bude definisana.

8.2. DH-485 MREŽA


Ova mreža može da podrži komunikaciju 32 uredjaja na rastojanju od 1219m.
Mreža je zasnovana na RS 485 standardu nad kojim je nadgradjen Allen Bradley protokol,
koji uključuje token ring (IEEE 802.5) standard.
DH485 protokol podržava dve klase uredjaja: inicijatore (initiator) i odazivače
(responder). Svi inicijatori na mreži dobijaju priliku da iniciraju prenos poruke. Pravo
inicijatoru da emituje poruku dodeljuje se pomoću token algoritma.
Svi kontroleri iz SLC familije mogu da se povežu na DH-485 mrežu, s tim što samo
kontroleri u klasama od SLC5/02-05 mogu da rade i kao inicijatori i kao responderi.
Preostali kontroleri su samo
responderi. Pored toga, PC
računari, ručni terminali i još
neki drugi uredjaji mogu da
se povežu na mrežu kao
inicijatori.
Veza sa mrežom se
uspostavlja preko posebnog
modula AIC (Advanced
Interface Converter i Isolated
SL. 8-3 VEZIVANJE UREĐAJA U DH485 MREŽU
link coupler), koji se vezuje
Plc_com_SLC/156

direktno za DH485 port. Oni uredjaji koji nemaju DH485 port vezuju se za AIC modul
preko posebnih modula kao što su PIC (Personal interface converter), BAS (Basic
module) ili NET AIC (Advanced Interface Converter – AIC+) itd (SL. 8-3).
Čvor koji poseduje žeton (token) ima pravo da pošalje bilo koju validnu poruku.
Svakom čvoru kad dobije žeton dozvoljava se slanje određenog broja paketa. Ukupni broj
emitovanja (zajedno sa ponovnim pokušajima ukoliko emisija nije bila uspešna) definiše
se pomoću posebnog parametra (Token hold parameter). Kada čvor završi emisiju, on
šalje tocken pass packet koji treba da primi njegov sukcesor. Ukoliko posle toga ne dodje
do aktivnosti na mreži, što znači da sukcesor nije primio žeton, inicijator šalje još jedan
paket. Posle dva neuspešna pokušaja inicijator pokušava da pronadje sledećeg
sukcesora.
Maksimalna adresa koju će inicijator tražiti pre nego što ponovo počne od nultog
čvora je vrednost parametra maximum node adress. Ovo je konfigurabilni parametar (od
0 do 31). Dozovoljene adrese respondera su od 1 do 31. Očigledno je da ova mreža može
da funkcioniše ukoliko se u njoj nalazi bar jedan inicijator.
Kontroleri SLC tipa ne mogu imati adresu 0. Nulti čvor rezervisan je za operatroski
terminal ili PC na kome se programira kontroler. U skladu sa time dozvoljene adrese
čvorova u kojima se nalaze SLC kontroleri su od 1 do 31.
Inicijalizacija mreže započinje kada period neaktivnosti postane veći od parametra
link dead timeout. U tom
trenutku inicijator koji ima
najmanju adresu uzima žeton.
Formiranje mreže započinje
kada inicijator koji je prvi uzeo
žeton pokuša da ga pošalje
svom sukcesoru. Ovaj proces se
nastavlja sve dok žeton ne
napravi pun krug i vrati se do
prvog inicijatora. U tom trenutku
mreža je u stanju normalnog
rada.
Konfigurisanje kontrolera
koji se nalazi u jednom čvoru
mreže započinje izborom kanala
(0 ili 1) preko koga se vezuje
mreža. Konfiguracija se
SL. 8-4 KONFIGURISANJE DH485 MREŽE
realizuje uz pomoć menija (Sl.
8-4) koji je na raspolaganju
kada se pozove opcija Chanel configuration. U okviru tog menija definišu se sledeći
parametri.
• Max . N od e Adr es s – ovaj parametar definiše najveću adresu koju će mreža tražiti kao
inicijatora, pre nego što token krene ponovo od adrese nula. U principu, što je ovaj broj manji to
je brzina veća, ali se kasnije novi uredjaji ne mogu dodati na mrežu na adrese koje su veće od
ovog parametra. Ovaj broj direktno utiče na prenos podataka izmedju čvorova. Naime, budući da
mreža radi na token-ring principu neophodno je eliminisati sve suvišne čvorove. Maksimalni
dozvoljeni broj čvorova je 32.
• No d e Adr es s - adresa čvora u kome se nalazi kontroler koji se konfiguriše. Najbolja
performansa mreža dobija se ako adrese počinju od nule i redjaju se sekvencijalno. (Kontroleri
SLC 500, ne mogu imati adresu 0).
• B au d r a t e – brzina prenosa. Svi uredjaji moraju biti konfigurisani za istu brzinu.Najbolja
performansa je na najvećoj brzini od 19,200.
• T ok en h o l d fac to r – određuje broj transakcija (između 1 i 4) koje čvor može da izvrši pre
nego što preda žeton. U principu veći broj transakcija povećava propusnu moć kontrolera u tom
čvoru, ali smanjuje propusnu moč ostalih čvorova u mreži.
Plc_com_SLC/157

Informacije o
rezultatima komunikacije
dobijaju se iz datoteke
stanja (SL. 8-5), izborom
odgovarajućeg menija.
Kao što se vidi
informacije se sastoje od
broja ponavljanja
različitih situacija koje
mogu nastati pri slanju
poruke.
SL. 8-5 INFORMACIJE KOJE SE DOBIJAJU IZ DIJAGNOSTIČKE DATOTEKE
DH485 MREŽE

8.3. DH+ MREŽA


DH+ (Data Highway Plus) koristi peer-to-peer komunikaciju sa rotirajućim žetonom
(token-passing) kojim se dodeljuje upravljanje komunikacijom pojedinim čvorovima.
Budući da se ovom tehnikom komunikacije izbegava prozivanje čvorova (polling) ona
obezbeđuje pouzdan i efikasan prenos podataka. Moguće brzine prenosa su 57.6K baud,
115.2K baud, or 230.4K baud.
DH+ mreža se koristi za udaljeno programiranje kontrolera koji imaju DH+
priključak (PLC-2, PLC-3 i PLC-5), za direktno povezivanje kontrolera PLC-5 i industrijskih
terminala.
U slučaju da se žeton izgubi, zbog kvara u nekom čvoru, mreža koristi fabrički
definisan tajmaut interval za ponovno otpočinjanje rotiranja žetona.
Ova mreže se konfiguriše na isti način na koji se to radi i sa DH485 mrežom.
Jedina razlika se sastoji u tome što se kao kanal 1, kod procesora SLC-5/04 kao opcija za
tip mreže unosi DH+.
Razlika postoji i u podacima koji se dobijaju u dijagnostičkoj datoteci (SL. 8-6).
Informacije koje se dobijaju iz prva tri prozora koja se odnose na prenos poruka,
kao i prenos podataka sa potvrdom (SDA – Senda Data with Acknowledgement), odnosno
bez potvrde (SDN-Send Data with Negative-Acknowledgement), su samorazumljive.
Potrebno je samo istaći da skraćenica SAP označava Service Access Point, koji iz nekog
razloga može biti isključen.
Da bi se jasnije sagledale opšte informacije neophodno je da se detaljnije razmotri
način rada mreže. Ukoliko na mreži nema saobraćaja (network dead), što znači da
nijedan čvor ne poseduje žeton (npr čvor koji je imao žeton je iz nekog razloga isključen),
tada se inicra proces traženja žetona (claim token sequnce). Od svih čvorova koji su
uključeni u traženje, žeton dobija čvor sa najmanjom adresom. (Informacije o tome koliko
puta je čvor dobio ili nije dobio žeton pamte se kao claim won, odnosno claim lost).
Svaki čvor poseduje listu aktivnih čvorova koji mogu da upravljaju komunikacijom,
odnosno koji očekuju da u nekom trenutku dobiju žeton. Kada čvor koji ima žeton završi
komunikaciju on pokušava da prosledi žeton sledećem čvoru koji se nalazi u listi aktivnih
čvorova. Pri tome se može dogoditi da je u međuvremenu u mrežu dodat čvor čija se
adresa nalazi između adrese čvora koji ima žeton i adrese čvora koji treba da ga dobije. U
tom slučaju, čvor koji poseduje žeton, registruje uključivanje novog čvora (New
Successor) i njemu prosleđuje žeton.
Čvor koji pošalje žeton proverava da li ga je sledeći čvor primio. Ukoliko nije, čvor
ponavlja slanje žetona (Token Retry). Ako i posle ponovnog pokušaja naredni čvor ne
primi žeton (Token Failed), on se šalje sledećem čvoru u listi aktivnih čvorova. Ako
nijedan od čvorova ne primi žeton, čvor koji poseduje žeton inicira skeniranje svih čvorova
u mreži (Started Linear Scan) pokušavajući da nađe neki koji će primit žeton. U koliko u
tome ne uspe (Linear Scane Failed), čvor će ponovo aktivirati sken ciklus.
Plc_com_SLC/158

SL. 8-6 INFORMACIJE KOJE SE DOBIJAJU IZ DIJAGNOSTIČKE DATOTEKE DH+ MREŽE


U toku rada mreže može se desiti da neki čvor primi detektuje istu adresu kao što
je njegova (Duplicate Address). To znači da se radi o neispravnom odgovoru na neku
poruku. Ova situacija može nastati kada čvor primi odgovor od čvora sa kojim nije
uspostavio komunikaciju. U tom slučaju on predpostavlja da ta poruka nije namenjena
njemu, već nekom drugom čvoru koji ima istu adresu kao i on, pa se zato deaktivira
(Dropped Token).
Plc_com_SLC/159

Čvor, koji se isključio sa mreže, se može vratiti u mrežu samo nakon pozivanja.
Naime, u toku slanja žetona ispituju se sve stanice koje nisu aktivne na mreži da bi se
utvrdilo da li neka od njih treba da postane aktivna. Ovaj postupak se odvija sekvencijalno
i to tako što se pri svakom slanju žetona ispituje po jedna stanica. Prozvana stanica se
može uključiti u mrežu. Kada se na ovaj način ispitaju sve stanice, završena je jedna
rotacija (Solicit Rotation) i može da započne druga.
GLOBAL STATUS W ORD AND FILE
U toku slanja žetona procesor može da šalje i global status word (GSW)
koji primaju svi čvorovi u mreži. Ova reč se nalazi u datoteci statusa na adresi
S:99 i može da služi za prenošenje informacija o statusu kao i za sinhrnoizaciju.
Svaki procesor ima jednu tabelu (global status file) koja zauzima 64 reči u
datoteci statusa (adrese od S:100 do S:163). Na ovim lokacijama se smeštaju
GSW koje šalju pojedini čvorovi u mreži.
Slanjem i primanjem GSWa se upravlja pomoću dva bita u datoteci statusa.
Ako je bit na adresi S:34/3 (GSW transmit enable bit) postavljen na 1, procesor će
zajedno sa žeton slati i svoj GSW. Ukoliko je bit S:43/4 (GSW receive enable bit)
postavljen na 1 procesor će pri svakom prolasku žetona primiti GSW koji je poslao
čvor koji šalje žeton i smestiti tu informaciju na odgovarajuću adresu u tabeli.

8.4. ETERNET MREŽA


Kao što je već rečeno, SLC 5/05 podržava eternet komunikacuju preko kanala 1.
Pri tome se vezivanje kontrolera na lokalnu mrežu ostvaruje preko ugrađenog konektora
koji odgovara standardu ISO/IEC 8802-3 STD 802.3 i korsiti 10 Mbps parice 10Base-T
(parice 10 Mbps). Ovaj konektor se preko odgovarajućih konvertora, habova ili prekidača
može povezati na :
optički kabl
širokopojsne veze
koaksijalni kabl (10Base-5 i 10Base-2)
parice (100 Mbps 100Base-T i 1000Mbps 1000Base-T)
Performansa procesora zavisi od veličine i učestanosti eternet poruka, opterećenja
lokalne mreže, kao i performase korisničkog programa koji je implementiran u procesoru.
Procesor koristi TCP/IP protokol za uspostavljanje sesija i slanje poruka.

8.4.1. KONFIGURACIJA ETERNET MREŽE


Konfiguracija kontrolera koji je čvor u eternet mreži može da se ostvari pomoću
BOOTP zahteva u toku podizanja kontrolera ili postavljanjem parametara za konfiguraciju
pomoću RSLogix 500 softvera.
Ukoliko se mreža konfiguriše pomoću softvera, pored standardnih parametara
(write protected, passthru link, timeout i diagnostic file) koji se definišu na isti način kao i
kod mreža DH485 i DH+, eternet mreža zahteva i definisanje specifičnih parametara (SL.
8-7). Pored uobičajenih parametara namenjenih TCP/IP protokolu, i perioda čekanja
(tajmaut) na uspostavljanje komunikacije, definišu se i
• DH RIO L i nk I D – je veza specificirana za taj kontroler u 1756-DHRIO modulu pomoću koga se
uspostavlja komunikacaja sa nekim DH+ uređajem
• P as s T hr u r o u ti n g t a b l e f i l e – celobrojna datoteka (N) rednog broja od 9 do255 u koju se
smešta najviše 128 IP adresa. Ovim adresama se može pristupiti preko uređaja koji su povezani
na kanal 0 i koriste ili DF1 puni dupleks ili DH485 protokol.

BOOTP je standardni protokol koji TCP/IP čvorovi koriste pri podizanju mreže. Pri
uključivanju kontrolera koji je povezan na eternet mrežu on, po pravilu, šalje zahtev za
Plc_com_SLC/160

BOOTP koji omogućava


dinamičko dodeljivanje adresa.
Pri tome se podrazumeva da
na lokalnoj eternet mreži
postoji BOOTP server,
odnosno računar koji ima
odgovarajući softver pomoću
koga očitava tekstualnu
datoteku koja sadrži
informacije o pojedinim
čvorovima na mreži. Opcija
BOOTP se može uključiti ili
isključiti postavljanjem
odgovarajućeg signala u
meniju za konfiguraciju mreže.
Tekstualna datoteka
BOOTPTAB (Windows based
BOOTP) se nalazi i
C:\ABIC\BIN katalogu . Ona
sadrži sledeće dve linije koda
Sl. 8-7 Meni za konfiguraciju Eternet komunikacije

#Default string for each type of Ethernet client defaults5E: ht=1:vm=rfc1048


plc5name: tc=defaults5E:ip=aa.bb.cc.dd:ha=0000BC1Dxxyy
Ove dve linije se popunjavaju za svaki od kontrolera koji se priključuje na mrežu.

PR. 8-1
Predpostavimo da se želi formirati mreža sa 3 kontrolera kao što je to prikazano na slici.
Neka su adrese kontrolera definisane na sledeći način

U tom slučaju odgovarajuća BOOTPTAB datoteka ima sledeći izgled


Plc_com_SLC/161

PR. 8-2
Posmatra se konfiguracija mreže prikazane na slici.

Odgovarajuće tekstualne datoteke su


Plc_com_SLC/162

8.4.2. DIJAGNOSTIČKA DATOTEKA


Informacije koje se dobijaju u dijagnostičkoj datoteci prikazuju se u odgovarajućim
prozorima (SL. 8-8).

SL. 8-8 INFORMACIJE KOJE SE DOBIJAJU IZ DIJAGNOSTIČKE DATOTEKE ETHERNET MREŽE


Plc_com_SLC/163

8.5. RS-232 INTERFEJS


RS-232 je komunikacioni interfejs koji omogućava komunikaciju na većim
rastojanjima. On podržava komunikaciju do 19.2 Kbaud-a na rastojanjima izmedju
uredjaja koja su manja od 15.24 m. Osnovna karakteristika ovog interfejsa je da on
omogućava integraciju telefonskih i radio modema. Na taj način, ova mreža može da
pokrije praktično neograničeno rastojanje.
RS-232 interfejs podržava dva tipa protokola: DF1 i ASCII. DF1 protokol
omogućava transparentnost podataka i simultani prenos u oba smera sa ugradjenim
Pin Pin name odgovorom (F1). On pripada
1 DCD Data carrier detect klasi "peer-to-peer" link-layer
2 RXD Receive data protokolu, što znači da svi
uredjaji imaju ravnopravni
3 TXD Transmit data
pristup porukama koje se
4 DTR Data terminal ready šalju preko RS-232
5 COM Common return [signal ground] komunikacionog interfejsa.
6 DSR Data set ready RS-232
7 RTS Request to send komunikacioni port kod SLC
8 CTS Clear to send kontrolera je kanal 0. To je 9-
9 NC No connection to pinsko D-jezgro čiji je opis
pinova dat na SL. 8-9.
Uredjaji koji ne podržavaju
SL. 8-9 RASPORED PINOVA NA RS-232 PORTU RS-232 direktno mogu se
vezivati na ovu komunikaciju
preko specijalnih interfejs modula.
• DH- 48 5 /R S- 2 32 Inerface module (KE) – "bridge" izmedju DH-485 mreže RS-232
komunikacije koja koristi DF1 protokol
• DH- 48 5 Communication interface (KF3) - služi kao veza RS-232 komunikacije sa DH-485
mrežom. Naime, PC računar komunicira sa ovim modulom preko DF1 protkola. Sa druge strane,
ovaj modul je jedan od čvorova DH-485 mreže, pa se preko njega ostvaruje komunikacija sa
ostalim čvorovima u mreži.
• B A SI C mo d u le ( BA S) – ima dva konfigurabilna serijska porta za interfejs sa PC računarima,
štampačim, modemima i drugim RS-232 uredjajima. Pored toga ovaj modul ima i jedan DH-485
port. Module se programira pomoću jezika BASIC.

8.6. DF1 PUNI DUPLEKS PROTOKOL (POINT-TO-POINT)


Ovaj protokol podržava simultani prenos podataka izmedju dva uredjaja u oba
smera (point-to-point protokol, Sl. 8-10).
Kanal nula koji je konfigurisan za ovaj
protokol može da se koristi za programiranje
PLCa (spregnut sa PC računarom na kome
modem se nalazi razvojni softver) ili, korišćenjem msg
modem
naredbe, za peer-to-peer komunikaciju
Kada SLC šalje poruku ona je u obliku
"ugradjenog odgovora" (embedded
modem responce), što znači da se odgovorajaći
modem simboli odgovora ubacuju u paket koji se
šalje. Kada SLC prima poruku on igra ulogu
SL. 8-10 VEZIVANJE KANALA 0 PO PRINCIPU terminalnog uredjaja (end device), zaustavlja
POINT-TO-POINT
privremeno prenos paketa ignorišući adresu
izvora i odredišta koja je sadržana u paketu. Medjutim, on će proslediti te adrese u
odgovoru koji emituje kao odziv na svaki paket koji je primio.
Podešavanjem posebnog parametra moguće je zahtevati da SLC proveri da li
Plc_com_SLC/164

računar sa kojim on komunicira može da primi paket sa ugradjenim odgovorom. U tom


slučaju SLC će sačekati da primi taj odgovor, pre nego što sam pošalje svoj odgovor.

8.6.1. KONFIGURACIJA KONTROLERA


Karakteristike drajvera definišu se u okviru menija za specifikaciju kanala 0 (Sl.
8-11).
• B au d e r a t e – izbor
jedne od mogućih brzina
prenosa 110, 300,600,
1200, 2400, 4800,9600,
19200
• P ar it iy – none ili even
• St o p b its – 1, 1.5 ili 2
• S our c e ID – decimalan
broj koji se koristi kao
adresa izvora u bilo kojoj
poruci koju šalje ovaj
kontroler. U koliko je DF1
pass-thru omogućen
(S:34/5=1), ovaj podatak
treba da bude jednak
adresi kanala 1 na DH+
mreži (za kontrolere SLC-
5/04), odnosno adresi
kanala 0 na DH485 mreži
(za kontrolere SLC-5/05).
• Co ntr o l Li n e – ako se
ne koristi modem
SL. 8-11 MENI ZA KONFIGURACIJU DF1 PUNOG DUPLEKS PROTOKOLA odabrati No
handshaking, ako se
koristi modem odabrati Full duplex modem
• Er r or d et ec t i o n – CR C i l i B CC
• E mb e dd e d r es p ons es – e na b l ed (povećava efikasnost transporta pri komunikaciji sa
drugim AB uređajima) ili autodetect (ukoliko se želi koristiti samo kada se detektuje ugrađeni
odgovor u poruci primljenoj sa drugog uređaja)
• Du p l ic a te pac k e t de t ec t – ukoliko se odabere ova opcija onda procesor upoređuje
primeljeni paket sa poslednjom primljenom i obrađenom porukom. Ukoliko su obe poruke iste,
procesor šalje ACK signal, ali ne obrađuje poruku ponovo.
• Ac k t i m eo u t – period čekanja na Ack signal. Ukoliko se signal ne primi, procesor ponavlja
zahtev slanjem Enq (enquire) signala.

8.6.2. DIJAGRAM TOKA PROCESA


Dijagram toka procesa u okviru koga stanica realizuje slanje ili prijem podataka
(read ili write msg naredba) prikazan je na SL. 8-12. Na ovom dijagramu krugovi
predstavljaju stanja u kojima se nalazi stanica koja inicira komunikaciju. Prelaz između
stanja zavisi od ispunjenosti odgovarajućih uslova.
Plc_com_SLC/165

Leder program
aktivira se
Tabela podataka msg naredba
DF1 drajver
formira paket

NAK primljen i > “NAK retries”


ili
primljen “reply timeout” ACK tajmaut primljen I
vrati error indikator > “ENQ retries”
NAK primljen i ≤ “NAK retries”
vrati error indikator
ACK tajmaut primljen I
Drajver šalje
Primljen odgovor ≤ “ENQ retries”
paket
pošalji podatke send enquiry
Start ACK
tajmera
Čeka ACK ili
tajmaut
Drajver šalje
paket ACK primljen
Start ACK
tajmera
Čeka ACK ili
tajmaut

SL. 8-12 DIJAGRAM TOKA PROCESA SLANJA ILI PRIJEMA PODATAKA U DF1 PUNOM DUPLEKSU

8.6.3. DIJAGNOSTIČKA DATOTEKA


U dijagnostičkoj datoteci dobijaju se sve relevantne informacije o uspešnosti
obavljenih komunikacija (Sl. 8-13). Većina imformacija u meniju je samorazumljiva.
Potrebno je jedino da se napomene da DCD Recover parametar ukazuje ne broj padanja
handshake linije.

SL. 8-13 DIJAGRAM TOKA PROCESA SLANJA ILI PRIJEMA PODATAKA U DF1 PUNOM DUPLEKSU

8.7. DF1 POLU-DUPLEKS PROTOKOL


DF1 polu-dupleks protokol podržava multi-drop single master/multiple slave mrežu
Plc_com_SLC/166

u kojoj se komunikacija u jednom trenutku odvija u samo jednom smeru. Pri tome SLC
kontroleri mogu funkcionisati i kao master i kao slave kontroleri.
Kao master SLC periodično sekvencijalno proziva sve slave uredjaje i od njih
prima podatke. Prozivanje jednog uredjaja realizuje se slanjem "poll packet"-a sa adresom
odgovorajućeg slave uredjaja. Ako uredjaj ima podatke koje treba poslati on to i čini. Ako
nema podataka, on će poslati samo dvobajtni odgovor (DLE EOT) kao indikaciju da je i
dalje aktivan. SLC proziva isti slave uredjaj sve dok on ne indicira da nema više podataka
za slanje. Nakon toga SLC master šalje ovom uredjaju pakete koji su njemu namenjeni.
Na taj način master podržava rutiranje paketa izmedju slave uredjaja ili komunikaciju
izmedju dva slave uredjaja. Kao slave SLC može da komunicira samo ako je prozvan od
strane mastera.
U najvećem broju slučajeva master pamti dve odvojene tabele u kojima se nalaze
adrese aktivnih (on-line) i pasivnih (off-line) slave uredjaja. Aktivni uredjaji se prozivaju sa
datom periodom, dok se pasivni proveravaju povremeno da bi se ustanovilo da li je neki
od njih postao aktivan. Master uređaj omogućava i rutiranje paketa sa jednog slave
uređaja na drugi.
Ovaj protokol podržava najviše 255 slave uredjaja (adrese 0 – 254). Adresa 255
se dodeljuje masteru. Pri komunikaciji preko modema mogu se koristiti i polu-dupleks i
puni dupleks modemi.
U principu master/slave komunikacija podrazumeva da slave sam neće inicirati
slanje poruka, niti da će se komunikacija odvijati između dve slave stanice. Ipak Allen
Bradley DF1 protokol, pod određenim, uslovima omogućava i ovaj vid komunikacije.
o Polled report-by-exception – omogućava slave stanici da inicira slanje poruke u
onim slučajevima u kojima je došlo do izvesne promene podataka, umesto da
master iznova i iznova očitava podatke iz slave stanice, čak i kada se oni nisu
izmenili.
o Slave-to-slave messaging – omogućava razmenu poruka između dve slave
stanice. Naime, ukoliko slave stanica ima podatke koje želi da pošalje nekoj
drugoj slave stanici, ona će jednostavno, u msg naredbi koju šalje na poziv
mastera, kao odredišnu adresu umesto adrese master stanice da stavi adresu
slave stanice kojoj je poruka namenjena. Po prijemu svakog paketa, master
proverava odredišnu adresu i ukoliko ustanovi da je ona različita od njegove
adrese, jednostavno prosleđuje celu poruku adresiranoj slave stanici.

8.7.1. DF1 POLU-DUPLEKS STANDARDNI MASTER PROTOKOL


NAČIN KOMUNIKACIJE
Ovaj protokol koristi centralizovani sistem pozivanja slave stanica od kojih prikuplja
podatke. Komunikacija se odvija tako što master stanica poziva jednu po jednu slave
stanicu pitajući je da li ima da pošalje neku informaciju. Sve stanice na mreži "čuju" ovaj
poziv, ali na njega odgovara samo ona stanica kojoj je poziv upućen. Otuda se ovaj način
rada najčešće koristi u point-to-multipoint konfiguraciji mreže.
Pozivanje slave stanica vrši se prema listi prioriteta koju sačinjava korisnik (Sl.
8-14).
Kada je master stanica konfigurisana za standardni način komunikacije, nema
potrebe da se u okviru njenog leder programa posebno programiraju naredbe kojima će
se obaviti pozivanje slave stanica. Komunikacija se odvija automatski i to tako što master
stanica ciklično (round robin princip) šalje jedan ili više četvoro bajtna pozivna paketa
svakoj od stanica čije se adrese nalaze na listi stanica koje treba pozivati. Ovaj proces je
asinhron i potpuno nezavistan od bilo koje msg naredbe koja se nalazi u leder programu.
Msg naredbe za komunikaciju je potrebna samo ukoliko se želi slanje podataka iz master
stanice ili očitavanje podataka iz neke datoteke slave stanice.
Ukoliko se u leder programu master stanice aktivira neka msg naredba, njeno
izvršavanje će odpočeti čim se završi komunikacija sa slave stanicom koja je trenutno
Plc_com_SLC/167

pozvana, i to nezavisno
od položaja stanice
adresirane u msg
naredbi u listi stanica
za pozivanje. Ukoliko
se u jednom
programskom sken
ciklusu aktivira više
msg naredbi, najmanje
četiri poruke mogu biti
SL. 8-14 ILUSTRACIJA KOMUNIKACIJE DF1 POLU-DUPLEKS STANDARD poslane, pre nego što
MESSAGE MODE
se pozove sledeća
slave stanica sa liste. Prenos svake od ovih poruka biće okončan, odnosno slave stanica
će poslati traženi odgovor, kada master stanica, obavljajući pozive prema listi, stigne do
slave stanice koja je adresirana u naredbi. To znači da je redosled okončavanja
komunikacije diktiran položajem stanica u listi, a ne redosledom msg naredbi u programu.
Proces koji se odvija u slave stanici po prijemu pozivnog paketa zavisi od stanja u
redu čekanja za slanje poruka, kao i od izbora konfiguracije mreže. Pre svega, ako slave
stanica ima neku poruku u redu čekanja (ili odgovor na neki ranije primljen zahtev od
mastera, ili poruku koja je inicirana msg naredbom u lokalnom leder programu), ona će
prebaciti tu poruku u izlazni bafer, čime otpočinje njeno slanje. Ukoliko je u konfiguraciji
mreže odabrano single message per scan, onda će master stanica preći na pozivanje
sledeće slave stanice. Međutim, ukoliko je odabran multiple message per scan, master
stanica će nastaviti sa pozivanjem iste slave stanice sve dok se ne isprazni red čekanja,
odnosno dok slave stanica ne pošalje sve svoje poruke. Kao što je već rečeno, slave
stanica označava "kraj emitovanja" slanjem dvobajtnog paketa.
Pri svakom pozivanju, u zavisnosti od toga da li slave stanica odgovara ili ne,
master ažurira listu aktivnih stanica. U tu svrhu, svakoj od mogućih slave stanica (0 do
254) pridružuje se po jedan bit u listi aktivnih stanica. Slanje pozivnog paketa neaktivnim
stanicama obavlja se sa manjom učestanošću od slanja pozivnog paketa aktivnim
stanicama. Ovaj pristup zasniva se na predpostavci da ako jedna stanica nije odgovorila,
ona to neće moći da uradi ni u sledećem pozivu koji će uslediti u veoma kratkom
vremenskom intervalu, što znači da će se samo nepotrebno gubiti vreme na ponavljanju
pokušaja uspostavljanja komunikacije.
U skladu sa izloženim načinom rada očigledno je da se ovaj protokol bira ukoliko
se radi o većim sistemima gde je komunikacija vremenski kritična i gde se želi da se slave
stanice pozivaju u skladu sa korisnički definisanim opsegom pretraživanja i prioriteta.
Pored toga, standardni način je pogodan i u slučajevima kada se očekuje da slave stanica
može sama da inicira slanje poruka, kao i za programiranje slave stanica preko mreže (pri
čemu s ekoristi isti mehanizam kao i pri slave-to-slave komunikaciji).
KONFIGURACIJA KANALA
Specifikacija kanala 0 vrši se pomoću odgovarajućeg menija (SL. 8-15).
• B au d e r a te – izbor jedne od mogućih brzina prenosa 110, 300,600, 1200, 2400, 4800,9600,
19200
• P ar it iy – none ili even
• St o p b its – 1, 1.5 ili 2
• No d e ad dr es s – jedinstvena adresa čvora (0 do 254).
• Co ntr o l L i ne – ako se ne koristi modem odabrati No handshaking, ako se koristi modem
odabrati Full duplex modem. Ako su svi modemi u sistemu poludupleks tipa odabrati Half
Duplex without Continuous Carrier.
• Er r or d et ec t i o n – CRC ili BCC
• P ol l i n g Mod e – ukoliko se želi slanje samo jedne poruke pri prozivanju slave-a odabrati
Standard, single message per scan; ukoliko se želi slanje svih poruka koje slave ima odabrati
Plc_com_SLC/168

Standard, multiple message per scan


• Du p l ic a te pac k e t de t e c t – ukoliko se odabere ova opcija onda procesor upoređuje primeljeni
paket sa poslednjom
primljenom i obrađenom
porukom. Ukoliko su obe
poruke iste, procesor šalje
ACK signal, ali ne obrađuje
poruku ponovo.
• Ac k timeout – period
čekanja na Ack signal.
Ukoliko se signal ne primi,
procesor ponavlja zahtev ili
signalizira grešku. Isti
interval se koristi i za
čekanje odziva na polling
signal.

Ukoliko je odabran
Half Duplex without
Continuous Carrier onda je
neophodno da se
obezbede vremenska
kašnjenja koja
omogućavaju da se
modem pripremi za
obavljanje traženog
SL. 8-15 MENI ZA KONFIGURACIJU DF1 POLU DUPLEKS STANDARDNOG prenosa (u jednom ili u
MASTER PROTOKOLA drugom smeru). Da bi
se to ostvarilo potrebno
je u meniju definisati i sledeće parametre.

SL. 8-16 DIJAGRAM TOKA PROCESA SLANJA ILI PRIJEMA PODATAKA - DF1 POLU DUPLEKS STANDARD MODE
Plc_com_SLC/169

• RT S O f f d e l ay – interval vremena između završetka slanja poruke i prestanka utvrđivanja


prisustva RTS signala (koristi se kao bafer da bi se obezbedila izvesnost da je modem završio
posao, normalno bi trebalo da bude 0)
• RT S S e nd delay – interval vremena između utvrđivanja prisustva RTS signala i otpočinjanja
slanja poruke (ovaj interval obezbeđuje vreme potrebno da se modem pripremi za slanje poruke).
Prenos poruke će uslediti ukoliko je CTS (Clear-to-send) signal na logičkoj jedinici.
• Mes s a ge r e tr i es – broj puta ponovljenih pokušaja prenosa poruka ili dobijanja odziva pri
pollingu.
• Pr e Tr a ns m it d e lay – Interval vremena koji prođe od momenta kada čvor ima poruku koju želi
da emituje i utvrđivanja prisutnosti RTS signala.
Dijajagram toka procesa prikazan je na Sl. 8-16.
MEHANIZAM OPSLUŽIVANJA PRIORITETA
Ukoliko je odabran Standard, multiple message per scan tada je neophodno da se
definišu i prioriteti.
• Pr i or i ty H ig h i Pr io r i t y L ow – adresa poslednje i prve stanice koje se pozivaju sa
prioritetom. (Izbor prve stanice kao 255, ukida mogućnost priritetnog pozivanja).
• Nor m a l H ig h i N or m a l Lo w – adresa poslednje i prve stanice za normalno pretraživanja.
(Izbor prve stanice kao 255, ukida mogućnost normalnog pozivanja).
• Nor m a l Po l l G r o u p S i z e – broj aktivnih stanica u režimu normalnog pozivanja koji se poziva
između dva prioritetna skena. (Ukoliko nema aktivnih stanica u normalnom režimu rada postavlja
se na 0)
Adrese stanica moraju se dodeljivati tako da se one mogu grupisati u dva
prioritetna nivoa. Budući da se pri konfiguraciji, na svakom nivou prioriteta, specificiraju
samo početna i krajnja adresa nesumnjivo je da adrese svih stanica na istom nivou
prioriteta moraju biti između te dve adrese.
Način opsluživanja stanica u skladu sa definisanim prioritetom prikazan je na
sledećoj slici. Potrebno je obratiti pažnju na činjenicu da se u okviru jednog ciklusa
pozivanja, sa liste stanica normalnog prioriteta poziva samo po jedna grupa stanica.

SL. 8-17 NAČIN POZIVANJA SLAVE STANICA U SKLADU SA PRIROITETOM I STATUSOM STANICE
Plc_com_SLC/170

IZBOR TIMEOUT ACK INTERVALA


U načelu postoje dva tipa vremenskog čekanja o kojima treba da se vodi računa.
Prvi se odnosi na vreme koje će master čekati da se slave odazove, a drugi na vreme
potrebno da modem bude spreman da primi podatke ili da ih prosledi dalje.
Tajmaut mora biti dovoljno dugačak da od trenutka kada je master poslao
poslednji karakter poll paketa bude dovoljno vremena da slave pošalje, a master primi
najveći mogući paket, pre nego što istekne time-ot ACK interval.
U cilju izračunavanja minimalnog tajmauta neophodno je da poznaje brzina
prenosa, najveća dužina paketa (maksimalni broj reči) koji može da sadrži write naredba,
odnosno read naredba na koju se slave odaziva slanjem odgovora, programski sken
period slave-a, RTS/CTS kašnjenje modema (turnaround delay), kao i konfigurisani
parametar RTS Send Delay. Od interesa je veći od poslednja dva vremenska intervala.

PR. 8-3
Pretpostavimo da imamo procesor SLC 5/03. Maksimalni paket koji ovaj procesor može da
podrži je 103 reči podataka, odnosno 224 bajtova zajedno sa overhead-om. Predpostavimo nadalje
da imamo 9600 bps modem što znači da on prenosi oko 1 bajt po milisekundi.
U skladu sa raspoloživom opremom najveći paket će se preneti za 224 ms.
Procena trajanja prosečnog programskog sken ciklusa može se dobiti iz menija Processor
status u RSLogix 500 alatu. Pretpostavimo da je ovo vreme 20 ms.
RTS send delay time se određuje iz parametara konfigurisanja procesora. Neka je ovaj
parametar 3. U tom slučaju kašnjenje je 60 ms (parametar se zadaje u inkrementima od 20 ms).
RTS/CTS kašnjenje zavisi od tipa modema. Predpostavimo da je za ovaj tip modema ono 50 ms. U
tom slučaju za nas je relevantan podatak od RTS send delay time jer je on veći.
Na osnovu svega izloženog, minimalni tajmaut jednak je 304 ms (224+20+60). Budući da
se i ovo vreme zadaje u inkrementima od 20 ms izračunato vreme treba da se zaokruži na prvi veći
broj deljiv sa 20, što iznosi 320 ms. U skladu sa time Ack timeout parametar se definiše kao broj
koji nije manji od 16.

DIJAGNOSTIČKA DATOTEKA

SL. 8-18 INFORMACIJE KOJE SE DOBIJAJU IZ DIJAGNOSTIČKE DATOTEKE ZA DF1 POLU DUPLEKS MASTER
KOMUNIKACIJU

Pregled aktivnih stanica, kao i drugi podaci mogu se dobiti iz statusne


datoteke procesora (Processor status)
Plc_com_SLC/171

SL. 8-19 INFORMACIJE KOJE SE DOBIJAJU IZ DATOTEKE STANJA ZA DF1 POLU DUPLEKS MASTER
KOMUNIKACIJU

PR. 8-4 ILUSTRACIJA KORIŠĆENJA OVOG PROTOKOLA


Pretpostavlja se da master periodično šalje poruke svim čvorovima u mreži. On ih u
trenutcima odabiranja aktivira istovremeno, no nijedna poruka ne može ponovo da se pošalje pre
nego što se sve poruke po jedanput prenesu. Ukoliko se ne želi vremensko ograničavanje slanja,
onda je nepotreban rang 0.
Plc_com_SLC/172
Plc_com_SLC/173

8.7.2. DF1 POLUDUPLEKS - MESSAGE BASED MODE


NAČIN KOMUNIKACIJE
Ovaj oblik komunikacije se koristi ukoliko se želi da se pomoću msg naredbi u
svakom trenutku komunicira sa nekom određenom stanicom. Pogodna je za satelitski
prenos ili telefonsku mrežu, gde se komunikacija sa slave stanicom odvija samo kada
postoji potreba. Samo se po sebi razume da ovaj vid komunikacije nije preporučljiv ukoliko
je potrebno da se obavlja učestala komunikacija između master i slave stanica i ukoliko
sve stanice imaju msg
naredbe u svojim leder
programima.
Komunikacija
između master i slave
stanice započinje samo
onda kada se u leder
programu mastera naiđe
na aktivnu msg naredbu u
okviru koje se adresira
odgovarajuća slave
stanica. Na taj način
korisnik, kroz leder
program, ima punu
kontrolu nad celokupnom
komunikacijom. Ukoliko se
u nekom sken ciklusu
mastera inicira više msg
naredbi koje adresiraju
SL. 8-20ILUSTRACIJA KOMUNIKACIJE DF1 POLU-DUPLEKS MESSAGE različite slave stanice, one
BASED MODE odlaze u red čekanja i
izvršavaju se jedna po
jedna. Kada iz nekog razloga stanica nije u mogućnosti da odgovori, master će ponoviti
pokušaj.
Master stanica može u okviru svojih msg naredbi poslati slave stanici neke
podatke ili očitati neke podatke koji se nalaze u datotekama slave stanice.
U principu slave stanica može u svom leder programu imati msg naredbe koje se
aktiviraju pod nekim uslovima. Ove naredbe će uči u red čekanja u slave stanici, ali
nikakva komunikacija neće biti inicirana sve dok master stanica ne prozove tu slave
stanicu pomoću svoje msg naredbe (što se može dogoditi sa značajnim kašnjenjem).
Međutim, to i dalje ne znači da će master i primiti poruku koju samostalno inicira slave.
Naime, postoje dva načina rada ovog tipa komunikacija.
• Message, do not allow slaves to init iate - master će registrovati poruke koje bi
mu slave sam poslao, ali ih neće primiti. Time će se samo osloboditi bafer poruka u
slave-u i on će biti u stanju da nastavi sa slanjem poruka koje od njega traži master.
Ovaj oblik rada odgovara radu master/slave mreže zasnovane na modbus protokolu u
okviru koga slave stanica nikada nema pravo da pošalje poruku.
Plc_com_SLC/174

• Message, allow slaves to init iate - slave stanica koja je pozvana od mastera,
nakon prijema svih poruka od mastera i slanja poruka koje je master od nje tražio, dobija
pravo da pošalje
masteru i poruku koju
je ona sama kreirala, a
koju on nije tražio.

KONFIGURACIJA KANALA
U ovom načinu
rada ne postoji datoteka
aktivnih čvorova u okviru
koje bi se mogao
posmatrati status
pojedinih stanica. Pored
toga, ne može se
ostvariti prenos poruka
između dve slave
stanice, niti
programiranje slave
stanica.
Konfiguracija
kanala zahteva da se
SL. 8-21 MENI ZA KONFIGURACIJU DF1 POLU DUPLEKS MESSAGE BASED specificra polling
MASTER PROTOKOLA
mode. Kao što je već
rečeno izbor se vrši između Message, allow slaves to initiate i Message, do not allow
slaves to initiate. Napomenimo i da pri izboru ovog načina rada, ne postoji više mogućnost
da se definišu opsezi prioritetnog i normalnog pretraživanja čvorova.

8.7.3. DF1 POLU-DUPLEKS SLAVE PROTOKOL


KONFIGURACIJA KANALA
• B au d e r a te – izbor jedne od mogućih brzina prenosa 110, 300,600, 1200, 2400, 4800,9600,
19200
• P ar it iy – none ili even
• St o p b its – 1, 1.5 ili 2
• No d e a d dr es s –
jedinstvena adresa čvora
(0 do 254).
• Co ntr o l L i n e – ako se
ne koristi modem odabrati
No handshaking; ako je
master modem full
duplex, a slave modem
half duplex odabrati Half
Duplex with Continuous
Carrier. Ako su svi
modemi u sistemu
poludupleks tipa odabrati
Half Duplex without
Continuous Carrier.
• Er r or d et ec t i on – CRC
ili BCC
SL. 8-22 MENI ZA KONFIGURACIJU DF1 POLU DUPLEKS SLAVEMASTER
PROTOKOLA • EO T Suppression –
ukoliko se želi
Plc_com_SLC/175

ubrzavanje saobraćaja na mreži može se odabrati da slave stanica ne šalje master stanici EOT
(End – of - transmission) paket. Ukoliko je ova opcija odabrana master stanica, ukoliko joj slave
stanica ne pošalje neku poruku, automatski podrazumeva da slave nema šta da joj pošalje.
Problem je naravno u tome što se u tom slučaju nemože utvrditi koja stanica je aktivna ali nema
šta da pošalje, a koja je neaktivna. Moguća primena ove opcije je u situaciji kada se želi
smanjenje potrošnje radio modema. U tom slučaju on se ne mora uključiti ukoliko nema šta da
pošalje.
• Du p l ic a te pac k e t de t e c t – ukoliko se odabere ova opcija onda procesor upoređuje primeljeni
paket sa poslednjom primljenom i obrađenom porukom. Ukoliko su obe poruke iste, procesor
šalje ACK signal, ali ne obrađuje poruku ponovo.
• P ol l t im e ou t – poseban časovnik prati vreme prozivanja ove stanice. Kada stanica ima poruku
koju treba da pošalje ovaj časovnik se startuje. Ukoliko definisani poll timeout period istekne pre
nego što istekne timeout period definisan u message naredbi, postavlja se MSG error bit i poruka
se izbacuje iz reda čekanja. Ukoliko, međutim, timeout period definisan u poruci istekne pre poll
timeout perioda postavljaju se i message error i message timeout bit.
Ukoliko se kao poll timeout postavi 0, ova opcija je onemogućena.
• Mes s a ge r e tr i es – broj puta ponovljenih pokušaja prenosa poruka ili dobijanja odziva pri
pollingu.
• Pr e Tr ans m it delay – Interval vremena koji prođe od momenta kada čvor ima poruku koju želi
da emituje i utvrđivanja prisutnosti RTS signala.

Pri definisanju
Poll timeout perioda
treba voditi računa o
činjenici da je
maksimalno moguće
vreme čekanja na
prenos jednako
vremenu koje protekne
između dva sukcesivna
prozivanja iste stanice.
To znači da minimalno
poll timeout vreme treba
da bude jednako master
poll sken ciklusu
(zaokruženom na
sledećih 20 ms).
Sl. 8-23 INFORMACIJE KOJE SE DOBIJAJU IZ DIJAGNOSTIČKE DATOTEKE ZA Specifikacija ovog
DF1 POLU DUPLEKS SLAVE KOMUNIKACIJU intervala je potrebna
ukoliko slave u svom
leder programu ima message naredbu.

8.8. KORIŠĆENJE MODEMA ZA DF1 PROTOKOLE


SLC procesori koji podržavaju RS-232 komunikaciju mogu se povezati za različite
tipove telefonskih (dial-up i leased line), radio i satelitskih modema. Za point-to-point puni
dupleks modem treba koristiti DF1 full duplex protkol. Za point-to-multipoint modemsku
vezu treba koristiti Df1 half-duplex master i slave protokol. U tom slučaju samo jedan
uređaj može da se konfiguriše kao half-duplex master protokol.
DH485 protokol ne može da se koristi za komunikaciju preko modema.
•Dial-up modem i
Po pravilu, ovi modemi podržavaju DF1 puni dupleks. To znači da će stanice na
oba kraja veze biti konfigurisane za DF1 full-duplex protokol, pri čemu će control line
parameter biti postavljen kao full duplex modem (point-to-point veza).
Kada SLC procesor treba da inicira uspostavljanje veze (dial-up) koristi se ASCII
Plc_com_SLC/176

write naredba da bi se preneo "AT" dial-up string (npr. ATDT 3619 789). Modem lost bit u
statusnoj datoteci (S:5/14)
obezbeđuje povratnu informaciju o
tome da li je veza uspešno
uspostavljena. Ovaj bit je
postavljen na 1 ako ima problema
sa vezom.
Veza se prekida pomoću
ASCII AHL naredbe kojom se
privremeno obara DTR signal.
• Modemi za iznaj mljene
linije (Leased-line modemi)
Ovi modemi se koriste na
iznajmljenim telefonskim linijama.
Pri tome, iznajmljene linije mogu
biti povezane u point-to-point
topologiji u kojoj podržavaju puni
dupleks ili u point-to-multipoint
topologiji u kojoj podržavaju polu
SL. 8-24 POINT-TO-POINT VEZA POMOĆU DIAL-UP MODEMA
dupleks topologiju između tri ili
više modema.
U point-to-point topologiji potrebno je konfigurisati SLC procesor za DF1 full-
duplex protokol, pri čemu će control line parameter biti postavljen kao full duplex modem.
U point-to-multipoint topologiji SLC se konfiguriše za DF1 half-duplex
master or slave protokol, pri čemu će control line parameter biti postavljen kao half
duplex modem without continuous carrier.
• Radio modemi
Radio modemi se mogu koristiti u point-to-point toplogiji koja podržava ili puni
dupleks ili poludupleks komunikaciju. Pored toga, ovi modemi se mogu povezati i u point-
to-multipoint topologiji koja podržava poludupleks komunikaciju.
Ukoliko se koristi point-to-point topologija sa full-duplex radio modemima potrebno
je konfigurisati sve SLC-ove za DF1 full-duplex protocol, pri čemu će control line
parameter biti postavljen kao full duplex modem.
Ukoliko se koristi point-to-point topologija sa half-duplex radio modemima potrebno
je konfigurisati SLC-ove za DF1 half-duplex master ili slave protocol. Ukoliko ovi modemi
zahtevaju RTS/CTS handshaking, konfigurisati control line parameter kao half duplex
modem without continuous carrier.
• Line drivers
Linijski drajveri zapravo ne vrše modulaciju serijskih podataka već prilagođavanje
električnih signala tako da se poveća pouzdanost pri prenosu na veće daljine (više
kilometara).
AB AIC+ (Advanced Interface Convertor) je half-duplex line driver koji konvertuje
jedan RS-232 električni signal u RS-485 električni signal povećavajući tako mogućnost
njegovog prenosa sa oko 15 m na oko 1200 m.
U point-to-point line driver topologiji SLC se konfiguriše za DF1 full-duplex
protokol.
U point-to-multipoint line driver toplogiji SLC se konfiguriše za DF1 half-duplex
protokol. Ukoliko ovi linijski drajveri zahtevaju RTS/CTS handshaking, konfigurisati control
line parameter kao half duplex modem without continuous carrier.

8.8.1. SIGNALI ZA UPRAVLJANJE MODEMIMA


U svim slučajevima sami SLC-ovi rade kao data terminal equipment (DTE), što
Plc_com_SLC/177

znači da šalju ili primaju poruke preko mreže. Modemi funkcionišu kao data
communication equipment (DCE), što znači da oni obavljaju konverziju i kodiranje signala.
Razmena podataka izmedju DTE i DCE uredjaja obavlja se preko linije prijema
podataka (RXD – receive data line) i linije slanja podataka (TXD – transmit data line).
Pored toga DTE uredjaji imaju i sledeće linije za upravljanje modemima.
• RT S ( R e qu es t t o s e n d ) – izlazni signal koji ukazuje DCE uredjaju da DTE želi da pošalje
poruku.
• DTR ( D a ta t er m in a l r e ady ) – izlazni signal koji ukazuje da je DTE uredjaj spreman za rad.
• CT S ( Cl e ar to s e n d) – ulazni signal koji šalje DCE i koji označava da je DCE spreman da
primi poruku koju DTE uredjaj želi da pošalje preko modemske veze.
• DS R ( D at a s e t r e a dy ) – ulazni signal koji ukazuje da je DCE uredjaj spreman za operaciju
(gubitak ovog signala prouzrokuje “modem-lost” stanje u SLC-u).
• DC D (D at a c arr ier de t ect) – ulazni signal koji ukazuje da je noseći signal primljen i da se
očekuje prijem podataka koji će biti prosledjeni DTE uredjaju.

Za ulogu master-a moguće je koristiti bilo polu-dupleks bilo puni-dupleks modeme.


Medjutim, samo polu-dupleks
modemi mogu raditi kao slave
uredjaji.
U slučajevima u kojima je
odabrana polu-dupleks
konfiguracija, moguće je
sinhronizovati rad modema
pomoću RTS Send delay i RTS
Off delay parametara.
U principu emitovanje
poruke se obavlja tako što DTE
pošalje RTS signal kojim ukazuje
da želi da pošalje poruku. Tada
bi procesor trebalo da ispita
stanje CTS signala da bi
ustanovio da li je modem
SL. 8-25 LINIJE ZA UPRAVLJANJE MODEMOM I PRENOS PODATAKA spreman da primi poruku.
Budući da neki poludupleks
modemi zahtevaju dodatno vreme za podizanje svojih predajnika, pomoću RTS Send
delay parametra se definiše period čekanja pre nego što procesor ispituje stanje CTS
signala. Ukoliko CTS nije još aktivirann, RTS ostaje aktivan sve do isteka jedne sekunde.
Ukoliko se ni tada CTS ne aktivira, RTS se obara i komunikacija se napušta. Konačno,
ako se RTS Send delay parametar postavi na 0, prenos počinje odmah po podizanju CTS
signala.
Ukoliko neki modem nema CTS signal, potrebno je vezati RTS za CTS i koristiti
najkraći mogući period čekanja..
Neki modemi obaraju vezu kada se izgubi RTS signal, čak i onda kada prenos nije
završen. Da bi se omogućilo slanje i poslednjeg karaktera koristi se RTS off delay
parametar. Ovaj parametar specificira (u inkrementima od po 20 ms) interval vremena koji
treba da prođe između slanja poslednjeg karaktera i obaranja RTS signala.

8.8.2. NAČIN RADA MODEMA U ZAVISNOSTI OD CONTROL LINE PARAMETRA


DF1 FULL DUPLEX PROTOKOL
• No Handshaking – DTR je uvek aktivan i RTS je uvek neaktivan. Predaja i prijem se
odvijaju nezavisno od stanja DSR, CTS ili DCD ulaza. Ova specifikacija se koristi kada
su SLC ovi direktno vezani na druge DTE uređaje.
• Full-Duplex Modem – DTR i RTS su uvek aktivni izuzev u sledećim slučajevima. Kada
Plc_com_SLC/178

DSR padne, i DTR i RTS se obore u trajanju od 1 do 2 sekunde, a zatim se ponovo


dižu. Modem lost bit (S:5/14) se istog trenutka postavlja na 1. Do god je DSR neaktivan,
stanje DCD se ignoriše. Ne može se obavljati ni predaja ni prijem.
Kada DCD padne dok je DSR aktivan, ne dozvoljava se prijem signala. Ukoliko DCD
ostane neaktivan za 9 do 10 sekundi, DTR se obara sve dok DSR ne postane
neaktivan. U tom trenutku se postavlja i modem lost bit (S:5/14). Ukoliko DSR ne
postane neaktivan, tada se posle 5 do 6 sekundi i DTR ponovo diže.
Prenos zahteva da sva tri ulaza (CTS, DCD i DSR) budu aktivna. Kad god su DSR i
DCD zajedno aktivni modem lost bit se resetuje.
DF1 HALF-DUPLEX SLAVE
• No Handshaking - DTR je uvek aktivan i RTS je uvek neaktivan. Predaja i prijem se
odvijaju nezavisno od stanja DSR, CTS ili DCD ulaza. Ova specifikacija se koristi kada
su SLC ovi direktno vezani na druge DTE uređaje.
• Half -Duplex modem with continuous carrier – DTR je uvek aktivan, dok se RTS
aktivira za vreme prenosa (i bilo kog programiranog kašnjenja pre ili posle prenosa).
Tretiranje DCD i DSR signala je isto kao i kod punog dupleksa.
Prenos zahteva da signali CTS i DSR budu aktivni.
• Half -duplex modem without continuous carrier – ovo je u suštini isti način rada
kao i half-duplex modem with continuous carrier, s tim što se ne prati promena DCD
signala. Signal DCD je i dalje neophodan za prijem poruke, ali ne i za emitovanje.
Modem lost bit će biti postavljen ako je DSR neaktivan.
Prenos zahteva da signali CTS i DSR budu aktivni.
DF1 HALF-DUPLEX MASTER
• No Handshaking - DTR je uvek aktivan i RTS je uvek neaktivan. Predaja i prijem se
odvijaju nezavisno od stanja DSR, CTS ili DCD ulaza. Ova specifikacija se koristi kada
su SLC ovi direktno vezani na druge DTE uređaje
• Full-Duplex modem - DTR i RTS su uvek aktivni izuzev u sledećim slučajevima.
Kada DSR padne, i DTR i RTS se obore u trajanju od 1 do 2 sekunde, a zatim se
ponovo dižu. Modem lost bit (S:5/14) se istog trenutka postavlja na 1. Do god je DSR
neaktivan, stanje DCD se ignoriše. Ne može se obavljati ni predaja ni prijem.
Kada DCD padne dok je DSR aktivan, ne dozvoljava se prijem signala. Ukoliko DCD
ostane neaktivan za 9 do 10 sekundi, DTR se obara sve dok DSR ne postane
neaktivan. U tom trenutku se postavlja i modem lost bit (S:5/14). Ukoliko DSR ne
postane neaktivan, tada se posle 5 do 6 sekundi i DTR ponovo diže.
Prenos zahteva da sva tri ulaza (CTS, DCD i DSR) budu aktivni. Kad god su DSR i DCD
zajedno aktivni modem lost bit se resetuje.
• Half -duplex modem without continuous carrier - DTR je uvek aktivan, dok se
RTS aktivira za vreme prenosa (i bilo kog programiranog kašnjenja pre ili posle
prenosa). Procesor ne prati stanje DCD signala.
Ukoliko DSR postane neaktivan, RTS se obara i postavlja se modem lost bit. Do god je
RTS neaktivan ne obavljaju se ni predaja ni prenos. Kad god je DSR aktivan resetuje se
modem lost bit.
Prenos zahteva da oba signala CTS i DSR budu aktivni.

8.8.3. KOMUNIKACIJA PREKO TELEFONSKIH LINIJA


U cilju uspostavljanja komunikacije preko telefonskih linija neophodno je da se
obave sledeće operacije
• Odabiranje željenog broja – realizuje se slanjem telefonskog broja kome prethodi
naredba modemu da izabere taj broj (atdt); ove naredbe i telefonski broj se moraju
upisati u odgovarajuću string datoteku
Plc_com_SLC/179

• Verifikacija uspostavljene veze – veza je uspostavljena kada lost modem bit (datoteka
statusa S2:5/14 pređe sa 1 na 0
• Slanje odgovarajućih poruka – kad je veza uspostavljena kontroler može da inicira niz
msg naredbi za razmenu podataka
• Prekidanje telefonske veze – veza se prekida tako što DTR linija iz stanja 1, pređe u
stanje 0 i ponovo se vrati u 1; ovo se postiže pomoću AHL naredbe.

Izloženi postupak je ilustrovan leder programom na SL. 8-26.


String datoteka čiji sadržaj se šalje modemu awa naredbom ima sledeći izgled

Bitovi u datoteci statusa koji daju informacije o komunikaciji preko kanala 0 imaju
sledeće značenje
Plc_com_SLC/180
Plc_com_SLC/181

SL. 8-26 LEDER PROGRAM ZA KOMUNIKACIJU PREKO TELEFONSKE LINIJE

8.9. ASCII KOMUNIKACIONI PROTOKOL


SLC kontroleri podržavaju ASCII protokol koji definiše sam korisnik konfigurišući
kanal 0 kao user mode. U ovom načinu rada, svi primljeni podaci se smeštaju u jedan
bafer i obradjuju pomoću ASCII naredbi. Isto tako, stringovi ASCII podataka mogu se
emitovati drugim uređajima koji primaju ASCII podatke.
Potrebno je istaći da
se kad je kanal 0 u user
mode mogu prenositi samo
ASCII karakteri. Prenošenje
podataka pomoću message
naredbe nije dozvoljeno.
U cilju konfiguracije
procesora za ASCII
komunikaciju neophodno je
da se definišu sledeći
parametri.
• B au d e r at e – izbor jedne
od mogućih brzina prenosa
110, 300,600, 1200, 2400,
4800,9600, 19200
• P ar it iy – none, even ili odd
• St o p b its – 1, 1.5 ili 2
• Da ta bi ts – 7 ili 8
• T er m in at i o n 1 i 2 – izbor
karaktera koji označava kraj
linije u ARL i ABL ASCII
naredbama (može se

SL. 8-27 MENI ZA KONFIGURACIJU ASCII PROTOKOLA


Plc_com_SLC/182

definisati i kao ASCII konstanta). Specificirati \ff ukoliko se ne želi oznaka za kraj linije.
• A pp e nd 1 i 2 – izbor karaktera koji označava kraj linije u ASCII AWA naredbi. Specificirati \ff
ukoliko se ne želi ovaj karakter
• Co ntr o l L i ne – ako se ne koristi modem odabrati No handshaking; ako je master modem full
duplex, a slave modem half duplex odabrati Half Duplex with Continuous Carrier. Ako su svi
modemi u sistemu poludupleks tipa odabrati Half Duplex without Continuous Carrier. Ukoliko se
izabere poludupleks potrebno je definisati i kašnjenja za sinhronizaciju (RTS Off delay i RTS
Send delay)
• RT S O ff d e lay – interval vremena između završetka slanja poruke i prestanka utvrđivanja
prisustva RTS signala (koristi se kao bafer da bi se obezbedila izvesnost da je modem završio
posao, normalno bi trebalo da bude 0)
• RT S S e nd d e l ay – interval vremena između utvrđivanja prisustva RTS signala i otpočinjanja
slanja poruke (ovaj interval obezbeđuje vreme potrebno da se modem pripremi za slanje poruke).
Prenos poruke će uslediti ukoliko je CTS (Clear-to-send) signal na logičkoj jedinici.
• De l et e m o de – specifikacija tretmana karaktera "delete", koji ima efekta samo ako je echo on.
Izbor između:
ignore – ignoriši karakter, odnosno tretiraj ga kao deo teksta,
CRT – ignoriši karakter koji neposredno prethodi delete karakteru i pošalji signal displeju
(CRT) da obriše prethodni karakter,
printer – ignoriši karakter koji neposredno prethodi delete karakteru i pošalji signal printeru
da obriše prethodni karakter
• Ec ho – može se postaviti on ili off
• XO N/ XO F F – izbor softverskog handshakinga
183

DODACI
184
Plc_DA_digUI/185

A. Digitalni senzori i digitalni izvršni organi


Kao što je već rečeno digitalni signal je signal čija amplituda može imati jednu od
konačnog broja različitih vrednosti. Posebna podvrsta
opruga digitalnog signala je binarni (diskretni) signal čija
NO kontakt
amplituda ima jednu od dve moguće vrednosti koje se
kodiraju kao binarna nula i binarna jedinica (0 i 1). Ove
vrednosti, u zavisnosti od određene aplikacije imaju
značenje uključen/isključen, istinit/neistinit,
prisutan/odsutan itd. Diskretni signali se koriste za
uključivanje i isključivanje prekidača, pokretanje ili
zaustavljanje motora, otvaranje ili zatvaranje ventila i
NC kontakt drugih aktuatora u zavisnosti od radnih uslova ili u
Izvor
funkciji vremena. U isto vreme, ovi signali se koriste i
namotaj kao indikatori stanja ovih uređaja.
Bez želje da se upuštamo u detaljan pregled
svih davača digitalnih signala i digitalnih izvršnih
SL. A - 1 NO I NC KONTAKT UPRAVLJANI
organa, izložiće se sa samo osnovne odlike prekidača
POMOĆU RELEA
kao digitalnih davača i solenoida koji se veoma često
koriste kao izvršni organi. Ovi
Simbol
elementi će se kasnije koristiti pri
Opis Normalno Normalno
formiranju programa za PLC.
otvoren zatvoren
Osnovna komponenta
Običan prekidač diskretnog senzora i aktuatora je
kontakt. U principu, kontakt može
Granični prekidač
biti realizovan kao bilo koja vrsta
Prekidač sa oprugom prekidača, ili neka drugi elektro-
mehanički, elektro-optički,
Taster pneumatski ili hidraulični uređaj koji
ima dva stanja:
Temperaturni prekidač
• zatvoren (closed) – provodi
Prekidač aktiviran protokom struju (odnosno propušta
odgovarajuću fizičku veličinu)
Prekidač aktiviran nivoom • otvoren (open) - ne provodi
struju (odnosno ne propušta
Prekidač aktiviran pritiskom odgovarajuću fizičku veličinu).
Kontakt može biti normalno
Prekidač aktiviran otvoren (NO) ili normalno zatvoren
rastojanjem
(NC), pri čemu se izraz “normalno”
Relejni kontakt odnosi na stanje u kome se kontakt
nalazi pre nego što se delovanjem
Osigurač nekog spoljnog agensa promeni
stanje kontakta. Na slici (Sl. A - 1)
prikazana su dva tipična relejna
Relejni namotaj kontakta, od kojih je jedan
normalno otvoren a drugi normalno
Dvopoložajni prekidač zatvoren. Naime, sve dok u kolu
relea nema struje, kotve koje su
SL. A - 2 PREGLED GRAFIČKIH SIMBOLA RAZLIČITIH KONTAKTA
Plc_ind/186

vezane za oprugu imaju položaj kao na slici, tako da je kontakt označen sa NC zatvoren, a
kontakt označen sa NO otvoren. Kada se zatvori prekidač u kolu relea, u jezgru će se
generisati elektromagnetna sila koja će privući kotve koje su vezane za oprugu. Pri tome oba
kontakta menjaju stanje i to tako što se NC kontakt otvara, a NO kontakt zatvara. Kada se
prekidač u kolu relea otvori, opruga vraća kontakte u početni položaj.
Senzori i kontakti koji se koriste kao ulazni procesni uređaji (šalju signale prema
kontroleru) mogu biti otvarani ili zatvarani kao rezultat dejstva neke mehaničke akcije (npr.
granični prekidači), čoveka (npr. tasteri), prisustvom ili odsustvom nekog objekta (npr. senzori
rastojanja), promenom temperature (npr. temperaturni prekidači) itd. Simboli koji se koriste za
prikazivanje najčešće korišćenih tipova kontakta prikazani su na Sl. A - 2. Potrebno je
zapaziti da se ni relejni namotaj, ni dvopolžajni prekidač, s obzirom na specifičan način
njihovog funkcionisanja, ne mogu klasifikovati ni kao NO ni kao NC.
Izlazni procesni uređaji 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 gašenje kontrolnih sijalica, otvaranje i zatvaranje ventila, spajanje i
razdvajanje kvačila, upravljanje releima, solenoidima itd. Osnovni izlazni element je rele, koje
se realizuje kao tranzistorsko rele (za mala opterećenja), elektromehaničko rele (za srednja
Opseg kretanja opterećenja) i kao kontaktor (za velika
- Smer kretanja + opterećenja). Svi ovi uređaji su ekvivalentni u
smislu logičke funkcije koju realizuju, ali se
razlikuju u pogledu električnih karakteristika.
Ukoliko je potrebno da se izvrši prekidanje
a- a+ izuzetno velikih napona ili struja, mogu se
koristiti više stepeni relei. Nezavisno od
realizacije, rele se može posmatrati kao
A- A+ električni prekidač čijim stanjem se upravlja
pomoću drugog prekidača (npr. pomoću
Izlaz
Ulaz
binarnog signala koji dolazi iz kontrolera).
kontrolera Pored relea, često se koristi i solenoid –
kontrolera
još jedan elektromehanički aktuator, čjim
radom se upravlja pomoću elektromagnetne
SL. A - 3 JEDNOSMERNI SOLENOID
sile proizvedene u namotaju. U principu, rad
solenoida zasniva se na struji koja postoji u
namotaju i koja proizvodi magnetno polje. U
zavisnosti od smera struje, menja se i smer sile
magnetnog polja koja privlači gvozdeno jezgro
ka centru namotaja ili ga odbija od centra.
Postoje dva tipa solenoidnih aktuatora:
Jednosmer ni solenoid – koji ima samo

jedan izvod za napajanje, tako da struja ima
uvek isti smer, što znači da se i jezgro pod
dejstvom magnetne sile može pomerati samo
u jednom smeru. U odsustvu napajanja
solenoida, mehanička opruga vraća jezgro u
početni položaj (Sl. A - 3).
Potrebno je da se istakne da se uz
SL. A - 4 DVOSMERNI SOLENOID
solenoid po pravilu postavljaju i dva granična
prekidača koji omogućavaju da se detektuje kada jezgro dođe u krajnji desni ili krajnji levi
položaj.
• Dvosmerni solenoid – koji ima dva izvoda za napajanje, tako da smer struje, odnosno
Plc_DA_digUI/187

odgovarajuće magnetne sile zavisi od toga na koji izvod je priključeno napajanje. U skladu
sa time i jezgro se kreće u jednom od dva moguća smera. Ukoliko se napajanje dovede na
oba izvoda, jezgro se neće pomerati, Isto tako, ukoliko ni na jednom kraju nema napajanja,
jezgro će ostati u zatečenom položaju, uz uslov da ne postoji neka mehanička sila (npr. sila
zemljine teže, ako je solenoid u vertikalnom položaju) koja bi izazvala njegovo kretanje.
Drugim rečima, u odsustvu napajanja, solenoid se nalazi u slobodnom stanju (Sl. A - 4).
Plc_ind/188
Plc_mreze/189

B. Elementi računarskih komunikacija


B.1. Osnove računarskih komunikacija
Na početku korišćenja računara u obradi podataka podrazumevalo se da svi
podaci, bez obzira na mesto njihovog nastajanja moraju fizički biti doneti do lokacije na
kojoj se nalazi računar, i da se svi rezultati obrade podataka dobijaju na toj istoj lokaciji.
Ovaj vid obrade, kasnije označen kao centralizovana obrada podataka, stvarao je znatne
teškoće posebno u slučajevima kada se želelo da se obrada podatak obavi u realnom
vremenu ili kada je bilo neophodno da se rezultati obrade koriste na prostorno udaljenim
lokacijama. Na izvestan način, centralizovana obrada podataka ekvivalentna je situaciji u
kojoj dve osobe mogu da komuniciraju samo ako stoje jedna pored druge.
Krajem šezdesetih godina prošlog veka, organizacija rada u velikim poslovnim
sistemima zahteva dislociranje obrade podataka, te se na udaljenim lokacijama (skladište,
računovodstvo, poslovnice, ...) postavljaju računarski sistemi koji jedan deo obrade
podataka obavljaju sami, dok sa centralnim računarom razmenjuju samo rezultate. Sličan
pritisak oseća se i u procesnoj idustriji gde želja za automatizacijom celog proizvodnog
procesa nameće potrebu za komunikacijom izmedju upravljačkih računara koji kontrolišu
pojedine delove sistema. U nastojanju da se zadovolje ovi zahtevi rađa se distribuirana
obrada podataka.
Po prirodi stvari preduslov za realizaciju distribuirane obrade podataka bio je
razvoj tehnologije i metodologije za uspostavljanje komunikacije između računara. U prvo
vreme svaki proizvodjač računara razvijao je sopstvenu opremu koja je imala izvesne
tehničke i funkcionalne specifičnosti tako da je komunikacija mogla da se ostvari samo
izmedju računara jednog proizvodjača. Postepeno, pod pritiskom korisnika, računarska
industrija uspostavlja jasne standarde u ovoj oblasti.
Gledano potpuno opšte izraz komunikacije ili elektronske komunikacije označava
prenos podataka od izvora
(predajnik) do odredišta
(prijemnik) posredstvom
prenosnog medijuma, a uz
pomoć komunikacionih
uređaja, koji obezbeđuju
odgovarajuću snagu signala
pri prenosu. U tom procesu se
za predstavljanje podataka
koristi neki oblik
elektromagnetne energije
(elektricitet, radio talasi, svetlo
itd.). U skladu sa time
SL. B - 1 RAZMENA PODATAKA IZMEĐU RAČUNARA računarska komunikacija je
proces prenosa podataka
između dva računara (Sl. B - 1). Da bi se taj proces obavio računari moraju biti povezani u
računarsku mrežu. Pri tome je potrebno da se uoči da su podaci koje računar šalje uvek
predstavljeni u formi digitalnog signala. Taj signal se prima u predajniku i obrađuje
(kodira) na neki način, odnosno prebacuje u formu u kojoj će biti prenet kroz medijum
(komunikacioni kanal). U zavisnosti od vrste medijuma signal koji se prenosi može biti
analogni ili digitalni, a sam medijum može biti žični ili bežični. Kada signal dođe do
prijemnika on mora biti dekodiran, odnosno vraćen u formu u kojoj ga računar može
primiti i razumeti.
Povezivanjem više računara preko komunikacionih kanala formira se jedna
računarska mreža. U principu, svaka mreža se može sastojati oz različitih tipova računara
(čvorovi mreže) i različitih vrsta žičnih i bežičnih komunikacionih kanala. Da bi računarska
mreža mogla da radi svi uređaji moraju imati i odgovarajući komunikacioni softver koji
Plc_mreže/190

upravlja prenosom podataka, vrši kompresiju podataka, otklanja efekte poremećaja i


obavlja druge funkcije koji doprinose efikasnosti komunikacije.
Sa aspekta geografskog područja koje pokrivaju mreže se dele na tri kategorije:
• Mre ža širokog dom eta (WAN – W ide Area Network) – obuhvata veliko
područje; tipičan primer ovakvih mreža je mreža telefonske kompanije;
• Mre ža srednjeg dometa (MAN – Metropolitan Area Network) – obuhvata
područje koje odgovora jednom gradu ili regionu; tipičan primer su mreže mobilne
telefonije;
• Lokalna mre ža (LAN – Local Area Network) – obuhvata jedno relativno malo
područje i služi za razmenu podataka između grupe korisnika (preduzeće, fabrika,
proizvodni pogon itd.).
Za ostvarivanje komunikacije računara pri upravljanju procesima od značaja su
prvenstveno lokalne mreže.

B.1.1. UREĐAJI ZA PRENOS PODATAKA


Svaki računar može da generiše ili prima samo informacije u formi digitalnih
signala. Različiti komunikacioni medijumi (kanali) preko kojih se signal prenosi mogu da
podrži analogni ili digitalni signal. Otuda je, u nekim slučajevima neophodno da se izvrši
konverzija signala iz digitalnog u analogni oblik i obratno (modulacija i demodulacija). Za
tu svrhu koriste se modemi (modulator/demodulator). Modemi se međusobno razlikuju u
zavisnosti od vrste kanala kojima se signal prenosi, kao i od tehnologije koja se koristi za
obavljanje prenosa. Jedna od značajnih karakteristika prenosa podataka je brzina
prenosa koja se izražava brojem prenetih bitova u jedinici vremena (bps – bits per
second).
KOMUNIKACIJA PREKO TELEFONSKIH LINIJA
Zbog svoje široke rasprostranjenosti, telefonske linije su najjednostavniji i najstariji
korišćeni medijum za prenos signala (Sl. B -
2).
Telef onskih modem se koristi za
direktnu konverziju digitalnog signala u
analogni telefonski signal. Tipična brzina je
28,8Kbps, ali ima i modema koji mogu da
rade na većim brzinama od 56Kbps ili
128Kbps. Pri tome, stvarnu brzinu prenosa
SL. B - 2 KOMUNIKACIJA PREKO TELEFONSKIH ne određuje sam modem, već ona zavisi od
LINIJA
mogućnosti standardnih telefonskih linija
preko kojih se signal prenosi. Povećanje brzine prenosa zahtevalo je, prema tome, da se
razviju drugačije tehnologije prenosa signala koje i dalje koriste telefonske linije kao
prenosni medijum.
ISDN (Integrated service digital network) obuhvata softver i hardver koji
omogućavaju da se podaci preko telefonskih linija prenose kao digitalni podaci većom
brzinom od standardnih modema (do 128Kbps). Dodatna prednost ove tehnologije je
činjenica da omogućava korišćenje dve linije u paru, što znači da se telefonska veza
može ostvariti i za vreme dok računar komunicira preko druge linije.
ADSL (Asymetric digital subscriber line) je tehnologija kojom se digitalni signal
pretvara u širokopojsani analogni signal, čime se značajno povećava brzina prenosa
(efekat je kao da više modema paralelno rade). Brzine prenosa kreću se od 5-25 Mbs pri
prijemu i 0.5 – 3.5Mbs pri slanju podataka. Pored toga, ova tehnologija omogućava i da
se ista linija deli za za telefonski razgovor i prenos podataka.
KOMUNIKACIJA PREKO MREŽE KABLOVSKE TELEVIZIJE
Kablovski modem je uređaj koji omogućava prenos računarskog signala preko
neiskorišćenih opsega kanala kablovske televizije, ne remeteći pri tome prijem televizijske
Plc_mreze/191

slike. Korišćenje tehnike širokopojasnog prenosa omogućava brzine i do 10Mbps.


KOMUNIKACIJA PREKO MREŽE MOBILNE TELEFONIJE
Modem za mobilne telefone je uređaj koji omogućava da se informacije prenose
preko mreže mobilne telefonije. Ova vrsta prenosa je relativno spora (9,6 – 14,4Kbps).
Ključna prednost ogleda se u mogućnosti korišćenja postojeće mreže za prenos
podataka.
SATELITSKA I RADIO BEŽIČNA KOMUNIKACIJA
Satelitske i radio komunikacije koriste različite tehnologije za prenos podataka, što
podrazumeva i postojanje odgovarajućih prijemnika i predajnika. Između ostalih, veoma
su popularne WiMAX (Worldwide interoperability for microwave access), Wi-Fi (Worldwide
interoperability for local area network) tehnologije.

B.1.2. KOMUNIKACIONI KANALI


Komunikacioni kanal je putanja (fizički medijum) preko koga se prenose podaci.
Podaci se mogu prenositi na jedan od tri načina:
• simpleks pr enos – podaci mogu da se prenose samo u jednom smeru (npr. televizijski
signal).
• polu-dupleks prenos – podaci mogu da se prenose u oba smera, ali se u jednom
trenutku prenos može obavljati samo u jednom smeru.
• dupleks ( ili puni-dupleks) prenos – podaci se mogu istovremeno prenosti u oba
smera.
U principu, kod komunikacije koja se uspostavlja pri računarskom upravljanju
sistemima, uvek postoji potreba da se podaci razmenjuju u oba smera, makar i samo zato
da bi jedan računar potvrdio da je primio podatke od drugog. Pri tome, izbor između polu-
dupleksa i punog-dupleksa zavisi od niza faktora, među kojima su potrebna brzina
prenosa, broj raspoloživih kanala, cena i dr. Simpleks prenos se, eventualno, može
koristiti za prijem podataka sa složenije merne opreme koja sadrži mikroračunarske
komponente.
Brzina prenosa signala kroz kanal zavisi
od učestanosti signala i propusnog opsega
kanala. Samo se po sebi razume da veća
učestanost podrazumeva i veći broj podataka koji
se može preneti u jedinici vremena. Pored toga,
budući da se podaci mogu prenositi istovremeno
na svim učestanostima unutar propusnog opsega
kanala, jasno je da širi propusni opseg
omogućava prenos većeg broja podataka. Ovaj
opseg određuje kapacitet kanala.
U odnosu na način realizacije
komunikacionih kanala, njihova osnovna podela
je na žične i bežične komunikacione kanale.
ŽIČNE VEZE
Žični komunikacioni kanal je direktna
ožičena veza između predajnika i prijemnika. U
upotrebi su tri vrste žičnih kanala.
• Parice (Twisted-pair wire) – par izolovanih
bakarnih žica; relativno spor (16 -100 Mbps) i
SL. B - 3 BLOK ŠEMA ŽIČNIH VEZA neotporan na šumove, posebno na većim
rastojanjima. U upotrebi su UTP (unshielded
twisted-pair) i STP (shielded twistied pair) parice.
Plc_mreže/192

• Koaksijalni kabl (Co-ax) – izolovana bakarna žica obmotana čvrstim ili upletenim
metalnim štitom oko koga se nalazi plastični omotač; brzine do 200 Mbps, otporan na
šumove i na većim rastojanjima
• Optički kabl (Fiber- optic) – stotine ili hiljade optičkih vlakana koja prenose
pulsirajući svetlosni signal. Izuzetno otproni na poremećaje, omogućavaju veoma brz
prenos (kabl prečnika 0.12 inča može da podrži
konverzaciju od ¼ do ½ miliona glasova istovremeno).
Najnovija optika dozvoljava brzinu od 1 trilion bps (1
terabit u sekundi).
BEŽIČNE VEZE
Bežični komunikacioni kanali ostvaruju prenos
podataka kroz atmosferu. U zavisnosti od opsega
učestanosti signala koji se prenose razlikuje se više
različitih kanala (Sl. B - 5).
• Radio prenos - Veća grupa bežičnih kanala koristi
radio prenos. U industrijskom okruženju koristi se
prenos na ultrakratkim talasima (UHF), koji je relativno
malog dometa i zahteva da se obezbedi direktna
vidljivost. Osnovne prednosti ovakvog prenosa
ogledaju se u činjenici da je on izuzetno neosetljiv na
šumove koji postoje u industriji. Pored toga, činjenica
da se prenos uspostavlja bez kablova u velikoj meri
olakšava kretanje mašina u proizvodnoj hali.
SL. B - 4 ŠEMATSKI PRIKAZ RADIO I
Mikrotalasni sistemi – su izuzetno dobar prenosni

SATELITSKIH VEZA
medijum za veliki obim podataka i velika rastojanja.
Podaci se mogu prenositi preko radio antena ili satelita. Radio prenos zahteva da
prijemnik i predajnik budu direktno vidljivi što se može obezbediti pomoću relejnih
stanica.
• Inf racrveni signali – prenos je ograničen na malu daljinu, i mali ili srednji kapacitet.
Pri tome je potrebno da se obezbedi direktna vidljivost između prijemnika i predajnika.
• Komunikacioni satelit i – korišćenjem geostacionarnih satelita za prenos
mikrotalasnih signala može se prevazići ograničenje koje postavljaj radio prenos.
Zemaljska stanica šalje signale satelitu koji ih pojačava i prosleđuje sledećoj stanici.
Ovaj tip komunikacije je izuzetno brz.
• Mreža mobilne telefonije – se takođe uz korišćenje odgovarajućih modema može
koristiti za razmenu podataka između računara. Osnovna prednost ogleda se u veoma
jednostavnom uspostavljanju komunikacije, koja praktično ne zavisi od rastojanja
između učesnika komunikacije.

SL. B - 5 SPEKTAR ELEKTROMAGNETNIH TALASA


Plc_mreze/193

B.1.3. PROTOKOL
Uspešna komunikacija podrazumeva da obe strane aktivno učestvuju u njoj i da
pri tome slušaju jedna drugu. Sa gledišta prenosa podataka izmedju računara to znači da
oni moraju biti u stanju da jedan drugom postavljaju pitanja tipa "da li si spreman da primiš
poruku", "da li si dobio moju poslednju poruku", "ima li kod tebe nekih problema", "šaljem
ti sada poruku" itd. Skup proceduralnih pravila i formata koji odredjuju komunikaciono
ponašanje jednog entiteta, omogućavajući na taj način smislenu razmenu informacija
izmedju dva entiteta naziva se protokol. Drugim rečima, protokol je skup pravila i
standarda koji određuju način razmene podataka između hardverskih i softerskih
komponenti u mreži. O poštovanju protokola staraju se poseban mrežni hardver i softver
tako da korisnik mora da vodi računa samo o svojim podacima.
Imajući u vidu da je razmena podataka između dve aplikacije na dva računara
nužno zahtevala posotjanje nekog protokola, razumljivo je da su u prvo vreme
proizvodjači opreme razvijali veoma različite protokole namenjene specifičnim
aplikacijama na posebnoj kategoriji opreme. Otuda su ovi protokoli često nekompatibilni
jedni sa drugim.
Vremenom se iskristalisalo da postoje dve kjlučne oblasti: komercijalne aplikacije i
prikupljanje podataka, koje postavljaju drugačije zahteve u pogledu razmene podataka, pa
su se i protokoli uglavnom usmeravali ka jednoj od te dve vrste aplikacija. Neki od njih,
kao na primer TCP/IP, imaju svoju primenu u obe oblasti.
Tradicionalna obrada podataka u okviru informacionih sistema dovela je do
razvoja niza protokola kao što su Bisync (IBM), Poll Select (Burroughs), SDLC (IBM),
HDLC (ISO), LAPB (CCITT-X.25).
Protokoli razvijeni za potrebe prikupljanja podataka koriste se ili za brzi prenos
podataka u lokalnim mrežama (LAN) ili za mreže širokog dometa (WAN) koje se najčešće
sreću u SCADA aplikacijama. U prvo vreme protokoli za brzi prenos informacija bili su
striktno razvijeni za opremu odgovarajućeg proizvodjača i nisu se mogli koristiti za druge
proizvode. Tako su, na primer, nastali Allen-Bradley Data Highway/Data Highway+, TI
Tiway (Texas Instruments), Square D Synet, MODICON MODBUS+ itd. Kasnije se
pristupilo razvoju "otvorenih" protokola koji mogu da se koriste na opremi različitih
proizvodjača. Takvi su, izmedju ostalih, ControlNet (Allen-Bradley), i niz "fieldbus"
protokola kao što su Profibus, LonWorks, Interbus-S, Device Net, ARCNET, IEC/ISA
SP50, Seriplex itd.
Medju najpopularnijim protokolima za mreže širokog dometa su MODBUS, SCI
RDACS, Control Applications (CA), L&N Conitel, TRW 9550, S70, 2000 itd. Mnogi
proizvodjači koji su razvili protokole za lokalne mreže pokušali su da zadrže istu strukturu i
da je prilagode mrežama šireg dometa. U najvećem broju slučajeva ovaj pristup nije dao
zadovoljavajuće rezultate jer su LAN protokoli po pravilu suviše neefikasni i kompleksni za
WAN primene.
Protokol primeren SCAD-a aplikaciji mora voditi računa o karakteristikama
komunikacionih medija koje se u takvim aplikacijama koriste. Tipičan SCADA
komunikacioni medij radi sa ograničenom brzinom podataka (oko 1200 bps), većom
brzinom prenosa bitova koji su indikatori greške (5 do 10 puta), i vremenskim kašnjenjem
modema (8 – 10 ms). Razvoj primene satelitskih komunikacija u ovim mrežama ubrzano
menja i komunikaciono okruženje za WAN protokole.
U odnosu na strukturu poruke protokoli se dele u četiri kategorije.
• Karakter orijentisani protokoli – (BISYNC, MODBUS ASCII) započinju prenos slanjem
specijalnog znaka (npr "dvotačke" ":")
• Protokoli tipa "broj bajtova" – (DDCMP – DECNET), započinju prenos slanjem karaktera
iza koga sledi broj bajtova poruke koja će biti preneta.
• Bit orijentisani protokoli – (SDLC, HDLC, TCP/IP) mogu slati poruke proizvoljne dužine i
nisu ograničeni na slanje specifičnih karaktera.
• Protokoli posebne namene – svi ostali protokoli koji ne pripadaju ni jednoj od prve tri
kategorije.
Plc_mreže/194

B.1.4. SEDMOSLOJNI OSI MODEL


U prvo vreme svaki proizvođač računara razvijao je svoje standarde i računarske
komunikacije mogle su da se ostvare samo između računara jednog proizvođača.
Dodatnu teškoću predstavljala je i činjenica da su proizvođači opreme razvili različite
protokole namenjene specifičnim aplikacijama, koji su često nekompatibilni jedni sa
drugim. Pod pritiskom korisnika, i uz učešće organizacija koje su aktivne u pokušajima da
se standardizuju komunikacioni protokoli (npr. ISO – International Standardsa
Organization, ANSI – American National Standard Industry, IEC International
Electrotechnical Committee, ISA Instrument Society of America) računarska industrija
vremenom uspostavlja jasne standarde u ovoj oblasti. U osnovi ovih standarda nalazi se
OSI standard (Open System Interconnection – otvorena veza između sistema) koji
obezbedjuje okvir za primenu komunikacionih standarda. Osnovna ideja pri formiranju
ovog modela bila je da se ceo proces komunikacije podeli u više logičkih celina (nivoa ili
slojeva), i da se za svaki nivo omogući kreiranje posebnih standarda.
Uspostavljanje veze između dva računara označava se kao jedna sesija (npr.
jedan telefonski poziv). Računari koji komuniciraju u toku sesije razmenjuju poruke. Neki
od uspostavljenih standarda dele ove poruke u manje jedinice – blokove. Ovi blokovi se
sekvencijalno šalju i to tako što na svom putu recimo od čvora A do čvora E blok može
proći kroz uredjaje u čvorovima B, C i D. Segmenti puta AB, BC, CD i DE se označavaju
kao veze podataka (data link). Nadalje, jedan blok može biti podeljen u više okvira (frame)
koji se prenose preko veza podataka. U svaki od okvira stavlja se jedan paket koji
predstavlja deo poruke iz bloka. Paketi mogu putovati različitim putanjama koje vode do
krajnjeg odredišta. Na mestu prijema paketi se ponovo grupišu u blokove i svi blokovi se
čuvaju dok se ne formira kompletna poruka.
Na svakom od slojeva OSI modela, odredjeni servisi koje obavlja predajnik
obezbedjuju integritet poruke i tačnost prenosa (Sl. B - 6).
U funkcionalnom smislu proces komunikacije se može podeliti u četiri celine.
• Aplikacija
Komunikacija započinje time što se u okviru korisničke aplikacije (npr. e-mail)
generiše poruka. To znači da je neophodno da se uspostavi sprega između aplikacije i
komunikacionog softvera (7. sloj - aplikacija) i da se formira poruka u odgovarajućem
formatu (6. sloj – prezentacija). Na mestu predaje to znači da se izvrši kompresija
podataka i formatira poruka. Na mestu prijema izvršiće se dekompresija podataka i
primeljena poruka preformatirati u oblik u kome može biti prosleđena višem nivou na
kome je aplikacija.
• Mreža
Kada je poruka spremna za slanje predajnik uspostavlja vezu, započinje sesiju i
pridružuje poruku toj sesiji (5. sloj – sesija). Na sledećem sloju (4. sloj – transport) poruka
se deli na blokove i određuju se krajnje tačaka pod-mreža kroz koje će proći pojedini
blokovi. Zatim se svaki blok deli na okvire i određuje se putanja blokova unutar svake pod-
mreže (3. sloj – mreža). Na mestu prijema operacije se obavljaju obrnutim redosledom.
Na 3. sloju okviri se sakupljaju i formiraju se blokovi, od kojih se na 4. sloju formira poruka
i proverava njena ispravnost. Konačno, 5. sloj povezuje primljenu poruku sa sesijom,
prosleđuje je višem nivou i prekida komunikaciju.
• Veze podataka
Na ovom nivou upravlja se radom fizičkog nivoa, odnosno određuje se kada i kako
će se emitovati pojedni signali (2. sloj – veze podataka). Istovremeno se u skladu sa tipom
fizičke veze paketi smeštaju u okvire u odgovarajućem formatu.
• Prenos signala
Najniži 1. sloj obavlja prenos signala.
Plc_mreze/195

7. Aplikacija
svrha komunikacije (e-mail, prenos datoteka itd.,
Čvor u mrezi interfejs prenosa podataka sa aplikacijom) Čvor u mrezi

6. Prezentacija
Peer-to-Peer
pravila za konverziju podataka
(dekompresija podataka i priprema podataka za
prenos, odnosno za prijem od strane aplikacije)

NetBIOS
Sockets 5. Sesija
TLI Prevođenje imena i adresa, zaštita podataka
start, stop i upravljanje redosledom prenosa

4. Transport
obezbeđivanje isporuke cele poruke
TCP/IP
(deoba poruke na blokove, određivanje krajnjih
SPX/IPX
tačaka rutiranja na pojedinim mrežama)
NetBEUI

3. Mreža (network)
rutiranje podataka na različite mreže
(deoba blokova na okvire)
Token ring
(IEEE 802.5)
2. Veza podataka (data link)
Ethernet
(IEEE 802.3) Adapter prenos podataka od čvora do čvora (upravljanje Adapter
ISDN pristupom mediju, ubacivanje paketa u okvire)
1. Fizički sloj

prenos bitova duž komunikacionog kanala

SL. B - 6 SEDMOSLOJNI OSI MODEL

B.1.5. STANDARDI FIZIČKIH VEZA


U principu podaci se mogu unositi u računar ili iz njega iznositi pomoću paralelnog
ili serijskog porta. Pri tome, samo ukoliko računar, ili neki drugi uređaj, ima mogućnost
ostvarivanja komunikacije preko serisjkog porta, smatra se da on može da bude čvor neke
mreže, odnosno da ostvaruje komunikaciju.
Ukoliko uređaj nema serisjki port on može da ostvari samo elementarnu razmenu
podataka u formi nekoliko digitalnih paralelnih informacija. Ove informacije mogu se
razmenjivati direktno ili pomoću tehnike "rukovanja" (handshake). Potrebno je da se
istakne da je čak i u ovom slučaju moguće realizovati računarsko upravljanje takvim
uređajima. Tako na primer, jedan robot može biti programiran da čeka dok njegov ulaz
broj 4 postane istinit, a tada da otpočne sa izvođenjem svog programa broj 5. Kada završi
posao robot treba da generiše signal na svom izlazu broj 2. Ovaj problem se može rešiti
tako što će se digitalni izlaz PLC-a ili bilo kog drugog mikroprocesorskog sistema koji ima
paralelni port, vezati za ulaz broj 4 robota, a izlaz broj 2 robota vezati za digitalni ulaz
mikroprocesorskog sistema. Na taj način formirana je elementarna jednomašinska ćelija
čijim radom upravlja mikroprocesorski sistem.
Opisani model elementarne razmene binarnih podataka ima izuzetno ograničene
mogućnosti. Izvesno je da postoji čitav niz složenijih upravljačkih zadataka koji se ne
mogu rešiti na taj način. Pored toga, veliki broj uređaja programira se emulacijom na PC
računaru, što znači da je neophodno da se program prebacuje sa uređaja na PC računar i
obratno. Isto tako, često je potrebno i da se obavi ažuriranje podatka. Nijedan od
nabrojanih zahteva ne može se ostvariti elementarnom paralelnom razmenom podataka.
Otuda gotovo svi uređaji imaju sposobnost za ostvarivanje serijskog prenosa podataka.
Pri tome se, u najvećem broju slučajeva, koristi asinhroni prenos podataka.
Plc_mreže/196

Da bi dva uređaja mogla da ostvare serisjku asinhronu komunikaciju, neophodno


je da imaju serijske portove. Uspostavljanje komunikacije zahtevalo je da se za svaki port
definiše raspored pinova, da se specificiraju nivoi napon i druge karakteristike koje su od
značaja pri spajanju komunikacionih kanala i računara. Ovaj opis porta predstavlja fizički
standard.
Daleko najrasprostranjeniji standard za asinhronu serijsku komunikaciju koristi RS-
232 serijski port: Međutim, iako gotovo svi uređaji imaju ovaj port, to još uvek ne znači da
dva uređaja kada ime se povežu serijski portovi mogu da uspostave komunikaciju. Naime,
potpuni standard definisan od strane EIA (The Electronic Industries Association), opisuje
RS-232 serijski port, kao port koji ima 25 pinova od kojih svaki pin ima svoju namenu
(jedan pin služi za slanje podataka, drugi za prijem podataka, treći je zajednička masa,
dok ostali pinovi igraju ulogu u prenosu podataka koji koristi tehniku "rukovanja"). Problem
nastaje zato što se standardom ne zahteva da se svi pinovi zaista i iskoriste. Tako neki
proizvođači koriste samo tri pina, neki 9 itd. Ovde je potrebno da se istakne da različiti broj
pinova povlači za sobom i različite protokole, a takođe i drugačije podešene module za
serijski prenos informacija. Standard je "nebalansiran", postoji samo jedna zajednička
veza (common) koju koriste i prijemnik i predajnik. Podržava brzine do 19,2 Kbaud-a na
rastojanju do 15,24m. Omogućava integraciju telefonskog i radio modema.
U cilju prevazilaženja probelma koje postavlja standard RS-232 serijskog porta,
definisani su i drugi standardi serijskih portova kao što su RS-422, RS-423, RS-499 itd.
• RS-422 i RS-423 – standardi koji su razvijeni kasnije sa ciljem ubrzavanja
komunikacije i povećanja rastojanja. RS-422 je balansiran (ima dve zajedničke linije) što
smanjuje interferenciju. Podržava brzine do 10Mbaud-a na rastojanju do 80m.
• RS-449 – standard koji specificira i električne i mehaničke karakteristike RS-422 i RS-
423 specifikacije. Pri tome je jasno specificirano 37 pinova za primarni prenos i 9 pinova
za sekundarni. Ideja je da on zameni RS-232, što će biti teško zbog raspostranjenosti
opreme.
• RS-485 – izveden iz RS-422 standarda i specificira električne karakteristike prijemnika
i predajnika koji se vezuju u mrežu. Podržava multidrop protokol što znači da se više
stanica može vezati na istu liniju. (Dozvoljava povezivanje najviše 32 stanice).
Velika rasprostranjenost uređaja sa RS-232 portom značajno usporava prelaz na
nove standarde.
Osnovna karakteristika opisanih standarda fizičkih veza ogleda se u činjenici da su
one namenjene vezivanju tačka na tačku (point-to-point). To zapravo znači da se dva
uređaja sprežu direktno i da preko ovih portova, uz korišćenje odgovarajućeg protokola,
ostvaruju komunikaciju. Nema nikakve sumnje da ovakva vrsta veze nije preterano
pogodna u slučajevima kada je potrebno ostvariti komunikaciju između većeg broja
uređaja. Za realizaciju tog zadatka razvijeni su drugačiji standardi koji omogućavaju da se
više uređaja nađe na zajedničkoj liniji (multidrop ili multiline veza).
Potrebno je zapaziti da vezivanje više uređaja na istu liniju dodatno usložnjava
problem komunikacije. Naime, ako jedna poruka ide preko takve zajedničke linije onda je
neophodno da se, na neki način, prepozna na koji uređaj se ona odnosi. U načelu, ovaj
problem se rešava tako što se svakom uređaju pridruži neka adresa pa se u okviru poruke
postavi i adresa primaoca. To nadalje znači i da se ova vrsta veze može koristiti samo kod
onih uređaja koji imaju posebna logička kola koja služe za analizu adrese i prepoznavanje
poruka koje su njima upućene. Najrasprostranjeniji standardi za serijske portove koji
omogućavaju povezivanje više uređaja na istoj liniji su RS-485 i IEEE 802.3 (Ethernet).
Veliki broj proizvođača je razvio svoje protokole na bazi nekog od navedenih
standarda. Otuda se veoma često fizički standard meša sa protokolom koji je razvijen uz
korišćenje tog standarda. Najizraženiji primer je Ethernet koji se koristi i da označi fizički
standard i da označi protokol koji je za njega razvijen.
Plc_mreze/197

B.2. Komunikacione mreže

B.2.1. WAN MREŽE


WAN mreže po pravilu koriste komunikacione servise koje pružaju specijalizovane
kompanije. Ovi servisi se dele u dve kategorije:
• Komutir ani (switched) ili dial-up servis – uspostavljanje veze izmedju dva čvora
po posebnom pozivu. Veza ostaje uspostavljena do okončanja poziva. Usluge ove vrste
pružaju telefonske kompanije (POTS – plain old telephone service).
• Direktan servis ( dedicated) – obezbedjuje stalnu vezu izmedju dva čvora pomoću
direktne, iznajmljene (leased) linije (standardne, ISDN, DSL itd.)
WAN mrežama, po
pravilu, upravljaju "mainframe"
računari koji igraju ulogu host
čvorova. Oni se vezuju sa
mrežom preko Front-end-
processor-a (FEP), koji
obezbedjuju komunikaciju i
vrše kontrolu ispravnosti
prenetih poruka. Sprega
izmedju FEPa i niza sporih
čvorova u mreži ostvaruje se
pomoću multipleksera.
SL. B - 7 ŠEMATSKI PRIKAZ WAN MREŽE Multiplekser kombinuje nizove
podataka koji dolaze od
različitih čvorova u jednu poruku koja se prenosi preko brzog kanala. Ovu poruku prima
drugi multiplekser koji vrši funkciju "demultipleksiranja" odnosno razdvajanja poruke na
njene sastavne delove.

B.2.2. KOMPONENTE LAN-A


LAN se pravi povezivanjem niza uredjaja pomoću standardnih komponenti.
• Komunikacioni kanali – parice, kablovi ili bežična veza
• Mikroračunari ili radne stanice – moraju imati karticce za spregu sa mrežom (NIC –
network interface card)
• Mrežni operativni sistem – u zavisnosti od
tipa mreže on može biti smešten na
serveru, na svakom računaru u mreži ili
podeljen izmedju različitih mašina u mreži.
SL. B - 8 HUB I NJEGOV LOGIČKI SIMBOL • Repeater – pojačavač koji pojačava
signale i prenosi paket bez ikakvih
promena
• Hub – je uredjaj koji povezuje segmente mreže.
Hub prosledjuje poruku koju prima (ne čitajući je)
Bay Networks
svakom uredjaju koji je na njega vezan. Hub se
često koristi za vezivanje više računara u jednu
tačku u mreži. U tom smislu on se može posmatrati
kao razvodnik. Naime, alternativa korišćenju hub-a
bila bi da se svi računari konsekutivno povežu
jedan sa drugim. U funkcionalnom smsilu ovim bi
se postigao isti efekat, ali bi problem nastao ukoliko
SL. B - 9 LAN MREŽA SA HUB-OM jedan od tih računara treba iz nekog razloga da se
Plc_mreže/198

isključi.
• Switch – povezuje dva ili više računara,
hub-a, segmenta mreže ili više mreža koje
imaju isti standard za prenos podataka.
Switch kreira sesije i obezbedjuje pravilan
redosled u njihovoj realizaciji. Switch
SL. B - 10 LOGIČKI SIMBOL ZA ISDN, ATM I
ispituje adresu destinacije paketa i
WORKGROUP SWITCH
prosledjuje ga direktno (bez izmene) ka toj
destinaciji. Switch se može programirati
tako da se pojedini delovi mreže koje on
povezuje izdvoje kao logičke celine. U tom
smislu switch se može posmatrati kao
"inteligentan" hub.
• Bridge –je kolo za spregu (interfejs) koji
povezuje segmente mreže istog tipa. Bridge
Bay Networks
radi na dva najniža sloja OSI modela,
obezbedjujući povezanost fizičkog sloja i
sloja veze podataka. To znači da on
SL. B - 11 LAN MREŽA SA SWITCH-EM prebacuje saobraćaj sa jednog segmenta
mreže na drugi na osnovu
adresa paketa. Bridge takodje
ima i bafere za privremeni
smeštaj paketa. Paketi se
čuvaju kada dodje do
zagušenja u mreži, da bi se
naknadno kad se mreža
rastereti prosledili dalje.

• Router – je "inteligentan"
uredjaj koji podržava vezu SL. B - 13 VEZA DVA SEGMENTA LAN MREŽE POMOĆU BRIDGE-A
izmedju sličnih, ali i različitih
LAN-ova, kao i vezu LAN-a sa
WAN-ovima i MAN-ovima koji
koriste isti mrežni protokol.
Ruteri rade na najniža tri sloja
OSI modela, što znači da oni
3 Com
vide celu mrežu (za razliku od
bridge-a koji vidi samo svoju
vezu). Kada primi jedan paket,
ruter analizira adresu njegovog
krajnjeg odredišta i odredjuje
najbolju putanju u mreži koja
vodi ka tom odredištu. On tada
menja okruženje paketa (ali ne i
SL. B - 12 POVEZIVANJE RAZLIČITIH MREŽA KOJE KORISTE njegov sadržaj) tako da adresira
ISTI PROTOKOL POMOĆU ROUTER-A sledeći ruter koji se nalazi na
odredjenoj putanji prema krajnjem cilju.
• Gateway – se koristi za prenos podataka izmedju
dve mreže koje koriste različite veze podataka i
standarde mreže. On prima podatke sa jedne
mreže, obradjuje ih da bi ih prilagodio formatu druge
SL. B - 14 SIMBOLIČKE OZNAKE mreže i šalje ih preko te druge mreže. Neki
gateway-i ovu operaciju izvode čisto hardverski
Plc_mreze/199

(veoma brzo), dok neki koriste i odgovarajući softver što usporava njihov rad. Gateway
radi na svih sedam slojeva OSI modela.

B.2.3. TOPOLOGIJA LAN MREŽA


Način fizičkog vezivanja računara u mrežu određuje topologiju meže. Postoje tri
osnovna načina vezivanja: zvezda, prsten i magistrala.
Z V E Z D A ( S TA R N E TW OR K )
U ovoj topologiji svi uredjaji u mreži se vezuju u jednu tačku preko centralnog
računara, što znači da se svaka razmena podataka obavlja preko njega. Osnovna
prednost sastoji se u tome što prekid komunikacije izmedju bilo kog uredjaja i centralnog
računara ne utiče na rad ostatka mreže. Kvar centralnog računara, medjutim dovodi do
gubtika cele mreže. Iz same strukture mreže jasno je da se ona koristi prevashodno kada
centralni računar treba da razmenjuje podatke sa ostalim računarama, odnosno kad ostali
računari u mreži nemaju potrebe da međusobno
komuniciraju.
P R S T E N (R I N G N E TW OR K )
Svi uredjaji su
vezani u jedan prsten.
Poruke se prenose
kružnim tokom od
računara do računara.
Kada jedan čvor želi da
pošalje poruku on je
SL. B - 16 VEZA RAČUNARA U prenese na prsten.
ZVEZDU Poruka dolazi do
sledećeg čvora, koji
ispituje da li je poruka njemu upućena. Ako ustanovi da
nije, on je jednostavno šalje dalje ka sledećem čvoru u
nizu.. Prednost ove veze je u tome što poruka putuje uvek SL. B - 15 VEZA RAČUNARA U
u istom pravcu, pa tako ne može doći do kolizije. PRSTEN
Nedostatak je
naravno prekid na vezi koji nastaje čim neki
uredjaj otkaže.
M A G I S T R A L A (B U S N E TW O R K )
Svi uredjaji su povezani na zajedničku
magistralu. Svaki čvor ima svoju adresu i svaki
uredjaj može komunicirati sa bilo kojim
uređajem na magistrali. Mreža je bidirekcionog
SL. B - 17 VEZA RAČUNARA PREKO tipa, brzine 1 do 10 Mbps, njen rad je
MAGISTRALE nezavisan od otkaza pojedinih uredjaja, ali
cela prestaje sa radom u slučaju otkaza magistrale.

B.2.4. TEHNIKE UPRAVLJANJA RADOM MREŽE I METODE PRISTUPA MREŽI


Kada se računari povežu u mrežu onda se, nezavisno od topologije, postavlja
pitanje kako se započinje komunikacija i na koji način, računar koji želi da pošalje neku
poruku dobija pristup na mreži.
U pogledu započinjanja komunikacije potrebno je zapaziti da svi uređaji koji se
nalaze u mreži ne moraju da imaju iste funkcije. Naime, neki od njih mogu imati zadatak
da nadziru neke uređaje ili da im izdaju komande, dok drugi jednostavno izvršavaju
dobijene naloge. Otuda je prirodno da su razvijene različite metodologije upravljanja
mrežom.
Plc_mreže/200

K L I J E N T - S E R V E R LAN
Ova vrsta mreže se sastoji od uredjaja koji traže neke podatke – klijenti i uredjaja
koji im pružaju podatke – serveri. Otuda se, od servera očekuje da ima WEB platformu,
baze podataka i odgovarajući alat za rad sa njima, itd, dok klijent raspolaže sa nekim Web
browserom, GUI-em i slično. Softver koji povezuje rad servera i klijenta se označava kao
middleware. U zavisnosti od informacija ili usluga koje server pruža on može biti: file
server, database server, print server, mail server, fax server, communication server etc.
MASTER-SLAVE LAN
Filozofija rada master-slave mreže zasniva se na prepuštanju potpune kontrole
master čvoru. On periodično poziva svaku od slave stanica i od nje traži podatke ili joj
šalje podatke. U principu, slave sam nije u mogućnosti da inicira komunikaciju. Otuda je
veza, po pravilu, poludupleks tipa. Ukoliko slave ne odgovara na poziv mastera, master
ponavlja zahtev nekoliko puta, a zatim obaveštava da je slave "van funkcije" i prelazi na
komunikaciju sa sledećom stanicom.
Osnovne prednosti ovakvog načina komuniciranja su jednostavnost, a time i
pouzdanost komunikacionog softvera, jednostavnost detekcije neispravnosti rada slave
čvora i nemogućnost kolizije poruka u toku komunikacije. To znači da je protok podataka
predvidiv i konstantan.
Ključni nedostatak master-slave tehnike komuniciranja je nemogućnost slave
čvora da traži prekid i hitno uspostavljanje komunikacije ukoliko se za time ukaže potreba.
Pored toga, ne postoji način da se komunikacija sa pojedinim slave čvorovima primeri
obimu podataka koje oni šalju ili primaju i učestanosti sa kojom se podaci menjaju. To
znači da ovakve mreže, ukoliko se u nekim čvorovima podaci sporo menjaju, mogu da
budu nepotrebno spore i neefikasne. Konačno, ukoliko postoji potreba da se razmene
podaci između dve slave stanice to je moguće učiniti isključivo preko master stanice.
P E E R - TO - P E E R LAN
Peer-to-peer1 komunikacija označava mrežu uredjaja koji su potpuno ravnopravni
u smislu komunikacija i koji koriste isti mrežni protokol za razmenu podataka. Pri tome
svaki od uredjaja može započeti komunikaciju. U realizaciji ovog tipa mreža koristi se
nekoliko metodologija kojima se zapravo utvrđuje način komunikacije i način sprečavanja
kolizija poruka.

Sledeće pitanje na koje treba da se odgovori vezano je za upravljanjem samom


komunikacijom u slučajevima kada su čvorovi u mreži ravnopravni. Naime, budući da se
ne može unapred znati kada će neki od čvorova imati potrebu da pošalje neku poruku,
neophodno je da se uspostavi neki mehanizam po kome oni dobijaju pravo da
komuniciraju.
Da bi se objasnio način na koji je rešeno upravljanje komunkacijom poslužićemo
se jednim primerom. Zamislimo jednu mračnu prostoriju punu ljudi koji s vremena na
vreme žele nešto da saopšte. Sasvim je jasno da će, ako se među njima ne uspostave
neka pravila ponašanja, u prostoriji vladati neopisiva galama i da niko neće ništa razumeti.
U suštini ova situacija se može prevazići na dva osnovna načina.
Prvi način sastojao bi se u tome što bi se oni dogovorili da svako ima pravo da
govori određeno vreme i da se to pravo daje svima ravnopravno. Sada još jedino ostaje
da se dogovore na koji način će svako od njih dobijati reč. Budući da je prostorija mračna,
izvesno je da dizanje ruke ili neki druga vizuelna manifestacija nije moguća. Moguće
rešenje je da oni uzmu neki predmet, recimo "maramicu" koja će ići iz ruke u ruku. Dakle,
jedan od prisutnih uzme maramicu i počne da govori. On pri tome može da uputi više
poruka raznim ljudima u prostoriji. Kada on završi, ili kada istekne vreme koje mu je
dodeljeno, on maramicu doda prvoj osobi pored sebe. Time ona dobija pravo da uzme
reč i tako redom. Ovaj princip komuniikacije koristi se u jednom broju računarskih mreža

1
Peer – drug, ravnopravni partner
Plc_mreze/201

koje rade na takozvanom principu rotirajućeg žetona ("passing token"). To zapravo znači
da kroz mrežu putuje "žeton" od čvora do čvora. Čvor koji primi žeton, započinje
komunikaciju i šalje jednu ili više poruka. Teorijski svi čvorovi u mreži primaju tu poruku,
no pošto ona sadrži i adresu primaoca, samo onaj kome je upućena će je zadržati,
raspakovati, pročitati i uraditi ono što se porukom od njega zahteva.
Osnovna odlika ovog tipa mreža sastoji se u tome što se sa velikom preciznošću
može odrediti u kojim vremenskim trenutcima će koji čvor imati pravo komunikacije. Iz tog
razloga ovaj tip mreže se naziva mreža sa determinističkim pristupom.
Drugi način da posmatrana grupa ljudi reši problem komunikacije sastojao bi se u
tome da svako od njih kada ima potrebu da progovori kaže jednu reč i osluškuje da li se u
tom trenutku u sobi čuje samo to što je on rekao ili se čuje još neki drugi glas. Ukoliko je
on jedini koji je počeo da govori, on dobija pravo na komunikaciju i niko ga ne može
prekinuti dok ne završi (svi ostali moraju da ćute). Kad on završi, bilo ko drugi može da
pokuša da započne komunikaciju. Ukoliko se, međutim, kad je on izgovorio reč, čuje i neki
drugi glas, tada svi prisutni ućute, sačekaju neki period vremena i ponovo pokušavaju da
progovore. Ovaj princip komunikacije se koristi u mrežama sa višestrukim emitovanjem
("multi-cast" ili "multi-drop"). To zapravo znači da u ovim mrežama nema žetona koji bi
bilo kom čvoru garantovao pravo na slanje poruka. Svaki čvor kada treba da pošalje
poruku pušta je u mrežu i zatim osluškuje da li će se kao eho vratiti ista poruka. Ako se to
dogodi, to znači da je on u tom trenutku jedini emitor na mreži i on dobija pravo da završi
započetu komunikaciju (ostali čvorovi čekaju dok on ne završi). Ukoliko se, međutim, kao
eho poslate poruke javi izmenjena poruka, to znači da se ona sudarila sa porukom nekog
drugog čvora. U tom slučaju, oba čvora prekidaju emitovanje, čekaju neko vreme (svaki
čvor čeka neki drugi interval vremena) i onda pokušavaju ponovo da započnu emisiju.
Očigledno je da se u ovoj tehnici pristupa mreži nijednom čvoru ne može
garantovati da će u nekom određenom vremenskom intervalu dobiti pravo na slanje
poruka. Otuda se ove vrste mreža označavaju kao mreže sa slučajnim (stohastičkim)
pristupom.
Plc_mreže/202
Plc_ind_mreze/203

C. Industrijske (upravljačke) računarske mreže

C.1. Nivoi komunikacija pri upravljanju procesom


U jednom proizvodnom pogonu jasno se uočava podela posla. Najveći broj
zaposlenih - rukovaoci mašina - direktno upravlja i nadzire rad pojedinih uređaja kao što
su ventili, senzori, pogoni motora, itd. Na tom najnižem nivou, koji se označava kao nivo
uređaja (device level) nalazi se merna oprema i izvršni organi (field devices). Najveći broj
ovih uređaja koji se danas koristi u industriji je veoma jednostavan i ima sposobnost samo
da prenosi "on/off" signale PLC-u. U poslednje vreme proizvodjači su počeli da ovim
uredjajima dodaju komunikacione sposobnosti, što onda omogućava njihovu direktnu
vezu sa magistralom. Na taj način smanjuje se potrebno žičenje do kontrolera.
Više ovakvih uređaja čini jednu proizvodnu mašinu, recimo robota, pokretnu traku,
numerički upravljanu mašinu alatljiku (CNC mašinu), PLC i slično. Ovaj nivo u
proizvodnom pogonu označava se kao mašinski nivo (machine level) i on obuhvata
delove opreme koja proizvodi neki proizvod ili sa njime rukuje. Zajednička karakteristika
svih mašina je da su direktno angažovane u proizvodnji nekog proizvoda. Neke od njih
pomeraju proizvod, neke ga menjaju i time stvaraju novu vrednost. Otuda je njihov
ispravan i koordiniran rad od krucijalnog značaja za efikasnu proizvodnju. Neispravna ili
zakasnela informacija može da prozvede veoma negativne efekte. U skladu sa time sve
ove mašine zahtevaju programsku podršku preko koje se upravlja njihovim radom.
Druga zajednička karakteristika mašina je da se u njihovom radu kreiraju podaci.
Moguće je veoma precizno ustanoviti koliko je proizvoda obrađeno na mašini, koliko treba
vremena za jedan proizvod, koliko je vreme uklanjanja gotovog proizvoda i pripreme za
otpočinjanje izrade novog, kada treba promeniti alat itd. Ove podatke operateri prikupljaju
i obrađuju.
Interesantno je napomenuti da se nivo mašine obično smatra najznačajnijim
nivoom u celom proizvodnom pogonu. To je zapravo mesto na kome se kreira nova
vrednost od koje zavisi ekonomska moć celog preduzeća. Pridajući ovom nivou daleko
najveći značaj, Japanci, recimo, primenjuju takozvani "kaizen" koncept, koji podrazumeva
neprekidno unapređivanje samog postupka proizvodnje.
Mašine se logički grupišu u sledeću celinu koja se označava kao ćelija (cell level).
U okviru jedne ćelije obrađuju se slični elementi i formira novi proizvod. Tako na primer, u
okviru jedne ćelije može da izrađuje motor za unutrašnje sagorevanje. To nadalje znači da
je zadatak ćelije da objedini različite mašine na kojima se proizvode pojedini delovi motora
i da ih integriše u jednu kooperativnu radnu celinu. Radom ćelije upravlja kontroler ili
operater. Njegov zadatak je da ustanovi koliko proizvoda treba da proizvede ćelija, i kojim
proizvodnim programom to može da se uradi na najefikasniji način. Istovremeno, u cilju
što bolje organizacije celokupne proizvodnje, predradnik mora da razmenjuje podatke sa
svojim kolegama koji upravljaju radom ćelije koja proizvodi delove nekog proizvoda.
Više ćelija čini novu celinu pogon (area level). U
posmatranom primeru proizvodnje automobila postojaće
mašinski pogon, pogon za farbanje i lakiranje, odeljenje za
električne instalacije, itd. Radom pogona rukovodi
pogonski inžinjer čiji je zadatak da organizuje proizvodnju
u pogonu i koordinira rad svih ćelija. Konačno, na vrhu
piramide nalazi se uprava celog preduzeća (host level) koji
nadgleda rad svih pogona i njima strateški rukovodi (Sl. C
- 1).
Ako se sada cela ova piramidalna struktura
SL. C - 1 NIVOI ORGANIZACIJE pogleda sa gledišta potreba za komunikacijom vidi se da se
PROIZVODNJE one razlikuju od nivoa do nivoa.
Plc_ind_mreže/204

Pre svega, stanje uređja na mašinama i druge podatke od značaja za proizvodnju


prate rukovaoci mašina. Oni istovremeno i daju komande za rad mašinama. Po pravilu,
ovde se radi o elementarnim informacijama koje se prenose pomoću binarnih signala. Ako
se podsetimo da rad mašina koordinira ćelija, onda je jasno da na nivou mašina ne postoji
potrebe za međusobnom komunikacijom.
Sve mašine u jednoj ćeliji , međutim, moraju biti upravljane na neki osmišljen
način. Ovo se može ostvariti uz pomoć jednog PLC-a koji će igrati ulogu kontrolera na
nivou ćelije. To znači da bi se u informatičkom smislu prikupljanje podatka sa mašina
moglo poveriti PLC-u preko čijih U/I modula bi bili vezani svi davači podataka i izvršni
organi. U tom smislu ovaj PLC bi služio kao koncetrator podataka. Uz ovaj PLC može se
svakako naći i neki operatorski terminal preko koga bi operator pratio rad ćelije.
Poseban problem predstavlja činjenica da se na nivou ćelije javlja i potreba za
međusobnom komunikacijom, što znači da je neophodno da se omogući razmena
podataka između PLC-ova koji se upravljaju pojedinim ćelijama. Ovaj problem se rešava
vezivanjem PLC-ova u računarsku mrežu.
Na sličan način, informacije iz pojedinih ćelija moraju da se dostavljaju
rukovodiocu pogona. Na nivou pogona se već zahteva prikupljanje i analiza obilja
podataka. U tom smislu, primereno je da se ovaj posao poveri nekom PC računaru.
Naravno, i svi PC računari iz pojedinih pogona moraju međusobno da razmenjuju
podatke, ali i da deo tih podataka dostavljaju višem nivou na kome se nalazi menadžment
celog preduzeća. Izvesno je da se i ovaj problem može rešiti vezivanjem računara u
mrežu.
U skladu sa analiziranim komunikacionim potreba proizvodnih pogona razvijane su
i posebne vrste računarskih mreža.

C.2. Struktura upravljačkih mreža


Nema nikakve sumnje da problem za čije se rešavanje koristi računar određuje i
vrstu i obim podataka koji se razmenjuju preko računarske mreže. Komercijalne aplikacije
za koje su realizovani odgovarajući informacioni sistemi razmenjuju velike pakete
podataka preko mreža podataka ili informacionih mreža. Pri tome se zahteva velika brzina
prenosa, ali se relativno retko javlja intenzivan prenos paketa. Pored toga ne postavlja se
zahtev da se taj prenos obavi u realnom vremenu (bar ne u striktnom značenju tog
pojma).
Za razliku od komercijalnih aplikacija, pri upravljanju sistemima pomoću računara
postoji potreba da se, sa velikom učestanošću, razmenjuje nebrojeno mnogo malih paketa
podataka relativno velikog broja čvorova. Pri tome se pri prenosu mora omogućiti podrška
radu u realnom vremenu, odnosno mora se obezbediti ispunjenje svih vremenski kritičnih
zahteva. Imajući u vidu da se ovde radi o suštinski drugačijim potrebama, nije čudno što
su se vremenom, za potrebe računarskog upravljanja, razvile potpuno specifične vrste
računarskih mreža koje se označavaju kao industrijske ili upravljačke računarske mreže.
Samo se po sebi razume da se problem komunikacije na nivou uprave, odnosno
razmena informacija između različitih poslovnih funkcija u jednom preduzeću ili čak
poslovodstava različitih preduzeća, razmatrao potpuno odvojeno od komunikacije između
ostalih nivoa u piramidi uređaja. Na tom nivou razvijane su klasične informacione mreže,
koje su zapravo, veoma rano standardizovane.
Pravi problem javio se na nižim hijerarhijskim nivoima. Tu se nalazilo mnoštvo
različitih računarskih uređaja koji su obavljali komunikaciju na veoma različite načine, koji
su, pre svega, zavisili od proizvođača opreme. Pri tome je svaki proizvođač opreme,
imajući na umu različite sposobnosti, pa i funkcionalne karakteristike pojedinih uređaja, za
svaki od nivoa razvijao posebne protokole. Svi su protokoli bili zatvorenog tipa, odnosno
namenjeni opremi samo jednog proizvođača. U principu, korišćen je "master/slave" princip
upravljanja. Pri tome je jedan PLC, po pravilu bio "master" za čitav niz uređaja koji su se
za njega vezivali (Error! Reference source not found.). Zapravo, najveći broj uređaja i
nije imao niкakve sposobnosti za komunikaciju, te je PLC kao jedini mrežni uređaj,
Plc_ind_mreze/205

obavljao prikupljanje podataka sa ovih uređaja, kao i zadavanje komandi.


Veoma dugo, bilo je gotovo
nemoguće povezati opremu različitih
proizvođača. Samo se po sebi
Uprava
razume da je to stvaralo izuzetne
Mainframe teškoće u automatizaciji celog pogona
Informaciona mreža ili više pogona. Tako je na primer,
početkom osamdesetih godina
prošlog veka, u industriji automobila
General Motors (GM), bilo desetine
Pogon hiljada uređaja proizvedenih od strane

Radna stanica PC
PC
više od 30 različitih proizvođača, koji
gotovo uopšte nisu bili u stanjau da
Lokalna mreža
međusobno komuniciraju. Otuda nije
ni čudo što je baš iz GM-a potekla
Ćelija prva ideja o formiranju
standardizovanog protokola za
Ćelijski kontroler komunikacije. Naime, kada su
Ćelijski kontroler
ustanovili da je sa finansijske tačke
gledišta gotovo nemoguće da se
Mašina
angažuju stručnjaci koji bi formirali
odgovarajući softver koji bi omogućio
komunikaciju različith uređaja, oni su
0
pokrenuli inicijativu za formiranje MAP
Uređaj protokola (Manufacturing Automation
Protocol – protokol za
automatizovanu proizvodnju).
SL. C - 2 VEZIVANJE UREĐAJA PO "MASTER/SLAVE"
Osnovna ideja je bila da će kada budu
PRINCIPU
postojali jasno definisani standardi i
kada korisnici budu insistirali da se oni poštuju,računarska industrija biti prinuđena da ih
prihvati. Kao rezultat te inicijative nastao je, već pomenuti, sedmoslojni OSI model.
Veoma brzo se, takođe, pokazalo da je rukovodstvo GM-a bilo u pravu. Računarska
industrija je prihvatila nametnute standarde i počela da proizvodi opremu za komunikaciju
u skladu sa njima.
Sa razvojem tehnologije, uređaji su postepeno dobijali namenske mikroprocesore
koji su omogućavali daleko jednostavniju kontrolu komunikacije. Time je proširena gama
uređaja koja ima sposobnost komunikacije, što znači da se može povezati u jedinstvenu
mrežu. Tako se gotovo potpuno izgubila potreba za mrežama na nivou ćelije jer su one
mogle da se uključe u lokalnu mrežu (Sl. C - 2). Međutim, na nivou mašina i uređaja i
nadalje je preovladavalo vezivanje u zvezdu, sa "master/slave" metodom prenosa
podataka. Logično je da je sa proširenjem prostora na kome se prostire postrojenje koje
se automatizuje, kao i sa povećanim zahtevima u pogledu funkcionalnosti, ova arhitektura
postaje neadekvatna.
Kao što je već rečeno, savremeni sistemi upravljanja su modularni sa
decentralizovanim upravljanjem. To zapravo znači da se od računarske mreže koja
podržava rad takvog sistema očekuje da omogući jednostavnu izmenu strukture sistema
(dodavanje ili promenu modula), kao i distribuciju obrade podataka po pojedinim
modulima. Sa druge strane, i sami uređaji koji su elementi sistema imaju svoje procesore i
odgovarajuće komunikacione sposobnosti. Otuda se ne vidi ni jedan razlog zašto bi oni i
dalje radili u "master/slave" arhitekturi mreže. Polazeći od ove činjenice razvijena je nova
arhitektura industrijske računarske mreže NCS (Networked Control System) čija je
osnovna odlika zajednička magistrala. Pored niza drugih prednosti ovaj pristup dovodi do
malog obima žičenja. Umesto da se svaki uređaj posebnim kablom vezuje na "master"
ovde se kroz ceo pogon položi samo jedan kabl (magistrala) za koji se direktno vezuje
svaki pojedini uređaj (Sl. C - 3).
Plc_ind_mreže/206

Najveći broj NCS mreža koristi sposobnosti procesiranja u svakom čvoru. Na taj
način omogućena je i funkcionalna modularnost sistema tako što se odlučivanje i
upravljanje distribuira između kontrolera u mreži. Nadalje, ovaj pristup omogućava i
definisanje standardizovanih sistema za spregu pojedinih elemenata na magistralu..

C.3. Industrijske magistrale


Imajući u vidu da se elementi koji se vezuju na mrežu na nivou uređaja i mašina
ipak značajno razlikuju po svojoj
funkciji razvijen su dva tipa
industrijskih magistrala: magistrala
uređaja (device bus) i procesna
magistrala (process bus).
Magistrale uredjaja
zamišljene su da obezbedjuju
prenos kratkih poruka dužine
nekoliko bajtova i dele se na
• bit-wide(1 do 8 bitova za
jednostavne digitalne uredjaje)
• byte-wide (oko 50 bajtova
dugačke poruke).
Najveći broj uredjaja koji se
priključuje na ovu vrstu magistrale je
digitalan (senzori, tasteri, granični
prekidači, itd.), iako se mogu
priključiti i analogni uredjaji koji
zahtevaju mali broj bajtova
(termospregovi, drajevri motora,
kontroleri temperature, itd.). U
principu, na ovim magistralama se
sreću digitalni U/I uredjaji, blok U/I
uredjaji (složeni uredjaji koji imaju
nakoliko aktuatora koji se zajednički
kontrolišu, ili nekoliko senzora čiji se
SL. C - 3 VEZIVANJE UREĐAJA NA INDUSTRIJSKE
izlazi kombinuju), ili eventualno
MAGISTRALE
"inteligentni" uredjaji (drajveri
motora). Na ovim magastralama u
primeni su i master/slave metoda i
token ring metoda prenosa.
Procesne magistrale
prenose pakete od po nekoliko
stotina bajtova. Na njih se vezuju
Field Bus

Modbus Plus, DH+


PROFIBUS

PROFIBUS FMS

"inteligentni uredjaji" koji koriste


ECHELON

analogna merenja i upravljačke


signale (servomehanizmi ili
upravljačke jedinice kojima se
PROFIBUS DP
Y-Axis

InterBus-S
DeviceNet

šalju reference ili parametri). Na


SDS

ove magistrale se priključuju i


Seriplex

uredjaji koji imaju sposobnost


ASI

"peer-to-peer" komunikacije bilo


na bazi rotirajućeg žetona bilo na
bazi višestrukog emitovanja.
Potrebno je da se istakne
SL. C - 4 PREGLED KORIŠĆENJA INDUSTRIJSKIH MAGISTRALA
da za svaki od ova dva tipa
Plc_ind_mreze/207

magistrale postoji čitav niz protokola, odnosno tipova mreža koji se mogu formirati (Sl. C -
4). Pri tome, sve savremene industrijske mreže imaju otvorene protokole, što znači da se
na njih može vezati oprema različitih proizvođača. Takođe, za čitav niz uređaja
namenjenih mrežama sa zatvorenim protokolima, razvijeni su posebni uređaji za spregu
koji omogućavaju da se oni vežu i u drugačije mreže od onih za koje su bili prvobitno
projektovani. Jednom rečju, danas se svaki proizvođač trudi da obezbedi da se njegovi
uređaji mogu povezati u bilo koju industrijsku mrežu.
Napomenimo na kraju da je kod industrijskih mreža vreme u kome se prenosi
poruka izuzetno značajno. Otuda se često prednost daje determinističkim tehnikama
pristupa (na principu rotirajućeg žetona). Ukoliko, se međutim, želi koristiti tehnika
višestruke emisije, onda je neophodno da se obezbedi da mreža ima izuzetno veliku
brzinu prenosa, čime se povećava verovatnoća da se poruka prenese u traženom
vremenskom periodu.

C.4. Mreže i protokoli za master/slave komunikaciju

C.4.1. UDALJENI U/I UREĐAJI (REMOTE I/O)


Komunikacija sa prostorni udaljenim U/I uređajima pretstavlja zapravo preteču
industrijskih master/slave mreža. Nastala je prevashodno iz potrebe da se obezbedi
prikupljanje i prenos podataka na udaljenim, često nepristupačnim lokacijama koje nisu
bile pogodne za smeštaj centralne
stanice koju bi nadgledao operator,
ali i iz želje da se formira
distribuirani upravljački sistem u
kome bi se poslovi prirodno grupisali
u odgovarajuće funkcionalne celine,
pri čemu bi se zadržala dovoljno
brza komunikaciona veza sa
centralnom stanicom. Činjenica da
se prenos podataka obavlja na
nivou U/I uredjaja i blok U/I, uslovila
je da je ova vrsta komunikacije
razvijana namenski za odredjenu
klasu proizvoda, što znači da retko
SL. C - 5 VEZIVANJE UREĐAJA KAO UDALJENIH U/I
podržava opremu različitih
proizvodjača.
Sa aspekta načina na koji
se komunikacija obavlja, ona
pripada master/slave kategoriji ,
pri čemu ulogu mastera obavlja
PLC koji preko posebnog modula
za rad sa udaljenim U/I
uređajima vrši očitavanje i
upisivanje podataka.
ALLEN BRADLEY, SLC SERIJA,
REMOTE I/O
Udaljeni U/I se realizuje
pomoću Remote I/O Scanner
Module (SN) koji se postavlja u
jedan od slotova PLC-a koji treba
da igra ulogu mastera (Sl. C - 5).
SL. C - 6 RAZMENA PODATAKA SA UDALJENIM U/I UREĐAJIMA Jedan SN modul može da podrži
vezivanje do 16 uredjaja koji imaju
Plc_ind_mreže/208

mogućnost za "slave" komunikaciju. U principu, to su ili specijalizovani uređaji kao što su


različite vrste opratorskih panela, ili namenskih blok U/I uređaja. Pored toga, klasični U/I
uređaji se mogu smestiti i u udaljenu šasiju koja u nultom slotu ima Remote I/O Adapter
Module (1747-ASB). Ovaj modul igra ulogu "gateway"-a izmedju SN modula u PLC-u i U/I
modula koji su vezani na udaljenu šasiju.
Ukoliko je potrebno da se veže više od 16 uredjaja, onda se u master PLC može
postaviti još neki SN modul.
Prenos podataka duž ove mreže obavlja se u okviru regularnog sken ciklusa PLCa
i to u "housekeeping" periodu (Sl. C - 6). Ovo je ujedno i razlog zašto se, po pravilu,
udaljeni U/I razvija za određeni tip PLCa i njemu odgovarajućih modula. Naime, sama
filozofija sken ciklusa zahteva jasno definisanje adresa svih ulazno izlaznih tačaka i
njihovog povezivanja pridruženim prostorom u memoriji, što nužno zavisi od arhitekture
PLCa.

C.4.2. STANDARDNI MASTER/SLAVE PROTOKOLI


ALLEN BRADLEY DEVICENET
U funkcionalnom smislu ova mreža je ista kao i udaljeni U/I. Razlika je samo u
tome što DeviceNet ima otvoreni standard. To zapravo znači da se u nju može vezati
oprema različitih proizvođača uz uslov da podržava dati standard.
U tipičnoj Allen Bradley DeviceNet mreži, DeviceNet Scanner (1747-SDN) se
postavlja u šasiju master PLC-a i igra ulogu interfejsa izmedju uredjaja na mreži i PLCa.
Jedan SDN skener može da komunicira sa najviše 63 slave čvora u mreži. Pri tome, jedan
PLC može da podrži više SDN skenera u svojoj šasiji, što znači da se preko njega može
povezati i više uredjaja.
Komunikacija SDN skenera sa uredjajima koji su vezani u čvorovima mreže
obuhvata očitavanje podataka, upisivanje komandi, prenošenje (download) podataka o
konfiguraciji ili očitavanje statusa uredjaja. U/I sken se obavlja asinhrono u odnosu na
sken ciklus samog PLC-a, pri čemu se podaci razmenjuju za vreme dela ciklusa
održavanja i to tako što SDN skener prenosi prikupljene podatke u odgovarjuće delove
memorije PLC-a ili od njega preuzima podatke koje treba da prenese uređajima na mreži.
MODBUS
Modbus protokol je razvila kompanija Modicon u cilju povezivanja PLCa sa
uređajima za njegovo programiranje. Njegova osnovna karakteristika - nezavisnost od
fizičkog sloja - čini ga jednim od najrasprostranjenijih protokola za komunikaciju u
master/slave mreži. Protokol može da se koristi za komunikaciju preko RS232, RS422 ili
RS485 linija, kao i preko niza
Modbus RTU
drugih medija kao što su optički
Tišina Adresa Funkcija Podaci CRC Tišina kablovi, radio komunikacija,
mreža mobilne telefonije itd.
Postoje dve verzije
3.5 1 bajt 1 bajt parovi od
karaktera (0-247) (1-255) po 2 bajta
2 bajta Modbus protokola:
• ASCII prenos – svaki bajt u
Modbus ASCII poruci se prenosi kao 2 ASCII
CR LF
karaktera; ovaj prenos
3A (hex) Adresa Funkcija Podaci LRC
0D (hex) 0A (hex) dozvoljava da interval vremena
između prenosa dva karaktera
0-247
1 bajt parovi od
1 bajt
bude do 1 sekunde.
(1-255) po 2 bajta
• RTU prenos -. svaki bajt u
SL. C - 7 FORMAT MODBUS PORUKE poruci se prenosi kao dva
četvorobitna heksadecimalna
broja.
Format MODBUS poruke prikazan je na Sl. C - 7.
Plc_ind_mreze/209

Pri slanju poruke master upisuje adresu slave čvora kome je poruka namenjena.
Prilikom slanja odgovora, slave u isto polje upisuje svoju adresu, tako da master zna od
kog čvora je poruka stigla. Slave čvorovi imaju adrese od 1 do 247. Ukoliko master u
adresno polje upiše adresu 0, to znači da je poruka namenjena svim slave čvorovima i da
oni na nju ne odgovaraju (broadcast message).
Kod za funkciju označava operaciju koju slave čvor treba da obavi, kao što su
očitavanje stanja digitalnih ulaza ili registara, upisivanja vrednosti na digitialne izlaze ili u
registre itd. Ukoliko je zahtevana operacija uspešno obavljena, pri slanju odgovora slave
čvor ostavlja ovo polje neizmenjeno. Ukoliko je došlo do neke greške, slave čvor menja
originalni kod funkcije tako što najznačajniji bit postavlja na logičku jedinicu.
Polje sa podacima sadrži dodatne informacije neophodne za obavljanje zahtevane
operacije, kao što su adrese registara ili digiatlnih U/I sa kojih se uzimaju podaci ili u koje
se upisuju podaci i slično. Za svaki kod funkcije definisan je niz i redosled podataka
kojima se operacija specificira. Ukoliko se zahteva očitavanje podataka slave čvor će
poslati poruku sa traženim podacima u utvrđenom redosledu koji odgovara primljenom
kodu funkcije. Ukoliko je, međutim, tražena operacija upisivanja podataka, slave čvor će
poslatiporuku koja je identična onoj koju je primio i time signalizirati master čvoru da je
operacija obavljena. Ako pri obavljanju operacije dođe do neke greške, slave čvor će
poslati kod greške na osnovu koga će master da odredi sledeću operaciju koja treba da
se izvrši.
Tačnost prenetih podataka proverava se pomoću CRC (Cyclic Redundancy
Check) ili LRC (Longitudinal Redundancy Check) koda. Ovaj podatak izračunava master i
uključuje u poruku. Kada slave čvor primi poruku, on na osnovu primlejnih podataka
ponovo izračunava CRC ili LRC kod. Ukoliko se izračunati podatak ne slaže sa
primljenim, slave čvor neće poslati odgovor master čvoru. Ukoliko master ne primi
odgovor do isteka tajmaut intervala to je znak da prenos podataka nije uspešno obavljen.

C.5. Mreže i protokoli koji rade na principu razmene žetona


Ove mreže pripadaju klasi determinističkih mreža, jer se svakom čvoru može
garantovati pravo na emitovanje u odredjenim vremenskim intervalima. Pri tome se
maksimalno vreme čekanja pre odpočinjanja emitovanja odredjuje vremenom rotacije
token-a. Pri korišćenju ove tehnike komunikacije ne dolazi do kolizije poruka, jer samo
jedan čvor emituje u jednom trenutku.
U principu u ovoj kategoriji razlikuju se mreže zasnovane na token ring (IEEE
802.5) standardima i token-passing bus (IEEE 802.4) standardima. Ove poslednje imaju
ravnopravne čvorove na magistrali koja podržava linearnu, multidrop, ili segmentiranu
topologiju. Tipični predstavnici ove klase mreža su MAP, PROFIBUS i ControlNet. Pri
tome PROFIBUS podržava i master/slave protokol.

C.5.1. DH485 MREŽA


Ova mreža može da podrži komunikaciju 32 uredjaja na rastojanju od 1219m.
Mreža je zasnovana na RS 485 standardu nad kojim je nadgradjen Allen Bradley protokol,
koji uključuje token ring (IEEE 802.5) standard.
DH485 protokol podržava dve klase uredjaja: inicijatore (initiator) i odazivače
(responder). Svi inicijatori na mreži dobijaju priliku da iniciraju prenos poruke. Pravo
inicijatoru da emituje poruku dodeljuje se pomoću rotirajućeg žetona.
Čvor koji poseduje žeton ima pravo da pošalje bilo koju validnu poruku. Pri tome,
čvor ima pravo na slanje samo jedne poruke, uz dva ponovna pokušaja ako je emisija
neuspešna. Kada čvor pošalje poruku, on šalje žeton (tocken pass packet) sledećem
čvoru u kome se nalazi inicijator . Ukoliko posle toga ne dodje do aktivnosti na mreži, to
znači da sukcesor iz nekog razloga nije primio žeton, pa inicijator ponovo šalje isti paket.
Posle dva neuspešna pokušaja inicijator pokušava da pronadje sledećeg sukcesora,
povećavajući adresu primaoca.
Maksimalna adresa koju će inicijator tražiti pre nego što ponovo počne od nultog
Plc_ind_mreže/210

čvora je vrednost koja je zabeležena kao "maksimalna adresa čvora". Ovo je


konfigurabilni parametar (od 0 do 31). Dozovoljene adrese respondera su od 1 do 31.
Očigledno je da ova mreža može da funkcioniše ukoliko se u njoj nalazi bar jedan
inicijator.

C.5.2. CONTROLNET MREŽA


ControlNet je brza deterministička mreža koju je razvio Allen Bradley za potrebe
prenosa vremenski kritičnih informacija. Pouzdanost mreže povećena je obezbedjivanjem
mogućnosti dvostruke veze izmedju čvorova. To zapravo znači da se prenos informacija
uvek obavlja po onom od dva kanala koji pokazuje veći stepen ispravnosti prenetih
poruka.
Mreža radi na taj način
što čvor prima žeton i
otpočinje emitovanje. Emisija
traje sve dotle dok čvor ne
pošalje sve okvire podataka
koje ima ili dok ne istekne
vreme koje mu je dodeljeno za
emitovanje. Pri prekidu
emisije, čvor generiše žeton
koji šalje svom logičkom
sledbeniku, nezavisno od
fizičkog položaja čvorova u
mreži. Ukoliko sledbenik koji je
dobio žeton nema šta da
emituje, on ga odmah
prosledjuje sledećem čvoru
koji je njegov logički sledbenik.
Za promenu emitera
koristi se metod implicitnog
SL. C - 8 FORMAT OKVIRA CONTROLNET PORUKE prosledjivanja žetona. Naime
svaki čvor u mreži ima svoj
MAC_ID – media access identifier (broj od 0 do 99). Svi čvorovi prate emitovanje poruke,
uzmu iz nje "MAC_ID izvora" (oznaku čvora koji emituje poruku) i u svoj interni implicitni
registar žetona upišu taj podatak uvećan za jedan. Kada se detektuje kraj poruke, svi
čvorovi uporede upisani podatak sa svojim MAC_ID. Kod jednog od čvorova ova dva
podatka se moraju poklopiti, što znači da taj čvor "dobija žeton", odnosno pravo na
emitovanje.
Suštinska razlika između
ove metode dodeljivanja žetona i
metode rotirajućeg prstena,
ogleda se u fizičkom rasporedu
čvorova. Naime, kod rotirajućeg
prstena, čvorovi su fizički
povezani u prsten i njihov
položaj određuje redosled u
kome dobijaju pravo na
emitovanje. Kod implicitnog
prosleđivanja žetona, međutim,
ostvaren je logički prsten u kome
svaki čvor zna svoj MAC_ID, a
SL. C - 9 PRISTUP MEDIJU KOD CONTROLNET MREŽE samim tim i adrese svog
prethodnika (MAC_ID-1) i
sledbenika (MAC_ID+1). Otuda se čvorovi mogu dinamički dodavati na magistralu ili sa
Plc_ind_mreze/211

nje skidati.
Vreme rotacije žetona (TRT – Token Rotation Time) određuje NUT interval
(Network Up-date Time). Ovaj interval se deli na tri dela:
• Scheduled – prenos vremenski kritičnih poruka; u ovom intervalu svaki čvor dobije
žeton i prenosi one poruke koje imaju taj nivo prioriteta.
• Unscheduled – svi čvorovi imaju priliku da emituju po "round-robin" principu, sve dok
ne istekne taj vremenski interval.
• Guardband – svi čvorovi prekidaju emitovanje; moderator (čvor sa najmanjim MAC_ID
emituje poruku za sinhronizaciju (maintenance message) pomoću koje svi ostali čvorovi
sinhronizuju tajmere. Ako se moderator ne oglasi u dva sukcesivna NUTa, čvor sa
sledećim najmanjim MAC_ID preuzima ulogu moderatora.
Na Sl. C - 9 ilustrovan je rad mreže sa 7 čvorova. U okviru jednog NUT intervala
svih sedam čvorova dobija određeno vreme da emituje vremenski kritične poruke. Zatim u
preostalom vremenu čvorovi redom dobijaju dobijaju pravo da emituju i preostale poruke.
Oni čvorovi koji, usled isteka raspoloživog vremena, ne dobiju pravo emitovanja, dobiće
ga u nekom od sledećih NUT interrvala.
ControlNet mreža podržava do 100 čvorova na maksimalnom rastojanju od 1000
m. Mreža prenosi 5 Mb/s, pri čemu je trajanje jednog bita 0,2 μs. Ovaj tip mreže ima
veoma dobru propusnu moć i veliku efikasnost za veliko opterećenje mreže, dok je pri
malom saobraćaju neefikasan.

C.6. Mreže i protokoli koji rade na principu višestrukog emitovanja

C.6.1. DEVICENET (CAN BUS) MREŽA


DeviceNet mreža je zasnovana na CAN standard protokolu i može da podržava
master/slave i peer-to-peer komunikaciju u okviru koje svaki uredjaj može da bude i
proizvodjač i korisnik poruke.
CAN je serisjkii komunikacioni protokol koji je razvijen za potrebe automobilske
industrije. Pokazalo se medjutim da on ima dobre performanse i da se može koristiti i u
drugim vremenski kritičnim industrijskim aplikacijama. CAN protokol je optimiziran za
kratke poruke i koristi CSMA/AMP (Carrier sense multiple access / arbitration on message
priroity) metod pristupa mediju. To zapravo znači da je protokol orijentisan prema
porukama, i da svaka poruka ima svoj prioritet koji se koristi za odredjivanje prava
pristupa magistrali u slučaju da postoji više istovremenih zahteva za emitovanje.
Čvor koji želi da emituje poruku čeka dok magistrala ne postane slobodna (bus
idle) i zatim počinje da šalje identifikator svoje poruke bit po bit. Sinhronizacija povorke
vrši se na početnom bitu (SOF – Start of Frame). Eventualni konflikti u pristupu mreži
rešavaju se za vreme prenosa pomoću jednog arbitražnog procesa koji se odvija na bit
nivou (logička nula je dominantna u odnosu na logičku jedinicu, što znači ako se one
sudare impuls nastavlja kao nula). Dakle, ako dva čvora počnu emisiju oni šalju svoje
identifikatore i onda
osluškuju mrežu. Ako se
jednom čvoru neki od bitova
vrati izmenjen, to znači da je
bio "nadjačan" od strane
odgovarajućeg bita neke
druge poruke koja ima veći
prioritet, taj čvor gubi pravo
na emitovanje, pa drugi čvor
nastavlja sa slanjem poruke.
U skladu sa time, kad počne
SL. C - 10 FORMAT DEVICENET (CAN) PORUKE
emitovanje podatka ono
Plc_ind_mreže/212

više ne može biti prekinuto.


Podaci koji se prenose ne moraju da nose adresu izvora i odredišta. Umesto toga
svaka poruka ima jedinstveni identifikator. Svi čvorovi na mreži primaju istu poruku,
analiziraju identifikator kroz svoje filtre i u zavisnosti od rezultata analize ili je prihvataju ili
odbacuju (multicast prenošenje poruka).
Format DeviceNet poruke (Sl. C - 10) ima ukupni overhead od 47 bitova koji
uključuje SOF, identifikator (11 bitova), upravljanje (13 bitova), CRC (Cyclic Redundancy
Check – 16 bitova), ACK (Acknowledgment – 2 bita), EOF (End Of Frame - 2 bita) i INT
(Intermission) polja.
Osnovna prednost ove mreže ogleda se u sposobnosti prihvatanja prioriteta, što
znači da se kašnjenje u prenošenju prioritetnih poruka uvek može definisati. Mreža je
posebno pogodna za prenošenje kratkih poruka. Glavni nedostatak je relativna sporost
prenosa. Otuda iako mreža podržava segmentaciju dužih poruka, one se retko prenose
preko ove mreže.

C.6.2. ETHERNET (CSMA/CD)


Ethernet je stohastička mreža, što znači da se ni jednom čvoru ne garantuje neko
odredjeno vreme emitovanja. U principu svaki čvor koji ima neku poruku pokušava da
obavi komunikaciju sve dok mu to ne podje za rukom.
Kada jedan čvor želi da emituje on osluškuje mrežu i čeka dok magistrala ne
postane slobodna. Tada ćvor započinje emitovanje poruke. Za vreme prenosa, čvor i dalje
osluškuje mrežu i gleda da li dolazi do kolizije, usled čega će se emitovana poruka vratiti
izmenjuena. Ukoliko dodje do sudara, čvor prekida emitovanje, čeka neko slučajno vreme
i ponovo započinje emisiju. Vreme čekanja se kreće od 0 do 2i , gde je i i-ta pojava
kolizije. Posle 10 kolizija interval čekanja se fiksira na 1023, dok se posle 16 kolizija
prekida prenos i mikroprocesor se obaveštava o neuspehu. (Ako dva čvora žele da
emituju, onda oba osluškuju mrežu i oba počinju emitovanje kad je mreža slobodna).
S obzirom da u mreži može doći do kolizije, kada se emitovanje poruke prekida,
evidentno je da mrežom putuju neki "zalutali" bitovi koje treba razlikovati od validne
poruke. Pored toga, neophodno je da se spreči da čvor završi sa emitovanjem jedne
poruke pre nego što prvi bit stigne do kraja kabla gde može da se "sudari" sa nekom
drugom porukom. Za 10MB/s Ethernet sa maksimalnom dužinom od 2500 m i 4 repeater-
a, minimalno dozvoljeno vreme trajanja jednog okvira (slot time ili frame time) je 51,2μs.
Pošto je trajanje jednog bita 0,1μs to znači da u minimalnom okviru mora da ima 512
bitova odnosno 64 bajta.
Imajući u vidu sve što
je rečeno, Ethernet standard
zahteva da ispravan okvir
podataka ne bude manji od 64
bajta i to počev od adrese
odredišta (destination address)
zaključno sa kodovima za
kontrolu tačnosti (checksum),
odnosno 72 bajta ako se
SL. C - 11 FORMAT ETHERNET PORUKE uključe preambula i delimiter.
Budući da se ne zna koliki će
biti podatak, Ethernet format obezbedjuje ovaj uslov na taj način što ukoliko je broj bajtova
manji od zahtevanog "Pad" se dopunjava do datog broja.
Ovaj tip prenosa je pogodan za malo opterećenje mreže. Osnovni nedostatak je
nedeterministički pristup mreži, što znači da ona ne podržava signale prekida. Ipak,
zahvaljujući činjenici da je mreža veoma brza ona se sve više koristi i kao industrijska
mreža.
Plc_ind_mreze/213

C.7. Bežična komunikacija preko GSM mreže


Gledano potpuno opšte bežična komunikacija ima prednost nad žičnom
komunikacijom ukoliko se radi o sistemima (ili delovima sistema) na nepristupačnim
lokacijama ili sistemima sa promenljivim lokacijama. Pri tome, nije neophodno da ovi
sistemi zauzimaju izuzetno velike površine, kao što su na primer, regionalni sistemi za
snabdevanje vodom kod kojih se bunari nalaze raspoređeni po celom regionu, ili
elektroenergetski sistemi koji povezuju sve elektrane u mreži. Problem fiksne žične veze
može da se javi i na veoma malom prostoru, pri realizaciji fleksibilnog sistema upravljanja
kod koga će pojedini elementi povremeno menjati mesto i položaj, što onda zahteva i
novo žičenje.
U početku bežične računarske mreže realizovane su preko bežičnog LAN-a. Ovaj
naziv se zapravo odnosi na komunikaciju koja se obavlja u radio opsegu za koji nije
potrebna posebna dozvola, pri čemu se koristi IEEE 802.11 protokol. Normalni radni
domet je nekoliko stotina metara, a maksimalno se sa usmerenom antenom može
ostvariti do 10 kilometara. (Ograničenja proističu iz međunarodne regulative koja definiše
maksimalnu snagu koja se može koristiti pri emitovanju.)
Za realizaciju merenja na daljinu najčešće se koriste radio-modemi. koji podatke
prenose preko VHF i UHF radio kanala. Pri tome, da bi se obezbedila pouzdana
komunikacija, neophodno je da se koriste veoma robusni protokoli. Ovako formirana
mreža može biti potpuno nezavisna, ukoliko se obezbedi poseban radio kanal. Jednom
rečju, ova mreža može biti izuzetno pouzdana, ali je zato cena njene realizacije velika.
Pored toga, mreža je ograničenog dometa. Ona zapravo pokriva ono područje koje je
obuhvaćeno postavljenim antenama.
Ideja korišćenja GSM mreže (mreže mobilne telefonije - Global System for Mobile
Communication) za komunikaciju pri realizaciji računarski upravljanih sistema je relativno
novijeg datuma. Po brzini i pouzdanosti ove mreže još uvek zaostaju za svim drugim
računarskim mrežama i to je, verovatno, bio osnovni razlog da neko vreme one i nisu
razmatrane kao moguće rešenje pri formiranju računarskih aplikacija. Sa druge strane,
ova mreža nudi dve izuzetne prednosti: mobilnost mesta sa koga se pristupa mreži i
gotovo univerzalnu pokrivenost mrežom. Drugim rečima, ona pruža mogućnost da se bez
postavljanja posebne računarske mreže uspostavi komunikacija između računara i da, pri
tome, sami čvorovi mreže neprekidno menjaju lokacije.
Teško je reći da li je računarska industrija prepoznavši ove potencijalne prednosti
u realizaciji računarski upravljanih sistema odlučila da proširi tržište, ili je sam razvoj
tehnologije prirodno doveo do tog stupnja, tek tokom poslednjih godina razvijen je čitav
niz novih uređaja i softverskih alata koji su GSM mreže uključili u porodicu industrijskih
računarskih mreža. Broj i opseg aplikacija raste neverovatnom brzinom tako da je teško
predvideti u kojoj meri će, u budućnosti, korišćenje ovih mreža potisnuti druga rešenja. U
ovom trenutku još uvek nije rešeno pitanje pouzdanosti ove vrste prenosa. Naime, za
razliku od svih drugih tipova mreža koje čine sastavni deo računarski upravljanog sistema,
pa se kao takve mogu i održavati, ovde se koristi mreža koju održava neki operater van
sistema. To znači da se na eventualne ispade ili otkaze mreže, kao i na uspostavljene
prioritete ne može uticati. U skladu sa time, ostaje da se vidi da li će se za industrijske
aplikacije razvijati posebne GSM mreže ili će dalji razvoj tehnologije uticati na značajno
poboljšanje kvaliteta i sigurnosti prenosa koji pružaju operatori mobilne telefonije.
Da bi se realizovala bežična GSM računarska (M2M2) komunikacija neophodne su
tri grupe elemenata:
• servisi – koji određuju način prenošenja informacija
• uređaji – pomoću kojih se realizuje prenos
• softver – koji omogućava komunikaciju između uređaja i njihovo povezivanje na neke
druge mreže.

2
М2М – Маchine-to-machine (veza mašine sa mašinom) u pitanju je igra reči, jer se u engleskom
jeziku broj 2 (two) i predlog "ka" (to) izgovaraju na isti način
Plc_ind_mreže/214

SERVISI ZA PRENOŠENJE INFORMACIJA3


U principu GSM mreža nudi tri vrste komunikacionih servisa: SMS, GSM-data i
GPRS.
SMS – Short Message Service – je servis za prenos paketa koji sadrže tekstualne
poruke dužine do 160 karaktera. Ovo je izuzetno korisatan servis za pokretanje M2M
komunikacije, a može da se koristi i za razmenu kraćih informacija. U novije vreme
razvijen je i MMS servis (Multimedia Messaging Service) za prenos dužih poruka, slike i
zvuka i očekuje se da se i on uključi u M2M komunikaciju.
GSM-data - je prenos podataka koji je u osnovi sličan prenosu preko standardnih
žičnih ili bežičnih veza. Imajući u vidu da je on, daleko manje pouzdan od standardnih
veza, ovaj servis je pogodan za korišćenje samo u onim slučajevima kada korisnik nadzire
prenos podataka (npr. pri prenosu programa sa računara na računar)
GPRS – General Packet Radio Service – je servis koji omogućuje internet vezu sa
udaljenim uređajima. Otuda je ovaj servis izuzetno pogodan u slučajevima kada korisnik
treba da pristupi nekim bazama podataka ili aplikacijama koje imaju web servise. GPRS
omogućava konstantnu bežičnu vezu između dva uređaja i pri tome se ova usluga
naplaćuje prema količini preneteih podataka, a ne prema vremenu korišćenja veze.
Potrebno je da se istakne da tip i vrsta servisa, kao i načini njihove realizacije
zavise od operatera mobilne telefonije koji pokriva područje na kome se uspostavlja veza.
UREĐAJI ZA PRENOS PODATAKA
Za realizaciju komunikacije preko GSM mreže koriste se dve vrste uređaja.
GSM Modemi – namenski razvijeni uređaji koji se u funkcionalnom smislu ne
razlikuju od mobilnih telefona. U modem se stavlja SIM kartica preko koje on uspostavlja
vezu sa GSM mrežom i ostvaruje komunikaciju preko serisjkog porta. Imajući u vidu da
modem treba da radi u industrijskom okruženju, on se od standardnih mobilnih telefona
razlikuju po pouzdanosti, otpronosti na klimo-tehničke uslove i po osetljivosti na mrežu.
Ovi modemi su izuzetno malih gabarita, a težina im je ispod 100 grama.
Kao i bilo koji drugi modem, GSM modem se postavlja u računarski uređaj koji
treba da komunicira preko GSM mreže. o može biti PLC ili standardni PC računar.
Samo se po sebi razume, da se i svaki mobilni telefon može koristiti za
ostvarivanje komunikacije preko GSM mreže. To zapravo znači da putem razmene SMS
poruka operator može pristupiti bilo kom uređaju koji ima GSM modem i preuzeti neke
podatke ili zadati određene komande.
Specijalni uređaji – različiti uređaji iz kategorije PLC-ova razvijaju se namenski za
komunikaciju preko GSM mreže. U principu ovi uređaji imaju karakteristike manjeg PLC-a
sa određenim brojem digitalnih ulaza i izlaza. Pored toga oni, mogu da imaju i operatorski
terminal. U suštini, kao što neki drugi uređaji imaju ugrađene portove za komunikaciju
preko određenog tipa mreže, ovi uređaji imaju ugrađeni port za GSM komunikaciju.
SOFTVER ZA KOMUNIKACIJU
Uz pretpostavku da neki računarski uređaj ima sposobnost za ostvarivanje GSM
komunikacije, ostaje još otvoreno pitanje na koji način se ona uspoistavlja i kako se
ostvaruje veza sa nekim drugim aplikacijama u računaru.
Ako je računarski uređaj PLC, onda se razmena informacija obavlja prenosom
ASCII karaktera. Pri tome se za ovu vrstu komunikacije koriste se posebne ASCII
naredbe. Ovim naredbama se aktivira modem, šalje pozivni broj za čvor sa kojim se
uspostavlja komunikacija i konačno prenose odgovarajući podaci. ASCII naredbe su
sastavni deo repertoara naredbi svakog PLCa.
Ako se međutim radi o PC računaru, onda je prirodno da je softver za

3
Intenzivan razvoj tehnologije u oblasti mobilnih komunikacija dovodi neprekidno do uspostavljanja novih
servisa. U periodu od 1999. do 2010. godine planiran je prelaz na treću generaciju tehnologije, tzv. 3G mreža i
odgovarajući 3G servisi, koji nude širi opseg usluga i veću propusnu moć zahvaljujući boljem korišćenju
spektra. Planirano je da GSM standrad bude zamenjen sa UMTS (Universal Mobile Telecomunications
System) standardom.
Plc_ind_mreze/215

komunikaciju daleko složeniji. Naime, predpostavka je da se na PC računaru nalaze baze


podataka, ili neke druge aplikacije koje koriste određene standarde pa je prirodno da
komunikacioni softver omogući uspostavljanje veze sa tim aplikacijama. U tom cilju
razvijajju se odgovarajući softverski alati.
GSM-Control je softverski alat razvijen za PC računare koji omogućava da se kroz
jednostavni dijalog definišu svi komunikacioni parametri i ostvari razmena SMS poruka
preko GSM mreže. Sam softver upravlja komunikacijom i omogućava pristup podacima
koji se obrađuju u različitim aplikacijama (Excell, SQL, itd.).
WAP (Wireless Application Protocol) omogućava ostvarivanje veze sa internetom i
upravlja prenosom informacija preko GSM mreže.

internet

Firewall TCP/IP

LAN mreža
GSM modem
PC sa
GSM Control
ili WAP
GSM mreža
SMS
GSM-data
GPRS
OPLC
sa GSM portom operater

GSM modem

DH-485 mreža

SL. C - 12 ŠEMATSKI PRIKAZ ELEMENATA GSM MREŽE I NJENOG POVEZIVANJA SA DRUGIM MREŽAMA
Plc_ind_mreže/216
217/SCADA_uvod

D. SCADA – Supervisory Control and Data Acquisition


D.1. Od telemetrije do SCADA-e
Upravljanje nekim sistemom projektuje se sa ciljem da sistem ostvari željeno
ponašanje. Otuda nije čudno da je pitanje načina praćenja ponašanja sistema staro koliko i
samo upravljanje. Početne observacije zasnovane na čovekovim čulima, vremenom su
kvantifikovane, po nekim mišljenjima i objektivizirane, pomoću odgovarajuće merne opreme.
Dovođenjem ovih signala na panele sa instrumentima, na grafopisače ili sistem
odgovarajućih sijalica formirani su i prvi sistemi za praćenje i nadzor procesa. Na osnovu ovih
informacija, operater bi ručno, preko različitih potenciometara i drugih davača signala,
podešavao parametre kontrolera koji upravljaju procesom. Problem je, međutim, i dalje bio
otvoren kod čitavog niza sistema kod kojih je, iz različitih razloga, bilo teško pratiti merne
signale.
Tako su, na primer, u prvoj fazi eksperimanata u avio industriji, avioni imali dovoljno
mesta za pilota, ali gotovo ni malo prostora za projektanta koji bi pratio letilicu i nadzirao
stotine senzora koji su davali podatke o silama koje deluju na trup aviona ili na motor.
Situacija sa raketama kao bespilotnim letilicama bila je još kritičnija. Istina, imajući u vidu da
se, u prvo vreme, najveći broj eksperimenata sa raketama završvao njihovim nekontrolisanim
padom, teško je i očekivati da bi, sve i da je bilo prostornih mogućnosti, inžinjeri i tehničari bili
spremni da na licu mesta sakupljaju podatke. Sa druge strane, nema nikakve sumnje da su
ovi podaci bili od izuzetnog značaja za dalje usvršavanje sistema.
Sličan problem javio se kod ispitivanja meteoroloških uslova i drugih geofizičkih
parametara. Od samog nastanka ideje o primeni tehnoloških dostignuća za vremensku
prognozu, naučnici su shvatili da im je za iole relevantne rezultate neophodna ogromna
količina podataka. Nažalost, samo mali deo tih podataka mogao se prikupiti na mestima koja
su pristupačna i gde ljudi normalno borave. Činjenica je da se udaljene meteorolške stanice,
svetionici, brodovi mogu koristiti za te svrhe, no to sve pokriva samo površinske podatke.
Teorija je pokazivala da se preciznost prognoza može povećati samo ako se podaci
prikupljaju u atmosferi. Mali baloni koji bi nosili instrumente bili su, već u to vreme, ekonomski
isplativi, ali je pitanje prikupljanja podataka o merenjima koje oni obave ostajalo otvoreno.
Može se slobodno reći da je rešenje izloženih problema pozajmljeno sa železnice.
Naime, u prvoj polovini dvadesetog veka železnički saobraćaj je već uveliko koristio žične
komunikacione veze za nadzor kretanja vozova. Saobraćaj se odvijao tako što bi dispečer
pratio kretanje voza i obaveštavao skretničare duž pruge kako treba da postave skretnice ili
da spuste rampe. Ovaj komunikacioni sistem koji je nazvan telemetrijski sistem, omogućavao
je centralnom dispečeru da prati stanje na prugama i formira efikasan raspored kretanja
vozova. Osnovni problem ovakvih sistema bila je činjenica da oni zahtevaju fiksnu žičnu
vezu između svih učesnika u saobraćaju koji mogu da emituju signal i dispečerskog centra
gde se svi signali primaju i obrađuju. Ključna prednost na železnici je postojanje šina duž
kojih se veoma jednostavno mogu instalirati senzori pritiska koji da ju informaciju o kretanju
voza. Međutim, kod sistema koji ne ispunjavaju ovaj uslov telemetrija se nija mogla koristiti.
Otprilike u isto vreme u kome se pojavila potreba za održavanjem komunikacije
između pokretnih objekata, zabeležen je i značajan napredak u razvoju radio komunikacija.
Sve dotle dok se nije zahtevao prenos velikog broja informacija, radio je mogao da ostvari
potrebnu komunikaciju. Pri tome, ukoliko se nije očekivalo da ova komunikacija traje
preterano dugo, ona se mogla obaviti uz korišćenje male baterije. Na taj način je rođena radio
telemetrija. Samo se po sebi razume, da se sa razvojem tehnologije radio razvijao tako da je
obim prenetih podataka i dužina emitovanja stalno rasla, zajedno sa pouzdanošću prenosa.
Vremenom su razvijene i tehnike kodiranja informacija, pa i zaštitni kodovi za detekciju
greške, no sama komunikacija je veoma dugo bila jednosmerna. Centralna stanica je primala
Scada_uvod/218

radio signale sa mernih instrumenata, ali im sama nije slala nikakve podatke.
Paralelno sa razvojem radio telemetrije i žična telemetrija je ušla u novu fazu. Umesto
da se koncentrišu na poboljšanje tačnosti i pouzdanosti prenosnog medijuma, inžinjeri su
prepoznali potrebu za ostvarivanjem dvosmerne komunikacije. Na taj način, stvorena je
mogućnost da se ne samo iz daljine nadzire kretanje vozova, već i da se slanjem
odgovarajućih signala upravlja eletromagnetnim skretnicama. Ovo rešenje upravljanja
privuklo je kompanije koje su se bavile prenosom električne energije i gasa, koje su rešavale
sličan transportni problem. Razlika je bila samo u tome što su se njihovi prekidači i ventili
kojima bi trebalo upravljati nalazili na udaljenim, često nepristupačnim lokacijama. Oni su
početkom šezdesetih godina prošlog veka, već imali instalirane sisteme za nadzor opreme,
ali upravljanje i dalje nije bilo moguće.
Vremenom dalji razvoj radio komunikacija omogućio je uspostavljanje dvosmerne
komunikacije i tako je došlo do instaliranja čitavog niza radio telemetrijskih sistema koji su
mogli da ostvare i nadzor i upravljanje. Imajući u vidu da je polaganje telefonskih kablova u
udaljenim lokacijama veoma skupo, nije ni čudno da je sredinom sedamdesetih godina radio
postao osnovni komunikacioni kanal za najveći broj instaliranih dvosmernih telemetrijskih
sistema.
Nema nikakve sumnje da je implemetacija telemetrijskih sistema u velikoj meri
doprinela povećanju efikasnosti procesa, no ona je istovremeno otvarala i niz novih
problema. Sa praktične tačke gledišta, veliki broj senzora dovodio je do gotovo
nepremestovih teškoća pri žičenju. Pored toga, svako dodavanje novih senzora ili potreba za
rekonfigurisanjem sistema zahtevalo je da se sistem formira gotovo iz početka. Nadalje,
prikupljanje podataka o procesu, prirodno je dovelo i do ideje da se oni upotrebe za analizu i
nmodeliranje procesa, što bi u krajnjoj liniji dovelo i do poboljšanja upravljanja. I ovde je
telemetrijski sistem pokazivao određene nedostatke i to pre svega u pogledu skladištenja
prikupljenih podataka koji bi se kasnije obrađivali. Konačno, ne treba zanemariti ni činjenicu,
da je telemetrijski sistem zahtevao neprekidno prisustvo operatera u dispečerskom centru
gde se sakupljaju sve informacije i odakle se vrši upravljanje procesom. Drugim rečima,
koliko god da je sama koncepcija telemetrijskog sistema u velikoj meri unapredila kvalitet
rada procesa, toliko je postalo jasno da je neophodno da se razmišlja o drugačijoj tehnološkoj
osnovi za njegovu realizaciju.
Imajući u vidu da su prikupljanje i obrada podataka osnovne funkcije svakog
telemtrijskog sistema, čini se da je bilo prirodno da se pažnja usmeri prema digitalnim
računarima čiji je razvoj vremenski pratio razvoj radio industrije. Na potrebu procesne
industrije, računarska industrija odgovara proizvodnjom odgovarajućih industrijskih
miniračunara koji se smeštaju u dispečerski centar i postaju sastavni deo telemetrijskog
sistema. Početkom sedamdesetih godina prošlog veka, polako prestaje da se govori o
telemetrijskim sistemima i uvodi se novi pojam SCADA (Supervisory Control And Data
Acquisition – sueprvajzorsko upravljanje i akvizicija podataka). Teško je reči šta je tačno
motivisalo ovu promenu naziva. Moguće je da se želelo posebno istaći da se više ne radi
samo o prikupljanju podataka sa udaljenih lokacija i izdavanju komandi, već i o veoma
sofisticiranoj obradi prikupljenih podataka čiji rezultati u velikoj meri olakšavaju rad dispečera.
Drugim rečim, SCADA je u istinu novi koncept u odnosu na telemetrisjke sisteme.
Tokom poslednjih trideset godina razvoj SCADA-e je prirodno pratio razvoj
komunikacionih i računarskih tehnolologija. Danas je SCADA postala sastavni deo gotovo
svake industrijske aplikacije. Ona se realizuje u okviru računarske mreže i po pravilu nadzire
rad jednog broja lokalnih stanica u mreži koje obavljaju akviziciju podataka, i izvršavaju
direktno digitalno i sekvencijalno upravljanje procesima.
Dodajmo na kraju da savremena SCADA može da razmenjuje podatke i preko
interneta. Time je omogućeno da se stanje na nekom procesu prati praktično sa bilo koje
tačke zemljine kugle.
219/SCADA_uvod

D.2. Primena računara u realizaciji nadzorno upravljačkih sistema


Ideja o formiranju nadzorno-upravljačkih računarskih sistema stara je skoro pola veka.
Uprkos prvim uspesima, primena računara nije zabeležila neki spektakularan napredak.
Tokom šezdesetih godina iskristalisale su se specifičnosti računarske opreme za nadzor i
upravljanje procesom i pristupilo se razvijanju specijalizovanih računarskih sistema za
procesnu industriju. Nastojanja da se reše vezani za on-line akviziciju podataka i zadavanje
komandi izvršnim organima, kao i za brzinu obrade podataka doveli su do povećanja cene
računarske opreme. Otuda se primena računara, sa ekonomske tačke gledišta, mogla
pravdati samo u slučaju kada se jedan računar koristi za više funkcija na nekom složenom
procesu. Posledica zahteva za složenim upravljanjem bila je potreba za izuzetno složenim
softverom. Pokazalo se da se programi za korišćenje ovakvih računarskih sistema više ne
mogu pisati u mašinskom kodu i da oni zahtevaju više memorije od one sa kojom su računari
tada raspolagali.
S obzirom na gabarit, a donekle i cenu, miniračunari su korišćeni prvenstveno za
akviziciju podataka i supervajzorsko upravljanje - generisanje referentnih signala za servome-
hanizme koji su bili instalirani na pojedinim delovima procesa kao zasebne celine. U slučaju
da se nije radilo o preterano brzom procesu kroz mini računar su se zatvarale i povratne
sprege. Komunikacioni drajveri, koji su se u to vreme mogli dobiti od proizvodjača opreme
najčešće nisu bili dovoljno efikasni tako da je, gotovo uvek, bilo neophodno da se delovi
softvera za komunikaciju sa procesom i operatorskim panelom formiraju u svakom
pojedinačnom slučaju i to najčešće u asembleru.
Primena miniračunara zahtevala je od inžinjera upravljanja da detaljno poznaje
sam računar, njegov mašinski jezik i operativni sistem, kao i industrijske U/i uredjaje
koji se na njega vezuju. U aplikativnom smislu miniračunar je doveo do razvoja
različitih optimizacionih tehika za realizaciju supervajzorskog upravljanja, kao i
tehnika obrade podataka sa krajnjim ciljem identifikacije matematičkog modela.
Različite upravljačke strategije su bile primenjivane samo na pilot postrojenjima.
Naime, korišćenje računara za upravljanje u zatvorenoj sprezi moglo se ekonomski
opravdati samo ako se kroz njega zatvori nekoliko desetina sprega, a to je
podrazumevalo klasične petlje sa PID regulatorima ili integro-diferencijalnim
kompenzatorima. Efekat koji bi se dobio zatvaranjem samo jedne adaptivne ili opti-
malne sprege nije bio dovoljan u poredjenju sa cenom instalirane opreme.
Sa gledišta zaposlenih u procesnoj industriji miniračunar je doneo svojevrsnu
revoluciju na nivou dispečera i tehnologa. I jedni i drugi dobili su obilje, mahom štampanih,
podataka na osnovu kojih su vršene različite analize u cilju poboljšanja kvaliteta procesa. Na
nivou operatera nije se desila značajna promena. Računarski terminali su bili tek u povoju,
tako da se kao korisnički interfejs najčešće koristio teleprinter. Shodno tome, operatorski pult
i panel su ostali gotovo neizmenjeni i samom operateru je bilo svejedno da li komanda koju
zadaje ide direktno na neki rele ili u računar, kao i odakle dolazi signal koji pali kontrolnu
sijalicu
Formiranje prvih mikroračunara početkom sedamdesetih godina predstavlja pravu
revoluciju u procesnoj primeni računara. Računari zasnovani na ovim procesorima odlikovali
su se visoko integrisanom tehnologijom, koja je dovela do izuzetno malih gabarita, veoma
niskom cenom, velikom fleksibilnošću i pouzdanošću. Na žalost ili na sreću odlikovali su se
još nečim - potpunim odsustvom korisničkog softvera. Ova činjenica dovela je do toga da
procesna primena računara krene u sasvim drugačijem smeru.
Činjenicu da je mikroračunar malih dimenzija i niske cene inžinjeri upravljanja dočekali
su raširenih ruku. Konačno se došlo do uredjaja koji može da radi u realnom vremenu i na
kome je isplativo da se zatvori samo jedna povratna sprega u okviru koje se mogu isprobati,
pa na kraju i realizovati različiti digitalni upravljački algoritmi. Za trenutak je zaboravljena
Scada_uvod/220

upravljačko-nadzorna funkcija računara i pažnja je usmerena na najniži procesni nivo na


kome je počela zamena klasičnih analognih regulatora, digitalnim realizovanim pomoću
mikroračunara. Ovaj trend bio je sa jedne strane svakako indukovan svojevrsnom
dugogodišnjom težnjom inžinjera upravljanja da projektuju sisteme za rad u realnom
vremenu, ali je na to izvesno uticala i činjenica da je primena mikroračunara, koji su imali
samo rudimentarni operativni sistem i asembler, bila izuzetno složena i odvraćala i one na-
jambicioznije od nekih složenijih nadzorno-upravljačkih zahvata
U nastojanju da se mikroračunari učine što prisutnijim u procesnoj industriji,
proizvodjači su se prirodno okrenuli ka rešavanju onih zadataka koji su, sa jedne strane bili
najrasprostanjeniji, a sa druge relativno jednostavni za programiranje. Tako se prirodno došlo
do razvoja PLC-ova (programabilnih logičkih kontrolera) namenjenih prvobitno za zamenu
logičkih kola i sekvencijalnih elemenata koji su bili realizovani pomoću banke releja, tajmera,
brojača i drugih hardverskih digitalnih komponenti. Postepeno repertoar operacija PLC-a se
širio i uključivao i složenije operacije koje je zahtevala realizacija digitalnog upravljanja.
U osnovi PLC je projektovan za rad u izuzetno nepovoljnim klimo-tehničkim uslovima
koji vladaju na industrijskim postrojenjima. On je veoma pouzdan, jednostavan za održavanje
i programiranje. PLC nije zamišljen kao računar opšte namene, već kao sistem čiji operativni
sistem omogućava da se jednostavno i u realnom vremenu obavi akvizicija velikog broja
podataka, izvesna, ne preterano složena obradu tih podataka i prenošenje rezultata obrade
na izvršne organe. Pored toga, PLC je zamišljen kao modularan sistem na koji se, prema
potrebi, mogu priključiti raznovrsni ulazno/izlazni moduli. Vremenom, gama U/I modula se
širila tako da su formirani specijalizovani merno-pretvarački moduli u kojima se merni signali
obradjuju na izuzetno složen način, kao i izlazni moduli koji sadrže regulatore pojedinih
izvršnih organa. Nesumnjivo je da je sa razvojem PLC-ova definitivno rešen problem
zatvaranja povratne sprege pri upravljanju industrijskim procesima.
Razvoj PLC-ova, kao računarskih uredjaja koji se sprežu direktno sa pojedinim
delovima postrojenja, neminovno je vodio ka razvoju distribuiranih upravljačkih sistema. U
prvo vreme na vrhu piramide bili su minračunari, dok su PLC-ovi imali ulogu samo akvizicije
podataka i prenošenja komandi. Kasnije su miniračunari zamenjeni industrijskim PC
računarima, dok su PLC-ovi obogaćeni složenijim funkcijama. U svakom slučaju, ponovo se
otvorilo pitanje koordinacije i nadzora. Dakle, posle gotovo pola veka od prve ideje da se
računar primeni za formiranje nadzorno-upravljačkog sistema, inžinjeri upravljanja našli su se
gotovo na samom početku, istina u potpuno izmenjenim tehnološkim uslovima, i otpočeli sa
projektovanjem SCADA sistema.

D.3. Nadzorno-upravljački sistem – SCADA sistem


Nadzorno-upravljački sistem omogućava nadzor i upravljanje različitim udaljenim
procesima pomoću serijskih komunikacija izmedju centralne i udaljenih stanica (Sl. D - 1).
Već iz same definicije je jasno da ovakav sistem ima nekoliko hijerarhijski izdvojenih celina:
• Merna opr ema i i zvr šni organi – oprema ugrađena na odgovorajućim urešajima na
samom procesu, pomoću koje se dobijaju informacije o performansi procesa i zadaju
komande kojima se utiče na izmenu performanse
• Udaljeni U/I moduli – omogućavaju spregu računarskog sistema sa mernom opremom i
izvršnim organima. U sklopu ovih modula nalaze se i elementi za komunikaciju, kao i
operatorski paneli.
• Udaljene stanice – mikroračunarski kontroler koji sadrži udaljene module ili je sa njima
povezan preko odgovarajućih komunikacionih linija. Kontroler prikuplja merne signala sa
ulaznih modula, zadaje upravljačke signale aktuatorima, preko izlaznih modula, nadzire
status procesne opreme i signalizira alarme. Pored toga udaljena stanica šalje potrebne
221/SCADA_uvod

informacije centralnoj stanici i prima komande od nje.


• Sistem za komunikaciju – obezbeđuje prenos informacija između udaljenih stanica i
dispečerskog centra. Ova oprema uključuje sve elemente koji se koriste u formiranju
industrijskih računarskih mreža.
• Centralna stanica - centralni računar na kome se realizuje nadzor i upravljanje
procesom. U zavisnosti od složenosti celog sistema, može postojati i više centralnih
stanica.

Cat aly st 29 48G -L3


1 3 5 7 9 11 13 15 17 1 9 21 23 25 27 29 31 33 35 3 7 3 9 41 4 3 45
47
1000 Base - X
C ON SOLE
49

50
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48
1 3 5 7 9 11 13 15 17 19 21 23 25 2 7 29 31 33 35 37 39 41 43 45 47

S TATU S
AU X
PSI R PS U 49 50
1 0/10 0/100 E THE RNE T

LAYE R 3S WIT CH

SL. D - 1PRINCIPIJELNA BLOK ŠEMA NADZORNO UPRAVLJAČKOG SISTEMA

Gledano potpuno opšte sistem koji poseduje sve opisane komponente i u kome se
obavaljaju navedeni zadaci predstavlja nadzorno-upravljački sistem ili SCADA sistem. Za
postojanje jednog ovakvog sistema apsolutno je nebitno koja oprema je upotrebljena niti na
koji način su realizovane pojedine softverske funkcije. Ipak, nesumnjivo je da se ovde radi o
izuzetno složenim sistemima u kojima se obavlja mnoštvo raznorodnih funkcija, što znači da
njihovo projektovanje može da bude veoma zametno. Sa druge strane, očigledno je da je
čitav niz funkcija sistema vezanih za prikupljanje, prenos i prikazivanje podataka, zapravo
tipiziran i da ne zavisi bitno od same aplikacije. Ova činjenica dovela je do ideje da se razvije
poseban aplikativni softver - SCADA softver - koji bi olakšao projektovanje SCADA sistema.
U projektovanju savremenih sistema za upravljanje i nadzor procesima uobičajeno je
da se izdvoje tri celine
• SCADA hardver – obuhvata zapravo opremu koja se koristi pri formiranju sistema za
nadzor. Ovde se pre svega, misli na senzore, pretvarače i izvršne organe, udaljene stanice
koje prikupljaju ove signale, opremu neophodnu za komunikaciju sa drugim stanicama,
centralnu stanicu i eventualno na poslovni informacioni sistem.
• SCADA softver – softverski alat koji omogućava jednostavno specificiranje svih
elemenata sistema, kao i jednostavno projektovanje operatorskog interfejsa u dispečerskim
stanicama.
Scada_uvod/222

• SCADA industrijske komunikacione mreže – obuhvata tehnologiju pomoću koje se


realizuje razmena informacija unutar SCADA sistema, kao i sa operaterom ili drugim
delovima celokupnog poslovnog sistema.

Konačno, potrebno je da se naglasi da mikroračunarski sistem spregnut sa procesom


u kome se vrši akvizicija podataka i upravljanje procesom ne predstavlja sam po sebi
nadzorno-upravljački sistem. Tek kada se formira distribuirani sistem u kome se preko
telemetrijske mreže vrši razmena većeg obima informacija može se govoriti o SCADA
sistemu. U tom smislu važno je da se uoči da se od SCADA-e ne očekuje da radi u realnom
vremenu u smislu čvrstih vremenskih ograničenja Najčešće, zbog složenih zahteva za
komunikaciju, to i nije moguće ostvariti. Drugim rečima informacije koje se u SCADA-i stiču,
kao i komande koje se iz nje prenose u najvećoj meri nisu vremenski kritične i pripadaju klasi
takozvanih mekih vremenskih ograničenja. To zapravo znači da se od sistema očekuje da se
obrada informacija obavi u nekom prosečnom zadanom vremenu. Izuzetak predstavlja samo
mali broj vremenski kritičnih informacija, koje se moraju preneti veoma brzo. Projektovani
sistem mora da obezbedi adekvatan odziv na takve dogadjaje.
U konceptualnom smislu nadzorno-upravljački sistemi ne predstavljaju neko izuzetno
novo rešenje, naprotiv oni su preteča primene računara u procesnoj industriji. Suštinska
novina, koju je doneo tehnološki razvoj mikroračunara, i posebno telekomunikacionih
računarskih mreža, je način na koji se projektuju i realizuju SCADA sistemi. Odgovarajući
SCADA softver je alat koji može značajno da pojednostavi projektovanje sistema.

D.4. SCADA sistemi – hardver i firmver

D.4.1. UDALJENE STANICE (RTU REMOTE TERMINAL UNITS)


U daljena stanica je nezavisni
mikroprocesorski uređaj koji prikuplja
podatke sa merne opreme i prenosi ih
centralnoj stanici, i zadaje komande,
koje je primila od centralne stanice,
izvršnim organima. Pored toga,
udaljena stanica vrši nadzor nad
stanjem merne opreme i izvršnih
organa i o tome izveštava centralnu
stanicu. Otuda se ona mora nalaziti u
računarskoj mreži preko koje
komunicira sa centralnom stanicom i
sa drugim udaljenim stanicama.
Pored centralnog procesora i
memorije udaljena stanica sadrži niz
U/I modula preko kojih se spreže sa
mernom opremom i izvršnim
organima. Ovi moduli, svakako,
moraju podržavati prenos digitalnih i
analognih AC i DC signala, i
SL. D - 2 BLOK ŠEMA TIPIČNE UDALJENE STANICE
realizovati funkciju brojača, časovnika
i generatora impulsa.
Pored tipiziranih U/I modula čiji rad mora da bude podržan od strane udaljene stanice,
razvijeni su i specijalizovani mikroporcesorski merno - pretvarački moduli, kao i regulatori.
Ovi uređaji (smart instruments), po pravilu imaju nezavisne komunikacione sposobnosti tako
223/SCADA_uvod

da ne moraju da se vezuju u sistem preko neke udaljene stanice, već se mogu priključiti i
direktno na mrežu. U tom slučaju i oni se mogu posmatrati kao svojevrsne udaljene stanice.
Konačno, samo postojanje udaljene stanice podrazumeva da je ona sposobna za
komunikaciju sa centralnom stanicom. To znači da ona mora imati i neophodne elemente za
komunikaciju. Pored toga, da bi se obezbedio nezavistan rad stanice, ona po pravilu ima i
nezavisno napajanje (UPS).
Tipičan izgled jedne udaljene stanice je prikazan na Sl. D - 2.
U principu konfigurisanje i programiranje udaljene stanice može da se obavi na dva
načina: preko centralne stanice ili pomoću operatorskog terminala koji se nalazi u samoj
udaljenoj stanici.
Tipična udaljena stanica treba da zadovolji sledeće specifikacije.
Hardver
• Modularnost, robusnost i skalabilnost – standardizovani i lako zamenljivi moduli,
nezavistan rad pojedinih modula, mogućnost povećanja broja modula;
• Dijagnostika – jasna indikacija stanja pojedinih komponenti (led diode), mogućnosti lokalne
i udaljene dijagnostike;
• Mala potrošnja, malo zagrevanje, mogućnost rada u zadanom opsegu temperature i
vlaćnosti, otpornost na vibracije, prašinu i druge soljne uticije, a u zavisnosti od
ambijentalnih uslova u kojima se stanica nalazi.
Softver
• Pamćenje evidencije o svim greškama prouzrokovanim spoljnjom opremom ili internim
elementima;
• Postojanje alata za konfiguraciju i dijagnostiku pri inicijalnom postavljanju stanice,
programiranju i u toku normalnog rada;
• Podrška konfigurisanju i programiranju preko centralne stanice ili operatorskog terminala
koji se nalazi u udaljenoj stanici.

Iako se udaljene stanice prave kao nezavisni uređaji, sve češća je praksa da se one
realizuju pomoću PLC-ova. Njihobvom korišćenjem se, zapravo, značajno proširuju
mogućnosti udaljene stanice.

D.4.2. CENTRALNA STANICA


Centralna stanica uključuje računarski sistem na kome se realizuje nadzor i
upravljanje procesom, kao i niz operatorskih terminala preko kojih se podaci prate i
eventualno menjaju. U ovom centru vrši se prikupljanje podataka i to periodično, inicirano
odredjenim dogadjajima ili na zahtev operatera. Na osnovu ovih podataka dobija se
informacija o trenutnom stanju sistema, analizira se performansa, formiraju različiti izveštaji i
arhiviraju se odgovarajući podaci. Istovremeno, na osnovu prikupljenih i obradjenih podataka
vrši se daljinsko zadavanje komandi, definišu se i prenose referentni signali, zadaju se
recepture, sinhronizuju funkcije pojedinih podsistema, odredjuju reakcije na pojedine alarme,
optinmiziraju algoritmi itd.
Pored nadzora i upravljanja koji se vrši preko operatorskih stanica lociranih u
centralnoj stanici, nadzor je često omogućen i preko interneta uz uslov da postoji
odgovarajuća podrška za web browser.
U zavisnosti od složenosti celog sistema, može postojati i više centralnih stanica. U
tom smislu se na nivou izmedju procesne i upravljačke mreže formiraju operatorske stanice
preko kojih operator upravlja i nadzire deo postrojenja. Na nivou izmedju upravljačke i
informacione mreže formira se stanica namenjena tehnologu, koji vrši nadzor i upravljanje
celim procesom. Na višem nivou nalazi se poslovni sistem koji dobija neke informacije iz
centralne stanice, ali obavlja i čitav niz drugih funkcija vezanih za materijalno-finasijsko
poslovanje.
Scada_uvod/224

Imajući u vidu značaj koji centralna stanica ima za rad celog nadzorno-upravljačkog
sistema čest je slučaj da se u centralnoj stanici nalaze zapravo dva računarska sistema
(SCADA servera) od kojih je jedan aktivan, a drugi služi kao podrška u slučaju otkaza prvog.
Tipičan izgled jedne centralne stanice prikazan je na Sl. D - 3.

SL. D - 3 BLOK ŠEMA TIPIČNE CENTRALNE STANICE

Potrebno je da se istakne da centralna stanica ne treba, a najčešće, zbog složenih


zahteva za komunikaciju, i ne može da radi u realnom vremenu u smislu čvrstih vremenskih
ograničenja. Drugim rečima informacije koje se u njoj stiču, kao i komande koje se iz nje
prenose u najvećoj meri nisu vremenski kritične i pripadaju klasi takozvanih mekih
vremenskih ograničenja. To zapravo znači da se od sistema očekuje da se obrada
informacija obavi u nekom prosečnom zadanom vremenu. Izuzetak predstavlja samo mali
broj vremenski kritičnih informacija, koje se moraju preneti veoma brzo. Projektovani sistem
mora da obezbedi adekvatan odziv na takve dogadjaje.
Nema nikakve sumnje da je, sa gledišta korisnika, upravo dispečerski centar deo
nadzorno-upravljačkog sistema koji je u protekloj deceniji doživeo najznačajnije izmene. Ovo
se pre svega odnosi na mogućnosti grafičke prezentacije koji korisnika oslobadja zamornog
praćenja tabelarno prikazanih podataka i vraća ga u uobičajeno okruženje vizuelnih infor-
macija koje je ranije dobijao preko operaterskog panela. Istovremeno, umesto zadavanja
podataka preko tastature, operateru se pruža mogućnost da u grafičkom okruženju iskoristi
stečene navike u korišćenju operatorskog pulta.

D.4.3. KOMUNIKACIJA
Komunikacioni sistem treba da ostvari vezu između centralne i udaljenih stanica. Ova
225/SCADA_uvod

oprema uključuje sve elemente koji se koriste u formiranju industrijskih računarskih mreža.
Prenos informacija se može ostvariti žičnim ili bežičnim putem, ili kombinacijom
različitih prenosnih medija. U principu moguće je koristiti žične ili optičke zemaljske veze,
radio veze, satelitske, ili usluge GSM mreže. Pored toga, formiranje mreže zahteva da izvrši
izbor topologije mreže, prenosnih medija, načina komunikacije i protokola.
Nema nikakve sumnje da je izbor komunikacione opreme izuzetno važan za efikasan
rad celog sistema. Ovaj izbor zavisi od vrste i obima informacija koja se želi preneti, ali i od
rastojanja i konfiguracije terena na kome se nalaze udaljene stanice. Samo se po sebi
razume da sve stanice u mreži moraju podržavati odabran tip komunikacije.
U principu u okviru jednog sistema može postojati više mreža, pri čemu je jedna
glavna dok ostale služe kao rezerva u pojedinim, kritičnim, delovima sistema.

D.5. Projektovanje SCAD-e – SCADA softver


U principu, za uspešno obavljanje nadzora neophodno je da se operateru obezbede
izveštaji u kojima se prati promena pojedinih promenljivih karakterističnih za rad procesa,
grafički prikaz rada celog sistema i pojedinih podsistema, grafici promena nekih veličina,
registrovanje događaja koji su na neki način od značaja za dalje odvijanje procesa, zadavanje
komandi ili drugih parametara itd.
Izvesno je da se nezavisno od specifičnosti procesa koji se posmatra nadzor zasniva
na nizu tipiziranih aktivnosti. Osnovu svih tih aktivnosti čine podaci koji se dobijaju iz
udaljenih stanica, koji se zatim obrađuju, prate i koriste za donošenje odluka. U skladu sa
time, svi SCADA softverski alati omogućavaju da se, pored specifikacije celog sistema,
definišu promenljive u bazi i da se ti podaci koriste na jedan od sledećih načina.
• Izveštaji - jedan deo podataka se pamti i na osnovu njih se formiraju različite vrste
izveštaja. Od softvera se očekuje da omogući jednostavnu specifikaciju vremenskih
parametara za prikupljanje podataka
• Alarmi - skup podataka čije se vrednosti porede sa zadanim granicama. Svako
prekoračenje granica označava se kao alarm, koji signalizira operateru da se na
procesu nešto ne odvija kako je zamišljeno. SCADA softverski alat treba da omogući
definiciju alarma, definisanje više nivoa ozbiljnosti, smera promene koji izaziva alarm,
specifikaciju poruke koja se vezuje za alarm itd.
• Dogadjaji - matematička ili logička operacija nad podacima čija istinosna vrednost
ukazuje na nastanak dogadjaja. Kao rezultat detekcije dogadjaja sistem izvršava
odgovarajuću komandu. Softerom se odredjuje repertoar dozvoljenih operacija i
komandi.
• Grafika - predstavlja poseban i verovatno, sa korisničke tačke gledišta, najznačajniji deo
sistema. Grafički displej omogućava korisniku da nadgleda rad sistema, da prati grafikone
promena pojedinih veličina, da vizuelno registruje alarme i da zadaje komande. Sa
projektantske tačke gledišta SCADA softverski alat treba da omogući što jednostavnije
kreiranje grafičkih objekata, korišćenje biblioteka gotovih objekata i kontrolu objekata u smislu
promene boje, oblika, položaja itd, a u zavisnosti od stanja postrojenja. Ovaj alat takođe treba
da omogući i specifikaciju komponenti koje ulaze u sastav nekog proizvoda (receptura).

Pri razvijanju nadzorno-upravljačkog sistema primenom SCADA softverskog alata


predpostavlja se da postoji postrojenje sa pratećom mernom opremom i izvršnim organima,
da je data tehnološka šema i opis postrojenja, kao i elektro projekat na nivou postrojenja.
Istovremeno se predpostavlja da je razvijen projekat distribuiranog sistema koji obuhvata
udaljene stanice, opremu za prenos podataka i računarsku mrežu. Od projektanta se očekuje
da je u punoj meri upoznat sa celim sistemom, da razume njegov rad i da je u saradnji sa
Scada_uvod/226

operaterim i tehnolozima definisao na koji način će se obavljati nadzor nad radom sistema i
koje vrste komanda se žele zadavati.
Na tom nivou od SKADA alata se očekuje da omogući jednostavno specificiranje svih
elemenata sistema, kao i jednostavno projektovanje operatorskog interfejsa u udaljenim
stanicama. Samo definisanje aplikacije podrazumeva specifikaciju načina komunikacije (tip
mreže, komunikacioni drajver i sl.), čvorova u mreži, vreme skeniranja pojedinih stanica itd.
Kada je specificiran ceo sistem, razvoj SCADA-e započinje kreiranjem baze podataka
koji se prate i obrađuju. Da bi se to ostvarilo neophodno je da se sastavi spisak svih
ulazno/izlazni promenljivih, da im
se pridruže simbolička imena i da
se za svaku od njih ustanovi sa
kog čvora u mreži dolazi, i sa
koje adrese u tom čvoru.
Istovremeno se utvrđuje i kog je
tipa (digitalna ili analogna), da li
postoje ograničenja koja treba
pratiti na nivou alarma, kojom
brzinom se menjaju, odnosno
kojom brzinom treba da se
skeniraju, i da li se promena
njihovih vrednosti prikazuje
grafički, ili se arhivira. U tom
smislu, od SCADA alata se
očekuje da omogući jednostavno
definisanje simboličkih imena
promenljivih i svih njihovih
SL. D - 4 SCADA EKRAN ZA PRAĆENJE RADA HEMIJSKOG
parametara. U SCADA alatima
REAKTORA
promenljive se nazivaju "tagovi"
("tag").
Uporedo sa popisivanjem
promenljivih koje čine bazu
podataka, započinje se i sa
osmišljavanjem izgleda grafičkih
prikaza podataka pomoću kojih će
se vršiti nadzor nad radom
sistema. U načelu, prikazivanje
stanja na procesu ostvaruje se
preko niza grafičkih slika "ekrana"
koji se aktiviraju u toku rada
sistema. Na svakom ekranu nalazi
se šematski prikaz dela procesa.
Tako na primer, ako se radi o
hemijskom reaktoru, onda se na
jednom od ekrana može prikazati
šema reaktora sa rezervoarima u
kojima se nalaze komponente
smeše (Sl. D - 4). Pri tome
SL. D - 5 GRAFIČKI PRIKAZ PROMENLJIVIH VELIČINA pojedini elementi (crteži) na ovim
šemama predstavljaju promenljive
koje se mere u udaljenim stanicama. Na osnovu rezultata merenja ovi elementi se mogu
pomerati, menjati boju ili dimenzije i time ukazivati na stvarno stanje na procesu. U
227/SCADA_uvod

posmatranom primeru se količina pojedine komponente predstavlja pravouagonikom koji


menja visinu. Samo se po sebi razume da se od SCADA alata očekuje da omogući
jednostavno kreiranje ovih grafičkih celina.
Za operatera može biti od
interesa da prati promenu neke
promenljive i na standardnom
grafiku, pa u tom smislu SCADA
alat mora da omogući
jednostavno definisanje
parametara grafika (Sl. D - 5).
U određenim situacijama
neophodno je da se definišu
parametri samog procesa
("recept"). Takav je, na primer,
slučaj, sa sistemom za
upravljanje i nadzor mašinom za
pravljenje toplih napitaka, kod
koje korisnik (operater) odabira
vrstu napitka, količinu šećera itd
(Sl. D - 6).
Ovim se svakako ne
SL. D - 6 SCADA EKRAN ZA ZADAVANJE RECEPTURE iscrpljuju mogućnosti
prikazivanja informacija pomoću
SCADA-e, ali je i ovo dovoljno da se sagleda koji su neophodni elementi svakog SCADA
softverskog alata.

SL. D - 7 ULOGA I MESTO SCADAE U DISTIRBUIRANOM UPRAVLJAČKOM SISTEMU


Scada_uvod/228

Od SCADA softvera se očekuje da radi u okruženju nekog standardnog operativnog


sistema tipa Windows-a, NT-a ili Unix-a. Izuzetno je pogodno ako je softver projektovan tako
da omogući direktnu razmenu podataka (DDE) izmedju SCADA aplikacije i drugih
standardnih aplikacija tipa Excell, Access i slično. Naime, na ovaj način se zapravo proširuju
mogućnosti SCADA-e, tako što se za prikaz i obradu podataka koristi ona vrsta programa
koja je profesionalno razvijena i najbolje odgovara željenoj vrsti primene. U tom smislu
SCADA se može posmatrati kao deo jednog složenog distribuiranog sistema upravljanja, kod
koga se na svakom nivou uz pomoć odgovarajućeg softvera obavlja odgovarajuća operacija
(Sl. D - 7).

D.6. Operatorski terminali


Može se slobodno reći da je programabilni kontroler, ili bilo koji drugi mikroračunarski
sistem, doveo do svojevrsne revolucije u proizvodnji. Zahvaljujući njemu automatizacija
proizvodnje je postala fleksibilna i ekonomski izuzetno povoljna. PLC-ovi preuzimaju
upravljanje svim segmentima proizvodnje u fabričkoj hali. Pored neposredne pomoći u
proizvodnji nekog proizvoda, PLC-ovi proizvode i podatke. I koliko god se čini da je to ipak
samo usputni dodatak, pokazuje se da podaci, ako se pravilno iskoriste, mogu biti
profitabilniji od samog proizvoda. Suština ove tvrdnje leži u činjenici da su proizvodni
procesi, po pravilu, veoma neefikasni. To nadalje znači, da bi se analizom podataka mogli
utvrditi uzroci neefikasnosti i time značajno poboljšati sama proizvodnja.
Ideja da se podaci koje PLC sam po sebi prikuplja u
toku rada, upotrebe u cilju povećanja efikasnosti proizvodnje
razvijala se u dva pravca. Sa jedne strane, kako su proizvodni
sistemi postajali sve više automatizovani, a time i
kompleksniji, blagovremena informisanost operatera o stanju
na procesu, kao i eventualne informacije koje on treba da
prenese na proces, postajala je sve značajnije. U želji da se
omogući efikasna i jednostavna razmena podataka između
operatera i računara koji upravljaju procesom pristupilo se
razvijanju posebnih uređaja – operatorskih terminala. Sa
druge strane, filozofija distribuiranog upravljanja procesom,
nametala je potrebu da se obezbedi mogućnost razmene
podataka između samih kontrolera u proizvodnom procesu.
Vremenom, sa razvojem mikroračunarskih komponenti, kao i
informacionih i komunikacionih tehnologija postepeno se
SL. D - 8 ŠEMATSKI PRIKAZ gubi razlika između ove dve vrste razmene podataka.
OPERATORSKOG TERMINALA
Operatorski terminal omogućava komunikaciju
4
između čoveka-operatera i računara . U prvo vreme operatorski terminali su bili veoma
jednostavni uređaji koji su imali mogućnost prikazivanja kratkih poruka, da bi se vremenom
broj opcija proširivao. U principu, svaki terminal ima ekran na kome se prikazuju podaci i
tastaturu preko koje se unose podaci (Sl. D - 8). Razlika je zapravo samo u načinu na koji se
podaci mogu prikazati na ekranu, odnosno na koji se mogu uneti u kontroler. U tom smislu
operatorski terminali se dele u nekoliko kategorija
• Alfanumerički operatorski terminal
Kao što mu samo ime kaže ovaj terminal je namenjen razmeni podataka u formi
alfanumeričkih znakova. Ekran terminala je najčešće LED display, na kome se može prikazati
nekoliko linija teksta, pri čemu svaka linija može da ima izvestan broj karaktera. Korisnik, po

4
U praksi se često koriste sledeće skraćenice: MMI – Man Machine Interface ili HMI – Human Machine
Interface
229/SCADA_uvod

pravilu, ima mogućnost da isprogramira više različitih tipova tabelarnih prikaza podataka i da
ih pomoću odgovarajućih tastera poziva u toku rada kontrolera. Pozivanjem jedne tabele,
aktivira se komunikacija između terminala i kontrolera za koji je on vezan, preuzmu se
vrednosti podataka koji su navedeni u tabeli i prikažu na ekranu.
Za programiranje ovakvih terminala razvijeni su posebni programski paketi koji zavise
od vrste i tipa terminala. U principu, radi se o veoma jednostavnom skupu naredbi koje se
mogu zadati bilo preko samog terminala, bilo preko posebnog programskog paketa koji
omogućava da se program razvije na standardnom PC računaru i zatim unese u terminal.
• Grafički operatorski terminal
Grafički operatorski terminal, se od alfanumeričkog razlikuje po tome što omogućava i
grafički prikaz podataka u formi dijagrama ili na neki drugi način (npr. promenom boje ako se
meri temperatura ili dimenzija ako se meri nivo itd.).
Istovremeno, grafički terminali veoma često umesto
tastature, ili uz tastaturu, imaju i ekran koji je osetlljiv
na dodir ("touch screen"), što znači da operator može
da zadaje komande kontroleru i pritiskom na određene
delove ekrana. Ovo svakako podrazumeva da se
prethodno isprogramira odgovarajući izgled ekrana i
da se pojedini njegovi segmenti povežu sa grupom
podataka koja se želi prikazati.
Kao i kod alfanumeričkih terminala, proizvođači
su razvili i posebne programske pakete za
programiranje grafičkih terminala.
• PC kao operatorski terminal
Ako je bilo moguće da se isprojektuje poseban
uređaj pomoću koga će operater komunicirati sa
terminalom, onda je izvesno da je bilo moguće da se
ta vrsta komunikacije uspostavi i preko standardnog
PC računara. Nesumnjivo je da ova vrsta sprege pruža
daleko veće mogućnosti od bilo kog operatorskog
terminala, ali je naravno i značajno skuplja. Otuda je
prihvaćeno, da se PC koristi kao terminal samo na
onim mestima u sistemu gde je neophodno da se
ostvari širok repertoar različitih prikaza stanja procesa i
da se, sa druge strane, pruži mogućnost za
raznovrsno zadavanje komandi samom procesu.
Pored toga PC se koristi i za formiranje i testiranje
programa PLC-a.

SL. D - 9 OPLC TERMINALI FIRME • OPLC – Operatorski terminal sa PLC-om


OMITRONICS (Operator Panel + Classical PLC)
Razvoj tehnologije uslovio je i pad cena
komponenti, pa je ideja da se napravi PLC koji bi sadržavao i operatorski panel dobila svoje
ekonomsko opravdanje. U novije vreme, klasični operatorski terminali se zamenjuju sa OPLC
uređajima, koji pored komunikacije sa operaterom obavljaju i prikupljanje određenog broja
informacija sa procesa, obradu tih informacija i prenošenje komandi izvršnim organima. U
principu, ovi PLC kontroleri su modularni, no ukupni broj U/I modula koje kontroler podržava
nije preterano veliki.
Sami terminali prave se u širokom spektru opcija. Od malih alfanumeričkih sa crno
belim ekranom, do većih koji imaju mogućnost prikazivanja grafike u boji i emulaciju tastature
na ekranu koji je osetljiv na dodir. Jedan skup OPLC terminala koji proizvodi Omitronics
Scada_uvod/230

prikazan je na Sl. D - 9.
Za OPLC terminale proizvodi se i poseban softverski alat koji olakšava njihovo
programiranje.

Imajući u vidu sve što je rečeno o operatorskim terminalima vidi se da je terminal u


stvari jedan od uređaja koji služi kao posrednik u komunikaciji sa PLC-om. Njegova
specifičnost ogleda se zapravo u objektu komunikacije. Naime, dok U/I moduli, kao i
specijalizovani moduli omogućavaju razmenu podatke između procesa i PLC-a, dotle
operatorski terminal ima zadatak da omogući razmenu podataka između čoveka i PLC-a.
Drugačije rečeno, operatorski terminal se može posmatrati i kao jedan od specijalizovanih
modula PLC-a. Otuda nije ni čudno da su operatorski terminali od samog početka
konstruktivno zamišljeni kao i bilo koji drugi uređaj koji se vezuje sa PLC-om. U skladu sa
time, kako se menjao koncept komunikacije između PLC-a i spoljnih uređaja, ta rešenja su
primenjivana i na operatorske terminale.

You might also like