- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3(part 1)使用结构控制程序执行.ppt
3.1 两种循环 强制点:LabVIEW强制转换数据的类型来适应其它的数据类型。把两个不同数据类型的端子连接到一起时,LabVIEW会将其转换成相同的数据类型。 上例中,计数端子为32bit的整型,而“循环次数”控件默认是双精度的浮点数。在这种情况下,LabVIEW把双精度的浮点数转换成整型数。 此时,LabVIEW会用合适的类型为内存中数据创建一个新的副本,这些数据会占据内存空间,尽管标量数据(单值数据)占用的额外空间可以忽略不计,但是数组数据(多值数据)会占用大量的内存空间。 使用大数组时要尽量减少使用强制点,需要改变控件或者指示器的数据类型使其匹配对应的数据类型. VI将浮点数转化成整型数时,会将浮点数舍入 到最接近的整数。 * 3.1 两种循环 本例中,在“循环次数”控件的弹出菜单中的子选项卡中选择I32Long可以使数据类型匹配,强制点消失。 * 3.1 两种循环 为计数端子创建正确数据类型的输入:计数端子的弹出菜单中选择“创建常量”或者“创建输入控件”。还可以“创建显示控件”观察循环进行时的迭代次数。 5. 保存VI。 6. 打开新VI尝试While循环 * 3.1 两种循环 7. 创建VI的前面板和框图,前面板上布尔控件的默认值是FALSE,设置While循环的条件端子为Continue if True。 * 3.1 两种循环 8. 实现过程:使用“操作值”工具单击开关使其翻转到TRUE位置运行VI。需要停止时,单击开关使其翻转到FALSE。每次迭代时,循环次数(Loop Count)指示器都会更新。 * 3.1 两种循环 9. 在开关处于FALSE位置时再次运行VI,可以注意到While循环将会执行一次,也仅仅执行一次。由于循环结构在每次迭代之后检查条件端子的值,所以循环总会执行一次,不管其连接的值是多少。 10. 切换到框图,将循环次数指示器移动到循环外面,这样需要重新连接指示器,当连线离开循环时,会自动创建隧道。 * 3.1 两种循环 11. 确认开关为TRUE时运行VI,注意指示器仅在翻转开关和循环执行完之后更新,其值是最后的迭代次数,是循环完成后输出的值。 12. 保存VI。 * 3.1 两种循环 13. 示范错误的做法:把开关拖出循环,但是保留连线,确认开关是TRUE后,运行VI,然后单击开关停下VI。但是VI 不会停止,这是因为一旦LabVIEW进入循环,它就不会再去检查循环外部控件的值,就像不回去更新“循环次数”指示器一样。单击工具栏的异常终止按钮来终止循环执行。如果开关在循环开始时为FALSE,循环就只会执行一次而不是一直循环。 * 第3章 使用结构控制程序执行 3.1 两种循环 3.2 移位寄存器 3.3 选择结构 3.4 顺序结构 3.5 定时及定时结构 3.6 公示节点 3.7 表达式节点 3.8 循环与选择结构联合 * 3.2 移位寄存器 3.2.1 移位寄存器 移位寄存器是用来从一次迭代向下一次迭代传输数据的特殊变量,只能在While循环和For循环中使用。在LabVIEW的图形化结构中,移位寄存器是唯一且必要的,在循环左右的边框上弹出菜单并选择“添加移位寄存器”就可以创建移位寄存器。 * 3.2 移位寄存器 可以配置移位寄存器存储数次迭代以前的数据,在求不同迭代中的数据平均值时非常实用 为了访问以前迭代的数据,需要在左边 端子的弹出菜单中选择“添加元素”创建 一个附加端子。例如有一对移位寄存器的 While循环,左边端子有多个元素。 * 3.2 移位寄存器 在一个循环里可以有多个不同的移位寄存器来存储不同的变量。只需要在循环的边框上添加足够的移位寄存器。左边的移位寄存器总是和右边的平行,如果移动其中一个,那么两个都会同时移动。如果循环里有太多的移位寄存器而无法分清哪一对是平行的,只要选中一个,另一个也会自动选中,或者移动其中一个,那个跟着移动的移位寄存器就跟它是一对。 通常的错误是把两种情况弄混,一种情况是多个变量存储在多个移位寄存器里,另一种情况是单个变量使用一个移位寄存器存储多个先前的值。 * 3.2 移位寄存器 确认要直接连线到移位寄存器端子,就不会创建进入或离开循环的孤立隧道。 3.2.2 移位寄存器示例 下面给出使用移位寄存器的方法,观察使用移位寄存器来访问循环中先前迭代的值。在该VI中要从先前的循环中获取计数值。 * 3.2 移位寄存器 1. 打开移位寄存器示例程序的前面板和框图 2. 前面板上有4个数值指示器。CurrentCount指示器显示循环计数的当前值,它连接在迭代端子上。Preview Count指示器显示循环计数的前一次迭代的值。Two Iterations Ago指示器显示两次迭代以前的值。Three Iterations
文档评论(0)