You are on page 1of 76

Mikro Kontrol, Beograd

Prirunik uz kurs

SCADA Softver SYSMAC SCS


(osnovni kurs)

Beograd, 1998.

Uvod

SCADA je softverski paket koji se koristi u sistemima industrijske automatizacije.


Kao to govori ime ovog softvera, koje u originalu glasi Supervisory Control And
Data Acquisition, on je namenjen za nadzor i kontrolu sistema, kao i za akviziciju
podataka. Korienjem softvera za razvoj skada aplikacija, mogue je kreirati
grafiki korisniki interfejs preko kojeg e operator imati bolji uvid u stanje
procesa, i preko kojeg e on moi da na razliite naine utie na njegovo
izvrenje. Osnovne namene skade su:
Interfejs procesa prema operatoru
Prikupljanje i obrada informacija o procesu
Dodeljivanje prioriteta informacijama
Upravljanje proizvodnjom
Nadzor
Upravljanje kontinualnim procesima
Alarmiranje
Rukovanje materijalom
Simulacija i modeliranje korienjem grafike animacije
Direktno upravljanje mainama
Upravljanje energetskim resursima
Da bi se jedna aplikacija mogla nazvati skadom, potrebno je da zadovolji brojne
zahteve koju pred nju postavljaju industrijski standardi. Odgovornost rada, rad u
sistemu sa uredjajima razliitih proizvodjaa, intuitivni grafiki interfejs, potreba
za mogunou jednostavnog programiranja i drugi zahtevi doveli su do
uspostavljanja izvesnog formalizma, koji mora biti ispotovan od strane svake
skada aplikacije.
Procesiranje alarma precizno je definisano ovim standarom, tako da u svakoj
skada aplikaciji postoji nekoliko statusa alarma i naina njihovog prikazivanja.
Alarmi, tako, mogu biti prikazani u obliku liste koja prikazuje bafer koji se puni
alarmima u redosledu njihovog pojavljivanja u sistemu, i koji moe biti kreiran kao
FIFO ili LIFO, odredjujui tako tretman novopristiglih alarma, u sluaju da je bafer
ve popunjen prethodnim alarmima. Pored ove liste, postoji i istorija alarma, u
kojoj su izlistani svi alarmi koji su se pojavili od poetka rada, sa vremenom
pojavljivanja i statusom. Status alarma moe biti razliit, i potrebno je da postoji
mogunost potvrde svakog od njih. Statusi alarma su razliiti, u zavisnosti od
toga da li uslovi za generisanje alarma jo uvek postoje, ili je u pitanju bila neka
trenutna neispravnost koja je otklonjena. Takodje, oni nose informaciju o tome da
li je operator potvrdio alarm, ime je skadi stavio do znanja da je obaveten o
nastanku alarma, i da preuzima odgovornost za odgovarajuu akciju. Kao
najopasnija grupa alarma pojavljuju se alarmi koji vie ne postoje, ali u toku
postojanja nisu bili potvrdjeni, tako da se i njihov status pojavljuje u ovoj istoriji.

Jedna od karakteristika skada aplikacija jeste i mogunost pisanja takozvanih


receptura. Receptura je naziv za specijalnu operaciju ijim se pozivom odredjene
promenljive procesa postavljaju na vrednosti definisane pri kreiranju recepture.
Od velikog znaaja ova mogunost moe biti u sluaju da postoji potreba za
estim menjanjem parametara procesa, odnosno u realizaciji upravljanja
sistemom koji se moe koristiti za izvravanje razliitih algoritama, npr. za
izvrenje razliitih proizvodnih procesa. Ako, na primer, aplikaciju pravimo za
sistem za proizvodnju dva razliita proizvoda, ova dva procesa proizvodnje se
razlikuju. Recepture u kojima definiemo npr. koliine sirovina za proizvodnju ova
dva proizvoda mogu biti kreirane odvojeno, i pozivom odgovarajue recepture
bie startovana proizvodnja odgovarajueg proizvoda. Recepture se piu u
specijalnom editoru receptura, i unoenje vrednosti parametara recepture veoma
je jednostavno.
Pored ovog editora, OMRON-ova skada opremljena je i setom standardnih
editora za rad sa objektima, koji mogu biti pozvani kako iz padajueg menija,
tako i klikom na taster na Toolbar-u:

Skada dozvoljava definisanje nivoa pristupa Run-time aplikaciji, tako da mogu biti
definisana etiri nivoa pristupa, sa razliitim ogranienjima u pogledu broja
operacija koje su dozvoljene. Najvii nivo pristupa dodeljuje se dizajneru
kompletne aplikacije, i ovo je nivo za koji ne vae nikakva ogranienja. Sledei
nii nivoi su nivoi menadera i operatera, da bi nivo sa najmanjim mogunostima
bio nivo supervizora, odnosno lica zaduenog za nadzor rada sistema. Sa nieg
nivoa mogue je pristupiti viem samo uz poznavanje lozinke. Svakom
korisnikom nivou od ova etiri programer moe dozvoliti, odnosno zabraniti
korienje odredjenih funkcija, kao to su potvrda alarma, pisanje receptura, i
slino.
Skada pored mogunosti korienja ugradjenih funkcija za rad sa objektima,
stranama i kompletnim projektom, ije korienje je mogue bez potrebe za
programiranjem, nudi i mogunost programiranja operacija korienjem tzv.
script jezika. Ovaj jezik u osnovi pretstavlja jednostavnu varijantu C jezika, sa
ugradjenim velikim brojem funkcija za rad sa objektima skade. Aplikacije kreirane
ovim jezikom unose se pomou posebnog editora. Podrane su standardne
funkcije grananja programa, kao i neke vie, koje e biti obradjene kasnije.

OMRON-ova skada pretstavlja moan softver za programiranje grafikog


interfejsa kontrolnog sistema. Za ovu namenu, razvojni softver opremljen je
pristupanim alatima za rad sa grafikim objektima. Programeru na raspolaganju
stoji veoma bogata biblioteka objekata koji se najee koriste u aplikacijama za
industrijsku automatizaciju. Tu su ukljueni simboli i crtei standardnih uredjaja,
kao to su PLC-ovi, raunari, razni tipovi ventila i rezervoara, tasteri, grafikoni, i
drugo. Veina ovih objekata moe biti povezana sa specijalnim funkcijama za
animaciju, kao to je pomeranje kazaljke na grafikom prikazu meraa neke
analogne veliine.
Izbor postojeih objekata jednostavan je
i za tu svrhu moe se koristiti paleta,
tako da se pomou nje i drag&drop
operacije objekti mogu pozicionirati na
ekranu. Pored ove, postoji i paleta za
definisanje poloaja objekata u odnosu
na stranu ili druge objekte.

Na slici je prikazan deo ekrana sa


paletama.
Veliina ekrana moe biti proizvoljno
zadata, do granice veliine ekrana
monitora.

Osim objekata izabranih iz biblioteke objekata, korisnik ima mogunost


importovanja sopstvenih bitmapiranih objekata. Ova opcija omoguava
korienje objekata kreiranih u drugim aplikacijama, ije su grafike mogunosti
vee. Takodje, ovi korisnikovi objekti mogu se ukljuiti u biblioteke, i zatim
koristiti u drugim projektima.
Nad objektima su mogue i operacije grupisanja, zatim postavljanja na vii ili nii
nivo, tako da se uvek moe odrediti koji e od dva objekta koji se preklapaju biti
vidljiv. Takodje, podrane su i operacije rotiranja i preslikavanja objekata.
Generalno, postoje dve osnovne grupe objekata, i to su objekti koji imaju podrku
specijalnih wizard-a, koji se pored standardnog editora za animaciju koriste za
programiranje uloge objekta, i klasini objekti, ije se ponaanje moe
programirati editorom animacije. Alati za programiranje objekata iz prve grupe

koncipirani su na principu tzv. fill in the blank operacija, to omoguava veoma


jednostavno programiranje njihove animacije. U drugu grupu spadaju objekti kao
to su linija, krunica, krug, pravougaonik, poligon, i slino, dok su objekti prve
grupe:
tasteri
prekidai
slajderi
rotacioni pokazivai
linearni pokazivai
razni tipovi grafova, i
alarmi
Pored njih, kao to je ve pomenuto, posebnu grupu ine bitmapirani objekti, a
posebnu i objekti koji su OLE komunikacijom povezani sa drugim Windows
aplikacijama, o kojima e biti vie rei kasnije.
Arhitektura softvera je otvorenog tipa. SYSMAC-SCS Engine neprekidno
osveava I/O vrednosti kao i statusne informacije koje prima sa servera
komunikacije, i odrava real-time bazu podataka, kojoj se moe pristupiti iz
kontrolnih aplikacija kreiranih u skript jeziku. Ova i ostale funkcije Engine-a
prikazane su na sledeoj slici:

Skada
aplikacija

SCS Engine
Skaliranje jedinica
Obrada alarma
Trending

Real-time baza
podataka

DDE

Istorija i log
fajlovi alarma

PLC
DAQ

Za editovanje real-time baze podataka koristi se specijalni editor, Point editor o


kome e biti vie rei kasnije. On se koristi za editovanje taaka koje pretstavljaju
I/O vrednosti povezane sa eksternim uredjajima, odnosno PLC-om. Pored PLC
adrese, takama se mogu pridruiti i druge informacije, kao to su ime, opis,
opseg i slino.
Skada ima mogunosti prikaza promene nekih veliina u vremenu. Ime ove
operacije je trending, i ona pretstavlja veoma mono sredstvo za sticanje uvida

o stanju sistema kojeg nadgledamo. Operacija se koristi preko specijalnih Trend


objekata, a editor za setovanje jednog objekta ovog tipa prikazan je na sledeoj
slici:

Komunikacija

SCADA je paket kreiran za rad u Microsoft Windows okruenju, i koristi sve


prednosti koje to okruenje prua, od mogunosti jednostavnog pozivanja
ugradjenih funkcija preko klipbord operacija, do DDE komunikacije.
SCADA je aplikacija kreirana za personalne raunare, i za sada pretstavlja
najefikasniji oblik korienja PC raunara u sistemima upravljanja industrijskim
procesima. Personalni raunar na kojem je SCADA aktivna povezan je sa
ostalim komponentama industijske automatizacije, drugim reima sa
programabilnim logikim kontrolerom (PLC). OMRON-ov SCADA softver sastoji
se iz dva osnovna pod-paketa, SYSMAC-SCS i SYSMAC-CDM. Prvi sadri sam
programerski alat, kao i Run-time verziju softvera, u kojoj nije mogue editovati
aplikaciju, ve je mogue samo njeno izvrenje. Drugi deo pretstavlja skup
drajvera potrebnih za komunikaciju skade sa okolinom, i u njemu je sistemski
podrana komunikacija sa svim OMRON-ovim programabilnim kontolerima.
Skada aplikacija ima mogunost jednovremene komunikacije sa veim brojem
kontrolera, koji mogu biti povezani sa raunarom preko jednog PLC-a. Kontroleri
izmedju sebe mogu komunicirati preko standardnih komunikacionih protokola. O
nainu programiranja skada aplikacije kada se ona koristi za rad sa veim brojem
kontrolera bie rei u delu u kojem su obradjene tzv. points, odnosno
promenljive koje se koriste kako za programiranje internih skada operacija, tako i
za povezivanje aplikacije sa okolinom.

Pored rada sa eksternim uredjajima, skada paket ima mogunost DDE


komunikacije sa nekim programima koji rade u Windows okruenju. Primer
korienja DDE komunikacije bilo bi povezivanje skade sa nekim spreadsheet
paketom u kome postoje neke mogunosti obrade podataka koje skada nema.
Princip DDE veze prikazan je na sledeoj ilustraciji:

Nain povezivanja podataka bie objanjen kasnije.

Instalacija i aktiviranje softvera

SYSMAC-SCS softver je predvidjen za rad na IMB kompatibilnim raunarima sa


386 ili jaim centralnim procesorom. Operativni sistem treba da bude Microsoft
Windows 3.1 ili noviji. Zahtevi koje sistem mora da ispuni da bi rad aplikacije bio
mogu obuhvataju:
80386 ili jai procesor (66 MHz minimum),
najmanje 4 Mb RAM-a (16 Mb preporueno),
najmanje 20 Mb prostora na hard disku,
VGA ili bolji grafiki sistem,
MS Windows 3.1 ili noviji operativni sistem.
Instalaciona verzija softvera dobija se na 3.5 disketama. Pored samog razvojnog
softvera, da bi rad sa eksternim uredjajima (PLC) bio mogu, potrebno je
instalirati i tzv. token, koji pretstavlja softversku zatitu od neovlaenog
korienja paketa, ili ekvivalentnu hardversku zatitu, tzv. dongle. Hardverska
zatita realizovana je u obliku konektora koji se moe vezati na paralelni port, ili
se moe omoguiti pristup nekom donglu preko mree.
SYSMAC-SCS softver aktivira se iz osnovnog menija, putanjom
Start/Programs/Omron SYSMAC/SYSMAC-SCS Developer (Runtime). Uz

samo razvojno i Run okruenje, uz paket se dobija i set demo aplikacija, koje
pokazuju osnovne performanse OMRON-ove skade.

Osnovni pregled

Koncept projekta

SYSMAC-SCS aplikacija sastoji se iz odredjenog broja medjusobno povezanih


