Osnove Automatskog Upravljanja II Polugodiste

Preview:

Citation preview

1

Trendovi u automatizaciji procesa U današnjem industrijskom okruženju obično smo suočeni sa potrebom nadzora i

upravljanja raznim procesima. U najprostijem slučaju to znači da je proces opremljen sa nekom vrstom uređaja za merenje za potrebe nadzora i nekom vrstom uređaja za upravljanje. Opremljen tim alatima, određeni sistem može kontrolisati proces za koji je odgovoran.

Prve ideje o primeni računara kao sastavnih delova sistema za upravljanje procesima javljaju se tokom 50-tih godina dvadesetog veka, a prvi računarski sistem proizveden namenski za upravljanje procesima potiče iz 1954. godine i korišćen je za automatsko upravljenje letilicom. Primat instalacije računara u industriji pripada elektrodistribuciji u državi Luizijana (SAD), koja je 1958. godine pustila u rad računar za praćenje i nadzor rada električne centrale u mestu Sterling. Prvo računarsko upravljanje nekim postrojenjem vezuje se za naftnu kompaniju Texaco, koja je instalirala računar u rafineriji u Port Arturu (SAD) 1959. godine i tada je ostvareno upravljanje u zatvorenoj sprezi. Ideja o formiranju nadzorno-upravljačkih računarskih sistema stara je više od pola veka. Uprkos prvim uspesima, primena računara nije zabeležila neki spektakularni napredak. Tokom 60-tih 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 problemi 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.

Formiranje prvih mikroračunara početkom 70-tih godina predstavlja pravu revoluciju u procesnoj primeni računara. U jesen 1971. godine Intel izbacuje na tržište mikroprocesor 4004. Ubrzo zatim sledi sistem Intel 8008, pa Motorolla 6800, Z-80 itd. 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.

Činjenica da je mikroračunar malih dimenzija i niske cene inžinjeri 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žinjera upravljanja da projektuju sisteme za rad u realnom vremenu, ali je na to izvesno uticala i činjenica da je primena mikroračunara, koji su imali samo rudimentirani operativni sistem i asembler, bila izuzetno složena i odvraćala je 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 najrasprostranjeniji, a sa druge relativno jednostavni za programiranje. Tako se prirodno došlo do razvoja PLC-ova (Programmable Logic Controller - programabilni logički kontroler) namenjenih prvobitno za zamenu logičkih kola i sekvencijalnih elemenata koji su bili realizovani pomoću banke releja, tajmera, brojača i drugih elemenata automatizacije karakterističnih za vreme pre PLC-ova. Postepeno repertoar operacija PLC-a se širio i uključivao i složenije operacije koje je zahtevala realizacija digitalnog upravljanja.

2

Razvoj PLC-ova, kao računarskih uređaja koji se sprežu direktno sa pojedinim delovima postrojenja, neminovno je vodilo ka razvoju distribuiranih upravljačkih sistema. U prvo vreme na vrhu piramide bili su miniračunari, dok su PLC-ovi imali ulogu samo akvizicije podataka i prenošenja komandi. Kasnije su miniračunari zamenjeni industrijskim PC računarima, dok su PLC-ovi obogaćeni složenijim funkcijama. U svakom slučaju, ponovo se otvorilo pitanje koordinacije i nadzora. Dakle, posle gotovo pola veka od prve ideje da se računar primeni za formiranje nadzorno-upravljačkog sistema, inžinjeri upravljanja našli su se gotovo na samom početku, istina u potpuno izmenjenim tehnološkim uslovima i otpočeli sa projektovanjem SCADA sistema.

3

Programabilni logički kontroler (PLC)

1. Osnovna struktura PLC-a Prema standardizaciji Udruženja proizvođača električne opreme (The National Electrical

Manufacturers Association -NEMA) programabilni logički kontroler je definisan kao: “Digitalni elktronski uređaj koji koristi programabilnu memoriju za pamćenje naredbi kojima se zahteva izvođenje specifičnih funkcija, kao što su logičke funkcije, sekvenciranje, prebrojavanje, merenje vremena, izračunavanje, u cilju upravljanja različitim tipovima mašina i procesa preko digitalnih i analognih ulazno-izlaznih modula.”

Prvobitno PLC je zamišljen kao specijalizovani računarski uredjaj koji se može programirati tako da obavi istu funkciju kao i niz logičkih ili sekvencijalnih elemenata koji se nalaze u nekom relejnom uređaju ili automatu. Postepeno, obim i vrsta operacija koju može da obavi PLC proširena je uljučivanjem složenijih funkcija potrebnih za direktno digitalno upravljanje nekim sistemom.

Nezavisno od repertoara funkcija, od samog početka projektovanja PLC-a, vodilo se računa o tome da on treba da radi u krajnje nepovoljnim klimo-tehničkim uslovima koji vladaju u industrijskom okruženju i da treba da bude dovoljno fleksibilan u smislu prilagođavanja različitim izmrnama na procesu. Otuda je PLC projektovan kao izuzetno pouzdan modularan uređaj koji se veoma lako održava i programira. Pored toga, najveći broj metoda za programiranje PLC-a zasniva se na grafičkom metodu - lestvičasti logički dijagram – koji je već dugi niz godina u upotrebi u industriji pri projektovanju logičkih i sekvencijalnih relejnih uređaja.

Funkcionalna organizacija PLC-a prikazana je na slici Sl. 1. Procesorski modul sadrži centralnu jedinicu i memorju. U okviru ovog modula smeštaju

se i program i podaci i odatle se upravlja radom celog sistema. Naziv izlazni i ulazni moduli se odnosi na digitalne ulaze i izlaze preko kojih se primaju binarni signali sa senzora, odnosno zadaju binarni signali pojedinim aktuatorima, dok specijalni U/I moduli obuhvataju analogne U/I kao i module posebne namene kao što su brzi brojač,

4

pozicioni servo sistem, PID regulator itd. Komunikacioni moduli obezbeđuju spregu sa komunikacionom opremom preko koje se razmenjuju podaci sa drugim računarskim uređajima u mreži i/ili operatoriskim uredjajima preko kojih se PLC programira i nadzire njegov rad.

PLC se sastoji iz šasije (rack) koja ima određeni broj slotova u koji se stavljaju pojedini moduli kao što je to ilustrovano na slici Sl. 2 . Prvi dva slota u šasiji zauzimaju uredjaj za napajanje i procesorski modul, dok je raspored modula u preostalim slotovima proizvoljan. U zavisnosti od broja modula, PLC može imati i više od jedne šasije. Svaka šasija ima sopstveno napajanje, dok se procesorski modul nalazi samo u prvoj šasiji. Programabilini logički kontroleri iz familije Allen Bradley SLC 500 Modular Controllers mogu imati najviše tri šasije sa najviše 30 slotova. Pri tome, postoje šasije sa 4, 7, 10 i 13 slotova.

Kao što se vidi, PLC se razlikuje od računarskog sistema opšte namene po tome što nema spoljnu memoriju (diskove), kao i niz standardne ulazno/izlazne opreme. Pored toga, njegov operativni sistem je jednostavniji i pruža komparativno manje mogućnosti od računara opšte namene. Zapravo, PLC je koncipiran i projektovan za jedan relativno uzan i jasno definisan obim poslova vezanih za nadzor i upravljanje pojedinim uređajima, što je rezultovalo u njegovoj izuzetnoj efikasnosti i jednostavnosti. U izvesnom smislu, područje primene PLC-a isto je kao i za specijalizovane mikroračunarske kontrolere ili signal procesore. Ključna razlika leži u činjenici da korišćenje PLC-a ne zahteva od korisnika gotovo nikakvo predznanje o arhitekturi mikroračunarskih sistema i programiranju. Drugim rečima, korisnik PLC-a je u najvećoj mogućoj meri oslobođen rešavanja različitih problema vezanih za čisto računarski aspekt, kao što su promena ili dodavanje U/I jedinica, vezivanje u računarsku mrežu, razema podataka i sl. i može da se u punoj meri koncentriše na projektovanje same aplikacije.

Može se slobodno reči da se PLC od svih drugih računarskih uredjaja slične namene razlikuje po svom operativnom sistemu, koji je skrojen tačno za određenu vrstu primene. Naime, predpostavlja se da će u svojoj osnovnoj formi, PLC biti korišćen za realizaciju izvesnih logičkih funkcija koje preslikavaju signale sa senzora u signale koji se prenose na aktuatore. Otuda se od PLC-a očekuje da periodično očitava (unosi) signale sa senzora, izvršava određen broj aritmetičko-logičkih operacija (u skladu sa zadanom funkcijom) čiji rezultati se prenose na izvršne organe ili neke druge indikatorske uređaje. Pored toga, sa istom ili nekom drugom učestanošću, PLC treba da održava komunikaciju (razmenjuje podatke) sa nekim drugim računarskim sistemima u mreži.

5

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. 3. Sken ciklus započinje sa ulaznim skenom u okviru koga PLC očitava sadržaj ulaznih linija (registara ulaznih modula). Očitani podaci se prenose u odredjeno područje memorije – slika ulaza. Zatim se aktivira programski sken u okviru koga procesor izvršava programske naredbe kojima su definisane odgovarajuće aritmetičko-logičke funkcije. Podaci (operandi) koji se koriste u programskim naredbama uzimaju se iz memorije i to iz područja označenog kao slika ulaza (ako su 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 isljučivo sa memorijom (Sl. 4).

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 povezani sa PLC-om. Nakon toga, operativni sistem dovodi PLC u fazu održavanja u okviru koje se ažuriraju interni časovnici i registri, obavlja upravljanje memorijom kao i niz drugih poslova vezanih za održavanje sistema, o kojima korisnik i ne mora da bude informisan. U zavisnosti od tipa procesora ulazni i izlazni sken ciklus izvršavaju se u vremenu reda mili sekundi (od 0.25 ms do 2,56 ms). Trajanje programskog skena, svakako zavisi od veličine

6

programa. Osnovni sken ciklus može biti modifikovan pomoću zahteva za prekid ili nekih drugih

specijalnih programskih naredbi o kojima đe kasnije biti više reči. Gledano potpuno opšte, od korisnika PLC-a se očekuje da, u zavisnosti od aplikacije koju

namerava da razvije, izvrši izbor ulaznih, izlaznih komunikacionih i specijalnih modula, dakle da odabere strukturu PLC-a i da formira program obrade podataka. Sve ostale aktivnosti obavljaće i nadzirati operativni sistem PLC-a.

2. SLC 500 Procesorski modul 1. Osnovne karakteristike Kao što je već rečeno procesorski modul sadrži centralnu procesorsku jedinicu (CPU) i

memoriju. Centralna jedinica obuhvata aritmetičko-logičku jedinicu (ALU), registre i upravljačku jedinicu. U funkcionalnom smislu centralna jedinica se bitno ne razlikuje od centralne jedinice bilo kog mikroračunara opšte namene. Osnovna razlika se ogleda u skupu naredbi koji je odabran tako da se zadovolje osnovni zahtevi u pogledu korišćenja PLC-a. Osnovne karakteristike procesorskog modula izražavaju se preko sledećih elemenata. 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 uredjaja za spregu (komunikaciong interfejsa) koji podržavaju različite topologije mreža i različite komunikacione protokole.

Opcije trajnog pamćenja - odnose se na raspoloživost različitih tipova memorijskih EPROM modula koji obezbeđuju trajno pamćenje podataka. 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.

Specifikacija SLC 5/01 SLC 5/02 SLC 5/03 SLC 5/04 Memorija 1K Ul ili 4K DW

4K Ul ili 16K DW 4K Ul ili 16K DW 12K Ul i 4K DW 12K Ul i 4K DW

28K Ul i 4K DW 60K Ul i 4K DW

Lokalni U/I 256 digitalnih 480 digitalnih 960 digitalnih 960 digitalnih Udaljeni U/I nema Kapacitet zavisi o

memorije - najviše može biti

d vrste napajanja i 4096

l 4096 i l

veličine programske za

Trajno pamćenje

EEPROM ili UVPROM

EEPROM ili UVPROM

Fleš EPROM Fleš EPROM

Tipično vreme programskog skeniranja

8 ms/K 4.8 ms/K 1 ms/K 0.9 ms/K

Izvršavanje bit naredbe

4 µs 2.4 µs .44 µs .37 µs

Broj mašinskih naredbi

52 71 99 99

7

U tabeli T. 1 dat je pregled osnovnih karakteristika procesora SLC 5. Oznaka “UI” odnosi se na “naredbe korisničkog programa”, dok je sa “DW” označena “podatak dužine jedne reči”. Potrebno je da se istakne da su iz tabele izostavljeni podaci koji se odnose na komunikacione opcije. O njima će biti reči kasnije kada budu objašnjenji osnovni aspekti povezivanja SLC-ova u računarsku mrežu.

2. Organizacija RAM memorije 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 program files (programske datoteke) i data files (datoteke podataka).

Skup programa i datoteka podataka koje su formirane za jednu aplikaciju čini processor file (procesorsku datoteku). Ona sadrži sve naredbe, podatke i specifikaciju modula koji su relevantni za datu aplikaciju, odnosno korisnički program. Procesorska datoteka čini jednu celinu koja se može prenositi sa jednog procesorskog modula na drugi, sa odnosno na EPROM memorijski modul, kao i operatorski terminal. To zapravo znači da se jedna aplikacija može razviti na jednom sistemu i zatim u celini preneti i koristiti na drugom sistemu. Programske datoteke

Programske datoteke sadrže,informacije o samom kontroleru, glavni korisnički program i potprograme. Svaka aplikacija (procesorska datoteka) mora da ima sledeće tri programske datoteke:

System Program – sistemski program (file 0) - sadrži različite informacije o samom sistemu kao što su tip proceosra, konfiguracija U/I modula, ime procesorske datoteke, lozinku i niz drugih relevantnih podataka.

Reserved – datoteka rezervisna za potrebe operativnog sistema (file 1) Main Ladder Program – glavni leder program (file 2) – program koji formira sam korisnik i u okviru koga se definiše niz operacija koje SLC treba da izvede.

Subroutine Ladder Program - potprogrami (file 3 - 255) – korisnički potprogrami koji se aktiviraju u skladu sa naredbama za njihovo pozivanje koje se nalaze u glavnom programu. Datoteke podataka

Datoteke podataka sadrže podatke koji se obradjuju pomoću naredbi leder programa. Pri tome se pod pojmom podaci podrazumevaju konvertovane (numeričke) vrednosti signala koji se preko ulazno/izlaznih modula unose u konrtoler, ili se iz kontrolera prenose na izlazne uređaje, kao i interne promenljive koje se koriste kao operandi u različitim operacijama.

Datoteke podataka organizovane su u skladu sa tipom promenljivih koje sadrže. To zapravo znači da jedna datoteka sadrži samo jedan tip (vrstu) podataka. Jedna procesorska datoteka može da ima najviše 256 datoteka podataka.

3. Organizacija datoteka podataka Tipovi promenljivih i datoteka

Osnovna karakteristika datoteke podataka je njen tip. Kao što je već istaknuto tip datoteke, zapravo ukazuje na vrstu promenljivih koje se u njoj pamte. To nadalje podrazumeva da tip datoteke ujedno odrđeuju i njenu organizaciju, koja zavisi od vrste podatka i usvojenog načina za njegovo prikazivanje u računaru.

Jedna datoteka se označava pomoću rednog broja, koji jednoznačno određuje mesto te datoteke u nizu datoteka podataka koje se nalaze u jednoj procesorskoj datoteci i slova kojim se identifikuje tip datoteke. Prvih 9 datoteka imaju unapred definisan tip koji ne može da se menja. Tipove preostalih datoteke korisnik sam odabira i definiše u skladu sa aplikacijom koju razvija.

8

File 0 – Tip O - output (izlaz) – sadrži sliku izlaza; sadržaj datoteke se prenosi na izlazne linije za vreme izlaznog skena. File 1 – Tip I - input (ulaz) - sadrži sliku ulaza; u ovu datoteku se za vreme ulaznog skena

smeštaju vrednosti sa ulaznih linija. File 2 – Tip S - status - sadrži podatke vezane za rad kontrolera. Pregled značenja pojedinih

bitova u ovoj datoteci dat je u posebnom dodatku (Dodatak S). File 3 – Tip B - bit – sadrži interne promenljive bit tipa. File 4 – Tip T - timer (časovnik) - sadrži podatke koji se koriste za interne časovnike. File 5 – Tip C - counter (brojač) - sadrži podatke koji se koriste za interne brojače. File 6 – Tip R - control (upravljanje) – sadrži dužinu, položaj pokazivača i bitove statusa za

određene naredbe kao što su naredbe za pomeranje sadržaja registara i sekvenci. File 7 – Tip N - integer (celobrojna) – sadrži podatke celobrojnog tipa. File 8 – Tip F - floating point (realna) - sadrži podatke predstavljene u tehnici pokretnog zareza

kao 32-bit brojeve u opsegu (±1.1754944e-38 to ±3.40282347e+38) - ovo važi samo za SLC 5/03 i SLC5/04.

File 9 do file 255 – Tip definiše korisnik - korisničke datoteke – ove datoteke definiše korisnik kao datoteke tipa B, T, C, N. Za procesore tipa SLC 5/03 i SLC 5/04 korisnik može da definiše i datoteke tipa F, St -

string, A - ASCII. Pored toga datoteka 9 se može koristiti i kao komunikacioni interfejs, o čemu će kasnije biti više reči.

Specijalni U/I moduli imaju takođe memoriju u kojoj se, pored ostalog, nalaze i njima pridružene datoteke. One se označavaju kao M0 i M1 files, i njihova organizacija zavisi od specifičnosti pojedinog modula. Elemenat 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.

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

9

Adresa reči – jedna reč elementa se identifikuje ili pomoću relativnog položaja te reči u okviru elementa, ili pomoću posebnog akronima (ukoliko je isti definisan).

Adresa bita – Jedan bit u okviru reči identifikuje se ili preko njegovog relativnog položaja u okviru te reči (nulti, prvi, drugi bit, … brojano s desna u levo) ili preko relativnog položaja u odnosu na početak odgovarajućeg elementa kome pripada reč čiji se bit adresira.

Dužine elemenata u pojedinim datotekama date su u tabeli T. 2. Potrebno da se istakne da se teorijski u svakoj datoteci mogu adresirati i elemenat u celini i njegove reči i bitovi.

U tabeli su, međutim, navedene samo one adrese koje sa aspekta vrste podatka i načina organizacije datoteke imaju smisla. Podrazumeva se pri tome da je: • adresirani bit 0 ≤ b ≤ 15 • adersirni element 0 ≤ e ≤ 255

Može se uočiti da su iz tabelei T. 2 izostavljene ulazne i izlazne datoteke (I i O). Ovo je učinjeno zato što one donekle odstupaju od navedenog pravila. Naime, kao što će se kasnije videti, kod ovih datoteka elementi mogu biti dužine od jedne ili dve reči, što zavisi od tipa U/I modula. Elemenat ovih datoteka je zapravo određen slotom u šasiji u koji se modul postavlja.

Tip datoteke Dužina elementa

Adresira se

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

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

St 42 reči

element “e” - Xf:e

U cilju ilustracije organizacije datoteka posmatrajmo binarnu datoteku – bit file.

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

10

Data file 3 – Bit file bitovi

Adresa elementa

Adrese pojedinih bitova

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:3 B3:3/0 ... B3:3/15 B3/48 ... B3/63

.

— ---- ----- ----- ----- ----- ---- ----- ---- ---- ----- ----- ----- ----

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

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.

Kreiranje datoteke i zauzeće memorije Jedna datoteka podataka zauzima memorijski prostor koji obuhvata niz susednih reči. Broj

reči koje zauzima jedna datoteka određen je najvećom adresom elementa te datoteke koji se koristi u programskim naredbama. Naime, sa izuzetkom datoteke statusa S, koja se kreira automatski, sve ostale datoteke podataka ne postoje a priori same po sebi, već se formiraju u toku kreiranja programa i to navođenjem odgovarajuće adrese u programu. Prvo navođenje broja datoteke inicijalizuje njeno kreiranje. Pri tome tip datoteke koji je naveden u adresi određuje broj reči koje se pridružuju jednom elementu, dok adresa elementa određuje niz konsekutivnih elemenata za koje se u memoriji rezerviše prostor. Taj niz počinje od nule, a završava se sa adresom elementa koja je navedena u naredbi. Ako se kasnije pojavi veća adresa elementa iste datoteke onda se prethodno rezervisani prostor proširi tako da uključi i tu adresu.

Predpostavimo da se u programskim naredbama pojavljuju redom adrese operanada F8:3, F8:1 i F8:5. U tom slučaju, pri kreiranju prve naredbe rezervisaće se memorijski prostor za datoteku 8 i zauzeti ukupno 8 reči (elementi 0,1,2 i 3 ; svaki element po dve reči). Kada se kasnije naiđe na adresu F8:1, ona neće prouzrokovati nikakve promene u zauzeću memorije, jer je memorijski prostor za taj element već zauzet. 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. 5. Ovde je takođe predpostavljeno da su pre nailaska na pomenute tri naredbe, nekim drugim naredbama već kreirane datoteka N7 i korisnička datoteka 9, kojoj je pridružen tip B.

Potrebno je da se istakne da veličina datoteke nije određena stvarnim brojem elemenata koji se koriste, već najvećem adresom. U posmatranom primeru se tako koriste samo tri elementa datoteke 8, ali je zauzet prostor za 6 elemenata. To nadalje znači, da se pažljivim izborom adresa elemenata može ostvariti ušteda u zauzetom memorijskom prostoru.

11

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 kontinuallni niz.

Operativni sistem kontrolera dozvoljava da se datoteke podataka kreiraju i direktno, a ne preko naredbi u kojima se navode adrese operanada. U tu svrhu koristi se posebna procedura memory map function, koja 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.

Indirektno adresiranje U nekim slučajevima poželjno je da se omogući da se ista naredba izvrši sa različitim

promenljivima. Koja od promenljivih će se koristiti može zavisiti od nekih spoljnih uslova, rezultata nekog izračunavanja i sl. Radi pojednostavljenja relaizacije ovakvih aplikacija kontroleri SLC 5/03 i SLC 5/04 omogućavaju korišćenje indirektnog adresiranja.

U principu indirektno adresiranje se realizuje tako što se navodi adresa promenljive čiji sadržaj predstavlja adresu promenljive (operanda) nad kojom se vrši neka operacija. U skladu sa time promenom sadržaja navedene promenljive menja adresa operanda.

12

Adresa promenljive uključuje 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. 4.

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 integer

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

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

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

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

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

T. 4 Primeri indirektnog adresiranja

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

Pored direktnog adresiranja promenljive, kod kontrolera SLC 5/02, SLC 5/03 i SLC 5/04 dozvoljeno je i indeksno adresiranje. Indeksnim adresiranjem se mesto u memoriji na kome se nalazi jedna promenljiva definiše relativno u odnosu na položaj neke druge promenljive. Pomeraj (ofset) promenljive sadržan je u 25. reči datoteke 2 (status file) tako da je adresa reči koja sadži pomeraj S:24. Ovaj način adresiranja je izuzetno pogodan ako je potrebno da se manipuliše sa nizom uzastopnih promenljivih. 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 promenljiva je na adresi

O-output; I-input; B-bit #O:e ; #I:e ; #Bf:e rečima 206 N-integer #Nf:e rečima 206F-floating point #Ff:e elementima (2 reči) 212 i 213 St-string #Stf:e.w rečima 206T-timer; C-counter (ACC i PRE)

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

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

T. 5 Indeksno adresiranje

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 i u zavisnosti od tipa promenljive predstavlja broj reči ili elemenata koje treba dodati baznoj adresi. Tipovi promenljivih koje se mogu indeksno adresirati, kao i značenje odgovarajućeg pomeraja dati su u tabeli T. 5.

13

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.

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 gornje granice datoteke. 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.

Ako se predpostavi da se u nekoj aplikaciji koriste samo dve datoteke N7 sa ukupno 8 elemenata i F8 sa ukupno 4 elementa, onda indeksna adresa #N7:3 može da prouzrokuje efekte koji su ilustrovani na slici Sl. 6.

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 SLC 5/04 ukoliko se koristi indeksno adresiranje u datotekama tipa St. Adresiranje datoteka

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

14

4. Programske konstante

Pored promenljvih koje se smeštaju u datotekama podataka, u pojedinim programskim naredbama doyvoljeno je korišćenje i programskih konstanti, brojnih vrednosti koje sedefinišu pri formiranju aplikacije i ne mogu se programski menjati.

Programska konstanta se definiše tako što se na mestu predviđenom za adresu promenljive (operanda), direktno navede odgovarajuća brojna vrednost. Celobrojna brojna vrednost je 16 bitna reč, dok realna vrednost zauzima 2 reči (SLC 5/03 i SLC 5/04). Celobrojna brojna vrednost se može zadati u dekadnom brojnom sistemu ili kao heksadecimalna, oktalna ili binarna konstanta (T. 6). 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.

T. 6 - Specifikacija programskih konstanti

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

1. Ulazno/izlazni moduli Uprkos činjenici da diskretni senzori i aktuatori koji se nalaze na nekom procesu ili

postrojenju mogu imati veoma 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 semzora u numeričku vrednost 0 ili 1 i da taj podatak smesti kao jedan bit na odogovarajuće mesto u memoriji, ili da očita numeričku vrednost (sadržaj) nekog bita u memoriji, da ga konvertuje u binarni signal koji se vodi na aktuator. Ova činjenica omogućila je projektovanje i izradu tipiziranih U/I kola koja su u stanju da obrađuju gotovo sve signale koji se sreću kod industrijske merne opreme i izvršnih organa. Pored toga, nekoliko U/I kola su grupisana zajedno i čine Diskretni U/I modul, čija veza sa kontrolerom se ostvaruje jednostvanimo ubacivanjem u odgovarajući slot na šasiji.

Izgled tipičnog U/I modula prikazan je na Sl. 7. Na prednjoj ploči U/I modula nalazi se određeni broj pinova (terminal points) za koje se vezuju izlazi sa mernih instrumenata, odnosno ulazi u izvršne organe. Svaki pin je zapravo ulazna ili izlazna tačka odgovarjućeg kola za spregu sa kontrolerom. U skladu sa time svaki pin se identifikuje svojim tipom (ulaz ili izlaz) i brojem koji odredjuje položaj U/I kola u okviru modula, i koji zapravo predstavlja adresu pina. Opis pinova dat je na unutrašnjoj strani vrata na modulu. Pored U/I pinova, na prednjoj ploči modula nalaze se i pinovi koji su interno povezani sa napajanjem (DC ili AC), sa zajedničkom (nultom) tačkom i sa zemljom. Način sprezanja pojedinog urđaja sa modulom zavisi od specifičnosti uredjaja, kao i karakteristika modula.

15

Za vreme rada U/I modula, stanje svakog pina se prikazuje na odogovarajućem LED indikatoru. Indikator koji je povezan sa ulaznoim pinom svetli ako je ulazni signal u stanju logičke jedinice. Indikator povezan sa izlaznim pinom svetli ako je, kao rezultat obrade programa, na izlazni pin postavljena logička jedinica.

Postoje tri tipa U/I modula: ulazni, izlazni i kombinovani ulazno/izlazn modul. Oni se izrađuju sa različitim gustinama pinova (4, 8, 16 i 32 pina po modulu) i mogu se sprezati sa AC, DC i TTL naponskim nivoima. Detaljnija specifikacija U/I modula data je u Dodatku UI.

Kao što se vidi na Sl. 7 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 (uz uslov da je šasija ima odgovarajući modul napajanja – Dodatak POW). Budući da svaki slot ima svoju adresu unutar šasije, to znači da je samim stavljanjem modula u slot određena i njegova adresa. Konačno, kao što je već istaknuto, i svaki pin unutar jednog modula ima svoju adresu. U skladu sa time svaki pin ima u okviru kontrolera jedinstvenu adresu, koja je određena adresom slota u koji se modul postavljai adresom pina unutar modula. Potrebno je da se naglasi da je adresa pina određena automatski stavljanjem modula u šasiju kontrolera i da se ne može programski menjati.

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 (Input image file) koje odgovara adresi ulaznog pina. Isto tako, vrednost bita koji treba da se prenese na izlazni pin kontrolera kao binarni signal, nalazi se u datoteci 1 (output image file). Za vreme izlaznog dela sken ciklusa ova vrednost se očitava, konvertuje u odgovarajući signal i prenosi na izlazni pin čija adresa odgovara mestu u datoteci na kome se nalazi posmatrani bit.

16

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, koja reč će biti pridružena modulu zavisi od slota u kome se modul nalazi. Format adresiranja prikazan je na slici Sl. 8.

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 slici Sl. 9. Kao što se vidi prva šasija sadrži procesorski modul u slotu 0; kombinovani U/I modul sa 6 ulaza i 6 izlaza u slotu 1; ulazni modul sa 32 ulazna pina u slotu 2 itd. U drugoj šasiji koriste se samo prva četiri slota, dok se preostali slotovine koriste. Struktura datoteka 0 i 1 koje odgovaraju datoj konfiguraciji prikazana je u tabelama T. 7 i T. 8.

T. 7 – Organizacija datoteke 0

Potrebno je da se sitakne da su I i O datoteke jedine dve datoteke kod kojih elementi nisu poređani u neprekidnom nizu i kod kojih su elementi promenljive dužine. U ovom primeru tako posle elementa O:1, kao susedna reč u memoriji nalazi se element O:3. Isto tako posle elementa O:5 koji zauzima dve reči dolazi elemnat O:9 koji zauzima jednu reč. Ovo je, naravno, prirodna posledica činjenice da su redni brojevi elemenata vezani za slotove, a da je njihova dužina određena brojem pinova na modulu. Neophodno je, međutim da se to ima na umu prilikom korišćenja indeksnog adresiranja ili pri radu sa nizovima podataka. Naime, kao što je već istaknuto, kod datoteka ovog tipa indeksna adresa se određuje tako što se baznoj adresi dodaje sadržaj indeksnog registra, pri čemu je pomeraj izražen u rečima.

17

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.

T. 8 - Organizacija datoteke 1

U posmatranom primeru, ako se 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. 8 nalazi element I:6. Zapazimo da kada bi 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.

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

18

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. 10) 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 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. 11. Potrebno je zapaziti da se ni relejni namotaj, ni dvopolžajni prekidač, s obzirom na specifičan način njihovog funkcionisanja, ne mogu klasifikovati ni kao NO ni kao NC.

19

Izlazni procesni uređaji koji primaju signale iz kontrolera se koriste za pokretanje i zaustavljanje motora ili promenu smera obrtanja, za aktiviranje i dezaktiviranje signalizacije alarma, za paljenje i gašenje kontrolnih sijalica, otvaranje i zatvaranje ventila, spajanje i razdvajanje kvačila, upravljanje releima, solenoidima itd. Osnovni izlazni element je rele, koje se realizuje kao tranzistorsko rele (za mala opterećenja), elektromehaničko rele (za srednja 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. 12).

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

4. Vezivanje digitalnih uređaja za digitalni modul Samo se po sebi razume da će digitalni senzor

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

20

vrednosti bita u memoriji prenese na izvršni organ. Prilikom povezivanja digitalnih uređaja neobično je važno da se vodi računa o tome kako

je uređaj projektovan, odnosno kakav treba da bude smer električnog signala. U tom smislu razlikuju se dve vrste uređaja: • uređaji koji su izvor signala (source devices) – povezuju se na pozitivni pol izvora napajanja • uređaji koji su primaoci 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 • digitalna U/I kola koja su izvor signala za uređaje koji su projektovani kao primaoci. • digitalna U/I kola koja su primaoci signala za uređaje koji su projektovani kao izvor.

Način vezivanja, ovih uređaja prikazan je na Sl. 14 i Sl. 15. Pri tome, potrebno je da se istakne da digitalni moduli koji predstavljaju izvor signala moraju u sebi da imaju i izvor napajanja. U tom 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.

21

3. 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. 16). 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. 17). Sadržaj odgovarajućih memorijskih lokacija u ovim datotekama menja se u toku ulaznog ili izlaznog sken ciklusa. Analogni ulazni kanal

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

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

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.

22

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. 16). 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. 18). 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. 19).

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

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

23

Opseg napona/struje Celobrojna decimalna reprezentacija

(datoteka ulaza)

Rezolucija

-10V dc do +10V dc -32768 do +32767 0 do 10V dc 0 do 32767 0 do 5V dc 0 do 16384 1 do 5V dc 3277 do 16384

305.176µV

-20mA do +20mA -16384 do +16384 0 do 20mA 0 do 16384 4 do 20mA 3277 do 16384

1.2207µA

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

Neki analogni moduli pružaju mogućnost da se zahteva da sam modul interno izvrši konverziju u električne ili inžinjerske jedinice. Ukoliko modul nema takvu opciju, konverzija može da se izvrši programski. Problemima transformacije signala biće kasnije, kada se prouči programiranje PLC-a, posvećeno više pažnje.

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

Analogni izlazni kanal Za razliku od analognih ulaza, svakom analognom izlaznom kanalu pridružen je poseban

