一种多网络协议的并行测试装置及测试方法

文档序号:7995954阅读:169来源:国知局
一种多网络协议的并行测试装置及测试方法
【专利摘要】本发明公开了一种多网络协议的并行测试装置及测试方法,包括在线运行部分和离线部分,在线运行部分由依次连接的客户端模块,服务器,检测器模块组成,离线部分即为离线组态工具模块;客户端模块提供实时交互界面,通过网络查询位于服务器的历史转存模块的日志、报文和事件并显示;服务器由通信代理模块和历史转存模块组成,通信代理模块将来自检测器的测点转换为citect要求的数据格式供其使用,同时,将日志、报文和事件通过自定义协议提交给历史转存模块;检测器模块将被测对象的原始报文或者经过检测器处理的测点、日志和事件通过自定义协议发送给服务器,并接收来自服务器通信代理模块命令;离线组态工具模块组态工具包括组态模块和编译模块两部分。
【专利说明】一种多网络协议的并行测试装置及测试方法
【技术领域】
[0001]本发明属于通讯测试领域,具体涉及一种多网络协议的并行测试装置及测试方法,应用于核安全级DCS出厂测试,也可用于部分的集成测试。
【背景技术】
[0002]常见的以太网测试工具有很多,比如:ethereal、sniffer。这些产品一般都是基于符合IEC802.3的链路层,集成了常见的网络协议如:TCP、IP、UDP等。利用这些工具,既可以测试以太网帧是否满足标准协议,又可以方便协议调试。以ethereal为例,ethereal是免费使用的、可以接收和发送基于IEC802.3的以太网报文。ethereal的内核是winpcap (windows packet capture),通过winpcap提供的访问网络底层的接口实现以太网报文的捕获、分析和发送。
[0003]在工业仪控行业中,系统内部存在多种通信协议,这些协议的链路层和物理层大多通过硬件实现,协议应用层由软件实现。工控行业中的通信实时性、稳定性要求较高,复杂度相对较低,各仪控系统厂家一般根据自身需要定制协议,不同的厂家,协议格式不同,市场上没有现成的测试装置支持常见厂家的通信协议。在一些安全性级别要求较高的场合,仪控系统的安全保密要求相对较高,厂家定制的通信协议更是不外泄,市场上的协议测试/模拟装置将不能直接应用,需经过二次开发。
[0004]Ethereal开源免费的以太网测试/模拟工具,可捕获和探测基于以太网的数据帧,用户可根据需要填充帧格式发送报文,捕获符合要求的以太网帧。可模拟/测试任何基于以太网的通信协议。
[0005]现有技术存在如下缺点:
[0006]实时性不高,如Ethereal,由于其工作在windows或Iinux上,实时性一般为几毫秒至十几毫秒。当测试多个协议时,各协议间缺少关联,需要投入大量的工作进行二次开发。

【发明内容】

