You are on page 1of 215

LabVIEW 7 7

LabVIEW
LabVIEW

LabVIEW 1986 Macintosh PC


LabVIEW LabVIEW LabVIEW
Windows
3D LabVIEW x86
(big-ending) x86 CPU

LabVIEW 4.0
LabVIEW
! LabVIEW C
!

4.0 8.2LabVIEW LabVIEW 5


; LabVIEW 6 3D ;LabVIEW 7 Express VI
LabVIEW 8 LabVIEW
LabVIEW LabVIEW
C LabVIEW
CBasic

LabVIEW
LabVIEW

LabVIEW

LabVIEW
LabVIEW
LabVIEW

NI LabVIEW

LabVIEW LabVIEW
LabVIEW
CJava LabVIEW
LabVIEW

LabVIEW
LabVIEW

LabVIEW
NI LabVIEW LabVIEW
LabVIEW

LabVIEW ; LabVIEW VI

LabVIEW

LabVIEW

? LabVIEW

LabVIEW


NI NI
LAVA
LabVIEW Windows Live Messenger
http://labview.groups.live.com/ msn LabVIEW

LabVIEW
LabVIEW

LabVIEW
8.0 LabVIEW LabVIEW
VC, VB project, workspace Project
LabVIEW

1LabVIEW
LabVIEW LabVIEW
LabVIEW 8 VI;
(Project) VI

VI VI VI
VI VI Hierarchy
File

1 VI

LabVIEW
My Computer LabVIEW RT, FPGA
LabVIEW

LabVIEW 8.0 VI
Library, Class, XControlXNode

LabVIEW 8 VI Tools APP Builder