D/A konvertor. Pomoću njega se celobrojna vrednost koja se nalazi na odgovarajućem mestu u datoteci izlaza pretvara u strujni ili naponski signal. U principu, moduli se razlikuju po rezoluciji, ali se najčešće sreću konvertori čija je rezolucija 12 do 14 bitova. Kod posmatrane klase SLC kontrolera koriste se 14-bitni D/A konvertori. Otuda se svakom ulaznom kanalu pridružuje po jedna memorijska reč. To nadalje znači da se svaki ulazni kanal adresira pomoću adrese oblika O:e.w. Pri tome se za smeštanje podatka koristi 14 levih bitova, tako da dva poslednja desna bita nisu u upotrebi.

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

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

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

24

T. 10 Opseg izlaznih signala i konverzija celobrojnih vrednosti u električne veličine

4. Formiranje aplikacije Formiranje jedne aplikacije započinje uvek specifikacijom samog kontrolera na kome će

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

Na prikazan je izgled prozora pri definiciji konfiguracije PLC-a iz familije Allen Bradley SLC 500 Modular Controllers.

Sa slike (Sl. 20) se vidi da se u slotu 0 nalazi procesorski modul tipa 5/03, koji u šasiji ima prostor za još tri modula.

25

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 (adrese I:3.0/b , b = 0, 1, 2, ... , 7). Ovaj modul prima digitalne signale koji su naizmenični u opsegu do 200/240 V.

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

26

Programiranje PLC-a (zasnovano na Ladder programiranju)

1. Uvod u leder programiranje Ako se PLC posmatra kao mikroračunarski sistem, što on sasvim sigurno i jeste, onda bi

se moglo očekivati da se za njegovo programiranje koriste standardni prgramski jezici. Međutim, ako se pođe od činjenice da je PLC projektovan kao namenski mikroračunarski sistem za upravljanje i nadzor rada nekog procesa, i da u skladu sa tim ima poseban operativni sistem koji obezbeđuje periodično ponavljanje sken ciklusa, onda je logično očekivati da je za njegovo programiranje razvijen i poseban programski jezik.

Kao što je već ranije istaknuto, PLC je početno razvijen sa idejom da zameni relejne sisteme. To znači da se očekivalo da on realizuje odgovarajuću vremensku sekvencu logičkih operacija. Pored toga, uspešna primena PLC-a u praksi, zahtevala je i da se njegovo programiranje prilagodi tehnici koja je svim korisnicima relejnih sistema dobro poznata.

Kada je reč o projektovanju relejnih sistema onda je zapravo potrebno da se reši problem grafičkog predstavljanja vremenske sekvence logičkih operacija. Klasični logički dijagrami su izuzetno korisni za prikazivanje relacija između elemenata kombinacione logike. Međutim, oni ne pružaju mogućnost za prikazivanje različitih ulazno/izlaznih promenljivih kao funkcija vremena. Sa druge strane, vremenski dijagrami su izuzetno pogodni za prikazivanje odnosa pojedinih promenljivih u toku vremena, ali ne omogućavaju da se prikaže logika koja uslovljava te odnose. U cilju spajanja obe vrste prikazivanja, za projektovanje relejnih sistema razvijeni su leder (lestvičasti) dijagrami.

Projektovanje PLC-ova je, dakle, podrazumevalo da se za njih mora razviti i odgovarajući programski jezik zasnovan na leder dijagrmima – leder programski jezik. Potrebno je da se istakne da leder programski jezik nije jedini jezik za programiranje PLC-a. U upotrebi su i jezici koji koriste funkcionalne blokove, zatim jezici na bazi operacija Bool-ove algebre, BASIC orijentisani jezici, i u novije vreme objektno orijentisani jezici tipa Visual BASIC-a. Činjenica je međutim da je, uprkos svojevrsnoj proliferaciji programskih jezika koju je donela računarska industrija, leder programiranje i danas posle više od 20 godina koriščenja PLC-a daleko najrasprostranjeniji način programiranja. Ima mišljenja da je to dokaz konzervativnosti krajnjih korisnika koji su navikli na projektovanje relejnih sistema. Izvesno je, međutim, da se i projektanti koji dolaze iz sveta računara, koji su dakle naviknuti na korišćenje različitih programskih jezika, kada sagledaju problem koji treba da se reši opredeljuju za projektovanje u lederu.

Jedna programska linija leder jezika sastoji se iz niza grafičkih simbola (programskih naredbi) koji predstavljaju različite logičke elemente i druge komponente kao što su časovnici i brojači, koji su poređani duž horizontalne linije – rang (rung) – koja je na oba kraja spojena sa dvema vertikalnim linijama. Prema tome, leder dijagram ima izgled lestvica, odakle potiče i njegov naziv (ladder – lestvice).

Svaki rang leder dijagrama sastoji se iz dva dela. Na levoj strani ranga nalazi se uslov 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).

Uslov – U osnovi, grafički simboli na levoj strani ranga odnose se ili na stanja signala koji predstavljaju fizičke ulaze PLC-a, i čije su vrednosti tokom ulaznog dela sken ciklusa smeštene u input image file, ili na stanja internih promenljivih, čije su vrednosti smeštene u odgovarajućim datotekama. Svaki simbol predstavlja jednu unarnu ili binarnu operaciju kojoj je pridružena odgovarajuća tablica istinitosti. Uz grafički simbol naznačava se i adresa promenljive koja predstavlja operand. Pri ispitivanju istinitosti uslova smatra se da se nad svim simbolima u jednoj liniji (redna, serijska veza) obavlja logička “I” operacija. To znači da je

27

uslov istinit ukoliko je svaki pojedinačni iskaz istinit. Na levoj strani ranga dozvoljena su i granjanja (paralelene veze). Pri ispitivanju istinitosti uslova paralelene veze se tretiraju kao logička “ILI” operacija. To znači da će iskaz predstavljen nizom paralelnih grana biti istinit, ako bar jedna od grana sadrži istinit iskaz. Potrebno je da se istakne da leva strana ranga može biti formirana i tako da na njoj nema ni jednog simbola. U tom slučaju smatra se da je uslov koji se na taj način definiše uvek istinit. • Akcija – Grafički simboli na desnoj strani ranga odnose se ili na fizički izlaz (promenljive smeštene u output image file, koje će biti prenete na izlaze kontrolera u toku izlaznog dela sken ciklusa) ili na interne promenljive, čije su vrednosti smeštene u odgovarajućim datotekama. Svaki simbol predstavlja jednu naredbu koja se izvršava ako je uslov na desnoj strani istinit. Uz simbol se naznačava i adresa promenljive čija se vrednost menja prilikom izvršavanja naredbe, ili koja na bilo koji drugi način učestvuje u realizaciji naredbe (npr. otpočinjanje ili zaustavljanje neke aktivnosti, skok na neki drugi rang, poziv potprograma itd.). Serijska veza na desnoj strani ranga nije dozvoljena, dok paralelna veza označava da se više različitih naredbi izvršavaju kao rezultat ispitivnja istinitosti jednog istog uslova. U literaturi je uobičajeno da se i simboli koji označavaju uslov i simboli koji označavaju akciju označavaju kao naredbe. Otuda je neophodno da se istakne suštinska razlika između naredbi uslova i naredbi akcije. Naime, izvršavanje naredbi uslova obavlja se tako što se u zavisnosti od vrednosti operanda, prema pridruženoj tablici istinitosti, naredbi dodeljuje vrednost (0 ili 1). Dakle, naredbe uslova se izvršavaju u svakom sken ciklusa i rezultat njihovog izvođenja je vrednost naredbe. Za razliku od toga naredbama akcije se ili dodeljuje vrednost nekoj promenljivoj ili izvršava neka druga aktivnost. Ove naredbe se izvršavaju samo ako je uslov koji im prethodi istinit (dodeljena mu je vrednost 1). Pri tome se samim naredbama akcije ne dodeljuje nikakva vrednost.

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

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

28

(ispitivanje da li je kontakt zatvoren) (ispitivanje da li je kontakt otvoren)

* 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. (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. 2.4 Kontakti

Većina ulaza u PLC su jednostavni uređaji koji mogu biti u stanju uključeno (on) ili u stanju isključeno (off). Ovakvi ulazi su prekidači i digitalni senzori koji detektuju uslove tipa: objekat je prisutan, puno/prazno i td. U leder programu stanje prekidača se ispituje naredbama XIC, za normalno otvorene prekidače/senzore, i XOC, za normalno zatvorene prekidače/senzore.

Prekidač za zvono na ulaznim vratima je primer normalno otvorenog prekidača. Pritiskom na prekidač, zvono se spaja sa izvorom napajanja, struje počinje da teče i zvono zvoni. (Ukoliko bi smo za ovu namenu koristili normalno zatvoren prekidač, zvono bi zvonilo za sve vreme dok je prekidač nepritisnut, a ne bi zvonilo samo dok je prekidač pritisnut, što je očigledno neželjeno ponašanje.) Odgovarajući leder dijagram prikazan je na Sl. 2-1. Program se sastoji iz samo jednog ranga, koji u delu uslova sadrži XIC naredbu, koja predstavlja prekidač, a u delu akcija OTE naredbu, koja predstavlja zvono. Ako je uslov tačan (prekidač pritisnut), akcija se izvršava (zvono se pobuđuje). Konceptualni prikaz PLC sistema za ovu namenu dat je na Sl. 2-2 (iako je sasvim jasno da za ovu namenu PLC predstavlja krajnje neracionalno rešenje). Prekidač je preko eksternog izvora napajanja priključen na ulaz 1, dok je zvono, takođe preko eksternog izvora napajanja, priključeno na izlaz 1 PLC kontrolera. Centralni deo slike prikazuje logiku po kojoj procesor određuje izlaz u zavisnosti od ulaza.

29

Zamislimo senzor koji treba da detektuje prisustvo metalnog predmeta na pokretnoj traci. I

za ovu namenu, senzor sa normalno otvorenim kontaktima predstavlja logičan izbor – senzor se uključuje kada metalni predmet dođe ispred senzora; kada metalni prođe, senzor ponovo prelazi u isključeno stanje.

Normalno zatvoreni prekidači/senzori se koriste kada treba obezbediti veću sigurnost sistema. Ovakav prekidač je u stanju zatvoreno (propušta struju) za sve vreme dok nije pritisnut, dok se pritiskom na prekidač njegovi kontakti otvaraju (struja ne teče). Alarmni sistem je primer sistema gde je poželjno koristiti normalno zatvorene prekidače. Pretpostavimo da alarmni sistem treba da detektuje otvaranje ulaznih vrata. Ova jednostavna funkcija se može ostvariti pomoću normalno-otvorenog prekidača (slučno kao u primeru zvona na ulaznim vratima): kada se vrata otvore, prekidač se zatvara i alarm se uključuje. Međutim, rešenje sa normalno-otvorenim prekidačem ima jedan ozbiljan nedostatak. Pretpostavimo da se prekidač pokvario ili da se žica kojom je prekidač povezan sa PLC modulom prekinula. Očito, u tom slučaju, alarm se nikada neće uključiti, bez obzira da li su ulazna vrata otvorena ili ne. Drugim rečima, vlasnik kuće nije dobio informaciju da se sistem pokvario i zato nastavlja da koristi sistem kao da je sve u redu.

Ispravno rešenje je ono koje može da obezbedi aktiviranje alarma kada se vrata otvore, ali i onda kada sistem otkaže. Bolja varijanta je da se alarm aktivira zato što je sistem otkazao, iako nema provalnika, nego da je provala u toku, a alarm “ćuti” zato što je prekidač pokvaren. Ovakvo ponašanje se može lako realizovati uz pomoć normalno-zatvorenog prekidača – otvaranje vrata i prekid žice (slučajan ili nameran) ima isti efekat: prekid strujnog kola.

30

3 Naredbe za merenje vremena i prebrojavanje događaja -časovnici i brojači 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 PLC 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 umnožak 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.

3.1 Realizacija časovnika

Zamislimo sijalicu u ulazu neke zgrade. Sijalica se pali prekidačem (tasterom) i ostaje upaljena neko zadato, fiksno vreme (npr. 2 min.) dovoljno da se prođe kroz ulaz i uđe u stan, a zatim se “sama” gasi. Dakle, izlaz (sijalica) se uključuje istog trenutk kada se aktivira ulaz (taster); časovnik odbrojava vremenske intervale i kada dostigne zadatu vrednost isključuje izlaz (sijalicu). Ovo je primer takozvanog delay-off časovnika.

Razmotrimo Sl. 3-1. Kada se prekidač X1 uključi, časovnik, označen kao Delay-off Timer #5, se uključuje i merenje vremena započinje. Časovnik se koristi u drugom rangu za definisanje uslova. Ako je časovnik aktivan (on), sijalica S je uključena. Nakon što je zadato vreme isteklo (u ovom primeru, 2 min.), časovnik se isključuje, uslov u drugom rangu postaje netačan i sijalica se isključuje.

Drugi tip časovnika zove se delay-on časovnik (Sl. 3-2). Aktiviranje ulaza X3 startuje delay-on časovnik, označenog kao Delay-on Timer #7. Časovnik započine brojanje, ali ostaje u stanju 0 (off) sve do isteka zadatog vremena. Po isteku zadatog vremena stanje časovnika postaje 1 (on) i sijalica S iz drugog ranga se uključuje.

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.

Pri korišćenju časovnika i brojača neophodno je da se definišu sledeći parametri. Vremenska baza (time base) određuje dužinu osnovnog intervala vremena. Kod fiksnog

kontrolera SLC/500 i modularnog SLC 5/01, vremenska baza je definisana kao 0.01 sec. Kod kontrolera SLC 5/02, 5/03 i 5/04 bira se jedna od dve moguće vrednosti: 0.01 sec ili 1.0 sec. Zadata 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. Zadata vrednost za časovnik može da se kreće u intervalu od 0 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 zadate vrednosti časovnik, odnosno brojač, završavaju svoj rad.

31

3.1.2 Naredbe časovnika

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.

• 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 e u datoteci časovnika f. Prilikom formiranja naredbe specificaraju se i vremenska baza (tx) i zadata vrednost (ns).

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 zadatu 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 zapaziti nekoliko činjenica. Pre svega časovnik radi

samo dok je uslov istinit (signal na ulazu u časovnik je u stanju “on”). Istinitosnu vrednost uslova pokazuje bit EN. 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 zadatog 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 zadato 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-4.

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

32

Ovom naredbom se definiše druga vrsta časovnika i zauzimaju tri reči koje čine elemenat e u datoteci časovnika f. Prilikom formiranja naredbe specificaraju se i vremenska baza (tx) i zadata vrednost (ns). Akumulirana vrednost 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 zadatu 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.

• Timer off-delay (TOF)

33

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

radi samo dok je uslov neistinit (signal na ulazu u časovnik je u stanju “off”). Istinitosnu 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 zadato vreme. Pri tome, DN bit ne govori o tome kada je časovnik završio sa poslom, jer će on ostati na vrednosti 0 sve dok uslov ne postane istinit. Vremenski dijagram rada časovnika ilustrovan je na Sl. 3-5.

34

3.1.3 Način rada časovnika

Sve dok časovnik radi, u svakom sken ciklusu povećava se akumulirana vrednost. Pri tome, iznos za koji će se povećati ACC vrednost zavisi od dužine trajanja sken ciklusa. Naime, kada se prilikom obrade ranga ustanovi da su se stekli uslovi da časovnik počne sa radom onda se istovremeno startuje jedan interni časovnik, koji se ažurira preko prekida (interapta) na svakih 0,01 sec. Broj registrovanih vremenskih intervala se smešta u interni 8-bitni registar (bitovi 0-7 u prvoj reči). Ukoliko je u pitanju časovnik čija je vremenska baza 0,01 sec, onda se u sledećem programskom skenu, kada se naiđe na dati rang, vrednost internog registra, koja zapravo predstavlja interval vremena koji je protekao između dva sukcesivna sken-a, dodaje akumuliranoj vrednosti. Nakon toga se interni rgistar resetuje na 0 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.

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. Naravno, i ovde se problem cikulusa 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 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. Za časovnike koji rade sa vremenskom bazom od 0,01 sekunde tačnost je u granicama od ±0,01s 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 ispitivanje DN bita. U najvećem broju slučajeva ovaj uslov se ispituje jedanput u okviru sken ciklusa. To nadalje znači da je tačnost aktiviranja događaja određena trajanjem jednog sken ciklusa.

3.2 Realizacija brojača

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

35

3.2.2 Naredbe brojača

Postoje dva osnovna tipa brojača brojač unapred (CTU - count up) i brojač unazad (CTD count down). Obe naredbe su naredbe akcije, što znači da se smeštaju u desni deo ranga. Oba brojača broje promene 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 zadate vrednosti se signalizira postavljavanjem 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 dva tipa 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.

• Count up (CTU) Count down( CTD)

36

4 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 formatu pokretnog zareza (floating point). Različiti tipovi numeričkih podataka smeštaju se u datoteke podataka odgovarajućeg tipa.

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.

Pored promenljivih, operandi u pojedinim operacijama mogu biti i programske konstante – nepromenljive veličine koje se definišu eksplicitnim navođenjem vrednosti u okviru naredbe. Pri tome, nije dozvoljenno da oba operanda budu programske konstante. Samo se po sebi razume da se programska konstanta ne može koristiti kao rezultat.

• operacije

Operacija koja treba da se izvrši nad operandima definiše se u okviru naredbe. Najveći broj ovih naredbi pojavljaju se kao naredbe akcije. Ovo je sasvim prirodno ako se ima u vidu da je glavna svrha ovih naredbi da se obavi neka aritmetička ili logička operacija nad operandima i dobijeni rezultat upamti kao odgovarajuća promenljiva. Drugim rečima, sam proces izračunavanja predstavlja jednu akciju, čije izvršavanje može biti uslovljeno istinosnom vrednošću nekog uslova koji se nalazi u levom delu ranga. Izuzetak su jedino naredbe za poređenje, koje opet, po svojoj prirodi, proveraju da li je neka relacija između operanada ispunjena ili nije odnosno da li njena vrednost istinita ili neistinita. Shodno tome, takve naredbe moraju biti naredbe uslova, tako da je rezultat njihovog izvođenja istinosna vrednost naredbe.

4.1 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 tabeli T. 1 dat je pregled svih naredbi za poređenje iz ove grupe. Prvi operand je uvek promenljiva, dok drugi operand može biti ili promenljiva ili programska konstanta.

37

4.2 Matematičke naredbe

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. 4. Primeri => Upravljanje paljenjem sijalice

Posmatra se električno kolo (Sl. 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.

Da bi se postavljeni zadatak rešio neophodno je kao prvo da se sa kojom opremom se raspolaže i da se odluči kako će se ona vezati za PLC.

Predpostavimo da imamo tri tastera od kojih su dva normalno

otvorena i jedan normalno zatvoren i jedno električno kolo u kome se nalazi sijalica koje se zatvara pomoću releja. Usvojićemo da normalno otvoreni tasteri obavljaju funikciju prekidača P1 i P3, dok će 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. 5).

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

U cilju formiranja levog dela ranga treba uočiti da je uslov za paljenje sijalice da se istovremeno pritisne taster P1 i jedan od tastera P2 ili P3. Budući da su tasteri P1 i P3 normalno otvoreni, pritisak na njih dovodi do zatvaranja odgovarajućih prekidačkih kola, tako da se može detektovati pomoću XIC naredbe, koja će dobiti vrednost istinit kada su vrednosti odgovarajućih bitova u datoteci ulaza (I:1/0 � I:1/2) postavljene na 1. Pritisak na taster P2 koji je normalno zatvoren, dovodi do otvaranja njegovog prekidačkog kola, što znači da se može detektovati pomoću XIO naredbe, koja će dobiti vrednost istinit kada je vrednost odgovarajućeg bita u datoteci ulaza (I:1/1) postavljena na 0. Konačno, kako se nad tasterima 2 i 3 zahteva logička ILI opreacija, to odgovarajuće naredbe moraju biti vezane paralelno. Ispunjenost uslova treba da obezbedi da se na izlaznom pinu generiše naponski signal koji će da prouzrokuje paljenje sijalice.

38

UPRAVLJAČKE MREŽE (CONTROL NETWORKS)

1. Osnove računarskih komunikacija

Računarske mreže Kao što je već ranije istaknuto potreba za računarskim komunikacijama javila se sa

razvijanjem ideje o distribuiranim računarskim sistemima. Naime, sve dok se koristio centralizovani pristup obradi podataka, svi podaci, bez obzira na mesto njihovog nastajanja, morali su fizički biti doneti do lokacije na kojoj se nalazi računar (sa kompletnim hardverom i softverom), i svi rezultati obrade podataka dobijali su se na toj istoj lokaciji. Ovo je stvaralo velike teškoće u nastojanjima da se vrši "on-line" obrada podataka. Ova vrsta obrade ekvivalentna je zahtevu da dve osobe mogu direktno da (on-line) komuniciraju samo ako stoje jedna pored druge. Sve druge vrste komunikacije (preko pošte) su dugotrajne i nepouzdane. Samo se po sebi razume da se u ovoj vrsti obrade pitanje komunikacija ne otvara.

Krajem šezdesetih poslovni sistemi izražavaju potrebu za dislociranjem obrade podataka, te se na udaljenim lokacijama (skladište, računovodstvo, poslovnice, ...) postavljaju računarski sistemi koji jedan deo obrade podataka obavljaju sami, dok sa centralnim računarom razmenjuju samo rezultate. Sličan pritisak oseća se i u procesnoj idustriji gde želja za automatizacijom celog proizvodnog procesa nameće potrebu za komunikacijom između upravljačkih računara koji kontrolišu pojedine delove. Potreba za ovom vrstom obrade nameće razvoj odgovarajuće opreme za komunikaciju između računara. Pored toga bilo je neophodno da se uspostave i neka pravila vezana za samu razmenu podataka.

Gledano potpuno opšte izraz komunikacije ili telekomunikacije označava prenos podataka od izvora (predajnik) do odredišta (prijemnik) posredstvom prenosnog medijuma, a uz pomoć komunikacionih uređaja, koji obezbeđuju putanju i odgovarajuću snagu signala pri prenosu. U tom procesu se za predstavljanje podataka koristi neki oblik elektromagnetne energije (elektricitet, radio talasi, svetlo itd.).

Polazeći od ove definicije, računarska komunikacija je proces prenosa podataka između dva računara (Sl. 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.

39

Povezivanjem više računara preko komunikacionih kanala formira se jedna računarska mreža. U principu, svaka mreža se može sastojati oz različitih tipova računara (čvorovi mreže) i različitih vrsta žičnih i bežičnih komunikacionih kanala. Da bi računarska mreža mogla da radi svi uređaji moraju imati i odgovarajući komunikacioni softver koji upravlja prenosom podataka i obavlja sledeće funkcije: • korekcija greške (otklanjanje efekta poremećaja) • kompresija podataka • daljinsko upravljanje • emulacija terminala

Sa aspekta geografskog područja koje pokrivaju mreže se dele na tri kategorije: • mreža širokog dometa (WAN – Wide Area Network) – obuhvata veliko područje (npr. jednu

državu); tipičan primer ovakvih mreža je mreža telefonske kompanije; • mreža srednjeg dometa (MAN – Metropolitan Area Network) – obuhvata područje koje

odgovora jednom gradu ili regionu; tipičan primer su mreže mobilne telefonije; • lokalna mreža (LAN – Local Area Network) – obuhvata jedno relativno malo područje i služi

za razmenu podataka između grupe korisnika (preduzeće, fabrika, proizvodni pogon itd.). Za ostvarivanje komunikacije računara pri upravljanju procesima od značaja su

prvenstveno lokalne mreže. Komunikacioni kanali, prijemnici i predajnici

Kao što je već rečeno, računari operišu sa digitalnim signalima. Međutim, veliki broj postojećih komunikacionih linija, kao što su na primer telefonske linije, je analogan. Prilagođavanje ove dve vrste signala obavlja se pomoću posebnog uređaja koji obavlja konverziju digitalnog u analogni signal i obratno (modulacija i demodulacija). Uređaj koji realizuje ovu konverziju naziva se modem (modulator / demodulator).

Prilikom prenosa podataka od posebnog je značaja brzina prenosa koja se izražava brojem prenetih bitova u jedinici vremena (bps – bits per ssecond). Modemi su uređaji koji omogućavaju malu brzinu prenosa podataka. 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, koje retko prelaze 28,8Kbps.

Sa povećanjem obima podataka koji se prenosi prirodno se nametnula potreba za realizacijom drugačijih tipova modema i drugačijih sistema za prenos podataka na daljinu. Danas se najčešće sreću sledeći uređaji. • ISDN (Integrated Services Digital Network) je sistem koji omogućava da se podaci prenose

preko standardnih telefonskih linija u formi digitalnih podataka. Ovaj prenos je pet ili više puta brži od prenosa preko konvencionalnih modema (tipično 128Kbps).

• DSL (Digital Subscriber Line) je sistem koji se takođe koristi za prenos podataka preko standardnih telefonskih linija. DSL modem vrši konverziju digitalnih signala u analogne, ali on to radi jednom posebnom tehnikom koja proizvodi analogni signal koji se proteže na veoma širokom spektru učestanosti. Na taj način dobija se efekat kao da nekoliko desetina konvencionalnih modema prenosi signale istovremeno. (Tipične brzine su 90 - 680Kbps pri slanju podataka i 640Kbps – 8Mbps pri prijemu podataka).

• Kablovski modem je uređaj koji koristi standardnu kablovsku televizijsku vezu za prenos podataka, ne remeteći pri tome prijem televizijske slike. Korišćenjem ovog modema ostvaruju se brzine prenosa koje su i do hiljadu puta veće od standardnih telefonskih linija (tipično 96Kbps pri slanju poruka i 30Mbps pri prijemu).

• Modem za mobilnu telefoniju 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), ali ima niz drugih prednosti o kojima će kasnije biti više reči.

• Satelitska antena može zameniti modem pri razmeni podataka uz pomoć satelita. Na ovaj način ostvaruju se prenos koji je oko petnaest puta brži od prenosa preko standardnih telefonskih linija (400Kbps – 33,6Mbps).

40

Komunikacioni kanal je putanja – fizički medijum – preko koga se podaci prenose od predajnika do prijemnika. 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 (ili puni-dupleks) prenos – podaci se mogu istovremeno prenosti u oba smera.

U principu, kod komunikacije koja se uspostavlja pri računarskom upravljanju sistemima, uvek postoji potreba da se podaci razmenjuju u oba smera, makar i samo zato da bi jedan računar potvrdio da je primio podatke od drugog. Pri tome, izbor između polu-dupleksa i punog-dupleksa zavisi od niza faktora, među kojima su potrebna brzina prenosa, broj raspoloživih kanala, cena i dr. Simpleks prenos se, eventualno, može koristiti za prijem podataka sa složenije merne opreme koja sadrži mikroračunarske komponente.

U odnosu na način realizacije komunikacionih kanala, njihova osnovna podela je na žične i bežične komunikacione kanale.

Žični komunikacioni kanal je direktna ožičena veza između predajnika i prijemnika. U upotrebi su tri vrste žičnih kanala: • Parice (UTP - unshielded twisted-pair i STP - shielded twistied pair).– par izolovanih

bakarnih žica preko kojih se ostvaruje relativno spor prenos podataka. Parice su neotporne na poremećaje, posebno na većim rastojanjima.

• Koaksijalni kablovi (Co-ax) – izolovana bakarna žica (unutrašnji provodnik) obmotana čvrstim ili upletenim metalnim štitom (unutrašnji provodnik) oko koga se nalazi plastični omotač. Koaksijalni kablovi imaju veću bzinu prenosa i veću otpornost na poremećaje, čak i na većim rastojanjima.

• Optički kablovi (Fiber-optic) – stotine ili hiljade optičkih vlakana koja prenose svetlosni signal. Izuzetno su otporni na poremećaje i omogućavaju veoma brz prenos (kabl prečnika 0.3cm može da podrži konverzaciju od ¼ do ½ miliona glasova istovremeno).

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

Veća grupa bežičnih kanala koristi radio prenos. U industrijskom okruženju koristi se prenos na ultrakratkim talasima (UHF). Ovaj prenos 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.

41

Mikrotalasi su izuzetno dobar prenosni medijum za veliki obim podataka i velika rastojanja. Oni 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.

Komunikacioni sateliti – korišćenjem geostacionarnih satelita za prenos mikrotalasnih signala može se prevazići ograničenje koje postavljaj radio prenos. Zemaljska stanica šalje signale (uplink) satelitu koji ih pojačava i prosleđuje sledećoj stanici (downlink). Ovaj tip komunikacije je izuzetno brz.

Infracrveni prenos je ograničen na malu daljinu, pri čemu je, takođe potrebno da se obezbedi direktna vidljivost.

U poslednje vreme komunikacija putem mreže mobilne telefonije (GSM) dobija na popularnosti. Osnovna prednost ogleda se u veoma jednostavnom uspostavljanju komunikacije, koja praktično ne zavisi od rastojanja između učesnika komunikacije. Protokol

Uspešna komunikacija podrazumeva da obe strane aktivno učestvuju u njoj i da pri tome slušaju jedna drugu. Sa gledišta prenosa podataka izmedju računara to znači da oni moraju biti u stanju da jedan drugom postavljaju pitanja tipa "da li 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 svakog od aktera, omogućavajući na taj način smislenu razmenu informacija između njih naziva se protokol. Drugim rečima, protokol je skup pravila i standarda koji određuju način razmene podataka između hardverskih i softerskih komponenti u mreži. O poštovanju protokola staraju se poseban mrežni hardver i softver tako da korisnik mora da vodi računa samo o svojim podacima.

Imajući u vidu da mnogi faktori utiču na prenos podataka očito je da je za uspostavljanje prenosa podataka neophodno da se utvrde kriterijumi na osnovu kojih će se oni odabirati. Proizvodjači opreme razvili su veoma različite protokole namenjene specifičnim aplikacijama, koji su često nekompatibilni jedni sa drugim.

Razmena podataka razvijala se paralelno u dvema oblastima: informacioni sistemi i prikupljanje 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 uslovila je razvoj niza protokola kao što su Bisync (IBM), Poll Select (Burroughs), SDLC (IBM), HDLC (ISO), LAPB (CCITT-X.25)

Protokoli razvijeni za potrebe prikupljanja podataka koriste se ili za brzi prenos podataka u lokalnim mrežama (LAN) ili za mreže širokog dometa (WAN) koje se najčešće sreću u SCADA aplikacijama.

U prvo vreme protokoli za brzi prenos informacija bili su striktno razvijeni za opremu odgovarajućeg proizvodjača i nisu se mogli koristiti za druge proizvode. Tako su, na primer, nastali Allen-Bradley Data Highway/Data Highway+, TI Tiway (Texas Instruments), Square D Synet, MODICON MODBUS+ itd. Kasnije se pristupilo razvoju "otvorenih" protokola koji mogu da se koriste na opremi različitih proizvodjača. Takvi su izmedju ostalih ControlNet (Allen-Bradley), i niz "fieldbus" protokola kao što su Profibus, LonWorks, Interbus-S, Device Net, ARCNET, IEC/ISA SP50, Seriplex itd.

Medju najpopularnijim protokolima za mreže širokog dometa su MODBUS, SCI RDACS, Control Applications (CA), L&N Conitel, TRW 9550, S70, 2000 itd.

Mnogi proizvodjači koji su razvili protokole za lokalne mreže pokušali su da zadrže istu strukturu i da je prilagode mrežama šireg dometa. U najvećem broju slučajeva ovaj pristup nije dao zadovoljavajuće rezultate jer su LAN protokoli po pravilu suviše neefikasni i kompleksni za WAN primene.

Protokol primeren SCAD-a aplikaciji mora voditi računa o karakteristikama komunikacionih medija koje se u takvim aplikacijama koriste. Tipičan SCADA komunikacioni medij radi sa ograničenom brzinom podataka (oko 1200 bps), većom brzinom prenosa bitova koji su indikatori greške (5 do 10 puta), i vremenskim kašnjenjem modema (8 - 10 ms).

Razvoj primene satelitskih komunikacija u ovim mrežama ubrzano menja i komunikaciono

42

okruženje za WAN protokole U odnosu na strukturu protokoli se dele na nekoliko kategorija. o Karakter orijentisani

protokoli - (BISYNC, MODBUS ASCII) započinju prenos slanjem specijalnog znaka (npr "dvotačke" ":") o Protokoli tipa "broj bajtova" - (DDCMP - DECNET), započinju prenos slanjem karaktera iza koga sledi broj bajtova poruke koja će biti preneta. o Bit orijentisani protokoli - (SDLC, HDLC, TCP/IP) mogu slati poruke proizvoljne dužine i nisu ograničeni na slanje specifičnih karaktera. o Protokoli posebne namene - svi ostali protokoli koji ne pripadaju ni jednoj od prve tri kategorije. Sedmoslojni OSI model

U prvo vreme svaki proizvođač računara razvijao je svoje standarde i računarske komunikacije mogle su da se ostvare samo između računara jednog proizvođača. Dodatnu teškoću predstavljala je i činjenica da su proizvođači opreme razvili različite protokole namenjene specifičnim aplikacijama, koji su često nekompatibilni jedni sa drugim. Pod pritiskom korisnika, i uz učešće organizacija koje su aktivne u pokušajima da se standardizuju komunikacioni protokoli (npr. ISO - International Standardsa Organization, ANSI - American National Standard Industry, IEC International Electrotechnical Committee, ISA Instrument Society of America) računarska industrija vremenom uspostavlja jasne standarde u ovoj oblasti. U osnovi ovih standarda nalazi se OSI standard (Open System Interconnection - otvorena veza između sistema) koji obezbedjuje okvir za primenu komunikacionih standarda. Osnovna ideja 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 medjusobno poruke. Neki od uspostavljenih standarda dele ove poruke u manje jedinice - blokove. Ovi blokovi se sekvencijalno šalju i to tako što na svom putu recimo od čvora A do čvora E blok može proći kroz uredjaje u čvorovima B, C i D. Segmenti puta AB, BC, CD i DE se označavaju kao veze podataka (data link). Nadalje, jedan blok može biti podeljen u više okvira (frame) koji se prenose preko veza podataka. U svaki od okvira stavlja se jedan paket koji predstavlja deo poruke iz bloka. Paketi mogu putovati različitim putanjama koje vode do krajnjeg odredišta. Na mestu prijema paketi se ponovo grupišu u blokove i svi blokovi se čuvaju dok se ne formira kompletna poruka. Na svakom od slojeva OSI modela, odredjeni servisi koje obavljaja predajnik obezbedjuju integritet poruke i tačnost prenosa.

U funkcionalnom smislu OSI model može da se posmatra kroz sledeće aktivnosti: • Aplikacija – formira poruke na osnovu korisničke aplikacije. Ove poruke se kodiraju u skladu sa protokolom koji se koristi. • Mreža – preuzima poruke koje su generisane na nivou aplikacije, deli ih na blokove, obezbeđuje njihov integritet, upravlja redosledom prenosa i obezbeđuje ponovno spajanje paketa tako da se dobije originalna poruka. • Veza podataka – deli blokove na okvire i upravlja fizičkim slojem određujući kada i kako se signali mogu emitovati. • Fizička veza – obezbeđuje vezu između predajnika i prijemnika i kanala preko koga se prenose poruke.

43

Ceo proces podeljen je na sedam nivoa u okviru kojih se obavljaju različite aktivnosti (Sl.

3). Ovi slojevi se dalje dele na pod-slojeve.

44

Standardi fizičkih veza Smatra se da je između dva uređaja moguće ostvariti komunikaciju ukoliko oni imaju

sposobnost za serijski prenos informacija. Ukoliko takva sposbnost ne postoji uređaji mogu ostvariti 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 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.

Da bi dva uređaja mogla da ostvare serisjku asinhronu komunikaciju, neophodno je da imaju serijske portove. Uspostavljanje komunikacije zahtevalo je da se za svaki port definiše raspored pinova, da se specificiraju nivoi napon i druge karakteristike koje su od značaja pri spajanju komunikacionih kanala i računara. Ovaj opis porta predstavlja fizički standard.

Daleko najrasprostranjeniji standard za asinhronu serijsku komunikaciju koristi RS-232 serijski port: Međutim, iako gotovo svi uređaji imaju ovaj port, to još uvek ne znači da dva uređaja kada ime se povežu serijski portovi mogu da uspostave komunikaciju. Naime, potpuni standard definisan od strane EIA (The Electronic Industries Association), opisuje RS-232 serijski port, kao port koji ima 25 pinova od kojih svaki pin ima svoju namenu (jedan pin služi za slanje podataka, drugi za prijem podataka, treći je zajednička masa, dok ostali pinovi igraju ulogu u prenosu podataka koji koristi tehniku "rukovanja"). Problem nastaje zato što se standardom ne zahteva da se svi pinovi zaista i iskoriste. Tako neki proizvođači koriste samo tri pina, neki 9 itd. Ovde je potrebno da se istakne da različiti broj pinova povlači za sobom i različite protokole, a takođe i drugačije podešene module za serijski prenos informacija. Standard je "nebalansiran", postoji samo jedna zajednička veza (common) koju koriste i prijemnik i predajnik. Podržava brzine do 19,2 Kbaud-a na rastojanju do 15,24m. Omogućava integraciju telefonskog i radio modema.

U cilju prevazilaženja probelma koje postavlja standard RS-232 serijskog porta, definisani su i drugi standardi serijskih portova kao što su RS-422, RS-423, RS-499 itd. • RS-422 i RS-423 – standardi koji su razvijeni kasnije sa ciljem ubrzavanja komunikacije i

povećanja rastojanja. RS-422 je balansiran (ima dve zajedničke linije) što smanjuje interferenciju. Podržava brzine do 10Mbaud-a na rastojanju do 80m.

• RS-449 – standard koji specificira i električne i mehaničke karakteristike RS-422 i RS-423 specifikacije. Pri tome je jasno specificirano 37 pinova za primarni prenos i 9 pinova za sekundarni. Ideja je da on zameni RS-232, što će biti teško zbog raspostranjenosti opreme.

• RS-485 – izveden iz RS-422 standarda i specificira električne karakteristike prijemnika i predajnika koji se vezuju u mrežu. Podržava multidrop protokol što znači da se više stanica može vezati na istu liniju. (Dozvoljava povezivanje najviše 32 stanice).

Velika rasprostranjenost uređaja sa RS-232 portom značajno usporava prelaz na nove standarde.

Osnovna karakteristika opisanih standarda fizičkih veza ogleda se u činjenici da su one namenjene vezivanju tačka na tačku (point-to-point). To zapravo znači da se dva uređaja sprežu

45

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 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. Komponente LAN-a

LAN se pravi povezivanjem niza uredjaja pomoću standardnih komponenti. ○ Komunikacioni kanali – parice ili bežična veza ○ Mikroračunari ili radne stanice sa karticama za spregu (NIC – network interface card) Mrežni operativni sistem - u zavisnosti od tipa mreže on može biti smešten na serveru, na svakom računaru u mreži ili podeljen izmedju različitih mašina u mreži. Repeater - pojačavač koji pojačava signale i prenosi paket bez ikakvih promena. Hub - uredjaj koji povezuje segmente mreže. Hub prosledjuje poruku koju prima (ne čitajući je) svakom uredjaju koji je na njega vezan. Hub se često koristi za vezivanje više računara u jednu tačku u mreži. Switch - povezuje dva ili više računara, hub-a, segmenta mreže ili više mreža koje imaju isti standard za prenos podataka.

Switch kreira sesije i obezbedjuje pravilan redosled u njihovoj realizaciji. Switch ispituje adresu destinacije paketa i prosledjuje ga direktno (bez izmene) ka toj destinaciji. Switch se može programirati tako da se pojedini delovi mreže koje on povezuje izdvoje kao logičke celine.

46

47

Bridge – je kolo za spregu (interfejs) koje povezuje segmente mreže istog tipa. Bridge radi na dva najniža sloja OSI modela, obezbedjujuć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 takodje ima i bafere za privremeni smeštaj paketa.

Paketi se čuvaju kada dodje do zagušenja u mreži, da bi se naknadno kad se mreža rastereti prosledili dalje.

Router – je "inteligentan" uredjaj koji podržava vezu izmedju sličnih, ali i različitih LAN-ova, kao i vezu LAN-a sa WAN-ovima i MAN-ovima koji koriste isti mrežni protokol. Ruteri rade na poslednja 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 odredjuje 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 odredjenoj putanji prema krajnjem cilju.

Gateway - se koristi za prenos podataka izmedju dve mreže koje koriste različite veze podataka i standarde mreže. On prima podatke sa jedne mreže, obradjuje ih da bi ih prilagodio formatu druge 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.

Topologija ražunarskih 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 o Zvezda - 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. Ova vrsta veze korsiti se najviše u tzv klijent/server arhitekturi, koja predpostavlja da centralni računar raspolaže podacima ili opremom (štampač, skener itd.) koju mogu da koriste svi drugi računari u mreži. U tom smislu centralni računar ima ulogu servera (poslužioca), a ostali računari u mreži imaju ulogu klijenata (korisnika usluga). Osnovna

48

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 otkaza cele mreže.

Prsten - 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) - svi uređaji su povezani na zajednički kabl – 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, njen rad je nezavisan od otkaza pojedinih uređaja, ali cela prestaje sa radom u slučaju otkaza magistrale.

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. U tom smislu postoje dva osnovna tipa uspostavljanja komunikacije. • Master/slave mreža je mreža u kojoj jedan čvor igra ulogu naredbodavca (master -gospodar).

