usleep延时0.毫秒_LabVIEW从0到1系列视频培训_第4讲全集_操作例程说明

本期课件对应视频传送门

LabVIEW从0到1视频教学_课时4-1

LabVIEW从0到1视频教学_课时4-2

LabVIEW从0到1视频教学_课时4-3

LabVIEW从0到1视频教学_课时4-4

LabVIEW从0到1视频教学_课时4-5

LabVIEW从0到1视频教学_课时4-6


1. 文件变更

日期:2020.01.03

章节:起草

变更描述:起草文档

作者姓名:基德的嘲笑


2. 练习4-1 Temperature Monitor VI

对象:使用While循环及波形图以获取及显示数据

通过以下步骤完成为一个VI,该VI测量温度并显示温度值到波形图上的功能。

前面板

1. 新建一个VI.

2. 创建以下前面板。

e463942ee01bf3630aefdc9e19015fac.png

Temperature Monitor VI前面板

a) 通过控件>>布尔选板中选择垂直摇杆开关然后把它放到前面板。您将会使用该开关来关停获取动作。

b)

3853a6a6aedbd57c5af94567ffc30344.png

输入文本确认按钮图标

输入Power到标签中,然后点击标签外围或者点击"输入文本"按钮,如左侧所示。

c) 通过控件>>图形选板选择波形图表然后将其放置到前面板上,波形图将会实时显示温度值。

d) 输入Temperature History到标签内,然后点击标签外围或者点击"输入文本"按钮。

e)

14227c12dba550c154c4c68dead344ba.png

文本编辑按钮图标

波形图表将曲线名称命名为曲线0,使用文本工具三连击图表右上方的曲线0,重命名为Temp,然后点击标签外围或者点击"输入文本"按钮。

f) 温度传感器会测量室温。使用文本工具双击y轴上的10.0,然后输入90.0,随后点击标签外围或者点击"输入文本"按钮以重新定义显示范围。

g) 将y轴下限-10.0改为70

h) 将y轴名称改为 Temp (Deg F), x轴名称改为 Time (sec).

程序框图

3. 选择窗口>>程序框图或使用快捷键显示程序框图。

4. 将两个控件的接线端放入While循环,如下图所示。

f2907bc396c1c394d08247cfc6fd77d4.png

While循环图标

bfad39eb0e575ec6c449b47d079f8271.png

Temperature Monitor VI 程序框图

a. 从函数>>结构选板中选择While循环结构

b. 点击并拖拽出一个矩形,该矩形将两个接线端包围

c. 如果有必要的话,可以使用定位工具重新定义While循环的尺寸。

5.

7a81162e1a33f240cc229b257e578815.png

Thermometer VI图标

选择函数>>选择一个VI,随后导航至c:exercisesLV Basics I,双击 前面练习3-2中创建的 Thermometer VI,然后将其放到当前的程序框图中。该VI将会从温度传感器返回一个温度测量值。

6. 将以上程序框图中各个对象用连线工具连起来。

注意: 如果您想要测量温度以摄氏度显示,请在函数>>布尔选板中放置一个布尔常量到Thermometer VI的Temp Scale输入那边。并将波形图表的上下限从70-90改为20-32.

7. 将该VI保存并命名为 Temperature Monitor.vi,您将会在以后的练习中用到该VI。

8. 选择窗口>>显示前面板以跳转到前面板。

9. 使用操作工具点击垂直摇杆开关然后将其拨到ON的位置。

10. 运行该VI。

位于程序框图While循环框内的部分,或者称之为子程序,将会一直运行直至特定状态变成TRUE才会停止。例如,当开关拨到ON(TRUE)位置时,Thermometer VI将其获取并返还一个新的测量值并将其显示到波形图表上。

11. 点击垂直摇杆开关以停止数值获取。此时状态变为FALSE促使循环停止运行。

12. 定制波形图表的X轴和Y轴。

a) 右击波形图表然后在快捷菜单中选择Y标尺>>格式化,以下的对话框将会出现。

452ca55616c3211a9321ebf2a8db7f26.png

波形图表_显示格式界面

b) 点击"标尺"标签,如下对话框将会出现。

0496c1da87682fdf48ba1a3a558feb2e.png

波形图表_标尺界面

选择不同的刻度模式,网格模式及颜色,缩放因子等。

c) 点击"OK"按钮。

13. 右击波形图表然后在快捷菜单中选择数据操作>>清除图表以清除显示的缓存数据并恢复波形图表。假如VI在运行时,您可以选择从快捷菜单中选择清除图表

改变布尔开关的机械动作

