LabView 7.1 - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

LabView 7.1

Description:

LabView 7.1 LabView V vojov syst m (full development package) Base package bez knihovny Advanced Analysis, obsahuje knihovny GPIB, RS232, Data Acquisition, a ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 27
Provided by: 6297269
Category:
Tags: labview | gpib

less

Transcript and Presenter's Notes

Title: LabView 7.1


1
LabView 7.1
2
LabView
  • Vývojový systém (full development package)
  • Base package bez knihovny Advanced Analysis,
  • obsahuje knihovny GPIB, RS232, Data Acquisition,
    a Base Analysis
  • Advanced analysis library (rozšírené analyzacní
    knihovny)
  • statistika, lineární algebra, operace s poli,
    generování signálu, zpracování signálu, digitální
    filtry, okénkové funkce.
  • Lze jej dále doplnit o
  • prekladac aplikací (application builder)
  • SQL toolkit pro podporu databázi,
  • PID regulátor, Control Toolbox,
  • VXI knihovna apod.

3
Program virtuální nástroj (VI)
  • programové struktury
  • sekvence (sequence)
  • prepínac (case)
  • cyklus FOR (for-loop)
  • autoindexace vstupních a výstupních tunelu
    (možnost vypnutí)
  • cyklus WHILE
  • pole (array), struktury (clucter)
  • události (events)
  • lokální, globální promenné, konstanty
  • matematický výraz
  • polymorfizmus
  • property
  • subVi (vlastní, vnitrní) (soubory, I/O zarízení,
    filtry, mat. operace,)
  • Aplikaci lze uchovat samostatne (.vi soubor),
    nebo sdružovat více aplikací (.llb soubor)

4
Cásti virtuálního nástroje
  • Celní panel (front panel)
  • Ovládací a indikacní prvky (controls)
  • ikona a konektor
  • Blokové schéma (block diagram)
  • grafické vyjádrení programu (functions)

5
Nástroje pro práci
Výber zmena pozice
popisovac
ovladac
scrooling
propojovac
spojovac
výber barvy dle objektu
pop-up menu
sonda
barva
spojovac - space bar
breakpoint
run
stop
Svítí-li žárovicka Labview pri vykonávání
zobrazuje svoji cinnost v blokovém schématu
výber - single click
výber - double click
krokování
nastavení textu
výber - triple click
pauza
Opakované spuštení
6
Ikona, konektor, komentáre
  • Front panel
  • Ikona
  • obrázek symbolizující VI nástroj
  • Konektor
  • interface pro navázání VI nástroje s okolím

7
Datové typy, signály.
8
Pop-up menu, property
  • Umožnuje rychlé pripojení prvku k objektu.
  • create/(constatnt,control,indikator)
  • Zmena objektu na jiný.
  • replace/
  • Prístup k property vlastnostem.
  • create/property node
  • Vyhledání prvku na panelu.
  • Vyhledání vlastních lokálních promených.
  • Zmena datového typu a rozsahu hodnot.
  • representation/typ
  • formatprecision

9
Programové struktury
  • Sekvence (složena z rámcu)
  • Umelé vytvorení posloupnosti provádená príkazu.
  • Jednotlivé rámce sekvence se provádejí poporade
    (0, 1, 2).
  • Zobrazen je vždy jen jede rámec.
  • Vstup do rámce tunelem (jeden vstup muže být
    napojen na více bloku ruzných rámcu)
  • Výstup z rámce tunelem (jeden blok jeden tunel)
  • Prepínac (case)
  • Vetvení programu, dle podmínky do dvou ci více
    vetví
  • Terminál pro pripojení testovací podminky

