李松岩,刘 品
(驻203所军事代表室,西安 710065)
基于RTX和双进程共享内存的实时检测系统设计
李松岩,刘 品
(驻203所军事代表室,西安 710065)
针对Windows系统下检测系统普遍存在的实时性问题,提出了一种基于RTX和双进程共享内存技术的实时性解决方案;系统以X86架构通用计算机为平台,采用PXI接口数据采集卡,在Windows XP操作系统下采用RTX扩展插件,设计实现了一套具有实时信号检测功能的检测系统;经测试和实际应用,该检测系统性能稳定、测量实时性可达0.01 ms。
检测系统;RTX;实时性;共享内存
采用通用测试平台,简化检测设备并且实现检测设备的统一化和通用化是目前提高装备保障力的发展方向。某火箭炮发控系统检测一直以来依靠工控机平台和PXI数据采集卡在Windows系统下设计实现,普遍存在时序信号检测精度低、时序控制时间精度达不到要求等问题。文中以RTX(real time extense)和共享内存(shared memory)技术为基础,设计实现了一套具有很高实时性的发控设备检测系统。
检测系统选用NI公司PXI计算机和数据采集卡为平台,通过信号调理板将被测信号进行调理后送入数据采集卡。系统运行Windows XP OS,设计了RTX进程和MFC进程[1-3],进程间通过共享内存进行数据交换[4]。采集信号和时序控制由RTX进程实现,波形回放及检测结果判定等功能由MFC进程实现。
为了尽可能使检测系统标准化和通用化,检测系统硬件平台以普通计算机和数据采集卡为主,辅以自研信号调理卡,实现信号的采集。检测系统硬件原理框图见图1所示。
图1 硬件功能框图
2.1 多样性信号调理电路设计
适配器采用被测信号以差分方式输入、电源“悬浮”隔离、自校准与被测状态自适应转换和线性比例衰减信号调理等技术,实现被测信号的线性衰减与电平匹配、被测信号间和电源间电性能隔离,完成对26路被测信号与电源的接入、输出和信号调理。其中差分/线性衰减级采用BURR-BROWN公司INA146差分输入模块,隔离放大/限位保护级采用AD公司AD215隔离型运算放大模块。
2.2 信道隔离
26路被检测信号通过信号通道电路板以差分输入方式信号调理,实现了被测信号电路之间电性能隔离。
2.3 电平匹配
由于PXI-6225 A/D采集板卡的模拟信号电压输入范围为±10 V,针对被检测的电压信号大大超过其输入范围的情况,通过线性比例衰减的信号调理,实现被测信号电压与PXI-6225 A/D采集板卡模拟信号电压输入范围之间的电平匹配。
2.4 自校准状态与检测状态自适应转换
利用适配器前面板上接插件的针脚和电源(插头上闲置的2个针脚短接,对应的插座上2个针脚分别接继电器线圈和电源地)构成继电器控制电路,完成14路信号调理通道的自校准状态与检测状态自适应转换。即:
1)当插头未插入插座时继电器不动作,14路信号调理通道均通过继电器的常闭触点接入自校准电路的标准电压,适配器可以自动进入系统上电自检和自校准工作状态。
2)当插头插入插座上时继电器触点动作,14路信号调理通道均通过继电器的常开触点转换接入被测信号输入通道,适配器可以自动进入检测工作状态。
3.1 软件架构
检测系统软件由两个进程组成,见图2所示。其中MFC进程主要完成人机交互、界面显示、数据分析与处理、报表实现等非实时任务功能,而RTX进程则完成实时数据传输与采集、实时任务控制等功能。两个进程间通过Named Event和Shared Memory实现数据和任务的交互[5-6]。
3.2 RTX进程
RTX是Ardence公司(已被IntervalZero公司收购)
为解决Windows操作系统的实时性问题而推出的一套实时插件。RTX被实现为一套库的集合(动态库与静态库),并提供了一套RtWinAPI的实时API实现对这些对象的访问方法。通过RTX扩展技术可以在Windows非实时系统上实现10 ns的定时精度和0.01 ms的任务精度,可以实现绝大多数的实时任务需求。RTX技术的架构见图3所示。
RTX进程由两个工作线程和一个定时器组成。其中一个主线程主要完成初始化配置,与MFC进程进行通信等任务;一个数据采集线程主要完成数据实时采集任务;定时器模块则处理所有对时序有严格要求的指令。RTX进程的软件流程图如图4所示。
图2 检测系统软件架构
图3 RTX体系架构
图4 RTX进程软件流程图
3.3 MFC进程
MFC进程采用结构化、模块化的编程方式,形成4个模块化子程序:自检自校准故障诊断软件、检测参数输入识别软件、波形拟合显示软件和检测结果输出软件。
1)自检自校准界面:控制适配器的+5 V、+15 V加电,进入系统自检和自校准工作程序;控制适配器断电,系统自检和自校准工作结束,显示自检和自校准结果(包括背景噪声数值)。
2)检测监控界面:进入检测工作程序。从系统软件界面输入检测参数、选择测试管号,并选择开始,由系统软件调用测试平台的相关资源为适配器供电,调用信号采集模块对26路被检测信号进行实时采集、数据处理和显示出检测结果。其中,火箭炮走12管连射时序,通过软件预设的标准信号对被采集进来的信号进行比对,显示出结果(实时显示并量化和判断是否正常)。
3)波形显示界面:在检测结束后,对26路被检测信号波形在不同的分类子页面中-85 s~0 s~+120 s时间轴上按照检测时序进行回放见图5所示。
4)打印报表界面:输入打印参数,输出检测报表。
图5 波形回放界面
3.4 检测流程
检测系统通过机箱后面板VPC-9025接口与测试平台的电源模块、PXI-6225A/D采集板卡连接,通过机箱前面板插座、测试线缆、对接装置与火箭炮口尾连接构成回路。通过测试平台的PXI主控计算机及平台总软件调用检测软件,进入发控系统检测判断总菜单界面,从系统总菜单界面上可选择进入相应功能界面。系统软件结束检测,同时被测产品断电,数据存储在PXI主控计算机中。发控系统检测软件检测控制流程见图6所示。
图6 发控检测系统检测控制流程图
该检测系统以解决某型火箭炮发控系统检测实际问题为出发点,提出的双进程和共享内存技术,解决了Windows系统下实时检测的难题,实现了某型火箭发控系统的自动化检测,不仅提高了检测的准确度,也大大提高了检测效率。
[1] 高泽东, 李建军, 高教波. 基于RTX的实时伺服控制系统 [J]. 计算机应用, 2011, 31(增利2): 212-215.
[2] 杨维, 石德乾, 赵凯, 等. 基于Windows XP+RTX的火控调试平台软件设计 [J]. 火炮发射与控制学报, 2013(4): 30-34.
[3] 韩玉芹. 基于RTX子系统的导弹试验实时测控系统研发 [D]. 西安: 西安电子科技大学, 2003.
[4] 李小, 赵慧斌, 孙玉芳. 进程间通信机制的分析与比较 [J]. 计算机科学, 2002, 29(11): 16-21.
[5] 李琴. 共享内存与有名管道在实时系统中的应用 [J]. 大众科技, 2008(4): 71-72.
[6] 郑艳. 利用共享内存, 实现进程间高效率数据共享 [J]. 城市建设理论研究, 2012(2).
Design and Realization of Real-time Test System Based on RTX and Double Thread Shared Memory
LI Songyan,LIU Pin
(Military Representative Office of Army Aviationin in No.203 Institute, Xi’an 710065, China)
For the real-time problem of test system in Windows OS, a kind of RTX and shared memory method has been put forward. A new real-time test system has been developed based on X86 general computer and RTX for windows. Experiments show that, the real-time test system performance is stable and its precision of time-test arrives at 0.01 ms.
Test system; RTX; real-time; shared memory
2015-03-05
李松岩(1963-),男,山西临猗人,高级工程师,研究方向:弹药工程,火箭弹、导弹研制过程质量监督。
TP306.2
A