每当您运行该VI,您首先必须打开垂直摇杆开关然后点击运行按钮。您可以通过以下选项更改布尔控件的机械动作。

·

931e203e12df80e5ddd75ea91a3dbd36.png

单击时转换图标

单击时转换——每次您用操作工具点击控件时将改变控件值。该动作类似于吸顶灯开关。VI读取控件的频率快慢不影响该动作。

·

02e1a00c97f78c7f3e39b4011af5b36e.png

释放时转换图标

释放时转换——只有当您点击鼠标按键并释放鼠标按键时才会改变控件值。VI读取控件的频率快慢不影响该动作。

·

7661fcf812c5391c6fa8294ee19de09e.png

保持转换直到释放图标

保持转换直到释放——当您点击按钮并保持鼠标按键不释放期间,控件值被改变,直到您释放鼠标按键时控件将会返回初始值。该动作类似于门蜂鸣器。VI读取控件的频率快慢不影响该动作。

·

b4a62fc1b7c19aed9ccade323b7012ce.png

单击时触发图标

单击时触发——当您点击控件并保持新值直至VI读取一次值,随后控件将会返还为初始值。该动作将会发生且不论您是否继续按住鼠标按键。该动作类似于一个断路器且能有效停止While循环或者当您控制控件一次以使VI调用一次时使用。

·

9fd58fcef0574205c24e795530688ac4.png

释放时触发图标

释放时触发——仅当您释放鼠标按钮后才会改变控件值。当VI读取值的同,控件的值会返回为原值。该动作能够保证至少一次新值。

·

3d67b9d20c170745ec9eaecfd3d4c750.png

保持触发直至释放图标

保持触发直至释放——当您点击控件时控件值被改变并保持该值直至VI读取该值或者直至您释放鼠标按钮,哪个最后发生取后者。

14. 改变垂直摇杆开关的值,随后温度值将会在您运行VI时被投射到波形图表上。

a) 假如VI在运行话先停止它

b) 是使用操作工具点击垂直摇杆工具然后将其调制ON的位置

c) 右击开关然后在快捷菜单中选择数据操作>>"当前值设为默认值"。该设定将会让ON的位置作为垂直摇杆开关的默认值。

d) 右击开关然后在快捷菜单中选择机械动作>>单击时触发

15. 运行该VI

16. 使用操作工具点击垂直摇杆工具停止数值获取。该开关变为OFF并会在连接端读取数值后再次拨回ON的位置。

增加时延

当VI运行时,While循环将会尽可能快的执行。完成以下步骤以数据获取有一定的时间间隔,例如每隔半秒中,如下程序框图所示:

8d581a238128a59ab4ae8939141ea0f0.png

增加时延后程序框图

a.

80a8791542a242a82a1bd035b8fcc623.png

等待下一个整数倍毫秒函数图标

函数>>定时选板中放置一个"等待下一个整数倍毫秒"函数,如左侧所示。该 函数确保每次循环都会在半秒(500ms)以后发生。

b.

4fc44f8ff9247f121737f1170642a6a0.png

数值常量

右击"等待下一个整数倍毫秒"函数的毫秒倍数输入端子,从快捷菜单中选择创建>>常量,输入500,然后点击"输入文本"按钮。该数值常量明确了等待500ms因此循环在每半秒执行一次。

c. 在前面板中,右击图表然后在快捷菜单中选择X标尺>>格式化,改变增量为0.5因为您在每次循环迭代间新增了一个500ms的等待时间。

17. 保存VI,您将在以后的课程中使用它。

18. 运行VI

19. 使用不同的时间常量然后再运行该VI

20. 关闭VI


3. 练习4-2 Random Signal VI (可选的)

对象:为波形图表新建一个定时数值控件

完成以下步骤以创建一个VI,该VI生成一个随机数据并将其以范围更新模式展示到波形图表中。

前面板

1. 在前面板中放置一个旋钮控件以调节循环延时,该旋钮范围为0到2秒中,如下图所示的前面板。

6538477b6c57adb3da0b1cdb2fde9124.png

Random Signal VI前面板

2. 放置一个开关以停止VI。

3. 配置该开关,使您不需要每次运行VI的时候都要按它

4. 使用以下建议创建以上的前面板

a) 右击波形图表然后在快捷菜单中选择显示项>>图例以隐藏波形图表的图例。

b) 右击Time图图标然后在快捷菜单中选择显示标尺标签以移除x轴的标尺标签。

5. 通过以下提示创建程序框图:

a) 使用位于函数>>数值选板中的随机数(0-1)函数来生成数据。

b) 将旋钮连接端乘以1000以将秒转换为毫秒。使用该值作为等待下一个毫秒整数倍函数的输入端。等待下一个毫秒整数倍函数位于函数>>定时选板中。

