文档详情

Labview虚拟仪器程序设计笔记..doc

发布:2016-12-28约4.82千字共23页下载文档
文本预览下载声明
Labview综述 注意事项: 数据流驱动:从左至右 数据连线颜色代表: while循环执行后外界数据接不能传入循环内,封闭性的。 注意簇的元素的排列顺序。 局部变量,全局变量,共享变量,值属性节点会破坏Labview的数据流。 枚举常量仅在程序框图可见,在前面板不可见。 使用局部变量控制布尔开关时,按钮只能使用机械动作中的转换模式 Labview多线程:将没有直接数据连接的程序块单独创建一个线程,将各个模块放到循环结构中并行执行而实现多线程。 子VI前面板进入内存的原因是:前面板打开、VI修改后尚未保存、前面板数据打印、程序框图中有数性节点。 While+条件结构,while+事件结构 自动索引功能在for循环中默认打开,whil循环默认关闭 While循环里面一定记得要加延时,特别是多任务时,不然会十分占用CPU 局部变量和值属性节点那个好? 同一vi最好数据流,其次局部变量,绝对不要使用值属性,子vi目前可用引用+属性节点或全局变量。 多使用移位寄存器,少使用属性节点值,尽量不使用局部变量 功能全局可以完全代替全局变量! 一般建议尽量少用局部变量,但就局部变量与“值”属性节点来说,局部变量的写入效率要比“值”属性节点快得多, 值属性只建议使用在程序启动的时候对于控件或显示器的初始化上。 当且仅当需要产生一个事件,以相应“值改变”事件时,才推荐使用值(信号)属性。 用属性结点会触发界面线程,使得程序界面被强制更新。如果一个大型程序的某个子程序中用了属性结点,本来子vi的界面的前面板是不需要用户看见的,但由于使用了属性结点而在后台进行强制更新,这样很显然会影响程序执行的效率。你写一个简单的程序验证一下就看出来了。 ? ? 局部变量也不是越多越好,它使labview无法重用缓存,不得不开辟新的缓存区,可以尽量用移位寄存器等结构来强制内存重用。 同vi间用局部变量,不同vi间用引用+属性节点。 “局部变量”执行效率高,但占用内存多,“属性节点:值”带错误处理,可以更好的引导数据流,但执行效率较低。局部变量和值属性节点两个都不推荐使用, 两种都需要memory allocation, 导致执行效率过低, 尤其是property node - value, 因为它还引入了UI thread. 极力推荐功能全局变量或队列 13. 避免在循环外使用事件结构:下面这样是错误的! 因为直接赋值只能改变变量的值,而不能引起次变量的事件触发。如下图为错误编程: 解决办法就是:要软件触发事件,必须对变量右键-创建-属性节点-值(信号)进行赋值,这样才能触发事件结构。 Labview调试方法: 高亮灯泡显示: 断点+探针+单步执行(用查看—工具选板来设置 ) Labview性能分析: 工具--性能分析 性能和内存分析窗口 显示缓存区分配:小黑点代表此处有一个数组的拷贝,尽量消除黑点。 Labview程序优化: 避免强制类型转换:前后数据类型一致,避免对大块数据如数组进行类型转换。 防止内存泄漏:一定要记得关闭文件引用和其他引用(VI server) 3.合理分贝数组内存:采用自动索引或预先定义数组大小,然后替换成员,好的办法: 合理使用全局变量:大数据如图像,信号避免使用全局变量 其他技巧: 缓冲区的重复使用:使用一条数据线连接 元素同址操作结构:可用于信息的更新:如把数组中的第三个放大10倍 优化程序的原则: 把VI划分成多个子VI进行调用。 可以使用连线就绝不要使用局部变量,更不能过度使用带有数组或字符串的局部变量或全局变量,因为读写局部变量是会产生一个数据的副本。 尽可能不在前面板显示大的数组或字符串,因为显示件会为它显示的数据保存一个副本。 尽量不在循环中使用创建数组函数来产生数组,字符串也是字符数组。 1.Labview常用快捷键 删除断线 Ctrl+B 整理程序框图 Ctrl+U 启用程序网格对其 Ctrl+# 查找和替换 Ctrl+F 错误列表 Ctrl+L 运行 Ctrl+R 停止 Ctrl+. 切换至编辑模式 Ctrl+M 前后面板切换 Ctrl+E 左右两栏显示 Ctrl+T 最大化窗口 Ctrl+/ 显示即时帮助 Ctrl+H 帮助 Ctrl+? 显示工具选板 Shif+鼠标右键 常用控件说明 按钮的6种机械动作:(默认按下后为1) 单击时转换:点击后0变成1,松开后按钮不会弹起(开关) 释放时转换:相反 保持转换直到释放:按下期间一直为1,持续性的(门铃开关) 单击时触发:单击时0变成1,马上又自动还原0.(断路器) 释放时触发: 保持触发直到释放:单击时
显示全部
相似文档