10
Programové struktury
  • For-loop cyklus
  • Pro známý pocet opakování
  • Automatická indexace vstupního/výstupního kanálu
    i
  • Vypnuto vstupem je pole v každém kroku,
    výstupem je skalár po ukoncení celého cyklu.
  • Zapnuto vstupem je prvek na indexu i, výstupem
    je pole výsledku jednotlivých pruchodu.
  • Rychlost provádení cyklu lze ovlivnit vložením
    bloku Wait Until Next ms Multiple.
  • Pro zprístupnení hodnot z mynulých pruchodu
    slouží posuvné registry.

11
Programové struktury
  • While-loop cyklus
  • Opakování dáno testovanou podmínkou (true
    opakuj)
  • Rychlost provádení cyklu lze ovlivnit vložením
    bloku Wait Until Next ms Multiple.
  • Pro zprístupnení hodnot z minulých pruchodu
    slouží posuvné registry.
  • Event structure
  • Provádení rámce pri vybrané události.

12
Provádení bloku operace
  • Asynchronní provádení
  • bloku muže být spušteno simultánne spolu s
    dalšími bloky tj. strídavé provádení malých úseku
    kódu pridelováním kapacity CPU. LabVIEW obsahuje
    plánovac pro víceúlohoví beh, který prerušuje
    vykonávání kódu bloku, který má k dispozici
    všechna svá vstupní data, a prepíná na vykonávání
    kódu dalšího bloku, který má rovnež k dispozici
    všechna vstupní data.
  • Radic priority prideluje kódu daného bloku
    kapacitu CPU na dobu, která odpovídá jeho
    priorite, potom prerazuje tento blok na konec
    fronty, kterou obhospodaruje. Z této fronty je
    blok vyrazen po dokoncení své cinnosti.
  • Asynchronne se provádejí bloky odpovídající
    strukturám, vstupne/výstupním funkcím, casovacím
    funkcím a uživatelem definovaným subVI.
  • Code Interface Nodes (CINs) a všechny výpocetní
    funkce jsou provádeny synchronne. Kód bloku je
    prováden bez prepínání na provádení jiných bloku
    a teprve po jeho dokoncení je kapacita CPU
    predána pro provádení jiných bloku.
  • Existuje pet úrovní priority 0, 1, 2, 3 a
    subroutine.
  • Nejnižší úroven priority je úroven 0,
  • Nejvyšší prioritou je priorita subroutine, která
    je v nekterých ohledech speciální. Beží-li
    nekterý VI s prioritou subroutine, žádný jiný
    nebude spušten, dokud se tento nedokoncí.
    Provádení techto bloku je tedy sekvencní.

13
Provádení bloku operace
  • Reentrantní provádení bloku znamená, že je možné
    provádet nekolikanásobne volaný blok paralelne.
    (každé volání takovéhoto bloku totiž vytvárí
    separátne kopii dat) užitecné ve trech prípadech
  • jestliže VI obslužného programu rídí a komunikuje
    s fyzickým prístrojem a musí rídit nekolik
    identických prístroju
  • jestliže VI ceká specifikovaný casový interval
    nebo dojde k vypršení nastaveného casu
  • jestliže VI obsahuje data, která nemohou být
    sdílena s jinými položkami tohoto VI,
  • Reentrantní provádení VI se povoluje nastavení VI
    Setup...
  • Príklad viz. 1

14
DLL
  • Pro volání funkcí z DLL souboru musíme mít k
    dispozici
  • konkrétní dll soubor ),
  • jména funkcí v DLL,
  • pocet a typy argumentu ve fci s návratový typem,
  • volací konvence (C, stdcall).
  • tyto informace získáme z prototypu funkcí v
    hlavickovém souboru .h
  • void MyFunction(int32 a, double b, char string,
    uInt32 arraysize, int16 dataarray)
  • b je pointer na jedno realné císlo (8B float),
  • string je pointer na retezec
  • dataarray je pointer na pole 16b celých císel

