基于RTR的遥测数据实时处理软件的设计与实现
2016-09-07杨哲,王鹏,徐茜
杨 哲,王 鹏,徐 茜
(中国飞行试验研究院,西安 710089)
基于RTR的遥测数据实时处理软件的设计与实现
杨哲,王鹏,徐茜
(中国飞行试验研究院,西安710089)
为了对飞行遥测数据进行实时处理,以Qt为软件开发平台,采用直接接收宽带遥测接收机(RTR)发送的网络遥测数据包的方法,结合机载测试系统的采集格式、参数测试信息、校准信息和ICD信息,完成遥测数据的实时解算、工程量转换和原始数据保存,同时将关心的参数物理量通过网络实时的发送给客户端监控软件,以供试飞工程师进行实时监控;实际试验试飞结果表明,此软件运行稳定和数据准确可靠,完全满足实时监控的需求,具有良好的实用性和发展前景。
遥测数据;RTR;实时处理;Qt;飞行试验
0 引言
在飞行试验中,遥测实时监控系统可以大大提高试飞效率,避免了各种飞行事故,甚至是机毁人亡的重大事故,它发挥着不可替代的作用。而遥测数据实时处理又是其中最重要的一个环节,它的实时性和准确性直接关系到飞行试验的安全性。
传统的遥测数据实时处理系统是通过接收RTR(宽带遥测接收机)解调后的遥测基带PCM数据流,再由专用的信号解调板对PCM信号进行同步和反变换加工处理[1]。现在基于PCM解调板卡种类多,这就需要针对特定的板卡进行软件研制,虽暂时能满足实时处理的需求,但都存在着开发周期长、系统成本高、维护不方便等缺点;同时遥测信号经过电缆送到各个监控大厅再由专用的服务器进行数据解调,在传输的过程中遥测信号强度会随距离的增加而衰减,从而导致遥测数据信号质量的下降。
针对以上问题,本文采用直接接收RTR已经同步和解调好的网络遥测数据包,完成工程量的解算。实时监控系统构成如图1所示。
图1 实时监控系统构成
1 软件设计原理
1.1通信协议
要得到遥测数据,首先需要先了解RTR遥测数据网络通讯协议。根据RTR的相关技术资料,RTR遥测数据传输必须要由客户端通过TCP协议发送遥测请求包来触发,之后RTR检查它的有效性并按要求发送遥测消息包给客户端。
遥测请求包结构[2]如图2所示。
0x499602D20x400x02……0xB669FD2E
图2遥测请求包结构
每个偏移量占4个字节,第一位和最后一位是TCP/IP数据包的包头和包尾,第二位表示这个数据包的大小,第三位代表向RTR接收机的哪个通道发出请求,因为RTR本身有3个通道供客户端选择。
根据RTR接收机的TCP/IP通信协议,遥测消息包可以从3070端口获取,因为RTR消息打包以及RTR打时标等原因,每个消息包的结构为:包头(64字节)+遥测帧+包尾(4字节),其结构如图3所示。
0x499602D2……遥测帧数据0xB669FD2E016~N-2N-1
图3遥测消息包结构
1.2软件功能设计
在飞行试验时,遥测数据实时处理软件最核心的部分是实时准确的解算遥测数据,得到所有飞机参数的工程量数据,另外根据实际飞行试验需要,同时应具有把飞机的部分数据通过网络发送给客户端用于实时监控;有时为了查看某些参数的数值和变化规律,软件界面能实时显示参数的当前值并以曲线的形式显示参数的时间历程;数据保存和回放是以纯帧的形式保存在本地磁盘上,以便飞行完后,对感兴趣的飞行数据实现现场再现,完成特定时间段的数据回放。
基于RTR的遥测数据实时处理软件为了便于维护和日后升级,采用模块化设计思路,软件功能模块如图4所示。
图4 软件功能模块图
2 软件实现
软件的实现主要分为2大部分:获取完整的遥测数据和根据格式格栅文件对遥测数据进行实时解算。
2.1获取完整的遥测数据
实际上,客户端通过TCP从3070端口获得网络数据包并不是一个单独的完整的遥测消息包,使用wireshark网络封包分析软件抓取了大量的网络数据,如图5所示。
图5 实际的网络数据
从图5中可以看到RTR接收机每次实际发送过来的网络数据包大小不一致,这对后面判断数据包的有效性带来了困难,更为重要的是很难拼接出一个完整的遥测帧,这里,通过采用设置TCP读缓存区的大小为一个遥测请求包的大小,每次只接收一个遥测子帧,在Qt中可以通过下面的代码实现[3]:
随着我国风电的不断发展,风电装机容量不断增加,风电并网比例也极大提升。图1为2010—2017年我国的风电装机容量。图2为我国“十三五”电力系统规划中非化石发电量的占比。风电并网将会给电力系统带来两方面的影响,一是风电机组将会替代一部分传统化石能源机组出力,减少化石能源的消耗以及污染物的排放,符合我国“十三五”电力系统规划的要求;二是为解决风电并网后所带来的风电消纳问题,系统将配置更多的旋转备用去消纳风电,不仅会导致系统成本上升,而且在某些极端情况下,风电解列还会造成大量的功率缺额,使整个电力系统面临风险。因此,对风电备用问题的研究具有极为重要的现实意义和工程意义。
tcpSendSocket = new QTcpSocket(this);
……
tcpSendSocket->setReadBufferSize(rtrDataCount*2);
接着提取子帧中的ID字(ID字是标识子帧在帧中的序号),通过循环判断ID字的连续性就可以拼接出一个完整的全帧,实现过程如图6所示。
图6 获取全帧的流程图
2.2实时解算
在拼接出一个完整的全帧之后,需要在全帧中根据飞机的格式格栅文件进一步解析出各个参数的物理量,但当飞机参数量多的时候,需要较长的时间解算,这就有可能造成遥测数据的丢失和延迟,为了保证数据的实时性和完整性,本文采用多线程技术解决这个问题。
在Qt应用程序中提供多线程是非常简单的:只需要子类化QThread并且重新实现其run()函数就可以了,这样,只需要在run函数中实现数据的解算。但实际应用中,试图在子线程中调用GUI类是不可能的,也就是说解算出来的数据不能直接显示在界面上。Qt特有的跨线程的信号和槽机制打开了子线程和GUI线程通讯的方便之门[4],通常情况下,信号和槽机制可以同步操作,这就意味着在子线程解算完数据后,采用信号与槽,发射信号,GUI界面上就可以显示结果了。
获得一个完整的全帧后,就进入解析线程,结合飞机的格式格栅信息,解算数据,具体的解算流程图如图7所示。
图7 实时解算流程图
在获得实时的飞行数据后,就可以在主界面上显示数据,同时保存数据,把部分关键参数数据发送给客户端子系统用于监控,整个软件的设计流程图如图8所示。
图8 基于RTR的遥测数据实时处理软件逻辑流程图
3 软件应用
本软件集成了实时数据采集、显示、存储、网络发送、图形显示、数据回放等功能。既满足了遥测数据处理的实时性要求,又能查看部分参数值和时间历程曲线。
4 结论
本文提出了一种基于RTR接收机的网络遥测数据实时处理的方法,经过大量飞行试验证明,本软件运行稳定和数据完整可靠,不仅完全满足普通科目实时监控的要求,而且经过改进满足颤振等特殊科目参数高采样的监控需要;另外,与现有实时数据处理方式相比,具有配置简单,使用灵活,可以安装在局域网中的任意一台电脑上,就可以构建一套遥测实时数据
处理系统,更加符合监控资源网络化、分布式的发展趋势。
[1] 高陪先,张俊芳,乔东峰.遥测实时系统深层次设计缺陷分析与测试[J].电子测量技术,2007(2):182-183.
[2] IN-SNEC,STI 100013_RTR[Z]. 2009.
[3] 闫锋欣,曾泉人,张志强.C++ GUI Qt 4 编程(第二版)[M].北京:电子工业出版社,2011.
[4] 蔡志明,卢传富,李立夏.精通Qt4编程(第2版)[M].北京:电子科技出版社,2011.
Design and Realization of Telemetry Data Real-time Processing Software Based on RTR
Yang Zhe,Wang Peng,Xu Qian
(Chinese Flight Test Establishment,Xi’an710089,China)
To dispose the telemetry real-time data, by receiving network telemetry data from Radio Telemetry Receiver(RTR) directly, the soft based on Qt finish the functions of real-time calculating、quantities conversion and save raw data combined airborne test system acquisition formats、parametric test information、 calibration information and ICD information,while the physical parameters of interest in real time sent to the client monitoring software for real-time monitoring of flight test engineer through the network. Experimental results shows the soft run stabilitiesly and the data is integrity and reliable, which is satisfied with the real-time monitoring and has good availability and development potential.
telemetry data; RTR; real-time processing; Qt; flight test
2015-06-16;
2015-11-20。
杨哲(1985-),男,陕西西安人,硕士研究生,工程师,主要从事试飞数据处理及相关软件的开发方向的研究。
1671-4598(2016)01-0165-03
10.16526/j.cnki.11-4762/tp.2016.01.046
TP319
A