stranica. Stranice mogu sadrati razliite tipove objekata, pasivne ili aktivne
grafike objekte, tekst ili animacije, i mogu biti grupisane u logiku celinu koja ini
projekat. Projekat se moe sastojati iz velikog broja strana, ali i samo jedna
strana moe initi projekat. Razvojno okruenje skada softvera koristi se za
kreiranje i testiranje projekta, dok se on pokree kao stand-alone aplikacija u
Runtime okruenju. Samo jedan projekat moe u jednom trenutku biti editovan u
razvojnom softveru. Pokuaj da se otvori sledei projekat, ako je jedan ve
aktivan rezultovae zatvaranjem aktivnog objekta, uz predlog o uvanju unetih
promena.
Ime projekta, i lokacija na disku na kojem e biti sauvan u obliku fajla, moraju
biti definisani prilikom kreiranja objekta, jer u fajlovskim operacijama ne postoji
opcija Save As. Zapravo, ona postoji u sluaju da je editovan bezimeni projekat
po prvi put, ali je imenovanje projekta pri kreiranju preporuljivo.
Postoji set parametara koji blie odredjuju tip objekta, i kojima se moe pristupiti
iz padajueg menija. Oni obuhvataju setovanje default fonta, oblika dugmia,
ponaanje editora po startovanju, paletu boja, velienu ekrana i slino. Ove
parametre nai emo u podmenijima General Settings i Runtime Settings. U
grupi Runtime Settings nalaze se i parametri koji odredjuju reakciju u sluaju
pojave alarma, a prozor za setovanje ove operacije dat je na slici.

Alarm Sound dugme koristi se za pozivanje dijaloga u kojem moemo izabrati


zvuk koji e biti generisan u sluaju pojave alarma. Ovaj zvuk setuje se izborom
nekog zvuno fajla, koji ima ekstenziju .wav, i ija se putanja setuje u dijalogu:

Pored setovanja alarma, ovde je mogue setovati log listu dogadjaja/greki


(Event/Error Log), odnosno moemo izabrati prioritete dogadjaja/greki koje e
biti obradjene, kao i njihov maksimalni broj koji moe biti detektovan u logu. Do
dijaloga za setovanje ovih parametara dolazi se putanjom Project/Runtime
Settings/Event-Error Settings, i prozor za setovanje izgleda kao na slici:

Prilikom startovanja aplikacije, u trenutku kada se pojavi neka greka,


odgovarajueg nivoa, bie zabeleen trenutak njenog pojavljivanja, i poruka o
prirodi greke. Isto vai i za pojavu bilo kakvog dogadjaja.
Izvetaj o grekama/dogadjajima koji su se pojavili moemo dobiti u nekoliko
formi, odnosno kompletnu listu moemo propustiti kroz nekoliko tipova filtera,
tako da npr. moemo izabrati da se prikae lista samo greaka sa najveim
prioritetima, i slino. Filteri se pokreu klikom na odgovarajui taster u prozoru
koji se pojavljuje prikazujui Event/Error Log. Uloga svakog tastera objanjena je
u Bubble prozoriu koji se pojavljuje iznad tastera kada ostavimo mia
pozicioniranog iznad tastera neko vreme.

Definisanje nivoa korienja

Mere sigurnosti mogu biti definisane za Runtime aplikaciju. To znai da moemo


setovati nekoliko nivoa pristupa aplikaciji. Nivoa ima etiri, i to su nivoi operatora,
supervizora, menadera i dizajnera. Svaki korisnik pre korienja skade u
Runtime verziji mora da se uloguje, i to radi tako to e posle klika na desno
dugme mia izabrati Login operaciju, i ukucati svoje korisniko ime i lozinku na
predvidjenim mestima. Svaki korisnik ima svoj nivo pristupa. Razliitim nivoima
moemo dozvoliti izvrenje razliitih operacija, kao to su potvrda alarma, prikaz
liste greki i slino. Prozor koji slui za setovanje nivoa prikazan je na slici:

Posebna mera predostronosti sprovodi se prema operaciji izlaska iz Runtime


aplikacije, kao najodgovornijoj. Za ovu operaciju specijalno se definie nivo
pristupa.

Kompajliranje i startovanje projekta

U toku rada Runtime aplikacije, projekat nije mogue editovati. Projekat kreiran u
razvojnom okruenju moe biti startovan preko Project menija, izborom operacije
Run, ili pritiskom na taster na Toolbar-u. Tom prilikom projekat se startuje u
posebnom prozoru, koji nosi naziv po imenu projekta. Runtime verzija nekog
ovako startovanog projekta kreira se automatski, i sledei put moe biti pozvana
direktno iz Runtime softvera. Ekstenzija Runtime aplikacije je *.srt. Ona se
pokree kao bilo koja druga aplikacija, instrukcijom Open.

Informacije o projektu

Informacije povezane sa trenutno aktivnim projektom, mogu biti editovane u


posebnom prozoru, koji se aktivira putanjom Project/Information... Ovde moe
biti setovano ime projekta, kao i njegov opis.

Koncept strane

Svaki projekat mora sadrati najmanje jednu stranu. Kreiranje nove strane izvodi
se preko File/New Page instrukcije. Nakon poziva, otvara se strana standardne
veliine i boje, koju moemo editovati dvostrukim klikom mia na bilo kom delu
njene povrine. Stranama se moe manipulisati kao fajlovima, tako da one mogu
biti uvane pod razliitim imenima, otvarane iako se nalaze u drugim projektima, i
tako dalje. Posebne karakteristike strana dobija kada se ukljui u trenutno
aktivan projekat, i ove karakteristike mogu biti editovane samo iz razvojnog
okruenja skade, a ne nekim softverom za rad sa fajlovima. Ekstenzija strane je
*.pag.
Interne karakteristike strane obuhvataju tip okvira, mod prikaza, i neke druge
osobine, i prozor za njihovo setovanje (koji se dobija dvostrukim klikom na
stranu) prikazan je na slici:

Strana moe biti odtampana na printeru, i operacija njenog tampanja poziva se


instrukcijom File/Print, sa zadavanjem potrebnih osobina tampanja, kao to su
orijentacija ili opseg tampanja.

Organizacija strana tokom kreiranja projekta olakana je ako se koristi Project


Editor, specijalni editor za rad sa projektom. Projekt editor startuje se pritiskom
na taster na toolbar-u, ili preko Utilities menija. Aktiviranjem editora pojavljuje se
prozor:

Postoji nekoliko filtera koje koristimo za prikaz liste strana. Atribut All Relevant
Pages ukljuuje sve strane koje spadaju u tri sledee grupe.
Filter sa nazivom Pages in Project ostavie u listi samo stranice koje se nalaze
u projektu. Stranice se ukljuuju u projekt iz generalne liste, klikom na taster sa
oznakom +, i tada dobijaju status In Project, prikazan u koloni koja prikazuje
status projekta. Stranice koje se nalaze u projektu, mogu biti
isljuene iz njega pritiskom na dugme +. Samo jedan od tastera +/moe biti raspoloiv u jednom trenutku, odnosno za jednu stranu.
Sledei filter svoju operaciju zasniva na mestu gde se stranice kao fajlovi fiziki
nalaze, i poziva se izborom opcije Pages in Project Directory. To znai da e,
kada ga aktiviramo, u listi ostati samo stranice koje se nalaze u poddirektorijumu
projekta, dok ostale nee biti prikazane. Strane koje se nalaze u direktorijumu
projekta prepoznaemo po njihovom punom nazivu, npr. C:\Projekti\Tutor\B&W.
Takodje, ovaj editor vodi rauna i o tome koje su stranice trenutno otvorene za
editovanje, i njihov spisak moemo dobiti ako kompletnu listu filtriramo kroz
Pages Loaded opciju. Njihov status u ovom pogledu prikazan je u koloni sa
naslovom Load Status, i automatski se menja otvaranjem nove strane ili
zatvaranjem otvorene.
Postoji jo jedan atribut za ije je setovanje zaduen Project editor, a to je status
koji stranica ima po pokretanju Runtime aplikacije. Ovaj status moe biti:
Displayed
Not Displayed

Prvi od ova dva statusa oznaava da e stranica biti uitana automatski po


startovanju Runtime aplikacije, dok drugi znai da to nee biti
sluaj, ve e prikaz stranice biti aktiviran nekim dogadjajem koji
nije startovanje aplikacije. Ovaj status stranice moe biti setovan pomou tastera
koje se nalaze na toolbar-u, pri emu je takodje aktivan samo onaj taster koji
moe da promeni status. Na slici na kojoj su ova dva tastera prikazana, levi
taster nije raspoloiv, a kako se on koristi za definisanje statusa koji oznaava
prikazivanje po startu, znai da e stranica na koju se ovo stanje tastera odnosi
biti prikazana po startovanju aplikacije. Ovaj parametar, naravno, moe biti
promenjen pritiskom na taster sa oznakom x.
Status prikaza stranice po startu mora biti paljivo definisan za svaku stranu.
Uobiajeno reenje je da se definie jedna stranica koja e biti prikazana po
startu, i sa koje e biti omoguen pristup ostalim stranicama koje emo imati
potrebu da posetimo. Mogu takodje postojati i stranice kojima nee biti definisan
pristup iz aplikacije, a koje e biti startovane same od sebe, po aktiviranju nekog
dogadjaja. Primer za ove stranice bile bi poruke o raznim tipovima neispravnosti
instalacije koju nadgledamo.
Stranice mogu biti aktivirane iz same aplikacije pomou Display Page akcije
animacije komponentnih objekata, dok se funkcijom Close Page postie
suprotan efekat.
Prilikom prikazivanja strana, moramo voditi rauna o njihovim atributima, kao to
su veliina i poloaj strane, i njen tip. Pogrean izbor tipa strane moe dovesti do
zaglavljivanja aplikacije, pa ovome mora biti posveena potrebna panja.
Atributi strane setuju se u prozoru koji se otvara nakon dvostrukog klika na
stranicu, pored objekata pozicioniranih na njoj.

Pozicija i veliin strane setuju se popunjavanjem odgovarajuih polja, ili


pozicioniranjem i podeavanjem veliine stranice u toku projektovanja. Mora se
paziti gde se stranica pozicionira, da se ne bi desilo da, na primer, prekrije
dugme na nekoj drugoj strani, koje je programirano za zatvaranje prikazane
strane.
Pored podeavanja veliine i poloaja, u ovom dijalogu setuje se i naziv strane,
komentar, tip ivice, kao i mod prikazivanja. Postoje tri razliita moda prikazivanja
stranice, i tu takodje treba biti jako oprezan. Do pada aplikacije, na primer, moe
dovesti setovanje moda neke stranice kao Replace, pri emu smo izostavili
tastere za dalju navigaciju sa ove strane, koja postaje aktivni meni.
Aktiviranje stranice moe se programirati i kao rezultat izvrenja nekog skripta,
odnosno programa napisanog u script jeziku, koji se opet moe povezati sa
razliitim dogadjajima. Tako, na primer, moemo programirati prikaz neke poruke
o greki kada se aktivira bit koji slui za indikaciju pojave greke. Komanda koja
se koristi za ovo je display, gde se kao parametar navodi ime stranice koja
treba da se prikae. Takodje, na raspolaganju nam je i ekvivalentna komanda za
zatvaranje stranice, i to je komanda close. O komandama i sintaksi skript jezika
bie vie rei kasnije.

Komunikacija sa PLC-om

U nastavku ovog poglavlja, koje ima za cilj osnovno upoznavanje korisnika sa


skada softverom, bie dat primer uspostavljanja jednostavnog oblika
komunikacije skade sa PLC-om. Kako je ovaj softver predvidjen za rad u bliskoj
interakciji sa programabilnim kontolerima, primer njihove komunikacije spada u
osnovni pregled, iako e neki termini, kao to je termin skript ili DDE konekcija,
biti objanjeni tek kasnije.
Znai, cilj nam je da uspostavimo komunikaciju softvera sa PLC-om, koji je fiziki
povezan sa PC-jem, i uz pretpostavku da su svi parametri komunikacije setovani
korektno. SYSMAC-SCS moe komunicirati sa svim kontrolerima iz OMRONovog programa, jer su oni podrani drajverima u SYSMAC-CDM softveru, koji se
koristi uz SYSMAC-SCS, i ini zapravo jednu celinu sa njim. Da bi komunikacija
mogla biti uspostavljena, neophodno je da je instaliran token ili dongle, odnosno,
skada se ne sme nalaziti u Demo modu.
Komunikacija softvera sa PLC-om realizuje se korienjem taaka. Take su
interne promenljive skade, ija je namena upravo komunikacija sa PLC-om. Nova
taka moe biti kreirana iz Point editora, pritiskom na dugme sa oznakom +,
koje aktivira operaciju Add Point. Ova operacija rezultovae pojavljivanjem
prozora kao na slici:

U predvidjenim prazninama treba uneti ime take, grupu kojoj pripada, opis, kao i
tip take. Postoje etiri tipa taaka, i to su binarni, integer, realni i tekstualni, i u
zavisnosti od toga ta taka pretstavlja, odnosno koje vrednosti moe da uzme,
potrebno je izabrati odgovarajui tip. Nakon toga, setujemo opseg vrednosti koje
taka moe uzeti, kao i inicijalnu vrednost, koju e ona imati pre nego to je
promenjena bilo spolja, bilo izvrenjem neke interne operacije skade.
U zavisnosti od toga da li se taka koristi kao neka interna promenljiva skade,
koja moe sluiti za programiranje neke vrste animacije, ili uu sline svrhe, ili je
predvidjeno da ona pretstavlja vezu sa nekom adresom u eksternom PLC-u, tip
take moe biti razliit. Postoje etiri tipa taaka, i to su:
Memory Resident
Input
Output
Input/Output
Prvi navedeni tip oznaava da taka nema veze sa eksternim uredjajima, ve se
koristi interno u skadi, dok ostali tipovi oznaavaju tip signala kojeg taka prenosi
procesoru PC-a. Ovaj tip moe biti ulazni, to bi znailo da je u pitanju signal koji
stie iz PLC-a, i pretstavlja ulazni signal sa aspekta skada softvera, zatim izlazni,
koji oznaava da se vrednost take alje prema PLC-u u vidu rezultata neke
operacije, na primer setovanja analogne vrednosti na slajderu pozicioniranom na