15
  • include main.h"
  • include ltwindows.hgt
  • include ltstdio.hgt
  • include ltstdlib.hgt
  • include "math.h"
  • define true 1
  • define false 0
  • DLLIMPORT int GetSphereSAandVol(double radius,
    double sa, double vol)
  • if(radius lt 0)
  • return false //return false (0) if radius is
    negative
  • sa GetSA(radius)
  • vol GetVol(radius)
  • return true
  • DLLIMPORT double GetSA(double radius)
  • return 4 M_PI radius radius
  • main.h
  • DLLIMPORT int GetSphereSAandVol(double radius,
    double sa, double vol)
  • DLLIMPORT double GetSA(double radius)
  • DLLIMPORT double GetVol(double radius)

16
DLL, advanced functions
Blok pro volání fce z dll souboru
CIN Code Interface Node
call library function node
Vstupní zarízení (joystick, klávesnice, myš,)
I/O port
Jestli je funkce v DLL schopná paralelního
zpracování (threadsafe) lze zvolit
Reentrant (žlutá/oranžová barva)
WIN registry
Výber fce z DLL
DLL soubor
Manipulace s daty pretypování, posuvy,
presouvání, rozdelování,
Synchronizace semafory, fronta,
Nastavení typu argumentu nebo návratové hodnoty
funkce
pridávání argumentu pro postupné vytvorení
prototypu fce
Volací konvence
17
Vytvorení DLL v LabView
  • Vytvoríme VI prístroj,
  • pridelíme terminálu vstupy/výstupy,
  • uložíme a uzavreme.
  • Otevreme nový VI
  • v tools
  • Build application or shared library (DLL)

