plc

250
PROGRAMABILNI LOGIČKI KONTROLERI SRBIJANKA TURAJLIĆ BEOGRAD, 2011

Upload: jovicarad

Post on 31-Oct-2014

308 views

Category:

Documents


18 download

DESCRIPTION

PLC

TRANSCRIPT

Page 1: PLC

PROGRAMABILNI LOGI ČKI KONTROLERI

SRBIJANKA TURAJLIĆ

BEOGRAD, 2011

Page 2: PLC
Page 3: PLC

SADRŽAJ

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

1.1. OSNOVNE KARAKTERISTIKE PLC-A ....................................................................... 1 1.1.1. Robusnost i modularnost ................................................................................................. 1 1.1.2. Operativni sistem PLC-a .................................................................................................. 3

1.2. PROGRAMIRANJE PLC-A...................................................................................... 7 1.2.1. Uvod ................................................................................................................................ 7 1.2.2. Leder dijagrami ................................................................................................................ 8 1.2.3. Dijagrami funkcijskih blokova .......................................................................................... 9 1.2.4. Strukturiani tekst ............................................................................................................ 10

1.3. DIJAGRAMI SEKVENCIJALNIH FUNKCIJA ................................................................12

2. MALI LOGIČKI KONTROLERI ..................................................................... 15

2.1. ARHITEKTURA MALIH KONTROLERA ......................................................................15 2.1.1. Osnovne karakteristike .................................................................................................. 15 2.1.2. Organizacija RAM memorije kontrolera SLC 500 i MicroLogix ..................................... 16

2.2. ORGANIZACIJA DATOTEKA PODATAKA ..................................................................17 2.2.1. Tipovi promenljivih i datoteka ........................................................................................ 17 2.2.2. Element datoteke ........................................................................................................... 18 2.2.3. Kreiranje datoteke i zauzeće memorije ......................................................................... 19 2.2.4. Indirektno adresiranje .................................................................................................... 21 2.2.5. Indeksno adresiranje ..................................................................................................... 21 2.2.6. Adresiranje datoteka ...................................................................................................... 22 2.2.7. Programske konstante ................................................................................................... 23

2.3. DISKRETNI U/I MODULI ........................................................................................23 2.3.1. Ulazno/izlazni modul ...................................................................................................... 23 2.3.2. Sprezanje U/I modula sa kontrolerom ........................................................................... 24 2.3.3. Vezivanje digitalnih uređaja za digitalni modul .............................................................. 25

2.4. ANALOGNI U/I MODULI ........................................................................................27 2.4.1. Analogni ulazni kanal ..................................................................................................... 27 2.4.2. Analogni izlazni kanal .................................................................................................... 29

2.5. FORMIRANJE PROJEKTA ......................................................................................30

3. LEDER PROGRAMIRANJE ......................................................................... 33

3.1. UVOD U LEDER PROGRAMIRANJE .........................................................................33

3.2. BIT NAREDBE .....................................................................................................33 3.2.1. Bit naredbe za definisanje uslova .................................................................................. 34 3.2.2. Bit naredbe za postavljanje vrednosti izlaza ................................................................. 34 3.2.3. Bit triger naredba ........................................................................................................... 35 3.2.4. Programski sken i vremenski dijagram .......................................................................... 36 3.2.5. Primeri ........................................................................................................................... 37

3.3. NAREDBE ZA MERENJE VREMENA I PREBROJAVANJE DOGAĐAJA ............................42 3.3.1. Časovnik i brojač ........................................................................................................... 42 3.3.2. Datoteka podataka o časovniku (Timer data file) .......................................................... 43 3.3.3. Naredbe za rad sa časovnikom ..................................................................................... 44 3.3.4. Način rada časovnika .................................................................................................... 47 3.3.5. Datoteka podataka o brojaču (Counter data file) ........................................................... 48 3.3.6. Naredbe za rad sa brojačem ......................................................................................... 48 3.3.7. Primeri korišćenja časovnika i brojača .......................................................................... 49

4. LEDER NAREDBE ZA OPERACIJE NAD PODACIMA ...................................... 61

4.1. NAREDBE ZA OPERACIJE NAD PODACIMA ..............................................................61

4.2. NAREDBE ZA POREĐENJE....................................................................................61

4.3. MATEMATIČKE NAREDBE .....................................................................................63 4.3.1. Opšte napomene ........................................................................................................... 63

Page 4: PLC

4.3.2. Pregled matematičkih naredbi ....................................................................................... 65

4.4. NAREDBE ZA MANIPULACIJU SA NUMERIČKIM PODACIMA ....................................... 71

4.5. NAREDBE ZA KONVERZIJU .................................................................................. 73

4.6. NAREDBA ZA PREMEŠTANJE BAJTOVA ................................................................. 76

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

5. NAREDBE ZA RAD SA DATOTEKAMA PODATAKA ........................................ 87

5.1. OPŠTE NAPOMENE ............................................................................................. 87

5.2. NAREDBE ZA KREIRANJE DATOTEKE .................................................................... 88

5.3. NAREDBE ZA TRANSLACIJU BITOVA ...................................................................... 88

5.4. NAREDBE ZA SEKEVENCIJALNU OBRADU PODATAKA ............................................. 90 5.4.1. Naredbe za sekvencijalni rad sa datotekama ................................................................ 90

5.5. NAREDBE ZA FORMIRANJA STEKA ........................................................................ 94

6. NAREDBE ZA UPRAVLJANJE IZVRŠAVANJEM PROGRAMA ........................... 99

6.1. OPŠTE NAPOMENE ............................................................................................. 99

6.2. NAREDBA ZA SKOK ............................................................................................. 99

6.3. POTPROGRAMI ................................................................................................ 100

6.4. PROMENA TOKA SKEN CIKLUSA ......................................................................... 101

6.5. AŽURIRANJE ULAZNIH I IZLAZNIH PODATAKA ....................................................... 102

6.6. SISTEM PREKIDA (INTERRUPT) .......................................................................... 103 6.6.1. Tipovi prekida i hijerarhijski nivoi ................................................................................. 104 6.6.2. User Fault Routine ....................................................................................................... 105 6.6.3. DII – Discrete Input Interrupt ........................................................................................ 109 6.6.4. STI – Selectable timed interrupt .................................................................................. 113 6.6.5. I/O Prekid ..................................................................................................................... 118

7. NAREDBA ZA REALIZACIJU PROPORCIONOLNO -INTEGRALNO-DIFERENCIJALNOG ZAKONA UPRAVLJANJA (PID) .......................................... 121

7.1. JEDNAČINA PIDA ............................................................................................. 121

7.2. SKALIRANJE MERNIH I UPRAVLJAČKIH SIGNALA ................................................... 122

7.3. PID NAREDBA ................................................................................................. 124

7.4. PRIMERI KORIŠĆENJA PIDA .............................................................................. 128

8. NAREDBE ZA KOMUNIKACIJU SLCA ....................................................... 137

8.1. NAREDBE ZA RAD SA ASCII KARAKTERIMA ........................................................ 137 8.1.1. ASCII naredbe za manipulaciju karakterima ............................................................... 138 8.1.2. ASCII naredbe za komunikaciju .................................................................................. 139 8.1.3. Primeri korišćenja ASCII naredbi ................................................................................. 143

8.2. NAREDBE ZA KOMUNIKACIJU SLCA U MREŽI ....................................................... 148 8.2.1. Format naredbi za komunikaciju .................................................................................. 148 8.2.2. SLC kontroler kao odredišni uređaj (500CPU) ............................................................ 149 8.2.3. Odredišni uređaj je 485CIF (emulator PLC-2) ............................................................. 152 8.2.4. Komunikacija preko Eterneta ....................................................................................... 155 8.2.5. Indikatori statusa .......................................................................................................... 156 8.2.6. Izvršavanje message naredbe ..................................................................................... 158 8.2.7. Primeri korišćenja mesage naredbi ............................................................................. 160

9. KOMUNIKACIJA SLC-A .......................................................................... 167

9.1. KONFIGURISANJE KOMUNIKACIONIH KANALA SLC KONTROLERA .......................... 167 9.1.1. Konfiguracija kanala 0 ................................................................................................. 168 9.1.2. Opšte specifikacije mreže ............................................................................................ 169

9.2. DH-485 MREŽA ............................................................................................... 169

9.3. DH+ MREŽA .................................................................................................... 171

9.4. ETERNET MREŽA .............................................................................................. 173 9.4.1. Konfiguracija Eternet mreže ........................................................................................ 173

Page 5: PLC

9.4.2. Dijagnostička datoteka ................................................................................................ 176

9.5. RS-232 INTERFEJS .......................................................................................... 176

9.6. DF1 PUNI DUPLEKS PROTOKOL (POINT-TO-POINT) .............................................. 178 9.6.1. Konfiguracija kontrolera ............................................................................................... 178 9.6.2. Dijagram toka procesa ................................................................................................. 179 9.6.3. Dijagnostička datoteka ................................................................................................ 179

9.7. DF1 POLU-DUPLEKS PROTOKOL ........................................................................ 180 9.7.1. DF1 polu-dupleks standardni master protokol ............................................................. 181 9.7.2. DF1 poludupleks - message based mode ................................................................... 187 9.7.3. DF1 polu-dupleks slave protokol ................................................................................. 188

9.8. KORIŠĆENJE MODEMA ZA DF1 PROTOKOLE........................................................ 190 9.8.1. Vezivanje kontrolera sa modemom ............................................................................. 191 9.8.2. Upravljanje slanjem i primanjem poruka ..................................................................... 192 9.8.3. Komunikacija preko telefonskih linija ........................................................................... 193

9.9. ASCII KOMUNIKACIONI PROTOKOL ..................................................................... 195

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

B. ELEMENTI RAČUNARSKIH KOMUNIKACIJA ............................................... 203

B.1. OSNOVE RAČUNARSKIH KOMUNIKACIJA .................................................................. 203 B.1.1. Uređaji za prenos podataka ........................................................................................ 204 B.1.2. Komunikacioni kanali .................................................................................................. 205 B.1.3. Protokol ....................................................................................................................... 207 B.1.4. Sedmoslojni OSI model ............................................................................................... 208 B.1.5. Standardi fizičkih veza ................................................................................................ 209

B.2. KOMUNIKACIONE MREŽE ....................................................................................... 211 B.2.1. WAN mreže ................................................................................................................. 211 B.2.2. Komponente LAN-a ..................................................................................................... 211 B.2.3. Topologija LAN mreža ................................................................................................. 213 B.2.4. Tehnike upravljanja radom mreže i metode pristupa mreži ........................................ 213

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

C.1. NIVOI KOMUNIKACIJA PRI UPRAVLJANJU PROCESOM ................................................ 217

C.2. STRUKTURA UPRAVLJAČKIH MREŽA ........................................................................ 218

C.3. INDUSTRIJSKE MAGISTRALE ................................................................................... 220

C.4. MREŽE I PROTOKOLI ZA MASTER/SLAVE KOMUNIKACIJU ........................................... 221 C.4.1. Udaljeni U/I uređaji (remote I/O) ................................................................................. 221 C.4.2. Standardni master/slave protokoli............................................................................... 222

C.5. MREZE I PROTOKOLI KOJI RADE NA PRINCIPU RAZMENE ZETONA .............................. 223 C.5.1. DH485 mreža .............................................................................................................. 223 C.5.2. ControlNet mreža ........................................................................................................ 224

C.6. MREŽE I PROTOKOLI KOJI RADE NA PRINCIPU VIŠESTRUKOG EMITOVANJA ................. 225 C.6.1. DeviceNet (CAN Bus) mreža ...................................................................................... 225 C.6.2. Ethernet (CSMA/CD) .................................................................................................. 226

C.7. BEŽIČNA KOMUNIKACIJA PREKO GSM MREŽE ......................................................... 227

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

D.1. OD TELEMETRIJE DO SCADA-E ............................................................................. 231

D.2. PRIMENA RAČUNARA U REALIZACIJI NADZORNO UPRAVLJAČKIH SISTEMA .................. 233

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

D.4. SCADA SISTEMI – HARDVER I FIRMVER .................................................................. 236 D.4.1. Udaljene stanice (RTU Remote Terminal Units) ......................................................... 236 D.4.2. Centralna stanica ........................................................................................................ 237 D.4.3. Komunikacija ............................................................................................................... 238

D.5. PROJEKTOVANJE SCAD-E – SCADA SOFTVER ...................................................... 239

D.6. OPERATORSKI TERMINALI ...................................................................................... 242

Page 6: PLC
Page 7: PLC

PLC_uvod/1

1. PROGRAMABILNI LOGI ČKI KONTROLER (PLC)

1.1. OSNOVNE KARAKTERISTIKE PLC-A

1.1.1. ROBUSNOST I MODULARNOST Prema standardizaciji Udruženja proizvođača električne opreme (The National

Electrical Manufacturers Association -NEMA) programabilni logički kontroler je definisan kao:

“Digitalni elektronski 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.” Nastanak i razvoj PLC-a vezuje se za početke mikroračunarske industrije. Imajući

u vidu relativno skromne mogućnosti prvih mikroprocesora nije ni čudno da je PLC prvobitno je zamišljen kao specijalizovani računarski uređaj 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. Očekivalo se da će tržište spremno prihvatiti mogućnost da relejne ormane koji su u to vreme korišćeni kao osnovni elementi u automatizaciji pogona zameni malim fleksibilnim i razumno jeftinim mikroračunarskim kontrolerima. Da bi to moglo da se ostvari bilo je neophodno da novi kontroler u svim aspektima nadmaši relejnu realizaciju. To zapravo znači da je kontrolor morao da bude robustan u odnosu na krajnje nepovoljne klimo-tehničke uslove koji vladaju u industrijskom okruženju (promena temperature, vlažnost, prašina, vibracije, itd.). Pored toga, imajući u vidu različite dimenzije pogona kojima se upravlja u smislu

broja ulaznih i izlaznih signala koji se obrađuju od kontrolera se zahtevalo da bude modularan tako da se u svakom pojedinačnom slučaju njegova konfiguracija može primeriti zahtevima na procesu.

Kao rezultat ovih zahteva od samog početka funkcionalna organizacija PLC-a osmišljena je na način prikazan na (Sl. 1-1). Procesorski modul sadrži centralnu jedinicu i memoriju. 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 indikatorski signali koji se izračunavaju u PLC-u, prenose se na izvršne organe preko izlaznih modula koji sadrže digitalne i analogne izlaze. Za svaki kontroler razvijen je širok spektar različitih ulaznih i izlaznih modula što je omogućilo da se u svakoj situaciji odabere optimalni broj i vrsta modula.

Sa razvojem mikroračunara došlo se i do formiranja uređaja koji obavljaju složenije ulazno/izlazne funkcije, kao što su brojači, merna oprema sa ugrađenom obradom signala (tzv, "pametna" merna oprema), PID regulatori, drajveri step motora, operatorski paneli itd. Ovi uređaji zaokruženi su kao specijalni U/I moduli koji se takođe mogu priključiti na

SL. 1-1 FUNKCIONALNI BLOK DIJAGRAM PLC-A

Page 8: PLC

PLC_uvod/2

PLC. U početnoj fazi PLC je bio zamišljen kao au

nadzire njegov rad. Time je zaokružena hardverska struktuPLC se sastoji iz šasije (rack)

PLC-a i za elementarne funkcije upravljanja i nadzora pristupilo se razvoju malih mikro

mikroprocesora omogućio je postepeno proširenje obima i vrsta operacija koje PLC može da obavi. Tako su PLC-u poverene i složene funkcije direktnog digitalnog upravljanja kao i supervajzorskog upravljanja, koje su do tada bile realizovane ili direktno hardverski ili pomoću otvorenih PC računara. koji bi objedinio funkcionalnostkoje u oblasti upravljanja otvara korišć č č

stvorena platforma koja omogućsekvencijalnog upravljanja, upravljanja procesima, drajverima i kretanjem. klasičnih PLC-ova ovi kontroleri čizvršava programski kod i servisira naredbe za prenošenje poruka, dok drugi komunikaciju sa lokalnim i udaljenim U/I jedinicama, kao i razmenu podataka preko mreže. Ove operacije se obavljaju potpuno nezavisno od rada prvog procesora, što značda je proces komunikacije asinhron u odnosu na izvršavanje samog programa.

SL. 1-2 IZGLED PLC-A

SL. 1-3 FAMILIJA ALLEN BRADLEY

SL. 1-4 FAMILIJA ALLEN BRADLEY MICROLOGIX KONTROLERA

četnoj fazi PLC je bio zamišljen kao autonoman uređaj koji realizuje sekvencijalno upravljanje radom jednog dela pogona, mašine, postrojenja ili proizvodne linije. Kasnije se pojavio i zahtev da PLC bude deo distribuiranog upravljačkog sistema koji bi upravljao i nadzirao rad celog pogona. Da ostvarilo bilo je neophodno da se razviju posebni komunikacioni moduli koji obezbeđračunarskim uređajima u mreži i/ili operatorskim terminalima preko kojih se PLC programira i

Time je zaokružena hardverska struktura PLC-a. šasije (rack) koja ima određeni broj slotova u koji se stavljaju

pojedini moduli. Dva slota u šasiji zauzimaju uređaj za napajanje i procesorski modul, dok je raspored modula u preostalim slotovimapravilu proizvoljan zavisnosti od broja modula, PLC može imati i više od jedne šasije. Tipičan izgled PLCodgovarajućih modula prikazan je na (Sl. 1-3).

Sa hardverske tačgledišta razvoj PLC-dva smera. Sa jedne strane uočavajući mogućnost korišć

i za elementarne funkcije upravljanja i nadzora pristupilo se razvoju malih mikrokontrolera čija cena bi opravdavala njihovu ugradnju na mestima gde su istu funkciju obavljali i jednostavni elektronski sklopovi. mikrokontroleri (Sl. 1-4) imaju svu fleksibilnost, modularnost i jednostavnost većih PLCi širok spektar mogućnosti vezivanja u različindustrijske mreže. Ključna razlika je u manjim dimenzijama i nižoj ceni. U tom smislu oni postepeno potiskuju iz primene PLCdimenzija u svim aplikacijama u kojima se ne zahteva preterano veliki broj ulaznih i izlaznih linija.

Sa druge strane, tehnološki razvoj ćio je postepeno proširenje obima i vrsta operacija koje PLC može u poverene i složene funkcije direktnog digitalnog upravljanja kao i

supervajzorskog upravljanja, koje su do tada bile realizovane ili direktno hardverski ili ć čunara. Time je zapravo otvoreno pitanje projektovanja PLC

funkcionalnost klasičnih programabilnih logičkih kontrolera i mogućkoje u oblasti upravljanja otvara korišćenje otvorenih PC računara. Na taj načstvorena platforma koja omogućava jednostavno objedinjavanje i realizaciju

og upravljanja, upravljanja procesima, drajverima i kretanjem. ova ovi kontroleri često imaju dva procesorska modula.

izvršava programski kod i servisira naredbe za prenošenje poruka, dok drugi sa lokalnim i udaljenim U/I jedinicama, kao i razmenu podataka preko

mreže. Ove operacije se obavljaju potpuno nezavisno od rada prvog procesora, što značda je proces komunikacije asinhron u odnosu na izvršavanje samog programa.

RADLEY SLC 500 KONTROLERA

RADLEY OGIX KONTROLERA

đaj koji realizuje sekvencijalno upravljanje radom jednog dela pogona, mašine, postrojenja ili proizvodne linije. Kasnije se pojavio i zahtev da PLC bude deo

čkog sistema koji bi upravljao i nadzirao rad celog pogona. Da bi se to ostvarilo bilo je neophodno da se razviju posebni

obezbeđuju spregu sa đajima u mreži i/ili operatorskim

preko kojih se PLC programira i

u koji se stavljaju va slota u šasiji

aj za napajanje i procesorski modul, dok je raspored modula u preostalim slotovima, po

(Sl. 1-2). U zavisnosti od broja modula, PLC može imati i više od jedne šasije.

čan izgled PLC-a i ćih modula prikazan je

Sa hardverske tačke -ova se odvijao u

dva smera. Sa jedne strane č ć ćnost korišćenja

i za elementarne funkcije upravljanja i nadzora pristupilo se razvoju malih mikro-opravdavala njihovu

na mestima gde su istu funkciju obavljali i jednostavni elektronski sklopovi. Ovi

imaju svu fleksibilnost, ćih PLC-ova, kao

ćnosti vezivanja u različite čna razlika je u manjim

dimenzijama i nižoj ceni. U tom smislu oni PLC-ove srednjih

dimenzija u svim aplikacijama u kojima se ne zahteva preterano veliki broj ulaznih i izlaznih

Sa druge strane, tehnološki razvoj ćio je postepeno proširenje obima i vrsta operacija koje PLC može u poverene i složene funkcije direktnog digitalnog upravljanja kao i

supervajzorskog upravljanja, koje su do tada bile realizovane ili direktno hardverski ili Time je zapravo otvoreno pitanje projektovanja PLC-a

č čkih kontrolera i mogućnosti ć čunara. Na taj način je

ćava jednostavno objedinjavanje i realizaciju og upravljanja, upravljanja procesima, drajverima i kretanjem. Za razliku od

. Jedan od njih izvršava programski kod i servisira naredbe za prenošenje poruka, dok drugi obavlja

sa lokalnim i udaljenim U/I jedinicama, kao i razmenu podataka preko mreže. Ove operacije se obavljaju potpuno nezavisno od rada prvog procesora, što znači da je proces komunikacije asinhron u odnosu na izvršavanje samog programa. Pored

Page 9: PLC

PLC_uvod/3

procesorskih modula u šasiji kontrolera nalaze se lokalni U/I moduli kao i komunikacioni interfejs moduli. Pored toga, ova familija kontrolera omogućava da se ostvari veća fleskibilnost sistema postavljanjem više kontrolera u jednu šasiju, povezivanjem više kontrolera preko mreže ili povezivanjem udaljenih U/I modula preko višestruke U/I mreže (Sl. 1-5). Po pravilu, svi U/I moduli ovakvih kontrolera imaju sposobnost višestrukog emitovanja podataka (multicast). To znači da više uređaja može da primi iste podatke koje je emitovao jedan uređaj.

SL. 1-5 PLC KONTROLER ALLEN BRADLEY CONTROLLOGIX

1.1.2. OPERATIVNI SISTEM PLC-A

Sken cik lus

Kao što se vidi, PLC se razl ikuje od računarskog sistema opšte namene po tome što nema spoljnu memoriju (diskove), kao i niz standardne ulazno/ izlazne opreme. Pored toga, njegov operat ivni s istem je jednostavnij i i pruža komparativno manje mogućnost i od računara opšte namene. Zapravo, PLC je koncipiran i projektovan za jedan relat ivno uzan i jasno def inisan obim poslova vezanih za nadzor i upravljanje pojedinim uređaj ima, što je rezultovalo u njegovoj izuzetnoj ef ikasnosti i jednostavnost i. U izvesnom smislu, područ je primene PLC-a isto je kao i za specijal izovane mikroračunarske kontrolere i l i s ignal procesore. Ključna razl ika leži u č injenici da korišćenje PLC-a ne zahteva od korisnika gotovo

nikakvo predznanje o arhitekturi mikroračunarskih sistema. Drugim reč ima, korisnik PLC-a je u najvećoj mogućoj meri oslobođen rešavanja razl ič i t ih problema vezanih za č isto računarski aspekt, kao što su promena i l i dodavanje U/I jedinica, vezivanje u računarsku mrežu, korišćenje sistema prekida, razmene podataka i sl ično, tako da može da se u punoj meri koncentr iše na projektovanje same apl ikacije.

Može se slobodno reči da se PLC od svih drugih računarskih uređaja slične namene razlikuje po svom operativnom sistemu, koji je skrojen tačno za određenu vrstu primene. Naime, pretpostavlja se 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

SL. 1-6 SKEN CIKLUS PLC-A

2 .

p r og r

a ms k

i

s ke n

Page 10: PLC

PLC_uvod/4

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

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 određeno 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 operandi ulazni

podaci) ili iz područja gde se smeštaju interne promenljive. Rezultati obrade se 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 direktno sa ulaznih modula, niti se rezultati direktno iznose na izlazne module, već program razmenjuje podatke isključivo sa memorijom (Sl. 1-7) . Po završetku programskog skena, operativni sistem PLC-a aktivira izlazni sken u okviru koga se podaci iz slike izlaza prenose na izlazne linije (registre izlaznih modula). Četvrti deo sken ciklusa – komunikacija - namenjen je realizaciji razmene podataka sa uređajima koji su preko mreže 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 kao i broja ulaznih i izlaznih linija, ulazni i izlazni sken ciklus izvršavaju se u vremenu reda mili sekundi. 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.

Postojanje sken ciklusa obezbeđuje periodično automatsko izvršavanje programskih naredbi nad podacima koji se primaju sa procesa na koji je kontroler vezan. Ovde treba imati na umu da se sve programske naredbe izvrše po jedanput i to sa podacima koji su neposredno pre toga smešteni u sliku ulaza. Zatim se rezultati obrade prenose kao komande na proces i ceo ciklus započinje iz početka. Posmatrano sa te tačke gledišta može se reči da se od korisnika PLC-a 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.

Potrebno je da se istakne da se ova osnovna logika rada PLC-a često pogrešno posmatra kao dovoljna za realizaciju direktnog digitalnog upravljanja. Razlog za to je činjenica da se i kod upravljanja u zatvorenoj povratnoj sprezi zahteva periodično prikupljanje podataka, realizacija jednog algoritamskog koraka, izračunavanje trenutne vrednosti upravljanja i njeno prenošenje na proces. Međutim, uprkos istom redosledu operacija ključna razlika je u pogledu periode ponavljanja.

Pre svega, perioda sken ciklusa se ne može definisati, već je ona automatski određena zbirnim trajanjem svih podciklusa. Pored toga, za razliku od ulaznog i izlaznog

SL. 1-7 RAZMENA PODATAKA ZA VREME SKEN CIKLUSA

3

izlazni sken

1

ulazni

sken

izla

zn

i m

odu

li

slika

ulaza

interne

promenljive

memorija

slika

izlaza

2

programski sken

program

4 i 5komunikacija i održavanje

ula

zni m

od

uli

Page 11: PLC

PLC_uvod/5

skena koji imaju fiksno vreme trajanja jer uvek opslužuju isti broj ulaznih ili izlaznih linija, trajanje programskog sken ciklusa zavisi od dužine konkretnog algoritamskog koraka kroz koji se prolazi. Različito trajanje koraka može da bude uslovljeno različitim programskim granama u koje se ulazi u zavisnosti od, na primer, vrednosti nekog od ulaznih signala. U tom smislu sken ciklus nema nužno konstantnu periodu ponavljanja, već ona može da varira u granicama određenim trajanjem najkraće i najduže grane programa. Konačno, i trajanje komunikacionog podciklusa zavisi od broja poruka koje se u nekom trenutku prenose.

Direktno digitalno upravljanje zahteva da sistem radi sa nekom utvrđenom periodom odabiranja, koja je pri tome najčešće značajno veća od srednje periode skeniranja. To praktično znači da je za realizaciju upravljanja i dalje neophodno da se koristi signal prekida ili neki drugi mehanizam koji će obezbediti da se algoritamski korak izvršava u tačno utvrđenim trenucima vremena. Jedina prednost koju pruža korišćenje PLC-a sastoji se u tome što su merenja već prikupljena i nalaze se u memoriji, kao i što je dovoljno da se izračunato upravljanje smesti na odgovarajuće mesto u memoriji. Prenos na izvršne organe biće obavljen automatski u okviru izlaznog sken ciklusa. Ovaj postupak je ilustrovan na Sl. 1-8.

SL. 1-8 ILUSTRACIJA RAZLIKE IZMEĐU SKEN CIKLUSA I CIKLUSA DDC ALGORITMA

Mult itasking operat ivni s istem Iako sken ciklus ostaje i dalje u osnovi rada svakog PLC-a, savremeni kontroleri

namenjeni složenijim zadacima imaju i složeniji operativni sistem. Ovaj sistem pripada kategoriji preemptivnih, multitasking operativnih sistema. Svaki zadatak (task) ima svoj nivo prioriteta i zahtev za njegovo izvođenje prekida izvođenje zadataka koji imaju manji prioritet (princip preemptivnosti). Jedan zadataka može da sadrži jedan ili više programa koji uključuju jedan ili više potprograma. Zadaci mogu biti konfigurisani kao kontinualni, periodični i uslovljeni događajem. U sistemu može da postoji samo jedan kontinualni zadatak koji ima najniži nivo prioriteta. On se izvršava unutar raspoloživog procesorskog vremena u kome su svi periodični zadaci u stanju "spavanja" i u kome nije nastupio ni jedan događaj koji bi pokrenuo neki od zadataka uslovljenih događajem.

Kao što je rečeno, svi zadaci, izuzev kontinualnog, izvršavaju se u skladu sa nivoom prioriteta koji im je dodeljen. U principu, zadatak koji treba da se izvršava zato što je došlo vreme njegovog periodičnog izvođenja, ili zato što je registrovan događaj kojim je on uslovljen prelazi u aktivno stanje. Svi aktivni zadaci nalaze se u redovima čekanja koji se formiraju na svakom nivou prioriteta. U jednom trenutku samo red najvišeg prioriteta ima pristup procesoru. To znači da zadaci višeg prioriteta prekidaju izvođenje zadataka nižeg prioriteta, odnosno da red čekanja aktivnih zadataka ne može da počne da se prazni sve dok redovi čekanja zadataka na nivoima višim od njega nisu u potpunosti ispražnjeni. Aktivni zadaci koji su istog prioriteta, odnosno koji se nalaze u istom redu čekanja, izvršavaju se po round robin principu i to tako što se svakome od njih dodeljuje procesor u nekom unapred definisanom vremenskom intervalu (time slice). Ukoliko zadatak ne završi svoj rad u tom intervalu on se vraća kao poslednji u red čekanja, dok zadatak koji je bio prvi u redu zauzima procesor i počinje izvršavanje (Sl. 1-9).

Page 12: PLC

PLC_uvod/6

SL. 1-9 IZVRŠAVANJE ZADATAKA PO NIVOIMA PRIORITETA

PR. 1-1

SL. 1-10 VREMENSKI DIJAGRAM IZVRŠAVANJA ZADATAKA

Pretpostavimo da su zadaci imaju parametre koji su prikazani u tabeli.

Kontinualni zadatak ima uvek najniži prioritet i on se izvršava kada nijedan drugi zadatak nije aktivan. Procenat neraspoređenih komunikacija od 20%, označava da se kontinualni zadatak

ZADATAK PRIORITET PERIOD TRAJANJE

Z1 – ZADATAK 1 PERIODIČAN 1 8 ms 1MS Z2 - ZADATAK 2 – USLOVLJEN DOGAĐAJEM 2 1 MS Z3 - ZADATAK 3 - PERIODIČAN 4 12 ms 2 MS Z4 – ZADATAK 4 - PERIODIČAN 7 5 ms 1 MS CM –NERASPOREĐENA KOMUNIKACIJA 8 20% 1 MS KN - KONTINUALNI ZADATAK 20 MS

Page 13: PLC

PLC_uvod/7

prekida posle svakih 4ms trajanja, posle čega sledi 1ms neraspoređenih komunikacija. Uz pretpostavku da događaj kojim je uslovljen zadatak Z1 nastupa u 24. i 45. ms, vremenski dijagram izvršavanja ovih zadataka imaće izgled kao na Sl. 1-10.

Potrebno je da se istakne da se u svemu što je rečeno pojam izvršavanja zadatka

zapravo odnosi na jedan algoritamski korak koji će se obaviti u okviru jednog programskog sken ciklusa. Drugim rečima multitasking se zapravo odvija na nivou programskog sken ciklusa, dok se ulazni i izlazni sken ciklus i dalje realizuju kao i kod malih kontrolera. To je ujedno i razlog zašto kod ovih kontrolera najčešće postoje dva procesora. Jedan od njih je zadužen za U/I sken i on ciklično uzima podatke sa mernih uređaja i smešta ih u memoriju (ulazni sken) i prenosi podatke iz memorije na izlazne uređaje (izlazni sken). Drugi procesor obavlja programski sken u skladu sa multitasking principima.

1.2. PROGRAMIRANJE PLC-A1

1.2.1. UVOD 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 programski 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.

Dodatni motiv za razvoj posebnog jezika bila je i činjenica da je PLC 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. Pri tome, uspešna primena PLC-a u praksi, zahtevala je i da se njegovo programiranje prilagodi tehnici koja je svim korisnicima relejnih sistema dobro poznata.

Specifičnost projektovanja relejnih sistema ogleda se u tome što je potrebno da se utvrdi način 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 dijagramima – leder programski jezik. Ovaj jezik je dominantan kada se radi o programiranju manjih PLC-ova. Za složenije zadatke, međutim, razvijeni su i drugi programski jezici, koji se često sreću samo na većim kontrolerima. U osnovi svi jezici se mogu podeliti u četiri kategorije. � Leder dijagrami – namenjeni izvođenju niza, prvenstveno, logičkih operacija,

