APP下载

核电保护系统的仿真自动测试系统设计

2018-10-25何进松

自动化仪表 2018年10期
关键词:自动测试脚本控件

蒋 磊,何进松

(1.国核自仪系统工程有限公司,上海 200241;2.上海电子信息职业技术学院通信学院,上海 201411)

0 引言

随着近年来计算机、控制和通信技术的不断发展,核电站由传统的模拟仪表控制逐渐向数字化仪控系统转变。目前,我国核电站数字化仪控系统处在发展阶段,已经投运的田湾核电站采用安全仪控系统(teleperm-XS,TXS)和分散控制系统(teleperm-XP,TXP)数字化仪表与控制(instruments & control,I&C)系统,三门核电站采用的是美国西屋公司的Common Q和 Ovation 数字化系统[1]。

核电项目对数字化仪控系统提出了更高的测试要求,而自主化的半实物仿真验证自动测试技术则少之又少。系统测试验证是核电行业的一个重要的综合性测试要求,而仿真验证技术水平已成为严重制约设计验证的重要因素[2]。针对核电站保护系统的高稳定性和可靠性要求[3],仿真验证测试已成为广大科研技术人员高度重视和深入探讨的课题。

1 研究内容

仿真自动测试系统设计以三代核电保护系统样机为仿真验证对象,模拟样机所需的现场工况[4]。硬件基于面向仪器系统的外设部件互联扩展(peripheral conponent interconnect extensions for instrumentation,PXI)平台的模块化产品;软件基于LabVIEW的生产者消费者架构程序设计,并结合MATLAB仿真。系统整体设计包括硬件设备选型、系统搭建、仿真自动测试软件开发、信号处理、自动测试报表和数据处理等。

保护系统样机采用基于现场可编程门阵列(field programmable gate array,FPGA)技术平台,实现了保护系统典型功能。主要功能包括:信号采样处理、定值比较逻辑、数据通信、停堆、设备驱动、故障报警等。

样机由1个9 unit高度的机箱(装载通用逻辑模块处理单元)、1个机柜以及电气配件组成。机箱配置了12块通用逻辑模块,每个模块根据下装的不同可编程逻辑代码实现不同功能。利用通用逻辑模块和背板,将信号处理、定值比较逻辑的流量、液位和压力、转速传感器信号分配给各个通用逻辑模块。机箱的3个模块处理单元用于检测模拟信号;2个模块用于检测开关量信号;1个模块用于处理脉冲信号;1个模块用于输出模拟量信号,以控制调节阀和泵;3个模块用于输出离散数字信号驱动电磁阀。机箱内2个模块共计6路RS-422/RS-485通信端口接收本机箱其他模块产生的过程量,并发送给上位机操作站和自动测试系统监测;通信通道为冗余配置。

2 仿真自动测试系统总体设计

该系统硬件采用基于PXI平台的模块化产品;软件程序设计基于LabVIEW的“生产者-消费者”架构,并结合MATLAB仿真。系统采用RS-422/RS-485串口通信的方式进行连接和控制;利用MATLAB搭建仿真工况模型[5],并将其封装为DLL文件;通过虚拟仪器技术开发软件,实现模型运行和测试资源的统一调度。

系统仿真测试资源主要为PXI平台测试资源。系统利用PXI-8431模拟不同速率的RS-422/RS-485串口通信信号。PXI-6289多功能数据采集卡实现通信信号的采集和低频信号模拟,PXI-6704模拟量输出卡模拟电压和电流信号、PXI-6341实现数字I/O功能,同时可控制二级大功率负载和继电器板的输出和关闭。

3 软件框架设计

软件采用国家仪器(national instrumments,NI)公司的LabVIEW软件开发平台进行开发[6]。软件设计架构以基于队列方式的多线程技术为基础,根据不同软件需求设计上位机软件模块,采用分层管理方式,实现系统软件的高效和高稳定性[7]。系统软件包括图形用户界面(graphical user interface,GUI)主程序、系统管理模块、硬件管理模块、仿真验证模块、自动测试管理模块,共同实现系统管理、仿真验证、静态激励和数据采集、自动测试。软件设计架构如图1所示。

图1 软件设计架构图Fig.1 Architecture of software design

该软件基于“生产者-消费者(Producer-Consumer)”队列的设计架构,由主线程和若干个子线程组成。主线程通过队列命令,向各个子线程发送命令或更新参数;各个线程独立运行,实现了测试的并行运行。该软件各模块介绍如下。

①人机操作界面。其主要提供用户账户管理、操作菜单、按钮,实现静态激励和数据采集、数据显示、仿真模型运行状态显示、自动测试执行状态和结果显示。

②系统管理线程。该线程为软件运行的主线程,主要包括系统配置、用户管理、测试脚本和测试报表的管理、系统自检。各个功能可独立运行[8]。

③硬件管理线程。该线程为测试资源的管理和调度部分,主要包括硬件设备管理线程,测试资源分配线程和硬件执行线程。各个线程可独立运行。

④仿真验证线程。该线程为测试软件的核心线程,主要运行仿真模型。以队列方式,将被测样机驱动信号和配置信息导入模型Imports端;模型运算后,将Outports端工程量数据转换为数字量信号,驱动PXI硬件资源输出信号至被测样机的采集单元。该线程在后台采用定时方式运行,执行完整的仿真功能。

