APP下载

基于LabVIEW的某型光电雷达随动电子部件检测仪软件设计

2017-09-29钱平于宝成杜玉立

软件导刊 2017年9期
关键词:状态机

钱平 于宝成 杜玉立

摘 要:随动电子部件是光电雷达中一个核心部件,需进行定期故障检查,检测信号种类多、数量大,且不能进行破坏性检测。为方便检测,考虑到实际应用中的检测要求,利用LabVIEW语言设计一个在工控机端运行的检测仪软件。结果表明,结合数据采集卡,采用状态机模型与生产者消费者设计模式,能有效构建模块,对部件的各项参数进行检测。使用检测仪软件,能方便、快捷地对各项数据进行检测,避免大量数据的人工检测,提高效率。

关键词:光电雷达;LabVIEW;状态机;生产者消费者循环

DOI:10.11907/rjdk.171504

中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2017)009-0117-03

Abstract:Electronic following component is one of the core components of the Photoelectric Radar, which needs the regular fault detection, it has large number and kinds of signals, and it can not be destructively detected. In order to detect and take the actual application requirements into account, we design a test software using LabVIEW in a industrial computer . The results show that, combining with the data acquisition card, using the state machine model and the producing consumer design model, it can effectively build modules and detect the parameters of the components. With the detector software, the data can be detected conveniently and quickly,avoiding large amounts of data detected by manual and improving the efficiency.

Key Words:photoelectric radar; LabVIEW; state machine; producer consumer cycle

0 引言

随动电子部件在飞机上主要用于探索、发现、截获和跟踪目标,且能测量目标距离[1],为攻击目标提供参考信息。随着对光电雷达安全可靠性要求提高,随动电子部件需要进行性能调试与测试。通过对电子部件响应结果进行测试与分析,以获得满足技术指标的随动电子部件。

检测仪中的工控机端通过ARINC通信板卡发送工作指令到随动系统,电子部件收到命令后,自身发出占空比可调的PWM信号控制模拟负载运动,而负载上对应的光电编码器将运动的角度信息以16位二进制形式发送回工控机。通过对反馈的角度信息进行处理和分析,对随动电子部件进行性能判断。此外,电子部件自身的信号参数通过NI采集卡获取,同样也是性能检测的一部分。

1 软件总体结构

随动电子部件检测仪软件流程见图1,主要有系统自检、角度数据发送、负载控制显示、数据采集等模块。

2 软件系统结构

2.1 消息队列状态机

电子部件需要在自检后进入以下7种工作状态:大区搜索、小区搜索、带扫描、不带扫描、场截获、场跟踪、垂直。以往采用顺序状态机中加入事件结构的形式,从初始化到用户操作再到关闭程序,很容易用顺序结构描述整个过程。但这种设计的缺陷是,一旦运行后,无法改变顺序结构的运行次序。比如在自检过程中,可以设置自检次数超过规定次数后终止程序,采用顺序状态,需要在每一帧中检测,降低了程序的執行速度。

多种状态可以用队列保存,如图2所示,使用消息队列处理器设计模型,连续运行多种状态。初始化状态消息入队列,通常只运行一次,进行软硬件的自检等,在消息出列时,将下一状态入队列。电子部件的7种工作状态对应7个按钮控件,每个按钮事件响应时将对应的状态入队列,执行完相应的子VI后,将消息出队列,继续等待用户事件。退出状态用于结束消息队列状态机,通常执行一些清理工作[2]。采用消息队列状态机,可以由用户选择不同的状态,保证了程序的健壮性。

2.2 生产者消费者设计模式

在单个工作状态中,APINC通信板卡接收回发数据、APINC429板卡发送角度数据、对数据进行分析绘图、对数据进行处理显示分别为一个线程。

对多线程进行处理,考虑到并发性,采用生产者消费者设计模式。从数据角度分类,生产者为数据的提供方,消费者为数据的消费方[3],对数据的处理绘图等线程都属于消费者,接受随动电子部件角度数据的线程为生产者。处理人机交互,在消费者线程中采用事件结构,将数据绘图线程响应时触发事件与数据处理显示时触发事件区分开,保证线程安全。

3 软件详细设计

3.1 系统自检

系统自检主要为软件的正常工作作准备,为对光电雷达进行全方面检测,使用APINC通信板卡、NI6259、NI6509数据采集卡。程序初始运行时,对硬件进行自检,避免由于硬件损坏导致程序错误。首先,对工控机中的APINC通信板卡进行检验,通过自发自收的方式,发送一段数据,检测接收的数据是否与发送的数据相同,从而验证429通讯的发送端与接收端能否正常工作。其次,对NI6259与NI6509进行自检,通过DAQmx自检函数调用,查看返回值(见图3),验证数据采集卡能否正常工作。endprint

3.2 角度数据发送

发送角度信息前,板卡进行复位操作,BOOL_stdcall ResetCard (HANDLE hCardHandle),清空发送FIFO队列。设置完波特率与配置字后,读取发送FIFO的状态,调用函数ReadFIFOStatus_S,当发送缓冲FIFO不为满时,APINC通信板卡以32位二进制的形式发送数据。发送角度信息时,方位俯仰角度信息先组合成一个簇,根据通信协议转化为二进制的形式发送[4]。

3.3 角度数据接收

