基于LabVIEW 7.0的某实时监控软件设计与实时性分析

发布者:数字火花最新更新时间:2019-10-16 来源: 21ic关键字:LabVIEW  7.0  实时监控软件  实时性分析 手机看文章 扫描二维码
随时随地手机看文章

0 引言
LabVIEW软件是一种可视化程度较高的图形化编程工具,以其直观清晰、简明易学的优点被作为初级编程者的首选。迄今为止,LabVIEW软件已在石油、煤炭、工业自动测量与控制、航空及医学仪器等领域相继得到了成功应用。飞行试验实时监控软件是针对具体试飞科目而开发的专用型软件,它要求数据传输安全、稳定可靠及实时性好。目前,我院飞行试验遥测实时监控数据处理系统的客户端实时监控软件,绝大多数情况下是采用NI LabVIEW的软件开发平台进行开发。该类型客户端软件,一般满足了试飞课题的需求,保障了科研试飞。但是,针对一些实时性要求较高,试飞风险较大的特定试飞科目,如何开发高性能的试飞科目时间历程实时监控软件是本文研究的重点。

1 影响VI性能的因素
VI性能的好坏主要由VI的执行时间、数据的刷新速度和VI内存的使用三方面决定。
文件读和写、使用GPIB、数据采集及网络应用都影响VI的执行时间。数据在屏幕上的刷新速度与程序中控制控件、显示控件及与控制控件相关联的控件数目有关。此外,合理使用和高效管理VI的内存可以提高VI的性能。

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趋势图。



保持客户端与服务器的网络通信状态不变,将数据源以4倍速率从服务器向客户端发送网络数据,客户端监控画面中两个参数曲线出现台阶式的跳点,对此现象不做任何处理,该现象一直持续。实时监控中两参数的曲线效果如图2所示。产生图2现象后,断开服务器,停止向客户端发送数据,同时将客户端VI重新打包生成.exe可执行文件,然后服务器重新开始以4倍速率向客户端发送网络数据。VI执行时,图2所示现象消失,客户端实时监控画面恢复良好。


或者利用Chart的属性节点函数编程将Chart历史数据清空,同样地,客户端实时监控Chart图表曲线正常,参数Par1,Par2实时曲线如图3所示。


对上述现象反复试验多次,结论仍然成立。研究、对比分析后,得出如下结论:
(1)实时监控软件是网络应用程序,它本身对VI的内存开销较大,影响VI的执行速度。当服务器向客户端发送数据的速率较高时,即单位时间内VI前面板需要更新,显示数据的频率较快。


(2)Chart图表数据更新的原理是将新的数据添加在旧数据之后,该VI中Chart的y轴使用了自动刻度。当参数Par1,Par2的y值随时间瞬时变化时,Chart绘图的基准点在不断变化,使得绘图曲线呈台阶式的现象。


(3)Chart图表的数据缓存区能够记忆显示的数据点数。所以,当服务器数据发送中断再重新开始发送时,原VI的Chart数据缓存区累计记忆着历史数据,当历史数据累积到一定程度,数据缓存区又没有完全释放。此时,虽然数据缓存区还在不断更新数据,但新到的数据在Chart图上未及时刷新绘制,同样使得曲线呈台阶式跳点的现象。


(4)当断开服务器,将VI重新打包时,打包后的VI所有数据缓存区都是置零的原始状态,重新接收数据,Chart图表曲线恢复良好。


(5)或者利用Chart控件的属性节点,通过编程方法定时将Chart图表的历史数据清空,实际飞行试验实时监控中,Chart图表曲线实时显示正常。


(6)该实时监控软件,根据其设计要求,VI前面板使用了18个Chart图表和大量字符串显示控件,Chart图表分别对称置于前面板中,9个Chart图表的垂直总高度尺寸大于显示器屏幕的高度,这降低了VI的性能,很大程度上也影响了Chart图表的刷新和实时显示。
此外,Chart图表的y轴使用了自动刻度(Auto Scale y),图表启用了图例标记(Plot Legend),这些都对Chart图表的刷新速度有一定程度的影响,但不是主要影响因素。