Build Specification
EXE, DLL
LabVIEW VI VI
; Build
Source Distribution
LabVIEW VI
VI C ?
VI
Sort.vi
VI
8 LabVIEW VI
VI VI VI
(http://ruanqizhen.spaces.live.com/blog/cns!5852D4F797C53FB6!783.entry)
LabVIEW
VI
VI
VI

VI Project One VI
Project Two VI Item
File Project -> Show Item Paths2


Files

2
VI
VI LabVIEW VI
VI VI
VI VI ;
LabVIEW VI
VI VI 2
Sub VI.vi VI Project One Project Two
VI Item
VI Resolve Conflicts
VI VI

LabVIEW LLB
LabVIEW LLB
File->New LabVIEW 8
LLB ; LLB Tool->LLB
Manager... LLB Manager File -> New LLB LLB

LabVIEW8LLB

LLB VI LLB
LabVIEW

LLB
1.
LLB
2.
3. LLB LLB

LLB
LabVIEW 8 Project Library

VI Properties -> Execution VI Reentrant Execution ()


LabVIEW VI
VI
LabVIEW VI
Reentrant VI ?
1 VI VI VI
LabVIEW VI
VILabVIEW VI
LabVIEW

1 VI
LabVIEW VI VI
C VI VI
LabVIEW VI
LabVIEW
VI VI
1 VI VI CPU
VI LabVIEW
VI
VI
VI C

2 VI

3 VI
2 VI 1000 3 VI VI
VItotal time ?

VI VI
VI VI

4 VI

5 VI
4 VI VI count
15 VI VI output 1 output 2
10 20 VI 10 20
4 VI output 1 output 2

VI VI
VI LabVIEW VI

2 VI total time = 2000; total


time = 1000

.ctl
.ctl VI
LabVIEW .ctl control
(Control)(Type Def.)(Strict Type Def.)

.ctl .ctl VI

.ctl

Ring(EnumCombo Box)
(item)
Ring

.ctl
Ring

( LabVIEW )

LabVIEW 8.0 LabVIEW

LabVIEW 8

LabVIEW 8.2

1
VI

Express VI

Express 2
3

2, 3
Express 4
Express

4
LabVIEW
2
View
LabVIEW
LabVIEW 8.5 Favorite
Favorite
Favorite Favorite

Windows Explore
Windows VI1

1- VI
Create New VI.zip Create Empty VI.reg
1 VI
Windows Create Empty VI.reg
Data LabVIEW 8.0 VI
reg VI
VI reg
ZIP Create New Reg Data.vi VI
Data VI Create New Reg Data.vi
VI VI

LabVIEW
VI
VI
LabVIEW

VI

VI
C2
C1
Ctrl+A D1
D2
Small Fonts8

.
LabVIEW
LabVIEW
LabVIEW

12
1error inSubVI A
SubVI Berror out VI
2SubVI ASubVI B VI
SubVI ASubVI BMerge Errors.vi

.
VISequence
Structure

3Menu Palette

LabVIEW Stacked Sequence StructureFlat


Sequence Structure

VI VI
Sequence Local

sequence local

5
VI
LabVIEW VI
LabVIEW VI error in, error
out VI

6 VI


LabVIEW 8 Diagram Disable Structure
Conditional Disabled Structure C

. Diagram Disable Structure


Enabled
Disabled Disable SubVI
Case Structure

12
12 test

. Conditional Disabled Structure


symbol

My Computer

. Case Structure
C switch bool error
C if

4 Case Selector
Use Default If UnwiredUse
Default If Unwired LabVIEW

5Use Default If Unwired

5 Use Default If Unwired

Event Structure LabVIEW


Visual Basic

.
LabVIEW

1
1 <Application>

2 VI <This VI>
VI VI

3 Dynamic
4 PaneSplitter LabVIEW 8LabVIEW 8
VI

2
5 Control

edit events events

Mouse DownLabVIEW
Key Down, Key Up, etc.Key Focused;
Mouse Down, etc.

Cluser

.
LabVIEW Notify EventFilter
Event
LabVIEW
LabVIEW Value Changed

LabVIEW
LabVIEW Key Down?
Event
LabVIEW LabVIEW

VI
VI
VI

LabVIEW

3 Key Down?
Phone Number Control.vi

.
Edit Events
Programming -> Dialog & User Interface -> Events

Register For Events

4
VI
VI VI
VI VI VI

.
LabVIEW
Create User Event

. ActiveX
ActiveX LabVIEW ActiveX VI
Register Event Callback VI VI

VI LabVIEW VI


LabVIEW for while

for
LabVIEW for
1 For 0 1
2For C break LabVIEW for

1For
1 For For
shift register

LabVIEW

C LabVIEW
Local Variable LabVIEW LabVIEW
LabVIEW

2
2
3

3
LabVIEW
LabVIEW 8.5 for for while

While
LabVIEW While do... while... while... do...
LabVIEW LabVIEW while
for while while
for
While for (LV 8.5 )
while
while
for
while for

4
4 for LabVIEW
100 LabVIEW Array1 100
while LabVIEW Array2
LabVIEW while Array2
for

LabVIEW
LabVIEW
LabVIEW


LabVIEW 7.1
LabVIEW 7 Express VI
1
VI

1
LabVIEW
Wait, Delay Time Time&Dialog

LabVIEW RTFPGA
PC

PC Wait
Wait

LabVIEW VI
VI 2.7M

1
400k

4
LabVIEW
LabVIEW

LabVIEW 8.5 LabVIEW 8.5


LabVIEW

Programming->Application Control->Memory Control


1.

LabVIEW
Google Google Google NI
NI NI NI

LabVIEW Generic Container Map

; LabVIEW
C++ STL
STL
STL
STL STL
STL

STL

JavaC#
LabVIEW LabVIEW
LabVIEW

LabVIEW C++ LabVIEW


LabVIEW
LabVIEW

Map Map
LabVIEW
LabVIEW Array STL vector
STL deque, queue, stack LabVIEW (Queue)
LabVIEW /
LabVIEW
LabVIEW -
Map()

C++ STL Map


Map

LabVIEW Generic Container Map


Map

Map LabVIEW Map


C++
STL

LabVIEW Polymorphic VI
equal LabVIEW
VI
LabVIEW Map LabVIEW
Map LabVIEW G

Map

Express VI
Express VI Express VI 5

40 VI VI

40

VI

40 VI

LabVIEW
2+1
+1
LabVIEW

LabVIEW 1 -

1.
LabVIEW

Windows

Advanced editing mode

2.
Adapt to Source()
34 I32()
34.3 DBL 3434.0
3. (Representation)
I64 U64 LabVIEW 8.0

VI VI 300 I16

LabVIEW 2 -

1.
Programming -> Numeric 1

1Numeric Function Palette

Mathematic Mathematic

LabVIWE

2.
(Expression Node)

2Expression Node
2 F1 C1

F2 C2

f LabVIEW

3. Formula Express VI
Formula Express VI VI Mathematic -> Scripts &
Formulas 3 Express VI

3Formula Express VI
Formula Express VI
4.
(Formula Node)
C

4Formula Node
5. MathScriptMATLAB Script Xmath Script

MATLAB MATLAB

MathScript

MATLAB Script MATLABMATLAB M athWorks


Xmath Script NI MATRIXxMATRIXx NI
MATLAB

LabVIEW 3 -

1.
Visible Items -> Unit Label

Build Unit StringLabVIEW LabVIEW

1~3

45

2.
I32 string
LabVIEW

LabVIEW
LabVIEW 6
LabVIEW

VI
VI
VILabVIEW
VI $n n 1
9 VI $1
VI $2

3.
Numeric->Conversion->Convert Unit

Cast Unit Base


Convert Unit LabVIEW
build unit

LabVIEW

11
VI

2 LabVIEW VI Producer/Consumer Design Pattern

2
3

LabVIEW Wizard 1 (LabVIEW 6.1


)
Wizard

LabVIEW

Wizard LabVIEW

VI
Wizard
VI VI VI

Next
Windows API
LabVIEW sub panel
Windows API VI VI
Windows
LabVIEW fans Windows API ? G

LabVIEW
Next
;

LabVIEW Tab
(event structure)

[1] . 2006.
[2] LabVIEW
[3] LabVIEW Wizard 2 (LabVIEW 6.1 ~ 7.1)

LabVIEW Wizard 2 (LabVIEW


6.1 ~ 7.1)
Tab +
LabVIEW 6.1 Wizard LabVIEW 6.1
Tab
Tab Wizard Wizard Tab

Tab Wizard
C LabVIEW
NI
Wizard VI VI

1 Tab VI

Tab + Wizard
Wizard

1 Tab

LabVIEW Wizard 3 (LabVIEW 8.0)

SubPanel
VI
VI
VI LabVIEW
LabVIEW VI
LabVIEW 7.1 8.0

LabVIEW
LabVIEW
LabVIEW 7.1 - SubPanel VI
SubPanel VI
1

1
VI
VI 1 VI
VI VI
1 VI VI SubPanel
VI VI

VI VI

VI ->
->
VI ->

VI VI
VI -> ->
->

SubPanel LabVIEW 7.1


VI

VI
VI VI
VI VI
VI
VI VI
VI

VI VI
LabVIEW VI
VI VI
LabVIEW 8.0

Project Library
LabVIEW 8.0 Project Library

VI VI

VI (name space) C+ +C#


LabVIEW VI

VI VI Public
VI Private VI
VI

VI
VI VI

VI
2

2 VI

-
VI2 VI

VI VI VI
VI VI

LabVIEW

LabVIEW
C #define

C++ const

1C

LabVIEW
constant 2

2 LabVIEW

LabVIEW
VI 4

LabVIEW

type define control Ring control Type Def


Control, Type Def. Strict Type Def.

Ring
type define ring
3

3 Type Def Ring

Ring
Ring control
Ring control C

Enum Type Def VI


4

4 Enum Type Def subVI

Global VI shift regisiter


VI
VI
Global Global VI
Global
VI VI
VI Global

@#$%^&*
256

VI

VI

1 VI

LabVIEW subVI INI VI


VI
VI
VI VI C++
C++
VI VI
VI VI VI VI
VI
VI
VI VI VI
VI VI

VI

VI"add.vi" VI
"add.vi" VI VIadd numeric.viadd string.vi
1

2 VI

VI VI

VIadd numeric.viadd string.vi


VI VI LabVIEW File->New LabVIEW
VI->Polymorphic VI VI
VI VI VI
VI VI

3 VI

VI VI
VI VI
VI
VI Add VI
VI 1 VI
VI Menu NameSelector Name
Edit Name
VI Show Selector by Default VI

Allow Polymorphic VI to Adapt to Data Type VI


VI VI

VI
VI
VI VI
Cluster

VI LabVIEW

VI VI VI
VI VI
VI Connector Pane

VI VI VI VI

VI VI Menu Name
:


VI

VI
LabVIEW

VI

Global Variable

Global Variable VI
VI
Global VI

VI LabVIEW
VI
VI
Data 021Data 1
2-1

Single-Process Shared Variable

/
VI Data
021Data 1

2
VI
VIData VI

LabVIEW 8 Library

Functional Global
LabVIEW VI

VI VI
VI

LabVIEW 8.5 VI

VI
VI VI
VI

5 VI1
VI

5
3

A
Software Engineering Approach to LabVIEW

VI VI
VI
VI

LabVIEW 8.2
LvClass LVOOP
LVOOP


LabVIEW

C++
48

LabVIEW

LabVIEW
C++ LabVIEW

LabVIEW
Refnum

1Refnum
VI Scripting VI Refnum, Control Refnum

Refnum
RefnumLabVIEW
VISA Resource, IVI Logic ,
notifier, event, queue

VI
VI
LabVIEW

LabVIEW

2
LabVIEW

LabVIEW
LabVIEW
LabVIEW

VI

VI ADequeue Element
VI A
VIA VI B
VIA
VIB

C
C
C C
LabVIEW C
C C
LabVIEW VI
LabVIEW

VIPig.lvlib:New.vi


VI NEW INDEX VI C
I32
VI
Refnum
LabVIEW
Refnum
C Refnum
VI

LabVIEW
A B

ABC CDB

LabVIEW

1. LabVIEW
LabVIEW 8.2 Tools -> Options Debugging

1LabVIEW
a) Show data flow during execution highlighting