ekranu, i konano, tip moe biti ulazno/izlazne, to pretstavlja kombinaciju dva


prethodno pomenuta sluaja.
Operacija prenosa podataka izmedju PLC-a i skade moe biti inicirana razliitim
dogadjajima. Za definisanje tipa dogadjaja koji e se koristiti kao uslov za prenos
vrednosti konkretne take u bilo kom smeru, koristi se izbor pod nazivom I/O
Update Rate, i on moe biti:
On Change
Prenos vrednosti take kojoj je dogadjaj koji inicira prenos ovako
definisan desie se neposredno posle promene vrednosti take unutar
skade. Ovaj tip aktivacije prenosa raspoloiv je iskljuivo za take
izlaznog tipa.
On Request
Taka e biti tretirana kao unutranja, odnosno Memory Resident, sve
do trenutka izvrenja skripta koji sadri instrukciju InputPoint ili
OutputPoint, kada e doi do prenosa njene vrednosti u smeru
definisanom komandom.
On Interval
Vrednost ovako definisane take bie prenoena nezavisno od
promene, ili instrukcije za prenos, i obavljae se u tano definisanim
vremenskim intervalima.
U donjem desnom uglu setuje se i tip konekcije skade sa eksternim uredjajem, i
ovde se vidi da ovaj uredjaj moe biti fiziki PLC, ali i neka aplikacija koja
podrava DDE konekciju. Dugme Setup otvara prozor za setovanje konekcije
izabranog tipa, i poto DDE komunikacija spada u napredne performanse skade,
ovde se ograniavamo na komunikaciju sa PLC-om.
Ulazne i/ili izlazne take, u sluaju komunikacije sa PLC-om, potrebno je
povezati sa lokacijama u memoriji kontrolera. Da bi se ova operacija sprovela,
potrebno je definisati PLC na koji se veza odnosi. PLC sa PC-jem na kojem je
skada aktivna moe biti povezan na nekoliko naina, od kojih je najei
SYSMAC WAY, koji pretstavlja standardni OMRON-ov protokol za komunikaciju
ovih uredjaja. O nekim drugim nainima umreenja bie vie rei kasnije. Tip
veze sa PLC-om potrebno je definisati prilikom dodavanja PLC-a u projekat, kao i
neke druge njegove osobine, kao to su tip procesora, veliina programske
memorije i slino.
Svi ovi parametri, kao i komentari PLC-a, mogu biti setovani u prozoru koji je
prikazan na sledeoj slici, zajedno sa svojim parent prozorom u pozadini:

Nakon prijavljivanja PLC-ova koji e se koristiti u komunikaciji, moemo pristupiti


povezivanju taaka sa njihovim adresama. U zavisnosti od tipa take, odnosno
od toga da li je ona deklarisana kao binarna, integer ili realna vrednost, ili je u
pitanju tekst, razliit e biti i oblik memorije sa kojim je povezivanje izvreno.
Tako, za definisanje ekvivalenta take binarnog tipa, potrebno je dati naziv
memorijskog sektora unutar PLC-a, adresu rei, i na kraju broj bita te rei, na
kojeg se re odnosi.
U sluaju, opet, da je re tipa integer, i da je za prikaz njenog sadraja dovoljna
jedna 16-bitna re, podatak o broju bita bie izostavljen, jer e se uspostaviti
veza take sa celom reju.

Primer koji sledi prikazuje prenos podataka u oba smera. Kao prvo, na ekranu
emo kreirati dva objekta: slajder i obrtni mera. Uloga ova dva objekta bie
ostvarivanje komunikacije u dva smera, odnosno, slajder e biti programiran tako
da e se njegova vrednost prenositi na definisanu adresu PLC memorije, ija e
vrednost zatim biti oitana, i prikazana na obrtom merau. Ekran koji sadri ova
dva objekta prikazan je na slici:

U ovom trenutku objekima nije dodeljena nikakva akcija, niti su oni povezani sa
takama. Da bi njihova animacija mogla biti programirana, na jedan od naina
pozvaemo Animator Editor, u ovom sluaju, na primer dvostrukim klikom na
objekat Slajder. Pojavie se prozor:

Pod pretpostavkom da taka sa kojom elimo da poveemo analognu veliinu


koju emo setovati pomeranjem slajdera jo nije definisana, pritiskom na taster
Browse, pa zatim Add Point pojavie se prozor za setovanje parametara nove
take:

Parametri komunikacije sa PLC-om objanjeni su u prethodnom poglavlju, pa


emo ovde ih ovde setovati bez uputanja u objanjenje. Taku emo povezati
sa adresom 0300 DM sektora memorije:

Taka e nakon pritiska na OK taster biti povezana automatski.


Nakon ovako definisanog objekta kojim postavljamo sadraj ove rei, prei emo
na setovanje obrtnog meraa, dvostrukim klikom na njega:

Primeticemo da ovde nije potrebno da se tacka edituje, vec se njeno ime


jednostavno unosi u polje sa naslovom Expression. Default opsezi koriteni su
u setovanju oba objekta, to je bilo mogue jer su identini, odnosno 0 do 100.
Nakon startovanja ovako programirane aplikacije, i pod pretpostavkom ispravnog
rada PLC-a i korektne konekcije sa njim, vrednost na adresi DM 0300 bie
setovana poloajem slajdera, koji moemo menjati prostim prevlaenjem pomou
mia, a ta promena detektovae se i na obrnom merau, koji je zaduen da
prikazuje aktuelnu vrednost koja se na toj adresi nalazi.
Panju treba obratiti i na PLC program koji je aktivan na strani kontrolera, i u
kome ne sme biti ponovo setovana vrednost na lokaciji DM 0300.

Objekti
Stranice kreirane u paketu SYSMAC-SCS sastavljene su od podloge na kojoj su
pozicionirani objekti razliitih oblika i tipova. Objekti su medjusobno povezani, i
tako povezani na strani ine funkcionalni i koherentni interfejs prema korisniku.
SYSMAC-SCS objekti podeljeni su u tri grupe: grafiki, kontrolni i kao trea grupa
pojavljuju se objekti koji su povezani OLE konekcijom sa nekom drugom
Windows aplikacijom.
Procedura kreiranja objekata svih tipova je identina. Dugme na Toolbox-u koje
reprezentuje odredjeni objekt se pritisne, a zatim se klikne i na poziciju na strani
na kojoj elimo da pozicioniramo objekt. On e se potom pojaviti u svojoj defaul
veliini, pa ga je uglavnom potrebno editovati da bi zadovoljio zahteve.

Editovanje objekata

Operacije editovanja objekata mogu se svrstati u tri osnovne kategorije, i to su:


Promena veliine
Promena oblika
Modifikacija objekta korienjem Wizard-a
Da bi se promenila veliina nekog objekta skade, levim tasterom mia
kliknuemo na objekt, i na taj nain ga izabrati. Sada moemo kliknuti na neku
od ivinih taaka koje su se pojavile, i prevui je do
eljene pozicije, menjajui pri tome veliinu objekta, kao
to je prikazano na slici.

Procedura promene oblika objekta slina je za sve grafike objekte, kojima oblik
moe biti promenjen. Ne mogu biti promenjeni oblici objekata svih tipova, jer
oblici kontrolnih objekata mogu da se promene samo korienjem njihovih
wizard-a. Da bi se oblik izabranog objekta promenio, treba da iz menija Edit
izaberemo opciju Edit Object, ije e izvrenje rezultirati pojavljivanjem crvene
take na objektu. Pomeranjem ove take moi emo da promenimo oblik objekta.
Promena oblika korienjem wizard-a izvodi se za kontrolne objekte, iji oblik
drugaije i ne moe biti promenjen. Wizard se startuje identino prethodnoj

operaciji, iz menija Edit/Edit Object. Operacije sa klipbordom su nam na


raspolaganju unutar arobnjaka, tako da moemo kopirati sadraj na klipbord, i
odande ga uzimati kako iz drugog wizard-a, tako i iz drugog dijaloga ili
aplikacije.

Kreiranje i editovanje grafikih objekata

Grafiki objekti se, dakle, mogu kreirati jednostavnim izborom objekta


odgovarajueg tipa na paleti. Kao pomo pri izboru, postoji baloon window
funkcija, koja prikazuje naziv objekta nad kojim je strelica mia pozicionirana
neko vreme. U grupu grafikih objekata spadaju
sledei objekti:
Krunica

Blok tekst

Elipsa

Linija

Poligon

Izlomljena linija

Pravougaonik

Zaobljeni pravougaonik

Tekst

Kreiranje i editovanje kontrolnih objekata

U kontrolne objekte spadaju objekti kojima je sistemski pridruena odredjena


funkcija. Tako, na primer, objekat sa nazivom Linear Gauge predodredjen je za
pokazivanje vrednosti neke anologne veliine. Njegovu animaciju sa promenom
te veliine nije potrebno posebno programirati, kao to bi se to uradilo sa nekim
grafikim objektom, kojem bismo, na primer, zadali akciju vertikalnog punjenja sa
promenom vrednosti analogne veliine sa kojom je povezan, ve je jedino
potrebno da u odgovarajuem praznom polju arobnjaka za programiranje

unesemo ime take koja reprezentuje tu analognu veliinu, kao i jo neke


parametre, za odredjivanje opsega, konverzije, i naina prikaza. U nastavku e
biti dati opisi kontrolnih objekata sa odgovarajuim wizard-ima.
Kontrolni objekat tipa alarma

Objekat tipa alarma kreira se klikom na dugme na paleti koje pretstavlja alarm
objekte, i zatim klikom na mestu na ekranu, na kojem elimo da ga
pozicioniramo. Editor za programiranje ponaanja ovog objekta poziva se
dvostrukim klikom na ve kreirani objekt, i izgleda kao to je prikazano na slici:

^arobnjak omoguava filtriranje alarma po grupi kojoj pripadaju, zatim setovanje


razliitih boja alarma u zavisnosti od njihovih statusa, i na kraju, dozvoljava
setovanje veeg broja atributa. U donjem delu prozora prikazan nam je preview,
ime je olakano donoenje pravog izbora.
Stilski atributi alarma ukljuuju nain prikazivanja ovog objekta, odnosno, ovde
se setuje da li e informacija sadrati datum i/ili vreme pojave alarma, statusa,
naslova kolona, 3-D okvir, zatim opcioni izbor dodavanja novih poruka na vrh
liste. Takodje, ovde se setuje i duina informacije o datumu, vremenu i statusu,
izraena u karakterima.

Kontrolni objekt tipa Bar Chart

Editor za programiranje ovog objekta izgleda ovako:

Kao to se vidi, postoji nekoliko parametara koje moemo postaviti da blie


odrede ponaanje grafika. Kao prvo, tu je naslov, koji e biti prikazan iznad
grafika. Zatim, moemo izabrati tip grafika, odnosno, on moe biti 2-D ili 3-D,
postavljen horizontalno ili vertikalno. Slede stilski parametri, i na kraju,
povezaemo grafik sa operacijama nad takama koje smo definisali, i ije
vrednosti elimo da na njemu budu prikazane. Ovde je potrebno naglasiti da se u
operaciju nad nekom takom svrstava i Null-operacija, odnosno, kao operaciju je
mogue uneti i samo ime take. Sa druge strane, tu se mogu nalaziti razne druge
operacije nad takama, iji broj i vrste zavise od tipa taaka. Kao olakanje,
ponudjena je opcija izbora postojee take, kao i kreacija nove, do ega se
dolazi klikom na Browse... a zatim na Add Point tastere.
Bar graf objekt takodje poseduje i internu funkciju skaliranja opsega, tako da
mozemo prikazati vrednosti neke veliine u originalnim jedinicama, npr. 0 do
10,000 N/m2.
Takodje, moe se definisati gustina markera na osama, koji su za tu namenu
podeljeni u Major i Minor markere.

Kontrolni objekat tipa Linearni pokaziva

Linearni pokaziva je sredstvo prikaza vrednosti operacija nad takama. Editor


kojim se ovaj objekat programira identian je editoru za setovanje parametara
operacije rotacionog pokazivaa. Razlika medju njima samo je vizuelna, tako da
se ovo objanjenje odnosi i na rotacioni pokaziva. Editor je prikazan na slici:

Kao to se vidi, prozor prua mogunosti izbora tipa pokazivaa, setovanja


njegovog naslova, i definisanja izraza iji e rezultat biti prikazan. Operacija
skaliranja moe biti programirana popunjavanjem polja koja sadre minimalnu i
maksimalnu vrednost, a tu su i atributi koji odredjuju stil prikaza.
Na desnoj strani nalazi se preview model, tako da je izbor odgovarajuih
parametara olakan.

Kontrolni objekat tipa Pushbutton

Pushbutton objekat pretstavlja jednostavan nain za startovanje odredjene