[0007]本发明的目的是提供一种实时性较高的多网络协议的并行测试装置及测试方法。
[0008]本发明的另一目的是提供一种模块化设计易于二次开发的多网络协议的并行测试装置及测试方法。
[0009]为达到以上目的本发明采用的技术方案为:一种多网络协议的并行测试装置,包括在线运行部分和离线部分,在线运行部分由依次连接的客户端模块,服务器,检测器模块组成,离线部分即为离线组态工具模块;
[0010]所述客户端模块提供实时交互界面,通过网络查询位于服务器的历史转存模块的日志、报文和事件并显示;
[0011 ] 所述服务器由通信代理模块和历史转存模块组成,通信代理模块将来自检测器的测点转换为Citect要求的数据格式供其使用,同时,将日志、报文和事件通过自定义协议提交给历史转存模块;
[0012]所述检测器模块将被测对象的原始报文或者经过检测器处理的测点、日志和事件通过自定义协议发送给服务器,并接收来自服务器通信代理模块的命令;
[0013]所述离线组态工具模块组态工具包括组态模块和编译模块两部分。
[0014]所述服务器又由下装模块、测试执行模块与数据贮存模块三个部分组成,所述下装模块和测试执行模块属于通信代理模块,所述历史转存模块即为数据贮存模块,所述三个部分可分别独立运行。
[0015]所述的检测器模块由固化在检测器内部的引导模、下装模块和测试执行模块组成;引导模块完成检测器的初始化即中断、堆栈;下装模块完成下装并依次完成与服务器建立下装链接、接受下装内容概要信息、设置检测器下装数据存贮空间、获取下装数据、校验并反馈下装结果。
[0016]所述的测试执行模块按照功能分为初始化模块和周期运行模块两个部分,在初始化模块中,检测器将初始化本次测试必须的内存、时间片、外设;周期运行模块按顺序完成服务器通信处理,接收并存贮被测对象数据、用户设备逻辑处理、用户时间逻辑处理、检测器自维护五个部分。
[0017]所述的测试执行模块按照代码来源划分为框架代码、应用功能代码和用户配置代码;框架代码提供一个通用的测试工具框架,完成服务器通信处理,接收并存贮被测对象数据、永华设备逻辑处理、用户时间逻辑处理、检测器自维护功能。
[0018]所述的下装模块接收来自离线组态工具的下装指令,通过网络文件系统,将离线工具生成的prj文件和可执行文件拷贝到本地,解析prj文件,执行下装操作。
[0019]所述的测试执行模块与数据存贮模块完成处理检测器通信、检测器数据转换、用户逻辑处理、历史数据存贮四部分功能。
[0020]所述的处理检测器通信由管理线程、发送请求线程、接收响应线程和下行数据分发线程组成。
[0021]所述的组态模块将用户的配置数据和逻辑翻译成C语言文件和供服务器使用的、含有DBF、0ID、设备表信息的prj类型的配置文件;所述的编译模块将组态模块生成的C语言文件、功能库中相关应用程序和平台软件混合编译成可执行文件。
[0022]一种多网络协议的并行测试装置的测试方法,其特征在于:包括如下步骤:
[0023](I)离线组态工具将用户配置的数据和逻辑首先转换为C语言,并结合用户从功能库中抽取的应用功能程序与平台程序一起编译成可执行文件,并通过下装模块将可执行文件下装到检测器;
[0024](2)检测器将被检测多想原始报文或者经过检测器处理的测点、日志和事件通过自定义协议发送给服务器,并接收来自服务器通信代理模块的命令;
[0025](3)通信代理模块将来自检测器的测点转换为citect要求的数据格式供其使用,同时将日志。报文和事件通过自定义协议提交给历史转存模块;
[0026](4)客户端通过网络查询位于服务器的历史转存模块的日志、报文和事件并显示。
[0027]本发明的一种多网络协议的并行测试装置及测试方法,实时性较高,运用模块化设计,易于二次开发。【专利附图】