b) Auto probe during execution highlighting

c) Show warnings in Error List dialog by default

d) Prompt to investigate internal errors on startup LabVIEW

2. VI
VI VIVI
VI VI
VI VI VI

2VI

3.
VI

3 VI
3 VI

LabVIEW

VI
modal
LabVIEW
VI

VI
VI VI
VI

Set Breakpoint
ProbeTool Palette

1.
LabVIEW LabVIEW

LabVIEW
LabVIEW
VI VI
VI
VI VI
VI LabVIEW .2

2.

LabVIEW LabVIEW
LabVIEW
LabVIEW
LabVIEW
1Error Cluster
Error Cluster2

12

3.
LabVIEW
Custom Probe -> Controls -> ... 3

4.

LabVIEW

4
4 8
i Custom Probe
Conditional Condition

5.
LabVIEW
LabVIEW
VILabVIEW
<lvdir>\vi.lib\_probes VI
4 I32 VI

ConditionalSigned32.vi
Custom Probe -> New
LabVIEW LabVIEW
VI VI
VI
VI

1. Profile Performance and Memory

LabVIEW

2.

Show Buffer Allocation


LabVIEW

3. Diagram Disable Structure

LabVIEW

C /*
*///
1

1
Disable
Enable Enable
2
reverence error

2 Enable

4. Conditional Disable Diagram


LabVIEW C #if#ifdef
Case Structrue

3
Edit Condition For This Subdiagram...
LabVIEW
Symbol TARGET_TYPE
TARGET_TYPE == Mac
*.lvproj->
3DEBUG
DEBUG

5.


LabVIEW C printf()
messagebox

LabVIEW

LabVIEW

1.

1
1 VI 300*300 90000
24464
I16I16 32767

2. For

Shift RegisterTunnel

For
00

2For
2 vi reference 0Controls
vi reference
vi reference vi
Error
0 Error Out

3.
LabVIEW For

N N

While
For while

For

4.

3
3 while
array out
array out

VI 4

5. Cluster

4Cluster
4 weight 1
high 1 Cluster
ClusterReorder Controls in
Cluster cluster info out high 2

cluster cluster cluster

1. cluster

cluster
cluster 4 cluster
VI
2. unbundlebundle unbundle by name
bundle by name bundleunbundle bundle

6.
LabVIEW
race condition

5 VI
5 VI

VI B VI B VI
B

CPU

Frame Duration x-y

LabVIEW DLL
(Frank)
Labwindow , ,
, labVIEW ,,
, LabVIEW ?
Labwindow .,!

CVI CVI VC
VC Debug build DLL (VC 7.1
release ) Debug DLL
DLL
LabVIEW VC Debug->Start (F5) DLL
VC LabVIEW.exe(
Debugging->Command )VC LabVIEW
VC LabVIEW VI


