labview每日一练
1. 任务
编写一个LabWindows/CVI程序,功能自定(可以是课堂或者书上的例子),程序有菜单或多种控件,用程序改变控件值或属性。
在本实验中,我们制作两数值型控件,当一控件值改变时,另一控件值也随之改变。同时,设计一命令控件,当点击它时即可退出用户接口界面。
2.实验步骤
步骤1:新建一工程,选择File→New→Project(*.prj),如图1-1所示。
图1-1 创建一工程
步骤2:新建一用户界面。从工程(Project)窗口中选择File→New→User Interface(*.uir),创建一个用户界面文件(*.uir),编辑器将自动产生一个空面板,如图1-2所示。
图1-2 用户界面编辑器窗口
步骤3: 在用户界面编辑器窗口中Untitled Panel 的灰色区域中单击鼠标右键,弹出如图1-3所示的控件选择的快捷菜单。在本实验中我们选择两数值型控件(Numeric)和一命令按钮(Command Button),其属性设置见图1-4~1-6。图1-7为面板属性编辑窗口,最后生成如图1-8所示界面。
图1-3 控件菜单
图1-4 “编辑数值控件1”对话框
图1-5 “编辑数值型控件2”对话框
图1-6 “编辑命令按钮”对话框
图1-7 面板属性编辑窗口
图1-8 最终用户界面
步骤4:用代码生成器生成程序框架。选择Code→Generate→All Code,显示如图1-9所示的生成所有代码对话框。
首先必须确定程序启动时要显示的面板。对本实验来说,在.uir文件里只有一个面板。选择该面板作为程序启动时首先显示的面板。
此对话框下部分显示.uir 文件里的回调函数列表。在面板的属性中已经设置QuitCB作为程序终止执行的函数,其旁边出现一个“√”号。
选择OK 按钮,触发代码生成器建立程序源代码,如图1-10所示。
在源代码窗口里选择File→Save,以文件名ex1.c保存源文件。
图1-9 生成所有代码对话框
图1-10 程序源代码
步骤5:使用函数面板和函数库开发ChangeValueCB回调函数。
把光标置于ChangeValueCB函数的case语句中,然后选择Library→Uer Interface Library→Controls/Graphs/Strip Charts….→General Function→Get Control Value,弹出如图1-11所示的Get Control Value函数面板。在面板的控件里输入如图1-11所示的值。在面板的灰色地带点击右键,可获得函数的说明文档。
在源代码里插入函数Get Control Value前,必须声明变量value。选择Code→Declare Variable,并选中复选框Add declaration to current block in target file “ex1.c”,这样将在源代码当前段插入一行代码声明回调函数ChangeValueCB里的变量value。
选择Code→Insert Function Call,将函数Get Control Value 插入源代码窗口光标所在位置,关闭函数Get Control Value面板,可以看到函数Get Control Value 的调用出现在源代码的case EVENT_COMMIT语句后。
选择Library→Uer Interface Library→Controls/Graphs/Strip Charts….→General Function→Set Control Value,在函数面板各控件里输入如图1-12所示信息。
选择Code→Insert Function Call,将函数 Set Control Value 插入源代码。
最后所生成代码如图1-13 所示。
图1-11 Get Control Value函数面板
图 1-13 最终代码
步骤6:保存并运行程序。选择Run→Debug ex1_dbg.exe,开始运行程序。
选做:
把回调函数ChangeValueCB中的EVENT_COMMIT 事件改为EVENT_VAL_CHANGED,保存后运行程序,观察效果有什么不同。
更多每日一练请查看汇总贴:http://bbs.elecfans.com/jishu_207331_1_1.html
顶一个
小编今天怎么是LabWindows/CVI了?我貌似没有装这个啊
感觉突然就上了一个档次
跟着一起做实验而已啦 今天不搞这个了 哈哈
樓主,我怎麼找不到labview/civ程序呢?
no understand !
这个就两个语句,刚看了cvi两天,发觉里面很多函数不会用,而且网上材料关于这的不多,现在想转为labview做小项目,正学习labview中,望多多指教!
。这是什么神马东西?
我弱弱的问一下LabWindows/CVI和labviEW有啥关系呀?
LabWindows/CVI将C语言与测控技术领域专业工具有机结合,可以实现数据采集、分析和显示,是一种基于C语言的虚拟仪器开发平台。 LabVIEW是美国国家仪器公司开发的一种虚拟仪器平台,它是一种用图标代码来代替文本式编程语言创建应用程序的开发工具。 他们都是是National Instruments公司的软件产品,以ANSI C为核心。
kankan cvi shishenme
感谢小编,还没玩过这个
说的很对, 工厂里面很大的程序要使用CVI 来完成, 如果使用LV 测试时间和运行时间更长.. 貌似LV/CVI 运行的效率更高一点!
不太明白
汗~这一练感觉好诡异~
下载了LABwindows/cvi终于完成了这个任务
不错啊
不错呀,转了
这种形式的比较好啊……可以让人迅速的进步
天哪,这个好难啊啊
这个真的有点复杂啊
很不错。
支持lz
顶!
labview/CVI? what‘s this? boss?
實在很高興!可以看到這麼好的知識!謝謝分享!
这个好高端 没用过额
LZ请问这个是做界面用的吗?
又学到了一个新的东西,不错!
我顶,大神你真是让我们这些菜鸟长见识啊
我觉得小编太不得了了
这个真不会啊
看一看 长长见识
这个形式很好啊 深入了很多
总之就是看不吸取昂去,不知道是干嘛的,小编要发一些我们菜鸟可以弄懂的啊
这个有点难度了
跳转有点大,和lab关系不大吧
学习
顶一个