Mikroprocesorsko upravljanje - titan.fsb.hrtitan.fsb.hr/~dzorc/teach/predavanja_mpu.pdf · 10....
Transcript of Mikroprocesorsko upravljanje - titan.fsb.hrtitan.fsb.hr/~dzorc/teach/predavanja_mpu.pdf · 10....
Fakultet strojarstva i brodogradnje Katedra za strojarsku automatiku
Mikroprocesorsko upravljanje
Dr. Sc. Davor Zorc
2015.
2
MIKROPROCESORSKO UPRAVLJANJE
KOLEGIJ SE BAVI PRIMJENOM MIKRORAČUNALA U UPRAVLJANJU STROJEVA I PROCESA, TE PRIPADNIM SKLOPOVIMA I POSTUPCIMA.
SADRŽAJ:
� 1. UVOD
� 2. STRUKTURA MIKRORAČUNALA
� 3. ANALOGNO/DIGITALNI PRETVORNICI
� 4. DIGITALNO/ANALOGNI PRETVORNICI
� 5. SENZORI I PRIHVAT SIGNALA
� 6. AKTUATORI
� 7. IMPLEMENTACIJA UPRAVLJAČKIH ALGORITAMA
� 8. DISTRIBUIRANO I PARALELNO PROCESIRANJE
� 9. INDUSTRIJSKI RAČUNALNI SUSTAVI I MREŽE
� 10. PROGRAMIRANJE
DODACI: DIGITALNI SUSTAVI UPRAVLJANJA LABORATORIJSKE VJEŽBE:
DIGITALNI SUSTAVI UPRAVLJANJA PRAKTIKUM IZ MIKROPROCESORA PRAKTIKUM IZ PLC – PROGRAMABILNO LOGIČKIH KONTROLERA
3
Potrebno predznanje:
� OSNOVE AUTOMATSKE REGULACIJE
� OSNOVE ELEKTRONIKE
� OSNOVE DIGITALNIH RAČUNALA
LITERATURA
AUTOMATSKA REGULACIJA - DIGITALNO UPRAVLJANJE • Phillips: Digital control systems, Analysis & Design, 3th-edition, Mc
Graw Hill Int., 1994. • Fadali: Digital Control Engineering Analysis and Design, Elsevier, 2009 • Šurina: Automatska regulacija, Školska knjiga, 1985.
RAČUNALA • Gibson: Computer systems, concepts and design, Prentice Hall Int,
1991. • Ribarić: Građa računala - arhitektura i organizacija računarskih sustava,
Algebra učilište, 2011
PARALELNO I DISTRIBUIRANO PROCESIRANJE • Hwang, Briggs: Computer architecture and parallel processing, Mc
Graw Hill Int. 1990. • Sharp: An Introduction to distributed and parallel processing, Blackwell,
London, (Alfred Waller Ltd), 1987.
PROGRAMABILNI LOGIČKI KONTROLERI • W. Bolton: Programmable Logic Controllers, 5th-edition, Elsevier-
Newnes, 2009.
STRUKTURNO PROGRAMIRANJE • Goodman: Introduction to the design and analysis of algorithms, Mc
Graw Hill, 1977. • Knuth: The art of Computer programming, Addison-Wesley
Professional; 1st edition, 1998 • H.Schildt : C - the complete reference, Osborne-McGraw-Hill, 1990.
4
1. UVOD
• Procesno računalo opremljeno je sklopovima za fizičko povezivanje s vanjskim uređajima/ strojevima
• Veze (signali) mogu biti analognog ili digitalnog tipa
)(tu
t
MJ.
PO
DR
UČ
JE
)(tu
t
"1"
"0"
ANALOGNI SIGNAL DIGITALNI SIGNAL
• Signali mogu nadalje biti:
� ulazni (prihvat informacije),
� izlazni (generirani signal),
• Sustavi mogu biti:
• Akvizicijski sustav (mjerni sustav, nadzorni sustav),
� samo primaju informacije iz procesa.
• Upravljački sustavi - šalju informacije u proces
• Regulacijski sustavi - Primaju informacije i, na osnovu obrade, generiraju izlazne signale, koji preko aktuatora utječu na proces.
5
REGULACIJSKA PETLJA
SENZORI
OBJEKT
AKTUATOR
REGULATOR
POREMEĆAJI
OSTALE IZLAZNE VELIČINE
VOĐENE VELIČINE
OSTALE UL. VELIČINE
UPRAV. VELIČINE
VODEĆE (REFERENTNE)VELIČINE
• Cilj regulacije je dovesti vođene (upravljane) veličine na iznos vodećih (željenih, referentnih) veličina
Aϑ
ϑ
TRNTC
BATU+
REFU+
BU
AU
+A
POJAČALOSNAGE
iUPOJAČALO
REFERENTNA VELIČINA
� Jednostavni analogni regulator
ϑ NTCR BUiU RTP ϑ
6
DIGITALNA REGULACIJA
• Sklopovi potrebni za regulaciju izvode se u digitalnoj tehnici, najčešće pomoću mikroračunala.
OBJEKT
AKTUATORI SENZORI
PRIHVATSIGNALA
VOĐENE VAR.
ANALOGNISIGNALIDIGIT. S.
TIPKA IA/D
REFERENTNEVELIČINE
ULAZI
RAČUNALO
+UPRAVLJAČKIALGORITAM
IZLAZI
UPRAVLJAČKEVARIJABLE
PRILAGOĐSNAGE
D/A IZADRŽ. SIG.
7
Prednosti i mane digitalnog upravljanja
• Prednosti:
� Upotreba digitalnih pretvornika (preciznost, linearnost, manja osjetljivost na smetnje)
� Digitalni signali – lako se spremaju i prenose bez degradacije, prijenos više signala istim medijem
� Obrada digitalnim računalom
� Fleksibilnost (zamjena software-a)
� Složenost obrade po volji, proizvoljni operatori
� Velika preciznost proračuna
� Lako izvodivi hijerarhijski sustavi upravljanja
� Daljinska kontrola/ nadzor/ upravljanje
• Mane:
� Matematička analiza upravljanja je složenija
� Diskretizacija uzrokuje gubitak informacije po vremenu i amplitudi
� Kašnjenje reakcije zbog trajanja A/D pretvorbe, itd.
� Smanjena stabilnost uz iste parametre
� Greške u software-u – kritično za sigurnost
� Otkazi su najčešće potpuni (u analognim sustavima degradacija je često postupna)
� Problem oporavka nakon smetnji i otkaza
8
UZORKOVANJE I KVANTIZACIJA SIGNALA
A/DT
Bx Dxx
Dxx
T T2 t
bx
T T2 t
0
0
1
1
0
1
0
1
0 0
1 1
1 0
0 0
T T2 T3 t
f
( )fx ( )fxb
f
Spektri signala
1/T
RAČUNALO(OBRADA)
D/A
DXbY Y
0
0
0
1
( )tYb
T T2 T3 T4t
( )tY
T T2 T3 T4t
9
• Uzorkovanje:
� Kontinuirana funkcija x (t) zamjenjuje se svojim vrijednostima na intervalima k * T
� Tako nastaje diskontinuirana funkcija
� Spektar uzorkovanog signala (xb) razlikuje se od spektra ulaznog signala (x)
• Shannonov teorem uzorkovanja:
� Signal koji ne sadrži komponente mf≥ , potpuno je određen nizom svojih vrijednosti na jednoliko raspodijeljenom intervalu ( )mfT 2/1= .
� Tful 2
1max
= - maksimalna frekvencija koja će se moći
rekonstruirati iz uzoraka (= max. harmonička komponenta ulaznog signala – po Fourierovoj transformaciji)
� Antialiasing filteri stavljaju se ispred A/D pretvornika i iza D/A pretvornika da se zadovolji teorem.
• Kvantizacija
� Vrijednost ulaznog signala aproksimira se cjelobrojnim višekratnikom koraka kvantizacije q, čime se čini greška kvantizacije.
iX
uX
q
• Kodiranje
� Svakom iznosu qkX i ⋅= pridjeljuje se kôd (brojka)
10
• Primjer:
� msT 100= - period uzorkovanja
� 2010..10 =+−= VVA - ulazni opseg
� 8=N - dužina digit. riječi (D0...D7)
mVA
q
HzT
f
N
ul
7825620
2
52,0
121
max_
===
===
� TTAD < (vrijeme A/D konverzije mora biti kraće od T)
Ulazni signal mijenja se za vrijeme A/D konverzije ADT
( ) ( )ADtst T
dt
tdxtx ⋅=∆ =/
� Ta promjena treba biti manja od nivoa kvantizacije
NN
Ax
Aq
22≤∆→=
� Za sinusni napon na ulazu --> maksimalna frekvencija:
ADNu TM ⋅
≤ −121ω
A/D
T
ulu7D
0D
11
2. STRUKTURA MIKRORA ČUNALA
Mikroračunalo je digitalni automat sposoban za izvršenje računskih operacija, a na osnovu programa pohranjenog u memoriji. Izvedeno je od jednog ili više integriranih krugova.
Pµ MEMORIJAROM
MEMORIJARAM
Input/Output
Vanjskiuređaji
SABIRNICA
TAKT
• Mikroprocesor (µP, CPU) upravlja radom i izvršava instrukcije (program) koji se nalazi u memoriji
• Input/ Output (I/O) sklopovi povezuju računalo s okolinom
• Sabirnice su vodiči koji sve povezuju u cjelinu
• Program se u pravilu izvršava sekvencijalno, instrukciju po instrukciju.
• Mikrokontroler (MCU) je cijelo mikroračunalo u obliku jednog integriranog kruga. Može sadržavati A/D, D/A pretvornike i druge periferne sklopove.
12
Memorija
• RAM memorija se sastoji od niza paralelnih registara, svaki registar se sastoji od niza bistabila (8, 16, 32,…)
• Može se adresirati određeni registar i čitati ili mijenjati njegov sadržaj.
• N – Adresnih linija može adresirati 2N lokacija (registara)
• Memorija se spaja na sabirnicu podataka, adresa i upravljačku sabirnicu: Read/ Write, CS= chip select.
• Vrijeme pristupa.. 5.. 500 nS
001 01 01 1
1 1 11 0 0 00
7D 0DSADRŽAJ ADRESA
D0
D1
D2
D3
D4
0 0 0
0 0 1
0 01
0 1 1
1 0 0
RAM
ADRESA
0A
1A0D
7D
PODACI
<><>
<>
<>
<><>
<><>
WR/ CSUPRAVLJANJE
� RAM – statičke i dinamičke Read/ Write memorije
� ROM – ne sadrži bistabile –> samo za čitanje
� PROM – programabilni ROM
� EPROM, EEPROM, FLASH – izbrisivi programabilni
13
Sabirnice mikrora čunala
Sabirnicu čini niz fizičkih linija za internu vezu µP, memorije i sklopova za ulaz/izlaz
• Adresna sabirnica: postavlja adresu
• Sabirnica podataka: prenosi podatke
• Upravljačka sabirnica: signali WR/ itd.
Sekvenca (vremenski tijek) događaja na sabirnici strogo je propisana za određeni procesor. Sabirnica može biti izvedena kao niz utičnica za dodatne pločice s memorijom, I/0 sklopovima, itd.
Sklopovi za ulaz/ izlaz (input- output I/0)
Povezuju računalo s perifernim dijelovima (disk, A/D, D/A, komunikacija s drugim sustavima, veza sa strojevima i procesima)
• Paralelni I/0. N-fizičkih linija= komunikacija riječ po riječ
• Serijski I/0. Jedna informacijska linija: komunikacija bit po bit. Pretvara se u paralelnu pomoću UART-a
( )tu
t0DST. 2D 4D 7D
UARTSERIJSKA
VEZA
RT
7D
0D
14
Primjer paralelnog izlaznog sklopa
X
M
REGISTAR
DD Q
7D
0DŽ
+
+
SABIRNICAPODATAKA
D D Q
CL
Enable
DEKODERADRESE
I
0A
15A
SABIRNICAADRESE
WRITEIO/MEM IZLAZI
Primjer paralelnog ulaznog sklopa
VRATA STRI STANJA
7D
0D
SABIRNICAPODATAKA
Enable
I
0A
15A
SABIRNICAADRESE
READ10/MEM
O.E.
+
ULAZ-TIPKA
15
Memorijska mapa
Memorijsko (adresno) polje radne memorije može biti popunjeno različitim vrstama memorije ili I/0 uređajima
ROM
RAM 1
RAM 2
I/0
ADRESA
0000
1FFF
2FFF
3FFF
4A00
Adresni dekoder je sklop koji prima adresne linije i za određeno polje adresa aktivira pripadni memorijski (ili I/0) krug (daje signal CS). I/O krugovi mogu biti spojeni i na posebne adresne linije.
DEKODERADRESE
TAKT
ROM RAMPµ CS CS
R wR / I/OD Q
PCS
UPRAVLJANJE
ADRESE
Podaci
16
Struktura mikroprocesora op će namjene
Procesna snaga mikroprocesora najviše zavisi o vremenu izvršenja instrukcija i dužini riječi
Proizvođač: Dužina: INTEL: MOTOROLA: Frekv. [MHz]:
8 8080, 8085 6800 ≈ 3 … 8 16 8086, 80286 68000 ≈ 12 … 20 32 80386, 80486 68020 ≈ 25 … 66 64 Pentium 4 PowerPC ... 1400 ... 4000
PROCESORµKONTROLNA JEDINICA
KONTROLNA MEMORIJAPROGRAMSKO BROJILO
PC
REGISTAR INSTRUKC.
IR
STATUSNA RIJEČ
PSWDA P Z N C
POKAZIVALO SLOŽAJA
SP
INTERNA MEMORIJA/SLOŽAJ TAKT GENERATOR
A
BALU
PREGISTRI µ ARIT./LOG. JED UPRAVLJ. SABIRNICOM
PODACI ADR. UPRAVLJ.SABIRNICE
• Programsko brojilo (PC) sadrži adresu na kojoj će se tražiti slijedeća instrukcija iz memorije. Pri uključenju postavlja se na nulu.
17
• Registar instrukcije (IR) sprema instrukciju preuzetu iz memorije
• Akumulator (A registar) sadrži zadnji rezultat
• Statusna riječ procesora (PSW)– niz bistabila koji označavaju stanje ALU (aritmetičko-logičke jedinice), te svojstva zadnjeg rezultata (nula, negativan, preliv,..)
• Kontrolna memorija sadrži mikrokod izvođenja instrukcije
• Pokazivalo složaja (SP= Stack Pointer). Složaj (stog) je pomoćna struktura podataka tipa LIFO (last-in first-out). Pokazivalo složaja sadrži adresu zadnjeg unosa u složaj.
MEMORIJA
SP = ADRESA ZADNJEG UNOSA
Registri Pµ - privremeni spremnici rezultata, adresa i sl.
• Koraci izvođenja jedne instrukcije:
� Instruction fetch (dobavi instrukciju)
� Instruction decode (dekodiraj instrukciju)
� Operand fetch (dobavi operand- podatak)
� Execute (izvrši instrukciju)
� Store result (spremi rezultat)
• Instrukcije traju 1, 2 ili više koraka takta
18
Registri procesora 8080 (INTEL)
AKUMULATOR
A
1 8
DA P Z N C PSW
1 8 16
REGISTAR INSTRUKCIJE
IR
PROGRAMSKO BROJILO
PC
POKAZIVAČ SLOŽAJA
SP
1 16
B
D
H
C
E
L
Program u strojnom kodu
Proizvođač Pµ definira skup instrukcija i njihove kodove. Instrukcije, podaci i adrese su binarni brojevi.
• Primjer programa procesora (INTEL) 8085:
•
1
0 0 0 1 1 11
1
0 0
adr. 0..7
adr. 7..150 D D D S S S
0
1
1
1
1 00
2
13
1 0
0
4
1
1 0
adr. 0..7
adr. 7..15
0 0 S S S
C C C 0 0
adr. 0..7
adr. 7..15
65
7
8
910
MEMORIJA MNEMONIČKI ZAPIS
LDA NUM1
MOV B,A
LDA NUM2
ADD B
JZ
AKTIVNOST
( ) ( )( )( )23 bytebyteA ←
( ) ( )AB ←
( ) ( )( )( )23 bytebyteA ←
( ) ( ) ( )BAA +←
( ) ( )( )23 bytebytePC ←
19
• Dogovoreni su kodovi i načini za pohranjivanje:
� Slova, brojeva i znakova (ASCII standard kod)
� Brojeva s pokretnim zarezom, itd.
Skup instrukcija mikroprocesora (primjer)
Mnemonički zapis Assembler program pretvara u strojni program. Svaki procesor ima drugačije instrukcije.
• Instrukcije za prijenos podataka
MOV r1, r2 ( ) ( )21 rr ← MOV=COPY!
MOV r, M ( ) ( )( )( )LHr ←
MVI r, data ( ) ( )2byter ←
• Aritmetičke operacije
ADD r ( ) ( ) ( )ArA +←
SUB r ( ) ( ) ( )rAA −← Za cjelobrojne vrijednosti, brojevi (0..2N)
• Logičke operacije (između bitova operanada)
I (AND), ILI (OR), Ekskluzivno ILI (EX-OR), NOT
ANA r ( ) ( ) ( )rAA +←
• Manipulacije podatka u registru
� Rotiranje znamenki u lijevo (RLC), desno (RRC), povećanje za 1 (INR), smanjenje za 1 (DCR), negacija bitova u Akumulatoru (CMA), itd.
20
RLC 00010010 00100100
• Instrukcije za manipulaciju znamenkama (bitovima) mogu postavljati ili čitati određenu znamenku u binarnom broju.
• Instrukcije za grananje u programu
JMP adr bezuvjetni skok JZ adr skok ako je sadržaj nula (uvjetni)
• Instrukcije za ulaz/izlaz
� OUT port – piše podatke u vanjski I/0 uređaj
� IN port – čita podatak sa vanjskog uređaja
• Instrukcije za rad sa složajem (stack)
� PUSH – dodaje broj u složaj
� POP – vadi zadnji uneseni broj iz složaja
• Instrukcije za kontrolu rada procesora
� HLT – zaustavi izvođenje
� EI/ DI – omogući/ onemogući prekide (interrupt)
� NOP – instrukcija koja ne radi ništa
• Instrukcije za poziv podprograma i povratak
� CALL adr – poziv podprograma na adresi
� RET – povratak iz podprograma u glavni program
21
Koncepcije ulazno/ izlaznog prijenosa
1. Programski prijenos (POLLING).
� Stanje I/0 uređaja ispituje se u programskoj petlji – neprihvatljivo za rijetke i nepredvidive događaje
2. Prekidni prijenos (INTERRUPT TRANSFER)
Mikroprocesor ima fizički ulaz kojim se može tražiti prekid rada u bilo kojem trenutku. Slijedi:
� 1. Pµ spremi trenutno stanje i pošalje signal da je prekid prihvaćen
� 2. Pµ prebacuje programsko brojilo (PC) na adresu gdje se nalazi prekidni program
� 3. izvrši se prekidni program
� 4. Na kraju izvršenja prekidnog programa obnavlja se predhodni status Pµ i nastavlja redovni program.
- Često postoji više prekidnih linija uz hijerarhiju (zadani prioriteti)
- Pogodan za hitne ili/i sporadične događaje. Prekid se može programski onemogućiti
- Korisnik ima dojam da se glavni i prekidni program istovremeno odvijaju
- Može postojati također i «software interrupt request» gdje se prekid zatraži preko instrukcije
22
3. Prijenos s direktnim pristupom memoriji (DMA)
Pµ RAMADRESEPODACI
DMAKONTROLER
DMAZAHTJEV
VANJSKIUREĐAJ
DMA kontroler obustavlja rad Pµ , preuzima kontrolu nad sabirnicama, zatim velikom brzinom prenosi podatke u/iz memorije.
Ako postoji cache memorija, Pµ može za vrijeme DMA nastaviti izvoditi program
Hijerarhija memorije složenih sustava
Pµ
KAPACITET MEMORIJE
INTERNI REG.
CACHE RAM
RADNA MEM.
DISK CACHE
VIRTUAL. MEM.
DISKBRZINA PRIJENOSA
• Virtualna memorija nadoknađuje nedostatak RAM-a stvaranjem slike dijela RAM-a na disku.
23
• Međumemorija (CACHE)
Ako radna (glavna RAM) memorija nije dovoljno brza, manja količina brze memorije može se umetnuti između radne memorije i mikroprocesora.
Pµ
ADRESE
GLAVNAMEM.
TAG-RAM
CACHE
MATCH
UPRAVLJ.WAIT
PODACI
� CACHE HIT – tražena lokacija postoji u CHACHE-u → dobavlja se bez čekanja
� CACHE MISS – tražene lokacije nema u CACHE-u → dobavlja se iz glavne memorije, a ujedno kopira u CACHE
� Efikasnost: %80≈+ MISSHIT
HIT (ovisno o količini CACHE-a)
TAG –RAM sadrži adrese podataka koji su trenutno u cache-u.
Cache se nadopunjuje po principu ““briši najmanje korišteno u zadnje vrijeme”” (LRU –least recently used).
Također, može se organizirati i druga CACHE-memorija: između diska i radne memorije (izvedena programski - bez dodatnog hardware-a)
24
Procesori za posebne namjene
• 1. Procesor za brojeve s pokretnim zarezom (floating point co-processor), ubrzava rad s takvim podacima za red veličine. Danas se integrira sa CPU
FPU CPU RAM
• 2. RISC-procesori (reduced instruction set)
� Mali broj instrukcija uz veliku brzinu izvođenja
• 3. Signalni procesori – služe u digitalnoj obradi signala (digitalno filtriranje itd.).
Posjeduje instrukcije za realne brojeve visoke preciznosti (množenje realnih brojeva ≅ 100 nS). Najpoznatija tzv. Harvard arhitektura, odvojena sabirnica za program i podatke. Većina sadrži i internu memoriju, neki i A/D i D/A pretvornike.
• 4. Specijalne arhitekture
Vektorski procesori,
Nizovi procesora (ARRAY),
Višeprocesorski sustavi,
Masivno paralelni sustavi,
Grafički procesori, GPGPU (moguće ubrzanje 50x)
Neuronske mreže, ...
25
Posebni zahtjevi i sklopovi kod ra čunala za upravljanje procesima
Zahtijeva se visoka pouzdanost, neosjetljivost na smetnje i uvjete okoline te rad u realnom vremenu.
UTJECAJ OKOLINE: RJEŠENJE:
Temperatura komponente za –25..+85°C Agresivni plinovi, prašina zaptivanje, zaštita Vlaga, pritisak zaptivanje, zaštita Vibracije, šokovi mehanički prigušivači Elektro-mag. smetnje E.M. filteri, galvansko odvajanje
• Suzbijanje elektro-magnetskih smetnji:
� Upotreba elektro-magnetskih filtera
� Galvansko odvajanje
� Kontrola ispada programa
� Kontrola napona napajanja
� Rezervno (neprekidno) napajanje
26
• Sat realnog vremena
RµOSCILATOR
1 Hz
:60:60
BRO-JILO
+
SATIMIN.
SEK.
Radi se o nezavisnom sklopu iz čijih se izlaznih registara može očitati realno vrijeme (sati, minute, sekunde)
• Kontrola napona napajanja
RµbU
+
PIO/INTR
+
+
-
-+
+
1refU
2refU
1refb UU >
2refb UU <
KOMPARATORI
� bNref UU ⋅= 1,11 - gornja granica, bNref UU ⋅= 95,02 - donja granica
Ako je napon izvora bU viši od gornje granice, ili niži od donje granice, komparatori mogu izazvati prekid (INTERRUPT). Prekidna rutina može sačuvati važne podatke prije prekida rada.
27
• Vremenski sklop za kontrolu izvođenja programa (WATCH-DOG TIMER)
U programsku petlju ubaci se instrukcija koja preko PI0 (parallel I/O) izlaza Up prazni kondenzator u pravilnim vremenskim intervalima. Ispad programa će preko komparatora izazvati prekid.
Rµ+
pU
P/0IZLAZ
cU
bU+
-
KOMPARATOR
refU+ izlU
2/bref UU =
PREKID / RESET
izlU
cU
2/bU
Upt
t
t
PREKID
Druga mogućnost izvedbe: digitalno brojilo koje se resetira sa pU .
• Sustav dvostrukog napajanja
U slučaju ispada napona napajanja, cijeli sustav – ili samo vitalni dijelovi mogu koristiti rezervni izvor. Upis u RAM treba biti
onemogućen za vrijeme dok Pµ nema kontrolu nad sabirnicom.
Ovisno o zahtjevima, dvostruko napajanje može biti primijenjeno na cijelo računalo, stroj ili objekt.
pU+
Pµ RAMSABIRNICA
Pomoćnabaterija
U+ U+
+
28
• Filtriranje vanjskih elektromagnetskih smetnji
Smetnje na linijama napajanja ili ulazno/ izlaznim (I/O) linijama mogu uništiti sklopove ili poremetiti tok programa. To se sprječava EM filterima i prenaponskom zaštitom (Varistori, Zener diode).
MIKRORAČUNALOFILTER
FILTER
FILTERULAZI
IZLAZI
IZVOR
I/O Rµ
METALNOKUĆIŠTE
Primjeri filtera:
ulU
R
C
PROCES Rµ
Rµ
F
MREŽA
0
CC
C L
L
F
0
EM smetnje koje potječu iz samog sustava upravljanja:
� Izlazni uređaji (aktuatori) stvaraju smetnje (iskrenje kontakta, induktivni tereti, tiristorski regulatori)
� Mehanički kontakti – efekt istitravanja
� Ulazni signali koji dolaze preko kontakata – treba ugraditi program za eliminaciju istitravanja (KEY DEBOUNCING)
29
I
t
ON OFF
• Zaštita mikroračunala i osoblja galvanskim odvajanjem
RµPROCES
ODVAJANJE
ULAZI
IZLAZI ULAZ IZLAZ
bU
+
-
+
-
OPTOSPOJKA
� Poželjno je galvanski odvojiti sklopove visokog i niskog energetskog nivoa
� Umjesto žicama, signali se u sredinama s jakim smetnjama prenose optičkim vlaknom
30
• Autonomni sustavi za nadzor / zaštitu
UPRAVLJAČKEVELIČINE
PROCES
RµUPRAVLJAČKI
SISTEM
ZAŠTITA/NADZOR
IZLAZNE (VOĐENE)VELIČINE
NEZAVISNONAPAJANJE
� Zaštitni sustav treba biti potpuno nezavisan od upravljačkog i imati svoj vlastiti izvor napajanja i senzore.
� Aktuatori zaštite nadređeni su aktuatorima upravljačkog sustava.
� Štiti se sam proces ali i okolina i ljudi SIGURNOSNI ASPEKTI UPRAVLJANJA I ZAŠTITE Treba analizirati najgore moguće situacije i za njih pronaći metode dvostruke zaštite (neovisne o računalu) Primjer: LIFT Najgore situacije:
• ulazak u lift kad nema kabine: mehaničko blokiranje vrata kad nema kabine na toj poziciji
• puknuće nosivog užeta: centrifugalna kočnica koja blokira kabinu ako je brzina prevelika
• nestanak struje: • samokočni motori blokiraju pomicanje kabine uzrokovano gravitacijom • osigurati mehaničko dovlačenje kabine do najbližeg kata i otvaranje
vrata • osmisliti što treba napraviti lift kad struja ponovo dođe • potpuni kvar upravljačkog kruga: omogućiti izlazak putnika • gubitak kontrole motora: prisilno zaustavljanje iza zadnjeg i ispod prvog
kata
31
3. ANALOGNO/DIGITALNI PRETVORNICI
TAKT
A/D
Pµ
( )tUul
KRAJPRETVORBE
START
1−ND
0D
CSADT
T
KRAJ PR.
t
t
t
10... −NDD
START
• Karakteristike A/D pretvornika
1. Razlučivanje (2N mogućih iznosa) 2. Vrijeme pretvorbe (nS…mS) 3. Točnost mjernog područja A 4. Temperaturni koeficijent, stabilnost 5. Izlazni kod (binarni, BCD, …) 6. Linearnost
A
MI
ulU
idealnakarakt.
111
110
101
100
011
010
001000
� Integralna nelinearnost IM je maksimalno odstupanje stvarne od idealne karakteristike.
32
A/D pretvornik s dvostrukim nagibom
Dual slope (integrating) converter - spor ali precizan, može i potiskivati mrežne smetnje.
ulU+
refU−
R
S1
INTEGRATOR
C
iU+-
+-
S2
KOMPARATOR
START
Cl
e
CpBrojilo
TAKT
DIGIT. IZLAZI
iU
0T 1T 2T
1t 2t 3tt
33
• Ciklus rada:
1. Prazni se C trenutnim uključivanjem S2, brojilo se vraća na nulu pomoću Cl (Period T0)
2. Integracija ulaznog napona (Period T1). Sklopka S1 je u gornjem položaju. Brojilo broji do preliva: 2N impulsa
3. Integracija ref. napona (Uref) (Period T2). S1 je u donjem položaju. Brojilo broji dok se napon Ui ne vrati na nulu. Očita se n2 impulsa.
• Na kraju ciklusa:
( ) ( ) ( )
TTnT
TUTUconstUU
dttURC
dttURC
tU
N
refulreful
t
t
t
t
refui
⋅=⋅=
=+→=
=−−= ∫ ∫
2
0,
011
11
21
3
2
1
3
2
21
222 2
nU
T
TUUTnT
N
refreful ⋅−=⋅−=→⋅=
34
Sklop za zadržavanje signala (SAMPLE & HOLD)
Zadržava signal na stabilnom iznosu za vrijeme A/D pretvorbe.
~ C
SAMPLE
A/D
ulUizlR
ulRiU
( )1>>=
⋅=⋅=
izl
ul
NAB
IZB
ulIZB
izlNAB
R
R
CR
CR
ττ
ττ
MAX
MINaaqAD
MAX fT
TTTf
1;
1 =++
=
u lU
S
a Qt
U
at
A D M A Xt
iU
t
tS HH
� ta – aperture time – kašnjenje između naredbe HOLD i stvarnog zaustavljanja
� taQ – vrijeme potrebno za primanje novog uzorka i stabilizaciju tog iznosa
35
A/D pretvornik sa sukcesivnom aproksimacijom
Ulazni napon uzastopno se uspoređuje sa određenim djelom referentnog napona.
� Brz: potrebno N komparacija napona (koraka) 1..50 µs
� Zahtjeva stabilan ulazni napon (SAMPLE & HOLD)
refU+
ulUKOMPARATOR
KRAJ PRETVORBE+-
EOC
REGISTARSUKCES.APROX.
SAR
IZLAZMSB
LSB
1−ND
2D
1D
0D
DA
ulU
NE
2A
U >
0D
1XX 0XX
DA NE
11X 10XAU4
3>
AU8
7>DA NE DA NE
111 110
AU8
5>
AU4
1>
101 100
DA NE DA NE
011 010 001 000
DA NE01X 00X 1D
2D 1
2
3
BIT KORAK
36
Paralelni A/D pretvornik (FLASH CONVERTER)
KODER
R
R
R
R
R
R
R
+-
+-
+-
+-
+-
+-
+-
REFU
ulU2D
1D
0D
KOMPARATORI
� Komparatori uspoređuju ulazni napon s djelom referentnog napona (1 korak)
� Koder pretvara kôd n od M u binarni
� Za N-bita treba 2N -1 komparator
� Vrijeme konvencije 10 ns..1 µs (frekvencija reda 100 MHz)
37
Analogni multiplekser
UPRAVLJANJE
ULAZI
ADRESA
SAMPLE
START
KRAJ KONV.
S&H A/D PODACI
M
Rµ
01
2
3
4
5
Sekvenca upravljanja: Trajanje:
1. Postavi adresu ulaza MUXT
2. Uzmi uzorak (HOLD) aaQ TT + 3. Start A/D
4. Kraj konverzije ADT
( )ADMUXAaQMAX TTTTM
f+++
= 1
38
4. DIGITALNO /ANALOGNI PRETVORNICI
D/A iU
0D
1D
1−ND
iU
D00
0
001
10 0
011
0
10 0
1
1
2D
MSB
LSB
1D
0D
REFU−
22/R
12/R
02/R
0R
iU
n = D0 · 20 + D1· 2
1 + D2 · 22 Ui
= - Uref · n · R0/R
39
Karakteristike D/A pretvornika:
� Linearnost
� Točnost područja
� Stabilnost, temperaturni koeficijent
� Vrijeme pretvorbe (reda µs)
Programski D/A pretvornik
t
t
T T1tD AU−
P W MU
PWMUD/A
IZLAZ
Rµ
+
-
T=konst.T
tkonstU DA
1.⋅−=
Rµ izvodi program za pulsno-širinsku modulaciju
40
Programski A/D pretvornik
ulU
IZLAZI
RµULAZI
D/A
KOMPARATOR
+-
Računalo postavlja svoje izlaze prema algoritmu sukcesivne aproksimacije, D/A pretvornik to pretvori u odgovarajući napon, zatim računalo očitava stanje izlaza komparatora
41
5. SENZORI I PRIHVAT SIGNALA
Senzori su takvi elementi kod kojih neko električko svojstvo ovisi o jednoj fizikalnoj (neelektričkoj) veličini.
Aktivni senzori: Pasivni senzori:
- fotodioda (svjetlo) - fotootpornik
- piezokristal (sila) - zavojnica s pomičnom jezgrom
- EM – indukcija - potenciometar (pomak)
- HALL-generator (mag. polje)
- tenzometar (deformacija)
SENZORSKI SKLOP
SENZOR
S ePrihvat iprilagođenje
( )Sfe=
S – fizikalna veličina, e – električka veličina (analogna ili digitalna)
• Podjela
� Digitalni senzorski sklopovi – daju digitalnu informaciju o ulaznoj veličini (koja je analogna ili digitalna)
� Analogni senzorski sklopovi – daju analognu informaciju o analognoj ulaznoj veličini
Ako sklop za prihvat signala senzora može dati digitalni signal izbjegava se upotreba A/D pretvornika – to je direktna digitalizacija.
42
Digitalni senzorski sklopovi s analognom ulaznom veli činom
• Oblici digitalnih (izlaznih) signala:
� f= func (S) – promjenljiva izlazna frekvencija
� i= func (S) – broj izlaznih impulsa
� d= func (S) – digitalni broj na izlazu
• Optički digitalni senzorski sklopovi
Mjerenje kuta, pomaka, brzine (koristi optičke barijere)
+
+
+
batU batU
2D
1D
0D
0
1
4 3
25
6
7ω
xxx
� Korištenje svih izlaza = apsolutni koder položaja
� Korištenje jednog izlaza = brojanje impulsa, mjerenje ω, mjerenje relativnog pomaka
43
• Linearna izvedba optičkog senzora
D0
D1
D2
D3
vl,
opto-barijere
• Magnetski digitalni senzorski sklopovi
--
refU-+
AHALLOVASONDA
f/u
Komparator
Mjeri se brzinastrujanja
BROJILO
DIGIT. IZLAZ
0D
1−NDRµ
• Sklopka blizine (proximity switch)
N
0D
S
S 0
A+-
refU
iU0DKOMPARATOR
pomak S
"0"
"1"
digitalni izlaz (1 bit)
Sklopka blizine služi za indikaciju približavanja predmeta.
44
Posebne izvedbe za indikaciju:
� Feromagnetskih
� Metalnih
� Nemetalnih materijala
Analogni senzorski sklop
� Mjere analognu veličinu i daju na izlazu analogni signal
� Standardni naponski signal (0..10 V, -10..+10 V)
� Standardni strujni signal (0..20 mA, 4..20 mA)
S
Se eprihvat iprilagođenje
kompenzacijafiltriranjepojačanje
linearizacijanormiranje
1. Prihvat i prilagođenje signala – Pasivne senzore treba spojiti na električki izvor. Aktivni senzor treba spojiti na odgovarajuće trošilo, te na ulaz pojačala.
2. Kompenzacija – Ako je izlazna veličina senzora es funkcija više fizikalnih veličina (1 mjerena + smetnje) smetnje se mogu posebno mjeriti i oduzeti od signala
3. Filtriranje – Potiskivanje smetnji (npr. elektro-magnetskih od mreže) ili potiskivanje neželjenih frekventnih komponenti signala.
4. Pojačanje – Frekventni opseg pojačala mora biti prilagođen dinamici senzora i željenom spektru, također željenom izlaznom opsegu.
5. Linearizacija – Ako )(SfeS = nije linearna funkcija, to se može
ispraviti nelinearnim pojačalom ili računalom.
6. Normiranje – željeno područje maxmin ...SS se preslikava u maxmin ...ee .
Granice izlaznog signala su standardizirane.
iU
refU
St S
45
• Sklop za mjerenje rasvjete
0=&uliA
+-
0=&DU
0R
izlUEki sD ⋅=
ERk
RiUUU
s
DRDizl
⋅⋅==⋅=+=
0
00 &
Struja koju generira fotodioda linearno je zavisna od rasvjete. MOS-FET operacijsko pojačalo pojačava tu vrlo malu struju i održava napon na diodi 0≈DU . Vrijeme odziva je reda veličine µs.
• Mjerenje temperature termoparom
Komp.1ϑ
2ϑNi
SU
CrNi ( )kU
ulUaR
0RR
izlU
2ϑ⋅= sk kU
A/D
Filtriranje
Lineariza-cija
( )21 ϑϑ −⋅= ss kU 1ϑkUUU Ksul =+=
+-
� Napon termopara funkcija je razlike 21 ϑϑ −
� Da se dobije 1ϑ⋅= kUs treba ugraditi sklop za kompenzaciju koji mjeri 2ϑ (temperaturu ambijenta) i poništava njen utjecaj
� Pojačanje 10 +=R
RA treba biti veliko ( )mVC 501000 ≈o
, a
pojačalo vrlo precizno i neovisno o temperaturi
46
Prilago đavanje nivoa signala (skaliranje) • Iznos mjernog signala treba prilagoditi području A/D pretvornika • Ako se ne koristi cijelo ulazno područje napona A/D pretvornika
onda je efektivna rezolucija manja. Primjer mjernog lanca termopar → pojačalo → A/D pretvornik: S = 0 ... 1000 °C (signal) Ks = 40µV/°C (konstanta termopara) Us= 40µV/°C •1000 = 40mV (maksimalni napon termopara) Mjerno područje A/D: Aad = 0 ... 1.2V = 1.2V Potrebno pojačanje: Av = Aad /Us = 1200 mV /40 mV = 30 Zadana rezolucija: qs = 1 °C → qs /S = 1/1000 = 0.1 % A/D pretvornik treba davati 1000 diskretnih vrijednosti → d = 2N Rezolucija A/D pretvornika N=10 bita daje 210 = 1024 diskretnih vrijednosti, što zadovoljava zadanu rezoluciju. Egzaktan iznos potrebnog broja bitova dobije se na sljedeći način:
2N = 1000 /log2 (logaritmiranje)
96.9303.0
3
)2(log
)1000(log)1000(log
10
102 ====N
Računanje mjerene temp. (očitanje A/D: N = 10, D = 0 ... 1023):
sv
adN KA
AD
)12(C]Temp[
−=°
47
• Mjerenje deformacije tenzometrom
1R
Mjerilootpora
F
0R
B
R
0R
R+- izlU
V
FkAUU
FkU
ABizl
AB
⋅=⋅=⋅=
&
& (usko područje)
batU+
R1 R2
R4R3
A
� Otpor R1 (tenzometar) pod utjecajem sile F podvrgnut je deformaciji i mijenja otpor
� Wheatstoneov most R1..R4 postavi se u ravnotežu za F=0
� Diferencijalno pojačalo je spojeno na mjestu galvanometra u mostu, pojačava UAB
� Ulazni napon < 1 mV (problem pomaka radne točke – drift-a, zahtijeva precizno pojačalo)
• Nove tehnologije – «inteligentni senzori»
� Senzori s ugrađenim procesorom i A/D pretvornikom
� Bežične i žičane mreže senzora
� Plug and Play: senzori koji se identificiraju nadređenom računalu, automatska konfiguracija i kalibracija
48
6. AKTUATORI
D/A
PARALELNIIZLAZ
ULAZRµ
M
M
KONTROLA
DIGITALNIAKTUATORSKI
SKLOP
ANALOGNIAKTUATORSKI
SKLOP
� Aktuatori pojačavaju energetski nivo izlaznih signala i prilagođavaju oblik energije trošilima (upravljačkim uređajima)
� Potrebno je također i galvansko odvajanje trošila
Digitalni aktuatorski sklop
PI0Rµ0D
2D
mA
Vili
1
50+
~
M
100mA
R S T
TRANZIST.SKLOPKA
RELEJ SKLOPNIK AVx 25/3803
� Koriste se tranzistorske sklopke za pojačanje signala
� Releji i sklopnici također omogućuju upravljanje velike snage iz kruga male snage (uz galvansko odvajanje)
49
Analogni aktuatorski sklopovi
� Ulazni i izlazni signal se kontinuirano mijenja
ULAZ IZLAZ AKTUATORSKI SKLOP TROŠILO
( )( )ti
tu
ul
ul
( )( )tiK
tuK
ul
ul
⋅⋅
Pojačalo snage, tirist., reg.
(fazna reg. i ispravljači) tirist. regulatori (Zero crossing)
DC MOTORI, GRIJALA
( )tuul ( )tuK ul⋅
U/f pretvarač SINKRONI I ASINKRONI
MOTORI
� Izlazno djelovanje prilagođeno je trošilu i može uključivati i ispravljačko djelovanje
� Izlazno djelovanje je često prekidačko (tiristori) zbog velikog iskorištenja tj. malih gubitaka regulacije
• Fazni regulator izmjenične snage
~UF
IND.PROLAZA
NULE
batU+
RcU
C
M
gi
1A
2A
G
0
++-
KU
ulU
0...10 V
KOMPARATORPOJAČALO
STRUJE
ulUk ⋅=&α
� Tiristor – istosmjerna snaga
� Trijak – izmjenična snaga
� ( )ulT UfU = - inverzna i nelinearna funkcija
50
� sklop uspoređuje ulazni napon s pilastim naponom i tako generira impuls u momentu kad se oni izjednače
� potrebno je riješiti i problem galvanskog odvajanja mreže od ulaznih signalnih linija
CU
u lU
αGi
TU
~U
t
t
t
KU
51
7. IMPLEMENTACIJA UPRAVLJA ČKIH ALGORITAMA
Svojstva upravlja čkih algoritama:
� Pojam vremena je vrlo važan (tzv. realno vrijeme): SOFT REAL TIME, HARD REAL TIME
� Program se stalno izvršava (cikličko ponavljanje)
� Prestanak rada i druge greške mogu izazvati havariju
� Program je upravljiv vanjskim događajima od kojih neki dolaze u pravilnim vremenskim intervalima. Vrijeme odziva je bitno
� Ulazni podaci se čitaju direktno i bez kašnjenja. Izlazni podaci se odmah po nastajanju šalju u okolinu
� Obrađuju se neposredno nastali signali = sadašnje stanje računala (procesa)
� Česta su upravljanja više vanjskih procesa – uređaja u vremenskoj paraleli
� Često se koristi distribuirano procesiranje sa više računala
� Kritična je brzina rada a nekad i utrošak memorije
� Kritična je pouzdanost i predvidiv rad u svim redovnim i izvanrednim okolnostima (naglasak na software-u)
52
Ciklus rada digitalnog regulatora
SDACAD TTTTT +++≥
max2
1
ulfT ≤ (Shannonov teorem) + drugi uvjeti
� Izlazni signal kasni u odnosu na ulazni
ADTCT DAT ADTST
t
kT T ( )Tk 1+
� TS – sistemsko vrijeme potrebno je za dijagnostiku sistema i vremensku rezervu
• Maksimalno raspoloživo vrijeme za proračun:
SDAADC TTTTT −−−=
53
• Ocjena potrebne snage
1. Iz upravljačkog programa potrebno je zbrojiti vremena izvođenja svih instrukcija koje se izvrše u jednom ciklusu (TC). Vremena za pojedine instrukcije daje proizvođač procesora.
2. Ponavljati korak 1) za različite procesore i/ili moguće frekvencije generatora takta dok se ne uskladi brzina procesora sa potrebnim TC
3. Ako se problem ne može riješiti jednim procesorom potrebno je razmotriti upotrebu distribuiranog ili paralelnog procesiranja sa više procesora, ili primjenu jednostavnijeg upravljačkog algoritma
� Vrijeme izvođenja se stohastički mijenja unutar nekih granica (± 20%).
� Kod primjene viših jezika potrebno je probno izvođenje
� Dominantne su operacije sa realnim brojevima jer su spore.
� Cijena potrebne procesorske snage ovisi o samoj potrebnoj brzini (MIPS – Mega Instructions Per Second)
$
MIPS
MIPS
54
8. DISTRIBUIRANO I PARALELNO PROCESIRANJE
� Postupak proračuna (program) može se prikazati dijagramom toka podataka
� Dekompozicija programa u računarske procese
INICIJALIZACIJA
ČITANJE A/D
PRORAČUN
UPIS U D/A
SISTEMSKI PROGRAM
PROCESNIDIJAGRAM
Mogući slučajevi:
� nezavisni paralelni procesi
� sekvencijalni niz
� opći slučaj – proizvoljan procesni dijagram
55
Nezavisni paralelni procesi
Ako se proračun sastoji od niza vremenski paralelnih aktivnosti (npr.: regulacija više objekata) i ako su te aktivnosti međusobno neovisne (ne razmjenjuju podatke u toku rada), lako je sprovesti distribuirano procesiranje na više nezavisnih Rµ .
t
1P
2P
3P3T
1T
2T
POČETAK
1Rµ
KRAJ
1T 2T 3T
2Rµ 3Rµ
M M M
1T 2T 3T
1P 2P 3P
� Svaki regulacijski program Ti izvodi se na zasebnom procesoru. MAXiC TT =
� Alokacija: 332211 ,, PTPTPT →→→
56
Sekvencijalni niz
Ako se proračun sastoji od niza sekvencijalnih aktivnosti, opet je moguće koristiti više procesora i u cikličkom radu postići povećanje propusnosti (PIPELINE)
1T
2T
3T
1τ
2τ
3τ
1τ
2τ
3τ
1T 1T 1T
2T 2T 2T
3T 3T 3Tt
t
t
1=k 2=k 3=k
1=k 2=k 3=k
1=k 2=k 3=k
1P
2P
3P
11 PT →
22 PT →
33 PT →
1Rµ 2Rµ 3Rµ
M M M
P P P
� Sekvencijalno izvođenje na jednom procesoru:
321321
1
ττττττ
++=→++= fTC
� Paralelno izvođenje uz TT=== 321 τττ :
TTf
1= → dobije se 3 puta brže izvođenje
� Ova metoda primjenjivanja je i unutar mikroprocesora (T1, T2, T3,… su tada dijelovi instrukcije)
57
Opći slu čaj – proizvoljan procesni dijagram
Upravljački postupak sastoji se od više aktivnosti a one su na proizvoljan način međusobno uslovljene (razmjenom podataka)
Postupak implementacije:
1. Particija → 2. alokacija → 3. vremenski redoslijed
• 1. Particija (podijela) proračuna u procese
PROCES IZRAZ VRIJEME PRETHODNICI
1T
2T
3T
4T
5T
6T
A:=sin(ALFA)
B:=sin(BETA)
C:=A*B
D:=A/B
E:=C+DF:=A+C
G:=ALFA+BETA
300
300
100
100
50+50
50
-
-
21,TT
21,TT
431 ,, TTT
,
,
1T 2T
3T 4T
5T
6T
A B
C D
E,F
G
� Pretpostavka je da je proračun stalan i unaprijed poznat.
Svaki proces ima poznato iτ , m= broj procesa, n= broj procesora.
� Proces vežu uvjeti precendencije (prethođenja), to daje djelomično vremensko uređenje
� 1, 2 i 6 su početni procesi (bez prethodnika)
� 5 i 6 su završni procesi (bez nasljednika)
� 6 je ujedno i nezavisan proces
58
• 2. Alokacija procesa na procesore
1P 3P2P 4P
1T 2T 3T 4T
-- 6T 5T2M1M 3M 4M
KOMUNIKACIJA
Postupkom alokacije pridjeljuju se procesi pojedinom procesoru (računalu) na koje će se izvršavati.
Riješiti PROBLEM ALOKACIJE znači pronaći optimalan raspored procesa koji daje minimalno vrijeme izvođenja posla. Problem alokacije je za opći slučaj posla nerješiv (bez ispitivanja svih mogućnosti - što je također nemoguće). Zbog toga je i optimalno rješenje nepoznato.
Pretpostavke za paralelan rad:
� Mora postojati mogućnost komunikacije među procesorima
� Mora postojati mehanizam sinkronizacije tako da se procesi mogu upuštati kad su za njih spremni svi ulazni podaci
59
• 3. Redoslijed izvođenja u vremenu
� Jednostavna strategija- upustiti proces čim je spreman (ne daje uvijek najbolje rješenje):
5T4T3T6T
2T1T pT
1P
2P
3P4P
tt
tt p
i
TSP ∑=
τ
n
SP
nT p
i =⋅
= ∑ τη
• 4. Alokacija i vremenski raspored korištenjem heurističkih algoritama:
NIVO PROCESA je najveća vremenska udaljenost tog procesa od
završnog procesa:
+= ∑=
SS
SSiiN
1
max ττ (zbroj po svakoj mogućoj
stazi, SS = broj nasljednika)
KRITIČNA STAZA je staza na (usmjerenom) grafu s najvećom
sumom iτ . Vrijeme izvođenja cijelog posla ne može biti kraće od
Tks ( )KSp TT ≥
NIVO ALOKACIJA je postupak koji koristi heurističko pravilo: procesoru koji se prvi oslobađa treba (između svih nealociranih spremnih procesa) pridijeliti proces s najvećim nivoom.
Tako se dobiju kvalitetna suboptimalna rješenja nT
T
topp
p 12
_
−≤
60
Podjela paralelnih sustava
� SISD – single instr. stream, single data (klasično Rµ )
� SIMD – single inst.; multiple data (npr. vector processing)
� MISD – multiple instruction stream, single data stream
� MIMD – multiple instruction, multiple data (multiprocesor)
• Izvedbe MIMD sustava:
M ZM M
P P
M M M
P PP
SABIRNICA KOMUNIKAC. LINIJA
ZAJEDNIČKA MEM. KOMUNIKACIJA PORUKAMA
� Zajednička mem. je u adresnom polju više procesora
� Postoje i masivno paralelni sustavi sa 105 procesora
• Konfiguracija povezivanja računala:
1Rµ
2Rµ
3Rµ
4Rµ
PRSTEN ZVIJEZDASISTOLIČKO
POLJE
3-D: KOCKE, HIPERKOCKE, ITD.
61
9. INDUSTRIJSKI RAČUNALNI SUSTAVI I MREŽE
• Podjela mikroračunala po fizičkoj izvedbi:
1. Integrirano mikroračunalo (single – chip microcomputer, microcontroller) - sadrže CPU, manju količinu memorije (npr. 2 KB ROM, 256 bytes RAM), I/O portove, itd. Ugrađuju se u manje uređaje
2. Računala na jednoj ploči (single board microcomputer) - sadrže odvojene integrirane krugove: procesor, RAM, ROM, I/0
3. Računala s vanjskom sabirnicom – sabirnica računala izvedena je u obliku niza utičnica (npr. razne izvedbe industrijskog PC-a)
KOMUNIKACIJA
PµRAM
I/0 STRAŽNJA PLOČA
SABIRNICA
UTIČNEPLOČE
STANDARDI UTIČNICA:-VME-S100
-MULTI BUS
4. Multiprocesor: u složenijim izvedbama ima više procesorskih pločica
5. Distribuirana mreža računala
• Koncepcijska podjela industrijskih računala:
1. Integrirani kontroler (EMBEDDED CONTROLER)
2. Programabilni (logički) kontroler (PLC)
3. Računalo za upravljanje NC strojeva
4. Robotski kontroler (često višeprocesorski sustav)
5. Računalo za nadzor i umrežavanje
62
Programabilni logi čki kontroler (PLC)
� U početku zamišljen kao zamjena za relejnu (kontaktnu) logiku. Danas je to univerzalna komponenta za industrijsku automatizaciju. Povezuje se u (hijerarhijsku) mrežu sa drugim PLC-ima ili nadređenim sustavom
DIGIT.ULAZI
V220~
IZLAZI
PLC
SPOJ NA MREŽU
PROGRAMATORANALOGNI I/0 + -
• Programiranje se izvodi posebnim (višim) programskim jezicima (koji su danas standardizirani):
1. - IS – instruction set, statement language, AWL
2. - LD – ladder diagram language
3. - FBL – function block language
4. - BDL – binary decision language
5. SCL – Structured Control Language (slično Pascal-u)
• Ugrađeni programski elementi u PLC-u:
Logičke operacije Aritmetičke operacije
A - AND ADD O - OR DIV N - NOT MUL XO - XOR SUB
Ostale operacije:
S/ R – BISTABILI
63
SR – POSMAČNI REGISTRI C – BROJILA (GORE/ DOLJE) C...0 – BRZO BROJILO TR – VREMENSKI SKLOP ZA KAŠNJENJE
A/D PRETVORNIK D/A PRETVORNIK
Varijable mogu biti dužine 1 bit, 8 bit i 16 (32) bita.
• Ciklus rada PLC-a
1. Upis ulaznih stanja u registar
2. Obrada ulaza (privid paralelne obrade)
3. Ispis u izlazne registre
4. Sistemska provjera, povratak na korak 1.
Vrijeme ciklusa < 5 ms/1000 instrukcija “IS” (Klockner-Moeller PS3)
• Instruction set (IS), statement list (STL)
Simbol: Značenje: Simbol: Značenje:
= STORE (spremi) MUL množenje
A AND (logički I) NOT komplement
ADD Zbrajanje O OR (logički ILI)
BC, BCN uvjetno grananje R reset bistabila
DIV Dijeljenje S set bistabila
JC, JCN uvjetni skok SUB oduzimanje
JP bezuvjetni skok XO ekskluzivni ILI
L unos nove varijable EP kraj programa
64
Primjer istog programa u raznim jezicima:
• Instrukcijske liste (STL, IS)
LD I123 OR Q233 ANDN I124 ANDN I125 =Q233
123I124I 125I
233Q
233Q
• LD jezik (LADDER DIAGRAM – stepenasti dijagram)
123I 124I 125I
233Q
233Q
Nazivaju se i kontaktni planovi (uobičajeni u montaži postrojenja)
• FBL jezik - funkcijski blokovi (functional blocks)
233Q
123I
124I
125I
233Q
OR
1≥ &
AND
65
Prikaz je identičan sklopovskoj shemi sa integriranim krugovima, iako se to ovdje izvodi programski (simulacija). Standardiziran po IEC 65A.
• BDL jezik
125I
124I
123I
233Q
0233=Q 1233 =Q
1
1
1
1
Binary decision tree (logic)=BINARNO STABLO
ODLUČIVANJA
Ista se logička funkcija može izraziti i matematički:
• Matematička notacija (za istu funkciju):
Q233=(I123 OR Q233) AND NOT I124 AND NOT I125
• STL (Structured Text Language) (Siemens: SCL Structured Control Language) ( DIN EN 6.1131-3), koji je sličan Pascalu:
Q233:=(I123 OR Q233) AND NOT I124 AND NOT I125;
66
Sekvencijski funkcijski dijagrami (SFC – Sequential Function Charts)
• to je PLC jezik za programiranje sekvencijskih automata, baziran na Petri mrežama i Grafcetu. Podržava više istovremenih stanja (concurrent sequential programming)
• graf se sastoji od linija toka (flowlines), prelazaka (transition), koraka (step) i akcija (action)
Primjer početka rada perilice rublja
67
Industrijski multiprocesor – robotski kontroler
1Rµ 1ZM 2Rµ 2ZM 3Rµ
1M 2M 3M
2P1P3P
� Implementacija složenih upravljačkih algoritama robota (dinamika, kinematika) često zahtijeva višeprocesorski sustav i primjenu paralelnog procesiranja
� U jednostavnim izvedbama svakom procesoru se pridružuje proračun za jedan određeni zglob robota (kada je proračun podijeljen po zglobovima)
� Zajedničke memorije ZM služe za razmjenu podataka
68
Računarske mreže za distribuirano upravljanje i nadzor
• Računala na veće udaljenosti u pravilu komuniciraju serijskim vezama (bit po bit)
( )tuSTART STOP
LSB MSBRS 485/422
0 1 2 3 4 5 6 7 1P
P=PARITETNI BIT
STANDARD NAČIN MAX. UDALJENOST
Pred/Prij BRZINA MEDIJ
RS 232-C ASIN. 15 m 1/1 20 kbit/s PARICA RS 423-A ASIN. 1200 m 1/10 100 kbit/s -“- RS 422-A SIN. 1200 m 1/10 10 Mbit/s -“- RS 485 SIN. 1200 m 32/32 10 Mbit/s -“-
Ključna su pitanja pouzdanosti prijenosa i sigurnosti.
• Za veće udaljenosti koristi se:
1. Modulatori i demodulatori (MODEMI) za prijenos podataka preko telefonske mreže. Osim fizičke veze, mora postojati podudarnost protokola i brzine prijenosa (9600 bit/s,...,54000 bit/s [bps=BAUD])
2. ADSL - (Asymmetric Digital Subscriber Line) je brzi digitalni prijenos informacija preko telefonske mreže
3. LAN (Local Area Networks) – obično preko koaksijalnog kabela, parice ili optičkog vlakna-fibera. Brzina prijenosa ≥ 10 Mbit/s (FAST 100 Mbit/s, 1Gbit/s). Standardi IEEE 802.3 za ETHERNET LAN, IEEE 802.4 za TOKEN PASSING LAN
4. MAN - metropolitan area network
5. WAN (Wide Area Networks) – globalne mreže, Internet.
69
Lokalne mreže industrijskih ra čunala
Karakteristike mreže:
� Tip medija:
� Telefonska parica 1 Mbps ili više na kratkim udaljenostima
� UTP kabel 10 Mbps (do 1 Gbps na kratkim udaljenostima)
� Koaksijalni kabel 10 Mbps/ 100 Mbps/ 1 Gbps
� Optičko vlakno 100 Mbs ili više
� Bežično “Eter” (sateliti, radio signal)
� Struktura (topologija)
� Način prijenosa informacije
� Način pristupa
� Struktura poruke
� Sigurnost prijenosa
Strukture mreže
ZVIJEZDA (STAR) PRSTEN (RING)
70
SABIRNICA (BUS)
STABLO (TREE)
• Nivoi industrijske komunikacije
PRODUCTIONMANAGEMENT
PROCESSMANAGEMENT
GROUPMANAGEMENT
SHOP FLOOR
ISO/OSI MODELKOMUNIKACIJE
APPLICATION
PRESENTATION
SESSION
TRANSPORT
NETWORK
LINK LAYER
PHYSICAL LAYER
MEDIUM0
1
2
3
4
5
6
7
71
• Struktura poruke
Definirana na nivou prijenosa jedne riječi (byte) i cijele poruke:
ZAGLAVLJE TIJELO REP - startni kod - adrese - kontrolne informacije.
Podaci
- podaci za ustanovljenje pogreške
Komunikacijski protokol definira kodove, način prijenosa, smjer prijenosa, format prijenosa i metode uspostavljanja i prekidanja veze.
• Način pristupa mreži:
CSMA /CD - Stohastički pristup
TOKEN PASSING - Deterministički pristup
MASTER/SLAVE -“-
MULTI MASTER -“-
CSMA/CD – Ethernet lokalna mreža (LAN)
TAP KOAX. KABEL
TERMINATOR
BUS INTERFACE UNIT1Rµ 2Rµ 2Rµ
� Princip CSMA/CD (carrier sense multiple access with collission detection = višestruki pristup uz detekciju kolizije)
72
� Uglavnom se koristi za višekorisničke operativne sisteme
� Za niže nivoe industrijskog upravljanja nije pogodna zbog nepredvidivog vremena pristupa, osim brzog 100Mbps Etherneta
� Slika prikazuje moderniju izvedbu Ethernet mreže
� Switch i hub razvodnici pojačavaju signale
� Klijenti se spajaju UTP (telefonskim) kabelima
� Postoje izvedbe za 10 MBps, 100 Mbps, gigabit, a također i 10 gigabit mreža
73
Token-passing ring LAN
• Mreža s prijenosom žetona (tokena)
Rµ
RING INTERFACE UNIT
Rµ
Rµ
Rµ
• Podaci se kreću prstenom u jednom smjeru
� Svi slušaju (LISTEN MODE)
� Žeton cirkulira (žeton je specijalni kod)
� Predaja: dotično računalo zaustavlja žeton i pretvara ga u konektor, slijedi poruka
� Ciljno računalo postavlja ACK (prihvat)
� Kraj poruke. Žeton se stavlja na kraju poruke
Postoji i izvedba “TOKEN BUS”. Kod nje postoji logički prsten, makar fizički veza nije u obliku prstena
� TOKEN-RING je efikasniji od CSMA/CD kod velikog opterećenja mreže. Pogodan je za sve nivoe upravljanja.
74
Master/slave lokalna mreža
� Master ispituje svakog slave-a (POLLING)
� Sva komunikacija ide preko master-a
SAN - mreže za male udaljenosti
� CAN – Controller Area Network (mreža za automobile)
� Home LAN (mreže za kućnu upotrebu, HAVI, Jini,..)
� IIC (I2C) i SPI mreže za povezivanje integriranih krugova
Bežične mreže – standard IEEE 802
� WPAN- Wireless personal area networks, npr. Bluetooth, za uređaje u istoj sobi, standardi IEEE 802.15
� LAN- Wireless LAN (WLAN, Wi-FI), standardi IEEE 802.11
� MAN- WIMAX, 70 km, 70MBit/s, standardi IEEE 802.16
� WAN- mreža za velike udaljenosti, standardi IEEE 802.20
• Bežične mreže senzora («smart sensor networks», standard IEEE1451.4)
� Plug and Play: senzori koji se identificiraju na mreži. Automatska konfiguracija, kalibracija i dijagnostika.
75
Povezivanje više mreža
� REPEATER – pojačalo u homogenoj mreži
� HUB, SWITCH – razdjelnik u homogenoj mreži
� BRIDGE – povezivanje različitih mreža (ISO nivo 2)
� ROUTER – povezivanje različitih mreža (ISO nivo 3)
� GATAWAY – povezivanje mreža uz pretvorbu protokola
INTERNET
� To je “mreža svih mreža”, na bazi TCP/IP protokola. Definira mrežne servise na višim nivoima.
� Najčešće primjene Interneta:
� TELNET - Korištenje računala preko udaljenog terminala
� FTP – razmjena datoteka
� E-MAIL – elektronska pošta
� W W W – World Wide Web – Internet info stranice
76
Industrijske mreže – standardni protokoli
Postoje stotine različitih industrijskih mreža (Industrial Field bus) i protokola, od kojih su neki standardizirani.
Industrial Field Buses:
Control Buses: High Speed Ethernet (HSE) i Control Net,
Field Buses: Foundation Fieldbus i Profibus,
Device Buses: DeviceNet, Profibus DP, SDS i Interbu s-S,
Sensor Buses: CAN, ASI, Seriplex i LonWorks
PROFIBUS (DIN 19245) – PROCESS FIELD BUS
� udaljenosti 0.2 km – 2.4 km (15 km optički) + repeateri
� brzina 9,6 kbit/s (kilobit per second) – 12 Mbit/s
� 32 aktivna učesnika (122 sa pasivnima)
� prijenos RS 485 serijskom vezom preko oklopljenog telefonskog kabela ili preko optičkog vlakna
� metoda pristupa: MULTI MASTER/SLAVE (TOKEN PASSING + MASTER/SLAVE)
CC-link
• 10 Mbit/s brzina prijenosa • baziran na RS485, mreža do 1.2 km/ 13.2 km repeater-ima • 64 učesnika (stanica) u mreži • vrijeme osvježavanja <3.9ms za 65 I/O stanica • Master/Slave network sa Floating Masters, omogućuje “hot
swap” stanica
DeviceNet
� Za komunikaciju industrijskih kontrolera i perifernih uređaja, bazira se na CAN protokolu
� Koristi se u automobilskoj, poluvodičkoj industriji i montaži
77
� Do 64 učesnika i do 500 m preko telefonskog kabela
CANopen
� U smislu OSI modela CANopen implementira sloj “network layer” te slojeve iznad njega. Niži slojevi “data link” i “physical layer” su na bazi CAN-a ali mogu biti i drugi.
Ethernet
• Ethernet 100 Mbps, Gigabit Ethernet (1000BASE)
� Brzi Ethernet (HSE) i Real – time Ethernet (RTE) sve se više koriste u industrijskoj sredini radi jednostavnosti, cijene i kompatibilnosti sa nadređenim mrežama intranet/ Internet. Neovisan o proizvođaču.
EtherCAT
• Ethernet for Control Automation Technology – je otvorena mreža visokih performansi za automatizaciju. Cilj je bio razviti industrijsku mrežu sa kratkim vremenom ciklusa- obnavljanja i niskim variranjem vremena (jitter) za bolju sinkronizaciju i nisku cijenu.
PROFINET
• otvorena mreža za automatizaciju bazirana na Ethernet standardu i TCP/IP protokolu. Ona predstavlja real-time Ethernet i omogućuje povezivanje industrijskih mreža uz niske troškove.
HART – protokol za komuniciranje sa senzorima
� Razvijen od Rosemount Inc, omogućuje nadzor, dijagnostiku i konfiguriranje senzora (Highway Addressable Remote Transducer Protocol)
� U Analog/ Digital modu koristi postojeće 4-20 mA signale na koji je dodana digitalna informacija (1200 baud Frequency Shift Keying (FSK))
� U Multidrop modu koristi samo digitalni prijenos. Do 15 senzora spaja se na isti kabel sa signalom 4 mA.
78
Mrežna arhitektura za automatizaciju industrijskog pogona
Slojevi protokola za automatizaciju industrijskog pogona
79
10. PROGRAMIRANJE
Programska oprema (okruženje) je skup svih programa potrebnih za razvoj, izvođenje i pronalaženje grešaka u korisničkim programima
OPERATIVNI SUSTAV (OS) upravlja radom i resursima računala (diskom, procesorom, memorijom…). Iz njega se pokreću drugi (korisnički) programi
OS K1
KORISNIČKI PROGRAM
- PR.: MS DOS NA IBM-PC
= DISK OPERATING SYSTEM
Ako se istovremeno može izvršavati više korisničkih programa OS se zove višeprocesni (MULTITASKING), a ako uz to ima isto-vremeno više korisnika > višekorisnički (MULTIUSER), npr. Unix
OS
K1
K2K3
K4
K1 K2 K3 K4 K1
tCIKLUS
P
PROCESORSKO VRIJEME
Ako postoji samo jedan procesor OS će pridijeliti svakom procesu jedan dio svog vremena (TIME SHARRING). Neki OS podržavaju programiranje s ograničenjem realnog vremena (REAL-TIME OS) za pojedine procese
80
Operativni sustavi realnog vremena (Real-time operating systems- RTOS)
U širem smislu to su sustavi koji moraju odgovarati na događaje u vanjskom svijetu onim tempom kako se ovi događaju (reaktivni sustavi)
• Ograničenja realnog vremena:
� MEKA (SOFT) – npr. zadano maksimalno vrijeme izvođenja posla ili min. frekvencija
� TVRDA (HARD) – zadano maksimalno vrijeme reakcije pojedinih računarskih procesa na vanjski događaj (DEADLINE)
• Obično postoje prioriteti procesa koji obrađuju pojedine događaje.
• Izvedba je najčešće takva da se procesi mogu prekidati u toku izvođenja (PREEMPTION).
• Procesi se moraju sinkronizirati i razmjenjivati podatke
• Kod sustava realnog vremena upotrebljivost rezultata proračuna ovisi o točnosti rezultata ali i o trenutku kad je dobiven
• Za programiranje se koriste specijalni jezici (ADA, PEARL, MODULA-2, HIGH INTEGRITY PEARL, REAL-TIME EUCLID) ili standardni jezici (C) sa ekstenzijama
• Primjeri RTOS: QNX, LynxOS, Windows CE
81
Pomagala za razvoj programa
� EDITOR – upis i promjena programskog teksta
� ASSEMBLER – program za prevođenje programskog teksta (mnemonički kod) u strojni kod (1:1)
� COMPILER – program prevodilac. Prevodi tekst pisan u višem jeziku (PASCAL, FORTRAN, C) u strojni (izvršni) kod ili objektni kod. Jedan red programa proizvodi više strojnih instrukcija
� LINKER – povezuje jednu ili više objektnih datoteka i stvara izvršni kod
� LOADER – program koji izvršnu datoteku kopira u radnu memoriju i pokreće taj program (dio OS)
� DEBUGGER – pronalaženje grešaka u programu (npr. izvođenjem korak po korak)
� SIMULATOR – program koji simulira rad nekog fizičkog uređaja (procesa)
82
PROBLEMATIKA RAZVOJA FIRMWARE-a
• Firmware je software fiksno ugrađen u sustav
• Programi za mala računala često se razvijaju na velikima (gdje se može koristiti editor, compiler, assembler, cros-compiler, simulator, emulator), što se zajedno naziva razvojni sustav
• Kako mali sustavi nemaju disk, program treba spremiti u ROM ili FLASH memoriju, što je u industrijskim sredinama i najsigurnije
• Programirani ROM se prebacuje u malo računalo i ispita da li program radi kako je planirano
• Integrirani mikrokontroleri (MCU) sadrže RAM i FLASH memoriju u koju se može jednostavno upisati program preko serijske veze sa razvojnim sustavom.
RAZVOJNISUSTAV
EPROMPROGRAMATOR
EPROMEMULATOR
CPUEMULATOR
M
I/0UART ROM
RAM CPU IO
CILJNI SUSTAV (TARGET)
Popularni 8 bit MCU: Intel 8051 i kompatibilni, Atmel AVR (Arduino platforma), Microchip Technology PIC, Texas Instruments MSP430 (mala potrošnja), ARM (32bit MCU)
83
Način razvoja programa
• Nivoi programiranja: Niži nivo > Viši nivo
� Program u strojnom kodu
� Asembler
� Viši jezici (prevodioci) prve generacije (Fortran), interpreteri (Basic)
� Strukturno programiranje (Pascal, Algol, C, Modula 2)
� Objektivno orjentirano programiranje (SMALLTALK, C++)
� Vizualno programiranje (Visual Basic, Visual C, Delphi)
� Logičko programiranje (LIST, PROLOG), Matematički programi (Matlab), simulacijski (Simulink)
� Specijalni jezici, npr. za Real-time, baze podataka, PLC i robote, skriptni jezici (Python), Internet programiranje
• Radi se o različitim pristupima programiranju
� Razvoj (Niži nivo > Viši nivo) ide prema sve većem nivou apstrakcije, (orijentacija prema problemu) gdje detalji stroja i operativnog sistema, postaju sve manje važni
� Ovakav razvoj zahtijeva brža računala i s većom memorijom, za rješenje istog problema u istom vremenu izvođenja
• Prednosti višeg nivoa:
� Niska cijena razvoja korisničkog programa
� Lako održavanje, ponovna upotreba gotovih rješenja
� Prenosivost izvornog programa na drugi stroj
84
DODATAK1 - PROGRAMIRANJE
Principi strukturnog programiranja
• Strukturno oblikovanje programa
� Problem (koji treba biti potpuno definiran) razloži se u logičke cjeline (module i procedure)
� Za svaku logičku cjelinu (modul) moraju biti točno definirani ulazni i izlazni parametri i vlastiti podaci
� Nacrtati strukturu programa s modulima
PROBLEM
1X
KORAK 1)
1
X Y
KORAK 2)
XX Y
2X 3X KORAK 3)
85
Strukturno programiranje (kodiranje)
• Svaki složeni problem može se raščlaniti na elementarne strukture:
� Sekvenca (niz)
� Grananje (izbor)
� Ponavljanje (iteracije, petlje)
( );4: sqra =
;2: += ab
a) b)
DA
NE
?
A B
theaIF 2>Prog B
Else Prog A
)1c ULAZ
Prog.
?
DA
NE
IZLAZWhile a>2 Do Prog;
)2c ULAZ
Prog.
?DA
NE
Repeat Prog;Until a<2:
IZLAZ
86
TOP-DOWN metoda strukturnog programiranja
Uzastopno rasčlanjivanje problema na sve manje dijelove korištenjem osnovnih elemenata strukturnog programiranja.
I II III
T F III
II III
FT
T F
T
87
Umjesto naredbe “GOTO” u strukturnom programiranju koriste se dane elementarne strukture te pozivi procedura i funkcija
Svaka logička cjelina programa pretvara se u proceduru (čak ako se poziva samo jednom)
Svaka procedura može imati i vlastite varijable koje su nedostupne ostalim procedurama i glavnom programu (zaštita podataka)
S pozivajućim programom komunicira se preko ulaznih/ izlaznih parametara koji moraju odgovarati po broju i tipu podataka
PARAMETRI
STRUKTURAPODATAKA
OBRADA(ALGORITAM)
programili modul
Procedure Zamjeni (VAR x,y:real)VAR temp:real;
Begin
temp:=x;x:=y;
y:=temp;End
Begin {glavni program}
Zamjeni (a, b);
End.
VAR a, b: real; {globalne var.}
� Parametri se povezuju po redoslijedu u pozivu, a ne po imenima
� Mogućnost rekurzivnog poziva procedure
� Programi= strukture podataka + algoritmi
88
Programiranje u PASCALU
• Blok programa:
BEGIN … … … END
� Naredbe se separiraju znakom točka-zarez (;)
• Primjer (struktura programa):
PROGRAM Ime CONST TYPE VAR
PROCEDURE ( );
VAR
BEGIN
END
BEGIN. . .. . .
END.
PROCEDURA je programu malom
može sadržavativlastite PROCEDURE
89
Proširenja (EKSTENZIJE) viših programskih jezika
� Concurrent Programming (MULTIPROGRAMMING) = više procesno programiranje (npr. CONCURRENT C)
� Real-Time Constraints = realno vrijeme (ADA, PEARL, MODULA-2, MODULA-3)
� Paralelne ekstenzije programskih jezika (PARALLEL-C, PARALLEL PASCAL)
� OBJECT ORIENTED PROGRAMMING (C→ C++)
Programski koncepti za konkurentno programiranje
Konkurentno programiranje na nivou programa rješava problem komunikacije i sinkronizacije među dijelovima programa. Dijelovi se izvode u vremenskoj “paraleli” (jedno ili više procesorski sustavi).
Više rješenja :
• Semafori (L.W. Dijkstra 1968)
Semafor je varijabla kojom se određuje vremensko uređenje. Postoje 2 operatora:
P(S) – čekaj. Ako je semafor S aktivan (true) pozivajući proces se obustavlja. Inače se S aktivira, a proces nastavlja.
V(S) – signal. Ako postoje procesi koji čekaj zbog P(S) onda se jedan od njih propušta, inače semafor se deaktivira (FALSE).
• Monitori (Hoare 1974)
Monitor je zajednička struktura podataka koja se može dosegnuti monitorskim operacijama koje se izvode uz međusobno isključivanje. Zahtjevi za operaciju nad monitorom se spremaju i
90
izvode jedan po jedan. Redoslijed nije specificiran (CONCURRENT PASCAL).
• Komuniciranje porukama
Jedan proces šalje poruku, drugi je prima. U sistemu s blokiranjem, pošiljalac mora čekati dok primalac ne potvrdi prijem.
� CSP (HOARE 1978) (COMMUNICATING SEQUENTIAL PROCESSES) ovaj princip ujedinjuje komunikaciju i sinkronizaciju.
Naredbe: INPUT I OUTPUT. Mehanizam sastajanja (RANDEZ-VOUS). Jedan mora biti spreman da prima, drugi da šalje, ako jedan nije drugi ga čeka.
Druga rješenja: ADA, CONCURRENT-C, OCCAM
Postoji i implementacija u hardware-u (transputeri)
Najbolje je kad se u operativnom sistemu može specificirati procese i način njihovog komuniciranja te korištenja zajedničkih resursa.
91
OpenMP je programska platforma koja omogućuje multi procesiranje bazirano na komunikaciji preko zajedničke memorije. Može se koristiti unutar C, C++ i Fortana i to na većini procesorskih arhitektura i operativnih sustava (Linux, MAC OS X, Windows, i drugi). Koristi implementaciju višenitnosti (multithreading) tako da se svaka nit izvršava na drugoj jezgri procesora. Također se koristi i na više računala (computer cluster) i na sustavima koji komuniciraju porukama.
U postojeći program umeću se direktive (pragma) koje upravljaju paralelizacijom. Petlja se izvršava na više jezgri istovremeno: int main(int argc, char *argv[]) { const int N = 100000; int i, a[N]; #pragma omp parallel for for (i = 0; i < N; i++) a[i] = 2 * i; return 0; }
http://openmp.org/ http://en.wikipedia.org/wiki/OpenMP
92
< kraj predavanja > 26.10.2015