VI VI error in/error out
Explain Error

Explain Error
Help->Explain Error

1 Explain Error

[LabVIEW]\vi.lib\Utility\error.llb\Error Code Database.vi VI

G
G (Graphical Programing Language)LabVIEW G
LabVIEW ( Visual Studio )
G ( Visual Studio C )
LabVIEW

; LabVIEW
LabVIEW LabVIEW
LabVIEW

LabVIEW

LabVIEW VI
(a, b) Numeric control (x) indicator
Numeric control U321
VI VI VI

()
1 a ;
g.c.d.
g.c.d.
G G
C
; G
G
g.c.d.
Step1: If (a mod b == 0) goto Step3; else goto Step2;
Step2: (a, b) = (b, a mod b); goto Step1;
Step3: x=a; return;
LabVIEW G

()(
)
while a b
a b ; b a mod b
()

LabVIEW LabVIEW
LabVIEW LabVIEW
LabVIEW G

LabVIEW

LabVIEW
G

LabVIEW
LabVIEW VC++VB LabVIEW

LabVIEW
( LabVIEW VI); LabVIEW
VI
LabVIEW C C .c

.obj LabVIEW .vi


.c C .c
.vi VI C
LabVIEW .vi
.vi VI() .vi
VI VI(Instance VI)LabVIEW 7 Express VI
Instance VI VI
.c ; .vi LabVIEW
LabVIEW .obj
.vi
LabVIEW VI LabVIEW VI VI

VI LabVIEW VI
VI LabVIEW
LabVIEW VI; VI
LabVIEW 8.0 LabVIEW 7.0 VI VI
LabVIEW VI
LabVIEW VI Linux
Windows XP VILabVIEW LabVIEW

VI VI
VI VI

LabVIEW (8.08.01) LabVIEW


VI (mass compile)
LabVIEW LabVIEW

VI VI .vi
LabVIEW

VI
VIVI VI
VI
VI VI DLL
VI DLL VI VI
LabVIEW VIVI

Ctrl + Shift () LabVIEW


Ctrl + Shift + Compile
LabVIEW

VI

1. VI
LabVIEW VI;2. C++
LabVIEW
LabVIEW

LabVIEW

( LabVIEW :)

LabVIEW

LabVIEW LabVIEW

LabVIEW LabVIEW
LabVIEW LabVIEW
LabVIEW


(C++, Java, C#)
C++ C

LabVIEW
LabVIEW LabVIEW

LabVIEW
LabVIEW

LabVIEW
LabVIEW LabVIEW
LabVIEW LabVIEW

LabVIEW LabVIEW
LabVIEW
LabVIEW

(fixed-point )LabVIEW

LabVIEW
LabVIEW ()
()


LabVIEW LabVIEW

xxx refnum ()
refnum

LabVIEW
VI

VI
LabVIEW
LabVIEW
VI
C

LabVIEW VI
VI VI VI
VI
LabVIEW

LabVIEW
LabVIEW

VI
VI VI1 Delay VI

VI
LabVIEW

1 VI
LabVIEW VI
LabVIEW
VI
12
VI

LabVIEW VI reentrant
VI VI
VI VI
VI VI VI

VI VI
VI
VI VI

LabVIEW

LabVIEW

LabVIEW

LabVIEW

2 -

LabVIEW
LabVIEW

LabVIEW
1

LabVIEW 6

LabVIEW 6

MacOS MacOS

LabVIEW

Ctrl+C Ctrl+V
LabWindows/CVI
Ctrl+F
Windows

Office 07
Windows Vista
ribbon

LabVIEW

LabVIEW

NI Soft Front Panel

Windows
LabVIEW LabVIEW

3 -

1
LabVIEW

Save, Save As, Save All

Project

3LabVIEW

LabVIEW

4 -

LabVIEW

LabVIEW Context Help


LabVIEW

LabVIEW

Import Shared Library


Error Handling Mode

Ctrl+H
Help

2Import Shared Library

LabVIEW
Data Entry
03
30

1
99 LabVIEW

Enum Ring

2
Enum Ring

VI

Caption Label
LabVIEW Caption Label

Caption Label Caption ; Label


Caption Label Label
Label Caption ;Caption

Caption
Caption Label
VI
1. VI VI subVI
2. VIVI
3. VIVI API
Caption Label

Label

Caption

VI

LabVIEW Caption

VI

VI

- Cluster

Cluster

VI

2 Strict Type Def


Cluster Strict Type Def

2Strict Type Def.

VI VI
Indicator VI 4-2-2-4
3 VI 3

3 VI
VI 4 B&W
256 Colors
VI

4 VI

VI

VI
VI
VI VI LabVIEW
3232 VI
1 My Function.vi

1 My Function.vi
VI
LabVIEW 4224
1 My Function.vi
42244
VI Show Connector
My Function .vi52225

23
-
LabVIEW
16256 VI

256256
16 VI
161616


256
Copy from 256 Colors256

Show Terminals

1 - LabVIEW

LabVIEW :) 88

LabVIEW

64
LabVIEW LED LED

-chess 0

6488

8163264

LabVIEW

64
LabVIEW Visible

Visible

Position
VI
VI

tab tab
tab
64
6488

build array
6464

88

VI Get Control.vi LabVIEW VI


[LabVIEW]\resource\importtools\Common\VI
Scripting\VI\Front
Panel\Method\Get
Control.vi
chess array 8864

VI
VI VI

VI VI VI

2 -

LabVIEW

LabVIEW

VI
Ctrl+CCtrl+V
VI
VI
Reorder Move
to Back