akcije. Insertovanje objekta vri se na standardan nain, kao i aktiviranje wizarda. Editor kontrolnih funkcija ovog objekta sadri polja za izbor tipa, koji moe biti:
Obino dugme
Kolor dugme
In/Out dugme
Postoji takodje i prozor za upis teksta koji elimo da se prikae na dugmetu, i to
je sve. Primetiemo da je na korisniku ostalo da programira akciju koja e se
izvriti po pritisku na dugme, i to kao da je u pitanju neki grafiki objekt.
Standardni animator editor, koji se koristi u te svrhe, i o kojem e biti vie rei
kasnije, za razliku od grafikih objekata, kod kojih se aktivira dvostrukim klikom
na objekt, ovde moe biti pozvan klikom desnim dugmetom mia, i izborom
opcije Animation Editor, jer dvostruki klik ponovo aktivira wizard-a. Ova mala
nedoslednost ipak rezultira pojednostavljivanjem programiranja, jer sve tipove
dugmadi ipak imamo na jednom mestu, a izbor vrimo pri kreiranju odredjenog
dugmeta.

Kontrolni objekat tipa Scatter graf

Skater graf arobnjak prikazan je na slici na sledeoj slici:

Njegova uloga je prikazivanje odnosa promene dve veliine u vremenu. Uzorci


se uzimaju na svakih n sekundi/minuta/sati/dana, i u dvodimenzionalnom grafiku
upisuje se taka ije su koordinate odredjene vrednostima promenljivih
definisanih u poljima za setovanje izraza za animaciju po X i Y osi. Taka moe
biti razliitog oblika, odnosno moe biti *, +, # i o. Boja taaka, kao i podloge,
takodje se definie u editoru, kao i jo neki parametri.
Klikom na tastere X-axis ili Y-axis poziva se prozor za skaliranje vrednosti
prikazane na konkretnoj osi.

Kontrolni objekat tipa Slajder

Slajder objekat omoguava promenu vrednosti promenljive koja je povezana sa


njim u odredjenom opsegu prostim pomeranjem klizaa po ekranu. Parametri
koje je potrebno setovati prikazani su na prozoru wizard-a:

Kao to se vidi, promenljiva ija e vrednost zavisiti od poloaja slajdera, definie


se u polju predvidjenom za to. Takodje, operacija skaliranja na raspolaganju je
ve tu, i to se moe uraditi postavljanjem minimalne i maksimalne vrednosti
promenljive, kojima odgovara krajnji levi (donji), odnosno desni (gornji) poloaj.
Promena smera poveavanja vrednosti moe se setovati brisanjem default
izbora po kome donjem/levom poloaju odgovara minimalna vrednost.

Kontrolni objekat tipa Toggle Button

Ovi objekti koriste se za kontrolu i prikazivanje aktuelne vrednosti digitalne take.


Nakon aktiviranja editora, pojavie se prozor u kojem setujemo tip svia, bulovu
promenljivu koja je vezana za objekt, kao i tekst koji e biti prikazan:

Pored tipova svieva koje smo ve sreli, a to su obino, kolor i In/Out dugme,
ovde postoji proiren izbor:
Toggle svi
Rotacioni svi
On/Off dugme
Dugme za indikaciju
Izbor pravimo setovanjem odgovarajueg tipa u gornjem delu editora. Nakon
toga, definiemo promenljivu, i na kraju upisujemo opcioni tekst koji e biti
prikazan na lokacijama na crteu koje odgovaraju krajnjim poloajima prekidaa.
Setovani tekst automatski se pojavljuje na desnoj strani, gde je prikazan preview
mod tastera.

Kontrolni objekat tipa Trend Graf

Trend wizard aktivira se dvostrukim klikom na kreirani objekt tipa Trend grafa, i
izgleda kao na slici:

Objekat tipa Trend grafa koristi se za prikaz promene odredjenih veliina,


odnosno izraza u kojima one uestvuju tokom vremena. Perioda semplovanja
moe biti setovana u prozoru, kao i totalno vreme u kojem promene mogu biti
beleene. Postoji mogunost istovremenog prikaza est razliitih izraza, pomou
est linija razliitih boja.
Skaliranje grafika odnosi se na prikaz svih veliina, i moe se aktivirati pritiskom
na Scalling taster.
Na apscisi grafika u Run reimu nalazie se vreme, dok e vrednosti
programiranih izraza biti prikazane na ordinati. Kako e vremenom dolaziti do
translacije grafika, neke promene nee vie biti vidljive. One su, medjutim, ostale
zapisane, i moemo ih ponovo dobiti na ekranu navigacijom po vremenskoj osi.
Za to se koristi slajder u donjem delu ekrana. Zbog lakeg tumaenja trenutka na
koji se odnosi odredjeni set vrednosti koji se desio u prolosti, postoji tzv. stamp,

odnosno peet koji nosi informaciju o trenutku, i ija se frenvencija pojavljivanja


tokom vremena takodje moe setovati.

Programiranje grafikih objekata


Za razliku od kontrolnih objekata, programiranje grafikih objekata ne radi se uz
pomo posebnih arobnjaka, ve za svaki grafiki objekt postoji odredjen broj
animacionih funkcija koje mogu biti programirane. Do liste raspoloivih animacija
dolazimo klikom na desni taster mia, i izborom Animation Editor opcije, ili ona
moe biti aktivirana dvostrukim klikom mia iznad objekta. Lista sadri neke
opreracije koje mogu biti povezane sa svim tipovima grafikih objekata, kao to
su Visibility, dok neke funkcije mogu biti setovane samo sa objekte odredjenih
tipova, kao to je Percentage Fill. Lista animacija prilagodjava se tipu objekta,
tako da je za konkretni objekat ona redukovana na one funkcije koje mogu biti
programirane, dok ostale nisu prikazane.
Ako kreiramo novi objekat tipa pravougaonika, i dvaput kliknemo na njega,
otvorie se editor za animaciju sa sledeom listom:

Kao to vidimo, na raspolaganju je vei broj funkcija. Na prethodno prikazanom


ekranu moemo videti da je editor pozvan za programiranje animacije objekta sa
nazivom Polygon_9, kao i da nema nijednu programiranu funkciju. Da bismo
setovali neku vrstu animacije, kliknuemo dva puta na odgovarajuu funkciju, ili
emo pritisnuti taster sa oznakom +. U primeru sa slike, otvorio bi se editor za
postavljanje parametara Blink operacije, jer je ona aktivna u prozoru. Tasteri sa
oznakama - i <- vri se brisanje, odnosno editovanje pojedine operacije.

Naslov Object Actions u polju sa desne strane, oznaava da je u toku


programiranje animacije objekta. Pored programiranja animacije objekta,
moemo animirati i stranu, kao i itav projekat, za ta se koristi isti ovaj
Animation Editor, i o tome e biti vie rei kasnije.
Krajnji desni prozor dozvoljava nam setovanje nivoa korienja skade iz kojeg e
korisnik moi da izvri programiranu operaciju.
Objanjenja naina programiranja pojedinih animacija data su u nastavku.

Blink
Parametri ove animacije setuju se u prozoru koji se pojavljuje dvostrukim
klikom na ime akcije. U prozoru postoji polje za setovanje digitalnog izraza
koji e biti koriten za animaciju, odnosno, tu se setuje izraz ije ON stanje e
aktivirati blinkanje objekta. Za OFF stanje izraza, nee se desiti nita.
Takodje, u prozoru se setuje i boja kojom e objekat blinkati.

Display/Close Page
Ove dve animacije dovode do otvaranja/zatvaranja odgovarajue strane
tokom Runtime aplikacije. Akcija prikaza/uklanjanja stranice aktivira se
pritiskom miem na objekt
ija animacija sadri ovu
funkciju.
Prozor
za
setovanje slian je za obe
operacije, i ovde je prikazan
sluaj
Close
Page
animacije.

Colour Shange Analog/Digital


Ovo su takodje dve sline operacije, ije izvrenje dovodi do promene boje
objekta. Analogna promena boje vezuje se za izraz ija je priroda analogna.
Setovanje parametara za ovu operaciju radi se u prozoru koji sadri polje za
definisanje odgovarajueg analognog izraza, kao i polja za setovanje granica

iji e prelazak aktivirati promenu boje. Takodje, za razliite vrednosti


analogne veliine moemo setovati razne boje, tako da moemo, npr.
simulirati zagrevanje nekog kotla njegovim bojenjem u crveno.

Za programiranje animacije digitalne promene boje, setuju se samo dve boje,


i to jedna za stanje On digitalnog izraza kojeg unosimo kao parametar, i
druga za stanje Off tog izraza.

Edit Point Value (Analogue, Digital, Text)


Za razliku od prethodnih animacija, koje su prikazivale stanje nekih veliina, i
bile su read-only karaktera, ova operacija koristi se za setovanje novih
vrednosti neke take. Razlika je takodje u tome to ova animacija ne moe
biti
povezana
sa
izrazom, ve samo sa
konkretnom takom. U
zavisnosti od tipa take
iju vrednost elimo da
menjamo klikom mia i
zatim setovanjem nove
vrednosti,
izabraemo
jednu
od
ove
tri
operacije.
U prozoru za programiranje ove operacije setujemo samo ime take iju
vrednost emo editovati, a samo editovanje aktivira se pritiskom na taster
mia iznad odgovarajueg objekta u Runtime aplikaciji. Pojavljuje se prozor
za setovanje nove vrednosti koji izgleda kao na slici.

Enable/Disable

Ova instrukcija definie se uz neki objekat korienjem digitalnog izraza. Za


vrednosti digitalnog izraza On i Off razliiti akcije objekta programirane
uporedo sa ovom bie zamrznute, odnosno aktivne. U primeru na sledeoj
slici, stanje Off bulove promenljive test13 e zamrznuti ostale programiranje
akcije animacije objekta, to znai da u trenucima dok test13 ima vrednost 0,
objekat nei blinkati ni kada je odgovarajui aktivirajui bit ON (leakwhite).
Isto vai i za operaciju setovanja analogne vrednosti. Kada bit test13 predje u
stanje ON, animacije ostalih objekata izvravae se kao da akcija
Enable/Disable i nije programirana.

Execute Script
Ovo je specijalna operacija, koja moe biti kako dodeljena objektu, pri emu
se njeno izvrenje aktivira klikom miem na objekat, tako i programirana da
se izvrava na razne druge dogadjaje, o emu e biti vie rei u glavi 7.
Aktiviranjem prozora za editovanje ove operacije pozivamo editor za pisanje
skript aplikacije, korienjem specijalnog skript jezika OMRON-ove skade.
U ovom editoru moemo napisati programsku sekvencu koja e biti izvrena
na odredjeni dogadjaj. Skript aplikacije mogu se pridruiti objektima,
stranama, ili projektu. Kod programiranja objekata, do izvrenja programirane
sekvence dovodi klik miem na objekat, ili na odredjeni programirani digitalni
uslov. Unutar sekvence takodje postoji mogunost logikog uslovljenja
izvrenja neke operacije, i na raspolaganju su sve instrukcije namenjene za
to, kao to su IF, ELSE, AND, OR, instrukcije komparacije i drugo. Posebnu
grupu instrukcija ine izvrne instrukcije, kao to su AcknowledgeAlarm(),
rotate, horizontal%fill, i druge.

Skript jezik skade pretstavlja redukovanu varijantu C jezika, sa


pojednostavljenom sintaksom i samo nekim instrukcijama, koje su neophodne
za programiranje animacije objekata. Primer za programsku sekvencu
setovanu za neki objekt jeste pravougaonik sa tesktom Izlaz na sebi, kome
na levi klik miem moemo programirati izvrenje skripta ShutDown(), koji
zatvara sesiju. O logikim, izvrnim, kao i o nekim specijalnim instrukcijama,
bie vie rei u glavi 7, gde e biti pretstavljen Skript editor, i sam skript jezik.

Move, Percentage Fill, Resize


Ova tri tipa operacije objanjena su na jednom mestu jer je nain njihovog
programiranja veoma slian. Pozivanjem editora pojavljuje se dijalog:

U njemu treba da setuje analogni izraz, ija vrednost e biti animirana


razliitom akcijom: pomeranjem objekta po ekranu, punjenjem objekta u
odredjenom pravcu, ili promenom njegove veliine. U svakoj od ovih akcija
postoji mogunost skaliranja vrednosti analogne veliine, tako da moe biti
prikazana veliina koja se menja u bilo kom opsegu. Postoje razne varijante
ovih akcija, i, za poetak, sve tri su podeljene u dve varijante, u zavisnosti da
li se animacija obavlja u horizontalnom ili vertikalnom pravcu. Dalje, kod npr.
promene veliine u horizontalnom pravcu, treba odrediti poloaj nepokretne
take, koja moe biti postavljena na levoj ili desnoj ivici objekta, ili u sredini.
Setovanje ovih parametara veoma je jednostavno, jer se izvrava
ispunjavanjem praznih polja.

Rotate
Ova animacija dovodi do okretanja objekta oko ose koja lei normalno na
ravan ekrana. Poloaj ose postavlja se definisanjem Rotation Point poloaja,
dok se ugao okretanja vezuje za neku analognu veliinu.

Skaliranje ove veliine opet je mogue, definisanjem odnosa opsega njene


vrednosti, i odgovarajuih uglova okretanja objekta.

Visibility
Poslednja u listi animacija je vidljivost objekta, koja se programira
postavljanjem digitalnog izraza za iju vrednost 1 ili 0 objekat moe biti
vidljiv/nevidljiv. Napomenimo samo jo i to da nevidljivi objekt nee biti
animiran nekom drugom vrstom animacije, iako je moda uslov za njeno
izvrenje ispunjen.

Manipulacija objektima

