找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1148|回复: 2

如何将LabView应用到淋漓尽致zz

[复制链接]
发表于 2008-7-29 01:01:20 | 显示全部楼层 |阅读模式
http://www.eetchina.com/ART_8800427703_617693_a3259001200608.HTM

无论使用什么设计语言,不良的编程技术都会给一个应用的性能带来负面影响,对一个嵌入
式应用尤其如此。尽管对于绝大部分应用来说,高效率的编程技术是重要的,但对于嵌入式
应用所工作的资源极度缺乏的环境,则要求对性能和存储器管理给予特别的关注。

本文的讨论将围绕着新的LabView嵌入式开发模块进行,这种新工具为嵌入式应用开发人员
提供了图形化系统设计手段。该工具允许用户直观地设计算法并进行交互式调试。下面是一
些有助于编程师更有效使用LabView开发嵌入式应用的技巧。这些技巧中的许多也适用于其
它高级工具。

动态分配存储器技术

动态存储器分配是一项编程师应尽可能避免的复杂操作。例如,如果动态分配出现在将数据
存储到数组内的一个循环内,那么它尤其有害。避免在一个循环内动态分配存储器的常用方
法是在该循环开始执行前,为每个数组预分配所需的存储空间。

移位寄存器与隧道技术

LabView的移位寄存器与隧道使数据进/出循环。工程师还利用移位寄存器在一个循环的每次
执行之间传递数据。当数据用一个输入隧道传进一个循环时,LabView必须拷贝该数据并将
该拷贝数据送出来进行下线修改。为了确保原始数据对该循环的下次迭代执行时保持不变,
这样做是必需的。工程师也可以通过用一个移位寄存器把数据传进该循环的方法来避免拷贝
。这样就消除了不必要的拷贝,从而加快了运行速度。

循环中的大常数技术

如果在循环内部放置一个常数,会使循环的每次执行都拷贝这个数据,从而加大执行时间和
存储器使用率。工程师可以避免这个情况,做法是把该常数移出该循环,或者用本地变量把
数据传递到循环中。

数据类型强制转换技术

LabView开发环境只要有可能就自动地处理数据类型的冲突,其做法是把较小的数据类型转
换成较大的数据类型。例如,如果在一个整数和一个浮点数之间发生一个类型冲突,那么
LabView就把该整数转换成一个浮点数,随后再执行运算操作。这个转换的代价是昂贵的,
而且在许多情况下是不必要的。在大多数情况下,工程师可以通过为每个变量选取正确的数
据类型来避免强制转换。但是,如果该数据必须被强制转换,则应在将其送去进行操作运算
或函数计算前就完成转换,这样效率将会更高些。

簇技术的应用

当把异构数据捆绑到易管理的数据包中时,簇是有用的,比如说C语言结构(C Structs)。然
而,此时除了要考虑的全部数据外,数据内容的相关信息也必须和这些数据一起传递。因此
,有的时候,尤其是在把数据传到subVI时,相对于一个捆绑的簇而言,未捆绑的数据元素
可以增加用户应用的运行速度。

尽管类似LabView这样的高级编程语言有助于工程师更快地部署其应用,但注意可提高代码
性能的细节是很重要的。通过注意这些细节,有助于工程师快速开发一个高效率的应用。

作者:Jack Jakkidi

产品工程师

美国国家仪器公司
发表于 2008-7-29 09:48:52 | 显示全部楼层
回复 顶

使用道具 举报

发表于 2008-7-29 17:15:32 | 显示全部楼层
labview最大的问题我觉得是对控件的操作太占资源,一个旋钮动一动cpu就上升几十个百分点,在对大量数据进行采集时严重影响采集的效率,真希望ni 能把这个问题给解决了
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-30 04:05 , Processed in 0.032311 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表