Scada PLC
Scada PLC
Prirunik uz kurs
Beograd, 1998.
Uvod
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.
Skada
aplikacija
SCS Engine
Skaliranje jedinica
Obrada alarma
Trending
Real-time baza
podataka
DDE
Istorija i log
fajlovi alarma
PLC
DAQ
Komunikacija
samo razvojno i Run okruenje, uz paket se dobija i set demo aplikacija, koje
pokazuju osnovne performanse OMRON-ove skade.
Osnovni pregled
Koncept 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
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:
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
Komunikacija sa PLC-om
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
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:
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
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
Blok tekst
Elipsa
Linija
Poligon
Izlomljena linija
Pravougaonik
Zaobljeni pravougaonik
Tekst
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:
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.
Trend wizard aktivira se dvostrukim klikom na kreirani objekt tipa Trend grafa, i
izgleda kao na slici:
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.
Enable/Disable
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.
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.
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
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.
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.
Take
Point Editor
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.
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
Taka tipa real definie se na identian nain kao integer. Konano, atributi
take tipa text setuju se unoenjem teksta koji taka treba da sadri:
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 konekcija
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.
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.
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
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
Napomena
X koordinata mi{a
Y koordinata mi{a
Ime ta~ke
$HighErrors
$LowErrors
$MediumErrors
Integer
Alarmne take
Ime ta~ke
$ActiveAlarms
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
Napomena
Broj gre{aka visokog prioriteta u logu
Broj gre{aka niskog prioriteta u logu
Broj gre{aka srednjeg prioriteta u logu
Ime ta~ke
$PLCBusy
$PLCFailures
Bezbednosne take
Ime ta~ke
$SecurityLevel
$SecurityName
$UserName
Napomena
Nivo pristupa korisnika
Bezbednosno ime korisnika
Trenutno ulogovani korisnik
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
Kondicioni izrazi
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
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:
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
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
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.