kreiranju i slanju poruka, ispitivanju stanja kontrolera u mreži, kao i operacijama koje bi trebalo da izvode operateri u slučaju detektovanja i otklanjanja izvesnih grešaka.

� Dijagrami funkcijskih blokova – namenjeni realizaciji kontinualnih procesa, upravljanju drajverima i upravljanju u zatvorenoj sprezi.

� Struktuiran tekst – namenjen realizaciji složenih matematičkih operacija, obradi ASCII nizova i protokola, kao i obradi specijalnih tabela podataka.

� Dijagrami sekvencijalnih funkcija – namenjeni složenom hijerarhijskom upravljanju

1 Pri ilustraciji različitih programskih jezika korišćeni su jezici razvijeni za Allen Bradley kontrolere (Logix500 i

Logix5000)

Page 14: PLC

PLC_uvod/8

niza sekvencijalnih operacija koje se sreću kod upravljanja šaržnim procesima, nadzora i upravljanja stanjem mašinskih grupa, repetitivnom sekvencijalnom upravljanju, upravljanju kretanjem itd. U principu prva tri jezika uključuju repertoar naredbi kojima se obavljaju

jednostavnije logičke i matematičke operacije. Ona su namenjena klasičnom programiranju upravljanja u zatvorenoj sprezi, sekvencijalnog upravljanja i obradi datoteka podataka. U tom smislu ovi jezici se u velikoj meri mogu alternativno koristiti za realizaciju pojedinih programskih rutina. Kod nekih kontrolera, svaki od ovih jezika ostavlja mogućnost korisniku i da sam kreira niz naredbi koje postaju sastavni deo repertoara.

Dijagrami sekvencijalnih funkcija namenjeni su, međutim, potpuno drugačijoj filozofiji koncipiranja i programiranja upravljanja i nadzora. Oni omogućavaju da se ceo proces podeli u niz segmenata. U svakom od segmenata se onda, uz pomoć klasičnih jezika programira niz operacija koje u njoj treba da se izvrše.

U poslednje vreme, za PLC-ove se razvija još jedan složen jezik namenjen upravljanju fazama kroz koje prolazi neki proces.

Nezavisno od jezika kojim je program napisan on se realizuje kada je zadatak kome je on pridružen aktivan. U principu programi se izvode tako što se obavi jedan sken ciklus kroz sve naredbe programa. Zatim se izvođenje prekida i prelazi na sledeći program, ili sledeći zadatak.

1.2.2. LEDER DIJAGRAMI Jedna programska linija leder jezika sastoji se iz niza grafičkih simbola

(programskih naredbi) koji predstavljaju različite logičke elemente i druge komponente kao što su časovnici i brojači, koji su poređani duž horizontalne linije – rang (rung) – koja je na oba kraja spojena sa dvema vertikalnim linijama. Prema tome, leder dijagram ima izgled lestvica, odakle potiče i

njegov naziv (ladder – lestvice). Svaki rang leder dijagrama sastoji se iz dva dela. Na levoj strani ranga nalazi se

uslov izražen u formi kontaktne (prekidačke) logike, dok se na desnoj strani ranga nalazi akcija koja treba da se izvrši ukoliko je uslov ispunjen (true) (Sl. 1-11). � Uslov – U osnovi, grafičkim simbolima na levoj strani ranga ispituje se istinosna vrednost

promenljivih koje su pridružene tim simbolima. Svaki simbol predstavlja jednu unarnu ili binarnu operaciju kojoj je pridružena odgovarajuća tablica istinitosti. Uz grafički simbol naznačava se i promenljiva 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 (paralelne veze). Pri ispitivanju istinitosti uslova paralelne veze se tretiraju kao logička “ILI” operacija. Otuda ć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.

� Akcija – Grafički simbol na desnoj strani ranga predstavlja jednu naredbu koja se

izvršava ako je uslov na desnoj strani istinit. Uz simbol se naznačava i promenljiva čija se vrednost menja prilikom izvršavanja naredbe. Serijska veza na desnoj strani ranga nije dozvoljena, dok paralelna veza označava da se više različitih naredbi izvršavaju kao rezultat ispitivanja istinitosti jednog istog uslova. Nema ograničenja u pogledu broja paralelnih grana na strani uslova.

SL. 1-11 RANG LEDER PROGRAMA

Page 15: PLC

PLC_uvod/9

Leder program se izvršava u toku programskog 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 akcije. Ako se naredbom akcije dodeljuje neka vrednost promenljive, onda će se tom prilikom ta vrednost promeniti. Potrebno je zapaziti, međutim, da ukoliko se promenljiva u naredbi akcije odnosi na fizički izlaz, vrednost izlaza neće biti promenjena u istom trenutku vremena. Izlazi će biti promenjeni tek u izlaznom sken ciklusu kada se vrednosti promenljivih iz memorije prenesu na odgovarajuće izlazne module.

Leder program kreira se pomoću odgovarajućeg programskog grafičkog alata o kome će kasnije biti više reči.

1.2.3. DIJAGRAMI FUNKCIJSKIH BLOKOVA Funkcijski blok realizuje funkciju preslikavanja ulaznih promenljivih na izlazne

promenljive, kao što je to ilustrovano na Sl. 1-12. Dozvoljeni broj ulaza i izlaza zavisi od određene funkcije preslikavanja. Ulazne promenljive mogu biti bilo koji promenljive u programu, ili izlazi drugih blokova. Vrednosti ovih promenljivih se obrađuju u funkcijskom bloku. Rezultati obrade se prenose na izlazne promenljive. Broj različitih funkcija koje su na raspolaganju zavisi od tipa kontrolera. U principu, nezavisno od tipa kontrolera, svaki blok ima poseban ulaz (Enable_In) koji služi za blokiranje, odnosno deblokiranje rada bloka. Na taj način, funkcija koju blok obavlja biće izvršena samo ako je uslov kojim se generiše signal Enable_In ispunjen.

SL. 1-12 PROGRAM ZA REALIZACIJU OPERACIJE = + ⋅c (a b) b

• Obrada ulaznih signala Ulazni podaci koji se specificiraju pomoću IREF bloka ne menjaju se u toku jednog

sken ciklusa. Naime, kontroler ažurira ove podatke samo na početku svakog sken ciklusa programa, odnosno u toku ulaznog sken ciklusa • Zatvorena povratna sprega

SL. 1-13 PROGRAM ZA REALIZACIJU ZATVORENE PETLJE = + ⋅c (a c) b

Ukoliko su blokovi povezani tako da obrazuju zatvorenu povratnu spregu neće biti moguće da se odredi redosled izvođenja operacija. U cilju prevazilaženja ovog problema koristi se poseban indikator pretpostavljene raspoloživosti podatka (Assume Data Available Indicator). Postavljanjem ovog indikatora na ulaz nekog bloka indicira se da će

a0.0 Blok_1

ADD ...

Add

SourceA

SourceB

Dest0.0

Blok_2

MUL ...

Multiply

SourceA

SourceB

Dest0.0

b0.0

c

Blok_2

2 MUL ...

Multiply

SourceA

SourceB

Dest0.0

Blok_1

1 ADD ...

Add

SourceA

SourceB

Dest0.0

a0.0

b0.0

c

Page 16: PLC

PLC_uvod/10

on koristiti vrednost koju je ulazna promenljiva imala u prethodnom sken ciklusu, kao što je to ilustrovano na Sl. 1-13, gde je indikator postavljen na drugi ulaz (SourceB) u bloku Blok_1. Time se izraz = + ⋅c (a c) b , posmatran kao vremenska funkcija izračunava kao

1−= + ⋅t t t tc (a c ) b .

U principu, kada se radi o zatvorenoj sprezi, indikator se postavlja na jednoj tački u petlji, čime se zapravo unosi neophodno vremensko kašnjenje. U protivnom dolazi do situacije u kojoj je nemoguće odrediti redosled izračunavanja. • Kreiranje jediničnog kašnjenja

Kašnjenje u jednom sken ciklusu između dva bloka može se ostvariti ubacivanjem indikatora pretpostavljene raspoloživosti podatka (Sl. 1-14).

SL. 1-14 PROGRAM ZA REALIZACIJU JEDINIČNOG KAŠNJENJA 1−= + =t t t t tx a b ; d x

1.2.4. STRUKTURIANI TEKST Struktuiran tekst je tekstualni programski jezik koji sadrži niz komponenti kojima se

formiraju programske naredbe. Jedna programska naredba sadrži promenljive, simbol za pridruživanje, izraze, naredbe i konstrukte. Sve naredbe se završavaju znakom "tačka zapeta" (;). Interpretator naredbi nije osetljiv na velika i mala slova.