Reorder
group

gif
png

VI
png

VI
Clouds

4 -

VIGet All Chess.vi8

Pict Ring Pict Ring


Pict Ring

400

Pict Ring
png

Pict Ring

->

88

5 -
LabVIEW
LabVIEW
XY Graph3D Picture ControlPicture
XY Graph
VI XY Graph
3D Picture Control

Picture Picture
LabVIEW LabVIEW
Picture
Picture

Picture Picture Picture Functions

Picture VI

Picture Erase First 30


Picture

Picture 2 Picture
Picture
Picture
1 Picture

LabVIEW

LabVIEW 8
VI LabVIEW
8 XControl

LabVIEW 1
. VI
VI (VI Properties)(Memory Usage) VI
VI
VI LabVIEW
VI VI VI VI
VI VI
VI VI
LabVIEW VI LabVIEW

VI VI VI
VI
VI VI LabVIEW VI

VI (Reentrant) VI

VI VI
VI (Property Node)
VI

VI ( VI)
LabVIEW VI
.
LabVIEW C LabVIEW
[1] C

LabVIEW

LabVIEW VI

VI Windows
LabVIEW LabVIEW Profile (Tools>>Advanced>>Profile
VIs) VI

.
LabVIEW LabVIEW

(Index)LabVIEW
LabVIEW
LabVIEW
LabVIEW
LabVIEW C
LabVIEW LabVIEW 7.1
Tool>>Advanced>>Show Buffer Allocations (LabVIEW 8.0 Tool>>Profile>>Show Buffer Allocations)
VI

LabVIEW

1. VI

1
11
+1 LabVIEW

LabVIEW
VI VI
(Connector Pane)

2 VILabVIEW +1LabVIEW

2. (Shift Register in the Loop Structure)


LabVIEW
LabVIEW

3
3
LabVIEW VI
VI 2.7M
VI
VI

4
4
LabVIEWLabVIEW
VI
VI
LabVIEW 8.5

3. (Call Library Node)


(Pass Value)(Pass Pointer

to Value)

LabVIEW
LabVIEW
LabVIEW

LabVIEW 5
15-a 15-b
1

5
5-c LabVIEW 5-c
2+1
LabVIEW
LabVIEW

5
LabVIEW

.
LabVIEW LabVIEW

LabVIEW 1
LabVIEW 2 - VI
LabVIEW
LabVIEW
pdf

LabVIEW 2 - VI
1. VI
VI VI VI

1 VI Tool>>Profile>>Show Buffer Allocations VI

1
?
VI 2 Numeric VI
VI

LabVIEW
VI


VI VI (Connector Pane)2

2
LabVIEW VI ( VI)

VI

VI
?
VI VI
VI VI
3 VI 2 VI
LabVIEW VI
VI

3 VI
3 VI VI LabVIEW
VI VI VI

VI VI
VI VI VI

2.
VI
();()
4

4
LabVIEW

VI
()

VI
LabVIEW

x n
y n
x n yLabVIEW

LabVIEW
LabVIEW

()LabVIEW
LabVIEW VI

LabVIEW
:)
3.
:

5
5 VI VI
Array subVIMy Search ;5

subVIMy Search
VI Sort 1D Array (
6) Array
My SearchSort 1D ArrayLabVIEW
()
My SearchSort 1D Array Array

My Search Array VI
Sort 1D Array6

6 VI
Array subVIMy SearchSort 1D Array
VI VI Array
VI VI Sort 1D Array
LabVIEW
Sort 1D Array
6 VI
LabVIEW

LabVIEW

56

LabVIEW 1 - LabVIEW
. LabVIEW
VILabVIEW (UI Thread)
; VI LabVIEW
VI LabVIEW

1 VI
CPU 100% CPU
1 CPU

(LabVIEW
)
1 CPU 50% CPU CPU

1 CPU
2 LabVIEW
CPU 100%

2 CPU

1. LabVIEW

LabVIEW


2. 100% CPU
100% CPU
100% CPU
CPU 100% CPU (12 )
12
100 CPU 0
( CPU 100)

CPU ( 100% CPU )


CPU 10%
10% CPU
CPU

1,000,000 0.1
1 10
10
10% CPU

VI While Event Structure


Event Structure

CPU

LabVIEW 2 - LabVIEW
LabVIEW
1.
LabVIEW VI LabVIEW 5.0
LabVIEW LabVIEW
LabVIEW
LabVIEW

LabVIEW VI LabIVEW
I/O 1
2 VI VI
Execution VI
2.
LabVIEW

VI 5
( subroutine) LabVIEW 7.0 LabVIEW
; LabVIEW 7.0 ,LabVIEW
4 \vi.lib\Utility\sysinfo.llb\threadconfig.vi

C
LabVIEW
LabVIEW 5

3.
VI
VI
Open VI Reference VI

(
)LabVIEW
LabVIEW
1 CPU
(LabVIEW )2 VI
CPU 100%

2 VI

12-
LabVIEW

4.

same as caller VI VI VI
same as caller
standard
Instrument I/O I/O
I/O

data acquisition

other 1other 212 VI

LabVIEW 3 -

VI VI Properties -> Execution


(Priority) VI
CPU
VI (time critical priority)CPU
VI

subroutine subroutine
subroutine VI
subroutine VI VI
subroutine VI VI
subroutine VI
subroutine VI
subroutine VI CPU VI
subroutine VI
VI
subroutine VI
VI
VI CPU
CPU
VI VI
CPU
subroutine
VI VI
subroutine CPU

LabVIEW 4 -