SYSMAC-SCS je paket koji u punoj meri koristi prednosti Windows okruenja.


Ovo se odnosi na intuitivno, user friendly editorsko okruenje, kao i na
korienje
Windows
klipborda.
Standardne
operacije manipulacije objektima programeru su na
dohvat ruke. Jednostavnim klikom na objekte vri
se njihov izbor, a klikom na desni taster mia
poziva se set instrukcija koje mogu biti izvrene u
cilju grafikog editovanja objekata.

Izbor veeg broja objekata, radi izvrenja nekih


operacija nad grupom objekata, vri se uzastopnim
klikovima na objekte, uz dranje pritisnutog Ctrl
tastera.

Operacije kao to su Move, Cut, Paste, Copy ili Delete spadaju u set
standardnih operacija grafikih programa pod Windows okruenjem. Njihova
primena je sasvim jednostavna, i objanjena u Help sistemu bilo kog grafiki
orijentisanog programa. Ovde e biti data samo osnovna objanjenja ovih
instrukcija.
Move instrukcija koristi se za promenu pozicije objekta na ekranu. Pomeranje se
vri klikom na objekt, koji zatim po ekranu pomeramo drei pritisnut taster mia,
do pozicije na koju elimo da
smestimo objekt, gde otputamo
taster.

Cut je operacija koja se koristi za prebacivanje izabranog objekta na klipbord, pri


emu se original brie sa izvornog ekrana. Ova operacija aktivira se iz menija,
klikom na taster sa nacrtanim makazama, ili kombinacijom <Ctrl+X> na tastaturi.

Paste operacija pozicionira na definisanom mestu na ekranu objekt koji se nalazi


na klipbordu. Sadraj klipborda moemo videti i nezavisno od ove funkcije, preko
programa Clipboard Viewer, koji se standardno isporuuje uz Windows, s tim
to se u typical instalaciji ne instalira, ve je to potrebno naknadno uraditi.
Operacija moe biti izvrena pomou kombinacije tastera <Ctrl+V>.
Copy operacija koristi se za kopiranje izabranog objekta na klipbord, s tim to
original ostaje na mestu na kojem je bio. Sa tastature operacija se moe
startovati sa <Ctrl+C>.
Delete je operacija koja se koristi za brisanje izabranog objekta sa ekrana.
Izvriemo je tako to emo izabrati objekt (objekte) koji elimo da uklonimo, i
pritisnuti taster <Delete> na tastaturi.
Undo operacija prua mogunost ponitenja prethodno izvedene akcije.
Pritiskom na <Ctrl+Z>, aktiviramo ponitenje prve prethodne akcije. SYSMACSCS ima mogunost setovanja broja akcija koje su pokrivene Undo funkcijom, i
taj broj je po defaultu 10. U sluaju da imamo potrebu za podrkom za vei broj
akcija, moemo setovati njihov broj u Preferences dijalogu, s tim to treba imati
u vidu da poveanje broja akcija do kojih dopire Undo operacija usporava
aplikaciju. U normalnim uslovima programiranja deset akcija bi trebalo da bude
sasvim dovoljno.

Operacije grafike obrade objekata startuju se


pritiskom na desni taster mia iznad objekta kojeg
elimo da editujemo. Pojavljuje se meni u kojem
su izlistane funkcije koje moemo izvriti nad
objektom, ili grupom objekata.
U gornjem delu izlistane su ve obradjene
operacije, kao i operacija Animation Editor, koja
pokree poseban editor za programiranje
animacije objekata, ije e korienje biti
objanjeno kasnije.
Izborom Graphics Library opcije, takodje se
startuje poseban editor, odnosno, poziva se
biblioteka objekata sa pripadajuim funkcijama
rada sa objektima kao fajlovima. I o njoj e biti
vie rei u delu koji obradjuje sve tipove editora skade.
Group instrukcija odnosi se na grupu
objekata. Klikom na objekt vri se izbor
objekta, i na taj nain se izabrani objekt

definie kao argument funkcije koja e biti pozvana. Moemo izabrati i vie od
jednog objekta odjednom, i tada i operacija Group postaje raspoloiva. Izbor
veeg broja objekata vri se pritiskom na levo dugme mia iznad svakog
objekata koji elimo izabrati zajedno sa ostalima, uz pritisnut taster Shift na
tastaturi. Na ovaj nain moemo izabrati proizvoljan broj objekata. Nad ovako
izabranim objektima moemo izvriti sve operacije koje su dostupne za jedan
objekt, s tim to e se grupa rasformirati pritiskom na poziciji pored grupe. Ako
imamo potrebu za uzastopnim operacijama editovanja ove grupe, moemo
izvriti operaciju grupisanja. Sada se cela grupa ponaa kao jedan objekat, tako
da je mogue programirati i neke operacije animacije ovog objekta.
Operacija Ungroup dovodi do inverznog rezultata, odnosno ve grupisani objekt
ona deli na komponentne objekte. U sluaju da je prethodno izvreno grupisanje
objekata koji su grupe drugih objekata, Ungroup operacija podelie grupu na
originalne komponente, to znai da one mogu biti i grupe drugih objekata.
Jednostavnije reeno, operacija Ungroup vraa grupu u stanje koje je prethodilo
prvom prethodnom grupisanju. Nekoliko operacija Ungroup-isanja moe biti
potrebno da bismo se vratili do objekata koji su sistemski objekti skade. Naravno,
ova
operacija
na
raspolaganju je samo u
sluaju da je izabrani
objekt tipa grupe, a
nema smisla kada se
bira
jednostavni
objekat, tipa kruga ili
linije. Neki objekti koji se nalaze u bibliotekama objekata su grupe, i treba biti
oprezan prilikom njihovog degrupisanja.
Mirror Image je operacija koja rezultira prikazom objekta rotiranog oko
horizontalne ili vertikalne ose. U sluaju da za neki objekt ova operacija nije na
raspolaganju, nekad moe biti izvedena
runo. Ovo se radi tako to se operacija
Resize izvri preko granica smanjenja
objekta, odnosno objekat se smanji na
veliinu ispod nule, ime se kreira rotirani
objekat u drugom kvadrantu slike. Ni ovo
nije uvek mogue, ali moe biti od koristi
kod umnoavanja komplikovanih objekata.
Rotate operacija koristi se za rotiranje izabranog objekta za odredjeni broj
stepeni. Broj stepeni rotacije definie se u posebnom dijalogu, koji se dobija po

aktiviranju operacije.

Raise/Lower operacije slue za odredjivanje poloaja objekta u pravcu ose


normalne na povrinu ekrana. Naime, svaki kreirani objekt pozicionira se na vrh
aktivne strane, preko svih objekata koji su na njoj bili, a iji je medjusobni poloaj
u pravcu ove ose odredjen po istom ovom zakonu. Ovo pravilo prioriteta
vidljivosti nekad ne odgovara, pa poto bi stalno vodjenje rauna o redosledu
postavljanja objekata na ekran znatno iskomplikovalo programiranje, postoje ove
operacije naknadnog definisanja poloaja objekata na slici. Obe operacije mogu
biti izvrene u dva moda, odnosno, izabrani objekt moe biti pomeren u jednu ili
drugu stranu za po jednu poziciju, za ta su zaduene opcije Raise Up
One/Lower Down One, a takodje postoje i operacije postavljanja objekta na
vrh/dno strane, to se radi sa Raise To Top/Lower To Bottom.
Medjusobni poloaj objekata na ekranu moe biti podeen i
korienjem brojnih operacija Alignment tipa. Ove operacije pozivaju
se klikom na odgovarajue dugme na Alignment paleti, koja je
stalno prisutna na ekranu (osim ako se drugaije ne definie
setovanjem karakteristika projekta). Svi tasteri palete podrani su
bubble help funkcijom, koja prikazuje naziv operacije koja bi bila
startovana pritiskom na taster ako je strelica mia pozicionirana
iznad njega neko vreme.

Postoje funkcije koje omoguavaju:


Centriranje objekta u horizontalnom i vertikalnom pravcu u odnosu na
stranu,
Medjusobno centriranje objekata u odnosu na njihovu levu, desnu,
gornju ili donju ivicu,
Medjusobno centriranje objekata prema centru u horizontalnom i
vertikalnom pravcu,
Uskladjivanje dimenzija objekta (irina i visina),
Uskladiti poloaj objekta prema grid mrei (objanjeno u nastavku).
Pored ovih operacija, mogu biti izvedene jo dve koje spadaju u ovu grupu, a
koje se pozivaju iz menija View. Prva od njih je opcija Grid, koja na ekranu
iscrtava mreu takica, koja deli ekran na odredjeni broj polja. Ova mrea moe
se koristiti za preciznije pozicioniranje objekata.
Broj piksela koje odredjuje veliinu polja definie
se po pozivu funkcije, i moe biti setovan na 4 do
64, u vrednostima koje su stepeni broja dva.
Opcija Snap to Grid rezultovae operacijom
podeavanja poloaja objekta uz najbliu ivicu u
horizontalnom i vertikalnom pravcu, iji je

rezultat identian rezultatu grid operacije startovane iz Alignment palete.


Pored ove, postoji i funkcija uveavanja izabranog objekta, koja se startuje iz
View menija, izborom opcije Zoom. Objekat se moe uveati 2 ili 4 puta, to se
definie pri pozivu.

Take

Taka je promenljiva koja se interno koristi u SYSMAC-SCS aplikaciji. Sve take


unutar SYSMAC-SCS aplikacije imaju svoje ime, grupu i tip koji ih odredjuje.
Pored taaka koje mogu biti kreirane od strane korisnika u cilju programiranja
animacije, ili povezivanja skada aplikacije sa eksternim uredjajima, postoji i set
sistemskih taaka, koje na poetku svog imena imaju prefiks $. Za manipulaciju
postojeim, i kreiranje novih taaka postoji specijalno okruenje, u kojem su
funkcije za te namene na raspolaganju, i ovo okruenje se zove Point Editor.

Point Editor

Point editor omoguava jednostavno pokretanje akcija kao to su prikazivanje,


kreiranje, modifikovanje ili uklanjanje taaka iz baze podataka koja uva te
informacije. Point editor moe biti startovan iz menija Utilities, kao i klikom na
odgovarajue dugme na toolbar-u. Prozor koji se dobija izgleda kao na sledeoj
slici:

Ovako setovan editor prikazuje kompletan set svih taaka koje su aktuelne,
odnosno koje postoje u aplikaciji koju programiramo. Ovu listu moemo propustiti
kroz nekoliko filtera, radi dobijanja manjeg broja taaka koje nas po nekom
osnovu interesuju.

Filter prema grupi


Take mogu biti filtrirane prema grupi kojoj pripadaju:

Ovde vidimo nekoliko grupa, od kojih su grupe Default i System Points


prisutne uvek, dok je grupa korisnicka_grupa kreirana naknadno. Moemo
videti da postoji mogunost organizacije taaka po grupama radi lake
manipulacije. All Groups opcija prikazuje sve take koje postoje u aplikaciji,
grupa Default daje prikaz taaka kreiranih od strane korisnika, dok System
Points grupa sadri sistemske take, koje su read-only karaktera.

Filter prema tipu take


Kako postoji nekoliko tipova taaka, odnosno one mogu biti definisane kao
take tipa boolean, integer, real i text, postoji mogunost prikaza samo
odredjenog tipa. U osnovnom prozoru prikazane su take svih tipova, a
filtriranje se aktivira pritiskom na
jedan iz grupe dugmia:

Sortiranje po informaciji o taki


Prozor Point editora prikazuje razliite informacije o takama. Kao prvo, dato
je ime take, zatim sledi njen tip, onda ide I/O tip, i na kraju komentar koji
opisuje taku. Sortiranje je mogue po bilo kojoj od ovih informacija, i izvodi
se klikom na heder kolone. Rezultat e biti prikaz liste u kojoj su elementi
izabrane kolone sortirani po abecednom redu. Primer sortiranja po komentaru
dat je na slici:

Moemo podesiti i irinu kolona ove liste, jednostavnim prevlaenjem granice


izmedju njih na levu ili desnu stranu.
Konano, pritiskom na taster sa nacrtanim slovom I, dobija se zbirna
informacija o svim definisanim takama, i ona moe da izgleda kao na slici:

Point editor moe biti aktivan kako u toku kreiranja stranice, tako i u operaciji
povezivanja objekata na ve kreiranoj stranici sa odgovarajuim takama.
Objekat na stranici moe se povezati sa nekom takom i primenom drag-anddrop operacije. Da bismo ovo izveli, otvoriemo istovremeno stranicu iji objekat
editujemo, i point editor.
Izabraemo taku sa
kojom
elimo
da
izvrimo
povezivanje,
kao
i
odgovarajui
objekt.
Jednostavnim
klikom na ime take u
point
editoru
i
prevlaenjem
do
pozicije
objekta
na
strani,
gde
emo
otpustiti taster mia,
povezali smo objekat sa
takom, kao da smo
koristili njegov sopstveni, u sluaju da je u pitanju kontrolni objekt, ili animation
editor, ako je objekat statikog tipa. Sada je taka automatski setovana na mestu
gde je predvidjeno definisanje izraza kojim je animacija objekta programirana.

Kreiranje take

Operacija kreiranja nove take moe se startovati na nekoliko naina. Iz Point


editora to se moe uraditi pritiskom na taster sa oznakom +. Tom prilikom
otvara se dijalog u kome se nalaze parametri nove take:

Pojedina polja ovog dijaloga odgovaraju poljima ve pretstavljenog prozora Point


