Računarski sistemi za rad u realnom vremenu
Sadržaj : Sadržaj Uvod 1.Ulazno izlazni uređaji 1.1.Digitalni signali 1.2. Brojači i generatori impulsa 1.3. Analogni ulazi i izlazi 1.4. Načini prenosa podataka 1.5. Serijski i paralelni prenos 2.Sistemi za rad u realnom vremenu 2.1. Upravljanje procesima 2.2. Sistem automatskog upravljanja 3 . Istorijat primjene računara u sistemima upravljanja 4. Računarski sistemi za rad u realnom vremenu 5. Sprezanje procesa i računara 6. Klasifikacija programa 6.1. Primjer primjene sistema za rad u realnom vremenu 6.2. Sistem za upravljanje kotlom na tečna goriva 7. Zaključak 8. Literatura
1 2 3 6 8 9 9 11 15 15 18 20 25 29 32 35 38 41 42
DIPLOMSKI RAD ppaallee@hotmail.com
Uvod
1
Računarski sistemi za rad u realnom vremenu U ovom diplomskom radu ćemo opisat upotrebu računara u samom procesu upravljanja i obrade podataka. Nakon toga ćemo opisati rad sistema u realnom vremenu i koje su komponente neophodne za funkcionisanje tog sistema. Na kraju navest ćemo i objasniti primjer jednog računarskog sistema za rad u realnom vremenu koji se koristi u praksi. Sprezanje procesa sa računarom i realizacija ulaznih i izlaznih zadataka zahtjevaju poznavanje karakteristika kako mjerne opreme i aktuatora, sa jedne strane, tako i odgovarajućih kola za spregu sa računarom sa druge strane. U početnim fazama projektovanja i razvoja sistema za rad u realnom vremenu, formiranje odgovarajućeg softvera (a nekad i segmenata hardvera) činilo je sastavni dio projektovanja. Vremenom, proizvođači mjerne i računarske opreme ugradili su niz standardizovanih funkcija u samu opremu, tako da se danas sprezanje može ostvariti direktnim povezivanjem komponenti. Uprkos tome, čini se da je za bolje razumjevanje rada savremenih računarskih sistema koji se koriste za rad u realnom vremenu, potrebno bar elementarno poznavanje osnovnih funkcionalnih karakteristika odgovarajućih komponenti.
1. Ulazno izlazni uređaji
2
Računarski sistemi za rad u realnom vremenu Svaki računar u osnovi se sastoji iz tri tipa komponenti: procesora, memorije i ulaznoizlaznih uređaja (U/I).
Podaci se kroz računar prenose kao digitalni signali preko
magistrala (bus). U odnosu na operaciju prenošenja podataka uočavaju se tri elementa: •
podatak koji se prenosi
•
mjesto, adresa na koje se podatak prenosi
•
način i vrijeme prenošenja podatka
To nadalje znači da se u funkcionalnom smislu razlikuju tri vrste magistrala: • magistrala podataka (data bus) preko koje se prenose podaci; • adresna magistrala (address bus) preko koje se prenosi adresa na koju se smešta podatak; • upravljačka magistrala (control bus) preko koje se prenose svi signali relevantni za proces upravljanja prenosom podataka, sinhronizaciju rada pojedinih komponenti i uopšte rad cijelog sistema. Sabirnica podataka prenosi podatke između različitih LSI komponenti mikroračunara. Standardni mikroračunar ima 8-bitnu (osam linija za paralelni prijenos 8-bitne riječi) dvosmjernu sabirnicu podataka, koja omogućuje dvosmjerni tok podataka (npr. od mikroprocesora prema memoriji i međusklopovima i obratno) istim linijama, ali ne i istovremeno. Kod većina mikroračunara sabirnica podataka može imati tri stanja: primjenjuje se pri izravnom pristupu memoriji. Adresna sabirnica prenosi adresu sklopa ili registra koji može saobraćati sa mikroprocesorom (npr. adresu memorijskog čipa i riječi u njemu, U/I međusklopa i njihova registra). Adresa prisutna na adresnoj sabirnici određuje izvor ili odredište podataka poslanih po sabirnici podataka. Adresnu sabirnicu tvori skup jednosmjernih izlaznih linija iz mikroprocesora. Standardni mikroračunari imaju 16-bitnu sabirnicu, što omogućuje izbor sklopa ili registra u memorijskom prostoru od 64 k rijeèi. Adresna sabirnica ima tri logička stanja. Sljedeća slika 1. prikazuje sklop pridružen svakoj liniji dvosmjerne sabirnice podataka sa tri stanja. Cu iCl su upravljački signali za određivanje smjera i stanja sabirnica. Kada su
3
Računarski sistemi za rad u realnom vremenu upravljački signali Cu i Cl jednaki 0, vrata 1 i vrata 2 su u stanju velike impedancije Z i sabirnica je "odsječena" od mikroprocesora, te je onemogućen prijenos podataka od i prema mikroprocesoru. Sabirnica se može tada upotrebljavati za saobraćanje između drugih komponenti mikroračunara. Sklopovi sa tri stanja (drugih sastavnih jedinica) omogućuju priključenje više komponenti na vanjsku sabirnicu, ali je u isto vrijeme samo jedna aktivna. Upravljačka sabirnica prenosi upravljačke signale izmeču mikroprocesora i ostalih komponenti mikroračunara. Signali koji obićno tvore upravljačku sabirnicu su: čitaj/piši, zahtjev za prekid, reset i sl. Svaki od tri tipa vanjskih sabirnica ograničen je u pogledu opteretivosti (1TTL teret i kapacitivnost 130 pF) iznosi od 5 do 8 standardnih komponenti LSI. Zbog takva ograničenja u mikroračunarima - osim onih sa minimalnom konfiguracijom - nužno je upotrebljavati sabirnička pojačala (bus drivers), na sabirnici podataka, adresnoj sabirnici, a ponekad i na upravljačkoj sabirnici. Time se omogućuje priključak više komponenti LSI (npr. više memorija (RAM, ROM), međusklopova U/I i sl.)
Slika 1 . Primjer dvosmjerne sabirnice Mjerna oprema i izvršni organi priključeni na proces ili postrojenje mogu biti veoma raznovrsni. Uprkos tome, kao zajednička karakteristika javlja se činjenica da se pomoću te 4
Računarski sistemi za rad u realnom vremenu opreme vrši konverzija fizičkih veličina (temperature, protoka, pritiska, itd.) u električne signale ili obratno (pomeraj, obrt itd.). U principu mjerenje bilo koje fizičke veličine obavlja se tako što se uz pomoć odgovarajućeg instrumenta proizvodi električni signal čiji je napon ili struja srazmjerna fizičkoj veličini koja se mjeri. Isto tako, upravljanje, odnonos pogon izvršnih organa vrši se pomoću električnog signala koji prouzrokuje da izvršni organ proizvede neku željenu akciju. Sprezanje mjerne opreme i izvršnih organa sa računarom zahtjeva da se obavi još jedna konverzija i to elektirčnih signala u digitalne veličine, predstavljene u formi niza bitova, ili obratno. Očigledno je da, s obzirom na raznovrsnost opreme ne bi bilo ekonomično ni efikasno ako bi se za svaki pojedinačni mjerni uređaj ili izvršni organ razvijao poseban sistem za spregu sa računarom. U rješavanju ovog problema došlo se do standardizacije procesne opreme u smislu preciziranja tipa i vrste električnog signala koji oni generišu (mjerna oprema) ili primaju (izvršni organi). Za ovako standardizovane signale su razvijeni odgovarajući portovi i kola za spregu sa računarom.
Slika 2 . Primjer mikroprocesorskog sistema
1.1 Digitalni signali Digitalne veličine mogu biti čisto binarne, kada ukazuju na jedno od dva moguća stanja
5
Računarski sistemi za rad u realnom vremenu nekog uređaja: ventil je ili otvoren ili zatvoren, prekidač je uključen ili isključen, rele ili ima ili nema kontakt. Pored toga, u ovu kategoriju spadaju i generalisane digitalne veličine kojima se neka numerička informacija predstavlja u binarnom brojunom sistemu ili u nekom binarnom kodu. Tipični primjeri su digitalni mjerni instrumenti, poput digitalnog voltmetra ili mjerača brzine. Impulsi i povorke impulsa: Neki mjerni instrumenti kao, što su mjerači protoka ili ugaone pozicije, daju izlaz u formi povorke impulsa. Broj primljenih impulsa u jedinici vremena ukazuje na vrjednost veličine koja se mjeri. Isto tako, upravljanje motorom kao izvršnim organom često se ostvaruje uključivanjem, odnosno isključivanjem motora pri čemu je period u kome motor radi određen dužinom trajanja impulsa (širinska impulsna modulacija), ili se pogon ostvaruje generisanjem odgovarajuće povorke impulsa. Analogne veličine: Čitav niz mjernih instrumenata poput termospregova, mjerača protiska itd. kao izlaze daju naponske milivoltne signale koji se najčešće pojačavaju na opseg –10 do +10 volti. Pored toga, standardni industrijski instrumenti, po pravilu imaju strujni signal u opsegu od 4 do 20mA (prenos ovih strujnih signala je otporniji na šum od prenosa malih naponskih signala). Zajednička karakteristika ovih signala u oba slučaja je da su oni kontinualni. To znači da je neophodno da se prije unošenja u računar, izvrši njihova diskretizacija po vremenu (odabiranje) i po nivou (kvantizacija) čime se dolazi do odgovarajuće digitalne vrjednosti. Isto tako može biti potrebno da se numerička vrjednost, izračunata u računaru, pri iznošenju konvertuje u kontinualni signal (strujni ili naponski) koji upravlja radom nekog izvršnog organa.Potrebno je istaći da se termin "analogni" za kontinualne signale koristi zato što je reč o kontinualnim električnim signalima čija je promena analogna promeni odgovarajućih fizičkih veličina. Telemetrijske veličine: Postojanje udaljenih podstanica na nekom sistemu kao što su trafostanice ili pumpne stanice, dovele su do potrebe za prenosom podataka na daljinu telemetrijski prenos. Podaci se mogu prenositi posebnim kablovima, radio vezom ili javnom telefonskom mrežom. U svim slučajevima radi se o serijskom prenosu podataka, koji su najčešće kodirani u standardnom ASCII kodu. Za manji obim podataka prenos je obično asinhron, dok se pi obimnijoj razmjeni većih blokova podataka može koristiti i sinhroni prenos. Pored navedene primjene, telemetrijski kanali se takođe mogu koristiti i 6
Računarski sistemi za rad u realnom vremenu pri povezivanju više računara. Alternativa ovakvom načinu sprezanja je računarska mreža. Mogućnost klasifikacije različite opreme dovela je do toga da se za svaku od kategorija definišu standardni tipovi računarskih procesnih U/I uređaja i njima pridruženih kola za spregu. Digitalni ulaz: Predpostavimo da neki mjerni uređaj generiše skup od n digitalnih signala. Ovi signali se preko n paralelnih linija vode do paralelnog porta koji je direkno vezan sa jednim registrom (digitalni ulazni registar). Budući da je ulazni registar fizički vezan sa procesom, sadržaj registra uvjek odgovara signalima koji se u tom trenutku nalaze na ulaznim linijama. Da bi se podatak iz registra preneo u procesor neophodno je da se on pojavi na magistrali podataka. U principu prenošenje sadržaja registra na magistralu podataka ostvaruje se pomoću dva signala. Jedan od njih (SELECT) obavlja selekciju registra, a drugi upravljački (ENABLE) omogućuje povezivanje sa magistralom. Sa gledišta računara, operacija koja se zahtjeva predstavlja prenošenje podatka u računar, što znači da se ona može realizovati upravljačkim READ signalom. Pri tome, posmatrani registar se mora razlikovati po adresi od drugih mogućih izvora podataka koji se šalju ka mikroporcesoru. Ovo zapravo znači da je za prenos podataka neophodno da procsor generiše adresu datog registra zajedno sa upravljačkim READ signalom. Adresni dekoder će obezbediti signal kojim se selektuje registar. Funkcionalna blok-šema jednog jednostavnog digitalnog ulaza prikazana je na).
Slika 3. Funkcionalna blok-šema digitalnog ulaza[1]
7
Računarski sistemi za rad u realnom vremenu
Digitalni izlaz: U funkcionalnom smislu digitalni izlaz je veoma sličan ulazu, jedino što se prenos podataka vrši u suprotnom smjeru. Naime, sada se posredstvom odgovarajuće adrese i upravljačkog WRITE signala obezbeđuje da se neki podatak iz procesora, preko magistrale podataka, smjesti u izlazni registar. Na izlaznim linijama ovog registra se, u zavisnosti od sadržaja javljaju digitalni signali (najčešće 0 i ±5V). Izvršni organi procesa kojima se upravlja preko digitalnih signala vezani su preko paralelnog porta direktno za registar. Ukoliko se zahteva prilagođavanje nivoa signala, onda se između izvršnih organa i paralelnog porta nalaze odgovarajući konvertori.
1.2. Brojači i generatori impulsa Najjednostavniji oblik sprege sa impulsnim ulazom sastoji se od brojača koji je direktno vezan na liniju koja dolazi sa procesa. Brojač se pušta u rad pod programskom kontrolom preko posebnog upravljačkog signala (ENABLE), pri čemu se pomoću RESET signala briše prethodni sadržaj brojača. Dužina rada brojača određuje se ili zahtjevom da se dostigne neki unapred definisani broj impulsa ili istekom nekog vremenskog intervala. Pri tome, u oba slučaja ispunjenost ovih zahtjeva može da se provjerava u okviru samog brojačkog podsistema ili programski, preko računara. Prvi način je svakako fleksibilniji i efikasniji, ali povećava složenost podsistema. Naime, on podrazumjeva postojanje odgovarajuće upravljačke logike, kao i upravljačkog registra u kome će se programski specifikovati način rada brojača. U tom slučaju postoji i statusni registar koji ukazuje na stanje samog brojača. Prenos podataka iz brojača ili statusnog registra, kao i formiranje sadržaja upravljačkog registra, obavlja se na način koji je veoma sličan prethodno opisanom digitalnom ulazu i izlazu.
1. 3 Analogni ulazi i izlazi Čitav niz mjerenja odvija se na taj način što se pomoću mernih instrumenata i pretvarača dobija naponski ili strujni signal, proporcionalan veličini koja se mjeri. Dalje konvertovanje ove veličine u digitalnu formu zahteva dve operacije: •
odabiranje, diskretizacija signala po vremenu sa nekom utvrđenom periodom odabiranja T.
•
kvantizacija, diskretizacija signala po nivou, odnosno određivanje one diskretne
8
Računarski sistemi za rad u realnom vremenu veličine, u nizu dozvoljenih diskretnih vrednosti, koja je najbliža vrjednosti signala u trenutku odabiranja. Pod nazivom "analogni izlaz" podrazumeva se sistem u kome se obavlja konverzija jedne digitalne veličine u analogni signal. U principu, digitalno-analogna konverzija je znatno jednostavnija od analogno-digitalne, što znači da je i odgovarajući D/A konvertor znatno jeftiniji. Otuda nema potrebe za multiplekserom, već se za svaki analogni izlaz obezbjeđuje po jedan konvertor, koji je povezan sa magistralom podataka. Pri tome se selekcija odgovarajućeg konvertora obavlja postavljanjem njegove adrese na adresnu magistralu. Digitalno-analogni konvertor (DAC) obavlja istovremeno i ulogu kola sa zadrškom. To znači da se konvertovani signal zadržava na njegovom izlazu sve dok se na konvertor ne pošalje druga vrednost. Tipično vreme konverzije je 5 do 20 milisekundi, što znači da se i u procesu dobijanja analognog signala unosi izvesno kašnjenje.
1.4. Načini prenosa podataka Iako je značenje podataka koji se prenose između procesnih U/I uređaja, računarskih U/I uređaja, operatera i računara veoma različito, u pogledu načina njihovog prenosa postoji niz zajedničkih karakteristika. Povezivanje svih U/I uređaja sa mikroračunarskim sistemom zahtjeva postojanje podsistema za spregu (interface) koji može da varira po složenosti od nekoliko registara i logičkih kola do izuzetno kompleksnih logičkih sklopova. U osnovi, razvijene su dve kategorije podsistema za spregu: •
podsistemi opšte namjene (PIO i SART čipovi) i
•
podsistemi posebne namjene za spregu sa standardnim U/I uređajima kao što su tastatura, displej, štampač, disk jedinica itd.
Podistemi posebne namjene vezuju se na mikroračunarski sistem ili preko podsistema opšte namjene ili direktno na magistrale. Zajednička karakteristika svih podsistema za spregu je da oni rade sinhrono u odnosu na računar i da pri tome rade sa mnogo manjom brzinom od računara. Ova razlika u brzini može bitno da uspori rad računara ukoliko bi on direktno upravljao radom U/I uređaja. Sa druge strane, potpuna fleksibilnost cjelog sistema može se ostvariti jedino kada se radom svih U/I uređaja programski upravlja. Ovakav prenos podataka se označava kao programski prenos i njegovo odvijanje podrazumeva korišćenje centralne jedinice.
9
Računarski sistemi za rad u realnom vremenu Alternativa programskom prenosu je direktan pristup memoriji. Jedan od načina da se pri progrmaskom prenosu smanji vreme angažovanja procesne jedinice jeste da se veći broj upravljačkih funkcija pri obavljanju U/I operacija poveri podsistemima za spregu. Pad cjene mikroprocesora omogućio je da se u okviru mikroračunarskog sistema za rad u realnom vremenu kao podsistemi za spregu koriste posebni U/I procesori. Tako se, na primjer, poseban U/I mikroprocesor može koristiti za skeniranje kanala analognog ulaza. Tek kada se obavi A/D konverzija svih ulaznih podataka, ovaj procesor će zatražiti od glavnog računara da obavi prenos podataka. Naravno, ovakvom posebnom U/I procesoru mogu se dodeliti i druge funkcije vezane za proveru ispravnosti prikupljenih podataka i slično. Nezavisno od toga koliko je obim operacija u fazi prenosa podataka poveren podsistemu za spregu, ostaje činjenica da će on u nekom momentu angažovati centralnu jedinicu. Pri tome se, sa aspekta sposobnosti obavljanja prenosa, razlikuju dve grupe U/I uređaja. Postoje uređaji koji su uvek u stanju da prime podatak od računara ili sa njih računar može uvek preuzeti podatak. U tom slučaju govori se o bezuslovnom prenosu podataka. Ovakva vrsta prenosa moguća je na primer, pri paljenju kontrolnih sijalica koje su povezane preko digitalnih izlaza (PIO) ili kod generisanja upravljanja izvršnim organima preko D/A izlaza. Kod operacija unošenja podataka bezuslovni prenos je moguć pri očitavanju stanja nekih prekidača (digitalni ulaz – PIO) i sl. Najveći broj uređaja nije dovoljno brz da bi mogao da prati rad računara. Tako, na primer, linijski štampač treba da primi niz podataka od računara i da ih štampa, ali on to nije u stanju da obavi onom brzinom kojom je računar sposoban da ih šalje. To znači da se u takvim slučajevima ne može koristiti bezuslovni prenos informacija. Umesto njega, koristi se uslovni prenos, kod koga računar ispituje da li je uređaj spreman da primi ili da preda podatak.
1.5. Serijski i paralelni prenos Podaci se kroz medijum (žicu, vod, magistralu itd.) prenose ili serijski ili paralelno. Odlika serijskog prenosa je jednostavnost realizacije – bitovi se prenose preko jedinstvene linije, jedan po jedan. Kod paralelnog prenosa n bitova (n = 8, 16, 32, 64) podatka prenosi se istovremeno (ovakav prenos se tipično ostvaruje kod sistemske magistrale mikroprocesora, IEEE-488 GPIB magistrale itd.) Na narednim slikama prikazani su serijski i paralelni prenos, respektivno. Paralelni prenos
10
Računarski sistemi za rad u realnom vremenu podataka je brži od serijskog, ali je skuplji (zahtjeva veći broj veza). Serijski prenos je daleko pouzdaniji – greška ili prekid u prenosu mogu jednostavno da se detektuju. Daleko značajnija prednost serijskog prenosa je u tomu što su vremenom razvijeni brojni i kvalitetni protokoli (pravila za razmenu podataka). Kod paralelnog prenosa, zbog različitih formata paralelnih podataka, to nije slučaj. Uopšte, paralelni prenos podataka se daleko više koristi kada se prenosi podatak na kraćim rastojanjima: interno, unutar mikroprocesorskog sistema (npr. komunikacija između mikroprocesora i memorije) i eksterno, do nekoliko metara, u okviru računarskog okruženja (npr. komunikacija između računara i štampača preko paralelnog porta). Kada su u pitanju rastojanja veća od reda nekoliko metara, serijski prenos podataka je jedini izbor. Serijski prenos može da se ostvari preko jednog provodnika (žice). U praksi su, međutim, potrebne naj-manje dve linije (provodnika, žice) za serijsku komunikaciju: jedna za podatke i druga, tzv. masa da bi se zatvorilo strujno kolo između dva sistema koji serijski komuniciraju. Veliki broj potrebnih veza (jedna žica po bitu n-bitnog podatka) ograničava primenu paralelnog prenosa na kratka rastojanja. Na primer, u merno-informacionoj tehnici projektovana je paralelna magistrala IEEE-488 GPIB, preko koje komuniciraju sistemi/uređaji udaljeni maksimalno 20 m. Uređaji svih renomiranih proizvođača mernoinformacione opreme (digitalni osciloskopi, digitalni izvori napajanja, logički analizatori, analizatori spektra itd.) poseduju IEEE-488 GPIB magistralu. Komunikacija
u okviru mikroprocesorskog sistema ostvaruje se preko sistemske
magistrale u paralelnoj formi. Da bi se ostvarila sprega sistema koji sa jedne strane obavljaju paralelni, a sa druge strane serijski prenos podataka, neophodno je izvršiti paralelno-serijsku konverziju. Za tu svrhu se najčešće koriste pomerački registri. U aplikacijama se često koriste oba tipa konverzije, i paralelno-serijska i serijsko-paralelna, kako bi se ostvario prenos n-tobitnih paralelnih podataka od predajnika ka prijemniku preko serijske linije.
11
Računarski sistemi za rad u realnom vremenu Slika 4. Ilustracija serijskog prenosa Mikroprocesorski sistemi memorišu i procesiraju podatke u formi bitova koji su uređeni kao reči fiksnog obima. Memoriju računara čini niz lokacija pri čemu svaka ima svoju jedin-stvenu adresu. Računarski sistemi mogu manipulisati sa rečima obima 8-, 16-, 32-, 64- bita, itd. U okviru velikog broja gradivnih blokova računarskog sistema podaci se prenose u paralelnoj formi, što znači da je svakom bitu u okviru reči dodeljen po jedan prenosni put. Primer paralelnog prenosa podataka uobičajeno se sreće kod hardverskih interfejsa za pobudu štampača ili kod interfejs ploča za spregu sa diskom. Kod paralelnih interfejsa, kakva je recimo sprega računara sa štampačem, potrebno je uvesti neki oblik signalizacije koji će na određeni način, sa jedne strane, ukazati kada su podaci na izlazu računarskog sistema raspoloživi/validni, a sa druge strane, kada je (da li je) štampač spreman da prihvati novi podatak. Glavni razlog uvođenja signalizacije predstavlja velika razlika u brzini rada ure-đaja koji se međusobno povezuju. Konkretnije, računar može da generiše nove podatke na svakih 0.5 ns, dok štampač može da štampa podatke brzinom reda 100 znakova u minuti (postoje i štampači koji mogu štampati do 50000 znakova u minuti). Da bi se na jedan regularan način ostvarila korektna razmena podataka između uređaja koriste se posebni signali poznati kao handshake signali.
Slika 5. Ilustracija paralelnog prenosa (n=8) Na slici prikazana je handshake procedura koja se uobičajeno koristi kod paralelnog interfejsa. U trenutku kada se upravljački signal DAV (Data Available) menja sa nisko-na-visoko računar signalizira štampaču da je podatak, prisutan na magistrali, dostupan. Sa druge strane, kada štampač prihvati novi podatak on postavlja signal DAC (Data Accepted) na visoko.
12
Računarski sistemi za rad u realnom vremenu Paralelni način prenosa podataka pogodan je kod onih aplikacija kada su uređaji bliski jedan drugom. Kada signale (podatke) treba prenositi na veća rastojanja paralelni prenos postaje nepraktičan iz sledećih razloga: Kabliranje je složenije, prenos postaje nepouzdaniji zbog različitih kašnjenja signala duž vodova, a greške u prenosu se teže otkrivaju u slučaju kada dođe do nekog kratkog spoja ili prekida linija (žica u kablu).
Slika 6. (a) Paralelni prenos; (b) handshaking (rukovanje) Alternativni pristup kod prenosa podataka je onaj koji se zasniva na serijskom prenosu. Kod ovog načina prenosa postoji samo jedna linija po kojoj se prenose bitovi podataka. I pored toga što je serijski prenos sporiji od paralelnog prenosa, kabliranje je jednostavnije, a greške u prenosu se lakše otkrivaju. Svaki bit serijskog niza podataka trajanja je određenog
vremenskog
perioda
koji
se
naziva
sig-nalni elemenat.
Signali se
predstavljaju pozitivnom vrednošću za logičku jedinicu, a nultom vrednošću za logičku nulu.
13
Računarski sistemi za rad u realnom vremenu
2. SISTEMI ZA RAD U REALNOM VREMENU 2.1 Upravljanje procesima U osnovi svakog tehnološkog procesa nalaze se procesi razmjene: energije, materijala i informacija. U vrjeme industrijske revolucije konstruisani su uređaji koji omogućavaju i olakšavaju prenos i razmjenu energije i materijala. Treći oblik razmene – razmjena informacija došao je u žižu interesovanja skoro ceo vek kasnije i to zahvaljujući razvoju računarstva. Sa gledišta oblasti u kojima se računar danas primjenjuje, činjenica da je on konstruisan kao sistem za brzo rješavanje složenih jednačina predstavlja svojevrsni paradoks. Uočivši da je broj onih koji imaju potrebu za složenim izračunavanjima srazmjerno mali, računarska industrija je, u potrazi za tržištem, ispitivala sve oblike ljudskih aktivnosti pokušavajući da uoči one kod kojih bi korišćenje računara donelo značajne prednosti. Kao rezultat ovih napora, računar se danas sreće u najraznovrsnijim poslovima počev od kućnih aparata do složenih sistema poput kontrole letenja ili proizvodnje i distribucije električne energije. Naime, konstruktivno rešenje računara bilo je takvo da njegova osnovna snaga leži u sposobnosti pamćenja velikog broja podataka i obavljanja velikog broja elementarnih operacija u veoma kratkom vremenu. U skladu sa time računar počinje da se posmatra kao uređaj koji može da prihvati najrazličitije vrste informacija i da ih u veoma kratkom vremenu transformiše u neki drugi, pogodniji ili upotrebljiviji oblik. Otuda se njegova primjena prirodno širi ka području obrade informacija. Informacioni sistemi za praćenje materijalno-finansijskog poslovanja, stanja u skladištima, nadzor nad radom postrojenja i slične poslove ulaze u masovnu primjenu krajem šezdesetih godina prošlog veka. Vremenom, računari prodiru i u sisteme čija osnovna funkcija nije obrada informacija, ali čiji rad zahtjeva obradu određenih informacija, pa se u skladu sa time njihova performansa može znatno unaprediti efikasnom i blagovremenom obradom informacija. Ako se, naime, prihvati tvrdnja da upravljati znači odabirati između različitih
14
Računarski sistemi za rad u realnom vremenu mogućnosti, onda se informacija kao neophodni preduslov za obavljanje valjanog izbora javlja kao bitni elemenat pri upravljanju procesima i to na svim nivoima. Upravi preduzeća informacije su potrebne radi planiranja poslovanja, rukovodiocima pogona za detaljno planiranje proizvodnje i ocenu performansi, operatorima na pojedinim procesima za obavljanje zadatog plana proizvodnje. Konačno, uređajima na procesu neophodne su informacije, u formi signala, koje dolaze sa mernih instrumenata da bi se odredile odgovarajuće upravljačke strategije koje ti uređaji ostvaruju. Imajući u vidu ovu ključnu ulogu koju informacija ima u upravljanju (bilo da se radi o uređaju, procesu, postrojenju, pogonu ili celom preduzeću) računar se kao sistem koji ima sposobnost da prihvata, analizira i prenosi veliku količinu informacija, velikom brzinom, tačnošću i fleksibilnošću, javlja kao prirodni izbor sredstva za upravljanje procesima. U osnovi, dakle, proces vodi ka ostvarenju nekog cilja. Međutim, nezavisno od vrste pojedinog procesa, činjenica je da se on nikad ne nalazi potpuno izolovan od svoje okoline, koja na njega utiče na čitav niz raznovrsnih načina. To zapravo znači da nijedan proces, sam po sebi, ne ispunjava u potpunosti postavljene zahtjeve. Štaviše, u prirodi je ljudi da traže više i bolje, što se, kad je u pitanju industrijski proces, svodi na zahtjev da se poveća produktivnost, smanji utrošak energije, poveća kvalitet itd. Ovako postavljeni zahtjevi mogu se ispuniti ako se na neki način, spoljnim dejstvom, upravlja izvršavanjem procesa.
uprav ljanje
operaotr proces
Slika 7. Upravljanje kao intiutivni izbor mogućih opcija[1]
Upravljanje jednim procesom može se shvatiti kao izbor jednog od mogućih načina funkcionisanja procesa (Sl6). Još od najstarijih vremena, sa prvim procesima čije efekte je čovek želeo da koristi, javila se potreba za upravljanjem. Tako, na primer, u kamenom dobu čovek koji je održavao vatru morao je da odluči koju količinu drveta, koje dimenzije i 15
Računarski sistemi za rad u realnom vremenu stepena vlažnosti će da stavi u vatru da bi dobio odgovarajući plamen za kuvanje, grejanje ili slanje dimnih signala. Sposobnost čoveka – operatora na procesu – da tokom rada uočava efekte pojedinih odluka na proces i da na osnovu tako stečenog iskustva donosi odluku vodila je ka usavršavanju veštine upravljanja. Može se slobodno reći da je upravljanje u to vrijeme bila individualna umjetnost koja je počivala na sposobnosti operatora da prepozna uslove pod kojima proces radi i da intuitivno odabere odgovarajuću upravljačku akciju. Iskustvo kojim je pećinski čovek održavao vatru, nastavili su i razvili, svako na svoj način, i kovač koji je podešavajuči temperaturu ostvarivao najpovoljnije usijanje gvožđa i domaćica koja je ložeći vatru u štednjaku održavala temperaturu koja je odgovarala datoj vrsti jela ili kolača.
merenja
uprav
ljanje
operator proces
Slika 8. Upravljanje kao informisani izbor mogućih opcija[1]
Sa razvojem ljudskog društva proizvodni procesi su postajali sve složeniji, a time je rastao i broj mogućih pristupa njihovom upravnjanju. Istovremeno, rasla je i sposobnost korisnika da što precizniju specifikuju zahtjeve u pogledu kvaliteta finalnog proizvoda. Subjektivno procenjivanje uslova pod kojima se neki proces odvija zamenjeno je preciznim mjerenjima svih relevantnih parametara. Projektovanje i ugradnja mjerne opreme u proces omogućila je operatorima da mnogo lakše donose odluke o izboru upravljačkih akcija (10). Šta više, neke upravljačke procedure postale su standardizovane. Ipak, konačna odluka i izvršavanje neke upravljačke akcije i dalje je zavisila od samog čovjeka. Vremenom je postalo jasno da kvalitet čitavog niza proizvoda zavisi od toga da li su u procesu njihove proizvodnje održavani konstantni temperatura, pritisak, nivo, protok i slično. Pri tome, kada se jedanput odredi vrednost odgovarajućih fizičkih veličina, zadatak opertora bio je sveden samo na stalnu provjeru tih vrjednosti i preduzimanje uvjek sličnih
16
Računarski sistemi za rad u realnom vremenu akcija kojima bi se te veličine održavale na zadatim vrednostima. Ova činjenica dovela je do pronalaska regulatora – uređaja koji poredi vrjednost neke veličine na procesu sa zadatom vrjednosti i na osnovu toga generiše upravljačku akciju kojom se ta vrednost održava na zadanom (referentnom) nivou. Instaliranjem regulatora posao operatora je znatno pojednostavljen, ali izbor pravilne referentne vrednosti i dalje zavisi od njegovog iskustva i subjektivne ocene o promenama koje su neophodne za bolji rad procesa. Sa razvojem i usavršavanjem merne opreme pojavio se postepeno novi problem. Naime, operator je najedanput bio gotovo "zatrpan" obiljem informacija koje nije mogao blagovremeno da obradi. Radi pomoći operatoru kako u organizovanju, tako i u obradi prikupljenih informacija formirane su posebni centralizovani komandni centri koji su opremljeni grafičkim panelima, kontrolnim sijalicama i čitavim nizom drugih uređaja za prikazivanje informacija. Međutim, istraživanja su pokazala da se operator ograničava na posmatranje jednog podskupa ovih informacija i da sve odluke o referentnim vrednostima donosi isključivo u okviru tog podskupa. Šta više, kod izbora podskupa operator unosi određeni stepen sopstvene individualnosti. Česta je pojava da sa novom smenom dolazi do kompletne izmene kako podskupa koji se posmatra, tako i referentnih vrednosti i veličina kojima se efektivno upravlja. Ono što iznenađuje pri tome jeste da se ove promene uopšte ne odražavaju na kvalitet finalnog proizvoda. Svi operatori kao objašnjenje učinjenog izbora navode svoje iskustvo ili prosto intuiciju da to treba baš tako uraditi. Otuda je bilo veoma teško da se postupak za ovu vrstu podešavanja referentnih vrednosti automatizuje.
2.2. Sistem automatskog upravljanja
Slika 9. Grafički prikaz sistema[1]
Gledano potpuno opšte u svakom procesu postoji neki ulaz u proces (informacija, materijal, signal) koji se menja unutar njega i napušta ga u izmenjenoj formi (izlaz procesa). Svrha samog procesa je, prema tome, ostvarivanje odgovarjuće promene. Već je 17
Računarski sistemi za rad u realnom vremenu istaknuto da ni jedan proces ne funkcioniše onako kako bismo mi to želeli, odnosno uvek postoji još nešto što bi se moglo izmeniti tako da se poveća njegova efikasnost, smanje troškovi i vreme izvršavanja itd. Da bi se ostvario željeni rezultat projektuje se upravljački sistem čiji je zadatak da menja ulaze procesa radi poboljšanja njegove performanse. U skladu sa time svaki sistem automatskog upravljanja ima dve celine – proces i upravljanje Sa gledišta upravljanja i krajnjeg proizvoda, proces se može posmatrati kao preslikavanje skupa spoljnih stimulansa (ulazi procesa - nezavisno promenlljive) koji utiču na operaciju koja se u procesu progresivno odvija na skup veličina koje odražavaju uslove pod kojima proces radi i efekte koji se pri tome postižu (izlazi procesa – zavisno promenljive). Uticaj promene nekog ulaza na sam proces mjeri se promenom izlaza. U principu izlazi procesa određeni su mjernom opremom koja je ugrađena u proces. Izbor ove opreme vrši projektant procesa i on zavisi od niza faktora, počev od cene same mjerne opreme, pa do efekata koji se žele meriti. Izvesno je jedino da izbor izlaza mora biti takav da se na osnovu izmerenih vrednosti može dobiti kompletna slika o svim elementima procesa koji su od značaja za ostvarivanje krajnjeg cilja. Ulazi procesa se takođe određuju pri projektovanju. Pri tome se odabira niz veličina čijim izborom se direktno može uticati na ponašanje procesa (upravljivi ulazi). Za ovako odabrane ulaze ugrađuju se odgovarjući izvršni organi pomoću kojih se ostvaruje promjena ulaza. Međutim, pored ovih veličina postoje i spoljni faktori na koje operator ne može da utiče (atmosferski uslovi, vibracije itd.), a koji izazivaju određene promjene u ponašanju procesa. Ovi ulazni signali se nazivaju poremećaji. Izvršni organi, sam proces i merna oprema čine sistem, odnosno celinu za koju se određuje upravljanje (sl.11). Potrebno je napomenuti da se izraz "proces" veoma često koristi i za označavanje celog sistema. Kod složenih procesa međusobne zavisnosti ulaza i izlaza su izuzetno kompleksne. Naime, promena jednog ulaza izaziva promene više izlaza. Otuda se ne može očekivati da će se podešavanjem samo jednog upravljivog ulaza postići željeni efekat. Najčešće operator podesi jedan ulaz i sačeka da vidi efekat te promene na sve izlaze, zatim menja sledeći ulaz i tako redom. Veoma često se posle promene drugog ulaza, mora ponovo podešavati prvi. Cjeli problem se dodatno komplikuje usled nelienarnih zavisnosti između ulaza i 18
Računarski sistemi za rad u realnom vremenu izlaza, koje otežavaju ili čak i ne omogućavaju da se predvidi efekat nekih promjena. Tome treba dodati i činjenicu da čitav niz procesa ima transportno kašnjenje, koje se ogleda u tome da se promena nekog ulaza tek posle izvjesnog vremena odražava na promenu izlaza (tipičan primer su procesi zagrevanja i hlađenja).
3. Istorijat primjene računara u sistemima upravljanja Prve ideje o primjeni računara kao sastavnih djelova sistema za upravljanje procesima javljaju se tokom 50-ih godina. Razvoj teroije upravljanja doveo je do formulisanja niza algoritama koje je bilo potrebno na neki način i realizovati. U želji da se ostvari izvjesna fleksibilnost sistema koji realizuje upravljanje činilo se prirodnim da se taj posao povjeri računarima. Istini za volju u to vrjeme je preovladavalo mišljenje da bi to mogli biti analogni računari, mada ni mogućnost primjene digitalnih računara nije isključena. Industrija digitalnih računara, međutim, prihvata ovu ideju i okreće se ka jedinom tržištu koje je u to vreme pokazivalo interes – vojnoj industriji. Otuda je 1954. godine proizveden prvi računar namenjen upravljanju procesima koji je korišćen za realizaciju autopilota i automatsko upravljanje oružjem. Imajući u vidu mogućnosti računara na tom stepenu razvoja, kao i zahtjeve koje realizacija autopilota postavlja u pogledu brzine obrade podataka, prirodno je da ti napori nisu urodili očekivanim rezultatima. Drugim rečima, računarska industrija otkriva da vojna industrija svakako ne predstavlja tržište na kome se mogu razvijati i plasirati računarski sistemi za upravljanje procesima. Uočavajući uzroke problema primene računara u upravljanju letilicama, računarska industrija shvata da je neophodno da tržište potraži na drugom mjestu. Traži se industrija koja ima dovoljno sredstva za ulaganje u razvoj, u kojoj su procesi daleko sporiji i konačno kod koje se čitav niz korisnih efekata može postići i samom obradom informacija bez nužnog zatvaranja povratne sprege. Polazeći od ovih zahtjeva računarska industrija se prirodno okreće prema elektro i naftnoj industriji. Primat instalacije računara u industriji pripada elektrodistribuciji u državi Luizijana (SAD), koja je u septembru 1958. godine pustila u rad računar za praćenje i nadzor rada električne centrale u mestu Sterling. Prvo računarsko upravljanje nekim postrojenjem vezuje se za kompaniju Texaco, koja je instalirala računar u rafineriji u Port Arturu (SAD), gde je 15. marta 1959. godine ostvareno upravljanje u zatvorenoj sprezi. 19
Računarski sistemi za rad u realnom vremenu
Ideja o formiranju nadzorno-upravljačkih računarskih sistema stara je, dakle, skoro pola veka. Uprkos prvim uspjesima, primjena računara nije zablježila neki spektakularan napredak. Tokom šezdesetih godina iskristalisale su se specifičnosti računarske opreme za nadzor i upravljanje procesom i pristupilo se razvijanju specijalizovanih računarskih sistema za procesnu industriju (General Electric – серија 4000, Ferranti Argus, IBM 1800,CDC 1700, SDS, Foxboro FOX 1, Varian 620i itd). Nastojanja da se rješe problemi vezani za on-line akviziciju podataka i zadavanje komandi izvršnim organima, kao i za brzinu obrade podataka doveli su do povećanja cene računarske opreme. Otuda se primena računara, sa ekonomske tačke gledišta, mogla pravdati samo u slučaju kada se jedan računar koristi za više funkcija na nekom složenom procesu. Posledica zahtjeva za složenim upravljanjem bila je potreba za izuzetno složenim softverom. Pokazalo se da se programi za korišćenje ovakvih računarskih sistema više ne mogu pisati u mašinskom kodu i da oni zahtevaju više memorije od one sa kojom su računari tada raspolagali. Sredinu šezdesetih godina obilježila je pojava industrijskih miniračunara za rad u realnom vremenu (DEC PDP-8 i PDP-11, Varian 68 i 73, Telemechanique T-2000, Mitra 15, Data General Nova …), razvoj specijalizovanog softvera koji je obuhvatao više programske jezike za formiranje nadzorno-upravljačkih aplikacija (PROCOL, PEARL, CORAL), kao i operativne sisteme za rad u realnom vremenu. Cjena mini računara bila je dovoljno niska da se odustane od zahteva da jedan računar obavlja više raznorodnih poslova. Početkom 70-tih godina instalacija čak dva računara na jednom procesu, od kojih jedan služi kao rezerva, dobija ekonomsko opravdanje. Pored ekonomskih aspekata, stručnjaci koji rade u procesnoj industriji pružali su svojevrsan otpor prema uvođenju računara. Naime, s obzirom na vrstu i prirodu posla u procesnoj industriji, nesumnjivo je da primjena nedovoljno ispitanih metoda i tehnologija može da predstavlja značajan rizik i to ne samo sa finansijske tačke gledišta, već i u pogledu bezbednosti ljudi koji rade na procesu i ugrožavanja okoline u ekološkom smislu. Budući da svaka greška može da ima katastrofalne posledice, ljude zaposlene u procesnoj industriji karakteriše izvestan konzervativizam u prihvatanju radikalno novih ideja. Sve dok se takve ideje ne provere i ne pokažu kao visoko pouzdane, postoji otpor njihovom prihvatanju. Otuda se čini prirodnim da sve dotle dok nije stvorena mogućnost da se na izuzetno osetljivim mestima udvoji računarska oprema ili na neki drugi način omogući
20
Računarski sistemi za rad u realnom vremenu nesmetani nastavak rada u slučaju potencijalnog otkaza računara, inžinjeri u procesnoj industriji nisu iskazivali preterano oduševljenje za primenu računara. Primjena računara na većim tehnološkim postrojenjima uvjek je obrazlagana tvrdnjom da će i malo povećanje produktivnosti (recimo 1% do 2%) opravdati troškove njegovog uvođenja. Paradoksalna je činjenica da analize iz tog vremena pokazuju da gotovo ni u jednom sistemu, posle uvođenja računara nije bilo moguće utvrditi da je direktno postignuto neko poboljšanje. Razlog što se sa instaliranjem računarske opreme ipak nastavilo leži u činjenici da je on donosio niz nekih drugih prednosti. Dakle, nezavisno od početnog motiva, uvek se pokazivalo da je uvođenje računara u znatnoj mjeri uticalo na povećano razumevanje samog procesa. Ovo je proisticalo delimično iz neophodnosti da se u procesu projektovanja računarskog sistema proces detaljno prouči, a djelimično iz obilja podataka prikupljenih pomoću računara u toku rada samog procesa. Ovako akumulirano znanje je, nadalje, omogućavalo projektovanje sistema za nadzor procesa, čiji je zadatak održavanje procesa u željenim radnim uslovima. Isto tako, uočeni su i veliki gubici u vremenu prilikom zaustavljanja i ponovonog puštanja pogona u rad, pa su razvijeni posebni postupci kojima bi se smanjili ovakvi zastoji u proizvodnji. Konačno, posle instaliranja računarskog sistema uvek su uočavane nove mogućnosti njegovog korišćenja. S obzirom na gabarit, a donekle i cjenu, miniračunari su korišćeni prvenstveno za akviziciju podataka, supervajzorsko upravljanje - generisanje referentnih signala za servomehanizme koji su bili instalirani na pojedinim delovima procesa kao zasebne cjeline i nadzor nad radom procesa. U slučaju da se nije radilo o preterano brzom procesu kroz mini računar su se zatvarale i povratne sprege. Komunikacioni drajveri, koji su se u to vreme mogli dobiti od proizvodjača opreme najčešće nisu bili dovoljno efikasni tako da je, gotovo uvek, bilo neophodno da se delovi softvera za komunikaciju sa procesom i operatorskim panelom formiraju u svakom pojedinačnom slučaju i to najčešće u asembleru. Primjena miniračunara zahtjevala je od inžinjera upravljanja da detaljno poznaje sam računar, njegov mašinski jezik i operativni sistem, kao i industrijske U/I uredjaje koji se na njega vezuju. U aplikativnom smislu miniračunar je doveo do razvoja različitih optimizacionih tehika za realizaciju supervajzorskog upravljanja, kao i tehnika obrade po21
Računarski sistemi za rad u realnom vremenu dataka sa krajnjim ciljem identifikacije matematičkog modela. Različite upravljačke strategije su bile primjenjivane samo na pilot postrojenjima. Naime, korišćenje računara za upravljanje u zatvorenoj sprezi moglo se ekonomski opravdati samo ako se kroz njega zatvori nekoliko desetina sprega, a to je podrazumjevalo klasične petlje sa PID regulatorima ili integro-diferencijalnim kompenzatorima. Efekat koji bi se dobio zatvaranjem samo jedne adaptivne ili optimalne sprege nije bio dovoljan u poredjenju sa cenom instalirane opreme. Sa gledišta zaposlenih u procesnoj industriji miniračunar je donjeo svojevrsnu revoluciju na nivou dispečera i tehnologa. I jedni i drugi dobili su obilje, mahom štampanih, podataka na osnovu kojih su vršene različite analize u cilju poboljšanja kvaliteta procesa. Na nivou operatera nije se desila značajna promena. Računarski terminali su bili tek u povoju, tako da se kao korisnički interfejs najčešće koristio teleprinter. Shodno tome, operatorski pult i panel su ostali gotovo neizmenjeni i samom operateru je bilo svejedno da li komanda koju zadaje ide direktno na neki rele ili u računar, kao i odakle dolazi signal koji pali kontrolnu sijalicu. Formiranje prvih mikroračunara početkom sedamdesetih godina predstavlja pravu revoluciju u procesnoj primjeni računara. U jesen 1971. godine Intel izbacuje na tržište mikroprocesor 4004. Ubrzo zatim sledi sistem Intel 8008, pa Motorolla 6800, Z-80 itd. Računari zasnovani na ovim procesorima odlikovali su se visoko integrisanom tehnologijom, koja je dovela do izuzetno malih gabarita, veoma niskom cjenom, velikom fleksibilnošću i pouzdanošću. Na žalost ili na sreću odlikovali su se još nečim - potpunim odsustvom korisničkog softvera. Ova činjenica dovela je do toga da procesna primjena računara krene u sasvim drugačijem smeru.Činjenicu da je mikroračunar malih dimenzija i niske cjene inžinjeri upravljanja dočekali su raširenih ruku. Konačno se došlo do uredjaja koji može da radi u realnom vremenu i na kome je isplativo da se zatvori samo jedna povratna sprega u okviru koje se mogu isprobati, pa na kraju i realizovati različiti digitalni upravljački algoritmi. Za trenutak je zaboravljena upravljačko-nadzorna funkcija računara i pažnja je usmjerena na najniži procesni nivo na kome je počela zamena klasičnih analognih regulatora, digitalnim realizovanim pomoću mikroračunara. Ovaj trend bio je sa jedne strane svakako indukovan svojevrsnom dugogodišnjom težnjom inžinjera upravljanja da projektuju sisteme za rad u realnom vremenu, ali je na to izvesno uticala i činjenica da je primjena mikroračunara, koji su imali samo rudimentarni operativni sistem i asembler, 22
Računarski sistemi za rad u realnom vremenu bila izuzetno složena i odvraćala i one najambicioznije od nekih složenijih nadzornoupravljačkih zahvata. U nastojanju da se mikroračunari učine što prisutnijim u procesnoj industriji, proizvodjači su se prirodno okrenuli ka rješavanju onih zadataka koji su, sa jedne strane bili najrasprostanjeniji, a sa druge relativno jednostavni za programiranje. Tako se prirodno došlo do razvoja PLC-ova (programabilnih logičkih kontrolera) namenjenih prvobitno za zamenu logičkih kola i sekvencijalnih elemenata koji su bili realizovani pomoću banke releja, tajmera, brojača i drugih hardverskih digitalnih komponenti. Postepeno repertoar operacija PLC-a se širio i uključivao i složenije operacije koje je zahtjevala realizacija digitalnog upravljanja. U osnovi PLC je projektovan za rad u izuzetno nepovoljnim klimo-tehničkim uslovima koji vladaju na industrijskim postrojenjima. On je veoma pouzdan, jednostavan za održavanje i programiranje. PLC nije zamišljen kao računar opšte namene, već kao sistem čiji operativni sistem omogućava da se jednostavno i u realnom vremenu obavi akvizicija velikog broja podataka, izvesna, ne preterano složena obradu tih podataka i prenošenje rezultata obrade na izvršne organe. Pored toga, PLC je zamišljen kao modularan sistem na koji se, prema potrebi, mogu priključiti raznovrsni ulazno/izlazni moduli. Vremenom, gama U/I modula se širila tako da su formirani specijalizovani mernopretvarački moduli u kojima se merni signali obradjuju na izuzetno složen način, kao i izlazni moduli koji sadrže regulatore pojedinih izvršnih organa. Nesumnjivo je da je sa razvojem PLC-ova definitivno rešen problem zatvaranja povratne sprege pri upravljanju industrijskim procesima. Razvoj PLC-ova, kao računarskih uredjaja koji se sprežu direktno sa pojedinim delovima postrojenja, neminovno je vodio ka razvoju distribuiranih upravljačkih sistema. U prvo vreme na vrhu piramide bili su minračunari, dok su PLC-ovi imali ulogu samo akvizicije podataka i prenošenja komandi. Kasnije su miniračunari zamenjeni industrijskim PC računarima, dok su PLC-ovi obogaćeni složenijim funkcijama. U svakom slučaju, ponovo se otvorilo pitanje koordinacije i nadzora. Dakle, posle gotovo pola veka od prve ideje da se računar primjeni za formiranje nadzorno-upravljačkog sistema, inžinjeri upravljanja našli su se gotovo na samom početku, istina u potpuno izmenjenim tehnološkim uslovima, i otpočeli sa projektovanjem SCADA sistema (Supervisory Control and Data Acquisition).
23
Računarski sistemi za rad u realnom vremenu Na današnjem stepenu razvoja računarske opreme i računarskih mreža, projektovanje računarski upravljanog sistema ostavlja veoma veliku slobodu u izboru rešenja. Poput slikara koji na novom platnu iscrtava svoje vizije ili vajara koji dletom u mermeru oblikuje svoj svet, tako i procesni inžinjer koristi savremenu tehnologiju da preslika svoje ideje i znanja i time stvori bolji, pouzdaniji i efikasniji proizvodni sistem.
4. Računarski sistemi za rad u realnom vremenu Za računarski sistem se kaže da radi u realnom vremenu onda kada je u stanju da reaguje na spoljnje događaje u trenutcima u kojima se oni dešavaju. Drugim rečima izraz "realno vreme" označava "vreme određeno u spoljnjem svjetu". Očigledno je da ovo baš i nije pretjerano srećno odabran termin, jer on sam po sebi nameće ideju da postoji i neko drugačije (nerealno) vreme. Radi se zapravo o činjenici da je ovaj tip primjene računara nastao nešto kasnije i da se javila potreba da se jasno ukaže na bitnu odliku takve primjene. Naime, računar je od samog početka korišćen za rješavanje niza zadataka koji se sreću u različitim ljudskim aktivnostima. Po pravilu bi sistem za čiji rad se tražilo rješenje bio analiziran u cilju formiranja matematičkog modela – sistema jednačina koji opisuju ponašanje sistema. Zatim bi se na samom sistemu izvršila mjerenja kao bi se odredili odgovarajućih parametri modela. Dobijeni podaci su se unosili u računar u kome je obavljana njihova obrada i dobijano traženo rješenje. Pri tome je vrjeme potrebno za dobijanje rješenja zavisilo isključivo od toga kada će podaci biti unjeti u računar i koliko dugo će trajati programska obrada tih podataka. Za to vrjeme, sistem je obavljao svoje aktivnosti u nekoj svojoj vremenskoj skali, iraženoj u delovima sekundi ako se radi o praćenju leta aviona, u sekundama kod mehaničkih sistema ili u minutima kod tehnoloških procesa. Ovakav postupak bio je označavan kao računarsko upravljanje radom sistema. Tek kasnije stvorena je mogućnost da se računar i fizički veže za spoljni sistem i da se cjelokupan postupak merenja, obrade, analize, pa i primene rješenja vrši direktno tokom rada samog sistema, dakle u istoj vremeskoj skali u kojoj radi i sam sistem. Budući da je suštinska razlika između dva opisana postupka baš u vremenu u kome se oni odvijaju, prirodno je da se ovim terminom iskazuje činjenica da se u jednom slučaju računar koristi samo kao sredstvo za obradu , potpuno nezavisno od vremena u kome sam sistem radi, dok se u drugom slučaju rad računara odvija u vremenu – realnom vremenu – u kome radi i sam sistem. Definicija računarskog sistema za rad u realnom vremenu implicitno uključuje
24
Računarski sistemi za rad u realnom vremenu nekoliko karakteristika ovakvog sistema. Pre svega, računarski sistem mora da bude spregnut sa spoljnim procesom preko posebnih procesnih ulazno/izlaznih uređaja. Zatim, obrada podataka u računaru mora da se odvija u istoj vremenskoj skali u kojoj radi i spoljnji proces. Konačno, ukoliko se spoljnji događaji dešavaju simultano, računar mora biti u stanju da na njih i simultano reaguje, odnosno da uspostavi izvesnu hijejrarhiju reakcija tako de se ne ugrozi rad procesa. Pored svih navedenih osobina, računarski sistem koji radi u realnom vremenu može i da prati protok vremena i to tako što se neki od spoljnih događaja koji ga pobuđuju ponavljaju u jednakim vremenskim intervalima. U skladu sa definicijom računarskog sistema koji radi u realnom vremenu izvesno je da redosled izvođenja pojedinih operacija zavisi od protoka vremena ili od nastanka izvesnih događaja izvan računara. Istovremeno, rezultati pojedinih izračunavanja mogu zavisiti od vrednosti promenljive "vrjeme" u trenutku izvođenja operacije ili od vremena potrebnog za izvođenje izračunavanja. Pobude koje računar prima iz okruženja mogu se podeliti u nekoliko kategorija. •
Vremenski događaji Rad računarskog sistema se inicira u određenom trenutku vremena i tada se obavlja
jedan niz zadataka. Nakon toga sistem miruje u očekivanju sledećeg trenutka vremena kada se ponovo izvršavaju isti zadaci. Od ovakvog sistema se zahtjeva da sve zadatke obavi unutar zadanog vremenskog intervala. Rad sistema zasnovan na protoku vremena karakterističan je za upravljanje u zatvorenoj povratnoj sprezi. Naime, u takvom sistemu treba izvršiti merenja određenih veličina, na osnovu rezultata merenja izračunati odgovarajuće upravljačke signale i prenjeti ih na izvršne organe procesa. Pri tome se, u skladu sa teorijom upravljanja diskretnim sistemima, zahteva da se opisane operacije periodično ponavljaju u vremenu. (Sama perioda, nadalje, zavisi od prirode procesa i o tome će kasnije biti više reči). To znači da se računarski program u okviru koga se realizuju opisane operacije mora izvršavati periodično i mora biti u stanju da obavi sve zahtjevane funkcije u okviru jedne periode, da bi po njenom isteku bio spreman da ponovi ceo postupak. Trenutak vremena u kome računar počinje novi ciklus obrade detektuje se najčešće pomoću sistema prekida.
•
Događaji na procesu 25
Računarski sistemi za rad u realnom vremenu Rad računarskog sistema se inicira nastankom nekog stanja na procesu koje preko odgovarajućeg senzora šalje odgovarajući signal računaru (zatvaranje nekog prekidača, dostizanje određene temperature, pritiska ili položaja i slično). Od sistema se očekuje da na neki unapred predviđen način reaguje na detektovani događaj (zatvaranje ventila ako je dostignut željeni nivo tečnosti, isključivanje grejača ako je ostvarena određena temperatura i sl.) i to u okviru nekog zadanog maksimalnog vremenskog intervala. Događaji na procesu se najčešće koriste da označe da je jedna faza na procesu završena, te da može započeti sledeća faza. Pored toga, rad sistema zasnovan na spoljnjem događaju je posebno značajan za detekciju predhavarijskih stanja kada je potrebno preduzeti odgovarajuće mere da bi se sprečio nastanak havarije. U skladu sa time spoljnji događaji se razvrstavaju po važnosti i za svaki nivo važnosti se predviđa odgovarajuće dozvoljeno vreme reakcije. Detekcija događaja na procesu se najčešće ostvaruje uz pomoć sistema prekida koji informiše računar da se od njega očekuje odgovarajuća reakcija. Ukoliko reakcija na određene događaje nije posebno značajna za rad procesa oni se mogu detektovati i periodičnim pretraživanjem senzora koji se koriste kao indikatori nastanka događaja. •
Operatorski događaji - interaktivni rad Spoljni događaj potiče od operatera koji upućuje zahtjev da računar obavi neku
grupu zadataka. Ova vrsta pobude se u principu ne razlikuje od događaja na procesu. Suštinska razlika se međutim ogleda u zahtevanoj reakciji sistema. Naime, kod interaktivnih sistema se zahteva da srednje vrjeme odziva na spoljnji događaj ne bude veće od neke zadane vrednosti. U tom smislu ovi sistemi imaju drugačije projektne zahtjeve i kod njih reakcija na spoljnji događaj zavisi prevashodno od internog stanja sistema, a ne od značaja samog događaja. Tipični primeri interaktivnih sistema su sitemi za rezervaciju karata, bankarsko poslovanje i slično. •
Sistemski i programski događaji Ovoj grupi pripadaju signali pobude kojima se ostvaruje komunikacija između
računara i perifernih uređaja (štampač, disk, terminal, itd.) ili između više računara u mreži. Ova vrsta pobude sreće se i u računarima opšte namjene. Drugim rječima, moglo bi se reći da u odnosu na svoje periferne uređaje svaki računar radi u realnom vremenu. Taj 26
Računarski sistemi za rad u realnom vremenu rad je nadziran od strane operativnog sistema, tako da korisnik o njemu ne mora da vodi računa, a najčešće mu operativni sistem i ne dozvoljava da u tom pogledu vrši bilo kakve intervencije.
U pogledu vremenskih zahtjeva razlikuju se dva osnovna tipa računarskih sistema koji rade u realnom vremenu. •
sistemi kod kojih je srednje vreme izvršavanja operacija, mjereno na nekom definisanom obimu posla, manje od zadanog maksimalnog vremena;
•
sistemi kod kojih se svaka grupa operacija mora završiti u okviru specificiranog maksimalnog vremena. Samo se po sebi razumije da je projektovanje ove dve kategorije sistema suštinski
različito. Prvoj kategoriji sistema pripadaju zapravo sistemi za obradu transakcija kod kojih se radi sa velikim bazama podataka i kod kojih je pažnja usmerena prevashodno na projektovanje baza i tehnike njihovog pretraživanja. Ovi sistemi se označavaju i kao "meki" sistemi za rad u realnom vremenu, jer nema značajnih posledica ukoliko se prekrše data vremenska ograničenja.
Slika 10. Sprezanje procesa i računara[2]
Drugoj kategoriji pripadaju sistemi za upravljanje proizvodnim i tehnološkim procesima. Kod takvih sistema sve zatvorene povratne sprege rade na principu vremenskih događaja (periode odabiranja). Budući da je za rad povratne sprege neobično važno da se svaki ciklus započne u tačno određenom vremenskom trenutku, ovi sistemi moraju poštovati zadano ograničenje u pogledu vremena pa se nazivaju i "tvrdi" sistemi za rad u realnom vremenu. Puštanje ovakvih sistema u rad, zaustavljanje i reakcije na moguće
27
Računarski sistemi za rad u realnom vremenu havarije realizuju se preko detektovanja događaja na procesu. Konačno, komunikacija operatera sa računarom, a time i samim procesom ostvaruje se na principu interaktivnog rada. Samo u ovom poslednjem domenu uslovi u pogledu vremena reakcije su donekle relaksirani i izraženi maksimalnim srednjim vremenom. Kod sistema za upravljanje procesima od računara koji radi u realnom vremenu očekuje se i da kreira signale kojima će se aktivirati pojedini izvršni organi na procesu.
5. Sprezanje procesa i računara Svaki sistem automatskog upravljanja ima dvije cjeline – proces i upravljanje (sl.9). U principu upravljanje procesom se može ostvariti na različite načine, no prirodno je da se najveći broj rješenja svodi na to da upravljački sistem prima informacije o ponašanju procesa i da na osnovu njih i zadatog željenog ponašanja formira komande (upravljanje) kojima se menja ponašanje procesa. Da bi ovaj sistem mogao da radi neophodno je da se obezbedi ciklično obavljanje sledećih aktivnosti: mjerenje, određivanje upravljanja i izvršavanje komandi. To zapravo znači da je potrebno da se omogući da računar prihvati izmerene veličine, obradi ih na određeni način i prenese rezultate obrade na izvršne organe. Pored toga, treba omogućiti i komunikaciju između operatora i računara tokom koje će on postavljati zahtjeve u pogledu načina rada procesa i dobijati informacije o stanju procesa. Informacije o trenutnom stanju procesa dobijaju se merenjem. Sve informacije su u formi električnih signala koji mogu kontinualni ili digitalni. Ovi signali se unose u računar preko posebnih procesnih ulaznih uređaja. Upravljanje zavisi od vrste procesa. po pravilu se definiše osnovni algoritam koji se odvija periodično (iniciran vremenskim događajem). Pored toga, predviđa se i posebna upravljačka akcija koja se aktivira ukoliko se proces nađe u predhavarijskom stanju (akcija inicirana dogđajem). Upravljački signali koje primaju izvršni organi mogu takođe biti dvojake prirode – analogne ili digitalne. Izračunato upravljanje treba, prema tome, da se preko posebnih procesnih izlaznih uređaja transformiše u zahtevani oblik električnog signala i prenese na izvršne organe.
28
Računarski sistemi za rad u realnom vremenu
Kod jednostavnih procesa komunikacija između procesa i operatora svodi se na uključivanje ili isključivanje određenih prekidača i paljenje ili gašenje signalnih sijalica. Ova vrsta informacija se unosi i iznosi iz računara na isti način kao i merni i upravljački signali. Međutim, u mnogim primenama potreba za komunikacijom prevazilazi ove jednostavne uređaje. Inžinjeri na procesu, piloti, kontolori saobraćaja itd. zahtevaće detaljne informacije os vim aspektima rada procasa, aviona ili saobraćajnog sistema. Otuda računar obično omogućava i komunikaciju sa standardnim ulazno-izlaznim uređajima kao što su tastatura, video displej ili štampač. Konačno, kod složenih procesa jedan računar, po pravilu, upravlja jednim deloma procesa i nalazi se u računarskoj mreži sa drugim računarima koji upravljaju preostalim delovima procesa. Samo se po sebi razume da se u cilju koordinacije rada celog sistema mora obezbediti mogućnost komunikacije između ovih računara u mreži. Na osnovu svega izloženog vidi se da kod svakog računarski upravljanog sistema postoji nekoliko funkcionalnih celina – programskih zadataka – koji se izvršavaju u računaru (sl.10). Prije svega, tu su zadaci koji upravljaju radom procesnih ulaznih i izlaznih uređaja samog računara, zatim upravljački zadaci u okviru kojih se određeju upravljački signali i konačno, komunikacioni zadaci koji upravljaju radom standardnih ulazno-izlaznih uređaja i obavljaju prenos informacija preko računarske mreže. Ulazni zadaci aktiviraju ulazne uređaje, primaju preko njih izmerene vrednosti i smeštaju ih u određeno područje memorije koje se naziva "slika ulaza". Sve informacije o procesu upravljački zadatak dobija iz tog ulaznog područja memorije. Na isti način, upravljački zadatak ne prenosi direktno izračunate upravljačke signale na proces, već ih smešta u jedno posebno područje memorije koje se naziva "slika izlaza". Funkcija izlaznog zadatka je da ove vrednosti preko izlaznih uređaja računara prenese do procesa. To zapravo znači da upravljački zadatak nije u direktnoj sprezi sa procesom, već on proces "vidi" kao skup ulaznih i izlaznih vrednosti koje su smeštene u memoriji. O ažuriranju ovih vrednosti staraju se ulazni i izlazni zadatak koji jedini obavljaju direktnu komunikaciju sa procesom.
29
Računarski sistemi za rad u realnom vremenu
Slika 11. Interna organizacija upravljačkog računarskog sistema[2]
Činjenica da algoritam upravljanja (kontroler) nije direktno fizički spregnut sa procesom dovodi do čitavog niza specifičnosti pri implementaciji računarskog upravljanja u odnosu na upravljanje koje se ostvaruje pomoću analognih komponenti. Naime, kod klasičnih sistema upravljanja postoji fizička veza između kontrolera i procesa što znači da se svaki fenomen na procesu na izvestan način direktno odslikava i na ponašanje kontorlera. Kod računarske primene, međutim kontroler operiše nad podacima za koje "veruje" da odgovaraju izlazlma procesa i na osnovu njih izračunava upravljanje za koje "veruje" da se prenosi na izvršne organe. Ukoliko dođe do bilo kakvog poremećaja u 30
Računarski sistemi za rad u realnom vremenu ponašanju izvršnih organa kontroler to neće registrovati. On će jednostavno iz primljenih vrjednosti mjernih veličina u narednom trenutku, "videti" da je greška i dalje velika, pa će "verujući" da su prethodnpo zadana upravljanja adekvatno primjenjena na proces "zaključiti" da mora i dalje da menja upravljanje. Drugim rečima činjenici da ne postoji direktna fizička sprega kontrolera i procesa mora se posvetiti posebna pažnja. Komunikacioni zadaci omogućavaju vezu operatora procesa sa računarom. U tom smislu operator preko tastature može dodavati ili menjati neke informacije koje se nalaze u ulaznom području memorije ili u samom upravljačkom zadatku. Isto tako, informacije o procesu dobijene merenjem ili izračunate u okviru upravljačkog zadatka mogu biti, preko komunikacionog zadatka prikazane na displeju ili šampaču. Konačno svi podaci u memoriji mogu se mjenjati i na osnovu komandi koje dolaze iz računarske mreže, ili se slati drugim računarima u mreži.
6. Klasifikacija programa Dioba aktivnosti računarskog sistema na zadatke koji se ne obavljaju i obavljaju u realnom vremenu, kao i dalja deoba ovih drugih na podkategorije potiče iz potrebe da se istaknu specifičnosti u projektovanju i implementaciji različitih aplikacija. Sa te tačke gledišta, u najširem smislu programi se mogu podeliti u tri kategorije: •
sekvencijalni programi
•
multi-tasking programi
•
programi za rad u realnom vremenu Ova definicija podela zasniva se na postupcima kojima se proverava ispravnost
samog programa. •
sekvencijalni programi U sekvencijalnom programu aktivnosti su striktno poređane u nekom redosledu.
Rezultat izvođenja programa zavisi isključivo od pojedinih aktivnosti i njihovog mesta u programu. Vreme izvođenja pojedinih aktivnosti nema nikakvog uticaja na krajnji rezultat. Otuda se provera ispravnosti ovakvih programa svodi samo na utvrđivanje da li skup pojedinih naredbi definiše određenu aktivnost i da li je struktura programa formirana tako
31
Računarski sistemi za rad u realnom vremenu da se proizvede željeni redosled aktivnosti. Očigledno je da se ispravnost ovakvih programa može u potpunosti proveriti. •
multi-tasking programi Za razliku od sekvencijalnih programa, kod multi-tasking programa pojedine
aktivnosti mogu biti povezane odgovarajućim uzročno-posledičnim vezama. Ovakvi programi se sastoje od niza sekvencijalnih celina (zadataka) koje se izvode paralelno ili jedna drugu uslovljavaju, a koje međusobno komuniciraju preko zajedničkih promenljivih ili signala za sinhronizaciju. Ovakvi programi se proveravaju na isti način kao i sekvencijalni, s tim što je neophodno da se u proceduru provere uključi i sinhronizacija pojedinih zadataka. Činjenica da se pojedini zadaci mogu odvijati paralelno i da oni mogu da koriste zajedničke promenljive dovodi do nemogućnosti potpune provjere ispravnosti rada ovih programa. Da bi se to postiglo neophodno je da se uvedu dodatna pravila koja određuju hijerarhiju izvođenja konkuretnih zadataka kao i proceduru korišćenja zajedničkih promenljivih. Potrebno je ipak da se istakne da kod ovih programa samo vreme izvođenja pojedinog zadatka ne utiče na proveru ispravnosti rada programa. •
programi za rad u realnom vremenu Program za rad u realnom vremenu razlikuje se od multi-tasking programa po tome
što redosled aktivnosti nije određen od strane programera već zavisi od okruženja u kome se dešavaju različiti događaji. Ovi događaji izvesno ne podležu pravilima za internu sinhronizaciju niti se može očekivati da pojedini zadatak čeka na odgovarajući signal za sinhronizaciju. Otuda je kod ovih programa vreme potrebno za izvođenje pojedinog zadataka od suštinskog značaja u procesu provere ispravnosti programa. Programiranje u realnom vremenu bilo je dugi niz godina dodatno otežano činjenicom da su programski jezici višeg nivoa bili po svojoj prirodi namenjeni pravljenju sekvencijalnih programa i da nisu dozvoljavali direktan pristup nizu hardverskih komponenti računara. Delovi programa za rad u realnom vremenu veoma dugo su se posebno projektovali korišćenjem odgovarajućih asemblera. Ovaj problem je konačno prevaziđen razvojem programskog jezika "C". Nezavisno od jezika na kome se programira programi za rad u realnom vremenu nikada ne mogu biti do kraja provereni. Ovo je direktna posledica činjenice da se ne mogu 32
Računarski sistemi za rad u realnom vremenu ostvariti sve moguće kombinacije spoljnih događaja koji određuju redosled aktivnosti. Budući da ovi programi predstavljaju deo složenih tehnoloških sistema čiji neispravan rad može dovesti do katastrofalnih posledica, jasno je da se projektovanju ovakvih sistema mora posvetiti izuzetna pažnja. Imajući u vidu način izvršavanja programa u realnom vremenu, jasno je da je za kreiranje i podršku izvođenja ovih aplikacija bilo neophodno da se razvije i poseban operativni sistem – operativni sistem za rad u realnom vremenu. Ovaj operativni sistem, pored standardnog sistemskog softvera i funkcija vezanih za korišćenje računarskih resursa koje se sreću i kod klasičnih operativnih sistema treba da omogući i detekciju spoljnih događaja i adekvatnu reakciju na svaki od njih u smislu određivanja redosleda izvođenja pojedinih zadataka.
6.1. Primjer primjene sistema za rad u realnom vremenu
33
Računarski sistemi za rad u realnom vremenu Sistemi za rad u realnom vremenu su računarski sistemi koji upravljaju i nadgledaju fizičke procese. RTS su obično sastavni deo nekog većeg sistema ili uređaja i iz tog razloga se nazivaju ugradjeni (ili embedded) mikroprocesorski sistemi. RTS, za razliku od računarskih sistema opšte namene, projektuju se za unapred odredjenu primenu, koja diktira njihovu kako hardversku, tako i softversku strukturu. Ključni deo specifikacije RTS se odnosi na vreme odziva, koje je određeno prirodom fizičkog procesa. Korektnost rada RTS zavisi ne samo od logičke ispravnosti rezultata izračunavanja, već i od vremena za koje se ti rezultati generišu. Drugim rečima, da bi korektno obavio svoj zadatak, RTS mora svoju funkciju da izvrši u unapred zadatom vremenu. Ukoliko se zadato vreme odziva prekorači može doći do otkaza sistema što može imati katastrofalne posledice. Takođe, od RTS se obično zahteva visokopouzdani rad i predvidljivo ponašanje u svim okolnostima. U slučajevima kada se RTS ugrađuje u uređaje široke potrošnje, iz razloga ekonomičnosti, zahteva se minimalno korišćenje hardverskih resursa (8/16 bitni CPU, mala količina memorije). Zbog svega navedenog, projektovanje RTS sistema predstavlja složen zadatak. RTS se sastoji od upravljačkog i upravljanog sistema. Upravljački sistem (ili embedded system) predstavlja elektronski podsistem fizičkog sistema. Upravljani sistem se može posmatrati kao okruženje sa kojim upravljački sistem interaguje. Na primer, u slučaju automatizovane fabrike, upravljani sistem je fabrički pogon koji se sastoji od: robota, manipulatora, pokretnih traka, itd, dok upravljački sistem čini računar zajedano sa interfejsom prema operateru, koji upravlja i koordiniše sve aktivnosi u fabričkom pogonu. Osnovne funkcije RTS sistema su sledeće: 1. Prikuplja informacije o tekućem stanju fizičkog sistema, npr. nadgleda fizičke veličine kao što su: temperatura, pritisak, hemijski sastav. 2. Obrađuje prikupljene informacije na bazi matematičkog modela fizičkog sistema. 3. Generiše izlazne signale koji utiču na ponašenje fizičkog sistema, a u cilju upravljanja ili ostvarivanje neke zadate performansne mere. Upravljački sistem interaguje sa svojim okruženjem na bazi informacija o okruženju prikupljenih posredstvom senzora. Od ključne važnosti za ispravan rad RTS je da stanje okruženja, kako ga upravljački sistem “vidi”, bude usklađeno (konzistentno) sa stvarnim stanjem okurženja. U suprotnom, efekti akcija, koje upravljački sistem peduzima na bazi pogrešne predstave o tekućem stanju okruženja, mogu imati katastrofalne posledice. Iz tog razloga, neophodno je obezbediti periodično prikupljanje i pravovremenu obradu 34
Računarski sistemi za rad u realnom vremenu informacija. Drugi aspekt vremenske korektnosti RTS odnosi se na fizičke posledice koje mogu u okruženju prouzrokovati nepravovremene akcije upravljačkog sistema. Na primer, ako računar koji upravlja robotom ne izda na vreme komandu za zaustavljanje ili promenu smera kretanja, robot se može sudariti sa nekim durgim objekom koji se nalazi u fabričkom pogonu. Kod većine RTS, aktivnosti sa pridruženim vremenska ograničenja, koegzistiraju sa aktivnostima za koja takva ograničenja ne postoje ili nisu kritična. Za oba tipa aktivnosti koristićemo termin zadatak (ili real-time task). Zadatak je softverski modul koji se može pozvati u cilju izvršenja određene funkcije. Zadaci sa vremenskim ograničenjima su vremenski-kritični ili hard-real-time zadaci, dok su ostali zadaci soft zadaci. Idealno, mikroprocesorski sistem bi trebalo da izvršava vremenski-kritične zadatke tako da svaki takav zadatak zadovolji svoja vremenska ograničenja, dok vremenski-nekritične zadatke izvršava tako da se minimizuje njihovo srednje vreme odziva. Upravo neophodnost zadovoljenja
vremenskih
ograničenja
pojedinačnih
vremenski-kritičnih
zadataka
predstavlja glavnu teškoću prilikom projektovanja RTS. Vremenski parametri RTS sistema Tipično, RTS obavlja veći broj zadataka (aktivnosti) od kojih se svaki inicira kao posledica ispunjenja nekog unapred definisanog uslova. Sa stanovišta načina iniciranja razlikuju se sledeća dva tipa zadataka: - reaktivni (event-driven ili asinhroni). Zadatak je iniciran pojavom određenog događaja (eksternog ili internog). Pri tome, tačan vremenski trenutak pojave događaja kao i sled događaja nije unapred poznat, već se eventualno poznaje minimalno vreme između dva događaja, prosečno vreme između dva događaja i sl. Zato se ovi zadaci nazivaju i aperiodični ili asinhroni zadaci. - periodični (time-driven ili sinhroni). Zadatak se ponavljaja u regularnim vremenskim intervalima, a perioda iniciranja zadatka se zadaje unapred, u fazi projektovanja sistema. Zato se ovi zadaci nazivaju sinhrnim zadacima. Tipično, zadaci koji prikupljaju informacije od senzora su po svojoj prirodi periodični. Na slici su prikazani vremenski parametri reaktivnih i periodičnih zadataka. Za svaki zadatak, definiše se krajnji rok (deadline) kao trenutak do koga izvršenje zadatka mora biti
35
Računarski sistemi za rad u realnom vremenu završeno. Vreme izvršenja zadatka mora biti kraće od vremenskog intervala između niciranja zadatka i njegovog krajnjeg roka. Razlika ova dva vremena predstavlja vremensku rezervu.
Slika 12. Reaktivni i periodični zadaci Kod reaktivnih RTS, vremenski trenutak ponovnog iniciranja zadatak nije unapred poznat, osim što se zna da vremenski interval između dva iniciranja ne može biti kraći od nekog minimalnog, unapred poznatog vremena. Kod vremenski vođenih RTS, zadatak se startuje u pravilnim vremenskim intervalima, pri čemu se, najčešće, krajnji rok poklapa sa trenutkom sledećeg iniciranja.
6.2. Sistem za upravljanje kotlom na tečna goriva
36
Računarski sistemi za rad u realnom vremenu Temperatura se kod ovog sistema mjeri temperaturskim senzorom, a rezultujući analogni signal se digitalizuje uz pomoć A/D konverora. Mikorprocesor izračunava signal greške (razliku između zadate i izmerene temperature) i na bazi toga izračunava upravljački signala koji se preko D/A konvertora vodi do ventila, a čija vrednost određuje otvor ventila, tj. protok goriva (funkcija koja odgovara zadatku TASK 1). Pored ovog glavnog zadatka, od sistema se zahteva da obavi i veći broj sekundarnih zadataka. Prvi se odnosi na interakciju sa operaterom, koji posredstvom tastature i displeja treba da ima mogućnost zadavanja temperture i uvida u sve druge informacije o radu sistema (zadatak TASK 3). Drugo, sistem treba da arhivira podatke koje se odnose na rad sistema, kao što su aktivnosti operatera, izmerene vrednosti temperature. Treće, sistem treba da ima mogućnost serijske komunikacije sa nadređenim računarom, u cilju prenosa arhiviranih podataka i upravljanja sa udaljenog mesta) - odgovara zadatku TASK 2.
Slika 13. Sistem za upravljanje kotlom na tečna goriva
37
Računarski sistemi za rad u realnom vremenu Mada je po hardverskoj strukturi sistem tek nešto složeniji od sistema iz prethodnog primera, softver razmatranog mikroprocesorskog sistema je značajno komplikovaniji, kako u pogledu funkcije tako i u pogledu unutrašnje organizacije. Organizacija softvera u vidu sekvencijalnog programa više nije najbolje rešenje. Problem predstavljaju zahtevi za obavljanjem većeg broja različitih zadataka, od kojih se neki iniciraju “asinhrono” (tačan trenutak kada se javlja potreba za izvršenjem zadatka nije poznat) pod uticajem dogadjaja iz okurženja (kao što je npr. zadatak obrade komande zadate preko tastature ili zahtev za serijskom komunikacijom), dok se drugi startuju periodično u fiksnim, unapred poznatim vremenskim intervalima (sinhrono), kao što je npr. zadatak očitavanja temperature u kotlu i izračunavanje vrednosti upravljačkog signala za ventil. Pod ovim uslovima, mogu se javiti situacije kada je potrebno istovremeno (tj. konkurentno ili paralelno) izvršavati dva ili više zadatka, npr. ako se u toku izračunavanja vrednosti upravljačkog signala, javi zahtev sa tastature. S obzrom da se radi o jednoprocesorskom sistemu, u jednom trenutku može biti izvršavan samo jedan zadatak, dok svi ostali zadaci koji su spremni za izvršenje moraju da čekaju da CPU postane slobodan (tzv. kvazi-konkurentnost). Sistemi koji podržavaju kvazikonkurentnost su multitasking sistemi. Problem multitaskinga se uobičajeno rešava pomoću prekida (interrupt-a), tako što se zadaci realizuju kao rutine za obradu prekida iniciranih odgovarajućim događajima (npr. pritisak na dirku tastature, prekid od tajmera, prekid od komunikacionog interfejsa). Odlaganje izvršenja pojedinih zadatka zbog zauzetosti CPU-a može da dovede do otkaza sistema ukoliko je odziv koji se određuje zadatkom vremenski kritičan (npr. upravljački signal za ventil mora biti izračunat unutar vremena koje je specificirano algoritmom automatskog upravljanja - npr. ne sme biti duže od perode odmeravanja ulaznog signala). Međutim, nisu svi zadaci vremenski kritični, u smislu da se kod njih može tolerisati i duže kašnjenje (npr. prikaz na displej). S tim u vezi javlja se problem planiranja izvršenja zadataka, na način koji će obezbediti da svi zadaci zadovolje zahteve u pogledu brzine odziva. Šta više, RTS treba da garantuje da će krajnji rokovi vremenskikritičnih zadataka biti ispoštovani u svim okolnostima. Uobičajno, ovaj problem se rešava uvođenjem prioriteta zadataka. Naime, svakom zadatku, u skladu sa stepenom njegove kritičnosti, dodeljuje se prioritet, a uvek kada postoji više od jednog iniciranog zadatka, za izvršenje se bira zadatak najvišeg prioritetom. Takođe, zadaci ne moraju biti nezavisni, već može postojati potreba da u toku rada sistema različiti zadaci na neki način interaguju, komuniciraju i sinhronišu. Npr. Vrednost upravljačkog signala izračunata od strane 38
Računarski sistemi za rad u realnom vremenu TASK_1, zajedno sa izmerenom temperaturom, se arhivira od strane TASK_2. To nameće potrebu da TASK_1, na neki način dostavi podatke TASK_2 i da ga obavesti o tome. U bliskoj vezi sa interakcijom zadataka je problem deljivih resursa. Za komunikaciju između zadataka uobičajeno se koriste tehnike zasnovane na prenosu poruka ili na deljivim promenljivim. Za sinhronizaciju zadataka koriste se mehanizmi kao što su signali, semafori, kritične sekcije. RTOS pruža brojne servise koji u velikoj meri olakšavaju razvoj RTS aplikacija, tako što obezbeđuju podršku za standardizovan pristup hardveru, konkurentno izvršavanje zadataka, upravljanje resursima. “Srce” RTOS-a čini tzv. Jezgro (kernel) koje obezbeđuje podršku za: planiranje izvršenja zadataka, upravljanje memorijom, zaštitu deljivih resursa, obradu prekida, komunikaciju i sinhronizaciju zadataka. Deo “upravljanje ulazomizlazom” obezbeđuje drajvere standardnih hardversikih uređaja i omogućava hardversku nezavisnost. File sistem pruža podršku za kreiranje i brisanje fajlova i direktorijuma, upis/čitanje fajlova kod sistema koji poseduju hard-disk. Mrežni nivo implementira komunikacione protokole niskog nivoa i drajvere za mrežnu komunikaciju. Debugging nivo obezbeđuje nadgledanje izvršenja zadataka, startovanje/zaustavljanje zadataka što se koristi u toku razvoja i testiranja korisničke aplikacije. Većina RTOS je tako organizovana da se moduli, ili čak celi nivoi, mogu izostaviti, ako nisu neophodni, prilikom instalacije OS na ciljnoj hardverskoj platformi. Ovo je bitna karakteristika, s obzirom da RTS u najvećem broju slučajeva poseduju ograničene hardverske resurse (npr. količina memorija), pa je njihovo ekonomično korišćenje od suštinskog značaja. Ovakva organizacija RTOS se naziva microkernel architectura. Kod microkernel RTOS, kernel je obavezni deo OS; on je optimizovan za konkretan CPU, tipično je razvijen u asembleru kako bi bio male veličine i velike brzine rada.
Slika 14. Struktura RTOS-a
39
Računarski sistemi za rad u realnom vremenu
7. Zaključak Primjena računara za upravljanje procesom sastoji se iz niza programskih zadataka koje treba izvršavati istovremeno. Kod računarskog upravljanja sistemom postoji jedan korisnik koji formira više međusobno povezanih programskih zadataka. Ova povezanost se ogleda u tome da zadaci komuniciraju međusobno i koriste zajedničke podatke. Osnovni zahtev koji se postavlja operativnom sistemu je da izvrši dodeljivanje računarskih resursa programskim zadacima. Za računarski sistem se kaže da radi u realnom vremenu onda kada je u stanju da reaguje na spoljnje događaje u trenutcima u kojima se oni dešavaju. Drugim rječima izraz "realno vrjeme" označava "vrjeme određeno u spoljnjem svjetu". Očigledno je da ovo baš i nije preterano srećno odabran termin, jer on sam po sebi nameće ideju da postoji i neko drugačije (nerealno) vrjeme. Radi se zapravo o činjenici da je ovaj tip primjene računara nastao nešto kasnije i da se javila potreba da se jasno ukaže na bitnu odliku takve primjene. Naime, računar je od samog početka korišćen za rješavanje niza zadataka koji se sreću u različitim ljudskim aktivnostima. Po pravilu bi sistem za čiji rad se tražilo rješenje bio analiziran u cilju formiranja matematičkog modela – sistema jednačina koji opisuju ponašanje sistema. Zatim bi se na samom sistemu izvršila mjerenja kao bi se odredili odgovarajućih parametri modela.U skladu sa definicijom računarskog sistema koji radi u realnom vremenu izvesno je da redosled izvođenja pojedinih operacija zavisi od protoka vremena ili od nastanka izvesnih događaja izvan računara. Istovremeno, rezultati pojedinih izračunavanja mogu zavisiti od vrednosti promenljive "vrijeme" u trenutku izvođenja operacije ili od vremena potrebnog za izvođenje izračunavanja.
40
Računarski sistemi za rad u realnom vremenu
8. Literatura
[1] Srbijanka Turajlić, „Računari u sistemima upravljanja“, Beograd, 1993. [2] Nebojša Matić, „PIC mikrokontroleri 4 izdanje“, mikroElektronika, Beograd, 2003. [3] Nebojša Matić : „Uvod u industrijske PLC kontrolere 2. dopunjeno izdanje“, mikroElektronika, Beograd, 2003. [4] Scott Miller, „Nadogradnja i popravka PC-ja“, CET, Beograd, 2000. [5] prof. dr. Zlatko Bundalo, „Mikroračunari-skripta“, Doboj 2004. [6] http://www.digchip.com [7] http://www.irb.hr/users/stipcevi/ipnmr/dokumentacija.htm [8] http://www.quatech.com [9] http://www.mikroelektronika.co.yu
41