1. CLN
LabVIEW CLN(Call Library Function Node) Windows
.DLL CLN
VI CLN (Run in UI thread)
(reentrant)( LabVIEW reentrant Run in any thread )

1 CLN
LabVIEW CLN
;

2 CLN
2.
CLN
;


;
lock
LabVIEW VI
LabVIEW
CLN LabVIEW

LabVIEW CLN
CLN

3. VI

LabVIEW OpenGL (Import Shared


Library ) OpenGL CLN OpenGL
CLN VI
CPU 100%25

LabVIEW profile VI Profile


Performance and Memory CPU

CPU
OpenGL OpenGL API API VI API VI
CLN OpenGL VI
CLN API VILabVIEW

OpenGL API VI
API VI CLN
OpenGL VI
30
CPU
Windows API
Windows API 0 GetLastErr
FormatMessage 0
GetLastErr

LabVIEW LabVIEW

CLN VI

LabVIEW 1 -

LabVIEW 80/20
20%80%20%

VI
VI
LabVIEW Tools->Profile->Performance and Memory 1

1(Profile Performance and Memory)


VI Start
VI Snapshot
VI CPU VI Time VI

VI CPU
VI
VI VI

VI Time VI CPU

()

CPU LabVIEW
OpenGL CPU
CPU LabVIEW VI CPU
CPU CPU VI
CPU VI

LabVIEW 2 -
?

a)

GPIB 1Mbps

b)

c)

d) Global Variable
LabVIEW
e) VI
VI (LabVIEW )
VI VI VI
VI VI
(LabVIEW ) VI

f)
LabVIEW VI
.vi LabVIEW
50% CPU
g)
LabVIEW LabVIEW

LabVIEW CPU
CPU
CPU 4 CPU 2GCPU
2G
CPU
CPU
CPU CPUIntel 5
80 CPU
CPU

C++ C++
Windows Windows API
MFC C++
LabVIEW LabVIEW
LabVIEW VI
LabVIEW CPU
CPU CPU
LabVIEW
CPU
(1)
CPU0 CPU1 CPU0
(2) CPU
CPU CPU

1, 2 CPU
LabVIEW 8.5
CPU
(Time Loop)(Time Sequence)
LabVIEW 8.5
CPU 3
CPU CPU

2
CPU (2)11
01 CPU CPU

CPU

4 CPU
CPU CPU CPU
5

5 CPU

VI Server (VI )
VI Server LabVIEW VI Server
VI ;; VI
; VI;
VI Server LabVIEW
ActiveXLabVIEW ActiveX VBVC++ ActiveX
LabVIEW
TCP/IP web LabVIEW
LabVIEW VI Scripting Property Node Invoke Node
LabVIEW VI Scripting
VI

LabVIEW VI Scripting

LabVIEW VI
VI

VI

VI

5
1 VI ( Open VI Reference VI
)
2 Open VI Reference VI VI
VI Scripting VI
3 VI Front Panel:Open

4 VI Run VI

Run VI
Wait Until Done

Open VI Reference VI
Auto Dispose Ref VI

VI
5 VI
Front Panel:Close

LabVIEW VI
LabVIEW

VI
LabVIEW ( VI VI )
subVI subVI LabVIEW

VI
VI
VI Server VILabVIEW
VI VI LabVIEW VI
VI ; VILabVIEW
VI VI

VI
LabVIEW VI

n!=n*(n-1)! VI F(n)=n*F(n-1)

VI VI Open VI Reference, Call By Reference


Node, Close Reference VI( VI ) VI

Call By Reference Node VI VI (Connector Pane)


Open VI Reference VI VI Open
VI Reference

LabVIEW A BB A VI
VI
VI

VB Script VI
LabVIEW ActiveX ActiveX
VB Script VI
Set lvapp = CreateObject("LabVIEW.Application")
Set vi = lvapp.GetVIReference("C:\temp\test.vi")
vi.FPWinOpen = True
IE VB Script HTML
VI VI JavaScript

1 -
Windows DLL DLL LabVIEW
C++
DLL ; LabVIEW DLL

DLLLabVIEW

LabVIEW Connectivity -> Libraries & Executables -> Call Library Function Node(CLN)
DLL
Code Interface Node CIN C
CLN LabVIEW C CLN
( CIN!)
LabVIEW DLL
LabVIEW CLN Tools ->
Import -> Shared Library DLL VI VI
CLN

DLL
LabVIEW DLL VI

Import Shared Library VI

2 - CLN
CLN(Call Library Function Node)

Library name or path DLL DLL


DLL DLL VI DLL

LabVIEW DLL Specify path on diagram


Library name or path CLN
DLL VI DLL DLL

Function name LabVIEW DLL

Thread LabVIEW 4
-
Calling convention stdcall C call
stdcall ;C call
LabVIEW LabVIEW DLL

(Windows API stdcall; C C call


__stdcall stdcall )


DLL

Reserve DLL

DLL Unreserve
Abort VI Abort VI

DLL Prototype for these


procedures DLL LabVIEW


4 -

3 -
DLL LabVIEW

1.
LabVIEW C
4-byte Single C floatLabVIEW LabVIEW 8.5\examples\dll\data
passing\Call Native Code.llb LabVIEW C

C 32
int32 LabVIEW I32 U32
64 I64
U64 DLL VI
LabVIEW
Pointer-sized Integer32
64
C const Constant
/

float red;

float* red;

LabVIEW

LabVIEW

2.
DLL LabVIEW VI
DLL

bool red;

bool* red;

LabVIEW

LabVIEW

3.
LabVIEW C
Array FormatArray Data Pointer
Handle LabVIEW DLL

Minimum size
LabVIEW Minimum size
LabVIEW

int values[];

int values[];

LabVIEW

LabVIEW

4.
C I8
/

char* name;

char* name;

LabVIEW

LabVIEW

4 -
C struct LabVIEW Cluster
LabVIEW Cluster

C typedef struct { char a; int b} MyStct; a


0xAAAA0000b 1b
a b 0xAAAA00012b
a 0xAAAA00024b
a 40xAAAA0004
C #pragma pack
LabVIEW Cluster 1C 1 Cluster
typedef struct { char a; int b} MyStct; 2
LabVIEW Cluster I8 a
b C b a
C LabVIEW
DLL LabVIEW C
1
C LabVIEW
Cluster LabVIEW Cluster

C
#pragma pack (1)
typedef struct { char a; int b} MyStct;
MyStct* testStruct;

#pragma pack (2)


typedef struct { char a; int b} MyStct;
MyStct* testStruct;

#pragma pack (4)


typedef struct { char a; int b} MyStct;
MyStct* testStruct;

LabVIEW

#pragma pack (1)


typedef struct { char a; char* str; int b} MyStct;
MyStct* testStruct;

#pragma pack (1)


typedef struct { char a; char str[5]; int b} MyStct;
MyStct* testStruct;

LabVIEW Cluster
U323264 U64
Cluser LabVIEW

C testStruct C
LabVIEW Cluster CLN
structClusterAdapt to Type
C

typedef struct{int left; int top;}


Position;
long TestStructure(Position inPos);

LabVIEW

LabVIEW

typedef struct{int left; int top;}


Position;
long TestStructure(Position *pos);

5 - VI
Call Library Node LabVIEW DLL
char* CLN

LabVIEW
LabVIEW
CLN
CLN
?
LabVIEW DLL
CLN
LabVIEW
DLL