18
Vytvorení DLL v LabView
Výber VI prístroje
Výber DLL/EXE
Identifikátor fce
Jména exportovaných funkcí z VI do DLL souboru.
Volací konvence
Jméno výsledného DLL
Argumenty fce
Nastavení argumentu
Zdrojový a cílový adresár
Prototyp fce
Po vytvorení všech prototypu funkcí z VI
prístroje, zvolit BUILD - provede kompilaci a
vytvorí výsledný .DLL, .h a .lib soubor v
cílovém adresári.
19
Použití DLL z LabView v C
  • include ltstdio.hgt
  • include ltstdlib.hgt
  • //include "SharedLib.h"
  • include "windows.h"
  • double C 0
  • double F 25
  • HANDLE fH 0
  • double (f_to_c2)(double DegF)
  • int main(int argc, char argv)
  • printf("Nacteni DLL knihovny\n")
  • fH LoadLibrary("SharedLib.dll")
  • printf("Jeji handle jest d\n",fH)
  • if (fH 0)
  • MessageBox(NULL,"Chyba pri nacteni
    DLL","Chyba", MB_OK)
  • return 1

20
CIN
  • CIN (Code Interface Node)
  • Blok zprístupnující C/C kód pro LabView
  • V C kódu musíme zahrnout hlavickový soubor
    extcode.h (v adresári /LabWiew/cintools)
  • include "extcode.h"
  • LabView volá funkce standardizovaného rozhraní
  • funkce které mají konkrétní identifikátory,
    návratovou hodnotu a parametry
  • MgErr CINRun(volitelné parametry_dle I/O bloku)
    // pri každém provedení bloku CIN
  • MgErr CINProperties(int32 prop, void data) //
    nastaveni CIN
  • MgErr CINLoad(RsrcFile reserved) // provede se
    pri nactení CIN
  • CINSave, CINUnload, CINAbort, CINInit,
    CINDispose.
  • Dále je možné využívat v kódu další vnitrní fce
    LabView, typy,
  • (viz. manuál ve formátu pdf, dostupný z nápovedy
    k CIN bloku)
  • Na rozdíl od bloku pro DLL se parametry pro blok
    CIN volitelne pridají pri tvorbe programu, poté
    se vygeneruje príslušná šablona pro C/C.

21
Blok CIN se roztáhne tak, aby obsahoval
potrebný pocet terminálu (parametru)
  • Terminály mohou být
  • obousmerné
  • vstupní
  • výstupní

Terminálum priradíme konkrétní signály
Vytvoríme šablonu pro C/C
22
CIN
  • Do vytvorené šablony doplníme náš kód.
  • Následne je potreba vygenerovat .lsb soubor
  • http//zone.ni.com/devzone/conceptd.nsf/webmain/3
    1DAB548C369B2C6862567C8006D8FC9
  • Vytvoríme nový projekt DLL
  • Nastavíme kompilátor
  • Multithreaded DLL, zarovnávání císel po 1B,
    konvence volání funkcí C.
  • Adresár cintools pridat do cesty pro vyhledávání
    include souboru
  • Do projektu priradit tyto soubory
  • Cin.obj, Labview.lib, Lvsb.lib, Lvsbmain.def
  • Vytvoríme príkaz pro vlastní sestavení .lsb
    souboru
  • Build commands
  • "ltCintools_pathgt\lvsbutil" "(TargetName)" -d
    "(WkspDir)\(OutDir)
  • Output files
  • "(OutDir)(TargetName).lsb
  • Spustíme kompilaci

23
CIN
  • Po naprogramování a úspešném preložení projektu
    DLL získáme požadovaný soubor .lsb
  • V preloženém DLL nejsou slinkovány fce CINXxxx
    (neuvedeme include nas_soubor.c v hlavním
    souboru DLL)
  • .lsb soubor je sestaven pomocí programu lvsbutil
  • .lsb nacteme do bloku CIN pomocí pop-up okna Load
    Code Resource

Z funkce CINProperties získal LabView informaci o
kódu, jenž je threadsafe (žlutá barva) a je možné
k tomuto objektu pristupovat paralelne.
24
Simulation module
  • Všechny bloky ze simulacního modulu musí být na
    simulacní smycce nebo simulacním subVI
  • Lineární (diskrétní i spojité) systémy lze
    zadávat pomocí prenosu, stavového prostoru, pólu
    a nul
  • Nelineární systémy je nutné sestavit pomocí bloku
  • Zrcadlové obrácení bloku pomocí položky
    kontextového menu bloku Reverse terminals
  • Pokud je na vstupu derivace skok, dojde k
    zastavení simulace
  • Pri použití bloku nepatrících do simulacního
    modulu dochází k neocekávanému chování

Simulation module
25
SubVI
  • Zprehlednení blokového schématu
  • Znovupoužití vytvoreného schématu
  • Vytvorení z aktuálního výberu pomocí nabídky Edit
    - Create subVI
  • Výstupy/vstupy vytvoreného subVI odpovídají
    propojeným výstupum/vstupum z/do výberu použitého
    pro vytvorení subVI
  • Uložené subVI se vloží pomocí funkce Select a VI

Select a VI
26
Reference
  • 1 http//vlab.fme.vutbr.cz/
  • 2 http//www.physics.muni.cz/cermak/index.php
  • 3 http//zone.ni.com/zone/jsp/zone.jsp
  • Communicating with a Real-Time Engine
  • http//zone.ni.com/devzone/devzone.nsf/webcategori
    es/80B108310397CDE886256B5D00798294
  • Programming Event Response Applications
  • http//zone.ni.com/devzone/devzone.nsf/webcategori
    es/B8486B92B6C187B486256B5D007A8C43
  • Programming Control Applications
  • http//zone.ni.com/devzone/devzone.nsf/webcategori
    es/98B00EDB9735ECB386256B5D007A86D0
  • Using External Code
  • http//zone.ni.com/devzone/devzone.nsf/webcategori
    es/69AC4D47BD54298A86256AB7006AB23C
  • Hardware Input and Output
  • http//zone.ni.com/devzone/devzone.nsf/webcategori
    es/9B7EBE009FDF14718625688B00731D38
Write a Comment
User Comments (0)
About PowerShow.com