由于随动部件回传角度数据速度较快,采用触发接收的方式处理数据。对板卡进行复位操作,调用Enable_Rev,使数据能接收。判断接收FIFO是否触发,调用IsFIFOTriggered_R,如果接收FIFO触发,调用EnableRead FIFO使FIFO缓冲中的数据可读,循环调用ReceiveData,连续读取数据。禁止读FIFO数据,调用DisableReadFIFO,进行下一次触发判定。

3.4 角度数据显示

接收16位二进制角度数据,解除通信板卡传输时产生的校验,逆向得到14位原数据。360度14位表示:α=360214×AD,数据是以度的形式表示的,为更精确表示角度,可通过取余得到分,同理再取余得到秒(见图4)。

3.5 角度数据分析处理绘图

每一个工作状态中存在运行的区间值,通过比较接收的角度大小可模拟工作区域范围,但其中存在过零问题。在工作区域经过零位时,由于回传的角度数据是14位二进制数,表示为0°-360°,而实际显示角度超过180°时需要转负,比较大小时,359°实际上相当于-1°,比358°(-2°)小,可能造成程序执行错误。需对角度进行标记,超过180°与180°以内的角度统一比较大小,方便程序执行。

小于180°的角度统一加上360°,所有角度在[180°,540°]之间比较大小,找到区间中的最大值与最小值,再进行角度数据复原,复原后的最小值与最大值之间的区域则为工作区间。

得到实时角度数据,在坐标中连续绘制,获得每种工作状态的实时轨迹。实际测试中,单点绘制轨迹时,由于运动速度过快,轨迹模糊不清,应采用多点组合绘制,即得到n个点的数据后再进行绘制,得到的轨迹比单点图更清晰。

3.6 数据采集

随动电子部件工作时的电压电流需要达到标准状态,其自身带有传感器,对应的物理量通过传感器以模拟信号的形式传递,接入对应的信号航插后,经过信号调理板处理,利用DAQmx与采集卡可以进行信号采集。工控机中插有NI6259、NI6509数据采集卡,NI6509可对数字信号进行处理,NI6259对数字信号与模拟信号均可采集。①数字信号测量时,打开DAQmx虚拟通道,创建一个数字输入通道,启动DAQmx开始任务,调用DAQmx读取函数[5],采用一通道N采样,读取通道中的采样,使用数字波形图控件显示;②模拟信号测量时,打开DAQmx虚拟通道,创建AI电压采集通道,设置采样时钟,启动DAQmx开始任务,调用DAQmx读取函数[6],采用一通道N采样,读取通道中的采样,使用波形图控件显示;③模拟信号采集时,不同于数字信号有高、低电平两种状态及自身独特的幅值和波形,为使采集到的信号能更接近原始信号,提高采样精度,需选择合适的采样频率。采样频率过低,可能造成信号混叠,采样频率过高,可能造成过采样[7]。根据采样定理与奈奎斯特定律,采样频率取原始信号最高频率的2.56~4倍[8],基本能保持原始信号的形状。随动电子部件中信号之间的频率并不相同,有些甚至在达几个数量级的差别,采集程序设计时,先使用示波器对每一个原始信号的频率进行测量,再将测得频率的4倍作为采样频率,利用条件结构输入采样时钟中。

4 结语

由于LabVIEW[9]图形化界面[10]的方式,可以实现更加直观地发出激励信号、采集数据、对数据进行处理、实时返回实验参数等功能,在不使用破坏性检测的情况下,使随动电子部件检测变得更简单有效。采用生产者消费者设计模式,使用狀态机消息队列,使得程序变得精简健壮,同时保证了线程安全。通过NI6259、NI6509采集卡与LabVIEW 相结合使用,使得数据的采集与处理变得高效、稳定。通过此次项目的开发,可以完成对光电雷达随动电子部件的全自动性能测试,准确度高、稳定性强。

参考文献:

[1] 陈强,周文哲,任鹏辉,等.某坦克炮长镜光学系统装调技术[J].应用光学,2013(2):235-238.

[2] 徐立翔.LabVIWE状态机的研究及在运动控制中的应用[D].武汉:湖北工业大学,2012.

[3] 陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2014.

[4] 谢其德,张云云.动态链接库在LabVIEW中的高级应用[J].微计算机信息,2001(10):45-46.

[5] 赵骁.电磁监测试验卫星高精度磁强计校准系统研究[D].南京:南京航空航天大学,2014.

[6] 李鹏.某型舵机传动机构性能测试台数据采集系统设计[D].武汉:武汉工程大学,2014.

[7] 张宇.修形弧齿锥齿轮的传动误差与振动分析[D].洛阳:河南科技大学,2009.

[8] 徐君军.基于虚拟仪器的静电监测系统研究[D].南京:南京航空航天大学,2012.

[9] 黄燕梅,韩庆瑶,伊淑梅.LabVIEW的虚拟仪器技术在自动化检测中的应用[J].中国测试技术,2005(1):37-38.

[10] 刘红娟,马飞,武楠.基于LabVIEW的菜单设计及其响应方法研究[J].仪器仪表用户,2008(4):116-117.

(责任编辑:何 丽)endprint

猜你喜欢

状态机
FPGA状态机综合可靠性探究 ①
基于有限状态机的交会对接飞行任务规划方法
基于Spring StateMachine的有限状态机应用研究
三段式状态机在单片机中的实现
基于单片机运行的多线程任务状态机
基于状态机比对的状态机推断方案
双口RAM读写正确性自动测试的有限状态机控制器设计方法
FPGA设计中状态机安全性研究
基于反熔丝FPGA的有限状态机加固设计
μC/OS 的层次式状态机在人机界面中的应用