Komentari se označavaju pomoću dve kose crte (//), ako su istom redu u kome je i naredba ili ako se protežu kroz više redova kao (*komentar*), odnosno /*komentar*/

Pridruživanje vrednosti vrši se pomoću znaka jednakosti kome prethodi dvotačka ime promenljive := izraz;

pri čemu i na levoj i na desnoj strani moraju biti promenljive istog tipa. Nad operandima mogu da se definišu aritmetički, logički ili relacioni izrazi.

• Aritmetički izraz Aritmetički izraz se formira kombinacijom operanada, operatora elementarnih

matematičkih operacija: +, -, *, **, / i funkcija, koje se identifikuju preko koda i izraza koji se navodi u zagradama.

• Logički izraz Logički izraz se formira pomoću logičkih operatora: & ili AND, OR, XOR, NOT.

Rezultat operacije, odnosno vrednost izraza je logička promenljiva koja ima jednu od sledeće dve vrednosti, istinit (1) ili neistinit (0).

• Relacioni izraz Relacionim izrazima uspostavlja se odnos

između promenljivih. Rezultat je promenljiva koja ima vrednost 1 (istinit) ako je relacija zadovoljena, odnosno 0 (neistinit) ako relacija nije zadovoljena. Otuda se relacioni izraz može koristiti kao operand u logičkom izrazu.

Za formiranje ovih izraza na raspolaganju su sledeći relacioni operatori: =, <, >, <=, >=, <> (nejednako).

• Operacije nad bitovima Neki tipovi kontrolera omogućavaju da se

a0.0

b0.0

SQR_01

SQR ...

Square Root

Source Dest0.0

Blok_04

ADD ...

Add

SourceA

SourceB

Dest0.0

d

Nivo Operacija 1 () 2 funkcija (...) 3 ** 4 - (negacija) 5 NOT 6 *, /, MOD 7 +, - 8 <, >, <=, >= 9 =, <>

10 & (AND) 11 XOR 12 OR

T. 1-1 HIJERARHIJA OPERACIJA

Page 17: PLC

PLC_uvod/11

logičke operacije izvode nad pojedinim bitovima promenljive. Sve operacije koje se mogu koristiti pri formiranju izraza grupisane su u

hijerarhijske nivoe (T. 1-1). Vrednost izraza se izračunava tako što se kao prvo izvršavaju operacije koje su na najvišem hijerarhijskom nivou. Ukoliko ima više operacija koje su na istom nivou, one se izvršavaju sa leva u desno.

Operacija MOD predstavlja deljenje po modulu (rezultat je ostatak deljenja dva broja). Otuda ona, iako se zapravo definiše kao funkcija, ima drugačiji hijerarhijski položaj u odnosu na ostale funkcije.

Jedan niz naredbi koji je na raspolaganju u okviru leder ili FB programskih jezika može se koristiti i u tekst programima. U principu naredba se programira navođenjem koda i operanada u zagradama.

KOD (operandi međusobno razdvojeni zapetama); Pored toga na raspolaganju je i jedan broj konstrukta u okviru kojih se koriste

naredbe.

• IF. . .THEN – Uslovno izvršavanje grupe naredbi IF bulovski_izraz THEN

PROGRAMSKA NAREDBA; ;

ELSIF bulovski_izraz THEN PROGRAMSKA NAREDBA;

; ELSE

PROGRAMSKA NAREDBA; ;

END_IF;

• CASE.. .OF – Ar i tmet ičk i skok na grupu naredbi CASE aritmetički_izraz OF

LABELA1: PROGRAMSKA NAREDBA; ;

LABELA2: PROGRAMSKA NAREDBA; ;

LABELA3: PROGRAMSKA NAREDBA; ;

ELSE PROGRAMSKA NAREDBA;

; ;

END_CASE; Naredba se izvršava tako što se izračuna vrednost aritmetičkog izraza i u

zavisnosti od nje skoči na onu labelu koja sadrži tu vrednost. Ukoliko postoji mogućnost da aritmetički izraz ima i neku vrednost koja nije navedena među labelama, pogodno je da se stavi ELSE deo naredbe koji se u tom slučaju izvršava. • FOR...DO - Pet l ja

FOR brojac := pocetna_vrednost TO krajnja_vrednost

BY korak DO PROGRAMSKA NAREDBA;

IF bulovski_izraz THEN EXIT;

END_IF; END_FOR; Pri korišćenju petlje treba imati na umu da ona, na izvestan način prekida

opciono

opciono

opciono

Page 18: PLC

PLC_uvod/12

izvršavanje svih drugih naredbi. Naime, ona se u jednom skenu izvodi sve do kraja petlje. Ukoliko se želi izlaz iz petlje i pre nego što brojač stigne do krajnje vrednosti može

da se koristi EXIT naredba kombinovana sa nekim uslovom. • W HILE...DO – Us lovna pet l ja

WHILE bulovski izraz DO PROGRAMSKA NAREDBA;

IF bulovski_izraz_1 THEN EXIT;

END_IF; END_WHILE;

• REPEAT.. .UNTIL – Uslovna pet l ja REPEAT DO

PROGRAMSKA NAREDBA; IF bulovski_izraz_1 THEN

EXIT; END_IF;

UNTIL bulovski izraz END_REPEAT;

1.3. DIJAGRAMI SEKVENCIJALNIH FUNKCIJA Dijagram sekvencijalnih funkcija (SFC) omogućava grafičko predstavljanje toka

procesa, odnosno prikazivanje svih stanja kroz koje proces prolazi. U principu, program se sastoji od niza stanja (Step) koje čine funkcionalne celine u okviru kojih se obavlja niz aktivnosti (Action). Prelaz u sledeće stanje (Transition) dozvoljen je kada se steknu predefinisani uslovi, kao što je to ilustrovano na Sl. 1-15.

Potrebno je da se istakne da se SFC dijagram razlikuje od drugih programa po tome što u okviru njega nalazi niz aktivnosti (programskih celina) koje se ciklično skeniraju sve dok je SFC dijagram aktivan. To znači da, za razliku od drugih programa, kod koga se ciklično skeniraju sve linije koda, unutar SFC dijagrama postoje delovi koji se repetitivno skeniraju i izvršavaju, pre nego što se pređe na sledeće funkcionalne celine. Otuda se on koristi za organizaciju sistema u smislu formiranja funkcionalnih celina, kao i za programiranje upravljanja sistemom kroz niz sekvencijalnih koraka.

U principu kada operativni sistem, ako je SFC kontinualni zadatak, ili neki potprogram započnu izvršavanje SFC dijagrama, SFC program aktivira određen broj stanja2 i izvrši jedno skeniranje svih aktivnosti svih aktivnih stanja i zatim vraća kontrolu operativnom sistemu ili pozivnom programu. Ukoliko izvršavanje SFC dijagrama nije završeno, ovaj program ostaje i dalje aktivan i nastavlja da se izvršava u skladu sa ranije opisanom multitask filozofijom. Budući da su neka od stanja ostala i dalje aktivna, ona će pri sledećem ulazu u SFC dijagram nastaviti da se izvršavaju. Kada se stanje završi, odnosno kada se uslov ispuni prelazi se na sledeće stanje.

Stanje (Step) predstavlja jednu funkcionalnu celinu koja uključuje aktivnosti koje se odvijaju u određenom intervalu vremena, u određenoj fazi procesa ili u određenom podsistemu. Kada se u toku izvršavanja programa dođe do bloka stanja on postaje aktivan i sve pridružene aktivnosti se ciklično skeniraju sve dok se ne ispuni uslov koji označava da proces treba da pređe u sledeću fazu (Sl. 1-16). To zapravo znači da stanje, po pravilu, obuhvata aktivnosti koje dovode do promene u sistemu (dovođenje nekih delova do mašinske grupe, zagrevanje procesa, dodavanje sastojaka, zatvaranje ventila itd.).

Aktivnosti u okviru stanja su zasebni programi koji se formiraju na jednom od raspoloživih programskih jezika.

2 Pri započinjanju SFC dijagrama aktiviraju se sva stanja koja se nalaze u paralelnoj sprezi na početku

dijagrama.

opciono

opciono

Page 19: PLC

PLC_uvod/13

SL. 1-15 ILUSTRACIJA DIJAGRAMA SEKVENCIJALNIH FUNKCIJA

SL. 1-16 BLOK ŠEMA STANJA

... -

Inicijalizacija

P1 ... motor_on

motor.2 :=1;

D

3

... pumpa_on

pumpa.3 :=1;

... ini_done

Inicijalizacija.DN

... +

upravljanje_motorima

... +

upravljanje_pumpama

ACTION - aktivnosti u okviru STEP-a

STEP - funkcionalna celina (stanje)

... ni je_kraj

not vreme_dn

... kraj

vreme_dn

... gotovo

um_dn & up_dn

... +

vreme

Stop

BRANCH - uslovno granjanje

TRANSITION - prelaz na sledeci STEP,ako je uslov ispunjen

ACTION - paralelno izvrsavanjedve celine

ACTION - vrati se nazad

nije_kraj

A4

Branch

A2

Page 20: PLC

PLC_uvod/14

PR. 1-2

Na slici su prikazane dve aktivnosti pridružene stanju Inicijalizacija.

Aktivnost motor_on uključuje jednu tekst naredbu kojom se bit broj 2 promenljive motor postavlja na vrednost 1.

Aktivnost pumpa_on se ona izvršava tako što se logička promenljiva pumpa_on postavlja na vrednost 1.

Svaki prelaz (transition) identifikuje se pomoću imena jedne bulovske promenljive, recimo prelaz (Sl. 1-18). Prelaz se izvršava tako što se ispituje uslov koji se navodi pri specifikaciji prelaza. Ukoliko je uslov istinit promenljivoj prelaz se dodeljuje vrednost 1, a ukoliko je neistinit promenljiva dobija vrednost 0. Ako je vrednost promenljive 1 završava se stanje koje prethodi prelazu i aktivira se sledeće stanje ili više sledećih stanja, ako su ona vezana paralelno.

Uslov se može izraziti kao logički izraz ili kao skok na potprogram u kome se izračunava uslov.

U principu izvršavanje SFC dijagrama završava se kada se naiđe na elemenat STOP. Ukoliko se, međutim, ovaj elemenat nalazi samo u jednoj od paralelnih grana onda se samo ta grana završava, dok ostale nastavljaju regularno izvršavanje.

... -

Inici jal izacija

N ... motor_on radi

0

motor.2 :=1;

B N ... pumpa_on

SL. 1-18 PRELAZ

SL. 1-17 ILUSTRACIJA AKTIVNOST I

SL. 1-19 STOP ELEMENT

kraj

... prelaz

a&b&c

Page 21: PLC

Mali_kontroler/15

2. MALI LOGIČKI KONTROLERI 3

2.1. ARHITEKTURA MALIH KONTROLERA

2.1.1. OSNOVNE KARAKTERISTIKE Kao što je već istaknuto mali logički kontroleri sadrže jedan centralni procesorski

modul i određeni broj U/I modula. Pored toga, ovi kontroleri imaju i jedan ili više komunikacionih modula koji omogućavaju njihovo povezivanje na odgovarajuće industrijske mreže.

Svi mali kontroleri imaju funkcionalno isti operativini sistem koji realizuje sken ciklus u okviru koga se redom izvršavaju ulazni sken, programski sken, izlazni sken, komunikacija i održavanje. Potrebno je ipak da se istakne da se sken ciklus u delu komunikacija, odnosno u načinu na koji se realizuje komunikacija razlikuje od proizvođača do proizvođača.

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. Glavna razlika se ogleda u repertoaru naredbi koje su na raspolaganju. Naime, budući da je logički kontroler namenjen jednoj određenoj klasi primena bilo je prirodno da se i repertoar naredbi primeri operacijama koje se u tim uslovima zahtevaju.

Osnovne karakteristike procesorskog modula izražavaju se preko sledećih elemenata. • Memorija(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 uređaja 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.

• Performansa - 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.

Da bi se razumelo puno značenje pojma "mali" kontroler u tabeli T. 2-1 su prikazani osnovni podaci AB malih kontrolera familije SLC500 i MicroLogix. Potrebno je da se napomene da su kontroleri MicroLogix razvijeni znatno kasnije od SLC-a. U tom smislu oni predstavljaju manje ali brže i jeftinije kontrolere. Broj U/I linija koje oni podržavaju je znatno manji, ali im je funkcionalnost povećana ugrađivanjem brzog brojača impulsa na ulazu, kao i generatora povorke impulsa ili širinski modulisanih impulsa na izlazu. Pored toga, kontroleri MicroLogix imaju i veće komunikacione mogućnosti o čemu će kasnije biti više reči.

3 Iako su mali kontroleri svih proizvođača u funkcionalnom smislu praktično isti, bilo je neophodno da se

izlaganje osnovnih karakteristika, arhitekture i programiranja veže za jednu konkretnu familiju kontrolera.

Ovde je odabrano da to budu kontroleri SLC (Small Logic Controler) i MicroLogix koje proizvodi Allen

Bradley, u sastavu kompanije Rockwell Automation.

Page 22: PLC

Mali_kontroleri/16

SLC500 SLC 5/01 SLC 5/02 SLC 5/03 SLC 5/04 i 5/05

Memorija (reči)

Program/Podaci

1K Pr ili 4K Pod

4K Pr ili 16K Pod

4K Pr ili 16K Pod

12K / 4K

12K /4K

28K / 4K

60K / 4K

Lokalni U/I 3940 tačaka 4096 tačaka 4096 tačaka 4096 tačaka

Udaljeni U/I nema Kapacitet zavisi od vrste napajanja i veličine programske memorije

- maksimum 4096 ulaza i 4096 izlaza -

Trajno pamćenje EEPROM ili

UVPROM

EEPROM ili

UVPROM Fleš EPROM Fleš EPROM

Tipično vreme

programskog skena

8 ms/K

4.8 ms/K

1 ms/K

0.9 ms/K

Izvršavanje

bit naredbe 4 µs 2.4 µs 0.44 µs 0.37 µs

Broj naredbi 52 71 99 99

MICROLOGIX MLx 1000 MLx 1100 MLx 1200 MLx 1400 MLx 1500

Memorija (reči)

Program/podaci 1K 4K / 4K 4K / 2K

10K / 10K

konfigurabilno

10K / 4K(max)

konfigurabilno

Ugrađeni digitalni

U/I

32 bez

analognih 10 U/ 6 I 24 U/ 16 I 20U / 12I 16 U/ 12 I

Ugrađeni analogni

U/I

20 digitalnih +

5 analognih 2 ulaza nema 4 ulaza /2 izlaza nema

Lokalno U/I

proširenje nema

4 modula (do

64 diskretnih

U/I)

6 modula (do

96 diskretnih

U/I ili analogni)

7 modula (do

112 diskretnih

U/I)

16 modula (do

256 diskretnih

U/I ili analogni)

Brzi brojač 1x6.6kHz 1x40kHz 1x20kHz 6x100kHz 2x20kHz

Generator

povorke impulsa

ili širinski

modulisanih

nema 2x40kHz/

2x40kHz 1x20kHz

3x100kHz/

3x40kHz 2x20kHz

Tipično vreme

programskog

skena

1.5 ms za program od 400 naredbi

Izvršavanje bit

naredbe 0.9 µs

T. 2-1 PREGLED OSNOVNIH KARAKTERISTIKA MALIH KONTROLERA

2.1.2. ORGANIZACIJA RAM MEMORIJE KONTROLERA SLC 500 I MICROLOGIX 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.

Page 23: PLC

Mali_kontroler/17

• 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 procesora, konfiguracija U/I modula, ime procesorske datoteke, lozinku i niz drugih relevantnih podataka.

o Datoteka 1 (Reserved) – datoteka rezervisana 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 obrađuju 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 kontroler, 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.

2.2. ORGANIZACIJA DATOTEKA PODATAKA

2.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 određuju i njenu organizaciju, koja zavisi od vrste podatka i usvojenog načina za njegovo prikazivanje u računaru.

TIP BROJ NAZIV OPIS

O 0 Izlaz (Output) Sadrži sliku izlaza; sadržaj datoteke se prenosi na izlazne linije za vreme izlaznog skena.

I 1 Ulaz (Input) Sadrži sliku ulaza; u ovu datoteku se za vreme ulaznog skena smeštaju vrednosti sa ulaznih linija.

2 S Status Sadrži podatke vezane za rad kontrolera. Pregled značenja pojedinih bitova u ovoj datoteci dat je u posebnom dodatku

3 B Bit Sadrži interne promenljive bit tipa

4 T Časovnik (Timer)

Sadrži podatke koji se koriste za interne časovnike

5 C Brojač

(Counter) Sadrži podatke koji se koriste za interne brojače

6 R Upravljanje (Control)

Sadrži dodatne parametre neophodne za izvršavanje jednog broja naredbi

7 N Celobrojna (Integer)

Sadrži podatke celobrojnog tipa (16 bitni brojevi u opsegu −32768 do 32767)

8 F Realna

(Floating point)

sadrži podatke predstavljene u tehnici pokretnog zareza kao 32-bitne brojeve od ±1.1754944e-38 do ±3.40282347e+38. Samo za kontroleri SLC 5/03 i više, kao i MicroLogix.

Page 24: PLC

Mali_kontroleri/18

9 - 255 Korisničke datoteke

Korisničke datoteke tipa B, T, C, R, N, F; pored toga SLC – (SLC 5/03 i više): St - string, A - ASCII. MicroLogix: ST, L-Long words (celobrojna 32 bita), MG-Message, PD-PID naredba itd. Pored toga datoteka 9 se može koristiti i kao komunikacioni interfejs, o čemu će kasnije biti više reči.

T. 2-2 DATOTEKE PROMENLJIVIH

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. 2-2). 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 kod kontrolera SLC označavaju kao M0 i M1 datoteke, i njihova organizacija zavisi od specifičnosti pojedinog modula.

2.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 bit u odnosu na početak reči u kojoj

se bit nalazi (Sl. 2-1). 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 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. 2-3. 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 • adersirani element 0 ≤ e ≤ 255

Može se uočiti da su iz tabele T. 2-3 izostavljene ulazne i izlazne datoteke (I i O).

SL. 2-1 FORMAT ADRESE

Page 25: PLC

Mali_kontroler/19

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 DATOTEKE

DUŽINA ELEMENTA ADRESIRA SE

B, N, A 1 reč bit “b” - Xf:e/b ; element “e“ – Xf:e

F 2 reči element “e“ – Xf:e

T, C, R 3 reči bit “b” u reči 0– Xf:e.0/b ; (indikatori stanja su bitovi reči 0) reč “w“ – Xf:e.w ; w = {1,2}, promenljive su u rečima 1 ili 2

St 42 reči bit “b” u reči “w”– Xf:e.w/b reč “w“ - “ – Xf:e.w ; 0 ≤ w ≤ 41 element “e” – Xf:e

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. 2-4 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.

ADRESA ELEMENTA ADRESE POJEDINIH

BITOVA

DATA FILE 3 – BIT FILE BITOVI

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B3:0 B3:0/0 … B3:0/15

B3/0 … B3/15

B3:1 B3:1/0 … B3:1/15 B3/16 … B3/31

B3:2 B3:2/0 … B3:2/15 B3/32 … B3/47

*

: :::: : : : : : : : : : : : : : : : :

B3:255 B3:255/0 ... B3:255/15 B3/4080 … B3/4095

T. 2-4 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 funkcije koje su sa njima povezane.

2.2.3. KREIRANJE DATOTEKE I ZAUZEĆE MEMORIJE Jedna datoteka podataka zauzima memorijski prostor koji obuhvata niz susednioh

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

T. 2-3 VELIČINE ELEMENATA POJEDINIH DATOTEKA

Page 26: PLC

Mali_kontroleri/20

adresa elementa 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.

Pretpostavimo 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. 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. 2-2. Ovde je takođe pretpostavljeno 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 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.

SL. 2-2 PROMENA ZAUZEĆA RAM MEMORIJE PRI OBRAĐIVANJU NAREDBI

Page 27: PLC

Mali_kontroler/21

2.2.4. INDIREKTNO ADRESIRANJE U nekim slučajevima poželjno je da se omogući da se ista naredba izvrši sa

različitim promenljivim. Koja od promenljivih će se koristiti može zavisiti od nekih spoljnih uslova, rezultata nekog izračunavanja i sl. Radi pojednostavljenja realizacije 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 sadrž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. 2-5.

INDIREKTNA ADRESA INDIREKTNO SE ADRESIRA

AKO JE VREDNOST N7:e = 13, 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

St[N7:e]:[N7:e].[N7:e] broj datoteke, elementa i reči

St13:13.13 reč 13 elementa 13 u datoteci 13 tipa St

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.

2.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 sadrž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 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. 2-6.

Potrebno je obratiti pažnju na činjenicu da se za sve različite indeksne adrese koje se žele koristiti, pomeraj mora nalaziti u istoj reči (S:24). Isto tako, neke naredbe prilikom izvođenja, koriste tu reč i uništavaju njen prethodni sadržaj. Otuda je neobično važno da se pre korišćenja indeksne adrese obezbedi da se u lokaciji S:24 nađe odgovarajući, željeni pomeraj. Konačno, napomenimo da se prilikom servisiranja prekida, sadržaj lokacije S:24 čuva.

T. 2-5 PRIMERI INDIREKTNOG ADRESIRANJA

Page 28: PLC

Mali_kontroleri/22

T. 2-6 INDEKSNO ADRESIRANJE U skladu sa onim što je rečeno o načinu kreiranja datoteka, treba uočiti da

indeksno adresiranje može da prouzrokuje izvesne probleme. Naime, veličina datoteke određena je najvećom adresom koja se neposredno navodi u programu, i pri tome nema načina da se u toku prevođenja programa ustanovi da li će sve indeksne adrese biti unutar zauzetog prostora. Drugim rečima, postoji opasnost da pomeraj bude takav da indeksna adresa premaši najveću adresu koja je eksplicitno navedena u programu, što bi prouzrokovali prekoračenje donje ili gornje granice datoteke (Sl. 2-3). Da bi se ovo izbeglo, neophodno je da se pri kreiranju datoteke definiše najveća adresa do koje indeksno adresiranje može da dosegne. Isto tako, preveliki negativni pomeraj mogao bi da dovede do prekoračenja donje granice datoteke.

Prekoraćenje granica datoteke samo po sebi 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.

2.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 konkretne 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.

TIP DATOTEKE (PROMENLJIVE)

INDEKSNA ADRESA POMERAJ (S:24)

IZRAŽEN U

AKO SE BAZNA PROMENLJIVA NALAZI U RAM-U NA ADRESI 200, I S:24=6 ADRESA PROMENLJIVE JE

O-output; I-input; B-bit

#O:e ; #I:e ; #Bf:e elementima (1 reč) 206

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 (ACC i PRE)

#Tf:e.ACC ; #Tf:e.PRE #Cf:e.ACC ; #Cf:e.PRE

elementima (3 reči) 219 ; 220 (2. i 3. reč elementa)

R-control (LEN i POS)

#Rf:e.LEN ; #Rf:e.POS elementima (3 reči) 219 : 220 (2. i 3. reč elementa)

SL. 2-3 INDEKSNA ADRESA #N7:3

Page 29: PLC

Mali_kontroler/23

2.2.7. PROGRAMSKE KONSTANTE Pored promenljivih koje se smeštaju u datotekama podataka, u pojedinim

programskim naredbama dozvoljeno je korišćenje i programskih konstanti, brojnih vrednosti koje se definiš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 (T. 2-7). 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 konstanta

direktno navođenje vrednosti -32768 do +32767

realna konstanta direktno navođenje vrednosti, koja sadrži decimalnu tačku

±1.1754944e-38 do ±3.40282347e+38

heksadecimalnia konstanta

&H &H0000 do &HFFFF

oktalna konstanta &O &O000000 do &177777

binarna konstanta &B����ִִִִ���� &B0000000000000000 do &B1111111111111111

ASCII konstanta &A

2.3. DISKRETNI U/I MODULI

2.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 odgovarajuć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

T. 2-7 - SPECIFIKACIJA PROGRAMSKIH KONSTANTI

SL. 2-4 DIGITALNI U/I MODUL

Page 30: PLC

Mali_kontroleri/24

kontrolerom se ostvaruje jednostvanim ubacivanjem u odgovarajući slot na šasiji. Izgled tipičnog U/I modula prikazan je na Sl. 2-4. 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 odgovarajućeg kola za spregu sa kontrolerom. U skladu sa time svaki pin se identifikuje svojim tipom (ulaz ili izlaz) i brojem koji određuje 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 uređaja, kao i karakteristika modula. Detaljna šema sprege vezivanja data je uz svaki modul.

Za vreme rada U/I modula, stanje svakog pina se prikazuje na odgovarajućem LED indikatoru. Indikator koji je povezan sa ulaznim 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. 2-4 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 postavlja i 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.

2.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 kao binarni signal, nalazi se u datoteci 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. 2-5.

PR. 2-1

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. 2-6 Konfiguracija kontrolera. Kao što se vidi prva šasija

SL. 2-5 FORMAT ADRESA BINARNIH U/I SIGNALA

Page 31: PLC

Mali_kontroler/25

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.

SL. 2-6 KONFIGURACIJA KONTROLERA

Struktura datoteka 0 i 1 koje odgovaraju datoj konfiguraciji prikazana je u tabelama T. 2-8 i T. 2-9.

SLOT - U/I tip

(pinovi)

ADRESA REČI

ADRESE BITOVA DATOTEKA 0 – IZLAZ

BITOVI 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1 - OUT (0-5) O:1 O:1/0 … O:1/5 NE KORISTI SE 3 - OUT (0-15) O:3 O:3/0 … O:3/15 4 – OUT (0-7) O:4 O:4/0 … O:4/7 NE KORISTI SE

5 – OUT (0-15) O:5 O:5/0 … O:5/15 5 – OUT (16-32) O:5.1 O:5.1/0 ...O:5.1/15 9 – OUT (0-15) O:9 O:9/0 … O:9/15 10 – OUT (0-15) O:10 O:10/0 … O:10/15

SLOT - U/I tip

(pinovi)

ADRESA REČI

ADRESE BITOVA DATOTEKA 1– ULAZ

BITOVI 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1 - IN (0-5) I:1 I:1/0 … I:1/5 NE KORISTI SE 2 - IN (0-15) I:2 I:2/0 … I:2/15 2 – IN (16-32) I:2.1 I:2.1/0 … I:2.1/15 4 – IN (0-7) I:4 I:4/0 … I:4/7 NE KORISTI SE 6 – IN (0-15) I:6 I:6/0 … I:6/15 7 – IN (0-15) I:7 I:7/0 … I:7/15 8 – IN (0-7) I:8 I:8/0 … I:8/7 NE KORISTI SE

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 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. 2-9 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.

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

T. 2-8 – ORGANIZACIJA DATOTEKE 0

T. 2-9 - ORGANIZACIJA DATOTEKE 1

Page 32: PLC

Mali_kontroleri/26

binarni signal ukoliko se nalazi u električnom kolu koje se zatvara (ili otvara) kada se senzor aktivira. Otuda, se senzor mora vezati u električno kolo digitalnog ulaznog modula. Ovo kolo će omogućiti detekciju binarnog signala i prenos odgovarajuće vrednosti u memoriju PLC-a. Na isti način, diskretni izvršni organ mora biti povezan u električno kolo digitalnog izlaznog modula koje omogućava da se digitalni signal koji odgovara vrednosti bita u memoriji prenese na izvršni organ.

Prilikom povezivanja digitalnih uređaja neobično je važno da se vodi računa o tome kako je uređaj projektovan, odnosno kakav treba da bude smer električnog signala. U tom smislu razlikuju se dve vrste uređaja:

• uređaji koji su izvor signala (source device) – povezuju se na pozitivni pol izvora napajanja

• uređaji koji su prijemnici signala (sinking device) – povezuju se na zajedničku tačku izvora napajanja.

Da bi se obezbedila kompatibilnost digitalnih uređaja i PLC-a za koji se oni vezuju, digitalni moduli se takođe proizvode u dve kategorije

• digitalni U/I izvori - za uređaje koji su projektovani kao prijemnici.

• digitalna U/I prijemnici - za uređaje koji su projektovani kao izvor. Način vezivanja, ovih uređaja prikazan je na Sl. 2-7 i Sl. 2-8. Pri tome, potrebno je

da se istakne da digitalni moduli koji predstavljaju izvor signala moraju u sebi da imaju i izvor napajanja. U tom slučaju, postojanje još jednog spoljnog izvora, je opciono. Za razliku od njih digitalni moduli koji primaju signale nemaju izvor napajanja. To znači da u kolu preko koga se vezuje digitalni uređaj mora da postoji spoljni izvor napajanja.

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

SL. 2-7 SPREZANJE DIGITALNIH UREĐAJA KOJI SU PROJEKTOVANI KAO IZVORI

SL. 2-8 SPREZANJE DIGITALNIH UREĐAJA KOJI SU PROJEKTOVANI KAO PRIJEMNICI

izlazni pin

DC COM

DCizvor napajanja

+

-

Digitalni izlazni uređaj(izvor)

izvor signal

VDC

DC izlazno kolo

(prijemnik)

Page 33: PLC

Mali_kontroler/27

2.4. ANALOGNI U/I MODULI Analogni ulazni moduli su kola za

spregu između kontinualnih (analognih) signala koji dolaze od mernih instrumenata i digitalnih (numeričkih) vrednosti kojima su ovi signali prikazani u PLC-u. Analogni izlazni moduli obezbeđuju spregu između numeričkih vrednosti u PLC-u i analognih signala koji predstavljaju ove vrednosti i koji služe za upravljanje izvršnim organima.

U principu jedan modul se spreže sa više spoljnih uređaja, pri čemu se svaka

sprega posmatra kao jedan ulazni ili izlazni kanal. Moduli se međusobno razlikuju po broju i vrsti kanala. Neki moduli su samo ulazni ili samo izlazni, a neki su kombinovani, što znači da imaju i izlazne i ulazne linije.

Svaki modul se smešta u jedan slot na šasiji PLC-a (Sl. 2-9). Otuda se, sa gledišta adresiranja, on tretira isto kao i digitalni modul, s tim što je značenje pinova i broj bitova koji odgovaraju jednom pinu drugačiji. Drugim rečima podaci koji se preko modula unose u računar nalaziće se u određenim lokacijama datoteke ulaza (I), a podaci koji se iznose iz računara, nalaziće se u datoteci izlaza (O).

Broj reči koji odgovara jednom kanalu zavisi od vrste samog modula. U principu se može smatrati da svakom ulaznom ili izlaznom kanalu

odgovara po jedna reč, tako da se adresa kanala formira u skladu sa rednim brojem slota i rednim brojem kanala (Sl. 2-10). Sadržaj odgovarajućih memorijskih lokacija u ovim datotekama menja se u toku ulaznog ili izlaznog sken ciklusa.

2.4.1. ANALOGNI ULAZNI KANAL Nezavisno od toga koliko se

ulaznih kanala nalazi na jednom modulu, modul, po pravilu, ima samo jedan A/D konvertor. U toku ulaznog sken ciklusa, uz pomoć multipleksera, odabira se jedan po jedan ulazni kanal na modulu, izvrši se konverzija signala i on se smešta u odgovarajuću reč u datoteci ulaza.

Imajući u vidu da je merni signal uvek zašumljen, signal koji dolazi preko analognog kanala se posle konverzije propušta kroz digitalni filter koji ima za cilj da odbaci komponente visokih učestanosti koji potiču od šuma. Tip i vrsta ovog ugrađenog filtra zavisi od proizvođača. Kod nekih tipova modula korisniku može sam da podešava parametre filtra. Pored toga, neki analogni moduli pružaju mogućnost korisniku da dobije i informacije o

SL. 2-9 KOMBINOVANI ANALOGNI U/I MODUL

SL. 2-10 ADRESIRANJE ANALOGNIH ULAZA I IZLAZA

SL. 2-11 DIFERENCIJALNA SPREGA ANALOGNOG ULAZA

Page 34: PLC

Mali_kontroleri/28

prekoraćenju opsega ili o drugim aspektima rada modula. Vrsta A/D konvertora i njegova rezolucija zavise od tipa modula. U principu oni se

kreću od 12 do 16 bitova. Kod posmatrane klase SLC kontrolera koriste se 16-bitni A/D konvertori. Otuda se svakom ulaznom kanalu pridružuje po jedna memorijska reč. To nadalje znači da se svaki ulazni kanal adresira pomoću adrese oblika I:e.w. U principu, moguće je pristupiti i pojedinom bitu unutar svake od ovih reči, no ti bitovi nemaju nikakvo pojedinačno značenje, pa se ne vidi razlog zašto bi se to radilo.

Analogni davač se vezuje tako što se formira zatvoreno električno kolo. Pri tome, izvor napajanja tog kola može biti u samom modulu ili spolja. Za razliku od digitalnih U/I, kod analognih modula izvor napajanja je veoma često spoljni. Samo električno kolo se zatvara vezivanjem krajeva analognog davača sa pinovima na ploči analognog modula

(Sl. 2-9). Svakom analognom ulaznom kanalu pridružena su 3 pina. Dva pina služe za ulaz signala, dok je treći pin vezan za zajedničku masu na samom modulu. Način njihovog korišćenja zavisi od vrste analognog davača sa koga se signal vodi na kanal. Ako davač ima dva, tri ili četiri izlaza onda se može izvesti diferencijalna sprega davača i modula. Svakom davaču pridružuje se zaseban izvor napajanja i svi kanali su međusobno odvojeni (Sl. 2-11). Za davače koji imaju samo dva ili tri izlaza, može se izvesti veza sa jednim krajem, tako da se električno kolo zatvara preko zajedničke tačke (mase) na samom modulu. U tom slučaju, dovoljan je jedan izvor napajanja za više analognih kanala (Sl. 2-12).

Potrebno je da se istakne da diferencijalna sprega ima bolje karakteristike posebno kad se radi o potiskivanju smetnji koje potiču od napajanja.

Anolgni ulazni kanali su, po pravilu, prilagođeni za standardizovane vrste signala (strujne ili naponske) i to u opsezima koji se najčešće sreću kod različitih analognih davača. Najčešće je modul tako podešen da se postavljanjem internih prekidača može definisati da li će se kanal koristiti za strujni ili naponski signal. Tipični skup signala koji se sreće kod analognih ulaza, zajedno sa njihovim celobrojnim prezentacijama kod 16-bitne konverzije dat je u tabeli T. 2-10.

OPSEG NAPONA/STRUJE CELOBROJNA DECIMALNA REPREZENTACIJA

(DATOTEKA ULAZA) REZOLUCIJA

-10V dc do +10V dc -32768 do +32767

305.176µV 0 do 10V dc 0 do 32767 0 do 5V dc 0 do 16384 1 do 5V dc 3277 do 16384 -20mA do +20mA -16384 do +16384

1.2207µA 0 do 20mA 0 do 16384

4 do 20mA 3277 do 16384

U skladu sa vrednostima iz tabele, očigledno je da se pretvaranje dobijenih vrednosti u odgovarajuće električne veličine može izvršiti prema sledećim formulama

SL. 2-12 SPREGA ANALOGNOG ULAZA SA JEDNIM KRAJEM

T. 2-10 OPSEG ULAZNIH SIGNALA I NJIHOVA KONVERZIJA U CELOBROJNE VREDNOSTI

Page 35: PLC

Mali_kontroler/29

ULAZNI NAPON (V) ×=32768

10CELOBROJNA DECIMALNA VREDNOST

ULAZNA STRUJA (mA) ×=16384

20 CELOBROJNA DECIMALNA VREDNOST

Neki analogni moduli pružaju mogućnost da se zahteva da sam modul interno

izvrši konverziju u električne ili inženjerske jedinice. Ukoliko modul nema takvu opciju, konverzija može da se izvrši programski. Problemima transformacije signala biće kasnije, kada se prouči programiranje PLC-a, posvećeno više pažnje.

Napomenimo još, da najveći broj analognih modula interno skenira ulazne kanale i vrši A/D konverziju ulaznih signala daleko češće nego što to zahteva sken ciklus PLC-a. Sve konvertovane vrednosti nalaze se u skupu internih registara PLC-a i bivaju zamenjene sa novim vrednostima posle sledeće konverzije. Sadržaj tih registara, se međutim, prebacuje u odgovarajuće područje datoteke ulaza samo u toku ulaznog sken ciklusa. Ukoliko je korisniku, iz nekog razloga, važno da raspolaže i sa trenutnom vrednošću ulaza na nekom kanalu, on to može da ostvari posebnom programskom naredbom koja će uzeti traženu vrednost iz registra i smestiti je na odgovarajuće mesto u datoteci.

2.4.2. ANALOGNI IZLAZNI KANAL Za razliku od analognih ulaza, svakom analognom izlaznom kanalu pridružen je

poseban D/A konvertor. Pomoću njega se celobrojna vrednost koja se nalazi na odgovarajućem mestu u datoteci izlaza pretvara u strujni ili naponski signal. U principu, moduli se razlikuju po rezoluciji, ali se najčešće sreću konvertori čija je rezolucija 12 do 14 bitova.

Kod posmatrane klase kontrolera koriste se 14-bitni D/A konvertori. Otuda se svakom izlaznom kanalu pridružuje po jedna memorijska reč. To nadalje znači da se svaki izlazni kanal adresira pomoću adrese oblika O:e.w. Pri tome se za smeštanje podatka koristi 14 levih bitova, tako da dva poslednja desna bita nisu u upotrebi. To znači da se po četiri celobrojna podatka koja se međusobno razlikuju samo u vrednosti dva poslednja desna bita (koja odgovaraju stepenima 20 i 21) konvertuju u isti analogni signal kao što je to ilustrovano na Sl. 2-13. To znači da je najmanje značajan bit (LSB) zapravo bit uz 22. Otuda se rezolucija konvertora, odnosno najmanji kvant rezultujućeg analognog signala određuje prema sledećoj relaciji

X X X X X X X X X X X X X X 0 0

20212223242526272829210211212213214215

X X X X X X X X X X X X X X 0 1

X X X X X X X X X X X X X X 1 0

X X X X X X X X X X X X X X 1 1

Celobrojni podatak koji se konvertuje

Najmanja celobrojna vrednost različita od nule: 22 = 4 (ili 5, 6, 7)Najveća celobrojna pozitivna vrednost: 215- 22 = 32764 (ili 32765, 32766, 32767)

SL. 2-13 RELEVANTNI BITOVI KOD 14-TO BITNE A/D KONVERZIJE

Page 36: PLC

Mali_kontroleri/30

opseg analognog izlazar 4

opseg celobrojnih vrednosti= ×

Kao i analogni ulazi, i analogni izlazi se prave za standardizovane naponske i strujne signale. Pri tome, za razliku od ulaznih modula, ovde je svaki kanal unapred formiran za prenošenje ili naponskih ili strujnih signala. Tipičan skup signala i način njihovog pretvaranja iz celobrojnih vrednosti u električne signale dat je u tabeli T. 2-11.

U skladu sa podacima iz tablice, vidi se da se konverzija vrednosti može izvršiti prema sledećim relacijama

CELOBROJNA DECIMALNA VREDNOST ×=10

32768 IZLAZNI NAPON (V)

CELOBROJNA DECIMALNA VREDNOST ×=21

32768 IZLAZNA STRUJA (mA)

Pri tome je potrebno zapaziti da će se isti rezultat dobiti i ako se u gornjim relacijama koristi konstanta 32764 umesto 32768. Naime, razlika u rezultatu ogledaće se samo u poslednja dva bita koja se, kao što je već rečeno, ne koriste pri D/A konverziji.

CELOBROJNA DECIMALNA REPEREZENTACIJA (DATOTEKA IZLAZA)

OPSEG NAPONA/STRUJE

REZOLUCIJA

-32768 do +32764 -10V dc do +10V dc

1.2207mV 0 do 32764 0 do 10V dc 0 do 16384 0 do 5V dc

3277 do 16384 1 do 5V dc 0 do 32764 0 do 21mA

2.56348µA 0 do 31208 0 do 20mA 6242 do 31208 4 do 20mA

T. 2-11 OPSEG IZLAZNIH SIGNALA I KONVERZIJA CELOBROJNIH VREDNOSTI U ELEKTRIČNE VELIČINE

2.5. FORMIRANJE PROJEKTA

SL. 2-14 POKRETANJE PROJEKTA I IZBOR PROCESORA

Page 37: PLC

Mali_kontroler/31

Formiranje projekta započinje uvek specifikacijom samog kontrolera na kome će se data aplikacija realizovati. To znači da korisnik mora da pruži informaciju o vrsti i tipu procesorskog modula koji će se koristiti, o ulazno izlaznim modulima koji će se postaviti u šasiji i o tipu računarske mreže u koju će taj kontroler biti vezan. Najveći broj proizvođača PLC-ova razvio je i odgovarajući grafički korisnički interfejs koji omogućava korisniku da na veoma jednostavan način izvrši ove operacije. U tom slučaju specifikacija se odvija kroz sistem "prozora" okviru kojih se korisniku nude sve moguće opcije među kojima on odabira onu koja odgovara datoj konfiguraciji.

Za kontrolere tipa SLC500 i MicroLogix na raspolaganju je softverski alat RSLogix500. Pokretanjem ovog alata korisniku se pruža mogućnost da kreira novi projekat ili ažurira već postojeći. Ukoliko se otvara novi projekat onda je kao prvo neophodno da se specificira procesor koji će biti korišćen u kontroleru. Ova specifikacija se obavlja izborom željenog procesora sa liste raspoloživi procesora. Na Sl. 2-14 se vidi izbor procesora SLC 5/03 sa 16K memorije.

SL. 2-15 IZBOR ŠASIJE I U/I MODULA Čim se odabere procesor automatski se otvara prozor koji omogućava dalju

specifikaciju kontrolera i započinjanje pisanja programa. Samo se po sebi razume da je pre formiranja programa neophodno da se definišu ulazni i izlazni moduli čije podatke će program da koristi. Otuda je sledeći korak selekcija opcije IO Configuration, čime se korisniku pruža mogućnost da odabere tip šasije koji želi dakoristi, a zatim da redom odabira ulazno/izlazne module koje će postaviti u slotove 1, 2, itd (Sl. 2-15). Potrebno je

Izbor šasije

Izbor U/I modula u

slotu 1

Page 38: PLC

Mali_kontroleri/32

zapaziti da je u slotu 0 već smešten odabrani procesor. Na Sl. 2-16 prikazana je odabrana konfiguracija kontrolera. Budući da je odabrana

šasija koja ima 4 slota, pored procesora definisana su još 3 U/I modula. koji izgled prozora pri definiciji konfiguracije PLC-a iz familije Allen Bradley SLC 500 Modular Controllers. Sa slike se vidi da se u slotu 0 nalazi procesorski modul tipa 5/03, koji u šasiji ima prostor za još tri modula.

Kao što se vidi sa Sl. 2-15 u slotu 1 nalazi se kombinovani digitalni modul sa 6 ulaza i 6 izlaza. Ovaj modul imaće adrese I:1.0/b i O:1.0/b gde je b redni broj bita koji može imati vrednost od 0 do 5. Pri tome, ulazni signali moraju biti jednosmerni u opsegu do 24 V, dok su izlazni signali prilagođeni standardima za upravljanje relejima.

U slotu 2 smešten je modul sa 2 analogna ulazna kanala i 2 analogna izlazna kanala. Ulazni kanali mogu da se koriste za ulaz strujnih signala (-20mA do +20 mA) ili za ulaz naponskih signala (–10V do +10V), što se podešava postavljanjem internih prekidača. Adrese ova dva ulazna kanala su I:2.0 i I:2.1. Oba izlazna kanala daju jednosmerne naponske signale u opsegu od –10V do +10V, dok su adrese ova dva izlaza O:2.0 i O:2.1.

U slotu 3 nalazi se digitalni ulazni modul sa osam ulaza (I:3.0/b , b = 0,1,.. ,7). Ovaj modul prima digitalne signale koji su naizmenični u opsegu do 200/240 V.

SL. 2-16 PRIMER KONFIGURISANJA PLC-A

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

Page 39: PLC

Leder_uvod/33

3. LEDER PROGRAMIRANJE

3.1. UVOD U LEDER PROGRAMIRANJE Kao što je već rečeno jedna programska linija leder jezika sastoji se iz niza

grafičkih simbola (programskih naredbi) koji predstavljaju različite logičke elemente i druge komponente kao što su časovnici i brojači, koji su poređani duž horizontalne linije –

rang (rung) – koja je na oba kraja spojena sa dvema vertikalnim linijama. Prema tome, leder dijagram ima izgled lestvica, odakle potiče i njegov naziv (ladder – lestvice).

Svaki rang leder dijagrama sastoji se iz dva dela. Na

levoj strani ranga nalazi se uslov izražen u formi kontaktne (prekidačke)

logike, dok se na desnoj strani ranga nalazi akcija koja treba da se izvrši ukoliko je uslov ispunjen (true) (Sl. 3-1).

U literaturi je uobičajeno da se i simboli koji označavaju uslov i simboli koji označavaju akciju označavaju kao naredbe. Otuda je neophodno da se istakne suštinska razlika između naredbi uslova i naredbi akcije. Naime, izvršavanje naredbi uslova obavlja se tako što se u zavisnosti od vrednosti operanda, prema pridruženoj tablici istinitosti, naredbi dodeljuje vrednost (0 ili 1). Dakle, naredbe uslova se izvršavaju u svakom sken ciklusa i rezultat njihovog izvođenja je vrednost naredbe. Za razliku od toga naredbama akcije se ili dodeljuje vrednost nekoj promenljivoj ili izvršava neka druga aktivnost. Ove naredbe se izvršavaju samo ako je uslov koji im prethodi istinit (dodeljena mu je vrednost 1). Pri tome se samim naredbama akcije ne dodeljuje nikakva vrednost.

Leder program se izvršava u toku programskog dela sken ciklusa i to tako što se obrađuje rang po rang u nizu kako su oni definisani. U svakom rangu ispituje se istinitost uslova i ukoliko je uslov istinit izvršavaju se odgovarajuće naredbe u desnom delu ranga. To znači da promenljive na desnom delu ranga mogu menjati svoju vrednost samo jedanput u toku sken ciklusa, i to upravo onda kada se odgovarajući rang ispituje. Potrebno je zapaziti, međutim, da ukoliko se promenljiva na desnoj strani ranga odnosi na fizički izlaz, vrednost izlaza neće biti promenjena u istom trenutku vremena. Naime, za vreme programskog skena menjaju se samo vrednosti promenljivih smeštenih u datoteku izlaza (output image file). Tek kasnije, za vreme izlaznog dela sken ciklusa, sve promenljive iz datoteke izlaza biće prenete na odgovarajuće izlazne linije. Ista stvar važi i za ulazne promenljive. Drugim rečima, za vreme programskog skena ispitivanje istinitosti uslova odnosi se na vrednosti promenljivih u datoteci ulaza (input image file), koje su tu upisane za vreme ulaznog dela sken ciklusa koji je prethodio programskom skenu, a ne na trenutne vrednosti promenljivih na ulaznim linijama. Naravno, svi uslovi i naredbe koji su vezani za interne promenljive izvršavaju se u trenutku skeniranja pojedinog ranga.

3.2. BIT NAREDBE Bit naredbe su, kao što samo ime kaže naredbe čiji su operandi bitovi. Sa gledišta

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

SL. 3-1 LEDER RANG

Page 40: PLC

Leder_uvod/34

3.2.1. BIT NAREDBE ZA DEFINISANJE USLOVA Ove naredbe se postavljaju na levoj strani ranga i definišu uslov koji se odnosi na

stanje bita čija je adresa definisana u naredbi. Kao rezultat izvođenja naredba dobija istinosnu vrednost true (istinit) ili false (neistinit) .

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

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

Nazivi ove dve naredbe potiču od ispitivanja binarnnih signala koji dolaze sa

prekidačkih kola. U tom smislu XIC naredba se odnosi na normalno otvoren prekidač (ima vrednost 1 kada je prekidač pritisnut), dok se XIO naredba odnosi na normalno zatvoren prekidač (ima vrednost 1 kada prekidač niej pritisnut – "ne a").

3.2.2. BIT NAREDBE ZA POSTAVLJANJE VREDNOSTI IZLAZA Ovim naredbama se bitu čija je adresa navedena u naredbi dodeljuje vrednost 1 ili

0. Podsetimo se da se ove nardebe nalaze na desnoj strani ranga, što znači da će se one izvršiti samo ako je iskaz (uslov) na levoj strani ranga istinit.

• OTE - Output energize (pobuđivanje izlaza)

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

može promeniti samo jedanput za vreme sken ciklusa. Ova vrednost ostaće neizmenjena sve do sledećeg sken ciklusa, kada će se pri skeniranju odgovarajućeg ranga ponovo ispitati uslov i izvesti odgovarajuća akcija.

• OTL - Output latch (pamćenje izlaza)

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

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

Page 41: PLC

Leder_uvod/35

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

• OTU - Output unlatch (resetovanje izlaza)

OTU naredbom se adresovani bit može isključivo postaviti na 0. Pri tome, vrednost

bita se postavlja (lečuje) na 0 u prvom skenu u kome je uslov ispunjen. Nakon toga ova naredba postaje neosetljiva na vrednost uslova.

Potrebno je da se istakne da se OTL i OUT naredba koriste uvek u paru, pri čemu se u obe naredbe adresira isti bit.

3.2.3. BIT TRIGER NAREDBA

• OSR - One-shot r is ing (uzlazna ivica)

OSR naredba omogućava da se obezbedi izvođenje neke akcije samo jedanput.

Potrebno je da se istakne da je ovo specifična naredba koja istovremeno pripada i kategoriji uslova i kategoriji akcije. Naime ova naredba se postavlja u rangu između dela koji predstavlja uslov i dela koji predstavlja akciju. Kada se u toku sken ciklusa detektuje da je uslov promenio svoju vrednost sa neistinit na istinit (uzlazna ivica) onda OSR naredba takođe dobija vrednost istinit (što ovu naredbu svrstava u kategoriju naredbi uslova). Istovremeno se i bitu čija je adresa pridružena toj naredbi dodeljuje vrednost 1 (po čemu se ova naredba svrstava i u kategoriju akcija). Obe ove vrednosti ostaju nepromenjene do sledećeg sken ciklusa, kada naredba dobija vrednost neistinit, dok se adresovani bit postavlja na vrednost 0 ili 1 u zavisnosti od vrednosti uslova. U narednim sken ciklusima vrednost naredbe ostaje nepromenjena sve dok se u uslovu (koji predstavlja ulaz u OSR) ponovo ne detektuje prelaz “neistinit/istinit”.

Potrebno je da se istakne da bit čija je adresa pridružena ovoj naredbi ne predstavlja vrednost naredbe. Naime, ovaj bit se koristi kao interna promenljiva i služi za pamćenje vrednosti uslova koji prethodi OSR naredbi. Vrednost ovog bita je 1 ako je uslov istinit, odnosno 0 ako je uslov neistinit. U tom smislu, sa aspekta dodeljivanja vrednosti bitu čija se adresa navodi u OSR naredbi, ova naredba je identična sa OTE naredbom. Navedeni bit se može nalaziti u bilo kojoj bit-adresibilnoj datoteci izuzev datoteke ulaza i izlaza.

Vrednost koju dobija OSR naredba koristi se kao uslov za izvođenje naredbe akcije koja se nalazi na desnoj strani ranga (neposredno iza OSR naredbe). Shodno tome, naredba akcije biće izvršavana po jedanput pri svakom prelazu uslova “neistinit/istinit”.

Iza OSR naredbe se može nalaziti samo jedna naredba akcije. (Kod kontrolera tipa SLC 500 i SLC 5/01 OSR naredba se ne sme nalaziti u paralelenim granama na

Page 42: PLC

Leder_uvod/36

desnoj strani ranga). Kod kontrolera tipa MicroLogix postoje i ONS i OSF naredbe. ONS naredba ima

isti efekat kao i OSR, što znači da je aktivna pri uzlaznoj ivici signala (promena sa neistinit na istinit), dok je OSF naredba aktivna pri silaznoj ivici (promena sa istinit na neistinit),

3.2.4. PROGRAMSKI SKEN I VREMENSKI DIJAGRAM U toku programskog skena procesor izvršava pojedinačne naredbe, obrađujući

rang po rang od početka pa do kraja programa. U okviru obrade jednog ranga, procesor ispituje stanja bitova u datotekama podataka, određuje vrednost pojedinačnih naredbi uslova, izvršava logičke I i ILI operacije nad tim vrednostima, u skladu sa načinom na koji je formiran desni deo ranga, i kao rezultat tih operacija određuje istinosnu vrednost uslova. Ukoliko je ova vrednost istinit, procesor će izvršiti naredbe koje se nalaze na levoj strani ranga i koje predstavljaju akciju.

U cilju ilustracije izvršavanja leder programa u PLC-u posmatraćemo jedan rang (Sl. 3-2) nekog programa. U okviru ovog ranga ispituje se stanje jedne ulazne linije koja je vezana za nulti pin ulaznog dela kombinovanog U/I modula, smeštenog u slotu 1 PLC-a. Na osnovu stanja ulazne linije generiše se signal na izlaznoj liniji koja je vezana za nulti pin izlaznog

dela istog U/I modula. Na slici Sl. 3-3 prikazan je vremenski dijagram promene signala na ulaznoj liniji, vrednosti bita u input image file-u

koji je pridružen toj liniji, vrednosti bita u output image file-u i signala na izlaznoj liniji koji je sa tim bitom povezan. Pretpostavljeno je da ceo program ima više ulaznih signala i više izlaznih signala čije očitavanje, odnosno generisanje zahteva određeni period vremena za ulazni i izlazni sken interval. Isto tako, pretpostavljeno je i da se program sastoji od više rangova, čija obrada zahteva neki period vremena (programski sken interval).

Potrebno je da se zapazi da se stanje signala na ulaznoj liniji može promeniti u

sken

programa

sken

programa

sken

programa

sken

programa

sken

izlazasken

ulaza

sken

izlazasken

ulaza

sken

izlazasken

ulaza

sken

izlaza

vreme

10 42 3

10 42 3

10 42 3

10 42 3

ulazna

linija

vrednost

bita

I:1/0

vrednost bita

O:1/0

Izlazna linija

43210

sken ciklus 1 sken ciklus2 sken ciklus3 sken ciklus 4

sken

ulaza

SL. 3-2 POSTAVLJANJE IZLAZA U ZAVISNOSTI OD VREDNOSTI ULAZA

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

Page 43: PLC

Leder_uvod/37

bilo kom trenutku. Međutim, vrednost bita pridružena toj liniji biće promenjena tek u toku prvog ulaznog sken ciklusa koji nastupa posle promene stanja ulazne linije. Za vreme programskog skena vrednost XIC naredbe se određuje na osnovu stanja odgovarajućeg bita, a ne njemu odgovarajućeg ulaznog signala. Otuda je u prvom sken ciklusu vrednost ove naredbe 0 iako je ulazni signal već u stanju logičke jedinice. Međutim, budući da je on promenio stanje tek posle prvog ulaznog skena, ta promena još uvek nije registrovana postavljanjem njemu odgovarajućeg bita, koji je odgovaran za vrednost XIC naredbe. U skladu sa tim, ne izvršava se OTE naredba, pa izlazni bit i njemu odgovarajuća izlazna linija ostaju u stanju 0. Promena na ulazu dovodi do promene ulaznog bita tek u drugom ulaznom sken ciklusu, tako da tek u drugom programskom ciklusu XIC naredba dobija vrednost istinit. Kao rezultat ove vrednosti izvršava se OTE naredba i izlazni bit postavlja na vrednost 1. U toku drugog izlaznog sken ciklusa ova vrednost prenosi se na izlaznu liniju gde se generiše signal koji odgovara logičkoj jedinici.

Kašnjenje između trenutka u kome signal na ulaznoj liniji menja vrednost i trenutka u kome se ta promena registruje postavljanjem odgovarajućeg bita, kao i kašnjenje između trenutka u kome izlazni bit dobija neku vrednost i trenutka kada se ta vrednost pojavi na izlaznoj liniji može se izbeći posebnim neposrednim naredbama, o kojima će kasnije biti više reči.

3.2.5. PRIMERI PR. 3-1 UPRAVLJANJE PALJENJEM SIJALICE

ZADATAK Posmatra se električno kolo (Sl. 3-4) u kome

sijalica S svetli kada je zatvoren prekidač P1 i jedan od prekidača P2 ili P3. Potrebno je da se ovo električno kolo zameni sa PLC-om.

PROJEKTOVANJE SISTEMA Da bi se postavljeni

zadatak rešio neophodno je kao prvo da se ustanovi sa kojom opremom se raspolaže i da se odluči kako će se ona vezati za PLC. Pretpostavimo da imamo tri tastera od kojih su dva normalno otvorena i jedan normalno zatvoren i jedno električno kolo u kome se nalazi sijalica koje se zatvara pomoću releja. Usvojićemo da normalno otvoreni tasteri obavljaju funkciju

prekidača P1 i P3, dok će normalno zatvoren taster obavljati funkciju prekidača P2.

U skladu sa odabranim senzorima i izvršnim organom neophodno je da raspolažemo sa tri digitalna ulaza i jednim digitalnim izlazom. Budući da imamo PLC koji u prvom slotu ima digitalni U/I modul, možemo izvršiti vezivanje opreme. Po prirodi stvari vezaćemo tri tastera za ulazne pinove 0, 1 i 2, dok će rele na izlazu biti vezano za izlazni pin 0. Shodno tome, adrese prekidača P1, P2 i P3 su respektivno I:1/0, I:1/1 i I:1/2, dok je adresa sijalice O:1/0 (Sl. 3-5).

PROGRAMIRANJE Kada je formirana šema vezivanja opreme za PLC, onda se pristupa pisanju leder

programa. U cilju formiranja levog dela ranga treba uočiti da je uslov za paljenje sijalice da se

SL. 3-4 ELEKTRIČNO KOLO

SL. 3-5 SPREZANJE SENZORA I IZVRŠNOG ORGANA SA PLCOM

Page 44: PLC

Leder_uvod/38

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

Svakom bitu koji se koristi u leder programu može se pridružiti simboličko ime. U principu nema nikakvih posebnih pravila u pogledu davanja imena. Ipak praksa je pokazala da je pogodno da se ime formira tako da što vernije opisuje fizičko značenje signala na koji se odnosi. Pored toga, u cilju lakše provere ispravnosti programa, pogodno je da se ime formira tako da odgovara stanju pri kome bit koji se ispituje ima vrednost 1. Poštujući taj princip, u ovom primeru je bitu I:1/0 dato ime p1_on (bit I:1/0 ima vrednost 1 kao je P1 pritisnut (on), dok je bitu I:1/1 dato ime p2_off (bit I:1/1 ima vrednost 1 kad je P2 nepritisnut(off). U skladu sa time prva XIC naredba koja ispituje vrednost bita na adresi I:1/0 dobiće vrednost istinit ako bit ima vrednost 1 što znači da taster P1 jeste pritisnut . Isto tako XIO naredba koja ispituje vrednost bita na adresi I:1/1 dobiće vrednost istinit ukoliko bit nema vrednost 1, što znači da taster P2 nije nepritisnut .

SAMODRŽANJE Opisani sistem će ispravno raditi samo dotle dok se odgovarajući tasteri drže pritisnuti.

Naime, čim se taster otpusti on se vraća u normalni položaj i u sledećem sken ciklusu, uslov više neće biti ispunjen, pa će se sijalica ugasiti. Prirodno je međutim da se zahtev postavi tako da sijalica nastavi da svetli i posle otpuštanja tastera.

Postavljeni zadatak može se rešiti tako što će se na neki način upamtiti da je uslov za paljenje sijalice u nekom trenutku bio ispunjen. U tu svrhu može se na izlaznom delu ranga umesto OTE naredbe postaviti OTL naredba koja će obezbediti trajno postavljanje (lečovanje) izlaza (Sl.

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

SL. 3-7 LEDER PROGRAM KOJI TRAJNO POSTAVLJA IZLAZNI BIT ("PAMTI" AKO JE USLOV BIO ISPUNJEN)

Page 45: PLC

Leder_uvod/39

3-7). Umesto korišćenjem naredbe OTL isti efekat se može postići i postupkom takozvanog

samodržanja kojim se zadržava vrednost izlazne promenljive i posle prestanka uslova za njeno aktiviranje. Naime, ako se u delu ranga koji predstavlja uslov doda još jedna paralelna grana sa XIC naredbom u kojoj se ispituje upravo bit koji se postavlja kao izlaz tog ranga (Sl. 3-8) onda će, čim se pritiskanjem tastera uslov prvi put ispuni, odgovarajući bit biti postavljen na 1, što znači da će u sledećim sken ciklusima naredba u paralelnoj grani stalno imati vrednost istinit, pa se vrednost izlaznog bita neće menjati sa promenom stanja tastera.

ZAUSTAVLJANJE Potrebno je da se istakne da su poslednja dva primera formirana tako da će sijalica kad se

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

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

SL. 3-9 – LEDER PROGRAM SA TRAJNIM PAMĆENJEM USLOVA DO PRITISKA STOP TASTERA

Page 46: PLC

Leder_uvod/40

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

PR. 3-2 PUŠTANJE SISTEMA U RAD

ZADATAK Posmatra se sistem koji počinje da radi kada se pritisne START taster. Sistem nastavlja sa

radom sve dok se ne pritisne stop taster. Istovremeno se zahteva da se prilikom započinjanja rada sistema generiše impulsni signal koji realizuje brzo “zamrzavanje” nekog LED displeja. Potrebno je da se formira leder program koji će podržavati rad opisanog sistema uz pretpostavku da se on pušta u rad pomoću jednog “on/off” motora.

REŠENJE Neka su kola koja sadrže START i STOP taster kao i kolo za pobudu motora vezani za U/I

modul koji je smešten u slotu 1 PLC-a i to na pinove kojima respektivno odgovaraju adrese I:1/0, I:1/1 i O:1/0. Neka je nadalje signal koji upravlja zamrzavanjem displeja vezan za izlazni pin čija je adresa O:1/1. Odgovarajući leder program dat je na Sl. 3-11.

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

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

SL. 3-11 – START/STOP LEDER PROGRAM

Page 47: PLC

Leder_uvod/41

PR. 3-3 REALIZACIJA SEKVENCE

SL. 3-12 REALIZACIJA SEKVENCE POMERANJA KLIPOVA

Page 48: PLC

Leder_uvod/42

ZADATAK Dat je sistem koji sadrži jedan jednosmerni solenoid (A) i dva dvosmerna (B i C). Potrebno

je realizovati sledeću sekvencu pomeranja klipova: A+ B+ C+ B- A- C- . Pri tome se pretpostavlja da su u početnom trenutku svi klipovi uvučeni. Granični prekidači koji indiciraju uvučenost klipa A i B su normalno zatvoreni, dok su svi ostali granični prekidači normalno otvoreni. Sistem se pušta u rad pomoću pritiska na taster i prestaje sa radom kada se jedanput izvrši zahtevana sekvenca.

REŠENJE Jedno moguće rešenje postavljenog zadatka dato je na Sl. 3-12 Realizacija sekvence

pomeranja klipova. Pri tome je pretpostavljeno da su granični prekidači vezani za PLC preko ulaznog modula koji se nalazi u slotu 3 (adrese I:3/b), dok se pobude solenoida dobijaju preko izlaznih linija modula u slotu 1 (adrese O:1/b). Start taster je vezan preko nultog pina modula u slotu 1 (I:1/0).

Interne promenljive kreni (B3:0/0) i kraj (B3:0/2) koriste za otpočinjanje i završetak rada. Interna promenljiva vrati A (B3:0/1) služi za deaktiviranje pobude klipa A, posle čega ga opruga vraća u početni položaj.

Potrebno je da se obrati pažnja na činjenicu da se, da ne bi došlo do slučajnog pomeranja klipova (izazvanog recimo nekim opterećenjem), oni u izvučenom položaju drže pod naponom, sve dok ne dođe trenutak za njihovo uvlačenje. Budući da se stanje graničnih prekidača menja čim se klip pomeri, da bi se obezbedio kontinuitet napajanja koristi se postupak samodržanja (rang 3 i 4).

Zapazimo, takođe, da se stanje prekidača koji indiciraju uvučen položaj klipa ne može ispitivati samo po sebi. Naime ovi prekidači su pritisnuti u početnom stanju, pa je neophodno utvrditi da je došlo do pokreta pre nego što su oni ponovo pritisnuti (rang 5, 6 i7).

3.3. NAREDBE ZA MERENJE VREMENA I PREBROJAVANJE DOGA ĐAJA

3.3.1. ČASOVNIK I BROJAČ Prilikom upravljanja ili nadzora procesa često je potrebno da se neka aktivnost

otpočne ili zaustavi posle određenog vremenskog perioda, ili da se ponovi određeni broj puta. U tom smislu neophodno je da kontroler koji će se koristiti za upravljanje procesom pruži mogućnost za merenje vremena i prebrojavanje događaja. Prebrojavanje događaja obavlja brojač (counter), koji nakon registrovanja unapred zadanog broja događaja generiše odgovarajući signal. Merenje vremena ostvaruje se pomoću časovnika (timer). U suštini časovnik izražava vreme kao multipl određenog osnovnog intervala (vremenska baza). To zapravo znači da časovnik radi kao brojač protoka osnovnih intervala i da nakon isteka određenog, unapred zadanog intervala vremena, generiše odgovarajući signal.

Gledano potpuno opšte merenje protoka vremena i prebrojavanje događaja u okviru kontrolera može se realizovati hardverski pomoću odgovarajućih računarskih komponenti (modula) ili softverski (programski). Hardverska realizacija podrazumeva da kontroler ima posebni modul koji ostvaruje funkciju časovnika i brojača. Korisnik odgovarajućim naredbama definiše parametre modula i u toku izvršavanja programa kontroliše njegov rad. U slučaju softverske realizacije, ovu funkciju ostvaruje posebni programski modul, koji korisnik, po potrebi, uključuje u svoj program i odgovarajućim naredbama upravlja njegovim radom. Sa aspekta načina korišćenja, gotovo da i nema razlike između ove dve realizacije. Razlika se zapravo ogleda samo u funkcionalnom smislu. U principu, ukoliko su časovnik i brojač hardverski realizovani oni svoju funkciju obavljaju autonomno, što znači da ne koriste procesor za svoj rad. Nasuprot tome, softverski realizovani časovnik i brojač, kao i svi drugi programski moduli, za izvođenje svojih funkcija zahtevaju izvesno procesorsko vreme. Budući da je procesor opterećen čitavim nizom poslova, to znači da postoji samo određeno vreme koje on može posvetiti radu časovnika i brojača. Otuda hardverska realizacija, bar u principu, omogućava rad sa manjim intervalima vremena, odnosno bržim ponavljanjem događaja od softverske. Sa druge strane međutim, softverska realizacija omogućava da se definiše i koristi praktično neograničen broj časovnika i brojača, jer se kao jedino ograničenje javlja veličina raspoložive memorije.

Page 49: PLC

Leder_uvod/43

U seriji kontrolera SLC 5 časovnici i brojači su realizovani softverski, i koriste se kao naredbe akcije. Kao što je već istaknuto ne postoji nikakvo posebno ograničenje u pogledu njihovog broja. Potrebno je da se naglasi da su za neke od SLC 5 kontrolera, kao i za MicroLogix kontrolere razvijeni i posebni hardverski brojači.

Pri korišćenju časovnika i brojača neophodno je da se definišu sledeći parametri.

• Vremenska baza (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.

• Akumulirana vrednost (accumulated value - ACC) predstavlja broj osnovnih vremenskih intervala koje je časovnik izbrojao, odnosno broj događaja koje brojač registrovao u nekom trenutku. Kada akumulirana vrednost postane veća ili jednaka od zadane vrednosti časovnik, odnosno brojač, završavaju svoj rad. Opseg dozvoljenih vrednosti za akumuliranu vrednosti isti je kao i za zadanu vrednost.

3.3.2. DATOTEKA PODATAKA O ČASOVNIKU (TIMER DATA FILE) S obzirom da je

časovnik realizovan softverski, parametri koji definišu njegov rad moraju biti smešteni u memoriji kontrolera. Za pamćenje podataka o časovnicima koristi se datoteka podataka broj 4 (timer file – T). U ovoj datoteci može se definisati najviše 256 različitih časovnika. Ukoliko je potrebno da se koristi veći broj časovnika, korisnik može definisati i dodatne datoteke

(korisnički definisane datoteke) čiji su brojevi od 9 do 255. Svakom časovniku pridružuju se po jedan element koji se sastoji se od tri 16-bitne

reči (Sl. 3-13). Potrebno je da se zapazi da redni broj elementa zapravo definiše jedan određeni časovnik unutar jedne datoteke časovnika. Svaki od tri bita stanja, kao i zadana i akumulirana vrednost mogu se posebno adresirati i to bilo na standardan način na koji se formira adresa u bilo kojoj datoteci podataka, bilo preko odgovarajućih simbola. To zapravo znači da su sledeće adrese međusobno ekvivalentne:

Tf:e.1 ili Tf:e.PRE Tf:e.2 ili Tf:e.ACC Tf:e.0/15 ili Tf:e/15 ili Tf:e/EN Tf:e.0/14 ili Tf:e/14 ili Tf:e/TT Tf:e.0/13 ili Tf:e/13 ili Tf:e/DN

SL. 3-13 ELEMENAT DATOTEKE ČASOVNIKA I ADRESIRANJE ČASOVNIKA

Page 50: PLC

Leder_uvod/44

3.3.3. NAREDBE ZA RAD SA ČASOVNIKOM Kao što je već rečeno naredbe časovnika su naredbe akcije, što znači da se

nalaze na desnoj strani ranga u leder programu. Postoje tri tipa naredbi kojima se realizuju tri vrste časovnika, i jedna naredba kojom se stanje časovnika resetuje.

Potrebno je da se istakne da se sam časovnik i način njegovog rada definiše preko naredbe koja se uvrštava u leder program. Drugim rečima, kad se u program stavi jedna od moguće tri naredbe i u njoj naznači adresa časovnika u odgovarajućem formatu, onda operativni sistem sam zauzme tri reči u datoteci koja je navedena u adresi.

• Timer on-delay (TON) Kao što je već rečeno,

stavljanjem ove naredbe u leder program automatski se definiše prva vrsta časovnika i zauzimaju tri reči koje čine elemenat broj e u datoteci časovnika broj f. Prilikom formiranja

naredbe specificiraju se i vremenska baza (tx) i zadana vrednost (ns). Akumulirana vrednost (na)se automatski postavlja na 0.

TON naredba započinje rad časovnika (prebrojavanje osnovnih vremenskih intervala) za vreme onog programskog sken ciklusa u kome uslov u rangu u kome se naredba nalazi prvi put postaje istinit (prelaz neistini/istinit – uzlazna ivica). U svakom sledećem sken ciklusu, sve dok je uslov istinit časovnik vrši ažuriranje akumulirane

vrednosti (ACC) u skladu sa proteklim vremenom između dva ciklusa. Kada akumulirana vrednost dostigne zadanu vrednost, časovnik prekida svoj rad i postavlja DN bit na 1. Pri tome, ako u nekom sken ciklusu uslov postane neistinit, časovnik prekida svoj rad i akumulirana vrednost se postavlja na 0, bez obzira da li je časovnik pre toga izmerio zahtevano vreme ili ne.

Bitovi stanja časovnika menjaju se u toku programskog sken ciklusa na sledeći način:

• DN - Timer done bit se postavlja na 1 kada je ACC ≥ PRE. On se

resetuje na 0 kad uslov u rangu postane neistinit.

• EN - Timer enable bit se postavlja na 1 kada je uslov u rangu istinit i resetuje na 0 kada uslov postane neistinit.

• TT - Timer timing bit se postavlja na 1 kada je uslov istinit i ako je ACC ≤ PRE. On se resetuje na 0 kada uslov postane neistinit ili kada se DN bit postavi na 1, odnosno kada se završi merenje vremena.

U vezi sa radom časovnika potrebno je da se zapazi nekoliko činjenica. Pre svega

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

Page 51: PLC

Leder_uvod/45

časovnik radi samo dok je uslov istinit (signal na ulazu u časovnik je u stanju “on”). Istonosnu vrednost uslova pokazuje EN bit. Drugim rečima, ovaj bit ima vrednost 1 onda kada je uslov istinit i to označava da je rad časovnika omogućen (enable). Kada je uslov neistinit, EN bit ima vrednost 0, što znači da je rad časovnika onemogućen. Međutim, činjenica da EN bit ima vrednost 1 ne mora da znači da časovnik zaista i radi, jer je on mogao i da završi rad zbog isteka zadanog vremena, a da pri tome uslov i nadalje ostane istinit. Rad časovnika indicira TT bit. Naime, taj bit je postavljen na 1 za svo vreme za koje časovnik aktivno meri vreme (timer timing), i postavlja se na 0 kada časovnik ne radi. Konačno, kada je vrednost DN bita 1, onda to znači da je časovnik završio (done) svoj posao, tj. izmerio zadano vreme. Pri tome, DN bit ne govori o tome kada je časovnik završio sa poslom, jer će on ostati na vrednosti 1 sve dok uslov ne postane neistinit. Vremenski dijagram rada časovnika ilustrovan je na Sl. 3-14.

Stanje časovnika se može resetovati posebnom RES naredbom, o čemu će kasnije biti više reči.

• Timer off -delay (TOF) Ovom naredbom se definiše

druga vrsta časovnika i zauzimaju tri reči koje čine elemenat broj e u datoteci časovnika broj f. Prilikom formiranja naredbe specificaraju se i vremenska baza (tx) i zadana

vrednost (ns). Akumulirana vrednost (na)se automatski postavlja na 0. TOF naredba započinje rad časovnika za vreme onog programskog sken ciklusa u

kome uslov u rangu u kome se naredba nalazi prvi put postaje neistinit (prelaz istini/neistinit – silazna ivica). U svakom sledećem sken ciklusu, sve dok je uslov neistinit časovnik vrši ažuriranje akumulirane vrednosti (ACC) u skladu sa proteklim vremenom između dva ciklusa. Kada akumulirana vrednost dostigne zadanu vrednost, časovnik prekida svoj rad. Pri tome, ako u nekom sken ciklusu uslov postane istinit, časovnik prekida svoj rad i akumulirana vrednost se postavlja na 0, bez obzira da li je časovnik pre toga izmerio zahtevano vreme ili ne.

Bitovi stanja časovnika menjaju se u toku programskog sken ciklusa na sledeći način:

• DN - Timer done bit se postavlja na 1 kada je uslov istinit. On se resetuje na 0 kada je uslov neistinit i pri tome je ACC ≥ PRE.

• EN - Timer enable bit se postavlja na 1 kada je uslov istinit, i resetuje na 0 kada je uslov neistinit.

• TT - Timer timing bit se postavlja na 1 kada

je uslov neistinit i pri tome je ACC ≤ PRE. One se

resetuje na nulu kada uslov postane istinit ili kada se DN bit resetuje. U vezi sa radom časovnika potrebno je da se zapazi nekoliko činjenica. Pre svega

SL. 3-15 VREMENSKI DIJAGRAM IZVRŠAVANJA TOF NAREDBE

Zadano

vreme (PRE)

Uslov

EN bit

TT bit

ACC vrednost

DN bit

trenutci obrade ranga

0 10 11 12 13 14 15 16 17 1918 20 21 22 23 24 25 26 27 28 2987654321 9vreme

1

9

8-a

7

6

5

4

2-a

2-b

3

13

12

11

10

14

8-b

sken ciklus

Page 52: PLC

Leder_uvod/46

časovnik radi samo dok je uslov neistinit (signal na ulazu u časovnik je u stanju “off”). Istonosnu vrednost uslova pokazuje EN, ali za razliku od TON naredbe, ovde on onemogućava rad časovnika. Drugim rečima, ovaj bit ima vrednost 1 onda kada je uslov istinit i to označava da je rad časovnika onemogućen. Kada je uslov neistinit, EN bit ima vrednost 0, što znači da je rad časovnika omogućen. Međutim, činjenica da EN bit ima vrednost 0 ne mora da znači da časovnik zaista i radi, jer je on mogao i da završi rad zbog isteka zadanog vremena, a da pri tome uslov i nadalje ostane neistinit. Rad časovnika indicira TT bit. Naime, taj bit je postavljen na 1 za svo vreme za koje časovnik aktivno meri vreme (timer timing), i postavlja se na 0 kada časovnik ne radi. Konačno, kada je vrednost DN bita 0, onda to znači da je časovnik završio (done) svoj posao, tj. izmerio zadano vreme. Pri tome, DN bit ne govori o tome kada je časovnik završio sa merenjem vremena, jer će on ostati na vrednosti 0 sve dok uslov ne postane istinit. Vremenski dijagram rada časovnika ilustrovan je na slici Sl. 3-15.

• Retent ive Timer (RTO) Ovom naredbom se definiše treća vrsta časovnika i zauzimaju tri reči koje čine

elemenat broj e u datoteci časovnika broj f. Prilikom formiranja naredbe specificaraju se i vremenska baza (tx) i zadana vrednost (ns). Akumulirana vrednost (na) se automatski postavlja na 0.

RTO naredba razlikuje se od TON naredbe samo po tome što se akumulirana vrednost ne resetuje, već zadržava i onda kada uslov postane neistint (Sl. 3-16). Drugim rečima, ovaj časovnik počinje da radi kada uslov postane istinit, i nastavlja sa radom povećavajući akumuliranu vrednost sve dok je uslov istinit. Kada uslov postane neistinit, časovnik prekida rad, ali se akumulirana vrednost pri tome ne menja. To znači da će kada uslov ponovo postane istinit, časovnik nastaviti sa radom i prethodno izmerenom vremenu (ACC) dodavati nove vrednosti. Na taj

način ovaj časovnik omogućuje da se kumulativno mere intervali vremena u kojima je uslov bio istinit (Sl. 3-16).

Bitovi stanja časovnika menjaju se u toku programskog sken ciklusa na sledeći način:

• DN - Timer done bit se postavlja na 1 kada je ACC ≥ PRE (časovnik je izmerio zadano vreme). On se resetuje na 0 pomoću posebne RES naredbe.

• EN - Timer enable bit se

postavlja na 1 kada je uslov u rangu istinit (rad časovnika je omogućen) i resetuje na 0 kada uslov postane neistinit (rad časovnika je onemogućen).

• TT - Timer timing bit se postavlja na 1 kada je uslov istinit i ako je ACC ≤ PRE (časovnik radi). On se resetuje na 0 kada uslov postane neistinit ili kada se DN bit postavi na 1 (časovnik prestaje sa radom).

SL. 3-16 VREMENSKI DIJAGRAM IZVRŠAVANJA RTO NAREDBE

Page 53: PLC

Leder_uvod/47

• Reset naredba (RES) RES naredba je naredba akcije i koristi se

za resetovanje časovnika. Kada je uslov istinit ova naredba se izvršava tako što se u časovniku čija je adresa (ili simboličko ime) a navedena u RES naredbi, resetuju na nulu bitovi DN, TT i EN, kao i

akumulirana vrednost (ACC). S obzirom na način rada očigledno je da se RES naredbe ne sme koristiti za TOF tip časovnika.

3.3.4. NAČIN RADA ČASOVNIKA Sve dok časovnik radi u svakom sken ciklusu povećava se akumulirana vrednost.

Pri tome, iznos za koji će se povećati ACC vrednost zavisi od dužine trajanja sken ciklusa. Naime, kada se prilikom obrade ranga ustanovi da su se stekli uslovi da časovnik počne sa radom onda se istovremeno startuje jedan interni časovnik, koji se ažurira preko prekida (interapta) na svakih 0,01 sec. Broj registrovanih vremenskih intervala se smešta u interni 8-bitni registar (bitovi 0-7 u prvoj reči). Ukoliko je u pitanju časovnik čija je vremenska baza 0,01 sec, onda se u sledećem programskom skenu, kada se naiđe na dati rang, vrednost internog registra, koja zapravo predstavlja interval vremena koji je protekao između dva sukcesivna sken-a, dodaje akumuliranoj vrednosti. Nakon toga se interni registar resetuje na nulu i počinje ponovo da meri vreme do sledećeg skena. Budući da je maksimalna vrednost koju može da ima interni registar oko 2,5 sec (255x0,01), može se očekivati da će tajmer raditi ispravno samo ako sken ciklus ne traje duže od 2,5 sekundi. Ukoliko se tajmer koristi u programu čiji sken ciklus traje duže, onda je neophodno da se ista naredba za časovnik postavi na više mesta u programu čime će se obezbediti da se rangovi koji sadrže taj časovnik obrađuju sa učestanošću koja nije veća od 2,5 sekundi. (Svaki put kada se prođe kroz rang koji sadrži časovnik izvršiće se ažuriranje internog registra i povećati akumulirana vrednost).

Ukoliko časovnik radi sa vremenskom bazom od 1 sekunde obrada časovnika je donekle složenija. Ovde se, naime i dalje koristi interni časovnik koji se ažurira na svakih 0,01 sekundi, ali se pri tome u toku obrade ranga akumulirana vrednost ažurira samo ako je akumulirana vrednost veća ili jednaka od 1 sekunde. Pri tome se akumulurina vrednost uvećava za 1, dok se eventualni ostatak vremena pamti u internom brojaču i na njega se dodaju sledeći inkrimenti od po 0,01 sekunde. Postupak ažuriranja akumulirane vrednosti je takav da se može očekivati da će časovnik raditi ispravno ako sken ciklus ne traje duže od 1,5 sekundi (maksimalni mogući ostatak posle očitavanja je 0,99, što uvećano za 1,5 čini 2,5). Naravno, i ovde se problem ciklusa dužeg trajanja može prevazići stavljanjem naredbe časovnika na više mesta u programu.

Potrebno je da se naglasi da je pri korišćenju časovnika neophodno da se posebna pažnja posveti naredbama za skok. Naime, i ako je trajanje sken ciklusa u dozvoljenim granicama, može se desiti da se nekom od naredbi za skok u jednom ili viče suskcesivnih sken ciklusa preskoči rang koji sadrži časovnik. Jasno je da se u tom slučaju neće vršiti ažuriranje akumulirane vrednosti. To nadalje znači da je neophodno da se obezbedi da u slučaju bilo kakvog programskog skoka, naredba za časovnik ne bude isključena iz obrade u periodu koji je duži od maksimalno dozvoljenog vremena.

Tačnost časovnika (timer accuracy) je pojam koji se odnosi na dužinu vremenskog intervala koji protekne od trenutka kada se časovnik uključi do trenutka kada DN bit indicira da je merenje vremena završeno. Kao što je već istaknuto, za časovnike koji rade sa vremenskom bazom od 0,01 sekunde tačnost je u granicama od ±0,01 sec sve dok sken ciklus ne traje duže od 2,5 sekunde. Časovnici koji rade sa vremenskom bazom od 1 sekunde zadržavaju svoju tačnost ukoliko je programski sken kraći od 1, 5 sec.

Neophodno je da se istakne, međutim, da tačnost rada časovnika ne implicira da će i neki događaj koji je vezan sa časovnikom da bude aktiviran sa istom tačnošću. Aktiviranje događaja se ostvaruje ispitivanjem DN bita. U najvećem broju slučajeva ovaj uslov se ispituje jedanput u okviru sken ciklusa. To nadalje znači da je tačnost aktiviranja

Page 54: PLC

Leder_uvod/48

događaja određena trajanjem jednog sken ciklusa.

3.3.5. DATOTEKA PODATAKA O BROJAČU (COUNTER DATA FILE) Budući da je

brojač, isto kao i časovnik, realizovan softverski, parametri koji definišu njegov rad moraju biti smešteni u memoriji kontrolera. Za pamćenje podataka o brojačima koristi se datoteka podataka broj 5 (counter file – C). U ovoj datoteci može se definisati najviše 256 različitih brojača. Ukoliko je potrebno da se koristi veći broj brojača, korisnik može definisati i dodatne datoteke (korisnički definisane datoteke) čiji su brojevi od 9 do

255. Svakom

brojaču pridružuju se po jedan element u odgovarajućoj datoteci, koji se sastoji od tri 16-bitne reč (Sl. 3-17). Postoje dva osnovna tipa brojača brojač unapred (CTU – count up) i brojač unazad (CTD – count down) i oba koriste istu datoteku. Isto kao i kod časovnika i brojaču i pojedinim bitovima mogu se umesto adrese dodeliti simbolička imena.

3.3.6. NAREDBE ZA RAD SA BROJAČEM Naredbe za oba tipa brojača su naredbe akcije, što znači da se smeštaju u desni

deo ranga. Oba brojača broje promenu vrednosti uslova sa neistinit na isitinit (uzlazna ivica). Pri svim ostalim vrednostima uslova, oni zadržavaju prebrojani iznos i čekaju sledeći prelaz. Drugim

rečima, brojači se niti puštaju u rad, niti zaustavljaju. Oni

neprekidno rade i beleže (broje) svaki prelaz istinit/neistinit. Dostizanje zadane vrednosti se signalizira postavljanjem odgovarajućeg bita – done bit (DN) – na 1, ali se brojanje i dalje nastavlja. Prebrojani iznos se može izbrisati jedino posebnom RES naredbom.

Jedina razlika između brojača sastoji se u tome što prvi (CTU) broji unapred od 0 do 32767, i postavlja overflow bit (OV) na 1 kad pređe 32767, dok drugi (CTD) broji unazad, od 0 do –32767, i postavlja underflow bit (UN) kad pređe –32767. Potrebno je zapaziti da se u oba slučaja brojanje nastavlja (Sl. 3-18). Kada pređe 32767, brojač unapred dodavanjem još jednog bita dobija vrednost –32767 (u binarnoj aritmetici drugog

SL. 3-17 ELEMENAT DATOTEKE BROJAČA I ADRESIRANJE BROJAČA

SL. 3-18 KRUŽNI RAD BROJAČA

15 01234567891011121314

DNCDCU

zadana vrednost (PRE)

odbrojana vrednost (ACC)

Reč 0

Reč 2

Reč 1

Adresibilne reči

PRE - preset value (zadana vrednost)

ACC - accumulated value (odbrojana

vrednost)

C /w.e:f b

redni broj

datoteke

4 ili 10-255redni broj elementa

u datoteci

0 - 255

redni broj

reči

u elementu

0 - 2

redni broj

bita u reči

0 - 15

Adresibilni bitovi

CU = bit 15 - counter up enable (indikator

uslova kod brojanja unapred)

CD = bit 14 -counter down enable (indikator

uslova kod brojanja unazad)

DN = bit 13 – done (indikator ostvarenog

zadanog broja)

OV = bit 12 – overflow (brojač unapred prešao

32767)

UN = bit 11 – underflow (brojač unazad prešao

-32768)

UA = bit 10 – indikator ažuriranja brzog

hardverskog brojača (HSC)

OV UN UA

Page 55: PLC

Leder_uvod/49

komplementa, sa 16-bitnom reči 32767+1= –32768) i nastavlja da broji unapred od tog broja. Na isti način, kada brojač unazad dostigne vrednost od –32768, oduzimanjem sledećeg bita, brojač dobija vrednost 32767 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom reči –32768-1= 32767) i nastavlja da broji unazad od te vrednosti. To nadalje znači da korisnik sam mora da vodi računa o eventualnom prekoračenju opsega.

• Count up (CTU) Bitovi stanja brojača

menjaju se u toku programskog sken ciklusa na sledeći način:

• OV - Count up overflow bit se postavlja na 1 kada akumulirana vrednost (ACC) prelazi sa 32767

na –32768 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom reči 32767+1= –32768), i nastavlja brojanje unapredi.

• DN - Done bit se postavlja na 1 kada je ACC ≥ PRE;

• CU - Count up enable bit se postavlja na 1 kada je uslov istinit, a resetuje na 0 kada je uslov neistinit ili kada se aktivira odgovarajuća RES naredba.

• Count down (CTD) Bitovi stanja brojača

menjaju se u toku programskog sken ciklusa na sledeći način:

• UN- Count down underflow bit se postavlja na jedan kada akumulirana vrednost (ACC)

prelazi sa – 32768 na 32767 (u binarnoj aritmetici drugog komplementa, sa 16-bitnom reči –32768-1= 32767), i nastavlja da broji unazad od te vrednosti.

• DN - done bit se postavlja na 1 kada je ACC ≤ PRE;

• CD - Count down enable bit se postavlja na 1 kada je uslov istinit, a resetuje na 0 kada je uslov neistinit ili kada se aktivira odgovarajuća RES naredba.

• Reset naredba (RES) RES naredba je naredba akcije i koristi se za

resetovanje brojača. Kada je uslov istinit ova naredba se izvršava tako što se u brojaču čija je adresa (ili simboličko ime) navedeno u RES naredbi, postavljaju na nulu svi indikatorski bitovi, kao i

akumulirana vrednost (ACC).

3.3.7. PRIMERI KORIŠĆENJA ČASOVNIKA I BROJAČA PR. 3-4 EKSCENTAR PRESA

ZADATAK Data je jedna ekscentar presa koja se koristi za izradu zatvarača za flaše. Zatvarači se

proizvode tako što se komad metala stavi na postolje ispod bata prese koji se pomera u vertikalnoj ravni (dole – gore). Bat udara u metal kada dođe u krajnji donji položaj i deformiše ga, odnosno oblikuje na ženjeni način. Za bat prese pričvršćena je poluga čiji je gornji kraj vezan ekscentrično za osovinu prese. Položaj tačke vezivanja odabran je tako da obrtanje osovine prese uzrokuje linearno (vertikalno) pomeranje bata. Pri tome, za vreme za koje osovina prese napravi pun obrt, bat prese pređe put od gornjeg krajnjeg do donjeg krajnjeg položaja i nazad. Obrtanje osovine prese ostvaruje se preko motora čija je osovina vezana sa osovinom prese preko frikcione spojnice. Uprošćeni model opisane prese prikazan je na slici Sl. 3-19.

Page 56: PLC

Leder_uvod/50

Na presi radi radnik koji postavlja komad metala ispod bata, zatim aktivira presu, sačeka da ona završi jedan krug, izvadi zatvarač i stavlja novi komad metala.

Potrebno je napraviti sistem koji će pomoću PLC-a upravljati radom prese. Sistem treba da je projektovan tako da obezbedi maksimalnu zaštitu radnika u toku rada.

REŠENJE Polazeći od funkcionalnog

opisa uređaja očigledno je da bi presom trebalo da se upravlja tako što će poslužilac prese na neki način

dati znak za pokretanje bata prese. Tada će frikciona spojnica

spojiti osovinu prese na motor i on će pokrenuti bat. Kada bat napravi jedan puni radni ciklus (gore→dole→gore), spojnica rastavlja motor od prese i presa se zaustavlja.

Iz navedenog opisa željenog rada prese izvesno je da mora da postoji jedan prekidač kojim se motor pušta u rad. Pri tome, postoje dve mogućnosti. Ili da se sa svakom aktivacijom prese motor pokreće i zaustavlja ili da se jedanput pokrenut motor stalno vrti, dok se radom same prese upravlja isključivo preko spojnice. Imajući u vidu da je proces proizvodnje zatvarača serijski proces, ovo drugo rešenje je povoljnije. Budući da je brzina motora konstantna za upravljanje je dovoljan jedan digitalni signal koji ćemo vezati za nulti pin izlaznog dela digitalnog U/I modula u prvom slotu. Simboličko ime ovog signala je "motor_on". Ovaj motor pokretaće se pritiskom na jedan poseban taster "start" i zaustavljati pritiskom na taster "stop". Signale sa ova dva tastera dovodićemo na ulazni deo digitalnog U/I modula i to na pinove 0 i 1.

Radom spojnice upravlja se preko jednog elektromagneta koji, kada ima priključeno napajanje, aktivira frikcionu spojnicu, čime se obrtni momenat motora prenese na osovinu ekscentar-prese. Elektromagnet se napaja jednosmernim naponom od 24V. Otuda nam je neophodan još jedan digitalni izlazni signal. Neka je on vezan za pin 1 izlaznog dela digitalnog U/I modula u prvom slotu i neka je njegovo simboličko ime "spoj_on".

Da bi presom moglo da se upravlja neophodno je da se raspolaže sa informacijom o položaju bata. Ovaj problem ćemo rešiti postavljanjem jednog graničnog prekidača na samu presu i to tako da je on zatvoren kada je presa u gornjem graničnom položaju. Digitalnom signalu sa ovog prekidača daćemo simboličko ime "swggr_on" i dovešćemo ga na drugi pin ulaznog dela U/I modula u prvom slotu.

Preostaje još da rešimo način na koji rukovaoc presom pušta presu u rad. Izvesno je da bi se to moglo rešiti postavljanjem jednog tastera koji se pritisne svaki put kad presa treba da napravi jedan hod. Međutim, ovo rešenje bi moglo ozbiljno da ugrozi bezbednost radnika. Naime, njegov radni proces sastojao bi se u tome što on uzme komad metala, stavi ga ispod prese, pritisne taster, sačeka da presa izvrši jedan puni radni ciklus, izvadi formirani zatvarač i stavi novi komad metala. U želji da se taj proces odvija što brže, rukovaoc presom bi mogao da odluči da jednom rukom pritiska taster, a drugom postavlja materijal ispod prese. Jasno je da bi bio dovoljan samo jedan trenutak nepažnje pa da on ozbiljno povredi ruku. To nadalje znači da je neophodno da se osmisli takav način puštanja prese u rad da je potpuno izvesno da se u tom trenutku nijedna njegova ruka ne nalazi ispod bata. Ovako formulisan zahtev prirodno nameće ideju da se presa pušta u rad pomoću dva prostorno udaljena tastera koji se mogu istovremeno pritisnuti samo sa obe ruke. Postavićemo zato uz presu dva tastera za desnu i levu ruku i signale sa njih dovešćemo na treći i četvrti pin ulaznog dela digitalnog U/I modula u prvom slotu. ("taster_lr_on" i "taster_dr_on").

Budući da je osmišljena potrebna oprema (senzori i izvršni organi) može se pristupiti formiranju samog algoritma upravljanja i pisanju LADDER programa. U tom cilju neophodno je da se reše dva problema. Prvi, jednostavniji, odnosi se na detekciju trenutka kada je presa završila puni ciklus. Jasno je da će, kada je poluga bata u gornjem graničnom položaju, granični prekidač biti pritisnut. Problem je međutim u tome što on to stanje ima i na početku pre bilo kakvog pomeranja bata i na kraju svakog punog ciklusa. Otuda, samo stanje graničnog prekidača ne govori o tome da li je pokret izvršen ili ne. Da bi se ovaj problem prevazišao, uvodi se jedna interna bit promenljiva (u programu označena kao hod) koja se postavlja dok se bat pomera. Na taj način,

SL. 3-19 ŠEMATSKI PRIKAZ EKSCENTAR PRESE

Osovina

motora

Glavna

osovina

motora

Frikciona

spojnica Poluga bata

Ekscentrična

čaura

Bat prese Hod bata

Page 57: PLC

Leder_uvod/51

kada se ustanovi da je granični prekidač zatvoren, potrebno je proveriti da li je istovremeno i interni bit (hod) i tek ta dva uslova zajedno ukazuju da je presa završila jedan puni ciklus.

Drugi problem vezan je za ostvarivanje pune zaštite rukovaoca presom. Praksa pokazuje da postavljanjem dva tastera problem i dalje nije rešen. Naime, može se desiti da rukovaoc, zanemarujući sopstvenu bezbednost, odluči da mu je lakše i brže da radi tako što će jedan od dva tastera zaglaviti tako da stalno bude pritisnut, pa će onda jednom rukom pritiskati drugi taster, a drugom menjati materijal. Naš je zadatak, da algoritam osmislimo tako da nateramo rukovaoca presom da sa obe ruke istovremeno pritiska tastere. Jedan od načina da se postavljeni problem

SL. 3-20 LEDER PROGRAM SA TRAJNIM PAMĆENJEM BITA ZA UPRAVLJANJE EKSCENTAR PRESOM

Page 58: PLC

Leder_uvod/52

reši je da se uslov za aktiviranje spojnice postavi tako da se ona ne sme aktivirati ako je jedan od tastera stalno pritisnut, odnosno ako između pritiskanja jednog i drugog tastera prođe više od nekog vremenskog intervala. Recimo da je to 500ms.

Dve varijante LADDER programa kojima se realizuje navedeni algoritam prikazane su na Sl. 3-20 i Sl. 3-21.

Posmatrajmo kao prvo program koji koristi naredbe za trajno pamćenje bitova (Sl. 3-20). U toku programskog sken ciklusa obrađuje se rang po rang. Sve dok se ne pritisne "start" taster uslov u rangu 0 neće biti istinit pa motor neće dobiti pobudu. Otuda je potpuno nebitno šta će se dešavati

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

Page 59: PLC

Leder_uvod/53

u sledećim rangovima jer presa neće raditi. Rang 1 će biti istinit tek kada se pritisne "stop" taster i tada će motor izgubiti pobudu. U međuvremenu rad prese biće diktiran ostalim rangovima programa.

Kada se pritisne taster leve ili desne ruke (ili oba) časovnik će početi da meri vreme. Pri tome, budući da se taster nakon pritiska može i otpustiti, informacija o tome da je on bio pritisnut pamti se trajno u jednom internom bitu, koji se onda u sledećem rangu (broj 3) koristi kao uslov za pokretanje časovnika. Ovde je potrebno zapaziti da bi časovnik neprekidno radio kada bi jedan od tastera bio zaglavljen u pritisnutom položaju, to znači da bi on stalno pokazivao vreme koje je veće od 500ms.

Sledeći rang (broj 4) služi za aktiviranje spojnice. Uslov da bi se spojnica aktivirila je da su oba tastera prititsnuta, da od trenutka pritiska prvog od njih nije proteklo više od 500ms, i da se presa nalazi u gornjem graničnom položaju. Ukoliko je spojnica aktivirana, dolazi do pokreta što znači da se otvara gornji granični prekidač. Kada su ova dva uslova istovremeno istinita, u rangu broj 5 će se postaviti indikator pokreta bata . Konačno, ako je došlo do pokreta i pri tome je gornji granični prekidač zatvoren (hod), u rangu broj 6 se resetuje pobuda spojnice i svi upamćeni bitovi, čime se omogućava izvršavanje sledećeg ciklusa rada prese. (Podsetimo se da za svaku OTL naredbu u programu mora da se stavi i OTU naredba koja će pod datim uslovima resetovati trajno postavljen bit).

Program sa samodržanjem prati istu osnovnu logiku (Sl. 3-21). Razlika je jedino u tome što se ovde u svakom rangu u kome se postavljaju bitovi, pomoću paralelne grane obezbeđuje da uslov bude istinit i kada neki od tastera ili prekidača promeni stanje. Pri tome, da bi se obezbedilo da se ovi bitovi resetuju kada se završi jedan ciklus rada prese uvodi se interna promenljiva "kraj" koja se postavlja na 1 kada se ciklus prese završi. Posle toga, u sledećem programskom sken ciklusu uslovi u svim rangovima biće neistiniti (jer se u njima ispituje promenljiva "kraj").

PR. 3-5 REGULACIJA PROTOKA VAZDUHA

ZADATAK Posmatra se neki ventil čijim radom se upravlja pomoću jednosmernog solenoida (A). Pri

tome, kada se aktvira ventil, pritisak vazduha dostiže željeni nivo u roku od 5 sekundi. Nakon toga, ventilom se može upravljati (pomeranjem klipa solenoida) i to u vremenu od 10 sekundi. Posle isteka 10 sekundi, opruga solenoida vraća klip u početni položaj i zatvara ventil.

REŠENJE Dva moguća rešenja postavljenog problema, od kojih jedno koristi izlaznu naredbu sa

trajnim postavljanjem bita, a drugo postupak samodržanja, prikazana su na Sl. 3-22 i Sl. 3-23. Pretpostavljeno je da se signal sa prekidača za otpočinjanje programa vodi na nulti pin digitalnog ulaza (simboličko ime START_ON), a da se signal na priključak A+ solenoida vodi preko nultog pina digitalnog izlaza (simboličko ime MOVE_APLUS).

Pri analizi programa potrebno je imati na umu da se u svakom sken ciklusu ispituje redom rang po rang. Pri tome, akcija će se izvršiti samo u onim rangovima u kojima je uslov istinit. Tako će na primer, u prvom prolazu biti aktivan samo rang 0 i on će ostati jedini aktivan u svim sledećim sken ciklusima, sve dok ne istekne 5 sekundi.

U sken ciklusu u kome se dostiže 5 sekundi, časovnik PRITISAK će postaviti DN bit, tako da će uslov u rangu 1 biti istinit, pa će on postati aktivan i postaviti MOVE_APLUS na 1. Budući da se ta promenljiva ispituje u rangu 2 i on će postati aktivan u istom sken ciklusu pa će pokrenuti časovnik CONTROL. Uslov u rangu 3 (verzija sa trajnim postavljanjem bita Sl. 3-22) će i dalje biti neistinit, pa se taj rang neće aktivirati.

U narednim sken ciklusima, sve dok ne prođe 10 sekundi biće istinit samo uslov u rangu 2. Konačno, kada časovnik CONTROL izmeri 10 sekundi, on će postaviti svoj DN bit na 1. Odmah zatim, u sledećem rangu u programu sa trajnim postavljanjem bita (Sl. 3-22), bit MOVE_APLUS će biti resetovan i ventil će se zatvoriti. Kod programa sa samodržanjem (Sl. 3-23) to će se desiti tek u sledećem sken ciklusu, kada uslov u paralelnoj grani ranga 2 postane neistinit.

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

Page 60: PLC

Leder_uvod/54

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

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

Page 61: PLC

Leder_uvod/55

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

ZADATAK Pretpostavlja se da postoji neki hidraulicni mehanizam za čiji rad je neophodno da se ulje

zagreje do određene temperature. Pri tome se postizanje zadane temperature detektuje pomoću jednog termo-prekidača koji daje binarni signal kada temperatura postigne željenu vrednost. Za vreme procesa zagrevanja ulja neophodno je da se signalna lampa pali i gasi, čime se indicira da se ulje zagreva. Kada ulje dostigne željenu temperaturu, signalna lampa počinje stalno da svetli.

Sistem se pušta u rad pritiskom na jedan dvopoložajni prekidač.

REŠENJE Pretpostavimo da je prekidač za puštanje sistema u rad vezan za nulti pin ulaznog modula,

tako da ima adresu I:1/0 i neka je njegovo simboličko ime START_ON. Indikator temperature je vezan za prvi pin, tako da je adresa signala I:1/1, i pridruženo simboličko ime KRAJ_GREJANJA. Signalan sijalica je vezana za pin 0 izlaznog modula (adresa O:2/0) i dodeljeno joj je simbolično ime LAMPA_ON.

Jedno moguće rešenje postavljenog zadatka prikazano je na slici Sl. 3-24. Paljenje i gašenje signalne lampe ostvaruje se korišćenjem dva časovnika od kojih je jedan TON tipa (simboličko ime PALI), a drugi TOF tipa (simboličko ime GASI) i koji su vezani tako da, za svo vreme za koje traje grejanje ulja, rade u protiv fazi.

Pre prvog prolaza kroz program nijedan od časovnika ne radi, tako da su njihovi odgovarajući DN bitovi postavljeni na 0 (PALI/DN) odnosno 1 (GASI/DN). U skladu sa time uslov ranga 0 će biti neistinit (PALI/EN=0), te časovnik PALI neće raditi. Uslov ranga 1 će zbog toga biti neistinit i pokrenuće časovnik GASI. Uslov u rangu 2 je neistinit i sijalica ne svetli. Ovakvo stanje trajaće dok časovnik GASI ne izmeri zadano vreme (ovde je usvojeno da to bude 1 sec). Kada protekne 1 sekunda, časovnik GASI je završio rad i njegov DN bit postaje 0. U sledećem sken ciklusu, uslov u rangu 0 će biti istinit (PALI/EN=1) i aktiviraće se časovnik PALI.

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

Page 62: PLC

Leder_uvod/56

Uslov za rad časovnika GASI je i dalje neistinit, što znači da bi on mogao da radi. Međutim, kako je on izmerio zadano vreme i kako njegov DN bit nije resetovan (resetuje ga promena uslova na istinit), to on neće raditi (GASI/TT=0). Uslov u rangu 2 je istinit, te sijalica svetli. Ovakva situacija ostaće i u svim sledećim sken ciklusima sve dok ne prođe 1 sekunda, kada će da se postavi PALI/DN bit na 1. Uslov u rangu 1 postaje istinit što dovodi do resetovanja GASI/DN bita (postavlja se na 1). Sijalica i dalje svetli. U sledećem sken ciklusu uslov u rangu 0 postaje neistinit

(resetuju se bitovi časovnika PALI). Zbog toga se u rangu 1 aktivira časovnik GASI (GASI/TT=1). Sijalica se gasi u rangu 3 i ceo ciklus se ponavlja.

Potrebno je zapaziti da se svaki od časovnika aktivira pomoću DN bita drugog časovnika. To je ujedno i razlog, zašto časovnici ne mogu biti istog tipa (oba TON ili oba TOF). Naime, u tom slučaju ne bi bilo moguće da se otpočne sa radom, jer bi na početku oba

DN bita imala istu vrednost (0 ili 1). Vremenski dijagram

promene odgovarajućih bitova dat je na Sl. 3-25. Sve dok se ne dostigne željena temperatura, bit označen kao KRAJ_GREJANJA ima vrednost 0, što znači da sijalica svetli samo za ono vreme za koje radi časovnik PALI, odnosno za koje je njegov EN bit postavljen na 1. Kada se dostigne zadana temperatura sijalica će stalno svetleti zahvaljujući samodržanju u rangu 2.

PR. 3-7 MAŠINA ZA PAKOVANJE

ZADATAK Posmatra se jedna mašina koja pakuje konzerve u kutiju i to tako da u kutiji ima tri reda

konzervi, pri čemu u svakom redu ima po 5 konzervi. Mašina radi tako što se pomoću jednog klipa (A) konzerve koje dolaze preko pokretne trake guraju, jedna po jedna, na pomoćno postolje. Kada se na postolje smesti 5 konzervi, onda se one, sve zajedno, pomoću drugog klipa (B) gurnu u kutiju. U skladu sa time, za pakovanje jedne kutije potrebno je da se ostvari sledeća sekvenca pomeranja klipova:

[ (A+ A-)x5 B+ B-]x3

REŠENJE Dva moguća rešenja (sa i bez lečovanja) data su na Sl. 3-26 i Error! Reference source

not found. . U prvom rešenju (Sl. 3-26) je pretpostavljeno da su i klip A koji pomera konzerve i klip B

koji pomera ceo red konzervi dvosmerni solenoidi, što znači da se mora upravljati pokretima u oba smera. Pri tome se signali za napajanje vode preko digitalnih izlaza u prvom slotu, pinovi od 0 do 4 redom za A-, A+, B- i B+. Senzori položaja oba klipa su normalno otvoreni prekidači čiji signali se dovode na digitalni ulaz u prvom slotu i to na pinove od 1 do 4 redom za a-, a+, b- i b+. Taster za otpočinjanje rada vezan je za pin 0. Budući da se početak rada zadaje tasterom, neophodno je da se koristi interna promenljiva koja će pamtiti da je taster u nekom trenutku bio pritisnut. U programu je ta promenljiva označena sa "nije kraj" i ona zapravo utiče na istinitost uslova ranga broj 1 kojim se započinje ceo ciklus pokretanja klipova.

Za brojanje konzervi koristi se programski brojač na adresi C5:1 ("Brojac_5"), dok se za brojanje redova konzervi koristi programski brojač C5:0 ("Brojac_3").

Sam program je veoma jednostavan i njegova logika se može pratiti uz pomoć komentara koji su dati uz svaki rang. Napomenimo, da je dobra programerska praksa da se program opiše detaljnim komentarima. Ovo ne samo da olakšava traženje grešaka pri testiranju programa, već je od neobične koristi i kasnije kada dođe do eventualnih modifikacija programa. Program je realizovan pomoću tehnike samodržanja. Samo se po sebi razume da se zadatak može rešiti i pomoću naredbi za trajno postavljanje bitova.

SL. 3-25. VREMENSKI DIJAGRAM PROMENE INDIKATORSKIH BITOVA ČASOVNIKA

GASI_DN

GASI_TT

GASI_EN

PALI_DN

PALI_TT

PALI_EN

1

2

5

6

8

7

2

3

4

1 sec

1 sec

9

10

11

12

13

1 sec

14

15

svetli svetli

1 sec

sken

ciklus

Page 63: PLC

Leder_uvod/57

Page 64: PLC

Leder_uvod/58

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

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

SL. 3-26 LEDER PROGRAM ZA UPRAVLJANJE MAŠINOM ZA PAKOVANJE KOJA IMA DVA SOLENOIDA SA PO DVA KRAJA

Page 65: PLC

Leder_uvod/59

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

Page 66: PLC
Page 67: PLC

Plc_math/61

4. LEDER NAREDBE ZA OPERACIJE NAD PODACIMA

4.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 celobrojne 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 dozvoljeno da oba operanda budu programske konstante. Samo se po sebi razume da se programska konstanta ne može koristiti kao rezultat.

• operacije Operacija koja treba da se izvrši nad operandima definiše se u okviru naredbe.

Najveći broj ovih naredbi pojavljuju 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, proveravaju 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 njihovog izvođenja istinosna vrednost naredbe.

4.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. 4-1. U

Page 68: PLC

Plc_math/62

tabeli T. 4-1 dat je pregled svih naredbi za poređenje iz ove grupe. Potrebno je da se istakne da je prvi operand je uvek promenljiva, dok drugi operand može biti ili promenljiva

ili programska

konstanta.

Kod naredbe

Ime naredbe relacija

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

Pored navedenih naredbe među naredbama za poređenje postoje i sledeće dve naredbe.

• MEQ - masked comparison for equal (ispitivanje jednakosti 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.

• LIM – 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.

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

T. 4-1 GRUPA NAREDBI ZA POREĐENJE

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

Page 69: PLC

Plc_math/63

Međutim, ukoliko je test adresa promenljive, onda granice mogu biti bilo adrese promenljivih bilo konstante.

4.3. MATEMATIČKE NAREDBE

4.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 – Carry 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 – Zero bit (Z) Ovaj bit se postavlja na vrednost 1 ako je rezultat zahtevane operacije jednak nuli, u protivnom Z bit ima vrednost 0.

• S:0/3 – Sign bit (S) Ovaj bit se postavlja na vrednost 1 ako je rezultat matematičke operacije negativan, (odnosno ako bit 15 rezultata ima vrednost 1), u protivnom vrednost bita S je nula.

SL. 4-3 NAREDBA ZA PROVERU GRANICA

Page 70: PLC

Plc_math/64

• S:5/0 – Overf low trap bit Ovaj bit se postavlja na 1 onda kada je overflow bit V bit postavljen na 1. Pri tome, ako se vrednost bita S:5/0 ne resetuje na nulu, pre 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 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 navedena kao promenljiva u kojoj se čuva rezultat Sl. 4-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, dok se ostatak pamti u reči S:13 (Sl.

4-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

SL. 4-4 REALIZACIJA OPERACIJE MNOŽENJA

SL. 4-5 REALIZACIJA OPERACIJE DELJENJA

Page 71: PLC

Plc_math/65

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

4.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. 4-6, dok

je u tabeli T. 4-2 dat prikaz svih naredbi iz ove grupe.

Kod Ime naredbe Operacija Postavlja indikatorske bitove

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

DIV Divide (deljenje) d = a/b uvek 0 1 za d izvan opsega, i deljenje sa 0

1 za d=0 1 za d<0

XPY X to the power of Y d = xy uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0

AND And (logičko “i”) d = a∧b bit po bit

uvek 0 uvek 0 1 za d=0 1 za d<0

OR Or (logičko “ili”) d = a∨b bit po bit

uvek 0 uvek 0 1 za d=0 1 za d<0

XOR Exclusive OR (ekskluzivno “ili”)

d = a∨b bit po bit

uvek 0 uvek 0 1 za d=0 1 za d<0

Primedba: U naredbi XPY ukoliko eksponent (y) nije ceo broj, vrednost izraza se računa prema relaciji d=2(ylog

2x). 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. 4-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.

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

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

Page 72: PLC

Plc_math/66

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. 4-7). Pri tome da bi se sprečilo da se rezultat postavi na graničnu vrednost treba 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 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. 4-8). Leder program za sabiranje sa dvostrukom tačnošću dat je na Sl. 4-9.

1 0

1

10

1000 0 0 1

ADD

-7

3

-400110 0 0 1C=0

1 1 1 1

28

1SUB

00110 0 0 0

16

12rezultat

19

(9)

8. bitni 4. bitni

SL. 4-7 ALGORITAM SABIRANJA

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

Page 73: PLC

Plc_math/67

UNARNE OPERACIJE

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

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

Page 74: PLC

Plc_math/68

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. 4-10). Pregled svih naredbi dat je u tabeli T. 4-3.

Kod Ime naredbe Operacija Postavlja indikatorske bitove

C – bit V – bit (ako je

S:2/14=0) Z – bit S – bit

NEG Negate (negacija) d = -a 0 za d=0 ili V=1

1 za d izvan opsega (samo ako je a=-32768)

1 za d=0 1 za d<0

NOT Not (komplement) d = a bit po bit

uvek 0 uvek 0 1 za d=0 1 za d<0

DDV

Double divide (deljenje 32-bitnog celog broja iz mat. reg. sa 16-bitnim operandom)

d = reg/a (rezultat zaokružen)

uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0

SQR Square Root (kvadratni koren) ad = uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0

ABS Absolute (apsolutna vrednost)

d =|a| uvek 0 1 samo za =-32768 1 za d=0 uvek 0

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

LN Natural log (prirodni logaritam) d = ln(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0

LOG Log to the base 10 (dekadni logaritam)

d = log(a) uvek 0 1 za d izvan opsega 1 za d=0 1 za d<0

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

T. 4-3 - PREGLED NAREDBI ZA UNARNE OPERACIJE

Page 75: PLC

Plc_math/69

vrednosti.

• SCP – Scale with parameters (parametarsko skaliranje podatka)

Ovom naredbom se ostvaruje linearno preslikavanje ulazne promenljive, prema relaciji

( ) .scaled_mininput_min.-inputinput_min.-input_max.

.scaled_min-.scaled_max putscaled_out +×=

Potrebno je da se istakne da se u ovoj naredbi pojmovi “najmanja i najveća vrednost ulaza i rezultata” zapravo koriste samo za određivanje dve tačke kroz koje se provlači prava linija koja određuje preslikavanje (Sl. 4-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 bitovi:

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:

OffsetSource10000Rate

Dest +×=

Prilikom izvođenja naredbe, odnosno izračunavanja izraza postavljaju se sledeći bitovi:

C – bit je rezervisan za potrebe operativnog sistema

SL. 4-11 GRAFIČKA ILUSTRACIJA SKALIRANJA (SCP)

SL. 4-12 GRAFIČKA ILUSTRACIJA SKALIRANJA (SCL)

( ) 1112

12 yx-xx-x

y-y y +=

skalira

na v

rednost

bx10000

a y +=

rezultat

b

Page 76: PLC

Plc_math/70

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 rezultata negativan.

• 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

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 odgovarajuć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

as

ab ytt

)yy(y +×−=

>>+

−×−×−

≤≤+

××−

=

ssa

2

s

sab

sa

2

sab

tt2/tyt

tt21)yy(

2/tt0ytt

2)yy(

y

a

2

sab y

tt

)yy(y +

×−= a

2

s

sab y

t

tt1)yy(y +

−−×−=

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

Page 77: PLC

Plc_math/71

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 signala se specificiraju u upravljačkom bloku

koji je celobrojna datoteka (tip N) dužine sedam elemenata kao što je to prikazano na Sl. 4-14.

Ova naredba je izuzetno pogodna za generisanje upravljačkog signala kod ručnog vođenja procesa.

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

• MOV – Move (postavljanje vrednosti promenljive)

SL. 4-14 ZNAČENJE POJEDINIH REČI I BITOVA U UPRAVLJAČKOM BLOKU

Page 78: PLC

Plc_math/72

• 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 MVM) bitovi C i V se postavljaju na 0. Bitovi Z i S se

postavljaju na 1 ukoliko je rezultat nula odnosno negativan.

PR. 4-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. 4-16).

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. 4-17.

SL. 4-15 IZVRŠAVANJE MASKIRANE MOVE NAREDBE

SL. 4-16 GENERISANJE TESTERASTOG SIGNALA

Page 79: PLC

Plc_math/73

4.5. NAREDBE ZA KONVERZIJU

Kod Ime naredbe Operacija Postavlja indikatorske bitove

C – bit V – bit Z – bit S – bit

DEG Radians to degrees (radiani u stepene)

d = (180/π) a (pretvara radiane u stepene)

uvek 0 1 za prekoračenje opsega

1 za d=0

1 za d<0

RAD Degrees to radians (stepenei u radiane)

d = (π/180) a (pretvara stepene u radiane)

uvek 0 1 za prekoračenje opsega

1 za d=0

1 za d<0

TOD To BCD (u BCD kod)

pretvara 16-bitni ceo broj u 4-oro cifreni BCD broj

uvek 0 1 za d > 9999 1 za d=0

1 za d<0

FRD A.1.1. From BCD (iz BCD koda)

pretvara 4-oro cifreni BCD broj u 16-bitni ceo broj

uvek 0 1 ako a nije BCD ili je d > 32767

1 za d=0

uvek 0

DCD Decode 4 to 1 of 16 (dekodiranje 4 – 16)

dekodira prva 4 bita operanda u ceo broj čiji samo 1 bit ima vrednost 1

ne menja bitove

ENC Encode 1 of 16 to 4 (kodiranje 16 – 4)

kodira operand (ceo broj) čiji samo 1 bit ima vrednost 1 u poslednja 4 bita rezultata

uvek 0

1 ako operand nije ispravan (ne postavlja S:5/0)

1 za d=0

uvek 0

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. 4-18). Pregled svih naredbi iz ove grupe dat je u tabeli T. 4-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. 4-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, konvertovaće se njegova apsolutna vrednost.

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