editora. Ovde se misli na polja u kojima se setuje ime take, grupa u koju je
smetamo, komentar, i tip. Pored ovih parametara, ovde nam se prua prilika da
promenimo jo neke, koji imaju neke pre-definisane default vrednosti.
Tako, moemo setovati atribute take, koji su razliiti u zavisnosti od tipa take.
Za taku koja je tipa boolean, ovi atributi ukljuuju setovanje default stanja,
odnosno da li e stanje take po defaultu biti On ili Off:

Za taku integer tipa setuje se opseg, zadavanjem minimalne i maksimalne


vrednosti, a takodje se postavlja i default vrednos, koju e promenljiva uzeti pre
izvrenja bilo kakve akcije:

Taka tipa real definie se na identian nain kao integer. Konano, atributi
take tipa text setuju se unoenjem teksta koji taka treba da sadri:

Setovanje I/O parametara take

U donjem delu prozora Point editora postoje polja za setovanje I/O parametara
take. Generalno, taka moe biti programirana na dva naina.
Kao prvo, moemo je programirati u svojstvu interne promenljive, koju skada
aplikacija koristi za animacije objekata ili strana. Tada se kae da je taka
memory resident tipa. Ovaj tip take bira se u dijalogu u donjem levom uglu
editora, i kada se taka definie u ovom obliku, setovanje njenih I/O parametara
je zavreno, odnosno oni i ne postoje.
Sa druge strane, kada taka treba da ima ulogu
povezivanja skade sa okolinom, treba joj dodeliti tip koji
odgovara toj komunikaciji. U tom smislu, ona se definie
kao:
- Input, kada se njena vrednost setuje promenom
vrednosti na odgovarajuoj adresi u PLC-u,
- Output, kada slui za postavljanje vrednosti na alociranu
PLC adresu, i na kraju
- Input/Output, kada je predvidjeno da se komunikacija
obavlja
u oba smera.

I/O Update Rate setovanje slui za izbor dogadjaja koji e dovesti do


uskladjivanje sadrdaja memorijske adrese PLC-a i vrednosti odgovarajue
take. U zavisnosti od pravca tog uskladjivanja, razliiti opcije su raspoloive.
Postoje tri naina aktiviranja ove akcije, i to su:
On Change
On Request
On Interval
On Change opcija dovee do preslikavanja vrednosti take izlaznog karaktera
na memorijsku lokaciju koja joj je dodeljena. Ovo preslikavanje bie u svakom
ciklusu u kojem skada detektuje da je dolo do promene vrednosti take. Ovaj
nain aktiviranja prenosa nije na raspolaganju za programiranje taki Input i
Input/Output tipa.
On Request je mod prenosa raspoloiv za sve tipove taaka. Operacija
uskladjivanja sadraja obavlja se izvrenjem specijalnih komandi skript jezika
koje su za to namenjene, a to su instrukcije InputPoint i OutputPoint. Vrednost
take bie odravana interno u aplikaciji, ali e prenos biti iniciran samo
pomenutim komandama.
On Interval nain prenosa aktivira uskladjivanje na svakih n milisekundi,
sekundi, minuta, sati ili dana. Ovaj mod takodje se moe setovati za sve tipove
taaka.

I/O konekcija

Kao to se moe videti u donjem desnom uglu prozora


Point editora, mogue je setovati dva naina na koji taka
moe biti povezana sa okolinom. To su naini:
PLC
DDE
Dalja konfiguracija startuje se pritiskom na taster Setup....
Pritiskom na taster Setup u sluaju da je izabrana opcija PLC, aktivirae prozor
za setovanje parametara konekcije ovog tipa. U njemu postoje polja u kojima je
potrebno uneti naziv PLC-a, koji biramo iz liste ve definisanih PLC-ova, pri
emu se kao Read-only pojavljuje podatak o tipu PLC-a, koji sadri naziv
njegove serije, kao i modela procesora.

U polju ispod toga predvidjeno je setovanje adrese u memoriji PLC-a sa kojom


povezujemo re za koju je cela operacija setovanja i pokrenuta. Pri ovome treba
paziti na to da li je re na raspolaganju, odnosno da li je zauzeta na samom PLCu. U sluaju da se u polju sa nazivom Elements setuje broj koji je vei od jedan,
tada e adresa koju definiemo u Data Location polju biti tretirana kao prva re
iz niza rei koje su dodeljene taki, a sama taka dobie atribut polja.
Prozor za setovanje ovih parametara izgleda ovako:

Parametri Data Type i Modifier koriste se za identifikaciju tipa podatka


sadranog na adresi, i za odredjivanje operacije nad njegovom vrednou,
respektivno. Na primer, kada je izabran bit neke rei, moemo setovati
parametar Modifier tako da se aktivira akcija forsiranog setovanja tog bita,
umesto normalnog upisa.
Atributi konverzije odnose se na podatke analognog tipa, pri emu je ostavljena
mogunost skaliranja njihovih vrednosti, tako da se mogu setovati opsezi
vrednosti na PLC adresi, ime se definie i odnos konverzije.
U sluaju da do trenutka
kada povezujemo taku
sa
PLC-om
nismo
definisali nijedan PLC,
moemo
to
uraditi
pritiskom na taster Add
PLC..., ime se otvara
prozor:

U njemu se setuje tip PLC-a, a zatim se daju blie odrednice, aktiviranjem


Setup...
operacije, pritiskom na odgovarajue dugme. Kod ovog blieg
odredjivanja tipa PLC-a treba
setovati tip centralne procesorske
jedinice,
zatim
kapacitet
programske i ekspanzione, kao i
fajl memorije. Nakon toga moe se
prei na setovanje parametara
mree, koji ukljuuju izbor izmedju
nekoliko tipova podranih mrea,
kao to su SYSMAC WAY
(zasnovan na Host Link protokolu),
Controller Link, ili je u pitanju
modemska komunikacija.
U ovom delu treba setovati i adresu PLC-a u mrei, kao i konfiguraciju drajvera,
koja sadri hardverske parametre komunikacije, kao to su Port Name, Baud
Rate, Data i Stop Bits i na kraju Parity. Do mogunosti setovanja ovih
parametara dolazi se nakon pritiska na Setup... taster.
Ovde je prikazan nain setovanja nekih parametara kod SYSMAC WAY mree,
ali kod podeavanja atributa ostalih tipova mrea, operacija je veoma slina.
Editovanje parametara konekcije skade sa PLC-om mogue je i u toku rada
aplikacije, odnosno u Runtime reimu. Do ove mogunosti dolazi se preko menija
koji se otvara kada se u Runtime aplikaciji klikne na desni taster mia, i izabere
opcija PLC List....

Ako aktiviramo opciju Open PLC, postae dostupne akcije setovanja moda rada
PLC-a, koji moe biti u Stop, Debug, Monitor ili Run modu.
U donjem delu ekrana postoji mogunost zabrane/dozvole uskladjivanja
vrednosti take sa alociranom adresom. Klik na dugme sa nazivom
Communication Settings... otvorie prozor u kojem su izlistani hardverski
parametri komunikacije.

Optimizacija komunikacije sa PLC-om

Komunikacija sa PLC-om moe biti ubrzana kreiranjem niza taaka, koji sadri
nekoliko elemenata istog tipa umesto definisanja velikog broja individualnih
taaka. Vreme osveavanja ovakvog polja od npr. 50 elemenata znatno je krae
od vremena potrebnog za prenos vrednosti 50 pojedinanih taaka, i to je
osnova optimizacije postignute ovim metodom.
Polje koje sadri vei broj elemenata kreira se postavljanjem parametra
Elements prilikom definisanja veze take sa PLC-om na vrednost veu od 1.
Pristup elementima ovog polja omoguen je korienjem posebnih skript
instrukcija GetPointValue() i SetPointValue(), gde se kao parametar funkcije
zadaje indeks koji jednoznano odredjuje element niza na koji se instrukcija
odnosi.

U sluaju da komunikaciju I/O take definiemo kao DDE, klikom na Setup...


taster u Point editoru otvoriemo prozor:

U njemu se setuju parametri DDE konekcije. SYSMAC-SCS podrava dinamiku


razmenu podataka (Dynamic Data Exchange - DDE), koja je metod komunikacije
izmedju Windows programa. DDE koristi poruke za razmenu podataka izmedju
aplikacija, i protokol da bi se taj prenos sinhronizovao. DDE aplikacije mogu se
podeliti u etiri grupe, i to su client, server, client / server i monitor. Klijent
aplikacija postavlja upit server aplikaciji, na koji ova odgovara slanjem podataka
ili servisa. Monitor aplikacija moe da primi poruku, ali ne i da na nju reaguje, i
uglavnom se koristi u postupku otkrivanja greki. SYSMAC-SCS je client/server
aplikacija, to znai da se sa nekom drugom aplikacijom moe nalaziti u DDE
konekciji i u svojstvu klijenta, i u svojstvu servera.
Svi prenosi koje skada moe da ostvari obavljaju se preko taaka, i imaju
asinhronog su tipa. Postoje dva tipa DDE taaka koje mogu biti kreirane u skadi,
i to su DDE Client take, i DDE Server take.
Sa DDE Client takama, celokupan transfer ili konverzacija inicirani su od strane
SYSMAC-SCS aplikacije, bilo slanjem podataka, ili zahtevom za njima koji se
alje eksternoj DDE (Server) aplikaciji. Na primer, SYSMAC-SCS taka moe biti
programirana tako da se njen sadraj stalno prikazuje u eliji Excel tabele.
Kada je programirana taka DDE Server tipa, primer konekcije bio bi sluaj
kada u eliji Excel tabele setujemo neku brojnu vrednost, a ona se automatski
upisuje kao vrednost take u skadi.
Klijent take programiraju se kao to je prikazano na prethodnoj slici. U polju sa
nazivom Server Name setuje se ime aplikacije koja e se koristiti kao server,
npr. Excel. Topic Name polje popunjava se radi daljeg definisanja server
aplikacije, i nosi npr. informaciju o nazivu tabele Excel paketa. Konano,
parametar koji odredjuje jednu eliju ove tabele pretstavlja poslednji podatak koji

je potreban za uspostavljanje DDE konekcije. Tip take koju setujemo kao DDE
klijenta bira se kao Input/Output.
U sluaju da programiramo taku Server tipa, tip take je memory resident, tako
da prozor za setovanje DDE konekcije nee biti na raspolaganju. Za
programiranje pozivamo poseban
prozor
klikom
na
dugme
Advanced, pri emu se pojavljuje
dijalog za setovanje dozvole
pristupa.
Povezivanje
npr.
konkretne elije Excel tabele
izvrie se na strani Klijent
aplikacije, a iz skade se samo daje
dozvola za itanje, ili kompletno
editovanje.

Sistemske take

Sistemske take su one take koje su definisane u samom paketu SYSMACSCS. One ne mogu biti editovane niti obrisane. Sve sistemske take mogu biti
izabrane u System Point dijalogu u Point editoru. Svaka od ovih taaka na
poetku svoga imena ima znak $, koji pokazuje da je u pitanju sistemska taka.
Sistemske take su razliitih tipova, odnosno, postoje take koje su binarnog,
integer, realnog i tekstualnog tipa. Po ulozi koju igraju u aplikaciji, mogu biti dalje
podeljene prema prirodi informacije koju nose, i postoji nekoliko grupa
razvrstanih po tom principu.

Vremenske take

Ime ta~ke
Tip ta~ke Opseg vrednosti
$12Hour
Integer
0-12
$AMPM
Text
$Hour
Integer
0-23
$Milisecond
Integer
0-999
$Minute
Integer
0-59
$Second
Integer
0-59
Time
Text
-

Napomena
Sati u 12-sati formatu
AM/PM indikacija
Sati u 24-sata formatu
Broj milisekundi
Minuti
Sekunde
Vreme (npr. 09:46)

Datumske take

Ime ta~ke
$Date
$DayOfMonth
$DayOfYear
$Month
$MonthName
$ShortMonthName
$ShortWeekDayName
$ShortYear
$WeekDay
$WeekDayName
$WeekOfYear
$Year

Tip ta~ke Opseg vrednosti


Text
Integer
1-31
Integer
1-366
Integer
1-12
Text
Text
Text
Integer
0-99
Integer
0-6
Text
Integer
0-51
Integer
1970-2038

Napomena
Datum (npr. 28/02/98)
Dan u mesecu
Dan u godini
Mesec
Ime meseca
Skraceno ime meseca
Skraceno ime dana u nedelji
Skracena oznaka godine
Dan u nedelji
Ime dana u nedelji
Broj nedelje u godini
Godina

Interne take

Ime ta~ke
$Available Memory
$CopyProtected
$DiskSpace
$GDIResources
$SystemResources
$UserResources

$ScreenSizeY

$AlarmCount

0-2,147,483,647

Visina ekrana

Tip ta~ke Opseg vrednosti


Integer
0-65536
Integer
0-65536

