Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
GRAFICKÉ PROGRAMOVÁNÍ VE VÝVOJOVÉM PROSTŘEDÍ LabVIEW Výuková skripta
© Doc. Ing. Jan Žídek, CSc.
Ostrava, říjen 2002
© Doc. Ing. Jan Žídek, CSc.
1-1
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
OBSAH OBSAH .......................................................................................................................................................... 1-2 Seznam obrázků .......................................................................................................................................... 1-7 1.
2.
Základní principy virtuální instrumentace ...................................................................................... 1-10 1.1.
Úvod ........................................................................................................................................... 1-10
1.2.
Vývoj měřicí techniky ............................................................................................................... 1-10
1.3.
Měřicí přístroje z období klasické instrumentace ................................................................ 1-11
1.4.
Měřicí přístroje vybavené komunikačním rozhraním .......................................................... 1-11
1.4.1.
Měřicí přístroje s komunikačním rozhraním RS-232 .................................................. 1-11
1.4.2.
Měřicí přístroje s komunikačním rozhraním GPIB ...................................................... 1-12
1.4.3.
Měřicí přístroje s komunikačním rozhraním Ethernet ................................................ 1-12
1.5.
Fáze virtuální instrumentace .................................................................................................. 1-13
1.6.
Srovnání klasické a virtuální instrumentace ......................................................................... 1-15
1.7.
Proces měření a jeho fáze ...................................................................................................... 1-16
1.8.
Systémová integrace ............................................................................................................... 1-18
Úvod do vývojového prostředí LabVIEW ....................................................................................... 2-21 2.1.
Filosofie a součásti vývojového systému LabVIEW............................................................ 2-21
2.2.
Základní části virtuálního přístroje ......................................................................................... 2-22
2.2.1.
Čelní panel........................................................................................................................ 2-22
2.2.2.
Blokové schéma .............................................................................................................. 2-24
2.2.3.
Ikona a konektor .............................................................................................................. 2-26
2.3.
2.3.1.
Roletová menu ................................................................................................................. 2-28
2.3.2.
Paletové menu s objekty čelního panelu ..................................................................... 2-38
2.3.3.
Položky menu pro práci s textem .................................................................................. 2-39
2.3.4.
Nástroje pro zarovnávání a volbu rozestupů............................................................... 2-40
2.4. 3.
4.
Popis prostředí LabVIEW ........................................................................................................ 2-26
Nástroje pro práci ve vývojovém prostředí LabVIEW ......................................................... 2-40
Cesty vedoucí k snadnému zvládnutí vývojového prostředí LabVIEW ..................................... 3-43 3.1.
Tutoriál ....................................................................................................................................... 3-43
3.2.
Dokumentace v elektronické podobě .................................................................................... 3-43
3.3.
Interaktivní kurz LabVIEW ...................................................................................................... 3-45
3.4.
Příklady obsahující řešení standardních situací .................................................................. 3-46
3.5.
Standardní nápověda .............................................................................................................. 3-48
3.6.
Generátory standardních řešení ............................................................................................ 3-48
Ladicí prostředky ............................................................................................................................... 4-50 4.1.
Krokování běhu virtuálního přístroje...................................................................................... 4-51
4.2.
Vizualizace toku dat ................................................................................................................. 4-51
4.3.
Užití sond ................................................................................................................................... 4-52
© Doc. Ing. Jan Žídek, CSc.
1-2
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
4.4. 5.
6.
7.
Prvky čelního panelu ......................................................................................................................... 5-55 5.1.
Typy prvků čelního panelu ...................................................................................................... 5-55
5.2.
Volba a umístění prvku ............................................................................................................ 5-56
5.3.
Roletové menu prvku ............................................................................................................... 5-57
5.4.
Zobrazitelné části prvku čelního panelu ............................................................................... 5-58
5.5.
Reprezentace proměnné v paměti počítače ........................................................................ 5-58
5.6.
Volba rozsahu hodnot .............................................................................................................. 5-59
5.7.
Volba formátu a přesnosti ....................................................................................................... 5-60
5.8.
Práce s fyzikálními jednotkami ............................................................................................... 5-60
5.9.
Další prvky typu Numeric ........................................................................................................ 5-61
5.10.
Prvky Numeric pro práci s barvou.......................................................................................... 5-63
5.11.
Prvky typu Boolean .................................................................................................................. 5-63
5.12.
Prvky pro práci s textem .......................................................................................................... 5-64
5.13.
Výběrové prvky List & Table ................................................................................................... 5-65
5.14.
Datová struktura pole............................................................................................................... 5-66
5.15.
Datová struktura Cluster ......................................................................................................... 5-67
Knihovní funkce LabVIEW................................................................................................................ 6-69 6.1.
Základní členění ....................................................................................................................... 6-69
6.2.
Programové struktury .............................................................................................................. 6-71
6.3.
Lokální proměnné..................................................................................................................... 6-73
6.4.
Globální proměnné................................................................................................................... 6-75
6.5.
Konstanty ................................................................................................................................... 6-76
6.6.
Numerické funkce..................................................................................................................... 6-78
6.7.
Nápověda k funkcím ................................................................................................................ 6-78
6.8.
Polymorfismus funkcí............................................................................................................... 6-79
6.9.
Úprava počtu vstupních parametrů funkce .......................................................................... 6-80
6.10.
Úprava typu vstupních parametrů ......................................................................................... 6-81
6.11.
Vypínání indexace ve vstupním parametru .......................................................................... 6-82
Struktura uDálostmi řízené aplikace v LabVIEW .......................................................................... 7-83 7.1.
8.
Nasazování bodu přerušení ................................................................................................... 4-53
Analýza požadavků koncového uživatele............................................................................. 7-83
7.1.1.
Návrh grafických rozhraní k uživateli ............................................................................ 7-83
7.1.2.
Základní struktura aplikace ............................................................................................ 7-83
7.1.3.
Sdílená datová oblast ..................................................................................................... 7-86
7.1.4.
Volby pro běh virtuálního přístroje ................................................................................ 7-89
Ikona, konektor, volby pro běh virtuálního přístroje ..................................................................... 8-90 8.1.
Konektor virtuálního přístroje ................................................................................................. 8-91
8.2.
Možnosti nastavení efektů pro mód běhu programu virtuálního přístroje ....................... 8-92
8.3.
Synchronní, asynchronní a reentrantní provádění bloků aplikace ................................... 8-98
© Doc. Ing. Jan Žídek, CSc.
1-3
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
9.
8.3.1.
Asynchronní provádění bloků aplikace ........................................................................ 8-98
8.3.2.
Synchronní bloky ............................................................................................................. 8-98
8.3.3.
Priorita ............................................................................................................................... 8-98
8.3.4.
Reentrantní provádění bloků ......................................................................................... 8-99
8.3.5.
Řízení několika identických přístrojů pomocí obslužného programu ...................... 8-99
8.3.6.
VI, který čeká specifikovaný časový interval ............................................................. 8-101
8.3.7.
Použití dat, která nemohou být sdílena ...................................................................... 8-101
Práce s grafy .................................................................................................................................... 9-103 9.1.
Základní pojmy ....................................................................................................................... 9-103
9.1.1.
Rozdělení grafů.............................................................................................................. 9-103
9.2.
Datové struktury pro indikátory grafů .................................................................................. 9-104
9.3.
Registrační grafy (Waveform chart) .................................................................................... 9-104
9.3.1.
Registrační graf zobrazující jeden průběh ................................................................. 9-105
9.3.2.
Registrační graf zobrazující více průběhů ................................................................. 9-106
9.3.3.
Volitelné části indikátorů registračních grafů:............................................................ 9-107
9.3.4.
Operace s daty v registračních grafech ..................................................................... 9-108
9.3.5.
Další položky roletového menu pro práci s registračními grafy.............................. 9-109
9.3.6.
Volby dosažitelné přes roletové menu v legendě registračního grafu................... 9-110
9.4.
Statické grafy (GRAPHS) ...................................................................................................... 9-111
9.4.1.
Časové statické grafy zobrazující jeden průběh ....................................................... 9-112
9.4.2.
Kartézské statické grafy zobrazující jeden průběh ................................................... 9-113
9.4.3.
Statické časové grafy zobrazující více průběhů ...................................................... 9-115
9.4.4.
Statické kartézské grafy zobrazující více průběhů ................................................... 9-116
9.4.5.
Volitelné části indikátorů statických grafů: ................................................................. 9-117
9.4.6.
Operace s daty ve statických grafech ........................................................................ 9-118
9.4.7.
Další položky roletového menu pro práci s registračními grafy.............................. 9-119
9.4.8.
Volby dosažitelné přes roletové menu v legendě statického grafu........................ 9-120
9.4.9.
Kurzory ............................................................................................................................ 9-121
9.4.10.
Paleta nástrojů pro práci s grafy ................................................................................. 9-122
10.
Pravidla multitaskingu v LabVIEW ......................................................................................... 10-124
10.1.
Základní filozofie................................................................................................................... 10-124
10.2.
Multitasking a multithreading v programovacím jazyku G ............................................. 10-124
10.2.1.
Základní multitasking v aplikaci vytvořené ve vývojovém prostředí LabVIEW . 10-124
10.2.2.
Funkce čekání .............................................................................................................. 10-126
10.2.3.
Priorita VI ...................................................................................................................... 10-128
10.2.4.
Priorita Subroutine ....................................................................................................... 10-129
10.3.
Multithreading ....................................................................................................................... 10-129
10.4.
Mechanické akce na prvcích typu Boolean ...................................................................... 10-130
11.
Synchronizační mechanismy v LabVIEW ............................................................................. 11-132
© Doc. Ing. Jan Žídek, CSc.
1-4
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
11.1.
Základní filozofie................................................................................................................... 11-132
11.2.
Sekvenční provádění částí aplikace .................................................................................. 11-132
11.2.1.
Programová struktura sekvence ............................................................................... 11-132
11.2.2.
Umělá datová závislost ............................................................................................... 11-133
11.3.
Synchronizační mechanismy .............................................................................................. 11-134
11.3.1.
Occurrence - událost ................................................................................................... 11-136
11.3.2.
Semafor ......................................................................................................................... 11-137
11.3.3.
Rendezvous - setkání ................................................................................................. 11-139
11.3.4.
Notification - oznámení ............................................................................................... 11-141
11.3.5.
Queue – fronta ............................................................................................................. 11-144
12.
Práce se soubory v LabVIEW ................................................................................................. 12-146
12.1.
Rychlé ukládání .................................................................................................................... 12-146
12.2.
Interaktivní prohlídka dat z rychlého ukládání ................................................................. 12-147
12.3.
Programová prohlídka dat z rychlého ukládání ............................................................... 12-148
12.4.
Struktura nabídky funkcí pro práci se soubory ................................................................ 12-150
12.5.
Komplexní funkce pro práci se soubory............................................................................ 12-152
12.5.1.
Funkce pro zápis a čtení do textového souboru ve formátu tabulkového procesoru 12-154
12.5.2.
Ukládání textu do textového pole .............................................................................. 12-156
12.6.
Zápis a čtení číselných polí do binárních souborů .......................................................... 12-158
12.7.
Elementární funkce pro práci se soubory ......................................................................... 12-159
12.8.
Soubory typu Byte stream a Datalog ................................................................................ 12-159
12.9.
Průběžné proměnné ............................................................................................................ 12-161
12.10. 13.
Absolutní a relativní cesta k souboru ............................................................................ 12-162
SW podpora zásuvných multifunkčních karet v LabVIEW ................................................. 13-163
13.1.
Konfigurace a první test systému se zásuvnou multifunkční kartou ............................ 13-163
13.2.
Organizace knihovny Data Acquisition v systému LabVIEW a kde začít .................... 13-169
13.3.
Funkce vyšší úrovně - Easy I/O ......................................................................................... 13-175
13.3.1.
Obecná pravidla:.......................................................................................................... 13-175
13.3.2.
Parametry nastavitelné pro kartu LabPC ................................................................. 13-175
13.4.
Analogový vstup ................................................................................................................... 13-176
13.5.
Analogový výstup ................................................................................................................. 13-178
13.6.
Digitální vstup a výstup ....................................................................................................... 13-179
13.7.
Příklad použití funkce z úrovně Easy I/O.......................................................................... 13-182
13.8.
Intermediate VIs ................................................................................................................... 13-183
13.8.1. 13.9. 14. 14.1.
Ošetření chyb ve VI úrovně Intermediate ................................................................ 13-183
Asynchonní funkce sběru dat využívající dvojité vyrovnávací paměti ......................... 13-183 Uzly vlastností ........................................................................................................................... 14-186 Vlastnosti prvku Numeric .................................................................................................... 14-188
© Doc. Ing. Jan Žídek, CSc.
1-5
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
14.2.
Vlastnosti indikátoru grafu................................................................................................... 14-190
14.3.
Ukázka použití uzlů vlastností ............................................................................................ 14-191
15.
Komunikace s měřicími přístroji ............................................................................................. 15-195
15.1.
Obslužné programy pro měřicí přístroje ........................................................................... 15-196
15.2.
Použití funkcí z obslužného programu .............................................................................. 15-199
15.3.
Vytvoření vlastního obslužného programu pro měřicí přístroj ....................................... 15-201
15.4.
Softwarová podpora sériového rozhraní ........................................................................... 15-204
16.
Rozšířená knihovna analýz ..................................................................................................... 16-205
16.1.
Generování signálu .............................................................................................................. 16-206
16.2.
Funkce pro zpracování měřených signálů........................................................................ 16-208
17.
Distribuce aplikací vytvořených v LabVIEW ......................................................................... 17-212
© Doc. Ing. Jan Žídek, CSc.
1-6
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
SEZNAM OBRÁZKŮ OBR. 1.: OBR. 2.: OBR. 3.: OBR. 4.: OBR. 5.: OBR. 6.: OBR. 7.: OBR. 8.: OBR. 9.: OBR. 10.: OBR. 11.: OBR. 12.: OBR. 13.: OBR. 14.: OBR. 15.: OBR. 16.: OBR. 17.: OBR. 18.: OBR. 19.: OBR. 20.: OBR. 21.: OBR. 22.: OBR. 23.: OBR. 24.: OBR. 25.: OBR. 26.: OBR. 27.: OBR. 28.: OBR. 29.: OBR. 30.: OBR. 31.: OBR. 32.: OBR. 33.: OBR. 34.: OBR. 35.: OBR. 36.: OBR. 37.: OBR. 38.: OBR. 39.: OBR. 40.: OBR. 41.: OBR. 42.: OBR. 43.: OBR. 44.: OBR. 45.: OBR. 46.: OBR. 47.: OBR. 48.: OBR. 49.: OBR. 50.: OBR. 51.: OBR. 52.: OBR. 53.: OBR. 54.: OBR. 55.: OBR. 56.: OBR. 57.: OBR. 58.: OBR. 59.: OBR. 60.: OBR. 61.: OBR. 62.: OBR. 63.: OBR. 64.: OBR. 65.: OBR. 66.: OBR. 67.: OBR. 68.: OBR. 69.: OBR. 70.: OBR. 71.:
VÝVOJ MĚŘICÍ TECHNIKY V ČASE Z HLEDISKA NARŮSTAJÍCÍ FLEXIBILITY .................................................................................. 1-10 PŘÍKLAD GRAFICKÉHO ROZHRANÍ – ČELNÍHO PANELU VIRTUÁLNÍHO PŘÍSTROJE ....................................................................... 1-14 NAZNAČENÍ FYZICKÉ PODOBY VXI MĚŘICÍHO SYSTÉMU .......................................................................................................... 1-15 KOMPONENTY MĚŘICÍHO ŘETĚZCE PRO VYTVOŘENÍ VIRTUÁLNÍHO MĚŘICÍHO SYSTÉMU ............................................................ 1-19 ČELNÍ PANEL VIRTUÁLNÍHO PŘÍSTROJE .................................................................................................................................. 2-22 PALETOVÉ MENU PRVKŮ ČELNÍHO PANELU ............................................................................................................................ 2-23 PALETOVÉ MENU FUNKCÍ A STRUKTUR BLOKOVÉHO DIAGRAMU............................................................................................... 2-24 PŘÍKLAD BLOKOVÉHO DIAGRAMU VIRTUÁLNÍHO PŘÍSTROJE .................................................................................................... 2-25 MÍSTO PRO IKONU A KONEKTOR VIRTUÁLNÍHO PŘÍSTROJE ...................................................................................................... 2-26 SKUPINA APLIKACÍ PRO SPOUŠTĚNÍ VÝVOJOVÉHO SYSTÉMU LABVIEW ............................................................................. 2-27 OKNO VÝBĚRU AKCE PO SPUŠTĚNÍ VÝVOJOVÉHO PROSTŘEDÍ LABVIEW ........................................................................... 2-28 DIALOGOVÉ OKNO PRO VYTVOŘENÍ NOVÉHO OBJEKTU ...................................................................................................... 2-29 PALETOVÁ NABÍDKA PRVKŮ ČELNÍHO PANELU ................................................................................................................... 2-38 PALETOVÁ NABÍDKA NÁSTROJŮ ....................................................................................................................................... 2-41 VÝVOJ MĚŘICÍ TECHNIKY V ČASE Z HLEDISKA NARŮSTAJÍCÍ FLEXIBILITY ............................................................................. 3-43 OKNO ACROBAT READERU PRO PROCHÁZENÍ MANUÁLŮ V ELEKTRONICKÉ PODOBĚ. .......................................................... 3-44 OKNO ACROBAT READERU PRO VÝBĚR MANUÁLU. ........................................................................................................... 3-45 VSTUP DO INTERAKTIVNÉHO KURZU LABVIEW................................................................................................................. 3-46 ZÁKLADNÍ ÚROVEŇ VÝBĚRU ŘEŠENÝCH PŘÍKLADŮ ............................................................................................................ 3-47 STRUKTUROVANÝ SEZNAM ŘEŠENÝCH PŘÍKLADŮ V LABVIEW .......................................................................................... 3-47 POMOCNÉ OKNO INTERAKTIVNÍ NÁPOVĚDY. ..................................................................................................................... 3-48 DIALOGOVÉ OKNO GENERÁTORU HOTOVÝCH ŘEŠENÍ ........................................................................................................ 3-48 ČELNÍ PANEL VYGENEROVANÉHO OSCILOSKOPU. ............................................................................................................. 3-49 ČÁST BLOKOVÉHO DIAGRAMU AUTOMATICKY VYGENEROVANÉHO OSCILOSKOPU................................................................ 3-49 OKNO SEZNAMU SYNTAKTICKÝCH CHYB ........................................................................................................................... 4-50 NÁSTROJE PRO KROKOVÁNÍ BĚHU VI ............................................................................................................................... 4-51 BĚH VI SE ZAPNUTOU VIZUALIZACÍ ................................................................................................................................... 4-52 NASAZENÍ SONDY DO BLOKOVÉHO DIAGRAMU .................................................................................................................. 4-53 NASAZOVÁNÍ BODU PŘERUŠENÍ ....................................................................................................................................... 4-54 PALETOVÁ NABÍDKA PRVKŮ ČELNÍHO PANELU ................................................................................................................... 5-55 ROLETOVÉ MENU PRVKU TYPU NUMERIC ......................................................................................................................... 5-57 REPREZENTACE PROMĚNNÉ V PAMĚTI POČÍTAČE ............................................................................................................. 5-59 OMEZENÍ DOVOLENÉHO ROZSAHU VKLÁDANÝCH ČÍSEL ..................................................................................................... 5-60 DIALOGOVÉ OKNO VOLBY FYZIKÁLNÍ JEDNOTKY ................................................................................................................ 5-61 JEDNA Z GRAFICKÝCH PODOB TAHOVÉHO POTENCIOMETRU .............................................................................................. 5-62 ZÁKLADNÍ PALETOVÁ NABÍDKA PRVKŮ BOOLEAN............................................................................................................... 5-63 PŘÍKLAD VYSVĚTLUJÍCÍ MECHANICKÉ AKCE NA PRVCÍCH TYPU BOOLEAN. .......................................................................... 5-64 PALETOVÉ MENU PRVKŮ PRO PRÁCI S TEXTEM ................................................................................................................. 5-64 PALETOVÉ MENU PRVKŮ VÝBĚRU .................................................................................................................................... 5-65 PALETOVÉ MENU PRO VOLBU DATOVÉ STRUKTURY POLE .................................................................................................. 5-66 GRAFICKÁ PODOBA PRVKU PRO JEDNOROZMĚRNÉ POLE PRVKŮ TYPU NUMERIC ................................................................ 5-67 RÁMEC DATOVÉ STRUKTURY CLUSTERU .......................................................................................................................... 5-67 ZÁKLADNÍ PODOBA PALETOVÉ NABÍDKY FUNKCÍ ................................................................................................................ 6-70 GRAFICKÁ PODOBA PROGRAMOVÝCH STRUKTUR VE VÝVOJOVÉM PROSTŘEDÍ LABVIEW .................................................... 6-71 POUŽITÍ LOKÁLNÍ PROMĚNNÉ PRO PŘÍSTUP K TÉŽE PROMĚNNÉ Z VÍCE MÍST BLOKOVÉHO DIAGRAMU ................................... 6-74 POUŽITÍ LOKÁLNÍ PROMĚNNÉ PŘI POTŘEBĚ PROGRAMOVÉHO ZÁPISU DO OVLÁDACÍHO PRVKU ............................................ 6-74 ROLETOVÉ MENU LOKÁLNÍ PROMĚNNÉ ............................................................................................................................. 6-74 ZMĚNA REPREZENTACE DATOVÉHO TYPU U ČÍSELNÉ KONSTANTY ..................................................................................... 6-76 DALŠÍ ČÍSELNÉ KONSTANTY............................................................................................................................................. 6-77 VYTVOŘENÍ KONSTANTY PŘIPOJENÉ KE VSTUPNÍMU PINU FUNKCE ..................................................................................... 6-78 NUMERICKÉ FUNKCE ....................................................................................................................................................... 6-78 ZÁKLADNÍ NÁPOVĚDA K FUNKCI ....................................................................................................................................... 6-79 ZVĚTŠENÍ POČTU VSTUPNÍCH PARAMETRŮ FUNKCE POUŽITÍM ROLETOVÉHO MENU ............................................................. 6-80 ZVĚTŠENÍ POČTU VSTUPNÍCH PARAMETRŮ FUNKCE ROZTAŽENÍM JEJÍ IKONKY .................................................................... 6-80 NĚKTERÉ MOŽNÉ KOMBINACE TYPU VSTUPNÍCH PARAMETRŮ U FUNKCE BUILD ARRAY ....................................................... 6-81 VYPNUTÍ INDEXACE VE VSTUPNÍM PARAMETRU FUNKCE INDEX ARRAY........................................................................... 6-82 STRUKTURA UDÁLOSTMI ŘÍZENÉ APLIKACE ....................................................................................................................... 7-83 ČELNÍ PANEL HLAVNÍHO VI V HIERARCHII.......................................................................................................................... 7-84 PRVNÍ VARIANTA BLOKOVÉHO DIAGRAMU ......................................................................................................................... 7-84 MODIFIKOVANÁ PODOBA ČELNÍHO PANELU ....................................................................................................................... 7-85 MODIFIKOVANÁ PODOBA BLOKOVÉHO DIAGRAMU HLAVNÍHO VI V HIERARCHII ..................................................................... 7-86 VYTVOŘENÍ GLOBÁLNÍ PROMĚNNÉ ................................................................................................................................... 7-87 ČELNÍ PANEL GLOBÁLNÍ PROMĚNNÉ – SDÍLENÉ PAMĚŤOVÉ OBLASTI .................................................................................. 7-88 POUŽITÍ GLOBÁLNÍ PROMĚNNÉ JAKO SDÍLENÉ DATOVÉ OBLASTI......................................................................................... 7-88 MÍSTO PRO EDITACI IKONY, KONEKTORU A NASTAVENÍ VOLEB PRO BĚH VI ......................................................................... 8-90 GRAFICKÝ EDITOR PRO ÚPRAVU A VYTVOŘENÍ IKONY VIRTUÁLNÍHO PŘÍSTROJE .................................................................. 8-90 DIALOGOVÉ OKNO PRO VÝBĚR NASTAVENÍ CHOVÁNÍ VI..................................................................................................... 8-92 VOLBY PRO NASTAVENÍ CUSTOM ..................................................................................................................................... 8-94 VOLBY PRO BĚH VI VYVOLANÉ Z ROLETOVÉHO MENU NA IKONCE VI V NADŘAZENÉ VRSTVĚ HIERARCHIE ............................. 8-97 OKNO PRO VYTVÁŘENÍ HISTORIE VÝVOJE DANÉHO VI ....................................................................................................... 8-97 ŘÍZENÍ DIGITÁLNÍHO VOLTMETRU Z APLIKACE ................................................................................................................... 8-99
© Doc. Ing. Jan Žídek, CSc.
1-7
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
OBR. 72.: OBR. 73.: OBR. 74.: OBR. 75.: OBR. 76.: OBR. 77.: OBR. 78.: OBR. 79.: OBR. 80.: OBR. 81.: OBR. 82.: OBR. 83.: OBR. 84.: OBR. 85.: OBR. 86.: OBR. 87.: OBR. 88.: OBR. 89.: OBR. 90.: OBR. 91.: OBR. 92.: OBR. 93.: OBR. 94.: OBR. 95.: OBR. 96.: OBR. 97.: OBR. 98.: OBR. 99.: OBR. 100.: OBR. 101.: OBR. 102.: OBR. 103.: OBR. 104.: OBR. 105.: OBR. 106.: OBR. 107.: OBR. 108.: OBR. 109.: OBR. 110.: OBR. 111.: OBR. 112.: OBR. 113.: OBR. 114.: OBR. 115.: OBR. 116.: OBR. 117.: OBR. 118.: OBR. 119.: OBR. 120.: OBR. 121.: OBR. 122.: OBR. 123.: OBR. 124.: OBR. 125.: OBR. 126.: OBR. 127.: OBR. 128.: OBR. 129.: OBR. 130.: OBR. 131.: OBR. 132.: OBR. 133.: OBR. 134.: OBR. 135.: OBR. 136.: OBR. 137.: OBR. 138.: OBR. 139.: OBR. 140.: OBR. 141.: OBR. 142.: OBR. 143.: OBR. 144.: OBR. 145.: OBR. 146.:
SÉRIOVÁ OBSLUHA DVOU DIGITÁLNÍCH VOLTMETRŮ V ČASE ............................................................................................ 8-100 PARALELNÍ VYUŽITÍ JEDNOHO OBSLUŽNÉHO PROGRAMU S VYUŽITÍM REENTRANTNOSTI SPOUŠTĚNÍ VI.............................. 8-100 VI, KTERÝ ČEKÁ SPECIFIKOVANÝ INTERVAL .................................................................................................................... 8-101 VÍCENÁSOBNÉ POUŽITÍ VI, KTERÝ ČEKÁ SPECIFIKOVANÝ ČASOVÝ INTERVAL .................................................................... 8-101 VI PRO VÝPOČET PRŮMĚRU TŘÍ ČÍSEL ............................................................................................................................ 8-102 VÍCENÁSOBNÉ POUŽITÍ VI PRO PRŮMĚROVÁNÍ TŘÍ ČÍSEL ................................................................................................. 8-102 PALETOVÁ NABÍDKA VOLBY DRUHU GRAFU ..................................................................................................................... 9-103 ZÁKLADNÍ PODOBA REGISTRAČNÍHO GRAFU ................................................................................................................... 9-104 VOLBA HLOUBKY VYROVNÁVACÍ PAMĚTI PRO ZAPAMATOVÁNÍ ČÁSTI DAT REGISTRAČNÍHO GRAFU...................................... 9-105 UKÁZKA POUŽITÍ REGISTRAČNÍHO GRAFU PRO JEDEN PRŮBĚH ........................................................................................ 9-106 DÁVKOVÁ AKTUALIZACE REGISTRAČNÍHO GRAFU PO DESETI BODECH .............................................................................. 9-106 ZOBRAZENÍ VÍCE PRŮBĚHŮ V REGISTRAČNÍM GRAFU ...................................................................................................... 9-107 UKÁZKA VOLITELNÝCH ČÁSTÍ GRAFU .............................................................................................................................. 9-108 OPERACE S DATY PROSTŘEDNICTVÍM ROLETOVÉHO MENU ............................................................................................. 9-109 POLOŽKY ROLETOVÉHO MENU PRO POPIS OSY X ............................................................................................................ 9-110 POLOŽKY ROLETOVÉHO MENU LEGENDY REGISTRAČNÍHO GRAFU .................................................................................... 9-111 STANDARDNÍ PODOBA STATICKÉHO GRAFU .................................................................................................................... 9-112 PROGRAMOVÉ VYTVOŘENÍ POLE PRO ZOBRAZENÍ VE STATICKÉM GRAFU (PŘEDPOKLAD X0=0, DX=1) ............................... 9-113 PROGRAMOVÉ VYTVOŘENÍ DAT PRO STATICKÝ GRAF X0=5, DX=3 ................................................................................... 9-113 STATICKÝ KARTÉZSKÝ GRAF Z POLÍ HODNOT X A Y.......................................................................................................... 9-114 STATICKÝ KARTÉZSKÝ GRAF Z POLE CLUSTERŮ OBSAHUJÍCÍCH X A Y SOUŘADNICI............................................................ 9-114 DVA PRŮBĚHY VE STATICKÉM ČASOVÉM GRAFU ............................................................................................................. 9-116 DVA PRŮBĚHY V KARTÉZSKÉM STATICKÉM GRAFU .......................................................................................................... 9-116 ČÁSTI STATICKÉHO GRAFU ............................................................................................................................................ 9-117 OPERACE S DATY VE STATICKÉM GRAFU ........................................................................................................................ 9-119 VOLBY PRO OSU X VE STATICKÉM GRAFU ....................................................................................................................... 9-120 KURZOROVÝ DISPLAY STATICKÉHO GRAFU ..................................................................................................................... 9-121 PALETA NÁSTROJŮ PRO AKCE S GRAFEM ....................................................................................................................... 9-122 FORMÁT POPISU OS ...................................................................................................................................................... 9-122 VARIANTY PRO ZOOMING GRAFU ................................................................................................................................... 9-122 FRONTA AKTIVNÍCH ÚLOH ............................................................................................................................................ 10-125 DVA PARALELNÍ DATOVĚ NEZÁVISLÉ CYKLY .................................................................................................................. 10-126 FRONTA AKTIVNÍCH A SPÍCÍCH ÚLOH ............................................................................................................................ 10-127 VYUŽITÍ FUNKCE ČEKÁNÍ ............................................................................................................................................. 10-127 PŘIDĚLOVÁNÍ PRIORITY PROVÁDĚNÍ VI ........................................................................................................................ 10-128 FRONTA AKTIVNÍCH ÚLOH PŘI RŮZNÝCH PRIORITÁCH VI................................................................................................ 10-128 PŘÍKLAD NA MECHANICKÉ AKCE PRVKU TYPU BOOLEAN ................................................................................................ 10-131 PROGRAMOVÁ STRUKTURA SEKVENCE ........................................................................................................................ 11-133 POUŽITÍ UMĚLÉ DATOVÉ ZÁVISLOSTI PRO ZAJIŠTĚNÍ SEKVENČNOSTI .............................................................................. 11-134 NESYNCHRONIZOVANÝ BĚH DVOU CYKLŮ ..................................................................................................................... 11-135 SYNCHRONIZACE SEMAFOREM NA ÚROVNI KLASICKÝCH PROSTŘEDKŮ LABVIEW........................................................... 11-135 FUNKCE PRO OVLÁDÁNÍ UDÁLOSTI ............................................................................................................................... 11-136 SYNCHRONIZACE DVOU CYKLŮ POMOCÍ OCCURRENCE ................................................................................................. 11-136 UKÁZKA VYTVOŘENÍ SEMAFORU .................................................................................................................................. 11-137 VI VYUŽÍVAJÍCÍ SEMAFORU PRO VSTUP DO KRITICKÉ SEKCE .......................................................................................... 11-138 FUNKCE PRO PRÁCI SE SEMAFORY .............................................................................................................................. 11-138 FUNKCE PRO PRÁCI SE SETKÁNÍMI ............................................................................................................................... 11-139 ZŘÍZENÍ RENDEZVOUS ................................................................................................................................................ 11-139 ÚLOHA VYUŽÍVAJÍCÍ RENDEZVOUS ............................................................................................................................... 11-140 VYTVOŘENÍ OZNÁMENÍ PRO SYNCHRONIZACI ÚLOH ....................................................................................................... 11-141 UKÁZKA ÚLOHY VYUŽÍVAJÍCÍ OZNÁMENÍ ........................................................................................................................ 11-142 FUNKCE PRO PRÁCI S OZNÁMENÍMI .............................................................................................................................. 11-142 ČELNÍ PANEL VIRTUÁLNÍHO PŘÍSTROJE VYUŽÍVAJÍCÍHO FRONTU .................................................................................... 11-144 FUNKCE PRO PRÁCI S FRONTOU .................................................................................................................................. 11-144 BLOKOVÝ DIAGRAM VIRTUÁLNÍHO PŘÍSTROJE VYUŽÍVAJÍCÍHO FRONTU ........................................................................... 11-145 ZAPNUTÍ UKLÁDÁNÍ PO DOKONČENÍ BĚHU VI ................................................................................................................ 12-147 PROHLÍDKA DAT ULOŽENÝCH PŘI RYCHLÉM UKLÁDÁNÍ .................................................................................................. 12-148 ROLETOVÉ MENU K POVOLENÍ DATABÁZOVÉHO PŘÍSTUPU ............................................................................................ 12-149 ÚPRAVA BLOKOVÉHO DIAGRAMU PRO PROGRAMOVÉ VYČTENÍ DAT ................................................................................ 12-149 ČELNÍ PANEL VI PRO PROGRAMOVÉ VYČÍTÁNÍ DAT Z RYCHLÉHO UKLÁDÁNÍ ................................................................... 12-150 PALETOVÁ NABÍDKA FUNKCÍ PRO PRÁCI SE SOUBORY ................................................................................................... 12-151 TŘI FÁZE PRÁCE SE SOUBORY ..................................................................................................................................... 12-152 UKÁZKA OKNA NÁPOVĚDY PRO FUNKCI ZÁPIS ZNAKŮ DO TEXTOVÉHO SOUBORU............................................................. 12-152 FUNKCE PRO ZÁPIS DO SOUBORU S FORMÁTEM PRO IMPORT DO TABULKOVÉHO PROCESORU ........................................ 12-154 NEJJEDNODUŠŠÍ POUŽITÍ FUNKCE WRITE TO SPREADSHEET FILE ................................................................................. 12-154 FORMÁT ULOŽENÝCH DAT ........................................................................................................................................... 12-155 TATÁŽ DATA IMPORTOVANÁ DO EXCELLU ..................................................................................................................... 12-155 FUNKCE PRO VYČTENÍ DAT Z TEXTOVÉHO SOUBORU FORMÁTU TABULKOVÉHO PROCESORU ........................................... 12-155 VYČTENÍ DAT DO DVOUROZMĚRNÉHO POLE ................................................................................................................. 12-156 FUNKCE PRO ZÁPIS TEXTU DO SOUBORU ..................................................................................................................... 12-156 FUNKCE PRO ČTENÍ ZNAKŮ Z TEXTOVÉHO SOUBORU .................................................................................................... 12-157 POSTUPNÉ VYČTENÍ TEXTOVÉHO SOUBORU PO ŘÁDCÍCH .............................................................................................. 12-157 FUNKCE PRO ULOŽENÍ POLE HODNOT SGL REPREZENTACE DO BINÁRNÍHO SOUBORU .................................................... 12-158 FUNKCE PRO ČTENÍ 2D/1D POLE SGL HODNOT Z BINÁRNÍHO SOUBORU ........................................................................ 12-158 FUNKCE PRO KONVERZI DATOVÉHO TYPU NA A Z STRINGU ............................................................................................ 12-160
© Doc. Ing. Jan Žídek, CSc.
1-8
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
OBR. 147.: OBR. 148.: OBR. 149.: OBR. 150.: OBR. 151.: OBR. 152.: OBR. 153.: OBR. 154.: OBR. 155.: OBR. 156.: OBR. 157.: OBR. 158.: OBR. 159.: OBR. 160.: OBR. 161.: OBR. 162.: OBR. 163.: OBR. 164.: OBR. 165.: OBR. 166.: OBR. 167.: OBR. 168.: OBR. 169.: OBR. 170.: OBR. 171.: OBR. 172.: OBR. 173.: OBR. 174.: OBR. 175.: OBR. 176.: OBR. 177.: OBR. 178.: OBR. 179.: OBR. 180.: OBR. 181.: OBR. 182.: OBR. 183.: OBR. 184.: OBR. 185.: OBR. 186.: OBR. 187.: OBR. 188.: OBR. 189.: OBR. 190.: OBR. 191.: OBR. 192.: OBR. 193.: OBR. 194.: OBR. 195.: OBR. 196.: OBR. 197.: OBR. 198.: OBR. 199.: OBR. 200.: OBR. 201.: OBR. 202.:
ZÁPIS DO DATALOG SOUBORU ..................................................................................................................................... 12-160 ČTENÍ Z DATALOG SOUBORU ....................................................................................................................................... 12-161 POUŽITÍ CHYBOVÉHO CLUSTERU ................................................................................................................................. 12-161 CESTA K SOUBORU NEZÁVISLÁ NA JEHO ABSOLUTNÍM UMÍSTĚNÍ .................................................................................... 12-162 SPRÁVCE ZAŘÍZENÍ V OVLÁDACÍCH PANELECH.............................................................................................................. 13-164 NASTAVENÍ VLASTNOSTÍ PŘEVODNÍKOVÉ KARTY........................................................................................................... 13-164 PROHLÍDKA POLOŽKY MEASUREMENT&AUTOMATION V PRŮZKUMNÍKOVI ....................................................................... 13-165 PROHLÍDKA POLOŽKY DEVICES AND INTERFACES V PRŮZKUMNÍKU ................................................................................ 13-166 PROHLÍDKA PŘIDĚLENÝCH SYSTÉMOVÝCH PROSTŘEDKŮ .............................................................................................. 13-166 NASTAVENÍ VLASTNOSTÍ A/D PŘEVODNÍKU .................................................................................................................. 13-167 DIALOG ÚSPĚŠNÉHO ZAVRŠENÍ TESTU KOMUNIKACE .................................................................................................... 13-167 TESTOVACÍ PANEL ...................................................................................................................................................... 13-168 ZÁKLADNÍ USPOŘÁDÁNÍ MENU V KNIHOVNĚ DATA ACQUISITION ..................................................................................... 13-169 ZÁKLADNÍ NABÍDKA POLOŽKY MENU HELP SEARCH EXAMPLES...................................................................................... 13-170 ZÁKLADNÍ ČLENĚNÍ PŘÍKLADŮ PRO DAQ KNIHOVNU ...................................................................................................... 13-171 UPŘESNĚNÍ VOLBY PŘÍKLADŮ PRO ANALOGOVÉ VSTUPY ............................................................................................... 13-172 NABÍDKA KONKRÉTNÍCH PŘÍKLADŮ ............................................................................................................................... 13-172 ČELNÍ PANEL VI PRO KONTINUÁLNÍ SBĚR DAT S VYKRESLENÍM DO GRAFU ...................................................................... 13-173 BLOKOVÝ DIAGRAM S FUNKCÍ MY DATA PROCESSING .................................................................................................. 13-174 FUNKCE MY DATA PROCESSING ................................................................................................................................. 13-174 POUŽITÍ SYNCHRONNÍ FUNKCE PRO SNÍMÁNÍ TISÍCE DAT Z OSMI KANÁLŮ RYCHLOSTÍ 1000 VZORKŮ ZA SEKUNDU ............ 13-182 ASYNCHRONNÍ FUNKCE SBĚRU DAT PRO KONTINUÁLNÍ SBĚR DAT S VYUŽITÍM DVOJITÉ VYROVNÁVACÍ PAMĚTI.................. 13-184 MINIMALIZACE ČASOVÉ REŽIE VYČÍTÁNÍ DAT PŘI POUŽITÍ DVOJITÉ VYROVNÁVACÍ PAMĚTI ................................................ 13-185 VYTVOŘENÍ UZLU VLASTNOSTÍ ..................................................................................................................................... 14-186 PRVOTNÍ PODOBA UZLU VLASTNOSTÍ ........................................................................................................................... 14-186 ROLETOVÉ MENU UZLU VLASTNOSTÍ ............................................................................................................................ 14-187 PŘIDÁNÍ POLOŽKY DO SEZNAMU VLASTNOSTÍ ROZTAŽENÍM TERMINÁLU UZLU VLASTNOSTÍ ............................................. 14-188 MNOŽINA VLASTNOSTÍ PRVKU TYPU NUMERIC .............................................................................................................. 14-189 ZAKÁZÁNÍ AKCE NA NĚKTERÝCH PRVCÍCH .................................................................................................................... 14-191 ROZBLIKÁNÍ PRVKU NA ČELNÍM PANELU ....................................................................................................................... 14-192 ČELNÍ PANEL VI PRO PŘENESENÍ DAT Z HISTORIE REGISTRAČNÍHO GRAFU DO STATICKÉHO ............................................ 14-192 BLOKOVÝ DIAGRAM VI PRO PŘENESENÍ HISTORIE REGISTRAČNÍHO GRAFU DO STATICKÉHO GRAFU ................................. 14-193 ČELNÍ PANEL VI PRO PROGRAMOVÉ VYČTENÍ POZICE KURZORU STATICKÉHO GRAFU ..................................................... 14-193 BLOKOVÝ DIAGRAM VI PRO PROGRAMOVÉ VYČTENÍ POZICE KURZORU STATICKÉHO GRAFU ............................................ 14-194 PALETOVÁ NABÍDKA FUNKCÍ PRO KOMUNIKACI S MĚŘICÍMI PŘÍSTROJI ............................................................................ 15-195 STRUKTURA SOUVISLOSTÍ JEDNOTLIVÝCH VRSTEV SW................................................................................................. 15-196 PALETOVÉ MENU OBSLUŽNÝCH PROGRAMŮ PRO MĚŘICÍ PŘÍSTROJE .............................................................................. 15-197 PALETOVÁ NABÍDKA OBSLUŽNÉHO PROGRAMU PRO MULTIMETR HP 34401A................................................................. 15-198 ČELNÍ PANEL FUNKCE INITIALIZE .................................................................................................................................. 15-199 BLOKOVÝ DIAGRAM APLIKACE PO PRVNÍM KROKU ......................................................................................................... 15-200 ČELNÍ PANEL APLIKACE PO DRUHÉM KROKU ................................................................................................................. 15-200 BLOKOVÝ DIAGRAM APLIKACE PO TŘETÍM KROKU.......................................................................................................... 15-201 IKONY POUŽITELNÉ PRO TVORBU OBSLUŽNÝCH PROGRAMŮ .......................................................................................... 15-202 ČELNÍ PANEL ŠABLONY FUNKCE INITIALIZE S INSTRUKCEMI PRO TVORBU TÉTO FUNKCE ................................................. 15-202 KOMUNIKAČNÍ MONITOR PRO ROZHRANÍ GPIB ............................................................................................................. 15-203 ČELNÍ PANEL MONITORU PRO OVĚŘOVÁNÍ KOMUNIKACE PŘES SÉRIOVÉ ROZHRANÍ ......................................................... 15-204 PALETOVÁ NABÍDKA FUNKCÍ PATŘÍCÍCH DO ROZŠÍŘENÉ KNIHOVNY ANALÝZ .................................................................... 16-205 PALETOVÁ NABÍDKA FUNKCÍ PRO GENEROVÁNÍ SIGNÁLŮ ............................................................................................... 16-206 POUŽITÍ FUNKCE PRO GENEROVÁNÍ SINUSOVÉHO PRŮBĚHU .......................................................................................... 16-207 POUŽITÍ FUNKCE GENEROVÁNÍ SIGNÁLU PRO SIMULACI MĚŘENÝCH DAT VE FÁZI LADĚNÍ APLIKACE BEZ PŘIPOJENÍ NA HW 16-207 GENERÁTOR FUNKCÍ ................................................................................................................................................... 16-208 ČELNÍ PANEL APLIKACE VYUŽÍVAJÍCÍ FUNKCE AMPLITUDE AND PHASE SPECTRUM.VI ...................................................... 16-209 BLOKOVÝ DIAGRAM APLIKACE VYUŽÍVAJÍCÍ FUNKCE AMPLITUDE AND PHASE SPECTRUM.VI ............................................ 16-210 JEDNODUCHÝ SPEKTRÁLNÍ ANALYZÁTOR ..................................................................................................................... 16-211 PALETOVÁ NABÍDKA S VOLBOU NÁSTROJE PRO VYTVÁŘENÍ APLIKACÍ ............................................................................. 17-212 DIALOGOVÉ OKNO PRŮVODCE VYTVÁŘENÍM APLIKACE .................................................................................................. 17-213
© Doc. Ing. Jan Žídek, CSc.
1-9
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
1. ZÁKLADNÍ PRINCIPY VIRTUÁLNÍ INSTRUMENTACE 1.1. ÚVOD Slovo „virtuální“ se díky nástupu nových technologií spojených s rychlým rozvojem výpočetní techniky objevuje v našem slovníku čím dál častěji. Lze se setkat s virtuální realitou ať už jako součástí zábavního průmyslu (film, počítačové hry), nebo jako prostředkem usnadňujícím zvládnutí složitých situací v některých odvětvích lidské činnosti (nácvik složitých operací na virtuálním modelu lidského těla, simulátory pro výcvik pilotů v letectví …). Do našeho každodenního života vstupuje nabídka zboží ve virtuálních obchodních domech nabízejících své zboží prostřednictvím Internetu. Tato úvodní kapitola by měla vysvětlit další oblast spojenou se slovem virtuální a s nástupem nových technologií, tentokrát ve spojení s problematikou měření a měřicí techniky. Touto oblastí je virtuální instrumentace.
1.2. VÝVOJ MĚŘICÍ TECHNIKY Výrobci měřicí techniky se v tržním hospodářství řídí stejnými pravidly jako kdokoliv jiný na trhu. Jejich snahou je maximalizovat svůj zisk ovládnutím co největší části trhu svými výrobky. Pro dosažení tohoto cíle musí získat co nejvíce zákazníků se zájmem o své výrobky. Tento zájem bude narůstat tím strměji, čím lepší bude uspokojení potřeb těchto zákazníků právě prostřednictvím produkce těchto výrobců. Definujme si pojem flexibility měřicího systému jako jeho schopnost uspokojit potřeby koncového uživatele. Vývoj měřicí techniky obecně a v celosvětovém měřítku sleduje trend zvyšující se flexibility měřicích systémů. Názorně lze tento vývoj měřicí techniky v čase ukázat v grafickém vyjádření na následujícím obrázku:
PC
Flexibilita Virtuální měřicí přístroje - fáze virtuální instrumentace
Zásuvné měřicí desky SCXI- 1001
SCXI 1140 SCXI 1140 SCXI 1140 SCXI 1140
SCXI MAINFR AM E
VXI Měřicí přístroje vybavené rozhraním (RS 232, GPIB-IEEE488)
Klasické analogové měřicí přístroje
Čas
Obr. 1.: Vývoj měřicí techniky v čase z hlediska narůstající flexibility © Doc. Ing. Jan Žídek, CSc.
1-10
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
1.3. MĚŘICÍ PŘÍSTROJE Z OBDOBÍ KLASICKÉ INSTRUMENTACE U klasických analogových měřicích přístrojů bez komunikačního rozhraní (voltmetry, ampérmetry, multimetry, osciloskopy, …) definuje funkce měřicího přístroje jednoznačně jeho výrobce a koncový uživatel může využít pouze těch funkcí, které měl od výrobce v přístroji implementovány - flexibilita takovéhoto měřicího systému je tedy nízká, narazí-li potřeba uživatele na funkci, kterou přístroj nemá implementovánu, zůstává jeho potřeba neuspokojena. V této fázi vývoje měřicí techniky je i způsob přebírání naměřených hodnot koncovým uživatelem omezen obvykle na opisování naměřených dat z displeje měřicího přístroje, což je dalším potenciálním zdrojem chyb měření.
1.4. MĚŘICÍ PŘÍSTROJE VYBAVENÉ KOMUNIKAČNÍM ROZHRANÍM Zejména posledně jmenovaný aspekt klasické měřicí techniky vedl asi v počátcích ke snaze zefektivnit přebírání naměřených hodnot s vyloučením lidského činitele přímou komunikací měřicího přístroje s počítačem. Každý proces měření se vyznačuje dvěma etapami interakce uživatele s měřicím přístrojem oddělenými od sebe vlastním měřením. V první etapě dochází ke konfiguraci měřicího přístroje, tj. nastavení všech parametrů přístroje na hodnoty vyžadované daným měřením. Převládající směr toku informace je v této fázi od uživatele k přístroji a na čelním panelu měřicího přístroje jsou k tomuto účelu připraveny ovládací prvky v podobě tlačítek, přepínačů a otočných nastavovacích prvků. Ve druhé etapě interakce dochází k vlastnímu vyčítání naměřených hodnot. Převládající směr toku informace je v této fázi od měřicího přístroje k uživateli a na čelním panelu jsou k tomuto účelu připraveny indikační prvky v podobě stupnic s ručičkami, číselných či grafických displejů. V obou fázích komunikace uživatele s měřicím přístrojem lze uvažovat o náhradě koncového uživatele počítačem, což přináší dvě zásadní výhody: možnost automatizace celého měření a tím jeho zefektivnění z hlediska časové náročnosti celého procesu. Počítač zvládá mnohem rychlejší toky dat, což ve svém důsledku zkracuje jak dobu konfigurace měřicího přístroje, tak dobu vyčítání naměřených hodnot vyloučením lidského faktoru z měřicího řetězce lze eliminovat další zdroj chyb, které zatěžují výsledek měření, a to chyby osobní S rostoucími výkonnostními parametry a s klesající cenou výpočetní techniky začíná její masivní průnik i do oblastí, pro které dříve nebyla určena, včetně oblasti měřicí techniky. Výrobci měřicí techniky reagují na tento průnik vybavováním svých měřicích přístrojů komunikačním rozhraním umožňujícím interakci počítače a měřicího přístroje. V dnešní době se u měřicích přístrojů nejčastěji vyskytují tři typy rozhraní využívané pro komunikaci s personálním počítačem (PC).
1.4.1. Měřicí přístroje s komunikačním rozhraním RS-232 Výhody komunikace přes toto rozhraní jsou následující: jednoduchá a levná kabeláž (pro vzájemnou komunikaci vystačí se dvěmi i jedním signálovým a společným zemním vodičem)
© Doc. Ing. Jan Žídek, CSc.
1-11
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
standardní vybavení tímto rozhraním na straně počítače (připojuje se k němu obvykle myš, souřadnicové zapisovače a další periférie) poměrně velká vzdálenost, na kterou lze takto měřicí přístroj ovládat nevýhody komunikace přes toto rozhraní: omezení na dva komunikující protějšky (počítač a jeden měřicí přístroj) malá propustnost (omezená přenosová rychlost, nutnost sériového řazení informace po bitech a nutnost redundantní informaci pro synchronizaci přenosu – start bit, paritní bit, stop bit)
1.4.2. Měřicí přístroje s komunikačním rozhraním GPIB Paralelní rozhraní GPIB (General Purpose Interface Bus) zavedené v roce 1965 firmou Hewlett Packard pod označením HP-IB a zdokonalené v roce 1975 do podoby IEEE standardu 488 a v roce 1987 do podoby ANSI/IEEE 488.1 standardu, později rozšířeného na ANSI/IEEE 488.2 standard. Firma National Instruments, která je přední firmou rozvíjející dále toto rozhraní pod označením GPIB. Výhody komunikace přes toto rozhraní: vysoká přenosová rychlost (přes 1 MB/s, s využitím protokolu HS488 až 8 MB/s), možnost připojit na jeden řídící počítač více měřicích přístrojů, v případě IEEE 488.2 existence standardizovaného protokolu pro řízení přístrojů akceptovaného všemi výrobci, kteří tímto rozhraním své přístroje vybavují nevýhody komunikace přes toto rozhraní: omezená vzdálenost komunikujících přístrojů (max. celková délka kabelu 20 m), nutností dovybavit počítač modulem tohoto rozhraní (zásuvná karta GPIB nebo konvertor stávajícího rozhraní Centronics nebo RS 232) dražší kabeláž
1.4.3. Měřicí přístroje s komunikačním rozhraním Ethernet Rozhraní Ethernet je v poslední době se objevující alternativou ke dvěma předchozím rozhraním. Výhody komunikace přes toto rozhraní: připojení měřicího přístroje na standardní médium lokální počítačové sítě (koaxiální kabel, kroucená dvoulinka) v místě měření přes standardní vstup do této sítě možnost konfigurace měřicího přístroje a zpracování naměřených dat v jiném místě lokální počítačové sítě popřípadě odkudkoliv z Internetu velká propustnost tohoto rozhraní (standardně 10/100 Mbitů/s, je definovaná i rychlost 1 Gb/s) možnost využití standardních protokolů známých z komunikace mezi počítači (TCP/IP) nevýhoda komunikace přes toto rozhraní © Doc. Ing. Jan Žídek, CSc.
1-12
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
velmi málo výrobců měřicí techniky zatím vybavuje své přístroje tímto rozhraním standardní obslužné programy jsou zatím uzpůsobeny pro využití rozhraní RS 232 nebo GPIB Propojení počítače s měřicím přístrojem umožňuje doplnit funkce definované jeho výrobcem funkcemi, které lze naprogramovat do řídicího počítače. Funkce měřicího přístroje lze v tomto případě obvykle omezit pouze na sejmutí měřených dat a jejich přenos přes rozhraní do počítače, kde proběhne jejich následné zpracování, při kterém lze softwarově realizovat i funkce, které do měřicího přístroje nebyly implementovány. Takto lze např. z digitálního osciloskopu jednoduchým způsobem udělat frekvenční analyzátor, který je obvykle o řád dražší (osciloskop pouze sejme měřený průběh a pošle jej přes sběrnici do počítače, kde lze podrobit tato data frekvenční analýze např. algoritmem rychlé Fourierovy transformace FFT). Flexibilita měřicího systému je zde výrazně vyšší. Narazí-li potřeba uživatele na funkci, kterou nemá přístroj implementovánu výrobcem, lze ji následně realizovat softwarovými prostředky na připojeném počítači. Vývojáři výpočetní i měřicí techniky dnes používají stejných koncepcí a komponentů při návrhu zapojení vyvíjených zařízení (využití mikroprocesorů, pamětí, sběrnic …). Moderní složitější měřicí přístroj je obvykle multiprocesorový systém vybavený základní vrstvou softwaru, která řídí jeho činnost – této vrstvě se říká firmware. Tato koncepce umožňuje v určitých omezených mezích měnit chování přístroje a umožňuje použití pružně programovatelných ovládacích prvků na čelním panelu. Rostoucí počet funkcí, které výrobci měřicích přístrojů implementují do svých výrobků by při klasické koncepci (jedna funkce – jeden ovládací prvek) vedla k velmi rozměrným a nepřehledným panelům těchto přístrojů. Proto je dnes mnohem obvyklejší umístění ovládacích tlačítek na okraj displeje, na kterém je v každé fázi konfigurace daného přístroje přiřazena tomuto tlačítku jiná funkce popsaná proměnným nápisem na displeji. Při analýze propojení měřicího přístroje přes komunikační rozhraní na počítač přišli výrobci měřicí techniky na to, že se z měřicího přístroje někdy využije pouze vstupních obvodů a paměti dat, což vedlo k dalšímu kroku vývoje této techniky směrem k tzv. virtuálním měřicím přístrojům.
1.5. FÁZE VIRTUÁLNÍ INSTRUMENTACE Podstatou virtuálního přístroje je doplnění otevřené architektury personálního počítače tím, co mu chybí, aby mohl plnit úlohu měřicího přístroje. V oblasti hardwaru je to zásuvná multifunkční karta (zásuvná měřicí deska) vybavena konektorem pro zasunutí této karty do systémové desky personálního počítače (ISA, EISA, PCI sběrnice). V oblasti softwaru je to vhodný program pro počítač, který realizuje všechny funkce měřicího přístroje a plní tak úlohu firmwaru měřicího přístroje. Zabraňuje se tak i duplicitě, která se objevuje při propojení měřicího přístroje a počítače. Nedílnou součástí aplikace představující virtuální přístroj je grafické rozhraní k uživateli – čelní panel virtuálního přístroje. Koncový uživatel na něm má k dispozici: ovládací prvky pro nastavení parametrů přístroje indikační prvky informující ho o výsledcích měření Na následujícím obrázku je příklad virtuálního přístroje plnícího funkci dvoukanálového osciloskopu. Ovládacími prvky na něm uživatel volí kanál, nastavení časové základny a vertikálního zesilovače a podmínku spuštění časové základny (trigger). Indikačním prvkem je grafický displej znázorňující naměřený časový průběh. Oproti klasickému přístroji si virtuální přístroj ponechává všechny výhody personálního počítače – standardní média pro ukládání naměřených dat (pevný disk, dis© Doc. Ing. Jan Žídek, CSc.
1-13
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
keta), snadné připojení periférií (tiskárna, modem), snadná konektivita do počítačových sítí, a tím možnost sdílení naměřených dat či dálkové ovládání přístroje. Kromě toho se dá jeho funkce snadno změnit modifikací vytvořené aplikace.
Obr. 2.: Příklad grafického rozhraní – čelního panelu virtuálního přístroje
Zásuvné multifunkční karty doplňující pro účely měření architekturu personálního počítače mají omezení hlavně v parametru dosažitelné vzorkovací frekvence a současnosti snímání z více kanálů. Běžné měřicí karty pro ISA sběrnici dosahují maximální vzorkovací frekvence řádu stovek tisíc až miliónů vzorků za sekundu (100 kS/s – 1 MS/s, interval mezi vzorky 1 – 10 mikrosekund) pro signál, který není periodický. Špičkové osciloskopy dnes mají tento parametr až o čtyři řády lepší (10 GS/s - t.j. deset miliard vzorků za sekundu - interval mezi dvěma vzorky 100 ps). Toto omezení rychlosti měření je u zásuvných multifunkčních karet dáno především použitou architekturou A/D převodníku a šířkou a časováním sběrnice mezi kartou a počítačem. Pro překonání tohoto omezení se začíná rozšiřovat speciální architektura měřicích systémů - systémy na bázi VXI sběrnice. Architektura těchto systémů je tvořena tzv. mainframem (tj. rámem s napájecím zdrojem a sběrnicí o šířce 32 bitů propojující až 13 pozic v tomto rámu). Na pozici 0 se do tohoto rámu nasazuje buď jednodeskový počítač nebo konvertor VXI sběrnice na protokol GPIB s následným propojením na řídící počítač vybavený kartou GPIB. Do zbývajících pozic v rámu se zasouvají měřicí přístroje v redukované podobě zásuvných modulů (nemají tudíž ani čelní panel s ovládacími prvky, pouze konektory pro připojení měřených signálů). Sběrnice VXI se vyznačuje velkou propustností a přesným časováním (spouštěním měření), malými rozměry, menší náchylností k ovlivnění měření rušivými signály, delší střední dobou mezi opravami a kratší dobou opravy.
© Doc. Ing. Jan Žídek, CSc.
1-14
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 3.:
Naznačení fyzické podoby VXI měřicího systému
1.6. SROVNÁNÍ KLASICKÉ A VIRTUÁLNÍ INSTRUMENTACE Zásuvné karty a VXI měřicí systémy tvoří nejvyšší stupeň nového přístupu k měření - tzv. virtuální instrumentace. Srovnání klasických měřicích přístrojů a virtuálních měřicích přístrojů ukazuje následující tabulka: Hledisko
Tradiční přístroj
Virtuální přístroj
Funkce definuje
výrobce
uživatel
Orientace přístrojů a jejich propojitelnost
specifické podle funkcí, hlavně používané samostatně s omezenou propojitelností
specifické podle aplikace, propojitelnost s návazností na počítačové sítě a periférie
Klíčový komponent
hardware
software
Náklady na výrobu a opakovatelnost použití
vysoké
nízké, opakovatelně použitelné
Architektura
uzavřená, pevná množina funkcí
otevřená, pružná funkčnost odrážející výkonnost výpočetní techniky
Návaznost na technologický proces
pomalá - doba obměny 5 - 10 let
rychlá – doba obměny 1 - 2 roky
Náklady na vývoj a údržbu
vysoké, horší poměr výkon/cena
nízké, dobrý poměr výkon/cena
Filosofie virtuálních měřicích přístrojů je velmi progresivní, neboť umožňuje při zachování výkonnostních parametrů klasické měřicí techniky vytvářet přístroje, jejichž funkce přesně odpovídají © Doc. Ing. Jan Žídek, CSc.
1-15
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
požadavkům uživatele, neboť jsou tyto funkce realizovány softwarově. Navíc tato koncepce umožňuje doplňovat další funkce podle narůstajících a měnících se potřeb koncového uživatele. Cena takto vytvářených měřicích přístrojů bývá nižší, než je cena klasické analogové měřicí techniky. Navíc je možno kdykoliv změnou programu vytvořit jiný měřicí přístroj nebo upravit vlastnosti stávajícího. Při spojení měřicího přístroje a počítače přes rozhraní nebo při vytváření virtuálních měřicích přístrojů hraje vedle hardwarových prostředků v podobě počítače a přídavných karet čím dál významnější roli software - stává se klíčovým komponentem měřicího systému.
1.7. PROCES MĚŘENÍ A JEHO FÁZE
Analýzou procesu měření a zpracování měřených dat lze dojít k následujícímu obecnému schématu procesu měření jako navazujících tří fází. •
fáze sběru dat či řízení technologického procesu - v podstatě se používají následující typické způsoby sběru dat přes: o
zásuvné multifunkční karty
o
přístroje vybavené rozhraním RS 232 nebo jiným sériovým rozhraním
o
přístroje vybavené rozhraním GPIB
o
VXI, PXI měřicí systémy
o
PLC
o
průmyslové I/O systémy
o
systémy snímání obrazu
V této první fázi procesu měření se jedná o získání tzv. surových dat - obvykle se zde v měřicích systémech moderní koncepce jedná o převod měřené veličiny na elektrický signál nesoucí informaci o měřené veličině a jeho převod na číselnou hodnotu. Následně je tato informace předána počítači a uložena do paměti či zobrazena na displeji. •
fáze analýzy naměřených dat o
digitální zpracování signálu
o
například digitální filtrace či výpočet frekvenční analýzy
o
statistika
o
operace s datovými poli
V této druhé fázi procesu měření obvykle vyvstává potřeba odstranění nežádoucích složek měřených signálů (odstranění rušení), statistického vyhodnocení (např. výpočet střední či efektivní hodnoty), výpočet nepřímo měřených veličin z veličin měřených (např. nepřímé měření odporu měřením napětí a proudu) atp. © Doc. Ing. Jan Žídek, CSc.
1-16
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
fáze prezentace naměřených a analyzovaných dat o
grafické rozhraní k uživateli
o
síťové aplikace
o
archivace v souborech
o
tisk
V této poslední fázi je potřeba naměřené a analyzované hodnoty prezentovat ve tvaru např. protokolu z měření, grafů, uložením do textových datových souborů atp. Je-li ve virtuálním měřicím systému vyjasněna otázka použitého hardwaru (měřicí přístroj s rozhraním, počítač se zásuvnou měřicí kartou, VXI měřicí systém), je potřeba zvolit optimální softwarový prostředek tvorby měřicí aplikace. Pro tento účel lze využít i standardních programovacích jazyků: •
Basic - křivka charakterizující použití tohoto programovacího jazyka je dnes již za svým vrcholem - tento jazyk však dnes prožívá svou renesanci v podobě tzv. Visual Basicu, kterého lze opět využít pro efektivní tvorbu objektově orientovaných aplikací pro oblast měření.
•
C jazyk - dnes nejčastěji používaný jazyk v technické praxi v různých podobách CVI, C++, Visual C++
Použití standardního programovacího jazyka pro vytvoření aplikace z oblasti měření naráží na dvě úskalí: •
tvorba aplikace je časově náročná, syntaxe jazyka je složitá a výsledný produkt může být těžko čitelný i pro samotného autora, vrátí-li se k němu po delším čase od jeho tvorby
•
je zde velká náročnost na detailní znalost hardwarového řešení měřicího řetězce - musí se napsat všechny funkce pro podporu protokolů na jednotlivých rozhraních, které obvykle nejsou součástí implementace těchto programovacích jazyků (obsluha požadavků na přerušení, přímý přístup do paměti atp.)
Tato úskalí pomáhají překonat dnes stále častěji používané produkty, které lze zařadit do kategorie tzv. CASE (Computer Aided Software Engineering) produktů, tj systémů pro vytváření koncových aplikací s podporou počítače. Produkcí těchto softwarových systémů - vývojových prostředí, které v sobě obvykle integrují mnoho pomocných nástrojů pro automatizaci tvorby softwarové aplikace se dnes zabývá na světovém trhu celá řada firem. Mnohé pomocné nástroje integrované do těchto vývojových prostředí vycházejí ze skutečnosti, že obecná struktura aplikace bývá shodná a dá se popsat jako soubor grafických rozhraní, přes která koncový uživatel s programem komunikuje. Vlastní program je založen na opakované kontrole, zda na těchto grafických rozhraních nedošlo k události – interakci uživatele s ovládacím prvkem a v následném programovém ošetření těchto událostí. Vývojové prostředí tedy může základní kostru programu vygenerovat automaticky a ušetřit tak jeho tvůrci čas. Do takto připravené kostry programu se pak vkládají jednotlivé funkce z knihoven, které v těchto vývojových prostředích mají i funkce pro podporu jednotlivých fází procesu měření a oprošťují tak uživatele od nutnosti znát např. detaily komunikace měřicí karty s počítačem. Softwarové prostředky, které se používají pro tuto oblast lze rozdělit
© Doc. Ing. Jan Žídek, CSc.
1-17
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
podle fáze procesu měření, kterou podporují (sběr, analýza, prezentace)
•
podle funkcí, které uživateli nabízejí (otevřené systémy, uzavřené systémy)
Ze standardních softwarových prostředků lze pro oblast měření použít např. i tabulkové procesory, které pokryjí fázi prezentace a částečně fázi analýzy měřených dat). Dnes se však v této kategorii objevují i produkty s podporou zásuvných karet pro vstup dat do tabulkového procesoru - např. Excel Meassure od firmy National Instruments. Kromě nich nabízí řada firem speciální programové balíky, pokrývající jednu, dvě, nebo všechny tři fáze zpracování měřených dat (např. knihovny funkcí podporujících sběr dat ze zásuvných multifunkčních karet). Podle druhého hlediska lze na trhu softwarových prostředků nalézt uzavřené systémy, které uživateli poskytují omezenou množinu funkcí, které naprogramoval jejich tvůrce a kterou již nelze dále jednoduchým způsobem rozšiřovat (sem patří např. různé nadstavby tabulkových procesorů nebo speciální softwarové balíky podpory některých měřicích karet). Kromě těchto systémů lze nalézt i otevřené systémy, které poskytují uživateli celou řadu funkcí, aniž by ho omezovaly, neboť se dají jednoduchým způsobem rozšiřovat podle potřeb uživatele - jsou to tedy tzv. vývojová prostředí (Development Environment). Na světovém trhu vývojových prostředí pro oblast měření lze nalézt mnoho produktů, patřících do kategorie otevřených systémů: •
HP VEE - od firmy Hewlett-Packard (grafické programování v prostředí Windows)
•
Test Point - od firmy Keithley (grafické programování v prostředí Windows)
•
Dasy Lab - jednoduchý systém grafického programování v prostředí Windows, původně od firmy DasyTech, dnes patří do rodiny produktů firmy National Instruments
•
Control Panel - Alcor Zlín - grafické programování v prostředí DOSu a Windows (systém vytvořen v jazyce Modula 2)
•
LabWindows-CVITM - textově orientovaný vývojový systém pro platformu Windows
•
LabVIEWTM - grafické programování v prostředí Windows a na různých platformách (MacIntosh, PC – Windows 3.11, Windows 95, Windows 98, Windows NT, Sun, HP Unix, LINUX)
Použití některého z těchto vývojových prostředí umožňuje efektivní a rychlou tvorbu aplikací pro oblast testování, měření a průmyslové automatizace.
1.8. SYSTÉMOVÁ INTEGRACE V dnešní době je výuce virtuální instrumentace věnována pozornost i při studiu technických předmětů na vysokých školách. Autoři tohoto cyklu článků pedagogicky působí na Katedře elektrických měření VŠB-Technické univerzity v Ostravě. Tato katedra velmi úzce již osm let spolupracuje s americkou firmou National Instruments®, která je světovou špičkou v této oblasti a poskytuje uživatelům v celosvětovém měřítku velmi kvalitní produkty jak z oblasti hardwaru (zásuvné měřicí karty, karty GPIB rozhraní, VXI a PXI měřicí systémy, komunikační karty pro různé protokoly, karty sběru obrazové informace), tak i z oblasti softwaru (textově i graficky orientovaná vývojová prostředí, knihovny funkcí pro specializované oblasti). Šíře nabídky těchto komponentů se rok od roku rozšiřuje o čemž svědčí například přes devět set stran katalogu této firmy z roku 2001. V podstatě lze ke tvorbě měřicích virtuálních systémů přistupovat dvojím způsobem: © Doc. Ing. Jan Žídek, CSc.
1-18
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
koncový uživatel si koupí všechny potřebné komponenty měřicího řetězce včetně vhodného vývojového prostředí a vytvoří si svůj systém vlastními silami
•
využije služeb takzvaného systémového integrátora, který ovládá práci s komponenty nabízenými výrobcem a sestaví celý měřicí systém koncovému uživateli na klíč.
V České republice stejně jako na celém světě existuje řada firem, které se zabývají systémovou integrací a lze tedy zvolit jednu z obou nabízených variant řešení. První varianta se hodí spíše pro uživatele, který potřebuje větší počet měřicích systémů s častým požadavkem na jejich modifikaci. Potom se mu vyplatí pověřit svého pracovníka zvládnutím vývojového prostředí a ten je schopen následně vyvíjet, udržovat a modifikovat vytvořené měřicí systémy. Druhý přístup se hodí spíše v situaci, kdy je požadavek na tvorbu měřicího systému spíše ojedinělý, nebo kdy hraje roli faktor času – zkušenému systémovému integrátorovi bude trvat kratší dobu vytvoření systému na klíč a jeho odladění a patrně i parametry vytvořeného systému budou na vyšší úrovni, než by tomu bylo u začínajícího tvůrce těchto systémů. K dispozici je dnes ucelená řada komponentů, ze kterých lze vytvořit měřicí řetězec ať už v měřicím či testovacím systému, nebo v systému z oblasti průmyslové automatizace. Velkou výhodou je, je-li možno sestavit celý systém z komponentů jednoho výrobce, nebo z komponentů využívajících zavedených a osvědčených standardů rozhraní – je tak zaručena lepší kompatibilita jednotlivých článků řetězce a méně problémů při jeho oživování a uvádění do provozu. Následující obrázek znázorňuje hrubé schéma jednotlivých článků řetězce, ze kterých lze vytvořit virtuální měřicí systém:
Te mp era tur e
Flo w Co ntr ol Pr
es su re
Ala rm
Pa ne l
Co nd itio ns
ST OP
SCX
I-10 01 S CXI 1140 SCXI 1140
SC
XI 1140
S CXI 1140
SCXI 1100
MA
SCX I
INFR
AME
A B C NA INSTR TIONA UMEN L TS ®
bus
D
Obr. 4.: Komponenty měřicího řetězce pro vytvoření virtuálního měřicího systému © Doc. Ing. Jan Žídek, CSc.
1-19
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
V levé části obrázku jsou znázorněny dva zdroje měřených veličin – technologický proces a testovaný výrobek. V obou případech se používá obousměrné komunikace – do technologického procesu vstupují veličiny představující akční veličiny regulačních obvodů, žádané hodnoty parametrů apod., do testovaného výrobku vstupují stimulační signály. V opačném směru, tj. do systému jdou měřené veličiny. Ve střední části obrázku jsou znázorněny některé ze standardních možnosti používaných ve fázi sběru měřených dat: A – zásuvná měřicí karta s předřazeným modulem úpravy měřeného signálu B – programovatelný logický automat (PLC) s komunikačním rozhraním C – měřicí přístroj s komunikačním rozhraním (GPIB, RS 232) D – VXI měřicí systém V této části systému dochází k úpravě měřených veličin na elektrický signál, převodu do digitální podoby a jeho sjednocení podle použitého rozhraní. V pravé části obrázku je zobrazen personální počítač s aplikací realizující funkce virtuálního přístroje. Rostoucí výkonové parametry dnešních personálních počítačů umožňují vytvářet i velmi sofistikované systémy, které si zachovávají základní přednost směrem ke koncovému uživateli – vysokou míru flexibility danou možností modifikací softwarové aplikace upravit chování systému podle měnících se potřeb koncového uživatele.
© Doc. Ing. Jan Žídek, CSc.
1-20
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
2. ÚVOD DO VÝVOJOVÉHO PROSTŘEDÍ LABVIEW 2.1. FILOSOFIE A SOUČÁSTI VÝVOJOVÉHO SYSTÉMU LABVIEW Základním záměrem vývojových pracovníků firmy National Instruments bylo dát do rukou inženýrů nástroj podobné efektivity pružnosti a síly jako je tabulkový procesor v rukou finančního manažera. Myšlenka, na níž stojí efektivita vývojového prostředí LabVIEW I daného na trh v roce 1986 pro platformu počítačů Macintosh je jednoduchá a vznikla původně na půdě Texaské univerzity ve skupince nadšenců kolem duchovního otce tohoto systému Jeffa Kodovského. Vychází se zde z poznatku, že tím, kdo ví, co měřit, jak analyzovat a jak prezentovat data, je technik, který nemusí být sám zkušeným programátorem. Své představy tedy předává programátorovi obvykle v podobě blokového schématu. Programátor toto schéma potom převádí do syntaxe zvoleného programovacího jazyka, což je činnost poměrně zdlouhavá a náročná na přesnost a nepřináší již do procesu měření obvykle žádné další nové informace. Cílem vývojového prostředí LabVIEW je to, aby blokové schéma bylo koncovým tvarem aplikace, který se již dále nebude převádět do textové podoby. LabVIEW (Laboratory Virtual Instruments Engineering Workbench) je obecným vývojovým prostředím s bohatými knihovnami pro vytváření aplikací zaměřených do oblasti měření ve všech fázích tohoto procesu - tj. sběru, analýzy a prezentace naměřených dat. Podporuje všechny čtyři základní způsoby sběru dat do počítače (z měřicích přístrojů přes rozhraní RS 232 nebo GPIB, ze zásuvných multifunkčních karet a ze systému na bázi VXI sběrnice). Poskytuje uživateli plnohodnotný programovací jazyk se všemi odpovídajícími datovými a programovými strukturami v grafické podobě - tzv. G jazyk (Graphical language). LabVIEW je tedy vývojovým prostředím na úrovni např. C jazyka, ale na rozdíl od něj není orientován textově, ale graficky.. Výsledný produkt tohoto vývojového prostředí se nazývá virtuálním přístrojem (Virtual Instrument), protože svými projevy a činností připomíná klasický přístroj ve své fyzické podobě. Virtuální přístroj jako základní jednotka aplikace vytvořené v tomto vývojovém prostředí obsahuje: •
interaktivní grafické rozhraní (Graphical User Interface - GUI) ke koncovému uživateli - tzv. čelní panel (Front Panel), který simuluje čelní panel fyzického přístroje. Obsahuje prvky pro ovládání a indikaci (knoflíky, tlačítka, LED indikátory, grafy ...). Tento čelní panel ovládá uživatel myší nebo z klávesnice.
•
činnost virtuálního přístroje je dána jeho blokovým schématem (Block Diagram). Toto blokové schéma je vytvořeno ikonami reprezentujícími v koncových blocích ovládací a indikační prvky čelního panelu a ve svých uzlových blocích jsou to bloky zpracovávající procházející data. Tento blokový diagram je zdrojovou podobou každé aplikace.
•
virtuální přístroj má hierarchickou a modulární strukturu. Lze jej používat jako celý program nebo jeho jednotlivé podprogramy, které se nazývají podřízenými virtuálními přístroji (SubVI). Součástí každého virtuálního přístroje je jeho ikona, kterou je prezentován v blokovém schématu a konektor s přípojnými místy pro vstupní a výstupní signály.
Těmito charakteristickými rysy naplňuje vývojové prostředí LabVIEW podmínky modulárního programování. Svou aplikaci dělí uživatel na jednotlivé úlohy, pro které vytváří dílčí virtuální přístroje (subVI) a z nich potom buduje celou aplikaci jejich spojováním do výsledného virtuálního přístroje. Na závěr lze celou aplikaci přeložit do EXE tvaru a provozovat nezávisle na vývojovém prostředí. Díky možnosti vyzkoušet funkci každého dílčího virtuálního přístroje nezávisle na jiných a díky bohaté škále ladicích prostředků je ladění aplikace velmi snadné.
© Doc. Ing. Jan Žídek, CSc.
2-21
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Celý vývojový systém (full development package) sestává ze základní části (Base Package – základ vývojového systému bez knihovny Advanced Analysis, obsahuje však knihovny GPIB, RS232, Data Acquisition, a Base Analysis), rozšířené analyzační knihovny (Advanced Analysis Library - statistika, lineární algebra, operace s poli, generování signálů, zpracování signálů, digitální filtry, okénkové funkce). Lze jej dále doplnit např. o překladač aplikací do tvaru *.EXE (Application Builder) nebo o další nadstavby pro rozšíření knihoven (SQL toolkit pro podporu databázi, PID regulátor , VXI knihovna apod.). Vývojové prostředí LabVIEW je k dispozici pro standardně používané platformy (MacIntosh, IBM PC kompatibilní, pracovní stanice Sun …). Na úrovni zdrojového kódu jsou aplikace mezi těmito platformami přenositelné. Pro operační systém Windows prošlo vývojové prostředí postupně verzemi 2.5 až po současnou aktuální verzi 6.1, pro kterou je psán tento materiál. 2.2. ZÁKLADNÍ ČÁSTI VIRTUÁLNÍHO PŘÍSTROJE V této části budou zběžně vysvětleny základní části, z nichž sestává virtuální přístroj. 2.2.1. Čelní panel Grafické rozhraní k uživateli plní tutéž úlohu jako čelní panel fyzického přístroje. Pro vytváření čelního panelu je k dispozici samostatné okno. Příklad toho, jak může vypadat čelní panel virtuálního přístroje ukazuje následující obrázek:
Obr. 5.: Čelní panel virtuálního přístroje © Doc. Ing. Jan Žídek, CSc.
2-22
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Na čelním panelu se nacházejí dva typy prvků: •
ovládací (controls) - simulují vstupní zařízení (v blokovém schématu jsou reprezentovány vstupními bloky) a slouží pro ovládání virtuálního přístroje - zprostředkují tedy vstup informace od uživatele do aplikace, v blokovém diagramu jsou to bloky, z nichž signál vystupuje do algoritmu
•
indikační (indicators) - simulují výstupní zařízení (v blokovém schématu jsou reprezentovány výstupními bloky) a slouží k indikaci stavu virtuálního přístroje a výstupu výsledků zprostředkují tedy předávání informací směrem od aplikace k uživateli, v blokovém schématu jsou to bloky, v nichž signálové cesty končí
Oba typy prvků se na čelní panel umísťují z knihovny, která je součástí systému. Z knihovny lze tyto prvky vybírat pomocí paletové nabídky, kterou lze zpřístupnit pomocí roletové nabídky Windows / Show Controls Palette nebo kliknutím na pravé tlačítko myši kdekoliv v okně čelního panelu. Tato paletová nabídka je hierarchicky členěna. Je-li v pravém horním rohu políčka nabídky šipka vpravo, pokračuje nabídka jemnějším členěním nižší úrovně. Okno paletové nabídky je zobrazeno buď dočasně po dobu výběru prvku (vlevo nahoře je v nabídce ikonka špendlíku) nebo trvale po kliknutí na ikonku špendlíku. Lišta nástrojů v okně paletové nabídky, která se zobrazí při přepnutí na trvalé zobrazení nabídky, nabízí tři možnosti: Šipka nahoru
postoupení o úroveň výše
Lupa
možnost hledání v seznamu všech VI a prvků čelního panelu uložených na disku. V rámci této možnosti zadává uživatel text, který obsahuje nebo kterým začíná jméno souboru s hledaným prvkem a lze nastavit filtr jen funkce, jen prvky čelního panelu, obojí)
Možnosti
výběr z různých sad paletových nabídek s možností jejich editace
Obr. 6.: Paletové menu prvků čelního panelu
© Doc. Ing. Jan Žídek, CSc.
2-23
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Po výběru prvku v paletové nabídce přidržením levého tlačítka myši lze vytáhnout obrys vybraného prvku na čelní panel a umístit jej. Po umístění prvku v okně čelního panelu lze u něj měnit velikost, umístění, barvu atd. výběrem vhodného nástroje. Tyto akce lze nad vybraným prvkem čelního panelu provádět i dodatečně. Každý prvek čelního panelu má navíc roletové menu vyvolatelné při poloze kurzoru myši na prvku pravým tlačítkem myši a v tomto menu lze měnit další vlastnosti tohoto prvku, jak to bude popsáno později. Obrázek Chyba! Nenalezen zdroj odkazů. ukazuje nejvyšší hierarchickou úroveň paletové nabídky prvků čelního panelu v jejím základním provedení.
2.2.2. Blokové schéma Blokové schéma je grafickým vyjádřením zdrojového kódu virtuálního přístroje. Konstruuje se propojováním jednotlivých bloků signálovými cestami. Bloky jsou tvořeny jednak koncovými bloky (zdrojovými a cílovými) (source and sink terminals), které jsou na panel blokového schématu umístěny automaticky při tvorbě čelního panelu a jednak uzlovými bloky (nodes), které reprezentují bloky zpracování signálu, které lze vybírat z paletového menu Functions reprezentujícího vlastně knihovnu funkcí v okně blokového diagramu. Paletové menu s funkcemi lze vyvolat obdobným způsobem jako paletové menu prvků čelního panelu - buď přes menu Windows / Show Functions Palette nebo kliknutím na pravé tlačítko myši v okně blokového diagramu.
Obr. 7.: Paletové menu funkcí a struktur blokového diagramu
Při přepínání mezi oknem čelního panelu a oknem blokového diagramu, jsou-li trvale zobrazeny paletové nabídky Controls nebo Functions, dochází automaticky k jejich přepínání, podle toho, které okno je právě aktuální. K rychlému přepínání mezi oknem čelního panelu a oknem blokového diagramu je dobré si zapamatovat horké klávesy Ctrl E. Je to i nejrychlejší způsob v okamžiku, kdy má uživatel otevřeno větší počet oken k nalezení odpovídajícího protějšku k oknu aktuálnímu. © Doc. Ing. Jan Žídek, CSc.
2-24
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Platí, že uživatel může mít k danému virtuálnímu přístroji otevřena obě okna (čelního panelu i blokového diagramu), nebo jen okno čelního panelu. Nelze mít otevřeno pouze okno blokového diagramu. Při zavření okna blokového diagramu se zavírá pouze toto okno, při zavření okna čelního panelu se zavírají automaticky okna obě. Uzlové bloky jsou v blokovém diagramu ekvivalentní příkazům, operátorům, funkcím a podprogramům klasických programovacích jazyků. Bloky se propojují signálovými cestami (wires) a kromě tohoto propojení existují ještě programové struktury (structures), nahrazující v grafické podobě standardní konstrukce užívané v programovacích jazycích (podmíněný příkaz, přepínač, cyklus...). LabVIEW má i propojení na externí bloky textově orientovaného kódu a na textově orientované výrazy. Signálovou cestou se propojují zdrojové a cílové koncové bloky. Nelze propojit vzájemně dva zdrojové koncové bloky, ale lze spojit jeden zdrojový koncový blok k několika cílovým. Tvar a barva čáry reprezentující definovanou signálovou cestu rozlišuje typ proměnné, která prochází daným místem Následující obrázek ukazuje příklad blokového schématu virtuálního přístroje, jehož čelní panel byl uveden na prvním obrázku této kapitoly. Tento virtuální přístroj je vybrán z bohaté sbírky příkladů, která je součástí standardní instalace LabVIEW (…Program Files/National Instruments/LabVIEW/Examples/Apps/Tepsys.llb).
Obr. 8.: Příklad blokového diagramu virtuálního přístroje
Běh aplikace v LabVIEW je řízen tokem dat. Tok dat (data flow) je charakterizován jediným pravidlem, a to, že uzlový blok zahájí zpracování dat, má-li k dispozici platná data na všech svých vstu© Doc. Ing. Jan Žídek, CSc.
2-25
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
pech a po zpracování je posílá ke všem svým výstupům. Jednotlivé bloky mohou pracovat i současně a tím se tento způsob výrazně liší od sekvenčního způsobu zpracování dat v textově orientovaných jazycích, kde je běh aplikace řízen posloupností příkazů. Použití uvedeného pravidla umožňuje velmi jednoduchou realizaci paralelních větví ve zpracování aplikace.
2.2.3. Ikona a konektor Během práce virtuálního přístroje jako podřazeného volaného jiným virtuálním přístrojem je jeho práce analogická podprogramu. Svými zdrojovými koncovými bloky přijímá data z volajícího nadřazeného virtuálního přístroje a svými cílovými koncovými bloky po zpracování tomuto nadřazenému virtuálnímu přístroji zpracovaná data opět vrací. V blokovém schématu nadřazeného virtuálního přístroje je podřízený virtuální přístroj reprezentován ikonou, jejíž součástí je i sada vstupních a výstupních připojovacích míst, tzv. konektor. Konektor se podobá seznamu parametrů funkce z klasických programovacích jazyků. Každé přípojné místo může korespondovat s jedním ovládacím nebo indikačním prvkem z čelního panelu tohoto virtuálního přístroje. Ikonu a konektor lze vidět v pravém horním rohu okna čelního panelu a okna blokového schématu. Současně lze vidět v tomto místě pouze jeden z obou prvků (ikona-konektor) a lze mezi nimi přepínat. Editaci konektoru lze provádět jen v okně čelního panelu, editaci ikony v obou oknech výběrem akce z roletového menu vyvolaného pravým tlačítkem myši na místě s ikonou..
Obr. 9.: Místo pro ikonu a konektor virtuálního přístroje
2.3. POPIS PROSTŘEDÍ LABVIEW
V operačním systému Windows 95, 98, NT, 2000, XP odpovídá nainstalovanému vývojovému prostředí LabVIEW položka základního menu Programy:
© Doc. Ing. Jan Žídek, CSc.
2-26
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 10.: Skupina aplikací pro spouštění vývojového systému LabVIEW
Po spuštění vývojového prostředí uživatel vidí základní okno s výběrem akcí: New VI
vytvoření nového VI
Open VI
otevření stávajícího VI pro editaci nebo spuštění
DAQ Solutions
otevření průvodce automatické tvorby aplikací z oblasti sběru dat
Find Examples
nalezení vhodného příkladu v galerii řešení
LabVIEW Tutorial
spuštění výukového programu
Exit
ukončení práce vývojového prostředí
Okno lze redukovat na trojici akcí volbou Small Dialog. Dále si v něm lze prohlížet tipy k efektivnímu použití vývojového prostředí – na další lze přepnout tlačítkem Next. Po výběru akce vytvoření nového virtuálního přístroje se otevře dvojice oken v kaskádním uspořádání (pro optimální uspořádání a využití plochy monitoru je dobré si zapamatovat horké klávesy Ctrl T pro dlaždicové uspořádání oken): • okno čelního panelu (standardně šedé) • okno blokového diagramu (standardně bílé). Okna čelního panelu a blokového diagramu mají tyto náležitosti:
• standardní ovládací prvky dané prostředím Windows (záhlaví okna, ikonky pro změnu velikosti okna) • roletové menu - shodné v okně čelního panelu i v okně blokového diagramu • místo pro ikonu a konektor • lištu s nástroji - některé jsou shodné pro obě okna, některé se nacházejí pouze v okně blokového diagramu (nástroje pro ladění virtuálního přístroje)
© Doc. Ing. Jan Žídek, CSc.
2-27
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 11.: Okno výběru akce po spuštění vývojového prostředí LabVIEW
2.3.1. Roletová menu Popis položek roletového menu ( obecně platí, že položky zakončené třemi tečkami nejsou konečnou volbou příkazu a vedou pouze do další vrstvy výběru, položky bez tří teček jsou koncovými volbami, po jejich zvolení je odpovídající příkaz okamžitě proveden): skupina příkazů pro práci se soubory
File
New VI
vytvoření nového virtuálního přístroje (jeho okna čelního panelu a okna blokového diagramu) - ve vývojovém prostředí může být otevřeno současně více virtuálních přístrojů - aktivní je však v daném okamžiku pouze jedno okno s panelem
New
obecnější vytvoření nového objektu – v dialogovém okně dostává uživatel na výběr z: • • • • • • •
© Doc. Ing. Jan Žídek, CSc.
globální proměnné (Global Variable) prvku čelního panelu (Control) menu pro běh VI (Run Time Menu) polymorfního VI (Polymorphic VI) šablony pro VI (VI Template) šablony pro globální proměnnou (Global Variable Template) šablony pro prvek čelního panelu (Control Template)
2-28
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 12.: Dialogové okno pro vytvoření nového objektu
Open ...
otevření virtuálního přístroje nahráním z disku nebo diskety (otevře se jeho okno čelního panelu)
Close
uzavření virtuálního přístroje (je-li tato položka použita v okně čelního panelu, uzavírají se obě okna, při použití v okně blokového diagramu se uzavírá pouze toto okno)
Close All
uzavření všech aktuálně otevřených VI a pomocných oken
Save...
uložení virtuálního přístroje z aktivního okna na disk do stejného souboru, ze kterého byl nahrán (původní soubor je tedy novým nahráním přemazán novým stavem). Nebyl-li VI dosud nahráván, je uživatel nejprve dotázán prostřednictvím dialogového okna na umístění a pojmenování souboru)
© Doc. Ing. Jan Žídek, CSc.
2-29
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Save As...
uložení virtuálního přístroje z aktivního okna do souboru s možností jinak jej pojmenovat (je tedy zachován jak původní soubor, z něhož byl VI nahrán, tak jeho nová podoba v jinak pojmenovaném souboru). Práce na VI pokračuje s vazbou na nově uložený soubor (aktivní okno dostane v záhlaví nové pojmenování)
Save A Copy As... uložení kopie virtuálního přístroje z aktivního okna do souboru s možností jinak jej pojmenovat (je tedy zachován jak původní soubor, z něhož byl VI nahrán, tak jeho nová podoba v jinak pojmenovaném souboru). Práce na VI pokračuje s vazbou na původní soubor (aktivní okno zůstane v záhlaví pojmenováno stejně) Save With Options ... uložení virtuálního přístroje z aktivního okna s možností zvolit některou ze speciálních voleb pro ukládání (na nové místo, uložit se všemi souvisejícími subVI, uložit pro vytváření EXE tvaru) Revert ...
návrat ke stavu virtuálního přístroje, který byl po posledním nahrání z disku nebo diskety nebo po posledním ukládání na disk nebo disketu (požití v případě, že jsem si rozmyslel editace, které byly provedeny a chci je zrušit. Vzhledem k tomu, že v LabVIEW chybí zrušení poslední editační akce příkazem Undo je možno doporučit co nejčastěji ukládat svou práci na disk příkazem Save (Ctrl S), což umožní s využitím příkazu Revert vracet se vždy o relativně krátký úsek editačních činností zpět)
Page Setup... nastavení hlavičky a okrajů tiskových výstupů, nastavení voleb pro tiskárnu Print ... vytisknutí dokumentace k vytvářenému virtuálnímu přístroji - uživatel zde má možnost volby, které součásti virtuálního přístroje budou tištěny (ikona, konektor, popis panely, podřízené subVI, úprava podle velikosti stránky, tisk hlavičky atp.). Tisk je možno nasměrovat na tiskárnu, do html nebo rtf souboru Print Window... vytisknutí aktivního okna s volbami VI properties nastavení voleb pro běh virtuálního přístroje Recently Opened Files seznam naposledy otevřených VI pro rychlý výběr k otevření Exit
ukončení vývojového prostředí, nejsou-li uloženy všechny změny, je uživatel upozorněn
© Doc. Ing. Jan Žídek, CSc.
2-30
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Edit
skupina editačních příkazů
Undo
zrušení poslední editační akce
Redo
obnovení poslední editační akce zrušené příkazem Undo
Cut
přemístění označených objektů čelního panelu nebo blokového diagramu do schránky. Z panelu, na němž byly objekty označeny touto operací tedy zmizí.
Copy
překopírování označených objektů čelního panelu nebo blokového diagramu do schránky. Na panelu, na němž byly objekty označeny po této operací tedy zůstávají.
Paste
překopírování obsahu schránky do aktivního panelu. Obsah schránky zůstává zachován.
Clear
vymazání označených objektů čelního panelu nebo blokového diagramu
Find…
otvírá okno pro zadání hledného textu či objektu v rámci celého projektu
Show Search Results otvírá okno s výsledky hledání Customize Control… otvírá okno editoru prvků čelního panelu pro označený prvek čelního panelu
Scale Object With Panel zapíná spojení škálování označeného prvku čelního panelu se změnou velikosti čelního panelu Set Tabbing Order… umožňuje změnu pořadí prvku na panelu pro přepínání aktivity pomocí klávesy tabelátoru (default je toto pořadí shodné s pořadím vytvoření prvků na panelu) Import Picture from File… možnost importu obrázku ze souboru (např. v BMP formátu). Po importu je obrázek umístěn v zápisníku a odtud je možné jej pomocí Paste vložit do čelního panelu. © Doc. Ing. Jan Žídek, CSc.
2-31
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Remove Broken Wires… odstranění neplatných datových spojů z blokového diagramu. Velmi důležité! V blokovém diagramu mohou totiž být pozůstatky datových cest pouhým okem nepostřehnutelné, ale systémem evidované a způsobující mu problémy s překladem. Tato operace by měla být jako první použita v situaci, kdy vývojové prostředí označuje VI jako nespustitelný (přerušený nástroj pro spouštění VI) Create SubVI je-li v blokovém diagramu vybrána určitá oblast, je možné touto volbou vytvořit automaticky z daného výběru samostatný subVI Run-Time Menu… umožňuje vytvářet či editovat roletová menu pro běh daného virtuálního přístroje
Operate
skupina příkazů pro spouštění a zastavování běhu virtuálního přístroje a práce s přednastavenými hodnotami objektů
Run
spuštění běhu virtuálního přístroje
Stop
zastavení běhu virtuálního přístroje
Suspend when Called pozastavení běhu aplikace, je-li daný VI volán Print at Completion aktivace tisku čelního panelu po dokončení běhu virtuálního přístroje Log at Completion aktivace uložení stavu čelního panelu do databázového souboru po dokončení běhu virtuálního přístroje Data Logging ... Log ... uložení stavu čelního panelu do databázového souboru Retrieve ... prohlídka databázového souboru s uloženými stavy čelního panelu
© Doc. Ing. Jan Žídek, CSc.
2-32
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Purge Data ... vymazání obsahu databázového souboru Change Log File Binding ... změna nasměrování ukládání dat do databázového souboru Clear Log File Binding přerušení nasměrování ukládání dat do databázového souboru Make Current Values Default označení všech aktuálních hodnot objektů čelního panelu jako hodnot přednastavených - těchto hodnot budou objekty nabývat po otevření virtuálního přístroje Reinitialize All to Default změna všech hodnot objektů čelního panelu na hodnoty přednastavené Change To xxx Mode přepnutí do druhého ze dvou módů, v nichž může vývojové prostředí LabVIEW pracovat (editační mód a mód běhu aplikace) Connect to remote Panel možnost připojení k VI běžícímu na vzdáleném počítači
Tools
skupina příkazů pro práci s pomocnými nástroji Measurement&Automation Explorer... spuštění Measurement a Automation Exploreru – prostředku pro prohlídku instalovaného hardwaru a jeho konfiguraci Instrumentation prostředky pro práci s ovladači pro měřicí přístroje Instrument Driver Network... připojení na www stránky s ovladači pro měřicí přístroje Import CVI Instrument Driver... import ovladače vytvořeného v CVI Update VXIplug&play Drivers… update přístrojových ovladačů
© Doc. Ing. Jan Žídek, CSc.
2-33
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Data Acquisition prostředky pro správu zásuvných měřicích karet DAQ Channel Viewer prostředek pro pojmenovávání kanálů, jejich přiřazení skutečným kanálům karet a přiřazování měřítek pro přepočet měřených veličin DAQ Solution Wizard automatická tvorba DAQ aplikací pro standardní situace (měření z převodníků, vytváření hotových virtuálních přístrojů jako je osciloskop, DMM, apod. Compare prostředek pro porovnávání VI (např. při hledání změn) Compare VIs… porovná dva virtuální přístroje Show Differences ukáže nalezené rozdíly Compare VI Hierarchies… porovná celé hierarchie virtuálních přístrojů Source Code Control prostředek synchronizace práce na velkých projektech zabraňující, aby dva lidé dělali současně změny na témže VI
VI Revision History otevře okno s historii změn daného virtuálního přístroje User Name…
možnost zadat jméno uživatele vytvářejícího virtuální přístroj, které se může lišit od uživatele, který vlastní licenci pro vývojové prostředí (např. pro tisk do hlaviček dokumentace)
Build Application Or Shared Library (DLL)… při nainstalované části Application Builder spuštění procesu překladu zdrojové podoby aplikace do podoby spustitelné aplikace, Run Time verze LabVIEW a sady instalačních disket pro danou aplikaci a Run Time modul © Doc. Ing. Jan Žídek, CSc.
2-34
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
VI Library Manager… prostředek pro správu knihovních souborů – umožňuje akce typu kopírování, přejmenovávání, mazání až na úroveň jednotlivých VI v knihovních souborech
Edit VI Library… možnost editace knihovních *.llb souborů (vypouštění jednotlivých VI, skrytí jednotlivých VI, označení nejvyššího VI v rámci hierarchie ...) Web Publishing Tool… prostředek pro publikování VI na www stránkách… Advanced rozvinuté prostředky pro správu kódu Mass Compile spuštění překladu, který propojí VI v rámci knihovního souboru s knihovními funkcemi systému a podřizenými subVI VI Metrics výpočet složitosti VI – počet funkcí, vodičů … Profile VIs spuštění profileru – prostředku pro zachycení času potřebného k vykonání jednotlivých částí aplikace Edit Error Codes spuštění editoru chybových kódů a jím příslušejících vysvětlujících textů
Options ... nastavení některých voleb pro vývojové prostředí pro jeho přizpůsobení potřebám uživatele
Browse skupina příkazů pro zviditelnění některých pomocných prostředků
© Doc. Ing. Jan Žídek, CSc.
2-35
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Show VI hierarchy ukáže okno s celou hierarchii právě otevřeného projektu This VI Callers ukáže okno se všemi VI, které volají aktuální VI This VI subVIs ukáže okno se všemi VI, které volá aktuální VI Unopened subVIs ukáže okno se všemi VI, které jsou součásti projektu, ale nejsou otevřeny Unopened Type Defs ukáže okno se všemi definicemi datového typu, které jsou součásti projektu, ale nejsou otevřeny Breakpoints ukáže okno pro prohlídku nasazených bodů přerušení
Window
skupina příkazů pro práci s okny
Show Diagram ukáže okno blokového diagramu Show Controls Pallette zobrazení paletového menu s objekty pro čelní panel Show Functions Palette zobrazení paletového menu s funkcemi pro blokový diagram Show Tools Palette zobrazení paletového menu s nástroji Show Clipboard zobrazení obsahu schránky Shov Error List zobrazení okna s popisem chybových hlášení
© Doc. Ing. Jan Žídek, CSc.
2-36
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Tile Left And Right přemísti a uprav velikost okna čelního panelu a blokového diagramu tak, aby pokryly celý displej s rozdělením napůl (dlaždice vpravo a vlevo) Tile Up And Down přemísti a uprav velikost okna čelního panelu a blokového diagramu tak, aby pokryly celý displej s rozdělením napůl (dlaždice nahoře a dole) Full Size
roztáhni aktivní okno přes celou obrazovku
skupina příkazů pro práci s nápovědou
Help
Show Context Help zobrazení okna nápovědy - v okně je zobrazena vždy nápověda k objektu, na který ukáže uživatel kurzorem a vybere jej - velmi užitečné okno zejména ve fázi definování signálových cest, kdy je v okně vidět konektor funkce s popisem pinů a pin, na němž je zrovna kurzor je zvýrazněn Lock Context Help uzavření okna nápovědy ve smyslu, že v něm zůstane momentální obsah i když uživatel vybere jiný objekt v okně blokového diagramu VI, Functions & How To Help … otevře klasickou hypertextovou nápovědu vývojového prostředí LabVIEW Search the LabVIEW Bookshelf… otevření kompletních manuálů k LabVIEW v pdf formátu (musí být nainstalovány) Help for This VI zobrazení nápovědy pro aktuální VI, byla-li vytvořena Find Examples… vyhledání příkladu v sadě, která je součástí instalace LabVIEW Web Resources linky na informace přes Internet Explain Error vysvětlí podrobnosti o chybě podle zadaného kódu chyby © Doc. Ing. Jan Žídek, CSc.
2-37
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
IMAQ Vision… v případě, že je nainstalována tato rozšiřující knihovna, nápověda k ní NI-IMAQ VIs… v případě, že je nainstalována tato rozšiřující knihovna, nápověda k ní
About LabVIEW zobrazení verze vývojového prostředí, se kterou uživatel pracuje, zároveň je zobrazena informace paměti systému
2.3.2. Paletové menu s objekty čelního panelu Lze vyvolat pravým tlačítkem myši kdekoli v okně čelního panelu nebo přes položku menu Windows – Show Controls Palette.
Obr. 13.: Paletová nabídka prvků čelního panelu
Controls
knihovna objektů umístitelných na čelní panel virtuálního přístroje
Numeric
prvky pro zadávání a zobrazení číselných hodnot různého tvaru
Boolean
prvky pro zadávání a zobrazení logických hodnot různého tvaru
String & Path prvky pro zadávání a zobrazení textových řetězců a cest k souborům Array & Cluster
prvky pro zadávání a zobrazování datových struktur typu pole (datová struktura sdružující prvky stejného datového typu) a cluster (datová struktura sdružující prvky různého datového typu) List & Table prvky pro výběr z množiny možností, zadávání a zobrazení tabulek
© Doc. Ing. Jan Žídek, CSc.
2-38
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Graph
prvky pro zobrazení grafů (registračních, statických, dvourozměrných, trojrozměrných)
Ring & Enum I/O Refnum
prvky pro zadávání a zobrazování cest k ovládačům souborů, síťových spojení a zařízení
Dialog Controls prvky pro vytváření dialogových oken Classic Controls ActiveX
objekty pro Active X technologii
Decorations
dekorační prvky umístitelné na čelní panel (nejsou s nimi spojené koncové bloky (terminals) v okně blokového diagramu
Select a Control… možnost výběru z prvků umístěných mimo knihovnu a vytvořených uživatelem vývojového prostředí User Controls
do této položky lze zařazovat uživatelem vytvořené objekty nebo další objekty, které jsou součástí tzv. additional toolkits (rozšíření vývojového prostředí)
2.3.3. Položky menu pro práci s textem
V liště nástrojů v řádku pod roletovým menu je informace o navolených vlastnostech textu. Po kliknutí na tomto místě se rozvine následující nabídka:
Font Dialog...
dialogové okno pro zadání vlastnosti textu
Application Font
možnost vybrat si pro označený text jeden ze čtyř přednastavených fontů
System Font
možnost vybrat si pro označený text jeden ze čtyř přednastavených fontů
Dialog Font
možnost vybrat si pro označený text jeden ze čtyř přednastavených fontů
Current Font
možnost vybrat si pro označený text jeden ze čtyř přednastavených fontů
Size
možnost zvolit pro označený text jeho velikost
Style
možnost zvolit pro označený text tvar písma (normální, tučné, kurzíva, podtržené ...)
Justify
možnost zvolit pro označený text způsob zarovnávání
Color
možnost zvolit pro označený text barvu z palety barev
Následuje seznam fontů, které jsou momentálně v systému k dispozici.
© Doc. Ing. Jan Žídek, CSc.
2-39
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
2.3.4. Nástroje pro zarovnávání a volbu rozestupů
Tyto nástroje najdeme na liště v okně čelního panelu i blokového diagramu. Umožňují volit zarovnání (Alignment) a rozestup vybraných prvků (Distribution).
Align Objects...
volba způsobu zarovnání označených objektů čelního panelu nebo bloků v blokovém diagramu - tato volba zůstává v platnosti do změny provedené toutéž volbou, zároveň s volbou typu zarovnání je zarovnání provedeno
Ctrl A
výkonný povel k zarovnání označených objektů čelního panelu nebo označených bloků blokového diagramu. Typ zarovnání je podle nastavení volbou popsanou v předchozím odstavci
Distribute Objects... volba rozestupu označených objektů čelního panelu nebo bloků v blokovém diagramu - tato volba zůstává v platnosti do změny provedené toutéž volbou, zároveň s volbou rozestupu je úprava rozestupu provedena Ctrl D
výkonný povel k úpravě rozestupů označených objektů čelního panelu nebo označených bloků blokového diagramu. Typ úpravy rozestupu je podle nastavení volbou popsanou v předchozím odstavci
Reorder
volba pořadí překrývajících se vrstev
Group
seskupí vybrané objekty
Ungroup
zruší seskupení objektů
Lock
zamkne pozici objektu (nelze ji měnit)
Unlock
povolí změnu pozice objektu
Move Forward přesune označený objekt ve skupině překrývajících se objektů o jednu vrstvu směrem dopředu Move Backward přesune označený objekt ve skupině překrývajících se objektů o jednu vrstvu směrem dozadu Move To Front přesune označený objekt ve skupině překrývajících se objektů zcela dopředu - bude tedy tvořit nejhořejší vrstvu Move To Back přesune označený objekt ve skupině překrývajících se objektů zcela dozadu - bude tedy tvořit nejspodnější vrstvu
2.4. NÁSTROJE PRO PRÁCI VE VÝVOJOVÉM PROSTŘEDÍ LABVIEW
© Doc. Ing. Jan Žídek, CSc.
2-40
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Pod řádkem s roletovým menu je v každém okně vývojového prostředí lišta s ikonami, představujícími nástroje pro práci v rámci vývojového prostředí LabVIEW. Sada nástrojů se liší podle toho, zda se jedná o okno čelního panelu, nebo o okno blokového diagramu a podle toho, zde je systém v editačním módu, nebo v módu běhu aplikace. Mód editační je určen pro vytváření virtuálních přístrojů - úpravu čelního panelu a blokového diagramu, mód běhu aplikace je určen pro provozování vytvořeného virtuálního přístroje s možnostmi používat i ladicí prostředky. Další možnost výběru nástrojů je paletové menu, které je možno zobrazit přes položku menu Windows / Show Tools Palette. S nástroji se pracuje tak, že k jejich výběru se ukáže kurzorem na vybraný z nich a kliknutím na levé tlačítko myši se nástroj vybere - od této chvíle je nástroj vybrán a kurzor myši má jeho podobu. Rychlejším způsobem přepínání mezi nástroji je použití tabelátoru na klávesnici.
Obr. 14.: Paletová nabídka nástrojů
V této paletové nabídce jsou po řádcích následující nástroje:
• Ovládač •
• • • •
tímto nástrojem se ovládají prvky čelního panelu. Lze jím zapisovat do okének (s plnými editačními možnostmi), otáčet knoflíky, posouvat jezdci přepínačů, přeškálovávat osy grafů apod Výběr, změna pozice tímto nástrojem lze vybrat jeden nebo více prvků čelního panelu (pro výběr více prvků je možno přidržet klávesu shift, nebo označit obdélník s přidržením levého tlačítka myši). Dále lze tímto nástrojem prvky zvětšovat či zmenšovat a např. otáčet stupnicí u knoflíků – pro tyto akce je nutno najít odpovídající místo prvku. Popisovač tímto nástrojem lze upravovat jakékoliv texty na čelním panelu (zápis do okének, přeškálování stupnic apod.) Propojovač tímto nástrojem se definují signálové cesty v blokovém diagramu a propojují se prvky čelního panelu s odpovídajícími piny konektoru. Rozvinutí roletové nabídky prvku tímto nástrojem lze rozvinout roletovou nabídku prvku, na který se s ním ukáže Nástroj změny výřezu grafického rozhraní k uživateli použití tohoto nástroje je v podstatě ekvivalentní použití rolovacích lišt.
• Nasazování bodu přerušení ladící prostředek umožňující pozastavení běhu aplikace v okamžiku, kdy do místa s nasazeným bodem přerušení dojde signál • Nasazování sond © Doc. Ing. Jan Žídek, CSc.
2-41
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
možnost nasazení sondy – další ladící prostředek, který vizualizuje hodnotu signálu v místě nasazení sondy • Nastavení barvy podle objektu, na který se ukáže možnost odebrat barvu z grafického rozhraní – usnadňuje nastavení poměru tří barevných složek v případě, že již požadovaná barva byla na grafickém rozhraní použita • Nastavení barvy pro vybarvování objektů čelního panelu při stisku pravého tlačítka myši možnost vybírat barvu z barevné palety (možnost nastavit separátně barvu pro popředí a pro pozadí) a následně pomocí levého tlačítka měnit barevného provedení libovolné části čelního panelu či blokového diagram.
© Doc. Ing. Jan Žídek, CSc.
2-42
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
3. CESTY VEDOUCÍ K SNADNÉMU ZVLÁDNUTÍ VÝVOJOVÉHO PROSTŘEDÍ LABVIEW Vývojové prostředí LabVIEW implicitně obsahuje několik nástrojů usnadňujících jeho zvládnutí. Tyto nástroje slouží jak pro pochopení základů vývojového prostředí, tak pro vyhledání detailů. Prvním nástrojem, který je implementován do vývojového prostředí, je Tutoriál. 3.1. TUTORIÁL Je vytvořen jako multimediální aplikace ukazující základní filozofii vývojového prostředí tou nejnázornější formou. Uživatel si může postupovat svým tempem a volit cestu, která mu nejlépe vyhovuje. Tutoriál lze spouštět z uvítacího dialogu – detailní zobrazení. Tutoriál lze také spustit z roletového menu Help/Vi, Function, & How to Help/ Tutorial. Po jeho spuštění se objeví okno, ve kterém uživatel může procházet krok za krokem multimediální aplikaci ukazující základy LabVIEW:
Obr. 15.: Vývoj měřicí techniky v čase z hlediska narůstající flexibility
Uživatel může postupovat prezentací vpřed, vracet se nebo si vybírat libovolné téma. Po prohlédnutí tutoriálu si uživatel může vybrat další z pomocných nástrojů. Nejlepší je pro začátek postoupit k příručce Getting Started with LabVIEW - gtstrtlv v pdf formátu.
3.2. DOKUMENTACE V ELEKTRONICKÉ PODOBĚ Uživatel má k dispozici několik velmi rozsáhlých příruček v elektronické podobě, ve kterých může hledat pomoc. Přístup k těmto příručkám je přes roletové menu Help/Search the LabVIEW Bookshelf. Tyto manuály se standardně nainstalují na pevný disk do podadresáře … LabVIEW/Manuals. Po této volbě se otevře následující okno Acrobat Readeru:
© Doc. Ing. Jan Žídek, CSc.
3-43
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 16.: Okno Acrobat Readeru pro procházení manuálů v elektronické podobě.
Z tohoto okna lze vstoupit do oblasti manuálů. Po volbě LabVIEW si lze vybrat z několika manuálů: Getting Started with LabVIEW
- příručka pro začátečníky
LabVIEW 6.1 Release Notes
- nové možnosti verze 6.1
LabVIEW 6.1 Upgrade
- způsob upgrade z předchozí verze
LabVIEW User Manual
- základní uživatelská příručka
LabVIEWMeasurementsManual
- příručka tvorby aplikací sběru dat a ovládání přístrojů
LabVIEW Development Guidelines
- základní příručka jak tvořit, užívat a kontrolovat VI
Getting Started with Point-By-Point VIs
- příručka real time sběru dat point-by point
Using External Code in LabVIEW Manual
- příručka pro propojení s textově orientovaným programováním
VXI VI Reference Manual
- referenční manuál pro VXI systémy
LabVIEW Application Builder Release Notes
- příručka pro instalaci Application Builder
LabVIEW Online Reference
- základní nápověda LabVIEW
© Doc. Ing. Jan Žídek, CSc.
3-44
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Kteroukoliv z výše uvedených příruček lze zvolit kliknutím na její název. Po té se ukáže její plná elektronická podoba, ve které lze velmi rychle dospět na žádané místo. Rozsah této dokumentace je ohromný – řádově stovky až tisíce stran. Základní a úvodní informace obsahuje první z nich Getting Started with LabVIEW, která obsahuje cca 47 stran a vysvětluje základní pojmy a filozofii vývojového prostředí.
Obr. 17.: Okno Acrobat Readeru pro výběr manuálu.
3.3. INTERAKTIVNÍ KURZ LABVIEW Od verze 5.0 obsahuje nápověda systému LabVIEW i interaktivní kurz pro zvládnutí tohoto vývojového prostředí. Uživatel se k němu dostane přes roletové menu Help/Vi, Function, & How to Help/Tutorial/Learn LabVIEW with Activities. Uživateli se ukáže série aktivit, které tvoří ucelený interaktivní kurz umožňující mu vlastními silami toto vývojové prostředí zvládnout.
© Doc. Ing. Jan Žídek, CSc.
3-45
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Každá z aktivit obsahuje zadání úkolu, dále pak krok za krokem jeho řešení s ukázkou všech podstatných mezifází. Projitím těmito aktivitami by měl uživatel zvládnout základní dovednosti a pochopit základní zákonitosti grafického programování. Dále si uživatel osvojí základní metody digitálního zpracování signálu. Uživatel může postupovat podle předpisu krok za krokem ve vlastním vývojovém prostředí a své výsledky srovnávat s referenčním řešením v aktivitách. Po úspěšném projití danou aktivitou je nabídnuta automaticky aktivita následující, přičemž jejich řazení odpovídá metodice nejefektivnějšího zvládnutí prostředí LabVIEW a grafického programování.
Obr. 18.: Vstup do interaktivného kurzu LabVIEW
3.4. PŘÍKLADY OBSAHUJÍCÍ ŘEŠENÍ STANDARDNÍCH SITUACÍ Vývojové prostředí LabVIEW v sobě implicitně obsahuje knihovnu s desítkami příkladů hotových VI, které řeší standardní situace. Na základě těchto příkladů může uživatel budovat svá řešení. K žádanému příkladu se uživatel dostane pomocí roletového menu Help/Find Examples. Uživateli se ukáže strukturovaný seznam řešených příkladů, ve kterém si lze vybrat ten, který odpovídá činnosti, kterou má uživatel řešit. © Doc. Ing. Jan Žídek, CSc.
3-46
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 19.: Základní úroveň výběru řešených příkladů
Postupem tímto strukturovaným seznamem se zpřesňuje požadavek uživatele. Na konci výběru je vybraný příklad otevřen a uživatel může prozkoumat jeho strukturu, nebo jej přímo využít jako základ svého virtuálního přístroje.
Obr. 20.: Strukturovaný seznam řešených příkladů v LabVIEW
© Doc. Ing. Jan Žídek, CSc.
3-47
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
3.5. STANDARDNÍ NÁPOVĚDA Kromě popsaných prostředků obsahuje vývojové prostředí i standardní nápovědu s možnostmi jako rejstřík, prohledávání – standard prostředí Windows. Vstup do této nápovědy je přes roletové menu Help/Vi, Function, & How to Help. Ve virtuálním přístroji si lze zapnout ještě pomocné okno nápovědy pomocí menu Help/Show Context Help. Obsah tohoto okna potom znázorňuje nápovědu k objektu, na který ukáže uživatel kurzorem. Tato možnost funguje jak v okně čelního panelu, tak i v okně blokového diagramu.
Obr. 21.: Pomocné okno interaktivní nápovědy.
3.6. GENERÁTORY STANDARDNÍCH ŘEŠENÍ Velmi rychle lze ve vývojovém prostředí dospět k řešení standardních situací pomocí automatických generátorů (wizardů). Např. Dvoukanálový osciloskop v jeho virtuální podobě lze vytvořit pomocí roletového menu Tools/Data Acquisition/DAQ Solution Wizard. Je to hotová aplikace, která podle odpovědí uživatele v jednotlivých dialogových oknech vygeneruje hotové řešení včetně blokového diagramu, které může uživatel buď přímo použít nebo modifikovat podle svých potřeb. Při generování hotového řešení lze v rámci dialogových oken zvolit, které konkrétní kanály z měřicích karet mají být použity.
Obr. 22.: Dialogové okno generátoru hotových řešení
© Doc. Ing. Jan Žídek, CSc.
3-48
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Výsledná aplikace je vybavena profesionálně provedeným čelním panelem i efektivně řešeným blokovým diagramem. Následuje ukázka automaticky vygenerovaného dvoukanálového osciloskopu.
Obr. 23.: Čelní panel vygenerovaného osciloskopu.
Obr. 24.: Část blokového diagramu automaticky vygenerovaného osciloskopu
© Doc. Ing. Jan Žídek, CSc.
3-49
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
4. LADICÍ PROSTŘEDKY Chyby vzniklé v procesu vytváření aplikace (virtuálního přístroje) lze rozdělit na dva typy: Chyby syntaktické brání spuštění virtuálního přístroje, protože nebyla dodržena správná syntaxe blokového diagramu nebo je někde konflikt datových typů. Tyto chyby se hledají poměrně snadno pomocí seznamu chyb, ve kterém lze nalézt i popis možných příčin těchto chyb. Chyby faktické
se odstraňují a hledají hůře. Po formální stránce je algoritmus v pořádku – nic nebrání spouštění virtuálního přístroje, ale výpočty nejsou korektní. Pro hledání těchto chyb obsahuje LabVIEW sadu ladicích nástrojů.
Při výskytu syntaktické chyby v blokovém diagramu nemůže být VI přeložen ani spuštěn. Nástroj spuštění aplikace je přerušen - naznačuje to výskyt syntaktické chyby v algoritmu. Prvním pokusem o odstranění chyb: Remove Broken Wires z Edit menu (Ctrl B) lze odstranit např. signálové cesty, které zůstaly v blokovém diagramu po editačních zásazích a mohou mít délku jednoho pixelu, takže jsou vizuálně nepostřehnutelné. Nepomůže-li, kliknout na nástroj spuštění aplikace - vyvolá se Error List okno - lze vyvolat i pomocí Show Error List z menu Windows. Ukázat na výpis chyby a tlačítkem Show Error se dostanu do místa blokového diagramu, v němž jsou problémy.
Obr. 25.: Okno seznamu syntaktických chyb
Aplikace v systému LabVIEW běží podle filosofie Data Flow. Blokový diagram vytvořený v okně blokového diagramu není prováděn zleva doprava a zhora dolů, nýbrž podle jediného pravidla: Blok v blokovém diagramu spouští svou činnost v okamžiku, kdy má na všech svých vstupech k dispozici platná data a po doběhnutí poskytuje současně na všech svých výstupech výsledky. Výhoda: jednoduše realizovatelná paralelnost běhu částí aplikace. Nevýhoda: sekvenčnost provádění aplikace je nutno hlídat nebo i uměle zavádět. Vzhledem k popsané filozofii běhu aplikace je pro hledání faktických chyb nutno použít speciálních ladicích nástrojů, které jsou v prostředí integrovány. © Doc. Ing. Jan Žídek, CSc.
4-50
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Mezi ladicí prostředky v systému LabVIEW patří: •
Krokování běhu virtuálního přístroje
•
Vizualizace toku dat
•
Nasazování sond
•
Nasazování bodu přerušení
4.1. KROKOVÁNÍ BĚHU VIRTUÁLNÍHO PŘÍSTROJE Krokování běhu VI umožňuje jeho postupné provádění krok po kroku. Nástroje pro krokování jsou dostupné v okně blokového diagramu:
Obr. 26.: Nástroje pro krokování běhu VI
Při běhu virtuálního přístroje ho lze pozastavit třetím nástrojem zleva (pause) a začít krokovat Krokování znamená provedení jednoho kroku – dvě šipky vpravo od žárovky jejich význam se liší v situaci, kdy při krokování narazíme na provedení nějaké funkce (subVI): •
první šipka znamená krok do volaného subVI (step into) – v tomto případě lze krokování volaného subVI dokončit naráz stiskem třetí šipky (finish iteration),
•
druhá provedení volaného subVI jako celku (step over)
Blok, který má být proveden v následujícím kroku stiskem jedné ze šipek, je zvýrazněn blikáním Takto je možno ověřit pořadí provádění jednotlivých bloků v duchu pravidla data flow.
4.2. VIZUALIZACE TOKU DAT Umožňuje za běhu virtuálního přístroje vidět tok dat se všemi mezivýsledky. •
Zapíná se nástrojem žárovky (highlight execution) v módu běhu programu
•
Blok, který je již proveden, je zvýrazněn, bloky, které na provedení čekají, jsou zašedlé
•
Hodnoty, které blok poskytuje, jsou explicitně znázorněny v malých okénkách na odpovídajících výstupech bloku
•
Jednotlivé datové cesty signálu jsou znázorněny postupujícími kuličkami odpovídající barvy (podle datového typu)
© Doc. Ing. Jan Žídek, CSc.
4-51
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 27.: Běh VI se zapnutou vizualizací
VI lze zkompilovat i bez možnosti vizualizace a krokování - šetří se paměť a zrychlí se běh (nastavení ve VI setup).
4.3. UŽITÍ SOND Umožňuje vidět mezivýsledek ve vybraném místě blokového diagramu. Nasazení sondy je možné pomocí pravého tlačítka myši za běhu virtuálního přístroje v okamžiku, kdy kurzor ukazuje na signálovou cestu. Do vybraného místa blokového diagramu lze nasadit standardní sondu (probe) v podobě okénka s číselnou hodnotou, nebo uživatelskou sondu (custom probe) v podobě libovolného objektu čelního panelu. •
sondu lze v módu běhu programu nasadit na libovolný datový vodič, místo nasazení sondy je označeno žlutým okénkem s číslem
•
hodnota se v sondě objeví až po té, co zvoleným místem proběhne signál
•
okénko sondy lze přesouvat, zůstává stále viditelné, nedá se zmenšovat ani zvětšovat
•
v pop up menu sondy lze zadat najdi vodič (find wire)
•
v pop up menu vodiče lze zadat najdi sondu (find probe)
•
jako sondu lze vybrat i vybraný typ ovládacího prvku z knihovny controls
© Doc. Ing. Jan Žídek, CSc.
4-52
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 28.: Nasazení sondy do blokového diagramu
4.4. NASAZOVÁNÍ BODU PŘERUŠENÍ Nasazením bodu přerušení lze plnou rychlostí vykonat běh virtuálního přístroje až do místa jeho nasazení, kde je běh aplikace pozastaven. Bod přerušení se nasazuje volbou červeného terčíku z palety nástrojů (Window/Show Tools Palette) a jeho umístěním na signálovou cestu nebo programovou strukturu. Toto místo je označeno trvale oním červeným terčíkem. •
lze zajistit nástrojem v módu běhu programu
•
při běhu programu je aplikace pozastavena v tomto bodu
•
je možno funkci krokovat, spouštět plnou rychlostí, prohlížet hodnoty dat
•
po otestování je možno hodnoty, které funkce vrací do volající funkce, předat a pokračovat v provádění aplikace
Odstranění bodu přerušení je možné stejným způsobem jako jeho nasazení.
© Doc. Ing. Jan Žídek, CSc.
4-53
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 29.: Nasazování bodu přerušení
© Doc. Ing. Jan Žídek, CSc.
4-54
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
5. PRVKY ČELNÍHO PANELU Čelní panel virtuálního přístroje tvoří grafické rozhraní k uživateli. Lze na něj umístit tři druhy prvků: •
ovládací prvky
slouží pro tok informace směrem uživatele k aplikaci, jsou spojeny se zdrojovými terminály v blokovém diagramu
•
indikační prvky
slouží pro tok informace směrem od aplikace k uživateli, jsou spojeny s cílovými terminály v blokovém diagramu
•
grafické doplňky
tvoří pouze grafický doprovod, nemají vliv na blokový diagram
5.1. TYPY PRVKŮ ČELNÍHO PANELU Pro volbu typu čelního panelu si lze vyvolat paletové menu stiskem pravého tlačítka myši v ploše okna čelního panelu nebo z menu Window - Show Controls Palette.
Obr. 30.: Paletová nabídka prvků čelního panelu
Controls
knihovna prvků umístitelných na čelní panel virtuálního přístroje
Numeric
objekty pro zadávání a zobrazení číselných hodnot různého tvaru
Boolean
objekty pro zadávání a zobrazení logických hodnot různého tvaru
String & Table
objekty pro zadávání a zobrazení textových řetězců a tabulek
List & Ring
objekty pro výběr z množiny možností (přepínače)
Array & Cluster
objekty pro zadávání a zobrazování datových struktur typu pole (datová struktura sdružující prvky stejného datového typu) a cluster (datová struktura sdružující prvky různého datového typu)
© Doc. Ing. Jan Žídek, CSc.
5-55
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Graph
objekty pro zobrazení grafů (registračních, statických, dvourozměrných, trojrozměrných)
Path& RefNum
objekty pro zadávání a zobrazování cest k souborům a ovládačů souborů, síťových spojení a zařízení
Active X
objekty pro Active X technologii
Dialog
prvky pro vytváření dialogových oken
Decorations
dekorační prvky umístitelné na čelní panel (nejsou s nimi spojené koncové bloky (terminals) v okně blokového diagramu
User Controls
do této položky lze zařazovat uživatelem vytvořené objekty nebo další objekty, které jsou součástí tzv. additional toolkits (rozšíření vývojového prostředí)
Select a Control
možnost výběru z prvků umístěných mimo knihovnu a vytvořených uživatelem vývojového prostředí
Paletové menu se ukazuje na ploše při stisku pravého tlačítka myši pouze dočasně po dobu stisku tohoto tlačítka, trvale je lze na plochu umístit špendlíkem v levém horním rohu této nabídky. Po ukázání kurzorem myši na jednu položku menu se rozvine další úroveň nabídky.
5.2. VOLBA A UMÍSTĚNÍ PRVKU Ukázáním na vybraný prvek v koncové úrovni nabídky se objeví jeho obrys, kterým lze pohybovat po ploše čelního panelu. Po přemístění na žádané místo se stiskem levého tlačítka myši prvek umístí. V této chvíli je jako aktivní označeno místo s popisem prvku – label. V tuto chvíli lze z klávesnice přepsat přednastavené pojmenování prvku. Aktivita tohoto popisu mizí po přemístění prvku, ale lze ji kdykoliv obnovit volbou nástroje popisovače a kliknutím do místa popisu. U vybraného a umístěného prvku lze dělat následující editační operace: • •
• • • • • •
nástrojem výběru a změny polohy lze prvek vybrat – aktivita vybraného prvku je vyznačena orámováním přerušovanou čarou vybraným prvkem lze pohybovat o myší – po stisku levého tlačítka myši o kurzorovými klávesami – o jeden pixel na každý stisk, přidržením klávesu shift o pět pixelů na každý stisk vybrat více prvků naráz lze dvojím způsobem o postupně s přidržením klávesy shift klikáním levým tlačítkem myši o vymezením pravoúhlé oblasti přidržením levého tlačítka myši rozsunout hlavní část prvku a popis prvku prvotním označením popisu a jeho pohybem změnit velikost prvku v místě, kde se kurzor myši mění v dvojitý růžek přidržením levého tlačítka myši zkopírovat vybraný prvek do zápisníku Ctrl C vložit prvek ze zápisníku Ctrl V – nesmí být v tuto chvíli označen jiný prvek, protože by byl nahrazen prvkem ze zápisníku klonovat prvek – v efektivně vytvořit jeho dvojníka označením prvku a jeho posunutím se stisknutým Ctrl
© Doc. Ing. Jan Žídek, CSc.
5-56
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
5.3. ROLETOVÉ MENU PRVKU Každý prvek čelního panelu je vybaven svým roletovým menu, ze kterého lze volit některé jeho vlastnosti. Tato nabídka je individuální podle typu prvku, ale některé části jsou obecně platné pro všechny typy prvku. Roletovou nabídku lze vyvolat přes pravé tlačítko myši v okamžiku, kdy je kurzor myši umístěn na prvku. Na následujícím obrázku je ukázka roletového menu prvku Numeric. V první sekci této nabídky jsou následující volby: Change to …
změna módu prvku z indikačního na ovládací a naopak
Synchronous Display
při nezatrhnutí se minimalizuje čas strávený systémem při aktualizaci obsahu prvku na čelním panelu, tato aktualizace je nesynchronní se změnou obsahu prvku, ale šetří čas systému pro vlastní výpočet, platí jen pro vícevláknové (multithreaded systems) systémy
Find …
najdi terminál k danému prvku – není-li zřejmé, kde je v blokovém diagramu umístěn terminál k danému prvku, je-li k danému prvku vytvořen uzel vlastností nebo lokální proměnná, lze v této položce vyhledat jejich výskyt v blokovém diagramu
Show …
ukaž neb skryj jednotlivé části prvku
Data Operation …
operace s daty (kopíruj, vlož, popis prvku)
Create
vytvoř uzel vlastností nebo lokální proměnnou k prvku
Key Navigation
přiřaď kombinaci kláves pro aktivaci prvku (pro systémy bez myši)
Replace
nahraď tento prvek jiným z nabídky
Obr. 31.: Roletové menu prvku typu Numeric
Ve druhé sekci jsou u prvku Numeric následující položky: Representation
reprezentace proměnné v paměti
Data Range
volba rozsahu hodnot
© Doc. Ing. Jan Žídek, CSc.
5-57
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Format & Precision
volba formátu a přesnosti prvku
5.4. ZOBRAZITELNÉ ČÁSTI PRVKU ČELNÍHO PANELU Tato položka (Visible Items v roletovém menu) je individuální pro různé prvky. Pro prvek Numeric jsou v ní uvedeny následující položky: Label
pojmenování prvku textovým řetězcem. Toto pojmenování přebírá i lokální proměnná, pokud je k prvku vytvořena
Caption
pojmenování prvku textovým řetězcem – není svázáno s lokální proměnnou a tudíž neovlivňuje blokový diagram. Dá se tedy snadno použít pro programovou změnu přes uzel vlastností – takto se dá zajistit jednoduché přizpůsobení pojmenování prvků na čelním panelu zvolenému jazyku, aniž se naruší blokový diagram
Unit Label
přiřazení fyzikální jednotky prvku
Radix
zviditelnění a změna základu číselné soustavy – funguje jen u celých čísel a LabVIEW podporuje binární, oktálovou , decimální a hexadecimální soustavu. Volba číselné soustavy se provádí nástrojem ovladače na jejím označení v prvku.
Tyto položky jsou obecně platné pro všechny prvky čelního panelu, jiné prvky mají tuto sekci rozšířenu o další položky – nejvíce částí mají indikátory grafu. Zatržením položky je tato část prvku viditelná, zrušením zatržení je neviditelná.
5.5. REPREZENTACE PROMĚNNÉ V PAMĚTI POČÍTAČE Přes položku menu Representation v roletovém menu lze zvolit způsob reprezentace proměnné v paměti počítače. V prvním řádku paletového menu jsou volby pro reprezentaci čísel s desetinnou částí (v paměti se ukládá jako mantisa a exponent, každá část se znaménkovým bitem): SGL
zabírá v paměti 4 byty, zobrazí čísla od –3,4E38 do +3,4E38 s krokem 1,5E-45
DBL
zabírá v paměti 8 bytů, zobrazí čísla od –1,7E308 do +1,7E308 s krokem 5E-345
EXT
zabírá v paměti 10 bytů, zobrazí čísla od –1,1E4932 do +1,1E4932 s krokem 1,9E-4951
Ve druhém řádku jsou reprezentace celých čísel kladných i záporných, číslice In označuje počet bitů. Rozsah čísel, které lze v dané reprezentaci zobrazit, je od – 2 na n-1 do + 2 na n-1. Ve třetím řádku jsou reprezentace celých čísel pouze kladných, číslice Un označuje počet bitů. Rozsah čísel, které lze v dané reprezentaci zobrazit, je od 0 do + 2 na n.
© Doc. Ing. Jan Žídek, CSc.
5-58
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
V posledním řádku je reprezentace pro komplexní čísla, u nichž reálná i imaginární část má reprezentaci jako u první řádky.
Obr. 32.: Reprezentace proměnné v paměti počítače
5.6. VOLBA ROZSAHU HODNOT Aby se koncovému uživateli zamezilo v možnosti vložit nedovolenou hodnotu, lze u každého prvku omezit rozsah čísla, které lze do prvku vložit. Uživatel zde může zadat minimální, maximální a přednastavenou (default) hodnotu a přírůstek. Označení Inf označuje maximální číslo zobrazitelné v dané reprezentaci, označení –Inf minimální číslo zobrazitelné v dané reprezentaci. Dále může zadat akci při překročení dovoleného rozsahu hodnot: Ignore
hodnota mimo interval je ignorována
Coerce
hodnota je zaokrouhlena vzhledem k dovolenému intervalu Pro přírůstek (Increment) lze navíc zvolit zaokrouhlení nahoru, dolů a k nejbližšímu dovolenému číslu
© Doc. Ing. Jan Žídek, CSc.
5-59
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 33.: Omezení dovoleného rozsahu vkládaných čísel
5.7. VOLBA FORMÁTU A PŘESNOSTI
Zde může uživatel zadat formát zobrazení čísla a požadovanou přesnost. LabVIEW podporuje následující formáty: Numeric
obvyklé číslo
Time and date
přepočet na čas (dny-hodiny-minuty-sekundy)
Z hlediska přesnosti lze zadat počet desetinných míst. Z hlediska tvaru zobrazení jsou podporovány následující tvary: Floating Point Notation
číslo s desetinnou části
Scientific Notation
exponenciální tvar čísla
Egineering Notation
exponenciální tvar čísla, exponent násobkem tří
SI Notation
tvar SI
Relative Time
tvar časového údaje
5.8. PRÁCE S FYZIKÁLNÍMI JEDNOTKAMI
© Doc. Ing. Jan Žídek, CSc.
5-60
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
LabVIEW podporuje možnost přiřadit k číslu fyzikální jednotku. Systém provádí automatický přepočet jednotek a kontroluje konzistenci výrazu vzhledem k fyzikálním jednotkám. Fyzikální jednotka se volí nabídkou Visible Items/Unit Label z roletového menu a do zobrazeného místa lze vypsat zkratku zvolené jednotky. Přes pravé tlačítko myši lze na tomto místě vyvolat dialogové okno kompatibilních jednotek, ze kterého si lze vybrat z nadefinovaných jednotek, nebo si nadefinovat vlastní. Při nedodržení konzistence jednotek LabVIEW označí danou signálovou cestu jako neplatnou a je potřeba opravit jednotky tak, aby ve výrazu byly konzistentní.
Obr. 34.: Dialogové okno volby fyzikální jednotky
5.9. DALŠÍ PRVKY TYPU NUMERIC Kromě okénka, do kterého lze vypisovat číselnou hodnotu existují i jiné grafické reprezentace prvků Numeric. První z nich je tahový potenciometr (Slide) v různých variantách.
© Doc. Ing. Jan Žídek, CSc.
5-61
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 35.: Jedna z grafických podob tahového potenciometru
U tohoto prvku je navíc jedna jeho část označená jako Digital Display, kterou lze zviditelnit v sekci Visible Items roletového menu a která nahradila možnost zviditelnění základu číselné soustavy. Ve čtvrté sekci roletového menu přibyly další položky: Add/Remove Slider
možnost přidat/ubrat dalšího jezdce
Fill Options
možnost zvolit způsob probarvování dráhy potenciometru pro zvýraznění polohy jezdce
Scale
volby pro popis stupnice
Marker Spacing
poloha popisků (Uniform – pravidelná, Arbitrary – volitelná)
Add Marker
přidej popisku (pro možnost Arbitrary)
Delete Marker
uber popisku (pro možnost Arbitrary)
Format & Precision
přesnost a formát popisků
Style
styl umístění popisků a značek
Mapping
stupnice (Linear – Logarithmic)
Text Labels
záměna číselných popisků za textové (např. min. – max.)
Zvláštní podobou tahového potenciometru jsou indikátory ve tvaru nádrže nebo teploměru. Další grafickou podobou prvku pro zadávání číselné hodnoty jen otočný knoflík – Knob. Z hlediska roletového menu je hodně podobný tahovému potenciometru – místo Markeru je zde Needle umožňující umístit v jednom prvku více soustředných knoflíků. U tohoto prvku přibývají dvě editační možnosti – pootáčení stupnicí (je potřeba najít místo u středu stupnice, kdy se kurzor nástroje pro výběr mění v piktogram otáčení) a volba výseče obsazené stupnicí (je potřeba najít místo u středu kraje, kdy se kurzor nástroje pro výběr mění v piktogram otáčení).
© Doc. Ing. Jan Žídek, CSc.
5-62
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
5.10. PRVKY NUMERIC PRO PRÁCI S BARVOU Pro práci s barvou lze najít na paletě Numeric prvky Color Box. Lze v nich určit barvu buď pomocí nástroje vybarvovače, nebo číselnou hodnotou RGB, nebo Hue/Sat/Lum.
5.11. PRVKY TYPU BOOLEAN Jsou určeny pro práci s logickou proměnnou, která může nabývat pouze dvou hodnot True a False. Na paletě jsou k výběru různé grafické reprezentace těchto prvků. Pro ovládací prvky to jsou různé podoby přepínačů či tlačítek, pro indikační prvky různé podoby LED diod. Přepínání ze stavu do stavu lze realizovat nástrojem ovládače. V sekci Visible Items roletového menu je možno zapnout možnost zviditelnění Booleovského textu, který lze modifikovat z jeho defaultní podoby (ON-OFF) nástroje popisovače (např. na ZAPNUTO – VYPNUTO). Tento text je možno zamknou ve středu prvku položkou Lock Text in Center nebo uvolnit položkou Release Text. Důležitou roli u prvků Boolean, zejména v jejich ovládacím módu, hrají tzv. mechanické akce (Mechanical Action). Systém LabVIEW při běhu aplikace prochází cyklicky čelní panel a zjišťuje hodnotu ovládacích prvků. Jestliže uživatel krátce stiskne tlačítko, může se stát, že okamžik změněné hodnoty tohoto tlačítka nebude shodný s okamžikem prohlídky tohoto prvku systémem. Je tedy možné navolit jakousi vyrovnávací paměť, do které se automaticky zapíše tato krátká změna hodnoty a systém si ji zde v každém případě najde. Takto fungují mechanické akce s tzv. zachycením (Latch). V případě využití těchto mechanických akcí se zachycením ovšem není možné využít možnosti vytvoření další lokální proměnné spojené s tímto prvkem.
Obr. 36.: Základní paletová nabídka prvků Boolean
LabVIEW umožňuje u prvků typu Boolean zvolit jednu ze šesti mechanických akcí. Jejich význam a souvislost mezi mechanickou akcí a změnou logické hodnoty ukazuje podrobně příklad uvedený
© Doc. Ing. Jan Žídek, CSc.
5-63
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
v souboru: …Program Files/National Instruments/ LabVIEW ral/Controls/Booleans.llb/Machanical Action of Boolean.vi.
/
Examples/
Gene-
Obr. 37.: Příklad vysvětlující mechanické akce na prvcích typu Boolean.
5.12. PRVKY PRO PRÁCI S TEXTEM V paletové nabídce String&Path jsou grafické reprezentace prvků pro práci s textem. První řádek obsahuje prvky pro práci s jednoduchým textem (String), druhý řádek prvek pro práci s prvky tvorby a zobrazení cesty k souborům.
Obr. 38.: Paletové menu prvků pro práci s textem
Prvek string pojme i větší text, než se vejde do jeho grafické reprezentace – pro rolování v textu je možno zviditelnit rolovací lištu v položce Visible Items– Scroll Bar roletového menu. V posledních sekcích roletového menu jsou položky: © Doc. Ing. Jan Žídek, CSc.
5-64
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Normal Display
normální podoba textového displeje
„\“ Codes Display
místo znaků jako je mezera, odřádkování apod. jsou zobrazovány jejich kódy ve smyslu notace se zpětným lomítkem (mezera je \s, odřádkování \n, tabelátor \t …)
Password Display
místo vkládaných znaků jsou zobrazovány na displeji hvězdičky
Hex Display
místo vkládaných znaků jsou na displeji zobrazovány jejich hex. kódy
Limit to Single Line
vkládání textu do prvku je ukončeno buď dvojicí kláves shift ENTER nebo ENTER na numerické klávesnici. Je zvykem potvrzovat vstup klávesou ENTER, která však v tomto případě znamená pouze odřádkování – touto volbou lze stisk klávesy ENTER interpretovat jako konec vstupu
Update Value While Typing průběžné posílání obsahu prvku při psaní po každém znaku – standardně se obsah pošle až po stisku shift ENTER nebo ENTER viz výše Prvky path jsou určeny pro tvorbu a zobrazení cesty k souborům či adresářům. Cestu lze do prvku zadat přímo nebo vyhledat pomocí dialogu. Nastavení dialogu se na prvku provede přes roletové menu výběrem položky Browse Options: Prompt
text záhlaví dialogu
Selection Mode
specifikuje výběr souborů, adresářů
Start Path
místo počátku pro vyhledávání dialogem
Match Pattern
omezení zobrazení souborů v dialog boxu na názvy obsahující podmínku
5.13. VÝBĚROVÉ PRVKY LIST & TABLE V mnoha standardních situacích je větvení algoritmu odvozeno od výběru jedné z více definovaných cest. Tyto možnosti lze v LabVIEW slovně pojmenovat a dát uživateli možnost výběru z této množiny možnosti výběrovým prvkem. Do blokového diagramu takovýto prvek generuje celočíselnou hodnotu odpovídající zvolené možnosti podle které se algoritmus větví.
Obr. 39.: Paletové menu prvků výběru
© Doc. Ing. Jan Žídek, CSc.
5-65
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Do zvolené grafické reprezentace prvku lze slovně vložit pojmenování možnosti. Další možnost lze dodat pomocí roletového menu Insert Column/Row nebo umazat Delete Column/Row. Položku lze zneaktivnit (Disable Item). Pro prvek tabulky existuje v sekci Visible Items roletového menu větší počet voleb. Mimo již známých jsou to: Index Display
zobrazení indexu prvku vlevo nahoře. Vkládáním hodnoty do tohoto index displeje lze rolovat výřezem viditelné části tabulky nad celou tabulkou. První index je řádkový, druhý sloupcový
Vertical Scroll Bar
zviditelnění vertikální rolovací lišty
Horizontal Scroll Bar
zviditelnění horizontální rolovací lišty
Row Headers
zviditelnění záhlaví řádků
Column Headers
zviditelnění záhlaví sloupců
Obsah tabulky lze vymazat v položce Data Operation – Empty Table.
5.14. DATOVÁ STRUKTURA POLE Kromě jednoduchých datových typů podporuje LabVIEW i datové struktury. První z nich je datová struktura pole a předpokládá kolekci prvků stejného datového typu. Její prvek se na čelní panel volí nadvakrát. V prvním kroku zvolíme rámec této datové struktury z paletového menu Array&Cluster.
Obr. 40.: Paletové menu pro volbu datové struktury pole
Na čelním panelu je po prvním kroku vidět prázdný rámec pole a v blokovém diagramu terminál černé barvy s hranatými závorkami. V této chvíli systém ještě nemá určeno, pole jakého datového typu bude alokováno. Ve druhém kroku se uvnitř vytvořeného rámce na čelním panelu přes pravé tlačítko myši zvolí prvek odpovídající žádanému datovému typu v poli. Po tomto druhém kroku se terminál v blokovém diagramu probarví odpovídající barvou a v hranatých závorkách se objeví zkratka datového typu.
© Doc. Ing. Jan Žídek, CSc.
5-66
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Zpočátku jsou prvky pole zašedlé – pole má nulovou délku a je jednorozměrné. Součástí prvku je i index displej, který určuje index prvku, který je v zobrazené části pole jako první – zadáváním hodnoty do tohoto prvku lze pohybovat viditelnou částí pole v jeho rozsahu. Velikost viditelné části pole lze zvětšit nebo zmenšit pomocí myši v místě, kde kurzor nabude podoby rohu tabulky. Po zadání hodnoty některého prvku jsou alokovány všechny prvky až do tohoto indexu. Poli lze přidat rozměr buď přes roletové menu v položce Add Dimension nebo graficky roztažením Index displeje na potřebný počet políček. Pořadí indexů u třírozměrného pole je stránka – řádek – sloupec. Pro práci s poli je v LabVIEW k dispozici sada funkcí v přístupných položce Functions – Array.
Obr. 41.: Grafická podoba prvku pro jednorozměrné pole prvků typu Numeric
5.15. DATOVÁ STRUKTURA CLUSTER Na rozdíl od datové struktury pole lze v datové struktuře Cluster sdružovat i prvky různých datových typů. V obvyklých programovacích jazycích odpovídá tato datová struktura datovému typu Záznam. Obdobně jako u pole je zavedení tohoto prvku na čelní panel otázkou několika kroků. V prvním kroku se volí prázdný rámec Cluster z paletové nabídky.
Obr. 42.: Rámec datové struktury Clusteru
© Doc. Ing. Jan Žídek, CSc.
5-67
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
V dalších krocích lze do clusteru vkládat jednotlivé prvky přes pravé tlačítko myši z paletové nabídky prvků čelního panelu. V roletovém menu Clusteru jsou dvě položky: Reorder Controls in Cluster editace pořadí prvku v clusteru - důležité při použití funkcí Unbundle nebo při konverzi na pole Autosizing
úprava velikosti rámce clusteru na minimum
Pro práci s datovou strukturou Clusteru jsou v LabVIEW k dispozici funkce v položce Functions Cluster.
© Doc. Ing. Jan Žídek, CSc.
5-68
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
6. KNIHOVNÍ FUNKCE LABVIEW Ekvivalentem knihovních funkcí z textově orientovaných vývojových prostředí jsou uzlové bloky zastoupené v paletové nabídce Functions v okně blokového diagramu. 6.1. ZÁKLADNÍ ČLENĚNÍ Blokový diagram virtuálního přístroje se skládá z:
•
Koncových bloků (terminals)
o
Koncový blok – zdroj signálu (source terminal)
o Koncový blok - zdroj signálu o
příslušející prvku čelního panelu v ovládacím módu příslušející konstantě vstupující do výpočtu
Koncový blok – cíl signálu (sink terminal)
•
přísluší prvkům čelního panelu a konstantám, lze je rozdělit na
Uzlových bloků (nodes)
příslušející prvku čelního panelu v indikačním módu ekvivalent knihovních funkcí, lze je rozdělit na
o Uzlový blok
představující standardní knihovní funkci, která je součástí vývojového prostředí
o Uzlový blok
přidané funkce z rozšíření vývojového prostředí (additional toolkits)
o Uzlový blok
uživatelsky definované funkce
•
Programových struktur
•
Definic signálových cest (wires)
ekvivalent programových struktur přepínače, cyklu, atd.
Základní nabídku uzlových bloků nalezneme na paletové nabídce Functions, kterou lze vyvolat buď přes položku menu Windows – Show Functions Palette, nebo pravým tlačítkem myši v ploše blokového diagramu.
© Doc. Ing. Jan Žídek, CSc.
6-69
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Základní podoba této paletové nabídky je následující:
Obr. 43.: Základní podoba paletové nabídky funkcí
Funkce na této paletové nabídce jsou rozděleny do tříd podle činnosti, kterou vykonávají. Šipka v pravém horním rohu oznamuje, že se nejedná o koncovou volbu – po stisku příslušné ikonky se rozvine další úroveň nabídky rovněž v podobě paletové nabídky. Okno může být na ploše po dobu stisku pravého tlačítka myši, nebo trvale po použití špendlíku v levém horním rohu. Pro speciální oblasti nebo pro nainstalovaná rozšíření vývojového prostředí lze navolit rozdílné členění základní nabídky. Toto členění lze rovněž uživatelsky definovat. Veškeré editace probíhají přes ikonku Options (zobrazí se, je-li paleta přišpendlena) – Edit Palettes. Základní členění funkcí odpovídající základní podobě paletové nabídky je následující: • STRUCTURES • NUMERIC • • • • • • • • • • • • • •
BOOLEAN STRING ARRAY CLUSTER COMPARISON TIME&DIALOG FILE I/O INSTRUMENT I/O INSTRUMENT DRIVER DATA ACQUISITION SIGNAL PROCESSING MATHEMATICS GRAPHICS AND SOUND COMMUNICATION
© Doc. Ing. Jan Žídek, CSc.
programové struktury, lokální, globální proměnná numerické funkce (aritmetické, goniometrické, logaritmické, konverzní …) logické funkce funkce pro práci s textovými řetězci funkce pro práci s poli funkce pro práci s clustery srovnávací funkce funkce pro práci s časem a dialogovými okny funkce pro práci se soubory funkce pro komunikaci s přístroji obslužné programy pro měřicí přístroje funkce pro podporu zásuvných měřicích karet funkce pro zpracování naměřeného signálu matematické funkce (výrazy, statistika, regrese …) funkce pro práci s grafikou a zvuky funkce pro komunikaci (podpora TCP/IP protokolu, DDE, OLE …) 6-70
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• • • • • •
APPLICATION CONTROL ADVANCED REPORT GENERATION TUTORIAL USER LIBRARIES SELECT a VI
funkce pro řízení běhu aplikace zvláštní funkce (volání funkcí z DLL apod.) funkce pro generování tištěných výstupů simulované zdroje signálu pro výuku prostředí uživatelsky definované funkce volba VI z knihovních souborů
V následujícím textu bude popis některých nabídek z tohoto výběru.
6.2. PROGRAMOVÉ STRUKTURY Dělají z LabVIEW plnohodnotný programovací prostředek (G jazyk) silnější než jiné prostředky, které využívají principů grafického programování, ale omezující se např. pouze na sekvenční řazení bloků. Využitím grafických programových struktur lze řešit velmi efektivně standardní situace, které se často vyskytují v aplikacích. V předchozím popisu vývojového prostředí LabVIEW bylo zdůrazněno, že grafické programování zde představuje plnohodnotné programování prostředky grafického G jazyka. Tento jazyk v sobě obsahuje následující programové struktury:
Obr. 44.: Grafická podoba programových struktur ve vývojovém prostředí LabVIEW
Sekvence
Programová struktura sekvence nemá ekvivalent v textově orientovaných programových jazycích - tam je sekvenčnost provádění příkazů dána jejich sekvenčním uvedením ve zdrojovém textu. V grafickém programování řídí provádění algoritmu tok dat - jsou zde možná pseudoparalelní provádění příkazů – struktura. Jednotlivé rámce jsou prováděny postupně v pořadí podle čísla v záhlaví této programové struktury. Jednotlivé rámce lze: • přidávat před nebo za aktuální rámec jako prázdné rámce (Add Frame Before - After) • vypouštět aktuální rámec (Delete This Frame) • zdvojit aktuální rámec včetně obsahu (Duplicate Frame) • změnit pořadí rámců (Make This Frame ...) • mezi rámci se dá přepínat nástrojem ovládače
© Doc. Ing. Jan Žídek, CSc.
6-71
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Výše uvedené operace se provádějí přes uvedené položky v roletovém menu sekvence, které lze vyvolat na jejím okraji pravým tlačítkem myši. Lokální proměnné v sekvenci se používají v situaci, kdy je potřeba přenést hodnotu z jednoho rámce do druhého. Přidávají se do sekvence z roletového menu na obrysu rámce (Add Sequence Local). Lokální proměnná je potom přístupná ve všech následujících rámcích programové struktury. Lokální proměnná má daný svůj mód (čtení zápis) podle připojení na signál a nelze jej pružně měnit jako u klasické lokální proměnné, datový typ přebírá rovněž podle připojeného signálu. U lokální proměnné lze: • změnit její polohu (nástrojem změny polohy) • zrušit ji (Remove Sequence Local) Hodnotu do sekvence lze přivést datovým vodičem přes tzv. tunel (vstupní) a vyvést hodnotu mimo sekvenci lze rovněž přes tunel (výstupní) z libovolného rámce sekvence, ale je tam k dispozici až po provedení posledního rámce sekvence (sekvence se chová jako blok). Sekvenci lze vymazat buď včetně obsahu (s výjimkou terminálů) - označit a potom klávesou Delete nebo se zachováním obsahu - z roletového menu Remove sequence.
Sekvence řeší jedním z možných způsobů zajištění sekvenčnosti provádění části algoritmu. Dalšími možnostmi je: • • Přepínač
použití umělé datové závislosti použití tzv. průběžné proměnné (typicky Error Cluster)
Přepínač je ekvivalentem podmíněného příkazu nebo přepínače z textově orientovaných programovacích jazyků. Řeší situaci, kdy je nutno na základě nějaké podmínky algoritmus větvit do dvou nebo více směrů. Má terminál pro připojení testované podmínky, jednotlivé větve jsou dány rámci této programové struktury. Do programové struktury case lze rámce: • přidávat (Add Case After - Before) • mazat (Delete This Case) • přehazovat pořadí (Rearrange Cases ...) • umazat prázdné rámce (Remove Empty Cases) • duplikovat rámce (Duplicate Case) Přepínač lze vymazat buď včetně obsahu (s výjimkou terminálů) - označit a potom klávesou Delete nebo se zachováním obsahu - z roletového menu Remove Case Structure. Hodnotu do přepínače lze přivést datovým vodičem přes tzv. tunel (vstupní) a vyvést hodnotu mimo přepínač lze rovněž přes tunel (výstupní) - je však nutno do tohoto tunelu připojit hodnotu z každého rámce přepínače, jinak je hlášena syntaktická chyba. Tunelů lze využít i pro vytvoření tzv. umělé datové závislosti (Artificial Data Dependence).
© Doc. Ing. Jan Žídek, CSc.
6-72
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
FOR cyklus
Cyklus s pevným počtem opakování daným hodnotou připojenou zvenčí k terminálu s označením N nebo počtem prvků pole přivedeného dovnitř cyklu přes tunel se zapnutou indexací. Kromě toho poskytuje tato struktura terminál s výstupem pořadového čísla aktuálně prováděného oběhu. Mimo tyto dva terminály mají v této programové struktuře vstupní i výstupní tunely schopnost indexace, která se dá vypnout. Indexace znamená výběr odpovídajícího prvku pole ve vstupním tunelu nebo vytváření datové struktury pole ve výstupním tunelu. Kromě toho je zde speciální typ lokální proměnné, tzv. posuvné registry. • Přidání/odebrání posuvného registru (Add Shift Register) • Danému registru lze přidávat a ubírat počet pamatovaných kroků (Add/Remove Element)
WHILE cyklus Cyklus, jehož opakování je dáno testovanou podmínkou. Dokud je testovaná podmínka připojená k odpovídajícímu terminálu rovna logické jedničce, vše, co se nachází uvnitř této struktury je cyklicky opakováno. Stejně jako předchozí typ programové struktury má počítací terminál, schopnost indexace ve vstupních a výstupních tunelech a posuvné registry. Přepnutím v roletovém menu nebo nástrojem ovladače lze měnit testovanou podmínku na: • Stop If True • Continue If True Matem. výraz Dává možnost výpočtu matematických výrazů jejich vepsáním v textové podobě dovnitř této programové struktury. Takový způsob programování je sice u složitějších výrazů rychlejší, ale jejich provádění při běhu programu je několikanásobně pomalejší. Vstupy i výstupy lze přidat z roletového menu na obrysu struktury. V roletovém menu jsou položky umožňující editaci vstupů a výstupů: • Add input přidání vstupu • Add output přidání výstupu • Change to ... změň vstup na výstup nebo naopak
Vhodné využití popsaných programových struktur a jejich pomocných prvků umožňuje v grafickém programování řešit všechny situace řešitelné v textově orientovaných programových jazycích. Implementace těchto struktur dává vývojovému prostředí LabVIEW jeho výkonnost a umožňuje poměrně efektivně řešit standardní situace, před které je vývojář v procesu vývoje aplikace obvykle stavěn.
6.3. LOKÁLNÍ PROMĚNNÉ Jak bylo řečeno, přísluší každému objektu čelního panelu odpovídající koncový blok, přes který vchází aktuální hodnota objektu do algoritmu. Koncový blok je buď v módu ovládacím (control), nebo indikačním (indicator). Současně je v paměti alokováno místo pro uložení odpovídající datové struktury, na které se ukládá aktuální hodnota objektu čelního panelu. Na toto místo v paměti lze tedy přistupovat pomocí koncového bloku. Pomocí lokální proměnné z nabídky Functions -
© Doc. Ing. Jan Žídek, CSc.
6-73
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Structures lze zmnožit koncový blok příslušející objektu čelního panelu. Lokální proměnné se používají ve dvou standardních situacích: • při potřebě přístupu k téže proměnné z více míst blokového diagramu
Obr. 45.: Použití lokální proměnné pro přístup k téže proměnné z více míst blokového diagramu
•
při potřebě programového zápisu do prvku v ovládacím módu
Obr. 46.: Použití lokální proměnné při potřebě programového zápisu do ovládacího prvku
Lokální proměnná předpokládá pojmenování prvku čelního panelu svázaného s danou proměnnou. Lze ji vytvořit dvěma základními způsoby: • •
přes položku Create Local Variable v roletovém menu prvku na čelním panelu nebo terminálu v blokovém diagramu přes nabídku Local v položce Functions – Structures v paletové nabídce funkcí – v tomto případě je vytvořena lokální proměnná prvku, který byl na čelním panelu vytvořen jako první a přes roletové menu této lokální proměnné v položce Select Item lze zvolit potřebnou proměnnou
Obr. 47.: Roletové menu lokální proměnné © Doc. Ing. Jan Žídek, CSc.
6-74
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Lokální proměnnou lze přepínat do módu pro čtení Change To Read – tehdy je v blokovém diagramu zdrojem signálu – nebo pro zápis Change To Write – tehdy je v blokovém diagramu cílem signálu. Přes položku Find lze k dané lokální proměnné vyhledat odpovídající prvek čelního panelu nebo uzel vlastností daného prvku. Přes položku Description … lze zadat nápovědný text přístupný koncovému uživateli přes roletové menu i při běhu aplikace. Položka Visible Items skryje nebo ukáže název prvku, s nímž je lokální proměnná svázána. Položkou Replace lze nahradit blok lokální proměnné jiným blokem z nabídky Functions…. Ve druhé sekci lze rychle vytvořit konstantu, ovládací či indikační prvek na čelním panelu a jejich terminály pro práci s hodnotou lokální proměnné. Kromě lokálních proměnných příslušejících objektům čelního panelu jsou i lokální proměnné, které jsou součástí programových struktur (lokální proměnná v sekvenci, posuvný registr v cyklech ...)
6.4. GLOBÁLNÍ PROMĚNNÉ Globální proměnná se používá při potřebě sdílet proměnné několika virtuálními přístroji – lze pomocí ní vytvořit tzv. sdílenou datovou oblast, do které mohou přistupovat všechny virtuální přístroje daného projektu buď se zápisem nebo pro čtení. Tento způsob zjednodušuje propojování subVI v rámci daného projektu, je však časově poměrně náročný. Globální proměnnou lze vytvořit přes položku Global na paletové nabídce Functions – Structures. V blokovém diagramu se objeví její podoba černě orámovaná (dosud není určen datový typ) s otazníkem (dosud neexistuje jméno pro sdílenou proměnnou. Na tomto prvku lze v jeho roletovém menu zvolit položku Open Front Panel a otevřít tak čelní panel VI pro vytvoření sdílené datové oblasti. Na tomto čelním panelu se zřizují standardním způsobem objekty pro proměnné potřebného datového typu. Stejně jako u lokální proměnné je zde povinné pojmenovávání objektů (globální proměnná je volána přes své jméno). Virtuální přístroj takto vytvořený nemá blokový diagram (nepotřebuje jej) a lze jej uložit pod libovolným jménem. K jednotlivým položkám vytvořeným ve sdílené datové oblasti se potom lze dostat přes roletové menu na prvku globální proměnné – přes pravé tlačítko myši v sekci Select Item a přes levé tlačítko myši přímo. Při potřebě dalšího použití proměnných ze sdílené datové oblasti se k ní přistupuje přes položku Functions – Select a VI ukázáním na jméno virtuálního přístroje, který byl pro potřebu globální proměnné uložen. Při potřebě rozšíření počtu globálních proměnných lze na čelní panel tohoto VI vytvářet další datové struktury. Stejně jako lokální proměnnou lze i globální proměnnou přepínat do módu pro čtení i zápis přes odpovídající položku Change To … na prvku globální proměnné.
© Doc. Ing. Jan Žídek, CSc.
6-75
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
6.5. KONSTANTY Kromě uzlových bloků jako ekvivalentu knihovních funkcí se v popsané nabídce nacházejí i konstanty (číselné, booleovské, textové). V blokovém diagramu vystupují jako koncové bloky - zdroj signálu (source terminals). •
Číselné konstanty
Základní možnost zavedení číselné konstanty do blokového diagramu je přes Functions – Numeric a ikonku vlevo dole. Po jejím objevení lze z klávesnice zadat libovolnou hodnotu (dodatečně lze hodnotu změnit popisovačem). Při potřebě je možné změnit reprezentaci datového typu přes roletové menu a položku Representation.
Obr. 48.: Změna reprezentace datového typu u číselné konstanty
Další konstanty jsou dostupné přes Functions – Numeric a ikonku vpravo dole:
© Doc. Ing. Jan Žídek, CSc.
6-76
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 49.: Další číselné konstanty
V prvním řádku jsou to konstanty pro barevný box, výběrový seznam a chybový kód, ve druhém řádku jsou to nejčastěji používané matematické konstanty a v posledním řádku jsou to konstanty fyzikální (včetně fyzikálního rozměru). •
Booleovská konstanta
Je dostupná přes Functions – Boolean ikonka vlevo dole. Hodnotu této konstanty lze přepínat mezi TRUE a FALSE pomocí ovládače (kurzor tvaru ručičky). •
Textová konstanta
Je dostupná přes Functions – String. •
Další konstanty
Kromě těchto dosud popsaných konstant je v LabVIEW možno používat i řadu dalších typů konstant (konstantní cluster, chybový cluster, pole, cesta k souboru …). •
Definice konstant přes roletová menu na funkcích
Nejrychlejší způsob zavedení konstanty je využití položky Create Constant v roletovém menu na vstupním pinu ikonky funkce (subVI). Obvykle je definována konstanta odpovídajícího typu, která je přímo připojena k danému vstupnímu parametru funkce:
© Doc. Ing. Jan Žídek, CSc.
6-77
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 50.: Vytvoření konstanty připojené ke vstupnímu pinu funkce
Tohoto způsobu je dobré používat i pro zavádění ovládacích a indikačních prvků na čelním panelu (Create Control a Create Indicator).
6.6. NUMERICKÉ FUNKCE Jsou dostupné přes položku Functions – Numeric:
Konverzní funkce Základní numerické funkce
Trigonometrické funkce Logaritmické funkce Komplexní funkce
Číselné konstanty Obr. 51.: Numerické funkce
6.7. NÁPOVĚDA K FUNKCÍM Základní nápovědu k funkcím lze získat v okénku nápovědy, které lze zapínat a vypínat do a z pracovní plochy vývojového systému klávesami Ctrl H. © Doc. Ing. Jan Žídek, CSc.
6-78
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 52.: Základní nápověda k funkci
Kromě rolovacích lišt je na spodním okraji okna trojice tlačítek s následujícím významem (odleva):
ZÁKLADNÍ/VŠECHNY PARAMETRY
přepíná zobrazení všech nebo jen základních parametrů u ikonky funkce v okně nápovědy
ZABLOKOVÁNÍ NÁPOVĚDY
zablokování nápovědy – bez zablokování je obsah okna nápovědy řízen polohou kurzoru v blokovém diagramu
VYVOLÁNÍ REFERENCE K DANÉ FUNKCI přesun do referenční příručky k dané funkci v online helpu
V referenční příručce lze nalézt vyčerpávající informace k dané funkci. Do správného místa se lze dostat buď přes Help – VI, Funcion, &How- to Help…, VI and Functions Reference listováním v hypertextovém souboru nápovědy nebo okamžitě stisknutím třetího tlačítka v pořadí na spodním okraji okna nápovědy v okamžiku, kdy v něm je základní nápověda k této funkci.
6.8. POLYMORFISMUS FUNKCÍ V grafickém vývojovém prostředí existuje u některých funkcí jejich polymorfismus - stejná funkce slouží pro operaci s různými datovými typy - možné kombinace vstupních operandů u funkce násobení dokumentuje následující tabulka:
© Doc. Ing. Jan Žídek, CSc.
6-79
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Polymorfismus funkce násobení ve vývojovém prostředí LabVIEW Datový typ prvního operandu Datový typ druhého operandu
Datový typ výsledku
INT32
INT32
INT32
DBL
DBL
DBL
Jednoduchý datový typ
Jednorozměrné pole
Jednorozměrné pole
Jednorozměrné pole
Jednorozměrné pole
Jednorozměrné pole
Jednoduchý datový typ
Cluster
Cluster
Cluster
Cluster
Cluster
Uživatel se tedy nemusí starat o to, který kód funkce použije – tento bude automaticky upraven podle typu vstupních parametrů – jedna a tatáž funkce může posloužit pro různé kombinace datových typů vstupních parametrů.
6.9. ÚPRAVA POČTU VSTUPNÍCH PARAMETRŮ FUNKCE U některých funkcí lze zvolit potřebný počet vstupních parametrů této funkce. Dá se to udělat v zásadě dvojím způsobem: •
Z roletového menu na vstupu funkce použiji položky Add Input:
Obr. 53.: Zvětšení počtu vstupních parametrů funkce použitím roletového menu
•
Pomocí nástroje pro označení a změnu polohy roztáhnu ikonku funkce na potřebnou velikost:
Obr. 54.: Zvětšení počtu vstupních parametrů funkce roztažením její ikonky
© Doc. Ing. Jan Žídek, CSc.
6-80
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Zmenšení počtu vstupních parametrů je analogické – buď přes roletové menu položku Remove Input nebo graficky stažením velikosti ikonky funkce. V obou případech by na rušeném vstupu už neměl být připojen signál. U některých funkcí je počet vstupních parametrů proměnný, ale závazný – např. u funkce Index Array musí počet vstupních parametrů pro index odpovídat počtu dimenzí pole v němž má k indexaci docházet. Obdobně je to s dvojicemi vstupních parametrů u funkce Array Subset.
6.10. ÚPRAVA TYPU VSTUPNÍCH PARAMETRŮ
U některých funkcí lze změnou typu vstupního parametru modifikovat činnost této funkce. Příkladem může být například funkce Build Array pro dynamické budování pole. U této funkce lze vstupní parametr modifikovat mezi dvěma možnostmi přes odpovídající položku roletového menu Change To…: • •
ELEMENT ARRAY
prvek pole
Následující obrázky ukazují některé možné kombinace:
Obr. 55.: Některé možné kombinace typu vstupních parametrů u funkce Build Array
U této funkce lze navíc pružně volit i počet vstupních parametrů a dosáhnout tak mnoha dalších kombinací.
© Doc. Ing. Jan Žídek, CSc.
6-81
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
6.11. VYPÍNÁNÍ INDEXACE VE VSTUPNÍM PARAMETRU U funkce Index Array jak už bylo uvedeno je počet vstupních parametrů pro index závislý na počtu dimenzí pole, v němž má k indexaci (výběru prvku) docházet. Někdy však není potřeba vybírat jeden prvek např. z dvourozměrného pole, ale celý sloupec (typicky při zpracování dvourozměrného pole, které vracejí funkce pro podporu zásuvných měřicích karet, kde sloupec odpovídá v matici jednomu měřenému kanálu). Činnost této funkce lze modifikovat a usnadnit tak její použití vypínáním indexace na odpovídajícím vstupním parametru. Potřebuji-li např. z dvourozměrného pole (matice) vybrat jeden její sloupec, musí mít funkce Index Array dva vstupní parametry pro index. První představuje řádkový index, druhý sloupcový index. Připojím signál pouze na sloupcový index a na řádkovém vypnu indexaci (Indexace se v LabVIEW6 vypíná automaticky, není-li k příslušnému indexu připojen žádný signál – prázdný obdélníček). Funkce potom místo jednoduchého datového typu vrací jednorozměrné pole – sloupec, jehož pořadové číslo jsem zadal na sloupcovém indexu.
Obr. 56.: Vypnutí indexace ve vstupním parametru funkce INDEX ARRAY
© Doc. Ing. Jan Žídek, CSc.
6-82
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
7. STRUKTURA UDÁLOSTMI ŘÍZENÉ APLIKACE V LABVIEW Velkou většinu standardních situací lze v praxi algoritmicky řešit jako událostmi řízený program, v němž jsou jednotlivé úlohy volány sekvenčně – není požadován jejich paralelní běh. LabVIEW podporuje možnost tvorby aplikace shora dolů. Postup by měl být tedy následující. 7.1. ANALÝZA POŽADAVKŮ KONCOVÉHO UŽIVATELE V první fázi tvorby aplikace by si měl vývojář zpracovat seznam požadavků koncového uživatele. Na základě tohoto seznamu si může programátor rozdělit celou aplikaci na jednotlivé dílčí úlohy, z nichž je celá aplikace složena. Hierarchicky lze takto pojatou strukturu znázornit následovně:
Hlavní panel aplikace
Úloha 1
Úloha 2
Úloha 3
Úloha 4
Obr. 57.: Struktura událostmi řízené aplikace
Počet úrovní hierarchie aplikace není omezen. Pro každou jednotlivou úlohu si lze v grafickém vývojovém prostředí LabVIEW vytvořit samostatný VI, který lze v rámci nadřazené struktury použít jako subVI.
7.1.1. Návrh grafických rozhraní k uživateli Ke každému VI pro jednotlivé úlohy si uživatel navrhne grafické rozhraní k uživateli s odpovídajícím počtem prvků ovládacích a indikačních reprezentující odpovídající datové typy. Tato grafická rozhraní ve formě čelních panelů VI je dobré v této fázi opět zkonzultovat s koncovým uživatelem, který by měl odsouhlasit jejich podobu a filozofii ovládání celé aplikace.
7.1.2. Základní struktura aplikace Hlavní panel aplikace - grafické rozhraní k uživateli na nejvyšším stupni hierarchie může mít formálně pro aplikaci, v níž není požadavek na současné volání jednotlivých úloh následující podobu:
© Doc. Ing. Jan Žídek, CSc.
7-83
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 58.: Čelní panel hlavního VI v hierarchii
Na čelním panelu hlavního VI v hierarchii jsou umístěny ovládací prvky datového typu boolean. Každé tlačítko slouží k vyvolání jedné z úloh, z nichž je aplikace poskládána, poslední tlačítko slouží k jejímu ukončení. V blokové diagramu je potřeba realizovat událostmi řízený program, přičemž událostí bude stisk tlačítka uživatelem na vytvořeném grafickém rozhraní. Základní programovou strukturou bude cyklus typu while, ve kterém se bude cyklicky kontrolovat, zda došlo ke stisku tlačítka ze strany uživatele. Blokový diagram tedy může mít například následující podobu.
Obr. 59.: První varianta blokového diagramu © Doc. Ing. Jan Žídek, CSc.
7-84
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
V uvedeném blokovém diagramu se testuje v každém oběhu, zda bylo stisknuto některé z tlačítek na čelním panelu. Při stisku tlačítka KONEC je testovaná podmínka cyklu vyhodnocena jako FALSE a aplikace končí, při stisku některého jiného tlačítka je vykonána část algoritmu v rámci TRUE přepínače příslušného k danému tlačítku. Uvedený blokový diagram má nevýhodu v tom, že přidání další úlohy do aplikace znamená vznik dalšího terminálu prvku typu boolean od odpovídajícího tlačítka a nutnost přidání další struktury přepínače do cyklu. Lepší způsob řešení blokového diagramu ukazuje následující obrázek, který předpokládá, že ovládací tlačítka na čelním panelu jsou sdružena do datové struktury clusteru. Tato datová struktura je lepší než datová struktura pole, protože umožňuje větší volnost v grafické reprezentaci na čelním panelu – libovolné uspořádání tlačítek a jejich libovolnou podobu, a to i u každého tlačítka jinou.
Obr. 60.: Modifikovaná podoba čelního panelu
Vzhledem k tomu, že mezi funkcemi LabVIEW není funkce pro prohledávání clusteru na výskyt požadované hodnoty, je jako první v blokovém diagramu použita funkce konverze datové struktury clusteru na datovou strukturu pole, pro kterou funkce pro její prohledání na výskyt dané hodnoty existuje. Následuje funkce pro vlastní prohledání pole, která má tři vstupní parametry: • • •
prohledávané pole hledanou hodnotu počáteční index v poli pro jeho prohledávání
Funkce Search 1D Array vrací hodnotu indexu, na kterém byla v poli jako první nalezena hledaná hodnota. V případě neúspěchu v hledání vrací hodnotu –1. Aby bylo možné použít programové
© Doc. Ing. Jan Žídek, CSc.
7-85
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
struktury cyklu, která je indexována od nuly, následuje po funkci prohledání poli zvětšení výstupního parametru o jednotku. V přepínači tedy odpovídá rámec 0 situaci, kdy nebylo stisknuto žádné tlačítko, rámec 1 situaci, kdy bylo stisknuto první tlačítko v clusteru, rámec 2 situaci, kdy bylo stisknuto druhé tlačítko v clusteru atd.
Obr. 61.: Modifikovaná podoba blokového diagramu hlavního VI v hierarchii
Výhodou uvedeného blokového diagramu je to, že je možno přidávat další úlohy do aplikace velmi snadno přidáním dalšího rámce do programové struktury přepínače CASE, aniž by se změnil stávající diagram co do uspořádání. Pro jednotlivé úlohy v aplikaci je možno vytvořit samostatné VI, které lze umístit v podobě jejich ikony do odpovídajícího rámce přepínače v hlavním VI. Po stisku odpovídajícího tlačítka na čelním panelu v hlavním VI je proveden kód odpovídajícího VI – je tedy programově ošetřena událost, kterou bylo stisknutí tohoto tlačítka na čelním panelu.
7.1.3. Sdílená datová oblast Zbývá vyřešit problém, jak si předávat mezi jednotlivými úlohami v aplikaci parametry. Jednou z možností by bylo použití konektoru na každém VI reprezentujícím jednotlivé úlohy. V blokovém diagramu hlavního VI by však bylo nutno využít posuvných registrů na cyklu typu while, což by při větším počtu parametrů vedlo k nepřehlednému blokovému diagramu.
© Doc. Ing. Jan Žídek, CSc.
7-86
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Jinou možností, jak tuto situaci vyřešit je vytvoření sdílené datové oblasti v podobě globální proměnné, do které budou moci všechny VI představující jednotlivé úlohy aplikace buď zapisovat nebo z ní číst. Toto řešení nevyžaduje vzájemné propojení ikon dílčích VI přes jejich konektory prostřednictvím datových cest a velmi zpřehledňuje podobu blokového diagramu. Globální proměnná se vytvoří v blokovém diagramu libovolné funkce reprezentující dílčí úlohu aplikace. Globální proměnnou nalezneme v paletovém menu Functions – Structures– Global. Na takto vzniklém terminálu černé barvy (dosud nepřiřazen datový typ) aplikujeme z jeho roletového menu položku OPEN FRONT PANEL. Vznikne nový virtuální přístroj, který se vyznačuje tím, že nemá blokový diagram – na jeho čelní panel budeme umisťovat jednotlivé proměnné (jednoduché datové typy nebo datové struktury), které mají být sdílené všemi VI v rámci aplikace. Každou proměnnou musíme pojmenovat – v jednotlivých VI je budeme vybírat ze seznamu prostřednictvím seznamu jmen proměnných. V tomto VI, který bude plnit úlohu sdílené datové oblasti nezáleží na tom, zda je prvek v ovládacím nebo indikačním módu – při jeho použití ve VI se dá mód volit z roletového menu.
Obr. 62.: Vytvoření globální proměnné
Nejrychlejší způsob vytvoření odpovídající proměnné je její překopírování z čelního panelu některého VI aplikace na čelní panel VI sdílené datové oblasti – nejrychleji přetažením při stisku klávesy Ctrl (klonování prvků).
© Doc. Ing. Jan Žídek, CSc.
7-87
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 63.: Čelní panel globální proměnné – sdílené paměťové oblasti
Po uložení VI s globální proměnnou - sdílené datové oblasti se probarví terminál v blokovém diagramu funkce podle odpovídajícího datového typu první proměnné a uživatel může vybírat odpovídající proměnnou ze sdílené datové oblasti buď přes pravé tlačítko myši položkou Select Item nebo levým tlačítkem myši nástrojem ovladače.
Obr. 64.: Použití globální proměnné jako sdílené datové oblasti
© Doc. Ing. Jan Žídek, CSc.
7-88
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Mód globální proměnné (zápis čtení) se dá volit přes roletové menu v položce Change to … Od této chvíle lze jednoduše aplikovat takto vytvořenou globální proměnnou na více místech blokového diagramu buď přes paletové menu Function – Select a VI … a výběrem uloženého VI se sdílenou datovou oblastí nebo klonováním stávajícího terminálu. Při potřebě zapsat hodnotu do sdílené datové oblasti volíme mód pro zápis, při potřebě vyčíst hodnotu ze sdílené datové oblasti volíme mód pro čtení.
7.1.4. Volby pro běh virtuálního přístroje Standardní mód při zavolání funkce z vyšší úrovně hierarchie aplikace je takový, že funkce vykoná svou činnost, aniž je při tom zobrazen její čelní panel. Při potřebě zobrazení čelního panelu této funkce po zavolání VI je potřeba toto nastavit v sekci VI Properties – Window Appearance – Customize…. Popis všech nastavení pro běh VI bude probrán v další kapitole.
© Doc. Ing. Jan Žídek, CSc.
7-89
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
8. IKONA, KONEKTOR, VOLBY PRO BĚH VIRTUÁLNÍHO PŘÍSTROJE Jak již bylo řečeno, virtuální přístroj se skládá z čelního panelu, blokového diagramu a ikony a konektoru. Ikona a konektor umožňuje modulárně z již vytvořených virtuálních přístrojů skládat vyšší úrovně hierarchie a vytvářet tak poměrně rozsáhlé a komplikované aplikace. Ve vyšší vrstvě aplikace slouží ikona pro reprezentaci daného VI a přes konektor se tento VI vřazuje do toku dat. Místo pro editaci ikony a konektoru najdeme v pravém horním rohu okna čelního panelu, kde lze stiskem pravého tlačítka myši vyvolat speciální roletovou nabídku:
Obr. 65.: Místo pro editaci ikony, konektoru a nastavení voleb pro běh VI
Pro editaci ikony je ve vývojovém prostředí k dispozici jednoduchý grafický editor připomínající Paint Brush, který aktivujeme výběrem položky Edit Icon z výše uvedené nabídky:
Obr. 66.: Grafický editor pro úpravu a vytvoření ikony virtuálního přístroje © Doc. Ing. Jan Žídek, CSc.
8-90
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Vlevo od pracovního pole editované ikony velikosti 32 x 32 pixelů je k dispozici devět nástrojů, které lze volit najetím kurzoru myši na piktogram nástroje. Postupně shora dolů jsou to: • Kreslení z volné ruky
přidržením levého tlačítka myši lze tímto nástrojem kreslit pixel po pixelu • Kreslení rovných čar přidržením levého tlačítka myši lze tímto nástrojem kreslit rovné čáry • Přebrání barvy z ikony tímto nástrojem lze levým tlačítkem přebrat barvu pixelu, na který je ukazováno jako barvu popředí, při přidržení klávesy shift jako barvy pozadí • Vybarvení části ikony čarou ohraničená plocha ikony je vybarvena barvou popředí • Prázdný obdélník přidržením levého tlačítka myši lze nakreslit obdélník barvou popředí • Vybarvený obdélník totéž, co předchozí, pouze vnitřek obdélníka je vyplněn barvou pozadí • Výběr části ikony lze označit obdélníkovou oblast ikony pro následné vymazání (DEL), nebo přesun (přidržení klávesy Ctrl a posun) • Popisovač z klávesnice lze zadávat text • Výběr barvy po stisku levého tlačítka lze vybrat barvu popředí a barvu pozadí (záleží na zvoleném barevném módu, z kolika barev se volí) Vpravo od pracovní plochy se přepíná barevný mód kliknutím na tlačítko s označením žádaného módu. Po vytvoření ikonky v jednom módu ji lze zkopírovat do jiného barevného módu přepnutím do nového módu a použitím voleb Copy from …, které se nacházejí zcela vpravo okna editoru ikony. Zatržením boxu Show terminals jsou ukázána přípojná místa konektoru s barevným označením přiřazeného datového typu. O jeden krok zpět v editaci ikony se lze dostat přes Edit - Undo. Po dokončení editace ikony ji lze buď přiřadit danému virtuálnímu přístroji stiskem tlačítka O.K. (upravená ikonka se objeví vpravo nahoře v oknech čelního panelu a blokového diagramu a okno editoru ikony se zavírá) nebo editační zásahy stornovat pomocí stisku tlačítka Cancel. Od verze 5.x vývojového prostředí LabVIEW je podporováno i kopírování přes schránku mezi ikonami různých VI (Ctrl C – Ctrl V).
8.1. KONEKTOR VIRTUÁLNÍHO PŘÍSTROJE Pro připojení virtuálního přístroje na tok signálů v nadřazené vrstvě aplikace slouží konektor. Jeho editaci lze vyvolat volbou položky Show Connector z nabídky po stisku pravého tlačítka myši na ikoně v okně čelního panelu. Při prvním vyvolání této položky provede LabVIEW analýzu prvků čelního panelu a z předpřipravených konektorů vybere ten, který tvarem a počtem pinů nejlépe vyhovuje počtu ovládacích a indikačních prvků na čelním panelu. Vlastní propojení pinů s prvky čelního panelu se provádí nástrojem propojovače. Po najetí na pin konektoru a stisku levého tlačítka myši se označí na čelním panelu prvek s ním spojený (existuje-li již) nebo najetím na odpovídající prvek toto spojení definujeme. Již propojené piny zůstávají probarvené.
© Doc. Ing. Jan Žídek, CSc.
8-91
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Pro úpravu tvaru konektoru a propojení pinů lze využít voleb z třetí a čtvrté sekce základní nabídky: • Add Terminal • Remove Terminal • Patterns • • • • • •
Rotate 90 Degrees Flip Horizontal Flip Vertical Disconnect All Terminals Disconnect This Terminal This Connection Is…
přidá do vzoru konektoru jedno přípojné místo odebere ze vzoru konektoru jedno přípojné místo nabídka vzorů pro konektor pro manuální výběr nejvhodnějšího rotace vzoru konektoru o 90 stupňů zrcadlové převrácení vzoru vodorovně zrcadlové převrácení vzoru svisle rozpojení všech pinů rozpojení pinu, na který je aktuálně ukazováno toto spojení je (required-povinné, recommendeddoporučené, optional-možné) – touto volbou určujeme, jak bude popis tohoto signálu zobrazen v nápovědě pro tento VI (tučně, normálně, šedě)
Do nápovědy k danému VI v nadřazené hierarchii se přebírají názvy prvků čelního panelu u povinných a doporučených prvků vždy, tedy i při redukované podobě nápovědy. U volitelných prvků pouze při zobrazení plné nápovědy. 8.2. MOŽNOSTI NASTAVENÍ EFEKTŮ PRO MÓD BĚHU PROGRAMU VIRTUÁLNÍHO PŘÍSTROJE Pro vytváření speciálních efektů při běhu virtuálních přístrojů slouží možnost nastavení těchto efektů pomocí položky VI Properties… roletového menu v editačním módu vyvolaném v prostoru vyhrazeném pro ikonu a konektor VI. Tyto efekty se uplatňují převážně běží-li daný virtuální přístroj jako subVI volaný nadřazeným VI. Po vyvolání této možnosti z pop-up menu je otevřeno dialogové okno s kruhovým přepínačem mezi volbami. Ve všech případech si může uživatel pomocí sady dvouhodnotových přepínačů určit modifikaci odpovídající jeho představám.
Obr. 67.: Dialogové okno pro výběr nastavení chování VI © Doc. Ing. Jan Žídek, CSc.
8-92
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
General • • • • •
Edic Icon Location Current Current Changes Revision History
Memory Usage
zobrazí dialog pro vytvoření/úpravy obrázku ikony zobrazuje cestu kde je VI uloženo značí poslední číslo verze dotyčného VI zobrazí změny provedené ve VI od posledního uložení zobrazí historii komentářů uložených s tímto VI
zobrazuje zaplnění kapacity disku a systémové paměti tímto VI.
Documentation • VI Description • Help Tag • Help Path • Browse
zobrazuje text zobrazující se v okně Context Help při pohybu myší nad ikonou VI obsahuje název souboru HTML, nebo klíčové slovo obsahu ke kterému se má připojit v zkompilované nápovědě obsahuje cestu k HTML, nebo zkompilované nápovědě kterou chcete připojit z okna Context Help. Jeli toto pole prázdné, pak se v okně Context Help nezobrazí modrý text linku k detailu nápovědy zobrazí dialog pro nalistování souboru HTML, nebo zkompilovaného souboru nápovědy
Revision History
• Use the Default History Settings použití globálních nastavení z karty Revision History. Odškrtnutím lze zpřístupnit volby pro uživatelské nastavení • Add an Entry Every Time this VI is saved přidá položku při každém uložení VI • Prompt for Comment When this VI is Closed vyzve ke komentáři při zavírání VI • Prompt for Comment When this VI is Saved vyzve ke komentáři při ukládání VI • Record History Comments Generated by LabVIEW automatické generování komentářů při uložení VI, jestliže LabVIEW udělalo jakoukoli automatickou změnu (např. rekompilace v nové verzi LabVIEW) • View Current Revision History zobrazí historii komentářů uloženou s tímto VI
Security • Unlocked (no password) umožnění editace VI jakémukoli uživateli • Locked (no password) zamknutí VI aby uživatel pro editaci musel VI nejprve z tohoto okna odemknout
© Doc. Ing. Jan Žídek, CSc.
8-93
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• Password-protected
ochrana VI před editací a prohlížením Uživatelem bez patřičného hesla. změna hesla VI
• Change Password Window Appearance • Windows Title • Same as VI Name • Top-level Application Window
• Dialog
• Default • Custom
titulek okna (stejný jako pojmenování VI – same as VI name) užije jména VI souboru pro titulek okna zobrazí lišty Menu a Titulku, skryje posuvníky a lištu nástrojů, umožní uživateli uzavřít okno, povolí run-time zkratky, zakáže změnu velikosti panelu, umožní zobrazení panelu kyž je zavolán když je okno otevřeno není možno manipulovat s jinými okny LabVIEW. Dialog je stále na popředí, nemá lištu menu nástrojů ani posuvníky, nelze měnit velikost, lze použít klávesové zkratky, uzavřít okno, když je VI zavoláno zobrazí se panel použije standardní nastavení LabVIEW použije uživatelem zvolené nastavení přístupné přes tlačítko Customize…
Obr. 68.: Volby pro nastavení Custom
• Window has Title Bar • Show Menu Bar • Show Scroll Bars • Show Toolbar When Running • Show Abort Button • Show Run Button
© Doc. Ing. Jan Žídek, CSc.
okno aplikace má v záhlaví řádek s názvem a nástroji pro manipulaci s oknem povoluje zobrazení hlavního menu na čelním panelu v módu běhu programu povoluje zobrazení rolovacích posuvníků na čelním panelu zobrazí lištu nástrojů zobrazení nástroje pro zastavení běhu programu povolení zobrazení nástroje spuštění běhu programu
8-94
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• Show Continuous Run Button • • • • • • • • • •
zobrazení nástroje pro opakované spouštění běhu programu Highlite
Boolean zdůrazni objekty boolean s přiřazenou klávesou Return Auto-Center automatické vycentrování okna na obrazovce Window is Modal zobrazí panel nad všemi ostatními panely LabVIEW dokud nebude okno uzavřeno nebo otevřeno jiné okno s vlastností modal Allow User to Close Window dovoluje uživateli uzavřít okno s aplikací Allow User to Resize Window dovoluje uživateli změnu velikosti okna Allow User to Minimize Window dovoluje uživateli minimalizovat okno Allow Run-Time Shortcut Menu povoluje prvkům na čelním panelu za běhu VI užít zkratky z menu data operací Show Front Panel When Called automaticky otevře čelní panel, když je zavoláno SubVI Close Afterwards if Originally Closed uzavře SubVI když je uzavřeno originální VI Show Front Panel When Loaded automaticky otevře přední panel, když je VI nahráno
Window size •
Minimum Panel Size o
Width
výška
o
Height
šířka
o
Set to Current Size nastavení výšky a šířky podle aktuální velikosti čelního panelu
• Size the Front Panel to the Width and Height of the Entire Screen Automaticky změní velikost panelu pro plné zobrazení při běhu aplikace. Při přepnutí do editačního módu zůstane v novém stavu a neber v potaz záznam o originální velikosti a pozici • Maintain Proportions of Window for Different Monitor Resolutions Změní velikost, aby panel zabíral shodně místa na různých rozlišeních • Scale All Objects on Front Panel as the Window Resizes Automaticky změní velikost prvků na čelním panelu dle velikosti panelu. Text má pevnou velikost a tímto nastavením se jeho velikost nezmění
Execution
(možnosti běhu programu)
• Show Front Panel When Loaded při nahrání souboru do paměti ukáže čelní panel daného subVI • Show Front Panel When Called ukáže čelní panel, je-li volán nadřazeným VI • Close Afterwards Originally Closed po ukončení běhu jako subVI uzavře čelní panel ve spojení s předchozí volbou simuluje chování dialogového okna • Run When Opened při otevření souboru běží činnost tohoto subVI - lze použít i pro VI v nejvyšším stupni hierarchické struktury a tím aplikaci automaticky spouštět po nahrání do paměti © Doc. Ing. Jan Žídek, CSc.
8-95
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• Suspend When Called
Same as caller
nasadí bod přerušení do počátku tohoto subVI - běh programu se v tomto místě zastaví a řízení je předáno uživateli povoluje reentrantní běh daného VI volba priority vykonávání backround priority – nejnižší, normal priority, above normal priority, high priority, time critical priority –nejvyšší a subroutine jako zvláštní typ priority povoluje reentrantní běh daného VI při otevření souboru běží činnost tohoto subVI - lze použít i pro VI v nejvyšším stupni hierarchické struktury a tím aplikaci automaticky spouštět po nahrání do paměti nasadí bod přerušení do počátku tohoto subVI - běh programu se v tomto místě zastaví a řízení je předáno uživateli preferované vlákno, v němž tento VI poběží v multithreading systemu totéž vlákno jako volající VI
Other 2
jiné vlákno než volající VI
Other 1
jiné vlákno než volající VI
Data Acquisition
vlákno pro DAQ
Instrument I/O
vlákno pro komunikaci s přístroji
Standard
standardní vlákno
User Interface
vlákno pro rozhraní s uživatelem
• Reentrant Execution • Priority
• Reentrant Execution • Run When Opened • Suspend When Called • Preferred Execution System
• Auto Handling of Menus at Launch LabVIEW automaticky zpracovává výběr z menu. Při zrušení tohoto nastavení bude v run-time menu lišta zrušena a je nutno řídit výběr funkcí Get Menu Selection • Allow Debugging umožní ladění, např. nastavení přerušení vykonávání programu, zvýrazněni aj. • Clear Indicators When Called indikátory, např. graf je vynulován pokaždé, když je voláno VI Print • Print With Execution vytisknutí čelního panelu, když VI dokončí svou činnost • Print Header (name, date page number) tisk hlavičky • Surround Panel with Border orámuj panel • Scale Printed Panel to Fit Page uprav velikost podle velikosti papíru • Use Custom Page Margins nastavení horního (top), dolního (bottom), pravého (right) a levého (left) okraje stránky v palcích (inch) nebo centiimetrech (cm)
V případě, že má uživatel zakázáno zobrazení hlavní nabídky i palety nástrojů běhu programu, lze do editačního módu přepnout jedině pomocí odpovídajících horkých kláves , běžící aplikace se dá zastavit dvojicí horkých kláves .
© Doc. Ing. Jan Žídek, CSc.
8-96
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Některé volby jsou uživateli dostupné v roletovém menu prvku subVI v blokovém diagramu nadřazeného VI v položce SubVI Node Setup:
Obr. 69.: Volby pro běh VI vyvolané z roletového menu na ikonce VI v nadřazené vrstvě hierarchie
Posledními volbami pro VI jsou volby týkající se dokumentování postupu vývoje tohoto VI. Toto dokumentování se provádí textovým popisem zadávaným průběžně při vývoji daného virtuálního přístroje do okna History, které lze zpřístupnit přes položku menu Tools - VI Revision History. Zde si může dělat vývojář poznámky sám pro sebe, nebo při práci více lidí v týmu zde lze zadávat poznámky pro další členy vývojového týmu.
Obr. 70.: Okno pro vytváření historie vývoje daného VI
© Doc. Ing. Jan Žídek, CSc.
8-97
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
8.3. SYNCHRONNÍ, ASYNCHRONNÍ A REENTRANTNÍ PROVÁDĚNÍ BLOKŮ APLIKACE 8.3.1. Asynchronní provádění bloků aplikace Asynchronní běh bloku subVI může být spuštěno simultánně spolu s dalšími bloky. CPU počítače může v daném okamžiku provádět kód pouze jednoho bloku. V tomto smyslu simultánně znamená provádění malého úseku kódu různých bloků střídavě přidělováním kapacity CPU. LabVIEW v sobě skrývá systém víceúlohového běhu, který přerušuje vykonávání kódu bloku, který má k dispozici všechna svá vstupní data a přepíná na vykonávání kódu dalšího bloku, který má rovněž k dispozici všechna vstupní data. Řadič priority přiděluje kódu daného bloku kapacitu CPU na dobu, která odpovídá jeho prioritě, potom přeřazuje tento blok na konec fronty, kterou obhospodařuje. Z této fronty je blok vyřazen po dokončení své činnosti. Asynchronně se provádějí bloky odpovídající strukturám, vstupně/výstupním funkcím, časovacím funkcím a uživatelem definovaným subVI. 8.3.2. Synchronní bloky Code Interface Nodes (CINs) a všechny výpočetní funkce jsou prováděny jako synchronní bloky. Kód bloku je prováděn bez přepínání na provádění jiných bloků a teprve po jeho dokončení je kapacita CPU předána pro provádění jiných bloků. Většina VI z knihovny Analysis obsahuje v sobě bloky CIN, takže jsou jako celek prováděny synchronně. Normálně se uživatel nemusí starat o to, zda jsou bloky prováděny synchronně nebo asynchronně a může brát jejich provádění jako paralelní podle principu Data Flow. Díky víceúlohovosti systému LabVIEW lze tedy editovat některý VI, když jiný zrovna běží a nehrozí ani nebezpečí nutného vypnutí počítače při zacyklení programu nekonečným cyklem.
8.3.3. Priorita V některých případech lze určit prioritu běhu bloku v nastavení VI Preferences... Existuje pět úrovní priority: •
backround priority – nejnižší,
•
normal priority,
•
above normal priority,
•
high priority,
•
time critical priority – nejvyšší
•
subroutine jako zvláštní typ priority.
Nejnižší úroveň priority je úroveň backround priority, blok s vyšší prioritou je proveden před blokem s nižší prioritou. Lze tak vytvořit umělé pořadí provádění bloků diagramu. Ve frontě řadiče priority jsou nejprve všechny bloky s vyšší prioritou, které se dělí o kapacitu CPU a teprve po jejich dokončení se začínají provádět bloky s nižší prioritou. Nejvyšší prioritou je priorita subroutine, která je v některých ohledech speciální. Běží-li některý VI s prioritou subroutine, žádný jiný nebude spuštěn, dokud se tento nedokončí. Provádění těchto bloků
© Doc. Ing. Jan Žídek, CSc.
8-98
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
je tedy sekvenční. VI s touto prioritou může volat VI se stejnou prioritou, ale nikoliv s prioritou nižší. Při provádění VI s touto prioritou není dokonce obsluhován ani jeho čelní panel. Za normálních okolností nemůže LabVIEW provádět střídavě vícenásobné volání téhož bloku. Normální subVI je použitelný pouze sériově. To je důležité například komunikuje-li subVI s nějakým vstupně/výstupním zařízením. Jinak může dojít ke zhroucení komunikace.
8.3.4. Reentrantní provádění bloků
Reentrantní provádění bloků znamená, že je možné provádět několikanásobně volaný blok paralelně. Každé volání takovéhoto bloku subVI totiž vytváří separátně kopii dat pro tento blok. To je užitečné ve třech případech: • jestliže VI obslužného programu řídí a komunikuje s fyzickým přístrojem a musí řídit několik identických přístrojů • jestliže VI čeká specifikovaný časový interval nebo dojde k vypršení nastaveného času • jestliže VI obsahuje data, která nemohou být sdílena s jinými položkami tohoto VI, což je protiklad ke globálním proměnným, které jsou naopak ke sdílení určeny Reentrantní provádění VI se povoluje nastavení VI Preferences... Při tomto nastavení se mnoho jiných položek stává zakázanými. Tyto zakázané položky není možno obsloužit, protože se systém musí starat o přepínání mezi rozdílnými kopiemi dat a o různý stupeň rozpracovanosti těchto dat.
8.3.5. Řízení několika identických přístrojů pomocí obslužného programu Předpokládejme, že je k dispozici digitální voltmetr, který chcete ovládat pomocí VI s názvem DVM. Pro provedení měření tímto přístrojem je nutno provést tuto sekvenci příkazů: •
zápisem do přístroje jej nakonfigurovat a nastavit trigger
•
čekat, až přístroj oznámí dokončení měření požadavkem na obsluhu
•
vyčíst naměřená data
Graficky to lze znázornit následujícím schématem:
Init1, Trig1
Read 1 Wait 1
Obr. 71.: Řízení digitálního voltmetru z aplikace
© Doc. Ing. Jan Žídek, CSc.
8-99
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Mezi kroky 1 a 3 LabVIEW čeká, až přístroj doměří. Čekání je asynchronní, takže program může provádět i jiné činnosti paralelně. Nyní předpokládejme, že jsou k dispozici dva identické voltmetry. Lze tedy zkopírovat DVM jako DVM2 a změnou GPIB adresy ve druhém VI ovládat tímto VI druhý voltmetr. časový diagram obsluhy obou voltmetrů následující:
Init1,
Read Init2,Trig Wait1
Read2
Wait2
Obr. 72.: Sériová obsluha dvou digitálních voltmetrů v čase
Lze dosáhnout efektivnosti předchozího přístupu bez nutnosti duplikátu VI tím, že VI DVM bude spouštěn jako reentrantní, čímž je možno vícenásobné volání tohoto VI provést paralelně. V tomto případě je nutno zvážit okolnosti, které by vedly k havárii programu ( dvojí volání téhož voltmetru) a programově je vyloučit. Doporučená architektura aplikace při tomto přístupu je následující:
App1
App2
App3
DVM
DVM
DVM
DVM
Obr. 73.: Paralelní využití jednoho obslužného programu s využitím reentrantnosti spouštění VI
Bloky označené App1 - App3 jsou aplikace nejvyššího stupně hierarchie. Jedna z nich např. měří závislost výstupního napětí testované jednotky na frekvenci, druhá hlídá úbytky napětí na odporech a třetí kalibruje jiný přístroj. Ve spodní vrstvě hierarchie je obslužný program DVM driver spouštěný jako reentrantní. Ve střední vrstvě jsou tři nereentrantní přístroje DVM1 - DVM3, jejichž účelem je řazení požadavků na každý přístroj. Každý z nich obsahuje volání DVM driveru a nastavení GPIB adresy a nastavení voltmetru pro každou úlohu.
© Doc. Ing. Jan Žídek, CSc.
8-100
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
8.3.6. VI, který čeká specifikovaný časový interval Následující příklad ukáže nutnost reentrantnosti subVI, který bude zajišťovat čekání specifikovaný časový interval. Tento VI s názvem zzz.vi má následující strukturu:
Obr. 74.: VI, který čeká specifikovaný interval
Činnost tohoto VI je jednoduchá - po spuštění čeká zadaný počet milisekund a po uplynutí tohoto časového intervalu nastaví na svém výstupu hodnotu logické jedničky. Následující VI bude využívat několikanásobně předchozího jako subVI ve své struktuře:
Obr. 75.: Vícenásobné použití VI, který čeká specifikovaný časový interval
Tento VI bude fungovat správně jedině tehdy, bude-li u subVI nastavena možnost reentrantního spouštění tohoto subVI. Pouze u tohoto způsobu bude mít každé spuštění tohoto VI svou datovou oblast, která zajistí jeho korektní průběh.
8.3.7. Použití dat, která nemohou být sdílena Tento případ nutného reentrantního spouštění subVI si dokumentujme na subVI, který bude zajišťovat průběžné průměrování tří posledních hodnot číselné řady. Tento subVI bude mít následující strukturu, v níž je využito neinicializovaných posuvných registrů cyklu typu for:
© Doc. Ing. Jan Žídek, CSc.
8-101
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 76.: VI pro výpočet průměru tří čísel
Použití tohoto subVI při několika násobném volání ukazuje následující příklad:
Obr. 77.: Vícenásobné použití VI pro průměrování tří čísel
I tento příklad bude korektně fungovat jedině za předpokladu, že se zabrání vzájemnému sdílení dat v neinicializovaných posuvných registrech, které jsou v cyklu typu for v rámci subVI s názvem PRU, nastavením tohoto subVI do módu reentrantního spouštění.
© Doc. Ing. Jan Žídek, CSc.
8-102
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
9. PRÁCE S GRAFY 9.1. ZÁKLADNÍ POJMY Součástí grafického rozhraní k uživateli tvořeného ve vývojovém prostředí LabVIEW čelním panelem virtuálního přístroje jsou velmi často i grafy. Z hlediska dělení objektů čelního panelu na prvky ovládací (směr toku informace od uživatele k systému) a indikační (směr toku informace od systému k uživateli) se jedná prakticky vždy o objekty indikační. Indikátor grafu tedy představuje dvourozměrný displej určený pro zobrazení jednoho nebo více průběhů. 9.1.1. Rozdělení grafů Ve vývojovém prostředí LabVIEW lze indikátory grafů zásadně rozdělit podle dvou hledisek: •
podle způsobu předávání dat a zobrazení průběhů v grafu:
•
statické indikátory (GRAPHS), kde pro zobrazení jednoho či více průběhů je nutné předem připravit data popisující celý průběh, popř. průběhy a předat je objektu statického grafu jako celek, graf je zobrazen jednorázově podle zadání dat pro osu nezávisle proměnné se statické grafy dělí na: • průběhové (časové) grafy (waveform graph), u kterých se předpokládá rovnoměrné rozdělení bodů tvořících graf na ose x dané počátkem a přírůstkem - nejčastěji se tento typ grafu používá pro zobrazení časového průběhu veličiny • XY grafy (XY graph), u kterých se předpokládá libovolné rozdělení bodů tvořících graf na ose x - s využitím tohoto typu grafu je možno zobrazit libovolný průběh v kartézských souřadnicích
•
registrační indikátory (CHARTS), kde vstupní data jsou předávána bod po bodu, popř. jako bloky dat představující úseky zobrazovaného průběhu. Registrační graf postupně doplňuje průběh tak, jak jsou mu dodávána vstupní data.
•
podle počtu dimenzí grafu: • grafy dvourozměrné - statické i registrační • grafy třírozměrné zobrazované v ploše - statické i registrační • grafy třírozměrné zobrazované v axonometrickém pohledu s možností natáčení
Tomuto rozdělení odpovídá i nabídka v paletovém menu objektů čelního panelu, kde se nachází tři řádky ikonek pokrývajících postupně všechny tři výše popsané typy grafů.
Obr. 78.: Paletová nabídka volby druhu grafu
© Doc. Ing. Jan Žídek, CSc.
9-103
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
9.2. DATOVÉ STRUKTURY PRO INDIKÁTORY GRAFŮ Podle zvoleného typu grafu je nutno pro něj připravit i vhodnou datovou strukturu odpovídající vybranému typu grafu a počtu požadovaných průběhů v něm zobrazených. V následujícím popisu datových struktur je použita tato konvence: • •
[y] {y1,y2,y3}
představuje jednorozměrné pole prvků y představuje cluster s prvky y1,y2 a y3
Pro programové vytvoření odpovídajících datových struktur se používá: • •
v případě pole funkce Build Array nebo zapnutá indexace na výstupu z programových struktur cyklu typu FOR a typu WHILE. v případě clusteru funkce Bundle eventuálně funkce Bundle by Name
V případě složitějších datových struktur se tyto funkce kombinují, přičemž se postupuje od středu definice datové struktury k okrajům.
9.3. REGISTRAČNÍ GRAFY (WAVEFORM CHART) Jak již bylo řečeno, používají se tyto grafy pro zobrazení postupně vznikajících průběhů - data pro zobrazení jsou na indikátor grafu posílána postupně.
Obr. 79.: Základní podoba registračního grafu
© Doc. Ing. Jan Žídek, CSc.
9-104
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Při definování indikátoru grafu určuje uživatel mimo jiné: • •
šířku zobrazovaného průběhu v počtu bodů - lze si to představit jako okno dané šířky, přes které se dívám na zobrazovaný průběh – zadává se jako dolní a horní mez při popisu osy x šířku zapamatované části grafu v počtu bodů, která je obvykle větší než šířka zobrazovaného průběhu a umožňuje mi tak podívat se i na starší data, která se nevejdou do zobrazované části průběhu – zadává se přes roletové menu v položce Chart History Length…
Obr. 80.: Volba hloubky vyrovnávací paměti pro zapamatování části dat registračního grafu
9.3.1. Registrační graf zobrazující jeden průběh
Slouží pro postupné zobrazování jednoho průběhu v grafu. Tento typ indikátoru grafu může přijímat data v jednom z následujících formátů: • •
y - skalární hodnota (jednoduchý datový typ) - odpovídá zobrazení následujícího bodu průběhu [y] - 1D pole - odpovídá zobrazení úseku o n bodech daného průběhu, kde n je počet prvků v poli
Z hlediska časové režie potřebné pro překreslení registračního grafu je velmi výhodné dělat aktualizaci tohoto grafu dávkově, t.j. využívat druhé popsané možnosti.
© Doc. Ing. Jan Žídek, CSc.
9-105
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 81.: Ukázka použití registračního grafu pro jeden průběh
Obr. 82.: Dávková aktualizace registračního grafu po deseti bodech
9.3.2. Registrační graf zobrazující více průběhů Slouží k postupnému zobrazování více průběhů v jednom grafu. Tento typ indikátoru grafu může přijímat data v jednom z následujících formátů: •
{ y1, y2, ....yn } - cluster obsahující následující body zobrazovaných průběhů (počet prvků v clusteru odpovídá počtu zobrazovaných průběhů)
© Doc. Ing. Jan Žídek, CSc.
9-106
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
[ { y1, y2, ....yn }] - pole clusterů, kde každý cluster obsahuje následující bod pro jednotlivé průběhy - počet prvků (clusterů) v poli odpovídá počtu bodů přidaných k jednotlivým průběhům, počet prvků v clusterech odpovídá počtu zobrazovaných průběhů
Obr. 83.: Zobrazení více průběhů v registračním grafu
9.3.3. Volitelné části indikátorů registračních grafů:
Indikátor registračního grafu je objekt skládající se z více části, které lze zviditelňovat nebo skrývat v položce Visble Items v roletovém menu objektu grafu: • • • • • • • • • •
Label Caption Plot Legend Scale Legend Graph Palette Digital Display Scrollbar X scale Y scale Unit Label
pojmenování grafu volně umístitelné na čelním panelu titulek grafu, neovlivní název objektu, neobjeví se v blokovém diagramu popisy jednotlivých průběhů s možností volby typů čar a jejich barvy názvy a škálování os paleta s nástroji pro práci s grafem (posuny, zoom ...) digitální display, v němž se zobrazuje poslední hodnota každého průběhu rolovací lišta pro posun v rámci historie grafu popis osy x popis osy y popis fyzikálních jednotek
© Doc. Ing. Jan Žídek, CSc.
9-107
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 84.: Ukázka volitelných částí grafu
9.3.4. Operace s daty v registračních grafech V položce Data Operations roletového menu grafu lze najít standardní položky, které se vyskytují u všech objektů: • Reinitialize to Default Value • Make Current Value Default • Cut Data • Copy Data
inicializace grafu na přednastavenou hodnotu přebrání současného stavu grafu jako přednastavené hodnoty odebrání dat z grafu do zápisníku zkopírování dat do zápisníku
• Paste Data
vložení dat ze zápisníku
• Clear Chart
vložení popisu ke grafu - tento popis je dosažitelný při běhu programu přes pravé tlačítko myši (není-li tato možnost zakázána) a může sloužit jako nápověda vymazání grafu
• Description
V položce Advanced lze nalézt i speciální položky rozšiřující možnosti akcí s grafy: • Autoscale x • Autoscale y © Doc. Ing. Jan Žídek, CSc.
zapnutí a vypnutí automatické změny měřítka osy x zapnutí a vypnutí automatické změny měřítka osy y 9-108
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• Update Mode • Strip Chart • Scope Chart • Sweep Chart
změna módu aktualizace grafu: posuvný graf - po dosažení pravého okraje se celý graf posouvá o jeden bod doleva při každé aktualizaci osciloskopický graf - po dosažení pravého okraje je graf smazán a začíná se vykreslovat znovu odleva osciloskopický graf se stěračem - po dosažení pravého okraje se stěrač v podobě svislé červené čáry přesouvá doprava a za ním je průběh aktualizován - obdoba předešlého, ale graf se při přechodu nemaže
Obr. 85.: Operace s daty prostřednictvím roletového menu
9.3.5. Další položky roletového menu pro práci s registračními grafy • X scale • Marker Spacing • Add Marker • Delete Marker • Formating • Style • Mapping • Autoscale x • Loose Fit • Y scale © Doc. Ing. Jan Žídek, CSc.
volby pro osu x: rozteč popisu na ose x: Uniform (pravidelná), Arbitrary (uživatelsky definovaná - značkami na ose lze pohybovat myší) přidej značku uber značku volby pro popis osy x - formát, počet des. míst atp. styl popisu osy lineární nebo log, pro osu x lze užít pouze lineární autromatické měřítko pro osu x zarovnání konce měřítka rovnoměrně se značením osy tytéž volby jako pro osu x 9-109
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• Transpose Array • Stack Plots
• Chart History Length
transpozice pole (záměna os u některých typů grafů) přepnutí do modu, ve kterém je každý průběh znázorněn v samostatném grafu - tento mód má výhodu v tom, že každý průběh může mít jiné měřítko osy y zvolené optimálně vůči svému rozsahu - a zpět do tzv multi-plot grafu (všechny průběhy v jednom grafu). umožňuje nastavit velikost tzv. History bufferu, tj. počtu bodů, odpovídajících délce tohoto typu indikátoru na obrazovce. Default hodnota je 1024 bodů.
Obr. 86.: Položky roletového menu pro popis osy x
9.3.6. Volby dosažitelné přes roletové menu v legendě registračního grafu Další upřesňující nastavení a volby jsou pro registrační graf dosažitelné v roletovém menu v legendě pro jednotlivé průběhy. V legendě lze jednak popisovačem doplnit popis ke každému průběhu a dále zvolit další upřesnění pro tento průběh přes roletové menu s následujícími položkami: • Common Plots • Colour • Line Style • Line Width
v této položce je možno volit jeden z šesti předefinovaných typů grafů (spojnicový, bodový, spojnicový s vyznačenými body, s vyplněním k nulové úrovni, čárový, sloupcový) volba barvy průběhu volba jednoho z pěti typů čar volba jedné z šesti tlouštěk čáry (ve Windows použitelná pouze pro plnou čáru)
© Doc. Ing. Jan Žídek, CSc.
9-110
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• Anti-Aliased • Bar Plots • Fill Base Line • Interpolation • Point Style
vyhlazení průběhu grafu volba šířky sloupce pro sloupcový diagram volba vyplnění plochy volba interpolace mezi body, z nichž je konstruován graf volba jednoho ze sedmnácti tvarů bodů
Obr. 87.: Položky roletového menu legendy registračního grafu
9.4. STATICKÉ GRAFY (GRAPHS) Statické grafy předpokládají přípravu celého průběhu a jeho zobrazení v grafu naráz. LabVIEW dále rozlišuje dva typy statických grafů podle způsobu určení jednotlivých bodů zobrazovaného průběhu: • Časový průběh signálu (Waveform Graph), kde vstupní data jsou zadávána vektorem funkčních hodnot (např. naměřených dat nebo vypočtených funkčních hodnot), přičemž se předpokládá, že data jsou rovnoměrně rozložena vzhledem k hodnotám osy pořadnic, tj. osy x. • Kartézský graf (XY Graph), kde vstupní data jsou tvořena množinou uspořádaných dvojic x,y, tj. každý bod grafu je určen svými souřadnicemi v kartézském systému.
© Doc. Ing. Jan Žídek, CSc.
9-111
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
9.4.1. Časové statické grafy zobrazující jeden průběh U statického grafu s časovým průběhem (Waveform Graph) se předpokládá rovnoměrné rozložení bodů, z nichž je konstruován graf vzhledem k ose x. V přednastavených hodnotách se předpokládá počátek takovéhoto grafu v bodě 0 na ose x a přírůstek mezi body grafu na ose x rovný jedné.
Obr. 88.: Standardní podoba statického grafu
Pro takovýto statický graf se předpokládá konstrukce následující datové struktury: • [y]
1D pole dat, představuje y - souřadnice bodů grafu
V případě, že graf má začínat s nenulovou souřadnicí na ose x a přírůstek mezi jeho body na ose x je různý od jedničky, předpokládá takovýto statický graf konstrukci následující datové struktury: • {x0, dx,[y]}
cluster tvořený počátkem x0, přírůstkem dx a jednorozměrným polem y - souřadnic bodů grafu
© Doc. Ing. Jan Žídek, CSc.
9-112
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 89.: Programové vytvoření pole pro zobrazení ve statickém grafu (předpoklad x0=0, dx=1)
Obr. 90.: Programové vytvoření dat pro statický graf x0=5, dx=3
9.4.2. Kartézské statické grafy zobrazující jeden průběh
© Doc. Ing. Jan Žídek, CSc.
9-113
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Není-li splněn požadavek rovnoměrného rozložení bodů grafu vzhledem k ose x, je potřeba použít kartézský statický graf (XY Graph). V tomto případě je možná dvojí datová struktura, kterou je nutno pro takovýto graf připravit: • { [x], [y] }
cluster obsahující stejně velká jednorozměrná pole obsahující x - souřadnice a y - souřadnice bodů grafu, nebo
• [ {x, y} ]
pole clusterů, z nichž každý obsahuje dva prvky představující x -souřadnici a y - souřadnici jednoho bodu grafu (počet clusterů v poli odpovídá počtu bodů grafu)
To, kterou z obou variant zvolíme závisí na konkrétním umístění indikátoru grafu ve struktuře blokového diagramu (co lze jednodušeji zkonstruovat).
Obr. 91.: Statický kartézský graf z polí hodnot x a y
Obr. 92.: Statický kartézský graf z pole clusterů obsahujících x a y souřadnici © Doc. Ing. Jan Žídek, CSc.
9-114
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
9.4.3. Statické časové grafy zobrazující více průběhů
Pro statické grafy zobrazující více průběhů existuje ještě bohatší škála datových struktur, ze které je možno vybírat. Pro statický graf s rovnoměrným odstupem bodů vzhledem k ose x (Waveform Graph) je to:
• [ [y1],[y2] .. [yn] ]
2D pole - t.j. matice, jejíž každý řádek představuje data jednoho průběhu -předpokladem je zde, že všechny průběhy začínají s nulovou x - souřadnicí a mají rovnoměrné rozdělení bodů vzhledem k ose x rovné jedné
• { Xo, dX, [ [y1],[y2] .. [yn] ] } cluster tvořený počátkem Xo, přírůstkem dX a 2D maticí, jejíž každý řádek představuje jeden průběh - každý průběh v tomto případě začíná s libovolnou x - souřadnicí a má libovolný rozestup mezi body vzhledem k ose x
• [{[y]}]
pole clusteru 1D polí, pro vykreslení grafu se předpokládá, že xo = 0 a dx = 1. Tento případ je vhodný pro situaci, kdy každá křivka je určena jiným počtem bodů.
• [{xo, dx, [ {[y1],[y2] .. [yn]]}] clustery tvořené počátkem xo, přírůstkem dx a polem clusterů 1D polí, z nichž každé představuje jeden průběh, tento případ je vhodný tehdy, jsou-li parametry xo, dx shodné, avšak počet bodů je pro každý průběh rozdílný
• [ { Xo, dX, [ y] } ]
© Doc. Ing. Jan Žídek, CSc.
pole clusterů tvořených počátkem xo, přírůstkem dx a 1D polem, představujícím y souřadnice pro jeden průběh, tento případ je vhodný tehdy, jsou-li parametry xo, dx a počet bodů pro každý průběh rozdílný, tento poslední datový typ představuje nejobecnější případ z hlediska typu vstupních dat.
9-115
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 93.: Dva průběhy ve statickém časovém grafu
9.4.4. Statické kartézské grafy zobrazující více průběhů Pro kartézský statický graf existují pouze dvě kombinace datových struktur:
• [ { [ {x , y} ] } ] • [ { [x], [y] } ]
pole clusterů, každý bod je definován clusterem x, y pole clusterů polí [x] a [y] obsahujících x -souřadnice a y - souřadnice jednoho průběhu
Obr. 94.: Dva průběhy v kartézském statickém grafu © Doc. Ing. Jan Žídek, CSc.
9-116
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
9.4.5. Volitelné části indikátorů statických grafů: Indikátor statického grafu je objekt skládající se z více části, které lze zviditelňovat nebo skrývat v položce Visible Items v roletovém menu objektu grafu: •
Label
•
Caption
•
Plot Legend
•
Scale Legend
•
Graph Palette
paleta s nástroji pro práci s grafem (posuny, zoom ...)
•
Cursor Legend
okénko umožňující práci s kurzory ve statickém grafu
•
X scale
popis osy x
•
Y scale
popis osy y
•
Unit Label
popis fyzikálních jednotek
pojmenování grafu volně umístitelné na čelním panelu popisy jednotlivých průběhů s možností volby typů čar a jejich barvy
Obr. 95.: Části statického grafu
© Doc. Ing. Jan Žídek, CSc.
9-117
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
9.4.6. Operace s daty ve statických grafech V položce Data Operations roletového menu grafu lze nalézt standardní položky, které se vyskytují u všech objektů:
•
Reinitialize to Default
inicializace grafu na přednastavenou hodnotu
•
Make Current Value Default
přebrání současného stavu grafu jako přednastavené hodnoty
•
Cut Data
odebrání dat z grafu do zápisníku
•
Copy Data
zkopírování dat do zápisníku
•
Paste Data
vložení dat ze zápisníku
•
Clear Graph
vymazání grafu
V položce Advanced lze nalézt i speciální položky rozšiřující možností akcí s grafy:
•
Autoscale x
zapnutí a vypnutí automatické změny měřítka osy x
•
Autoscale y
zapnutí a vypnutí automatické změny měřítka osy y
•
Smooth Updates
změna módu aktualizace grafu při vypnutí této možnosti překresluje LabVIEW statický graf tak, že vymaže obsah a aktualizuje jej, což má za následek blikání grafu, při zapnutí této možnosti se aktualizace grafu děje ve vyrovnávací paměti mimo graf a po dokončení se přenáší do grafu - to má za následek odstranění blikání, ale potřebuje se více paměti ( na vyrovnávací paměť ) a snižuje se výkonnost systému (obsluha této vyrovnávací paměti) - globálně se tato možnost zapíná a vypíná i v položce menu Edit - Preferences - Front Panel
© Doc. Ing. Jan Žídek, CSc.
9-118
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 96.: Operace s daty ve statickém grafu
9.4.7. Další položky roletového menu pro práci s registračními grafy •
X scale
volby pro osu x:
•
Marker Spacing
rozteč popisu na ose x: Uniform (pravidelná), Arbitrary (uživatelsky definovaná - značkami na ose lze pohybovat myší)
•
Add Marker
přidej značku
•
Delete Marker
uber značku
•
Formating
volby pro popis osy x - formát, počet des. míst atp.
•
Style
styl popisu osy
•
Mapping
lineární nebo log, pro osu x lze užít pouze lineární
•
Autoscale x
automatické měřítko pro osu x
•
Loose Fit
zarovnání konce měřítka rovnoměrně se značením osy
•
Y scale
tytéž volby jako pro osu x
•
Transpose Array
transpozice pole (záměna os u některých typů grafů)
© Doc. Ing. Jan Žídek, CSc.
9-119
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 97.: Volby pro osu x ve statickém grafu
9.4.8. Volby dosažitelné přes roletové menu v legendě statického grafu Další upřesňující nastavení a volby jsou pro statický graf dosažitelné v roletovém menu v legendě pro jednotlivé průběhy. V legendě lze jednak popisovačem doplnit popis ke každému průběhu a dále zvolit další upřesnění pro tento průběh přes roletové menu s následujícími položkami: • Common Plots • Colour • Line Style • Line Width • Anti-Aliased • Bar Plots • Fill Base Line • Interpolation • Point Style
v této položce je možno volit jeden z šesti předefinovaných typů grafů (spojnicový, bodový, spojnicový s vyznačenými body, s vyplněním k nulové úrovni, čárový, sloupcový) volba barvy průběhu volba jednoho z pěti typů čar volba jedné z šesti tlouštěk čáry (ve Windows použitelná pouze pro plnou čáru) vyhlazení průběhu grafu volba šířky sloupce pro sloupcový diagram volba vyplnění plochy volba interpolace mezi body, z nichž je konstruován graf volba jednoho ze sedmnácti tvarů bodů
Tyto položky se shodují s položkami v registračním grafu. © Doc. Ing. Jan Žídek, CSc.
9-120
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
9.4.9. Kurzory Pro každý statický graf je možné vyvolat kurzorovou paletu. Kurzory je možné ovládat interaktivně využitím myši, nebo programově prostřednictvím tzv. uzlu vlastností objektu čelního panelu (Property Node). Neexistuje žádný limit počtu kurzorů, které je možné v grafu zobrazit.
Kurzorová paleta obsahuje: • • • • •
popisný text tzv. label souřadnice X a Y tlačítko pro volbu vzhledu kurzoru, tj. jeho tvaru jeho zobrazení tlačítko pro volbu kurzoru, jež bude ovládán tlačítky pro posuv kurzoru tlačítko pro volbu způsobu pohybu kurzoru (volné, vázané na body zobrazené křivky)
Pro vymazání již zobrazeného kurzoru či jeho přidání je třeba užít příkazy obsažené v nabídce Data Operation Insert Element Before a Delete Element.
Obr. 98.: Kurzorový display statického grafu
© Doc. Ing. Jan Žídek, CSc.
9-121
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
9.4.10. Paleta nástrojů pro práci s grafy Slouží pro zoomování a další operace s grafy jako je autoscaling, volba formátu popisu os a podobně . Zobrazuje a skrývá se pomocí položky Visible Items / Graph Palette a Scale Legend.
Obr. 99.: Paleta nástrojů pro akce s grafem
Škálování os – automatické se zapíná buď natrvalo přepínačem v poloze vpravo nebo jednorázově stiskem odpovídajícího tlačítka.
Obr. 100.:
Formát popisu os
Formát popisu os se volí po stisku odpovídajícího tlačítka v odpovídajícím paletovém menu. Pro zooming se dá vybrat některá z variant nabízená po stisku tlačítka.
Obr. 101.:
© Doc. Ing. Jan Žídek, CSc.
Varianty pro zooming grafu
9-122
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Po stisku tlačítka pod zoomingem lze pohybovat po stisku levého tlačítka myši plochou grafu vůči jeho osám. Poslední tlačítko uvolňuje operace zoomingu a pohybu grafem – nutné např. pro pohyb kurzorem v grafu.
© Doc. Ing. Jan Žídek, CSc.
9-123
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
10. PRAVIDLA MULTITASKINGU V LABVIEW 10.1. ZÁKLADNÍ FILOZOFIE Grafické vývojové prostředí LabVIEW má znaky shodné a rozdílné s textově orientovaným vývojovým prostředím. Shodným znakem je snaha integrovat do vývojového prostředí co nejvíce pomocných nástrojů jako je editor grafického rozhraní k uživateli, ladící prostředky apod. Dalším shodným znakem je, že grafické rozhraní k uživateli je nedílnou částí aplikace. Rozdílným znakem je to, že zatímco běh programu v textově orientovaných programech je řízen tokem příkazů podle toho, jak jsou uvedeny ve zdrojovém textu - jsou sekvenčně prováděny, běh programu v grafickém vývojovém prostředí je řízen tokem dat. Aplikace není prováděna shora dolů ani zleva doprava v blokovém diagramu, ale platí zde jediné pravidlo: každý blok blokového diagramu může spustit svou činnost tehdy, má-li na všech svých vstupech platná data a po dokončení poskytuje současně na všechny své výstupy vypočtené hodnoty. Aplikace tohoto pravidla znamená, že v daném okamžiku může být podmínka splněna na více blocích a je tedy potřeba rozhodnout, v jakém pořadí a jakým způsobem proběhne jejich zpracování. Pro tuto situaci platí ve vývojovém prostředí následující pravidla multitaskingu.
10.2. MULTITASKING A MULTITHREADING V PROGRAMOVACÍM JAZYKU G Většina počítačů je vybavena pouze jedním procesorem, takže v daném okamžiku může tento procesor zpracovávat pouze jednu úlohu. Multitaskingu se dosahuje tím že každá úloha běží velmi krátký okamžik a pak předá kapacitu procesoru další úloze. Je-li toto střídání dostatečně rychlé, je výsledný vjem podobný, jako by tyto úlohy běžely paralelně. Multitasking může být • •
Kooperativní – každá úloha dostane přidělený čas pro své vykonávání, není-li aplikace napsána korektně, může se stát, že tato úloha nevrátí řízení manažeru multitaskingu, takže ostatní úlohy nemohou dostat přidělen čas pro své vykonávání Preemptivní – každá úloha dostane přidělen pouze omezený čas a po jeho vyčerpání je přepnuto na jinou úlohu manažerem multitaskingu, takže nehrozí zhroucení, když úloha není korektně napsána
Vykonávání aplikace v programovacím jazyku G se řídí pravidly preemptivního multitaskingu. Aplikace je rozdělena do jednotlivých vláken (threads) a systém přepíná mezi jednotlivými vlákny podle pravidel preemptivního multitaskingu. Vzhledem k tomu, že je k dispozici pouze omezený počet vláken, může u aplikací s velkým množstvím paralelních úloh systém přejít na kooperativní multitasking, jsou-li všechna vlákna již využita. Operační systém se i nadále stará o preemptivní přepínání aplikace v LabVIEW a ostatních běžících úloh.
10.2.1. Základní multitasking v aplikaci vytvořené ve vývojovém prostředí LabVIEW Základní mechanismus multitaskingu je založen na frontě aktivních úloh. Do této fronty vstupují bloky, na kterých je splněno pravidlo data flow – na všech svých vstupech mají platná data. Sys-
© Doc. Ing. Jan Žídek, CSc.
10-124
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
tém přidělí úloze na vrcholu fronty kapacitu procesoru na definovaný čas a po jeho uplynutí mohou nastat následující situace: • • •
Úloha je ukončena a je tedy vyřazena z fronty aktivních úloh Úloha není po uplynutí přiděleného času ukončena a je zařazena na konec fronty aktivních úloh Úloha není po uplynutí přiděleného času ukončena a pokračuje ve svém provádění, je-li fronta aktivních úloh v tomto okamžiku prázdná
Následující obrázek ukazuje frontu aktivních úloh názorně:
CPU
Úloha
Úloha
Úloha
Úloha
Úloha
1
2
3
4
5
CPU
Úloha
Úloha
Úloha
Úloha
Úloha
2
3
4
5
1
Obr. 102.:
Fronta aktivních úloh
V LabVIEW běžícím v operačním systému Windows přiděluje systém multitaskingu úloze na vrcholu fronty aktivních úloh časový interval 155 ms, po uplynutí tohoto času je přepnuto na následující úlohu. Ve svém důsledku může toto chování vést v některých případech k nepříznivým projevům – názorně to lze ukázat na dvou nezávislých cyklech typu While, ve kterých je plnění registračního grafu hodnotami.
© Doc. Ing. Jan Žídek, CSc.
10-125
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 103.:
Dva paralelní datově nezávislé cykly
Výsledný efekt multitaskingu je takový, že běh obou grafů je střídavý a trhaný, jak každý z nich dostává svůj časový interval v rámci multitaskingu.
10.2.2. Funkce čekání Kromě aktivních funkcí existují v LabVIEW i funkce čekání – nebylo by efektivní, kdyby blok, který vykonává čekání, blokoval vrchol fronty aktivních úloh. Existuje proto ještě druhá fronta tzv. spících úloh, do které blok přechází po dobu vykonávání čekání. © Doc. Ing. Jan Žídek, CSc.
10-126
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
CPU
Úloha
Úloha
Fronta
1
2
aktivních úloh
Úloha
Fronta spících
3
úloh
Obr. 104.:
Fronta aktivních a spících úloh
Úloha vykonávající funkci čekání přechází po dobu jejího vykonávání do fronty spících úloh. Po dokončení čekání se vrací do fronty aktivních úloh na její konec. S využitím těchto znalostí lze upravit blokový diagram předchozí aplikace následovně:
Obr. 105.:
Využití funkce čekání
Výsledný efekt bude takový, že oba grafy budou probíhat zcela plynule a zdánlivě současně. Vysvětlení je takové, že v každém oběhu odchází blok cyklu do fronty spících úloh a okamžitě se © Doc. Ing. Jan Žídek, CSc.
10-127
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
odtamtud vrací, takže se oba cykly střídají na vrcholu aktivních úloh vždy po vykreslení jediného bodu. 10.2.3. Priorita VI Vhodnou volbou vstupních parametrů funkcí čekání v obou cyklech lze rozdělit kapacitu procesoru v žádaném poměru mezi ně. Kapacita procesoru se rozdělí v nepřímém poměru zadaných parametrů funkcí čekání. Tento způsob přidělování priority vykonávání bloků v aplikaci LabVIEW je mnohem bezpečnější, než využívání priority ve VI Properties… volbách u virtuálního přístroje.
Obr. 106.:
Přidělování priority provádění VI
Při přidělování funguje totiž fronta aktivních úloh jako fronta s více vstupy – pro každou úroveň priority jeden. Nejprve se provádějí VI s vyšší prioritou a teprve po jejich dokončení se přechází k vykonávání VI s nižší prioritou. Při špatně promyšlené struktuře aplikace se tak může stát, že VI s nižší prioritou nedostanou přidělenu kapacitu procesoru nikdy.
CPU
Obr. 107.: © Doc. Ing. Jan Žídek, CSc.
Úloha 1
Úloha 2
Úloha 3
Úloha 1
Úloha 2
vyšší
vyšší
vyšší
nižší
nižší
Fronta aktivních úloh při různých prioritách VI 10-128
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
10.2.4. Priorita Subroutine Nejvyšší prioritou je priorita subroutine. Používá se tehdy, má-li být VI vykonán nejrychleji jak to jen jde. Při této prioritě přebírá tento VI řízení mechanismu multitaskingu a nesdílí čas procesoru s jinými úlohami. Použití této priority má však několik omezení: • • • •
VI s prioritou subroutine neaktualizuje ani svůj čelní panel VI s prioritou subroutine nemůže volat jiné subVI s nižší prioritou Jelikož nespolupracuje s frontou aktivních úloh, nemůže využívat takové funkce jako je čekání, dialogové okno a funkce pro I/O Při použití subroutine priority lze zamezit jejímu přerušení i volbou Skip Subroutine Call if Busy, která je dostupná na roletovém menu vyvolaném na její ikoně. Běží-li subroutina v jiném vlákně, je volání tohoto VI přeskočeno a na výstupy se přenášejí default hodnoty
10.3. MULTITHREADING Od verze 5.0 podporuje vývojové prostředí LabVIEW na platformě operačního systému Windows vícevláknové zpracování aplikace. Multithreading je vlastně aplikace multitaskingu v rámci jedné aplikace. Aplikace je rozdělena na menší úlohy a tyto jsou prováděny paralelně. Aplikace musí být rozdělena tak, aby tyto menší úlohy opravdu mohly běžet paralelně. V nastavení voleb pro běh VI – VI Properties… – Execution je možno určit pro daný VI vlákno, ve kterém má běžet. Celkem jsou k dispozici tato vlákna: •
user interface
•
standard
•
instrument I/O
•
data acquisition
•
other 1
•
other 2
•
same as caller
Cílem je rozdělit aplikaci na části, které běží relativně nezávisle na jiných částech aplikace. Standardně běží VI ve vlákně standard. Kromě tohoto vlákna existují význačná vlákna pro obsluhu přístrojů (instrument I/O), vlákno pro obsluhu hardware pro sběr dat (data acquisition) a pro obsluhu grafického rozhraní k uživateli (user interface). Každé z vláken si vytváří svou vlastní frontu aktivních úloh. V tomto vlákně se neobsluhuje grafické rozhraní k uživateli. Vyvstane-li tato potřeba, přiděluje se řízení do vlákna user interface.
© Doc. Ing. Jan Žídek, CSc.
10-129
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
10.4. MECHANICKÉ AKCE NA PRVCÍCH TYPU BOOLEAN S činností vlákna User interface souvisí nastavování mechanických akcí na prvcích typy Boolean. Vývojový systém LabVIEW umožňuje uživateli nastavit tři základní mechanické akce na prvcích typu Boolean:
• Switch when pressed
ke změně hodnoty proměnné dojde v okamžiku stisku prvku
• Switch when released
ke změně hodnoty proměnné dojde v okamžiku uvolnění prvku
• Switch until released
ke změně hodnoty proměnné dochází po dobu stisku prvku
Ve vlákně User interface dochází k pravidelnému scanování stavu prvků na čelním panelu. Akce uživatele na prvku se však může odehrát velmi rychle mimo okamžik scanování stavu tohoto prvku. Aby se zamezilo ztrátě informace v takovémto případě (akce uživatele by byla ztracena), existuje ještě trojice mechanických akcí se zachycením:
• Latch when pressed
k zachycení změny hodnoty proměnné dojde v okamžiku stisku prvku
• Latch when released
k zachycení změny hodnoty proměnné dojde v okamžiku uvolnění prvku
• Latch until released
k zachycení změny hodnoty proměnné dochází po dobu stisku prvku
K zachycení dochází i tehdy, není li prvek v okamžiku akce uživatele scanován v aplikaci v rámci vlákna user interface. Zachycená hodnota je uložena do kopie alokované paměti, odkud je přenesena do vlastní proměnné v okamžiku vyčítání hodnoty prvku, takže žádná akce ze strany uživatele byť sebekratší nemůže být ztracena. Při použití mechanické akce na prvku typu boolean není však možno využívat lokální proměnné na tomto prvku boolean.
Přehled chování prvku boolean při všech možných mechanických akcích ukazuje příklad …LabVIEW/Examples/General/Controls/Booleans.llb/Mechanical Actions of Booleans.vi.
© Doc. Ing. Jan Žídek, CSc.
10-130
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 108.:
© Doc. Ing. Jan Žídek, CSc.
Příklad na mechanické akce prvku typu Boolean
10-131
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
11. SYNCHRONIZAČNÍ MECHANISMY V LABVIEW
11.1. ZÁKLADNÍ FILOZOFIE Jak již bylo řečeno, je běh aplikace vytvořené ve vývojovém prostředí LabVIEW řízen tokem dat. Platí zde jediné pravidlo: každý blok blokového diagramu může spustit svou činnost tehdy, má-li na všech svých vstupech platná data a po dokončení poskytuje současně na všechny své výstupy vypočtené hodnoty - v daném okamžiku může být podmínka splněna na více blocích. Při potřebě sekvenčního provádění bloků nebo synchronizace jejich běhu existuji ve vývojovém prostředí LabVIEW speciální mechanismy.
11.2. SEKVENČNÍ PROVÁDĚNÍ ČÁSTÍ APLIKACE V některých situacích je potřeba zajistit sekvenčnost provádění částí aplikace – např. při potřebě inicializovat některé proměnné určitou hodnotou. V zásadě se to dá udělat dvěma základními způsoby:
11.2.1. Programová struktura sekvence Tato struktura nemá obdobu v textově orientovaných programovacích jazycích, které jsou přirozeně sekvenční. V rámci této struktury jsou prováděny postupně části kódu prováděny v tom pořadí, jak jsou uvedeny v jednotlivých rámcích sekvence. Hodnoty proměnných mezi rámci sekvence lze předávat prostřednictvím obecné lokální proměnné, prostřednictvím speciální lokální proměnné v sekvenci nebo prostřednictvím globální proměnné. Lokální proměnná pro sekvenci se zřizuje pomocí položky roletového menu na okraji sekvence Add Sequence Local. Po zápisu hodnoty do této lokální proměnné ji lze vyčítat ve všech následujících rámcích sekvence. Hodnoty, které jsou přivedeny na okraj sekvence do výstupních tunelů, jsou k dispozici až po vykonání posledního rámce sekvence bez ohledu na to, ve kterém rámci byly do tohoto tunelu přivedeny.
© Doc. Ing. Jan Žídek, CSc.
11-132
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 109.:
Programová struktura sekvence
11.2.2. Umělá datová závislost Sekvenčního provádění částí aplikace lze dosáhnout i aplikací pravidla data flow. Z rámce (formálně se pro tento účel obvykle používá programové struktury sekvence s jedním rámcem), který má být proveden jako první, se vyvede jedna hodnota a přivede se na okraj rámce, který má být proveden až po dokončení předchozího, aniž se s ním jakkoli počítá.
© Doc. Ing. Jan Žídek, CSc.
11-133
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 110.:
Použití umělé datové závislosti pro zajištění sekvenčnosti
Ve výše uvedeném příkladu se cyklus nespustí, dokud se nenaplní všechny proměnné inicializačními hodnotami.
11.3. SYNCHRONIZAČNÍ MECHANISMY Vytvoříme-li ve vývojovém prostředí LabVIEW dva datově na sobě nezávislé cykly, není běh těchto cyklů vzájemně synchronizován, takže se časem začne rozcházet počet oběhů prvního a druhého cyklu vlivem toho, že náhodně oba tyto cykly sdílejí kapacitu procesoru s jinými úlohami, které souběžně běží v rámci operačního systému. Názorně tuto situaci ukazuje následující blokový diagram obsahující dva cykly datově na sobě nezávislé v nichž se plní vygenerovanou náhodnou hodnotou registrační graf odpovídající danému cyklu.
© Doc. Ing. Jan Žídek, CSc.
11-134
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 111.:
Nesynchronizovaný běh dvou cyklů
V případě nutnosti synchronizovat běh obou cyklů, je nutno vytvořit uměle synchronizační mechanismus – např. jako semafor na úrovni lokální nebo globální proměnné realizovaný klasickými prostředky LabVIEW.
Obr. 112.:
Synchronizace semaforem na úrovni klasických prostředků LabVIEW
© Doc. Ing. Jan Žídek, CSc.
11-135
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
V tomto případě bude i po libovolně dlouhém běhu aplikace počet oběhů obou cyklů a tím i počet bodů v obou grafech identický. Ve vývojovém prostředí LabVIEW však existují i speciální synchronizační mechanismy.
11.3.1. Occurrence - událost Occerrence neboli událost je speciální globální proměnná, kterou lze definovat, nastavit a čekat na její nastavení. Tyto funkce pro ovládání události jsou ve Functions/Advanced/Synchronization /Occurrences.
Obr. 113.:
Funkce pro ovládání události
S využitím těchto funkcí lze realizovat synchronizaci dvou cyklů podle následujícího blokového diagramu.
Obr. 114.:
© Doc. Ing. Jan Žídek, CSc.
Synchronizace dvou cyklů pomocí Occurrence 11-136
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
11.3.2. Semafor Semafor je globální proměnná, která řídí přístup ke sdíleným prostředkům. Hlídaná sekce nazývaná také jako kritická může být v daném okamžiku přístupná pouze jedné úloze (nebo omezenému počtu úloh). Nový semafor se vytváří pomocí funkce Create Semaphore.vi (Functions/Advanced/Synchronization/Semaphore palette). V této funkci se vstupním parametrem definuje, kolik úloh bude mít přístup do kritické sekce. Každá úloha v kritické sekci tento parametr dekrementuje a dosáhne-li nuly, musí ostatní úlohy čekat na uvolnění semaforu. Úloha indikuje potřebu vstupu do kritické sekce funkcí Acquire Semaphore.vi. Je-li v tuto chvíli velikost semaforu větší než nula, vrací funkce v parametru timed out FALSE a úloha se okamžitě provede. Je-li velikost semaforu v tuto chvíli nulová, čeká úloha na vstup do kritické sekce dokud nebude semafor k dispozici nebo dokud není vyčerpán nastavený čas čekání na semafor – v takovém případě je parametr timed out nastaven na TRUE, což indikuje, že se úloha do kritické sekce nedostala. Po dokončení kritické sekce uvolňuje úloha semafor funkcí Release Semaphore.vi. V takovém případě dostává semafor k dispozici první z čekajících úloh. Nebo není-li taková úloha, inkrementuje se hodnota semaforu o jedničku. Není-li již semafor dále zapotřebí, uvolňuje se z paměti funkcí Destroy Semaphore.vi. Jsou-li při volání této funkce některé úlohy čekající na vstup do kritické sekce, vrací okamžitě v parametru timed out hodnotu TRUE a je vyhlašována chyba.
Obr. 115.: © Doc. Ing. Jan Žídek, CSc.
Ukázka vytvoření semaforu 11-137
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
V tomto VI je zřízen semafor s hodnotou 1 (do kritické sekce má přístup pouze jedna úloha) a jsou zavolány subVI, které budou semafor používat.
Obr. 116.:
VI využívající semaforu pro vstup do kritické sekce
V tomto VI se používá funkcí požadující semafor a uvolňující semafor.
Obr. 117.:
Funkce pro práci se semafory
Pro práci se semafory jsou ve Functions/Advanced/Synchronization/Semaphore k dispozici následující funkce: •
Create Semaphore.vi
vytvoří semafor v kritické sekci)
•
Acquire Semaphore.vi
požadavek na semafor s udáním maximální doby čekání
•
Release Semaphore.vi
uvolnění semaforu
•
Destroy Semaphore.vi
zrušení semaforu
•
Get Semaphore Status
zjištění stavu semaforu
•
Not a Semaphore
zjištění, zda se jedná o semafor
© Doc. Ing. Jan Žídek, CSc.
s definovanou velikostí (počtem úloh
11-138
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
11.3.3. Rendezvous - setkání Synchronizuje dvě nebo více paralelních úloh ve specifickém místě aplikace. Každá úloha v tomto specifickém místě aplikace čeká, dokud v tomto místě nebude definovaný počet úloh. Všechny funkce pro práci s Rendezvous se nacházejí ve Functions/Advanced/Synchronization /Rendezvous.
Obr. 118.:
• • • • • •
Funkce pro práci se setkáními
Create Rendezvouz.vi
zřizuje speciální globální proměnná s udáním počtu úloh, které se musí v místě schůzky sejít. Wait at Rendezvous.vi čeká, dokud se nesejde definovaný počet úloh. Vstupním parametrem se udává maximální čas čekání. Destroy Rendezvous.vi ruší proměnnou Rendezvous, všechny čekající úlohy vyhlásí ve výstupním parametru timed out hodnotu TRUE a vyhlásí chybu. Resize Rendezvous.vi se mění počet úloh, které se v místě schůzky musí sejít. Get Rendezvouz Status.vi zjišťuje stav proměnné Rendezvous. Not a Rendezvous.vi zjišťuje, zda se jedná o Rendezvous.
Obr. 119.: © Doc. Ing. Jan Žídek, CSc.
Zřízení Rendezvous 11-139
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
V tomto VI se zřizuje proměnná Rendezvous s udáním počtu úloh, které se musí v tomto místě sejít a volají se subVI obsahující jednotlivé úlohy.
Obr. 120.:
Úloha využívající Rendezvous
V tomto subVI se čeká, dokud se v kritickém místě nesejde definovaný počet úloh a teprve pak se úloha vykoná.
© Doc. Ing. Jan Žídek, CSc.
11-140
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
11.3.4. Notification - oznámení Tento synchronizační mechanismus se používá v okamžiku, jestliže se data z jednoho zdroje používají ve více úlohách. Tyto úlohy čekají, dokud od zdroje nedostanou data. Data se (na rozdíl od fronty) neshromažďují ve vyrovnávací paměti a mohou být tedy ztracena. Funkce pro práci s Notification jsou k nalezení ve Functions/Advanced/Synchronization/Notification.
Obr. 121.:
Vytvoření oznámení pro synchronizaci úloh
V tomto VI se zřizuje proměnná oznámení a tři úlohy, které ho využívají. Úlohy využívající oznámení čekají na zdroj dat. Data vytvořená zdrojem dat jsou využívána ve všech úlohách.
© Doc. Ing. Jan Žídek, CSc.
11-141
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 122.:
Ukázka úlohy využívající oznámení
V úloze je realizováno čekání na oznámení ze strany zdroje dat, že jsou data k dispozici. Součástí oznámení je i string obsahující data, který se konvertuje na předanou hodnotu. Funkce pro práci s oznámením jsou následující:
Obr. 123.:
• • • • • •
Funkce pro práci s oznámeními
Obtain Notifier Send Notification Cancel Notification Wait on Notification Wait on Notification from Multiple Release Notification
© Doc. Ing. Jan Žídek, CSc.
vytvoř proměnnou oznámení pošli oznámení zruší a vrátí předchozí oznámení čekání na oznámení čekání na oznámení z více zdrojů zruší proměnnou oznámení a vrátí naposled poslané oznámení 11-142
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
Get Notifier Status
© Doc. Ing. Jan Žídek, CSc.
vrátí aktuální stav informace v oznámení
11-143
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
11.3.5. Queue – fronta Synchronizační mechanismus fronty se používá v situaci, kdy se předávají data ve stejném pořadí s využitím vyrovnávací paměti typu FIFO (First IN – First OUT). Následující příklad ukazuje využití fronty. Po jejím vytvoření s definovanou hloubkou vyrovnávací paměti se v jednom cyklu do vytvořené fronty zapisuje s definovanou rychlostí, ve druhém cyklu se s definovanou rychlostí z fronty vyčítá a ve třetím cyklu se zobrazuje aktuální stav fronty. Zapsaná data zůstávají ve frontě dokud nejsou vyčtena nebo explicitně odstraněna.
Obr. 124.:
Čelní panel virtuálního přístroje využívajícího frontu
Ovládacími prvky lze řídit rychlost zápisu do fronty a rychlost čtení z fronty. Indikátory ukazují poslední zapsaný a vyčtený prvek fronty a aktuální počet dat ve frontě.
Obr. 125.:
© Doc. Ing. Jan Žídek, CSc.
Funkce pro práci s frontou
11-144
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Pro práci s frontou jsou k dispozici následující funkce: • • • • • • • •
Obtain Queue Enqueue Element Enqueue Element At Opposite End Dequeue Element Preview Queue Element Flush Queue Release Queue Get Queue Status
vytvoř frontu s definovanou hloubkou vložení prvku na konec fronty vložení prvku na počátek fronty vyjmutí prvku z počátku fronty vrátí prvek z počátku fronty bez jeho vyjmutí vyprázdnění fronty zruší frontu vrátí aktuální stav fronty
Využití těchto funkcí v rámci aplikace ukazuje následující obrázek:
Obr. 126.:
Blokový diagram virtuálního přístroje využívajícího frontu
© Doc. Ing. Jan Žídek, CSc.
11-145
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
12. PRÁCE SE SOUBORY V LABVIEW Práce se soubory patří k velmi častým standardním situacím, které je nutno v procesu vývoje aplikací řešit. Ve vývojovém prostředí LabVIEW lze tuto činnost nalézt v podstatě ve třech úrovních: • rychlé ukládání
(data logging) - rychlé ukládání objektů z čelního panelu do souboru typu datalog po ukončení běhu virtuálního přístroje. Tato možnost je přístupná přes nabídku z menu v položce Operate – Log at Completion.
• komplexní funkce
použitelné při práci s textovými soubory, při práci s textovými soubory s formátem vhodným pro tabulkový procesor, při ukládání jedno a dvourozměrných číselných polí. Sadu těchto funkcí lze nalézt v nabídce Functions – File I/O. Tyto komplexní funkce umožňují jednoduché použití ze strany uživatele, mají v sobě obsluhu složenou z elementárních funkcí.
• elementární funkce
řeší základní činnosti, ze kterých se skládá práce se soubory. Uživatel je nalezne rovněž v nabídce Functions - File I/O.
Soubory jsou trojího druhu podle formátu, v němž jsou v souboru uložena data: • textové soubory
v těchto souborech jsou data uložena v čitelném tvaru zakódovaná v ASCII kódování výhodou tohoto tvaru je čitelnost při prohlížení běžnými prostředky, importovatelnost do textových editorů nebo tabulkových procesorů. Nevýhodou je náročnost na kapacitu média ( pro každou číslici a oddělovací znak je potřeba vyčlenit jeden byte) - textové soubory jsou zvláštním případem souborů typů bytestream.
• datalog soubory
v těchto souborech jsou položky zakódovány vnitřním kódováním vývojového prostředí - tento způsob je úspornější, jednou položkou je jedna datová struktura daného typu (i strukturovaná a složitá). Při počítání offsetu při práci se souborem se počítají počty těchto položek.
• bytestream soubory
binární soubory, ve kterých je základní jednotkou ukládání jeden byte. Do tohoto tvaru lze konvertovat všechny datové struktury. Tento způsob je nejrychlejší pro obsluhu souboru a nejúspornější z hlediska místa na médiu.
12.1. RYCHLÉ UKLÁDÁNÍ Je nejpohotovější způsob archivace dat z čelního panelu do souboru. Tento způsob nevyžaduje programovou obsluhu v blokovém diagramu. Zapíná a vypíná se buď odpovídající položkou z menu Operate – Log at Completion. Po aktivaci tohoto rychlého ukládání je po každém doběhnutí virtuálního přístroje, na němž je tento způsob ukládání aktivován, uložen aktuální stav čelního panelu do souboru typu datalog jako cluster s položkami odpovídajícími objektům čelního panelu. Aktivované rychlé ukládání je indikováno zatržením položky Operate – Log at Completion.
© Doc. Ing. Jan Žídek, CSc.
12-146
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Po prvním doběhnutí virtuálního přístroje s aktivovaným rychlým ukládáním je možno přes dialogové okno přiřadit tomuto ukládání cestu a název datového souboru. Tím je dána vazba na tento soubor a po každém dokončení běhu tohoto virtuálního přístroje je do tohoto souboru uložen jeden cluster se strukturou odpovídající čelnímu panelu. Vazbu na vybraný soubor lze přesměrovat pomocí položky Operate - Data Logging - Change Log File Binding ..., nebo zrušit pomocí položky menu Operate - Data Logging - Clear Log File Binding ...
Obr. 127.:
Zapnutí ukládání po dokončení běhu VI
12.2. INTERAKTIVNÍ PROHLÍDKA DAT Z RYCHLÉHO UKLÁDÁNÍ Takto uložená data lze prohlížet buď interaktivně přes menu Operate- Data Logging - Retrieve ... nebo programově. Při interaktivní prohlídce je po volbě dané položky menu v liště nástrojů pak vidět informaci o počtu uložených záznamů a okénko pro volbu toho, který z uložených záznamů chceme právě vidět (nutno následně potvrdit tlačítkem Enter). Kromě toho vidíme u každého záznamu i datum a čas jeho uložení. Záznamy z databáze lze i vyřazovat stiskem nástroje s popelnicí. Tím je záznam pouze označen k vymazání, ke kterému fakticky dojde až volbou položky menu Operate - Data Logging - Purge Data... , nebo při ukončení prohlížení je vyvolán dialog pro potvrzení vymazání položky.
© Doc. Ing. Jan Žídek, CSc.
12-147
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 128.:
Prohlídka dat uložených při rychlém ukládání
12.3. PROGRAMOVÁ PROHLÍDKA DAT Z RYCHLÉHO UKLÁDÁNÍ Při programové prohlídce uložených dat je postup následující: •
v blokovém diagramu virtuálního přístroje, v němž chceme provádět vyčítání datalog souboru s rychlým způsobem uloženými daty zvolíme tento virtuální přístroj přes položku Functions – Select a VI ... Tímto je umístěna v blokovém diagramu ikona reprezentující tento virtuální přístroj
•
v roletovém menu na této ikoně zvolíme položku Enable Database Access - tím se kolem ikony vytvoří orámování ve formě konektoru, na němž jsou přístupné tyto parametry:
o
jako vstupní parametr: pořadové číslo záznamu v souboru (počítáno od nuly)
o
jako výstupní parametr: cluster o dvou položkách:
U32 - čas uložení v sekundách od referenčního času LabVIEW (pátek 1. ledna 1904 12.00hod)
U16 - doplňková informace obsahující údaj o milisekundách
o
jako výstupní parametr booleovskou proměnnou indikující konec souboru
o
jako výstupní parametr cluster se strukturou danou objekty na čelním panelu archivovaného virtuálního přístroje
© Doc. Ing. Jan Žídek, CSc.
12-148
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 129.:
Roletové menu k povolení databázového přístupu
Popsaným způsobem lze programově vyčítat obsah souboru rychlého ukládání a pracovat s jeho položkami.
Obr. 130.:
Úprava blokového diagramu pro programové vyčtení dat
Uživatel zadává v ovládacím prvku record # číslo položky z databáze, které má být vyčteno. Ve zbývajících indikačních prvcích dostává následující informace: • • •
zda je v databázi položka tohoto čísla invalid record # časová značka označující, kdy byla tato položka do databáze uložena timestamp cluster s položkami odpovídajícími prvkům čelního panelu VI front panel data
© Doc. Ing. Jan Žídek, CSc.
12-149
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 131.:
Čelní panel VI pro programové vyčítání dat z rychlého ukládání
Pro úpravu časového údaje je vhodná funkce Functions - Time & Dialog - Seconds To Date/Time. Tato funkce konvertuje počet sekund na cluster s následujícími položkami: • • • • • • • • •
seconds minute hour day of month month year day of week day of year is DST
sekundy minuty hodiny den v měsíci měsíc rok den v týdnu (1 = neděle, 7 = sobota) den v roce platí letní čas (1 = ano, 0 = ne)
Z těchto položek lze programově sestavit časový údaj v libovolném formátu.
12.4. STRUKTURA NABÍDKY FUNKCÍ PRO PRÁCI SE SOUBORY Obsahují všechny tři činnosti pro práci se soubory (otevření nebo založení souboru, zápis nebo čtení, uzavření souboru). Snahou je, aby použití těchto funkcí bylo co nejjednodušší. V okně nápo© Doc. Ing. Jan Žídek, CSc.
12-150
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
vědy lze ke každé funkci získat přehled parametrů - tučně uvedené parametry jsou povinné, obyčejně tištěné jsou volitelné.
Obr. 132.:
Paletová nabídka funkcí pro práci se soubory
Struktura části knihovny s těmito funkcemi (Functions – File I/O ...) je členěna do tří řádků: •
v prvním řádku je to pět komplexních funkcí pro práci s textovými soubory: • • • • •
•
dále je v prvním řádku submenu pro práci s binárními soubory (Binary Files.vi) obsahující čtyři komplexní funkce • • • •
•
zápis do textového souboru ve formátu vhodném pro import do tabulkového procesoru (Write To Spreadsheet File.vi) čtení z textového souboru ve formátu vhodném pro import do tabulkového procesoru (Read From Spreadsheet File.vi) zápis znaků do textového souboru (Write Characters To File.vi) čtení znaků z textového souboru (Read Characters From File.vi) čtení řádků z textového souboru (Read Lines From File.vi)
čtení z binárního souboru jedno- nebo dvourozměrného pole hodnot typu I16 (Read From I16 File.vi) zápis do binárního souboru jedno- nebo dvourozměrné pole hodnot typu I16 (Write To I16 File.vi) čtení z binárního souboru jedno- nebo dvourozměrného pole hodnot typu SGL (Read From SGL File.vi) zápis do binárního souboru jedno- nebo dvourozměrné pole hodnot typu SGL (Write To SGL File.vi)
ve druhém řádku jsou to funkce pro jednotlivé fáze práce se soubory: • • • • • •
komplexní funkce pro vytvoření /otevření souboru (Open/Create/Replace File.vi) čtení ze souboru (Read File) zápis do souboru (Write File ) hledání dat s formátováním výstupního typu v textovém souboru (Scan From File) zformátovaní dat do textu a zápis do spouboru (Format into File) uzavření souboru (Close File)
© Doc. Ing. Jan Žídek, CSc.
12-151
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
ve třetím řádku je to • • • • •
submenu s konstantami pro práci se soubory submenu pro práci s inicializačními (konfiguračními) soubory submenu elementárních funkcí pro práci se soubory složení cesty k souboru přidáním jednoho elementu (Build Path ) separace posledního elementu z cesty k souboru (Strip Path)
12.5. KOMPLEXNÍ FUNKCE PRO PRÁCI SE SOUBORY U komplexních funkcí z prvního řádku tyto funkce zajišťují komplexně celou obsluhu souboru ve všech třech typických fázích včetně jeho otevření či uzavření.
Vytvoření/otevření
Zápis/čtení
souboru Obr. 133.:
souboru
Uzavření souboru
Tři fáze práce se soubory
Pro práci se soubory je dobré otevřít si okno nápovědy, ve kterém je vidět pro danou funkci soubor vstupních a výstupních parametrů a popis činnosti funkce.
Obr. 134.:
Ukázka okna nápovědy pro funkci zápis znaků do textového souboru
Je-li vstupní parametr v okně nápovědy vytisknut tučně, je tento parametr povinný, normálním písmem doporučený či obvyklý a šedým písmem je spíše výjimečně nutno tento parametr zadat. U každého parametru je v závorce hodnota, která bude použita, nebude-li explicitně zadána jiná (default parametr). Některé parametry mají obecnější platnost:
© Doc. Ing. Jan Žídek, CSc.
12-152
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Se kterým souborem se bude manipulovat se těmto funkcím sděluje vstupním parametrem datového typu File Path. Je-li tento parametr nulový (prázdný či nepřipojený), vyvolá se na počátku dialogové okno umožňující vybrat soubor ve struktuře adresářů - funkce potom vrací cestu k vybranému souboru výstupním parametrem New File Path. U funkcí pro zápis se booleovským vstupním parametrem append to file určuje, zda data budou přidána ke stávajícímu obsahu souboru (append = T), nebo bude stávající obsah souboru vymazán (New File = F). U funkce pro zápis do textového souboru se strukturou pro tabulkový procesor se dalším booleovským vstupním parametrem transpose může přivedené pole před zápisem do souboru transponovat (zaměnit řádky za sloupce). U funkcí pro čtení se dvěma vstupními parametry (number of … a start of read offset) určuje počáteční offset čtení a počet jednotek, které mají být ze souboru vyčteny. Funkce potom vrací ve formě výstupního parametru offset po dokončeném čtení ze souboru. Počáteční a koncový offset jsou důležité pro posuv v rámci souboru a v cyklech si je lze předávat např. pomocí posuvných registrů. Funkce ze druhého řádku pro otevření/založení/přepsání souboru vrací ovladač souboru v podobě proměnné typu RefNum. Přes tuto proměnnou se potom manipuluje se souborem při akcích ukládání do souboru nebo čtení ze souboru či při zavírání souboru. Tento ovladač funkce pro zápis či čtení vracejí i jako výstupní parametr a lze ho tedy využít i pro zajištění sekvenčnosti provádění činností se souborem jako průběžnou proměnnou. Kromě tohoto používají tyto funkce jako druhé průběžné proměnné tzv. chybový cluster skládající se ze tří datových typů: •
Boolean - status - indikace došlo-nedošlo k chybě
•
I32 - error code - chybový kód chyby, ke které ve funkci došlo (0= vše O.K.)
•
string - error source - textové označení místa vzniku chyby či její označení
Tento chybový cluster kromě zajištění sekvenčnosti zajišťuje i to, aby se nepokračovalo v činnosti, ve které došlo k chybě - při stavu True položky status vstupního chybového clusteru funkce nic neprovádějí a pouze přenášejí obsah tohoto chybového clusteru na výstup - na konci lze tak indikovat místo, kde došlo k chybě a podle kódu i druh chyby. Použití komplexních funkcí pro práci se soubory je velmi jednoduché a tyto funkce obsahují i programové obsloužení standardních situací (dotaz při pokusu přepsat stávající data, hlášení při nenalezení souboru atp.).
© Doc. Ing. Jan Žídek, CSc.
12-153
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
12.5.1. Funkce pro zápis a čtení do textového souboru ve formátu tabulkového procesoru Tyto funkce se hodí pro zápis a vyčtení číselných hodnot uspořádaných jako jedno nebo dvourozměrné pole. Tyto hodnoty se ukládají do textových souborů se strukturou vhodnou pro import do tabulkových procesorů.
Obr. 135.:
Funkce pro zápis do souboru s formátem pro import do tabulkového procesoru
Tyto funkce jsou velmi jednoduše použitelné. V nejjednodušším případě stačí použít jediný vstupní parametr 1D nebo 2D data. Nezadá-li se cesta k souboru, je otevřen souborový dialog pro jeho výběr. Je-li parametr append to file nezapojen nebo ponechán v hodnotě False, je stávající obsah vybraného souboru vymazán, při True je zápis přidáván ke stávajícímu obsahu. Lze zadat i formát, ve kterém má být textová podoba čísla pomocí formátovacího řetězce. Mezi znakem % a písmenem f označujícím číslo s desetinnou částí je číselný údaj. Číslo před tečkou označuje celkový počet znaků, číslo za tečkou označuje počet desetinných míst. Defaultně se čísla ukládají na šest desetinných míst. Zbývajícími parametry lze dosáhnout transpozice dvourozměrného pole (transpose) a změny defaultního oddělovače v řádcích, kterým je tabelátor. Výstupním parametrem je cesta k vybranému souboru, do nějž se zapisovalo.
Obr. 136.:
© Doc. Ing. Jan Žídek, CSc.
Nejjednodušší použití funkce Write to Spreadsheet File
12-154
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Uložená data jsou uspořádána do řádků a sloupců, přičemž oddělovačem v řádku je tabelátor.
Obr. 137.:
Obr. 138.:
Formát uložených dat
Tatáž data importovaná do Excellu
Pro vyčtení dat se používá funkce Read from Spreadsheet File.vi.
Obr. 139.:
Funkce pro vyčtení dat z textového souboru formátu tabulkového procesoru
© Doc. Ing. Jan Žídek, CSc.
12-155
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Ze vstupních parametrů není potřeba v nejjednodušším případě používat žádný, je-li nutno vyčíst všechna data naráz.
Obr. 140.:
Vyčtení dat do dvourozměrného pole
Vnitřní struktura obou popsaných funkcí je poměrně složitá a je složená z elementárních funkcí, které budou popsány dále.
12.5.2. Ukládání textu do textového pole Pro ukládání textu do textového souboru slouží funkce Write Characters to File.vi.
Obr. 141.:
Funkce pro zápis textu do souboru
Obdobně jako u zápisu do textového souboru pro import do tabulkového procesoru stačí použít jediný vstupní parametr – ukládaný text. Parametr convert EOL umožňuje konvertovat znak odřádkování podle platformy, na níž program běží. Pro vyčítání textu existují dvě funkce: Read Characters from File – pro čtení po znacích a Read Lines from File – čtení po řádcích.
© Doc. Ing. Jan Žídek, CSc.
12-156
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 142.:
Funkce pro čtení znaků z textového souboru
Parametrem Start of read offset (ve znacích) se zadává, od kterého znaku v souboru má čtení začít, parametrem Number of characters se určuje počet přečtených znaků (-1 = všechny zbývající znaky). Výstupní parametr Mark after reads ukazuje, na kterém znaku skončilo čtení znaků, parametr EOF říká, zda už se čtení dostalo na konec souboru (T = konec souboru – End of File). Následující blokový diagram ukazuje postupné vyčtení textového souboru po řádcích – v každém oběhu cyklu se vyčte jeden řádek textu.
Obr. 143.:
© Doc. Ing. Jan Žídek, CSc.
Postupné vyčtení textového souboru po řádcích
12-157
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Předchozí VI ukazuje způsob předávání cesty k vyčítanému souboru prostřednictvím posuvného registru. Tento registr je zvenčí iniciován prázdnou cestou – v prvním oběhu cyklu je tedy vyvoláno dialogové okno výběru souboru. Druhý posuvný registr posunuje ukazovatel konce čtení po vyčtení každého řádku.
12.6. ZÁPIS A ČTENÍ ČÍSELNÝCH POLÍ DO BINÁRNÍCH SOUBORŮ Tyto funkce nalezneme v submenu na konci prvního řádku paletového menu File I/O. Jsou zde dvě dvojice funkcí – jedna pro zápis a čtení celých čísel (Write to I16 File.vi a Read from I16 File.vi), druhá pro zápis a čtení čísel v reprezentaci SGL (Write to SGL File.vi a Read from SGL File.vi). Práce s těmito funkcemi je shodná s práci pro zápis a čtení z textových souborů ve formátu pro import do tabulkových procesorů. Rozdílný je formát uložení dat v souboru – zde se jedná o binární soubor (2 byty na číslo u I16 souboru a 4 byty na číslo u SGL souboru).
Obr. 144.:
Funkce pro uložení pole hodnot SGL reprezentace do binárního souboru
Parametrem append to file se určuje, zda se před uložením stávající obsah souboru vymaže (False).
Obr. 145.:
Funkce pro čtení 2D/1D pole SGL hodnot z binárního souboru
© Doc. Ing. Jan Žídek, CSc.
12-158
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Dvěma parametry se zadává požadovaný počet řádků a sloupců, které mají být vyčteny, ukazatel konce čtení se zde počítá v bytech.
12.7. ELEMENTÁRNÍ FUNKCE PRO PRÁCI SE SOUBORY Při použití těchto funkcí, které uživatel nalezne v menu Functions - File I/O..., probíhá každá operace se souborem ve třech krocích: •
otevření/založení souboru
•
zápis/čtení
•
uzavření souboru
V této skupině nalezne uživatel elementární funkce pro realizaci těchto tří stupňů. Kromě toho jsou tu pomocné funkce jako dialogové okno výběru soubor, získání informací o souboru, manipulace se souborem (přejmenování, výmaz, kopírování) nebo podadresářem (zřízení, zrušení, přejmenování), manipulace s proměnnými typu File Path. Při zakládání nebo otevírání souboru se zadává v proměnné typu File Path plná cesta včetně jména souboru, nebo lze využít funkce File Dialog, která umožňuje pohyb ve struktuře podadresářů a volbu existujících nebo nových souborů - tato funkce potom dává tři informace na svém výstupu: plná cesta k vybranému souboru a dvě dvouhodnotové informace: výběr dokončen / stisknuto tlačítko Cancel, soubor existuje / neexistuje v proměnných typu boolean. Funkce pro otevření souboru vrací tzv. referenční číslo (ovladač souboru) typu RefNum, přes které se potom přistupuje k souboru při operacích s ním (není nadále potřeba pracovat s plnou cestou k souboru).
12.8. SOUBORY TYPU BYTE STREAM A DATALOG Při práci se soubory rozlišuje dva druhy souborů:
• bytestream
typickým souborem tohoto typu jsou např. soubory textové. Základní jednotkou zapisovanou či čtenou ze souboru je jeden byte. Offsety pro čtení a zápis a počty zapisovaných či čtených jednotek se obvykle počítají v bytech. Takovýto soubor může obsahovat jakýkoliv datový typ převedený na byty - např. dvourozměrné pole datových typů SGL, jak je vracejí funkce obsluhující zásuvné multifunkční karty. Do souboru lze buď přidávat nebo lze přepisovat stávající obsah od nějaké definované pozice. Pro převod libovolného datového typu na string (bytestream) se používá funkce Flatten to string z Function – Advanced – Data Manipulation. Po vyčtení ze souboru se na zpětný pře-
© Doc. Ing. Jan Žídek, CSc.
12-159
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• datalog
vod používá funkce Unflatten from string z Function – Advanced – Data Manipulation. obsahuje jako základní jednotku zapisovanou či čtenou při práci se souborem libovolný datový typ. Zápis a čtení se pak odehrává v jednotkách offsetu daného tímto datovým typem. Do souboru se dá pouze přidávat, nedá se přepisovat uprostřed souboru. Všechny zapisované jednotky musí být téhož datového typu. Po vyčtení ze souboru se obvykle záznam rozebírá na elementární datové typy z nichž je složen. Soubory tohoto typu jsou těžko čitelné díky svému kódování aplikacemi mimo LabVIEW. Zda se jedná o soubor typu datalog se určuje už při otevření nebo vytvoření souboru, kdy je potřeba určit datový typ, se kterým bude soubor pracovat.
Obr. 146.:
Funkce pro konverzi datového typu na a z stringu
Následuje ukázka vytvoření souboru typu datalog a zápisu do něj.
Obr. 147.:
© Doc. Ing. Jan Žídek, CSc.
Zápis do datalog souboru
12-160
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 148.:
Čtení z datalog souboru
12.9. PRŮBĚŽNÉ PROMĚNNÉ Stejně jako u funkcí střední složitosti popisovaných výše fungují jako průběžné proměnné ovladače (referenční číslo souboru) a chybový cluster. Tyto zajišťují správnou sekvenčnost provádění všech tří stupňů procesu práce se souborem a chybový cluster dále může zajistit, aby se nepokračovalo v činnosti, v níž došlo k chybě. Následující obrázek ukazuje použití chybového clusteru pro tyto účely.
Obr. 149.: © Doc. Ing. Jan Žídek, CSc.
Použití chybového clusteru 12-161
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Každá funkce v podobě subVI je vybavena vstupním a výstupním chybovým clusterem. V případě, že došlo před voláním tohoto subVI k chybě, je tato předána do vstupního chybového clusteru a tento subVI nevykonává žádnou činnost kromě předání vstupního chybového clusteru do výstupního. Na konci řetězce takovýchto funkcí se potom analyzuje, kde a k jaké chybě došlo. V případě, že do vstupního clusteru přijde informace, že je vše v pořádku, je vykonán kód a dopadne-li i zde vše dobře, je do výstupního chybového clusteru předán status false a nulový kód chyby, jinak se předává true, kód chyby a textový popis zdroje chyby.
12.10. ABSOLUTNÍ A RELATIVNÍ CESTA K SOUBORU Aby se předešlo tomu, že je kód závislý na umístění datového souboru ve struktuře podadresářů, nedoporučuje se uvádět absolutní adresy souborů. Následující obrázek ukazuje řešení, kdy se předpokládá pevné umístění datového souboru vůči subVI, který s ním pracuje nezávisle na absolutním umístění obou ve struktuře adresářů. K tomuto účelu jsou v LabVIEW funkce pro sestavování a dekompozici cesty k souboru a konstanty pro práci se soubory: Build Path
sestavování cesty k souboru
Strip Path
dekomponování cesty k souboru
Current Vis Path
cesta k aktuálně běžícímu VI
Obr. 150.:
Cesta k souboru nezávislá na jeho absolutním umístění
U předešlého se předpokládá umístění datového souboru pokus.dat v podadresáři data, který je podadresářem adresáře, ve kterém je knihovní soubor *.llb, v němž je umístěn tento VI.
© Doc. Ing. Jan Žídek, CSc.
12-162
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
13. SW PODPORA ZÁSUVNÝCH MULTIFUNKČNÍCH KARET V LABVIEW Ve vývojovém systému LabVIEW jsou funkce pro obsluhu multifunkčních zásuvných karet sdruženy v části knihovny Functions - DAQ. Aby bylo zajištěno, že uživatel bude mít k dispozici vždy nejnovější verzi této knihovny v situaci, kdy svůj systém doplní o novou multifunkční kartu, je volen takový způsob, že spolu s kartou dostane uživatel i všechny funkce pro její obsluhu v nejaktuálnější podobě - tzv. NI DAQ (verze s označením 5.0. obsahovala třicet osm instalačních disket pro podporu vývojových systémů firmy NI - Lab Windows CVI a LabVIEW). Tento „operační systém“ pro práci s hardwarem NI se distribuuje na CD nebo je volně stažitelný z www.ni.com. NI-DAQ, často označovaný jako operační systém pro převodníkové karty, obsahuje soubor knihovních funkcí pro celou řadu vývojových prostředí (C, Pascal, VB, LabVIEW, CVI, LabWIndows), „low-level“ ovladačů a konfiguračních programů pro různé OS (DOS, Win3.x, Win95, Win NT, UNIX ….). Tento ucelený soubor programů představuje více než 30 člověko-roků intenzivní vývojové a testovací práce. NI-DAQ odstraňuje z hlediska aplikačního programátora HW detaily multifunkčních převodníkových karet, přičemž zachovává veškerou flexibilitu jejich plného využití ve finální SW aplikaci a to za využití všech vlastností a výhod použitého OS. Po spuštění instalace si uživatel vybere, pro které vývojové prostředí chce podporu nainstalovat. Informace pro uživatele jsou i v souboru NI-DAQ Read Me. Před použitím funkcí z této části knihovny je však nutno nakonfigurovat spolupráci hardware a těchto funkcí.
13.1. KONFIGURACE A PRVNÍ TEST SYSTÉMU SE ZÁSUVNOU MULTIFUNKČNÍ KARTOU Po instalaci SW podpory převodníkových karet NIDAQ je nutno nakonfigurovat nainstalovanou multifunkční kartu. V případě karty standardu Plug&Play přidělí systémové zdroje kartě operační systém a tyto jsou nastaveny softwarově. U starších karet je nutno tyto systémové zdroje nastavit ručně propojkami na kartě. Jedná se především o bázovou adresu, číslo požadavku na přerušení a číslo kanálu přímého přístupu do paměti. V operačním systému Windows 95/98 se potom tyto nastavené parametry dají zobrazit případně editovat v okně Control Panel (Ovládací panely) v položce System a Device Manager (Správce zařízení). Viz následující obrázek. Není-li viditelná položka Data Acquisition Devices, lze ji doplnit přes ikonu Add new hardware (Přidat nový hardware), kde na otázku automatické detekce odpovíme ne a v třídách zařízení vybereme položku Data Acquisition Devices a konkrétní druh karty. Dvojím kliknutím na položce s označením karty nebo přes tlačítko Properties (Vlastnosti) lze získat přehled o nastavených parametrech a případně je změnit, je-li hlášen konflikt s nastavením jiné části počítače. U převodníkových karet neodpovídajících standardu Plug&Play je zde nutno sesouhlasit parametry s nastavením propojkami na kartě. U starších verzí NIDAQ bylo po nainstalování zásuvné karty do systému potřeba ji softwarově nakonfigurovat pomocí služby WDAQCONF z okna, v němž byla i ikona pro spuštění systému LabVIEW. V rámci této služby se jednotlivým logickým pozicím označeným 1-16 přiřazují nainstalované zásuvné karty a SCXI moduly. © Doc. Ing. Jan Žídek, CSc.
13-163
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 151.:
Správce zařízení v ovládacích panelech
Obr. 152.:
Nastavení vlastností převodníkové karty
© Doc. Ing. Jan Žídek, CSc.
13-164
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Služba WDAQCONF obsahovala dále možnost otestovat jednotlivé komponenty na kartě a nakonfigurovat i případné SCXI moduly, které jsou kartě předřazeny. Dále si zde uživatel mohl prohlédnout i přehled systémových zdrojů (bázových adres, požadavků na přerušení a kanálů přímého přístupu do paměti). Konfigurace končila uložením souboru WDAQCONF.CFG, který obsahuje všechny informace o hardwarových komponentech typu zásuvných DAQ karet a SCXI modulů a který tyto informace poskytuje VI, které tyto komponenty obsluhují. Počínaje verzí 6 se po nainstalování SW NIDAQ rozšířil průzkumník o položku Automation &Measurement. V této položce lze konfigurovat zásuvné měřicí karty, karty s rozhraním GPIB, vytvářet virtuální kanály a pojmenované stupnice. V základní podobě má tato položka průzkumníka tři další podpoložky: •
Devices and Interfaces
dostupné hardwarové prostředky (karty v počítači)
•
Data Neighborhood
přehled datových kanálů
•
Scales
přehled pojmenovaných stupnic
Obr. 153.:
Prohlídka položky Measurement&Automation v průzkumníkovi
Prvním krokem je obvykle prohlídka položky Devices and Interfaces. Uživatel zde vidí všechna dostupná zařízení. Po kliknutí pravým tlačítkem myši nad označením zvoleného zařízení si lze vybrat: • • •
Properties Delete Test panel
nastavení vlastností odstranění vybraného zařízení otestování funkčnosti
© Doc. Ing. Jan Žídek, CSc.
13-165
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 154.:
Prohlídka položky Devices and Interfaces v průzkumníku
Po volbě Properties obdobně jako v Systému lze volit základní vlastnosti vybrané karty jako je bázová adresa, požadavek na přerušení a kanál přímého přístupu do paměti.
Obr. 155.:
Prohlídka přidělených systémových prostředků
Lze však nastavovat i další možnosti pro jednotlivé uzly architektury karty. Pro analogové vstupy to jsou například následující vlastnosti: •
Polarity/Range
polarita a rozsah
•
Mode
mód měření (se společnou zemí, diferenční)
© Doc. Ing. Jan Žídek, CSc.
13-166
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 156.:
Nastavení vlastností A/D převodníku
V okně konfigurace karty na záložce System se nacházejí následující tlačítka:
•
View
prohlídka možností vybraného parametru
•
Test Resources
otestování komunikace s kartou při nastavených parametrech
•
Run Test Panels
spuštění testovacího panelu
•
Ok
potvrzení nastavení
•
Storno
zrušení nastavení a návrat o úroveň výše
Po stisku tlačítka Test Resources se systém pokusí o komunikaci s kartou na nastavených parametrech. Dopadne-li vše korektně, objeví se okénko:
Obr. 157.:
© Doc. Ing. Jan Žídek, CSc.
Dialog úspěšného završení testu komunikace
13-167
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Stiskem tlačítka Run Test Panel se spustí testovací panel jako při volbě téže nabídky přímo v průzkumníkovi na položce vybrané karty.
Obr. 158.:
Testovací panel
V tomto testovacím panelu lze interaktivně vyzkoušet funkce jednotlivých částí architektury zásuvné multifunkční karty, kterým přísluší jednotlivé záložky. Pro analogové vstupy se nastavují tyto parametry: •
Channel
•
Input Limits minimum a maximum měřeného signálu (zesílení zesilovače na kartě)
•
Sample Rate vzorkovací frekvence
•
Data Mode
mód snímání – do registračního grafu (Strip Chart – nebere v úvahu nastavenou vzorkovací frekvenci), jednorázově (One Shot) nebo kontinuálně (Continuous) podle nastavené vzorkovací frekvence
•
Autoscale
s automatickou úpravou měřítka grafu
•
Full Range
s pevnými limity grafu podle nastavení Input Limits
kanál – číslo vstupního kanálu
Je-li vše v pořádku, vidím signál v grafu kód poslední chyby (Last Error) je nulový.
© Doc. Ing. Jan Žídek, CSc.
13-168
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
13.2. ORGANIZACE KNIHOVNY DATA ACQUISITION V SYSTÉMU LABVIEW A KDE ZAČÍT Základní struktura paletového menu této části knihovny vypadá následovně:
Obr. 159.:
Základní uspořádání menu v knihovně data Acquisition
V první úrovni je knihovna organizována podle částí architektury zásuvné multifunkční karty: •
Analog Input
analogové vstupy
•
Analog Output
analogové výstupy
•
Digital I/O
digitální vstupy a výstupy
•
Counter
časovače a čítače
•
Calibration and Configuration
kalibrace a konfigurace
•
Signal Conditioning
úprava signálu
V prvních čtyřech položkách, které odpovídají částem architektury karty je knihovna organizována do tří úrovní s označením: Easy I/O VIs - VI pro jednoduchou obsluhu analogového vstupu a výstupu - tzv. high-level funkce pro rychlé a snadné použití - po čtyřech funkcích pro analogový vstup a výstup a digitální vstup a výstup (celkem sedmnáct VI v LV v.3.1.1) Intermediate VIs - střední úroveň umožňující lepší využití komponentů zásuvných karet - tato úroveň funkcí už je rozčleněna podle obsluhovaného komponentu na analogový vstup, analogový výstup, digitální vstup a výstup, obsluha časovačů/čítačů, konfigurační a kalibrační funkce
© Doc. Ing. Jan Žídek, CSc.
13-169
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Advanced VIs - nejelementárnější VI, z nichž jsou poskládány i VI předchozích dvou úrovní, umožňují stoprocentní využití komponentů zásuvných karet Pro pochopení struktury VI pro řešení standardních situací je v podadresáři ..LabVIEW\EXAMPLES\… několik podadresářů s tématicky rozdělenými knihovními soubory obsahující desítky vyřešených příkladů. Pro lepší orientaci v těchto příkladech existuje v menu Help položka Examples, pomocí které lze velmi rychle najít příklad odpovídající potřebám uživatele. Tento navigátor je vlastně nabídka tématicky rozdělených příkladů, v níž lze vybrat skupinu odpovídajících příkladů.
Obr. 160.:
Základní nabídka položky menu Help Search Examples
Základní nabídka navigátoru pro vyhledávání řešených příkladů odpovídá tématickému členění: Fundamentals
základní příklady pro práci s poli, textovými řetězci, grafy, programovými strukturami, matematickými funkcemi, zpracováním signálu a soubory
I/O Interfaces
přístroje na bázi DAQ karet, funkce DAQ knihovny, GPIB rozhraní, knihovna VISA, sériové rozhraní pro komunikaci s přístroji, tvorba ovládačů pro měřící přístroje, obsluha VXI přístrojů
Communication
komunikace s využitím technologie Active X, OPC, DDE, TCP/IP, Data Sockets a spolupráce s Matlabem A HIQ
Advanced
pokročilé položky v grafickém programování
Demonstartions
ukázky aplikací
© Doc. Ing. Jan Žídek, CSc.
13-170
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 161.:
Základní členění příkladů pro DAQ knihovnu
Členění příkladů zde odpovídá členění architektury karty: •
Analog Input
analogové vstupy,
•
Analog Output
analogové výstupy,
•
Digital Input and Output
digitální vstupy, digitální výstupy,
•
Counters
čítače a časovače
•
SCXI
moduly úpravy měřených signálů
a použití karty: •
Simultaneous Analog I/O
simultánní analogový vstup/výstup
•
DAQ Exaples Using Multiple Devices
příklady s použitím více karet
•
Transducer Measurements
měření s převodníky
•
Software-Created Instruments
přístroje vytvořené na bázi SW
•
Computer-Based Instruments
karty s funkčností přístrojů
© Doc. Ing. Jan Žídek, CSc.
13-171
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
Data Loggers
dlouhodobé sbírání dat
•
PID and Alarm Controlllers
PID a alarmové regulátory
Po výběru skupiny příkladu následuje nabídka upřesnění konkrétních příkladů:
Obr. 162.:
Upřesnění volby příkladů pro analogové vstupy
Obr. 163.:
© Doc. Ing. Jan Žídek, CSc.
Nabídka konkrétních příkladů
13-172
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Po upřesnění ve skupině analogových vstupů už následuje nabídka konkrétních příkladů – název a stručný popis. Po volbě na této úrovni už následuje otevření konkrétního řešeného příkladu ve formě VI.
Obr. 164.:
Čelní panel VI pro kontinuální sběr dat s vykreslením do grafu
Příklady bývají řešeny optimálním kódem umožňujícím uživateli vložit jednoduše svou funkci pro zpracování měřených dat.
© Doc. Ing. Jan Žídek, CSc.
13-173
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 165.:
Blokový diagram s funkcí My Data Processing
Příklad je funkční, stačí jej spustit a zadat číslo karty a číslo kanálu. Při potřebě zpracovat měřená data před zobrazením do grafu stačí modifikovat funkci My Data Processing.
Obr. 166.: © Doc. Ing. Jan Žídek, CSc.
Funkce My Data Processing 13-174
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Příklady v řešených VI pokrývají všechny standardní situace a uživatel zde obvykle nalezne tu, která splňuje jeho požadavky. Je to vhodný studijní materiál pro pochopení použití funkcí z DAQ Library. 13.3. FUNKCE VYŠŠÍ ÚROVNĚ - EASY I/O Jednoduché je i použití základních funkcí pro sběr dat z úrovně DAQ knihovny Easy I/O (první řádek ikon v paletovém menu dané skupiny architektury karty – např. Analog Input).
13.3.1. Obecná pravidla: • vstupní a výstupní parametry dané funkce je možné vyčíst z okna nápovědy • tučně vytištěné vstupy v nápovědě označují parametry základní, které je nutno zadat, tence zobrazené vstupy jsou parametry pomocné • hodnota v závorce u parametru znamená přednastavenou hodnotu • ošetření chyb je u úrovně Easy I/O takové, že při výskytu chyby se otevírá dialogové okno s možností ukončit program nebo pokračovat
13.3.2. Parametry nastavitelné pro kartu LabPC • počet analogových vstupních kanálů u této karty je osm označených 0-7 • při zadávání kanálů pomocí intervalu nutno zadat vždy sestupně • podle nastavení karty přepínači a použitého programově nastavitelného zesílení lze dosáhnout rozsahů:
Přepínač rozsahů na kartě Programově v poloze nastavené zesílení 1 2 5 0 / 10 V 10 20 50 100 1 2 5 -5 V / 5 V 10 20 50 100
© Doc. Ing. Jan Žídek, CSc.
Dolní mez vstupního rozsahu 0V 0V 0V 0V 0V 0V 0V -5 V -2 V -1 V -0.5 V -0.2 V -0.1 V -0.05 V
Horní mez vstupního rozsahu 10 V 5V 2V 1V 0.5 V 0.2 V 0.1 V 5V 2V 1V 0.5 V 0.2 V 0.1 V 0.05 V
13-175
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• • • •
maximální vzorkovací frekvence: 62500/počet snímaných kanálů vzorků za sekundu analogový výstup nastavený přepínačem na kartě buď na -5 V/ 5 V nebo 0 / 10 V pro digitální vstup/výstup jsou k dispozici tři osmibitové porty (0 - 2) plně k dispozici jsou dva šestnáctibitové časovače/čítače ( 1 a 2)
13.4. ANALOGOVÝ VSTUP V úrovni Easy I/O je zde čtveřice funkcí řešících standardní situace: AI Sample Channel - jednorázové odečtení hodnoty na vstupu jednoho kanálu
• vstupní parametry: • device (I16) • channel(0) (abc) • high limit (10V) (SGL) • low limit (-10V) (SGL)
logické číslo zásuvné karty (dle konfigurace) číslo kanálu (přednastavená hodnota 0) - pozor, je to text! horní hranice vstupního rozsahu (10V) dolní hranice vstupního rozsahu
• výstupní parametr: • sample (SGL)
odečtená hodnota napětí z daného kanálu
AI Sample Channels - jednorázové odečtení hodnot z více kanálů - vstupní a výstupní parametry shodné s předchozí funkcí, u kanálu se čísla kanálu oddělují čárkou, nebo navazují-li na sebe je možné je uvést ve tvaru např. 1:0 ( u některých karet včetně Lab PC vždy sestupně !)
• vstupní parametry: • device (I16) • channel(0) (abc) • high limit (10V) (SGL) • low limit (-10V) (SGL)
logické číslo zásuvné karty (dle konfigurace) číslo kanálu (přednastavená hodnota 0) - pozor, je to text! horní hranice vstupního rozsahu (10V) dolní hranice vstupního rozsahu
• výstupní parametr:
© Doc. Ing. Jan Žídek, CSc.
13-176
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• sample ([SGL])
odečtená hodnota napětí z daných kanálů - hodnota z nejniž šího kanálu je uložena poslední AI Acquire Waveform - odečtení daného počtu hodnot z daného kanálu danou vzorkovací frekvencí
• vstupní parametry: • device (I16) • channel(0) (I16) • number of samples (I32) • sample rate (1000) (SGL) • high limit (10V) (SGL) • low limit (-10V) (SGL)
logické číslo zásuvné karty (dle konfigurace) číslo kanálu (přednastavená hodnota 0) - pozor, je to text! počet vzorků na kanál vzorkovací frekvence v každém kanále horní hranice vstupního rozsahu (10V) dolní hranice vstupního rozsahu
• výstupní parametr: • waveform ([SGL])
odečtené hodnota napětí z daného kanálu v jednorozměrném poli • actual sample period (SGL) skutečná vzorkovací frekvence ( může se mírně lišit od na stavené vlivem rozlišitelnosti časovače na kartě)
AI Acquire Waveforms - odečtení daného počtu vzorků z daných kanálů danou vzorkovací frekvencí. Vstupní a výstupní parametry jsou shodné s předchozí funkcí, sejmutá data jsou uspořádána ve dvourozměrném poli.
• vstupní parametry: • device (I16) • channel(0) (I16) • number of samples (I32) • sample rate (1000) (SGL) • high limit (10V) (SGL) • low limit (-10V) (SGL)
© Doc. Ing. Jan Žídek, CSc.
logické číslo zásuvné karty (dle konfigurace) číslo kanálu (přednastavená hodnota 0) pozor, je to text! počet vzorků na kanál vzorkovací frekvence v každém kanále horní hranice vstupního rozsahu (10V) dolní hranice vstupního rozsahu
13-177
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• výstupní parametr: • waveforms ([SGL])
• actual sample period (SGL)
odečtené hodnoty napětí z daných kanálů v dvouroz měrném poli (uspořádání je takové, že v řádcích jsou jednotlivá měření a ve sloupcích kanály v opačném po řadí, než byly zadány - nejnižší kanál je poslední) skutečná vzorkovací frekvence (může se mírně lišit od nastavené vlivem rozlišitelnosti časovače na kartě)
13.5. ANALOGOVÝ VÝSTUP zde je opět čtveřice funkcí s obdobnou strukturou jako u analogového vstupu: AO Update Channel - zapisuje jednorázově specifikovanou hodnotu napětí ve voltech na daný analogový výstup
•
•
vstupní parametry: • device (I16) • channel(0) (abc) • voltage (SGL)
logické číslo zásuvné karty (dle konfigurace) číslo kanálu (přednastavená hodnota 0) - pozor, je to typ string! napětí, které se má nastavit na analogovém výstupu
výstupní parametry tato funkce nemá
AO Update Channels - zapisuje jednorázově specifikovanou hodnotu napětí ve voltech na každý ze specifikovaných kanálů
•
•
vstupní parametry: • device (I16) • channel(0) (abc) • voltage (SGL)
logické číslo zásuvné karty (dle konfigurace) číslo kanálu (přednastavená hodnota 0) - pozor, je to typ string! napětí, které se má nastavit na každém analogovém výstupu ve tvaru jednorozměrného pole
výstupní parametry tato funkce nemá
AO Generate Waveform - generuje průběh napětí na analogovém výstupu se specifikovanou frekvencí změny © Doc. Ing. Jan Žídek, CSc.
13-178
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
•
vstupní parametry: • device (I16) • channel(0) (abc) • update rate (1000) (SGL) • waveform ([SGL])
logické číslo zásuvné karty (dle konfigurace) číslo kanálu (přednastavená hodnota 0) - pozor, je to text! počet změn zapsaných na analogový výstup za sekundu průběh napětí, které se má nastavit na analogovém výstupu ve tvaru jednorozměrného pole
výstupní parametry tato funkce nemá
AO Generate Waveforms - generuje více napěťových průběhů na specifikovaných analogových výstupech. Vstupní parametry jsou shodné s předchozí funkcí, vstupní parametr waveforms je dvourozměrné pole obsahující hodnoty napětí - počet sloupců odpovídá počtu kanálů, počet řádků počtu hodnot napětí pro zápis do každého z nich.
•
•
vstupní parametry: • device (I16) • channels(0) (abc) • update rate (1000) (SGL) • waveforms ([SGL])
logické číslo zásuvné karty (dle konfigurace) čísla kanálů (přednastavená hodnota 0) - pozor, je to text! počet změn zapsaných na analogový výstup za sekundu průběh napětí, které se má nastavit na analogovém výstupu ve tvaru dvourozměrného pole
výstupní parametry tato funkce nemá
13.6. DIGITÁLNÍ VSTUP A VÝSTUP zde je čtveřice funkcí pro obsluhu digitálních vstupů/výstupů Read from Digital Line - vyčtení stavu bitu v daném digitálním portu
© Doc. Ing. Jan Žídek, CSc.
13-179
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
vstupní parametry: • • • • •
•
port width(8) (I16) device (I16) port number (abc) line (I16) iteration(0:initialize) (I32)
šířka portu logické číslo zásuvné karty (podle konfigurace) číslo portu - pozor, je to text! číslo bitu v portu iterace - kontrola, zda byla provedena inicializace portu, je-li tato hodnota 0, nakonfiguruje se port pro čtení a pak se čte, je-li větší než 0, předpokládá se, že konfigurace byla již pro vedena a jednoduše se čte
výstupní parametry: •
line state (TF)
stav bitu
Write to Digital Line - zápis na bit v digitálním portu • vstupní parametry:
• • • • • •
•
port width(8) (I16) device (I16) port number (abc) line(I16) line state(TF) iteration (0:initialize)
šířka portu logické číslo zásuvné karty (podle konfigurace) číslo portu číslo bitu v portu stav bitu iterace(I32) - kontrola, zda byla provedena inicializace portu, je-li tato hodnota 0, nakonfiguruje se port pro zápis a pak se zapisuje, je-li větší než 0, předpokládá se, že konfigurace byla již provedena a jednoduše se zapisuje
výstupní parametry tato funkce nemá
Read from Digital Port - čtení z digitálního portu
© Doc. Ing. Jan Žídek, CSc.
13-180
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
•
vstupní parametry: • • • • •
•
port width(8) (I16) device (I16) port number (abc) line (I16) iteration(0:initialize) (I32)
šířka portu logické číslo zásuvné karty (podle konfigurace) číslo portu - pozor, je to text! číslo bitu v portu iterace - kontrola, zda byla provedena inicializace portu, je-li tato hodnota 0, nakonfiguruje se port pro čtení a pak se čte, je-li větší než 0, předpokládá se, že konfigurace byla již pro vedena a jednoduše se čte
výstupní parametry: •
pattern (U8)
vyčtená hodnota
Write to Digital Port - zápis na digitální port
•
vstupní parametry: • • • • • •
•
port width(8) (I16) device (I16) port number (abc) line(I16) pattern (U8) iteration (0:initialize)
šířka portu logické číslo zásuvné karty (podle konfigurace) číslo portu číslo bitu v portu zapisovaný byte iterace(I32) - kontrola, zda byla provedena inicializace portu, je-li tato hodnota 0, nakonfiguruje se port pro zápis a pak se zapisuje, je-li větší než 0, předpokládá se, že konfigurace byla již provedena a jednoduše se zapisuje
výstupní parametry tato funkce nemá
Pomocí popsaných funkcí lze jednoduchým a rychlým způsobem ovládat základní funkce zásuvných karet v oblasti analogových vstupů, analogových výstupů a digitálních vstupů/výstupů.
© Doc. Ing. Jan Žídek, CSc.
13-181
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
13.7. PŘÍKLAD POUŽITÍ FUNKCE Z ÚROVNĚ EASY I/O
Velkou většinu standardních situací lze při aplikaci A/Č převodníků do virtuálních měřicích přístrojů vyřešit použitím funkcí z úrovně Easy I/O. Na následujícím obrázku je ukázka použití funkce Analog Input Acquire Waveforms:
Obr. 167.:
Použití synchronní funkce pro snímání tisíce dat z osmi kanálů rychlostí 1000 vzorků za sekundu
Uživateli zde stačí pouze zadat následující vstupní parametry: • • • • • •
Device Channels Number of samples / ch Scan rate High limit Lowlimit
číslo karty podle pozice, která ji byla přiřazena při konfiguraci kanály, ze kterých má být provedeno snímání dat počet sejmutých dat na kanál vzorkovací frekvence v každém ze snímaných kanálů horní mez vstupního rozsahu dolní mez vstupního rozsahu
Funkce vrací dva parametry: • •
Waveforms Actual scan period kartě
dvourozměrné pole výsledků měření (sloupce = kanály) aktuální perioda vzorkování upravená podle možností časovače na
Nevýhodou těchto funkcí je jejich synchronní provádění – po dobu snímání dat je přerušen mechanismus multitaskingu bloků ve vývojovém prostředí a aplikace čeká na dokončení této funkce. Funkce tohoto typu patří ke standardní softwarové podpoře zásuvných měřicích karet. Jsou nepoužitelné zejména u měřicích metod požadujících dlouhodobá kontinuální měření na vyšších vzor© Doc. Ing. Jan Žídek, CSc.
13-182
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
kovacích frekvencích s požadavkem současné analýzy měřených dat beze ztráty měřených dat (Gap Free Measurement Methods). Pro tento typ aplikací jsou v knihovně sběru dat funkce umožňující asynchronní provádění sběru dat s využitím dvojité vyrovnávací paměti. Tyto funkce se nacházejí v úrovni Intermediate této knihovny a jejich typické použití ukazují i příklady, které jsou standardní součástí instalace vývojového prostředí. 13.8. INTERMEDIATE VIS Tyto funkce umožňují podrobnější naprogramování a lepší využití jednotlivých komponentů multifunkčních karet. V knihovně jsou rozděleny do samostatných skupin:
•
Analog Input
5 funkcí pro obsluhu analogových vstupů
•
Analog Output
5 funkcí pro obsluhu analogových výstupů
•
Counter
11 funkcí pro obsluhu časovačů a čítačů
•
Digital Input and Output
7 funkcí pro obsluhu digitálních vstupů / výstupů
13.8.1. Ošetření chyb ve VI úrovně Intermediate
Každá funkce této úrovně má mezi vstupními parametry parametr error in, což je cluster obsahující proměnnou typu Boolean (je-není chyba), proměnnou typu Integer s kódem chyby a proměnnou typu String s popisem zdroje chyby. Mezi výstupními parametry je parametr error out, který obsahuje tytéž proměnné. Jedná se tedy obdobně jako u funkcí pro obsluhu souborů o průchozí parametr, který má tři účely:
•
určuje sekvenci provádění jednotlivých funkcí podle principu Data Flow
•
při výskytu chyby identifikuje typ chyby - dá se jednoduše ošetřit funkcí ze skupiny Utility Error Handlers
•
při výskytu chyby se funkce následující za zdrojem chyby již neprovádějí - identifikují výskyt chyby podle proměnné typu Boolean z clusteru, čímž je zabráněno kolizním situacím v případě, že předchozí funkce neukončily svou činnost korektně. Této metody se dá použít i v cyklech typu while, kdy proměnná typu Boolean z chybového clusteru může být použita pro předčasné ukončení cyklu nabude-li hodnoty TRUE.
13.9. ASYNCHONNÍ FUNKCE SBĚRU DAT VYUŽÍVAJÍCÍ DVOJITÉ VYROVNÁVACÍ PAMĚTI Pro konstrukci měřicích přístrojů kontinuálně měřicích bez ztráty měřených dat je nutno využít funkcí úrovně medium.
© Doc. Ing. Jan Žídek, CSc.
13-183
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Spolupráce A/Č převodníku s dvojitou vyrovnávací paměti se dá popsat následujícím způsobem: • V paměti počítače je alokována kruhová vyrovnávací paměť. To znamená, že při dosažení jejího konce začíná proces jejího plnění znovu od počátku. Při přenosu dat z vyrovnávací paměti typu FIFO měřicí karty do této kruhové vyrovnávací paměti se přitom uplatňují standardní mechanismy přerušení a blokových přenosů dat řízených řadičem přímého přístupu do paměti • Speciální funkcí lze otestovat, kolik nevyčtených naměřených dat kruhová vyrovnávací paměť aktuálně obsahuje • Dosáhne-li počet nevyčtených dat velikosti druhé vyrovnávací paměti, která je alokována v operační paměti počítače, přenese jiná funkce tato data z kruhové vyrovnávací paměti do této paměti • Proces plnění kruhové vyrovnávací paměti přitom běží na pozadí a umožňuje tak, aby v době, kterou systém nepotřebuje pro přenos dat z kruhové vyrovnávací paměti tato data dále zpracovával • Navenek je tedy možné i při běžícím sběru dat jejich současné zpracování do žádané podoby – funkce sběru dat tedy pracuje asynchronně Následující obrázek ukazuje realizaci dříve popsaného mechanismu na příkladu, který je součástí vývojového prostředí:
Obr. 168.:
Asynchronní funkce sběru dat pro kontinuální sběr dat s využitím dvojité vyrovnávací paměti.
Pro maximálně efektivní využití času při běhu této aplikace je třeba diskutovat použití funkce AI Read uvnitř cyklu while. Tato funkce pracuje totiž synchronně. To znamená, že po dobu od vyvolání této funkce do naplnění kruhové vyrovnávací paměti žádaným počtem vzorků funkce čeká na vrcholu fronty úloh vývojového prostředí LabVIEW a aplikace v této době není schopna provádět další činnost. Možným řešením je následující modifikace výše uvedeného blokového diagramu. © Doc. Ing. Jan Žídek, CSc.
13-184
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Po nakonfigurování procesu sběru dat a jeho odstartování funkcemi AI Config a AI Start pokračuje činnost podle následujícího blokového diagramu:
Obr. 169.:
Minimalizace časové režie vyčítání dat při použití dvojité vyrovnávací paměti
První použití funkce AI Read s nulovým požadovaným počtem vyčítaných dat slouží pouze ke zjištění aktuálního stavu nevyčtených dat v kruhové paměti. Tento aktuální stav je potom požadován při druhém použití funkce AI Read – funkce tedy nečeká na plnění kruhové vyrovnávací paměti a více času ve smyčce lze věnovat kontinuálnímu zpracování naměřených dat v reálném čase.
© Doc. Ing. Jan Žídek, CSc.
13-185
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
14. UZLY VLASTNOSTÍ V některých situacích je potřeba mít možnost programově měnit některé vlastnosti prvků na čelním panelu virtuálního přístroje. Ve vývojovém prostředí LabVIEW plní tuto úlohu tzv. uzly vlastností (Property Nodes). Uzel vlastností lze vytvořit jako další terminál k danému prvku čelního panelu pomocí roletového menu prvku v položce Create. Uživatel si zde může vybrat vytvoření buď lokální proměnné (Local Variable), uzlu vlastností (Property Node), Reference nebo Invoke Node.
Obr. 170.:
Vytvoření uzlu vlastností
V okně blokového diagramu po této volbě vznikne uzel vlastností, který přebírá název prvku z čelního panelu. V tomto uzlu je prvotně zobrazena první vlastnost z nabídky, kterou lze prostřednictvím tohoto uzlu buď programově vyčítat nebo ovládat.
Obr. 171.: © Doc. Ing. Jan Žídek, CSc.
Prvotní podoba uzlu vlastností 14-186
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Uzel vlastností má jako každý jiný terminál své roletové menu. Prostřednictvím tohoto menu lze volit některé atributy chování tohoto uzlu vlastností. Roletové menu se dá vyvolat prostřednictvím pravého tlačítka myši.
Obr. 172.:
Roletové menu uzlu vlastností
Šipka na uzlu vlastností určuje směr toku informace. Je-li vlevo, je možné do uzlu vlastností informaci zapisovat a programově tak danou vlastnost ovládat. Je-li vpravo, je možno z uzlu vlastností informaci číst. Směr toku informace lze měnit prostřednictvím roletového menu v položce Change to … . Lze změnit naráz směr toku informace ve všech položkách daného uzlu vlastností (Change All To … ), nebo jen v položce, na které vyvoláme roletové menu (Change To … ). V položce Find lze vyhledat související další části daného prvku (prvek na čelním panelu, terminál, lokální proměnnou nebo jiné uzly vlastností). V položce Show Context Help lze vyvolat kontextovou nápovědu, která je součástí LabVIEW. V položce Description and Tips… lze zadat popis daného uzlu vlastností – může obsahovat nápovědný text pro programátora. V položce Show lze zobrazit nebo skrýt popis uzlu vlastností (Label). V položce Replace lze zaměnit uzel vlastností jiným prvkem z nabídky. Vlastnost, která se má ovládat nebo vyčítat v dané položce uzlu vlastností lze vybrat dvěma způsoby:
© Doc. Ing. Jan Žídek, CSc.
14-187
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• •
V položce Properties roletového menu Pomocí nástroje ovladače po stisku levého tlačítka myši na uzlu vlastností
V obou případech je zobrazen seznam všech dostupných vlastností daného prvku, ze kterého si uživatel může vybrat. Jeden terminál uzlu vlastností může obsahovat jednu nebo více vlastností. Další vlastnost lze přidat dvěma způsoby: • •
V položce Add Element roletového menu Roztažením terminálu uzlu vlastností nástrojem volby, označení a přemístění
Pro ovládání nebo vyčtení vlastnosti lze automaticky vytvořit konstanty, indikační nebo ovládací prvek v položce Create … . Terminál vytvořeného prvku bude propojen s danou položkou uzlu vlastností.
Obr. 173.:
Přidání položky do seznamu vlastností roztažením terminálu uzlu vlastností
V položce Name Format se volí zobrazení celého nebo zkráceného pojmenování vlastností v terminálu uzlu vlastností (No Names/Short Names/Long Names). Barva jména vlastnosti určuje i její datový typ. Některé vlastnosti se vyznačují jednoduchým datovým typem, jiné jsou spojeny s datovými strukturami – nejčastěji clusterem. Obvykle se dá pracovat s celou vlastností přes datový typ cluster nebo s jednotlivými částmi vlastnosti přes jednoduché datové typy. Popis a datový typ spojený s vlastností lze vyčíst v okně nápovědy. Každý typ prvku čelního panelu má jinou množinu vlastností, se kterými lze pracovat.
14.1. VLASTNOSTI PRVKU NUMERIC Množinu vlastností volitelných pro prvky Numeric ukazuje následující obrázek:
© Doc. Ing. Jan Žídek, CSc.
14-188
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 174.:
Množina vlastností prvku typu Numeric
Volitelné vlastnosti prvku Numeric jsou: Visible
viditelnost prvku na čelním panelu (T/F)
Disabled
možnost ovládat prvek na čelním panelu (0=lze, 1=nelze, 2=zašedlé a nelze)
Key Focus
přesun aktivity na daný prvek
Blinking
blikání prvku na čelním panelu
Caption
druhý popis prvku
Label
název prvku
Value
hodnota
Description
popis prvku
Key Navigation
nastavení aktivity - kurzor na prvek
Type deskriptor
popis datového typu
Tip Strip
text pomocného okénka, které se ukáže při nájezdu kurzoru na prvek
Data Socket
parametry pro dálkový přístup k prvku
Format&Precision
formát a přesnost zobrazení čísla (počet des. míst)
Data Range
rozsah hodnot
Out of Data Range Action akce provedená při překročení povoleného rozsahu hodnot Unit Label Visible © Doc. Ing. Jan Žídek, CSc.
zobrazení fyzikální jednotky 14-189
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Radix Visible
zobrazení základu číselné soustavy
Numeric Text
vlastnosti textu
Text Color
barva textu
BG Color
barva pozadí
Size
velikost
14.2. VLASTNOSTI INDIKÁTORU GRAFU Nejvíce vlastností je na výběr u indikátoru grafu. U registračního grafu jsou to následující vlastnosti: Visible
viditelnost prvku na čelním panelu (T/F)
Disabled
možnost ovládat prvek na čelním panelu (0=lze, 1=nelze, 2=zašedlé a nelze)
Key Focus
přesun aktivity na daný prvek
Blinking
blikání prvku na čelním panelu
Caption
druhý popis prvku
Label
název prvku
Value
hodnota prvku
Description
popis prvku
Key Navigation
klávesová zkratka
Type Descriptor
specifikuje datový typ (pouze ke čtení)
Tip Strip
text pomocného okénka, které se ukáže při nájezdu kurzoru na prvek
Data Societ
parametry pro dálkovou správu prvku
Plot Area
nastavení velikosti kreslící plochy (Size) a barev (Colors) grafu
Palette
viditelnost palety nástrojů grafu
Transpose Array
transpozice polí dat
Grid Colors
barva rastru
Active X Scale
aktivní x-ová stupnice
X Scale
x-ová souřadnice: styl, formát, rozsah
Active Y Scale
aktivní y-ová stupnice
Y Scale
y-ová souřadnice: styl, formát, rozsah
Legend
legenda grafu
Scrollbar Visible
viditelnost skrolovací lišty pro historii grafu
Digital Display
digitální display
Active Plot
aktivní průběh (pořadové číslo)
Plot
vlastnosti aktivního průběhu
Update Mode
typ překreslování grafu
Digital Display Visible
viditelnost digitálního displaye
© Doc. Ing. Jan Žídek, CSc.
14-190
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
History Data
jednorozměrné pole s historií dat
14.3. UKÁZKA POUŽITÍ UZLŮ VLASTNOSTÍ Pomocí uzlů vlastností lze řešit některé standardní situace. První z nich je např. vytvoření postupu pro koncového uživatele, v němž má manipulovat s prvky čelního panelu. Tuto situaci lze řešit buď viditelností (visible) prvku nebo pomocí povolení (disabled) prvku. Prvky, s nimiž nemá uživatel v dané fázi aplikace manipulovat se buď skryjí nebo zakážou. Aby bylo zřejmé, že jsou prvky zakázány, je dobré je zašedit – hodnota disabled=2.
Obr. 175.:
Zakázání akce na některých prvcích
V některé fázi lze některý prvek zvýraznit jeho rozblikáním – např. při dosažení kritické hodnoty.
© Doc. Ing. Jan Žídek, CSc.
14-191
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 176.:
Rozblikání prvku na čelním panelu
Další standardní situací řešitelnou pomocí uzlu vlastností je vyčtení historie registračního grafu:
Obr. 177.:
Čelní panel VI pro přenesení dat z historie registračního grafu do statického
© Doc. Ing. Jan Žídek, CSc.
14-192
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 178.:
Blokový diagram VI pro přenesení historie registračního grafu do statického grafu
Další standardní situaci řešitelnou uzly vlastností je programové vyčtení polohy kurzoru ve statickém grafu:
Obr. 179.:
Čelní panel VI pro programové vyčtení pozice kurzoru statického grafu
© Doc. Ing. Jan Žídek, CSc.
14-193
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 180.:
Blokový diagram VI pro programové vyčtení pozice kurzoru statického grafu
© Doc. Ing. Jan Žídek, CSc.
14-194
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
15. KOMUNIKACE S MĚŘICÍMI PŘÍSTROJI Pro komunikaci s měřicími přístroji se v praxi nejvíce rozšířilo rozhraní RS 232 a GPIB (General Purpose Interface Bus – jiná pojmenování HPIB, IEEE 488). Sériové rozhraní RS 232 má výhody v jednoduché kabeláži, v tom, že toto rozhraní je standardní součástí architektury PC a že komunikace může probíhat na větší vzdálenost (řádově až stovky metrů). Nevýhodou tohoto rozhraní je malá propustnost a schopnost komunikace s pouze jedním protějškem. Paralelní rozhraní GPIB má výhodu ve větší propustnosti, schopnosti komunikovat s více protějšky. Nevýhodou je nutnost doplnění architektury PC speciální kartou s tímto rozhraním. Kromě těchto dvou základních a častých možností existuje ještě možnost komunikace s VXI měřicími přístroji. Tyto jsou však velmi málo rozšířené. Softwarová podpora komunikace s měřicími přístroji je obsažena v paletovém menu Functions – Instrument I/O.
Obr. 181.:
Paletová nabídka funkcí pro komunikaci s měřicími přístroji
© Doc. Ing. Jan Žídek, CSc.
15-195
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
V paletovém menu Instrument I/O jsou funkce rozděleny do skupin: VISA
funkce pro tvorbu obslužných programů měřicích přístrojů (podpora všech rozhraní)
488
funkce podporující rozhraní GPIB podle prvotního standardu IEEE 488
488.2
funkce podporující rozhraní GPIB podle rozšířeného standardu IEEE 488.2
Serial
funkce pro podporu sériového rozhraní
VXI
funkce pro podporu VXI sběrnice
Pro rozhraní RS 232 a GPIB je společné, že obsahem komunikace s měřicím přístrojem je výměna textových řetězců. Syntaxe těchto textových řetězců je dána zpravidla standardem SCPI (Standard Commands for Programmable Instruments). Takovýmto přístrojům se říká Message Based Instruments – přístroje založené na zprávách. Pro sběrnici VXI je charakterističtější výměna binárních zpráv, které zapisují a vyčítají byty z odpovídajících registrů. Takovýmto zařízením se říká Register Based Instruments – přístroje založené na registrech. Podobně je pojata i komunikace se zásuvnými měřicími kartami.
15.1. OBSLUŽNÉ PROGRAMY PRO MĚŘICÍ PŘÍSTROJE Aby koncový uživatel nemusel zvládat komunikaci s konkrétním měřicím přístrojem do velké hloubky, existuje v rámci vývojového prostředí LabVIEW pomocný prostředek ve formě obslužného programu pro měřicí přístroj. Souvislost tohoto obslužného programu, firmware přístroje a aplikace, která jej používá ukazuje následující obrázek:
Aplikace Obslužný program Firmware měřicího přístroj Hardware měřicího přístroj Obr. 182.:
Struktura souvislostí jednotlivých vrstev SW
Nad hardwarem měřicího přístroje pracuje základní software (firmware), který určuje funkčnost přístroje a je jeho nedílnou součástí. Tato vrstva softwaru je obvykle uložena v pamětech typu EPROM přímo v měřicím přístroji. Součástí firmware je i podpora komunikace přes digitální rozhraní, kterým je přístroj vybaven (RS 232, GPIB). To, které funkce přístroje jsou podporovány přes toto komunikační rozhraní a prostřednictvím jakého textového řetězce, je obvykle popsáno v dokumentaci přístroje v kapitole, která nese zpravidla označení Remote Control. Aby uživatel nemusel tuto kapitolu dokumentace pečlivě studovat, je pro konkrétní měřicí přístroj zpracována další vrstva softwaru – obslužný program (Instrument Driver), která je určena pro konkrétní vývo© Doc. Ing. Jan Žídek, CSc.
15-196
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
jové prostředí. V případě použití této vrstvy softwaru dostává uživatel k dispozici nabídku hierarchicky definovaného funkčního stromu. Uspořádání funkcí do skupin v rámci tohoto funkčního stromu je dáno standardem VXI Plug&Play. Z tohoto funkčního stromu si uživatel vybírá jednotlivé funkce a uspořádává je do sekvence, která odpovídá potřebám úlohy, kterou má v daném vývojovém prostředí realizovat jím vytvářená aplikace. Obslužné programy pro měřicí přístroje jsou pro vývojové prostředí LabVIEW distribuovány jako freeware – volně šiřitelné programy. Jsou přístupny buď na www stránkách firmy National Instruments nebo jsou distribuovány na CD nosičích čtyřikrát ročně. Takto získané obslužné programy lze přidat do vývojového prostředí do podadresáře Instr.lib. Díky souborům *.mnu, které jsou jejich součástí se objeví rozšíření paletového menu Functions – Instrument Drivers. Pod každou ikonkou v tomto místě paletového menu je obslužný program pro jeden měřicí přístroj. Po kliknutí na jeho ikonku se objeví struktura submenu, která odpovídá doporučeným třídám funkcí podle specifikace VXI Plug&Play. Uživatel si potom může vybírat z těchto submenu potřebné funkce a sestavovat je do sekvence podle měřicího postupu.
Obr. 183.:
Paletové menu obslužných programů pro měřicí přístroje
© Doc. Ing. Jan Žídek, CSc.
15-197
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Jednotlivé třídy funkcí podle specifikace VXI Plug&Play jsou následující: Aplikační funkce
ukazují použití jednotlivých funkcí z ostatních tříd
Inicializační funkce
inicializace komunikace přes digitální rozhraní
Funkce uzavření komunikace
funkce ukončující komunikaci přes digitální rozhraní
Konfigurační funkce
funkce pro konfiguraci měřicího přístroje
Datové funkce
funkce vyčítající naměřená data z měřicího přístroje
Akční funkce
funkce pro vykonání příkazů jako hardcopy apod.
Utility
služby společné pro všechny přístroje (reset, …)
Obr. 184.:
Paletová nabídka obslužného programu pro multimetr HP 34401A
Všechny funkce v nabídce obslužného programu začínají prefixem s označením přístroje – např. HP345401A xxxx. Ve skupině aplikačních funkcí bývají obvykle dvě funkce: Prefix Getting Started.vi
ukázka použití standardní akce s přístrojem (inicializace, kon figurace, vyčtení dat, uzavření)
Prefix Application Example.vi
totéž jako předchozí pouze bez inicializace a uzavření komu nikace
Na funkci Getting Started.vi se může uživatel naučit vytvoření řetězce funkcí a po nastavení správné rozhraní a adresy v inicializaci by tento VI měl být po připojení přístroje funkční.
© Doc. Ing. Jan Žídek, CSc.
15-198
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
15.2. POUŽITÍ FUNKCÍ Z OBSLUŽNÉHO PROGRAMU
Pomocí funkcí z nabídky obslužného programu lze snadno a rychle sestavit řetězec obsluhy daného přístroje. Sekvenčnost provádění funkcí zajišťují dvě průběžné proměnné: VISA Session
ovladač, vytvořený funkcí Initialize
Error Cluster
chybové hlášení, které zajišťuje kromě sekvenčnosti i to, že se nepo kračuje v řetězci funkcí, došlo-li k chybě
Funkcí, která zajišťuje zahájení komunikace s přístrojem je funkce Initialize.vi a musí být použita jako první.
Obr. 185.:
Čelní panel funkce Initialize
V této funkci se nastavuje typ rozhraní (GPIB – RS 232) v ovládacím prvku Instr. Descriptor. Dále se zde nastavuje adresa pro GPIB rozhraní. Pro sériové rozhraní se zde nastavují parametry přenosu (baudová rychlost, parita, počet datových bitů). Dále se v této funkci dá zvolit, jestli má být přístroj resetován a zda má být vyčten identifikační řetězec. Po funkci Initialize, která mimo jiné vytvoří i dva výstupní parametry (VISA Session a Error Cluster) se obvykle do sekvence zařazují funkce konfigurační (nastaví parametry pro měřící úlohu na měři© Doc. Ing. Jan Žídek, CSc.
15-199
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
cím přístroji), po nich funkce datové (vyčtou výsledky měření) a na závěr funkce Close.vi, která uvolní komunikační linku. Postup vytvoření aplikace pro komunikaci s měřicím přístrojem je tedy následující: 1. Sestavení posloupnosti funkcí z obslužného programu v okně blokového diagramu 2. vytvoření potřebných ovládacích a indikačních prvků na čelním panelu 3. propojení signálových cest
Dokumentujme tento postup na příkladu použití digitálního multimetru HP 34401A.
Obr. 186.:
Blokový diagram aplikace po prvním kroku
Pro vytvoření potřebných prvků čelního panelu postačí dvakrát kliknout na ikoně funkce – tím se otevře její čelní panel a z něj lze zkopírovat potřebné prvky na čelní panel aplikace a po té je možné čelní panel funkce opět zavřít.
Obr. 187.: © Doc. Ing. Jan Žídek, CSc.
Čelní panel aplikace po druhém kroku 15-200
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Ve třetím kroku se propojí terminály zkopírovaných prvků s piny konektorů na ikonách v blokovém diagramu.
Obr. 188.:
Blokový diagram aplikace po třetím kroku
Na konec řetězce funkcí se obvykle umisťuje funkce Simple Error Handler.vi, která vyvolá dialogové okno s popisem chyby, jestliže k ní v předchozích funkcích došlo.
15.3. VYTVOŘENÍ VLASTNÍHO OBSLUŽNÉHO PROGRAMU PRO MĚŘICÍ PŘÍSTROJ V případě, že pro daný měřící přístroj nemá uživatel k dispozici obslužný program, je možné si jej vytvořit vlastními silami. V podadresáři C:\Program Files\ National Instruments\ LabVIEW\ EXAMPLES\ INSTR\ INSTTMPL se nachází knihovní soubor coredrv.llb, ve kterém jsou šablony pro vytvoření obslužného programu. Každý VI zde obsahuje instrukce pro jeho modifikaci tak, aby výsledný produkt odpovídal funkčností i formálním uspořádáním standardu pro obslužné programy. V nadřazeném podadresáři C:\Program Files\National Instruments\LabVIEW\EXAMPLES\ INSTR se nachází VI s názvem insticon.llb. V tomto VI se nacházejí grafické návrhy ikon, které jsou použitelné při tvorbě vlastních obslužných programů pro měřící přístroje.
© Doc. Ing. Jan Žídek, CSc.
15-201
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 189.:
Obr. 190.:
Ikony použitelné pro tvorbu obslužných programů
Čelní panel šablony funkce Initialize s instrukcemi pro tvorbu této funkce
© Doc. Ing. Jan Žídek, CSc.
15-202
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Pro ověření správné syntaxe příkazů pro komunikaci na GPIB rozhraní se v adresáři C:\Program Files\National Instruments\LabVIEW\EXAMPLES\INSTR nachází knihovní soubor smplgpib.llb, v němž je hotová aplikace LabVIEW<>GPIB pro jednoduchou obousměrnou komunikaci přes toto rozhraní.
Obr. 191.:
Komunikační monitor pro rozhraní GPIB
Uživatel si zde může vyzkoušet, zda komunikace s danou syntaxí příkazů a dotazů funguje korektně za předpokladu, že má k rozhraní GPIB připojen přístroj. Čelní panel obsahuje i instrukce pro uživatele, jak při používání tohoto VI postupovat. Pro ověřování komunikace přes sériové rozhraní existuje ve stejném podadresáři knihovní soubor smplserl.llb, obsahující VI s názvem LabVIEW<>serial.vi, který má stejné určení a funkčnost jako předchozí prostředek pro GPIB rozhraní.
© Doc. Ing. Jan Žídek, CSc.
15-203
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 192.:
Čelní panel monitoru pro ověřování komunikace přes sériové rozhraní
15.4. SOFTWAROVÁ PODPORA SÉRIOVÉHO ROZHRANÍ Kromě výše popsaných komplexních prostředků pro podporu komunikace s měřicími přístroji přes sériové rozhraní existuje ve vývojovém prostředí LabVIEW i pět elementárních funkcí podporujících toto rozhraní. Uživatel je nalezne v nabídce Functions-Instrument I/O-Serial. Je to následujících pět funkcí: Init Serial Port.vi
inicializace sériového portu a zadání parametru komunikace
Serial Port Write.vi
zápis do vyrovnávací paměti pro výstup přes sériový port
Bytes At Serial Port.vi
ověření počtu bytů ve vstupní vyrovnávací paměti
Serial Port Read.vi
vyčtení bytů ze vstupní vyrovnávací paměti
Serial Port Break.vi
přerušení komunikace přes sériový port
Pomocí těchto funkcí lze budovat softwarovou podporu komunikace přes sériový port. © Doc. Ing. Jan Žídek, CSc.
15-204
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
16. ROZŠÍŘENÁ KNIHOVNA ANALÝZ Vývojové prostředí LabVIEW pokrývá všechny tři fáze procesu měření: • • •
sběr dat analýza dat prezentace výsledků
Pro podporu fáze analýzy měřených dat je k dispozici tzv. rozšířená knihovna analýz (Advanced Analysis Library). Tato knihovna je však k dispozici pouze od úrovně úplného vývojového prostředí (Full Development System) – není součástí tzv. základního balíku (Base Package). Rozšířená knihovna analýz představuje desítky velmi výkonných funkcí, které jsou uspořádány od verze LAbVIEW 5.x tématicky ve dvou paletových nabídkách Functions – Analyze - Signal Processing a Functions - Mathematics.
Obr. 193.:
Paletová nabídka funkcí patřících do rozšířené knihovny analýz
Na paletě Signal Processing nalezne uživatel 5 skupin funkcí, které se hodí pro generování signálu, zpracování signálu v časové a frekvenční oblasti, odstranění nežádoucích složek signálu (filtrace), odstranění nežádoucích jevů při převodu do frekvenční oblasti (okénkové funkce) a komplexní funkce pro zpracování naměřených dat. © Doc. Ing. Jan Žídek, CSc.
16-205
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Na paletě Mathematics nalezne uživatel různé matematické funkce např. z oblasti statistiky, regresní analýzy, maticového počtu, řešení polynomu apod. 16.1. GENEROVÁNÍ SIGNÁLU Pro účely generování signálu používá LabVIEW funkce, které do jednorozměrného pole ukládají matematicky spočítanou řadu funkčních hodnot standardních průběhů. Toto pole se dá použít pro účely generování daného průběhu nebo při simulaci naměřených průběhů. Funkce jsou v nabídce Function – Signal Processing – Signal Generation:
Obr. 194.:
Paletová nabídka funkcí pro generování signálů
K dispozici jsou funkce pro generování následujících průběhů: • • • • • • • •
Generátor standardních průběhů Sinusový průběh Impuls Rampa Sin(x)/x Obdélník Pila Šum s definovaným statistickým rozdělením Uživatelsky definovaný průběh
Pro jednotlivé funkce uživatel zadává charakteristické parametry funkce. Následující obrázek ukazuje použití funkce pro generování sinusového průběhu.
© Doc. Ing. Jan Žídek, CSc.
16-206
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 195.:
Použití funkce pro generování sinusového průběhu
Jestliže programátor připravuje aplikaci, která by měla spolupracovat s nějakými hardwarovými prostředky, lze funkce pro generování signálu výhodně využít pro simulaci očekávaných vstupů z hardwarových prostředků, aby bylo možno aplikaci ladit i bez připojeného hardwaru. Ukázka takovéto konstrukce je na následujícím obrázku (jsou zobrazeny obě větve přepínače Case).
Obr. 196.:
Použití funkce generování signálu pro simulaci měřených dat ve fázi ladění aplikace bez připojení na HW
© Doc. Ing. Jan Žídek, CSc.
16-207
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Booleovskou proměnnou simulace, která rozhoduje, zda se zpracovávají reální signály přicházející z připojeného hardwaru, nebo simulované signály, je vhodné umístit do sdílené datové oblasti a používat ji ve všech místech jako globální proměnnou. Potom stačí na začátku programu zápisem do této globální proměnné určit, zda se jedná o reálná nebo simulovaní data. Nejkomplexnější služby poskytuje v oblasti generování signálu funkce Signal Generator by Duration. Umí generovat všechny základní průběhy a jako výstupní parametr dává i informaci o vzorkovací frekvenci, která je spočítána ze zadaného počtu bodů a doby trvání signálu. Všechny parametry generovaného signálu zadává uživatel prostřednictvím vstupních parametrů této funkce. Následující obrázek ukazuje její čelní panel.
Obr. 197.:
Generátor funkcí
16.2. FUNKCE PRO ZPRACOVÁNÍ MĚŘENÝCH SIGNÁLŮ Jsou shromážděny v paletové nabídce Functions – Signal Processing – Measurement. Uživatel zde nalezne základní funkce pro zpracování měřeného signálu – jeho převod do frekvenční oblasti (amplitudové a fázové spektrum), detektor vrcholové hodnoty, výkonová spektra, odhad DC a AC hodnoty, zjištění parametrů pulzu, odhad výkonu a frekvence atp. Velmi častou úlohou v měření je zjištění spektra měřeného signálu. Vychází se ze změřené časové řady a lze zde použít s výhodou funkce Amplitude and Phase Spectrum.vi. Výstupními parametry této funkce je amplitudové a fázové spektrum. Vstupními parametry této funkce jsou:
© Doc. Ing. Jan Žídek, CSc.
16-208
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
• • •
Signal Unwrap Phase dt
vstupní časová řada omezení fáze na hodnoty menší než p časový interval mezi dvěma vzorky signálu
Výstupními parametry jsou: • • •
Aplitude Spectrum Phase Spectrum df
amplitudové spektrum fázové spektrum krok ve spektru
Pro zopakování uveďme základní aritmetiku, která váže tyto parametry mezi sebou: • • •
krok na frekvenční ose spekter df je roven frekvenci základní (první harmonické složky spektra) krok na frekvenční ose spekter df je zároveň roven převrácené hodnotě doby měření počet čar v amplitudovém a fázovém spektru je roven polovičnímu počtu prvků pole signálu
Vstupní proměnná Unwrap Phase zohledňuje periodičnost goniometrických funkcí a minimalizuje hodnotu fáze do intervalu 0 – π. Následující obrázky ukazují základní použití funkce Amplitude and Phase Spectrum.vi. jako zdroj signálu je použit generátor funkcí popsaný v předchozím odstavci.
Obr. 198.:
Čelní panel aplikace využívající funkce Amplitude and Phase Spectrum.vi
© Doc. Ing. Jan Žídek, CSc.
16-209
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 199.:
Blokový diagram aplikace využívající funkce Amplitude and Phase Spectrum.vi
Je potřeba si povšimnout, že tato funkce vrací v amplitudovém spektru RMS hodnotu. Jako vhodný studijní materiál pro tuto oblast lze použít řešené příklady z podadresáře … Program Files/ National Instruments/LabVIEW/Examples/Analysis. U každého příkladu uloženého v llb souboru je textový soubor txt, který popisuje obsah daného příkladu. Následující obrázek ukazuje jiné řešení jednoduchého analyzátoru spektra z této části knihovny příkladů. K těmto příkladům se lze také snadno dostat přes položku roletového menu Help/ Examples/ Fundamentals/ Analysis/ Signal Processing.
© Doc. Ing. Jan Žídek, CSc.
16-210
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 200.:
Jednoduchý spektrální analyzátor
V tomto příkladu je mimo jiné použita i funkce Power&Frequency Estimate.vi pro odhad přesné frekvence píku ve spektru a jeho výkonu (úměrného kvadrátu RMS hodnoty).
© Doc. Ing. Jan Žídek, CSc.
16-211
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
17. DISTRIBUCE APLIKACÍ VYTVOŘENÝCH V LABVIEW Vývojové prostředí LabVIEW je distribuováno v několika stupních •
Základ vývojového prostředí (Base Package)
•
Úplné vývojové prostředí = základ vývojového prostředí a rozšířená knihovna analýz (Full Development System)
•
Nástroj vytváření aplikací (Application Builder)
Po nainstalování nástroje vytváření aplikací je doplněno roletové menu Tools o položku Build Application or Shared Library (DLL)…
Obr. 201.:
Paletová nabídka s volbou nástroje pro vytváření aplikací
Po volbě této položky se otevře dialogové okno průvodce tvorbou aplikace.
© Doc. Ing. Jan Žídek, CSc.
17-212
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Obr. 202.:
Dialogové okno průvodce vytvářením aplikace
V jednotlivých záložkách uživatel zadává následující informace: •
Target
zadání cílové destinace a jména pro aplikaci
•
Souce Files
zadání zdrojových souborů
•
VIs Settings
nastavení vlastností VI
•
Application Settings
nastavení voleb pro aplikaci
•
Installer Settings
nastavení voleb pro instalátor
V záložce Target se zadává •
Application (EXE)–Shared Library (dll) volba mezi spustitelným tvarem aplikace (EXE) a sdílenou knihovnou (dll)
•
Target File Name
zadání jména pro výsledný produkt (jméno exe souboru)
•
Destination Directory
zadání podadresáře pro vytvořený produkt
•
Support Files Directory
zadání podadresáře pro pomocné soubory
•
Build Options
volby pro výsledný produkt
o
Single Target …
jeden soubor obsahující vše
o
Small Target …
malý výsledný soubor s externí knihovnou funkcí
o
Do not compress … nedělá se komprese výsledného produktu pro rychlejší nahrá vání do paměti
© Doc. Ing. Jan Žídek, CSc.
17-213
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
V záložce Source Files uživatel zadává soubory, které budou součástí distribuce: •
Top Level VI
hlavní VI projektu – stojí na vrcholu hierarchie a volá všechny ostatní
•
Dynamic VI
dynamicky nahrávané VI
•
Support Files
podpůrné soubory (např. konfigurační apod.)
Na záložce VI Settings lze zadat volby pro běh jednotlivých VI tvořících projekt. Na záložce Application Settings lze změnit ikonu reprezentující výsledný produkt a zapnout možnost, aby tento fungoval jako ActiveX server. Na záložce Installer Settings lze zapnout možnost vytvoření instalační sady pro výsledný produkt (Create Installer) a určit, co bude součástí instalační sady (Advanced), jak bude při instalaci prvotně nabízeno umístění a pojmenování výsledného produktu. Po vyplnění všech položek si lze nahrát skript obsahující všechny údaje vyplněné v dialogovém okně Application Builderu tlačítkem Save. Tento skript lze potom nahrát tlačítkem Load a všechny položky budou vyplněny v souladu s tímto skriptem. Po stisku tlačítka Build je vytvořen výsledný produkt (spustitelný exe soubor) a případně instalační sada pro instalaci produktu (Setup.exe a datové soubory) obsahující případně i RunTime modul LabVIEW pro možnost spuštění aplikace na stroji, na kterém není nainstalováno vývojové prostředí.
© Doc. Ing. Jan Žídek, CSc.
17-214
Katedra elektrických měření, Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
© Doc. Ing. Jan Žídek, CSc.
17-215