SL. 4-18 OPŠTI OBLIK NAREDBI ZA KONVERZIJU

T. 4-4 PREGLED NAREDBI ZA KONVERZIJU PODATAKA

Page 80: PLC

Plc_math/74

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 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. 4-3 KONVERZIJA IZ BCD KODA

Korišćenje FRD naredbe pretpostavlja da svaki bajt operanda predstavlja 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 predstavlja 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.

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

SL. 4-19 ILUSTRACIJA BCD KODA

SL. 4-20 KONVERZIJA IZ BCD KODA

Page 81: PLC

Plc_math/75

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

PR. 4-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. 4-21).

U posmatranom primeru pretpostavljeno je da je početni 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.

• Dekodiranje 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. 4-22). U ovoj naredbi koriste se samo prva četiri bita promenljive source, što znači da se preostali bitovi mogu koristiti u bilo koje druge svrhe.

SL. 4-21 FORMIRANJE BCD IZLAZNIH SIGNALA

Page 82: PLC

Plc_math/76

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

4.6. NAREDBA ZA PREMEŠTANJE BAJTOVA

• SWP – 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 (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 pretpostavi 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

4.7. PRIMERI KORIŠĆENJA NAREDBI ZA MATEMATI ČKE OPERACIJE PR. 4-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

SL. 4-22 ILUSTRACIJA DCD I ENC NAREDBE

SL. 4-23 ILUSTRACIJA SWAP NAREDBE NA DUŽINI OD JEDNE REČI

Page 83: PLC

REŠENJE Na Sl. 4-25 i Sl. 4-26

koristi elementarne naredbe za poređ č

prvom rešenju korišćena su dva moguć č

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 obu tome što indikatorski bitovi imaju suprotna znač č č

koriste u ostalim rangovima. U drugom rešenju koristi se LIM naredba za proveru granica.

SL. 4-24 GRAFIČKA ILUSTRACIJA POTREBNIH IZRAČUNAVANJA

22 yx ++++====ρρρρ

====ααααxy

arctg

simbolička imena x i y. Ukoliko su obe koordinate u opsegu od 700m do 1400m na osnovu njih se izrač

rastojanje do objekta ( 2 yx +=ρradijus zaklapa sa apscisnom osom (4-24).

Dobijeni podaci se smeštaju u memoriju PLCna adrese F8:2 i F8:3, čija su simboličUkoliko je bilo koja od koordinata izvan opsega pali se kontrolna sijalica, koja je vezana u električnultog pina izlaznog dela digitalnog U/I modula u slotu 1 (adresa O:1/0, simboličko ime sijalica

Potrebno je formirati program za PLC koji ćrealizovati zahtevanu operaciju.

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 s

ćena su dva moguća načina ispitivanja da li su koordinate 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čkoriste u ostalim rangovima. U drugom rešenju koristi se LIM naredba za proveru granica.

ILUSTRACIJA

Plc_math/77

. Ukoliko su obe koordinate u opsegu od 700m do 1400m na osnovu njih se izračunava

2y ), kao i ugao koji

radijus zaklapa sa apscisnom osom ( )x/y(arctg=α (Sl.

Dobijeni podaci se smeštaju u memoriju PLC-a č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 modula u slotu 1

sijalica). Potrebno je formirati program za PLC koji će

ća rešenja ovog problema, od kojih prvo đ čke naredbe, a drugo složenije naredbe. U

ć ć čina ispitivanja da li su koordinate y datim granicama. se proverava da li je izvan opsega, dok se za koordinatu y proverava da li je unutar

čina provere potpuno ekvivalentna. Jedina je razlika č č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.

Page 84: PLC

Plc_math/78

SL. 4-25 LEDER PROGRAM ZA IZRAČUNAVANJE RASTOJANJA I UGLA KOJI KORISTI ELEMENTARNE NAREDBE

Page 85: PLC

Plc_math/79

PR. 4-6 TRANSFORMACIJE 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.

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

Page 86: PLC

Plc_math/80

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. 4-27) koje 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

max minmin min

max min

e ee (v v ) e

v v

−= − +

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

max minmin min

max min

c cc (e u ) c

u u

−= − +

−,

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 1e f (v) v f (e)−= ⇒ = , pri čemu se veličina e dobija inverznom transformacijom iz celobrojne veličine c

max minmin min

max min

u ue (c c ) u

c c

−= − +

Ukoliko je funkcija f linearna tada se fizička veličina određuje prema relaciji

max minmin min

max min

v vv (e e ) v

e e

−= − +

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

max minmin min

max min

v vv (c c ) v

c c

−= − +

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

SL. 4-27 TRANSFORMACIJE ANALOGNIH ULAZNIH SIGNALA

Page 87: PLC

Plc_math/81

emax = 20mA. Ako se pogledaju 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

. x x

y y

1700 250x (c 3277) 250 0,11c 112,53

16384 32771700 250

y (c 3277) 250 0,11c 112,5316384 3277

−= − + = −−−= − + = −−

gde cx i cy predstavljaju 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.

Obe relacije se mogu realizovati bilo matematičkim naredbama bilo korišćenjem posebne naredbi za skaliranje. U programu (Sl. 4-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.

SL. 4-28 LEDER PROGRAM KOJIM SE TRANSFORMIŠU ANALOGNI SIGNALI U FIZIČKE VELIČINE

Page 88: PLC

Plc_math/82

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

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 predstavlja

upravljački signal u nekom sistemu. Ova veličina je, po pravilu, linearno srazmerna nekom električnom (strujnom ili naponskom) signalu koji predstavlja 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

max minmin min

max min

e ee (v v ) e

v v

−= − +

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

max minmin min

min

e ee (v(%) v (%)) e

100 v (%)

−= − +

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

SL. 4-29 TRANSFORMACIJE ANALOGNIH IZLAZNIH SIGNALA

Page 89: PLC

Plc_math/83

max minmin min

max min

c cc (e u ) c

u u

−= − +

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

max minmin min

max min

c cc (v v ) c

v v

−= − +

−,

odnosno

max minmin min

min

c cc (v(%) v (%)) c

100 v (%)

−= − +

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 izlaznih signala, očigledno je

da je kao prvo potrebno da se odrede granice fizičkih veličina na osnovu kojih se generišu analogni 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

2 2 yx y ; arctg

x ρ = + α =

vidi se da su minimalna i maksimalna vrednost rastojanja i ugla 2 2 2 2

min min min max max max

maxminmin max

max min

(m) x y , (m) x y

xx(rad) arctg , (rad) arctg

y y

ρ = + ρ = +

α = α =

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

minmax min

8 2e ( ) 2ρ

−= ρ − ρ +ρ − ρ

S obzirom na prirodu izvršnog organa, veličinu ugla α(rad) treba prvo pretvoriti u procenat od maksimalne vrednosti ugla

pmax

(%) 100αα =

α

Električni signal koji odgovara vrednosti ugla dobija se prema relaciji

p p minpmin

8 2e ( (%) (%)) 2

100 (%)α−= α − α +

− α

Ove veličine nadalje treba transformisati u 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 0c (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. 4-30 je dat pregled simboličkih imena i adresa internih promenljivih koje se koriste u leder programu (Sl. 4-31).

SL. 4-30 ADRESE I SIMBOLIČKA IMENA INTERNIH PROMENLJIVIH

Page 90: PLC

Plc_math/84

Page 91: PLC

Plc_math/85

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

Page 92: PLC

Plc_math/86

Page 93: PLC

Plc_nizovi/87

5. NAREDBE ZA RAD SA DATOTEKAMA PODATAKA

5.1. OPŠTE NAPOMENE Naredbe za rad sa datotekama namenjene 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 različ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.

Page 94: PLC

Plc_nizovi/88

5.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 tipa 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 izvorne 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.

5.3. NAREDBE ZA TRANSLACIJU BITOVA

• BSL – Bit shift left (translacija bitova u levo)

• BSR – Bit shift right (translacija bitova u desno)

Page 95: PLC

Plc_nizovi/89

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. 5-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 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 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. 5-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 resetuje pre kraja sken ciklusa, javlja se značajna greška. Kada uslov postane neistinit vrednost

SL. 5-1 IZVOĐENJE NAREDBI ZA POMERANJE BITOVA

SL. 5-2 ELEMENT UPRAVLJAČKE DATOTEKE ZA BSL I BSR NAREDBU

Page 96: PLC

Plc_nizovi/90

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 staviti 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 ciklusa biće kasnije više reči.

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

5.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 parametar, č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.

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

Page 97: PLC

Plc_nizovi/91

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 istinit, 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 označenu sa dest. Ako je kao dest navedena

SL. 5-3 - ILUSTRACIJA IZVRŠAVANJA SQO NAREDBE

Page 98: PLC

Plc_nizovi/92

datoteka #fn:d onda će se rezultat upisati u onu reč te datoteke na koju pokazuje pointer (Sl. 5-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 (odgovarajuć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 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. 5-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 datoteka broj 6, ili

SL. 5-4 - ILUSTRACIJA IZVRŠAVANJA SQC NAREDBE

SL. 5-5 - ELEMENAT UPRAVLJAČKE DATOTEKE ZA SQL, SQO I SQC NAREDBU

Page 99: PLC

Plc_nizovi/93

korisnička datoteka (brojevi od 9 do 255). Jedan elemenat ove datoteke, koji se odnosi na SQO i SQC naredbu ima izgled kao na Sl. 5-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 zadrž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 istinit (isti 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).

Page 100: PLC

Plc_nizovi/94

5.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 f i rst 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 pointera, 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 izvode 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. 5-6, 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

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

Page 101: PLC

Plc_nizovi/95

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.

PRAŽNJENJE STEKA

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

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

Ove naredbe se izvršavaju svaki put kada se uslov menja sa neistinit na istinit, i to tako što se vrednost pointera smanji za 1 i uzme podataka sa vrha steka (LFU), odnosno sa dna steka (FFU) i prenese na adresu koja je navedena kao dest. Ovaj postupak je ilustrovana na Sl. 5-8 i Sl. 5-7, gde su prikazana tri uzastopna izvršavanja ovih naredbi. Pri tome je pretpostavljeno da je bazna adresa steka locirana na memorijskoj adresi 200.

a

e

d

c

b

a

d

c c

b b

a

pointer=3

200

201

204

203

202

pointer=4 pointer=2

dest

pointer=5 pointer=4 pointer=3pre

u toku i posle

izvođenja

UNLOAD LIFO

naredbe

prva LFU

naredba

trećaLFU

naredba

druga LFU

naredba

bazna adresa

steka

Stek

pre posleprve LFU

naredbe205

SL. 5-7 - ILUSTRACIJA IZVRŠAVANJA NAREDBE ZA PRAŽNJENJA LIFO STEKA

Page 102: PLC

Plc_nizovi/96

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

SL. 5-8 - ILUSTRACIJA IZVRŠAVANJA NAREDBE ZA PRAŽNJENJA FIFO STEKA

SL. 5-9 - ELEMENAT R DATOTEKE ZA LFL, FFL, LFU I FFU NAREDBU

Page 103: PLC

Plc_nizovi/97

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žnjenje 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.

Page 104: PLC

Plc_nizovi/98

Page 105: PLC

Plc_flow/99

6. NAREDBE ZA UPRAVLJANJE IZVRŠAVANJEM PROGRAMA

6.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 sastoji 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.

6.2. NAREDBA ZA SKOK Leder program se izvršava u okviru programskog sken ciklusa i to tako što se

obrađuje 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 naredbu, 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 izvođenju 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.

Page 106: PLC

Plc_flow/100

6.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 potprogram (subroutine), koji se poziva na izvršavanje na više mesta u leder programu.

POZIV POTPROGRAMA

• JSR – Jump to Subroutine (skok na potprogram) Ova naredba je naredba akcije. Ukoliko je

uslov istinit JSR naredba prouzrokuje prekid u normalnom izvršavanju leder programa i ostvaruje skok na potprogram čije je simboličko ime (broj programske datoteke) naveden kao adresa u JSR naredbi. Izvršavanje programa

nastavlja se od prvog ranga potprograma. FORMIRANJE I IDENTIFIKACIJA PODPROGRAMA

• SBR – Subroutine (potprogram) 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 potprogram. 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 potprograma njoj se ne pridružuju nikakvi bitovi čije bi stanje određivalo istinosnu vrednost naredbe. Pri izvođenju programa smatra se da je naredba uvek istinita.

U principu, u okviru potprograma 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 potprograme, čime se značajno povećava preglednost programa. i olakšava njegovo testiranje.

Pri korišćenju potprograma treba voditi računa o činjenici da će se svi bitovi digitalnih izlaza kojima se upravlja u okviru potprograma menjati samo onda kada se potprogram pozove.

ZAVRŠETAK POTPROGRAMA

• RET – return (povratak)

• END – End (kraj) Poslednji rang svakog potprograma, 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 potprogram ima više različitih završetaka u

Page 107: PLC

Plc_flow/101

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

se na levoj strani ranga koji sadrži RET naredbu mogu naći naredbe uslova. Ukoliko je uslov istinit izvođenjem RET naredbe prekinuće se rad potprograma i pre njegovog fizičkog kraja koji označava END naredba.

Unutar jednog potprograma može se naći više RET naredbi.

UČAURENI PODPROGRAMI U principu jedan potprogram

može pozvati drugi potprogram koji poziva treći i tako redom. Način izvršavanja tako učaurenih potprograma ilustrovan je na Sl. 6-1. . Dozvoljeno je povezivanje do osam nivoa potprograma.

6.4. PROMENA TOKA SKEN CIKLUSA Ova grupa naredbi koristi se u fazi testiranja programa ili za ubrzavanje sken

ciklusa u nekim sluč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 komunikacija i održavanja. Sledeći programski sken ciklus započinje od prve programske naredbe.

Samo se po sebi razume 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 statusnoj datoteci koje mogu dati informaciju o radu programa.

ID kod koji se navodi u naredbi služi za identifikaciju same naredbe. 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

SL. 6-1 UČAURENI POTPROGRAMI

Page 108: PLC

Plc_flow/102

izvršavati na specifičan način. Ukoliko je uslov u MCR naredbi istinit onda se sve 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 neistinit 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 naredbe je da omogući kreiranje programskih celina koje 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 posebne 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.

6.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 naredbama kojima se privremeno prekida programski sken ciklus i izvršava deo ulaznog odnosno izlaznog sken ciklusa.

• I IM – Immediate input with mask

• IOM – Immediate output with mask

Ukoliko je 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 maski postavljeni na 1 biće smešteno u sliku ulaza (ulaznu datoteku) i korišćena u svim

sledećim sken naredbama. Na isti način, pri istinitom uslovu IOM naredba će prouzrokovati da se vrednosti

bitova koji se nalaze u slici izlaza (izlaznoj datoteci), a koji odgovaraju bitovima koji su u maski 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

Page 109: PLC

Plc_flow/103

od mesta gde je prekinut. 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 operaciji nad podacima, neophodno da se oni ažuriraju češće nego što bi to bio slučaj da se obavlja regularni sken ciklus.

6.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. 6-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 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 vremena, 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đaj i (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ć pr i t raž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

SL. 6-2 REALIZACIJA SISTEMA PREKIDA

Page 110: PLC

Plc_flow/104

gubitak napajanja u sistemu i obezbeđuje upozorenje nekoliko milisekundi pre nego što sistem prestane da radi. Ukoliko je ovakvo kolo vezano za signal prekida koji ima prioritet nad svim ostalim aktivnostima u 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.

6.6.1. TIPOVI PREKIDA I HIJERARHIJSKI NIVOI PLCovi iz familije SLC operišu sa četiri tipa prekida:

User Fault Routine – upravlja radom PLCa u slučaju detekcije greške DII – Discrete Input Interrupt – detekcija događaja STI – Selectable Timed Interval – detkcija protoka vremena (odabiranje) 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

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

SLC 5/02Max. latentnost

2.4ms

SLC 5/03 i većiBit S:33/8 = 1

SLC 5/03 i većiBit S:33/8 = 0

Između ažuriranja dve reči

Između ažuriranja dve reči

Između ažuriranja dve reči

Između ažuriranja dve reči

Između ažuriranja dva paketa reči

Između ažuriranja dva slota

Između ažuriranja dva ranga

Između ažuriranja dva slota

Između slanja dva komunikaciona

paketa

Između ažuriranja dva slota

Između ažuriranja dva slota

Između ažuriranja dve instrukcije

Između ažuriranja dva slota

Između slanja dva komunikaciona

paketa

Na početku i na kraju

Ulazni sken ciklus

Programski sken ciklus

Izlazni sken ciklus

Komunikacija

Održavanja

Ske

n c

iklu

s

Nailazak signala prekida

Opsluživanje

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

Page 111: PLC

Plc_flow/105

(indikator rezultata matematičkih operacija), S:13 i S:14 (matematički registar) i S:24 (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).

6.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. deljenje 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šaka, 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 potprograma.

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

Page 112: PLC

Plc_flow/106

signalna lampa koja indicira da je akumulirana vrednost bila manja od nule.

Dozvoljava se prekid rada PLC za sve ostale greške

REŠENJE Osnovni servisni potprogram je programska datoteka broj 3 (Sl. 6-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. 6-5) i broj 5 (kod greške 34h) (Sl. 6-6). To znači da servisni potprogram mora da obezbedi pozivanje jednog od ova dva potprograma u zavisnosti od koda greške.

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

Page 113: PLC

Plc_flow/107

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

Page 114: PLC

Plc_flow/108

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

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

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

Page 115: PLC

Plc_flow/109

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

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

Page 116: PLC

Plc_flow/110

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 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. 6-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 ( i l i 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

SL. 6-8 ŠEMATSKI PRIKAZ IZVRŠAVANJA DII PREKIDA

Page 117: PLC

Plc_flow/111

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, detekcija 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 indikatorskih 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 detektuje 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. Kada dostigne

Page 118: PLC

Plc_flow/112

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. 6-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. 6-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 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:46 = 4 – servisni potprogram je u datoteci broj 4

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

S:48 (Mask) = 0000 0001 – testira se bit na nultom pinu

S:49 (Referenca) = 0000 0001 – događaj nastupa kada je bit na nultom pinu 1

S:50 (Preset) = 1 – sistem prekida radi kao detektor događaja

S:33/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. 6-10.

SL. 6-9 ŠEMA VEZIVANJA SENZORA I IZVRŠNOG ORGANA

Page 119: PLC

Plc_flow/113

6.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. 6-11.

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

Page 120: PLC

Plc_flow/114

DEFINISANJE PERIODE PONAVLJANJA PREKIDA Sistemom prekida se upravlja pomoću internog časovnika. Periodu ponavljanja

korisnik definiše sam upisivanjem odgovarajuće vrednosti u statusnoj datoteci.

• S:30 – period – multipl osnovnog takta. Period ponavljanja se dobija kao proizvod sadržaja reči S:30 i osnovnog takta. Ukoliko se kao multipl upiše 0, sistem prekida je onemogućen.

• Takt zavisi od tipa procesora

Def inisanje 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

prouzrokovati resetovanje internog časovnika i upisivanje podataka o adresi servisnog potprograma i perioda prekida u reči S:31 i S:30 (čime se briše prethodni sadržaj tih reči). Posle izvršavanja ove naredbe, STI interni časovnik započinje ponovno merenje vremena i STI enable bit je postavljen na 1.

Kada uslov postane neistinit podaci o STI prekidu 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

samo na to da li će, kada časovnik izmeri zadani interval vremena, biti dozvoljeno opsluživanje prekida ili ne.

TAKT (MS) PERIOD (MS) SLC 5/02 10 10-2550 SLC 5/03 TAKT ODREĐEN BITOM S:2/10 S:2/10

0 10 10-32760

1 1 1-32767 SL. 6-11 ŠEMATSKI PRIKAZ IZVRŠAVANJA STI PREKIDA

Prog. File 2 Prog. File n

(servisni

potprogram)

S:31 n

Prekidperiod T

(trenutci ti)

S:30 T (kxtakt)

S:43 t (m x10 s)

ažurira

interni časovnik

Pamti

S:0 mat. indikatori

S:13,14 mat. reg.

S:24 indeks reg.

korisnik

Interni STI

časovnik

S:2/0

STI pending

S:2/1

STI enable

S:2/2

STI executing

S:5/10

STI timer expires

S:2/10

0 - takt =10ms

1 - takt = 1ms S:36/9

STI lost

Page 121: PLC

Plc_flow/115

• 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 indikatorskih 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. PR. 6-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

Page 122: PLC

Plc_flow/116

prikazivanja na displeju.

REŠENJE Servisni potprogram je formiran u

programskoj datoteci broj 4 (Sl. 6-14). To znači da je neophodno da se pri inicijalizaciji STI prekida upiše S:31=4. Budući da STI prekid treba da radi sa 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 tada se samo upamti trenutna vrednost časovnika u memorijskoj lokaciji N10:1 i postavi se indikatorski bit (B3:0/0) koji označava da je prvi prolaz 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. 6-12).

U delu glavnog programa koji je ovde prikazan (Sl. 6-13) se u prvom prolazu inicijalizuju indikatorski bit i vrednost rezultata (postavljaju se na nulu). Uz pomoć samoresetujućeg časovnika

SL. 6-12 ODREĐIVANJE PROTEKLOG VREMENA

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

Page 123: PLC

Plc_flow/117

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. 6-14 SERVISNI POTPROGRAM KOJI OPSLUŽUJE STI PREKID

Page 124: PLC

Plc_flow/118

6.6.5. I/O PREKID Neki specijalni U/I moduli imaju

sposobnost generisanja signala prekida. Ukoliko se ovaj signal detektuje, procesor prekida sken ciklus i započinje opsluživanje odgovarajućeg servisnog potprograma. 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. Blok šema izvršavanja I/O prekida data je na Sl. 6-15

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), opsluž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

• I IE – 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.

SL. 6-15 ŠEMATSKI PRIKAZ IZVRŠAVANJA I/O PREKIDA

Prog. File 2 Prog. File n

(servisni

potprogram)

S:11

Prekid

ažurira

Pamti

S:0 mat. indikatori

S:13,14 mat. reg.

S:24 indeks reg.

Specijalni

moduli

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

S:12 slot enable

S:27 interrupt enableS:28

interni

časovnik

S:44 t (m 10 s)

Page 125: PLC

Plc_flow/119

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 1. n – ukazuje na slot broj n 2. m,n,... – ukazuje na slotove m, n itd 3. m to n – ukazuje na slotove od broja m do broja n (m<n)

• I ID – 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 indikatorskih 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 odnose na slotove od 1 do 30. Ovi bitovi se postavljaju 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 kome 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. Kada dostigne 0.32767s, časovnik nastavi da meri vreme od 0. U trenutku detekcije I/O

Page 126: PLC

Plc_flow/120

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 naredba

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.

Page 127: PLC

Plc_PID/121

7. NAREDBA ZA REALIZACIJU PROPORCIONOLNO -INTEGRALNO-DIFERENCIJALNOG ZAKONA UPRAVLJANJA (PID)

7.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 proporcionalno 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 se obavi jedan korak diskretnog algoritma PIDa.

U skladu sa teorijom 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 trajanja 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. 7-1)

of)y(fTd)(eT1

1K)t(u d

t

0ip +

+ττ+= ∫

gde je

• u(t) - upravljački signal (CV – control value)

• e(t) = r-y(t) - signal greške koji predstavlja razliku referentne vrednosti - r (SP – set point) i izmerene vrednosti izlaza procesa - y (PV – process variable)

• f (y) – je funkcija koja realizuje diferencijalno dejstvo i to tako da se signal iz

diferencijatora koji je realizovan kao visoko propusni filtar funkcije prenosa

;N/sT1

s)s(G

dd +

=

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

Interesanto je napomenuti da proizvođač ne daje podatke o prelomnoj učestanosti

SL. 7-1 BLOK DIJAGRAMA PIDA

Page 128: PLC

Plc_PID/122

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 diskretne 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 (offset) – 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)

• Kp - bezdimenziona konstanta proporcionalnog dejstva koja se kreće u sledećim vrednostima

4. 0.1 do 25.5 (SLC 5/02) 5. 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

6. 0.1 do 25.5 min/obrt (SLC 5/02) 7. 0.01 do 327.67 min/obrt (SLC 5/03 i višim)

• Td - konstanta diferencijalnog dejstva koja se zadaje u jedinicama minuta 8. 0.1 do 25.5 min (SLC 5/02) 9. 0.01 do 327.67 min (SLC 5/03 i višim)

7.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ženjerskim) 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ženjersku 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 pretpostavke 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

Page 129: PLC

Plc_PID/123

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)