On jedini može otpočeti komunikaciju i i to tako što "proziva" ostale čvorove i šalje im poruku ili od njih zahteva da on pošalje neke podatke. To znači da ostali čvorovi u mreži, nemaju nikakvu inicijativu, već samo prate naloge koje dobiju (slave – rob)

• Peer-to-Peer – 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. (peer – drug, ravnopravni partenr)

Kombinacijom ova dva vida upravljanja može se formirati mreža u kojoj jedan broj čvorova ima ulogu naredbodavca i ravnopravno međusobno komunicira, dok ostali čvorovi samo izvršavaju naloge koje dobiju i ne mogu započeti komunikaciju.

49

Sledeće pitanje na koje treba da se odgovori vezano je za upravljanjem samom komunikacijom u slučajevima kada su čvorovi u mreži ravnopravni. Naime, budući da se ne može unapred znati kada će neki od čvorova imati potrebu da pošalje neku poruku, neophodno je da se uspostavi neki mehanizam po kome oni dobijaju pravo da komuniciraju.

Da bi se objasnio način na koji je rešeno upravljanje komunkacijom poslužićemo se jednim primerom. Zamislimo jednu mračnu prostoriju punu ljudi koji s vremena na vreme žele nešto da saopšte. Sasvim je jasno da će, ako se među njima ne uspostave neka pravila ponašanja, u prostoriji vladati neopisiva galama i da niko neće ništa razumeti. U suštini ova situacija se može prevazići na dva osnovna načina.

Prvi način sastojao bi se u tome što bi se oni dogovorili da svako ima pravo da govori određeno vreme i da se to pravo daje svima ravnopravno. Sada još jedino ostaje da se dogovore na koji način će svako od njih dobijati reč. Budući da je prostorija mračna, izvesno je da dizanje ruke ili neki druga vizuelna manifestacija nije moguća. Moguće rešenje je da oni uzmu neki predmet, recimo "maramicu" koja će ići iz ruke u ruku. Dakle, jedan od prisutnih uzme maramicu i počne da govori. On pri tome može da uputi više poruka raznim ljudima u prostoriji. Kada on završi, ili kada istekne vreme koje mu je dodeljeno, on maramicu doda prvoj osobi pored sebe. Time ona dobija pravo da uzme reč i tako redom. Ovaj princip komuniikacije koristi se u jednom broju računarskih mreža koje rade na takozvanom principu rotirajućeg žetona ("passing token"). To zapravo znači da kroz mrežu putuje "žeton" od čvora do čvora. Čvor koji primi žeton, započinje komunikaciju i šalje jednu ili više poruka. Teorijski svi čvorovi u mreži primaju tu poruku, no pošto ona sadrži i adresu primaoca, samo onaj kome je upućena će je zadržati, raspakovati, pročitati i uraditi ono što se porukom od njega zahteva.

Osnovna odlika ovog tipa mreža sastoji se u tome što se sa velikom preciznošću može odrediti u kojim vremenskim trenutcima će koji čvor imati pravo komunikacije. Iz tog razloga ovaj tip mreža se naziva mrežama sa determinističkim pristupom.

Druga način da naša 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 meisiju.

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.

2. Tip i vrsta komunikacija u procesu proizvodnje

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

50

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, o kojoj je već ranije bilo reči, 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

Operatorski terminal omogućava komunikaciju između čoveka-operatera i računara ("MMI – Man Machine Interface" ili "HMI – Human Machine Interface"). 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. 14). 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 svakako zavise od vrste i tipa terminala. U principu, radi se o veoma jednostavnom skupu naredbi koje se mogu zadati bilo preko samog terminala, bilo preko posebnog programskog paketa koji omogućava da se program razvije na standardnom PC računaru i zatim unese u terminal. • Grafički operatorski terminal

Grafički operatorski terminal, se od alfanumeričkog razlikuje po tome što pored alfanumeričkog, 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.

51

• 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. Izvesno 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. Otuda je bilo neminovno, da se za ovu vrstu komunikacije razvije i posebno softverski alat, o čemu će kasnije biti više reči. • 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. Otuda se u novije vreme, klasični operatorski terminali 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. 15.

Za OPLC terminale proizvodi se i poseban softverski alat koji olakšava njihovo programiranje.

Imajući u vidu sve što je rečeno o operatorskim terminalima vidi se da je terminal u stvari jedan od uređaja koji služi kao posrednik u komunikaciji sa PLC-om. Njegova specifičnost ogleda se zapravo u objektu komunikacije. Naime, dok U/I moduli, kao i specijalizovani moduli omogućavaju razmenu podatke između procesa i PLC-a, dotle operatorski terminal ima zadatak da omogući razmenu podataka između čoveka i PLC-a. Drugačije rečeno, operatorski terminal se može posmatrati i kao jedan od specijalizovanih modula PLC-a. Otuda nije ni čudno da su operatorski terminali od samog početka konstruktivno zamišljeni kao i bilo koji drugi uređaj koji se vezuje sa PLC-om. U skladu sa time, kako se menjao koncept komunikacije između PLC-a i spoljnih uređaja, ta rešenja su primenjivana i na operatorske terminale. Nivoi komunikacije 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 iuredjaja u industriji danas su veoma jednostavni uredjaji koji imaju sposobnost samo da prenose "on/off" signale PLC-u. U poslednje vreme proizvodjači su počeli da ovim uredjajima dodaju komunikacione sposobnosti, što onda omogućava njihovu direktnu vezu sa magistralom. Na taj način smanjuje

52

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 (CNC, roboti, pokretne trake, PLC, itd.). Sve ove mašine zahtevaju programsku podršku preko koje se upravlja njihovim radom. Ove informacije su krucijalne za efikasnu proizvodnju. Neispravna ili zakasnela informacija može da prozvede veoma negativne efekte. Naime, 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.

Druga zajednička karakteristika mašina je da se u njihovom radu kreiraju podaci. Tačno je moguće 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 osovine, ili delove kaorserije itd. Više ćelija čini novu celinu pogon (area level). U

posmatranom primeru proizvodnje automobila postojaće mašinski pogon, pogon za farbanje i lakiranje, odeljenje za električne instalacije, itd. Radom pogona rukovodi pogonski inžinjer čiji je zadatak da organizuje proizvodnju u pogonu i koordinira rad svih ćelija.

Konačno, na vrhu piramide nalazi se menadžment celog preduzeća (host level) koji nadgleda rad svih pogona i njima strateški rukovodi (Sl. 16).

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đja na mašinama i druge podatke od značaja za proizvodnju prate rukovaoci mašina. Oni istovremeno i daju komande za rad mašinama. Po pravilu, ovde se radi o elementarnim informacijama koje se prenose pomoću binarnih signala..

Ako se podsetimo da rad mašina koordinira ćelija, onda je jasno da na nivou mašina ne postoji potrebe za međusobnom komunikacijom.

Sve mašine u jednoj ćeliji , međutim, moraju biti upravljane na neki osmišljen način. Ovo se može ostvariti uz pomoć jednog PLC-a koji će igrati ulogu kontrolera na nivou ćelije. To znači da bi se u informatičkom smislu prikupljanje podatka sa mašina moglo poveriti PLC-u preko čijih U/I modula bi bili vezani svi davači podataka i izvršni organi. U tom smislu ovaj PLC bi služio kao koncetrator podataka. Uz ovaj PLC može se svakako naći i neki operatorski terminal preko koga bi operator pratio rad ćelije.

53

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.

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

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. Pri tome se zahteva velika brzina prenosa, ali se relativno retko javlja intenzivan prenos paketa. Pri tome se najčešće ne zahteva da se taj prenos obavi u realnom vremenu (bar ne u striktnom značenju tog pojma). Mreže koje podržavaju ovu vrstu prenosa se nazivaju mreže podataka ili informacione mreže.

Za razliku od komercijalnih aplikacija, pri upravljanju sistemima pomoću računara postoji potreba da se razmenjuje nebrojeno mnogo malih paketa podataka sa velikom učestanošću između 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 menadžmenta, odnosno razmena informacija između različitih poslovnih funkcijja 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, 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 posobnosti, 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

54

"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. 17). Zapravo, najveći broj uređaja i nije imao nikakve sposobnosti za komunikaciju, te je PLC kao jedini mrežni uređaj, obavljao prikupljanje podataka sa ovih uređaja, kao i zadavanje komandi.

Veoma dugo, bilo je gotovo nemoguće povezati opremu različitih proizvođača. Samo se po sebi 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 MAR protokola (Manufacturing Automation Protocol – protokol za automatizovanu proizvodnju). Oni su pošli od ideje 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 oopremu za komunikaciju u skladu sa njima.

Sa razvojem tehnologije, uređaji su postepeno dobijali namenske mikroprocesore koji su omogućavali daleko jednostavniju kontrolu komunikacije, pa je time proširena gama uređaja koja ima sposobnost komunikacije, pa 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. 17). 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 dobijaju 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. 18).

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

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 i procesna magistrala.

4. Industrijske magistrale

Početno različiti uredjaji obavljali su komunikaciju na različiti način, koji je zavisio od proizvodjača opreme. Otuda je veoma dugo bilo gotovo nemoguće povezati opremu različitih proizvodjača. Kasnije je taj problem prevazidjen postavljanjem odredjenih standarda na nivou fizičkih i električnih osobina portova preko kojih se uredjaj priključuje na mrežu. Medjutim, s obzirom na različite sposobnosti uredjaja na pojedinim nivoima, za svaki od nivoa razvijani su posebni protokoli, tako da je položaj pojedinog uredjaja u sistemu bio jasno odredjen nivoom na

55

kome on radi. Sa razvojem tehnologije, uredjaji su postepeno dobijali namenske mikroprocesore koji su omogućavali daleko jednostavniju kontrolu komunikacije, pa je time proširena gama uredjaja koja 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 LAN. Medjutim, na nivou mašina i uredjaja i nadalje je preovladavalo vezivanje u zvezdu, sa master/slave metodom prenosa podataka. Tek, kasnije se došlo do ideje da se obezbede magistrale i na mašinskom nivou i na nivou merne opreme i aktuatora.

Industrijske magistrale se mogu podeliti u dve kategorije: magistrale uredjaja (device bus) i procesne magistrale (process bus) Magistrale uredjaja zamišljene su da obezbedjuju prenos kratkih poruka (nekoliko bajtova) i dele se na o bit-wide (1 do 8 bitova za jednostavne digitalne uredjaje) i o byte-wide (oko 50 bajtova dugačke poruke).

Najveći broj uredjaja koji se priključuje na ovu vrstu magistrale je digitalan (senzori, tasteri, granični prekidači, itd.), iako se mogu priključiti i analogni uredjaji koji zahtevaju mali broj bajtova (termospregovi, drajevri motora, kontroleri temperature, itd.). U principu, na ovim magistralama se sreću digitalni U/I uredjaji, blok U/I uredjaji (složeni uredjaji koji imaju nakoliko aktuatora koji se zajednički kontrolišu, ili nekoliko senzora čiji se izlazi kombinuju), ili eventualno "inteligentni" uredjaji (drajveri motora). Na ovim magastralama u primeni su i master/slave metoda i token ring metoda prenosa.

Procesne magistrale prenose pakete od po nekoliko stotina bajtova. Na njih se vezuju "inteligentni uredjaji" 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 uredjaji koji imaju sposobnost "peer-to-peer" "passing token" ili "multidrop" komunikacije.

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. 19). Pri tome, sve savremene industrijske mreže imaju otvorene protokole, što znači da se na njih može vezati oprema različitih proizvođača. Takođe, za čitav niz uređaja razvijenih za mreže 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 namenjeni. Jednom rečju, danas se svaki proizvođač trudi da obezbedi da se njegovi uređaji mogu povezati u bilo koju industrijsku mrežu.

56

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.

5. Performansa upravljačkih mreža o Efektivni propusni opseg – broj prenetih bitova koji nose informaciju (bez zaglavlja i ostalih

dodatnih bitova) u jedinici vremena. Na izbor propusnog opsega utiču četiri parametra: Perioda odabiranja sa kojom različiti čvorovi šalju informacije Broj elemenata koji zahtevaju sinhrone operacije Veličina poruke MAC (Media Access) sublayer protocol koji upravlja prenosom podataka i odgovoran je za dobijanje pristupa mreži

o Metrika performanse mreže Kašnjenje u pristupu mreži (Access delay) Vreme prenosa (Transmission time) Vreme odziva (Responce time) Kašnjenje poruke (Message delay) Procenat kolizije poruke (Message collision) Procenat odbačenih paketa (Message throughput) Iskorišćenost mreže (Network utilization) Granice determinisanosti (Deterministic boundaries)

○ Osnovni kriterijumi za upravljačke mreže Ograničeno vreme kašnjenja Zagarantovan prenos

Ovo zapravo znači da je osnovni zahtev da se poruka prenese uspešno u ograničenom vremenskom intervalu. ○ Metode pristupa (na MAC sublayer-u) za upravljačke mreže

Ethernet (IEEE 802.3; CSMA/CD) – (Carrier sense mltiple access with collision detection)

Token bus (IEEE 802.4)

57

Token ring (IEEE 802.5) CAN (CSMA/AMP) - (Control Area Network bus)

Najveći broj protokola koji se koristi na upravljačkim mrežama zasnovani su na jednom od

ovih metoda pristupa medijumu: CAN – SDS (Smart Distributed System), DeviceNet, CAN Kingdom

Token ring, Token bus – Profibus (Process Field Bus), ControlNet, FDDI (Fiber distributed data interface), MAP (Manufacturing automation protocol) Ethernet nije sveobuhvatno rešenje, dakle nije protokol, već samo MAC sublayer.

6. Mreže i protokoli koji rade na peer-to-peer ili master/slave principu Ovaj tip mreža se koristi za prenos podataka na nivou U/I uredjaja i blok U/I. U principu,

ove mreže su razvijane namenski za odredjenu klasu proizvoda i teško podržavaju opremu različitih proizvodjača. o Allen Bradley, SLC serija, Remote I/O

Ovo je master/slave mreža koja omogućava da se izvršni organi, senzori i operatorski interfejs vezuju na značajnoj udaljenosti od uredjaja koji koordinira njihov rad (odgovarajuća ćelija), a

58

da se pri tome zadrži dovoljno brza komunikaciona veza sa master-om. 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. Jedan SN modula može da podrži vezivanje do 16 uredjaja koji imaju sposobnost "slave" komunikacije, kao što su => Block I/O - samostalni U/I interffejs koji obavlja istu funkciju kao šasija sa napajanjem, adapterom za prenos informacija i U/I modulima. => Flex I/O - fleksibilni kompaktni (block) U/I sistem koji ima mogućnost izmene U/I modula => RediPANEL Operator Modules - kombinacija tastera U/I modula, displeja poruka i drugih komponenti u jednom kompaktnom uredjaju => Dataliner Message Display - uredjaj za efikasan i jeftin prenos poruka o statusu procesa i alarma, kao i operatorskih upita

Drives – širok spektar AC drajvera promenjlive učestanosti i DC drajvera visokih performansi za pouzdano upravljanje motorima

Remote chassis – udaljeni rek koji sadrži udaljene digitalne U/I module ili specijalne U/I module. On se vezuje preko Remote I/O Adapter Module (1747-ASB), koji se postavlja u nulti slot šasije i igra ulogu "gateway"-a izmedju SN modula u PLC-u i U/I modula koji su vezani na udaljenu šasiju. Ukoliko je potrebno da se veževiše od 16 uredjaja, onda se u master PLC može postaviti još neki SN modul.

59

Prenos podataka duž ove mreže obavlja se u "housekeeping" periodu. * 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 je njen standard otvoren za sve proizvodjače opreme, odnosno da oni mogu da svoje proizvode (senzore, aktuatore, kontrolere, drajvere itd.) prilagode tom standardu. Polazeći od tih mogućnosti Allen Bradley je razvio specifičnu DeviceNet mrežu za rad u master/slave tehnici, na koju se pored Allen Bradley komponenti mogu prikačiti i komponente nekih drugih proizvodjača.

U tipičnoj Allen Bradley DeviceNet mreži, DeviceNet Scanner (1747-SDN) se postavlja u šasiju master PLC-a i igra ulogu interfejsa izmedju uredjaja na mreži i PLCa. Jedan SDN skener može da komunicira sa najviše 63 slave čvora u mreži. Pri tome, jedan PLC može da podrži više SDN skenera u svojoj šasiji, što znači da se preko njega može povezati i više uredjaja.

Komunikacija SDN skenera sa uredjajima koji su vezani u čvorovima mreže obuhvata očitavanje podataka, upisivanje komandi, prenošenje (download) podataka o konfiguraciji ili očitavanje statusa uredjaja. U/I sken se obavlja asinhrono u odnosu na sken ciklus samog PLC-a, pri čemu se podaci razmenjuju za vreme "housekeeping" ciklusa. Naime za vreme dela "housekeeping" ciklusa SDN skener prenosi prikupljene podatke u odgovarjuće delove memorije PLC-a ili od njega preuzima podatke koje treba da prenese uredjajima na mreži.

60

7. Mreže i protokoli koji rade na token pass principu

Ove mreže pripadaju klasi determinističkih mreža, jer se svakom čvoru može garantovati pravo na emitovanje u odredjenim vremenskim intervalima. Pri tome se maksimalno vreme čekanja pre odpočinjanja emitovanja odredjuje vremenom rotacije token-a. Pri korišćenju ove tehnike komunikacije ne dolazi do kolizije poruka, jer samo jedan čvor emituje u jednom trenutku.

U principu u ovoj kategoriji razlikuju se mreže zasnovane na token ring (IEEE 802.5) standardima i token-passing bus (IEEE 802.4) standardima. Ove poslednje imaju ravnopravne čvorove na magistrali koja podržava linearnu, multidrop, ili segmentiranu topologiju. Tipični predstavnici ove klase mreža su MAP, PROFIBUS i ControlNet. Pri tome PROFIBUS podržava i master/slave protokol. o DH485

Ova mreža može da podrži komunikaciju 32 uredjaja na rastojanju od 1219m. Mreža je zasnovana na RS 485 standardu nad kojim je nadgradjen Allen Bradley protokol, koji uključuje token ring (IEEE 802.5) standard.

DH485 protokol podržava dve klase uredjaja: inicijatore (initiator) i odazivače (responder). Svi inicijatori na mreži dobijaju priliku da iniciraju prenos poruke. Pravo inicijatoru da emituje poruku dodeljuje se pomoću "token" algoritma.

Čvor koji poseduje "token" ima pravo da pošalje bilo koju validnu poruku. Svakom čvoru kad dobije "token" dozvoljava se samo jedna emisija (uz dva ponovna pokušaja ako je emisija neuspešna). Kada on pošalje poruku, on šalje tocken pass packet koji treba da primi njegov sukcesor. Ukoliko posle toga ne dodje do aktivnosti na mreži, što znači da sukcesor nije primio "token", inicijator šalje još jedan paket. Posle dva neuspešna pokušaja inicijator pokušava da pronadje sledećeg sukcesora.

Maksimalna adresa koju će inicijator tražiti pre nego što ponovo počne od nultog čvora je vrednost koja je zabeležena kao "maksimalna adresa čvora". Ovo je konfigurabilni parametar (od 0 do 31). Dozovoljene adrese respondera su od 1 do 31. Očigledno je da ova mreža može da

61

funkcioniše ukoliko se u njoj nalazi bar jedan inicijator. o ControlNet

ControlNet je brza deterministička mreža koju je razvio Allen Bradley za potrebe prenosa vremenski kritičnih informacija. Pouzdanost mreže povećena je obezbedjivanjem mogućnosti dvostruke veze izmedju čvorova. To zapravo znači da se prenos informacija uvek obavlja po onom od dva kanala koji pokazuje veći stepen ispravnosti prenetih poruka.

Mreža radi na taj način što čvor prima "token" i otpočinje emitovanje. Emisija traje sve dotle dok 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 "token" koji šalje svom logičkom sledbeniku, nezavisno od fizičkog polžaja čvorova u mreži. Ako čvor dobije "token" a nema šta da emituje, on ga odmah prosledjuje nasledniku.

Tehnički gledano primenjuje se metod implicitnog prosledjivanja "token"a. Naime svaki čvor u mreži ima svoj MAC_ID – media access identifier (od 0 do 99). Svi čvorovi prate emitovanje poruke, uzmu njen "source MAC_ID" (oznaku čvora koji emituje poruku) i u svoj interni "implicit token register" upišu taj podatak uvećan za jedan. Kada se detektuje kraj poruke, svi čvorovi uporede upisani podatak sa svojim MAC_ID-em. Kod jednog od čvorova ova dva podatka se moraju poklopiti, što znači da taj čvor dobija "token".

Vreme rotacije "tokena" (TRT – Token Rotation Time) odredjujue NUT interval (Network Up-date Time). Ovaj interval se deli na tri dela: ○ Scheduled – prenos vremenski kritičnih poruka, svaki čvor dobije "token" za prenos 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 "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.

62

Za razliku od "token ringa" gde čvorovi fizički čine jedan prsten, ovde se čvorovi mogu dinamički dodavati na magistralu ili sa nje skidati. Naime kod ove mreže je ostvaren logički prsten i to tako što svaki čvor zna adresu svog prethodnika (MAC_ID-1) i sledbenika (MAC_ID+1).

Mreža podržava 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 rpopusnu moć i veliku efikasnost za veliko opterećenje mreže, dok je pri malom saobraćaju neefikasan.

8. Mreže koje rade na multidrop i multicast principu

o DeviceNet (CAN Bus) DeviceNet mreža je zasnovana na CAN standard protokolu i može da podržava master/slave

i peer-to-peer komunikaciju u okviru koje svaki uredjaj može da bude i proizvodjač i korisnik poruke.

DeviceNet podržava strobed, polled, cyclic, change-of-state and application triggered tehnike prenošenja podataka. Korisnik može odabrati master/slave, multi-master i peer-to-peer konfiguracije. U zavisnosti od tipa uredjaja moguće su i kombinacije ovih konfiguracija.

CAN je serisjkii komunikacioni protokol koji je razvijen za potrebe automobilske industrije. Pokazalo se medjutim da on ima dobre performanse i da se može koristiti i u drugim vremenski kritičnim industrijskim aplikacijama.

63

CAN protokol je optimiziran za kratke poruke i koristi CSMA/AMP (Carrier sense multiple access / arbitration on message priroity) metod pristupa mediju. To zapravo znači da je protokol orijentisan prema porukama, i da svaka poruka ima svoj prioritet koji se koristi za odredjivanje prava pristupa magistrali u slučaju da postoji više istovremenih zahteva za emitovanje.

Čvor koji želi da emituje poruku čeka dok magistrala ne postane slobodna i zatim počinje da šalje identifikator svoje poruke bit po bit. Sinhronizacija povorke vrši se na početnom bitu (SOF – Start of Frame). Eventualni konflikti u pristupu mreži rešavaju se za vreme prenosa pomoću jednog arbitražnog procesa koji se odvija na bit nivou (logička nula je dominantna u odnosu na logičku jedinicu, što znači ako se one sudare impuls nastavlja kao nula). Dakle, ako dva čvora počnu emisiju oni šalju svoje identifikatore i onda osluškuju mrežu. Ako se jednom čvoru neki od bitova vrati izmenjen, što znači da je bio "nadjačan" od strane odgovarajućeg bita neke druge poruke koja ima veći prioritet, taj čvor gubi pravo na emitovanje, pa drugi čvor nastavlja sa slanjem poruke. U skladu sa time, kad počne 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).

Format DeviceNet poruke ima ukupni overhead od 47 bitova koji uključuje SOF (start of frame), Identifier (11 bitova), Control (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.

64

o Ethernet (CSMA/CD) Ethernet je stohastička mreža, što znači da se ni jednom čvoru ne garantuje neko

odredjeno vreme emitovanja. U principu svaki čvor koji ima neku poruku pokušava da obavi komunikaciju sve dok mu to ne podje za rukom.

Kada jedan čvor želi da emituje on osluškuje mrežu i čeka dok ona ne dodje u "idle" stanje, kada on započinje prenos. Za vreme prenosa, čvor i dalje osluškuje mrežu i gleda da li dolazi do kolizije. Ukoliko dodje, on čeka neko slučajno vreme (od 0 do 2i , gde je i i-ta pojava kolizije). Posle 10 kolizija interval čekanja se fiksira na 1023, posle 16 kolizija prekida se 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 "idle").

S obzirom da u mreži može doći do kolizije, kada se emitovanje poruke prekida, evidentno je da mrežom putuju neki "zalutali" bitovi koje treba razlikovati od validne poruke. Pored toga, neophodno je da se spreči da čvor završi sa emitovanjem jedne poruke pre nego što prvi bit stigne do kraja kabla gde može da se "sudari" sa nekom drugom porukom. Za 10MB/s Ethernet sa maksimalnom dužinom od 2500 m i 4 repeater-a, minimalno dozvoljeno vreme trajanja jednog okvira (slot time ili frame time) je 51,2μs. Pošto je trajanje jednog bita 0,1μs to znači da u minimalnom okviru ima 512 bita odnosno 64 bajta.

