LabVIEWCompactRIO 开发指南27 创建模块化、可重复使用的子VI 点击:143 | 回复:0



fjczd

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:552帖 | 36回
  • 年度积分:703
  • 历史总积分:1294
  • 注册:2008年8月14日
发表于:2023-05-21 18:28:33
楼主

LabVIEWCompactRIO 开发指南27

创建模块化、可重复使用的子VI

编写模块化代码几乎总是一个好主意,无论是为Windows、实时还是FPGA设备设计应用程序。子VI使代码更易于调试和故障排除,更易于记录和跟踪更改,并且通常更清晰,更易于理解,更可重用。LabVIEW FPGA子VI示例如图5.11所示。该子VI计算满足触发条件后采集的样本数量。

图5.11.子VI用于计算满足触发条件后采集的样本数量。

避免放入子VI中的项目

创建子VI时,应考虑将某些项目保留在子VI之外,特别是I/O节点和循环定时器或等待功能。

将I/O节点放置在子VI之外,使其更加模块化和可移植,并使顶层图更具可读性。这也减少了无关的I/O节点实例,否则这些实例可能会多次包含在子VI中,从而导致不必要的门使用。在LabVIEW FPGA中访问共享资源时,编译器会添加处理多个调用方所需的额外仲裁逻辑。

另一个最佳实践是避免在模块化子VI中使用循环定时器或等待功能。如果子VI有无延迟,它会尽可能快地执行,并避免减慢调用方的速度。此外,如果需要将子VI移动到单周期定时循环(SCTL)中以进行优化,则必须删除任何延迟函数,因为它们不受支持。

图5.12.避免在模块化子VI中使用循环定时器或等待功能

图5.13的左侧显示了如何调整PWM代码以使用时钟周期计数函数,而不是循环计时器函数。使用反馈节点保存经过的时间计数值,可以在适当的时间打开和关闭输出,并在PWM周期结束时重置经过的时间计数器。代码可能看起来有点复杂,但可以将其放入顶级循环中,而不会影响循环的整体计时-它更具可移植性。

图5.13.调整PWM代码以使用tickCount而不是循环计时器函数

 

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。




楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师