• SCP naredba ( ) minminminmax

minmax sy-yy-y

s-s s +=

• SCL naredba offsety10000Rate

s +=

Parametri konverzije za standardne tipove strujnih i naponskih ulaznih signala dati su u tabelama T. 7-1 i T. 7-2.

PR. 7-1 – KONVERZIJA MERNOG SIGNALA

Merni signal temperatura u opsegu od tmin=-500C do tmax=10000C 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

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

Page 130: PLC

Plc_PID/124

( ) minminminmax

minmax ts-ss-s

t-t t +=

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.

• ulaz naredbe: izračunati upravljački signal c (CV), (celobrojna vrednost koju daje PID modul)

• izlaz naredbe: celobrojna vrednost koja se vodi na D/A konvertor - u

• SCP naredba ( ) minminminmax

minmax uc-cc-c

u-u u +=

• SCL naredba offsetc10000Rate

u +=

Parametri konverzije za standardne tipove strujnih i naponskih izlaznih signala dati su u tabelama T. 7-1 i T. 7-2.

7.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 variable – 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 var iable – 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

Page 131: PLC

Plc_PID/125

adresu reči iz koje se dobija podatak za analogni izlaz (D/A konvertor) skalira na puni opseg D/A konvertora.

• Def inisanje nač ina rada – Control b lock 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. Struktura bloka prikazana je u tabeli T. 7-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)

