一、实验环境:Windows10 ,LabVIEW2011
二、实验目的:用一个布尔控件同时控制多个while循环
三、实验内容及步骤:
1、项目实现
1)打开LabVIEW,在程序框图中放置两个While函数框架,如图3.1.1所示;
图3.1.1.png
2)选中左下角的蓝色标志,右击“创建输入控件”,如下图3.1.2所示,建立完成后的效果如图3.1.3所示
图3.1.2.png
图3.1.3.png
3)选中右下角红色标志,右击“创建输入控件”,如下图3.1.4所示,建立完成后的效果如图3.1.5所示
图3.1.4.png
图3.1.5.png
4)加入“等待下一个整数倍毫秒”,加入方法如下图3.1.6所示,并为之创建常量,建立完成后的效果如图3.1.7所示
“等待下一个整数倍毫秒”:一个定时函数,等待指定长度的毫秒数,并返回毫秒计时器的值,该函数用于同步各操作。
图3.1.6.png
图3.1.7.png
此时的前面板显示如图3.1.8所示
图3.1.8.png
5)回到程序框图,选中第一个while循环的停止键,右击创建局部变量,并将它移至第二个循环的框中,删除第二个框中的停止键,效果如图3.1.9所示
图3.1.9.png
A)注意:此时会报错,是因为红色标志和停止键的局部变量均为“写入”
解决办法:此时要更换局部变量的属性,转换为读取,如图3.1.10所示
图3.1.10.png
B)注意:此时会报错,因为使用了布尔控件并创建了该控件的局部变量,局部变量要求该控件为一个确定值,而此时使用了默认的机械动作:释放时触发,导致点击按钮后控件会发生俩次状态转换,与局部变量用法不兼容,因此报错。如图3.1.11所示
解决办法:应该点击右键选择属性或者机械动作,将其改为单击时转换或其他只发生一次属性改变的机械动作
图3.1.11.png
2、软件仿真
1)点击运行按钮,三个输出框中的数字同步跳动
2)点击停止键,三个输出框的数字停止跳动并归零
3)右击“程序生成规范”,选择“属性”,具体设置如图3.2.1所示
图3.2.1.png
4)右击程序生成规范里面的“Build”,此时开始编译该实验,这时会报错,如图3.2.13所示。
图3.2.13.png
错误原因:不清楚
解决办法:找到该.h文件,将如图3.2.14所示的部分注释掉,
图3.2.14.png
5)重新Build,此时生成了可执行代码,确保程序没有语法错误。图3.2.15显示编译状态、图3.2.16显示正在编译的源文件以及编译成功的代码占用信息。
3.2.15.png
图3.2.16.png
3、硬件仿真
1)实验的程序框图如图3.2.11所示,实验的前面板如图3.2.12所示
图3.2.11.png
图3.2.12.png
3)
四、实验结果:
框图如图4.13所示,前面板如图4.14所示
图4.13.png
图4.14.png
当运行时,三个输出框同时运行。点击停止按钮,三个输出框显示的是一样的数字
五、实验拓展:
六、实验难点及解决办法:
1)难点:对函数位置不熟悉,找不到while函数框架,之后在如图6.15所示路径中找到
图6.15.png
2)难点:建立局部变量后,连接输入输出端时会报错
解决办法:将局部变量“转换为读取”,不报错。
七、实验不足:
1、软件编译时出现错误,如图7.1和图7.2所示
图7.1.png
图7.2.png
错误信息:
[15:40:45] Status: Error
Unexpected error occurred.
[Source: UVSC_OpenConnection Code: 1]
错误原因:程序生成规范的Aplication的命名与vi不同
解决办法:修改Application的名字
2、软件编译时出现错误,
错误信息:
[13:29:55] Status: Error
Unexpected error occurred.
[Source: UVSC_OpenConnection.vi-
UVSock_Start_Daemon.vi->UVSock_Start.vi-
UVControl_Start.vi->LEP_RV_PrepareBuild.vi-
LEP_RV_PrepareLaunch.vi-
LEP_RV_OnRebuild.vi中的调用库函数节点 Code: 7]
错误原因:由于安装了keil5,版本不对,LabVIEW无法调动相对应的库
解决办法:修改keil的版本为
3、实验时间花费较长,效率低
网友评论