c) 右击图表然后选择高级>>刷新模式>>示波器图表以设定图表模式。

6. 保存VI并命名为 Random Signal.vi。

7. 运行vi。

8. 当VI运行时,改变循环延迟控件的值

9. 关闭VI。


4. 练习4-3 Auto Match VI

对象:通过隧道将While循环中的数据传递出循环。

完成以下步骤创建一个VI,该VI连续生成随机数直至生成的数跟您预设的值一致。该循环将会计数在生成跟您预设值一致时所用的循环次数。

前面板

1. 打开一个新的前面板

2. 创建以下的前面板,然后更改输入控件及显示控件如下图所示。

7d56579f9b96459379bfe055f603f063.png

Auto Match VI前面板

  • Number of Match 输入控件表示您预设的那个值
  • Current Number显示控件表示当前随机生成的数
  • # of iterations显示控件表示一致之前的循环次数

数据范围设定

使用数据输入选项来放置用户选择了一个不合规的数据(如范围或增量)。您可以忽略错误或强制输入必须在范围内。完成以下步骤以设定一个0到10000,增量为1且默认值设定为50的数据范围。

3. 右击Number of Match输入控件并在快捷菜单中选择数据输入 。数据输入的选项卡就出现了。

4. 将使用默认界限的勾去除掉。

5. 选择以下图对话框所示的选项。

1b9503ffc433b4ac9a2ec7c365eb1899.png

数值输入控件-“数据输入”界面

6. 点击确定按钮

更改精确度位数

默认情况下,LabVIEW显示数值输入控件及显示控件时以10进制带两位小数点表示,例如 3.14.使用显示格式选项卡以改变数值精度或展示数值输入控件和显示控件以科学记数法,工程法或者时间(Hour/Minute/Second)进制表示。完成以下步骤以将其精度改为0。

7. 右击Current Number显示控件然后从快捷菜单中选择显示格式。显示格式对话框将会出现。

c6d1cad68746c032e8686ccc0206b254.png

数值显示控件-“显示格式”界面

8. 输入精度为0然后点击确定按钮。

9. 对# of iterations显示控件重复步骤7和8的动作。

程序框图

10. 从创建以下程序框图:

86b837f4d88b508801ce3409f06a180c.png

Auto Match VI 程序框图

a.

f093aa06d002f46a1bcda10289ff8dad.png

随机数(0-1)函数图标

函数>>数值选板中放置一个随机数(0-1)函数。该函数产生一个0到1范围内的随机数。

b.

27f8305c2f9cace1902ed2c51d33041a.png

乘函数图标

函数>>数值选板中放置一个乘函数。该函数将会把随机数乘以10000.

c.

dfb11a46c1cab1e79ca508ddaca90ea7.png

数值常量图标

右击乘函数的y输入端,然后从快捷菜单中选择创建>>常量,输入10000,然后点击空白区域以创建数字常量。

d.

d60da61c05afee9eb389b141e1e93ed5.png

最近取整数函数图标

函数>>数值选板中将"最近取整数"函数放到程序框图中,该函数将在0到10000内随机取得的数取成最靠近的整数。

e.

10cb85e858fbe026d7f8a2638a3dd25a.png

不等于函数图标

函数>>比较选板中将"不等于"函数找到并放入程序框图中。该函数会比较随机数获"最近取整数"函数作用后的值是否等于预设值,如果一致则返回TRUE,否则返回FALSE。

f. 在函数>>结构选板中找到While循环结构并将其放置到程序框图中。While循环边缘上的蓝色方块被称之为隧道。数据会在一个循环结束后传出。当某个隧道将数据传入循环,循环尽在输入抵达循环隧道后执行。

4bb8eec0da79807b02a62591fbd86a9a.png

循环计数图标

当不一致时,循环持续执行。也就是说,假如两个数据不等,不等于函数返回TRUE。每当循环执行时,迭代次数终端就自增1.迭代计数将会在循环终止时传出去。该值需再增一次因为迭代计数是从0 开始计数的。

g.

25cdf80fdbc1b1373dcf03b962991c8b.png

加1函数图标

将加1函数从函数>>数值选板中找到并放入程序框图。该函数在While循环中为循环计数加1.。有一个强制点出现在接线端输出端以提示:LabVIEW强制迭代端子数值代表同输出端子数值代表一致。参考D小节,For循环,了解更多数值变换的信息。

11. 将该VI保存为Auto Match.vi.

12. 切换到前面板并改变 Number to Match的值。

13. 运行VI,改变 Number of Match然后再次运行VI。