REČ 2 SETPOINT SP CELOBROJNA VREDNOST: SMIN DO SMAX ILI 0 DO 16383 (AKO SMIN I SMAX NISU DEFINISANI)

REČ 3 KP CELOBROJNA VREDNOST: 0 DO 32767

INTERPRETIRA SE KAO 0 −3276.7 (ZA RG=0) 0 −327.67 (ZA RG=1)

REČ 4 TI (MIN/OBRT)

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 IZMERNA VREDNOST PRETVARA U FIZIČKE JEDINICE REČ 8 SETPOINT MIN SCALED (SMIN)

REČ 9 DEADBAND (MRTVA ZONA)

CELOBROJNA VREDNOST: 0 DO SMAX ILI 0 DO 32767 DEFINIŠE OPSEG OKO SP (GDE SE SMATRA DA JE GREŠKA 0) 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, ZA OL=0 NE PREKIDA INTEGRACIJU, ALI POSTAVLJA BIT NA 1 REČ 12 OUTPUT MIN (CVL)

REČ 13 LOOP UPDATE PERIOD ODABIRANJA

CELOBROJNA VREDNOST: 0 DO 1024 PERIODA ODABIRANJA: T=(LOOP UPDATE)×0.01 SEC

REČ 14 SCALED PROCES VARIABLE

(SPV) CELOBROJNA VREDNOST: 0 DO 16383 ILI SMIN DO SMAX (AKO JE DEFINISANO SKALIRANJE) –(SKALIRANI) MERNI SIGNAL, OČITAVA SE U FIZIČKIM JEDINICAMA

REČ 15 SCALED ERROR (SE) CELOBROJNA VREDNOST: −32767 DO 32767, NE MOŽE DA SE DEFINIŠE, VEĆ SE SAMO OČITAVA SE = SP − PV ako je CM=0 ; SE = PV − SP ako je CM=0

REČ 16 OUTPUT CVP (%)

CELOBROJNA PROMENLJIVA (100% JE 16383) PRI AUTOMATSKOM UPRAVLJANJU (AM=0) NE MOŽE SE DEFINISATI, 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, AŽURIRA SE AUTOMATSKI PRI RUČNOM UPRAVLJANJU REČ 18 LSW INTEGRAL SUM

REČ 19 INTERNA UPOTREBA

REČ 20 INTERNA UPOTREBA

REČ 21 INTERNA UPOTREBA

REČ 22 INTERNA UPOTREBA

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 (obrade signala) – Bit TM (Nn:0/0)

TM = 1 ⇒ izračunavanje se vrši periodično sa vrednošću definisanom pomoću Loop

T. 7-3 STRUKTURA CONTROL BLOCK-A

Page 132: PLC

Plc_PID/126

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 upravljanja, 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

• Skaliranje vrednost i parametara Kp 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 uzastopne digitalne vrednosti parametara).

Ova opcija nije predviđena 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 OL = 1 ⇒ kada upravljačka promenljiva dostigne vrednost zadanih granica, prekida se izračunavanje integralnog dejstva i ono se zadržava na poslednjoj izračunatoj vrednosti. Integralno dejstvo 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).

Page 133: PLC

Plc_PID/127

• Skaliranje Setpoint-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 s ignal 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 s ignal manj i 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 opsega – Bit SP (Nn:0/11)

SP = 0 ⇒ setpoint je unutar opsega definisanog 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 PID naredbe – Bit EN (Nn:0/15)

EN = 0 ⇒ uslov u rangu PID naredbe nije ispunjen EN= 1 ⇒ uslov u rangu PID naredbe je ispunjen

• Završetak algoritamskog koraka – Bit DN (Nn:0/13)

DN = 0 ⇒ PID nije završio algoritamski korak (ili ga nije ni započinjao) 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.

Page 134: PLC

Plc_PID/128

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. 7-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 pojedinih reči ili bitova koje se postavljaju u toku izvršavanja 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. 7-4.

Kode grešeke Uzrok greške Moguća reakcija da se greška ukloni

11H SLC 5/02 SLC5/03 i više SLC 5/02 SLC5/03 i više

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 5/02

Smax> 16383 ili Smax< -16383 Vrati Smax u granice

22H 5/02

Smin> 16383 ili Smin< -16383 Vrati Smin u granice

22H Smin> Smax Popravi odnos Smin i Smax

31H

Smin> SP> Smax ili SP> 16383 u prvom prolazu postavi Bit 11 ako se kasnije promeni SP onda javlja kod za grešku, ali koristi prethodnu SP

postavi Smin < SP< Smax ili (ako se nekoristi skaliranje)

0 < SP< 16383

41H

Izabrano skaliranje Nije izabrano skaliranje Izabrano skaliranje Nije izabrano skaliranje

DB< 0 ili . DB> (Smax –Smin) ili DB> 16383 (5/02)

Deadband< 0 ili Deadband> 16383

postavi 0 < deadband<(Smax -

Smin)< 16383

postavi 0 < deadband<

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

60H SLC 5/02 – PID se prekida po drugi put (PID je bio prekinut nekim signalom U/I prekida, koji je onda prekinut pomoću STI prekida)

Postoje bar tri PIDa u programu (jedan u glavnom programu, jedan u U/I prekidu i jedan u STI prekidu). Program se mora promeniti da bi se izbegle ugneždene PID petlje.

7.4. PRIMERI KORIŠĆENJA PIDA PR. 7-2 SKALIRANJE ZADATAK

PID upravlja snagom grejača koji zagreva vazduh u nekoj komori. Temperatura u komori

SL. 7-2 MASKA ZA DEFINISANJE UPRAVLJAČKOG BLOKA

T. 7-4 KODOVI GREŠAKA KOJE MOGU NASTATI PRI KORIŠĆENJU PID MODULA

Page 135: PLC

Plc_PID/129

može da se menja u opsegu tmin = 5oC do tmax=80oC. Temperatura se meri termospregom koji daje strujni signali u opsegu 4 do 20mA koji se vodi na analogni ulazni modul u slotu 1.

Kolo za upravljanje grejačem prima strujni signali u opsegu 4 do 20mA, koji dolazi sa analogni izlazni u slotu 2.

PID radi sa periodom od 100ms i treba da održava temepraturu na 20 oC. Napisati STI servisni potprogram koji realizuje PID.

REŠENJE Servisni potprogram prikazan je na Sl. 7-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 REČ 0 EN DN PV SP LL UL DB DA 1 TF SC 1 RG1 OL1 CM0 AM0 TM0

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

Page 136: PLC

Plc_PID/130

Page 137: PLC

Plc_PID/131

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

SL. 7-4 IZGLED MASKE PRI DEFINISANJU PID NAREDBE

Page 138: PLC

Plc_PID/132

PR. 7-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. 7-6. Generisani širinski modulisani impuls treba da ima izgled kao na Sl. 7-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

cTu

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. 7-5 ŠIRINSKI MODULISAN UPRAVLJAČKI SIGNAL

Page 139: PLC

Plc_PID/133

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

Page 140: PLC

Plc_PID/134

PR. 7-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 c100

=

Dobijena vrednost se smešta kao CV na odgovarajuću adresu PID modula. Pretpostavlja 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).

Page 141: PLC

Plc_PID/135

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

Page 142: PLC
Page 143: PLC

Com_naredbe/137

8. NAREDBE ZA KOMUNIKACIJU SLCA

8.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 elementa ili pojedinog bita. Elemenat sadrži bajtove

ASCII karaktera.

• String datoteka – ST (SLC 5/03, 5/04 i 5/05) Datoteka sadrži

elemente čija je dužina najviše 42 reči (84 karaktera, odnosno 84 bajtova) i može se adresirati na nivou elementa, reči ili pojedinih bitova u reči.

UPRAVLJAČKA DATOTEKA ASCII naredbe

koje se koriste pri prenosu podataka zahtevaju dodatne informacije koje se

smeštaju u upravljačku R datoteku čiji element ima 3 reči. R datoteka se

generiše automatski pri kreiranju ASCII naredbi za čiji rad je ona neophodna.

SL. 8-1 ELEMENT ASCII DATOTEKE

SL. 8-2 ELEMENT STRING DATOTEKE

SL. 8-3 IZGLED JEDNOG ELEMENTA UPRAVLJAČKE DATOTEKE ZA ASCII NAREDBU

Page 144: PLC

Com_naredbe/138

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 otpočinjanja (ako je u redu čekanja) ili u toku izvođenja; kada se ovaj bit (programski 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).

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

Page 145: PLC

Com_naredbe/139

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

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

Page 146: PLC

Com_naredbe/140

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ć 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

Page 147: PLC

Com_naredbe/141

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.

• AWT - 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

Page 148: PLC

Com_naredbe/142

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

• AWA - 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 RS232 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)

Page 149: PLC

Com_naredbe/143

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

PR. 8-1 UČITAVANJE NIZA ASCII KARAKTERA

ZADATAK Pročitati niz podataka sa nekog spoljnjeg 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. 8-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.

SL. 8-4 SPREGA KONTROLERA I ASCII UREĐAJA

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

SLC 5/04

Kanal 0

ACII uredjaj

Page 150: PLC

Com_naredbe/144

PR. 8-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 aktivira naredba za očitavanje sa dužinom nula, što zapravo znači da ova naredba ne bi imalo šta da radi.

SL. 8-6 UČITAVANJE NIZA ACII KARAKTERA

Page 151: PLC

Com_naredbe/145

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. 8-7 PRIJEM ASCII KARAKTERA

Page 152: PLC

Com_naredbe/146

PR. 8-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. 8-7.

Page 153: PLC

Com_naredbe/147

SL. 8-8 PRIKAZIVANJE PODATAKA NA DISPLEJU

Page 154: PLC

Com_naredbe/148

8.2. NAREDBE ZA KOMUNIKACIJU SLCA U MREŽI

8.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 redovno izvršavanje komunikacionog ciklusa.

SVC naredba se, po pravilu, postavlja kao bezuslovna naredba. Ne može se koristiti u potprogramima kojima se servisiraju prekidi.

• MSG - Message naredba SLC kontroler koji predstavlja jedan

čvor u mreži ostvaruje komunikaciju sa nekim drugim čvorom u mreži pomoću naredbe za komunikaciju (message naredba – msg). Ova naredba je naredba akcije i postavlja se u pogramu onog SLC kontrolera koji će igrati ulogu inicijatora prenosa podataka. Ukoliko je uslov u rangu istinit naredba se izvršava tako što postavlja zahtev za prenos podataka između dva čvora u mreži. Kao što je već rečeno,sam prenos se obavlja u komunikacionom delu sken ciklusa PLCa.