Ethernet

Imajući u vidu sve što je rečeno, Ethernet standard zahteva da ispravan okvir podataka ne bude manji od 64 bajta i to počev od adrese odredišta (destination address) zaključno sa kodovima za kontrolu tačnosti (checksum), odnosno 72 bajta ako se uključe preambula i delimiter. Budući da se ne zna koliki će biti podatak, Ethernet format obezbedjuje ovaj uslov na taj način što ukoliko je broj bajtova manji od zahtevanog "Pad" se dopunjava do datog broja.

Ovaj tip prenosa je pogodan za malo opterećenje mreže. Osnovni nedostatak je nedeterministički pristup mreži, što znači da on ne podržava sistem prekida (interrupt).

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

65

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 (M2M – Machine-to-Machine) komunikacija neophodne su tri grupe elemenata: • servisi - koji određuju način prenošenja informacija • uređaji - pomoću kojih se realizuje prenos • softver – koji omogućava komunikaciju između uređaja i njihovo povezivanje na

neke druge mreže. Servisi za prenošenje informacija

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

66

uređajima. Otuda je ovaj servis izuzetno pogodan u slučajevima kada korisnik treba da pristupi nekim bazama podataka ili aplikacijama koje imaju web servise. GPRS omogućava konstantnu bežičnu vezu između dva uređaja i pri tome se ova usluga naplaćuje prema količini preneteih podataka, a ne prema vremenu korišćenja veze.

Potrebno je da se istakne da tip i vrsta servisa, kao i načini njihove realizacije zavise od operatera mobilne telefonije koji pokriva područje na kome se uspostavlja veza. Uređaji za prenos podataka

Za realizaciju komunikacije preko GSM mreže koriste se dve vrste uređaja. • GSM Modemi – namenski razvijeni uređaji koji se u funkcionalnom smislu ne

razlikuju od mobilnih telefona. U modem se stavlja SIM kartica preko koje on uspostavlja vezu sa GSM mrežom i ostvaruje komunikaciju preko serisjkog porta. Imajući u vidu da modem treba da radi u industrijskom okruženju, on se od standardnih mobilnih telefona razlikuju po pouzdanosti, otpronosti na klimo-tehničke uslove i po osetljivosti na mrežu. Ovi modemi su izuzetno malih gabarita, a težina im je ispod 100 grama. Kao i bilo koji drugi modem, GSM modem se postavlja u računarski uređaj koji treba da komunicira preko GSM mreže. o može biti PLC ili standardni PC računar. Samo se po sebi razume, da se i svaki mobilni telefon može koristiti za ostvarivanje komunikacije preko GSM mreže. To zapravo znači da putem razmene SMS poruka operator može pristupiti bilo kom uređaju koji ima GSM modem i preuzeti neke podatke ili zadati određene komande.

• specijalni uređaji – različiti uređaji iz kategorije PLC-ova razvijaju se namenski za komunikaciju preko GSM mreže. U principu ovi uređaji imaju karakteristike manjeg PLC-a sa određenim brojem digitalnih ulaza i izlaza. Pored toga oni, mogu da imaju i operatorski terminal. U suštini, kao što neki drugi uređaji imaju ugrađene portove za komunikaciju preko određenog tipa mreže, ovi uređaji imaju ugrađeni port za GSM komunikaciju.

Softver za komunikaciju Uz pretpostavku da neki računarski uređaj ima sposobnost za ostvarivanje GSM

komunikacije, ostaje još otvoreno pitanje na koji način se ona uspoistavlja i kako se ostvaruje veza sa nekim drugim aplikacijama u računaru.

Ako je računarski uređaj PLC, onda se razmena informacija obavlja prenosom ASCII karaktera. Pri tome se za ovu vrstu komunikacije koriste se posebne ASCII naredbe. Ovim naredbama se aktivira modem, šalje pozivni broj za čvor sa kojim se uspostavlja komunikacija i konačno prenose odgovarajući podaci. ASCII naredbe su sastavni deo repertoara naredbi svakog PLCa.

Ako se međutim radi o PC računaru, onda je prirodno da je softver za komunikaciju daleko složeniji. Naime, predpostavka je da se na PC računaru nalaze baze podataka, ili neke druge aplikacije koje koriste određene standarde pa je prirodno da komunikacioni softver omogući uspostavljanje veze sa tim aplikacijama. U tom cilju razvijajju se odgovarajući softverski alati.

GSM-Control je softverski alat razvijen za PC računare koji omogućava da se kroz jednostavni dijalog definišu svi komunikacioni parametri i ostvari razmena SMS poruka preko GSM mreže. Sam softver upravlja komunikacijom i omogućava pristup podacima koji se obrađuju u različitim aplikacijama (Excell, SQL, itd.).

WAP (Wireless Application Protocol) omogućava ostvarivanje veze sa internetom i upravlja prenosom informacija preko GSM mreže.

67

68

SCADA - Supervisory Control and Data Acquisition

1. Od telemetrije do SCADA-e

Projektovanje aviona i raketa, kao i ispitivanje meteoroloških uslova i drugih geofizičkih parametara otvorili su problem prikupljanja mernih podataka sa instrumenata koje je bilo teško observirati. Tako su, na primer, u prvoj fazi eksperimanata u avio industriji, avioni imali dovoljno mesta za pilota, ali gotovo ni malo prostora za projektanta koji bi pratio letilicu i nadzirao stotine senzora koji su davali podatke o silama koje deluju na trup aviona il i na motor. Situacija sa raketama kao bespilotnim letilicama bila je još kritičnija. Istina, imajući u vidu da se, u prvo vreme, najvć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žinjeri i tehničari bili spremni da na licu mesta sakupljaju podatke.

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 t ih 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 to vreme železnički saobraćaj je već uveliko koristio žične komunikacione veze za nadzor kretanja vozova. Saobraćaj se odvijao tako što bi dispečer pratio kretanje voza i obaveštavao skretničare duž pruge kako treba da postave skretnice ili da spuste rampe. Ovaj komunikacioni sistem koji je nazvan telemetrijski sistem, omogućavao je centralnom dispečeru da prati stanje na prugama i formira efikasan raspored kretanja vozova. Osnovni problem ovakvih sistema bila je činjenica da oni zahtevaju fiksnu žičnu vezu između svih učesnika u saobraćaju koji mogu da emituju signal i dispečerskog centra gde se svi signali primaju i obrađuju. Ključna prednost na železnici je postojanje šina duž kojih se veoma jednostavno mogu instalirati senzori pritiska koji da ju informaciju o kretanju voza. Međutim, kod sistema koji ne ispunjavaju ovaj uslov telemetrija se nija mogla koristiti.

Otprilike u isto vreme u kome se pojavila potreba za održavanjem komunikacije između pokretnih objekata, zabeležen je i značajan napredak u razvoju radio komunikacija. Sve dotle dok se nije zahtevao prenos velikog broja informacija, radio je mogao da ostvari potrebnu komunikaciju. Pri tome, ukoliko se nije očekivalo da ova komunikacija traje preterano dugo, ona se mogla obaviti uz korišćenje male baterije. Na taj način je rođena radio telemetrija. Samo se po sebi razume, da se sa razvojem tehnologije radio razvijao tako da je obim prenetih podataka i dužina emitovanja stalno rasla, zajedno sa pouzdanošću prenosa. Vremenom su razvijene i tehnike kodiranja informacija, pa i zaštitni kodovi za detekciju greške, no sama komunikacija je veoma dugo bila jednosmerna. Centralna stanica je primala 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 udeljenim, često nepristupačnim lokacijama. Oni su početkom šezdesetih već imali instalirane sisteme za nadzor opreme, ali upravljanje i dalje nije bilo moguće.

Dalji razvoj radio komunikacija omogućio je vremenom 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

69

postao osnovni komunikacioni kanal za najveći broj instaliranih dvosmernih telemetrijskih sistema.

Uporedo sa razvojem radio industrije, razvijaju se i digitalni računari. Porast informacija koje se prikupljaju i obrađuju u dispečerskom centru prirodno dovodi do potrebe da se računaru poveri njihova obrada. Kao što je već rečeno, računarska industrija odgovara na ovu potrebu proizvodnjom odgovarajućih industrijskih miniračunara. Početkom sedamdesetih godina prošlog veka, polako prestaje da se govori o telemtrijskim sistemima i uvodi se novi pojam SCADA (Supervisory Control And Data Acquisition – sueprvajzorsko upravljanje i akvizicija podataka). Teško je reči šta je tačno motivisalo ovu promenu naziva. Moguće je da se želelo posebno istaći da se više ne radi samo o prikupljanju podataka sa udaljenih lokacija i izdavanju komandi, već i o veoma sofisticiranoj obradi prikupljenih podataka čiji rezultati u velikoj meri olakšavaju rad dispečera. Drugim rečim, SCADA je u istinu novi koncept u odnosu na telemetrisjke sisteme.

Tokom poslednjih trideset godina razvoj SCADA-e je prirodno pratio razvoj komunikacionih i računarskih tehnolologija. Danas je SCADA postala sastavni deo gotovo svake industrijske aplikacije. Ona se realizuje u okviru računarske mreže i po pravilu nadzire rad jednog broja lokalnih stanica u mreži koje obavljaju akviziciju podataka, realiziju direktno digitalno upravljanje, kao i sekvencijalno upravljanje.

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.

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 proizvodjača opreme najčešće nisu bili dovoljno efikasni tako da je, gotovo uvek, bilo neophodno da se delovi softvera za komunikaciju sa procesom i operatorskim panelom formiraju u svakom pojedinačnom slučaju i to najčešće u asembleru.

Primena miniračunara zahtevala je od inžinjera upravljanja da detaljno poznaje sam računar, njegov mašinski jezik i operativni sistem, kao i industrijske U/i uredjaje koji se na njega vezuju. U aplikativnom smislu miniračunar je doveo do razvoja različitih optimizacionih tehika za realizaciju supervajzorskog upravljanja, kao i tehnika obrade podataka sa krajnjim ciljem identifikacije matematičkog modela. Različite upravljačke strategije su bile primenjivane samo na pilot postrojenjima. Naime, korišćenje računara za upravljanje u zatvorenoj sprezi moglo se ekonomski opravdati samo ako se kroz njega zatvori nekoliko desetina sprega, a to je podrazumevalo klasične petlje sa PID regulatorima ili integro-diferencijalnim kompenzatorima. Efekat koji bi se dobio zatvaranjem samo jedne adaptivne ili optimalne sprege nije bio dovoljan u poredjenju sa cenom instalirane opreme.

Sa gledišta zaposlenih u procesnoj industriji miniračunar je doneo svojevrsnu revoluciju na nivou dispečera i tehnologa. I jedni i drugi dobili su obilje, mahom štampanih, podataka na

70

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 od-sustvom korisničkog softvera. Ova činjenica dovela je do toga da procesna primena računara krene u sasvim drugačijem smeru.

Činjenicu da je mikroračunar malih dimenzija i niske cene inžinjeri upravljanja dočekali su raširenih ruku. Konačno se došlo do uredjaja koji može da radi u realnom vremenu i na kome je isplativo da se zatvori samo jedna povratna sprega u okviru koje se mogu isprobati, pa na kraju i realizovati različiti digitalni upravljački algoritmi. Za trenutak je zaboravljena upravljačko-nadzorna funkcija računara i pažnja je usmerena na najniži procesni nivo na kome je počela zamena klasičnih analognih regulatora, digitalnim realizovanim pomoću mikroračunara. Ovaj trend bio je sa jedne strane svakako indukovan svojevrsnom dugogodišnjom težnjom inžinjera upravljanja da projektuju sisteme za rad u realnom vremenu, ali je na to izvesno uticala i činjenica da je primena mikroračunara, koji su imali samo rudimentarni operativni sistem i asembler, bila izuzetno složena i odvraćala i one najambicioznije od nekih složenijih nadzorno-upravljačkih zahvata

U nastojanju da se mikroračunari učine što prisutnijim u procesnoj industriji, proizvodjači su se prirodno okrenuli ka rešavanju onih zadataka koji su, sa jedne strane bili najrasprostanjeniji, a sa druge relativno jednostavni za programiranje. Tako se prirodno došlo do razvoja PLC-ova (programabilnih logičkih kontrolera) namenjenih prvobitno za zamenu logičkih kola i sekvencijalnih elemenata koji su bili realizovani pomoću banke releja, tajmera, brojača i drugih hardverskih digitalnih komponenti [4]. Postepeno repertoar operacija PLC-a se širio i uključivao i složenije operacije koje je zahtevala realizacija digitalnog upravljanja.

U osnovi PLC je projektovan za rad u izuzetno nepovoljnim klimo-tehničkim uslovima koji vladaju na industrijskim postrojenjima. On je veoma pouzdan, jednostavan za održavanje i programiranje. PLC nije zamišljen kao računar opšte namene, već kao sistem čiji operativni sistem omogućava da se jednostavno i u realnom vremenu obavi akvizicija velikog broja podataka, izvesna, ne preterano složena obradu tih podataka i prenošenje rezultata obrade na izvršne organe. Pored toga, PLC je zamišljen kao modularan sistem na koji se, prema potrebi, mogu priključiti raznovrsni ulazno/izlazni moduli. Vremenom, gama U/I modula se širila tako da su formirani specijalizovani merno-pretvarački moduli u kojima se merni signali obradjuju na izuzetno složen način, kao i izlazni moduli koji sadrže regulatore pojedinih izvršnih organa. Nesumnjivo je da je sa razvojem PLC-ova definitivno rešen problem zatvaranja povratne sprege pri upravljanju industrijskim procesima.

Razvoj PLC-ova, kao računarskih uredjaja koji se sprežu direktno sa pojedinim delovima postrojenja, neminovno je vodio ka razvoju distribuiranih upravljačkih sistema. U prvo vreme na vrhu piramide bili su minračunari, dok su PLC-ovi imali ulogu samo akvizicije podataka i prenošenja komandi. Kasnije su miniračunari zamenjeni industrijskim PC računarima, dok su PLC-ovi obogaćeni složenijim funkcijama. U svakom slučaju, ponovo se otvorilo pitanje koordinacije i nadzora. Dakle, posle gotovo pola veka od prve ideje da se računar primeni za formiranje nadzorno-upravljačkog sistema, inžinjeri upravljanja našli su se gotovo na samom početku, istina u potpuno izmenjenim tehnološkim uslovima, i otpočeli sa projektovanjem SCADA sistema.

71

3. Nadzorno-upravljački sistem Nadzorno-upravljački sistem bi se mogao definisati kao sistem koji omogućava nadzor i

upravljanje različitim udaljenim procesima pomoću serijskih komunikacija izmedju centralne i udaljenih stanica (Sl. 1). Već iz same definicije je jasno da ovakav sistem ima nekoliko izdvojenih celina: udaljeni U/I moduli za akviziciju podtaka i upravljanje postrojenjem, udaljene stanice, oprema za prenos podataka, telemetrijska mreža i dispečerski centar.Svi elementi nadzorno-upravljačkog sistema biće analizirani kako sa gledišta inžinjera koji projektuje sistem, tako i sa gledišta krajnjeg korisnika aplikacije.

* Udaljeni U/I moduli

Kao što je već istaknuto udaljeni U/I moduli predstavljaju spregu računarskog sistema 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, tajmera i generatora imulsa. Pored toga, kao što je već istaknuto, razvijeni su i specijalizovani merno-pretvarački moduli, kao i regulatori. Konačno, u sklopu ovih modula nalaze se i elementi za komunikaciju, kao i operatorski paneli.

Sa gledišta inžinjera postojanje ovih modula u velikoj meri olakšava realizaciju podsistema za prikupljanje i pri- marnu obradu podataka. Standardizovani hardver u velikoj meri otklanja potrebu za projektovanjem različitih kola za spregu. Nasuprot tome, sa gledišta operatera način na koji se podaci prikupljaju je potpuno

irelevantan. Jedina izmena je uvodjenje operaterskih panela koji omogućavaju da se na drugačiji način izvrši podešavanje pojedinih parametara i prenošenje odgovarajućih poruka. * Udaljene stanice

Udaljena stanica je PLC ili neki drugi mikroračunarski kontroler koji obavlja prikupljanje mernih signala sa senzora, zadaje upravljačke signale aktuatorima, nadzire status procesne opreme i signalizira alarme. Pored toga udaljena stanica šalje potrebne informacije dispečerskom centru i prima komande od njega.

Važno je naglasiti da su operativni sistemi ovakvih stanica projektovani tako da realizuju ciklično obavljanje operacija učitavanja podataka, obrade podataka u skladu sa zadanim algoritmom, prenošenja izračunatih vrednosti na izlazne module i komunikacije sa drugim stanicama. Otuda je inžinjer - projektant u potpunosti oslobodjen realizacije U/I zadataka i preostaje mu jedino da se posveti realizaciji algoritma obrade. Na ovom nivou se, po pravilu, zatvaraju sve upravljačke petlje, i signaliziraju alarmi, što znači da se puna pažnja mora posvetiti radu ovih podsistema u realnom vremenu.

Za korisnika, udaljena stanica je i dalje deo opreme za prikupljanje signala sa procesa. Prednost koju korisnik vidi ogleda su u izuzetnoj fleksibilnosti u smislu izmene broja i vrste mernih uredjaja i izvršnih organa, kao i jednostavnosti promene algoritma obrade. * Oprema za prenos podataka i industrijska računarska mreža

Oprema za prenos podataka ostvaruje vezu između prenosnog medija, dispečerskog centra i udaljenih stanica. Ova oprema uključuje sve elemente koji se koriste u formiranju industrijskih računarskih mreža.

72

Nema nikakve sumnje da je izbor komunikacione opreme izuzetno važan za efikasan rad celog sistema. Za razliku od ranijih realizacija prenosa podataka koji su zahtevali poseban razvoj ne samo uređaja već i tehnika prenosa, danas je projektant u velikoj meri oslobođen tih vrsta poslova. Uloga inžinjera svodi se na to da u saradnji sa korisnikom sagleda vrstu i obim informacija koja se želi preneti, kao i daljinu na koju se prenos vrši i da u skladu sa time izvrši izbor opreme. Ovim izborom određuje se tip veze, način i brzina prenosa, vreme odziva, temperaturne uslove, napajanje i slično.

Izborom opreme za prenos podataka, u izvesnoj meri je određena i računarska mreža koja će se koristiti. 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.

Kao što je već rečeno, formiranje industrijske mreže podrazumeva da se izvrši izvor topologije mreže, prenosnog medija, načina prenosa i protokola koji definiše format u kome se podaci prenose, detekciju i korekciju greške itd.

Sa aspekta inžinjera - projektanta sistema pitanje je zapravo koju vrstu komunikacija podržavaju udaljene stanice, kao i dispečerski centar. To zapravo znači, da projektant ne mora detaljno ulaziti u sve aspekte komunikacija, ali da mora biti upoznat sa karakteristikama pojedinih tipova mreža i odgovarajućih protokola, da bi mogao da odabere onu koja će odgovarati predviđenom obimu i brzini razmene informacija i da proveri da li se svi elementi projektovanog sistema mogu priključiti na odabrane mrežu. * Dispečerski centar

Dispečerski centar je zapravo računar na kome se realizuje nadzor i upravljanje procesom. U ovom centru vrši se prikupljanje podataka i to periodično, inicirano odredjenim dogadjajima ili na zahtev operatera. Na osnovu ovih podataka dobija se informacija o trenutnom stanju sistema, analizira se performansa, formiraju različiti izveštaji i arhiviraju se odgovarajući podaci. Istovremeno, na osnovu prikupljenih i obradjenih podataka vrši se daljinsko zadavanje komandi, definišu se i prenose referentni signali, zadaju se recepture, sinhronizuju funkcije pojedinih podsistema, odredjuju reakcije na pojedine alarme itd.

U zavisnosti od složenosti celog sistema, može postojati i više dispečerskih centara. U tom smislu se na nivou izmedju procesne i upravljačke mreže formiraju operatorske stanice preko kojih operator upravlja i nadzire deo postrojenja. Na nivou izmedju upravljačke i informacione mreže formira se stanica namenjena tehnologu, koji vrši nadzor i upravljanje celim procesom (Sl.2). Na višem nivou nalazi se poslovni sistem koji dobija neke informacije iz dispečerskog centra, ali obavlja i čitav niz drugih funkcija vezanih za materijalno-finasijsko poslovanje. Nema nikakve sumnje da je, sa gledišta korisnika, upravo dispečerski centar deo nadzorno-upravljačkog sistema koji je u protekloj deceniji doživeo najznačajnije izmene. Ovo se pre svega odnosi na mogućnosti grafičke prezentacije koji korisnika oslobadja zamornog praćenja tabelarno prikazanih podataka i vraća ga u uobičajeno okruženje vizuelnih 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.

Potrebno je da se istakne da dispečerski centar 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 njemu stiču, kao i komande koje se iz njega prenose u najvećoj meri nisu vremenski kritične i pripadaju klasi takozvanih mekih vremenskih ograničenja. To zapravo znači da se od sistema očekuje da se obrada informacija obavi u nekom prosečnom zadanom vremenu. Izuzetak predstavlja samo mali broj vremenski kritičnih informacija, koje se moraju preneti veoma brzo. Projektovani sistem mora da obezbedi adekvatan odziv na takve dogadjaje.

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, činjenica 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

73

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.

4. Projektovanje SCADA-e Pri razvijanju nadzorno-upravljačkog sistema primenom SKADA softverskog alata

predpostavlja se da postoji postrojenje sa pratećom mernom opremom i izvršnim organima, da je data tehnološka šema i opis postrojenja, kao i elektro projekat na nivou postrojenja. Istovremeno se predpostavlja da je razvijen projekat distribuiranog sistema koji obuhvata udaljene stanice, opremu za prenos podataka i računarsku mrežu. Od projektanta se očekuje da je u punoj meri upoznat sa celim sistemom, da razume njegov rad i da je u saradnji sa 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 dispečerskim stanicama. Samo definisanje aplikacije podrazumeva specifikaciju načina komunikacije (tip mreže, komunikacioni drajver i sl.), čvorova u mreži, vreme skaniranja pojedinih stanica itd.

Kada je specificiran ceo sistem, razvoj SCADA-e započinje kreiranjem baze podataka koji se prate i obrađuju. Da bi se to ostvarilo neophodno je da se sastavi spisak svih ulazno/izlazni promenljivih, da im se pridruže simbolička imena i da se za svaku od njih ustanovi sa kog čvora u mreži dolazi, i sa koje adrese u tom čvoru. Istovremeno se utvrđuje i kog je tipa (digitalna ili analogna), da li postoje ograničenja koja treba pratiti na nivou alarma, kojom brzinom se menjaju, odnosno kojom brzinom treba da se skeniraju, i da li se promena njihovih vrednosti prikazuje grafički, ili se arhivira. U tom smislu, od SCADA alata se očekuje da omogući jednostavno definisanje simboličkih imena promenljivih i svih njihovih parametara. U SCADA alatima promenljive se nazivaju "tagovi" ("tag").

74

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

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

75

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

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. U osnovi, svi softverski alati ove vrste omogućavaju da se 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. Dsvako prekoračenje granica označava se kao alarm, koji signalizira operateru da se na procesu nešto ne odvija kako je zamišljeno. SCADA softverski alat treba da omogući definiciju alarma, definisanje više nivoa ozbiljnosti, smera promene koji izaziva alarm, specifikaciju poruke koja se vezuje za alarm itd. • Dogadjaji - matematička ili logička operacija nad podacima čija istinosna vrednost ukazuje na nastanak dogadjaja. Kao rezultat detekcije dogadjaja sistem izvršava odgovarajuću komandu. Softerom se odredjuje repertoar dozvoljenih operacija i komandi. • Grafika - predstavlja poseban i verovatno, sa korisničke tačke gledišta, najznačajniji deo sistema. Grafički displej omogućava korisniku da nadgleda rad sistema, da prati grafikone promena pojedinih veličina, da 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 zadavanje "recepata".

76

Od SCADA softvera se očekuje da radi u okruženju nekog standardnog operativnog sistema tipa Windows-a, NT-a ili Unix-a. Izuzetno je pogodno ako je softver projektovan tako da omogući direktnu razmenu podataka (DDE) izmedju SCADA aplikacije i drugih standardnih aplikacija tipa Excell, Access i slično. Naime, na ovaj način se zapravo proširuju mogućnosti SCADA-e, tako što se za prikaz i obradu podataka koristi ona vrsta programa koja je profesionalno razvijena i najbolje odgovara željenoj vrsti primene. U tom smislu SCADA se može posmatrati kao deo jednog složenog distribuiranog sistema upravljanja, kod koga se na svakom nivou uz pomoć odgovarajućeg softvera obavlja odgovarajuća operacija. Nesumnjivo je da se pred SCADA softver postavlja veoma mnogo zahteva. Različite komercijalno raspoložive SCADA-e rešavaju svaki od naznačenih problema sa manje ili više uspeha, pružaju manju ili veću fleksibilnost i pouzdanost, i u odredjenim segmentima su lakše ili teže za korišćenje. Pored toga, iako većina SCADA softvera može, bar nominalno, da podržava elemente sistema koji potiču od različitih proizvodjača, izvesno je da kvalitet aplikacije zavisi i od ugradjene opreme. Otuda je izuzetno teško da se izvrši uporedna analiza SCADA softvera. Čini se da je, bar u ovom trenutku, izbor softvera prepušten ukusu projektanta, odnosno onom aspektu za koji se njemu, iz nekih razloga, čini da je najznačajniji pri projektovanju aplikacije

Konačno, potrebno je da se naglasi da mikroračunarski sistem spregnut sa procesom u kome se vrši akvizicija podataka i upravljanje procesom ne predstavlja sam po sebi nadzorno-upravljački sistem. Tek kada se formira distribuirani sistem u kome se preko telemetrijske mreže vrši razmena većeg obima informacija može se govoriti o SCADA sistemu.

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

77

Structured Text (ST) Izrazi Izraz je konstrukcija koja vraća vrednost nakon izvršavanja. Sastoji se od operatora i operanada. Operand može da bude konstanta, promenjiva, poziv funkcije, ili neki drugi izraz. Vrednost izraza Izrazi se računaju s obzirom na važnost operatora: prvo se izračunavaju operacije sa operatorima veće važnosti…Ako su operatori istog nivoa, izračunavaju se s leva na desno. Data je tabela ST operatora poredanih po važnosti: operacija Simbol nivo važnosti stavljanje u zagrade (izraz) najjači po važnosti poziv funkcije ime funkcije(lista parametara) stepenovanje EXPT Negacija NOT Množenje,Deljenje,Moduo */MOD Sabiranje,oduyimanje +

- upoređivanje <,>,<=,>= jednako sa nije jednako sa =

<> LogičkoAND AND Logičko XOR XOR Logičko OR OR najslabije po važnosti PRIMERI : Tip instrukcije primer Dodela vrednosti A:=B;

CV := CV + 1; C:=SIN(X);

Poziv funkcijskog bloka i korištenje izlaza funkcijskog bloka CMD_TMR(IN := %IX5, PT := 300); A:=CMD_TMR.Q

RETURN RETURN; IF D:=B*B;

IF D<0.0 THEN C:=A; ELSIF D=0.0 THEN C:=B; ELSE C:=D; END_IF;

CASE CASE INT1 OF 1: BOOL1 := TRUE; 2: BOOL2 := TRUE; ELSE BOOL1 := FALSE;

BOOL2 := FALSE; END_CASE; FOR J:=101;

FOR I:=1 TO 100 BY 2 DO IF ARR[I] = 70 THEN J:=I;

EXIT; END_IF;

END_FOR; WHILE J:=1;

WHILE J<= 100 AND ARR[J] <> 70 DO J:=J+2; END_WHILE;

REPEAT J:=-1; REPEAT J:=J+2; UNTIL J= 101 OR ARR[J] = 70 END_REPEAT;

EXIT EXIT; Prazna instrukcija ;

78

Operator dodele vrednosti S leve strane dodele nalazi se operand (promenjiva, adresa) kojoj se dodeljuje vrednost izraza koji se nalazi s leve strane operatora za dodelu vrednosti :=. Primer:

Var1 := Var2 * 10; Nakon izvršavanja ove linije, Var1 sadrži desatostruku vrednost Var2. Pozivanje funkcijskih blokova u ST-u Funkcijski blok se poziva u ST-u pisanjem imena instance funkcijskog bloka, a zatim u zagradi dodeljivanjem vrednosti parametrima. U sledećem primeru, poziva se tajmer uz dodelu vrednost njegovim ulaznim parametrima IN i PT. Zatim se vrednost na izlazu Q dodeljuje promenjivoj A. Izlazna promenjiva funkcijskog bloka se adresira sa imenom funkcijskog bloka, nakon čega sledi tačka, a zatim ime promenjive:

CMD_TMR(IN := %IX5, PT := 300); A:=CMD_TMR.Q

RETURN instrukcija RETURN instrukcija može da se koristi za napuštanje POU, npr.ako je zadovoljen neki uslov. IF instrukcija Sa IF instrukcijom može se proveriti neki uslov a zatim, zavisno od tog uslova, da se izvršavaju instrukcije. Sintaksa:

IF <Logički_izraz1> THEN <IFinstrukcije>

{ELSIF <logički_izraz2> THEN <ELSIFinstrukcije1> ׃ELSIF <logički_izraz n> THEN

< ELSIFinstrukcije n-1> ELSE

< ELSE instrukcije>} END_IF;

Deo u zagradama {} je opcioni. Ako <logički_izraz1> vrati vrednost TRUE, onda se iyvršavaju samo <IFinstrukcije> i nijedna od ostalih instrukcija. Inače se ispitije da li su logički izrazi, počev od <logički_izraz2>, dok se ne nađe neki koji vraća vrednost TRUE. Zatim se izvršavaju samo one instrukcije nakon tog logičkog izraza, a pre narednog ELSE ili ELSIF izraza. Ako nijedan od logičkih izraza ne vraća vrednost TRUE, izvršavaju se samo < ELSE instrukcije>. Primer:

IF temp<17 THEN grejanje_uključeno := TRUE; ELSE grejanje_uključeno := FALSE; END_IF;

(U ovom primeru se uključuje grejanje ako temperatura opadne ispod 17 stepeni. Inače je isključeno.) CASE instrukcija Sintaksa:

CASE <Var1> OF <Vrednost1>: <Instrukcija 1> < Vrednost 2>: < Instrukcija 2> < Vrednost 3, Vrednost 4, Vrednost 5>: < Instrukcija 3> < Vrednost 6 .. Vrednost 10>: < Instrukcija 4> ... < Vrednost n>: < Instrukcija n>

ELSE <ELSE Instrukcija > END_CASE;

CASE instrukcija se izvršava po sledećem principu: · Ako promenjiva u <Var1> ima vrednost <Vrednost i>, izvršava se <Instrukcija i>. · Ako <Var 1> nema nijednu od ponuđenih vrednosti, izvršava se <ELSE Instrukcjia>. · Ako se ista instrukcija izvršava za više različitih vrednosti promenjive, te vrednosti mogu da se navedu jedna iza druge

razdvojene zagradama. · Ako se ista instrukcija izvršava za vrednosti promenjive u nekom opsegu, piše se početna vrednost promenjive, dve

tačke jedna za drugom, a zatim krajnja vrednost.

79

Primer: CASE INT1 OF

1, 5: B1 := TRUE; B3 := FALSE; 2: B2 := FALSE; B3 := TRUE; 10..20: B1 := TRUE; B3:= TRUE; ELSE B1 := NOT B1; B2 := B1 OR B2;

END_CASE; FOR petlja Sa FOR petljom mogu da se ponavljaju obrade delova koda. Sintaksa:

INT_Var :INT; FOR <INT_Var> := <INIT_VALUE> TO <END_VALUE> {BY <Step size>} DO

<Instrukcije> END_FOR;

Deo u zagradama {} je opcioni. <Instrukcije> se izvršavaju sve dok brojac <INT_Var> ne postane veći od <END_VALUE>. Ovo se proverava pre izvršavanja <Instrukcija> tako da se one nikad ne izvršavaju ako je <INIT_VALUE> veće od <END_VALUE>. Nakon svakog izvršenja <Instrukcija>, <INT_Var> se povećava sa korakom <Step size>. Vrednost koraka može da uzme bilo koju celobrojmu vrednost. Ukoliko nije navedena, njena vrednost iznosi 1. Primer:

FOR Counter:=1 TO 5 BY 1 DO Var1:=Var1*2;

END_FOR; Erg:=Var1;

Pretpostavimo da je vrednost promenjive Var1 jednaka1. Nakon FOR petlje ta promenjiva će da ima vrednost 32. <END_VALUE> nikad ne sme da bude jednaka krajnjoj vrednosti brojača<INT_VAR>. Npr.: Ako je promenjiva Counter tipa SINT i ako je <END_VALUE> jednako 127, dobiće se beskonačna petlja. WHILE petlja WHILE petlja može da se koristi na sličan način kao i FOR petlja s tom razlikom da uslov za prekod petlje može da ima oblik bilo kakvog logičkog izraza. To znači da se navodi uslov, čikim ispunjenjem se završava petlja. Sintaksa:

