这是有关LabVIEW使用的图形化编程语言G的简短系列文章中的第一篇。这种语言还不是很流行-根据2020年5月的TIOBE索引,LabVIEW在Julia和Haskell之间排在第四十位。LabVIEW Community Edition可以极大地扩大用户范围(以前只能使用试用版,而在45天后可以“近距离”学习)。
就像伟大的Kernigan和Ritchie所说的那样,“学习一种新的编程语言的唯一方法是开始对其进行编程。” 这就是我们要做的。
在第一部分中,我们将分析开发环境的主要元素,并以框图形式绘制我们的第一个“ Hello,World!”。

本教程文章适用于首次使用LabVIEW的用户。在剪切下的50张图片大约7兆字节。
介绍
假定您已经完成了LabVIEW NXG 的安装和激活。
与现有培训材料的主要区别在于,我们将从“通用”开发工具的角度来研究该语言。在演示过程中,我还将尝试与文本语言进行比较,以显示与``传统''开发工具的一些差异。为了说明起见,我将使用C#(在最低版本中,理解C语言基本语法的人员可以使用)。随着对LabVIEW的深入了解,该演示文稿将尽可能详细,基础知识的“详细”程度将降低。还需要具备最低的英语知识-暂无LabVIEW俄语本地化版本。
, LabVIEW "", " " ("Virtual Instruments") VI. LabVIEW -, . # *.cs , LabVIEW VI ( LabVIEW 2020 *.vi, NXG — *.gvi). . — , , ( , ). , — , — (, ). , VI .
LabVIEW NXG :

, LabVIEW. , , "" LabVIEW, — NXG, NXG LabVIEW, NI , NXG .

, NXG :

, File->New VI...:

— . ( , , , ).
:

(Navigation Pane), — (VI), (Palette), — , (Configuration Pane), .
(VI). VI — - (Block Diagram) (Front Panel). — Panel Diagram (Icon — , ).
-
-. LabVIEW — , - ? - . Diagram . :

", !"- , - , - :
Console.WriteLine("Hello World!");
? — , . , . , , # WPF. *.cs , — *.xaml , LabVIEW *.gvi .
, NXG, , C#/WPF — , (, .net , WPF — API).
C# - :
const string message = "Hello, Habr!";
MessageBox.Show(message);
C#, — . , MessageBox — , Show ( ).
LabVIEW. .
DataTypes :

:

, ( , ).
-:

, "User Interface":

-:

, ( , "magenta") — . , — . , (message) - , — , "OK". — , — . () ( true).
, — , ( , ), ( , ):

- ( "", ):

( — — gif)
— , (Data Flow).
. . ("Wire") .
" ". , — , , .
, .

— . — .
( , , ):

? — — Run Execute this code:

:

"Ctrl+R" VI. , .
, , . LabVIEW , . , , , , :

" " , Run, "".
, , , :

:

.
.
: LabVIEW , Ctrl+C/Ctrl+V ( , Ctrl+C, , Ctrl+V), — , Ctrl ( ), . Shift , — . ( , — Ctrl):

:

, . . , :
MessageBox.Show("");
MessageBox.Show("Test");
MessageBox.Show("Prüfung");
, ( , ""):

LabVIEW :

, ( ), , .
? , , .

" " ( ). , , , " ?"
: . , , , .
, .
LabVIEW
. , , , , , :

, 1dg, 2dg . — , "One Button Dialog" "Dialog" "1dg" "". , , , Enter.
— Ctrl+Space ( ). "Quick Drop" . , -, , .
, , — "Show in Palette"

, .
— , . , "Unplaced" ( ). "" LabVIEW ( Quick Drop ).

. "" ( Ctrl+Space, sc — ):

, , , :

"" :

: <Ctrl+>, "1dg", <>, , "Hello, Habr" <Ctrl+R>.
, :

, , , :

, " " — "" , .
, , , . , , — .
, — . LabVIEW , .
— , , :

( ), :
:
Dock to node — "" , . , Terminals->Dock constants, , , :

— ( "" — , ), . , ( ).
Show in Palette , .
Clean up wire "" "":

Create branch — . :

Delete Branch — . "Del", :

, — , — , . . — , , — .
Create wire comment — :

Insert Replace. , - , . — :

Properties — . ( — , ):

:
Constant configuration , — , .
Display Format -> Show escape sequences :

.
Visual style -> Show Label :

, //, — . , — , . , — :

, :

Layout -> Size to content , :

, .
, "" , :

, , , , ( , , :

( Shift), ( ).
, .
— :

Ctrl+H. ( , , ).
"Hello, Habr!". :

为我们创建了一个项目,默认情况下所有内容均保存在“我的文档”中-将在此处创建文件夹“ LabVIEW Projects”。
好奇的人可以查看文件的内部-那里是纯XML,您可以在其中看到我们的图表。
带图表的XML切片 <BlockDiagram Id="a44ad16c1aa64eb9940a6db1357f6f34">
<OneButtonDialog Bounds="230 236 40 40" Id="abd1e9094fb74fe3ae59249f61acaa0b" />
<Literal Bounds="100 236 100 15" DataType="String" Id="99b8849aac10420386a3c64b659755e8"
Label="e03893aa5f6948b4b8f028ffff4aaa45" xmlns="http://www.ni.com/MocCommon">
<p.Data>, !</p.Data>
<StringBehavior TextDisplayMode="Default" />
</Literal>
<NodeLabel AttachedTo="99b8849aac10420386a3c64b659755e8" Bounds="100 234 30 15"
Id="e03893aa5f6948b4b8f028ffff4aaa45" Visible="False"
xmlns="http://www.ni.com/PlatformFramework">
<p.Text>message</p.Text>
</NodeLabel>
<Wire Id="4e45a6a724704c38b808a29f3417ce9b"
Joints="N(99b8849aac10420386a3c64b659755e8:Out)|(200,237)
N(abd1e9094fb74fe3ae59249f61acaa0b:message)|(230,237)"
xmlns="http://www.ni.com/PlatformFramework" />
</BlockDiagram>
"" LabVIEW , , . , , , , .
今天就这些。我们检查了程序框图,制作了一个简单的程序,学习了键盘快捷键Ctrl + R,Ctrl + H,Ctrl + Space,并习惯了开发环境。
在下一课中,我们触摸前面板并做一些更有用的事情- 使用前面板的基础知识-控件和指示器