2 提高VI执行效率的方法
针对以上影响VI性能的因素,为提高VI的执行效率,在进行某客户端实时监控软件系统设计时,采用了以下编程技术来增强程序的可读性。
(1)程序避免在循环体里计算。能在循环体外计算时,尽量将公式计算安排在循环体外。
(2)在满足软件设计要求的前提下,将前面板显示控件较多,画面布局大于屏幕尺寸的VI分割成几个VI进行设计;或者将大的VI分割成子VI。
(3)当VI程序框图中使用较多矩阵(Array)或字符串(string)函数时,程序框图中尽量少用全局变量或局部变量;且输入矩阵和输出矩阵尽量使用相同的数据类型。
(4)设计程序框图时,尽量使输出函数能复用输入函数的内存空间,尤其是使用矩阵、矩阵子集或字符串函数时。
(5)如果子VI的前面板不需要显示,去掉子VI中不用的属性节点。
(6)设计VI时,避免使用复杂的数据类型,开发高效的程序结构。
(7)在VI属性的“执行”选项里面,将子VI的优先级设置成“子程序”(subroutine),将主VI的优先级设置为“优先执行”(time criti-cal Priority)的最高优先级。
3 实时监控中的应用
在NI LabVIEW 7.0平台下基于以上编程思想,进行了某课题实时监控软件的系统开发。以下是其中的部分监控画面。监控画面中用Waveform Chart控件来实时显示参数的时间历程曲线。根据软件的设计要求,将Chart图表的y轴设置成自动,x轴利用控件本身的可见属性x Scrollbar来及时刷新图表显示。
图1描述了数据源以1倍速率从服务器向客户端VI发送网络数据,正常条件下,两参数Par1和Par2的典型Chart趋势图。