Current Number 在每次While循环迭代时更新,因为它存在于While循环内部。# of iterations 只有在循环结束时更新,因为他在循环的外面。

14.

0c3b14272ed874f5cc5bea77bb469698.png

高亮显示执行过程图标

为了观察VI时如何更新显示控件的,使能高亮显示执行过程。在程序框图中,点击高亮显示执行过程按钮,如左图所示。高亮显示执行过程激活数据流向,这使您可以看到每次数值生成的动作。

15. 改变Number to Match并使之超出数据范围,当前的范围为0到10000并自增1.

16. 运行VI,LabVIEW会强制转换超范围数值到最接近的在定义的数值范围的数。

17. 关闭VI


练习4-4 移位寄存器示例VI

对象: 使用移位寄存器获取之前迭代中的数值。

前面板:

1. 打开Shift Register Example VI. 以下前面已经被建立好。

a445ee05154416825c71e5a7c69f3f0a.png

Shift Register Example VI前面板

X(i) 显示控件显示当前值,该值在下一次迭代发生前,将值传递到左边接线端子。 X(i-1)显示控件显示的是一次迭代之前的值。X(i-2)显示控件显示的是两次迭代之前的值,以此类推。

程序框图

2. 显示以下程序框图且确保前面板和程序框图都可见。如果有必要的话,最好把工具选板函数选板都关闭。

3b3e6146697440e1014ec8c25c59ecd7.png

Shift Register Example VI程序框图

数值常量0联到左边的接线端子取初始化移位寄存器元素为0.

3.

731a3c174c429a34669871aeb0b84142.png

高亮显示执行过程按钮图标

点击


高亮显示执行过程按钮,如左侧所示,使执行过程的数据传输高亮起来。

4.

ab7ed0416a293abad1511f113463b35e.png

继续执行及单步步进按钮图标

运行VI并观察数据泡沿着连线流动。假如泡泡流动的太快,请尝试暂停并使用单步步进按钮,如左侧所示的组合按钮,以减缓执行速度。

每次While循环迭代一次,VI将之前的值传递到左侧移位寄存器的连接端子。每次循环的迭代都会为当前数字X(i)加5.该值一道左侧连接端子X(i-1),作为下一次迭代的初始值。该在左侧连接端子的值如漏斗般向下传递到其他连接端子。该VI会保留上三次的值。如果想保留更多值,请通过右击左侧连接端子然后在快捷菜单中选择"添加元素"添加更多的元素到左侧移位寄存器

5. 关闭VI,且不要保存任何更改。


练习4-5 Temperature Running Average VI

对象:使用移位寄存器执行移动平均。

完成一会下步骤修改"Temperature Monitor"VI,以取最后3次温度测量值并显示其平均值到波形图表上。

前面板

1. 打开"Temperature Monitor"VI,该VI为您在4-1中创建。

2. 选择文件>>另存为然后重命名为 Temperature Running Average.vi.

程序框图

3. 显示程序框图

4. 右击While循环边框的右边线或者左边线 然后在快捷菜单中选择"添加移位寄存器"以添加一个移位寄存器

5. 右击移位寄存器的左边连接端子然后选择在快捷菜单中"添加元素"以给移位寄存器增加一个元素。

6. 更新程序宽图如下:

946626ae49a60e1f1d366e7dc8b0b34a.png

Temperature Running Average VI程序框图

a)

f27a4ac618f523f60f26ccba30e4260a.png

Thermometer VI 图标

当您点击Thermometer VI的时候点击键然后将其从While循环中拖拽出来以创建一个该子VI的副本。

b)

9726ef844003214433fea00731e9cc1a.png

除函数图标

4a455514f482d48ce28b85e2c07e4f5e.png

符合运算函数图标

在位于函数>>数值选板中找到并放置一个复合运算函数。该函数返回当前温度及先前两个温度值的累加值。使用位置工具调整函数大小以使其拥有3个连接端子,如左图所示。

c) 从函数>>数值选板中找到并放置一个除函数,该函数返回前3个温度读值的平均值。

d)

482f02f0eed1a30c8d48e93ec705db0b.png

数值常量图标

右击除函数的y连接端子,选择创建>>常量,输入3,随后点击空白处。

e)

4c671e2f481b32c5386e58384bcb70bf.png

数值常量图标

使用文本工具双击数值常量连接到"等待下一个整数倍毫秒"函数,然后输入500,点击空白处。

7. 保存VI,您将在随后的课程中使用它。

8. 运行VI。

