三维闪电探测仪状态检测监控系统设计与实现
2022-03-05徐海富
李 力,陈 星,李 俊,徐海富
(1.湖北省气象信息与技术保障中心,武汉430074;2.宜昌市气象局,宜昌443000)
检测二维闪电探测仪状态的传统方法是使用串口调试助手或者网络调试助手。前者先用串口线将设备与电脑连接,再用客户端的串口调试助手程序发送相应命令,通过返回信息来判断探测仪核心部件的工作状态。此种方法需要技术人员携带工具抵达设备现场,在调试程序中设置串口、波特率、校验位等一系列正确信息后才能接收到对应的返回值,检测不便且效率较低。后者在客户端软件输入需要测试的探测仪IP 地址和端口号,再将软件所在电脑的IP 地址写入探测仪通信模块中,通过TCP或UDP 协议建立网络通信。此种方法每次检测探测仪状态都需要配置单一站点的IP 地址和端口号等信息,查询、操作较为繁琐[1]。
三维闪电探测仪使用时差定位法接收云闪、云地闪辐射的闪电回击脉冲信号,可以解算闪电辐射源的时间、位置、高度、强度、极性等重要参数信息,三维闪电探测系统接收处理的数据量相比二维闪电探测系统增加数倍,定位算法和状态监控设计更加复杂[2-5]。针对传统二维闪电探测仪繁杂、低效的状态检测方式和功能简单的状态监控系统,使用C/S 架构与C++ builder 编程开发三维闪电探测仪状态检测监控系统。本文重点阐明系统架构、程序结构、功能模块的设计应用,结合湖北省三维闪电探测系统的实际运行状态,期望实现设计合理、功能齐备、信息及时、友好直观、移植方便的三维闪电探测仪状态检测监控系统。
1 检测监控系统
状态检测监控系统是三维闪电探测仪的核心组成部分,可以直接用于判断探测仪的性能与状态。状态检测监控在设计时充分考虑了系统的可移植性、处理速度和可靠性等要求,基于可编程逻辑器件和嵌入式处理器内核,综合运用多中断处理、并行处理和多任务协同等信息处理技术来进行架构设计与开发[6-7]。
1.1 系统功能需求
根据三维闪电的探测任务需求和相关技术设计,系统要实现的基本功能有:读取GPS 信息与精确时钟;测量闪电回击波形的参量,并实时发送探测数据;接收外部指令,根据指令执行相应操作后,再返回信息;必要的自检、维修与测试功能。
1.2 系统架构设计
状态检测监控系统软件主要包括系统初始化、系统运行、波形判别、本地时钟、GPS 授时、状态管理、自检、通信单元等功能模块,系统的软件结构如图1所示。
图1 系统软件结构Fig.1 System software structure
系统初始化的主要功能是完成系统启动和各功能单元初始化设定。初始化程序包括检测外部RAM,接收GPS 信息,校对本地时钟,计算A/D 转换补偿误差,复位及维修程序的选择处理,系统初始化程序的结构框图如图2所示。
图2 系统初始化结构框图Fig.2 System initialization block diagram
自检模块的主要功能是确定系统各个单元能否正常工作。模块结构主要包括测量10 MHz 晶振频率,GPS 信息检测,校对本地时钟,校正A/D 转换误差,发送测试闪,计算测试闪的电场与磁场值,计算增益系数、通道系数和平均校正系数值,系统自检模块的细分结构如图3所示。
图3 系统自检模块结构框图Fig.3 Block diagram of system self-checking module
系统运行模块负责各个功能单元的协调和中断处理,起到任务调配作用,是软件设计的主要控制部分。系统运行包括发送状态信息、闪数据帧、中心站命令处理、中断程序处理、计算A/D 转换误差补偿和控制A/D 采集,其细分结构如图4所示。
图4 系统运行结构框图Fig.4 Block diagram of system operation structure
NIOS II 处理器作为一款Altera 公司开发的嵌入式软核,可以根据任务需求进行设计裁剪和资源管理。闪电定位探测系统基于NIOS II 处理器研发,系统的软件处理架构如图5所示,图中上位机与GPS 的通信方式均采用串口协议实现[8-10]。
图5 系统软件处理架构Fig.5 System software processing architecture
2 程序结构设计
2.1 程序结构划分
三维闪电探测仪状态检测监控系统程序的基本组成分为初始化程序、自检程序、主程序以及相关中断程序。初始化程序用于实现整个系统的硬件与软件部分设置初始及中断状态,分层调整模数转换器等功能。自检程序用来对整个系统的工作状态进行自检,以确定系统是否正常运行,并由软件计算出硬件随时间或温度等因素变化而引起的漂移补偿值。自检通过以后的程序称为主程序段,它是一个以时间为标志对不同物理量或任务进行处理的循环程序。主程序段需要处理探测仪的回击数据,并按不同格式发送回击数据,还需要定时处理命令、自诊断、状态等信息[11]。系统的主要中断程序包括:
(1)闪电信号中断处理程序:用于接收并处理闪电事件。
(2)时钟中断处理程序:三维闪电探测仪所处理的某些数据与时刻之间关系极为密切,需要准确的时间信息协同判断处理这些数据,此过程在时钟中断程序里完成。
(3)串口中断处理程序:用于接收指令,并输出指令结果、闪数据、状态信息等。
(4)过阈值率中断处理程序:过阈值率是闪数据处理中用来判别背景噪声大小的参量,程序需要将此参量记录下来。
(5)GPS 中断程序:用于接收GPS 信号传送的经纬度和时间等信息。
2.2 初始化程序设计
系统初始化是程序的起始部分,在三维闪电探测仪上电或复位后开始执行,程序的主要设计内容为对各公共变量赋初值、开启相关中断、检测GPS接收机工作状态、读取拨码开关信息、一定时间范围内将定时器清零。初始化程序首先完成以下功能:读取拨码开关信息;向CPU 板上5 个指示灯发送灭灯信号;检测是否进入维修功能;检测GPS 状态并校准时间;读取CPU 板的模数转换结果,以便模数转换器准备下一次转换;根据DIP 开关,设置波特率和阈值;设置开启串口、回击数据、秒、小时、阈值等相关中断;进行自检测试[12-13]。
2.3 自检程序设计
初始化程序的最后部分、时钟的每个整点时刻和设备执行SELFTEST 命令3 种情况,三维闪电探测仪都会执行过程相同的自检任务。自检程序的功能:①检测探测仪工作状况,并将检测结果作为状态信息定时发往数据中心站,使用户通过中心站可以随时了解探测仪的设备状态;②统计各种探测数据和采集通道的自检结果,计算各通道的增益、零点漂移偏差等数据,进行采集数据校正。自检程序的主要内容如下:
(1)测量探测仪的舱内温度、GPS 状态(经度、纬度、几何精度因子)、阈值设定值、阈值反读值、晶振频率、每秒过阈值噪声率等基本运行参数。
(2)校正A/D 转换的变换误差。
(3)测量与校正各个通道(南北磁场、东西磁场、电场)的探测数据。
将测得的自检参数按照要求存入指定寄存器,以便后续数据校正使用,通过参数校正可以保证较高的数据处理精度。根据探测仪完成自检后的结果来驱动设备上5 个状态指示灯,可以显示对应的设备状态,同时向数据中心站发送主要状态参数,系统的自检流程如图6所示。
图6 系统自检流程Fig.6 System self-check flow chart
2.4 主程序设计
三维闪电探测仪自检程序通过之后,系统运行进入主程序部分,主程序的任务是响应各类中断请求。主程序设计的中断处理包括:回击数据处理中断、CPU 串口通讯中断、GPS 1 PPS 中断、小时自检中断、过阈值中断。此外,主程序还需要定时向外部发送探测仪状态信息和回击数据信息,响应并处理串口命令,其设计流程如图7所示。
图7 主程序流程Fig.7 Main program flow chart
2.5 中断程序设计
本地时钟中断是通过GPS 授时给本地时钟所产生的精确时钟中断信号,主程序通过被精确授时的小时中断信号进行每小时自检和误差修正。当探测仪上电启动或者运行自检程序时,系统需要进行GPS 授时,此时GPS 信号通过中断接入主程序。串口中断主要功能是完成设备和上位机之间数据的双向通信。过阈值中断用来判断当前接收的闪电信号是否真实有效。由于一次闪电一般含有多次回击数据,回击信号之间的时间间隔大多为20~200 ms。在雷暴最频繁的时段,回击信号间的时间间隔仅仅几毫秒。因此,若要及时处理每一个回击数据,其程序设计方法为在回击中断服务程序中,将从ADC 读取的磁场、电场模拟量转换结果和回击信号波形特征点的到达时刻不加处理地保存于内存区,直到退出中断服务程序再作处理;退出中断服务程序以后,查询系统主程序中是否有回击中断,若有则将结果数据打包成数据帧发往中心站,闪电回击数据中断服务处理流程如图8所示。
图8 回击数据中断处理流程Fig.8 Flow chart of data interruption processing
3 系统功能应用
针对本文所述的三维闪电探测仪状态检测监控系统,使用C/S 架构和C++ builder 设计开发了操作简便、友好直观、面向用户的闪电探测仪状态检测监控界面以及检测探测仪程序子界面,与数据接收处理、探测仪检测与控制、查看与设置系统配置、数据查询与回放、闪电回击数据重定位等子系统所构成的省级三维闪电探测系统进行数据关联,实现了软件系统状态检测、状态监控及其它功能模块集成应用,验证了前述程序设计开发的可行性,以下是三维闪电探测仪状态检测监控系统的典型功能子界面。
3.1 系统自检功能
三维闪电探测仪具备从天线到输出端口的全自检功能。在检测探测仪程序子界面中选择待检测的探测站点,再设置最大响应延迟时间,当发送SELFTEST 指令后,程序开始运行系统自检功能,并在最大响应延迟时间内显示设备的自检结果,检测探测仪程序运行系统自检功能的操作和结果如图9所示。
图9 程序运行自检功能Fig.9 Program running self-check function
检测探测仪程序准备检测宜昌站三维闪电探测仪时,选择或键入SELFTEST 指令,在发送指令后最长30 s 的响应延迟时间内,程序会反馈宜昌站的设备自检结果。
3.2 系统状态检测
检测探测仪程序可自动输出三维闪电设备核心部件的工作参数,实现核心部件故障自动报警。发送STATUS 指令后程序运行状态检测功能,在最大响应延迟时间内返回设备的状态检测结果,系统状态检测功能的操作和结果如图10所示。
图10 程序检测探测仪状态Fig.10 Program detection detector status
在程序界面中选择或键入STATUS 指令,最长30 s 的响应延迟时间内,界面会显示所选站点探测仪当前的核心部件工作参数。
3.3 系统状态监控
将三维闪电探测仪状态检测监控系统部署于省级平台,系统通过接收站点的状态数据,可以判断当前探测仪状态,并使用交互界面进行设备的状态监控,如图11所示。
图11 系统监控探测仪状态Fig.11 System monitoring detector status
系统以场景方式展示与其它功能的交互状态。探测站名称、IP 地址、端口号、状态数据、云地回击、云间回击等信息显示于界面左侧,设备用绿色与灰色区分,表示系统状态正常与异常。站名、地理位置、最近一次自检开始时间、自检通过标志、当前阈值、当前阈值平均通过率、自检开始时GPS 误差值、10 MHz 恒温槽石英晶振频率值的偏差等实时信息显示于界面右侧。
4 结语
本文针对三维闪电探测系统接收处理的数据量相比二维闪电探测系统增加数倍,定位算法和状态监控设计更加复杂,以及传统二维闪电探测仪繁杂、低效的状态检测方式等问题,开发了三维闪电探测仪状态检测监控系统。系统设计了检测探测仪程序,可以直接判断探测仪性能与状态,实现从天线到输出端口的全自检功能;还设计了闪电探测仪状态检测监控界面和检测探测仪程序子界面,根据接收的状态数据判断当前探测仪状态,应用场景方式展示与其它功能的交互情况,提供人机互动界面进行状态监控。同时结合湖北省三维闪电探测网搭建实验平台,进行系统功能和程序运行测试,验证本文设计开发方法的适用性与稳定性,结果表明:状态检测监控系统程序设计清晰合理、状态检测及时便捷、状态监控信息完整、系统功能全面完善、操作界面友好直观,满足三维闪电探测仪状态检测监控的实际需求,对其它种类探测设备状态检测监控系统的设计研发提供了重要借鉴意义。