【附图说明】
[0028]图1、本发明的测试装置的构成示意图;
[0029]图2、本发明的测试装置的功能示意图;
[0030]图3、本发明的组态工具内部各模块之间以及组态模块与服务器之间的数据流向示意图;
[0031]图4、组态模块三部分之间关系示意图;
[0032]图5、检测器三个模块组成的关系示意图;
[0033]图6、初始化程序结构示意图;
[0034]图7、周期运行模块程序流程图;
[0035]图8、本发明的代码构成及各部分代码功能示意图;
[0036]图9、下装模块流程示意图;
[0037]图10、服务器下装流程图;
[0038]图11、测试执行模块与数据存贮模块之间的流程图;
[0039]图12、测试执行模块与数据存贮模块之间的数据流向图;
【具体实施方式】
[0040]下面结合附图对本发明的一种多网络协议并行测试装置及测试方法进行详细描述:一种多网络协议的并行测试装置,包括在线运行部分和离线部分,在线运行部分由依次连接的客户端模块,服务器,检测器模块组成,离线部分即为离线组态工具模块;
[0041]客户端模块提供实时交互界面,通过网络查询位于服务器的历史转存模块的日志、报文和事件并显示;
[0042]服务器由通信代理模块和历史转存模块组成,通信代理模块将来自检测器的测点转换为citect要求的数据格式供其使用,同时,将日志、报文和事件通过自定义协议提交给历史转存模块;
[0043]检测器模块将被测对象的原始报文或者经过检测器处理的测点、日志和事件通过自定义协议发送给服务器,并接收来自服务器通信代理模块的命令;
[0044]离线组态工具模块组态工具包括组态模块和编译模块两部分。
[0045]服务器又由下装模块、测试执行模块与数据贮存模块三个部分组成,所述下装模块和测试执行模块属于通信代理模块,所述历史转存模块即为数据贮存模块,所述三个部分可分别独立运行。
[0046]检测器模块由固化在检测器内部的引导模、下装模块和测试执行模块组成;引导模块完成检测器的初始化即中断、堆栈;下装模块完成下装并依次完成与服务器建立下装链接、接受下装内容概要信息、设置检测器下装数据存贮空间、获取下装数据、校验并反馈下装结果。
[0047]测试执行模块按照功能分为初始化模块和周期运行模块两个部分,在初始化模块中,检测器将初始化本次测试必须的内存、时间片、外设;周期运行模块按顺序完成服务器通信处理,接收并存贮被测对象数据、用户设备逻辑处理、用户时间逻辑处理、检测器自维护五个部分。
[0048]测试执行模块按照代码来源划分为框架代码、应用功能代码和用户配置代码;框架代码提供一个通用的测试工具框架,完成服务器通信处理,接收并存贮被测对象数据、永华设备逻辑处理、用户时间逻辑处理、检测器自维护功能。
[0049]下装模块接收来自离线组态工具的下装指令,通过网络文件系统,将离线工具生成的prj文件和可执行文件拷贝到本地,解析prj文件,执行下装操作。
[0050]测试执行模块与数据存贮模块完成处理检测器通信、检测器数据转换、用户逻辑处理、历史数据存贮四部分功能。
[0051]处理检测器通信由管理线程、发送请求线程、接收响应线程和下行数据分发线程组成。
[0052]组态模块将用户的配置数据和逻辑翻译成C语言文件和供服务器使用的、含有DBF、0ID、设备表信息的prj类型的配置文件;所述的编译模块将组态模块生成的C语言文件、功能库中相关应用程序和平台软件混合编译成可执行文件。
[0053]一种多网络协议的并行测试装置的测试方法,包括如下步骤:
[0054](I)离线组态工具将用户配置的数据和逻辑首先转换为C语言,并结合用户从功能库中抽取的应用功能程序与平台程序一起编译成可执行文件,并通过下装模块将可执行文件下装到检测器;
[0055](2)检测器将被检测多想原始报文或者经过检测器处理的测点、日志和事件通过自定义协议发送给服务器,并接收来自服务器通信代理模块的命令;
[0056](3)通信代理模块将来自检测器的测点转换为citect要求的数据格式供其使用,同时将日志。报文和事件通过自定义协议提交给历史转存模块;
[0057](4)客户端通过网络查询位于服务器的历史转存模块的日志、报文和事件并显示。
[0058]下面对本发明进行详细描述:本发明的整体架构:
[0059]本测试装置分为在线运行和离线组态工具两部分,用户根据需要,配置数据和测试逻辑,编译下装后由在线部分执行。其构成部分如图1所示。
[0060]在线运行部分包括:测试监控HM1、测试服务器、检测器。对其中任何一个部分,根据该部分的构造点不同,又可以细分为三个构成块:平台程序、应用开发程序、用户配置数据。
[0061]平台程序:提供一个通用的测试工具框架,该框架支持常规的测试监控、并支持外挂测试逻辑、支持外挂测试通信协议;
[0062]应用开发程序:根据专用工具需求,实现测试逻辑中可用功能单元、实现外挂测试通信协议中可用的功能单元;
[0063]用户配置数据:配置测试设备的结构,以及测试执行过程。在测试执行过程配置中,将功能单元挂接到平台框架中。
[0064]离线部分包括:组态工具。
[0065]整个测试装置的功能框图如图2所示。
[0066]离线组态工具将用户配置数据和逻辑首先转换为C语言,并结合用户从功能库中抽取的应用功能程序与平台程序一起编译成可执行文件,并通过下装模块将可执行文件下装到检测器.[0067]检测器将被测对象原始报文或者经过检测器处理的测点、日志和事件通过自定义协议发送给服务器,并接收来自服务器通信代理模块(以下简称“通信代理”)的命令;通信代理将来自检测器的测点转换为citect要求的数据格式供其使用,同时,将日志、报文和事件通过自定义协议提交给历史转存模块;客户端通过网络查询位于服务器的历史转存模块的日志、报文和事件并显示。
[0068]组态工具
[0069]组态工具包括组态模块和编译模块两部分:a)组态模块将用户的配置数据和逻辑翻译成C语言文件和供服务器使用的、含有DBF、0ID、设备表等信息的prj类型的配置文件;b)编译模块将组态模块生成的C语言文件、功能库中相关应用程序和平台软件混合编译成可执行文件。组态工具内部各模块之间以及组态模块与服务器之间的数据流向如图3所示:
[0070]组态模块包括设备组态、测点组态和逻辑组态三部分,之间关系如图4所示。
[0071]设备组态用来描述测试设备与被测对象之间的对应关系,如1#检测器用来测试被测对象1# ;测点组态用来描述测试数据,例如测试协议报文帧格式及测点类型等;逻辑组态用来组织测试活动,用户通过逻辑组态界面(流程图)组织测试过程。
[0072]设备组态
[0073]通过设备组态将整个测试工程的所有的检测器中所有使用到的外设接口编号,并在逻辑上统一编号,确定接口与被测对象交互遵循的协议类型。组态工具将这些信息生成C语言格式的数据,数 据结构如下所示:
[0074]

