z.lukosiaus metodine spg medziaga nauja
TRANSCRIPT
1
KLAIPĖDOS UNIVERSITETAS
JŪRŲ TECHNIKOS FAKULTETAS
INFORMATIKOS INŢINERIJOS KATEDRA
„Skaitmeninis grandinių projektavimas (National Instruments įrankiais)“
(KODAS - T120B043) DALYKAS
Metodinė priemonė (paskaitų konspektas) skirta informatikos inţinerijos
bakalauro studijoms
Apimtis: 6 autoriniai lankai
Kursas patalpintas virtualioje mokymosi aplinkoje (vma) moodle:
http://vma.ku.lt/moodle
Autorius (-ai) prof. dr. Arūnas Andziulis
asist. Ţydrūnas Lukošius
asist. dokt. Mindaugas Kurmis
Recenzentai Doc. dr. Albinas Stankus,
Doc. dr. Violeta Bulbenkienė.
KLAIPĖDA, 2012
2
Turinys
1. ĮVADAS Į LabVIEW ...................................................................... 14
1.1. Duomenų srautas ir grafinė programavimo kalba ....................... 15
1.2. Kaip veikia LabVIEW? ............................................................. 15
2. PALETĖS .................................................................................... 17
2.1. Įrankių paletė ....................................................................... 17
2.2. Valdymo ir funkcijų paletės ..................................................... 19
2.2.1. Valdymo paletė ............................................................... 19
2.2.2. Funkcijų paletė ................................................................ 21
3. LabVIEW CIKLAI ......................................................................... 23
3.1. Ţinomo kartojimų skaičiaus ciklas (For Loop) ............................ 24
3.2. Neţinomo kartojimų skaičiaus ciklas (While Loop) ..................... 25
3.3. LabVIEW sinchronizavimo funkcijos ......................................... 26
3.4. Occurence ............................................................................ 27
3.5. Pranešiklis (notifier) ............................................................... 30
3.6. Eilės (Queue) ........................................................................ 33
3.7. Randevu (Rendezvous) .......................................................... 37
3.8. Semaphoras (Semaphore) ...................................................... 39
3.9. First Call? funkcija ................................................................. 41
3.10. Laiko ciklas (timed loop) ...................................................... 41
4. VARTOTOJO SĄSAJOS KŪRIMAS ................................................... 50
4.1 Blokinės diagramos kūrimas ................................................... 51
4.2. Virtualiųjų prietaisų sujungimas ir vykdymas ............................ 52
3
4.3. Virtualiųjų prietaisų sinchronizavimas....................................... 54
4.4. Duomenų analizė ir įvestis/išvestis .......................................... 55
PRATIMAI ...................................................................................... 57
Pratimas Nr.1 ................................................................................. 57
Pratimas Nr.2 ................................................................................. 61
Pratimas Nr.3 ................................................................................. 66
5. LOGINĖS ALGEBROS ELEMENTAI .................................................. 73
6. LOGINĖS ALGEBROS ELEMENTAI LabVIEW APLINKOJE .................... 78
6.1. Loginiai veiksmai su pora įvesčių ............................................. 78
6.2. Loginiai veiksmai su masyvais ................................................. 85
6.3. Kiti loginiai veiksmai .............................................................. 89
Pratimas Nr.4 ................................................................................. 91
7. KOMBINACINĖS LOGINĖS SCHEMOS ............................................. 93
7.1. Kombinacinių loginių schemų projektavimo etapai ..................... 93
7.2. Dvejetainiai sumatoriai ........................................................... 93
7.3. Dvejetainiai atėmikliai ............................................................ 98
7.4. Dvejetainiai komparatoriai .................................................... 101
7.5. Kodo keitikliai ..................................................................... 104
7.6. Šifratorius .......................................................................... 107
7.7. Dešifratoriai ........................................................................ 109
7.9. Multiplekseriai ..................................................................... 112
8. LOGINIŲ SIGNALŲ GENERATORIAI ............................................ 113
8.1. Multivibratoriai .................................................................... 114
8.2. Autovirpesių multivibratoriai ................................................. 114
4
8.3. Laukiantieji mutivibratoriai ................................................... 117
8.4. Paprastieji ţiediniai skaitikliai ................................................ 117
8.5. Susuktieji ţiediniai skaitikliai ................................................. 120
Pratimas Nr.5 ............................................................................... 120
9. Būlio algebra ............................................................................ 122
9.1. Būlio algebra matematikoje .................................................. 122
9.2. Loginiai kintamieji ............................................................... 123
9.3. Literatūroje naudojami ţymėjimai .......................................... 123
9.4. Loginės operacijos ............................................................... 123
9.5. Pagrindinės Būlio algebros aksiomos ...................................... 124
9.6. Būlio algebros teoremos ....................................................... 125
10. TRIGERIAI .............................................................................. 125
10.1. RS trigeris ........................................................................ 126
10.2. JK trigeris ......................................................................... 126
10.3. D trigeris .......................................................................... 127
10.4. T trigeris .......................................................................... 127
10.5. Skaitikliai .......................................................................... 128
10.6. Šmito trigeris .................................................................... 131
10.6.1. Šmito trigeris su operaciniu stiprintuvu ............................ 132
10.6.2. Invertuojantis Šmito trigeris su operaciniu stiprintuvu ....... 133
11. KOMBINACINĖS IR TRIGERINĖS LOGINĖS SCHEMOS ................... 134
11.1. Kombinacinių loginių schemų struktūrinė schema .................. 134
11.2. Dviejų stabilių būvių atminties ląstelė ................................... 136
11.3. Bazinis SR trigeris .............................................................. 139
5
11.4. Bazinis SR trigeris ........................................................... 142
11.5. Charakteringoji lygtis ......................................................... 143
11.6. Būvių reikšmių lentelė ........................................................ 144
11.7. Būvių kaitos diagrama ........................................................ 145
11.9. Karno diagrama ................................................................. 146
12. SINCHRONINIAI TRIGERIAI ...................................................... 147
12.1. Sinchroniniai SR trigeriai .................................................... 148
12.2. Sinchroniniai D trigeriai ...................................................... 148
12.3. Sinchroniniai JK trigeriai ..................................................... 149
12.5. Sinchroniniai T trigeriai ....................................................... 150
Pratimas Nr.6. .............................................................................. 151
13. SIGNALŲ DUOMENŲ GENERAVIMAS IR JŲ ANALIZĖ LABVIEW TERPĖJE
............................................................................................................ 152
13.1. NI ELVIS sistema ............................................................... 152
13.2. Standartinis relalių signalų įvedimas ir generavimas naudojant
LabVIEW virtualius modulius .................................................................... 153
14. TINKAMO ANALITINIO METODO PASIRINKIMAS .......................... 158
14.1 „Inline― ir „Offline― analizė ................................................... 158
14.2. Programuojama ir interaktyvioji analizės .............................. 161
14.3. Analizių kategorijos ............................................................ 164
Literatūros sąrašas ........................................................................ 167
Paveikslėlių sąrašas
1 pav. LabVIEW vartotojo sąsajos ir grafinio kodo langai .................... 16
6
2 pav. Įrankių paletės grafinis vaizdas ............................................. 18
3 pav. Valdymo paletės grafinis vaizdas ........................................... 19
4 pav. Funkcijų paletės grafinis vaizdas ........................................... 21
5 pav. „Struktūrų― subpaletės ciklai ................................................. 24
6 pav. ........................................................................................... 24
7 pav. For ciklo pavyzdys ............................................................... 24
8 pav. While ciklo komandos prie terminalo prijungus klaidos klasterio ir
loginę vertes 25
9 pav. While ciklo pavyzdys ............................................................ 26
10 pav. Vietos kur funkcijų paletėje yra Sinchronizacijos subpaletės .... 27
11 pav. Sinchronizacijos subpaletė .................................................. 27
12 pav. .......................................................................................... 27
13 pav. Occurrence subpaletė ......................................................... 28
14 pav. Occurrence pavyzdys ......................................................... 29
15 pav. Pranešiklio subpaletė .......................................................... 30
16 pav. Pranešiklio pavyzdys .......................................................... 32
17 pav. Queue subpaletė ................................................................ 33
18 pav. Eilių panaudojimo pavyzdys ................................................ 35
19 pav. Eilių panaudojimo pavyzdţio programos priekinio skydelio
grafikai 36
20 pav. Eilių ir pranešiklių vienoje programoje panaudojimas .............. 36
21 pav. Randevu subpaletė............................................................. 37
22 pav. Randevu suprogramuotos sitemos pavyzdys.......................... 38
23 pav. Semaforo subpaletė ........................................................... 39
24 pav. Semaforo suprogramuotos sitemos pavyzdys ........................ 41
25 pav. Laiko struktūrų subpaletė ................................................... 41
26 pav. Laiko ciklas su visomis įvestimis ir išvestimis: ....................... 42
27 pav. Configure Timed Loop langas............................................... 43
28 pav. Laiko ciklų pavyzdys ........................................................... 45
7
29 pav. Laiko ciklai pavyzdys .......................................................... 46
30 pav. Configure next iteration langas ............................................ 48
31 pav. Laiko ciklas padalytas į kadrus ............................................. 49
32 pav. Configure next frame timing langas ...................................... 50
33 pav. Controls>>Boolean>>Stop Button parinkimas ...................... 50
34 pav. Controls>>Graph>>Waveform Chart parinkimas ................... 51
35 pav. Functions>Structures>>While Loop (blokinė diagrama) .......... 52
36 pav. Stop mygtukas (blokinė diagrama) ...................................... 53
37 pav. Generuojamo signalo atavizdavimas ..................................... 54
38 pav. Wait Until Next ms Multiple (uţdelsimas) .............................. 55
39 pav. Analizės VP modulių prijungimas .......................................... 56
40 pav. Loginis elementas NE (NOT) grafinis ţymėjimas ..................... 73
41 pav. Loginis elementas IR ( AND) grafinis ţymėjimas .................... 74
42 pav. Loginis elementas ARBA (OR) grafinis ţymėjimas ................... 74
43 pav. Loginis elementas IR – NE (NAND)grafinis ţymėjimas ............ 75
44 pav. Loginis elementas Išskirtinis ARBA ( XOR / exclusive OR)grafinis
ţymėjimas 76
45 pav. Loginis elementas Išskirtinis ARBA – NE (NOR) grafinis
ţymėjimas 77
46 pav. Loginis IR (AND) ................................................................ 78
47 pav. .......................................................................................... 78
48 pav. Loginis ARBA (OR) ............................................................. 79
49 pav. .......................................................................................... 79
50 pav. Išskirtinis ARBA (exclusive OR/XOR) ................................... 80
51 pav. NE (NOT) .......................................................................... 81
52 pav. IR - NE (NOT AND) ............................................................ 82
53 pav. ARBA - NE (NOT OR) .......................................................... 83
54 pav. NE išskirtinis ARBA (NE exclusive OR/ NOR XOR) ................... 84
55 pav. Implikacija (Implies) .......................................................... 85
8
56 pav. Loginis masyvo IR (AND array elements) .............................. 86
57 pav. ARBA masyvo elemantai (OR array elements) ....................... 86
58 pav. .......................................................................................... 86
59 pav. Iš Skaičiaus į Boolean masyvą (Number to Boolean array) ...... 87
60 pav. Boolean masyvas į skaičių (Boolean array to number) ............ 88
61 pav. Boolean į (0,1) (Boolean to (0,1) ........................................ 89
62 pav. MIŠRIOJI aritmetika (COMPOUND arithmethics) ................... 90
63 pav. Pussumatoriaus loginės schemos ......................................... 94
64 pav. Pussumatoaus grafiniai ţymenys ......................................... 95
65 pav. Pilnojo sumatoriaus išėjimo funkcijų S1 (a) ir COUT1 (b) Karno
diagramos lentelė ..................................................................................... 95
66 pav. Pirmosios skilties pilnojo sumatoriaus loginės schemos ........... 97
67 pav. Pilnojo sumatoriaus grafinių ţymenų variantai ....................... 97
68 pav. Nuosekliojo sumatoriaus funkcinė schema ............................ 98
69 pav. Pusatėmiklio loginės schemos .............................................. 99
70 pav. Pilnojo atėmiklio išėjimo funkcijos BOUT1 Karno diagrama ...... 99
71 pav. Pilnojo atėmiklio skolinamojo vieneto signalą formuojanti
schema 101
72 pav. Pusatėmiklio ir pilnojo atėmiklio grafiniai ţymenys ............... 101
73 pav. Komparatoriaus pirmojo išėjimo loginės funkcijos Karno
diagrama 105
74 pav. Kodo keitiklio išėjimo funkcijų F1 (a), F2 (b) ir F3 (c) Karno
diagramos 106
75 pav. DDK keitiklio "SP3 į 8421" loginės schemos ......................... 107
76 pav. Keturių skilčių kodo keitiklio grafinis ţymuo ........................ 107
77 pav. Telefono klaviatūros šifratoriaus grafinis ţymuo ................... 109
78 pav. Demultiplekseriai, sujungti piramidiniu pakopiniu būdu ......... 112
79 pav. Demultiplekseris "iš 1 į 4" ................................................ 112
9
80 pav. Multiplekserio "iš 2 į 1" išėjimo funkcijos Karno diagrama (a),
loginė schema (b) ir grafinis ţymuo (c)..................................................... 113
81 pav. Autovirpesių multivibratorius iš diskretinių elementų ............ 115
82 pav. Kondensatoriaus CB1 įtampa, atsidarius tranzistoriui VT1 ..... 115
83 pav. Autovirpesių multivibratoriaus laiko diagramos .................... 116
84 pav. Trijų bitų ţiedinis skaitiklis ................................................ 118
85 pav. Trijų bitų ţiedinio skaitiklio laiko diagramos ......................... 119
86 pav. "Nepakimbantis" trijų bitų ţiedinis skaitiklis ......................... 119
87 pav. Trijų trigerių susuktasis ţiedinis skaitiklis ............................ 120
88 pav. Plačiausiai paplitusių trigerių ţymejimai .............................. 126
89 pav. Sumuojantis dvejetainis skaitiklis ....................................... 128
90 pav. Skaitiklio schema su =5 ............................................... 130
91 pav. Šmito trigeris su operaciniu stiprintuvu ............................... 132
92 pav. Invertuojantis Šmito trigeris su operaciniu stiprintuvu .......... 134
93 pav. Realios kombinacinės schemos struktūrinė schema .............. 135
94 pav. Pirmasis dviejų būvių atminties ląstelės schemos variantas ... 137
95 pav. Pagrindinė atminties ląstelės schema ................................. 138
96 pav. Dviejų būvių atminties ląstelės loginė schema .................... 139
97 pav. Bazinio SR trigerio elektrinė principinė schema .................... 140
98 pav. Bazinio SR trigerio loginė schema ...................................... 141
99 pav. Bazinio SR trigerio loginė schema ................................... 143
100 pav. Grafinis SR trigerio ţymuo ............................................... 143
101 pav. Vėlinančiojo SR trigerio modelis ....................................... 143
102 pav. SR trigerio būvių kaitos diagrama..................................... 146
103 pav. SR trigerio veikimo algoritmo blokinė schema .................... 146
104 pav. SR trigerio Karno diagrama, kur stabilūs trigerio būviai ....... 147
105 pav. Sinchroninio D trigerio funkcinė schema (a) ir grafinis ţymuo
(b) 149
10
106 pav. Sinchroninio JK trigerio loginė schema (a),funkcinė schema (b)
ir grafinis ţymuo (c) ................................................................................ 150
107 pav. Sinchroninio T trigerio funkcinė schema (a) ir grafinis ţymuo
(b) 150
108 pav. NI ELVIS ....................................................................... 153
109 pav. Measurement I/O-DAQmx – Data Acquisition subpaletė ...... 154
110 pav. Kurių funkcijų aprašymas pateiktas lentelėje. .................... 154
111 pav. Signalų fiksiavimo virtuali programa ................................. 155
112 pav. LabVIEW signalų nuskaitymo programos schema ............... 156
113 pav. Signalų generavimo virtuali programa .............................. 158
114 pav. Duomenų apdorojimo schema ......................................... 160
11
Lentelių sąrašas
1 lentelė. Įrakių paletės modulių arašymas ..................................... 18
2 lentelė. Įrakių paletės modulių arašymas ..................................... 20
3 lentelė. Funkcijų paletės modulių arašymas .................................. 21
4 lentelė. Occurrence subpaletės modulių aprašymas ....................... 28
5 lentelė. Pranešiklio subpaletės modulių aprašymas ........................ 31
6 lentelė. Queue subpaletės modulių aprašymas .............................. 33
7 lentelė. Randevu subpaletės modulių aparšymas ........................... 37
8 lentelė. Semaforo subpaletės modulių arašymas ........................... 39
9 lentelė. • Loginio elemento NE (NOT) Reikšmių lentelė: ................. 73
10 lentelė. Loginio elemento IR ( AND)Reikšmių lentelė: .................. 74
11 lentelė. Loginio elemento ARBA (OR) Reikšmių lentelė: ................ 74
12 lentelė. Loginio elemento IR – NE (NAND)Reikšmių lentelė: .......... 75
13 lentelė. Loginio elemento Išskirtinis ARBA ( XOR / exclusive
OR)Reišmių lentelė: 76
14 lentelė. Loginio elemento ARBA – NE (NOR) Reikšmių lentelė: ...... 77
15 lentelė. Pussumatoriaus reikšmių lentelė .................................... 94
16 lentelė. Pirmosios skilties pilnojo sumatoriaus reikšmių lentelė ...... 95
17 lentelė. Pusatėmiklio reikšmių lentelė ........................................ 99
18 lentelė. Pirmosios skilties pilnojo atėmiklio reikšmių lentelė ........ 100
19 lentelė. Dvejetainio puskomparatoriaus reikšmių lentelė ............ 102
20 lentelė. Pirmosios skilties pilnojo dvejetainio komparatoriaus
reikšmių lentelė, Nerealūs loginių įėjimų kintamųjų deriniai, sukuriantys
nereikšmingas loginių išėjimo kintamųjų kombinacijas, yra apvesti. .............. 102
21 lentelė. Dvejetainių-dešimtainių kodų keitiklio "SP3 į 8421" reikšmių
lentelė. (dvejetainį-dešimtainį kodą (DDK) su pertekliumi 3 (SP3) keitimas į
natūralųjį DDK, vadinamą kodu 8421) ....................................................... 105
22 lentelė. Telefono klaviatūros šifratoriaus reikšmių lentelė ........... 108
12
23 lentelė. Pilnojo dešifratoriaus "iš 3 į 8" reikšmių lentelė .............. 110
24 lentelė. Demultiplekserio "iš 1 į 4" reikšmių lentelė .................... 111
25 lentelė. Multiplekserio "iš 2 į 1" reikšmių lentelė ........................ 113
26 lentelė. SR trigerio būvių reikšmių lentelė ................................ 144
27 lentelė. LabVIEW signalo fiksavimui skirtų virtualių modulių
aparašymas 154
28 lentelė. LabVIEW signalo nuskaitymo virtualių modulių aparašymas
156
29 lentelė. LabVIEW virtualių modulių aparašymas ........................ 157
13
Padėka
Autoriai dėkoja projektui LLII-061 „Development of Joint Research and
Training Centre in High Technology Area― uţ paramą rengiant šią metodinę
priemonę.
14
1. ĮVADAS Į LabVIEW
Jums tikriausiai yra įdomu, kas yra LabVIEW, kol ţengsite kitą ţingsnį.
LabVIEW (sutrumpinimas iš Laboratory Virtual Instrument Engineering
Workbench) yra programinė terpė, kurioje jūs kuriate programas grafinėje
terpėje; šiuo atţvilgiu ji skiriasi nuo tradicinių programavimo kalbų, kaip C, C++
arba Java, kuriose jūs rašote programas su tekstu. Vis dėlto, LabVIEW yra daug
daugiau negu kalba. Tai programos sukūrimo ir vykdymo sistema, sukurta
ţmonėms, tokiems kaip mokslininkai, inţinieriai, kuriems programa yra jų darbo
dalis. LabVIEW dirba su kompiuteriais, naudojančiais Windows, MacOS, Linux,
Solaris ir HP-UX operacines sistemas.
Programa, kurią tradiciniu būdu reikėtų rašyti savaites arba net mėnesius
gali būti baigta per kelias valandas, naudojant LabVIEW, nes ji yra specialiai
sukurta atlikti matavimus, išanalizuoti duomenis ir pristatyti galutinius rezultatus
vartotojui. Kadangi LabVIEW turi tokią lanksčią vartotojo sąsają ir tokį lengvą
programavimo būdą, ji yra ideali simuliacijoms, idėjų pristatymams, bendram
programavimui ar net programavimo pagrindų dėstymui.
LabVIEW siūlo daugiau lankstumo negu standartiniai laboratorijos
instrumentai, nes jos bazė yra programinė įranga. Jūs galite charakterizuoti
prietaisų funkcionalumą. Jūsų kompiuteris, prijungiama įranga ir LabVIEW sudaro
visiškai konfigūruojamą virtualų prietaisą, kuris padės jums įgyvendinti jūsų
uţduotis. Jeigu norite kaţką pakeisti, jūs galite tiesiog spragtelėti ir virtualaus
prietaiso parametrai pasikeis.
LabVIEW turi platų funkcijų ir paprogramių pasirinkimą, kurios padės jums
daugumoje programavimo uţdavinių. Jūs taip pat rasite taikomąsias kodų
bibliotekas skirtas duomenų įsigijimui (DAQ – Data Acquisition), bendrosios
paskirties sąsajos magistrales (GPIB – General Purpose Interface Bus) ir
nuosekliųjų instrumentų kontrolę, duomenų analizę, duomenų pristatymą,
15
duomenų saugojimą ir ryšį per internetą. Analizės biblioteka turi savyje daugybę
naudingų funkcijų, įskaitant signalų generavimą, signalų apdirbimą, filtrus,
langus, statistiką, linijinę algebrą ir masyvų aritmetiką.
Dėl grafinio LabVIEW pobūdţio jos prigimtis yra prezentacijos. Išvestis gali
būti pateikta jums patogiausia forma.
LabVIEW programos gali būti parašytos Macintosh tipo kompiuteriuose, o
pakrautos ir paleistos kompiuteriuose, naudojančiuose Windows operacinę
sistemą. Jūs galite surasti LabVIEW taikomąsias programas, padidinančias
našumą daugelyje pramoninių šakų: biologijos, ţemės ūkio, psichologijos,
chemijos, fizikos ir daugelio kitų.
1.1. Duomenų srautas ir grafinė programavimo kalba
LabVIEW programinės terpės vystymasis skiriasi nuo komercinės C arba
Java terpių vystymosi pagal vieną esminį dalyką. Kadangi kitų programavimo
kalbų pagrindas yra kalbos, kurios remiasi tekstinėmis linijomis, kad sukurtų
kodų eilutes, LabVIEW naudoja grafinę programavimo kalbą, kad sukurtų
programas vaizdiniu pavidalu – blokine diagrama, atmetant sintaksines
smulkmenas. Tokiu būdu jūs galite susikoncentruoti į duomenų srautą jūsų
taikomojoje programoje.
LabVIEW naudoja terminologiją, piktogramas ir idėjas, gerai ţinomas
mokslininkams ir inţinieriams. Ji verčiau pasikliauja grafiniais simboliais nei
tekstine kalba, pavaizduojant programos veiksmus. Duomenų srauto principą,
kuriame funkcijos yra vykdomos tik po reikalingų duomenų gavimo, valdo tiesaus
vykdymo metodas. Jus galite išmokti dirbti su LabVIEW net ir nemokėdami
programuoti, bet programavimo pagrindų ţinios gali palengvinti jūsų darbą.
1.2. Kaip veikia LabVIEW?
16
LabVIEW programos yra vadinamos virtualiais prietaisais (VP) todėl, kad
jų išvaizda ir veikimas imituoja tikruosius prietaisus. Visdėlto, uţkulisiuose jos
yra analogiškos pagrindinėms programoms, funkcijoms ir paprogramėms gerai
ţinomoms programavimo kalboms kaip C arba Basic. Ateityje mes kalbėsime apie
LabVIEW programas kaip apie virtualiuosius prietaisus (VP).
Vartotojo sąsaja Grafinis kodas
1 pav. LabVIEW vartotojo sąsajos ir grafinio kodo langai
Virtualusis preitaisas susideda š trijų dalių:
Priekinio plano skydelis (Front Panel) yra sąveikaujanti vartotojo sąsaja su
VP. Taip pavadintas jis yra dėlto, kad skydelis simuliuoja tikro prietaiso vartotojo
sąsają. Priekinio plano skydelis gali turėti rankenas, mygtukus, grafikus ir
įvairiausias kitas valdymo priemones (programos įvestis) bei indikatorius
(programos išvestis). Vartotojas įveda duomenis pelytės bei klaviatūros pagalba,
o rezultatus mato ekrane.
Blokinė diagrama (Block Diagram) yra virtualaus prietaiso pirminis kodas,
sudarytas LabVIEW grafinėje programavimo terpėje. Blokinė diagrama yra tikroji
vykdomoji programa. Blokinės diagramos komponentai yra ţemesnio lygio
17
virtualieji prietaisai su standartinėmis funkcijomis, konstantomis ir programos
vykdymo valdymo struktūromis. Jus braiţote laidus tam, kad sujungti
atitinkamus objektus tarpusavyje, taip nurodant duomenų srautą tarp jų.
Tam, kad naudoti VP kaip paprogramę kito VP blokinėje diagramoje, jūs
privalote turėti piktogramą ir jungtį. Virtualusis prietaisas, kuris yra naudojamas
kitame VP yra vadinamas ţemesnio lygio virtualiuoju prietaisu (subVI), ir yra
paprogrames atitikmuo. Piktograma yra VP grafinė reprezentacija, kuri yra
naudojama kito VP blokinėje diagramoje, kaip objektas. VP jungtis yra
mechanizmas naudojamas perkelti duomenis į VP iš kitų blokinių diagramų, kada
VP yra naudojamas kaip ţemesnio lygio virtualusis prietaisas. Kitaip sakant
jungtis pavaizduoja įvestį/išvestį (I/O).
VP būna hierarchiniai ir moduliniai. Jūs galite naudoti juos kaip aukšto
lygio programas ir paprogrames. Su tokia architektūra LabVIEW prisideda prie
modulinio programavimo idėjos. Iš pradţių, jūs suskirstote programą į eilę
paprastų uţduočių. Po to, jūs sukuriate VP kiekvienos uţduoties įvykdymui, ir
tada suderinate tuos VP blokinėje diagramoje pagrindinės uţduoties įvykdymui.
Modulinis programavimas yra didelis privalumas, nes jūs galite dirbti su kiekvienu
VP atskirai, kas palengvina programos derinimą.
2. PALETĖS
LabVIEW turi 3 grafines paletes:
Įrankių paletė (Tools Palette)
Valdymo paletė (Controls Palette)
Funkcijų paletė (Functions Palette)
2.1. Įrankių paletė
18
Šioje paletėje yra įrankiai reikalingi virtualiems prietaisams (VP) kurti,
naudoti ir modifikuoti VP. Jeigu jūs nematote įrankių paletės, paspauskite Show
Tools Palette, kuri yra Windows meniu. Išrinkus įrankį iš šios paletės pelytės
ţymeklis tampa jo formos. Jūs galite naudoti kiekvieną įrankį iš šios paletės
darbui su funkcijomis ir paprogramėmis.
2 pav. Įrankių paletės grafinis vaizdas
1 lentelė. Įrakių paletės modulių arašymas
Valdymo įrankis. Naudokite jį darbui su pagrindiniu skydeliu ir
indikatoriais.
Išsidėstymo įrankis. Naudokite jį paţymėjimui, perkėlimui arba
instrumento vietos pakeitimui.
Ţymeklis. Naudokite jį teksto įvedimui.
Jungimo įrankis. Naudokite jį objektų sujungimui laidais blokinėje
diagramoje.
Objektinio meniu įrankis. Naudokite jį meniu iškvietimui,
spragtelėjus kairiuoju pelytės klavišu.
Slinkties įrankis. Naudokite jį lango perţiūrai nenaudojant slinkties
juostos.
Kontrolinio taško įrankis. Naudokite jį jūsų VP kontroliniams
taškams nustatyti.
Bandinio ėmėjas. Naudokite jį bandinių paėmimui nuo laidų jūsų
schemoje.
Spalvos kopijavimo įrankis. Naudokite jį nukopijuojant spalvą ir
panaudojant ją su spalvos įrankiu.
19
2.2. Valdymo ir funkcijų paletės
Valdymo ir funkcijų paletės yra sudarytos iš aukštesnio lygio piktogramų,
kurios pavaizduoja ţemesnio lygio paletes, duodant priėjimą prie platesnio turimų
objektų diapazono. Juos galime panaudoti kuriant virtualų prietaisą. Prie palečių
galime prieiti paspaudus aukštesnio lygio piktogramą. Ţemesnio lygio paletės gali
būti transformuotos į slenkančią paletę, kuri lieka jūsų darbastalyje.
2.2.1. Valdymo paletė
Valdymo įrankius ir indikatorius į priekinę sąsają jūs įterpiate iš valdymo
paletės. Kiekvienas paletės parametras simbolizuoja prieinamas ţemesnio lygio
paletes su valdymo priemonėmis ir indikatoriais. Jeigu jūs nematote valdymo
paletės, jūs galite atidaryti ją spragtelėjus Show Controls
Palette išWindows meniu.
3 pav. Valdymo paletės grafinis vaizdas
Spalvos įrankis. Naudokite jį objektų nudaţymui.
20
2 lentelė. Įrakių paletės modulių arašymas
Ţemesnio lygio skaitmeninė paletė (Numeric). Susideda iš
valdymo įrankių ir indikatorių, skirtų skaitmeniniams
duomenims.
Ţemesnio lygio eilučių paletė (String). Susideda iš valdymo
įrankių ir indikatorių, skirtų ASCII eilutėms ir lentelėms.
Ţemesnio lygio masyvų ir klasterių paletė (Array & Cluster).
Susideda iš valdymo įrankių ir indikatorių, skirtų grupuoti
duomenų tipų rinkinius.
Ţemesnio lygio kelių ir nuorodų paletė (Path & Refnum).
Susideda iš valdymo įrankių ir indikatorių, skirtų valdyti
kelius ir nuorodas.
Ţemesnio lygio valdymo paletė (Control). Reprezentuoja
dialogo langą nepriklausomiems valdymo elementams
pakrauti.
Ţemesnio lygio ActiveX objektų paletė (ActiveX). Susideda
iš valdymo įrankių, leidţiančių įterpti ActiveX objektus į
priekinio plano langą.
Ţemesnio lygio loginių reikšmių paletė (Boolean). Susideda
iš valdymo įrankių ir indikatorių, skirtų loginėms reikšmėms.
Ţemesnio lygio sąrašų ir sujungtų sąrašų paletė (List &
Ring). Susideda iš valdymo įrankių ir indikatorių, sudarytų iš
sąrašų ir sujungtų sąrašų.
Ţemesnio lygio grafinė paletė (Graph). Susideda iš
indikatorių, skirtų duomenų grafikų ir diagramų sudarymui
realiame laike.
21
Ţemesnio lygio įforminimo paletė (Decorations). Susideda iš
grafinių objektų, skirtų pagrindinio skydelio vaizdų
nustatymui.
Ţemesnio lygio vartotojo valdymo paletė (User Controls).
Susideda iš specialių valdymo priemonių, kurias sudaro pats
vartotojas.
2.2.2. Funkcijų paletė
Funkcijų paletės pagalba jūs formuojate blokinę schemą. Kiekvienas
paletės parametras simbolizuoja prieinamas ţemesnio lygio paletes. Jeigu jūs
nematote funkcijų paletės, spragtelėkite Show Functions
Palette iš Windows meniu.
4 pav. Funkcijų paletės grafinis vaizdas
3 lentelė. Funkcijų paletės modulių arašymas
Ţemesnio lygio struktūrų paletė (Structures). Susideda iš valdančių
struktūrų, tokių kaip ciklas For.
Ţemesnio lygio skaitmeninė paletė (Numeric). Susideda iš
22
trigonometrinių, logaritminių ir skaitmeninių funkcijų.
Ţemesnio lygio loginių reikšmių paletė (Boolean). Susideda iš loginių
funkcijų.
Ţemesnio lygio eilučių paletė (String). Susideda iš funkcijų darbui su
eilutėmis.
Ţemesnio lygio masyvų paletė (Array). Susideda iš funkcijų darbui su
masyvais.
Ţemesnio lygio klasterių paletė (Cluster). Susideda iš funkcijų darbui
su klasteriais.
Ţemesnio lygio palyginimų paletė (Comparison). Susideda iš funkcijų,
skirtų eilučių, skaičių ir loginių reikšmių palyginimui.
Ţemesnio lygio laiko ir dialogų paletė (Time & Dialog). Susideda iš
funkcijų dialogų langams, sinchronizacijai ir klaidų apdorojimui.
Ţemesnio lygio bylų įvesties/išvesties paletė (File I/O). Susideda iš
funkcijų ir VP skirtų įvedimui/išvedimui į bylą.
Ţemesnio lygio komunikacijos paletė (Communication). Susideda iš VP
darbui su TCP, DDE, Apple Events, IrDA ir OLE tinklais.
Ţemesnio lygio instrumentų įvesties/išvesties paletė (Instrument I/O).
Susideda iš VP skirtų komunikacijai ir kontrolei per GPIB ir VISA
magistrales.
Ţemesnio lygio duomenų surinkimo paletė (Data Acquisition).
Susideda iš VP skirtų duomenų įvesties plokščių įterpimui.
Ţemesnio lygio analizes paletė (Analysis). Susideda iš VI skirtų
duomenų analizei.
Ţemesnio lygio mokymo paletė (Tutorial). Susideda iš VI naudojamų
LabVIEW mokomojoje programoje.
Ţemesnio lygio tobulinimo paletė (Advanced). Susideda iš įvairių
funkcijų, tokių kaip bibliotekos uţklausymo funkcijos, duomenų
manipuliacijos ir t.t.
23
Ţemesnio lygio virtualiųjų prietaisų paletė (VI). Susideda iš dialogų
lango skirto paprogramių įterpimui į VP.
Ţemesnio lygio prietaisų tvarkyklių paletė (Instrument Drivers).
Susideda iš VP sugebančiu valdyti išoriniais įrenginiais, oscilografais,
generatoriais ir t.t., per nuoseklųjį prievadą arba GPIB sąsają.
Ţemesnio lygio vartotojo bibliotekos paletė (User Libraries). Su šios
paletes pagalba sudaromas greitas priėjimas prie reikiamo VP.
Ţemesnio lygio programos valdymo paletė (Application Control).
Susideda iš VP, valdančių virtualiuosius instrumentus, VP serverių,
leidţiančių įkėlinėti VP ant kitų kompiuterių per tinklą.
Prieš pradėdami programavimo darbus su LabVIEW programine įranga
reikia susipaţinti su esminiu LabVIEW programavimo detale, tai LabVIEW esantis
ciklai, be kurių nė viena suprogramuota LabVIEW aplinkoje programa neapseina.
3. LabVIEW CIKLAI
Ciklai LabVIEW grafinio programavimo terpėje yra naudojami
pasikartojančių operacijų valdymui. LabVIEW pagrinde taikomi dviejų rūšių ciklai:
ţinomo kartojimų skaičiaus ciklas - For ir neţinomo kartojimų skaičiaus ciklas -
While. Šie ciklai kartu su kitomis struktūromis yra programavimo (Programming)
paletės struktūrų (Structures) subpaletėje.
24
5 pav. „Struktūrų“ subpaletės ciklai
6 pav.
3.1. Ţinomo kartojimų skaičiaus ciklas (For Loop)
Ţinomo kartojimų skaičiaus ciklas (For Loop) vykdo subdiagramą n kartų.
Kur n yra vertė sujungta su skaičiavimo terminalu (N – count terminal). Iteracijos
(i) terminalas vykdo ciklo iteracijų skaičiavimą, kuris tęsiasi nuo 0 iki n-1.
7 pav. For ciklo pavyzdys
Iliustracijoje pavaizduotas For ciklas, su prie N įvesties prijungta verte – 5, o prie
i išvesties prijungta sumos funkcija, kuri ciklui veikiant prie vieneto prideda tos
25
iteracijos vertę. Gauta suma perduodama į masyvą, esantį uţ ciklo ribų ir
sujungtą su tuneliu (tunnel), kuris yra su įjungtu auto-indeksavimu, t. y. į
masyvą yra perduodamos visų ciklo iteracijų sumų reikšmės. Ciklas sustoja po 5
iteracijų.
3.2. Neţinomo kartojimų skaičiaus ciklas (While Loop)
Neţinomo kartojimų skaičiaus ciklas (While Loop) kartoja subdiagramą, tol
kol sąlyginio terminalo (conditional terminal) įvestis gauna konkrečią loginę
(boolean) vertę: TRUE arba FALSE.
Loginė vertė priklauso nuo to kaip programuotojas nuspręs panaudoti
ciklą. Per terminalo kontekstinį meniu (pasiekiamą dešiniu pelės klavišu) galima
pasirinkti Stop if True (sustabdyti esant TRUE vertei) arba Continue if True (tęsti
esant TRUE vertei) komandas. Taip pat jei prie terminalo bus prijungtas klaidos
klasteris (cluster) kontekstiniame meniu bus galima pasirinkti Stop on Error
(ciklas bus sustabdytas jei įvyks klaida) arba Continue while Error (jei įvyks
klaida, ciklas veiks toliau) komandas.
8 pav. While ciklo komandos prie terminalo prijungus klaidos klasterio ir
loginę vertes
26
9 pav. While ciklo pavyzdys
Iliustracijoje pavaizduotas While ciklas vykdantis sudėties funkciją, o
sumos reikšmes kaupiantis masyve naudojant tunelį su įjungtu auto-
indeksavimu. Dėl daugiau (greater?) funkcijos, kurios išvestis yra prijungta prie
terminalo įvesties, ciklas sustos po penktosios iteracijos, nes tai bus didesnė
vertė uţ 4.
Struktūrų subpaletėje yra dar vienas ciklas – laiko (laikinis) ciklas
(timed loop), jis bus plačiau aprašytas IV skyriuje.
3.3. LabVIEW sinchronizavimo funkcijos
Dirbant LabVIEW anksčiau ar vėliau prireikia sinchronizuoti ciklus. Tam
LabVIEW programuotojai naudoja sinchronizavimo funkicijas.
Sinchronizavimo VI naudojami paraleliai vykdomų uţduočių
sinchronizavimui bei duomenų perdavimui tarp jų.
Sinchronizacijos (Synchronization) virtualiuosius instrumentus galima rasti
Funkcijų (Function) paletės programavimo (Programming) arba duomenų
komunikavimo (Data Communication) subpaletėse.
27
10 pav. Vietos kur funkcijų paletėje yra Sinchronizacijos subpaletės
Sinchronizacijos subpaletę sudaro penkios kategorijos: occurrences
(įvykiai), notifier (pranešikliai), queue (eilės), rendezvous (randevu) ir
semaphore (semaforai). Šioje paletėje yra ir viena funkcija nepriklausanti jokiai
kategorijai – First Call?.
11 pav. Sinchronizacijos subpaletė
12 pav.
3.4. Occurence
Terminas Occurrence iš anglų kalbos verčiant reiškia atsitikimą, įvykį. Tai
yra paprasčiausias iš LabVIEW siūlomų sinchronizavimo metodų, jį sudaro tik trys
funkcijos. Occurrence naudojami atskirų, sinhroninių funkcijų valdymui.
28
13 pav. Occurrence subpaletė
4 lentelė. Occurrence subpaletės modulių aprašymas
Paletės objektas Aprašymas
Generate Occurrence
(sukurti occurrence)
Sukuria occurence, kurį galima perduoti į Wait on
Occurence ir Set Occurence funkcijas.
Set Occurrence (paskirti
occurrence)
Paskiria konkretų occurence. Visi funkciniai blokai
laukia kol šis occurence nustos laukti.
Wait on Occurrence (laukti
occurrence)
Laukia, kol Set Occurence funkcija paskirs duotą
occurence.
Occurrence yra sukuriamas su Generate Occurrence funkcija, o valdomas
Wait on Occurrence ir Set Occurrence funkcijomis. Kuomet occurrence yra
sukuriamas jis gali būti perduotas į Wait on Occurrence ir Set Occurrence
funkcijas. Wait on Occurrence yra savotiškas barjeras, kuris neleidţia vykdyti kitų
kodo dalių, tol kol nebus aktyvuota Set Occurrence funkcija.
29
14 pav. Occurrence pavyzdys
Pavyzdyje yra pavaizduoti du while ciklai, viršutiniame yra atsitiktinio skaičiaus
(Random Number) funkcija, kuri generuoja skaitinę reikšmę nuo 0 iki 1, šis
rezultatas panaudojant vietinį kintamąjį (Local variable) (Create > local variable
kontekstiniame meniu) yra perduodamas apatiniame cikle esančiam grafikui.
Apatinis ciklas yra antrame kadrų struktūros (Flat sequence structure) kadre.
Kuomet Occurrence yra sukuriamas, jis laidu yra perduodamas į Set Occurrence
ir Wait on Occurrence fukcijas. Wait on Occurrence funkcija yra pirmame kadrų
struktūros (Flat sequence structure) kadre. Dėl šios funkcijos apatinis ciklas
negali būti vykdomas tol kol nebus suţadinta Set Occurrence funkcija, kuri ir
valdo Wait on Occurrence funkciją.
Šiuo atveju Set Occurrence funkcija yra atvejų struktūros (case structure)
skiltyje True, todėl kol į šioje struktūroje esančio atvejų selektoriaus (case
selector) įvestį nėra perduodama loginė TRUE reikšmė, tol Occurrence negalės
pasiekti šios funkcijos. Pavyzdyje yra padaryta taip, kad iteracijų skaičiui
pasiekus reikšmę didesnę uţ 5, į case selector yra perduodama TRUE reikšmė ir
30
tuomet suţadinama Set Occurrence funkcija. Kai tai įvyksta, pradedamas vykdyti
antrame kadre esantis apatinis ciklas.
Paprastai tariant kuomet pirmas ciklas paskiria occurence, LabVIEW
aktyvuoja antrąjį ciklą ar bet kurias kitas blokines diagramas, kurios laukia
paskirto occurrence.
Generate occurence galima sujungti su bet kokiu skaičiumi Set Occurrence
ir Wait on Occurrence funkcijų. Skirtingai nei kitos sinchronizacinės funkcijos,
kiekviena Generate Occurence funkcija blokinėje diagramoje atstovauja vieną
unikalų Occurence. Tokiu būdu ši funkcija yra panaši į konstantą. Kuomet VI yra
paleistas, kiekvieną kartą veikiant šiai funkcijai, ji duoda ta pačią reikšmę. jei
Generate Occurence bus cikle, funkcijos grąţinama reikšmė bus ta pati
kiekvienoje ciklo iteracijoje.
3.5. Pranešiklis (notifier)
15 pav. Pranešiklio subpaletė
31
5 lentelė. Pranešiklio subpaletės modulių aprašymas
Objektas Trumpas aprašymas
Cancel Notification (atšaukti
pranešimą)
Ištrina bet kurią ţinutę tuo metu esančią
pranešiklyje ir ją grąţina išvestyje.
Get Notifier Status (gauti
pranešiklio statusą)
Grąţina informaciją apie dabartinę pranešiklio
būseną, tokią kaip kad paskutinis neištrintas
pranešimas, siųstas pranešėjui ir t. t.
Obtain Notifier (sukurti
pranešiklį)
Sukuria arba suranda egzistuojantį pranešiklį
Release Notifier (sunaikinti
pranešiklį)
Sunaikina pranešiklį
Send Notification
(nusiųsti pranešimą)
Nusiunčia ţinutę į visas funkcijas, laukiančias
pranešiklio.
Wait on Notification from
Multiple
Laukia, kol nors vienas iš pasirinktų pranešiklių
gauna ţinutę.
Wait on Notification Laukia kol pranešiklis gauna ţinutę.
Pranešiklių (notifier) sinchronizavimo funkcjų veikimas yra panašus į
occurrence bet šis būdas yra lankstesnis ir turi didesnes galimybes. Pranešiklis
daugiausia leidţia programuotojui trumpam sustabdyti programą laukiančią
instrukcijos. Jis gali būti naudojamas cikluose, kurie nuskaito duomenis. Po to kai
instrukcija yra gaunama ciklas gali pradėti dirbti tai, kam jis buvo sukurtas. Taip
pat pranešiklis gali būti panaudotas trumpam sustabdyti duomenų laukiantį VI.
Pagrindinė ir svarbiausia pranešiklio savybė yra laukti tol kol bus gauti
duomenys. Tokie duomenys vadinami pranešimu (notification).
Daţnis kuriuo pranešimai yra išsiunčiami ir daţnis kuriuo pranešimai yra
gaunami turi būti sinchronizuoti kad apsaugoti ţinutės praradimą, nes pranešimų
perdavimo sistema neturi buferio, kuriame laikytų nenuskaitytus pranešimus.
Grįţtamojo ryšio sistema gali būti parengta norint apsaugoti pranešimų ţinučių
32
praradimą. Šis atvejis daugiausiai atsiranda kuomet pranešiklis yra naudojamas
nenutrūkstamam duomenų perdavimui.
Pranešikliai gali būti naudojami kartu su kitomis duomenų perdavimo formomis,
kaip kad eilėmis, pavyzdţiui norint parodyti kad duomenys atkeliavo skaitymui.
Pranešiklis yra puiki priemonė siunčiant individualias ţinutes bet ne
pertraukiamus duomenis, tačiau jis gali būti sukonfigūruotas kad darytų ir tai.
Pranešikliai turi minusą - jų negalima naudoti komunikavimui su VI kituose
kompiuteriuose, pavyzdţiui komunikavimui per tinklą arba VI serverį.
16 pav. Pranešiklio pavyzdys
Iliustracijoje pavaizduota paprasta rašymo į ir skaitymo iš pranešiklio
blokinė diagrama. Joje yra du ciklai. Viršutiniame cikle obtain notifier funkcija
sukuria pranešiklį, jis siunčiamas į Send Notification ir Wait on notification
funkcijas. Atsitiktinio skaičiaus (random number) funkcija sukuria atsitiktinę
reikšmę nuo 0 iki 1 ir parodo rezultatą. Ši reikšmė yra sujungiama su Send
Notification per notification įvestį. Apatinis ciklas šią reikšmę gauna per Wait on
Notification funkcijos notification išvestį ir pavaizduoja ją grafike. Ciklą
33
sustabdţius, funkcija Release Notifier sunaikina pranešiklį, duomenys nebėra
rašomi ir programa sustoja.
3.6. Eilės (Queue)
17 pav. Queue subpaletė
Tai yra metodas kurio metu iš atskirų duomenų elementų yra sukuriama
vientisa eilė, tokiu būdu ją galima perduoti į kitą ciklą ar VI. Duomenys yra
saugojami atminties buferyje iki jų nuskaitymo.
Yra dvi eilių rūšys: First in First Out (FIFO) ir Last in First Out (LIFO). FIFO eilė
gali būti palyginama su paprasta ţmonių eile prie kiosko ar prekybos centro
kasos. Pirmas asmuo stovintis eilėje ir yra aptarnaujamas pirmasis. LIFO eilę
galima apibūdinti tokiu pavyzdţiu: kuomet knygos dedamos į krūvą, paskutinė
įdėta knyga daţniausiai ir bus paimta iš jos pirma.
6 lentelė. Queue subpaletės modulių aprašymas
Objektas Aprašymas
Dequeue Element (išimti
elemetą)
Pašalina elementą iš eilės priekio ir jį grąţina.
Enqueue Element At
Opposite End (pridėti
Prideda elementą eilės priekyje.
34
elementą piešingame gale)
Enqueue Element (pridėti
element)
Prideda elementą eilės gale.
Flush Queue (―išplauti‖
eilę)
Išima visus elementus iš eilės ir grąţina juos
kaip masyvą.
Get Queue Status (gauti
eilės statusą)
Grąţina informaciją apie dabartinį eilės statusą,
kaip kad elementų, esančių eilėje skaičių.
Obtain Queue Sukuria (suranda) eilę
Preview Queue Element Grąţina elementą, esantį eilės priekyje jo
nepašalinant.
Release Queue Sunaikina eilę
Pirmas ţingsnis naudojant eiles yra sukurti eilę. Obtain Queue funkcija
leidţia programuotojui nustatyti eilės dydį. Jei maksimalus dydis bus pasiektas,
jokių papildomų elementų į eilę nebebus galima įdėti, tol kol eilėje jau esantys
elementai nebus pašalinti. Elementai į eilę įdedami naudojant Enqueue Element
funkciją. Tokiu būdu naujas elementas padedamas į eilės galą, bet su funkcija
Enqueue element at opposite end galima padėti elementą į eilės priekį. Elementai
iš eilės išimami naudojant Dequeue Element funkciją.
Pagrinde eilės yra labai tinkamos duomenų srautams, tokiems kaip
waveform, ypač tada kai informacijos praradimas yra nepageidaujamas.
35
18 pav. Eilių panaudojimo pavyzdys
Iliustracijoje pavaizduota paprasta įrašymo ir nuskaitymo iš sekos blokinė
diagrama. Diagrama turi du ciklus. Viršutiniame cikle random number funkcijos
pagalba sukuriama atsitiktinė vertė nuo 0 iki 1 ir pavaizuojama grafike. Obtain
Queue funkcija sukuria seką. Šioje funkcijoje būtina nurodyti naudojamą
duomenų, iš kurių formuojama eilė, tipą. Funkcija Enqueue element kiekvienos
iteracijos random number sukurtą vertę sudeda į FIFO tipo eilę. Kitame cikle su
Dequeue Element funkcija elementai yra išimami iš eilės ir pavaizduojami
antrame grafike prieš apatinį ciklą yra prijungta Wait funkcija su 5000 ms verte,
tai reiškia, jog antras ciklas prasidės po 5 sekundţių nuo to laiko kai bus pradėta
vykdyti programa. Čia pasireiškia svarbiausia eilių savybė – saugoti duomenis tol
kol jie bus išimti iš eilės. Tad antrasis grafikas priekiniame skydelyje nors ir
atsilieka nuo pirmo, bet pavaizduoja visas reikšmes, kurios buvo sukurtos
random number funkcijos viršutiniame cikle.
Pirmasis ciklas sustabdomas STOP mygtuku. Tokiu atveju eilėje lieka
neišimtų elementų. Naudojantis Get Queue Status funkcija suţinomas eilėje
esančių elementų kiekis ir jam pasiekus 0 sustabdomas antrasis ciklas.
36
19 pav. Eilių panaudojimo pavyzdţio programos priekinio skydelio grafikai
20 pav. Eilių ir pranešiklių vienoje programoje panaudojimas
37
Šiame paveksle pavaizduota sudėtingesnė programa naudojanti ir eiles ir
pranešiklius. Eilės naudojamos duomenų perdavimui, o pranešikliai ciklų
sinchronizavimui.
3.7. Randevu (Rendezvous)
21 pav. Randevu subpaletė
Randevu yra naudojama sudėtinių paralelinių uţduočių sinchronizavimui.
7 lentelė. Randevu subpaletės modulių aparšymas
Objektas Aprašymas
Create Rendezvous (sukurti
randevu)
Ieško egzistuojančio randevu arba sukuria
naują.
Destroy Rendezvous (sunakinti
randevu) Sunaikina nurodytą randevu.
Get Rendezvous Status (gauti
randevu status)
Grąţina dabartinio randevu statuso
informaciją.
Not A Rendezvous (ne randevu) Graţina TRUE jei randevu nėra galiojantis
randevu duomenų tipas.
Resize Rendezvous (pakeisti
randevu dydį)
Pakeičia randevu dydį ir graţina naują
dydį.
38
Wait at Rendezvous (laukti
randevu)
Laukia kol pakankamas uţduočių skaičius
atvyks į Randevu.
22 pav. Randevu suprogramuotos sitemos pavyzdys
Pavyzdyje parodytos trys kadrų struktūros, kiekviena iš jų yra padalinta į
du kadrus, ir kiekviename iš jų yra po while ciklą, o kituose kadruose po Wait at
Rendezvous funkcija.
Viršutiniame cikle yra funkcija random number, kuri generuoja atsitiktines
skaitines vertes nuo 0 iki 1. Viduriniame cikle pasinaudojant local variable
komanda rezultatas yra vaizduojamas grafiškai. Apatinis ciklas skirtingai nei kiti
39
du yra pirmame struktūros kadre, šis ciklas yra padarytas, taip, kad sustotų po 6
iteracijų.
Randevu yra sukuriamas Create Rendezvous funkcija, joje būtina
nurodyti randevu dydį. Jis perduodamas trims Wait at Rendezvous funkcijoms,
bet kad būtų pasiekta trečioji funkcija esanti apatinėje struktūroje, programa turi
įvykdyti pirmame kadre esantį ciklą. Viršutinių ciklų antrų kadrų ciklai pradės
veikti tik tada, kad bus pasiektos visos trys Wait at Rendezvous funkcijos.
3.8. Semaphoras (Semaphore)
23 pav. Semaforo subpaletė
8 lentelė. Semaforo subpaletės modulių arašymas
Objektas Aprašymas
Acquire Semaphore Įgyja priėjimą prie šviesoforo.
Create Semaphore Ieško egzistuojančio semaphore arba sukuria naują.
Destroy Semaphore Sunaikina pasirinktą semaphore.
Get Semaphore
Status
Graţina semaforo dabartinio statuso informaciją.
Not A Semaphore Graţina TRUE jei semaforas nėra galiojantis semaforo
40
duomenų tipas.
Release Semaphore Sunaikina priėjimą prie Semaforo.
Semaforo tikslas yra kontroliuoti priėjimą prie dalinamų resursų. Vienas
pavyzdys būtų kodo sekcija, atsakinga uţ elementų pridėjimą ir pašalinimą
duomenų masyve. Jei ši kodo sekcija programoje yra keliose vietose, reikalingas
būdas uţtikrinti kad viena kodo sekcija priekyje tų duomenų kurie yra pašalinami
neprideda naujų. Semaforų panaudojimas apsaugotų nuo tokios problemos.
Pradţioje semaforas yra sukuriamas. Kuriant yra nustatomas uţduočių
skaičius. Numatytoji tuo pat metu vykstančių priėjimų skaičiaus vertė - 1. Kitas
ţingsnis yra padėti Acquire Semaphore VI prieš norimą apsaugoti kodą. Loginė
išvestis gali būti panaudota atvejų struktūros suţadinimui. TRUE išvestis parodys,
kad semaforas nebuvo įgytas. Tai turėtų sąlygoti nurodyto kodo nevykdymą. Jei
semaforas yra įgyjamas, jo dydis yra sumaţinamas, apsaugant kitą semaforą nuo
vykdymo iki bus paleista Release Semaphore VI funkcija. Kuomet ji yra įvykdoma
kitas pasiekiamas semaforas gali būti pradėtas vykdyti.
Semaforus galima naudoti dviejų ar daugiau atskirų paralelinių uţduočių
sinchronizavimui, taip kad viena uţduotis vienu metu vykdytų kritinę kodo sekciją
apsaugotą bendro semaforo. Konkrečiu atveju šie VI naudojami kada norima, kad
būtini VI ar blokinės diagramos dalys lauktų tol kol kitas VI ar blokinės diagramos
dalis baigs vykdyti kritinę kodo sekciją (critical section).
41
24 pav. Semaforo suprogramuotos sitemos pavyzdys
3.9. First Call? funkcija
Sinchronizacijos paletėje yra viena funkcija nepriklausanti jokiam
skyriui. Tai First call funkcija. Ji neturi nė vienos įvesties ir tik vieną išvestį. Ši
išvestis yra loginė vertė parodanti ar tai yra pirmas kartas, kada ši kodo sekcija
arba subVI buvo įvykdyta. Paprastai tariant, ši funkcija pirmą kartą ją iškviečiant
graţiną reikšmę TRUE, o kitus kartus reikšmę FALSE, taigi gali būti naudinga jei
uţduotį reikia atlikti tik vieną kartą.
3.10. Laiko ciklas (timed loop)
25 pav. Laiko struktūrų subpaletė
Laiko ciklas yra panašus į While ciklą, bet suteikia programuotojui
galimybę valdyti vykdymo daţnį ir paleidimo laiką. Šis ciklas suteikia precizišką
laiko valdymą toms programoms, kurios reikalauja sudėtinių kritinių laiko
uţduočių, veikiančių skirtingais daţniais. Kiekvienas toks ciklas veikia savo paties
vykdymo sistemoje ir gali būti priskirtas unikalus prioriteto lygmuo iki 128
skirtingų uţduočių. Aukštesnio prioriteto ciklai uţbėgs uţ kelio ţemesnio priotiteto
42
ciklams. Laiko ciklai suteikia savo vykdymo grįţtamąjį ryšį, kas leidţia pritaikyti
ciklinį laiko skaičiavimą, paremtą realaus laiko atlikimu.
Laiko ciklas skirtingai nei while ciklas nereikalauja sujungimo su sąlyginiu
terminalu, tokiu atveju ciklas eis neribotą laiką.
26 pav. Laiko ciklas su visomis įvestimis ir išvestimis:
Šiame paveiksle pavaizduotas laiko ciklas su išskleistomis visomis
įvestimis ir išvestimis. Laiko ciklas turi keturis blokus: 1 – įvesties blokas, 2
kairysis duomenų blokas, 3 – dešinysis duomenų blokas, 4 - išvesties blokas.
Įvesties bloke įvedamos charakteristikų, kurias norime pritaikyti ciklui vertės.
Kairysis duomenų blokas, tai pirmesnės iteracijos metu nustatytų ir gautų
duomenų vertės. Dešinysis duomenų blokas tai kitos iteracijos įvesties blokas,
kuriame galima pakeisti pirmosios iteracijos parametrus. Išvesties blokas, tai -
viso ciklo veikimo rezultatai.
Paspaudus pele du kartus ant įvesties bloko ar paspaudus dešinį klavišą ir
pasirinkus Configure Input Node (Konfigūruoti įvesties mazgą) atsidaro
Configure Timed Loop (konfigūruoti laiko ciklą) langas. Vertės, kurios bus
43
įvedamos šiame lange pasirodys pačiame įvesties bloke. Taipogi nurodyti norimus
parametrus ciklui taip pat galima norimą vertę prijungus prie įvesties mazgo.
27 pav. Configure Timed Loop langas
Configure Timed Loop langas yra skirtas pagrindinių ciklo parametrų
nustatymui: laiko skaičiavimo šaltiniui, periodui, prioritetui bei kitoms
pasirinktims.
Ciklo laiko skaičiavimo Šaltinio (Loop Timing Source) skiltis nusako ciklo
laiko skaičiavimo šaltinio tipą ir pavadinimą. Šis šaltinis gali būti vidinis – iš
anksto nustatytas arba išorinis – sukurtas naudojant Create Timing Source
funkciją arba DAQmx duomenų kaupimo funkcijas.
Jei bus palikta varnelė ant Use Built-In Timing Source (naudoti standartinį
laiko skaičiavimo šaltinį), bus nurodoma naudoti vidinį laiko skaičiavimo šaltinį
laiko struktūros valdymui, kurį galima apsirinkti iš Source Type sąrašo, o jei bus
pasirinktas Use Timing Source Terminal (Naudoti šaltinio terminalą), bus galima
naudoti įėjimo terminalą esantį įvesties bloke, kad būtų galima prijungti išorinį
laiko skaičiavimo šaltinį.
Jau minėtame Use Built-In Timing Source sąraše yra keturios
numatytosios reikšmės:
44
1. 1kHz laikrodis (clock) – numatytasis operacinės sistemos laikrodis, jį
naudojant laiko struktūra gali vykdyti vieną iteraciją kartą į vieną
miliskundę. Visos Labview platformos kurios gali paleisti laiko struktūras
(tarp jų ir laiko ciklus) palaiko šio tipo šaltinį.
2. 1 MHz laikrodis – parenkamas 1 MHz laikrodis, palaikomas RT (realaus
laiko) objektų su Intel Pentium III ar vėlesnės klasės procesoriais, tokių
kaip NI PXI-817x ir NI PXI-818x įrenginiai. Jį naudojant ciklas gali vykdyti
iteraciją kas vieną mikrosekundę.
3. 1 kHz <reset at structure start> - parenkamas 1 kHz šaltinis, kuris
atsistato po kiekvienos struktūros iteracijos.
4. 1 MHz <reset at structure start> - parenkamas 1 MHz šaltinis, kuris
atsistato po kiekvienos struktūros iteracijos.
Prie vidinių šaltinių sąraše gali būti nurodomi ir paties vartotojo
sukonfigūruoti šaltiniai.
Source name nusako vardą atskiram šaltinio atvejui. Pavyzdţiui, jei bus
įvestas tas pats šaltinio vardas dviejose skirtingose struktūrose, abi struktūros
dalinsis ta pačia laikrodţio instancija kaip jų laiko skaičiavimo šaltiniu (naudojant
tą patį šaltinį uţtikrinama, kad struktūrų fazės yra tos pačios, bet struktūros gali
ir nestartuoti tuo pačiu metu).
Loop Timing Attributes – nurodomi pagrindiniai struktūros parametrai:
periodas ir prioritetas:
1. Period (periodas) – nurodo laiko tarpą, kuris praeina tarp dviejų tolesnių
ciklo iteracijų. Periodo laiko vienetas keičiasi priklausomai nuo pasirinkto
laiko skaičiavimo šaltinio.
2. Priority (prioritetas) – nurodo laiko struktūros, reliatyvios kitoms
struktūroms, vykdymo prioritetą. Kuo didesnis skaičius yra įvedamas tuo
didesnį prioritetą gauna struktūra lyginant su kitomis. Reikšmė turi būti
teigiamas sveikasis skaičius nuo 1 iki 65 535.
45
Advanced Timing — nurodomi sudėtingesni struktūros parametrai:
1. Deadline (galutinė riba) — nurodo laiko ribą ciklo iteracijos uţbaigimui. Jei
iteracija nesibaigia prieš nurodytą ribą, Finished Late? [i-1] (baigta vėlai?)
išvestis iš kairiojo duomenų bloko kitoje iteracijoje grąţins reikšmę TRUE.
2. Offset / Phase (atsvara / fazė)—nurodo starto laiką ar fazę struktūros
iteracijai. Šią pasirinktį galima naudoti struktūroms sinchronizuoti arba jų
fazėms sulygiuoti. Pavyzdţiui galima sukonfigūruoti du ciklus taip, kad jie
naudotų to paties laiko skaičiavimo šaltinio instanciją, nurodant tą patį
šaltinio vardą Source name skiltyje. Viename cikle į offset laukelį galima
įrašyti 0, o į kitą 100. Ciklai veiks savo atitinkamuose perioduose, bet 100
laiko vienetų atskirs jų vykdymą.
3. Timeout (pertrauka) — nurodo maksimalų laiko tarpą, kurį ciklas gali laukti
trigerinio (trigger) įvykio iš laiko skaičiavimo šaltinio. Jei ciklas nepradeda
veikti prieš nurodytą reikšmę, iteracija vykdoma ne laiku (untimed) ir
sekančioje iteracijoje grąţinama Timeout reikšmė kairiojo duomenų bloko
Timeout in the Wake-up reason išvestyje.
4. Loop name — unikalus ciklą identifikuojantis vardas.
28 pav. Laiko ciklų pavyzdys
46
Ilustracijoje pavaizduotoje blokinėje diagramoje naudoja numatytąsis
1kHz laiko skaičiavimo šaltinis. Periodas (dt) Ciklui A yra 1000 ms, o ciklui B -
500 ms, tai reiškia, kad Ciklas A yra vykdomas kas vieną sekundę, o Ciklas B kas
pusę sekundės. Abu ciklai baigia vykdymą praėjus 10 iteracijų, ciklas A vykdymą
baigs po 10 sekundţių, o ciklas B po 5 sekundţių.
29 pav. Laiko ciklai pavyzdys
Iliustacijoje pateiktoje blokinėje diagramoje Ciklui B yra pakeista Offset/
Phase reikšmė – iš 0 į 5000 ms. Dėl šios prieţasties ciklas vykdymą pradės po 5
s, tuo tarpu ciklas A veiks normaliai, t.y pradės vykdymą iškart ir baigs po 10
sekundţių.
Processor Assignment (procesoriaus paskyrimo) skiltis — nurodo
procesorių, kuris yra paskirtas ciklo vykdymo valdymui.
1. Mode (reţimas) — nurodo kaip paskirti laisvus procesorius vykdymo
valdymui. Galima pasirinkti tokius reţimus:
Automatinis (automatic) – LabVIEW paskiria procesorių automatiškai.
Procesoriaus (Processor) laukelis tampa neveiksnus ir nustatoma
vertė -2.
47
Savarankiškas (manual) – programuotojas įveda vertę nuo 0 iki 255,
kuri nurodo procesorių, kuris bus naudojamas ciklo vykdymo
valdymui.
2. Processor (procesorius) – laukelyje nurodomas procesorius, kurį
programuotojas nori paskirti vykdymo valdymui. Numatytoji reikšmė yra -
2, kuri reiškia, kad LabVIEW automatiškai paskiria procesorių. Norint tai
padaryti savarankiškai, į laukelį reikia įvesti skaičių nuo 0 iki 255, kur 0
reiškia pirmą įmanomą procesorių. Jei bus įvestas skaičius didesnis nei
galimų procesorių skaičius, bus sukurta relaus laiko klaida ir struktūra
nebebus vykdoma.
Action on Late Iterations (veiksmas dėl pavėlavusių iteracijų) — nurodo
pavėlavusios iteracijos reţimą ciklui.
Discard missed periods (atmesti praleistus periodus) — nurodo kad
ciklas išmestų bet kokius duomenis, sukurtus per praleistas iteracijas
ir vykdytų kitą numatytą iteraciją nustatytą per offset ir period
vertes.
Maintain original phase (išlaikyti originalią fazę) – nurodo kad ciklas
grįţtų į originaliai sukonfigūruotą fazę. Pašalinus ţymę nurodoma,
kad ciklas vyktų tame pačiame periode bet ne originaliai
sukonfigūruotoje fazėje.
Jei ciklas vėluoja, jis gali praleisti duomenis, kuriuos sugeneravo kiti laiko ciklai
ar įrenginiai. Pavyzdţiui, jei ciklas praleidţia dvi iteracijas ir kai kuriuos duomenis
iš dabartinio perodo, buferis gali pasaugoti duomenis iš praleistų iteracijų.
Vartotojas gali sukonfigūruoti ciklą, kad jis apdorotų praleistus duomenis prieš
susilygiuojant su nurodyta tvarka. Vis dėlto timed ciklas kuri apdoroja praleistas
iteracijas sukelia jitter (drebėjimą / mirgėjimą) (Jitter yra maţi pakitimai
laikrodţio periode (from sample to sample). Jie pasirodo kaip triukšmas
suskaitmenintame signale ir labiau paveikia aukštesnio daţnio signalus. Šį
reiškinį galima valdyti (bet ne pašalinti), naudojant tikslų laikrodţio šaltinį.
48
Jei vartotojas nenori apdoroti praleistų duomenų, ciklas gali ignoruoti
senesnius duomenis buferyje, kuriuos ciklo iteracijos praleido ir apdoroti tik
naujausius duomenis, tokius, kurie yra prienami kitame periode ir vėlesnėse
iteracijose.
Dukart spustelėjus dešinį duomenų bloką arba per kontekstinį meniu
pasirinkus Configure input node (konfigūruoti įvesties bloką) atsidarys Configure
next iteration (konfigųruoti sekančią iteraciją) langas.
30 pav. Configure next iteration langas
Šitas langas naudojamas nustatyti, kaip ciklas bus vykdomas per kitą
iteraciją. Galima nurodyti naują periodą, prioritetą ir kitas pasirinktis sekančiai
iteracijai. Period, priority, deadline, timeout, offset / phase numatytos reikšmės
yra -1, kas reiškia, jog reikšmės bus tokios pačios kaip ir praeitoje iteracijoje.
Laiko ciklą skirtingai nei While ar For ciklus, galima padalyti į kelias dalis
(kadrus). Per kontekstinį meniu pasirinkus Add Frame After arba Add Frame
Before. Tumet spsutelėjus du kartus ant pirmo kadro dešiniojo duomenų bloko
49
arba per kontekstinį meniu pasirinkus configure input node (konfigūruoti įvesties
bloką) atsivers langas configure next frame timing (konfigūruoti sekančio kadro
laiką) .
31 pav. Laiko ciklas padalytas į kadrus
Be jau ţinomų Priority, Deadline, Timeout, Mode, Processor ir Mode laukelių jame
yra Start laukelis. Start nurodo laiką nuo kurio bus pradėtas vykdyti sekantis
kadras. Nurodyta start laiko vertė turi būti reliatyvi praeito kadro startui.
50
32 pav. Configure next frame timing langas
4. VARTOTOJO SĄSAJOS KŪRIMAS
1. Naujojo virtualaus prietaiso sukūrimui spragtelkite New VI LabVIEW
dialogo lange.
2. Sukurkite stop mygtuką spragtelėję Controls>>Boolean>>Stop
Button valdymo paletėje, kaip parodyta ţemiau.
33 pav. Controls>>Boolean>>Stop Button parinkimas
3. Spragtelkite ant objekto dešiniuoju klavišu ir pasirinkite Visible
Items>>Label iš pasirodţiusio meniu tam, kad parodyti arba paslėpti objekto ţymę.
4. Objektų matmenų bei vietos pakeitimui naudokite išsidėstymo įrankį iš
įrankių paletės. Jei darbastalyje nesimato šios paletės spragtelkite Window>>Show
Tools Palette.
5. Sugrįţimui į pagrindinę valdymo paletę naudokite
mygtuką Up (aukštyn). Sukurkite bangos grafiką pasirenkant
Controls>>Graph>>Waveform Chart. Šis instrumentas braiţo grafiką po 1 tašką
51
prie vieną laiko momentą. Grafiko pavadinimo pakeitimui naudokite ţymeklį iš
įrankių paletės .
6. Norėdami pamatyti įrankių paletę spragtelkite Window>>Show Tools
Palette. Panaudokite valdymo įrankį grafiko skalės pakeitimui. Spragtelkite du
kartus ant -10 Y ašyje ir uţrašykite 0.0 skalės pakeitimui. Po to spragtelkite du
kartus ant 10 Y ašyje ir uţrašykite 1.0. Po pakeitimo grafikas turėtų atrodyti kaip
parodyta ţemiau.
34 pav. Controls>>Graph>>Waveform Chart parinkimas
4.1 Blokinės diagramos kūrimas
1. Norėdami pamatyti savo VP blokinę diagramą,
spragtelkite Window>>Show Diagram.
2. Dvi piktogramos blokinėje diagramoje atitinka Stop mygtuką ir grafiką,
kuriuos jūs įterpėt į vartotojo sąsają. Norėdami pamatyti funkcijų paletę,
spragtelkite Window>>Show Functions Palette.
3. Pasirinkite Functions>>Numeric>>Random Number (0-1). Priartinus
52
atsitiktinio skaičiaus funkciją prie grafiko piktogramos išvadų, LabVIEW automatiškai
sujungia juos laidais. Atleidus pelytės klavišą nuo funkcijos, LabVIEW automatiškai
prijungia laidą prie prievado.
4. Norėdami grįţti į pagrindinę funkcijų paletę spragtelkite Up navigacijos
mygtuką. Sukurkite kilpą „kol― (while loop),
pasirinkdami Functions>Structures>>While Loop. Kodas šioje kilpoje yra vykdomas,
kol būklės jungtis priima signalą TEISINGAI arba KLAIDINGAI (TRUE or FALSE).
Pagal nutylėjimą tas signalas yra „vykdyti jeigu teisingai― (Continue if True).
5. Nustatykite pelytės ţymeklį blokinėje diagramoje ten, kur jūs norite
pritvirtinti viršutinį kairįjį kilpos kraštą. Nutemkite rėmelį taip, kad jame atsirastų
atsitiktinio skaičiaus funkcija, grafikas ir stop mygtukas. Blokinė diagrama turėtų
atrodyti, kaip pavaizduota ţemiau pateiktame paveiksliuke.
35 pav. Functions>Structures>>While Loop (blokinė diagrama)
4.2. Virtualiųjų prietaisų sujungimas ir vykdymas
1. Spragtelkite Window>>Show Tools Palette, įrankių paletės aktyvavimui.
Pasirinkite jungimo įrankį iš įrankių paletės.
2. Naudodami jungimo įrankį, sujunkite Stop mygtuką su kilpos būklės
53
piktograma. Kad padarytumėte tai, spragtelkite Stop mygtuką, po to judėkite iki
būklės piktogramos. Spragtelėjus dar kartą, šios piktogramos susijungs laidais.
3. VP naudoja Stop mygtuką, todėl reikėtų pakeisti kilpos elgesį į tokį, kad
VP sustotų paspaudus Stop mygtuką. Spragtelkite dešiniuoju klavišu kilpos būklės
piktogramą ir pasirinkite Stop if True. Būklės piktograma turėtų atrodyti kaip
pavaizduota paveiksliuke iš kairės. Blokinė diagrama turėtų atrodyti kaip pavaizduota
ţemiau pateiktame paveiksliuke.
36 pav. Stop mygtukas (blokinė diagrama)
4. Pasirinkite pagrindinį skydelį paspaudus <Ctrl-E>. Įrankių paletei
aktyvuoti spragtelkite Window>>Show Tools Palette. Pasirinkite valdymo įrankį iš
šios paletės.
5. Spragtelkite vykdymo (Run) mygtuką VP vykdymui.
6. Spragtelkite Stop mygtuką VP sustabdymui
54
37 pav. Generuojamo signalo atavizdavimas
4.3. Virtualiųjų prietaisų sinchronizavimas
1. Aktyvuokite blokinę diagramą paspaudus <Ctrl-E>. Iš funkcijų paletės
pasirinkite Functions>>Time & Dialog>>Wait Until Next ms Multiple ir patalpinkite
piktogramą kilpoje.
2. Naudodami jungimo įrankį, spragtelkite dešiniuoju klavišu kairėje
piktogramos Wait Until Next ms Multiple pusėje ir pasirinkite Create>>Constant iš
atsiradusio meniu.
3. Įrašykite 250 atsiradusiame milisekundţių langelyje. Tokiu būdu jūs
sukursite 250 ms uţdelsimą tarp generuojamų grafiko taškų. Blokinė diagrama
turėtų atrodyti kaip pavaizduota ţemiau pateiktame paveiksliuke.
55
38 pav. Wait Until Next ms Multiple (uţdelsimas)
4. Vartotojo sąsajos langelyje paleiskite jūsų VP. Dabar galite stebėti, kaip
veikia jūsų VP uţdelsimo poveikis.
4.4. Duomenų analizė ir įvestis/išvestis
1. Blokinėje diagramoje aktyvuokite funkcijų paletę
spragteldami Window>>Show Functions Palette.
2. Pasirinkite Functions>>Mathematics>>Probability and
Statistics>>Mean.vi ir patalpinkite VP kilpos išorėje.
3. Naudodami jungimo įrankį spragtelkite ant vidurkio VP (Mean VI)
viršutiniame dešiniame kampe ir pasirinkiteCreate>>Indicator iš atsiradusio meniu.
Tokiu būdu vartotojo sąsajoje atsiras indikatorius, rodantis atsitiktinio skaičiaus
funkcijos vidurkį.
4. Pasirinkite Functions>>File I/O>>Write To Spreadsheet File.vi ir
patalpinkite šį VP kilpos išorėje.
5. Naudodami jungimo įrankį sujunkite vidurkio funkcijos X jungtį su laidų
jungiančiu atsitiktinio skaičiaus funkciją su grafiku. Lauţytas laidas parodo, kad jūs
bandote sujungti skirtingų duomenų tipo jungtis. Jūs pataisysite tai 7 ţingsnyje.
6. Sukurkite kitą laido atsišakojimą, prijungdami laidą nuo įrašančio į bylą
56
VP 1D data jungties prie laido dalies tarp vidurkio ir atsitiktinio skaičiaus, esančio
kilpos išorėje. Jūs naudojate vienos dimensijos jungtį, nes kilpa „kol― sukuria vienos
dimensijos skaičių eilutę iš duomenų sugeneruotų atsitiktinių skaičių. Laidai bus
lauţyti, bet jūs pataisysite tai 7 ţingsnyje.
7. Oranţinis kvadratėlis ant kilpos yra vadinamas tuneliu. Spragtelkite
dešiniuoju klavišu šį kvadratėlį ir pasirinkite Enable Indexing iš atsiradusio meniu.
Taip jūs sudarote sąlygas kilpai rinkti duomenis ir praleidinėti juos kaip surinktų
duomenų rinkinį, kada kilpos vykdymas yra sustabdytas. Lauţyti laidai turėtų
pasikeisti į vientisus oranţinės spalvos laidus, nes jungtis jau yra vieno tipo. Blokinė
diagrama turėtų atrodyti kaip pavaizduota ţemiau pateiktame paveiksliuke.
39 pav. Analizės VP modulių prijungimas
8. Grįţkite į vartotojo sąsają ir paleiskite VP. Kada
paspausite Stop mygtuką, jūs pamatysite duomenų vidurkį ir atsiras dialogo
langas Choose file to write. Įrašykite duomenys.txt ir išsaugokite bylą,
spragteldami Save mygtuką.
9. Atidarykite duomenys.txt bylą, naudodami tekstinį redaktorių.
57
PRATIMAI
Pratimas Nr.1
Darbo tikslas.
Susipaţinti su LabVIEW pagrindinių funkcijų generavimo virtualiais prietaisais ir
išmokti pavaizduoti funkcijas grafikuose.
Uţduotis.
1. Naujojo virtualaus prietaiso sukūrimui spragtelkite New VI LabVIEW
dialogo lange.
2. Sukurkite du bangos grafikus
pasirenkant Controls>>Graph>>Waveform Graph. Grafiko pavadinimo pakeitimui
naudokite ţymeklį iš įrankių paletės.
3. Objektų matmenų bei vietos pakeitimui naudokite išsidėstymo įrankį
iš įrankių paletės. Jei darbastalyje nesimato šios paletės
spragtelkite Window>>Show Tools Palette. Vartotojo sąsaja turėtų atrodyti kaip
parodyta ţemiau.
58
4. Aktyvuokite VP blokinę diagramą spragtelėję Window>>Show
Diagram.
5. Iš funkcijų paletės įterpkite sinusinės funkcijos VP
pasirenkant Functions>>Waveform>>Waveform Generation>>Sine
Waveform.vi. Pakartokite šį veiksmą įterpdami trikampinę funkciją (Triange
Waveform.vi), kvadratinę funkciją (Square Waveform.vi), pjūklinę funkciją
(Sawtooth Wave.vi) ir pagrindinių funkcijų generuoklę (Basic Function
Generator.vi).
6.Naudodami jungimo įrankį spragtelkite dešiniuoju pelytės klavišu
kairėje sinusinės funkcijos VP pusėje prie daţnio jungties (frequency) ir
pasirinkite Create>>Control iš atsiradusio meniu. Pakartokite tą patį veiksmą
kurdami amplitudes (amplitude) valdymą.
59
7.Naudodami jungimo įrankį prijunkite prie atsiradusių valdymo įrankių
kitų virtualiųjų prietaisų daţnio ir amplitudės jungtis.
8. Naudodami jungimo įrankį spragtelkite dešiniuoju pelytės klavišu
viršutinėje pagrindinių funkcijų generuoklės pusėje prie signalo tipo (signal type)
jungties ir pasirinkite Create>>Control iš atsiradusio meniu.
9. Sukurkite kilpą „kol― (while loop),
pasirinkdami Functions>>Structures>>While Loop. Kilpoje turi atsirasti visi VP
esantys blokinėje diagramoje.
10. Prie būklės jungties prijunkite loginį „Taip―, kuris
yra Functions>>Boolean>>True Constant. Blokinė diagrama turėtų atrodyti kaip
parodyta ţemiau.
11. Naudodami jungties įrankį prijunkite antrą grafiką prie pagrindinių
funkcijų generuoklės išėjimo jungties (signal out).
12. Norint prijungti likusias funkcijų generuokles prie pirmo grafiko, reikia
sudaryti iš jų masyvą. PasirinkiteFunctions>>Array>>Build Array ir patalpinkite
šį VP blokinėje diagramoje.
60
13. Pagal nutylėjimą masyvo sudarymo įrankis turi tik viena įėjimą.
Spragtelkite dešiniuoju pelytės klavišų šį įrankį ir pasirinkite Add Input iš
atsiradusio meniu. Kartokite šį veiksmą tol, kol neatsiras keturi įėjimai.
14. Prie masyvo sudarymo įrankio iš kairės pusės prijunkite dar
neprijungtas funkcijų generuokles. Prie dešinės masyvo sudarymo įrankio pusės
prijunkite pirmą grafiką. Blokinė diagrama turėtų atrodyti, kaip pavaizduota
ţemiau.
15. Pasirinkite pagrindinį skydelį paspaudus <Ctrl-E>. Naudodami
išsidėstymo įrankį, patalpinkite valdymo įrankius į jums patogią vietą.
16. Spragtelkite Run VP vykdymui. Dabar galite keisti signalų daţnius,
amplitudes ir signalų tipus ir stebėti signalų grafikus.
61
Pratimas Nr.2
Darbo tikslas.
Išmokti įtraukti duomenis į VP, sudaryti iš tų duomenų pasiskirstymo histogramą
bei paskaičiuoti duomenų aritmetinį vidurkį, standartinę paklaidą bei dispersiją.
Trumpa teorija.
Pasiskirstymo histogramoje abscisių ašyje yra atidedamos klasių ribos, o
ordinačių ašyje – stačiakampiai, kurių plotas lygus klasės santykiniam daţniui, o
aukštis – atitinkamos klasės vidutiniam empiriniam tikimybės tankiui. Visos
histogramos stačiakampių plotas pagal tikimybės tankio normavimo sąlygą yra
62
lygus vienetui.
Tikrosios matuojamo dydţio vertės įverčių laikomas matavimo rezultatų
aritmetinis vidurkis. Jeigu matavimai yra vienodo tikslumo, tai aritmetinis
vidurkis nustatomas taip:
Čia n – matavimų skaičius, xn – n-tojo matavimo metu gauta matuojamo
dydţio vertė.
Matavimo rezultatų atsitiktinių paklaidų dispersijos įverčių, kai rezultatas yra
vienodo tikslumo, yra:
Daţniau nei paklaidų dispersijos įvertį prireikia naudoti standartinės
paklaidos įvertį, todėl tenka traukti kvadratinę šaknį iš σn2:
Uţduotis.
63
1. Naujojo virtualaus prietaiso sukūrimui spragtelkite New VI LabVIEW
dialogo lange.
2. Sukurkite XY grafiką pasirinkdami Controls>>Graph>>XY Graph.
Grafiko pavadinimo pakeitimui naudokite ţymeklį iš įrankių paletės.
3. Objektų matmenų bei vietos pakeitimui naudokite išsidėstymo įrankį iš
įrankių paletės. Jei darbastalyje nesimato šios paletės, spragtelkite Window>>Show
Tools Palette. Vartotojo sąsaja turėtų atrodyti kaip parodyta ţemiau.
4. Norėdami pamatyti savo blokinę diagramą, spragtelkite Window>>Show
Diagram.
5. Įterpkite histogramos įrankį
spragteldami Analyze>>Mathematics>>Probability and Statistics>> Histogram.vi.
6. Įterpkite standartinės paklaidos ir dispersijos funkcijos įrankį,
spragtelėdami Analyze>>Mathematics>> Probability and Statistics>>Standart
Deviation and Variance.
7. Naudodami jungimo įrankį spragtelkite dešiniuoju pelytės klavišu
64
dešinėje standartinės paklaidos ir dispersijos įrankio pusėje ir sukurkite aritmetinio
vidurkio, standartinės paklaidos ir dispersijos indikatorius,
pasirinkdamiCreate>>Indicator iš atsiradusio meniu.
8. Sukurkite klasių skaičiaus pasirinkimo įrankį spragteldami dešiniuoju
pelytės klavišu dešinėje tikimybinės pasiskirstymo histogramos įrankio pusėje ir
pasirinkite Create>>Indicator iš atsiradusio meniu.
9. Įterpkite duomenų nuskaitymo iš bylos įrankį pasirinkdami Functions>>File
I/O>>Read From Spreadsheet File.vi. Sujunkite įrankius, kaip pavaizduota ţemiau.
10. Duomenų nuskaitymui iš kiekvienos tekstinės bylos eilutės prijunkite
loginį „Taip― prie duomenų nuskaitymo iš bylos įrankio perkėlimo (transpose)
jungties. Loginį „Taip― galite rasti spragtelėję Functions>>Boolean>>True
Constant.
11. Duomenų prijungimui prie histogramos grafiko naudokite ryšulio įrankį,
kuris yra Functions>>Cluster>> Bundle. Prijunkite prie kairės jo
pusės h(X) ir X histogramos išėjimus.
12. Sujunkite blokinę diagramą, kaip pavaizduota ţemiau.
65
13. Su tekstiniu redaktoriumi sukurkite bylą ir įveskite į ją duomenis kaip
pavaizduota ţemiau.
14. Pasirinkite vartotojo sąsają paspausdami <Ctrl-E>.
15. Išdėstykite įrankius jums patogioje vietoje.
16. Tam, kad grafike būtų vaizduojama ne kreivė, o stulpeliai, spragtelkite
dešiniuoju klavišu grafiko uţrašą ir pasirinkite iš Bar Plots jums tinkamą
horizontalių stulpelių vaizdavimo būdą.
66
17. Spragtelkite Run VP vykdymui. Atsiradusiame dialogo lange
pasirinkite prieš tai sukurtą bylą. Rezultatai turėtų atrodyti kaip pavaizduota
ţemiau.
Pratimas Nr.3
Darbo tikslas.
Išmokti naudotis LabVIEW formulių mazgu, atvaizduoti formulę XY grafike, bei
įrašyti rezultatų duomenis į tekstinę bylą.
Trumpa teorija.
Prijungus prie pn sandūros išorinę įtampą, sutrinka krūvininkų difuzijos ir dreifo
pusiausvyra ir per pn sandūrą ima tekėti srovė. Šios srovės priklausomybė nuo
67
įtampos yra netiesinė ir vadinama pn sandūros voltamperine charakteristika.
Idealios pn sandūros voltamperinės charakteristikos grafikas ir formulė
yra pateikti ţemiau.
kur:
Is - atgalinė pn sandūros srovė;
q - elektrono krūvis (1,602∙10-19 C);
U - įtampa (voltais);
T - normali temperatūra (kelvinais);
k - Bocmano konstanta (1,381∙10-23 J/mol);
Uţduotis.
1. Naujojo virtualaus prietaiso sukūrimui spragtelkite New VI LabVIEW
dialogo lange.
2. Grafiko pavadinimo pakeitimui naudokite ţymeklį iš įrankių paletės.
3. Objektų matmenų bei vietos pakeitimui naudokite išsidėstymo įrankį iš
68
įrankių paletės. Jei darbastalyje nesimato šios paletės, spragtelkite Window>>Show
Tools Palette.
4. Įterpkite XY grafiką į vartotojo sąsają spragtelėję Controls>>Graph>>XY
Graph.
5. Spragtelkite Controls>>Numeric>>Digital Control ir įterpkite penkis
skaičių valdymo įrankius į vartotojo sąsają.
6. Naudodami ţymeklį pakeiskite skaičių valdymo įrankių pavadinimus į
Umin (minimali įtampa), Umax (maksimali įtampą), dV (įtampos ţingsnis), Is
(atbulinė srovė), T (normali temperatūra).
7. Spragtelkite dešiniuoju pelytės klavišu į temperatūros valdymo įrankį ir
pasirinkite Format & Precision iš atsiradusio meniu. Tikslumo skiltyje (Digits of
Precision) įrašykite 0. Tokiu būdu temperatūros valdymo įrankyje nebus rodomi
skaičiai po kablelio. Vartotojo sąsaja turėtų atrodyti, kai parodyta ţemiau.
69
8. Naudodami valdymo įrankį spragtelkite grafiką dešiniuoju pelytės
klavišu ir nuimkite varnelę nuo Y Scale>>AutoScale Y. Y ašyje pakeiskite skalę
nuo -1 iki 30.
9. Paspauskite <Ctrl-E> blokinės diagramos aktyvavimui.
10. Tuščioje vietoje sukurkite gana platų formulės mazgą
pasirinkdami Functions>>Structures>>Formula Node. Šiame mazge vėliau bus
įrašytos formulės.
11. Aplink formulės mazgą sukurkite kilpą (For Loop)
spragtelėję Functions>>Structures>>For Loop.
12. Spragtelkite dešiniuoju pelytės klavišu formulės mazgą ir sukurkite
septynis įėjimus – i, dV, Umin, q, k, T, Is(didelės ir maţos raidės nėra tas pats!)
pasirinkdami Add Input iš atsiradusio meniu.
13. Tokiu pačiu būdu sukurkite du išėjimus I ir U pasirinkdami Add Output.
14. Naudodami jungties įrankį prijunkite atitinkamus skaičių valdymo
įrankius prie formulės mazgo įėjimo.
15. Sukurkite dvi skaičių
konstantas q ir k spragtelėję Functions>>Numeric>>Numeric Constant.
16. Spragtelkite dešiniuoju pelytės klavišu q konstantą ir pasirinkite Format
& Precision iš atsiradusio meniu. Tikslumo skiltyje (Digits of Precision) įrašykite 3 ir
pasirinkite Scientific Notation. Įrašykite 1,603E-19 į skaičiaus dėţutę. Pakartokite
tą pati veiksmą su k konstanta įrašydami į skaičiaus dėţutę 1,381E-23.
17. Įterpkite skirtumo ir dalybos įrankius
spragtelėję Functions>>Numeric. Naudodami jungties įrankį sujunkite įrankius,
kaip pavaizduota ţemiau. Dabar kilpa bus vykdoma tiek kartų, koks bus
formulės (Umax-Umin)/dV rezultatas.
70
18. Dviejų išėjimų (U ir I) prijungimui prie grafiko naudokite ryšulio
įrankį, kurį rasite Funtions>>Cluster>>Bundle. Prijunkite išėjimus (U ir I) prie
dešinės ryšulio funkcijos pusės, o prie kitos jo pusės prijunkite grafiką.
19. Į formulės mazgą įrašykite įtampos funkciją: U=Umin+dV*i; (kiekviena
funkcija turi pasibaigti kabliataškiu). Tokiu būdu U išėjime atsiras įtampos reikšmių
masyvas nuo Umin iki Umax su dV ţingsniu.
20. Į formulės mazgą įrašykite srovės funkciją: I=Is*(exp((U*q)/(T*k))-1);.
Tokiu būdu I išėjime atsiras srovės reikšmių masyvas.
21. Duomenų įrašymui į bylą naudokite VP, kuris yra Functions>>File
I/O>>Write to Spreadsheet File.vi.
22. Duomenys įrašomi į bylą turi būti masyvo pavidalu. Tam tikslui naudokite
masyvo sudarymo įrankį, kuris yraFunctions>>Array>>Buid Array. Pagal
nutylėjimą šis įrankis turi vieną įėjimą.
23. Spragtelkite dešiniuoju pelytės klavišu masyvo sudarymo įrankį ir
pasirinkite Concaternate Inputs iš atsiradusio meniu. Po to pasirinkite Add
Input.
24. Prijunkite U ir I išėjimus prie masyvo sudarymo įrankių. Kitą įrankio galą
71
prijunkite prie įrašymo i bylą įrankio 2D Data jungties.
25. Iš funkcijų paletės pasirinkite loginę konstantą „Taip―
spragtelėję Functions>>Boolean>>True Constant. Prijunkite ją prie įrašymo į
bylą įrankio transpose jungties. Tokiu būdu tekstinėje byloje dviejų dimensijų
masyvas bus įrašytas i du stulpelius (neprijungus loginio „Taip― prie perkėlimo
(transpose) jungties, masyvas į tekstinę bylą būtų surašytas viena eilute).
26. Pasirinkite Controls>>Numeris>>Digital Indicator ir pajunkite jį
prie kilpos informacinės jungties. Indikatoriuje bus pavaizduotas atliktų operacijų
skaičius.
27. Spragtelkite Run VP vykdymui.
28. Atsiradusiame langelyje įrašykite bylos (pvz. duomenys.txt), į kurią bus
išsaugoti rezultatai, pavadinimą. Atidarykite bylą ir perţiūrėkite duomenis.
Pagrindinis skydelis po vykdymo turėtų atrodyti kaip pavaizduota ţemiau.
72
29. Duomenų byla turėtų atrodyti, kaip pavaizduota ţemiau. Kairiajame
stulpelyje yra įrašytos įtampos reikšmės, o dešiniajame – srovės reikšmės.
73
5. LOGINĖS ALGEBROS ELEMENTAI
1. Neigimas – loginis elementas NE (invertorius)
Loginis elementas NE (NOT). Jis turi vieną įėjimą ir vieną išėjimą. Jei
įėjime esti loginio vieneto įtampa, išėjime – loginio nulio ir atvirkščiai. Jei du NE
elementai sujungiami nuosekliai, signalas antrojo elemento išėjime kartoja
įtampos kitimus pirmojo elemento įėjime.
Ţymimas simboliu - ar .
40 pav. Loginis elementas NE (NOT) grafinis ţymėjimas
9 lentelė. • Loginio elemento NE (NOT) Reikšmių lentelė:
x x
K T
T K
2. Konjunkcija – loginis elementas IR
Elementas IR ( AND) turi du arba daugiau įėjimų. Išėjimo signalas
įgyja vieneto reikšmę tik tada, kuomet į visus įėjimus paduodama vieneto
reikšmė.
Ţymimas simboliu ar *.
74
41 pav. Loginis elementas IR ( AND) grafinis ţymėjimas
10 lentelė. Loginio elemento IR ( AND)Reikšmių lentelė:
x y x
y
T T T
T K K
K T K
K K K
3. Disjunkcija – loginis elementas ARBA
Elementas ARBA (OR) turi du arba daugiau įėjimų. Išėjimo signalas
įgyja vieneto reikšmę jei į bet kurį įėjimą paduodama vieneto reikšmė.
Ţymimas simboliu ar +
42 pav. Loginis elementas ARBA (OR) grafinis ţymėjimas
11 lentelė. Loginio elemento ARBA (OR) Reikšmių lentelė:
x y x
y
75
T T T
T K T
K T T
K K K
4. Loginis elementas IR-NE
Elementas IR – NE (NAND) turi du arba daugiau įėjimų. Išėjimo
signalas įgyja nulio reikšmę tik tada, kuomet į visus įėjimus paduodama vieneto
reikšmė; kitu atveju išėjime esti vieneto reikšmė.
Tai labai populiarūs elementai, nes įvairiai juos jungiant galima gauti
IR, ARBA, NE elementus ar bet kurią kitą loginę funckiją.
43 pav. Loginis elementas IR – NE (NAND)grafinis ţymėjimas
12 lentelė. Loginio elemento IR – NE (NAND)Reikšmių lentelė:
x y (x y)
T T K
T K T
K T T
K K T
5. Loginis elementas - Išskirtinis ARBA
Elementas Išskirtinis ARBA ( XOR / exclusive OR), dar vadinamas
palyginimo elementu, paprastai turi du (labai retai daugiau) įėjimų. Dviejų įėjimų
76
elementui išėjimo signalas įgyja nulio reikšmę tik tada, jei abiejų įėjimo signalų
reikšmės lygios. Jei įėjimo signalų reikšmės skirtingos (nesvarbu kokios), įšėjime
esti loginio vieneto reikšmė.
Tokie elementai gerai tinka lyginimo operacijai. Esant daugiau įėjimų,
elemento išėjimo signalas lygus vienetui jei įėjimo signalų, turinčių vienetinį lygį,
skaičius yra nelyginis.
44 pav. Loginis elementas Išskirtinis ARBA ( XOR / exclusive OR)grafinis
ţymėjimas
13 lentelė. Loginio elemento Išskirtinis ARBA ( XOR / exclusive OR)Reišmių lentelė:
x y XOR
T T K
T K T
K T T
K K K
6. Loginis elementas – ARBA-NE
Elementas ARBA – NE (NOR) turi du arba daugiau įėjimų. Išėjimo
signalas įgyja nulio reikšmę jei į bet kurį įėjimą paduodama vieneto reikšmė. Kitu
atveju išėjime turi vieneto reikšmė.
77
45 pav. Loginis elementas Išskirtinis ARBA – NE (NOR) grafinis ţymėjimas
14 lentelė. Loginio elemento ARBA – NE (NOR) Reikšmių lentelė:
x y (x y)
T T K
T K K
K T K
K K T
78
6. LOGINĖS ALGEBROS ELEMENTAI LabVIEW APLINKOJE
6.1. Loginiai veiksmai su pora įvesčių
1. Loginis IR (AND)
Apskaičiuoja visų ivesčių loginį IR. Abi įvestys privalo būti Boolean tipo kintamieji
arba skaitinės reikšmės. Jeigu abi įvestys yra TIESA (TRUE), tada funkcija
grąţina tiesos reikšmę, kitu atveju KLAIDOS (FALSE) reikšmę.
46 pav. Loginis IR (AND)
47 pav.
x.and.y? – tai x bei y loginis IR
x – privalo būti Boolean kintamasis ar skaitinė vertė. Tai taip pat
gali būti ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean
kintamųjų ir t.t.
y - privalo būti Boolean kintamasis ar skaitinė vertė. Tai taip pat
gali būti ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean
kintamųjų ir t.t.
Reikšmių lentelė:
x y x .and. y?
T T T
T K K
79
K T K
K K K
2. Loginis ARBA (OR)
Apskaičiuoja loginį ARBA (OR) visų įvesčių. Abi įvestys turi būt Boolean tipo
kintamieji arba skaitinės reikšmės. Jeigu abi įvestys turi KLAIDOS (FALSE)
reikšmes, tai funkcija grąţina KLAIDOS reikšmę.
48 pav. Loginis ARBA (OR)
49 pav.
x.or.y? – tai yra x bei y loginis ARBA.
x – privalo būti Boolean kintamasis ar skaitinė vertė. Tai taip pat gali būti ir
skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir t.t.
y - privalo būti Boolean kintamasis ar skaitinė vertė. Tai taip pat gali būti ir
skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir t.t.
Reikšmių lentelė:
x y x .or. y?
T T T
T K T
K T T
K K K
80
3. Išskirtinis ARBA (exclusive OR/XOR)
Apskaičiuoja grieţtą (XOR) visų įvesčių ARBA. Abi įvestys turi būti Boolean
kintamųjų tipų. Jeigu ai įvestys yra TIESA, arba abi KLAIDA, funkcija grąţina
klaidos reikšmę. Kitu atveju funkcija grąţina TIESOS reikšmę.
50 pav. Išskirtinis ARBA (exclusive OR/XOR)
x.or.y? – tai yra x bei y loginis ARBA.
x – privalo būti Boolean kintamasis ar skaitinė vertė. Tai taip pat
gali būti ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean
kintamųjų ir t.t.
y - privalo būti Boolean kintamasis ar skaitinė vertė. Tai taip pat
gali būti ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean
kintamųjų ir t.t.
Reikšmių lentelė:
x y x .and. y?
T T K
T K T
K T T
K K K
81
4. NE (NOT)
Apskaičiuoja loginį įvesties paneigimą. Jeigu x yra KLAIDA (FALSE), funkcija
grąţina TIESOS (TRUE) reikšmę. Jeigu x yra TIESA, funkcija grąţina KLAIDOS
reikšmę.
51 pav. NE (NOT)
.not. x? – tai yra loginis x paneigimas.
x – gali būti skaliarinė Boolean kintamojo ar skaitinė vertė, masyvas ar
grupelė Boolean kintamųjų verčių ar skaičių ir t.t.
Reikšmių lentelė:
x .not. x?
K T
T K
5. IR - NE (NOT AND)
Apskaičiuoja loginį visų įvesčių IR paneigimą (NAND) . Abi įvestys turi būti
Boolean tipo kintamieji arba skaitinės reikšmės. Jeigu abi įvestys yra TIESA
(TRUE), tada funkcija graţins KLAIDOS (FALSE) reikšmę. Kitu atveju bus
grąţinama TIESOS reikšmė.
82
52 pav. IR - NE (NOT AND)
.not. (x .and. y)? – tai yra loginis x IR y paneigimas.
x – privalo būti Boolean kintamasis ar skaitinė vertė. Tai, taip pat,
gali būti ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir
t.t.
y - privalo būti Boolean kintamasis ar skaitinė vertė. Tai, taip pat, gali
būti ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir t.t.
Reikšmių lentelė:
x y x .not. (x .and. y)?
T T K
T K T
K T T
K K T
6. ARBA - NE (NOT OR)
Apskaičiuojamas loginis visų įvesčiu ARBA (NOR) paneigimas. Abi įvestys turi būti
Boolean tipo kintamieji arba skaitinės reikšmės. Jei abi įvestys yra KLAIDA
(FALSE), tada funkcija grąţina TIESOS (TRUE) reikšmę. Kitu atveju grąţina
KLAIDOS reikmšmę.
83
53 pav. ARBA - NE (NOT OR)
x. (x .xor. y)? – tai yra x bei y loginis ARBA (OR) ir loginis x
paneigimas.
x – privalo būti Boolean kintamasis ar skaitinė vertė. Tai, taip pat, gali būti
ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir t.t.
y - privalo būti Boolean kintamasis ar skaitinė vertė. Tai, taip pat, gali būti
ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir t.t.
Reikšmių lentelė:
x y .not. (x .or. y)?
T T K
T K K
K T K
K K T
7. NE išskirtinis ARBA (NE exclusive OR/ NOR XOR)
Apskaičiuoja visų įvesčių grieţto ARBA (XOR) loginį paneigimą . Abi įvestys turi
būti Boolean tipo kintamieji arba skaitinės reikšmės. Jeigu abi įvestys yra TIESA
(TRUE) arba abi įvestys yra KLAIDA (FALSE), tada fuknkcija grąţina TIESOS
reikšmę. Kitu atveju grąţinama KLAIDOS reikšmė.
84
54 pav. NE išskirtinis ARBA (NE exclusive OR/ NOR XOR)
x. (x .xor. y)? – tai yra x bei y loginis ARBA (OR) ir loginis x
paneigimas.
x – privalo būti Boolean kintamasis ar skaitinė vertė. Tai, taip pat, gali būti
ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir t.t.
y - privalo būti Boolean kintamasis ar skaitinė vertė. Tai, taip pat, gali būti
ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir t.t.
Reikšmių lentelė:
x y .not. (x .xor. y)?
T T T
T K K
K T K
K K T
8. Implikacija (Implies)
Paneigia x ir tada suskaičiuoja y loginį ARBA (OR) ir paneigtą x. Abi įvestys turi
būti Boolean tipo kintamieji arba skaitinės reikšmės. Jeigu x yra TIESA (TRUE), o
85
y yra KLAIDA (FALSE), funkcija grąţina KLAIDOS reikšmę. Kitu atveju, grąţinama
TIESOS reikmė.
55 pav. Implikacija (Implies)
x.implies.y? – tai yra x bei y loginis ARBA (OR) ir loginis x paneigimas.
x – privalo būti Boolean kintamasis ar skaitinė vertė. Tai, taip pat, gali
būti ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir
t.t.
y - privalo būti Boolean kintamasis ar skaitinė vertė. Tai, taip pat, gali būti
ir skaliaras, masyvas ar grupelė skaitmenų arba Boolean kintamųjų ir t.t.
Reikšmių lentelė:
x y x .implies. y?
T T T
T K K
K T T
K K T
6.2. Loginiai veiksmai su masyvais
86
1. Loginis masyvo IR (AND array elements)
Grąţina TIESOS (TRUE) reikšmę, jei visi elementai loginiame masyve (Boolean
array) yra tiesa arba jei šis masyvas yra tuščias. Kitu atveju funkcija grąţina
KLAIDOS (FALSE) reikšmę. Ši funkcija apdoroja betkokio dydţio masyvą , tačiau
grąţina tik vieną reikšmę.
56 pav. Loginis masyvo IR (AND array elements)
Boolean tipo kintamųjų masyvas gali būti betkokio dydţio.
Loginis IR perduoda signalą, jei visi Boolean tipo masyvo kinatmieji turi
TIESOS reikšmę.
2. ARBA masyvo elemantai (OR array elements)
Grąţinama KLAIDOS (FALSE) reišmė, jei visi elementai Boolean tipo kintamųjų
masyve turi KAIDOS reikšmę arba je visi Boolean tipo kinatmųjų masyvas yra
tusčias. Kitu atveju, fukcija grąţinam TIESOS (TRUE) reikšmę. Ši funkcija priima
bet kokio dydţio masyvą, tačiau grąţina tik vieną reikšmę, kuri remiasi visomis
Boolean masyvo reikšmėmis.
57 pav. ARBA masyvo elemantai (OR array elements)
58 pav.
87
Boolean tipo kintamųjų masyvas gali būti betkokio dydţio.
Loginis IR perduoda signalą, jei visi Boolean tipo masyvo kinatmieji turi
KLAIDOS reikšmę.
3. Iš Skaičiaus į Boolean masyvą (Number to Boolean array)
Paverčia svaikąjį skaičių arba fiksuoto taško (fixed-point) skaičių į Boolean tipo
kintamųjų masyvą.
Jeigu sveikasis skaičius yra prijungiamas kaip skaitmuo (number), tada
Boolean tipo masyvas grąţina masyva iš 8, 16, 32, 64 elementų. Tai
priklauso bitų skaičiaus sveikąjame skaičiuje.
Jeigu fiksuoto taško skaičius yra prijungiamas kaip skaitmuo, tada masyvo
dydis, kurį grąţina Boolean tipo masyvas, yra ţodţio ilgio.
59 pav. Iš Skaičiaus į Boolean masyvą (Number to Boolean array)
Skaitmuo (number) turi būti skaičius.
Boolean tipo masyvas (Boolean array) gali turėti 8, 12, 32, 64 elementus,
jei skaitmuo (number) yra sveikasis skaičius. Jeigu skaitmuo yra fiksuoto
taško, tada Boolean tipo masyvas gali turėti tarp 1 ir 64 elementų.
4. Boolean masyvas į skaičių (Boolean array to number)
88
Funkcija paverčia Boolean tipo masyva į sveikajį arba fiksuoto taško (fixed-
point) skaičių, suprasdama masyva kaip dvejetainių skaičių kodą, kuris nusako
skaičių.
Pavzdziui, jeigu prie šios funkcijos yra prijungiamas masyvas, kuris turi du
Boolean tipo kintamuosius, ir nei vieno kintamojo reikšmė nėra TIESA (TRUE),
tada funkcija grąţina 0. Jeigu pirmoji masyvo reikšmė yra TIESA, funkcija grąţina
1. Jeigu antroji masyvo reikšmė yra TIESA, funkcija grąţina 2 ir jeigu abi masyvo
ir, jeigu abi funkcijos reikšmės yra TIESOS, funkcija grąţina 3.
60 pav. Boolean masyvas į skaičių (Boolean array to number)
Skaitmuo (number) yra sveikasis skaičius arba fiksuoto taško(fixed-point)
skaičius.
Boolean tipo masyvas (Boolean array) yra vienmatis Boolean kitamųjų
reikšmių masyvas. Ši funkcija sutrumpina Boolean tipo masyva, jeigu jis
yra pernelyg ilgas ir padidina jį su Boolean KLAIDOS bitais, jeifu Boolean
tipo kintamųjų masyvas pernelyg trumpas.
Galima panaikinti pagal nutylėjimą esančius parametrus, keičiant išėjimo
parametrus per Properties.
5. Boolean į (0,1) (Boolean to (0,1)
Paverčia Boolean kintamojo įvesties TIESOS (TRUE) arba KLAIDOS (FALSE)
reišmė į 16 bitų sveikąjį skaičių su reikšme 0 arba 1 nurodyta tvarka.
89
61 pav. Boolean į (0,1) (Boolean to (0,1)
Boolean kintamasis gali būti skaliaras, masyvas arba grupelė skaitmenų
ar Boolean kintamųjų ir t.t.
0, 1 yra 0, jeigu Boolean reikšmė yra KLAIDA ir 1,jeigu Boolean yra
TIESA.
6.3. Kiti loginiai veiksmai
1. KLAIDOS konstanta (FALSE constant)
Konstanta naudojama, kad suteikti KLAIDOS reikšmę schemos daliai.
2. TIESOS konstanta (TRUE constant)
Konstanta naudojama suteikti klaidos reikšmę schemos daliai.
3. MIŠRIOJI aritmetika (COMPOUND arithmethics)
Atlieka artimetinius veiksmus su įvairiomis įvestimis : vienu arba daugiau
skaitmenų, masyvų, skaičiu grupių, Boolean tipo kintamaisiais. Norimą atlikti
operaciją (sudėtį (add), daugybą (multiply), loginius veiksmus IR (AND), ARBA
(OR), grieţtą ARBA (XOR)) pasirenkame paspaudami dešiniu pelės klavišu ant
ikonos ir pasirinkdami Change Mode iš sparčiojo meniu. Pasirenkant šią funkciją
iš Skaitmeninės paletės (Numeric palette) numatytasis yra sudėties reţimas.
90
Pasirenkant šią funkciją iš Loginių reikšmių paletės (Boolean palette) numatytasis
yra ARBA reţimas.
62 pav. MIŠRIOJI aritmetika (COMPOUND arithmethics)
Reikšmė 0..n-1 (value 0..n-1) gali būti skaičius arba Boolean reikšmė,
skaičių arba Boolean reikšmių masyvas, grupė skaitmenų, grupės
skaitmenų masyvas ir t.t. Jeigu įvestis yra signalas, galima turėti neribotą
kiekį įvairau dydţio skaliarinės formos įvesčių.
Rezultatas (result) grąţinamas priklausomai nuo pasirinktos operacijos
visoms reikšmėms. Operacijos IR (AND), ARBA (OR), grieţtas ARBA
(XOR), rezultatas grąţina bitines operacijas skaitinėms įvestims ir logines
operacijas Boolean tipo įvestims.
Papildomų įvesčių galime pridėti kiek norime. Jas pridedame spragtėldami dešiniu
pelės klavišu ant atskirų išėjimų ir pasirinkdami Perversti (Invert) sparčiąjame
meniu.
Sudėties operacijai Perverti pasirenkamas, kad paneigti įvestį arba
išėjimą.
Daugybos operacijai Pervesti pasirenkamas, kad būtų naudojamos
atvirkšinės įvesties arba pateikiamos atvirktinės išėjimo reikšmės.
91
IR, ARBA, grieţtam ARBA operacijoms Perversti pasirenkamas bitiniam
papildymui sveikuoju skaičiu įvestyje ar išėjime arba logiškai paneigti
įvestį ar išėjimą.
Kai naudojame funkcijos Mišriosios aritmetikos operaciją gieţtąjį ARBA su 3 ar
daugiau įvesčių, pirmiausia operacija yra atliekami su pirmomis dviem įvestimis.
Po to, operacija atliekama su pirmosios poros rezutatu ir trečia įvestimi. Šios
poros rezultatas yra naudojamas atliekant operaciją su ketivrtąją įvestimi.
Operacijos atliekamos tol kol sutvarkomos visos įvestys.
Šios funkcijos negalima naudoti su racionaliais skaitmenimis. Jeigu tokie skaičiai
prijungiami programa nepasileis, bus rodomas lauţytas Paleisti (Run) ţenkliukas.
Pratimas Nr.4
Pasinaudojant LabVIEW 2010 programine įranga sukonstruoti loginius elenentus
ir įsitikinti jų veikimą (riamentis pateiktu pavyzdţiu).
92
93
7. KOMBINACINĖS LOGINĖS SCHEMOS
Kombinacinės loginės schemos - tai schemos be atminties, automatai
su nuline atmintimi, arba nulinės eilės automatai, kurių išėjimų signalus
vienareikšmiškai nustato tuo metu veikiantys signalai šių schemų įėjimuose.
Kartais vartojami "kombinatorinių schemų" arba "kombinatorikos" terminai.
Angliškas terminas – combinational logic.
7.1. Kombinacinių loginių schemų projektavimo etapai
Kombinacinės loginės schemos paprastai projektuojamos tokia tvarka:
1. Sudaromas ţodinis projektuojamo įtaiso veikimo aprašymas kalba,
panašia į tas kalbas, kuriomis rašomos programos: ‖jeigu ... , tai", "o jeigu ... , ir
... , arba ... ir ... , tai... ".
2. Įvardijami loginiai kintamieji ir loginės funkcijos.
3. Pagal ţodinį aprašymą sudaroma loginės funkcijos, kurią turi
vykdyti projektuojama schema, reikšmių lentelė.
4. Remiantis reikšmių lentele, uţrašoma loginės funkcijos išraiška.
5. Uţrašytoji loginės funkcijos išraiška minimizuojama.
6. Sudaroma minimizuotą funkciją vykdanti loginė schema.
Kombinacinės loginės schemos sudarymą pradėsime tarę, kad jau ţinome
schemos vykdomą loginę funkciją, uţrašytą minimaliu sandaugų sumos (SAS)
pavidalu.
1. Sudaromas signalų sąrašas ir uţrašoma loginės funkcijos darbinė
išraiška.
2. Išdėstomi loginę funkciją vykdantys loginiai elementai.
3. Nurodoma inversija loginių elementų įėjimuose.
7.2. Dvejetainiai sumatoriai
94
Paprasčiausias dvejetainių skaičių sumatorius (angl. – binary adder)
skirtas vienaskilčiams ţemiausios nulinės skilties skaičiams sumuoti, dar
vadinamas pussumatoriumi (angl. – half adder). Jis turi du įėjimo signalus –
sumuojamus nulinėje skiltyje skaičius a0 ir b0 – ir du išėjimo signalus – sumą
nulinėje skiltyje S0 ir perkeliamo iš nulinės skilties vieneto signalą COUT0 (iš
angl. carry – perkelti).
15 lentelė. Pussumatoriaus reikšmių lentelė
Standartine sandaugų sumos išraiška: S0 = a0 b0 + a0 b0; COUT0
= a0 b0 .(šios loginių funkcijų išraiškos jau yra minimalios)
S0 1. S0, a0, b0; COUT0 1. COUT0, a0, b0;
S0 = a0 b0 + a0 b0; COUT0 = a0 b0 .
2.S0 = a0 b0 + a0 b0; 2.COUT0 = a0 b0 .
3.1 0 1 1 0 3. 1 1 1
Logines schemos, realizuojančios šias lygtis
63 pav. Pussumatoriaus loginės schemos
a0 b0 S0 COUT0
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
COUT0 S0
b0 a0
1 b0
a0
b0
a0
95
64 pav. Pussumatoaus grafiniai ţymenys
Vienetus ir nulius nurodysime inversiją schemos loginių elementų
įėjimuose. Vienetai rodo, kad ką tik sudarytoje loginėje schemoje nieko keisti
nereikia, nuliai rodo, kad atitinkamame loginio elemento įėjime reikia įrašyti
inversijos ţenklą.
65 pav. Pilnojo sumatoriaus išėjimo funkcijų S1 (a) ir COUT1 (b) Karno
diagramos lentelė
Pilnasis sumatorius (angl. – full adder), sumuojantis bet kurios i-tosios
skilties du dvejetainius skaičius, turi tris įėjimus: sumuojamų skaičių ai ir bi bei iš
ţemesniosios (i – 1)-osios skilties keliamojo vieneto CINi = COUTi–1. Kaip ir
pussumatorius, taip ir pilnasis sumatorius turi du išėjimus: sumos i-oje skiltyje Si
ir iš i-tosios skilties keliamojo vieneto signalo COUTi.
16 lentelė. Pirmosios skilties pilnojo sumatoriaus reikšmių lentelė
CIN1 a
1
b
1
S
1
COUT1
0 0 0 0 0
0 0 1 1 0
HHAA
bb00
aa00
CCOOUUTT00
SS00
CCRR
SS00 HHAA
0
1
S1
CIN1 a1b1
00 01 11 10
1 1
1 1
p3
p1
0
1
COUT1
CIN1 a1b1
00 01 11 10
p2
1
1
1 1 1
a b
96
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Išėjimo funkcijos S1 Karno diagramoje yra tik pavieniai vienetai uţrašyti,
remiantis reikšmių lentele.
Šios funkcijos standartinis sandaugos suma (minimali):
S1 = CIN1 a1 b1 + CIN1 a1 b1 + CIN1 a1 b1 + CIN1 a1 b1
COUT1 = p1 + p2 + p3 = a1 b1 + CIN1 b1 + CIN1 a1
Pilnojo sumatoriaus schemą:
S1 1. S1, CIN1, a1, b1 ;
S1 = CIN1 a1 b1 + CIN1 a1 b1 + CIN1 a1 b1 + CIN1 a1 b1.
2. S1 = CIN1 a1 b1 + CIN1 a1 b1 + CIN1 a1 b1 + CIN1 a1 b1.
3. 1 0 0 1 0 1 0 1 0 0 1 1 1
COUT1 1. COUT1, CIN1, a1, b1 ;
COUT1 = a1 b1 + CIN1 b1 + CIN1 a1.
2. COUT1 = a1 b1 + CIN1 b1 + CIN1 a1.
3. 1 1 1 1 1 1
97
66 pav. Pirmosios skilties pilnojo sumatoriaus loginės schemos
67 pav. Pilnojo sumatoriaus grafinių ţymenų variantai
Nuosekliai jungdami pussumatorių ir aukštesniųjų skilčių pilnuosius
sumatorius, galime sudaryti nuoseklųjį sumatorių, sumuojantį dvejetainius
skaičius su bet kokiu norimu skilčių skaičiumi.
Pussumatoriaus išėjimo signalas COUT0 vėluoja jo įėjimo signalų atţvilgiu
vieno loginio elemento vėlinimo laiku tv. Visi kiti pussumatoriaus ir pilnųjų
sumatorių išėjimo signalai vėluoja jų įėjimo signalų atţvilgiu dviejų loginių
elementų vėlinimo laiku 2tv, nes visi įėjimo signalai turi praeiti per du nuosekliai
sujungtus loginius elementus. Vadinasi, didėjant daugiaskilčio nuosekliojo
sumatoriaus skilčių skaičiui, tolygiai auga aukštesniųjų skilčių išėjimo signalų
vėlinimo laikai. Tai – esminis daugiaskilčio nuosekliojo sumatoriaus trūkumas.
b1
a1
CIN1
b1
a1
CIN1
b1
a1
CIN1
S1
b1
a1
CIN1 1
CIN1
a1
CIN1
COUT1
b1
a1 1
b1
S
S
COUT
CIN
b
FA a
CR
FA
98
68 pav. Nuosekliojo sumatoriaus funkcinė schema
Tolygiai augančio vėlinimo laiko prieţastis – keliamojo vieneto signalas,
kuris yra vienas iš pilnojo sumatoriaus sumuojamų dėmenų.
Lygiagretusis daugiaskiltis sumatorius keliamojo vieneto signalus formuoja
tik iš tuo metu veikiančių visų skilčių įėjimo signalų, praėjusių ne daugiau kaip
per tris nuosekliai sujungtus loginius elementus.
7.3. Dvejetainiai atėmikliai
Dvejetainiai atėmikliai (angl. – binary subtractor) – įtaisai, tiesiogiai
atliekantys dvejetainių skaičių atimties veiksmus.
Vienaskilčiams dvejetainiams skaičiams atimti pakanka pusatėmiklio
(angl. – half subtractor).
FA2
FA1
HA0
b1
a1
b0
a0
CIN1 S1
COUT1
S0
COUT0
b2
a2
CIN2 S2
COUT2
1tv
2tv
3tv
3tv
5tv
5tv
99
17 lentelė. Pusatėmiklio reikšmių lentelė
a0
b0
DIF0
BOUT0
a0
0 0 0 0 0
0 1 1 1 0
1 0 1 0 1
1 1 0 0 1
Pusatėmiklio loginės schemos sudarymas:
DIF0 1. DIF0, a0, b0; BOUT0 1.BOUT0, a0, b0;
DIF0 = a0 b0 + a0 b0 BOUT0 = a0 b.
2. DIF0 = a0 b0 + a0 b0 2. BOUT0 = a0 b0
3. 1 0 1 1 0 3. 1 0 1
69 pav. Pusatėmiklio loginės schemos
70 pav. Pilnojo atėmiklio išėjimo funkcijos BOUT1 Karno diagrama
0 1
00 01 11 10
1 1 1 1
BIN1 a1 b1
BOUT1
p1
p2 p3
1
DIF0
b0 a0
b0
a0 BOUT0
b0
a0
100
Pilnasis atėmiklis (angl. – full subtractor) – įtaisas, atimantis bet kurios i-
osios skilties dvejetainius skaičius. Kaip ir pilnasis sumatorius, taip ir pilnasis
atėmiklis turi tris įėjimo signalus: ateinančio iš ţemesnės skilties skolinamojo
vieneto, turinio ir atėminio.
18 lentelė. Pirmosios skilties pilnojo atėmiklio reikšmių lentelė
BIN1 a1 b1 DIF1 BOUT
1 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1
(DIF1 = a1 – b1 – BIN1, o vienetas išėjime BOUT1 reiškia, kad prie a1
pridedame 2)
Suprastinama antroji išėjimo funkcija BOUT1 iš Karno diagramos:
BOUT1 = p1 + p2 + p3 =a1b1 + BIN1 a1 + BIN1 b1.
1. BOUT1, BIN1, a1, b1 ;
BOUT1 = a1 b1 + BIN1 a1 + BIN1 b1
2.BOUT1 = a1 b1 + BIN1 a1 + BIN1 b1
3. 1 0 1 1 0 1 1
101
71 pav. Pilnojo atėmiklio skolinamojo vieneto signalą formuojanti schema
72 pav. Pusatėmiklio ir pilnojo atėmiklio grafiniai ţymenys
7.4. Dvejetainiai komparatoriai
Dvejetainiai komparatoriai palygina du dvejetainius skaičius A ir B ir
sukuria loginio vieneto signalą viename iš trijų išėjimų: arba išėjime A B, arba
išėjime A B, arba išėjime A B. Kituose dviejuose komparatoriaus išėjimuose
tuo metu būna loginio nulio signalai.
Puskomparatoriai, kaip ir pussumatoriai bei pusatėmikliai, atlieka veiksmus
su vienaskilčiais dvejetainiais skaičiais ţemiausioje nulinėje skiltyje, pilnieji
komparatoriai – aukštesnėse skiltyse.
BOUT1
BIN1
b1
BIN1
b1
a1 1
a1
DIF
B
a DIF DIF
BOUT
FS
b
BIN
b0 BOUT B
DIF HS a0
102
19 lentelė. Dvejetainio puskomparatoriaus reikšmių lentelė
a0 b0 a0 b0 a0 b0 a0 b0
0 0 0 1 0
0 1 1 0 0
1 0 0 0 1
1 1 0 1 0
Pilnasis n-osios skilties komparatorius turi penkis įėjimus: į tris jo įėjimus
ateina ţemesnės (n – 1)-osios skilties pilnojo komparatoriaus išėjimų signalai, į
likusius du įėjimus – lyginamų dvejetainių skaičių A ir B n-osios skilties
skaitmenys an ir bn. Pilnasis komparatorius, kaip ir puskomparatorius, turi tris
išėjimus. Pilnojo n-osios skilties komparatoriaus išėjimai yra šitokie: an ...
a1a0 bn ... b1b0, an ... a1a0 bn ... b1b0, an ... a1a0 bn ... b1b0
(sutrumpintai šiuos išėjimus toliau ţymėsime tik ţenklais , , )
20 lentelė. Pirmosios skilties pilnojo dvejetainio komparatoriaus reikšmių lentelė, Nerealūs loginių įėjimų kintamųjų deriniai, sukuriantys nereikšmingas
loginių išėjimo kintamųjų kombinacijas, yra apvesti.
a0 b0
( IN)
a0 b0
( IN)
a0 b0
( IN)
a1 b1
0 0 0 0 0 x x x
0 0 0 0 1 x x x
0 0 0 1 0 x x x
0 0 0 1 1 x x x
0 0 1 0 0 0 0 1
0 0 1 0 1 1 0 0
0 0 1 1 0 0 0 1
0 0 1 1 1 0 0 1
0 1 0 0 0 0 1 0
103
0 1 0 0 1 1 0 0
0 1 0 1 0 0 0 1
0 1 0 1 1 0 1 0
0 1 1 0 0 x x x
0 1 1 0 1 x x x
0 1 1 1 0 x x x
0 1 1 1 1 x x x
1 0 0 0 0 1 0 0
1 0 0 0 1 1 0 0
1 0 0 1 0 0 0 1
1 0 0 1 1 0 0 0
1 0 1 0 0 x x x
1 0 1 0 1 x x x
1 0 1 1 0 x x x
1 0 1 1 1 x x x
1 1 0 0 0 x x x
1 1 0 0 1 x x x
1 1 0 1 0 x x x
1 1 0 1 1 x x x
1 1 1 0 0 x x x
1 1 1 0 1 x x x
1 1 1 1 0 x x x
1 1 1 1 1 x x x
Daugelis įrašytų į lentelę ţemesnės skilties komparatoriaus išėjimo signalų
yra tokie, kurių ir būti negali: a0 vienu metu nebus ir ne maţesnis, ir nelygus, ir
ne didesnis kaip b0. Tokių nelogiškų ţemesnės skilties komparatoriaus išėjimo
signalų lentelėje esti ir daugiau. Visi jie – nereikšmingi loginių kintamųjų deriniai,
104
kurie sukuria nereikšmingą išėjimo signalą, vadinamą signalu x – don't care
output.
Visose pozicinėse skaičiavimo sistemose kiekvienos aukštesnės skilties
vertė yra didesnė uţ visų
ţemesnių skilčių verčių sumą. Pavyzdţiui, jei a1 b1, tai visai nesvarbu,
kokie yra a0 ir b0; galime būti tikri, kad šiuo atveju a1a0 b1b0. Įvertinti
ţemesnės skilties išėjimo signalą reikia tada ir tik tada, kai aukštesnės skilties
signalai esti lygūs. Vadinasi, ir daugiaskilčio komparatoriaus aukštesniajai n-ajai
skilčiai informacija iš ţemesnės kaip n – 1 skilties tiesiogiai nereikalinga. Ji
reikalinga tik tam, kad nustatytų n – 1 skilties signalą.
Loginės funkcijos išraišką:
p1 + p2 + p3 a1 b1 + IN a1 + IN b1
7.5. Kodo keitikliai
Skaičiavimo sistemas ir kodus daţnai tenka keisti, pavyzdţiui, dvejetainį
kodą – Grėjaus, aštuonetainiu, arba kuriuo nors dvejetainiu-dešimtainiu ar kitu
kodu. Taigi kodų keitimo variantų esti daug ir įvairių. Kodus keičiantis įtaisas
vadinamas kodo keitikliu (angl.– code converter).
Kodo keitiklių schemos sudaromos taip pat, kaip ir kitų kombinacinės logi-
kos įtaisų schemos. Pirmiausiai uţpildoma kodo keitiklio reikšmių lentelė. Šioje
lentelėje keičiamo kodo skiltys yra kodo keitiklio įėjimai, o pakeistojo – išėjimai.
00 01 11 10
IN0 IN IN a1 b1
00 x x x x
0 1 0 0
0 1 0 0
x x x x
01
11
10
p2 01
11
10
00 01 11 10
IN1 IN IN a1 b1
00 x x x x
0 1 0 0
0 1 0 0
x x x x
p1
p3
105
73 pav. Komparatoriaus pirmojo išėjimo loginės funkcijos Karno diagrama
Pagal reikšmių lentelę uţrašytos kodo keitiklio realizuojamos loginės
funkcijos minimizuojamos, paprastai taikant Karno diagramas. Po to sudaromos
loginės schemos, vykdančios šias minimizuotas funkcijas.
21 lentelė. Dvejetainių-dešimtainių kodų keitiklio "SP3 į 8421" reikšmių lentelė. (dvejetainį-dešimtainį kodą (DDK) su pertekliumi 3 (SP3) keitimas į
natūralųjį DDK, vadinamą kodu 8421)
DS SP3 8421
IN3 IN2 IN1 I
N0
F3 F2 F1 F0
0 0 0 1 1 0 0 0 0
1 0 1 0 0 0 0 0 1
2 0 1 0 1 0 0 1 0
3 0 1 1 0 0 0 1 1
4 0 1 1 1 0 1 0 0
5 1 0 0 0 0 1 0 1
6 1 0 0 1 0 1 1 0
7 1 0 1 0 0 1 1 1
8 1 0 1 1 1 0 0 0
9 1 1 0 0 1 0 0 1
1 1 0 1 x x x x
106
1 1 1 0 x x x x
1 1 1 1 x x x x
0 0 0 0 x x x x
0 0 0 1 x x x x
0 0 1 0 x x x x
Kodu SP3, kaip ir kodu 8421, uţrašo dešimtainius simbolius keturiose
dvejetainėse skiltyse. Šis kodas sudaromas prie kiekvieno dešimtainį simbolį
atitinkančio skaičiaus pridedant 3. Angliškai šis kodas vadinamas XS3 (Excess 3)
kodu. Teigiama šio kodo ypatybė – nė vienas dešimtainis simbolis šiuo kodu
nevaizduojamas nei keturių nulių, nei keturių vienetų rinkiniu, kadangi šios
kombinacijos kartais tampa trikdţių arba klaidų loginėse schemose prieţastimis.
74 pav. Kodo keitiklio išėjimo funkcijų F1 (a), F2 (b) ir F3 (c) Karno
diagramos
Lentelėje įėjimai – keturios kodo SP3 skiltys – paţymėti simboliais IN, išėji-
mai – keturios kodo 8421 skiltys – simboliais F. DDK deriniai, atvaizduojantys
didesnius kaip 9 dešimtainius skaičius, yra nereikšmingos loginių kintamųjų
kombinacijos, lentelės išėjimų stulpeliuose paţymėtos simboliu x.
Loginė išėjimo funkcija F0 yra įėjimo funkcijos IN0 inversija. Kitų trijų
loginių išėjimo funkcijų minimalios išraiškos randamos taikant Karno diagramas:
b a
IN3 IN2 IN1 IN0
00 01 11 10
00 x x x
F3 01 p1
11 1 x x x
10 1 p2
IN3 IN2 IN1 IN0
00 01 11 10
00 x x x
F1 01 1 1
11 x x x
10 1 1
p1 p2
IN3 IN2 IN1 IN0
00 01 11 10
00 x x x
F2 01 1 p3
11 x x x
10 1 1 1
p1 p2
c
107
F0 = IN0 , F1 = IN0IN1 + IN0IN1; F2 = IN0IN2 + IN1IN2 +
IN0IN1IN2; F3 = IN2IN3 + IN0IN1IN3
75 pav. DDK keitiklio "SP3 į 8421" loginės schemos
76 pav. Keturių skilčių kodo keitiklio grafinis ţymuo
7.6. Šifratorius
Šifratorius (angl. - encoder arba coder) – tai kombinacinė loginė schema,
keičianti signalą viename iš n įėjimų m išėjimų signalų deriniu – kodu. Kitaip
tariant, kiekvienas išėjimo signalų derinys atitinka vieną įėjimo signalą. Jei
išėjimų skaičius yra m, galima sukurti ne daugiau kaip 2m skirtingų kodų,
IN1
1
IN3
IN0
IN3
IN2
IN1
IN0
IN1 IN1
IN0
IN1
IN2
IN1
IN0
IN2 IN1
IN2
IN0
IN0
1 F0
1 F1
F1
1 F2
F1 F3
0
1
2
3
0
1
2
3
XS3 CC BCD IN0
IN1
IN2
IN3
F0
F1
F2
F3
108
vadinasi, įėjimų skaičius n negali būti didesnis kaip 2m. Galima ir atvirkščia
formuluotė: šifratorius su n įėjimų turi turėti ne maţiau kaip m išėjimų: 2m n .
Paprastai pasirinktu laiko momentu signalas gali būti tik viename šifratoriaus
įėjime. Jei ši sąlyga netenkinama, nustatomas įėjimų prioritetas, pavyzdţiui, laiko
atţvilgiu – šifratorius priima tik tą signalą, kuris ateina pirmiausia (taip veikia
kompiuterio klaviatūros šifratorius), arba vienas iš įėjimų laikomas pačiu
svarbiausiu, kitas – maţiau svarbiu ir šitaip nustatoma visų likusių įėjimų svarbu-
mo eilė. Šifratorius, kurio įėjimų ir išėjimų skaičius sieja lygybė n = 2m, vadina-
mas pilnuoju šifratoriumi. Labai daţnai naudojami šifratoriai, kurių 2m n. Jie
vadinami nepilnaisiais. Tipiškas nepilnojo šifratoriaus pavyzdys – telefono
klaviatūros šifratorius, koduojantis dvylikos telefono klavišų signalus keturių
skilčių dvejetainiu kodu. Kadangi keturioms skiltims reikia m = 4 išėjimų,
akivaizdu, kad 24 12; taigi šis šifratorius yra nepilnasis. Kai telefono klavišas
yra nenuspaustas, jį atitinkančiame šifratoriaus įėjime esti aukštas loginis lygis,
jei nuspaustas – ţemas.
22 lentelė. Telefono klaviatūros šifratoriaus reikšmių lentelė
T
elefono
Dvejetainis kodas
išėjimuose
kl
avišas
W X Y Z
IN1 0 0 0 1
IN2 0 0 1 0
IN3 0 0 1 1
IN4 0 1 0 0
IN5 0 1 0 1
IN6 0 1 1 0
IN7 0 1 1 1
109
IN8 1 0 0 0
IN9 1 0 0 1
IN0 1 0 1 0
IN 1 0 1 1
IN 1 1 0 0
Tuomet loginės išėjimų funkcijos:
W = IN8 + IN9 + IN0 + IN + IN .
X = IN4 + IN5 + IN6 + IN7+ I N .
Y = IN2 + IN3 + IN6 + IN7+ IN0 + IN
Z = IN1 + IN3 + IN5 + IN7+ IN9 + IN
Šias logines funkcijas realizuoja loginiai elementai ARBA su inversiniais
įėjimais: funkcijoms W ir X reikia penkių, Y ir Z – šešių inversinių įėjimų.
77 pav. Telefono klaviatūros šifratoriaus grafinis ţymuo
7.7. Dešifratoriai
Dešifratorius (angl. – decoder) atpaţįsta kodinę signalų jo įėjimuose
kombinaciją ir sukuria signalą viename tą kodinę kombinaciją atitinkančiame
išėjime. Jei dešifratoriaus įėjimų skaičių n ir išėjimų skaičių m sieja lygybė m =
2n, tai toks dešifratorius vadinamas pilnuoju. Pilnąjį dešifratorių galime laikyti
mintermų indikatoriumi.
Šią prielaidą patvirtina dešifratoriaus ―iš 3 į 8‖ reikšmių lentelė
W
X
Y
Z
CD IN1
IN2
IN3
IN0
IN
IN
110
23 lentelė. Pilnojo dešifratoriaus "iš 3 į 8" reikšmių lentelė
7.8. Demultiplekseriai
Įėjimai Išėjimai
A B C F7 F6 F5 F4 F3 F2 F1 F0
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0
111
Demultiplekseris (angl. – demultiplexer) – tai įtaisas, kuris ateinančius
viena įėjimo linija signalus pagal n skilčių adreso kodą nukreipia į vieną iš 2n
išėjimo linijų. Demultiplekseris – tai kodo keitiklis, keičiantis nuoseklųjį kodą
lygiagrečiuoju.
Dešifratoriaus su įėjimų leidimu įėjimus A, B ir C laikysime trijų skilčių
adreso įėjimais, o į įėjimą EI nukreipsime signalus, kuriuos reikia paskirstyti į
išėjimo linijas F0 ... F7, tai toks dešifratorius veiks kaip demultiplekseris.
24 lentelė. Demultiplekserio "iš 1 į 4" reikšmių lentelė
IN(EI) S1 S0 F3 F2 F1 F0
0 x x 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
D12
IN
S0
S1
DX F0 F1 F2 F3
IN
S0
S1
DX F0 F1 F2 F3
IN
S0
S1
DX F0 F1 F2 F3
D
S2
S3
D0
D1
D2
D3
IN
S0
S1
DX F0 F1 F2 F3
S0
S1
D13
D15
D14
112
78 pav. Demultiplekseriai, sujungti piramidiniu pakopiniu būdu
Demultiplekserio logines išėjimo funkcijos(jas realizuoja loginiai elementai
3IR.):
F0 = E1 S1 S0,
F1 = E1 S1 S0,
F2 = E1 S1 S0,
F3 = E1 S1 S0.
Kai reikia daugiau išėjimo linijų, į kurias būtų galima nukreipti įėjimo
signalus, tuomet kelis demultiplekserius galime sujungti piramidiniu pakopiniu
būdu.
Demultiplekseriai – dešifratoriai su įėjimo leidimu – paprastai ţymimi
santrumpa DX. Kartais demultiplekseriai ţymimi ir santrumpa DMUX.
79 pav. Demultiplekseris "iš 1 į 4"
7.9. Multiplekseriai
Multiplekseris (angl. – multiplexer), arba duomenų selektorius (angl. –
data selector), – tai įtaisas, kuris pagal n skilčių adreso kodą atrenka vieną iš 2n
įėjimo linijų ir šia linija ateinančius signalus nukreipia į vieną išėjimo liniją.
Multiplekseris – tai kodo keitiklis, keičiantis lygiagretųjį kodą nuosekliuoju.
Daţniausiai multiplekseriai turi ir įėjimo leidimo įėjimą.
IN
S0
S1
DX F0 F1 F2 F3
113
25 lentelė. Multiplekserio "iš 2 į 1" reikšmių lentelė
Multiplekserio loginė funkcija:
F = p1 + p2 = EI D1 S0 + EI D0 S0 .
80 pav. Multiplekserio "iš 2 į 1" išėjimo funkcijos Karno diagrama (a), loginė
schema (b) ir grafinis ţymuo (c)
Kaip ir demultiplekserius, taip ir nesudėtingus mul-
tiplekserius galime jungti nuosekliai piramidiniu
pakopiniu būdu; šitaip padidinamas įėjimo linijų
skaičius. Ţemiausio lygmens (piramidės pagrindo)
multiplekserių išėjimų signalai esti aukštesniojo pramidės
lygmens multiplekserių įėjimų signalais. Visi to paties piramidės lygmens multi-
plekseriai gauna tų pačių adreso kodo skilčių signalus.
8. LOGINIŲ SIGNALŲ GENERATORIAI
EI D1 D0 S0 F
1 x x x 0
0 x 0 0 0
0 x 1 0 1
0 0 x 1 0
0 1 x 1 1
c
EI
D0
D1
S0
MX
F
EI D1 D0 S0
00 01 11 10
00 11
F 01 p2
11
10
1
1 1 1
p1
a
b
F
S0
EI
S0 D1
N2
EI
1
D0
114
8.1. Multivibratoriai
Elektroniniai įtaisai, kuriuos sudaro du varţinio stiprintuvo laipsniai su kryţ-
miniu (iš kiekvieno laipsnio išėjimo į kito laipsnio įėjimą) teigiamu grįţtamuoju
ryšiu, generuojantys periodinius ir neperiodinius stačiakampės formos įtampų
šuolius, vadinami multivibratoriais, arba daugelio daţnių signalų generatoriais.
Šis elektroninis įtaisas generuoja tokio daţnio signalą, kuriam tenkinamos ampli-
tudţių ir fazių balanso sąlygos: įtaiso ir grįţtamojo ryšio grandies perdavimo
koeficientų sandauga lygi vienetui bei fazės pokytis toje grandinėje lygus 2n, čia
n 0, 1, 2, ... . Multivibratoriai dar vadinami relaksatoriais, nes jie staigiai
griūtiškai suformuoja statų impulso frontą, ir po to iki kito fronto, kol lėtai
išsikrauna kondensatorius, vaizdţiai tariant, ilsisi, arba relaksuoja.
8.2. Autovirpesių multivibratoriai
115
Kai abiejose grįţtamojo ryšio grandinėse nėra kelio nuolatinei srovei ir tei-
giamas grįţtamasis įtampos ryšys sudaromas tik per kondensatorius, tuomet
turime nestabilųjį (angl. – astable multivibrator), arba autovirpesių
multivibratorių, daţnai vadinamą tiesiog multivibratoriumi. Jis gali būti simetrinis
arba asimetrinis. Nestabilusis multivibratorius pats be išorinių paleidimo impulsų
keičia būvį, ir kiekviename būvyje išbūna tol, kol tą būvį palaiko persikraunantis
kondensatorius, įjungtas į grįţtamojo ryšio grandinę. Tai reiškia, kad nestabilusis
multivibratorius formuoja nenutrūkstančią stačiakampių impulsų seką. Kai
multivibratorius simetrinis, santykinis impulsų retumas (angl. – duty cycle)
generuojamoje sekoje yra 0,5, arba 50%, kitaip tariant, sekos teigiamojo
impulso trukmė lygi neigiamojo impulso trukmei – laiko intervalui tarp teigiamų
impulsų.
81 pav. Autovirpesių multivibratorius iš diskretinių elementų
82 pav. Kondensatoriaus CB1 įtampa, atsidarius tranzistoriui VT1
+5V
RB2 RB1 UB2
VT2 VT1
C2 RK2
UK2 UB1
C1 RK1
UK1
RB2
+4.3 V –
VT2 E
K VT1
CB1
E
B
116
83 pav. Autovirpesių multivibratoriaus laiko diagramos
Schema veikia paeiliui atsidarant vienam ir uţsidarant kitam jos
tranzistoriui. Kai VT2 atsidaro, o VT1 uţsidaro, kondensatorius C1 per nedidelę
rezistoriaus RK1 varţą ir atvirą tranzistoriaus VT2 bazės-emiterio sandūrą greitai
įsikrauna iki įtampos EK – UB2 5 – 0,7 4,3 V. Ši įtampa kondensatoriuje
išlieka tol, kol VT2 yra atviras, o VT1 uţdaras. Kai VT1 atsidaro, tranzistoriaus
VT2 bazės-emiterio sandūrą veikia kondensatoriaus C1 įtampa.
Ši atgalinė 4,3 V įtampa uţdaro tranzistorių VT2. Kondensatoriui C1
pamaţu išsikraunant per didelę rezistoriaus RB2 varţą jo įtampa sumaţėja tiek,
kad atidaro VT2, o kondensatoriaus C2 įtampa uţdaro tranzistorių VT1. Tada jau
UK2
+0.2
+5
UB1
+0.7
–4.3
UK1
+0.2
+5
UB1
+0.7
–4.3
RK1C1
RB2C1
t
117
per rezistoriaus RB1 varţą lėtai išsikrauna kondensatorius C2, o kondensatorius
C1 vėl greitai įsikrauna per maţą rezistoriaus RK1 varţą.
8.3. Laukiantieji mutivibratoriai
Kai nuolatinė srovė gali pratekėti tik viena grįţtamojo ryšio grandine, o
kitoje nuolatinę srovę nutraukia nuosekliai į tą grandinę įjungtas kondensatorius,
turime monostabilųjį multivibratorių (angl. – monostable multivibrator), daţnai
vadinamą laukiančiuoju multivibratoriumi. Šie terminai pabrėţia, kad monostabi-
lusis multivibratorius vieninteliame stabiliame būvyje būna tol, kol sulaukia palei-
dimo signalo: teigiamo įtampos impulso, atidarančio uţdarąjį tranzistorių, arba
neigiamo impulso, uţdarančio atvirąjį. Pasibaigus tam impulsui, multivibratorius
grįţta į stabilų būvį tik po to, kai persikrauna nuosekliai įjungtas į vieną
grįţtamojo ryšio grandinę kondensatorius.
Laukiančiojo, arba monostabiliojo, mutivibratoriaus klasikinė schema gau-
nama vieną iš kondensatorių pakeitus trumpu jungimu arba nedidelės varţos
rezistoriumi. Tarkim, kad rezistoriumi yra pakeistas kondensatorius C2. Tuomet
multivibratorius turės vieną stabilų būvį, kuriame tranzistorius VT2 yra atviras, o
tranzistorius VT1 – uţdaras. Šis būvis trunka tol, kol į tranzistoriaus VT2 įėjimą
nepaduodamas trumpas neigiamas impulsas. Padavus tokį impulsą, VT2 uţsidaro
ir aukštas jo kolektoriaus potencialas atidaro tranzistorių VT1. Kondensatoriui C1
išsikrovus per atvirą tranzistorių VT1 ir rezistorių RB2, atidaromas tranzistorius
VT2. Išvardintieji vyksmai suformuoja teigiamą tranzistoriaus VT2 kolektoriaus
įtampos impulsą ir grąţina schemą į vienintelį stabilų išeities būvį. Šiame būvyje
schema bus tol, kol nebus paduotas kitas tranzistorių VT2 uţdarantis impulsas.
8.4. Paprastieji ţiediniai skaitikliai
118
Paprastieji ţiediniai skaitikliai, arba tiesiog ţiediniai skaitikliai, tai nuoseklie-
ji registrai, kuriuose paskutiniosios atminties ląstelės (paskutiniojo trigerio) tie-
sioginis išėjimas yra sujungtas su pirmosios atminties ląstelės (pirmojo trigerio)
įėjimu. Paprastųjų ţiedinių skaitiklių būvių skaičius, arba impulsų skaičius pagrin-
dinėje impulsų sekoje, yra lygus skaitiklį sudarančių trigerių skaičiui. Jei
trigerinėje schemoje yra n trigerių, tai joje galimi 2n skirtingi būviai, vadinasi,
2n– n ţiedinio skaitiklio schemos būvių yra nereikalingi ir neįeina į pagrindinę
impulsų seką. Šie nepanaudojami, pertekliniai, arba draudţiami, būviai yra
pagrindinė problema, projektuojant ţiedinius skaitiklius, nes iš jų susidaro šaluti-
nės impulsų sekos, kuriose skaitiklis gali "pakibti" ir negeneruoti pagrindinės
sekos impulsų.
84 pav. Trijų bitų ţiedinis skaitiklis
Šioje schemoje kiekvieno trigerio išėjimas y yra ir impulsų sekos gene-
ratoriaus atitinkamos skilties išėjimas Z ir kito trigerio įėjimas D. Kadangi
schemos išėjimų signalus nustato tik trigerių būviai, schema priskirtina Mūro
sinchroniniams būvių automatams. Trijų trigerių ţiedinio skaitiklio pagrindinę
impulsų seką sudaro trys impulsai – trys skirtingi šio skaitiklio būviai, o 23 – 3
5 ţiedinio skaitiklio būviai yra pertekliniai. Jie suformuoja tris šalutines impulsų
sekas, ir kiekvienoje skaitiklis gali "pakibti".
T1
CK
y1 Z1 D2
C
D y2 Z2 D3
C
D y3 Z3 D1
C
D
T2 T3
119
Perteklinių būvių problema sprendţiama sudarant schemą, atpaţįstančią
perteklinį būvį ir "parvarančią" skaitiklį į pagrindinei sekai priklausantį būvį. Trijų
bitų ţiedinis skaitiklis papildomas schema, sukuriančia D1 y1 y2.
85 pav. Trijų bitų ţiedinio skaitiklio laiko diagramos
86 pav. "Nepakimbantis" trijų bitų ţiedinis skaitiklis
Bûviai
CK
y1 D2
t
y2 D3
y3 D1
a b c
y1 y2
CK
D1
T1
y1 Z1 D2
C
D y2 Z2 D3
C
D y3 Z3
C
D
T3 T2
120
8.5. Susuktieji ţiediniai skaitikliai
Susuktieji, arba Mebijaus, ţiediniai skaitikliai – tai nuoseklieji registrai, ku-
riuose paskutiniosios atminties ląstelės (paskutiniojo trigerio) inversinis išėjimas
yra sujungtas su pirmosios atminties ląstelės (pirmojo trigerio) įėjimu.
87 pav. Trijų trigerių susuktasis ţiedinis skaitiklis
Iš n trigerių sudaryto Mebijaus skaitiklio pagrindinę būvių seką sudaro 2n
skirtingų būvių. Tuomet perteklinių būvių skaičius yra lygus 2n – 2n. Trijų
trigerių skaitiklio pagrindinė būvių seka yra šitokia: 100 110 111 011 001 ir 000;
du schemos būviai 010 ir 101 yra pertekliniai. Skaitiklio pagrindinės sekos būvius
galima uţfiksuoti nesudėtingomis dešifravimo schemomis, prijungtomis prie
skaitiklį sudarančių trigerių išėjimų. Uţfiksavęs perteklinį skaitiklio būvį,
dešifratorius gali grąţinti skaitiklį į pagrindinės sekos būvį. Mebijaus skaitiklyje
perteklinį būvį dešifruojančios schemos signalas siunčiamas į skaitiklio įėjimą
kartu su inversiniu paskutiniojo trigerio išėjimo signalu per loginį elementą ARBA.
Pratimas Nr.5
Pasinaudojant NI MULTISIM programine įranga sukonstruoti atemikli,
sumatoriuių ir dekompleksorių (riamentis pateikteiktais pavyzdţiais). Paiškinti jų
veikimą.
y3 D1
T1
CK
y1 Z1 D2
C
D y2 Z2 D3
C
D y3 Z3
C
D
T2 T3
121
122
9. Būlio algebra
Matematikoje bei informatikoje Būlio algebra (arba Logikos algebra) – sritis,
tirianti loginius kintamuosius bei funkcijas. Loginės algebros svarbiausias
taikymas – elektroninėse schemose.
Būlio algebra sukūrė Dţordţas Būlis (George Boole, 1815-1864) vardu, nes
šis anglų matematikas pirmasis ją apibrėţė kaip loginės sistemos dalį, bandant
panaudoti algebrines technikas loginiams skaičiavimams.
9.1. Būlio algebra matematikoje
Matematikoje Būlio algebra apibrėţiama kaip algebra (B, *, +, ¬, 0, 1),
kurią sudaro aibė B, turinti maţiausiai 2 elementus (0, 1), kurioje apibrėţtos
tokios 3 operacijos: IR operacija (konjunkcija, loginė daugyba), ARBA operacija
(disjunkcija, loginė sudėtis), NE operacija (inversija, neigimas).
123
Šiandien Būlio algebra turi daugybę pritaikymų elektroninėse schemose.
Pirmą kartą Klodas Šenonas ją pritaikė XX amţiuje komutatoriuose.
9.2. Loginiai kintamieji
Loginiai kintamieji (dar vadinami binariniais) gali turėti tik dvi reikšmes – 1
(taip) ir 0 (ne). Su jais galima atlikti logines operacijas. Elementarios loginės
operacijos su vienu, dviem loginiais kintamaisiais yra vadinamos unarinėmis
(vieno kintamojo) ar binarinėmis (dviejų kintamųjų) loginėmis operacijomis.
Loginė operacija paprastai uţrašoma formule arba jai sudaroma funkcijos būvio
(teisingumo) lentelė.
9.3. Literatūroje naudojami ţymėjimai
Būlio daugyba: , &.
Kaip ir įprastinėje algebroje, Būlio algebroje daugybos ţenklas iš viso
praleidţiamas: xy. Daugybos ţenklą būtina rašyti tada, kai Būlio kintamųjų vardai
turi daugiau nei vieną simbolį.
Būlio sudėtis: +,
Ţenklas + yra įprastesnis, tačiau jį vartoti galima tik tuomet, kai tuo pačiu
metu nėra kalbama apie aritmetinės ar algebrinės sudėties operaciją. Šiuo atveju
ţymime .
Inversija: ‗, ir daţniausiai naudojamas ţenklas .
9.4. Loginės operacijos
Disjunkcija (loginė sudėtis) lygi 1, jei bent vienas kintamasis lygus vienetui.
Konjunkcija (loginė sandauga) lygi 1 tik tuomet, kai abu kintamieji lygūs 1
Disjunkcija (loginė sudėtis) lygi 1, jei bent vienas kintamasis lygus vienetui.
Konjunkcija (loginė sandauga) lygi 1 tik tuomet, kai abu kintamieji lygūs 1
124
IR funkcija ţymima taip: 1( )f x x y x & y xy
Sudėtis moduliu 2 – funkcija, kuri lygi vienetui tik tuomet, kai kintamųjų
reikšmės skiriasi, t.y. x y . Ši funkcija dar vadinama „išskirtine ARBA―, kadangi
nuo ARBA (disjunkcijos) skiriasi tuo, kad pastaroji lygi 1 ir tuo atveju, kai x=y=1.
ARBA-NE (Pirso funkcija) – funkcija, kuri lygi vienetui tik tuomet, kai lygūs 0
abu kintamieji x ir y.
Ekvivalentiškumas – funkcija, kuri lygi 1 tik tuomet, kai kintamųjų reikšmės
sutampa, t.y. x=y.
Implikacija - funkcija, kuri lygi nuliui tik tuomet, kai esant klaidingai
prielaidai (y=0) daroma teisinga išvada (x=1).
IR-NE (Šeferio funkcija) – funkcija, kuri lygi nuliui tik tuomet, kai lygūs 1
abu kintamieji x ir y.
9.5. Pagrindinės Būlio algebros aksiomos
Matematikoje pagrindiniai teiginiai daţnai būna akivaizdūs arba naudojami
sutariant, o toliau kuriama teorija šių teiginių pagrindu formuluojant naujus
dėsnius ar išvadas. Pirminius teiginius įprasta vadinti aksiomomis (postulatais), o
jų pagrindu sudaromus naujus – teoremomis ar dėsniais.
1a) x . x = x - idempotentyvumas
1b) x + x = x
2a) x . y = y . x – komutatyvumas
2b) x + y = y + x
3a) x . (y . z) = (x . y ). z - asociatyvumas
3b) x + (y + z) = (x + y )+ z
4a) x . (y + z) = x . y + x . z – distributyvumas
4b) x + y . z = (x + y) . (x + z)
Aksiomose išraiškos pateiktos poromis, nes Bulio algebroje veikia dualumo
dėsnis, pagal kurį jas galima gauti vieną iš kitos.
125
Dualumo dėsnis: Išraiškoje pakeitus disjunkciją konjunkcija, konjunkciją –
disjunkcija, nulį – vienetu, vienetą – nuliu ir skliaustais išlaikius tą pačią veiksmų
tvarką, bus gauta nauja išraiška vadinama dualia. Dualumas reiškia, kad, jei
teisinga kokia nors išraiška, jai duali išraiška taip pat bus teisinga.
Aksiomų teisingumu nesunku įsitikinti, paskaičiuojant išraiškos kiekvienos
pusės funkcijos reikšmių lenteles.
9.6. Būlio algebros teoremos
absorbcijos teorema
neigimo eliminavimo teorema
jungimo teorema
De Morgano dėsniai (teoremos)
Šenono teorema. f(x1,x2 ,...,xn,+,.) = f(x1, x2 ,...,xn,.,+)
skleidimo teorema
10. TRIGERIAI
Trigeris (trigger) – tai dviejų stabilių būsenų elektroninis įtaisas, iš vienos
būsenos į kitą perjungiamas įėjimo signalais ir pasiţymintis charakteristikos
histereze.
Trigeriu vadinamas įrenginys, turintis dvi stabilias būsenas. Dvi stabilios
trigerio būsenos, kurias uţtikrina teigiamas grįţtamasis ryšys, išėjime sukuria
būsenas: =1 ir =0. Kokios būsenos bus trigeris, priklauso nuo trigerio įėjimų
signalų ir nuo ankstesnės trigerio būsenos, kitaip sakant, trigeris turi atmintį.
Trigerį galima pavadinti elementaria atminties ląstele.
126
Pagal darbo algoritmus trigeriai skirstomi į tipus. Priklausomai nuo darbo
algoritmo, trigeris gali turėti nustatymo, informacinius ir valdančius įėjimus.
Nustatymo įėjimai nustato trigerio būseną, nepriklausomai nuo kitų įėjimų
būsenos. Valdantys įėjimai leidţia uţrašyti duomenis, paduodamus į
informacinius įėjimus. Plačiausiai paplitę trigeriai RS, JK, D ir T. Šių trigerių
ţymėjimai parodyti ţemiau pateiktame paveiksle.
88 pav. Plačiausiai paplitusių trigerių ţymejimai
10.1. RS trigeris
RS - trigeris turi du informacinius įėjimus, S ir R. Padavus į įėjimą S signalą 1, o į
įėjimą R signalą 0, trigerio išėjime gaunamas signalas 1. Atvirkščiai, esant
signalams =0 ir =1, trigerio išėjimo signalas bus 0. RS - trigerio veikimas
nusakomas lygtimi:
+1= + kur ir +1 - atitinkamai buvusi ir nauja trigerio būsena.
RS - trigeriui kombinacija =1 ir =1 draudţiama. Esant tokiai
informacinių signalų kombinacijai, trigerio būsena taps neapibrėţta: jo išėjime
gali būti 0 arba 1.
Egzistuoja RS - trigerių rūšys, vadinami E, R, ir S - trigeriais, kuriems
derinys = =1 nėra draudţiamas. E - trigeris, esant = =1, nekeičia savo
būsenos ( +1= ), S - trigeris, esant = =1, nusistato būsenoje =1, o R -
trigeris šiuo atveju atsiduria būsenoje =0.
10.2. JK trigeris
127
JK - trigeriai taip pat turi du informacinius įėjimus J ir K. Kaip ir RS -
trigeryje, JK - trigeryje J ir K - tai nustatymo įėjimai, pervedantys išėjimą į
būseną 1 arba 0. Bet, priešingai nei RS - trigeryje, JK – trigeryje, kai = =1,
pakeičia trigerio išėjimo būseną į priešingą. JK - trigeriai sinchronizuojami
loginės būsenos pasikeitimu įėjime . JK - trigerio veikimo sąlyga išreiškiama:
+1= +
10.3. D trigeris
D - trigeris, arba uţdelsimo trigeris, gavęs į įėjimą sinchronizavimo signalą,
įrašo į trigerį įėjime buvusį loginį lygį. D - trigerio veikimo lygtis atrodo taip:
+1= . Ši lygtis parodo, kad išėjimo signalas +1 pakinta ne iš karto,
pasikeitus įėjimo signalui , o tik sulaukus sinchronizavimo signalo, t. y., su
vienu sinchronizacijos impulsų periodo uţdelsimu (Delay - uţdelsimas). D -
trigeris sinchronizuojamas impulsu arba jo frontu.
10.4. T trigeris
T - trigeris, arba skaičiavimo trigeris, keičia išėjimo būseną pagal impulso frontą
įėjime . Be sinchronizacijos įėjimo ( ) T - trigeris gali turėti paruošiamąjį įėjimą
. Signalas šiame įėjime leidţia (kai =1) arba neleidţia (kai =0) trigerio
suveikimą nuo impulsų frontų įėjime . T - trigerio veikimo lygtis yra:
+1= +
Iš šios lygties matyti, kad, esant =1, atitinkamas signalo frontas įėjime
perveda trigerį į priešingą būseną Potencialo kitimo daţnis T -trigerio išėjime du
kartus maţesnis nei impulsų daţnis įėjime . Ši T - trigerių savybė leidţia jų
pagrindu kurti dvejetainius skaitiklius. Todėl šie trigeriai ir vadinami skaičiavimo
trigeriais. Skaičiavimo trigeris be įėjimo veikia taip pat, kaip ir T - trigeris,
esant =1.
128
10.5. Skaitikliai
Skaitikliu vadinasi įrenginys, skirtas įėjimo impulsų skaičiavimui. Su
kiekvienu impulso patekimu į įėjimą skaitiklio būsena pakinta vienetu. Skaitiklį
galima sukurti iš kelių trigerių, tada skaitiklio būseną nusakys jo trigerių būsenos.
Sumuojančiuose skaitikliuose kiekvienas įeinantis impulsas padidina išėjimo
skaičių vienetu, o atimties skaitikliuose kiekvienas įeinantis impulsas sumaţina šį
skaičių vienetu. Patys paprasčiausi skaitikliai – dvejetainiai, kuris parodytas
paveiksle (sumuojantis dvejetainis skaitiklis).
89 pav. Sumuojantis dvejetainis skaitiklis
Skaitiklyje trigeriai sujungiami nuosekliai. Kiekvieno trigerio išėjimas tiesiogiai
veikia kito trigerio taktinį įėjimą. Norint realizuoti sumuojantį skaitiklį, reikia bet
kurio kito trigerio skaičiavimo įėjimą prijungti prie paskutiniojo trigerio inversinio
išėjimo. Skaičiavimo krypčiai pakeisti (sukurti atimties skaitiklį) naudojami tokie
metodai:
1) išėjimo signalai skaičiuojami ne tiesioginiuose, o inversiniuose trigerių
išėjimuose;
2) skaitiklio ryšių struktūra pakeičiama, paduodant signalą į trigerio
skaičiavimo įėjimą ne iš inversinio, bet iš tiesioginio paskutinio įrenginio išėjimo.
Skaitikliai charakterizuojami būsenų skaičiumi per vieną skaičiavimo
periodą (ciklą). Būsenų skaičius nustatomas trigerių skaičiumi skaitiklio
struktūroje.
129
Skaitiklio būsenų skaičius vadinamas perskaičiavimo koeficientu . Šis
koeficientas lygus impulsų skaičiaus įė įėjime santykiui su impulsų skaičiumi
vyriausio laipsnio skaitiklio išėjime š per skaičiavimo periodą:
Jeigu į skaitiklio įėjimą paduotume periodinę daţnio įė impulsų seką, tai
vyriausio laipsnio skaitiklio išėjime daţnis š bus kartų maţesnis:
Todėl skaitiklius galima naudoti kaip daţnio daliklius, dydis tokiu
atveju bus dalijimo koeficientas. Dydţio padidinimui tenka padauginti trigerių
kiekį grandinėje. Kiekvienas papildomas trigeris padvigubina skaitiklio būsenų
skaičių ir skaičių . Koeficiento sumaţinimui galima kaip skaitiklio išėjimą
naudoti tarpinių pokopų trigerių išėjimus.
Galima sukurti skaitiklį, kuriam būtų bet kuris sveikas skaičius.
Pavyzdţiui, iš trijų trigerių galima sukurti skaitiklį skaičiuojantį nuo 2 iki 7, bet
tuo pat metu vienas ar du trigeriai gali tapti nereikalingais. Panaudojant visus tris
trigerius, galima gauti =5…7, t.y. 22< <23. Skaitiklis su =5 gali turėti 5
būsenas, kurios paprasčiausiu atveju sudaro seką: {0, 1, 2, 3, 4}. Ciklinis šios
sekos kartojimas reiškia, kad skaitiklio dalijimo koeficientas lygus 5.
130
90 pav. Skaitiklio schema su =5
Sumavimo skaitiklio su =5 sukūrimui reikia, kad, suformavus paskutinį
skaičių iš sekos {0, 1, 2, 3, 4}, skaitiklis pereitų ne prie skaičiaus 5, o prie
skaičiaus 0. Dvejetainėje sistemoje tai reiškia, kad nuo skaičiaus 100 reikia
pereiti prie skaičiaus 000, o ne prie 101. Įprastinę skaičiavimo tvarką galima
pakeisti, įvedus tarp skaitiklio trigerių papildomus ryšius. Galima pasinaudoti
tokiu būdu: kai tik skaitiklis atsidurs nedarbinėje būsenoje (šiuo atveju 101), šis
faktas turi būti atpaţintas ir atsirastų signalas, kuris pervestų skaitiklį į 000
būseną. Nedarbinė skaitiklio būsena nusakoma logine lygtimi:
= 101 ⋁ 110 ⋁ 111 = 3 2 1⋁ 3 2 1⋁ 3 2 1= 3 1⋁ 3 2
Būsenos 110 ir 111 taip pat yra nedarbinės ir todėl įvertintos, sudarant lygtį.
Jeigu ekvivalentinės loginės schemos išėjime =0, reiškia, kad skaitiklis yra
vienoje iš darbinių būsenų: 0⋁1⋁2⋁3⋁4. Kai jis atsiduria vienoje iš nedarbinių
būsenų 5⋁6⋁7, susiformuoja signalas =1. Signalo =1 pasirodymas turi pervesti
skaitiklį į pradinę padėtį 000. Šiam signalui paveikus skaitiklio trigerių nustatymo
įėjimus, jie pervestų skaitiklį į būseną 1= 2= 3=0. Vienas iš skaitiklio su =5
variantų parodytas 5 pav.
131
Nuosekliai sujungus trigerį ir skaitiklį su =5, sudaromas dešimtainis
skaitiklis, kurio =10. Tokie skaitikliai plačiai naudojami, kuriant skaitmeninius
matavimo prietaisus su operatoriui patogiu dešimtainiu atskaitymo įrenginiu.
10.6. Šmito trigeris
Šmito trigeris - tai vieną analoginį įėjimą, vieną loginį (1/0) išėjimą ir dvi
būsenas turinti schema, pasiţyminti histerize. Šmito trigeris turi du įėjimo
slenksčius. Esant įėjimo signalui ţemiau pirmojo slenksčio, schema pereina į
loginio nulio būsena ir lieka joje tol, kol signalas neviršija antrojo (aukštesio)
perjungimo į loginio vieneto būseną slenksčio. Loginio vieneto būsenoje schema
lieka tol, kol įėjimo įtampa nenukrinta ţemiau pirmojo (į nulinę būseną
perjungiančio) slenksčio. Schema vadinama trigeriu nes ji išsaugo ankstesnę
būseną kol įėjimo įtampą pakinta pakankamai kad ši būsena pasikeistų. Taigi
Šmito trigeris yra ir atminties ląstelė.Pagrindinis Šmito trigerio privalumas,
lyginant su vieno slenksčio įvedimo įrenginiu, yra stabilumas. Esant vienam
slenksčiui ir tam slenksčiui artimai įėjimo įtampai, net nedidelės amplitudės
triukšmo signalas gali nuolat perjunginėti vieno slenksčio schemą, sukeldamas
pertraukimų laviną ar neleisdamas skaičiuoti didesnės amplitudės impulsų. Tuo
tarpu Šmito trigerį perjungti gali tik įtampų tarp slenksčių skirtumui lygus arba
didesnis įėjimo signalo pokytis. Pereinamasis procesas trigeryje susideda iš
paruošimo, regeneracijos ir signalo nusistovėjimo etapų. Trigerio greitaveika
paprastai apibūdinama perjungimo laiku ir maksimaliu perjungimo daţniu fp.
Trigerio perjungimo laikas – tai laikas nuo perjungimą sukėlusio įėjimo signalo
pradţios iki laiko momento, kai nusistovi naują būseną atitinkančios išėjimo
įtampos. Jei trigeris sinchroninis, tai įėjimo signalo pradţia sutampa su
sinchroninio impulso pradţia.
Įvairių tipų trigeriai yra skaitmeninės elektronikos įtaisai, kurių išėjimo
signalai priklauso ne tik nuo įėjimo signalo reikšmių konkrečiu laiko momentu,
bet ir nuo ankstesnių reikšmių. Ţinomas RS trigeris su atskirais būsenų
132
nustatymo įėjimais, signalo vėlinimo D trigeris, skaičiavimo T trigeris ir
universaliosios funkcijos JK trigeris. Tai įtaisai su atmintimi, todėl informatikos
inţinerijoje vadinami automatais (sekvencinėmis schemomis). Automatai
ankstesnes įėjimo signalų reikšmes įsimena pereidami į atitinkamas vidines
būsenas.
Trigeriai yra paprasčiausi skaitmeniniai automatai, naudojami sudėtingesniems
automatams sudaryti.
Sudėtingesni trigeriai daţniausiai sintezuojami iš operacinių stiprintuvų ir
loginių elementų. Trigerių sistema, susidedanti iš dviejų nuosekliai sujungtų
trigerių – valdančiojo ir valdomojo – vadinama dviejų pakopų trigeriu. Dviejų
pakopų trigeriuose valdantysis trigeris (kartais vadinamas šeimininku) ţymimas
raide M (master), o valdomasis (vergas) – raide S (slave). Sutrumpintai šie
trigeriai vadinami M–S trigeriais.
10.6.1. Šmito trigeris su operaciniu stiprintuvu
Šiuo metu jie daţniausiai surenkami panaudojant operacinį stiprintuvą:
Kadangi invertuojantis įėjimas įţemintas, stiprintuvo įtampa lygi teigiamo
maitinimo šaltinio įtampai (VS) jei įėjimo signalas teigiamas ir neigiamo
maitinimo šaltinio įtampai (-VS) jei įėjimo signalas neigiamas (stiprintuvas
maitinamas dviem priešingo poliariškumo įtampos šaltiniais). Grandinė R1-R2
veikia kaip įtampos daliklis.
91 pav. Šmito trigeris su operaciniu stiprintuvu
133
Jei dabartinė stiprintuvo įtampa lygi teigiamai maitinimo įtampai, jo būsenai
perjungti įėjimo įtampa turi tapti neigiama ir sumaţėti iki − (R1/R2)VS. Būsenai
pasikeitus, stiprintuvo išėjimo įtampa tapma neigiama (-VS), ir perjungimo į
ankstesnę būseną slenkstis tampa lygus +(R1/R2)VS.
Praktikoje neretai naudojamas sudėtingesnis šios schemos variantas su išėjimo
įtampą apribojančiais stabilitronais, kurie padidina schemos darbo stabilumą.
Rezistorius R3 riboja šiais stabilitronais tekančią srovę. Pastebėta, jos su realiais
operaciniais stiprintuvais schemos darbas pagerėja papildomai įjungus R4.
10.6.2. Invertuojantis Šmito trigeris su operaciniu stiprintuvu
Šmito trigerį galima surinkti ir taip, jog operacinio stiprintuvo (ir trigerio)
įėjimas nebūtų sujungtas su kitais schemos elementais. Kadangi operacinio
stiprintuvo įėjimo varţa labai didelė, toks trigeris geriau tinka priimti įėjimo
signalams iš šaltinio, kurio negalima daug apkrauti. Šio trigerio slenkčiai irgi
lygūs − (R1/R2)VS ir +(R1/R2)VS, tačiau jis invertuoja įėjimo signalą (keičia ţenklą
priešingu).
134
92 pav. Invertuojantis Šmito trigeris su operaciniu stiprintuvu
Kombinacinių loginių schemų (angl. – combinational logic) įėjimų signalai
vienareikšmiškai nustato jų išėjimų signalus. Šioms schemoms neegzistuoja
praeitis. Tik įgijusios atmintį loginės schemos gali kaupti patirtį ir priimti pro-
tingus sprendimus. Schemoje įkūnyta atminties ląstelė – tai trigeris; protingos
loginės schemos – trigerinės schemos. Protingi šių schemų sprendimai yra
praeityje įsimintos informacijos pasekmė, tad trigerinės schemos dar vadinamos
sekvencinėmis (lotyniškai sequentio – pasekmė). Ir angliškai trigerinės loginės
schemos daţniausiai apibrėţiamos sąvoka – sequential logic.
11. KOMBINACINĖS IR TRIGERINĖS LOGINĖS SCHEMOS
11.1. Kombinacinių loginių schemų struktūrinė schema
Jau minėjau, kad kombinacinių loginių schemų išėjimų signalus
nustato tik tuo metu veikiantys įėjimo signalai. Grieţtai kalbant, šis apibrėţimas
galioja tik idealioms kombinacinėms schemoms, nevėlinančioms loginių signalų.
Realiose kombinacinėse schemose išėjimo signalai šiek tiek vėluoja įėjimo signalų
atţvilgiu. Tai matyti iš realios kombinacinės schemos struktūrinės schemos,
parodyta ţemiau pateiktame paveiksle. Šiame paveiksle reali kombinacinė
schema nevėlindama įėjimo signalų I1, I2, ..., In įvykdo schemos nustatytas
logines funkcijas F1, F2, ..., Fm. Kiekvieno naujo įėjimo signalų derinio nusta-
tytos šių funkcijų reikšmės pasiekia realios kombinacinės schemos išėjimus tik po
tam tikrų vėlinimo laikų t1, t2, ..., tm . Vėlinimo laikas ti – tai funkcijos fi
135
naujos reikšmės didţiausias vėlinimo laikas; jis atitinka tą įėjimo signalų derinį,
kuriam veikiant ti yra maksimalus.
93 pav. Realios kombinacinės schemos struktūrinė schema
Trigerinių, arba sekvencinių, loginių schemų išėjimų būvius nustato ne tik
tuo metu veikiantys išoriniai įėjimų signalai, bet ir grįţtamojo ryšio signalai, kurie
priklauso nuo schemos atminties įtaisų būvių. Daţnai išoriniai įėjimų signalai
vadinami pirminiais įėjimų signalais (angl. – external, arba primary, inputs), o
grįţtamojo ryšio – vidiniais, arba antriniais, įėjimų signalais (angl. – feedback
signals, state, arba secondary, inputs).
Skiriamos sinchroninės ir asinchroninės trigerinės loginės schemos
(angl. – synchronous or clock mode sequential logic; asynchronous sequential
logic).
Sinchroninėse trigerinėse loginėse schemose daţniausiai naudojami atmin-
ties įtaisai yra dinaminiai trigeriai, kurie gali keisti savo būvius tik sinchronizuo-
jančiojo impulso priekinio fronto metu. Tai reiškia, kad kombinacinės loginės
schemos sukurti ţadinimo signalai nekeičia dinaminių trigerių būvių iki sinchro-
nizuojančiojo impulso priekinio fronto, tai yra kito takto pradţios. Tik po to
ţadinimo, arba kito būvio signalai, tampa trigerių šių būvių signalais schemos
išėjimuose.
Patekę į kombinacinės schemos įėjimus kaip grįţtamojo ryšio signalai, jie
kartu su išoriniais įėjimų signalais formuoja naujus ţadinimo
Valdymo, arba sinchronizuojantys signalai C, arba CK
Ðio bûvio iðëjimo signalai q1,q2, ..., qk
t
CK
n
i
Þadinimo, arba kito bûvio, signalai Q1, Q2, ..., Qk
Antriniai, arba
vidiniai, áëjimai
Pirminiai áëjimai
Gráþtamojo ryðio signalai
Iðoriniai áëjimo signalai I1, I2, ..., In
Kombi-nacinë schema
k Atmin-
ties átaisai- dinami-niai tri-geriai
i k
T = 1/ fCK
IN
IÐ
k
136
signalus.Sinchronines trigerines logines schemas patogu projektuoti suskaidant
laiką į taktus ir aprašant įvykius schemoje kiekvieno takto metu. Šios schemos
dirba be klaidų, jei tenkinami du reikalavimai:
– prieš prasidedant kiekvienam naujam taktui, schema turi būti
stabiliame būvyje: turi nekįsti įėjimo signalai ir būti nusistovėję loginiai lygiai ir
kombinacinių schemų, ir trigerių išėjimuose;
– po kiekvieno naujo takto pradţios, išoriniai įėjimo signalai nors
trumpą laiką turi išlikti nepakitę.
Laikas prieš kiekvieno takto pradţią vadinamas parengties, arba
nustatymo, laiku tsu (angl. – setuptime), laikas po kiekvieno takto pradţios –
įtvirtinimo, arba išlaikymo, laiku (angl. – hold time).
Asinchroninės trigerinės loginės schemosenera sinchronizuojančių
signalų. Asinchroninės trigerinės loginės schemos veikia be klaidų, jei, prieš
paduodant kiekvieną išorinį įėjimo signalą, schemoje visi būviai esti nusistovėję,
ir tuo pat metu keičiasi tik vieno iš išorinių įėjimų signalas.Asinchronines
trigerines schemas projektuoti sunkiau, todėl jos naudojamos tik tuomet:
– kai sinchroninės schemos yra nepakankamai sparčios;
– kai schema apdoroja pavienius neperiodinius ir nesinchronizuotus
loginius signalus;
– kai dėl kokių nors prieţasčių (pavyzdţiui, ribotos autonominio
maitinimo šaltinio galios) sinchronizuojančių signalų neformuoja.
Trigerinės loginės schemos daţnai vadinamos sinchroniniais arba
asinchroniniais (nelygu kokia trigerinė schema) būvių automatais. Kartais
vartojamas ir kitas terminas – sinchroniniai arba asinchroniniai būvių generatoriai
(angl. – synchronous arba asynchronous state machine).
11.2. Dviejų stabilių būvių atminties ląstelė
137
Dviejų stabilių būvių atminties ląstelė – kiekvieno trigerio svarbiausioji
dalis. Sudarysime šios ląstelės elektrinę principinę ir loginę schemas,
išsiaiškinsime jų veikimą ir ypatybes.
Dviejų būvių atminties ląstelės schemą sudaro du varţinio stiprintuvo
laipsniai, kuriuose sudarytas teigiamas grįţtamasis ryšys tarp antrojo laipsnio
išėjimo ir pirmojo laipsnio įėjimo.
94 pav. Pirmasis dviejų būvių atminties ląstelės schemos variantas
Šią schemą galima apibūdinti ir taip: tai dviejų laipsnių stiprintuvas, kurio
kiekvieno laipsnio išėjimas sujungtas su kito laipsnio įėjimu. Tačiau daţniausiai
teikiamas šitoks apibrėţimas:tai du varţinio stiprintuvo laipsniai, kuriuose
sudarytas kryţminis grįţtamasis ryšys tarp išėjimų ir įėjimų.
Pagal šį pirmąjį dviejų būvių atminties ląstelės schemos varianto aprašymą
perbraiţyta schema parodyta kitame paveiksle (ţiūrėti ţemiau).
Galimi du ir tik du stabilūs šios schemos būviai. Tarkime, kad tranzistorius
VT1 yra atviras. Tuomet atviro tranzistoriaus kolektoriaus ţemas įtampos lygis
palaiko uţdarą tranzistorių VT2. Aukštas uţdaro tranzistoriaus VT2 kolektoriaus
įtampos lygis palaiko atvirą tranzistorių VT1. Toks būvis – atviras VT1 ir uždaras
VT2 – yra stabilus ir gali trukti tol, kol neišjungsime maitinimo įtampos.
VT2 VT1
R2 R1
+EK
138
95 pav. Pagrindinė atminties ląstelės schema
Galimas ir kitas stabilusis būvis, kai atviras yra tranzistorius VT2. Tuomet
ţemas šio tranzistoriaus kolektoriaus įtampos lygis laiko uţdarą tranzistorių VT1,
o šio aukštas kolektoriaus įtampos lygis – atvirą tranzistorių VT2. Ir šis būvis –
uždaras VT1 ir atviras VT2 – trunka tol, kol neišjungiama maitinimo įtampa.
Būvis, kai abu tranzistoriai uždari, negalimas, nes bet kurio uţdaro
tranzistoriaus aukštas kolektoriaus įtampos lygis tuojau pat atidarytų kitą uţdarą
tranzistorių.
Būvis, kai abu tranzistoriai praviri, galimas, bet nestabilus, nes ma-
ţiausias bet kurio tranzistoriaus kolektoriaus įtampos ar srovės pokytis nustato
vieną iš stabiliųjų schemos būvių. Aptarkime, kaip tai vyktų. Abu tranzistoriai gali
būti praviri tik tuomet, kai jais teka nekintančios vienodo stiprumo srovės.
Tarkime, kad kaţkuriuo laiko momentu tranzistoriaus VT1 srovė šiek tiek padidė-
jo. To prieţastis gali būti net ir chaotiškas sudarančių srovę elektronų judėjimas.
Padidėjusi VT1 kolektoriaus srovė šiek tiek padidina įtampos kritimą rezistoriuje
R1, todėl VT1 kolektoriaus įtampa truputį sumaţėja ir pridaro tranzistorių VT2, o
tai, savo ruoţtu, padidina jo kolektoriaus įtampą. Padidėjusi VT2 kolektoriaus
įtampa dar labiau stiprina tranzistoriaus VT1 srovę ir maţina jo kolektoriaus
įtampą. Šitoks griūties procesas labai greitai tranzistorių VT1 įsotina, o
tranzistorių VT2 uţdaro – schema pereina į vieną iš dviejų stabiliųjų būvių.
VT2 VT1
R2 R1
+EK
139
96 pav. Dviejų būvių atminties ląstelės loginė schema
Tranzistorių kolektorių įtampos visuomet esti inversinės viena kitos
atţvilgiu: atvirojo tranzistoriaus kolektoriaus įtampos lygis ir loginis lygis yra
ţemas, uţdarojo – aukštas.
Schema, kurioje galimi tik du stabilūs būviai, naudojama kaip
atminties ląstelė vieno bito informacijai saugoti. Tokia atminties ląstelė dar nėra
trigeris, nes jos įėjimai, tranzistorių bazės, tiesiogiai susieti su išėjimais – tran-
zistorių kolektoriais. Trigeriuose įėjimai ir išėjimai turi būti atskirti.
Dviejų būvių atminties ląstelės loginę schemą sudaro tik du loginiai
elementai. Antrojoje schemoje nesunku įţiūrėti du inverterius. Kiekvieno inverte-
rio išėjimas sujungtas su kito inverterio įėjimu – tai ir parodyta atminties ląstelės
loginėje trečioje schemoje (ţiūrėti ţemiau).
11.3. Bazinis SR trigeris
Dviejų stabilių būvių atminties ląstelė tampa trigeriu, kai joje sudaromi
atskirti vienas nuo kito įėjimai ir išėjimai. Jei į trečią schemą lygiagrečiai kiekvie-
nam tranzistoriui įjungsime dar po vieną tranzistorių, turintį bendrą kolektoriaus
apkrovą su ankstesniuoju tranzistoriumi, gausime bazinio trigerio schemą,
parodytą ketvirtoje schemoje. Paprastai vienas tokio trigerio įėjimas vadinamas
nustatymo, arba įrašymo, įėjimu (angl. – set), kitas – numetimo, arba ištrynimo,
įėjimu (angl. – reset). Pagal angliškųjų įėjimų pavadinimų pirmąsias raides S ir R
šis trigeris vadinamas SR trigeriu.
1
1
140
97 pav. Bazinio SR trigerio elektrinė principinė schema
Trigerių išėjimai paprastai ţymimi raidėmis Q ir Q. Tiesioginiu trigerio
išėjimu Q laikomas tas išėjimas, kuriame gaunamas įėjimo S signalas. Sakoma,
kad trigeris yra nustatytas į loginio 1 būvį, arba įrašytas (set), kai išėjimo Q
loginis lygis yra aukštas: Q = 1. Trigeris yra nustatytas į 0 būvį, arba ištrintas
(reset), kai Q = 0.
Išnagrinėsime ketvirtos schemos, veikimą. Tegul šios schemos įėjimas
IN1 yra S įėjimas, o IN2 – R. Kadangi schema simetriška, įėjimus galime
pasirinkti laisvai, tačiau pasirinktų įėjimų signalus turi atitikti tik tam tikrų išėjimų
signalai. Tarkime, kad signalai įėjimuose šitokie: S = 1, R = 0. Aukšta įėjimo IN1
įtampa atidaro tranzistorių VT1 ir, nepriklausomai nuo to, atviras ar uţdaras VT2,
sukuria ţemą VT1 kolektoriaus įtampą. Šis ţemas įtampos lygis uţdaro tranzisto-
rių VT3. Ţemas įėjimo IN2 loginis lygis R = 0 uţdaro tranzistorių VT4. Jei ir VT3 ir
VT4 uţdari, jų kolektoriaus potencialas lygus maitinimo šaltinio įtampai. Tai esti
aukštas įtampos lygis, kuris atidaro tranzistorių VT2. Taigi įėjimų signalai S = 1
ir R = 0 atidaro VT1 ir VT2 bei uţdaro VT3 ir VT4: nustato ţemą įėjimo IŠ1
įtampos lygį ir aukštą išėjimo IŠ2 įtampos lygį. Pagal anksčiau suformuluotą
taisyklę, kad išėjimas Q yra tas išėjimas, kuriame pakartojamas S įėjimo
signalas, darome išvadą, kad SR trigeryje tiesioginis išėjimas Q yra išėjimas IŠ2,
o inversinis išėjimas Q yra išėjimas IŠ1.
IÐ1
IN1
IÐ2 VT3 VT1 VT2
R2 R1
+EK
VT4
IN2
141
Liko neaptartas įėjimo signalų rinkinys: S = 1 ir R = 1. Kol šie signalai
veikia, ir tranzistorius VT1, ir tranzistorius VT4 yra atviri, todėl išėjimuose Q ir Q
gaunama ţema įtampa. Nustojus veikti tiems įėjimo signalams, maţiausias
įtampos ar srovės pokytis gali pervesti trigerį į vieną iš dviejų vienodai tikėtinų
stabilių būvių: arba VT1 ir VT2 uţsidaro, o VT3 ir VT4 lieka atviri, arba VT1 ir VT2
lieka atviri, o VT3 ir VT4 uţsidaro. Signalų rinkinys S = 1 ir R = 1 yra šiam trige-
riui draudţiamas, nes, pirma, kol šie signalai veikia, tol Q = Q = 0, o tai neatitin-
ka trigerio apibrėţimo – trigeris nustoja buvęs trigeriu. Antra, kai šie signalai bai-
giasi, trigeryje nusistovi atsitiktinis iš anksto nenuspėjamas būvis. Išskyrus kai
kuriuos atvejus, tokia situacija nepriimtina nei trigeriuose, nei schemose su trige-
riais.
Sudarysime SR trigerio loginę schemą. Nesunku pastebėti, kad šią
schemą sudaro du loginiai elementai 2 ARBA-NE su kryţminiais grįţtamaisiais
ryšiais: kiekvieno loginio elemento išėjimas sujungtas su kito elemento įėjimu.
98 pav. Bazinio SR trigerio loginė schema
Trigerio tiesioginis išėjimas Q yra išėjimas to loginio elemento, į kurį
ateina įėjimo signalas R. Inversinis trigerio išėjimas Q yra išėjimas to loginio
elemento, į kurį ateina įėjimo signalas S.
Aptarsime bazinio SR trigerio veikimą loginių elementų lygmenyje.
Prieš tai prisiminkite, kad "stiprusis" signalas, vienareikšmiškai nustatantis būvį
1
1 S
R
Q
Q
142
loginio elemento ARBA (taip pat ir loginio elemento ARBA-NE) išėjime, yra loginis
vienetas arba aukštas įtampos lygis. Vadinasi, kai loginės schemos įėjimuose yra
signalų rinkinys S = 1 ir R = 0, signalas S = 1 vienareikšmiškai nustato Q = 0.
Signalai R = 0 ir Q = 0 savo ruoţtu nustato Q = 1.
Bazinis SR trigeris dar vadinamas baziniu ARBA-NE trigeriu, šitaip
pabrėţiant, kad jis yra sudarytas iš loginių elementų ARBA-NE.
Du bazinio SR trigerio įėjimo signalų rinkiniai SR = 10 ir SR = 01 vadi-
nami aktyviaisiais, arba nustatančiaisiais. Rinkinys SR = 10 nustato trigerio būvį
Q = 1, rinkinys SR = 01 – būvį Q = 0. Įėjimo signalų rinkinys SR = 00
vadinamas pasyviuoju, arba neutraliuoju, nes nekeičia prieš tai buvusio trigerio
būvio. Tą patį galime suformuluoti ir kitaip: tik vienetas yra aktyvusis bazinio tri-
gerio ARBA-NE įėjimo signalas. S = 1 nustato trigerio būvį Q = 1, R = 1 – būvį
Q = 1. Įėjimo signalų rinkinys SR = 11 baziniam SR trigeriui yra draudţiamas.
11.4. Bazinis SR trigeris
Pritaikę de Morgano teoremą, SR trigerio loginę schemą galime
pakeisti schema, sudaryta iš loginių elementų 2IR-NE. Po kintamųjų įėjime
inversijos loginis elementas 2ARBA-NE vykdo loginę funkciją 2IR. Vadinasi, suda-
rius schemą iš loginių elementų 2IR-NE, inversija bus atliekama ne tik schemos
įėjimuose, bet ir jos išėjimuose.
Loginių elementų IR ir IR-NE įėjime "stiprusis" signalas, vienareikšmiškai
nustatantis būvį loginio elemento išėjime, yra nulis. Tai reiškia, kad SR trigerio
būvį nustato aktyvieji įėjimo signalų rinkiniai SR = 01 ir SR = 10. Įėjimo sig-
nalas S = 0 (S = 1) nustato bazinio SR trigerio būvį Q = 1, o signalas R = 0
(R = 1) – būvį Q = 1. Rinkinys SR = 11 yra pasyvusis, o SR = 00 draudţia-
mas, nes tuomet Q = Q = 1.
143
99 pav. Bazinio SR trigerio loginė schema
100 pav. Grafinis SR trigerio ţymuo
11.5. Charakteringoji lygtis
Trigerio charakteringoji, arba būdingoji, lygtis sieja trigerio kito būvio
išėjimo signalą su išoriniais trigerio įėjimo signalais ir vidiniu įėjimo, arba
grįţtamojo ryšio, signalu – šiuo trigerio būviu. Charakteringoji lygtis uţrašoma
remiantis vėlinančiojo trigerio modelio logine schema.
101 pav. Vėlinančiojo SR trigerio modelis
Tuomet SR trigerio kito būvio išėjimo signalas:
Q
R
q 1
1
t
X S
S
R
Q
Q
Q S
R Q
144
QS + q + R (S + q)RSR + qR
Apvestoji dalis yra SR trigerio charakteringoji lygtis. Ji aprašo grįţta-
mąjį ryšį trigeryje: Q matome ir kairiojoje, ir dešiniojoje lygties pusėse, nes q yra
Q po t. Be to, charakteringoji lygtis teigia, kad trigerio kito būvio signalas Qyra
ir išorinių įėjimo signalų S ir R, ir trigerio šio būvio q funkcija.
11.6. Būvių reikšmių lentelė
Pagal trigerio charakteringąją lygtį galime sudaryti jo būvių reikšmių
lentelę (angl. – present state – next state table, arba state table).
26 lentelė. SR trigerio būvių reikšmių lentelė
Iš sudarytosios lentelės matyti, kad trigeris turi tris įėjimo signalus: išorinių
įėjimų S ir R bei vidinį įėjimo, arba grįţtamojo ryšio, signalą q. Charakteringoji
lygtis leidţia pagal šiuos tris įėjimo signalus nustatyti trigerio išėjimo, arba kito
būvio, signalą Q.
Įėjimo signalai Išėjimo signalas Komentarai
Vidinis įėjimo, arba šio būvio išėjimo, signalas
Išoriniai įėjimo signalai
Kito būvio signalas
Šis būvis
Trigerio būvis
X = S+q(po t) =
= S+Q
q S R Q q Q X Q 0 0 0 0 stabilus R 1 0 0 1 0 stabilus R 1 0 1 0 1 nestabilus S 0 0 1 1 0 stabilus R 0 1 0 0 1 stabilus S 0 1 0 1 0 nestabilus R 1 1 1 0 1 stabilus S 0 1 1 1 0 nestabilus R 0
145
Šis trigerio būvis q yra stabilus, kai q Q. Kai q Q, po laiko t q reikšmė
pakinta ir būna lygi Q.
Loginio kintamojo X Q reikšmės rodo, kad trigerio išorinių įėjimo signalų
rinkinys SR 11 yra draudţiamas, nes tuomet Q ir Q reikšmės sutampa. Šį
draudţiamąjį SR rinkinį atitinkančios lentelės eilutės yra išskirtos.
11.7. Būvių kaitos diagrama
Remiantis trigerio būvių reikšmių lentele, galima nubraiţyti tų būvių kaitos
diagramą. Beje, ją galima sudaryti ir pagal trigerio charakteringąją lygtį. Būvių
diagramoje šis trigerio būvis q 0 ţymimas skritulėlyje įrašyta a raide, o q 1 –
skritulėlyje įrašyta b raide. Pakitus trigerio išoriniams įėjimo signalams, trigerio
būvis gali likti toks pats – būvių diagramoje tai atvaizduojama grįţtančia į tą patį
skritulėlį rodykle. Jei pakitus išoriniams įėjimo signalams trigerio būvis kinta,
būvių diagramoje tai atvaizduojama nukreipta į kitą skritulėlį rodykle. Trigerio
būvių kaitos diagramoje strėlytė visuomet eina iš skritulėlio, kuriame įrašytas šis
trigerio būvis, į skritulėlį, kuriame įrašytas kitas trigerio būvis.
11.8. Veikimo algoritmas
Anksčiau minėjome, kad trigeriai ir schemos su trigeriais vadinami būvių
automatais. Šių automatų veikimą galime aprašyti programiškai.
SR trigerio veikimo algoritmo blokinę schemą sudaro būvių blokeliai,
paţymėti raidėmis a (q 0)ir b (q 1), bei sprendimo priėmimo blokeliai.
Išnagrinėję šį algoritmą, galime įsitikinti, kad jis atitinka SR trigerio būvių kaitos
lentelę ir diagramą.
146
102 pav. SR trigerio būvių kaitos diagrama
103 pav. SR trigerio veikimo algoritmo blokinė schema
11.9. Karno diagrama
SR 01 11
b
SR 10
SR 00 10
SR 00 01 11
a – q 0
b – q 1
SR 11 – draudþiamas áëjimo signalø
rinkinys
a
1
0
1
0
S R
a
b
R
147
Remiantis trigerio charakteringąja lygtimi, jo būvių lentele arba dia-
grama, galima sudaryti trigerio Karno diagramą. Šios Karno diagramos
argumentai, loginiai kintamieji, yra trigerio vidiniai ir išoriniai įėjimo signalai q, S
bei R; į diagramą įrašoma loginė funkcija – kitas trigerio būvis Q.
Karno diagrama labai gerai tinka trigerio būvio stabilumui nustatyti: jei
į diagramos langelį įrašyta trigerio kito būvio reikšmė Q sutampa su šio trigerio
būvio reikšme q, tai trigerio būvis yra stabilus, nes po laiko tq reikšmė išliks ta
pati. Ir atvirkščiai, jei į diagramos langelį įrašyta trigerio kito būvio reikšmė Q
skiriasi nuo šio trigerio būvio reikšmės q, tai reiškia, kad trigerio būvis yra nesta-
bilus, nes po laiko tq reikšmė pakis, sutaps su trigerio kito būvio reikšme Q.
104 pav. SR trigerio Karno diagrama, kur stabilūs trigerio būviai
Pagal Karno diagramą galima uţrašyti trigerio charakteringąją lygtį, trige-
rio kito būvio Q priklausomybę nuo vidinių ir išorinių įėjimo signalų q, S ir R. Tuo
tikslu diagramoje sudarome du vienetų kontūrus p1 ir p2 ir gauname, kad
Qp1 + p2SR + qR .
12. SINCHRONINIAI TRIGERIAI
q SR
00 01 11 10
0 0 0 0 1
1 1 0 0 1
SR 11 – uþdraustas rinkinys
p1
p2 Q
148
12.1. Sinchroniniai SR trigeriai
Prieš tai nagrinėti baziniai SR ir SR trigeriai yra potencialiniai trigeriai,
nes jų būvius keičia aukšti ir ţemi įtampų lygiai informaciniuose S ir R įėjimuose.
Šie trigeriai yra asinchroniniai, nes jų būvius lemia vien tik informacinių įėjimų
signalai. Visuose sinchroniniuose trigeriuose informaciniai signalai prieš
patekdami į bazinio trigerio įėjimą turi praeiti pro laiko vartus (angl. – gates).
Vartus valdo arba signalas C (control – valdymo), arba CK (clock –
sinchronizavimo), arba E (enable – leidimo). Kad ir kaip šie signalai būtų vadi-
nami, jie yra vartininkai, praleidţiantys arba nepraleidţiantys į bazinį trigerį infor-
macinius signalus.
Sinchroniniuose SR trigeriuose naudojami loginių elementų IR vartai,
jei bazinis trigeris yra SR trigeris, arba loginių elementų IR-NE vartai, jei bazinis
trigeris – SR trigeris.
12.2. Sinchroniniai D trigeriai
Klasifikuodami trigerius sakėme, kad D (angliškai D interpretuojamas dve-
jopai: data arba delay) trigeris – tai SR trigeris su vienu informaciniu įėjimu DS;
įėjimas R sudaromas kaip įėjimo S inversija. Pagal tokį D trigerio apibrėţimą nu-
braiţyta sinchroninio D trigerio (angl. – gated D latch) funkcinė schema parodyta
ţemiau pateiktoje schemoje. Ši trigerio schema eliminuoja draudţiamą signalų
rinkinį SR 11 (arba CSR 111). Kai valdymo įėjimo signalas C 1, informacinio
įėjimo signalas D 1 nustato trigerio būvį Q 1 (b būvį), o signalas D 0 – būvį
Q 0 (a būvį). Taigi signalų rinkinys CD 11 nustato, arba įrašo, trigerį, o rinkinys
CD 10 jį numeta, arba ištrina.
149
105 pav. Sinchroninio D trigerio funkcinė schema (a) ir grafinis
ţymuo (b)
Asinchroninio D trigerio funkcinė schema skirtųsi nuo, (a-dalies) parodytos
schemos tik tuo, kad vietoj sinchroninio SR (SRC) trigerio būtų asinchroninis SR
trigeris – bazinis SR trigeris.
12.3. Sinchroniniai JK trigeriai
Minėjome, kad tarp JK trigerių išėjimų ir įėjimų būna sudarytas kryţminis
grįţtamasis ryšys: tai yra trigerio įėjimas S arba kitas jį atitinkantis įėjimas
sujungiamas su inversiniu trigerio išėjimu Q, o įėjimas R arba kitas jį atitinkantis
įėjimas – su tiesioginiu trigerio išėjimu Q.
Sinchroniniuose JK trigeriuose (angl. – gated J-K latch) grįţtamojo ryšio
signalai nukreipiami į įėjimus pro laiko vartus. Šitaip sudarytos sinchroninio JK
trigerio su baziniu SR trigeriu loginė ir funkcinė schemos bei trigerio grafinis
ţymuo parodyti paveiksle.
Trigerio įėjimas J (jump) pagal paskirtį atitinka SR trigerio įėjimą S, o įėji-
mas K (keep) – įėjimą R. Tai, kad grįţtamasis ryšys yra kryţminis, vaizdţiau
matyti iš trigerio funkcinės schemos. Išnagrinėję sinchroninio JK trigerio loginę
schemą galime įsitikinti, kad JK trigeryje, kaip ir D trigeryje, bazinio trigerio
įėjimų signalų derinys SR 11 neįmanomas.
C
C
D
1
S
C
R
Q
Q
a
D Q
Q
b
150
106 pav. Sinchroninio JK trigerio loginė schema (a),funkcinė
schema (b) ir grafinis ţymuo (c)
12.5. Sinchroniniai T trigeriai
Jau sakėme, kad T trigeris – tai JK trigeris, kuriame JKT. Sinchroninio T
trigerio funkcinė schema ir grafinis ţymuo parodyti ţemiau pateiktame paveiksle.
Šis trigeris dirba taip pat nestabiliai, kaip ir sinchroninis JK trigeris.
107 pav. Sinchroninio T trigerio funkcinė schema (a) ir grafinis
ţymuo (b)
K
1
J
C
1 Q
Q
a
J
C
K
J
K
C
S Q
Q R
b
Q
Q
c
T T
C
C
S Q
Q R
a
Q
Q
b
151
Pratimas Nr.6.
Pasinaudojant LabVIEW 2010 programine įranga sukonstruoti RS trigerius ir
išsiaiškinti bei patikrinti jų veikimą (riamentis pateiktu pavyzdţiu).
RS trigerio Block diagrama
152
Front panelis (gaunamas galutinis vaizdinis rezultatas)
13. SIGNALŲ DUOMENŲ GENERAVIMAS IR JŲ ANALIZĖ LABVIEW
TERPĖJE
13.1. NI ELVIS sistema
NI ELVIS yra „National Instruments― sukurtas prietaisas, į kurį įeina
LabVIEW parengti virtualūs instrumentai, multifunkcinės duomenų kaupimo
bazės (DAQ - data acquisition) sistema ir prototipinė lenta. Duomenų kaupimas -
tai duomenų - elektrinių signalų matavimo ir įrašymo procesas su tolimesne
153
įrašymo ir analizės galimybe. Duomenų kaupimas turi turėti analoginio ar
skaitmeninio signalo kontrolės galimybę.
108 pav. NI ELVIS
DAQ (multifunkcijos duomenų kaupimo bazė) sistemų pagalba
registruojami, matuojami ir analizuojami fiziniai reiškiniai:
Šviesa, temperatūra, slėgis ir kiti skirtingų tipų signalai.
NI ELVIS instrumentų pasirinkimas ypatingai platus, kuris suteikia
galimybę greitai ir kokybiškai atlikti praktinius darbus. Keletas instrumentų, kurie
buvo naudojami mano praktiniame darbe:
Bode Analyzer- analoginio signalo daţnių analizatorius;
Digital Multimeter (DMM)- skaitmeninis multimetras;
Oscilloscope (Scope)- oscifilografas, elektrinių signalų formos ir amplitudės
matavimas. Įėjimas jungiamas prie BNC kontaktų. Analoginis ir
skaitmeninis signalas.
Variable Power Supplies- reguliuojami nuo 0 iki -12 V ir nuo 0 iki +12 V
šaltiniai
13.2. Standartinis relalių signalų įvedimas ir generavimas
naudojant LabVIEW virtualius modulius
154
Kaip jau minėjau naudojantis LabVIEW programavimo terpe galima
lengvai ir greitai suprogramuoti bet kokią norimą sistemą ne išimtis ir siganalų
registravimo ir generavimo programų sukurimas. Su kuriomis galima lengvai
tiek įvedinėti realius procesus ir juos fiksuoti bei kaupti atmintyje, tiek galima
generuoti ir perduotį į išorinį interfeisą siganalus.
Pirmiausia pradekime nuo signalų ivedimo programos kūrimo. Taigi
vėlgi atsidarome Block programavimo langą ir jame funkcinės subpaletės
lange susirandame virtualių modulių grupę Measurement I/O-DAQmx – Data
Acquisition.
109 pav. Measurement I/O-DAQmx – Data Acquisition subpaletė
110 pav. Kurių funkcijų aprašymas pateiktas lentelėje.
27 lentelė. LabVIEW signalo fiksavimui skirtų virtualių modulių aparašymas
Modulis Apibūdinimas
1.
DAQmx Create Channel.vi: sukuria įvedimo/išvedimo kanalus,
skirtus matuoti įtampą. Pasirenkamas įtampos intervalas: -10 -
+10. Priskiriami fiziniai kanalai, šiuo atveju pasirinkti šeši
fiziniai kanalai.
2.
DAQmx Timing (Sample Clock).vi: leidţia pasirinkti tyrimo laiko
nustatymus, t.y. diskretizavimo daţnį, tyrimo modelį
155
(pastovus/ribotas).
3.
DAQmx Start Task.vi: uţduoties perėjimas į paleidimo būseną,
skirtą pradėti matavimą ar generavimą.
4.
DAQmx Write.vi: uţrašo biosignalą į uţdavinį, kuris turi nuo
vieno iki n. skaičių analogo išvedimo kanalų.
5.
DAQmx Clear Task. vi: tikrina visus i programą patenkančius
signalus su programoje pasirinktais nustatymo kriterijais.
6.
Write To Measurement File tai modulis, skirtas matavimo
duomenų įrašymui tekstiniu (LVM) ar binariniu (TDMS) formatu.
Pasinaudodami šiais modulias ir turėdami jau pradinius įgudţius mae
turime sumodeliuoti tokio tipo pragramą kuri pateikta ţemiau esančiame
paveiksle. Tačiau reikia nepamiršti kad ši subpaletė ir pati programa veiks tik
tada jei bus prie Pc prijungras išorinis iterfeisas, šiuo atveju tai daugiafunkcinė
darbinė stotelė NI-ELVIS.
111 pav. Signalų fiksiavimo virtuali programa
156
Uţfiksavus duomenis į failą duomenys reikia nusakityti, o nuskaičius galima
atlikti įvairią jų statistinę analizę ir panašei. Paprasčiausia nuskaitymo programa
pateikta ţemiau esančiame paveiksle.
112 pav. LabVIEW signalų nuskaitymo programos schema
28 lentelė. LabVIEW signalo nuskaitymo virtualių modulių aparašymas
1.
Read from measurement file – tai
modulis, kuris nuskaito duomenų seką
iš failo: tekstinio duomenų
nuskaitymas (.lvm) arba binarinis
duomenų nuskaitymas (.tdm) formatu.
Šis nuskaitymo vi. modulis suteikia
galimybę duomenis siųsti į apdorojimo
ir analizės programas. Šis modulis
nuskaitė duomenis, pirmą stulpelį
(laiką, s) leido paţymėti kaip laiko
kanalą, ir nustatė, kad laiko duomenys
157
yra pirmame duomenų failo stulpelyje.
2.
Papildomas LabVIEW nuskaitymo
modulis, kuris naudojamas duomenis
atvaizduoti grafiškai, kompiuterio
monitoriuje.
Kadangi jau signalus išmokome fiksuoti tai dabar reiktų išmokti ir juos
generuoti. Todėl sekanti programa tai būtų virtualus signalo generatorius, kuris
sugeba virtualų signa perduoti į realius NI Elvis išėjimo (AO) kanalus. Šio
programos struktūra panaši kaip ir duomenų skaitymo ir į failą rašančios
programos. Skiriasi tik tuo kad yra virtualių modulių išdėstymo seka kita,
atsiranda vienas papildomas modulis tai virtaulus signalo generatorius
29 lentelė. LabVIEW virtualių modulių aparašymas
Modulis Apibūdinimas
1.
DAQmx Create Channel.vi: sukuria įvedimo/išvedimo kanalus,
šiuo atvejų atpaţinti generuojamą signalą ir jį perduoti į realų
AO išėjimo kanalą. Pasirenkamas įtampos intervalas: -10 - +10.
Priskiriami fiziniai kanalai, šiuo atveju pasirinkti du fiziniai
kanalai.
2.
Virtualus signalo generatorius kuris savo viduje turi
suprogramuota komandą kuri leidţia pasirinkti generaujamo
signalo tipą, dydį, daţnį ir taip toliau.
3.
DAQmx Timing (Sample Clock).vi: leidţia pasirinkti tyrimo laiko
nustatymus, t.y. diskretizavimo daţnį, tyrimo modelį
(pastovus/ribotas).
158
4.
DAQmx Write.vi: uţrašo biosignalą į uţdavinį, kuris turi nuo
vieno iki n. skaičių analogo išvedimo kanalų.
5.
DAQmx Start Task.vi: uţduoties perėjimas į paleidimo būseną,
skirtą pradėti matavimą ar generavimą.
6.
DAQmx Is Task Done. vi: leidţia bet kurio momentu sustabdyti
visą programą valbomas su SPOP vi.
7.
DAQmx Clear Task. vi: tikrina visus i programą patenkančius
signalus su programoje pasirinktais nustatymo kriterijais.
113 pav. Signalų generavimo virtuali programa
14. TINKAMO ANALITINIO METODO PASIRINKIMAS
Vartotojai skirtingais būdais įtraukia analizę į savo programas. Yra tam
tikros aplinkybės kurios padeda nustatyti geriausią būdą analizei atlikti.
14.1 „Inline“ ir „Offline“ analizė
159
„Inline― analizė reiškia, kad duomenys yra analizuojami toje pačioje
taikomojoje programoje, kurioje jie buvo gauti. Šis analizės tipas yra
naudojamas, kai dirbama su programomis, kuriose sprendimai turi būti priimami
veikiant programai ir kuriose rezultatai yra tiesiogiai įtakojami taikomosios
programos veikimo proceso, daţniausiai keičiant parametrus arba atliekant
kokius nors veiksmus. Tokia analizė yra daţniausiai naudojama kontrolinėse
programose. Naudojantis „inline― analize svarbu apsvarstyti gaunamų duomenų
kiekį ir pasirinktos analizės rėţimą, kuris bus naudojamas duomenims apdoroti.
Turi būti rasta tinkama pusiausvyra, nes duomenys gali apkrauti kompiuterio
resursus ir turėti neigiamos įtakos taikomosios programos darbui.
Kitas „inline― analizės pavyzdys būtu taikomosios programos, kuriose
matavimų parametrai turi būti pritaikyti prie matuojamo signalo charakteristikų.
Analizė naudojama tokiu atveju jei turi būti prijungti vienas ar daugiau signalų,
kurių pokyčiai yra labai lėti išskyrus staigius didelio greičio duomenų srauto
proverţius. Norint sumaţinti prisijungusių duomenų kieki, taikomoji programa
turėtu greitai atpaţinti didelį duomenų priėmimo daţnio poreikį ir daţnį padidinti,
o duomenų proverţiui pasibaigus - vėl sumaţinti. Matuodama ir analizuodama
tam tikrus signalo aspektus programa gali prisitaikyti prie aplinkybių ir reikalui
esant panaudoti reikiamus parametrus uţduočiai atlikti. Be šio, dar yra
tūkstančiai pavyzdţiu kur taikomosioms programoms yra reikalingas tam tikras
intelekto laipsnis, gebėjimas priimti sprendimus įvairiomis sąlygomis ir
prisitaikomumas. Visi šie dalykai gali būti suteikiami įdiegiant analitinius
algoritmus į taikomąsias programas.
Sprendimai, priimami remiantis gaunamais duomenimis, ne visada yra
priimami automatiniu būdu. Labai daţnai ţmonės, dalyvaujantis šiame procese,
nori patikrinti programos veikimą ir nustatyti ar ji veikia taip kaip turėtų, ar kelias
reikšmes reikia pakoreguoti. Taip pat nėra retas atvejis, kai vartotojai nori įsikelti
duomenis iš failo ar duomenų bazės ir juos analizuoti ir keisti, daţniausiai
pakeitimai turi būti vykdomi programai veikiant. Tokiu atveju taikomoji programa
160
turi susitvarkyti su duomenimis ateinančiai iš veikiančio proceso, jais
manipuliuoti, supaprastinti, formatuoti ir išvesti duomenis naudingiausiu
vartotojui būdu. Tada LabVIEW vartotojai gali pasinaudoti daugeliu vizualizacijos
privalumų, kurie leis atvaizduoti duomenis patogiausiu būdu.
LabVIEW siūlo analitinius ir matematinius šablonus, kurie be jokiu
problemų dirba su duomenų kaupimo ir išvesties funkcijomis, kurios gali būti
lengvai įterptos į bet kokią taikomąją programą. Be to, LabVIEW siūlo analitines
programas „pont-by-point― uţduotims atlikti. Šios programos yra specialiai
sukurtos atitikti „inline― analizės poreikius, realaus veikimo laiko taikomosiose
programose. Vartotojai turėtų apsvarstyti tam tikrus aspektus prieš
nusprendţiant ar „point-by-point― šablonas yra tinkamas darbui atlikti.
„Point-by-point― analizė būtina, kai susiduriama su valdymo procesais kur
yra atvaizduojami didelio greičio, deterministiniai, „point-by-point― duomenys.
Bet kuriuo laiko momentu resursai yra skiriami realaus laiko duomenų gavimui.
„Point-by-point― analizė pasidaro būtinybė kai duomenų gavimo daţnis ir
valdymo ciklai yra padidinami. „Point-by-point― metodas supaprastina
projektavimo, įgyvendinimo ir testavimo procesus, nes taikomosios programos
duomenų srautas beveik sutampa su natūraliu, realaus pasaulio, procesų srautu,
kurį taikomoji programa atvaizduoja ir kontroliuoja.
114 pav. Duomenų apdorojimo schema
161
Realaus laiko duomenų kaupimas ir analizės ir toliau reikalauja
modernesnių ir stabilesnių taikomųjų programų. „Point-by-point― analizė yra
moderni ir stabili, nes ji tiesiogiai siejasi su duomenų kaupimo ir analizės
procesais. Naudojant šią analizę, duomenų kaupimo ir analizavimo procesai
priartėja prie kontrolės punktų FPGA (programuojamų loginių elementų matrica)
lustuose, DSP lustuose, įmontuotuose valdikliuose, taip pat specialiuose CPU ir
ASIC.
„Offline― taikomosios programos, norėdamos priimti sprendimus programos
procese, daţniausiai nereikalauja rezultato gavimo realiuoju laiku. „Offline―
analizės programoms reikia tik pakankamų skaičiavimo resursų. Pagrindinis tokių
taikomųjų programų tikslas yra nustatyti prieţastis ir poveikį kintamųjų,
veikiančių procesą koreliuojant įvairius duomenų rinkinius. Šios taikomosios
programos daţniausiai reikalauja duomenų įkėlimo iš įprastų dvejetainių arba
ASCII failų, ir komercinių duomenų bazių, tokių kaip „Oracle―, „Access― ir kitų
QL/ODBC-palaikančių duomenų bazių. Kai duomenys jau yra įkelti i LabVIEW,
vartotojai naudoja kelis, ar net šimtus, galimų analitinių šablonų, manipuliuoja
duomenimis, ir išdėsto juos į specialų formatą, ataskaitai padaryti. LabVIEW
aprūpina funkcijomis, kurios padės pasiekti bet kokį failo formatą ar duomenų
bazę, be vargo prisijungti prie galingų ataskaitos išvedimo įrankių tokių kaip: „NI
DIAdem―, „The Report Generation Toolkit― pritaikyto „Microsoft Office― programų
paketui, taip pat leis naudoti naujausias duomenų dalinimosi technologijas tokias
kaip: XML, Web-enabled data presentation ir ActiveX.
14.2. Programuojama ir interaktyvioji analizės
Mokslininkai ir inţinieriai vartojantys LabVIEW programinį paketą yra
susipaţinę su daugybe būdų, kuriais naudodamiesi jie gali išgauti duomenis šimtų
prietaisų rūšių. Jie gamina taikomąsias programas, kurios atlieka „inline― analizę
ir pateikia rezultatus veikiant programai. Be to, jie supranta, kad nepakanka
išgauti duomenis ir juos naudoti vienkartiniam vizualizavimui programos veikimo
162
laikotarpiu. Vartotojai daţniausiai kaupia šimtus tūkstančių megabaitų duomenų
savo kietuosiuose diskuose ir duomenų bazėse. Po daugybės, ar tik vieno,
taikomosios programos paleidimo vartotojai išsitraukia informaciją norėdami
priimti tam tikrus sprendimus, palyginti rezultatus, ar padaryti atitinkamus
pakeitimus programos procesui, siekdami savo uţsibrėţto rezultato.
Palyginti lengvai galima išgauti toki didelį duomenų kiekį, kuris greitai
tampa sunkiai apdorojamas. Iš tikrųjų, naudojant greitą DAQ plokštę ir
pakankamai kanalų, gali uţtrukti tik keletą milisekundţių sudaryti tūkstančius
reikšmių. Ir nėra paprasta uţduotis išnagrinėti ir suprasti visus šiuos duomenis.
Daţniausiai iš inţinierių ir mokslininkų yra reikalaujama atvaizduoti duomenis,
sudaryti grafikus, ir galiausiai paremti bet kokius savo įvertinimus ir išvadas
empiriniais duomenimis.
Norėdami supaprastinti matavimų analizavimo procesą, LabVIEW
programuotojai sukūrė taikomąsias programas, kurios suteikia dialogų langus ir
sąsajas, kurias vartotojai gali naudoti, kad priklausomai nuo jų įvesties specifiniai
analizavimo šablonai būtų naudojami bet kokiems duomenų rinkiniams. Sudarant
tokio tipo taikomąsias programas, vartotojai gali nusistatyti tam tikro laipsnio
interaktyvumą savo taikomojoje programoje. Norint, kad tai būtų efektyvu,
programuotojas turi turėti daug informacijos ir ţinių apie analizavimo tipus,
kuriais domisi konkretus vartotojas.
Naudodami LabVIEW programini paketa vartotojai gali lengvai suspausti ir
suformatuoti duomenis prieš patalpindami juos i kietąjį diską, todėl kai saugomi
duomenys bus ištraukti iš kietojo disko tolesniems analizavimams, juos bus
lengviau apdoroti. LabVIEW, taip pat, suteikia galimybę naudotis šimtais funkcijų
ataskaitų sudarymui, remiantis rezultatais ir informacija, gautais iš įgytų
duomenų.
„National Instruments― siūlo dar ir papildomų įrankių, kurie yra visapusiškai
integruoti į LabVIEW programinį paketą ir yra sukurti siekiant sustiprinti
bendradarbiavimą su inţinieriais. „NI DIAdem― yra vienas iš šių įrankių. „NI
163
DIAdem― darbo aplinka yra lengvai naudojama įvairioms analizėms atlikti ir
ataskaitoms generuoti naudojant didelius techninių duomenų tvarkymo
pajėgumus.
164
14.3. Analizių kategorijos
LabVIEW siūlo šimtus, jau paruoštų, analitinių funkcijų, kurios apima
skirtingas, informacijos išgavimo iš gautų duomenų, sritis ir metodus. Vartotojai
gali naudoti šias funkcijas tokios, kokios jos yra arba jas keisti, išplėsti, pritaikyti
savo poreikiams. Šios funkcijos yra suskirstytos į šias grupes: Matavimo, Signalų
apdorojimo, Matematikos, Vaizdų apdorojimo, Kontrolinės, Modeliavimo, ir
Taikomosios srities.
Matavimo funkcijos:
Amplitudės ir lygio
Daţnio (Spektrinė) analizės
Triukšmų ir iškraipymų
Impulsų ir moduliacijos
Signalų ir bangos formos generavimo
Laiko srities analizės
Tono matavimai
Signalų apdorojimo funkcijos:
Skaitmeninių filtrų
Susukimo ir koreliacijos
Bendra laiko daţnio analizė (Signalų apdorojimo įrankių rinkinys)
Pavyzdţių atrankos/perrinkimo
Signalų generavimo
Aukštos skiriamosios gebos spektrinė analizė (Signalų apdorojimo įrankių
rinkinys)
Transformacijos
Laiko srities
Banginė ir filtro banko sudarymo (Signalų apdorojimo įrankių rinkinys)
Langinė
Matematinės funkcijos:
165
Matematikos pagrindų
Kreivių ir duomenų modeliavimo
Diferencialinės lygtys
Interpoliacijos ir ekstrapoliacijos
Tiesinės algebros
Netiesinių sistemų
Optimizavimo
Šaknų paieškos
Specialiųjų funkcijų
Statistikos ir atsitiktinių procesų
Vaizdų apdorojimo funkcijos:
Lašinė (Blob) analizė ir morfologija
Spalvos modelio pritaikymo
Filtrų
Aukšto lygio įrengimų vizualizacijos įrankių
Pustonių modelių pritaikymo
Vaizdo analizės
Vaizdo ir pikselių manipuliacijos
Vaizdo apdorojimo
Optinio pobūdţio atpaţinimo
Reikiamos srities įrankių
Kontrolinės funkcijos:
„PID― ir „Fuzzy― kontrolės
Modeliavimo funkcijos:
Modeliavimo sąsajos (Modeliavimo sąsajos įrankių rinkinys)
Taikomosios srities funkcijos:
Įrengimų būklės stebėjimo (Nurodymų analizės įrankių rinkinys)
166
Įrengimų vizualizacijos (IMAQ, Vision Builder)
Judėjimo kontrolės
Garso ir vibracijos (Garso ir vibracijos analizės įrankių rinkinys)
167
Literatūros sąrašas
1. http://www.ni.com/labview/ „National Instruments LabVIEW 2010―
2. http://sine.ni.com/nips/cds/print/p/lang/en/nid/207244 „National
Instruments NI ELVIS―
3. Stanislovas Štaras, Raimundas Kirvaitis. Mikroelektronikos pagrindai:
vadovėlis aukštųjų mokyklų studentams. Vilnius, Mokslo ir enciklopedijų l-kla,
1995, 289 p.: iliustr. 621.38(075.8) Št-08
4. Raimundas Kirvaitis. Loginės schemos: vadovėlis aukštosioms
mokykloms. Vilnius, Enciklopedija, 1999, 255 p.: iliustr.
621.38.049.77(075.8)
5. Juozas Sveikata. Grandinių teorija: vadovėlis. Kauno technologijos
universitetas, 2-asis leid. Kaunas, Technologija, 2001, 243 p.: ilustr.
621.3.011(075.8)
6. LabVIEW 8 student edition/ Robert H. Bishop. - Upper Saddle River:
Pearson Prentice Hall, 2007, - xxiv, 619 p.: iliustr. + 1 kompakt. diskas.
004.9(075.8) Bi-386
7. Antanas Gurskas. Virtualieji instrumentai LabVIEW terpėje: vadovėlis.
Vilniaus Gedimino technikos universitetas. Vilnius, Technika, 2010, 184 p.: iliustr.
+ 1 kompakt. diskas. 004.8(075.8) Gu-222
8. S. Borodinas, V. Batovrin, A. Romanov. LabVIEW elektronikos
praktiniai darbai: metodinė priemonė. Vilniaus pedagoginio universiteto leidykla,
Vilnius, 2009, 163 p.: iliustr.
9. Robert H. Bishop ,,Learning with LabVIEW 2009―.
http://www.isbnlib.com/preview/0132141310/Learning-with-LabVIEW-2009.
10. A. Gurskas. „Virtualieji instrumentai LabVIEW terpėje―.
http://www.ebooks.vgtu.lt/reader/virtualieji-instrumentai-labview-terpje.
168
11. Raimundas Kirvaitis, Romanas Martavičius. Analoginė elektronika:
vadovėlis aukštųjų mokyklų studentams. Vilniaus Gedimino technikos
universitetas. Vilnius, Technika, 2003, 335 p.: iliustr.
12. LabVIEW for everyone: graphical programming made easy and fun/
Jeffrey Travis, Jim Kring. - 3 rd ed. - Upper Saddle River: Prentice Hall, 2007, -
xli, 981 p.: iliustr. + 1 kompakt. diskas.
13. G. Eidukevičius, A. Kajackas. Radioelektronikos pagrindai. D2. – V.:
Mokslas, 1977.
14. http://zone.ni.com/reference/en-XX/help/371361E-
01/glang/boolean_functions/
15. A. Lašas, V. Bartkevičius, R. Šurna ir kt. Pramoninė elektronika. D2:
Impulsi¬nės bei skaitmeninės schemos ir energetiniai bei technologiniai įtaisai. –
V.: Mokslas, 1991. – 256 p.
16. Miniotas D. Elektros grnadinių analizė. Vilnius: Technika, 2009. 259 p
17. Sveikata J. Elektriniu grandinių analizės pagrindai. - V.: AMMLRT,
1985. - 67 p
18. http://www.ni.com/pdf/manuals/372809b.pdf
19. V. Abraitis, E. Bareiša, R. Benisevičiūtė. Programuojamų lustų
testavimo metodai // Elektronika ir elektrotechnika. Kaunas: Technologija, 2003.
- Nr. 5(47). - P. 43-47.