Naredba uključuje niz parametara kojima se opisuje vrsta komunikacije (smer, adresa čvora sa kojim se komunicira, adresa skupa podataka koji se prenose 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.

READ/WRITE MESSAGE

Read/Write xxxx

Target Device xxxx

Control Block Nn:w

Control Block Length 7

Setup Screen

MSGuslov EN

DN

ERSLC5/02

READ/WRITE MESSAGE

Type xxxx

Read/Write xxxx

Target Device xxxx

Local/Remote xxxx

Control Block Nn:w

Control Block Length 14

Setup Screen

MSGuslov EN

DN

ERSLC5/03-05

Page 155: PLC

Com_naredbe/149

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 čvorom. 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 uređaj 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/Remote – 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.

8.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 1. Data table address - adresa prvog elementa lokalne i odredišne datoteke 2. Size in elements - veličina datoteke izražena brojem elemenata koji se prenose, koja

Page 156: PLC

Com_naredbe/150

se automatski preračunava u broj reči 3. 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. 8-9.

U datom primeru (Sl. 8-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

SL. 8-9 PROZOR ZA DEFINISANJE PARAMETARA PRI KOMUNIKACIJI SLC 5/02 KONTROLERA

Page 157: PLC

Com_naredbe/151

• Kontroler i SLC5/03-05 – Komunikacija u lokalnoj mreži Ako kontroler komunicira u lokalnoj mreži prozor je veoma sličan Sl. 8-10. Podaci

se smeštaju u kontrolnu datoteku dužine 14 reči. Pored ranije 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. 8-10, njen sadržaj će biti

• 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đaj (0-255).

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

Page 158: PLC

Com_naredbe/152

U posmatranom primeru (Sl. 8-11), u naredbi je definisano da je adresa

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

8.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 način. Naime, svaki tip uređaja ima neki drugačiji način za smeštanje podataka, te se odgovarajuće adrese moraju definisati u skladu sa pravilima koja diktira odgovarajući odredišni uređaj. O tome se, pored drugih stvari, stara modul

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

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

SL. 8-12 ILUSTRACIJA KOMUNIKACIJE SA UREĐAJIMA KOJI NISU SLC TIPA

SLC

Leder program

Datoteke

podataka

#0 - #8

CIF

(Datoteka #9)

Datoteke

podataka

#10 - #255

write Mreža

readMSG

Page 159: PLC

Com_naredbe/153

sčučaj prenos podataka se neće izvršiti. CIF se formira pomoću odgovarajućeg prozora (Sl. 8-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 uređaja.

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 u reč 3 upravljačke datoteke.

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

SL. 8-13 PROZOR ZA DEFINISANJE CIF PODRUČJA

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

Page 160: PLC

Com_naredbe/154

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

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

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.

SL. 8-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

SL. 8-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

Page 161: PLC

Com_naredbe/155

8.2.4. KOMUNIKACIJA PREKO ETERNETA Prilikom specifikacije parametara za komunikaciju preko Eterneta, odredišni uređaj

se specificira 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. 8-17 PROZORI ZA DEFINISANJE PARAMETARA PRI KOMUNIKACIJI PREKO ETERNET MREŽE

Page 162: PLC

Com_naredbe/156

8.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 određenu 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ć. Međutim, i vreme skeniranja se takođe povećava ukoliko se više komunikacionih zahteva ili naredbi primi u okviru istog sken ciklusa.

• Bit S:33/7 (SLC5/02 i l i 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 indikatorske 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 izvođenja 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.

• WQ – Waiting for queue space (reč 7, bit 0, kontroleri SLC5/3 i viši) – postavlja se na 1

Page 163: PLC

Com_naredbe/157

kada je red čekanja pun.

o EN=1 - kada počne izvršavanje msg naredbe, informacija se stavlja u FIFO red č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.

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

o 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 (b it 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 uređaja. 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 uređaj 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 resetuje 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 korišć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 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 ovaj tip komunikacije, uobičajeno je da se u rangu ne postavlja nikakav uslov, već da se komunikacijom upravlja preko tajmaut intervala. (Budući da postoje

Page 164: PLC

Com_naredbe/158

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

8.2.6. IZVRŠAVANJE MESSAGE NAREDBE Kada u toku izvođenja programskog skena uslov u rangu u kome se nalazi MSG

naredba postane istinit postavlja se EN bit (Sl. 8-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 uređaju (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 inicira prenos podataka. Komunikacija će se obaviti u housekeeping ciklusu. Eventualno komunikacija se može obaviti u okviru izvršenja SVC (Service communication) naredbe ili REF (Refresh) naredbe u leder programu.

U housekeeping ciklusu procesor ispituje statusne bitove da bi ustanovio da li je neki od ranije započetih prenosa završen i da li ima još zahteva u redu čekanja i na bazi njih odlučuje šta će da radi. Ukoliko je neka od komunikacija završena, procesor može da servisira

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. 8-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 komunikacionog ciklusa, dok se sam prenos podataka obavlja u pozadini, paralelno sa regularnim sken ciklusom. Ako

paket ne može da se formira, postavlja se ER bit.

SL. 8-18 FORMIRANJE I OPSLUŽIVANJE REDA ČEKANJA

SL. 8-19 POSTUPAK FORMIRANJA I SLANJA PAKETA

Pro

gra

mski ske

nH

ou

se

ke

ep

ing

Dru

gi čvo

rovi u

mre

ži

U s

kan

I ska

n

Page 165: PLC

Com_naredbe/159

Pod uslovom da komunikaciona veza i odredišni čvor ispravno funkcionišu, on će primiti paket i poslati ACK (acknowledgment) signal (Sl. 8-20). Ukoliko se na adresi čvora ne nalazi nikakav uređaj, ukoliko je paket pri slanju pokvaren do mere da se ne može primiti ili ukoliko se odgovor čvora pokvari pri slanju procesor neće primiti nikakav odgovor. Ako je odredišni čvor suviše zauzet ili ako je primio pokvaren paket on će poslati NAK (not acknowledged) signal. (Procesor odsustvo bilo kakvog signala tumači isto kao i prijem NAK signala.) Potrebno je zapaziti da čak i kada target čvor pošalje ACK signal, on još uvek nije

raspakovao paket da vidi da li razume zahtev. Po prijemu ACK

signala procesor postavlja ST bit i počinje da čeka odgovor od target čvora (Sl. 8-21). Za vreme dok je ST bit postavljen odgovarajući bafer je zauzet. Budući da, u principu, target čvor nema nikakvo ograničenje u pogledu odgovora, čekanje bi moglo da traje neograničeno dugo. Da bi se ovo sprečilo, korisnik ima mogućnost da programski definiše neko vreme čekanja i da po isteku tog vremena postavi TO bit. Sve dok je ST bit postavljen, u svakom hosekeeping ciklusu, procesor testira TO bit. Kad ustanovi da je TO bit postavljen, procesor prekida dalje čekanje odgovora i javlja da je došlo do greške u prenosu.

Ukoliko, procesor ne primi ACK signal on će u sledećem programskom skenu, kada naiđe 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).

SL. 8-20 PRIJEM PAKETA I POTVRDA O PRIJEMU

SL. 8-21 ALGORITAM KOMUNIKACIJE U LOKALNOM ČVORU

Target čvor

Prima paket

U funkciji? Ne

Da

Nema

odgovora

(NAK)

Paket ispravan? Ne

NAK

DaACK

Lokalni čvor

ACKDa Ne (NAK)

EW = 0ST = 1

Sken

cik

lusi

EW = 0NR = 1

NR = 0Ne Da

Ponovi slanje paketa

NR = 0

TO = 0

Ne Da

ER = 1ST = 0

Čeka odgovor od target čvora (bafer

blokiran)

Odgovor stigao?

Da

Ne

Da

DN = 1ST = 0

(ako je MSG read

podaci se unose u destination file)

EN = 0(ako je uslov neistinit)

Uspeh? Ne

Pro

gra

mski sken

Hou

se

kee

pin

g c

iklu

s

sledeći

ciklus po

prijemu

odgovra

Pro

gra

mski ske

n

Page 166: PLC

Com_naredbe/160

Ukoliko target čvor uspešno primi paket on će poslati odgovarajući odgovor (Sl. 8-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, međutim, uslov istinit 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 znač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 Eternet komunikacioni podsistem interno signalizira da je primio naredbu od procesora i da će je proslediti preko mreže.

8.2.7. PRIMERI KORIŠĆENJA MESAGE NAREDBI PR. 8-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. 8-23). Budući da oba kontrolera imaju samo kanal 0, oni se vezuju u DH485 mrežu preko AIC interfejsa.

Senzor temperature spregnut je preko prekidača osetljivog na temperaturu sa ulaznim modulom kontrolera SLC 5/02 na pinu čija je adresa I:1/0. Ovaj senzor upravlja radom ventilatora koji je prikačen preko izlaznog modula kontrolera SLC 5/01 na adresi O:1/0. Perioda odabiranja je 1280 ms. Ventilator

radi (izlazni bit 1) ako je temperatura prešla neku

određenu 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 predstavlja interlock bit dok prvi bit N7:0/1 predstavlja indikator temperature (Sl. 8-24). Identično je organizovana i izvorna datoteka koja se iz kontrolera SLC 5/01 prenosi u kontroler SLC 5/02 (read naredba).

SL. 8-22 MOGUĆI ODGOVORI TARGET ČVORA

SL. 8-23 SPREGA SENZORA I VENTILATORA

SLC 5/02

AIC

AIC

SLC 5/01

Cvor 0 Cvor 1

DH485

I:1/0O:1/0

1 - On0 - Off

Page 167: PLC

Com_naredbe/161

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 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 za 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 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. 8-25). Pri tome u prvoj polovini ciklusa bit ima vrednost 1, a drugoj polovini 0 (Sl. 8-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

resetuje na nulu.

Kontroler SLC5/01 Kontroler SLC5/02

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

SL. 8-24 DATOTEKA KOJA SE PRENOSI

SL. 8-25 INTERNI ČASOVNIK

SL. 8-26 SIGNAL KOJI GENERIŠE INTERNI ČASOVNIK

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

Page 168: PLC

Com_naredbe/162

8-29 i Sl. 8-30.

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

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

Page 169: PLC

Com_naredbe/163

Page 170: PLC

Com_naredbe/164

PR. 8-5 – KORIŠĆENJE TAJMAUT INTERVALAZADATAK

Napisati leder program koji omogućkontrolnu sijalicu ako se komunikacija ne uspostavi. Svaki pokušaj tra

REŠENJE Ako se ovaj zadatak realizuje pomoć

koristi časovnik koji će postavljati TO bit posle isteka intervala od 2 sekunde. Postavljanjem ovog bita, prenos se prekida.

Međutim, ako se koristi konmože definisati dozvoljeni interval č ć

vremena istekne. U oba slučaja, pošto se želi odmah ponoviti prenos, mora se resetovati up

Naime, msg naredba će resetovati upravljač ć

dok je u ovom slučaju uslov u rangu stalno istinit. Kontroler SLC5/02 - upravljački blok

SL

SL. 8-31 UPRAVLJAČ

TERVALA

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.

Ako se ovaj zadatak realizuje pomoću kontrolera SLC5/02, onda je neophodno da se č će postavljati TO bit posle isteka intervala od 2 sekunde. Postavljanjem ovog

đutim, ako se koristi kontroler SLC5/03 ili viši, onda se u okviru definicije može definisati dozvoljeni interval čekanja, pa će se prenos automatski prekidati kada taj interval

čaja, pošto se želi odmah ponoviti prenos, mora se resetovati upće resetovati upravljačke bitove tek pri sledećem prelazu sa istinit na neistinit,

čaju uslov u rangu stalno istinit.

čki blok i odgovarajući program prikazani su na Sl. 8-

L. 8-30 LEDER PROGRAM ZA KONTROLER SLC 5/02

PRAVLJAČKI BLOK ZA MESSAGE NAREDBU U KONTROLERU

ćava pet sukcesivnih pokušaja prenosa poruke i pali je 2 sekunde.

ću kontrolera SLC5/02, onda je neophodno da se č će postavljati TO bit posle isteka intervala od 2 sekunde. Postavljanjem ovog

troler SLC5/03 ili viši, onda se u okviru definicije msg naredbe č će se prenos automatski prekidati kada taj interval

čaja, pošto se želi odmah ponoviti prenos, mora se resetovati upravljačka reč. ć č ćem prelazu sa istinit na neistinit,

-31 i Sl. 8-32.

KONTROLERU SLC 5/02

Page 171: PLC

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

Com_naredbe/165

Page 172: PLC

Com_naredbe/166

Kontroler SLC5/03 upravljački blok

SL. 8-33 UPRAV

SL

čki blok i odgovarajući program prikazani su na Sl. 8-33

PRAVLJAČKI BLOK ZA MESSAGE NAREDBU U KONTROLERU

L. 8-34 LEDER PROGRAM ZA KONTROLER SLC 5/03

33 I Sl. 8-34.

KONTROLERU SLC 5/03

Page 173: PLC

Com_SLC/167

9. KOMUNIKACIJA SLC-A 9.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 komunicira 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

o 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

o komunikacija između dva kontrolera (peer-to-peer)

o 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

o podršku SNMP za upravljanje Eternet mrežom

o dinamičku konfiguraciju IP adresa pomoću BOOTP opcije

o slanje kompletnih korisničkih datoteka podataka u okviru jedne poruke

o neograničen broj čvorova u mreži

o 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 prilagođen 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 mrežu preko posebnog modula za prilagođenje (PIC).

Page 174: PLC

Com_SLC/168

• 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 karakteristike kontrolera. Ovo se postiže izborom opcije Channel Configuration u meniju (Sl. 9-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.

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

• 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. 9-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

vrši prijemom odgovarajućeg karaktera sa

nekog spoljnjeg uređaja

• Mode Attention Character – 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 (Esc)

SL. 9-1 OTVARANJE MENIJA ZA KONFIGURISANJE MREŽE

SL. 9-2 MENI "GENERAL" ZA KONFIGURISANJE MREŽE

Page 175: PLC

Com_SLC/169

• System Mode Character – 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 Character - 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.

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

Write protec ted – 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

Passthru L ink ID (dec) – identifikator 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.)

Edi t Resource/Owner Timeout – period vremena posle koga se prekida komunikacija, odnosno obustavljaju pokušaji da se pošalje poruka. Dozvoljeni vremenski interval je između 1 i 16535. Automatski se postavlja na 60 (default vrednost).

Diagnost ic 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.

9.2. DH-485 MREŽA

Ova mreža može da podrži komunikaciju 32 uređaja na rastojanju od 1219m. Mreža je zasnovana na RS 485 standardu nad kojim je nadgrađen Allen Bradley protokol, koji uključuje token ring (IEEE 802.5) standard.

DH485 protokol podržava dve klase uređaja: 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 uređaji 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 link coupler), koji se vezuje direktno za DH485 port. Oni

uređaji koji nemaju DH485 port vezuju se za AIC modul preko posebnih modula kao što

SL. 9-3 VEZIVANJE UREĐAJA U DH485 MREŽU

Page 176: PLC

Com_SLC/170

su PIC (Personal interface converter), BAS (Basic module) ili NET AIC (Advanced Interface Converter – AIC+) itd (SL. 9-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 dođe 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 pronađe 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). Dozvoljene 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 operatorski 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 realizuje uz pomoć menija (Sl. 9-4) koji je na raspolaganju

kada se pozove opcija Chanel configuration. U okviru tog menija definišu se sledeći parametri. Max. Node Adress – 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 uređaji ne mogu dodati na mrežu na adrese koje su veće od ovog parametra. Ovaj broj direktno utiče na prenos podataka između č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.

Node Adress - adresa čvora u kome se nalazi kontroler koji se konfiguriše. Najbolja performansa mreža dobija se ako adrese počinju od nule i ređaju se sekvencijalno. (Kontroleri SLC 500, ne mogu imati adresu 0).

Baud rate – brzina prenosa. Svi uređaji moraju biti konfigurisani za istu brzinu. Najbolja performansa je na najvećoj brzini od 19,200.

Token hold fac tor – 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.

SL. 9-4 KONFIGURISANJE DH485 MREŽE

Page 177: PLC

Com_SLC/171

Informacije o rezultatima komunikacije dobijaju se iz datoteke stanja (SL. 9-5), izborom odgovarajućeg menija. Kao što se vidi informacije se sastoje od broja ponavljanja različitih situacija koje mogu nastati pri slanju poruke.

9.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. 9-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 inicira 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 primiti žeton. U koliko u tome ne uspe (Linear Scane Failed), čvor će ponovo aktivirati sken ciklus.

SL. 9-5 INFORMACIJE KOJE SE DOBIJAJU IZ DIJAGNOSTIČKE DATOTEKE DH485 MREŽE

Page 178: PLC

Com_SLC/172

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 pretpostavlja da ta poruka nije namenjena njemu, već nekom drugom čvoru koji ima istu adresu kao i on, pa se zato deaktivira (Dropped Token).

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

Page 179: PLC

Com_SLC/173

Č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 WORD 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.

9.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 performanse korisničkog programa koji je implementiran u procesoru. Procesor koristi TCP/IP protokol za uspostavljanje sesija i slanje poruka.

9.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. 9-7). Pored uobičajenih parametara namenjenih TCP/IP protokolu, i perioda čekanja (tajmaut) na uspostavljanje komunikacije, definišu se i DHRIO L ink ID – je veza specificirana za taj kontroler u 1756-DHRIO modulu pomoću koga se

uspostavlja komunikacaja sa nekim DH+ uređajem

Pass Thru rout ing tab le f i le – 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 BOOTP koji omogućava dinamičko dodeljivanje adresa. Pri tome se podrazumeva da na

Page 180: PLC

Com_SLC/174

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 koje se popunjavaju za svaki od

kontrolera koji se priključuje na mrežu.

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

plc5name: tc=defaults5E:ip=aa.bb.cc.dd:ha=0000BC1Dxxyy

PR. 9-1

Pretpostavimo 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

Sl. 9-7 Meni za konfiguraciju Eternet komunikacije

Page 181: PLC

Com_SLC/175

PR. 9-2

Posmatra se konfiguracija mreže prikazane na slici.

Odgovarajuće tekstualne datoteke su

Page 182: PLC

Com_SLC/176

9.4.2. DIJAGNOSTIČKA DATOTEKA Informacije koje se dobijaju u dijagnostičkoj datoteci prikazuju se u odgovarajućim

prozorima (SL. 9-8).

9.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 između uređaja 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

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

PIN PIN NAME 1 DCD DATA CARRIER DETECT 2 RXD RECEIVE DATA 3 TXD TRANSMIT DATA 4 DTR DATA TERMINAL READY 5 COM COMMON RETURN [SIGNAL GROUND] 6 DSR DATA SET READY 7 RTS REQUEST TO SEND 8 CTS CLEAR TO SEND 9 NC NO CONNECTION

SL. 9-9 RASPORED PINOVA NA RS-232 PORTU

Page 183: PLC

Com_SLC/177

rastojanje. RS-232 komunikacioni port kod SLC kontrolera je kanal 0. To je 9-to pinsko D-

jezgro čiji je opis pinova dat na SL. 9-9. Razmena podataka između dva uređaja preko RS-232 interfejsa obavlja se preko linije prijema podataka (RDX – receive data line) i linije slanja podataka (TXD – transmit data line). Preostali signali služe za eventualno upravljanje prenosom podataka DTR (Data terminal ready) – izlazni signal koji ukazuje da je uređaj spreman za rad.

DSR (Data set ready) – ulazni signal koji ukazuje da je uređaj sa kojim se komunicira spreman za rad

RTS (Request to send) – izlazni signal koji ukazuje da uređaj želi da pošalje poruku.

CTS (Clear to send) – ulazni signal koji i koji označava da je uređaj sa kojim se komunicira spreman da primi poruku. (Ovaj signal se javlja kao odgovor na RTS signal).

DCD (Data carr ier detect) – signal se koristi samo u komunikaciji pomoću modema. U principu RS232 komunikacija omogućava dve vrste prenosa podataka

• Prenos bez kontrole komunikacije – "No handshake" – u okviru koga se prenos podataka obavlja bez ikakve provere da li je on uistinu i obavljen. Otuda se u ovom prenosu koriste samo RXD i TDX signali. DTR je uvek aktivan i RTS je uvek neaktivan. Predaja i prijem se odvijaju nezavisno od stanja DSR, CTS ili DCD signala. Ova specifikacija se koristi kada su SLC ovi direktno vezani na druge uređaje.

• Prenos sa kontrolom komunikacije – "Handshake" – u okviru koga se proverava da li je uređaj spreman da primi podatke, te se prenos obavlja samo ako je izvesno da se komunikacija može ostvariti. U cilju realizacije ove vrste prenosa koriste se upravljački signali RS232 porta.

Samo se po sebi razume da će način vezivanja uređaja zavisiti od toga koji se tip prenosa želi, odnosno od toga da li će se vezivati i linije koje prenose upravljačke signale. Kao što se vidi (Sl. 9-10) osnovni princip vezivanja je sastoji se u spajanju odgovarajućih ulaznih i izlaznih signala na portovima oba uređaja.

KOMUNIKACIJA SA HANDSHAKE-OM KOMUNIKACIJA BEZ HANDSHAKE-A

Uređaji koji ne podržavaju RS-232 direktno mogu se vezivati na ovu komunikaciju preko specijalnih interfejs modula. • DH-485/RS-232 Inerface module (KE) – "bridge" između DH-485 mreže i uređaja koji koriste

DF1 protokol

• DH-485 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.

• BASIC module (BAS) – ima dva konfigurabilna serijska porta za interfejs sa PC računarima, štampačim, modemima i drugim RS-232 uređajima. Pored toga ovaj modul ima i jedan DH-485 port. Module se programira pomoću jezika BASIC.

SL. 9-10 VEZIVANJE SLC KONTROLERA SA DRUGIM SLC KONTROLEROM, PC RAČUNAROM ILI ASCII UREĐAJEM PREKO RS232 PORTA

Page 184: PLC

Com_SLC/178

RS-232 interfejs podržava dva tipa serijskih komunikacionih protokola: DF1 i ASCII.

DF1 protokol obavlja razgraničenje poruka, kontroliše njihov prenos, detektuje greške i ponovo pokušava prenos ukoliko se utvrdi da je došlo do greške. On pripada klasi "peer-to-peer" link-layer protokolu, što znači da svi uređaji imaju ravnopravni pristup porukama koje se šalju preko RS-232 komunikacionog interfejsa. Takođe, ovaj protokol omogućava transparentnost podataka i simultani prenos u oba smera sa ugrađenim odgovorom (F1). U okviru ovog protokola SLC kontroleri podržavaju puni i poludupleks prenos, vezu sa DH485 mrežom, i komunikaciju preko radio modema.

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

Ovaj protokol podržava simultani prenos podataka između dva uređaja u oba smera (point-to-point protokol, Sl. 9-11). Kanal nula koji je konfigurisan za ovaj protokol može da se koristi za programiranje PLCa (spregnut sa PC računarom na kome se nalazi razvojni softver) ili, korišćenjem msg naredbe, za peer-to-peer komunikaciju

Kada SLC šalje poruku ona je u obliku "ugrađenog odgovora" (embedded responce), što znači da se odgovarajući simboli odgovora ubacuju u paket koji se šalje. Kada SLC prima poruku on igra ulogu

terminalnog uređaja (end device), zaustavlja privremeno prenos paketa ignorišući adresu izvora i odredišta koja je sadržana u paketu. Međutim, 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 računar sa kojim on komunicira može da primi paket sa ugrađenim odgovorom. U tom slučaju SLC će sačekati da primi taj odgovor, pre nego što

sam pošalje svoj odgovor.

9.6.1. KONFIGURACIJA KONTROLERA Karakteristike drajvera definišu se u okviru menija za specifikaciju kanala 0 (Sl.

9-12). Baude rate – izbor jedne od mogućih brzina prenosa 110, 300,600, 1200, 2400, 4800,9600,

19200 Par it i y – none ili even

Stop b its – 1, 1.5 ili 2

Source ID – decimalan broj koji se koristi kao adresa izvora u bilo kojoj poruci koju šalje ovaj

SL. 9-11 VEZIVANJE KANALA 0 PO PRINCIPU POINT-TO-POINT

SL. 9-12 MENI ZA KONFIGURACIJU DF1 PUNOG DUPLEKS PROTOKOLA

modem

modem

modem

modem

Page 185: PLC

Com_SLC/179

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

Contro l L ine – ako se ne kor ist i modem odabrat i No handshak ing, ako se kor ist i modem odabrat i Ful l duplex modem

Error detect ion – CRC i l i BCC

Embedded responses – enabled (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)

Dupl icate packet detect – ukoliko se odabere ova opcija onda procesor upoređuje primljeni paket sa poslednjom primljenom i obrađenom porukom. Ukoliko su obe poruke iste, procesor šalje ACK signal, ali ne obrađuje poruku ponovo.

Ack t imeout – period čekanja na Ack signal. Ukoliko se signal ne primi, procesor ponavlja zahtev slanjem Enq (enquire) signala.

9.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. 9-13. Na ovom dijagramu krugovi predstavljaju stanja u kojima se nalazi stanica koja inicira komunikaciju. Prelaz između stanja zavisi od ispunjenosti odgovarajućih uslova.

9.6.3. DIJAGNOSTIČKA DATOTEKA U dijagnostičkoj datoteci dobijaju se sve relevantne informacije o uspešnosti

obavljenih komunikacija (Sl. 9-14). Većina informacija u meniju je samorazumljiva. Potrebno je jedino da se napomene da DCD Recover parametar ukazuje ne broj padanja handshake linije.

Leder program aktivira se msg naredba

DF1 drajver formira paket

Drajver šalje paketStart ACK

tajmeraČeka ACK ili tajmaut

Drajver šalje paket

Start ACK

tajmeraČeka ACK ili tajmaut

ACK primljen

NAK primljen i ≤ “NAK retries”ACK tajmaut primljen I≤ “ENQ retries”send enquiry

Tabela podataka

NAK primljen i > “NAK retries” ili

ACK tajmaut primljen I> “ENQ retries”vrati error indikator

Primljen odgovorpošalji podatke

primljen “reply timeout”vrati error indikator

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

Page 186: PLC

Com_SLC/180

9.7. DF1 POLU-DUPLEKS PROTOKOL

DF1 polu-dupleks protokol podržava multi-drop single master/multiple slave mrežu 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 uređaje i od njih prima podatke. Prozivanje jednog uređaja realizuje se slanjem "poll packet"-a sa adresom odgovarajućeg slave uređaja. Ako uređaj 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 uređaj sve dok on ne indicira da nema više podataka za slanje. Nakon toga SLC master šalje ovom uređaju pakete koji su njemu namenjeni. Na taj način master podržava rutiranje paketa između slave uređaja ili komunikaciju između dva slave uređaja. 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 uređaja. Aktivni uređaji 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 uređaja (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.

SL. 9-14 DIJAGRAM TOKA PROCESA SLANJA ILI PRIJEMA PODATAKA U DF1 PUNOM DUPLEKSU

Page 187: PLC

Com_SLC/181

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

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 otpočeti čim se završi komunikacija sa slave stanicom koja je trenutno 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 poslane, pre nego što 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 pretpostavci 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.

SL. 9-15 ILUSTRACIJA KOMUNIKACIJE DF1 POLU-DUPLEKS STANDARD MASTER PROTOKOL

Page 188: PLC

Com_SLC/182

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. 9-16). Baude rate – izbor jedne od mogućih brzina prenosa 110, 300,600, 1200, 2400, 4800,9600, 19200

Par i t iy – none ili even

Stop b its – 1, 1.5 ili 2

Node address – jedinstvena adresa čvora (0 do 254).

Contro l L ine – 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. Error detec t ion – CRC ili BCC

Pol l ing Mode – 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 Standard, multiple message per scan

Dupl icate packet detect – ukoliko se odabere ova opcija onda procesor upoređuje primljeni paket sa poslednjom primljenom i obrađenom porukom. Ukoliko su obe poruke iste, procesor šalje ACK signal, ali ne obrađuje poruku ponovo.

Ack 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 prenosa (u jednom ili u drugom smeru). Da bi se to ostvarilo potrebno je u meniju definisati i sledeće parametre. RTS Off delay – 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)

RTS Send 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.

Message retr ies – broj puta ponovljenih pokušaja prenosa poruka ili dobijanja odziva pri pollingu.

Pre Transmit delay – Interval vremena koji prođe od momenta kada čvor ima poruku koju želi

SL. 9-16 MENI ZA KONFIGURACIJU DF1 POLU DUPLEKS STANDARDNOG MASTER PROTOKOLA

Page 189: PLC

Com_SLC/183

da emituje i utvrđivanja prisutnosti RTS signala.

Dijagram toka procesa prikazan je na Sl. 9-17.

MEHANIZAM OPSLUŽIVANJA PRIORITETA Ukoliko je odabran Standard, multiple message per scan tada je neophodno da se

definišu i prioriteti. Pr ior i ty High i Pr ior i ty Low – adresa poslednje i prve stanice koje se pozivaju sa prioritetom.

(Izbor prve stanice kao 255, ukida mogućnost prioritetnog pozivanja). Normal High i Normal Low – adresa poslednje i prve stanice za normalno pretraživanja.

(Izbor prve stanice kao 255, ukida mogućnost normalnog pozivanja).

Normal Pol l Group Size – 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 Sl. 9-18. 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.

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.

SL. 9-17 DIJAGRAM TOKA PROCESA SLANJA ILI PRIJEMA PODATAKA - DF1 POLU DUPLEKS STANDARD MODE

Page 190: PLC

Com_SLC/184

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. 9-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. Pretpostavimo 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. Pretpostavimo 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.

SL. 9-18 NAČIN POZIVANJA SLAVE STANICA U SKLADU SA PRIROITETOM I STATUSOM STANICE

Page 191: PLC

Com_SLC/185

DIJAGNOSTIČKA DATOTEKA

Pregled aktivnih stanica, kao i drugi podaci mogu se dobiti iz statusne datoteke procesora (Processor status)

PR. 9-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. Odgovarajući leder dijagram prikazan je na Sl. 9-21. Ukoliko se ne želi vremensko ograničavanje slanja, onda je nepotreban rang 0.

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

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

Page 192: PLC

Com_SLC/186

Page 193: PLC

Com_SLC/187

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

SL. 9-21 ILUSTRACIJA KORIŠĆENJA STANDARDNOG MASTER PROTOKOLA

SL. 9-22ILUSTRACIJA KOMUNIKACIJE DF1 POLU-DUPLEKS MESSAGE BASED MODE

Page 194: PLC

Com_SLC/188

mastera inicira više msg naredbi koje adresiraju različite slave stanice, one 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 al low 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.

• Message, al low 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 specificra polling 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.

9.7.3. DF1 POLU-DUPLEKS SLAVE PROTOKOL

KONFIGURACIJA KANALA Baude rate – izbor jedne od mogućih brzina prenosa 110, 300,600, 1200, 2400, 4800,9600,

19200

Par i t iy – none ili even

Stop b its – 1, 1.5 ili 2

Node address – jedinstvena adresa čvora (0 do 254).

Contro l L ine – 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.

SL. 9-23 MENI ZA KONFIGURACIJU DF1 POLU DUPLEKS MESSAGE BASED MASTER PROTOKOLA

Page 195: PLC

Com_SLC/189

Error detect ion – CRC ili BCC

EOT Suppression – ukoliko se želi 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 automatski podrazumeva da ukoliko slave stanica ne pošalje neku poruku onda to znači da i nema šta da pošalje. Problem je naravno u tome što se u tom slučaju ne mož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.

Dupl icate packet detect – 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.

Pol l t imeout – 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.

Message retr ies – broj puta ponovljenih pokušaja prenosa poruka ili dobijanja odziva pri pollingu.

Pre Transmit 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). Specifikacija ovog intervala je potrebna ukoliko slave u svom leder programu ima message naredbu.

SL. 9-24 MENI ZA KONFIGURACIJU DF1 POLU DUPLEKS SLAVEMASTER PROTOKOLA

SL. 9-25 INFORMACIJE KOJE SE DOBIJAJU IZ DIJAGNOSTIČKE DATOTEKE ZA DF1 POLU DUPLEKS SLAVE KOMUNIKACIJU

Page 196: PLC

Com_SLC/190

9.8. KORIŠĆENJE MODEMA ZA

SLC procesori koji podržatipove telefonskih (dial-up i leased line), radio i satelitskih modema. Za pointdupleks modem treba koristiti DF1 full duplex protkol. Za pointvezu treba koristiti Df1 half-duplex master i slave protokol. U tom slučuređaj može da se konfiguriše kao half

DH485 protokol ne može da se koristi za komunikaciju preko modema.

• Dial-up modemi Po pravilu, ovi modemi podržavaju DF1 puni

oba kraja veze biti konfigurisane za DF1 full

Veza se prekida pomoćsignal.

• Modemi za iznajmljene l in i je (Ovi modemi se koriste na iznajmljenim telefonskim linijama. Pri tome, iznajmljene

linije mogu biti povezane u pointpoint-to-multipoint topologiji u kojoj podržavaju polu dupleks topologiju izmeđmodema.

U point-to-point topologiji potrebno je konfigurisati SLC procesor za DF1 fullduplex protokol, pri čemu će control line parameter

U point-to-multipoint topologiji SLC se konfiguriše za DF1 halfslave protokol, pri čemu će control line parameterwithout continuous carrier.

• Radio modemi Radio modemi se mogu koristiti u point

dupleks ili poludupleks komunikaciju. Pored tto-multipoint topologiji koja podržava poludupleks komunikaciju.

Ukoliko se koristi pointje konfigurisati sve SLC-ove za DF1 fullparameter biti postavljen kao full duplex modem

Ukoliko se koristi pointje konfigurisati SLC-ove za DF1 halfzahtevaju RTS/CTS handshaking, konfigurisati

SL. 9-26 POINT-TO-POINT VEZA POMOĆ

ĆENJE MODEMA ZA DF1 PROTOKOLE

SLC procesori koji podržavaju RS-232 komunikaciju mogu se povezati za različup i leased line), radio i satelitskih modema. Za point

dupleks modem treba koristiti DF1 full duplex protkol. Za point-to-multipoint modemsku duplex master i slave protokol. U tom slučaju samo jedan

đaj može da se konfiguriše kao half-duplex master protokol. DH485 protokol ne može da se koristi za komunikaciju preko modema.

Po pravilu, ovi modemi podržavaju DF1 puni dupleks. To znači da ćoba kraja veze biti konfigurisane za DF1 full-duplex protokol, pri čemu ć

parameterpostavljen kao duplex modem to-point veza)

procesor treba da inicira uspostavljanje veze (dialASCII write naredba da bi se preneo "AT" dialup string (npr. ATDT 3619 789). Modem lost bit u statusnoj datoteci (S:5/14) obezbeđpovratnu intome 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

Modemi za iznajmljene l in i je (Leased- l ine modemi) ste na iznajmljenim telefonskim linijama. Pri tome, iznajmljene

linije mogu biti povezane u point-to-point topologiji u kojoj podržavaju puni dupleks ili u multipoint topologiji u kojoj podržavaju polu dupleks topologiju izmeđ

point topologiji potrebno je konfigurisati SLC procesor za DF1 fullcontrol line parameter biti postavljen kao full duplex modem.

multipoint topologiji SLC se konfiguriše za DF1 half-duplex master or control line parameter biti postavljen kao half duplex modem

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

multipoint topologiji koja podržava poludupleks komunikaciju. Ukoliko se koristi point-to-point topologija sa full-duplex radio modemima potrebno

ove za DF1 full-duplex protocol, pri čemu ćfull duplex modem.

Ukoliko se koristi point-to-point topologija sa half-duplex radio modemima potrebno ove za DF1 half-duplex master ili slave protocol. Ukoliko ovi modemi

CTS handshaking, konfigurisati control line parameter

POINT VEZA POMOĆU DIAL-UP MODEMA

232 komunikaciju mogu se povezati za različite up i leased line), radio i satelitskih modema. Za point-to-point puni

multipoint modemsku duplex master i slave protokol. U tom slučaju samo jedan

DH485 protokol ne može da se koristi za komunikaciju preko modema.

či da će stanice na čemu će control line

parameter biti postavljen kao full duplex modem (point-

point veza). Kada SLC

procesor treba da inicira uspostavljanje veze (dial-up) koristi se ASCII 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.

ću ASCII AHL naredbe kojom se privremeno obara DTR

ste na iznajmljenim telefonskim linijama. Pri tome, iznajmljene point topologiji u kojoj podržavaju puni dupleks ili u

multipoint topologiji u kojoj podržavaju polu dupleks topologiju između tri ili više

point topologiji potrebno je konfigurisati SLC procesor za DF1 full-full duplex modem.

duplex master or half duplex modem

point toplogiji koja podržava ili puni oga, ovi modemi se mogu povezati i u point-

duplex radio modemima potrebno mu će control line

duplex radio modemima potrebno duplex master ili slave protocol. Ukoliko ovi modemi

kao half duplex

Page 197: PLC

Com_SLC/191

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.

9.8.1. VEZIVANJE KONTROLERA SA MODEMOM U svim slučajevima sami SLC-ovi rade kao data terminal equipment (DTE), što

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 između DTE i DCE uređaja obavlja se preko linije prijema podataka (RDX – receive data line) i linije slanja podataka (TXD – transmit data line). Pored toga DTE uređaji imaju i sledeće linije za upravljanje modemima. RTS (Request to send) – izlazni signal koji ukazuje DCE uređaju da DTE želi da pošalje poruku. DTR (Data terminal ready) – izlazni signal koji ukazuje da je DTE uređaj spreman za rad.

CTS (Clear to send) – ulazni signal koji šalje DCE i koji označava da je DCE spreman da primi poruku koju DTE uređaj želi da pošalje preko modemske veze.

DSR (Data set ready) – ulazni signal koji ukazuje da je DCE uređaj spreman za operaciju (gubitak ovog signala prouzrokuje “modem-lost” stanje u SLC-u).

DCD (Data carr ier detect) – ulazni signal koji ukazuje da je noseći signal primljen i da se očekuje prijem podataka koji će biti prosleđeni DTE uređaju.

Pri vezivanju kontrolera sa modemom za komunikaciju sa kontrolom prenosa (Sl. 9-27) potrebno je obratiti pažnju na činjenicu da modem služi kao uređaj za prenos signala tako da se, za razliku od vezivanja dva DTE uređaja, pinovi na oba RS232 porta direktno spajaju.

Za ulogu master-a moguće je koristiti bilo polu-dupleks bilo puni-dupleks modeme. Međutim, samo polu-dupleks modemi mogu raditi kao slave uređaji.

Kao što je već rečeno, 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.

SL. 9-27 VEZIVANJE KONTROLERA SA MODEMOM ZA KOMUNIKACIJU SA KONTROLOM PRENOSA (HANDSHAKE)

Page 198: PLC

Com_SLC/192

○ Početak slanja poruke 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 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 od trenutka ispitivanja stanja. 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 se ovaj signal ne podigne za 1 sekundu, komunikacija se napušta.

Ukoliko neki modem nema CTS signal, potrebno je vezati RTS za CTS i koristiti najkraći mogući period čekanja.

○ Završetak slanja poruke 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.

9.8.2. UPRAVLJANJE SLANJEM I PRIMANJEM PORUKA Ukolika je odabrana opcija "handshake" realizacija slanja i prijema poruka obavlja

se u zavisnosti od stanja pojedinih upravljačkih signala. Koje se linije pri tome ispituju zavisi od modema koji se specificiran pri konfigurisanju odabranog DF1 protokola. Na raspolaganju se sledeće mogućnosti pri specifikaciji modema.

○ FULL-DUPLEX MODEM (opcija pri specifikaciji DF1 Full duplex protokola i DF1 Half-duplex master protokola)

○ HALF-DUPLEX MODEM WITH CONTINUOUS CARRIER (opcija pri specifikaciji DF1 Half duplex slave protokola)

○ HALF-DUPLEX MODEM WITHOUT CONTINUOUS CARRIER (opcija pri specifikaciji DF1 Half duplex slave i DF1 Half-duplex master protokola) Samo se po sebi razume da kontroler može obavljati slanje podataka samo ako

prima aktivne signale DSR i CTS (koji ukazuju da je modem spreman za rad i spreman da primi podatke). Pored toga Full-duplex modem zahteva i da signal DCD bude aktivan.

Kontroler, u sva tri slučaja, može obavljati prijem podataka samo ako su signali DSR i DCD aktivni.

U principu u sva tri slučaja DTR

signal je uvek aktivan. Kod Full-duplex modema aktivan je uvek i RTS signal. Za razliku od toga kod Half-duplex modema RTS signal se aktivira samo za vreme slanja poruke (i bilo kog programiranog kašnjenja pre ili posle prenosa). Ovo je prirodna posledica činjenice da se prenos podataka u jednom trenutku obavlja samo u jednom smeru.

Prenos podataka podrazumeva da je modem spreman za rad (signal DSR je aktivan). Međutim ako u toku rada signal DSR postane neaktivan obaraju se i signali

SL. 9-28 ISPITIVANJE SIGNALA PRI SLANJU PODATAKA

Page 199: PLC

Com_SLC/193

DTR i RTS 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, što znači da se ne mogu obavljati ni slanje ni prijem podataka (Sl. 9-28).

Aktiviranje signala DCD inicira prijem podataka. Ako signal 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 (Sl. 9-29).

Kad god su DSR i DCD zajedno aktivni modem lost bit se resetuje.

Potrebno je istaći da se razlika između polu dupleks modema "with continuous carrier" i "without continuous carrier" sastoji samo u tome što se u ovom drugom slučaju ne prati promena DCD signala, pa se u skladu sa time i ne obara DTR signal. Uprkos tome, aktiviranje signala DCD je i dalje

neophodno za prijem poruke. Modem lost bit će biti postavljen ako je DSR signal neaktivan.

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

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

PR. 9-5 USPOSTAVLJANJE VEZE PREKO TELEFONSKE LINIJE

Potrebno je uspostaviti komunikaciju preko modema sa uređajem koji je vezan na telefonsku liniju preko broja +381 63 123456.

Sledeći izloženi postupak formirana je, kao prvo, string datoteka čiji sadržaj je telefonski broj koji se šalje modemu awa naredbom (Sl. 9-30).

Leder program koji u potpunosti prati izložene korake

prikazan je na SL. 9-31.

SL. 9-29 ISPITIVANJE DCD SIGNALA PRI PRIJEMU PODATAKA

SL. 9-30 STRING DATOTEKA BROJ 10

DTR

RTS

DSR

CTS

DCD

>9-10s

l o st b i t

nema prijemaprijem

max 5-6s ili

Page 200: PLC

Com_SLC/194

Page 201: PLC

Com_SLC/195

9.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 obrađuju 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. Baude rate – izbor jedne od mogućih brzina prenosa 110, 300, 600, 1200, 2400, 4800, 9600, 19200

Par i t iy – none, even ili odd

Stop b its – 1, 1.5 ili 2

Data bi ts – 7 ili 8

Terminat ion 1 i 2 – izbor karaktera koji označava kraj linije u ARL i ABL ASCII naredbama (može se definisati i kao ASCII konstanta). Specificirati \ff ukoliko se ne želi oznaka za kraj linije.

SL. 9-31 LEDER PROGRAM ZA KOMUNIKACIJU PREKO TELEFONSKE LINIJE

SL. 9-32 MENI ZA KONFIGURACIJU ASCII PROTOKOLA

Page 202: PLC

Com_SLC/196

Append 1 i 2 – izbor karaktera koji označava kraj linije u ASCII AWA naredbi. Specificirati \ff ukoliko se ne želi ovaj karakter

Contro l L ine – 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)

RTS Off delay – 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)

RTS Send 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.

Delete mode – 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 Echo – može se postaviti on ili off

XON/XOFF – izbor softverskog handshakinga

Page 203: PLC

197

DO D ACI

Page 204: PLC

198

Page 205: PLC

Plc_DA_digUI/199

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 digitalnog signala je binarni (diskretni) signal čija 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 drugih aktuatora u zavisnosti od radnih uslova ili u funkciji vremena. U isto vreme, ovi signali se koriste i kao indikatori stanja ovih uređaja.

Bez želje da se upuštamo u detaljan pregled svih davača digitalnih signala i digitalnih izvršnih organa, izložiće se sa samo osnovne odlike prekidača kao digitalnih davača i solenoida koji se veoma često koriste kao izvršni

organi. Ovi elementi će se kasnije koristiti pri formiranju programa za PLC. Osnovna komponenta

diskretnog senzora i aktuatora je kontakt. U principu, kontakt može biti realizovan kao bilo koja vrsta prekidača, ili neka drugi elektro-mehanički, elektro-optički, pneumatski ili hidraulični uređaj koji ima dva stanja:

• zatvoren (closed) – provodi struju (odnosno propušta odgovarajuću fizičku veličinu)

• otvoren (open) - ne provodi struju (odnosno ne propušta odgovarajuću fizičku veličinu).

Kontakt može biti normalno otvoren (NO) ili normalno zatvoren (NC), pri čemu se izraz “normalno” odnosi na stanje u kome se kontakt nalazi pre nego što se delovanjem nekog spoljnog agensa promeni stanje kontakta. Na slici (Sl. A1) prikazana su dva tipična relejna kontakta, od kojih je jedan normalno otvoren a drugi normalno zatvoren. Naime, sve dok u kolu relea nema struje, kotve koje su

SL. A1 NO I NC KONTAKT UPRAVLJANI POMOĆU RELEA

SL. A2 PREGLED GRAFIČKIH SIMBOLA RAZLIČITIH KONTAKTA

Page 206: PLC

Plc_DA_digUI/200

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. A2. Potrebno je zapaziti da se ni relejni namotaj, ni dvopolož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 deaktiviranje 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 opterećenja) i kao kontaktor (za velika 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 izuzetno velikih napona ili struja, mogu se koristiti više stepeni relei. Nezavisno od realizacije, rele se može posmatrati kao električni prekidač čijim stanjem se upravlja pomoću drugog prekidača (npr. pomoću binarnog signala

koji dolazi iz kontrolera). Pored relea, često se koristi i

solenoid – još jedan elektromehanički aktuator, čjim radom se upravlja pomoću elektromagnetne 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:

• Jednosmerni 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 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 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

SL. A 3 JEDNOSMERNI SOLENOID

SL. A 4 DVOSMERNI SOLENOID

Page 207: PLC

Plc_DA_digUI/201

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

Page 208: PLC

Plc_DA_digUI/202

Page 209: PLC

Plc_mreze/203

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 industriji gde želja za automatizacijom celog proizvodnog procesa nameće potrebu za komunikacijom između 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 proizvođač 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 između računara jednog proizvođač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 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 iz 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 upravlja prenosom podataka, vrši kompresiju podataka, otklanja efekte poremećaja i

SL. B 1 RAZMENA PODATAKA IZMEĐU RAČUNARA

Page 210: PLC

Plc_mreže/204

obavlja druge funkcije koji doprinose efikasnosti komunikacije. Sa aspekta geografskog područja koje pokrivaju mreže se dele na tri kategorije:

○ Mreža širokog dometa (WAN – Wide Area Network) – obuhvata vel iko područ je; t ipičan pr imer ovakvih mreža je mreža telefonske kompanije;

○ Mreža srednjeg dometa (MAN – Metropol itan 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. B2). Telefonskih 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 ne određuje sam modem, već ona zavisi od 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 slike. Korišćenje tehnike širokopojasnog prenosa omogućava brzine i do 10Mbps.

SL. B2 KOMUNIKACIJA PREKO TELEFONSKIH LINIJA

Page 211: PLC

Plc_mreze/205

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 prenos – 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 ( i l i 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 neotporan na šumove, posebno na većim rastojanjima. U upotrebi su UTP (unshielded

twisted-pair) i STP (shielded twistied pair) parice.

• Koaksi jalni kabl (Co-ax) – izolovana bakarna žica obmotana čvrstim ili upletenim

SL. B3 BLOK ŠEMA ŽIČNIH VEZA

Page 212: PLC

Plc_mreže/206

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

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

• Mikrotalasni s istemi – su izuzetno dobar prenosni 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 s ignal i – 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. B4 ŠEMATSKI PRIKAZ RADIO I SATELITSKIH VEZA

SL. B5 SPEKTAR ELEKTROMAGNETNIH TALASA

Page 213: PLC

Plc_mreze/207

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 između 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 određuju komunikaciono ponašanje jednog entiteta, omogućavajući na taj način smislenu razmenu informacija između 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 softverskih 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 postojanje nekog protokola, razumljivo je da su u prvo vreme proizvođač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 ključ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 proizvođač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 proizvođača. Takvi su, između ostalih, ControlNet (Allen-Bradley), i niz "fieldbus" protokola kao što su Profibus, LonWorks, Interbus-S, Device Net, ARCNET, IEC/ISA SP50, Seriplex itd.

Među najpopularnijim protokolima za mreže širokog dometa su MODBUS, SCI RDACS, Control Applications (CA), L&N Conitel, TRW 9550, S70, 2000 itd. Mnogi proizvođač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.

Page 214: PLC

Plc_mreže/208

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 obezbeđuje 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 uređaje 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, određeni servisi koje obavlja predajnik obezbeđuju integritet poruke i tačnost prenosa (Sl. B6).

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.

Page 215: PLC

Plc_mreze/209

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

SL. B6 SEDMOSLOJNI OSI MODEL

Page 216: PLC

Plc_mreže/210

Da bi dva uređaja mogla da ostvare serijsku 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 rasprostranjenosti 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.

Page 217: PLC

Plc_mreze/211

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:

• Komutirani (switched) i l i dial-up servis – uspostavljanje veze između 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) – obezbeđuje stalnu vezu između 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 obezbeđuju komunikaciju i vrše kontrolu ispravnosti prenetih poruka. Sprega između FEPa i niza sporih čvorova u mreži ostvaruje se pomoću multipleksera. 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 uređaja 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 između različitih mašina u mreži.

• Repeater – pojačavač koji pojačava signale i prenosi paket bez ikakvih

promena

• Hub – je uređaj koji povezuje segmente mreže. Hub prosleđuje poruku koju prima (ne čitajući je) svakom uređaju 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 smislu ovim bi se postigao isti efekat, ali bi problem nastao ukoliko jedan od tih računara treba iz nekog razloga da se isključi.

SL. B7 ŠEMATSKI PRIKAZ WAN MREŽE

Bay Networks

SL. B9 LAN MREŽA SA HUB-OM

SL. B8 HUB I NJEGOV LOGIČKI SIMBOL

Page 218: PLC

Plc_mreže/212

• 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 obezbeđuje pravilan

redosled u njihovoj realizaciji. Switch ispituje adresu destinacije paketa i prosleđuje 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 radi na dva najniža sloja OSI modela, obezbeđujući povezanost fizičkog sloja i sloja veze podataka. To znači da on prebacuje saobraćaj sa jednog segmenta mreže na

drugi na osnovu adresa paketa. Bridge takođe ima i bafere za privremeni smeštaj paketa. Paketi se čuvaju kada dođe do zagušenja u mreži, da bi se naknadno kad se mreža rastereti prosledili dalje.

• Router – je " inteligentan" uređaj koji podržava vezu između 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 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 određuje najbolju putanju u mreži koja vodi ka tom odredištu. On tada menja okruženje paketa (ali ne i njegov sadržaj) tako da adresira sledeći ruter koji se nalazi na određenoj putanji prema krajnjem cilju.

• Gateway – se koristi za prenos podataka između dve mreže koje

koriste različite veze podataka i standarde mreže. On prima podatke sa jedne mreže, obrađuje ih da bi ih prilagodio formatu druge mreže i šalje ih preko te druge mreže. Neki gateway-i ovu operaciju izvode čisto hardverski (veoma brzo), dok neki koriste i odgovarajući softver što usporava njihov rad. Gateway radi na svih sedam slojeva OSI modela.

Bay Networks

SL. B12 VEZA DVA SEGMENTA LAN MREŽE POMOĆU

SL. B11 LAN MREŽA SA SWITCH-EM

3Com

SL. B13 POVEZIVANJE RAZLIČITIH MREŽA KOJE KORISTE ISTI PROTOKOL POMOĆU ROUTER-A

SL. B10 LOGIČKI SIMBOL ZA ISDN, ATM I WORKGROUP SWITCH

SL. B14 SIMBOLIČKE OZNAKE

Page 219: PLC

Plc_mreze/213

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.

ZVEZDA (STAR NETW ORK) U ovoj topologiji svi uređaji 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 između bilo kog uređaja i centralnog računara ne utiče na rad ostatka mreže. Kvar centralnog računara, međutim dovodi do gubitka 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čunarima, odnosno kad ostali

računari u mreži nemaju potrebe da međusobno komuniciraju.

PRSTEN (R ING NETW ORK) Svi uređaji 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 prenese na prsten. 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 u istom pravcu, pa tako ne može doći do kolizije.

Nedostatak je naravno prekid na vezi koji nastaje čim neki uređaj otkaže.

MAGISTRALA (BUS NETW ORK) Svi uređaji su povezani na zajedničku

magistralu. Svaki čvor ima svoju adresu i svaki uređaj može komunicirati sa bilo kojim uređajem na magistrali. Mreža je bidirekcionog

tipa, brzine 1 do 10 Mbps, njen rad je nezavisan od otkaza pojedinih uređaja, 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.

KLIJENT-SERVER LAN Ova vrsta mreže se sastoji od uređaja koji traže neke podatke – klijenti i uređaja

koji im pružaju podatke – serveri. Otuda se, od servera očekuje da ima WEB platformu,

SL. B15 VEZA RAČUNARA U PRSTEN

SL. B16 VEZA RAČUNARA U ZVEZDU

SL. B17 VEZA RAČUNARA PREKO MAGISTRALE

Page 220: PLC

Plc_mreže/214

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.

PEER-TO-PEER LAN Peer-to-peer4 komunikacija označava mrežu uređaja koji su potpuno ravnopravni

u smislu komunikacija i koji koriste isti mrežni protokol za razmenu podataka. Pri tome svaki od uređaja 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 komunikacijom 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 komunikacije koristi se u jednom broju računarskih mreža 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, 4 Peer – drug, ravnopravni partner

Page 221: PLC

Plc_mreze/215

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 trenucima ć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.

Page 222: PLC

Plc_mreže/216

Page 223: PLC

Plc_ind_mreze/217

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 proizvođači su počeli da ovim uređajima 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 proizvede 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ženjer č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 pogleda sa gledišta potreba za komunikacijom vidi se da

se one razlikuju od nivoa do nivoa. Pre svega, stanje uređaja na mašinama i druge

SL. C 1 NIVOI ORGANIZACIJE PROIZVODNJE

Page 224: PLC

Plc_ind_mreže/218

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 koncentrator 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 (Sl. C 2). Zapravo, najveći broj uređaja i nije imao niкakve sposobnosti za komunikaciju, te je PLC kao jedini mrežni uređaj, obavljao prikupljanje podataka sa ovih uređaja, kao i zadavanje komandi.

Page 225: PLC

Plc_ind_mreze/219

Veoma dugo, bilo je gotovo nemoguće povezati opremu različitih proizvođača. Samo se po sebi razume da je to stvaralo izuzetne teškoće u automatizaciji celog pogona ili više pogona. Tako je na primer, početkom osamdesetih godina prošlog veka, u industriji automobila General Motors (GM), bilo desetine hiljada uređaja proizvedenih od strane više od 30 različitih proizvođača, koji gotovo uopšte nisu bili u stanjau da međusobno komuniciraju. Otuda nije ni čudo što je baš iz GM-a potekla prva ideja o formiranju standardizovanog protokola za komunikacije. Naime, kada su ustanovili da je sa finansijske tačke gledišta gotovo nemoguće da se angažuju stručnjaci koji bi formirali odgovarajući softver koji bi omogućio komunikaciju različith uređaja, oni su pokrenuli inicijativu za formiranje MAP protokola (Manufacturing Automation Protocol – protokol za

automatizovanu proizvodnju). Osnovna ideja je bila da će kada budu 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).

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