WHILE <logički izraz> <Instrukcije>

END_WHILE; <Instrukcije> se zvršavaju ponovo i ponovo sve dok <logički izraz> ima vrednost TRUE. Ako <logički izraz> već ima vrednost FALSE prilikom prve provere vrednosti, <Instrukcije> se neće izvršiti ni jednom. Ako <logički izraz> nikad ne dobije vrednost FALSE, <Instrukcije> će se beskonačno ponavljati. Primer: WHILE Counter<>0 DO Var1 := Var1*2;

Counter := Counter-1; END_WHILE

WHILE i REPEAT petlje su, na neki način, bolje od FOR petlje jer ne mora da se zna broj ciklusa u kome će da se izvrši petlja. Međutim, ako se zna broj ciklusa u petlji, bolje je koristiti FOR petlju jer u tom slučaju nikad ne može da dođe do beskonačne petlje. REPEAT petlja REPEAT petlja se razlikuje od WHILE petlje po tome što se uslov za napuštanje petlje ispituje tek nakon izvršenja petlje. To znači da će se petlja izvršiti bar jednom , bez obzira na vrednost uslova. Sintaksa:

REPEAT <Instrukcije>

UNTIL <logički izraz> END_REPEAT;

<Instrukcije> se izvršavaju sve dok <logički izraz> ne vrati vrednost TRUE. Ako <logički izraz> pri prvom izvršavanju već ima vrednost TRUE, <Instrukcije> se izvršavaju samo jednom. Ako <logički izraz> nikad ne dobije vrednost TRUE, <Instrukcije> če se beskonačno izvršavati. EXIT instrukcija Ako se EXIT instrukcija pojavi u FOR, WHILE, ili REPEAT petlji, “izlazi” se iz petlje bez obzira da li je došlo do zadovoljenja uslova za završetak.

80

Instruction List (IL) Instruction list (IL) se sastoji od skupa naredbi: svaka naredba počinje u novom redu i sadrži operator I, zavisno od tipa operacije, jedan ili više operanada razdvojenih zarezom. Ispred instrukcije može da se nalazi labela praćena sa dvotačkom (:). Komentari moraju da su na poslednjem mestu u redu. Između instrukcija mogu da se ubace i prazna mesta. Primer:

LD 17 ST Var1 (* komentar *) GE 5 JMPC dalje LD var2 EQ var1,var2 STN test dalje:

