历史上的今天
返回首页

历史上的今天

今天是:2024年10月16日(星期三)

正在发生

2019年10月16日 | 基于LabVIEW 7.0的某实时监控软件设计与实时性分析

2019-10-16 来源:21ic

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++等开发工具有机结合起来,灵活地进行应用程序的开发。


推荐阅读

史海拾趣

Auctor Corp公司的发展小趣事

Auctor Corp公司的创始人,一群富有远见和冒险精神的工程师,怀揣着对电子技术的热情和对市场的敏锐洞察,决定共同创办这家公司。在创业初期,公司面临着资金紧张、技术储备不足等多重困难。然而,团队成员们凭借着坚韧不拔的精神和对技术的执着追求,通过自主研发和不断改进,逐渐在市场上站稳了脚跟。

BAND-IT公司的发展小趣事

随着电子行业的全球化发展,BAND-IT公司也开始了其全球布局的步伐。作为IDEX Corporation的子公司,BAND-IT在全球范围内建立了销售和制造设施网络,为全球客户提供服务。其产品线不断丰富和完善,涵盖了从扎带、扎扣到紧带机、打包机等各类紧固解决方案。同时,BAND-IT公司还积极投入研发,不断创新产品和技术,以适应电子行业日新月异的发展需求。在全球化的浪潮中,BAND-IT以其卓越的品质和创新能力,赢得了全球客户的信赖和认可。

以上五个故事分别从初创挑战、深海钻探、太空探索、大型基础设施建设以及全球布局等方面展现了BAND-IT公司在电子行业中的发展历程。这些故事基于事实性的描述,旨在展示BAND-IT在电子行业中的发展和贡献,不涉及主观评价。

扬州国芯(Gcore)公司的发展小趣事

随着电子行业的全球化发展,BAND-IT公司也开始了其全球布局的步伐。作为IDEX Corporation的子公司,BAND-IT在全球范围内建立了销售和制造设施网络,为全球客户提供服务。其产品线不断丰富和完善,涵盖了从扎带、扎扣到紧带机、打包机等各类紧固解决方案。同时,BAND-IT公司还积极投入研发,不断创新产品和技术,以适应电子行业日新月异的发展需求。在全球化的浪潮中,BAND-IT以其卓越的品质和创新能力,赢得了全球客户的信赖和认可。

以上五个故事分别从初创挑战、深海钻探、太空探索、大型基础设施建设以及全球布局等方面展现了BAND-IT公司在电子行业中的发展历程。这些故事基于事实性的描述,旨在展示BAND-IT在电子行业中的发展和贡献,不涉及主观评价。

E-Switch公司的发展小趣事

自1979年成立以来,E-Switch公司始终将创新作为发展的核心动力。在公司成立初期,面对激烈的市场竞争,E-Switch决定走差异化路线,专注于开发和生产高品质的开关产品。通过不断的技术创新和产品优化,E-Switch逐渐在电子行业中树立了自己的品牌形象。

Anders DX公司的发展小趣事

在电子行业中,技术创新是企业保持竞争力的关键。E-Switch公司深知这一点,因此不断投入研发力量,寻求技术突破。近年来,公司在开关产品的智能化、小型化、高可靠性等方面取得了显著成果,多项技术处于行业领先地位。这些技术突破不仅提升了产品的性能,也进一步巩固了E-Switch在电子行业中的领先地位。

Eska公司的发展小趣事

除了造纸业务外,Eska公司还专注于消防手套的研发与制造。50多年前,Eska就开始研发消防手套,并一直将安全性放在首位。公司严格遵循最大安全性、敏感度、耐火、切割保护、防热和防伤害等标准,确保消防手套在各种环境下都能为消防员提供可靠的保护。Eska的消防手套因其卓越的性能和质量,深受世界和欧洲消防竞技大赛冠军及参赛者的信任和喜爱。

问答坊 | AI 解惑

3V升5V 手机/mp3/mp4应急充电,自己动手DIY

3V升5V 手机/mp3/mp4应急充电 电路板 散件 ,自己动手DIY 散件: http://item.taobao.com/auction/item_detail.jhtml?item_id=8b1bd56ea7fb83025be6bd0037e443d7&x_id=0db2 成品板: http://item.taobao.com/auction/item_detail.jhtml?item_id ...…

查看全部问答>

响应组织号召,晒我的“工作现场”

单位做项目好多都保密,毕竟企业涉及很多机密的东西,所以我也不介绍项目情况了,就拍了几个照片,大家看看,聊聊! 图中涉及产品的部分我做了处理,见谅! 桌子被我弄的凌乱不堪,太不好意思了!呵呵。另外,细心的同学们,有没有发现我的肢体呢 ...…

查看全部问答>

SAEJ1939与SJA1000

第一次开发CAN总线,由于任务急就用周立功老师开发的“sja1000_Peli”, 请问这个库能用SAEJ1939协议吗? 其中已知PGN=0xFD08,SA=0X3F, 那么“WriteSJARegBlock(16,Recevive_CAN_Filter,8);   //配置验收代码/屏蔽寄存器”时 ...…

查看全部问答>

ASIIC转Unicode问题请教

做ASIIC转Unicode的code如下:                 long n;                 n = MultiByteToWideChar(CP_ACP,0,(char*)pBuf,dwSize,0,0);     &nbs ...…

查看全部问答>

订制较大容量的内核

我想用PBWORKS订制一个包括简体中文,繁体中文,和英文的系统,可是每次Make Image的时候都过不了,NK也开到足够在了. 请问各位要同时包括简体和繁体中文要注意哪些事项啊?…

查看全部问答>

申请的AVR开发板到了

AVR的板子终于到了    感谢版主tiankai001和SOSO姐。。。。           呵呵    好多贴片啊     现在开始焊接了      有时间上个焊接好的图& ...…

查看全部问答>

Keil MDK的安装与工程建立

KEIL MDK开发工具源自德国 Keil 公司,被全球超过 10 万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。KEIL MDK 集成了业内最领先的技术,包括μVision4集成开发环境与RealView 编译器。支持ARM7、AR ...…

查看全部问答>

avr studio打开.cof报错

各位高手,我用ICCAVR编译了一个小程序,现在avr studio一加载ICCAVR编译生成的.cof就开始报错。而以前是好的,现在加载以前的文件也是好的, 报错提示:LDLED.cof  is not a AVR Studio 4-savefile 会是什么原因呢?请高手指点指点…

查看全部问答>

申请MSP-EXP430FR5739实验板套件

相用MSP-EXP430FR5739实验板套件做个智能小车学习…

查看全部问答>

一个中断嵌套的思考

今天想到个问题,不知道大家有没有人做过,如果将一个中断的处理函数中,调用一个会出发中断的函数会有什么结果。     我的想法是这样的:如果在中断处理函数中调用一个比自己优先级低的中断,那么这个高优先级的中断一直无法结束,那 ...…

查看全部问答>