:)
LabVIEW
LabVIEW strlen()
buffer strcpy() LabVIEW
LabVIEW DLL
LabVIEW
LabVIEW
:(
LabVIEW C

6 - LabVIEW C
C LabVIEW
4
#pragma pack (1)
typedef struct { char a; char* str; int b} MyStct;
MyStct* testStruct;
long TestStructure(MyStct* tempStct);
LabVIEW CLN str
LabVIEW
DLL LabVIEW CLN

LabVIEW C
C TestStructure tempStct
char* strLabVIEW
LabVIEW
LabVIEW
C

C C
LabVIEW LabVIEW 8.5
VI LabVIEW VI

[LabVIEW]\vi.lib\Utility\importsl\GetValueByPointer\GetValueByPointer.xnode
VI LabVIEW

DLLMemory.dll:ReturnPointerToConstant C
GetValueByPointer.xnode I32GetValueByPointer.xnode

[LabVIEW]\vi.lib\Utility\importsl\ VI DLL
DSNewPtr.vi
VI NI

LabVIEW DLL
(Frank)
Labwindow , ,
, labVIEW ,,
, LabVIEW ?
Labwindow .,!

CVI CVI VC
VC Debug build DLL (VC 7.1
release ) Debug DLL
DLL
LabVIEW VC Debug->Start (F5) DLL
VC LabVIEW.exe(
Debugging->Command )VC LabVIEW
VC LabVIEW VI

CLN DLL

DLL LabVIEW DLL LabVIEW Call Library Function Node


DLL CLN
DLL VC
DLL CLN ?
DLL IDL/ODL DLL
LabVIEWCVI DLL

LabVIEWVB DLL
DLL

LabVIEW

LabVIEW 8.2 LabVIEW 8.2


LVOOP

LabVIEW
LabVIEW 8.0

LabVIEW
Implementing Object Oriented Programming in LabVIEW with Project Library

Abstract:

This paper introduces the Object Oriented Programming in LabVIEW, which is also called as
GOOP. And it also introduces a new way of implementing the GOOP application: with the help
of Project Library, a new feature in LabVIEW 8.0

Key Words:

LabVIEW, GOOP, Class, Project Library

LabVIEW LabVIEW
LabVIEW

LabVIEW
LabVIEW VI

[2]

1999NI LabVIEW
LabVIEW
LabVIEW
LabVIEW 8.0
LabVIEW

. LabVIEW LabVIEW Project Library

LabVIEW 8.0 LabVIEW


VI
LabVIEW LLB LLB VI
VI VI

1 VI (name space)
LabVIEW 8.08.0 LabVIEW
VI C
LabVIEW VI
VI C++C#

2 VI VI Public
VI Private VI
3 VI Scripting
VI Scripting LabVIEW LabVIEW
LabVIEW VI

. LabVIEW

VI

1LabVIEW

1
Pig LabVIEW
VI Attribute
VI Method VI VI

VI

2
LabVIEW

VI
1 new.vi

new.vi cluster

VI

C
C API DLL
LabVIEW C
LabVIEW new.vi Data Log
File Refnum reference
VI reference C

API VI
LabVIEW VI

2 C

VI VI
3

LabVIEW

LabVIEW C++

4
LabVIEW
LabVIEW 8.0 XControl

. LabVIEW

LabVIEW VI VI
LabVIEW

LabVIEW
LabVIEW LabVIEW

API
INI
INI
?LabVIEW
VI VI VI VI ;
VI

LabVIEW INI (
) VI bug VI
INI VI
INI VI(Config Data Registry.vi)("function")

LabVIEW

VI
VI; VI

VI
() VI
()

LabVIEW
LabVIEW
LabVIEW 8 LabVIEW
VI
VI
VI VI
VI VI

LabVIEW
LabVIEW
?
LabVIEW
VI Config Data Registry.vi
VI
VI

VI VI
LabVIEW
VI
VI Config Data Registry.vi

LabVIEW LVClass
;;
LVOOP
LVClass

LabVIEW
LabVIEW
LabVIEW

LabVIEW
8.2

;
(

;)
LabVIEW Class Cluster Cluster C++
Class Struct C++ Class Struct
LabVIEW Cluster Class

C++ ;LabVIEW
VI
C++ ;LabVIEW

C++ ;LabVIEW Java/C#


LabVIEW C++ Java/C#

LabVIEW


LabVIEW

LabVIEW VI

refnum

LabVIEW
LabVIEW

LabVIEW LabVIEW

48

C++

LabVIEW
LabVIEW LabVIEW

LabVIEW

1.
2.
3.
4.

LabVIEW

LabVIEW
LabVIEW VI
.lvclass XML
.lvlib

Animal
LabVIEW
VI

VI .ctl

.ctl ClusterCluster C
Cluster
C LabVIEW

VI VI

LabVIEW

VI

VI VI for Data Member Access...

VI
Animal Cluster

VI


VI VI
Virtual Folder

VI from Dynamic Dispatch Template VI C


VI
VI from Static Dispatch Template VI VI
VI from Dynamic Dispatch
Template Animal in/out
4
VI for Data Member Access... VI
VI
VI for Override... VI
Control

4
VI VI

LabVIEW

LabVIEW
LabVIEW

LabVIEW VI

Inheritance animal.lvclass
animal LabVIEW LabVIEW
Objet

5
LabVIEW LabVIEW
ObjectLabVIEW Object

LabVIEW VI
LabVIEW

LabVIEW Object
LabVIEW Object
Java
LabVIEW Java LabVIEW
LabVIEW

VI from Dynamic Dispatch


TemplateMake Sound.vi
VI for Override...

XControl
XControl .ctl

XControl XControl

XControl XControl

Windows
LabVIEW
Mouse Enter
Mouse Leave
XControl XControl

XControl
XControl

12 XControl
XControl VI
Data.ctl XControl

State.ctl XControl

Init.vi
Facade.vi VIXControl VI Facade.vi
XControl VI
Facade.vi XControl
Facade.vi
XControl

3
Facade.vi Mouse Enter Mouse Leave

XControl
Facade.vi LabVIEW VI
Facade.vi Facade.vi LabVIEW

Facade.vi
VI
XControl Init.vi VI XControl Uninit.vi
VI Uninit.vi XControl VIAbility VI
XControl
VI XControl VI
LabVIEW 8.5
XControl VI
XControl VI VI

XControl XControl
XControl bug LabVIEW
VI

XControl LabVIEW 8
(Component Oriented Programming COP)

LabVIEW
LabVIEW 1 LabVIEW 8.2

LabVIEW
( Control, Type Def.
Strict Type Def. )

1LabVIEW 8.2 Import Shared Library


.ctl
1 Include Paths LabVIEW

LabVIEW Listbox String


Button ()
String Button Listbox Listbox
String String
Listbox
1 String Button
; String Listbox;

VI ;

1 ListboxString

LabVIEW 8 VI
VI
sub-panel

XControl 1
XControl XControl 1
XControl
LabVIEW XControl XControl
Property Node Invoke Node
C++
XControl

!
XControl
XControl LabVIEW
XControl XControl
Library LVClass
XControl

XControl 1 -
XControl LabVIEW 8 LabVIEW
XControl
XControl
XControl

XControl ; XControl

XControl
;;
;

XControl XControl

Pict Ring
XControl XControl
XControl 88

(;;
)

XControl 2 -
->XControl XControl

XControl VI VI
XControl 4 VI()XControl
VI
VI
XControl
XControl
XControl VI XControl
XControl

XControl VI
XControl
XControl VI
XControl

XControl 3 -
XControl XControl XControl

XControl
U16

XControl VI
XControl

XControl

method XControl
XControl VI
current color
available black position

available white position


Interactive ActionXControl
VI
row column

XControl
XControl

XControl 4 - VI
VI XControl
4 -
VI XControl VI

VI XControl

XControl LabVIEW

XControl

VI
Data In / Data Out XControl
VI Data In XControl
Data Out LabVIEW
Display State In / Display State Out XControl

Data
Container State XControl VI
Indicator? XControl XControl

Run Mode? XControl VI Refnum


XControl
Action LabVIEW XControl
Data Changed?State Changed?Action Name Data
Data Changed? LabVIEW
State State Changed?Action Name
LabVIEW ->
VI XControl

XControl 4
XControl
XControl Display State

XControl
State Changed?

XControl XControl

XControl
VI
XControl Data Changed?
State Changed?

XControl
XControl VI

XControl

XControl

XControl 5 - VI
VI XControl XControl VI
(Display State) VI VI
VI

VI VI

VI XControl VI XControl
XControl
VI
VI

VI XControl VI

XControl 6 -

XControl
XControl -> XControl
VI VI
VI XControl
XControl

XControl 7 -

VI XControl

VI
VI VI XControl VI
VI

XControl 8 -
XControl
XControl
XControl

XControl
XControl 5 - VI
XControl 4 - VI
XControl XControl
XControl

XControl 9 - XControl
XControl VI

XControl
XControl

XControl ;

New New Game

()
()

LabVIEW
Size-Based MetricsEffort EstimationWideband
Delphi Estimation

LabVIEW

LabVIEW Tools->Profile->VI Metrics


VI LabVIEW

1VI

LabVIEW

Wideband Delphi Estimation

Wideband Delphi

Palette API
LabVIEW 8.6
API API VI
.mnu

You might also like