Modifikatori i operatori u IL-u Modifikatori: · C sa JMP, CAL, RET: Instrukcija se izvršava ako je rezultat datog izraza TRUE. · N sa JMPC, CALC, RETC: Instrukcija se izvršava ako je rezultat datog izraza FALSE. · N inače: Negacija operanda (negacija sadržaja akumulatora) Operatori : Operator (Modifikator) Značenje LD N Dodela vrednosti operanda akumulatoru ST N Dodela tekućeg rezultata (iz akumulatora) opreandu. S Postavi BOOL-ov opreand na TRUE ako je takući rezultat (iz akum.) TRUE R Postavi BOOL-ov opreand na FALSE ako je takući rezultat (iz akum.) TRUE AND N,( Logičko I (operacija nad bitima) OR N,( Logičko ILI(operacija nad bitima) XOR N,( Logičko isključivo ILI(operacija nad bitima) ADD ( Dodavanje SUB ( Oduzimanje MUL ( Množenje DIV ( Deljenje GT ( > GE ( >= EQ ( = NE ( <> LE ( <= LT ( < JMP CN Skok na labelu CAL CN Poziv funkcijskog bloka RET CN Napuštanje POU i povratak u POU koji ju je pozvao. ) Primer:

LD TRUE (*učitaj TRUE u akumulator*) ANDN BOOL1 (*izvrši operaciju AND sa neggiranom vrednošću promenjive BOOL1 *) JMPC mark (*ako je rezultat TRUE, skoči na labelu "mark"*) LDN BOOL2 (*--dodeli negiranu vrednost promenjive BOOL2 *) ST ERG (*--promenjivoj ERG*) mark: LD BOOL2 (*vrednost promenjive BOOL2 dodeli u akumulator *) ST ERG (*iz akumulatora u ERG //// : dodela vrednosti iz BOOL2 u ERG *)

81

U IL-u je moguće koristiti zagrade nakon operacije (vrednost u zagradama se tretira kao operand). Npr: LD 2

MUL 2 ADD 3 ST ERG

Ovde je vrednost promenjive Erg = 7. Ako postavimo zagrade: LD 2 MUL (2 ADD 3 ) ST ERG

Sada je vrednost promenjive Erg jednaka 10, operacija MUL se izvršava tek kad dođe do znaka ")"; jer je tek tada izračunat operand za MUL=5.

Instruction List Editor u programu CoDeSys

Ovako izgleda POU napisana u IL-u u CoDeSys-u: Sve editori u CoDeSys-u se sastoje od dela za deklaraciju i dela u kome se vrši programiranje (telo POU). Najvažnije operacije mogu da se nađu u Context meniju (desno dugme miša ili <Ctrl>+<F10>). Takođe je moguć poziv POU u više linija : CAL CTU_inst( CU:=%IX10, PV:=( LD A ADD 5 ) x Primer funkcijskog bloka u IL-u : Fct := (PAR1*PAR2) / PAR3

82

Function Block Diagram (FBD)

Function Block Diagram je grafički orijentisan programski jezik. Radi sa listom mreža, dok svaka mreža sadrži strukturu koja predstavlja ili logički ili aritmetički izraz, poziv funkcijskog bloka, skok, ili instrukciju povretaka (return).

Grafički Editori – zajednički elementi Editori grafički orijentisanih jezika (SFC, LD i FBD) imaju mnogo zajedničkih osobina :. Zoom Objekti kao što su POU, akcije, prelazi itd. U jezicima SFC, LD, FBD i u vizualizacijama mogu da povećaju ili smanje veličinu pomoću funkcije zoom. To se odnosi na sve elemente u delu za implementaciju, dok deo za deklaracije ostaje nepromenjen. Selekcija ove komande je moguća samo ako je položaj kursora ostao na objektu koji je kreiran u jednom od grafičkih jezika ili u na objektu u vizualizaciji. Mreže U LD i FBD editorima, program se sređuje u listi mreža. Svaka od mreža se imenuje sa leve strane pomoću rednog broja I ima strukturu koja se sastoji bilo od logičkih ili aritmetičkih izraza, poziva programa, funkcije ili funkcijskog bloka, ili od instrukcija za skok ili povratak (return). Labele Svaka mreža ima labelu koja može da po izboru bude prazna sa leve strane. Ova labela se može izmeniti tako što se klikne na prvu liniju mreže, direktno iza broja mreže. Tada se može uneti labela, nakon čega ide dvotačka. Komentari u mreži, Extras→Options U svakoj mreži može da se nalazi više linija komentara. U Extras→Options, može se uneti maksimalni ili minimalni broj linija komentara. Komentari se prikazuju sivom bojom. Insert→Network (after) ili Insert→Network (before) Shortcut: <Shift>+<T> (Network after) Da bi uneli novu mrežu, bilo u FBD ili LD, selektujte komandu Insert→Network (after) ili Insert→Network (before), zavisno od toga da li želite da tu novu mrežu ubacite pre ili posle tekuće mreže. Tekuća mreža može da se promeni selektovanjem broja mreže (to se prepoznaje pomoću isprekidanog četverougla oko broja). Pomoću <Shift> tastera i klika mišem može da se selektuje više mreža (od tekuće do one koja se selektuje). Mrežni editori ONLINE U FBD i LD editorima mogu samo da se postave prekidne tačke na mrežama. Broj mreže koja je izabrana kao breakpoint prikazan je plavom bojom. Obrada se zaustavlja ispred mreže, gde je locirana prekidna tačka. U tom slučaju, broj mreže se prikazuje crvenom bojom. Pomoću “single step” može da se prelazi sa mreže na mrežu. Pomoću komande Online→Flow control pokreće se kontrola toka. Korištenjem kontrole toka mogu da se vide tekuće vrednosti koje se prenose mrežom putem prenosnih linija. Ukoliko prenosna linija ne prenosi logičke veličine, vrednost će biti prikazana u posebnom polju. Promenjive koje se ne koriste prikazuju se osenčeno zelenom bojom. Ukoliko linija prenosi logičku veličinu, onda će biti obojena plavom bojom ako je ta veličina = TRUE. Prema tome, može da se prati tok podataka u toku rada PLC-a. Ako se kursor postavi tačno iznad promenjive, tada će da se prikaže (u Tooltip-u) tip, adresa i komentar o toj promenjivoj.

83

FBD Editor u programu CoDeSys POU napisana u FBD editoru:

FBD editor je grafički editor. Radi sa listama mreža, od kojih svaka mreža sadrži strukturu koja prikazuje, respektivno, logički ili aritmetički izraz, poziv funkcijskog bloka, funkciju, program, skok, ili instrukciju povratka. Najvažnije komande mogu da se nađu u context meniju (desno dugme miša ili <Ctrl>+<F10>).

Mogući položaj kursora u FBD :

1. svako tekstualno polje

2. svaki ulaz

3. svaki operator, funkcija ili funkcijski blok

4. izlazi

5. čvor

6. iza svih objekata u mreži

7. čvor direktno ispred dodele vrednosti. Kursor može da se postavi na određeni položaj klikom miša, ili pomoću tastature. Korištenjem tastera sa strelicom, može se prelaziti na sledeći položaj kursora u odabranom smeru. Ako je odabran poslednji položaj kursora u mreži, tada tasteri sa strelicom <gore> ili <dolje> mogu da se koriste za prelaz na prethodnu ili narednu mrežu. Prazna mreža sadrži samo tri znaka pitanja "???". Klikom iza njih, selektuje se poslednji položaj kursora.

84

Insert→Assign u FBD

Symbol: Shortcut: <Ctrl>+<A> Pomoću ove komande ubacuje se dodela vrednosti. U slučaju da se želi dodati dodela vrednost uz već postojeću dodelu na istom mestu, koristi se komanda Insert→Output Insert→Jump u FBD

Symbol: Shortcut: <Ctrl>+<L> Pomoću ove komande ubacuje se skok. Uz dodati skok, pojavi se "???", gde se upisuje labela na koju se “skače”. Insert→Return u FBD

Symbol: Shortcut: <Ctrl>+<R> Ova komanda ubacuje naredbu povratka (RETURN). Insert→Box u FBD

Symbol: Shortcut: <Ctrl>+<B> Pomoću ove komande ubacuju se operatori, funkcije, funkcijski blokovi i programi. Kao prvo, uvek se ubacuje operator “AND”. Ovo se menja selekcijom teksta i upisom umesto “AND” ime željenog operatora, funkcije, funkcijskog bloka, programa. Takođe, željena POU može da se selektuje pomoću Input Assistant-a (F2). U funkcijama i funkcijskim blokovima prikazana su imena ulaza i izlaza. U funkcijskim blokovima postoji polje iznad bloka koje je moguće menjati. Novi POU se dodaje na selektovanu poziciju :

• Ako je selektovan ulaz, POU se ubacuje ispred njega. Prvi ulaz ove POU se povezuje sa granom koja se nalazi levo od selektovanog ulaza. Izlaz novog POU povezuje se na ulaz koji je pre toga bio selektovan.

• Ako je selektovan izlaz, POU se ubacuje nakon njega. Prvi ulaz ove POU se povezuje sa selektovanim izlazom, dok se izlaz POU povezuje sa granom na koju je selektovani izlaz bio povezan.

• Ukoliko je selektovana POU,funkcija ili funkcijski blok, tada se stari element zamenjuje novom POU. • Ukoliko je selektovan skok ili return, tada se POU ubacuje ispred njih. • Ukoliko je selektovan poslednji položaj kursora u mreži, POU se dodaje nakon poslednjeg elementa.

Svi ulazi POU koji ne mogu da se povežu imaće tekst “???” na koji mora da se klikne I da se izmeni u željenu konstantu ili promenjivu. Ukoliko postoji grana sa desne strane dodate POU, na nju će biti dodeljen prvi izlaz te POU. Insert→Input

Symbol: Shortcut: <Ctrl>+<U> Pomoću ove komande se dodaje dodatni ulaz na operator, pošto kod nekih operatora broj ulaza može da se menja (npr. ADD može da ima 2 ili više ulaza). U slučaju kada se povećava broj ulaza operatora, potrebno je selektovati ulaz ispred kojeg se dodaje novi, ili se selektuje sam operand ako se novi ulaz dodaje na poslednje mesto. Insert→Output

Symbol: Pomoću ove komande se unosi dodatna dodela vrednosti pored već postojeće (npr. Vrši se dodela vrednosti neke veličine ka više od jedne promenjive).. Extras→Negation

Symbol: Shortcut: <Ctrl>+<N> Pomoću ove komande vrši se negacija ulaza, izlaza, skoka, ili return instrukcije. Simbol za negaciju je mali krug na vezi. Negacija može da se “otkaže” ponovljenom negacijom.

85

Extras→Set/Reset

Symbol: Pomoću ove komande izlaz se definiše kao set ili reset.

Set izlaz ako dobije vrednost TRUE, zadržava TRUE čak i ako mreža pre njega pređe na FALSE. Reset izlaz kad jednom dobije vrednost FALSE, nakon toga će zadržati FALSE, bez obzira na dalje događaje u mreži. Pri višestrukom izvršavanju ove komande, izlaz se menja između set,reset i normalnog izlaza. Extras→Zoom Shortcut: <Alt>+<Enter> Pomoću ove komande se selektovana POU učitava u svoj editor. Ako se radi sa POU iz biblioteke, poziva se library manager I prikazuje se odgovarajuća POU. Extras→Open instance Ova komanda odgovara komandi Project→Open instance. (Prikaz određene instance/primerka funkcijskog bloka) Cut, Copy, Paste, i Delete u FBD Komande za 'Cut', 'Copy', 'Paste', i 'Delete' nalaze se pod 'Edit' menijem. Ako je selektovan čvor linija, tada će se vršiti 'Cut', 'Copy' ili 'Delete' dodele vrednosti, skoka ili return-a koji su postavljeni ispod tog čvora. Ako je selektovana POU, te operacije se vrše sa celom POU zajedno sa svim granama od kojih zavise ulazi te POU, sa izuzetkom grane na prvoj poziciji. Inače, se te operacije vrše nad celom granom koja se nalazi ispred kursora. Nakon cut ili copy, izbrisani ili kopirani deo se nalazi u clipboard-u i nad njim može da se vrši operacija paste. Ako se to radi, prvo mora da se izabere ispravna pozicija za paste (u šta spadaju ulazi i izlazi). Ako se u clipboard-u nalazi POU (naravno, sa svim povezanim granama sem prve), prvi ulaz se povezuje na granu ispred tačke odakle se vrši paste. Inače se cela grana koja se nalazi ispred tačke u kojoj se vrši paste zamenjuje sadržajem clipboard-a. U svakom slučaju, poslednji element koji se unosi operacijom paste povezuje se sa granom ispred tačke iz koje se vrši komanda paste. VAŽNO: Sledeći problem se rešava pomoću cut i paste: Novi operator se dodaje u sredinu mreže. Grana sa desne strane operatora povezana je na njegov prvi ulaz, ali bi trebalo da je povezana na drugi ulaz. Selektovanjem prvog ulaza i pomoću komande Edit → cut se izbriše sve što je ispred tog ulaza i ubaci u clipboard. Elektovanjem drogog ulaza i komandom Edit → paste sve to će da se nađe ispred drugog ulaza. FBD – Online U FBD-u, prekidne tačke mogu da se postavljaju samo na mrežama. Ako je na nekoj mreži postavljena prekidna tačka, broj te tačke je prikazan plavom bojom. Obrada se tada prekida ispred mreže na kojoj se nalazi prekidna tačka. U tom slučaju, broj mreže se prikazuje crvenom bojom. Koristeći single step može tada da se prelazi sa mreže na mrežu. Dvostrukim klikom na promenjivu otvara se dijalog u kome može da se menja vrednost te promenjive. Ako je u pitanju logička promenjiva, taj dijalog se ne prikazuje, već se vrednost promenjive promeni u suprotnu. Nova vrednost će biti crvene boje ali vrednost same promenjive ostaje nepromenjena. Komandom Online→Write values se vrši stvarno menjanje vrednosti promenjivih koje se zatim prikazuju crnom bojom. Sve ostalo je isto kao što je opisano u poglavlju Mrežni editori ONLINE .

86

Ladder Diagram (LD) Ladder Diagram (LD) je grafički orijentisan jezik čija struktura liči na strukturu električnih kola. S jedne strane, LD je pogodan za konstruisanje logičkih kola, a sa druge strane takođe mogu da se konstruišu mreže kao u FBD. Stoga je LD koristan i za upravljanje pozivima drugih POU. LD se sastoji od niza mreža koje su sa leve i desne strane ograničene levom i desnom strujnom linijom, dok se u sredini između njih nalazi mrežni dijagram načinjen od prekidača, zavojnica i linija koje ih povezuju. Na levoj strani svake mreže se nalazi niz prekidača koji sa leva na desno prenose stanje «ON» ili «OFF» koje odgovara logičkim vrednostima TRUE i FALSE. Svakom prekidaču se pridružuje logička promenjiva. Ako je vrednost te promenjive TRUE, tada se vrši prenos onoga što je na levoj strani na desno. Inače ako je vrednost promenjive koja je pridružena prekidaču jednaka FALSE, na desnu stranu prekidač šalje vrednost OFF. Primer mreže u LD-u koju čine prekidači i zavojnice : Između LD-ova i iskaza programskog jezika ST ne postoji puna korespodencija (kao ni između FBD-ova i iskaza programskog jezika ST). Npr. svaki LD se ne može direktno izraziti iskazima programskog jezika ST, jer programski lezik ST ne podržava skokove. Takođe, svaki iskaz i izraz programskog jezika ST se ne može direktno pretvoriti u LD-ove, jer se programski jezik LD odnosi samo na logičke promenjive. Redosled izvršavanja: Unutar POU koja je napisana u LD-u, mreže se izvršavaju odozgo na dole. Prekidači (Contact) Svaka mreža pisana u LD-u se sa leve strane sastoji od mreže prekidača (koji se predstavljaju sa dve paralelne linije | |) koji sa leva na desno prenose stanje «ON» ili «OFF». Ova stanja odgovaraju logičkim promenjivim TRUE ili FALSE. Svakom prekidaču je pridružena logička promenjiva: ako je njena vrednost TRUE, tada se stanje na mreži prenosi sa leve strane prekidača na desnu, dok u suprotnom prekidač na levu stranu šalje stanje OFF. Može se povezati više prekidača paralelno i tada ako bilo koja od paralelnih grana ima vrednost «ON» cela paralelna veza će imati stanje «ON». Ako se prekidači povezuju redno, svi prekidači moraju da prenesu stanje «ON» da bi poslednji prekidač u vezi mogao da primi stanje «ON». (Slično kao u paralelno ili serijski vezanom električnom kolu.) Prekidač može biti negiran, što se prepoznaje po simbolu «/» koji se nalazi unutar prekidača, i tada se vrednost prenosi preko prekidača ukoliko je vrednost promenjive koja mu je pridružena jednaka FALSE. Vrste prekidača : -| |- Normalno otvoren (radni) prekidač: zatvoren dok njegova logička promenjiva ima vrednost TRUE -|/|- Normalno zatvoren (mirni) prekodač:otvoren dok njegova logička promenjiva ima vrednost TRUE (Prekidač (contact) je element koji dodeljuje stanje ka priključku sa desne strane koje je jednako rezultatu operacije Logičko I stanja priključka sa njegove leve strane I odgovarajuće logičke promenjive koja mu je dodeljena. Prekidač ne menja vrednost promenjive koja mu je dodeljena.) Zavojnice (Coil) Sa desne strane mreže može da se nađe određen broj zavojnica koje su predstavljene simbolom « -( )- ». Ako se radi o više zavijnica u jednoj mreži, ona jedino mogu biti paralelno vezane. Zavijnica prenosi stanje sa mreže sa svoje leve strane na desnu i to stanje upisuje u odgovarajuću logičku promenjivu koja joj je pridružena. Na liniji koja dolazi do zavojnice,može da bude prisutno stanje ON (odgovara logičkoj vrednosti TRUE) ili OFF (što odgovara logičkoj vrednosti FALSE). I prekidači I zavojnice mogu da budu negirani: ako je negirana zavojnica (što se vidi po simbolu (/) ) tada zavojnica upisuje negiranu vrednost u logičku promenjivu koja joj je pridružena. Ako je prekidač negiran, on povezuje linije samo ako njemu pridružena logička promenjiva ima vrednost FALSE. Vrste zavojnica: -( )- Obična (radna) zavojnica: njena logička promenjiva dobija vrednost TRUE kada je moguć tok struje -(/)- Negirana (mirna) zavojnica : njena logička promenjiva dobija vrednost TRUE kada nije moguć tok struje -(S)- Setovana zavojnica: njena logička promenjiva dobija vrednost TRUE kada je moguć tok struje i zadržava tu vrednost do resetovanja -(R)- Resetovana zavojnica: njena logička promenjiva dobija vrednost FALSE kada je moguć tok struje i zadržava tu vrednost do setovanja (Zavojnica (coil) kopira stanje sa levog priključka na desni bez ikakve modifikacije, I upisuje odgovarajuću vrednost u promenjivu koja mu je dodeljena. ) Funkcijski blokovi u LD-u Uz prekidače I zavojnice, mogu se dodati I funkcijski blokovi I programi. U mreži oni moraju imati logički ulaz i izlaz I mogu da se postavljaju na ista mesta gde I prekidači, tj. Sa leve strane LD mreže.

87

Napomena :Funkcioje i funkcijski blokovi : Najmanje jedan logički ulaz i najmanje jedan logički izlaz mora da postoji u svakom bloku u cilju omogućavanja prolaska struje kroz blok.

Set/Reset zavojnice Zavojnice mogu da se definišu kao Set ili Reset. Set zavojnica ((S)) nikad ne upisuje ništa preko vrednosti TRUE u odgovarajuću logičku promenjivu. Tj. Ako se promenjiva jednom postavi na vrednost TRUE, onda tako I ostaje. Reset zavojnica ((R)) nikad ne upisuje ništa preko vrednosti FALSE u odgovarajuću logičku promenjivu. Tj. Ako se promenjiva jednom postavi na vrednost FALSE, onda tako I ostaje. LD kao FBD Pri radu sa LD-om često je potrebno rezultat prekidačke mreže da upravlja radom neke druge POU. Jedan način za to je da se koristi zavojnica koje će da rezultat postavi u neku globalnu promenjivu koje će se zatim koristiti na nekom drugom mestu. Međutom, može I da se unese poziv POU direktno u LD mrežu. Za to je potrebno da ta POU ima EN ulaz (To su iste POU sa tim da imaju dodatni ulaz koji je označen sa EN koji je tipa BOOL I ima sledeće značenje: POU sa EN ulazom se izvršava kada EN ima vrednost TRUE.) Na osnovu toga vidi se da se mogu kreirati mreže sločno kao u FBD-u. * Primer LD mreže sa EN POU :

LD Editor u programu CoDeSys Na slici pored je prikazan izgled LD editora : Najvažnije komande mogu da se nađu u Context meniju (desno dugme miša ili <Ctrl>+<F10>). Mogući položaji kursora: 1. bilo koji tekst

2. prekidač ili funkcijski blok

3. zavojnica

4. prenosna linija

Insert→Contact

Symbol: Shortcut: <Ctrl>+<O> Ova komanda se koristi za dodavanje novog prekidača ispred selektovane lokacije u mreži. Iznad prekidača će se nalaziti tekst «???» na koji se može kliknuti tasterom miša i promeniti ga tako da označava promenjivu ili konstantu koju pridružujemo datom prekidaču. (Za to može da se korist i Input Assistant) Insert→Parallel Contact

Symbol: Shortcut: <Ctrl>+<R> Dodavanje prekidača u paraleli sa selektovanom pozicijom u mreži. Ako je selektovana zavojnica ili pozicija izmeđo prekidača I zavojnice, tada će se novi prekidač naći povezan u pereleli sa svim prethodnim prekidačima. Insert→Function Block Shortcut: <Ctrl>+<B> Ova komanda se dodaje ako se želi dodati operator, funkcijski blok, funkcija ili program kao POU u LD mrežu. Da bi se to učinilo mora da se selektuje pozicija izmeđuprekidača I zavojnica, ili sama zavojnica. Nova POU, kao prvo ima oznaku AND. Ukoliko se želi, može se to izmeniti tako da se radi o nekom drugom bloku (može se koristiti Input Assistant). Prvi ulaz POU se postavlja na ulaznu liniju, prvi izlaz se postavlja na liniju iza POU: staga te promenjive moraju biti tipa BOOL. Svi ostali ulazi I izlazi imaju upisano "???", što treba da se izmeni (promenjiva ili konstanta).

88

Insert→Coil

Symbol: Shortcut: <Ctrl>+<L> Ova komanda se korist za dodavanje nove zavojnice u mrežu (paralelno sa prethodnim zavojnicama, ako ih ima više). Iznad zavojnice će se nalaziti tekst «???» na koji se može kliknuti tasterom miša i promeniti ga tako da označava promenjivu ili konstantu koju pridružujemo datoj zavojnici. (Za to može da se korist i Input Assistant) POU sa EN ulazom Ukoliko se LD želi koristiti kao PLC koji će da upravlja pozivanjima drugih POU, tada se te POU moraju proširiti sa dodatnim ulazom EN. Takva POU se vezuje paralelno sa zavojnicom. Insert→Box with EN Dodavanje u LD mrežu novog funkcijskog bloka, operatora, funkcije ili programa koji imaju EN ulaz. Selektovana pozicija mora da se nalazi između prekidača I zavojnice ili sama zavojnica. Nova POU se dodaje u paraleli sa zavojnicama I ispod njih (to je inicijalno AND blok, što može da se izmeni, npr. pomoću Input Assistant-a). Insert→Function Block with EN Dodavanje novog funkcijskog bloka koji ima EN ulaz. Selektovana pozicija mora da se nalazi između prekidača I zavojnice ili sama zavojnica. Novi funkcijski blok se postavlja u paraleli sa zavojnicom; pojavljuje se dijalog u kojem se bira kojeg tipa će da bude dotični funkcijski blok. Insert→Function with EN Dodavanje nove funkcije koja ima EN ulaz. Selektovana pozicija mora da se nalazi između prekidača I zavojnice ili sama zavojnica. Novi blok se postavlja u paraleli sa zavojnicom; pojavljuje se dijalog u kojem se bira kojeg tipa će da bude dotična funkcija. Insert→Insert at blocks Pomoću ove komande se dodaju novi elementi već unetoj POU (dodatni ulaz ili izlaz zavisno od tipa bloka). Input : dodavanje novog ulaza; Output : dodavanje novog izlaza; POU : dodavanje nove POU. 0000 Assign Dodela vrednosti nekoj promenjivoj. To će se prikazati u obliku "???", gde se upisuje ime promenjive kojoj se vrši dodela vrednosti (može se koristiti Input Assistant). Insert→Jump Dodavanje skoka paralelno zavojnici. Ukoliko se preko linije prenosi “ON” tada će se izvršiti skok ka označenoj labeli. Insert→Return Dodavanje komande za povratak Iz POU (Return), paralelno sa zavojnicom. Ukoliko se preko linije prenosi “ON” tada će se izvršiti prekid obrade POU. Selektovana pozicija mora da se nalazi između prekidača I zavojnice. Extras→Paste after Ubacivanje sadržaja Clipboard-a redno sa selektovanom pozicijom. Ova komanda je moguća samo kada su sadržaj Clipboard-a I selektovana pozicija mreže koje se sastoje od mreže prekidača. Extras→Paste below Shortcut: <Ctrl>+<U> Ubacivanje sadržaja Clipboard-a paralelno ispod selektovane pozicije. Ova komanda je moguća samo kada su sadržaj Clipboard-a I selektovana pozicija mreže koje se sastoje od mreže prekidača. Extras→Paste above Ubacivanje sadržaja Clipboard-a paralelno iznad selektovane pozicije. Ova komanda je moguća samo kada su sadržaj Clipboard-a i selektovana pozicija mreže koje se sastoje od mreže prekidača. Extras→Negate

Symbol: Shortcut: <Strg>+<N> Negacija prekidača, zavojnice, skoka, return instrukcije, ulaza ili izlaza POU (na tekućoj poziciji kursora). Negacija se otkazuje ponovnom negacijom. Extras→Set/Reset Uzastopnim izvršavanjem ove komande nad zavojnicom, ona se postavlja da bude Set, Reset ili normalna zavojnica. Extras→Open instance Isto kao Project→Open instance.

89

Sequential Function Chart (SFC) SFC je grafički orijentisan jezik koji omogućava opis hronološkog reda izvršavanja različitih akcoja unutar programa. Na sledećoj slici je prikazan izgled mreže u SFC-u:

Koraci (Step) POU u SFC-u se sastoji od niza koraka (step) koji su međusobno povezani (transition - uslov prelaza). Imamo dva tipa koraka: • Pojednostavljeni tip sadrži akciju i oznaku koja pokazuje da li je korak aktivan. Ako je primenjena akcija u koraku, u gornjem desnom uglu se pojavljuje mali trougao. • IEC korak se sadrži oznaku da li je aktivan i jednu ili više pridriženih akcija ili logičkih promenjjivih. Pridružene akcije se mogu videti sa desne strane koraka. Akcije (Action) Akcija može da sadrži nizove instrukcija napisanih u ST ili IL, mreže u FBD, LD ili SFC-u. U slučaju pojednostavljenih koraka, svakom koraku je uvek pridružena jedna akcija. Da bi se menjao sadržaj akcije, treba dvostruki klik miša na korak kojem pripada ta akcija za otvaranje editora. Drugi način je pomoću komande Extras → Zoom Action/Transition. Dodatna mogućnost programskog okruženja: moguće je koristiti jednu ulaznu i jednu izlaznu akciju.

Akcije koje se koriste za IEC korake prikazane su u Object Organizeru direktno ispod njihovih SFC-POU. Nove akcije se mogu kreirati pomoću komande Project → Add Action. Ulazne / izlazne akcije (Entry or exit actions) Uz akciju koja je pridružena koraku, mogu se dodati ulazna i izlazna akcija. Ulazna akcija se izvršava samo jednom, tačno nakon što korak postane aktivan. Izlazna akcija se takođe izvršava samo jednom, pre nego što se korak deaktivira. Korak kojem je pridružena ulazna akcija ima “E” u donjem levom uglu, a prisustvo izlazne akcije se vidi po oznaci “X” u donjem desnom uglu. Da bi se pristupilo ulaznoj ili izlaznoj akciji, potreban je dvostruki klik miša u odgovarajući ugao koraka. Prelazi / Uslovi prelaza (Transition / Transition condition) Između koraka se nalaze tzv. uslovi prelaza (Transition). Uslov prelaza mora da ima vrednost TRUE ili FALSE. Može da sadržu ili logičku promenjivu, adresu, logičku konstantu, ili niz instrukcija koje kao rezultat daju logičku vrednost (TRUE ili FALSE). Uslovi prelaza ne mogu sadržati programe, funkcijske blokove ili dodele vrednosti. Aktivni korak Nakon poziva SFC POU, akcija koja pripada inicijalnom koraku se izvršava prva. Korak čije se akcije izvršavaju u datom trenutku, nazivamo aktivnim. U Online modu aktivni koraci su obeleženi plavom bojom. IEC koraci Uporedo sa pojednostavljenim koracima, mogu se koristiti standardni IEC koraci (Tada mora da se u projektu poveže specijalna SFC biblioteka Iecsfc.lib da bi mogli da se koriste IEC koraci). Uz IEC korak može da se pridruži proizvoljan broj akcija koje nisu fiksirane za pojedine korake već se kreiraju nezavisno od koraka i mogu da se koriste proizvoljan broj puta unutar POU. Stoga se oni pridružuju pojedinim koracima pomoću naredbe Extras→Associate action. Uporedo sa akcijama, koracima mogu da se pridruže logičke promenjive. Aktivacija i deaktivacija akcija i logičkih promenjivih može da se kontroliše korišćenjnem tzv. kvalifikatora. Moguća su i vremenska kašnjenja. Pošto akcija može da bude aktivna i ako se obrađuje sledeći korak, npr. Uz kvalifikator S(Set), mogu se postići konkurentni procesi. Pridružena logička promenjiva se setuje ili resetuje sa svakim pozivom SFC bloka. To znači, da se sa svakim pozivom menja vrednost sa TRUE na FALSE i obrnuto. Akcije koje su pridružene IEC koraku prikazane su sa desne strane koraka u bloku koji se sastoji od dva dela. Levo polje sadrži kvalifikator, moguće sa vremenskom konstantom, desno polje sadrži ime akcije. Primer IEC bloka sa dve akcije prikazan je na slici pored. Radi lakšeg praćenjna procesa, sve aktivne akcije se u online modu prikazuju plavom bojom. Napomena: Ako se akcija deaktivira, ona će da se ozvrši još jednom. Tzn. da se svaka akcija izvršava najmanje dva puta (čak i one sa kvalifikatorom P). Zatim, akcije se za pojedine korake (IEC) izvršavaju u alfabetskom redosledu. Da li će nove koraci koje se ubacuju biti IEC koraci ili pojednostavljani koraci, zavisi od podešavanja Extras→Use IEC-Steps. Na slici pored je prikazan SFC POU sa akcijom u Object Organizeru:

90

Kvaifikatori (Qualifier) N Akcija je aktivna onoliko dugo koliko i korak R overriding Reset – Akcija se deaktivira S Set (Stored) Akcija je aktivirana i ostaje aktivna sve do Reseta L vremensko ograničenje – akcija je aktivna određeno vreme, a maksimum onoliko koliko i korak D vremensko kašnjenje – Akcija postaje aktivna nakon određenog vremena ako je korak još uvek aktivan, i ostaje aktivna dokle god je i korak aktivan. P Pulse – Akcija se izvršava samo jednom ako je korak aktivan SD Stored and time Delayed – Akcija se aktivira posle određenog vremena,ostaje aktivna do Reseta DS Delayed and Stored – Akcija se oktivira posle određenog vremena ako je korak još uvek aktivan i ostaje aktivna sve do Reseta SL Stored and time limited – Akcija je aktivna određeno vreme Kvalifikatorima L, D, SD, DS i SL je potrebna vremenska konstanta (TIME). Implicitne promenjive u SFC-u Svaki korak ima oznaku (flag) koja označava stanje koraka (aktivno ili neaktivno stanje koraka). Ime te oznake je <ImeKoraka>.x za IEC korake ili <ImeKoraka> za pojednostavljene korake. Ova logička promenjiva ime vrednost TRUE kada je korak aktivan i FALSE kada nije. Može da se koristi u svakoj akciji ili uslovi prelaza. Promenjiva <ImeAkcije>.x.označava da li je akcija aktivna ili ne. Za IEC korake se implicitna promenjiva <StepName>.t koristi za proveru koliko dugo je aktivan korak. Implicitnim promenjivim može da se pristupi od strane drugih programa. Na primer : boolvar1:=sfc.step1.x; Ovde je step1.x implicitna logička promenjiva koja predstavlja stanje IEC koraka step1 u POU sfc1. Neki SFC Flagovi : SFCEnableLimit: Ovo je logička promenjiva : TRUE= ako istekne maksimalno vreme za obradu koraka, javiće se greška (SFCError), inače ako ima vrednost FALSE ta greška će da se ignoriše. SFCInit: Kada ova logička promenjiva ima vrednost TRUE sfc se postavlja u inicijalni korak. I drugi SFC flags su takođe resetovani (inicijalizacija). Init korak ostaje aktivan ali se ne izvršava dokle god ova promenjiva ima vrednost TRUE. Tek kada se SFCInit ponovo postavi na FALSE može se vršiti dalja normalna obrada. SFCReset: Ova promenjiva, tipa BOOL, se ponaša slično kao SFCInit, ali dalja obrada može da počne tek nakon inicijalizacije koraka Init. (SFCReset može da se postavi na FALSE u koraku Init.) SFCPause: Izvršavanje SFC dijagrama se prekida dokle god ova promenjiva ima vrednost TRUE. SFCError: Ova logička promenjiva se postavlja na TRUE kada se registruje prekoračenje vremena u SFC dijagramu. Ukoliko dođe do još jednog vremenskog prekoračenja, ono neće biti registrovano sve dok se SFCError prvo ne resetuje. SFCTrans: Ova promenjiva ima vrednost TRUE kada se izvršava neki uslov prelaza. SFCErrorStep: Ova promenjiva je tipa STRING: ako SFCError registruje prekoračenje vremena, u ovu promenjivu se upisuje ime koraka koji ga je izazvao. SFCErrorPOU: U ovoj promenjivoj, tipa STRING, nalazi se ime bloka u kome se pojavilo prekoračenje vremena. SFCCurrentStep: Ova promenjiva je tipa STRING, sadrži ime aktivnog koraka. Alternativne grane Dve ili više grana u SFC-u mogu da se definišu kao alternativne grane. Svaka alternativna grana mora da počne i da se završi sa uslovom prelaza. Alternativne grane mogu da sadrže paralelne grane i druge alternativne grane. Alternativna grana počinje sa horizontalnom linijom (alternativni početak) i završava horizontalnom linijom (alternativni kraj) ili skokom. Ako je aktivan korak koji prethodi alternativnoj grani aktivan, ispituje se prvi uslov prelaza svih alternativnih grana s leva na desno. Prvi prelaz sa leva čiji uslov prelaza ima vrednost TRUE otvara se i aktiviraju se koraci iza njega. Paralelne grane Dve ili više grana u SFC-u mogu da se definišu kao paralelne grane. Svaka paralelna grana mora da počne i da se završi korakom. Paralelne grane mogu da sadrže alternativne grane ili druge paralelne grane. Paralelna grana počinje sa dvostrukom linijom (početak paralele) i da se završi dvostrukom linijom (kraj paralele) ili skokom. Paralelne grane se, za razliku od alternativnih, izvršavaju sve zajedno u paraleli, s tim da korak koji sledi nakon kraja paralele postaje aktivan tek ako su svi prethodni koraci aktivni i ako su uslovi prelaza pre njih TRUE. Skok (Jump) Skok je veza ka koraku čije ime je navedeno pored simbola za skok. Skokovi su nam potrebni jer nije dozvoljeno kreiranje veza nagore ili njihovo ukrštanje.

91

SFC Editor u programu CoDeSzs SFC editor je grafički editor. Najvažnije komande mogu da se nađu u kontext meniju (desno dugme miša ili <Ctrl><F10>). Selektovanje blokova i SFC-u Selektovan blok predstavlja vezu SFC elemenata koji su okruženi isprekidanim četverouglom. Element (korak, prelaz ili skok) selektuju se pozicioniranjem miša na taj element i pritiskom na levo dugme miša ili mogu da se koriste tasteri sa strelicama. Ako treba selektovati grupu elemenata, treba pritisnuti <Shift> i držati ga pritisnutim dok se selektuju uzastopni elementi Insert→Step Transition (before)

Symbol : Shortcut: <Ctrl>+<T> Dodavanje koraka i uslova prelaza ispred selektovanog bloka. Insert →Step Transition (after)

Symbol: Shortcut: <Ctrl>+<E> Dodavanje koraka i uslova prelaza nakon prvog uslova prelaza u selektovanom bloku.

Insert →Alternative Branch (right)

Symbol: Shortcut: <Ctrl>+<A> Dodavanje alternativne grane sa desne strane selektovanog bloka. Da bi se dodala alternetivna grana (bilo sa leve ili desne strane) selektovanik blok mora da počinje i da se završava uslovom prelaza. U novoj grani se ispočetka nalazi samo jedan uslov prelaza. Insert →Alternative Branch (left)

Symbol: Dodavanje alternativne grane sa leve strane selektovanog bloka. Insert→Parallel Branch (right)

Symbol: Shortcut: <Ctrl>+<L> Dodavanje paralelne grane sa desne strane selektovanog bloka. Da bi se dodala paralelna grana (bilo levo ili desno) selektovani blok mora da počinje i da se završava korakom. U novoj grani se na početku nalazi samo jedan korak. Insert →Parallel Branch (left)

Symbol: Dodavanje paralelne grane sa leve strane selektovanog bloka. Insert →Jump Dodavanje skoka na kraj grane kojoj pripada selektovani blok (to mora biti alternativna grana). Insert →Transition-Jump

Symbol: Dodavanjje uslova prelaza nakon kojeg se nalazi skok, na kraj selektovane grane (mora biti u pitanju

paralelna grana). Insert →Add Entry-Action - Dodavanje ulazne akcije koraku. Ulazna akcija se izvršava samo jednom, tačno nakon što je korak postao aktivan i može da se implementira u jeziku po izboru. Korak koji ima ulaznu akciju prepoznaje se po oznaci “E” u donjem levom uglu. Insert →Add Exit-Action - Dodavanje izlazne akcije koraku. Izazna akcija se izvršava samo jednom, tačno pre nego što korak prestane biti aktivan i može da se implementira u jeziku po izboru. Korak koji ima izaznu akciju prepoznaje se po oznaci “X” u donjem desnom uglu.

92

Extras→Paste Parallel Branch (right) Ubacivanje sadržaja clipboard-a kao paralelnu granu sa desne strane selektovanog bloka. Radi toga selektovani blok mora da počinje i da se završava korakom. Slično tome, sadržaj clipboard-a mora biti SFC blok koji počinje i završava se korakom. Extras→Add label to parallel branch Ako se želi dodati nova paralelna grana sa lebelom na koju će moći da se izvrši skok, treba selektovati uslov prelaza ispred grananja i izvršiti komandu Add label to parallel branch. (Primer je prikazan na slici pored). Brisanje labele - Labela za skok briše se tako što se izbriše ime labele. Extras →Paste afters Pomoću ove komande se sadržaj clipboard-a ubacuje nakon prvog koraka ili nakon prvog uslova prelaza u selektovanom bloku. (Normalno copy/paste se vrši ispred selektovanog bloka.) Extras→Zoom Action/Transition Shortcut: <Alt>+<Enter> Akcija prvog koraka u selektovanom bloku ili telo prvog uslova prelaza selektovanog bloka učitava se u editor u odgovarajućem jeziku u kojem je bilo napisano. (Ao su prazni, mora da se izabere u kome će se pisati telo uslova prelaza ili koraka.) Extras→Clear Action/Transition Brisanjje akcija prvog koraka u selektovanom bloku ili telo prvog uslova prelaza.Ako se uz korak nalazi pridružena samo jedna akcija, onda će ona da bude izbrisana ovom komandom. Inače će se pojaviti dijalog u kojem se bira jedna ili više akcija koje će da se izbrišu. Extras→Step Attributes Pomoću ove komande otvara se prozor u kojem se podešavaju osobine selektovanog koraka (kao na slici pored). Minimum Time – minimalno vreme za koje se bi trebalo da se vrši obrada datog koraka. Maximum Time – maksimalna dužina vremena dozvoljenog za obradu datog koraka (kao parametri se unose konstante ili promenjive tipa TIME,npr. T#3s). Comment – komentari za taj korak. U 'Sequential function chart options' dijalogu koji se otvara sa Extras→Options, može da se podesi da li će ovi parametri biti prikazani u SFC editoru, sa desne strane

koraka. Na slici pored prikazan je primer koraka čije izvršavanje bi trebalo da traje najmanje dve, a najviše deset sekundi. U online modu se tada pored ova dva parametra nalazi i prikaz koliko je vremena prošlo od početka obrade datog bloka.

Extras →Time Overview Pomoću ove komande se otvara prozor za podešavanje vremenskih parametara SFC koraka (kao na slici pored). Extras →SFC-Overview Pomoću ove komande može da se dobije skraćen prikaz SFC POU koja je trenutno aktivna. Za povratak na normalan način prikaza dovoljno je ponoviti naredbu, ili se pozicionirati i pritisnuti <Enter>. Extras →Options Otvaranje dijaloga u kojem mogu da se podešavaj razne opcije za SFC POU: Step Height – visina bloka kojim se

prikazuje SFC korak; Step Width – širina koraka; Display at Step – da li se uz korak prikazuju komentari i vremenski parametri Extras →Associate Action Pomoću ove komande IEC koraku se pridružuju akcije i logičke promenjive. Nove akcije za IEC korake kreiraju se u Object organizeru za SFC POU pomoću komande Project→Add Action.

93

Uvod - CoDeSys ukratko

start Start….Programs…….CoDeSzs V2.22………CoDeSzs V2.22 pisanje novog projekta * kreiranje novog projekta: File……New * Target Settings : None, OK * PLC_PRG POU : U dijalogu za New POU odabere se jezik POU, a ostavi se Type Program i ime PLC_PRG. * dodavanje nove POU (program, funkcijski blok, funkcija): Dodajte drugi POU, tipa program, function block, ili function, uz izbor jezika koji će da se koristi, u Object Organizer-u (leva oblast na ekranu), koristeći komandu brzog menija Add Object (pritisak na desno dugme miša kad je kursor na POU ). * Build Project : Project……..Rebuild all ili F11 vizuelizacija * Create Visualisation U Object Organizer-u (desna oblast na ekranu) na dnu se odabere treći tab sa leva, koji se zove Visualisation. Koristite brzi meni za poziv komande Add Object . * Crtanje elemenata vizuelizacije : koristite elemente koji se nalaze na toolbar-u. * Konfigurišite elemente vizuelizacije Start projekta Online…..Simulation Mode Online…..Login Online…..Run Prekid Online….Stop Online…Logout ************************************************************************************************** 1. Prva POU kreirana u projektu će automatski da se zove PLC_PRG. Proces počinje ovde (slično funkciji main u

C programu), a drugim POU-ima se odatle može pristupiti (programi. funkcije, funkcijski blokovi). U slučaju da se definiše Task Configuration, više ne bi bilo neophodno koristiti program sa imenom PLC_PRG. Postoje različite vrste objekata u projektu : POU (programske organizacione jedinice), tipovi podataka, prikazni elementi (vizualizacija) i resursi. Object Organizer sadrži listu svih objekata u projektu.

2. Podešavanje parametara projekta (Setup) Prvo se konfiguriše PLC u smislu postavljanja adresa koje se koriste u projektu. Zatim se kreiraju POU koji su potrebni za rešavanje problema. Potrebni POU se mogu programirati u bilo kom jeziko standarda. kada je programiranje kompletno, kompajlira se projekat i uklanjaju se greške ukoliko ih ima.

3. Testiranje Kad se uklone greške, startuje se simulacija, “Loguje” se u simulirani PLC i “učita” projekat u PLC. Sada ste u Online modu. Sada otvorite prozor sa vašom PLC konfiguracijom i testirajte vaš projekat. Da bi to učinili, unesite ulazne promenjive ručno i posmatrajte da li se na izlazima pojavljuju očekivane vrednosti. Tajođe može da se posmatra vrednos sekvence lokalnih promenjivih u POU-ima. U Watch and Receipt Manager-u može da se konfiguriše koje veličine žele da se ispituju.

4. Debagiranje U slučaju programskih grešaka mogu se postaviti prekidne tačke (Breakpoint). Ukoliko sre proces zaustavi u takvoj prekidnoj tački, mogu se ispitati vrednosti svih promenjivih u procesu u tom trenutku. Koristeći sekvencu (Single Step) može se proveriti logička ispravnost programa.

5. Dodatne funkcije za dibagiranje: Mogu se postaviti promenjive u programu, ulazi i izlazi na određene vrednosti. Može se koristiti flow control za posmatranje koje programske linije rade. Sampling Trace obezbeđuje da se prati i prikazuje aktuelna vrednost promenjivih u određenom vremenskom periodu.

Jednom kada se podese parametri projekta i kada je projekat testiran, hardver može da se učita i takođe testira, (Dostupne su sve Online funkcije koje su korištene pri simulaciji.) 6. U bilo kom trenutku ceo projekat može da bude dokumentovan i eksportovan u TXT fajl. *******************************************************************************************

94

projekat → Sadrži sve objekte u PLC programu : POU-i, tipovi podataka, vizualizacije, resursi i biblioteke. POU → funkcije, funkcijski blokovi, programi; Svaka POU se sastoji od dela za deklaraciju i tela POU. Telo POU se piše na jednom od IEC programskih jezika. CoDeSys podržava sve IEC standardne POU. Ako želite da ih koristite u projektu, morate uključiti u projekat biblioteku standard.lib. POU može pozvati drugu POU. REKURZIJE NISU DOZVOLJENE. Funkcije → POU daje tačno jedan podatak na izlazu (koji može da se sastoji od više elemenata, kao što su polja i strukture). POzivaju se kao operatori u izrazima. Pri deklaraciji funkcija mora da primi tip : FUNCTION Fct: INT. Ime služi kao izlazna promenjiva kojoj se dodeljuje rezultat. Funkcijski blokovi → POU koje daju jedan ili više veličina u toku obrade (ne daje povratnu vrednost kao funkcija). Deklaracija funkcijskog bloka počinje sa FUNCTION_BLOCK i završava sa END_FUNCTION_BLOCK. Moraju da se kreiraju reprodukcije ili instance (primerci) funkcijskog bloka: Svaka instanca poseduje svoje ime i strukturu podataka koja sadrži ulaze, izlaze i interne promenjive. Instance se deklarišu lokalno ili globalno kao promenjive, gde ime funkcijskog bloka igra ulogu tipa te promenjive. Primer instance sa imenom INSTANCE, funkcijskog bloka FUB : INSTANCE : FUB; Funkcijski blokovi se uvek pozivaju preko instanci. Samo se ulaznim i izlaznim parametrima može pristupiti van instance funkcijskog bloka. Tzn. da interne promenjive funkcijskog bloka korisniku ostaju nevidljive. Deklaracioni prostor funkcijskog bloka i programa može da sadrži deklaracije instanci, dok deklaracije instanci nisu dozvoljene u funkcijama. Pristup instanci funkcijskog bloka je ograničen na POU u kojoj je deklarisana, sem ako je instanca deklarisana globalno. Ime instance funkcijskog bloka može da se koristi kao ulazni parametar za funkcije ili funkcijske blokove. Sve veličine ostaju zapamćene posle obrade funkcijskog bloka, sve dok se ponovo ne obradi→ Pozivi funkcijskog bloka sa istim argumentima ne vraćaju uvek iste izlazne vrednosti.

Program → POU koja vraća više vrednosti tokom rada. Prepoznaju se globalno kroz projekat. Sve veličine ostaju zapamćene od zadnjeg puta kad je vršena obrada programa. Programi mogu da se pozivaju, ali nije dozvoljeno pozivanje programa iz funkcija. NEMA INSTANCI PROGRAMA. Ako POU pozove program i ako mu promeni neku vrednost, ove veličine ostaju do sledećeg poziva programa, čak i ako se program poziva iz druge POU. To se razlikuje od poziva funkcijskog bloka. Tamo se menjaju samo veličine u datoj instanci funkcijskog bloka. Deklaracija programa počinje sa PROGRAM, a završava sa END_PROGRAM. PLC_PRG → Specijalno predefinisana POU. Svaki projekat mora da sadrži ovaj specijalni program. Ova POU se poziva tačno jednom po upravljačkom ciklusu. Pri kreiranju novog projekta, prva POU se zove PLC_PRG. Ne bi trebalo to menjati. Ako korisnik definiše taskove, tada projekat može da ne sadrži PLC_PRG jer u tom slučaju tok obrade zavisi od dodele taskova. Ali u našem slučaju... ! NE BRISATI PLC_PRG ! PLC_PRG je generalno glavni program u single task programu. resursi → Potrebni su za konfigurisanje i organizovanje projekta i za praćenje vrednosti promenjivih: Globalne promenjive – koriste se kroz projekt PLC Configuration -- za konfigurisanje hardvera Task Configuration – za vođenje programa pomoću taskova Sampling Trace – za grafički prikaz vrednosti promenjivih Watch and Receipt Manager – za prikaz vrednosti promenjive i postavljanje njene default vrednisti Biblioteke → U projekat se mogu uključiti nizovi biblioteka čiji POU, tipovi podataka i globalne promenjive mogu da se koriste baš kao korisnički definisane promenjive. Tipovi podataka → standardni i korisnički definisani (strukture, enumeracije, reference) Vizualizacija → za prikaz promenjivih u projektu. Off-line se nacrtaju geometrijski elementi koji zatim mogu da menjaju oblik i poziciju Online, zavisno od veličine određenih promenjivih. Debagiranje i online funkcije : - Sampling Trace – dozvoljava da se prati vrednost niza promenjivih, zavisno od tzv. triger digađaja. To je

rastuća ili opadajuća ivica neke prethodno definisane bulove promenjive. CoDeSys dozvoljava praćenje do 20 promenjivih.

- Debugging – pronalaženje grešaka (Project → Options → Build → Debugging) - Breakpoint – mesto u programu na kojem se zaustavlja obrada radi provere vrednosti nekih promenjivih na

specifičnim mestima u programu. Breakpoints mogu da se postave u editorima za sve programske jezike IEC standarda. U tekstualnim editorima se selektuju kao brojevi linija, u FBD i LD na brojevima mreža, u SFC na koracima (steps).

- Single Step (provera logičke korektnosti programa) -- U IL: Izvrši program do naredne CAL, LD ili JMP komande -- U ST: Izvrši narednu instrukciju -- FBD, LD : Izvrši narednu mrežu

-- U SFC : Nastavi akciju do sledećeg koraka

95

- Single Cycle – izvršavanje se prekida nakon svakog ciklusa. - Change values online – Tokom obrade promenjive mogu jednom da se postave na određenu vrednost (upis

vrednosti) ili da se ponovo njihova vrednost upiše nakon svakog ciklusa (forcing). U online modu takođe mogu da se menjaju vrednosti promenjivih dvostrukim klikom miša na vrednost promenjive. Za promenjive bulovog tipa to će izazvati promenu sa TRUE ne FALSE ili obrnuto, a za svaki drugi tip se dobije dijalog u kojem se upiše vrednist na koju se postavlja ta promenjiva.

- Monitoring – Pored deklaracije promenjivih na ekranu, kontinualno se čitaju i prikazuju tekuće vrednosti sa PLC-a. U Online modu CoDeSys prikazuje vrednosti svih promenjivih vidljivih na ekranu. U isto vreme promenjive mogu da se zajedno smeste u Watch and Receipt Manager pomoću kojeg vrednosti svih promenjivih mogu da se vide na jednom mestu.

- Simulation – Tokom simulacije kreirani PLC program se ne obrađuje na PLC-u , već se izvršava na računaru na kojem radi CoDesys. Dostupne su sve Online funkcije. To je način da se testira logička korektnost programa bez PLC hardvera.

Elementi u glavnom prozoru CoDeSys-a : · Menu bar – U gornjem delu glavnog prozora. Komande menija:File, Edit, Project, Insert, Extras, Online, Window, Help · Tool bar (opciono); sa tasterima za bržu selekciju komandi iz menija. · Object Organizer: na levoj strani CoDeSys-a. Na dnu se nalaze četiri registracione karte za sledeće vrste objekata : POU,

tipovi podataka, Vizualizacije and Resursi. · Vertikalni razdeljivač ekrana: granica između Object Organizer-a i radnog prostora u glavnom prozoru, između interfejsa (deklaracioni deo) i implementacije (deo u kojem se pišu instrukcije) POU-a i između radnog prostora i prozora za poruke. Možete ga pomerati pomoću miša. Ukoliko izgleda da ga nema na ekranu, dovoljno je da samo uvećate prozor. · Radni prostor : na levoj strani glavnog prozora u CoDeSys-u. Svi editori za objekte i za uptavljanje bibliotekama se otvaraju u ovoj oblasti. · Prozor za poruke (opciono) : nalazi se ispod prozora za radni prostor u glavnom prozoru. Sadrži sve poruke iz prethodnih kompajliranja, provera vrednosti ili upoređivanja. Dvostrukim klikom miša na poruku ili pritiskom na enter u editoru se otvara odgovarajući objekat gde je selektovana linija u kojoj se nalazi ta greška. Pomoću komandi Edit →Next error i Edit →Previous error može se “skakati” između poruka o grešci.. Prikaz prozora za poruke je opcioni (Window → Messages) · Status bar (opciono); nalazi se na dnu prozora sa informacijama o tekućem statusu projekta. ** Context Menu <Shift>+<F10> Umesto korištenja menu bar-a za izvršavanje komandi, može da se koristi desni taster miša. Meni koji se pojavi sadrži najčešće korišćene komande za selektovani objekat ili za aktivni editor. Izbor dostupnih komandi automatski se podešava za aktivni prozor. Options : Podešavanja koja se učine, sem ako je drugačije određeno, čuvaju se u CoDeSys.ini fajlu i učitavaju se prilikom sledećeg pokretanja CoDeSys-a. Project→Options Otvara se dijalog za podešavanje opcija. Opcije su podeljene u različite kategorije. Izaberite kategoriju na levoj strani dijalog box-a klikom miša ili koristeći strelice i menjajte opcije na desnoj strani. Kategorije su : · Load & Save · User information · Editor · Desktop · Color · Directories · Build · Passwords Options for Load & Save. Create Backup : CoDeSys kreira backup file pri svakom sačuvavanju i to sa extenzijom ".bak". Na ovaj način uvek može da se restauriše verzija pre poslednjeg sačuvavanja. Auto Save :vaš rad na projektu se konstantno sačuvava u privremenom fajlu sa extensijom ".asd" nakon svakog isteka određenog intervala vremena (Auto Save Interval). Ovaj fajl se briše pri normalnom izlasku iz programa. Ako se iz bilo kog razloga CoDeSys ne završi “normalno”, onda se ovaj fajl ne briše, pa se prilikom sledećeg starta može ponovo učitati. Ask for project info : Prilikom sačuvavanja novog projekta, ili sačuvavanja projekta pod drugim imenom, automatski se zove “Project Info” Auto Load : Pri sledećem startu CoDeSys-a automatski se učitava poslednji otvoreni projekat. Options for User information : Ime korisnika. Inicijali i kopanija za koju radi.

96

Options for Editor : · Autodeclaration (nakon unosa dotad nedeklarisane promenjive pojavljuje se dijalog za deklaraciju promenjive) · Autoformat · Declaration as table · Tab width · Font · Display of the text selection (na koji način se prikazuje ono što je selektovano) · Display of the Bitvalues (način prikazivanja binarnih podataka) Options for the Desktop : Tool bar : tool bar sa tasterima za bržu selekciju komandi postaje vidljiv ispod osnovnog menija. Status bar : postaje vidljiv status bar na donjem delu CoDeSys glavnog prozora. Online in Security mode : u Online modu komandama Run, Stop, Reset, Toggle Breakpoint, Single cycle, Write values, Force values i Release force, pojavljuje se dijalog za ponovnu potvrdu da li zaista treba izvršiti dotičnu komandu. Language : U kojem jeziku se prikazuju tekstovi u menijima i u dijalozima. Options for Colors Podešavanje default boja za Broj linije, Položaj prekidnih tačaka, postavljene prekidne tačke,... Options for Directories : Libraries i Compilation Files pokazuju na direktorijume sa kojih CoDeSys preuzima biblioteke ili fajlove za kompajliranje. Options for Build Debugging : Za generisanje dodatnih debugging kodova. Potrebno je za korišćenje funkcija za dibagiranje. Online Changes : projekat može da se menja u Online modu. Save before compile : projekat će da se sačuva svaki put pre kompajliranja. Number of data segments : koliko prostora je rezervisano u PLC-u za podatke iz vašeg projekta. Upravljanje i rad sa projektima : Komande koje se odnose na ceo projekat nalaze se pod File →Project. File→New : Kreiranje praznog projekta sa imenom “Untilted”. Pri sačuvavanju ovo ime mora da se promeni. File→Open : Otvaranje postojećeg projekta (*.pro) ili biblioteke (*.lib). Ukoliko je za projekat definisan Password ili

User Group pojaviće se dijalog za unos šifre. File→Close : Zatvaranje projekta koji je u tom trenutku otvoren. Ukoliko je nešto bilo menjano CoDeSys pita da li ćemo sačuvati izmene ili ne. File→Save : <Ctrl>+<S> Sačuvavanje bilo kakvih izmena u projektu (uz davanje imena projektu ako je potrebno). File→Save as : Tekući projekat se sačuvava pod drugim imenom ili kao biblioteka. To neće promeniti originalni projekat. File→Print : <Ctrl>+<P> Štampanje sadržaja aktivnog prozora. File→Printer setup : Podešavanje parametara štampača i izgleda odštampanih strana. File→Exit : <Alt>+<F4> Izlazak iz CoDeSys-a Project→Check : Provera tačnosti programa. Ako se pojavi greška, pojaviće se poruka u Message prozoru, ali za razliku od komande Rebuild all , ne kreira se kod. Project→Build : Obrađuju se samo izmenjene POU. Kod učitavanja programa, samo izmenjene POU sa šalju ka PLC-u, dok ostatak programa u PLC-u ostaje nepromenjen. Project→Rebuild all : Obrada svih POU. Otvara se prozor za poruke koji prikazuje tok obrade programa i greške, ukoliko ih ima. Sa komandom Online→Login, komanda “Rebuild all” se izvršava automatski ukoliko je projekat menjan od zadnjeg kompajliranja. Project→Document : Štampanje dokumentacije za celokupan projekat. (Štampa se samo onaj deo dijaloga koji je markiran u plavo.) Project→Export : POU-i, tipovi podataka, vizualizacije i resursi mogu da se eksportuju (Ime.exp). Selektovani objekti se pišu u ASCII formatu. Project→Import : Importovanje podataka u tekući projekat. Project→Siemens Import : Importovanje POU-ova i promenjivih iz Simensovih STEP5 i STEP7 fajlova. Project→Compare : Upoređivanje otvorenog projekta sa nekim drugim (npr. poređenje datog projekta sa poslednjom sačuvanom verzijom istog). Project→Project info : Informacije o projektu. Project→Global Search : traženje lokacije teksta u POU-ima, tipovima podataka ili objektima globalnih promenjivih.

97

Project→Global replace : Traženje nekog teksta i njegova zamena sa nekim drugim. Project→Register changes : Ova komanda je neophodna ukoliko se čine značajne izmene u projektu a bez prekidanja rada PLC-a (ako je dozvoljeno Online Change) Kopirajte projekat, izmenite ga, i testirajte promene. Pomoću komande Project → Compare upoređujete dva projekta. Pomoću komande Register Changes prate se sve razlike od tekućeg projekta. Zatim se sa komandom Build kompajliraju modifikovani POU-i. Pri učitavanju programa samo se modifikovane POU šalju ka PLC-u. Ostatak programa u PLC-u ostaje nepromenjen. Kreiranje i brisanje objekata . . . Object POU-i, tipovi podataka, vizualizacije i resursi (pristupne i globalne promenjive, konfiguracija promenjivih, Sampling Trace, Konfiguracija PLC-a, Task konfiguracija, i Watch and Receipt Manager ) : svi su definisani kao objekti. Svi objekti u projektu se nalaze u Object Organizer-u. Project→Object Delete : <Delete> selektovani objekti se uklanjaju iz Object Organizer-a, čime se brišu iz projekta. Project→Object Add : <Insert> Kreiranje novog objekta. Project→Object Rename : <Spacebar> Preimenovanje selektovanog objekta ili folder-a. Project→Object Copy : Selektovani objekat se kopira i sačuvava pod drugim imenom. Project→Object Open : <Enter> Učitavanje selektovanog objekta u odgovarajući editor. Isto se postiže dvostrukim klikom miša na objekat. Project→View instance : Otvaranje i prikazivanje pojedine instance funkcijskog bloka (koji mora da se prvo selektuje u Object Organizer-u) . INSTANCAMA MOŽE DA SE PRISTUPI TEK NAKON LOGOVANJA ! Project→Show unused variables : Prikaz promenjivih koje su deklarisane, ali se ne koriste (projekat mora biti kompajliran). Extras→Previous version Vraćanje tekućeg projekta u poslednje sačuvano stanje. Funkcije za editovanje : Edit→Undo : <Ctrl>+<Z> Edit→Redo : <Ctrl>+<Y> Edit→Cut : <Ctrl>+<X> ili <Shift>+<Delete> Prebacuje ono što je selektovano iz editora u clipboard uz uklanjanje iz editora. Edit→Copy : <Ctrl>+<C> Selekcija se kopira u clipboard, ali se ne menja ništa u editoru. Edit→Paste : <Ctrl>+<V> Sadržaj clipboard-a se upisuje na tekuću poziciju u editoru. Edit→Delete : <Delete> Brisanje selektovane oblasti iz editora. Ovo ne menja sadržaj clipboard-a. Edit→Find : Potraga za određenim tekstom u tekućem editoru. Edit→Find next : <F3> Edit→Replace : Potraga za određenim tekstom u tekućem editoru i njegova zamena sa nekim drugim tekstom. Edit→Input Assistant : <F2> Ova komanda obezbeđuje dijalog za biranje mogućih ulaza na trenutnoj poziciji kursora u editoru. U levoj koloni se bira kategorija ulaza, selektuje se željeni ulaz u desnoj koloni, i potvrdi izbor sa OK. Time se unosi ono što je odabrano na tu poziciju. Edit→Declare Variable : <Shift>+<F2> Otvaranje dijaloga za deklaraciju promenjivih. Ovaj dijalog se takođe otvara automatski kada je uključena opcija Project → Options → Editor →Autodeclaration i kada se koristi nova nedefinisana promenjiva. Edit→Next error : <F4> Posle kompajliranja sa greškama ova komanda pokazuje na sledeću grešku. Odgovarajući prizor editora se aktivira i selektuje se mesto gde se greška nalazi. Edit→Previous error : <Shift>+<F4> Prikazuje prethodnu grešku. Online funkcije : - Online funkcije postaju dostupne tek nakon Login-a. Online→Login : <Alt>+<F8> Ova komanda kombinuje sistem za programiranje sa PLC-om (ili startuje simulaciju) i vrši promenu u online mod. Ukoliko tekući projekat nije bio kompajliran otkako je otvoren ili od poslednje izmene, onda se sada kompajlira (kao Project → Rebuild all). Ako se tokom kompajliranja pojave greške, CoDeSys ne ulazi u Online mod. Nakon uspešnog login-a dostupne su sve online funkcije. Za povratak u offline mod se koristi Online → Logout. Ako sistem prijavi grešku: "A connection to the PLC could not be established" proveriti parametre u Online →Communication Parameters (u slučaju da želite da radite simulaciju proveriti da li je uključena opcija za simulaciju) "The program has been modified! Should the new program be loaded?" Projekat koji je otvoren u editoru nije kompatibilan sa onim koji se nalazi na PLC-u (ili sa programom čija simulacija se vrši). Stoga nije moguće prikazivanje i debagiranje. Može se izabrati ili “NO”, Izvršiti Logout, i otvoriti odgovarajući projekat, ili sa “YES” učitati tekući projekat u PLC.

98

Online→Logout: <Ctrl>+<F8> Veza sa PLC-om se prekida, ili se program u modu simulacije završava i prebacuje u offline mod. Da bi se vratili u online mod : Online→Login. Online→Download : Učitavanje kompajliranog projekta u PLC. Online→Run : <F5> Pokretanje programa na PLC-u ili u simulaciji. Ova komanda može da se izvrši odmah nakon Online → Download komande, ili nakon što je korisnikov program na PLC-u bio zaustavljen pomoću Online → Stop, ili kada je korisnički program u prekidnoj tački (breakpoint), ili kada se koristi Single Cycle. Online→Stop : <Shift>+<F8> Zaustavlja izvršavanje programa na PLC-u ili u simulaciji između dva ciklusa. Za restartovanje programa koristiti Online →Run. Online→Reset : Ukoliko ste inicijalizovali promenjive na neke vrednosti, ovim će se promenjive vratiti na svoje inicijalne vrednosti. Sve druge promenjive se postavljaju na standardne inicijalizacione vredosti (npr. INT na 0). Kao preventivna mera, CoDeSys vas pita da potvrdite tu odluku pre nego što se promene vrednosti svih promenjivih. Online→Toggle Breakpoint : <F9> Postavljanje prekidne tačke na datu poziciju u aktivnom prozoru. Ako se tu već nalazu prekidna tačka, onda se on ovime otklanja. Kada se dođe do prekidne tačke u toku rada programa, program će da se zaustavi, a odgovarajuće polje će biti označeno sa crvenom bojom u pozadini. Da bi nastavili program, koristite Online → Run, Online → Step In, ili Online → Step Over komande. Online→Breakpoint Dialog Box : Dijalog za postavljanje ili uklanjanje prekidnih tačaka unutar celog projekta. U dijalogu su takođe prikazane sve prkidne tačke koje su do tad postavljene. Online→Step over : <F10> Izvršavanje korak po korak. Ako se poziva POU, program se završava posle njegovog izvšenja. U SFC-u se izvršava kompletna akcija. Ako je tekuća instrukcija poziv funkcije ili funkcijskog bloka, onda se ta funkcija ili funkcijski blok izvršavaju u potpunosti. Koristote komandu Online → Step In u cilju pomeranja na prvu instrukciju pozvane funkcije ili funkcijskog bloka. Kada se tu stigne do zadnje instrukcije, program ide na narednu instrukciju u POU. Online→Step in : <F8> (gore objašnjeno) Online→Single Cycle : <Ctrl>+<F5> Izvršava se jedan PLC ciklus i zaustavlja se nakon njega. Ova komanda može da se ponavlja kotinualno. Single Cycle se završava kada se izvrši komanda Onlive → Run. Online→Write Values / Force Values <Ctrl>+<F7> (Write values)

<F7> (Force values) Da bi promenili vrednosti promenjive koja sadrži jedan element, to činimo dostrukim klikom miša na liniju u kojoj je promenjiva deklarisana, ili alternativno koristimo <Enter>. Nova vrednost koju upisujemo je obojena crvenom bojom, ali još nije upisana na PLC. Više promenjivih može da se postavi na određene vrednosti i da se zatim sve odjednom upišu u PLC: Sa Write Values, promenjive se upisuju samo jednom i odmah zatim mogu ponovo da se upišu. Sa Force values, veličine nastavljaju da se upisuju nakon svakog ciklusa sva dok se procedura ne zaustavi pomoću ReleaseForce. Online→Release Force : <Shift>+<F7> (gore objašnjeno) Online→Show Call Stack : Ovu komandu možemo da pokrenemo kada se simulacija zaustavi u prekidnoj tački. Dobije se dijalog box sa listom POU-a koji se trenutno nalaze u Call Stack-u. Prva POU je uvek PLC_PRG, jer tu počinje izvršavanje. Poslednja POU je uvek ona koja se izvršava. Nakon što se selektuje POU i pritisne taster GO, selektovana POU se prikazuje u editoru uz prikaz linije ili mreže koja se obrađuje. Online→Simulation : Korisnički program radi na istom računaru pod Windows-om. Ovo se koristi za testiranje projekta. Online→Communication Parameters parametri za prenos ka PLC-u putem serijskog interfejsa. Online→'Communications Parameters' for the use of Gateway : komunikacioni parametri kada je PLC povezan sa računarom preko rutera. Online→Sourcecode download : Učitavanje izvornog koda za projekat u upravljački sistem. Window … Komande za rad sa prozorima. Window→Tile Horizontal : Uređenje prozora horizontalno u radnom prostoru da se ne preklapaju i da ga celog popune. Window→Tile Vertical : Uređenje prozora vertikalno u radnom prostoru da se ne preklapaju i da ga celog popune. Window→Cascade : Uređenje prozora u radnom prostoru kaskadno, jedan iza drugog. Window→Arrange Symbols : Uređenje svih minimiziranih prozora u radnoj oblasti o red na njenom dnu. Window→Close All : Zatvaranje svih otvorenih prozora u radnoj oblasti. Window→Messages : <Shift>+<Esc> Otvaranje ili zatvaranje prozora za poruke.

99

Editori u CoDeSys – u Declaration Editor : Služi za deklaraciju promenjivih u POU-ima (Program Organization Unit) i globalnih promenjivih, za deklaracije tipova podataka, i u Watch and Receipt Manager-u. Svi editorise sastoje od deklaracionog dela i tela koji su razdvojeni. Najvažnije komande se nalaze u Contents meniju (desno dugme miša ili <Ctrl>+<F10>) Deo za deklarisanje : Sve promenjive koje će se koristiti u datom POU, deklarišu se u njegovom deklaracionom delu:

Input Variable : Ulazne promenjive →deklaracija počinje ključnom reči VAR_INPUT a završava sa END_VAR Output Variable : Izlazne promenjive→ deklaracija počinje ključnom reči VAR_OUTPUT a završava sa

END_VAR Input and Output Variables : ulazno-izlazne promenjive (VAR_IN_OUT ... END_VAR) Local Variables : lokalne promenjive (VAR ... END_VAR) Retain Variables : Retain promenjive (VAR RETAIN...END_VAR) Constants : Konstante (VAR CONSTANT...END_VAR)

Keywords : Ključne reči koje se u svim editorima moraju pisati velikim slovima i ne mogu se koristiti kao promenjive. Variables declaration : Deklaracija promenjivih : <Identifikator> {AT <Adresa>}:<Tip> {:=<inicijalizacija>};

Dio u zagradama {} je opcioni. Ako se želi povezati promenjiva direktno na neku adresu, onda se ona mora deklarisati sa ključnom reči AT. AT Declaration : Povezivanje promenjive direktno na neku adresu → deklacija sa ključnom reči AT. Insert→Declarations keywords : Lista svih ključnih reči koje mogu da se koriste u deklaracionom delu POU. Po izboru ključne reči, ona se ubacuje na tekuću poziciju kursora. Insert→ Type : Lista svih tipova koji mogu da se koriste u deklaracionom delu POU. · Standardni tipovi BOOL, BYTE, itd. · Definisani tipovi Structure, enumeracije tipovi, ... · Standardni funkcijski blokovi za deklaracije instanci standardnih funkcijskih blokova · Definisani funkcijski blokovi za deklaracije instanci korisnički definisanih funkcijskih blokova Syntax Coloring : Tekst se prikazuje u boji i to : · Plavo Ključne reči · Zeleno Komentari u tekstualnim editorima · Ružičasto Specijalne konstante (npr. TRUE/FALSE, T#3s, %IX0.0) · Crveno Greška na ulazu (npr. neodgovarejuća vremenska konstanta, ključna reč, ...) · Crno Promenjive, konstante, operatori didele vrednosti, .... Autodeclaration : Ako je izabrana ova opcija u Editor→Options pojavljuje se automatski dijalog za deklaraciju svake nove promenjive koja još nije deklarisana. Brojevi linija u Deklaracionom Editoru U offline modu, klikom na broj linije markiraće se cela linija teksta.U online modu, klikom na broj linije otvara se ili zatvara promenjiva u toj liniji. Insert→New Declaration : Ubacivanje deklaracije nove promenjive. U svakoj liniji je promenjiva iza koje sledi znak jednakosti i vrednost te promenjive. Ako promenjiva u tom trenutku nije definisana onda tu stoji ???. Pritiskom na <Enter> ili dvostrukim klikom na taster miša otvara de dijalog za upis vrednosti promenjive. U slučaju bulove promenjive ne pojavljuje se dijalog već se stanje promenjive menja. Nova vrednost će biti u crvenoj boji, a za njeno prihvatanje potrebno je Online → Write values. Ako je data komanda Online →Force values, promenjive se postavljaju na te nove vrednosti, sve dok se ne da Release force Komentari : Komentari moraju da se nalaze između specijalnog znakova * (npr. * ovo je komentar*). Tekstualni Editori Operacije koje se najčešće koriste: Insert→Operator : Ubacivanje operatora. Insert→Operand : Ubacivanje promenjive. Insert→Function : Ubacivanje funkcije. Insert→Function Block : Ubacivanje funkcijskog bloka. Text editori u Online modu : Online funkcije u editorima su postavljanje prekidnih tačaka i obrada korak po korak. U Online modu, prozor text editora je podeljen vertikalno na pola. Sa leve strane prozora nalazi se programski tekst; sa desne strane je prikaz promenjivih čije vrednosti se menjaju u odgovarajućim linijama. Extras→Monitoring Options : Podešavanje parametara prozora za prikaz. Prekidne tačke u Text Editoru : Prekidne tačke ne mogu da se postave bilo gde: mogu da se postave na onim mestima u programu gde se mogu menjati vrednosti promenjivih ili gde se tok programa grana. Postavljaju se tako što se klikne mišem na broj linije gde želi da se postavi prekidna tačka; uklanjaju se ponovnim klikom na broj linije(može i sa <F9>).

100

Kada se u PLC-u dostigne prekidna tačka, na ekranu se prikazuje prekid na odgovarajućuj liniji koja je označena crvenom bojom. Tada se korisnički program na PLC-u zaustavlja. Ako je program u prekidnoj tački, može da se nastavi sa Online→Run, a sa Online→Step Over i Online→Step In program radi do naredne prekidne tačke. Ukoliko se radi o pozivu funkcije, sa step Over se preskače poziv funkcije, dok se sa Step In prebacuje na tu POU. Broj linije u Text Editoru : Broj linije teksta. U Offline modu se klikom na nju čitava linija teksta selektuje. U Online modu , boja iza broja linije ukazuje na status: · tamno sivo: Ovde je moguće postaviti prekidnu tačku · svetlo plavo: Prekidna tačka je postavljena u ovoj liniji · crveno: Program je stigao to te tačke. Tekstualni editori su: Instruction List Editor

The Editor for Structured Text Grafički Editori Oba grafički orijentisana jezika, LD i FBD, imaju mnogo zajedničkih elemenata : Labele Network Comments : Svaka mreža može da ima više linija komentara, a u Extras→Options, podešava se maximalni broj linija. Insert→Network (after) ili Insert→Network (before) : <Shift>+<T> (Network after) Za ubacivanje nove mreže u FBD ili LD, selektuje se Insert→Network (after) ili Insert→Network (before) , zavisno od toga da li se želi nova mreža pre ili posle tekuće mreže. Mrežni editori u the online modu : U FBD i LD editorima može samo da se postavljaju prekidne tačke. Polje sa brojem mreže u kojoj je satovana prekidne tačka prikazano je u plavoj boji. Obrada se zaustavlja ispred mreže u kojoj je detektovana prekidna tačka. U tom slučaju se broj mreže prikazuje u crvenoj boji. Sa obradom korak po korak može zatim da se skače sa mreže na mrežu. Pomoću komande Online→Flow Control može da se startuje kontrola toka gde se mogu pratiti vrednosti promenjivih u mrežama.. Function Block Diagram Editor : FBD Editor je grafički editor kojin radi sa listom mreža u kojoj svaka mreža poseduje strukturu koja prikazuje, respektivno, logički ili aritmetički izraz, poziv funkcijskog bloka, skok, ili Return instrukciju. Kursor u FBD Na svakom tekstu je moguća pozucija kursora. Selektovani tekst je sa plavom pozadinom i tada može da se menja. Prisustvo kursora može takođe da se detektuje pomoću isprekidanog četverougla oko selektovanog objekta. Kursor može da se postavi klikom miša, ili pomoću tastature. Prazna mreža sadrži tri upitnika “???”. Klikom pored njih selektuje se poslednja pozicija kursora. Insert→Assignment : <Ctrl>+<A> : Ubacivanje dodele vrednosti. Zavisno od selektovane pozicije, to se vrši ispred selektovanog ulaza, posle selektovanog izlaza, pre križanja linija, ili na kraju mreže. Umesto tri upitnika “???” unosi se ime promenjive. Umesto ovoga, može se koristiti i Input Assistance. Ako želite dodatnu dodelu vrednosti na već postojeću dodelu koristi se : Insert →Output Insert→Jump : <Ctrl>+<L> : Ubacivanje skoka. Umesto “???” piše se ime labele gde se vrši skok. Insert→Return : <Ctrl>+<R> : Ubacivanje RETURN instrukcije. Insert→Operator : <Ctrl>+<O> : Ubacivanje operatora, zavisno od selektovane pozicije. (Ako je selektovan operator, funkcija ili funkcijski blok, tada se stari element zamenjuje novim operatorom, a ako su selektovani skok ili return, tada se operator ubacuje ispred njih.) Ubačeni operator je uvek AND. Selekcijom teksta, umesto toga se može upisati drugi tekst tako da se taj operator konvertuje u bilo koji drugi (ili upitrebom Input Assistance) Insert→Function ili Insert→Function Block : <Ctrl>+<F> (Function)

<Ctrl>+<B> (Function block) Ubacivanje funkcije ili funkcijskog bloka. Prvo se otvara Input Assistant dijalog, koji sadrži sve funkcije i funkcijske blokove. Insert→Input : <Ctrl>+<U> Ubacivanje ulaza (operatorima) Insert→Output : Ubacivanje dodatne dodele vrednisti na već postojeću dodelu. Extras→Negation : <Ctrl>+<N> Pomoću ove komande može da se vrši negacija. Simbol za negaciju je kružić na vezi. negacija može da se poništi pomoću ponovne negacije. Extras→Zoom : <Alt>+<Enter> Pomoću ove komande se selektovana POU učitava u editor. Cutting, Copying, Pasting, i Deleting u FBD : Komande za Cut, Copy, Paste, i Delete nalaze se pod Edit menijem. Function Block Diagram u Online Modu : U FBD, prekidne tačke mogu da se postave samo na mreže, i u tom slučaju je polje sa brojem mreže prikazano u plavoj boji. Obrada se prekida ispred mreže gde se nalazi prekidna tačka, i tada polje sa brojem mreže postaje crveno. Korisreći Single step dalje se skače sa mreže na mrežu. Za svaku promenjivu se prikazuje trenutna vrednost. Dvostrukim klikom na promenjivu otvara se dijalog za upis nove vrednosti radi menjanja tekuće vrednosti promenjive (sem kada se radi o Bulovoj promenjivoj kada se klikom miša menja vrednost promenjive). Nova vrednost će biti crvene boje, a sa komandom Online→Write values se ta vrednost postavlja u listu i dalje se prikazuje crnom bojom. Kontrola toka se vrši pomoću Online→Flow control.

101

Ladder Editor : To je grafički editor. Najvažnije komande su u Context meniju (levo dugme miša ili <Ctrl>+<F10>) Inserts→Contact : <Ctrl>+<O> Ubacivanje kontakta ispred markirane lokacije na mreži. Umesto “???”, klikom na tekst (ili pomiću Input Assistant) upisuje se željena promenjiva ili konstanta. Insert→Parallel Contact : <Ctrl>+<R> : Ubacivanje kontakta paralelno markiranoj poziciji u mreži. Insert→Function Block : <Ctrl>+<B> Dodavanje funkcijskog bloka (standardnog ili korisnički definisanog). Prvi ulaz ubačene POU se povezuje ulaz veze, a prvi izlaz POU se povezuje na izlaznu vezu(oba moraju zbog toga da su Bulovog tipa) , dok su svi ostali ulazi i izlazi POU-a označeni sa “???”. Insert→Coil : <Ctrl>+<L> : Ubacivanje navoja u paraleli sa prethodnom navojima. Insert→Jump : Ubacivanje skoka. Insert→Return : Ubacivanje Return instrukcije Extras→Paste after : Ubacivanje sadržaja clipboerd-a kao serijski kontakt nakon markirane pozicije. Extras→Paste below : <Ctrl>+<U> Ubacivanje sadržaja clipboerd-a kao paralelni kontakt ispod markirane pozicije. Extras→Paste above : Ubacivanje sadržaja clipboerd-a kao paralelni kontakt iznad markirane pozicije. Extras→Negate : <Ctrl>+<N> Dodavanje negacije na željenu poziciju. Extras→Set/Reset : Set/Reset navoja. Ladder Diagram u Online Mode : U Online modu, kontakti i navoji u Lader dijagramu koji su u stanjo “ON” obojeni su u plavo. Sve linije po kojima se prenosi “ON” su takođe plave boje. Na ulazima i izlazima funkcijskih blokova prikazane su vrednosti odgovarajućih promenjivih. Prekidne tačke mogu da se postave samo na mrežama; koristeći korak po korak prelazi se zatim sa mreže na mrežu. Sequential Function Chart Editor SFC editor je grafički editor. Najvažnije komande se nalaze u context meniju (desno dugme miša ili <Ctrl>+<F10>). Selektovanje blokova u SFC-u : Markirani (selektovani) blok okružen je isprekidanim četvorouglom. Možete selektovati element (step, transition ili skok) pozicionoranjem miša na taj element i pritiskom na levi taster miša. Insert→Step Transition (before) : <Ctrl>+<T> Ubacivanje koraka(stap) u SFC editoru ispred selektovanog bloka. Insert→Step Transition (after) : <Ctrl>+<E> Ubacivanje koraka(stap) u SFC editoru iza selektovanog bloka. Insert→Alternative Branch (right) : <Ctrl>+<A> Dodavanje alternativne grane sa desne strane selektovanog bloka. Insert→Alternative Branch (left) : Dodavanje alternativne grane sa leve strane selektovanog bloka. Insert→Parallel Branch (right) : <Ctrl>+<L> Dodavanje paralelne grane sa desne strane selektovanog bloka. Insert→Parallel Branch (left) : Dodavanje paralelne grane sa leve strane selektovanog bloka. Insert→Jump : <Ctrl>+<U> Dodavanje skoka u SFC editoru na kraj grane kojoj pripada markirani blok. To mora biti alternativna grana. Za ubačeni skok se tekstualno polje Step selektuje i menja sa labelom na ciljni korak. Insert→Transition-Jump : Ubacivanje transition-a u SFC editor, nakon kojeg sledi skok na kraju selektovane grane (radi toga to mora biti paralelna grana). Insert→Add Entry-Action : Dodavanje akcije koja se izvrši samo jednom, tačno nakon što korak postane aktivan. (Može da se implementira u bilo kom jeziku.) Korak kome je ovo pridruženo, kao oznaku ima slovo E u donjem levom uglu. Insert→Add Exit-Action : Dodavanje exit-akcije, koja se izvršava samo jednom, pre nego što se korak deaktivira. Takođe može da se implementira u bilo kom jeziku. Korak kojem je ovo dodato ima oznaku X u donjem desnom uglu. Extras→Paste Parallel Branch (right) Ubacuje sadržaj clipboard-a kao desnu paralelnu granu selektovanom bloku. radi toga markirani blok mora da počinje i da se završava korakom. Slično tome, sadržaj clipboard-a mora takođe da bude blok koji počinje i završava se korakom. Extras→Paste after : Paste SFC blok iz clipboard-a nakon prvog koraka ili prvog transition-a markiranog bloka. (Normalno je Copy i Paste ispred selektovanog bloka.) Extras→Zoom Action/Transition : <Alt>+<Enter> Akcija prvog koraka selektovanog bloka ili telo prvog uslova prelaza selektovanog bloka učitava se u editor u odgovarajućem jeziku u kojem je napisano. Ukoliko je akcija ili telo prelaza prazno, mora da se izabere jezik u kome će da bude napisano. Extras→Clear Action/Transition : Brisanje akcije prvog koraka markiranogbloka ili tela prvog uslova prelaza. Extras→Step Attributes : Editovanje parametara selektovanog koraka. Minimum Time : minimalno vreme obrade tog koraka Maximum Time : maksimalno vreme obrade tog koraka Comment : komentar Extras→Time Overview : Otvara se prozor u kome se podešavaju vremenski parametri koraka. Extras→Options : Dijalog u kojem se vrše razna podešavanje za vaš SFC POU. Extras→Associate Action : Akcije i Bulove promenjive se pridružuju.

102

SFC u online modu : Aktivni koraci su prikazani u plavoj boji. Sa Online→Toggle Breakpoint postavlja se prekidna tačka na koraku. Obrada se zaustavlja ispred izvrsenja tog koraka. Korak sa prekidnim tačkom je obojen u plavo. Ako je više koraka aktivno u paralelnoj grani, tada se aktivni korak koji će se naredni obrađivati obojen u crveno.

Rad sa bibliotekama Library Manager : Prikazuje sve biblioteke koje su povezane sa tekućim projektom. POU-i, tipovi podataka, i globalne promenjive iz biblioteka mogu da se koriste na isti način kao i korisnički definisane POU, tipovi podataka, i globalne promenjive. Pristupa mu se pomoću komande Window → Library Manager. Korišćenje Library Manager-a : Prozor sa Library Manager-om je podeljen na tri ili četiri oblasti. Biblioteke koje su dodeljene projektu prikazane su u gornjoj levoj oblasti. U prozoru ispod, zavisno od toga koja je register card izabrana, prikazani su POU-i, Tipovi podataka ili globalne promenjive biblioteke koja je selektovana u gornjoj oblasti. Folder-i se otvaraju i zatvaraju dvostrukim klikom na liniju ili pritiskom na <Enter>. Ispred zatvorenog folder-a se nalazi znak plus i minus ispred otvorenog. Ako se selektuje POU, njena deklaracija će da se pojavi u gornjoj desnoj oblasti Library Manager-a, a dole desno je grafički prikaz u obliku crne kutije sa ulazima i izlazima. Standard Library : Biblioteka "standard.lib" je uvek dostupna. Sadrži sve funkcije i funkcijske blokove koje zahteva IEC 1131-3 kao standardne POU za programiranje po IEC standardu. Razlika između standardne funkcije i operatora je u tome što se operator implicitno prepoznaje od strane sistema za programiranje, dok se standardni POU moraju povezati sa projektom (standard.lib). Kod za ove POU postoji kao C-kod i sastavni je deo CoDeSys-a. Korisnički-definisane biblioteke : Kada se projekat kompajlira bez grešaka, moguće ga je sačuvati u biblioteci pomoću “ File→Save As” komande. Sam projekat će ostati nepromenjen. Dalje, može se pristupiti projektu pod izabranim imenom, i to ne isti način kao i standardnoj biblioteci. Insert→Additional Library : Pomoću ove komande se projektu dodaje nova biblioteka. U dijalogu za otvaranje fajlova treba izabrati željenu biblioteku sa ekstenzijom “*.lib”. Nakon toga je biblioteka prikazana u Library Manager-u i objekti koji se nalaze u njoj mogu da se koriste na isti način kao korisnički definisani objekti. Uklanjanje biblioteke : Pomoću komande Edit→Delete uklanja se biblioteka iz projekta i iz Library Manager-a. U dodatku je opisana jedna od najčešće korišćenih biblioteka : util.lib.

103

Vizualizacija Kreiranje vizualizacije Vizualizacija omogućuje posmatranje promenjivih u projektu. Uz pomoć vizualizacije mogu se crtati geometrijski oblici offline, koji zatim mogu online menjati oblik ili boju, zavisno od veličine određenih promenjivih. Kreiranje Vizualizacije : Prvo treba da se selektuje registarska karta u Object Organizer-u. Sa Project→Object Add kreira se nova vizualizacija. Otvara se dijalog za unos imena nove vizualizacije, posle čega se otvara prozor za editovanje te nove vizualizacije. Elementi vizualizacije, Ubacivanje novih elemenata Visualization Elements, Insert U vizualizaciju se mogu ubaciti četiri različite vrate geometrijskih oblika (četvorougao, zaobljeni četvorougao, elipsa/krug i poligon), kao i bitmap-ovi i postojeće vizualizacije. Idite na Insert meni gde se može selektovati nešto od sledećeg: Rectangle,Rounded Rectangle, Ellipse, Polygon, Line, Curve, Bitmap, Visualization . Takođe se može koristiti toolbar. Insert→Rectangle : Unošenje četvorougla kao elementa u vizualizaciju. Insert→Rounded Rectangle: Unošenje četvorougla sa zaobljenim uglovima. Insert→Ellipse: Dodavanje elipse. Insert→Polygon : Dodavanje poligona. Insert→Line : Dodavanje linije. Insert→Curve : Dodavanje Bezier-ove krive. Insert→Bitmap: Ubacivanje Bitmap-a. Insert→Visualization : Ubacivanje postojeće vizualizacije. Rad sa elementima vizualizacije Selektovanje ElemenataVizualizacije : Klikom miša ili pomoću <Tab>. Extras→Select All : selekcija svih elemenata. Modifikovanje Elemenata : Prvo se element selektuje, a onda je moguće menjati njegove parametre. Kopiranje Elemenata : Jedan ili više elemenata mogu da se unesu pomoću Edit→Copy (ili <Ctrl>+<C> ili pomoću odgovarajućeg simbola za kopiranje) i sa Edit→Paste. Status Bar u Visualizaciji : X i Y pozicija miša prikazana je u statusnoj liniji. Pozicija je relativna u odnosu na gornji levi ugao slike. Elementi Visualizacije, Konfiguracija Extras→Configure : Otvara se dijalog za konfiguraciju selektovanog elementa vizualizacije(to isto se dobija dvostukim klikom miša na taj element). Odabere se kategorija u levoj oblasti dijalog box-a, i popunjavaju se određene informacije u desnoj oblasti. Zavisno od izabranog elementa, mogu da se izaberu različite kategorije:

· Shape (oblik) četvorougao, zaobljeni četvorougao, elipsa · Text (tekst) · Color (boja) četvorougao, zaobljeni četvorougao, elipsa, poligon, linija, kriva · Motion absolute (apsolutni pomeraj) · Motion relative (relativni pomeraj) bilo šta, sem za poligon, linije, krive · Variables (promenjive) · Input (ulazi) · Tooltip (izlazi) · Bitmap Bitmap · Visualization Visualization

Text : Unesite tekst u polje Contents. Pritiskom na <Ctrl>+<Enter> možete uneti prekid linije. Ako unesete “ %s ” u tekst, tada se na toj lokaciji, u online modu, prikazuje vrednost promenjive koja je uneta u poljeVariables→Text Output. Colors : Može da se bira osnovna boja i boja u slučaju alarma, kao i boja okvira. Ako se izabere opcija No colors inside i no frame color kreira se transparantan element. Ako se unese Bulova promenjiva u polje Variables→Change Colo, tada će element biti u osnovnoj boji kada je ta promenjiva FALSE, a kada dobije vrednost TRUE prikazuje se u Alarm boji. Funkcija promene boje može biti aktivna samo u online modu. Može da se menja, ako se želi, i boja okvira. U oba slučaja se otvara prozor za izbor boje. Motion absolute : U polja X- i Y-Offset unose se promenjive, čija vrednost utiče na pomeranje elementa u X- ili Y-pravcu. Promenjiva u polju Scale u zavisnosti od svoje vrednosti linearno menja veličinu elementa. Promenjiva u polju Angle izaziva da se element obrće oko svoje obrtne tačke. Obrtna tačka se pri jednom kliku miša na element prikazuje kao mali crni krug sa belim krstom (). Veličina se izračunava u stapanima. Motion relative : Dodeljuju se promenjive za pojedine ivice elementa, i zavisno od vrednosti tih promenjivih, pomeraju se odgovarajuće ivice elementa. Četiri polja ukazuju na četiri strane elementa. Osnovni položaj uglova je uvek na nuli. Nova vrednost promenjive, u odgovarajućoj koloni, pomera ugao u pikselima zavisno od te vrednosti. Stoga promenjiva mora biti INT tipa. (Pozitivne vrednosti pomeraju horizontalne ivice nadole, a vertikalne u desno.)

104

Variable : Promenjive koje opisuju status elementa u vizualizaciji. Najlakši način za unos promenjive je pomoću Input Assistant-a. Vrednosti promenjivih u poljima određuju vrstu akcije. U polja Invisible i Change Color unose se promenjive Bulovog tipa: Ako promenjiva u polju Invisible ima vrednost FALSE, element u vizualizaciji će da bude vidljiv, a ako je vrednost te promenjive TRUE, element će biti nevidljiv. Ako promenjiva u polju Change Color ima vrednost FALSE, element će biti prikazan u svojoj default boji, a ako ta promenjiva ima vrednost TRUE, element će biti prikazan u Alarm boji. U polje Textdisplay se unosi promenjiva čija se vrednost treba prikazati , ako u polje dodato “ %s ” Text→Contents. U online modu, “ %s “ se zamenjuje sa vrednosti promenjive koja se nalazi u polju Textdisplay. Input : Selekcijom Toggle variable, klikom miša na element menja se vrednost Bulove promenjive koja je uneta u polje Input (sa TRUE ne FALSE ili obrnuto). Selektovanjem opcije Text input promenjive 'Text output' dozvoljava da se , u online modu, dodeli vrednost promenjivoj preko elementa u vizualizaciji. Vrednost koja se nalazi u polju Variables→Text output upisaće se u promenjivu. Klikom miša na element u online modu pojavljuje se okvir u koji se putem tastature unosi nova vrednost za promenjivu i pritiskom na taster<Enter> ta promenjiva se prohvaća. ToolTip : Dijalog Text za Tooltip nudi polje za tekst koji se pojavljuje kada kursor pređe preko objekta u online modu. Bitmap : Opcije za bitmap elemente. Unesite bitmap fajl u polje Bitmap. Može da se koristi . . . taster da bi se otvorio standardni Windows-ov dijalog u kome se može odabrati željeni bitmap. Sve ostale opcije utiču na oblik okvira tog bitmap elementa. Visualization : Opcije za vizualizaciju koja je alament druge vizualizacije. Unesite ime objekta za vizualizaciju u polje Visualization. Tasterom . . . otvara se dijalog koji sadrži vizualizacije koje su dostupne u datom projektu. Može da se koristi bilo koja vizualizacija sem tekuće. Dodatne funkcije za elemente Vizualizacije Extras→Send to Front : Selektovani element vizualizacije se postavlja u prvi plan. Extras→Send to Back : Selektovani element vizualizacije se postavlja u pozadinu. Extras→Select Background Bitmap : Selektovani *.bmp fajl se postavlja u pozadinu vizualizacije Extras→Clear Background Bitmap : Uklanjanje bitmap-a iz pozadine vizualizacije. Extras→Select All : Selekcija svih elemenata u takućoj vizualizaciji. Extras→Select Mode : Uključivanje/isključivanje selekcije moda. Extras→Element list : Ova komanda otvara dijalog box koji sadrži listu svih elemenata vizualizacije, uključujući njihov broj, tip i poziciju (koja se daje u odnosu na x i y poziciju gornjeg levog i donjeg desnog ugla elementa). Sa tasterom To front selektovana vizualizacija se dovodi u prvi plan, a sa To behind u pozadinu. Sa tasterom Delete briše se selektovani element vizualizacije. Sa Undo i Redo tasterima mogu da se restaurišu upravo napravljene promene (ili sa Edit→Undo i Edit→Redo). Extras→Settings : Određena podešavanja koja utiču na vizualizaciju. U polje Zoom kategorije Presentation unosi se zoom factor između 10 i 500% radi povećanja ili smanjenja veličine vizualizacionog displeja. Selekcijom Element numbers prikazuju se brojevi svakog vizualizacionog elementa u offline modu. Ako je selektovanoAuto-scroling u kategoriji Frame vidljivi deo prozora za vizualizaciju se pomera ako se dostigne ivica u toku crtanja ili pomeranja vizualizacionog elementa. Ako je selektovano Best fit in Online mode, cela vizualizacija, uključujući i sve elementa će se prikazati u prozoru u online modu u zavisnosti od veličine prozora. Ako je selektovano Include Background Bitmap, slika u pozadini će takođe da postavi u zavisnosti od veličine prozora, inače se u obzir dolaze samo elementi. Kategorija Language se koristi za prikaz teksta koji je dodeljen vizualizacionom elementu korištenjem opcija Text i Text for Tooltop u željenom jeziku. Operacije preko tastature - u online modu Pritiskom na <Tabulator> selektuje se prvi element u listi elemenata. Svakim narednim pritiskom na taj taster, pomera se na naredni element u listi. Pritiskom na taster uz držanje pritisnutog <Shift> tastera selektuje se prethodni element. Strelice mogu da se koriste za menjanje selekcije u bilo kom pravcu. <Space bar> se koristi za izvršavanje aktivnosti nad selektovanim vizualizacionim elementom Ako je element takav da daje tekstualnu izlaznu promenjivu, otvoriće se tekstualno polje u kome je prikazana vrednost promenjive. Pritiskom na <Enter> vrši se upis. File→Print in online mode : Štampanje prozora za vizualizaciju u online modu.

105

Zadaci za vežbe CoDeSys V2.11 → prvi program start: Start -> Programs -> CoDeSys V2.11 -> CoDeSys V2.11 pisanje novog projekta: * kreiranje novog projekta : File -> New * Target Settings : CoDeSys SP for Windows NT 1.0 , a zatim se pritisne OK * PLC_PRG POU : U dijalogu za New POU selektuje se jezik POU (FBD), a ostavi se Type Program i ime

PLC_PRG * Deklaracija tastera za potvrdu: Prvo označite mišem ??? u prvoj mreži i otkucajte ime tastera (npr. Observer). Zatim pritisnite strelicu u desno. Prikaže se dijalog za deklaraciju promenjivih i sadrži Ime Observer, Type BOOL; označite Class → VAR_GLOBAL (za globalne promenjive). Promenjiva se unosi u skup globalnih promenjivih pritiskom na taster OK. * Rastuća ivica tastera U cilju određivanja rastuće ivice tastera vratite se na PLC_PRG POU. Markirajte lokaciju iza promenjive Observer tako da se pojavi četverougaona oznaka. Izvršite Function Block komandu brzog menija (desni taster miša). U dijalogu koji se pojavi selektujte R_TRIG iz kategorije Standard Functions Blocks. Kreiranje instance funkcijskog bloka R_TRIG se vrši na sledeći način: Upišite ime instance (npr. Trig1) u boks umesto ???, zatim se ili klikne levim dugmetom miša iza funkcijskog bloka, ili pritisne strelica u desno. Pojavi se dijalog za deklaraciju promenjivih, izabere se Class VAR (lokalna promenjiva), ime Trig1, Type R_TRIG, nakon čega se pritisne taster OK, čime se deklaracija te promenjive unosi u deo za deklaraciju. * Opadajuća ivica tastera Markirajte lokaciju iza funkcijskog bloka (pojavi se isprekidani četvorougao), izvršite komandu Operator brzog menija. Promenite AND u OR (pomoću F2). Markirajte liniju drugog ulaza OR operatora i unesite Function Block tipa F_TRIG, dajući mu ime Trig2. Markirajte tri upitnika ispred funkcijskog bloka Trig2, pritisnite <F2> (input Assistance) i selektujte promenjivu Observer iz kategorije globalnih promenjivih. * Prikazivanje vremena Ubacite Function Block tipa TOF sa imenom Timer1 iza OR operatora korištenjem brzog menija. Zamenite tri upitnika na PT ulazu sa vremenskom konstantom t#10s. * Upozorenje Ubacite dodelu vrednosti (Assign brzog menija) iza izlaza Q funkcijskog bloka Timer1 korištenjem brzog menija. Zamenite tri upitnika promenjivom sa imenom Warning (u deklaraciji promenjive uneti Class VAR_GLOBAL) . Da bi upozorenje bilo dato na odgovarajući način, markirajte poziciju ispred dodele vrednosti i izvršite komandu Negate brzog menija. To će iuauvati da Bulov signal bude invertovan, a prikazuje se kao kružić. * Selekcija STOP nakon isteka drugog vremenskog intervala Kreirajte drugu mrežu sa komandom Insert →Network (after). Koristite brzi meni za dodavanje Function Block tipa TON sa imenom Timer2 u drugu mrežu. Pridružite promenjivu Warning ulayu IN pomoću <F2> i t#5s ka ulazu PT. Nakon funkcijskog bloka Timer2 potrebna je ponovo dodela vrednosti, ovaj put to je promenjiva STOP (Class VAR_GLOBAL). * POU Machine Dodajte drugi POU sa imenom Mashine, tipa Program, jezik SFC u Object Organizer (leva oblast na ekranu), pod POU, koristeći komandu brzog menija Add Object. Inicijalni dijagram POU-a u SFC-u sadrži korak Init i prelazni uslov Trans0 kojeg prati skok na Init. * Specificiranje sekvence za Machine Za svaku fazu operacije za Machine potreban je poseban korak. Označite uslov Trans0 tako da se pojavi isprekidani okvir oko Trans0, i koristeći brzi meni, izvršiti komandu Step_Transition(after) i to ponoviti 5 puta. Ako se klikne direktno na ime prelaza ili koraka, ono će biti označeno plavom bojom i može se menjati. Koraci iza Init su redom : Go_Right, Go_Down, Go_Left, Go_Up i Count. * Programiranje prvog koraka Nakon dvostrukog klika na korak Go_Right pojavi se prozor u kome se bira jezik u kome će biti programiran taj korak (sada biramo ST); i pojaviće se odvojen prozor za akciju pridruženu ovom koraku. Ručica mašine treba da se pomeri u x-pravcu. Linija programa : X_pos:=X_pos+1; Kompretirajte liniju sa return (pritisak na taster Enter) i deklarišite promenjivu X_pos tipe INT. Mali trougao će se pojaviti u gornjem desnom uglu koraka da označi da je taj korak isprogramiran. * Programiranje sledećih koraka Go_Down : Y_pos:=Y_pos+1; Go_Left : X_pos:=X_pos-1; Go_Up : Y_pos:=Y_pos-1; Count : Counter:=Counter+1;

106

* Specificiranje uslova za prelaze Transitions su uslovi za prelaz sa jedne faze ka sledećoj. Umesto Trans0 u prvi uslov upišite promenjivu Start. U deklaraciji promenjivih unesite Class VAR_GLOBAL, tip BOOL →Mašina startuje kad je pritisnut taster Start II prelaz : X_pos=100 (sledeća faza startuje kad X-pozicija dostigne vrednost 100) III prelaz: Y_pos=50 IV prelaz: X_pos=0 V prelaz : Y_pos=0 VI prelaz: TRUE (nastavlja odmah nakon jednog izvršenja) * Zaustavljanje obrade sa Stop Vratite se na PLC_PRG i unesite treću mrežu. Zamenite upitnike promenjivom Stop ib nakon toga selektujte Return komandu (iz brzog menija). Return ima efekat napuštanja PLC_PRG POU po setovanjo promenjive Stop. * POU za poziv mašine Unesite još jednu mrežu i izvršite komandu Function Block. U dijalogu koji se pojavi, selektujete POU Machine u kategoriji User Defined Programs. Time je programiranje gotovo. * Build Project Project→Rebuild all ili <F11> V I Z U A L I Z A C I J A * Create Visualization U Object Organizatoru (desna oblast na ekranu) na dno se selektuje treći tab sa leva, koji se zove Visualization. * Koristite object organizerov brzi meni za poziv komande Add Object. Dajte visualization objektu ime (kao što je Observation). Na kraju rada bi vizualizacija trebala da izgleda ovako: * Crtanje elemenata vizualizacije Počnite sa tasterom za potvrdu. Selektovati četverougao sa toolbara. Pritisnuti levi taster miša u visualization editoru, pomeriti ga na dole i nacrtati četverougao. Pustiti taster kada je četverougao dostigao željeni oblik i veličinu. * Konfigurisanje prvog elementa vizualizacije Sa dvostrukim klikom na četverougao pojavljuje se dijalog za konfigurisanje. U polju Contents kategorije Text upišite tekst OK. Odaberite kategoriju Variables, kliknite na polje Change Color i pozovite Input Assistance sa <F2> funkcijskim tasterom. Dvostrukim klikom na tačku u desnom deli dijalog box-a pojaviće se globalne promenjive. Selektujte promenjivu Observer. Polje sada sadrži .Observer. Nakon toga izaberite Colors kategoriju u konfiguracionom dijalogu i kliknite na taster Inside oblasti Color. Izaberite boju (npr. svetlo plava). Zatim izaberite drugu boju sa tasterom Inside u Alarm Color oblasti (npr. plavu). U Input kategoriji izaberite Toggle variable i ponovo unesite promenjivu Observer u polje iza pomoću <F2>. Zatvorite konfiguracioni dijalog. To će dovesti do toga da će četverougao biti svetlo plav tokom rada kad je promenjiva Observer u stanju FALSE i plav kad je u stanju TRUE. sa svakim klikom miša stanje mu se menja sa TRUE u FALSE ili obrnuto. * razvoj vizualizacije Nacrtati krug za upozorenje i konfigurisati ga sa : Texti kategorija → Contents polje sa Warning Variable kateg. → Color Change polje sa .Warning

Observation

OK

Machine

Start

Warning

Stop

Counter: %s

107

Colors kategorija → Color Inside → zeleno; Alarm Color → Inside → crveno Kopirati krug koji smo kreirali koristeći meni komandu Edit → Copy i ubaciti drugi sa komandom edit →Paste. Izmeniti sledeće: Text kategorija →Contents polje → Stop Variable kategorija →Color Change polje sa .Stop Nacrtati četverougao za start mašine i konfigurisati ga sa : text kategorija → Contents polje sa Start Variable kategorija →Color Change polje sa .Start Input kategorija → selektovati Toggle Variable, i iza toga uneti .Start Colors oblast → Color → Inside → crvena; Alarm Color → zelena Nacrtati četverougao za brojač i konfigurisati ga sa : Text → Contents sa Counter: %s (%s funkcioniše kao mesto za vrednost promenjive) Variable →Textdisplay polje sa Machine.Counter Nacrtati četverougao za mašinu i konfigurisati ga: Motion Absolute → X_Offset → Machine.X_pos Motion Absolute → Y_Offset → Machine.Y_pos Colors → Color → Inside → plavo Ukoliko želite, možete nacrtati dva velika četverougla oko dve oblasti za posmatranje i za mašinu, uneti Observation (ili Machine) kao Contents u Text kategoriju, i odabrati Vertical Allignment → Bottom. Koristeći komandu brzog menija Send to Back postavita četverougao iza postojećih elemenata. * Start projekta

Online → Simulation Mode Online → Login Online → Run

* Prekid Online → Stop Online → Logout

********************************************************************************************

108

Zadaci za prvih pet vežbi : 1. Napisati program za upravljanje rada semafora u programskom jeziku ST na sledeći način: Kreirati funkcijski blok Sem1, u programskom jeziku ST, koji ima 3 izlazne promenjive red, yellow, green . U programu PLC_PRG realizovati primerak semafora koji se zove SemaforST i čiji rad zavisi od upravljačke promenjive start na sledeći način: ako je start=true vrši se normalno upravljanje radom semafora, a u suprotnom, na semaforu će da se pojavljuje trepćuće žuto svetlo. U delu za vizualizaciju izvesti taster za start i semafor. 2. Zadatak rešiti u prog.jeziku FBD. 3. Zadatak rešiti u prog.jeziku IL. 4. Zadatak rešiti u prog.jeziku SFC. (PLC_PRG pisati u jednom od drugih prog.jezika.) 5. Zadatak rešiti u prog.jeziku LD. ******************************************************************************************** Zadatak br.2 Semafor (ST) ******************************************************************************************** Novi tip podataka (enumeracija) za stanja semafora: TYPE stanje : (crveno, crvenozuto, zeleno, zzuto):=crveno; END_TYPE ******************************************************************************************** FUNKCIJSKI BLOK sem (upravljanje semaforom) ******************************************************************************************** FUNCTION_BLOCK sem VAR_INPUT END_VAR VAR_OUTPUT (* izlazne promenjive *) Zut: BOOL; (* indikacija da li svetli ili ne svetli crveno svetlo *) Crv: BOOL; (* zuto svetlo semafora *) Zel: BOOL; (* zeleno svetlo *) END_VAR VAR (* lokalne promenjive : ne vide se van funkcijskog bloka *) VremeCrvenogSvetla: TON; (* tajmer tipa TON : odredjuje koliko dugo ce da svetli samo crveno svetlo *) VremePrelaza: TON;(* tajmer tipa TON : odredjuje koliko dugo ce da svetle istovremeno crveno i zuto svetlo *) VremeZelenogSvetla: TON; (* tajmer tipa TON : odredjuje koliko dugo ce da svetli zeleno svetlo *) VremeZutogSvetla: TON; (* tajmer tipa TON : odredjuje koliko dugo ce da svetli zuto svetlo *) stanje_semafora: stanje; (* stanje_semafora je promenjiva tipa stanje i inicijalno je stanje_semafora = crveno *) END_VAR ------------------------------------------------------------------------------------------------------------------------------------------- CASE stanje_semafora OF (* ispituje se stanje semafora i u zavisnosti od toga se vrsi upravljanje daljim radom *) (* redosled kako svetle svetla na semaforu : crveno, crveno i zuto, zeleno, zuto, crve... *) crveno: (* *) Zel:=FALSE;(* ako je stanje semafora = crveno: drzi se ukljuceno samo crveno svetlo, a zeleno i zutoiskljuceni *) Zut:=FALSE; (* *) Crv:=TRUE; (* *) VremeCrvenogSvetla(pt:=t#10s,in:=TRUE); (*ulaz IN tajmera postavlja se TRUE : na izlazu se nece pojaviti TRUE *)

(* sve dok ne prodje PT(=t#10s) vremena *) IF VremeCrvenogSvetla.q=TRUE THEN (* kada se na izlazu Q tajmera pojavi TRUE *)

(* tzn. da je proslo PT vremena *) VremeCrvenogSvetla(in:=FALSE); (* . ulaz tajmera IN postavljamo na FALSE, cime se na izlazu Q tajmera *)

(*takodje pojavljuje FALSE... *) stanje_semafora:=crvenozuto; (* ... + menjamo stanje semafora NA SLEDECE -> crvenozuto *) END_IF; crvenozuto:(* ako je stanje semafora = crvenozuto svetle crveni i zuto svetlo; zeleno svetlo je i dalje iskljuceno *) Zel:=FALSE; (* *) Zut:=TRUE; (* *) Crv:=TRUE; (* *) VremePrelaza(in:=TRUE,Pt:=t#2s);(*ulaz IN tajmera := TRUE -> na izlazu se nece pojaviti TRUE sve dok ne*)

(*prodje PT(=t#2s) vremena *) IF VremePrelaza.q THEN(* kada se na izlazu Q tajmera pojavi TRUE tzn. da je proslo PT vremena i tada ... *)

109

VremePrelaza(in:=FALSE); (* ... ulaz tajmera IN postavljamo na FALSE, cime se na izlazu Q tajmera*) (*takodje pojavljuje FALSE... *)

stanje_semafora:=zeleno; (* ... + menjamo stanje semafora NA SLEDECE -> zeleno *) END_IF; zeleno: (* ako je stanje semafora = zeleno svetli samo zeleno svetlo *) Zut:=FALSE; (* *) Crv:=FALSE; (* *) Zel:=TRUE; (* *) VremeZelenogSvetla(pt:=t#10s,in:=TRUE);(*ulaz IN tajmera := TRUE -> na izlazu se nece pojaviti TRUE *)

(*sve dok ne prodje PT(=t#2s) vremena *) IF VremeZelenogSvetla.q THEN (* kada se na izlazu Q tajmera pojavi TRUE tzn. da je proslo PT vremena i tada ... *) VremeZelenogSvetla(in:=FALSE); (* ulaz tajmera IN postavljamo na FALSE, cime se na izlazu Q tajmera takodje *)

(* pojavljuje FALSE... *) stanje_semafora:=zzuto; (* ... + menjamo stanje semafora NA SLEDECE -> zzuto *) END_IF; zzuto: (* ako je stanje semafora = zzuto svetli samo zuto svetlo *) Crv:=FALSE; (* *) Zel:=FALSE; (* *) Zut:=TRUE; (* *) VremeZutogSvetla(pt:=t#5s,in:=TRUE); (*ulaz IN tajmera := TRUE -> na izlazu se nece pojaviti TRUE sve dok *)

(* ne prodje PT(=t#2s) vremena *) IF VremeZutogSvetla.q THEN (* kada se na izlazu Q tajmera pojavi TRUE tzn. da je proslo PT vremena i tada ... *) VremeZutogSvetla(in:=FALSE); (* ... ulaz tajmera IN postavljamo na FALSE, cime se na izlazu Q tajmera takodje *)

(* pojavljuje FALSE... *) stanje_semafora:=crveno; (* ... + menjamo stanje semafora NA SLEDECE -> zzuto *) END_IF; END_CASE; (* Kljucna rec koja oznacava kraj CASE uslovnog iskaza *) ******************************************************************************************** PROGRAM PLC_PRG (u kojem se vrsi upravljanje odredjenim primerkom semafora ) ******************************************************************************************** VAR semafor : sem; END_VAR; VAR_INPUT (* ulazne promenjive *) start: BOOL;(* ulazna promenjiva start odredjuje da li ce semafor samo da prikazuje trepcuce zuto svetlo ili ce*)

(* da "radi" *) END_VAR VAR_OUTPUT (* izlazne promenjive *) zeleno_svetlo: BOOL; (* zeleno svetlo konkretnog semafora *) zuto_svetlo: BOOL; (* zuto svetlo konkretnog semafora *) crveno_svetlo: BOOL; (* crveno svetlo konkretnog semafora *) END_VAR ----------------------------------------------------------------------------------------- IF start=TRUE THEN (* ako je start=TRUE radi se sledece ... *) semafor; (* ... vrsi se pozivanje funkcijskog bloka semafor... *) crveno_svetlo:=semafor.crv; (* ..a na izlaze programa se postavljaju izlazne vrednosti sa funkcijskog bloka semafor *) zuto_svetlo:=semafor.zut; zeleno_svetlo:=semafor.zel; ELSE (* ... inace, ako je start=FALSE vrsi se sledece ... *) crveno_svetlo:=FALSE; (* ... crveno svetlo je iskljuceno... *) zeleno_svetlo:=FALSE; (* ... zeleno svetlo je iskljuceno... *) (* ... samo svetli trepcuce zuto svetlo: *) vremezutogsvetla(pt:=t#1s,in:=TRUE);(*na ulaz IN tajmera postavljamo TRUE; *)

(* PT:=vreme svetljenja/pauze zutog svetla *) IF vremezutogsvetla.q=TRUE THEN (* na izlazu Q tajmera ce se pojaviti TRUE tek posle PT vremena i tada ... *)

110

vremezutogsvetla(in:=FALSE); zuto_svetlo:=NOT zuto_svetlo; (*... MENJAMO STANJE ZUTOG SVETLA ... *) END_IF; END_IF;

Dodatak: Tajmeri Standard IEC 1131-3 podržava četiri standardna funkcionalna bloka za rad sa vremenom (tajmeri). Sadašnja verzija ST-a podržava tri standardna vremenska funkcionalna bloka. Svi vremenski funkcionalni blokovi imaju dve ulazne promenljive - IN i PT, pri čemu je IN tipa BOOL, a PT tipa TIME i dve izlazne promenljive Q tipa BOOL i ET tipa TIME.

Kod TP funkcionalnog bloka ako ulaz IN ima vrednost 1, izlaz Q prima vrednost 1 i zadržava je za vreme PT. Dok ističe vreme PT, izlaz ET se povećava, tj. predstavlja proteklo vreme, sve dok ne dostigne vrednost PT. Tada se izlaz Q postavlja na vrednost 0, a ET zadržava vrednost dok IN ne padne na 0.

Kod TON funkcionalnog bloka postavljanje ulaza IN na 1 uzrokuje pokretanje merenja proteklog vremena ET. Kada ET dostigne vrednost PT, izlaz Q se postavlja na vrednost 1, a ET ostaje na vrednosti PT. Kada IN postane 0, Q i ET se postavljaju na vrednost 0. Ako ulaz IN nije postavljen na vrednost 1 duže od vremena PT, izlaz Q zadržava vrednost 0. Ovaj funkcionalni blok služi se sa odre|enim kašnjenjem od PT vremena reaguje na postavljanje ulaza na 1. Funkcionalni blok TOF služi za uklanjanje "gličeva" (glitch) od ulaznih signala, npr. mehaničkih davača. Ulaz mora biti isključen odre|eno vreme (PT) pre nego što se promena vidi sa strane izlaza. Postavljanje ulaza na 1 slede postavljanje izlaza Q na 1, pri čemu izlaz Q zadržava ovu vrednost još PT vremena nakon što IN postane 0. Kada IN postane 0, proteklo vreme ET počinje da se povećava sve dok ne dostigne vrednost PT i tada se izlaz Q postavlja na 0. U nastavku je dat vremenski dijagram ponašanja tajmera TON.

BOOL BOOL

TIME TIME

IN Q

PT ET

111

Zadatak br.3: upravljanje semaforom , FBD

112

Zadatak br.4 Skretnica (ST) Problem: Koristimo pneumatski cilindar za usmeravanje vagona. U cilju rasterećenja saobraćaja, potrebno je da se naizmenično vagoni šalju na dve istovarne stanice. Pri nailasku vagona aktivira se senzor V. Po aktiviranju senzora treba da se desi sledeće: upravljanjem ventilima C1 i C2 vrši se upravljanje radom cilindra (tj. položajem skretnice). Ukoliko je prethodni vagon išao pravo, sledeći skreće levo i obrnuto. Zadatak: Napisati program u ST programskom jeziku za realizaciju upravljanja datim problemom. Senzori u sistemu : V (vagon), P (pravo) i L (levo). Upravljački signali se odnose na ventile koji upravljaju pneumatskim cilindrom. ******************************************************** Rešenje: ******************************************************** PROGRAM PLC_PRG (* glavni program iz kojeg se pozivaju svi ostali programi, primerci funkcijskih blokova … *) VAR trig1 : R_TRIG; (* primerak funkcijskog bloka R_TRIG: služi za detekciju rastuće ivice signala koji dolazi sa senzora SV*) END_VAR VAR_INPUT SV: BOOL; (* signal koji dolazi sa senzora za novi vagon *) P: BOOL := TRUE; (* signal koji dolazi sa senzora da je skretnica postavljena tako da vegoni idu pravo*) L: BOOL; (* signal koji dolazi sa senzora da je skretnica postavljena tako da vegoni idu levo*) END_VAR VAR_OUTPUT c2: BOOL; (* izlaz ka ventilu C2*) c1: BOOL := TRUE; (* izlaz ka ventilu C2*) greska: BOOL; (*doslo je do greske !!!*) greska1: BOOL; (* opciono : negiran signal za grešku – na osnovu njega se vidi ili ne oblik za grešku *) END_VAR ********************* greska1:=NOT greska; trig1(clk:=SV); (* na ulaz funkcijskog bloka za detekciju rastuće ivice dovodimo sigmal sa senzora za vagone *) IF trig1.Q THEN (* pojavio se novi vagon i u tom slučaju vršimo promenu pravca kojim će da se kreću vagoni *) IF P=TRUE THEN c2:=TRUE; c1:=FALSE; greska:=FALSE; END_IF; IF L=TRUE THEN c1:=TRUE; c2:=FALSE; greska:=FALSE; END_IF; IF NOT (P XOR L) THEN greska:=TRUE; (* greska je u našem slučaju dolazak u situaciju da je stigao novi vagon*) END_IF; (* a da se skretnica nalazi u stanju prebacivanja iz jednog položaja u drugi *) ELSE (* inače ako nije zadovoljen uslov koji se nalazi iza reči “IF” : ako još nije stigao novi vagon *) ; (*nista se ne desava !!! …. Sam znak “ ; ” označava praznu naredbu *) END_IF; **** Za vežbu: Pokušati dati zadatak realizovati u programskim jezicima FBD, IL, LD i SFC.

113

Vizualizacija: Za taster P :

Za taster L :

za gornju strelicu za donju strelicu za taster v

za taster za gresku

114

DODATAK : Util.lib BCD konverzija Bajtovi u BCD formatu sadrže celobrojne vrednosi između 0 i 99.Za svaku decimalnu cifru se koriste po 4 bita. Primer: ceo broj 51 je u BCD formatu 01010001. BCD_TO_INT : Ova funkcija konvertuje bajt u BCD formatu u ceo broj. (Ulazna promenjiva ove funkcije je tipa byte a izlaz je tipa INT.) Ukoliko bajt koji se konvertuje nije u BCD formatu, na izlazu ove funkcije će biti –1. INT_TO_BCD : Konverzija celobrojne veličine u BCD format. (* ulaz funkcije je tipe INT, a izlaz tipa BYTE *) Bit/byte funkcije EXTRACT : Ulazi ove funkcije su DWORD X i BYTE N. Izlaz je tipa BOOL i sadrži N-ti bit ulazne promenjive X. (N počinje od 0, funkcija počinje od bita sa najmanjom važnošću.) Primer: f:=EXTRACT(X:=33, N:=0); (*rezultat: TRUE, jer je 33 binarno 100001, pa je bit “0” jednak 1*) PACK : Ova funkcija može da od osam ulaza B0,B1,…,B7 tipa BOOL na izlazu da BYTE. Funkcijski blok UNPACK radi suprotno. PUTBIT: Ulazi ove funkcije su DWORD X, BYTE N i BOOL B. PUTBIT postavlja N-ti bit ulayne promenjive X na vrednost B, gde se brojanje počinje od nultog bita. UNPACK : Konvertuje ulaz B koji je tipa BYTE u osam izlaznih promenjivih B0,…,B7 tipa BOOL. Pomoćne matematičke funkcije DERIVATIVE : Ova funkcija određuje približnu vrednost diferencijala po vremenu. Veličina koja se dovodi na ulaz IN funkcije je tipa REAL. Ulaz TM sadrži vreme koje je prošlo u milisekundama u DWORD formatu. RESET ulaz koji je tipa BOOL dozvoljava funkciji da ponovo počne sa izvršavanjem (ako je na TRUE). Izlaz OUT je tipa REAL: INTEGRAL : Ovaj funkcijski blok izračunava približnu vrednost integrala funkcije. Na ulaz IN dovodi se promenjiva tipa REAL. TM je vreme napisano u DWORD formatu, a ako se na RESET ulaz dovede TRUE funkcija počinje ponovo. Izlaz OUT je tipa REAL. (Integral je aproksimiran funkcijom drugog reda tako da se dobija samo približna vrednost integrala.) STATISTIC_INT:Ovaj funkcijski blok izračunava neke standardne statističke vrednosti. Ulaz IN je tipa INT. Sve vrednosti se inicijalizuju nakon što je na ulazu RESET bilo TRUE. Izlaz MN sadrži minimalnu, a MX maksimalnu vrednost od IN. AVG je srednja vrednost. Sva tri izlaza su tipa INT. Kontroleri PD funkcijski blok : Ulazi : ACTUAL(trenutna vrednost), DESIRED (tražena ili nominalna vrednost), KP(konstanta proporcionalnog dejstva) su tipa REAL. TV je tipa DWORD (konstanta diferencijalnog dejstva izražena u msec). Y_OFFSET, Y_MIN i Y_MAX su tipa REAL i koriste se za držanje veličine kojom se upravlja u nekom unapred određenom opsegu. MANUAL, tipa BOOL, služi za prebacivanje u ručni rad. RESET je tipa BOOL i služi za reset kontrolera.

115

Y je ograničeno u opsegu između Y_MIN i Y_MAX. Ukoliko Y izađe iz tog opsega, LIMITS_ACTVE, izlazna promenjiva tipa BOOL, postaje TRUE. Ukoliko se ne želi ograničenje opsega promenjive kojom se upravlja, Y_MIN i Y_MAX se postavljaju na 0. Ako je MANUAL = TRUE, regulator se isključuje , tj. Y se ne menja (pomoću kontrolera), dokle god MANUAL ne postane FALSE, I u tom slučaju se kontroler ponovno inicijalizuje. P-kontroler se realizuje postavljanjem TV na 0. PID funkcijski blok : U odnosu na PD funkcijski blok, PID sadrži još jedan DWORD ulaz TN (integralno dejstvo) u msec. PID kontroler može da se konvertuje u PI postavljanjem TV=0. Zbog postojanja integralnog dejstva, može da dođe do prekoračenja (overflow) zbog nekorektne parametrizacije kontrolera, ako integral greške D postane prevelik. Zbog toga se radi sigurnosti dodaje izlaz OVERFLOW tipa BOOL koji ima vrednost TRUE u slučaju da dođe do prekoračenja. U isto vreme, kontroler prekida sa radom I može da se ponovno pokrene putem reinicijalizacije. Generatori signala BLINK Ovaj funkcijski blok generiše impulsni signal. Ulazi su: ENABLE tipa BOOL, TIMELOW, TIMEHIGH tipa TIME. Izlaz OUT je tipa BOOL. Ako je ENABLE=TRUE, BLINK počinje da postavlja izlaz na TRUE u toku TIMEHIGH vremenskog perioda, a nakon toga je u periodu TIMELOW izlaz je FALSE. GEN Generiše tipičan periodični signal. Ulazi: MODE tipa GEN_MODE, BASE tipa BOOL, PERIOD tipa TIME, CYCLES i AMPLITUDE tipa INT, i RESET tipa BOOL. MODE opisuje funkciju koja treba da se generiše (slika ispod). BASE definiše da li se period odnosi na vreme (BAES=TRUE) ili na određen broj ciklusa, tj. Broja poziva funkcijskog bloka (BASE=FALSE). PERIOD ili CYCLES definiše odgovarajući period ciklusa. AMPLITUDE : amplituda funkcije koja se generiše. Generator funkcija se postavlja na 0 kad god je RESET=TRUE.

116

Upravljanje funkcijama CHARCURVE Na ulaz IN tipa INT dovodi se veličina kojom se upravlja. Ulaz N tipa BYTE određuje broj tačaka koje definišu reprezentacionu funkciju. Ova karakteristična linija se zatim generiše pomoću niza tačaka P (ARRAY P[0..10] : POINT, POINT je struktura koja se sastoji od para INT vrednosti (X i Y)) . Izlaz OUT tipa INT (veličina kojom se upravlja) i ERR tipa BYTE koji pokazuje da li ima grešaka. Tačke P[0]..P[N-1] u nizu moraju biti sortirane po X vrednosti, inače ERR prima vrednost 1. Ako ulaz IN nije između P[0].X i P[N-0].X, biće ERR=2, OUT sadrži graničnu vrednost P[0].Y ili P[N-1].Y. Ako N nema vrednost između 2 i 11, biće ERR=4. Primer u ST-u: VAR ... CHARACTERISTIC_LINE:CHARCURVE; KL:ARRAY[0..10] OF POINT:=(X:=0,Y:=0),(X:=250,Y:=50), (X:=500,Y:=150),(X:=750,Y:=400),7((X:=1000,Y:=1000)); COUNTER:INT; ... END_VAR --------------------------------------------------------------------------------------------- Na ulaz funkcijskog bloka CHARCURVE dovedemo npr. konstantno rastuću veličinu: COUNTER:=COUNTER+10; CHARACTERISTIC_LINE(IN:=COUNTER,N:=5,P:=KL); RAMP_INT RAMP_INT služi za ograničenje rasta ili opadanja funkcije. Ulaz se sastoji od tri veličine tipa INT: IN (ulaz funkcije), ASCEND i DESCEND: maksimalno povećanje ili smanjenje za dati vremenski interval koji se definiše sa TIMEBASE tipa TIME. RESET služi za ponovnu inicijalizaciju. Izlaz OUT je tipa INT i sadrži funkciju sa ulaza kojoj je ograničen nagib (porast ili opadanje). Kada je TIMEBASE = t#0s, ASCEND i DESCEND se ne odnose na vremenski interval, već ostaju na istoj vrednosti. RAMP_REAL RAMP_REAL radi isto što i RAMP_INT, s tom razlikom da su IN, ASCEND, DESCEND i OUT tipa REAL. Obrada analognih veličina HYSTERESIS Ulaz ovog funkcijskog bloka se sastoji od tri veličine tipa INT: IN, HEIGH i LOW. Izlaz OUT je tipa BOOL. Ako IN opadne ispod vrednosti LOW, OUT postaje TRUE. Ako IN pređe gornji limit HIGH, na izlazu je FALSE. LIMITALARM Ovaj funkcijski blok specificira da li je vrednost sa ulaza van određenog opsega i koji je limit prešla ako je tako. Ulazi IN, HIGH i LOW su tipa INT, dok su izlazi O, U i IL tipa BOOL. Ako je IN prešao girnju granicu HIGH, O postaje TRUE, a kad IN opadne ispod LOW, U postaje TRUE. IL je TRUE ako IN leži između LOW i HIGH.

Recommended