Napomena
X koordinata mi{a
Y koordinata mi{a

Tip ta~ke Opseg vrednosti


Napomena
Integer
0-2,147,483,647 Broj aktivnih alarma
Integer 0-2,147,483,647 Ukupni broj alarma

Error Logger take

Ime ta~ke
$HighErrors

$LowErrors
$MediumErrors

Integer

Alarmne take

Ime ta~ke
$ActiveAlarms

Tip ta~ke Opseg vrednosti


Napomena
Integer
0-2,147,483,647 [ irina ekrana

Take za prikaz pozicije mia

Ime ta~ke
$MouseX
$MouseY

Napomena
Koli~ina slobodne memorije
Indikacija da je instaliran token
Slobodna memorija na disku
Procenat slobodni GDI resursa
Procenat slobodni sistemskih resursa
Procenat slobodni korisni~kih resursa

Display take

Ime ta~ke
$ScreenSizeX

Tip ta~ke Opseg vrednosti


Integer
0-2,137,483,647
Boolean
Integer
0-2,137,483,647
Integer
0-100
Integer
0-100
Integer
0-100

Tip ta~ke Opseg vrednosti


Integer
0-2,147,483,647
Integer 0-2,147,483,647
Integer 0-2,147,483,647

Napomena
Broj gre{aka visokog prioriteta u logu
Broj gre{aka niskog prioriteta u logu
Broj gre{aka srednjeg prioriteta u logu

Take za PLC komunikaciju

Ime ta~ke
$PLCBusy

$PLCFailures

Tip ta~ke Opseg vrednosti


Napomena
Boolean
Indikacija da je komunikacija u toku
Integer 0-2,147,483,647 Ukupan broj PLC gre{aka

Bezbednosne take

Ime ta~ke
$SecurityLevel

$SecurityName
$UserName

Tip ta~ke Opseg vrednosti


Integer
0-4
Text
Text
-

Napomena
Nivo pristupa korisnika
Bezbednosno ime korisnika
Trenutno ulogovani korisnik

Animacija strana i projekta


Pored animacije objekata, editor animacije moe se koristiti za programiranje
animacija koje e biti vezane za odredjenu stranu, ali i za kompletan projekat. Do
prozora za programiranje akcija objekata mogli smo doi dvostukim klikom na
objekt, kao i izborom opcije Animation Editor, iz menija koji se otvarano na desni
klik mia na objektu. Pored toga, kada je neki objekt selektovan na ekranu,
otvaranje editora animacije automatski je vreno za objekat. Iz ovako otvorenog
editora, kao i otvaranjem editora u trenutku dok nijedan objekt nije selektovan,
moemo doi do editora animacije strana ili projekta. Izbor nivoa animacije vri
se u gornjem desnom polju editora animacije, kao to je prikazano na slici:

Editor animacije strane i projekta ne sadri presetovane akcije animacije sa


svojim dijalozima u kojima se programiranje obavlja popunjavanjem polja, ve je
lista u poetku prazna. Nova operacija animacije dodaje se pritiskom na + taster,
pri izabranoj opciji Object/Page/Project. Otvara se skript editor, i u njemu
moemo programirati eljenu akciju.
Animacija strane i projekta obavezno se programira korienjem skript editora,
tako da je ona uvek tipa koji je ekvivalentan animaciji objekta sa Execute Script.
Za pokretanje animacije u toku Runtime izvrenja, pored standardnih dogadjaja
koji su mogli biti programirani kao pokretaki i kod animacije objekata, pritiska na
levi taster mia i digitalni izraz koji je kombinacija jedne ili vie taaka projekta,
sada se mogu koristiti i neki drugi dogadjaji. Aktivirajui dogadjaj definie se u
editoru animacije, i za jednu stranu, ili za jedan projekat moe se definisati
nekoliko skriptova, koji e biti aktivirani na razliite dogadjaje.

Dogadjaji koji aktiviraju animaciju su:


Interval vremena, pri emu e se skript izvravati na svakih n milisekundi,
sekundi, minuta, sati ili dana,
Ispunjenje digitalnog uslova, koji se programira korienjem taaka projekta,
Inicijalizacija, koja dovodi do izvrenja skripta samo jedan put, i to pri
podizanju skade. Koristi se uglavnom za inicijalizaciju promenljivih,
Terminacija, pri emu se skript izvrava u trenutku zatvaranja sesije,
Na pritisak nekog tastera, gde pritisak na programirani taster dovodi do
izvrenja skripta, pri emu se mogu programirati funkcijski tasteri, kao i neki
editorski. Ovim dogadjajem ne moe se usloviti izvrenje animacije strane.

Prilikom definisanja digitalnog izraza, kao i u daljem toku programiranja, pri


pisanju skripta, na raspolaganju nam je Point editor, koji moemo pozvati svaki
put kada neku ve programiranu taku setujemo kao element izraza koji je
programiran kao dogadjaj, ili uestvuje u skript programskoj sekvenci. Do editora
taaka dolazimo pritiskom na dugme Browse..., a u ovom prozoru takodje postoji
mogunost kreiranja nove take, opcijom Add Point.
Izrazi koji se koriste u programiranju uslova izvrenja animacije objekata, takodje
mogu biti koriteni u skript programima za animaciju strana i projekta. Izrazi su

sastavljeni od operatora, koji mogu biti relacioni, aritmetiki ililogiki, i od


operanada, koji su obavezno ili konstante, ili definisane take projekta.
Ve pomenuta tri nivoa skript aplikacija su:
Objekti, kojima se akcija tipa skripta definie sa Execute script operacijom,
Strane, ija animacija se programira iz skript editora, i moe sadrati
instrukcije za animaciju objekata pozicioniranih na strani, kao i programiranje
promene vrednosti nekih taaka definisanih u projektu, i
Projekat, ija animacija definie promenu vrednosti taaka, a ne biti
programirana da dovede do animacije pojedinanih objekata.
Telo skript aplikacije pored taaka i operatora relacionog, aritmetikog ili logikog
tipa, ine i specijalne funkcije. U nastavku e biti prikazani neki osnovni oblici
skript procedura, podeljeni prema tipu akcije koju vre.
Take
U okviru skript programa moe biti izvrena operacija dodele vrednosti
takama. Sintaksa ove akcije je
imetacke = izraz

Izraz mora biti korektno dimenzionisan, odnosno, moramo voditi rauna o tipu
take za koji ga piemo. Tako, za taku integer tipa, on mora imati neku
analognu vrednost, dok se za boolean taku moe postaviti izraz TRUE ili
FALSE.
Pored proste dodele vrednosti, aritmetike operacije mogu biti definisane u
izrazu, kao npr.
result = height + rate/5.0

Operacije relacije takodje mogu biti koritene, kao npr.


IF fuel < 0 THEN
fuel = 0
ENDIF

Drugi sluaj pretstavlja programiranje specijalnih operacija nad takama, i


ovde je dat prime za sluaj pogramiranja forsiranog setovanja take boolean
tipa:
returnstate = ForceSet(pointname)

Veliina returnstate koristi se za indikaciju ispravnosti izvrenja instrukcije, i


ova veliina ima vrednosti 1 ako je operacija izvedena uspeno, odnosno 0 za
sluaj da je izvrenje neispravno.

Kondicioni izrazi

Sledei skript prikazuje jednostavan primer kondicionog izraza:


IF condition THEN
statementblock1
ELSE
statementblock2
ENDIF

Pored ovako jednostavnog segmenta, moemo programirati sloenije


skriptove, u kojima mogu biti koritene operacije ugnjedenja (nesting), ili
Case select operacije.
Komande za animaciju objekata
Objekat na koji se skript odnosi definie se tako to je aktivan prilikom
pisanja, a Animation editor nalazi se na nivou programiranja animacija
objekata, ili se pie segment za animaciju strane sa sledeom sintaksom:
objectname.objectcommand

U prethodnoj liniji definisana je akcija (objectcommand) koju treba da izvri


objekt definisan svojim imenom. Ovako programirana linija moe se nalaziti u
skriptu drugog objekta, ili u skriptu strane na kojoj se objekat nalazi.
Primer za aplikaciju programiranu na ovaj nain je linija:
polygon_10.height = visina_1 + visina_3

Postavljanje parametara izvrenja operacije ovde se radi tako to na mestu


izraza dajemo odgovarajuu kombinaciju. Tipovi animacije objekata dati su u
poglavlju gde je obradjeno njihovo programiranje direktno iz Animation editora
na nivou objekta. Kako se ovde radi samo o drugom nainu programiranja
istih operacija, one nee biti ponovo pojedinano objanjene.
Strane
Postoji set funkcija koje se mogu koristiti za animaciju strana u projektu.
Neke, kao to su display ili close ve su objanjene, dok se neke mogu
programirati samo korienjem editora animacije na nivou strane. Skript
funkcije na ovom nivou, kao to je ve pomenuto, mogu se koristiti kako za
programiranje animacije komponentnih objekata strane, tako i za postavljanje
vrednosti definisanih taaka projekta.
Ovde se takodje nalaze i funkcije za programiranje animacije same strane,
kao
returnstate = PrintActivePage(flag)

Komunikacija

Razne funkcije mogu biti programirane na nivou strane ili projekta, ukljuujui
i funkcije namenjene za DDE komunikaciju ili komunikaciju sa PLC-om, kao
to su
channel = DDEInitiate(server, topic), ili
returnstate = PLCMonitor(plcname)

Alarmi
Komande za programiranje alarma mogu se koristiti u bilo kom obliku skripta.
Primer za operaciju ovog tipa pretstavlja
returnstate = AcknowledgeAllAlarms()

Fajlovi
Funkcije za programiranje operacija nad fajlovima takodje se mogu
programirati u svim tipovima skripta. Primer pretstavlja instrukcija za
zatvaranje fajla:
returnstate = CloseFile ()
Grafovi

Funkcije za programiranje grafova pretstavljene su primerom


returnstate = StartGraph(graphid)

gde je graphid naziv grafika koji mu je dodeljen pri kreiranju, npr. Graph_1.
Recepture
Linija tipa
returnstate = DownLoadRecipe()

moe biti programirana u bilo kojoj vrsti skripta. Isto vai i za ostale operacije
nad recepturama, ijih je prethodna instrukcija pretstavnik.
Ostale instrukcije
Pored gore pretstavljenih, postoji veliki broj instrukcija koje ne spadaju u
prethodno nabrojane grupe, kao to su funkcije za prikaz teksta na ekranu, za
manipulaciju dogadjajima/grekama, ili za rad sa nivoima pristupa Runtime
aplikaciji.
Rad sa svim funkcijama je slian. Opcija vraanja izvetaja o uspenosti
izvedene akcije moe se izostaviti, pri emu u liniji instrukcije ostaje samo
izvrni deo, kao na primer:
LogError(message, priority)
koja e biti izvrena bez vraanja indikacije.

Skritp editor moe se koristiti kako za pisanje programa u skript jeziku, tako i
za operaciju otkrivanja greaka u njima. Napisani program bie proveren
automatski pre zatvaranja, tako da editor neemo moi zatvoriti sa
neispravno napisanim programom. Neispravnosti su uglavnom rezultat
neprevilne sintakse, ili korienja taaka koje nisu definisane u Point editoru,
odnosno pogrenog unoenja njihovih imena. Editor izbacuje izvetaj o
grekama, tako da ima i debug ulogu u programiranju.
Kompletna lista funkcija koje stoje na raspolaganju programeru skript
aplikacije moe se dobiti iz menija skript editora, kako je prikazano na
sledeoj slici:

Alarmi
Alarmi obezbedjuju notifikaciju problema nastalih u toku izvrenja aplikacije u
Runtime reimu. Alarmi se definiu u toku razvoja aplikacije, a monitoriu u toku
njenog rada. Vanost alarma moe biti veoma razliita, i kree se od vanosti
sasvim sporednih pa do onih koji ukazuju na mogunost nastanka havarije velikih
razmera.
Tokom rada aplikacije, nastanak alarmnog stanja, kao i svaka naknadna
promena njegovog stanja, snima se u posebnom log fajlu, koji se naziva Alarm
History log. Operator se upozorava o nastanku alarma preko Alarm
Acknowledge dijaloga, sa ijim aktiviranjem moe biti povezan i zvuk
upozorenja. U isto vreme, odrava se i lista trenutno aktivnih alarma, i to je
Current Alarms lista.
Osnovni parametri operacije alarmiranja setuju se u prozoru koji se zove Alarm
Settings. Pojedinani alarmi definiu se u razvojnom okruenju korienjem
Alarm Editora, popunjavanjem polja njegovog dijaloga. Pored toga, postoji i tip
dijaloga koji se otvara prilikom programiranja animacije nekog alarma na strani,
ali on sadri samo grafike parametre animacije objekta tipa Alarm Object. Ovaj
dijalog zovemo Alarm Wizard.

Alarm Settings
Opta svojstva alarma definiu se u Alarm Settings dijalogu, koji se nalazi u
Project/Runtime Settings meniju, i ovaj prozor izgleda kao na slici:

Ovde setujemo informacije koje e biti prikazane kada dodje do pojave alarma,
kao i kapacitet statusne i istorijske liste. Takodje, ovde moemo setovati zvuni
fajl, sa ekstenzijom .wav kao zvuni signal koji e biti emitovan u trenutku pojave
alarma.

Alarm Editor
Alarm editor pokree se iz menija Utilities, preko toolbar-a, ili korienjem
kombinacije tastera Ctrl+A. Po otvaranju ovog editora, bie prikazana lista
postojeih alarma, sa tasterima na toolbar-u koji omoguavaju dodavanje novog
alarma listi, brisanje alarma iz nje, promena setovanje izabranog alarma, a
postoji i mogunost pristupa optim setovanjima alarma. Osnovni prozor izgleda
kao na slici:

Za programiranje novog alarma koristi se taster +. Pojavljuje se prozor za


setovanje parametara alarma. Svaki alarm ima svoje ime, tip, i izraz koji
odredjuje njegovo aktiviranje.
Postoje tri tipa alarma, i to su:
simple
Alarmi ovog tipa programiraju se definisanjem izraza kao to je
BOILERTEMP > 100
pri emu e u trenutku kada analogna veliina BOILERTEMP predje
vrednost 100, biti aktiviran alarm programiran na ovaj nain.
deadband
Ovaj tip alarma karakterie mrtva zona oko take, pri emu se u njenoj
blizini formira histerezis irine koja se definie u procentima u samom
editoru.
rate of change
Vrednost veliine definisane u funkciji izraza ovde nee biti
proveravana, ve samo brzina njene promene u vremenu. Iz tog
razloga, setuje se ta brzina kao parametar alarma, i to u procentima, i
setuje se pravac promene za koji e biti vrena provera.
Pored definisanja imena alarma, grupe kojoj pripada, i izraza koji ga aktivira, u
donjem delu prozora Alarm Editora setuje se tekst koji e sadrati alarmna
poruka. Postoje dva polja, u kojima se setuje poruka kada je alarm aktivan, kao i
u njegovom mirnom stanju.

Takodje, moemo ovde izvriti i izbor opcije prikaza Alarm Acknowledge


prozora u trenutku pojave alarma, kao i mogunosti emitovanja zvuka.
Prozor za setovanje svih pomenutih parametara izgleda kao na slici:

U sluaju sloenijih izraza za aktiviranje alarma, kao to je sluaj zbirne greke


od nekoliko komponenata, moemo interno programirati bit koji e biti aktivan za
prestup bilo koje od kritinih vrednosti, a zatim ovaj bit koristiti u svojstvu izraza
za programiranje alarma.
U toku rada aplikacije, u sluaju da je opcija Display Alarm Acknowledge Box
ostala aktivna, pojava alarma bie prijavljena izbacivanjem prozora za potvrdu
alarma, kao i na objektu tipa
alarma, ako smo ga postavili na
ekran.
Ovaj
objekt
moe
prikazivati informacije o statusu
alarma.

Alarmi mogu imati etiri statusa, i mogu biti:


1. Aktivni nepotvrdjeni,
2. Aktivni potvrdjeni,
3. Prethodno aktivni, a sad neaktivni i nepotvrdjeni, i konano
4. Prethodno aktivni, a sad neaktivni i potvrdjeni.
Kao najopasnija grupa alarma pojavljuje se trea, jer se informacija o aktivnosti
alarma moe izgubiti, a greka zbog koje se on prvi put i pojavio moda nije
otklonjena. Zato postoji standardna procedura potvrde alarma, koja se opet moe
programirati na razliite naine. Takodje, lista alarma moe ovde odigrati
znaajnu ulogu. Operacija prikaza liste istorije alarma moe biti programirana
pomou skript komande DisplayAlarmHistory, a moe biti uklonjena izvrenjem
instrukcije CloseAlarmHistory.
Lista alarma moe izgledati kao na slici:

Grafika biblioteka
Grafika biblioteka je biblioteka objekata koji se koriste za programiranje skada
aplikacija. Prozor za pristup biblioteci moe biti pozvan iz padajueg menija, prek
Utilities/Graphics Libraru..., kombinacijom Ctrl+L, ili pritiskom na odgovarajui
taster na toolbar-u. Objekti u biblioteci mogu biti ubaeni na ekrane skade, a i
prenos u suprotnom smeru je mogu, odnosno kreirani objekti mogu biti
preneseni u biblioteku za dalje korienje. Bilblioteka je organizovana u nekoliko
grupa objekata, ime je olakano pronalaenje odgovarajueg objekta. Grafika
biblioteka je jedinstvena za kompletan razvojni softver, odnosno ne zavisi od
projekata, tako da postupak ubacivanja objekta iz jednog projekta u biblioteku, i
zatim njegovo pozivanje iz drugog projekta, olakava rad, naroito sa
komplikovanim objektima, koje, jednom kreirane, elimo da koristimo u veem
broju aplikacija.
Prozor grafike biblioteke prikazan je na slici:

Tri dugmeta koja se nalaze u gornjem desnom delu toolbar-a slue za pozivanje
operacija kreiranja nove biblioteke, brisanja postojee, i na kraju, promene imena
postojee biblioteke. Korisnik radi lake manipulacije objektima moe izvriti
reorganizaciju biblioteke, definiui nove grupe
objekata.
Otvaranje postojee biblioteke vri se izborom iz
liste biblioteka, i koja sadri sve biblioteke koje
su isporuene sa softverom, kao i one koje su
kreirane od strane korisnika. Dovoljno je kliknuti
na odgovarajuu grupu u listi, i njeni objekti bie
prikazani na ekranu biblioteke, odakle ih prostom

drag-and-drop operacijom moemo kopirati na stranicu projekta. Kao to je ve


pomenuto, i obrnut prenos je mogu, i on se izvodi tako to se otvori biblioteka u
koju elimo da smestimo objekat kreiran na stranici nekog projekta, i uinimo
vidljivim taj objekat. Opet prostim prevlaenjem objekta punimo biblioteku koja
ima mogunost popune, i time omoguavamo kasnije korienje tog objekta, u
istom projektu, ili u nekom drugom.
Pored ovih drag-and-drop operacija, dodavanje u, i brisanje objekata iz biblioteke
mogu se izvesti korienjem tastera sa oznakama + i -. Klikom na taster sa
strelicom ulevo otvara se prozor za promenu naziva i komentara objekta.
Veina biblioteka sistemski obezbedjenih ima read-only karakter, to znai da se
elementi biblioteke mogu koristiti bez ogranienja, ali da je sadraj biblioteke
fiksan, i ne moe se dopuniti novim objektima. Ove biblioteke ne mogu biti
obrisane. Za potrebe ubacivanja objekata koje smo kreirali u toku projektovanja,
treba da formiramo i nove biblioteke, koje emo popuniti tim objektima.

Biblioteke su fajlovi sa *.mat ekstenzijom, i sve se fiziki nalaze u jednom


direktorijumu skade. Kopiranjem ovih fajlova izmedju raunara ostvaruje se
prenos objekata kreiranih na jednom raunaru na drugi, to moe olakati rad u
mrei u kojoj se vri projektovanje skada aplikacije.

Recepture
Receptura je nain definisanja niza koraka koji e biti ponovljeni kada se za to
ukae potreba. Tipina primena receptura je inicijalizacija vrednosti nekih taaka
na vrednosti koje su definisane za odredjenu operaciju koja je pod kontrolom
skade.
SYSMAC-SCS receptura sastoji se od jednog ili vie sastojaka, pri emu je
svaki od njih povezan sa odredjenom takom. Svaki sastojak vri dodelu
odredjene vrednosti taki sa kojom je povezan, i to radi preko ciljne vrednosti,
target value. Recepture se koriste u Runtime aplikaciji za inicijalizaciju nekog
tehnolokog postupka, tako to se za odredjeni postupak aktivira receptura koja
sadri vrednosti nekih taaka koje su aktuelne za taj postupak. Na ovaj nain
dolazi do utede vremena, jer je izbegnuto postavljanje vrednosti taaka prilikom
svakog startovanja postupka. Pored toga, mogunost nastanka greke pri
inicijalizaciji je redukovana, jer se vrednosti definiu samo jednom, pri kreiranju
recepture, a kasnije se samo pozivaju iz Runtime aplikacije.
Jednostavna inicijalizacija vrednosti taaka moe biti realizovanja korienjem
skript jezika, ali recepture pretstavljaju dodatnu funkcionalnost, kao to je
organizovanje grupe sastojaka u jednu recepturu, kao i njeno modifikovanje
tokom Runtime aplikacije.
Receptura
Receptura je grupa predefinisanih koraka koja se koristi za izvodjenje odredjenog
zadatka. SYSMAC-SCS projekat moe sadrati vei broj receptura, kao i nijednu,
jer one pretstavljaju opcioni deo aplikacije. Recepture se definiu u toku razvoja
aplikacije, a izvravaju se u Runtime reimu.
Sastojak
Svaka receptura sastoji se iz jednog ili vie sastojaka. Svaki sastojak je
promenljiva koja je vezana za postojeu taku.
Target Value
Sastojak mora specificirati ciljnu vrednost take sa kojom je povezan. Ovo je
vrednost na koju e taka biti postavljena u Runtime reimu, kada se pozove
receptura u kojoj ciljna vrednost definisana.
Validation Code
Kod za proveru ispravnosti recepta je programski segment napisan u skript
jeziku, koji se koristi za proveru vrednosti taaka pre prenoenja (aktiviranja)
recepture.
Download

Receptura se aktivira, ili download-uje u Runtime aplikaciji. Ovaj proces ukljuuje


identifikaciju odgovarajue recepture, i izvrenje koda za proveru, ako je isti
definisan. Download je kompletan kada se sastojci setuju svoje take na ciljne
vrednostij.

Kreiranje, editovanje, kopiranje i brisanje receptura ostvaruje se korienjem


Recipe Editor-a. Ovaj editor poziva se iz padajueg menija, preko
Utilities/Recipe Editor..., kombinacijom Ctrl+I, ili klikom na odgovarajui taster
na toolbar-u. Prozor koji se dobija sadri set alata za kreiranje, brisanje i
modifikovanje receptura, kao i listu postojeih receptura, proputenu kroz opcioni
filter koji se zasniva na nivou korienja skade iz kojeg je mogue pristupiti
odredjenim recepturama.

Pored toga, u ovom osnovnom prozoru editora postoje i tasteri za tampanje


izabrane recepture, i za dobijanje informacije o svim kreiranim recepturama.

Kreiranje recepture
Osnovni parametri jedne recepture jesu njeno ime i opis. Ovi parametri setuju se
u prozoru koji se poziva klikom na + taster u Recipe editoru.

Donji deo ovog prozora namenjen je za definisanje sastojaka recepture, njihovo


modifikovanje i brisanje. Prozor sa nazivom Recipe Ingredients sadri
informaciju o definisanim sastojcima. Taster Add Ingredient... dovodi do
aktiviranja prozora za definisanje sastojka. U ovom prozoru setuje se ime
sastojka, vri se njegovo povezivanje sa takom, i postavlja se ciljna vrednost
ove take. Taster
Browse... olakava
rad sa takama,
tako
to
poziva
editor taaka sa
svim
njegovim
mogunostima.
U
ovom
prozoru
takodje se vri izbor
statusa
sastojka
tokom
Runtime-a,
odnosno ovde se on
moe setovati kao
podloan promenama iz Runtime reima, ili statian (read-only).
Gornji desni deo Recipe editora sadri prozor za aktivaciju koda za proveru
recepture. Kada se ova operacija uini aktivnom, pritiskom na taster sa nazivom
Validation Code... moemo aktivirati skript editor, i u njemu kreirati program koji
e sluiti za proveru. Primer potprograma dat je za sluaj provere temperature
vode pre download operacije presipanja sastojaka za pravljenje nes kafe.

Izvrenje RETURN instrukcije dovee do preuranjenog prekida download


operacije, ime e biti zaustavljeno presipanje vrednosti sastojaka tokom
Runtime rada. Kao argumenti skript koda mogu se nai kako vrednosti sastojaka,
tako i vrednosti ostalih taaka, kao to je sluaju u prethodnom primeru.
Modifikovanje/brisanje postojeih sastojaka
Obe ove operacije izvode se pritiskom na odgovarajue tastere na dnu Recipe
Editor ekrana, i odnose se na izabran sastojak.

Kopiranje sastojaka izmedju receptura takodje je podrano standardnim klipbord


operacijama.

Odredjivanje nivoa za pristup recepturi


Prilikom kreiranja recepture, moemo definisati minimalni nivo rada sa Runtime
aplikacijom koji je potreban za pristup recepturama. Tako, pristup nekim
recepturama moe biti dozvoljen samo radnicima koji su definisani kao
supervizori, ili dizajneri aplikacije. Ovo setovanje uskladjeno je sa operacijom
setovanja nivoa koja je objanjena u prethodnim poglavljima.

Korienje receptura u Runtime aplikaciji


Postoje dva naina za prikaz recepture u Runtime reimu. Kao prvo, skript kod
koji sadri liniju
ViewRecipes()

moe biti setovan u operacijama animacije nekog objekta, npr. tastera.


Recepture takodje mogu biti prikazane i izborom Recipes... opcije iz menija koji
se otvara klikom na desni taster mia u Runtime aplikaciji. Jednom od ove dve
operacije otvara se dijalog koji se naziva Recipe Viewer, i koji izgleda isto kao
Recipe editor, s tim to postoje neke razlike u setu tastera na toolbar-u, i koji u
Viewer-u izgleda ovako:

Tasteri sa oznakama - i <- imaju iste funkcije kao u editoru, s tim to u


prozoru koji se otvara po pozivu Modify Recipe funkcije postoji mogunost
promene samo ciljne vrednosti sastojka, a ne i ostalih njegovih parametara.
Sledei taster je nov, i koristi se za startovanje prenosa recepture. Pored ovog
naina startovanja prenosa recepture, postoji i mogunost programiranja
animacije nekog objekta skript programom sa linijom
DownLoadRecipe(<ImeRecepture>)

U sluaju da prenos iniciramo iz Recipe Viewer-a, pre samog prenosa pojavie


se prozor u kojem treba da izaberemo recepturu koja e biti preneta.
U oba sluaja, opciono programirani kod za proveru ispravnosti recepture,
odnosno za proveru uslova koji treba da budu ispunjeni da bi se izvrio prenos,
bie izvren pre prenosa, i u sluaju postojanja greke, prenos nee biti izvren.
Download operacija, zavrena uspeno ili neuspeno, bie upisana u Event/Error
Log, sa podacima o recepturi i vremenu.

You might also like