⑤自动测试线程。该线程执行系统的自动测试功能,可根据不同脚本执行不同类型的功能测试,主要包括脚本导入、脚本解析、调动硬件资源执行测试、数据采集、数据分析、定值比较并生成测试报表。

4 软件设计

软件设计包括GUI主程序设计、仿真功能设计、自动测试功能设计和其他功能设计。

①GUI主程序设计。

GUI主程序采用基于Producer-Customer模式架构,Producer循环和 Customer循环并行运行。Producer循环内的事件结构响应来自GUI面板的按键或者操作,根据命令将对应的事件编码插入队列。Customer循环不断从队列内读取事件编码请求,根据编码索引到对应事件,执行相应的功能,如直接处理请求或者将命令下发到对应的子线程。GUI主程序如图2所示。

图2 GUI主程序框图Fig.2 Block diagram of GUI main program

子线程在后台独立运行,等待GUI主程序发送的请求命令。通过设置刷新时间,控制子线程执行新请求的时间间隔。

②仿真功能设计。

仿真单元主程序如图3所示。仿真自动测试系统在仿真功能单元,主要模拟保护样机的被控对象。仿真单元将被控对象的初始化参数以及来自保护样机的控制命令和驱动信号,作为模型的导入数据,用于定时循环1中MATLAB仿真模型运行[9]。导入数据通过硬件驱动线程的采集的信号进入队列。定时循环2不断从队列获取更新的导入数据,通过并行运行的定时循环1更新到模型运行中,实现模型的持续运行。定时循环1中模型的导出数据,经过工程量与数字量的转换后,从仿真子线程将导出数据更新到GUI主程序。GUI主程序将命令转发到硬件管理线程,硬件管理线程通过驱动系统测试资源,从而输出与现场传感器或其他被控设备一致的模拟信号。

图3 仿真单元主程序框图Fig.3 Block diagram of simulation unit main program

③自动测试功能设计。

测试脚本解析程序如图4所示。

图4 测试脚本解析程序框图Fig.4 Block diagram of test script resolving program

自动测试功能从本地磁盘路径中导入测试脚本文件,通过图4中的获取测试脚本数据函数实现脚本文件到二维字符串数组的转换。然后,根据脚本编制规则进行解析,将脚本文件转换为测试软件可以执行的测试用例。脚本数据通过While循环中的移位寄存器功能更新到临时簇变量中。在GUI主程序框图中的任何一个事件内,均可以调用测试脚本文件内的数据,并将脚本文件的测试配置数据发送到对应线程进行处理。根据测试脚本要求,可以并行或串行处理测试,从而提高自动测试效率。

④其他功能设计。

在完成主程序、仿真线程、自动化测试功能、硬件管理线程的详细设计后,对系统的路径、变量、输入控件、显示控件进行初始化,并对自定义菜单、用户管理、动态调用、长期运行监控、测试报表生成等功能进行设计。

5 人机界面设计

人机界面的设计原则为:①操作简单,易掌握;②界面美观,风格一致;③快速反应,响应正确;④用语通俗,语义一致。

根据设计原则对软件功能进行分组,在虚拟仪器的前面板创建选型卡,并分成4个操作和显示页面:静态模拟页面、自动化测试页面、反馈显示页面、仿真功能页面。

静态模拟页面依据被控对象的原理建立输入/输出控件,并根据虚拟仪器程序框图内的生产者循环响应用户界面的控件动作和输入。该界面主要用于实现研发的Debug调试功能。

自动化测试页面用于设计脚本输入对话框、当前测试运行状态、测试结果和数据表格等控件。控件用于表达测试状态和执行自动化测试功能,用户可以通过调用不同测试脚本,执行不同的测试功能;也可以在仿真模型后台运行的情况下插入脚本事件进行自动化的压力仿真测试,完成测试后将测试报表自动保存到本地,并上传到数据库。

反馈显示页面用于设计信号显示控件,显示静态监控被测系统的状态信号以及驱动信号等。

仿真功能页面用于设计模型的初始化参数显示控件、输入参数显示控件、输出参数显示控件,实现模型运行状态和参数动态监测。

完成界面设计后,对界面的动作、输入、输出、显示等控件与程序框图建立关联,响应界面的操作,参照设计原则进行界面的调整和优化、功能的验证与确认[10]。

6 结束语

本文通过阐述系统的总体设计、软件框架、详细设计、人机界面设计,形成了一套完整的仿真测试系统设计方法。该设计充分利用MATLAB仿真,结合虚拟仪器技术,实现了仿真系统与保护系统的半实物仿真,并对保护系统进行了充分全面的验证。该设计具有仿真程度和自动化程度高、功能全面、扩展性强等优点,如能扩展被仿对象的建模范围,即可实现对核电站其他仪控系统的验证与测试。该设计也可应用到其他高可靠性需求行业,如化工、国防,具有较高的工程应用价值。

猜你喜欢

自动测试脚本控件
酒驾
安奇奇与小cool 龙(第二回)
基于.net的用户定义验证控件的应用分析
JXG-50S型相敏轨道电路接收器自动测试台
关于.net控件数组的探讨
关于某型雷达自动测试系统的几点认识和建议
快乐假期
小编的新年愿望
基于ATE与BIT组合的NAMP自动测试与故障诊断系统设计
一种卫星低频接口自动测试系统