LabVIEWCompactRIO 开发指南7
使用有限的资源
嵌入式硬件目标通常比桌面PC更受资源限制。磁盘空间、RAM和CPU带宽通常是有限的。因此,在开发和测试应用程序时需要监视这些资源,以确保不会遇到引入负面副作用的限制。本节讨论如何克服受限硬件资源问题的工具和技术。
图3.19在嵌入式应用程序设计中,磁盘空间、RAM和CPU带宽通常是有限的
使用有限的磁盘空间
如果要将数据记录到CompactRIO控制器,则需要知道用于保存信息的存储容量。CompactRIO控制器上的硬盘或非易失性存储空间的大小取决于几个因素,包括控制器上安装的软件和文件。可以使用NI Measurement & Automation Explorer(MAX)软件或在实时VI中以编程方式检查实时目标上的内存。要在MAX中查看内存,请在Remote Systems下选择CompactRIO目标,并在System Monitor部分查看空闲磁盘空间。
图3.20 检查MAX内的空闲磁盘空间和内存
如果需要以编程方式获取磁盘的空闲空间,则需要针对控制器使用“获取卷信息”功能。您可以在高级文件函数调色板(Programming»File I/O»Advanced File Functions»GetVolume Info)中找到此函数。
图3.21 以编程方式检查空闲磁盘空间
使用有限的内存
由于CompactRIO系统的RAM比台式电脑少,因此内存管理非常重要。在为CompactRIO系统设计软件时,需要了解两种类型的内存分配:内存预分配和动态内存分配
内存预先配置
当为存储在VI数据空间中的内存分配内存时,会发生一种类型的内存预分配。如果尝试预分配比可用内存更多的内存,则会在部署期间收到错误消息,或者VI在开始执行时终止。
在初始化期间分配的固定大小内存也包括在此类别中,因为它在第一次调用后不会影响碎片或占用内存管理器。固定大小内存分配的一个常见示例是分配一个大数组,类似于图3.22所示的框图。
图3.22 通过初始化大数组来预分配大块内存
如果LabVIEW代码不适合实时目标,或者发现您分配的固定大小的内存比初始化期间可用的内存多,可以采取以下操作之一:
■消除内存副本
■消除不必要的驱动因素
■选择具有更多板载内存的硬件目标
消除内存副本
可以使用显示缓冲区分配窗口来确定LabVIEW可以在哪里创建数据副本。要显示显示缓冲区分配窗口,请选择Tools»Profile»Show Buffer Allocations。在希望查看缓冲区的数据类型旁边放置一个复选标记,然后单击Refresh按钮。框图上出现的黑色方块表示LabVIEW创建缓冲区以分配数据空间的位置。
图3.23 显示缓冲区分配窗口
一旦知道LabVIEW在哪里创建缓冲区,就可以编辑VI来减少LabVIEW运行VI所需的内存量。关于减少内存副本的技巧,请参阅NI帮助文档“VI内存使用”,Determining When Outputs Can Reuse InputBuffers
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。
楼主最近还看过