typedef struct {

uintl6_t type; /* 逻辑接口类型 *1
uintl6_t physn; /* 物理接口序号 */
const char* name; /* 逻辑接口名称 */

} if_t:
[0075]测点组态
[0076]通过测点组态描述测点和测试协议报文。测点既包括常见的C语言格式的变量类型,又包括供测试协议使用 的复合数据类型,在生成代码时,将复合类型的变量拆分成C语言格式的变量类型,并确定这些测点在报文中的位置。生成的数据结构如下图所示:
[0077]#define_TAG_U16(mbi, offset)\
[0078](* (uintl6_t*)(&(mbs[mbi].phead->data[offset])))
[0079]其中mbs是测试协议报文的首地址,mbi是相对首地址的偏移。
[0080]逻辑组态
[0081]编译模块
[0082]组态工具调用编译器,将平台程序、组态工具生成的胶水代码和应用库相关程序混合编译,生成可执行文件。
[0083]检测器
[0084]检测器主要由引导、下装和测试执行三个模块组成,关系如图5所示。
[0085]检测器上电后,执行引导模块,判断检测器运行标志以决定执行下装或是测试逻辑。[0086]引导模块
[0087]引导模块固化在检测器内部,主要完成检测器的初始化,即中断、堆栈等的初始化。
[0088]下装模块
[0089]下装模块固化在检测器内部,完成下装,顺序完成以下功能:与服务器建立下装链接、接收下装内容概要信息、设置检测器下装数据存贮空间、获取下装数据、校验并反馈下装结果。
[0090]测试执行模块
[0091]测试执行模块按照功能划分,可分为初始化和周期运行两部分,按照代码来源划分,可分为框架代码、应用功能代码和用户配置代码三部分。
[0092]初始化
[0093]在本模块中,检测器将初始化本次测试必须的内存、时间片、外设等。程序结构示意图如图6所示。
[0094]周期运行:
[0095]周期运行模块主要完成以下功能:服务器通信处理、接收并存贮被测对象数据、用户设备逻辑处理、用户事件逻辑处理、检测器自维护处理五部分,各功能之间顺序运行。流程图如图7所:
[0096]代码构成及各部分代码功能如图8所示:
[0097]框架代码提供一个通用的测试工具框架,主要完成以下功能:服务器通信处理、接收并存贮被测对象数据、用户设备逻辑处理、用户事件逻辑处理、检测器自维护。
[0098]服务器通信处理
[0099]接收并应答服务器通信;解析并执行服务器命令。
[0100]接收并存贮被测对象数据
[0101]接收到的被测对象数据添加时标;比较报文的特征字段,如MAC地址、协议号等,根据特征字段比较结果将被测对象数据存贮特定内存区。
[0102]用户设备逻辑处理、用户事件逻辑处理
[0103]调用用户逻辑入口函数地址,执行用户设备、事件逻辑处理。
[0104]检测器自维护
[0105]维护检测器周期及检查检测器外设状况,并把结果反馈给服务器。
[0106]胶水代码和用户逻辑生成代码由离线组态工具生成,通常完成数学、逻辑运算功倉泛。
[0107]库中代码为已开发成功的、可直接供用户使用的各个应用功能,这些应用功能通常较为复杂,如:各种支持被测对象通信的协议、正弦函数、余弦函数等。
[0108]通过框架代码与功能库组合的方式,实现多个协议的并行运行;用户根据需要选择恰当的通信协议,并建立各协议之间的耦合关系;代码运行于裸板上,效率较高,精度可达 1ms。
[0109]服务器:
[0110]服务器主要由下装、测试执行与数据存贮两部分组成,可分别独立运行。
[0111]下装模块[0112]下装模块接受来自离线组态工具的下装指令,通过网络文件系统,将离线工具生成的prj文件和可执行文件拷贝到本地,解析prj文件,执行下装操作,流程图如图9所示:
[0113]服务器解析离线软件生成的prj文件,获取检测器类型、编号和可执行文件所在路径,根据检测器编号,选择待下装的可执行文件,解析prj文件生成下装概要信息。下装流程图如图10所不。
[0114]测试执行与数据存贮模块
[0115]本模块主要完成:处理检测器通信(又称为“通信代理”)、检测器数据转换、用户逻辑处理、历史数据存贮四部分,其中用户逻辑处理由商用软件citect完成,各模块之间的关系如图11所不。
[0116]其数据流向如图12所示。
[0117]处理检测器通信
[0118]由四个线程组成:管理线程、发送请求线程、接收响应线程、下行数据分发线程,各线程完成的功能如下:
[0119](I)管理线程
[0120]负责创建和销毁“发送请求线程”和“接收应答线程”。每个检测器都有一个对应的管理线程。
[0121](2)发送请求线程
[0122]负责发送请求给检测器,要求检测器进行相应的动作。每个检测器都一个对应的发送请求线程。
[0123](3)接收响应线程
[0124]负责配合相应的发送请求线程,接收检测器给予的应答,将检测器返回的数据放入通信代理本地缓存,代理服务器会为每个检测器创建单独的接收应答线程。每个检测器都一个对应的接收响应线程。
[0125](4)下行数据分发线程
[0126]负责将Citect驱动给定的下行数据分发给与各个检测器对应的下行数据队列。
[0127](5)检测器数据转换
[0128]由测点数据更新线程完成,负责定期将通信代理本地缓存中的数据提交给与Citect驱动共享内存中。
[0129](6)历史数据存贮
[0130]由原始网络帧与日志推送线程完成,负责将通信代理本地缓存中的原始网络帧与日志传递给历史服务模块。
[0131](7)用户逻辑处理
[0132]由商用软件citect完成。
[0133](8)测试监控HMI
[0134]提供实时交互界面,由商用软件citect完成。
【权利要求】
1.一种多网络协议的并行测试装置,其特征在于:包括在线运行部分和离线部分,在线运行部分由依次连接的客户端模块,服务器,检测器模块组成,离线部分即为离线组态工具丰吴块; 所述客户端模块提供实时交互界面,通过网络查询位于服务器的历史转存模块的日志、报文和事件并显示; 所述服务器由通信代理模块和历史转存模块组成,通信代理模块将来自检测器的测点转换为citect要求的数据格式供其使用,同时,将日志、报文和事件通过自定义协议提交给历史转存模块; 所述检测器模块将被测对象的原始报文或者经过检测器处理的测点、日志和事件通过自定义协议发送给服务器,并接收来自服务器通信代理模块的命令; 所述离线组态工具模块组态工具包括组态模块和由用户编译并选择网络协议的编译模块两部分,编译模块与检测器相连接。
2.根据权利要求1所述的一种多网络协议的并行测试装置,其特征在于:所述服务器又由下装模块、测试执行模块与数据贮存模块三个部分组成,所述下装模块和测试执行模块属于通信代理模块,所述历史转存模块即为数据贮存模块,所述三个部分可分别独立运行。
3.根据权利要求1 所述的一种多网络协议的并行测试装置,其特征在于:所述的检测器模块由固化在检测器内部的引导模、下装模块和测试执行模块组成;引导模块完成检测器的初始化即中断、堆栈;下装模块将可执行文件下装到检测器完成下装并依次完成与服务器建立下装链接、接受下装内容概要信息、设置检测器下装数据存贮空间、获取下装数据、校验并反馈下装结果,。
4.根据权利要求3所述的一种多网络协议的并行测试装置,其特征在于:所述的测试执行模块按照功能分为初始化模块和周期运行模块两个部分,在初始化模块中,检测器将初始化本次测试必须的内存、时间片、外设;周期运行模块按顺序完成服务器通信处理,接收并存贮被测对象数据、用户设备逻辑处理、用户时间逻辑处理、检测器自维护五个部分。
5.根据权利要求3所述的一种多网络协议的并行测试装置,其特征在于:所述的测试执行模块按照代码来源划分为框架代码、应用功能代码和用户配置代码;框架代码提供一个通用的测试工具框架,完成服务器通信处理,接收并存贮被测对象数据、永华设备逻辑处理、用户时间逻辑处理、检测器自维护功能。
6.根据权利要求2所述的一种多网络协议的并行测试装置,其特征在于:所述的下装模块接收来自离线组态工具的下装指令,通过网络文件系统,将离线工具生成的Pr j文件和可执行文件拷贝到本地,解析Pr j文件,执行下装操作。
7.根据权利要求2所述的一种多网络协议的并行测试装置,其特征在于:所述的测试执行模块与数据存贮模块完成处理检测器通信、检测器数据转换、用户逻辑处理、历史数据存贮四部分功能。
8.根据权利要求7所述的一种网络协议的并行测试装置,其特征在于:所述的处理检测器通信由管理线程、发送请求线程、接收响应线程和下行数据分发线程组成。
9.根据权利要求1所述的一种多网络协议的并行测试装置,其特征在于:所述的组态模块将用户的配置数据和逻辑翻译成C语言文件和供服务器使用的、含有DBF、OID、设备表信息的prj类型的配置文件;所述的编译模块将组态模块生成的C语言文件、功能库中相关应用程序和平台软件混合编译成可执行文件。
10.根据权利要求1-9中的任一项所述的一种多网络协议的并行测试方法,其特征在于:包括如下步骤: (1)离线组态工具将用户配置的数据和逻辑首先转换为C语言,并结合用户从功能库中抽取的应用功能程序与平台程序一起编译成可执行文件,并通过下装模块将可执行文件下装到检测器; (2)检测器将被检测多想原始报文或者经过检测器处理的测点、日志和事件通过自定义协议发送给服务器,并接收来自服务器通信代理模块的命令; (3)通信代理模块将来自检测器的测点转换为citect要求的数据格式供其使用,同时将日志。报文和事件通过自定义协议提交给历史转存模块; (4)客户端通过网络查询位于服务器的历史转存模块的日志、报文和事件并显示。
【文档编号】H04L12/26GK103973504SQ201310028941
【公开日】2014年8月6日 申请日期:2013年1月25日 优先权日:2013年1月25日
【发明者】孙王强, 张亚栋, 刘建龙, 王晓燕, 王金全 申请人:北京广利核系统工程有限公司, 中国广核集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1