在While循环的每次迭代中,Thermometer VI 会获取一次温度测量值。该VI将这次获取的值同前两次保存的移位寄存器左侧连接端子的值相加。该VI随后将结果再除以3以找到平均温度(本次测量值,以及前两次测量值的平均温度)。该VI显示平均值到波形图表上。注意,VI以温度量值初始化移位寄存器。

9.

3e78f9225f4b11ac052505dec3fba6c0.png

捆绑行数图标

找到位于函数>>簇、类与变体选板中放置绑定函数,以同时显示平均温度和实时温度测量值到波形图表上。该函数绑定平均温度和实时温度并用于在波形图表中绘制曲线。

763a658df436dc38f67e96860bbadd18.png

Temperature Running Average VI_程序框图

10. 保存并运行VI。该VI将会在波形图表中展示两条曲线,且两条曲线为相互覆盖的,换句话说,它们共享同一个纵坐标尺。

定制图表

完成以下步骤定制化波形图表使之如下前面板所示。您可以展示曲线图示,标尺图示,表格选板,数字显示,拖动条,以及缓冲数据。默认情况下,波形图表展示为曲线。

e2b9d60ca6f17490dbed43592df0bd0d.png

波形图表

11. 定制y轴

a) 使用文本工具双击y轴上的70.0,然后输入75.0,然后点击键。

b) 使用文本工双击y轴从底部数第二个数,输入80.0,然后点击键。该值确立y轴分支的数值空间。

举个例子,假如数值高于75.0为77.5,提示y轴分支有2.5,改变77.5至80.0重新格式化y轴并乘以5.0(75.0,80.0,85.0以此类推)。

注意:波形图表在不同的轴标尺上有不同的功能。假如您在定制化轴的时候遇到问题增加波形图表尺寸。

12. 右击波形图表然后从快捷菜单中选择显示项>>标尺图例,如下图所示:

2f4e9550a36034bf74bc9150eff5f9a8.png

标尺图例

13. 使用标尺图例定制每个轴。

a) 确保自动设置范围LED是绿的并且锁定自动设置范围按钮出现锁定以使y轴只调整最小和最大值以填充数据到图标中。

b) 点击标尺格式按钮改变其格式,精度,映射模式,标尺可见性,以及网格选项。

14. 是使用曲线图例定制化曲线。

a) 是使用位置工具重设曲线图例的大小以包含2个曲线。

b) 是使用文本工具改变Temp为Running Avg并且改变Plot 1到Current Temp.假如文本不合适,使用位置工具重设曲线图例。

c) 右击曲线图例中的曲线以设定线和点的样式,颜色等。

15. 右击波形图表然后选择显示项>>图形选板,如下图所示。您可以点击选板左上方的别针按钮固定该选板到前面板上。

ca222b58834c0741de782f75a601ad5a.png

图形选板

使用放大按钮以放大或缩小图表区域或者真个图表。使用平移工具选择曲线并将之移至显示图上。使用光标移动工具。

16. 保存并运行该VI,当VI运行时,使用标尺图例以及图形选板中的按钮去改变波形图表。

注意:假如您要修改轴标签,显示部分有可能变得超出VI所能纠正的最大尺寸。

17. 使用操作工具点击"中止运行"按钮停止VI

18. 保存并关闭VI。


练习4-6. Random Average VI (随机平均VI)

对象:创建一个VI,该VI可显示两个曲线,一个随机曲线以及一个移动平均(前4个点),并投射到波形图表扫描更新模式。

1. 创建VI,使用如下提示:

· 使用For循环(n=200)替代While循环,扫描图表需同以下图表类似。

72e8abd6e79f2eed7047c024db3f10fe.png

Random Average VI前面板

· 使用移位寄存器并带3个左连接端子以平均最后四次数据点。

· 到函数>>数值选板中使用随机数(0-1)函数生成数据。

· 到位于函数>>簇选板使用绑定功能以将随机数据在投射到去线上前绑定到平均数上。

2. 保存VI并命名为Random Average.vi

3.关闭VI。


补充练习(颇具挑战):

4-7. 使用一个While循环,创建一个For循环和While循环的组合,使之能够在要么到达设定的迭代次数以后停止,要么在点击停止按钮后停止。将该VI保存为 Combo While-For Loop.vi.

4-8. 创建一个VI,该VI持续测量温度(1次/秒)并显示温度到一个范围图表。假如温度超过前面板控件定义的上下限,VI将前面板的LED点亮。该图表将温度生成曲线,并同时也把上下限生成曲线。并保存VI为 Temperature Limit.vi.

4-9. 更新在4-8中创建的VI并显示最大值和最小值温度追踪。

提示:使用移位寄存器以及两对最大&最小函数。

保存VI为 Temp Limit (max-min). vi.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值