SL. C 2 VEZIVANJE UREĐAJA PO "MASTER/SLAVE" PRINCIPU

Page 226: PLC

Plc_ind_mreže/220

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 uređaja zamišljene su da obezbeđuju prenos kratkih poruka dužine nekoliko bajtova i dele se na

○ bit-wide(1 do 8 bitova za jednostavne digitalne uređaje)

○ byte-wide (oko 50 bajtova dugačke poruke).

Najveći broj uređaja koji se priključuje na ovu vrstu magistrale je digitalan (senzori, tasteri, granični prekidači, itd.), iako se mogu priključiti i analogni uređaji koji zahtevaju mali broj bajtova (termospregovi, drajevri motora, kontroleri temperature, itd.). U principu, na ovim magistralama se sreću digitalni U/I uređaji, blok U/I uređaji (složeni uređaji koji imaju nakoliko aktuatora koji se zajednički kontrolišu, ili nekoliko senzora čiji se izlazi kombinuju), ili eventualno "inteligentni" uređaji (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 "inteligentni uređaji" koji koriste analogna merenja i upravljačke signale (servomehanizmi ili upravljačke jedinice kojima se šalju reference ili parametri). Na ove magistrale se priključuju i uređaji koji imaju sposobnost "peer-to-peer" komunikacije bilo na bazi rotirajućeg žetona bilo na bazi višestrukog emitovanja.

Potrebno je da se istakne da za svaki od ova dva tipa 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

SL. C 3 VEZIVANJE UREĐAJA NA INDUSTRIJSKE MAGISTRALE

SL. C 4 PREGLED KORIŠĆENJA INDUSTRIJSKIH MAGISTRALA

Mainframe

0

Uprava

Pogon

Ćelija

Mašina

Uređaj

Radna stanica PC

PC

Informaciona mreža

Procesna magistrala

Magistrala uređaja

Ćelijski kontroler

Y-A

xis

Fie

ld B

us

PR

OFIB

US

EC

HE

LO

N

Modbus P

lus, D

H+

PR

OFIB

US

FM

S

PR

OFIB

US

DP

Devic

eN

et

SD

S

Inte

rBus-S

AS

I

Seriple

x

Page 227: PLC

Plc_ind_mreze/221

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 predstavlja 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 uređaja i blok U/I, uslovila je da je ova vrsta komunikacije razvijana namenski za određenu klasu proizvoda, što znači da retko podržava opremu različitih

proizvođač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 Vezivanje uređaja kao udaljenih U/I). Jedan SN modul može da podrži vezivanje do 16 uređaja koji imaju mogućnost za "slave"

SL. C 5 VEZIVANJE UREĐAJA KAO UDALJENIH U/I

SL. C 6 RAZMENA PODATAKA SA UDALJENIM U/I UREĐAJIMA

Page 228: PLC

Plc_ind_mreže/222

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 između 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 uređaja, 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 između uređaja 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 uređaja.

Komunikacija SDN skenera sa uređajima koji su vezani u čvorovima mreže obuhvata očitavanje podataka, upisivanje komandi, prenošenje (download) podataka o konfiguraciji ili očitavanje statusa uređaja. 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 odgovarajuć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 drugih medija kao što su optički kablovi, radio komunikacija, mreža mobilne telefonije itd.

Postoje dve verzije Modbus protokola:

• ASCII prenos – svaki bajt u poruci se prenosi kao 2 ASCII karaktera; ovaj prenos dozvoljava da interval vremena između prenosa dva karaktera ude do 1 sekunde.

• RTU prenos -. svaki bajt u poruci se prenosi kao dva četvorobitna heksadecimalna broja.

Format MODBUS poruke prikazan je na Sl. C 7.

SL. C 7 FORMAT MODBUS PORUKE

Tišina Adresa Funkcija CRCPodaci

3.5

karaktera

Modbus RTU

Tišina

1 bajt

(0-247)

1 bajt

(1-255)

parovi od

po 2 bajta2 bajta

3A (hex) Adresa Funkcija LRCPodaci

Modbus ASCII

CR

0D (hex)

0-2471 bajt

(1-255)

parovi od

po 2 bajta1 bajt

LF

0A (hex)

Page 229: PLC

Plc_ind_mreze/223

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 digitalne 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 digitalnih 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 poslati poruku 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 primljenih 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 razmen e žetona Ove mreže pripadaju klasi determinističkih mreža, jer se svakom čvoru može

garantovati pravo na emitovanje u određenim vremenskim intervalima. Pri tome se maksimalno vreme čekanja pre otpočinjanja emitovanja određuje 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 uređaja na rastojanju od 1219m.

Mreža je zasnovana na RS 485 standardu nad kojim je nadgrađen Allen Bradley protokol, koji uključuje token ring (IEEE 802.5) standard.

DH485 protokol podržava dve klase uređaja: 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 dođe 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 pronađe sledećeg sukcesora, povećavajući adresu primaoca.

Maksimalna adresa koju će inicijator tražiti pre nego što ponovo počne od nultog

Page 230: PLC

Plc_ind_mreže/224

čvora je vrednost koja je zabeležena kao "maksimalna adresa čvora". Ovo je konfigurabilni parametar (od 0 do 31). Dozvoljene 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ćana je obezbeđivanjem mogućnosti dvostruke veze između č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 prosleđuje sledećem čvoru koji je njegov logički sledbenik.

Za promenu emitera koristi se metod implicitnog prosleđivanja ž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

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

SL. C 8 FORMAT OKVIRA CONTROLNET PORUKE

SL. C 9 PRISTUP MEDIJU KOD CONTROLNET MREŽE

Page 231: PLC

Plc_ind_mreze/225

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 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šest rukog 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 uređaj može da bude i proizvođač i korisnik poruke.

CAN je serisjkii komunikacioni protokol koji je razvijen za potrebe automobilske industrije. Pokazalo se međutim 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 određivanje 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

SL. C 10 FORMAT DEVICENET (CAN) PORUKE

Page 232: PLC

Plc_ind_mreže/226

slanjem poruke. U skladu sa time, kad počne emitovanje podatka ono 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) Eternet je stohastička mreža, što znači da se ni jednom čvoru ne garantuje neko

određeno vreme emitovanja. U principu svaki čvor koji ima neku poruku pokušava da obavi komunikaciju sve dok mu to ne pođe 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 izmenjena. Ukoliko dođe 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 Eternet 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, Eternet 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 uključe preambula i delimiter. Budući da se ne zna koliki će biti podatak, Eternet format

obezbeđuje 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.

SL. C 11 FORMAT ETERNET PORUKE

Page 233: PLC

Plc_ind_mreze/227

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 (M2M5) komunikacija neophodne su tri grupe elemenata: • servisi – koji određuju način prenošenja informacija • uređaji – pomoću kojih se realizuje prenos

5 М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

Page 234: PLC

Plc_ind_mreže/228

• softver – koji omogućava komunikaciju između uređaja i njihovo povezivanje na neke druge mreže.

SERVISI ZA PRENOŠENJE INFORMACIJA6 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, otpornosti 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 uspostavlja 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

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

Page 235: PLC

Plc_ind_mreze/229

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 komunikaciju daleko složeniji. Naime, pretpostavka 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 razvijaju 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.

PC sa

GSM Control

ili WAP

GSM modem

operater

LAN mreža

GSM modem

GSM mreža

SMS

GSM-data

GPRS

OPLC

sa GSM portom

Firewall TCP/IP

internet

DH-485 mreža

SL. C 12 ŠEMATSKI PRIKAZ ELEMENATA GSM MREŽE I NJENOG POVEZIVANJA SA DRUGIM MREŽAMA

Page 236: PLC

Plc_ind_mreže/230

Page 237: PLC

SCADA/231

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 opservacije 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 eksperimenata 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šavao njihovim nekontrolisanim padom, teško je i očekivati da bi, sve i da je bilo prostornih mogućnosti, inženjeri 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 usavrš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

Page 238: PLC

Scada /232

bila jednosmerna. Centralna stanica je primala 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 nepremostivih 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 modeliranje 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 telemetrijske 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.

Page 239: PLC

SCADA/233

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 servomehanizme 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 proizvođač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ženjera upravljanja da detaljno poznaje sam računar, njegov mašinski jezik i operativni sistem, kao i industrijske U/i uređaje koji se na njega vezuju. U aplikativnom smislu miniračunar je doveo do razvoja različitih optimizacionih tehnika za realizaciju supervajzorskog upravljanja, kao i tehnika obrade po-dataka 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 regula-torima ili integro-diferencijalnim kompenzatorima. Efekat koji bi se dobio zatvaranjem samo jedne adaptivne ili optimalne sprege nije bio dovoljan u poređenju sa cenom instali-rane 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ženjeri upravljanja dočekali su raširenih ruku. Konačno se došlo do uređaja 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 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ženjera upravljanja da projektuju sisteme za rad u realnom vremenu, ali je na to izvesno uticala i činjenica da je primena mikroračunara, koji

Page 240: PLC

Scada /234

su imali samo rudimentarni operativni sistem i asembler, bila izuzetno složena i odvraćala i one najambicioznije od nekih složenijih nadzorno-upravljačkih zahvata

U nastojanju da se mikroračunari učine što prisutnijim u procesnoj industriji, proizvođač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 obrađuju 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 uređaja 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ženjeri 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 između centralne i udaljenih stanica (Sl. D 1). Već iz same definicije je jasno da ovakav sistem ima nekoliko hijerarhijski izdvojenih celina:

• Merna oprema i izvrš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 modul i – 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 informacije centralnoj stanici i prima komande od nje.

• Sistem za komunikaci ju – 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

Page 241: PLC

SCADA/235

procesom. U zavisnosti od složenosti celog sistema, može postojati i više centralnih stanica.

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čer-skim stanicama.

• SCADA industr i jske 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

CONSOLE

Catalyst 2948G-L3

P SI R PSU

1 3 5 7 9 1311 15 211 917 23 2 725 29 31 39373533

AUX

21 65 87 109 1 211 1413 1615 1817 2019 2221 2 423 2625 2827 3029 323 1 343 3 3635 3 837 403 9 424 1

41 43 45 4 7

444 3 4645 484743

10/ 100/ 100 ET HE RN ET

LA YER 3 S WIT CH

STA TU S

49

50

5049

1000 B ase - X

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

Page 242: PLC

Scada /236

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 događaje.

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

SL. D 2 BLOK ŠEMA TIPIČNE UDALJENE STANICE

Page 243: PLC

SCADA/237

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 određenim događajima 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 obrađenih podataka vrši se daljinsko zadavanje komandi, definišu se i prenose referentni signali, zadaju se recepture, sinhronizuju funkcije pojedinih podsistema, određuju 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 između procesne i upravljačke mreže formiraju operatorske stanice preko kojih operator upravlja i nadzire deo postrojenja. Na nivou između 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.

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.

Page 244: PLC

Scada /238

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 događaje.

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 oslobađa zamornog praćenja tabelarno prikazanih podataka i vraća ga u uobičajeno okruženje vizuelnih informacija 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 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

Primarni SCADA Server

SecundarniSCADA Server

Operatorska stanica

Operatorskastanica

Skladšte podataka

Supervajzorski displej

Firewall

Štampač

SCADA centralna stanica 1

SCADA WEB brwoser

Centralna stanica

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

Page 245: PLC

SCADA/239

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. • Događaji - matematička ili logička operacija nad podacima čija istinosna vrednost ukazuje na nastanak događaja. Kao rezultat detekcije događaja sistem izvršava odgovarajuću komandu. Softerom se određuje 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 pretpostavlja 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 pretpostavlja 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 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.

Page 246: PLC

Scada /240

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

parametara. U SCADA alatima 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 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 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.

SL. D 4 SCADA EKRAN ZA PRAĆENJE RADA HEMIJSKOG REAKTORA

SL. D 5 GRAFIČKI PRIKAZ PROMENLJIVIH VELIČINA

Page 247: PLC

SCADA/241

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

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) između 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

SL. D 6 SCADA EKRAN ZA ZADAVANJE RECEPTURE

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

Page 248: PLC

Scada /242

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 gubi razlika

između ove dve vrste razmene podataka. Operatorski terminal omogućava komunikaciju između čoveka-operatera i

računara7. 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 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.

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

SL. D 8 ŠEMATSKI PRIKAZ OPERATORSKOG TERMINALA

Page 249: PLC

SCADA/243

• 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. • OPLC – Operatorski terminal sa PLC-om (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 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

SL. D 9 OPLC TERMINALI FIRME OMITRONICS

Page 250: PLC

Scada /244

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.