4 结语
NI LabVIEW作为一种图形化的编程工具,以虚拟仪器、图形化的编程语言等优点降低了软件的入门门槛。同时作为一种快速的软件开发工具,缩短了软件开发时间,节省了开发成本。本文从影响LabVIEW程序的性能因素出发,结合手动编程巧妙地解决了Chart图表数据实时刷新的问题。此外,在开发大型复杂的基于网络应用的飞行试验实时监控系统方面,应将NI LabVIEW软件平台与Microsoft Visual studio和
Borland C++等开发工具有机结合起来,灵活地进行应用程序的开发。


关键字:LabVIEW  7.0  实时监控软件  实时性分析 引用地址:基于LabVIEW 7.0的某实时监控软件设计与实时性分析

上一篇:基于LabVIEW的电机寿命测试控制系统设计与实现
下一篇:基于LabVIEW的虚拟电路实验的设计

推荐阅读最新更新时间:2024-10-29 21:42

LabVIEW前面板控件制作默认值的实现方法
主要是使用Vi Server的观念来使面板上面所有的值都变成默认值。 原理是这样子的: 一般我们执行一个vi,其生命周期如下所示: 1.开启vi 2.按下「Run」,vi开始执行,此时面板上所有组件的数字可能会改变 3.按下「Stop」,vi停止,此时控制元或是显示元的值都会存留在内存中 4.关闭vi,此时,控制元或是显示元的值就会从内存中清除 这个范例的原理就是在步骤3和步骤4之间,插入一个动作: 3.1:使用VI Server,将面板上控制元和显示元的值通通变成默认值 为什么要在VI停止之后才做设定默认值的动作呢?因为这个设定默认值的动作一定要在「Edit Mode」才可以使用,不能在「Run Mode」使用。 所以,如果你的程
[测试测量]
<font color='red'>LabVIEW</font>前面板控件制作默认值的实现方法
labview编程技巧-----利用.NET和回调函数实现托盘图标
托盘图标过去在LABVIEW中是很难实现的,基本都是通过ACTIVEX技术实现的,通过.NET和上一篇日志提到的回调函数就可以轻松实现这个功能. 首先看看它的效果. 前面板 程序框图 下面详细介绍一下它实现的方法: 首先通过.NET对象构造器生成一个托盘图标类对象 然后调用托盘对象的属性节点 我们设定TEXT,ICON,CONTEXTMENU和VISIBLE四个属性 其中ICON和CONTEXTMENU是也是两个对象,前者用于选择托盘的图标,后者用于托盘的右键菜单 图标是通过调用图标文件实现的,看看它的程序框图 图标也是一个基本对象,通过对象构造器,载入文件图标,并返回参考给托盘
[测试测量]
<font color='red'>labview</font>编程技巧-----利用.NET和回调函数实现托盘图标
LabVIEW Nugget之如何计算两个日期经过的天数(小时数、秒
我们经常会遇到给定两个日期,计算两个日期所经历过的天数、小时数、秒数等等,通常给定的日期的格式为字符串,比如某年、某月、某日等等。 如果按照通常的思维方式考虑这个问题,将会非常复杂,因为年份涉及到闰年的问题,月份涉及到闰月的问题。 如 果我们非常了解Labview的时间概念,这个问题非常容易解决了。在LABVIEW中所有的时间日期都可以转换为秒数,这个秒数相对于某个标准的0点 (即0秒所代表的时间)。对于两个具体日期时间的差值,实际上就是相对于这个0点的秒数的差值,因此计算日期差值时根本不需要考虑闰年、闰月的问题。参见 下面的程序框图。 因为LABVIEW的TIMESTAP是LABVIEW专门用于表示时间的控件,因此不需要使用
[测试测量]
<font color='red'>LabVIEW</font> Nugget之如何计算两个日期经过的天数(小时数、秒
基于LabVIEW和声卡的虚拟仪器设计方案
导读:为了在对采样频率要求不高的情况下进行信号的生成和分析,采用声卡取代价格昂贵的数据采集卡进行采样和输出,利用虚拟仪器开发软件LabVIEW,分别设计和实现了基于声卡的虚拟信号发生器和虚拟示波器。信号发生器可以产生方波、三角波等常用波形和自定义波形,示波器具有波形显示、图像暂停和截取以及频谱分析功能,所设计的虚拟仪器具有友好的人机界面,只需两台计算机即可进行完整的自测试。   在电子与通信行业以及试验测试中,信号发生器和示波器是应用最广泛的电子测量仪器。传统仪器的技术和性能都已经比较成熟,但存在体积较大、不易携带、功能固定、并且价格昂贵等缺点。虚拟仪器是计算机技术与仪器技术深层次结合产生的产物,代表了当前测试仪器的发展方向之一。虚
[测试测量]
基于<font color='red'>LabVIEW</font>和声卡的虚拟仪器设计方案
基于LabVIEW的鼠标位移测量技术研究
0 引言 位移传感器把外界物体的位移信号转化为电学量,从而实现对位移量的检测,在实际工程应用中有着非常重要的作用,其好坏往往影响着整个系统的性能。位移检测技术经过多年发展已经相当成熟,各种位移传感器纷纷出现,但低成本的位移传感器结构简单,精确度不高,线性度低,而高成本的位移传感器虽然性能优异,但制作工艺难度大,难以普及。所以开发一款低成本、高性能的位移传感器具有很高的现实意义。鉴于此,本文提出了通过LabVIEW 编程实现精确度高、线性度好、测量范围大、无需其余硬件设备的鼠标位移测量方法。 1 鼠标的工作原理及位移测量的实现方法 1.1 鼠标的工作原理与驱动程序 鼠标(mouse) 在现代个人电脑( PC)中被广泛应用,特
[测试测量]
基于<font color='red'>LabVIEW</font>的鼠标位移测量技术研究
LabVIEW(数据库连接)
Driver={Microsoft Access Driver (*.mdb)}; Dbq=路径; Uid=Admin; Pwd=密码; 插入: INSERT INTO xs(学号,姓名,专业名,性别,出生日期,身高,党员否) VALUES ('082212','李晓姝','机电一体化','女','1990-9-28',168,0) 也可以: INSERT INTO xs VALUES ('082212','李晓姝','机电一体化','女','1990-9-28'
[测试测量]
<font color='red'>LabVIEW</font>(数据库连接)
基于LabView8.5和PA96的压电陶瓷致动器驱动电源
压电陶瓷致动器是近年发展起来的新型微位移器件,具有体积小、推力大、精度及位移分辨率高、频率响应快等特点。它在使用中无噪声、不发热,是理想的微位移器,已在航空航天、精密测量、机器人及精密加工等领域得到广泛应用。驱动电源的性能对压电陶瓷致动器的影响很大,近年来国内对静态压电陶瓷驱动电源的研制取得了一定的进展,但大部分压电陶瓷驱动电源都是由分立性器件组成,结构较复杂,而且容易产生自激振荡,对电源的稳定性会产生影响。而采用高压运放的驱动电源,分辨率能达到mV级,输出纹波较小,不仅提高了 电路 集成度,而且可靠性也得到加强,因此可用于驱动压电陶瓷致动器。 压电陶瓷致动器驱动电源 1压电陶瓷致动器对驱动电源的要求 压电陶瓷致动器的驱动电源应
[模拟电子]
基于<font color='red'>LabView</font>8.5和PA96的压电陶瓷致动器驱动电源
小广播
最新测试测量文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved