分散式控制系统的功能测试设备、控制服务器和方法
【专利摘要】本发明实施例提供一种分散式控制系统的功能测试设备、控制服务器和方法。功能测试设备通过分散式控制系统的管理级网络与一个或多个控制服务器通信连接,包括:测试用例获取单元,用于获取包括多个测试步数据的测试用例;执行指令生成单元,用于针对每个测试步数据,根据测试步数据中的执行操作和输入数据生成执行指令;执行指令执行单元,用于将执行指令生成单元生成的执行指令发送给控制服务器,并且从控制服务器接收执行指令的执行结果;测试结果确定单元,用于根据执行指令执行单元接收的执行指令的执行结果与执行指令的预期输出结果确定执行指令的测试结果。采用本发明实施例,可以省去现有技术中执行设备与测试装置间的接线。
【专利说明】
分散式控制系统的功能测试设备、控制服务器和方法
技术领域
[0001] 本发明涉及分散式控制技术,尤其涉及一种分散式控制系统的功能测试设备、控 制服务器和方法。
【背景技术】
[0002] 在核电站的控制领域中,工艺系统控制逻辑实现是分散式控制系统(即DCS (Distributed Control System)控制系统)自动安全运转的一项关键工作,对于核电站控 制系统来说,在分散式控制系统的测试阶段验证控制逻辑的正确与否,尤为重要。
[0003] 目前,如图1所示,在进行功能测试中,现场控制站或执行设备上连接有测试装置, 该测试装置与分散式控制系统中的控制服务器之间通过线缆连接。测试装置模拟执行设备 (如传感器)发送信号,该信号经线缆传送至控制服务器。测试装置接收控制服务器发送的 执行指令,并模拟执行设备给出反馈信号,该反馈信号经线缆被传送至控制服务器(反馈输 入),从而完成该功能测试。
[0004]上述利用测试装置进行分散式控制系统的功能测试存在以下不足:一方面,分散 式控制系统中包含有上万个执行设备,将执行设备或现场控制站连接至测试装置时必然会 造成工作繁重,并且可能需要多台测试装置,因此,测试成本较高。另一方面,功能测试的过 程中,该测试装置无法完成如管理级网络中的控制服务器上的操作和查看状态等,而只能 通过控制服务器来完成。测试人员需要在测试装置上进行执行设备的输入数据的赋值,并 且还需要在控制服务器上进行指令操作和查看状态,从而使得测试效率较低。
【发明内容】
[0005] 本发明的目的在于,提供一种分散式控制系统的功能测试设备和控制服务器,以 及通过功能测试设备和控制服务器对分散式控制系统进行功能测试的方法,不仅可以省去 执行设备与测试装置间的接线,而且还可以使得分散式控制系统的功能测试更加便捷,并 有效得提尚测试效率。
[0006] 根据本发明的一方面,提供一种分散式控制系统的功能测试设备,所述功能测试 设备通过所述分散式控制系统的管理级网络与一个或多个控制服务器通信连接,包括:测 试用例获取单元,用于获取包括多个测试步数据的测试用例,所述测试步数据包括步序号、 执行操作、执行设备、输入数据以及预期输出结果的数据;执行指令生成单元,用于针对每 个所述测试步数据,根据所述测试步数据中的执行操作和输入数据生成执行指令;执行指 令执行单元,用于将所述执行指令生成单元生成的执行指令发送给所述控制服务器,并且 从所述控制服务器接收所述执行指令的执行结果;测试结果确定单元,用于根据所述执行 指令执行单元接收的所述执行指令的执行结果与所述执行指令的预期输出结果确定所述 执行指令的测试结果。
[0007] 可选地,所述功能测试设备还包括:延迟类型获取单元,用于获取与所述预期输出 结果的数据相应的延迟类型信息;所述测试结果确定单元,用于根据所述延迟类型信息、所 述控制服务器返回的执行结果和相应的预期输出结果确定所述执行指令的测试结果。
[0008] 根据本发明的另一方面,提供一种分散式控制系统的控制服务器,包括:第一指令 交互单元,用于接收携带有执行操作和输入数据的执行指令,并且发送所述执行指令的执 行结果;第二指令交互单元,用于将所述第一指令交互单元接收的执行指令发送给所述分 散式控制系统的现场控制站,并且从所述现场控制站获取所述执行结果。
[0009] 根据本发明的又一方面,提供一种分散式控制系统的功能测试方法。所述方法包 括,获取包括多个测试步数据的测试用例,所述测试步数据包括步序号、执行操作、执行设 备、输入数据以及预期输出结果的数据;根据所述多个测试步数据依次执行相应的执行指 令,其中,针对每个所述测试步数据,根据所述测试步数据中的执行操作和输入数据生成执 行指令,将所述执行指令发送给所述执行设备,并且根据所述执行设备返回的执行结果与 相应的预期输出结果确定所述执行指令的测试结果。
[0010] 优选地,所述根据所述执行设备返回的执行结果与相应的预期输出结果确定所述 执行指令的测试结果的处理包括:根据每个所述测试步数据中的预期输出结果的数据和输 入数据,确定预定数目的测试数组;从所述执行设备获取与所述输入数据相应的反馈数据, 并将所述反馈数据存储在所述测试数组中;获取所述执行设备的执行结果,并根据所述执 行结果与所述测试数组中的预期输出结果确定所述执行指令的测试结果。
[0011] 优选地,所述根据所述多个测试步数据依次执行相应的执行指令的处理包括:获 取所述分散式控制系统中所述执行设备的当前状态数据;如果所述当前状态数据与所述输 入数据不同,则将所述输入数据赋给所述步序号对应的所述分散式控制系统中的相应执行 设备。
[0012] 优选地,所述方法还包括:在所述测试数组中标记与所述当前状态数据不同的输 入数据,以确定所述当前状态数据与所述输入数据中存在的不同数据。
[0013] 优选地,所述方法还包括:获取与所述预期输出结果的数据相应的延迟类型信息; 根据所述延迟类型信息确定所述执行指令的执行结果。
[0014] 根据本发明的另一方面,提供一种分散式控制系统的功能测试装置。所述装置包 括:测试用例获取模块,用于获取包括多个测试步数据的测试用例,所述测试步数据包括步 序号、执行操作、执行设备、输入数据以及预期输出结果的数据;测试结果确定模块,用于根 据所述多个测试步数据依次执行相应的执行指令,其中,针对每个所述测试步数据,根据所 述测试步数据中的执行操作和输入数据生成执行指令,将所述执行指令发送给所述执行设 备,并且根据所述执行设备返回的执行结果与相应的预期输出结果确定所述执行指令的测 试结果。
[0015] 优选地,所述测试结果确定模块包括:测试数组确定单元,用于根据每个所述测试 步数据中的预期输出结果的数据和输入数据,确定预定数目的测试数组;反馈数据存储单 元,用于从所述执行设备获取与所述输入数据相应的反馈数据,并将所述反馈数据存储在 所述测试数组中;测试结果确定单元,用于获取所述执行设备的执行结果,并根据所述执行 结果与所述测试数组中的预期输出结果确定所述执行指令的测试结果。
[0016] 优选地,所述测试结果确定模块还包括:状态数据获取单元,用于获取所述分散式 控制系统中所述执行设备的当前状态数据;赋值单元,用于如果所述当前状态数据与所述 输入数据不同,则将所述输入数据赋给所述步序号对应的所述分散式控制系统中的相应执 行设备。
[0017] 优选地,所述装置还包括:输入数据标记模块,用于在所述测试数组中标记与所述 当前状态数据不同的输入数据,以确定所述当前状态数据与所述输入数据中存在的不同数 据。
[0018] 优选地,所述装置还包括:延迟类型获取模块,用于获取与所述预期输出结果的数 据相应的延迟类型信息;所述测试结果确定模块,用于根据所述延迟类型信息确定所述执 行指令的测试结果。
[0019] 根据本发明的又一方面,提供一种分散式控制系统的功能测试方法。所述方法包 括,接收携带有执行操作和输入数据的执行指令;将所述执行指令发送给所述分散式控制 系统的现场控制站,并且从所述现场控制站获取所述执行结果;发送所述执行指令的执行 结果。
[0020] 根据本发明实施例提供的分散式控制系统的功能测试方法、设备和控制服务器, 通过获取包括多个测试步数据的测试用例中的多个测试步数据依次执行相应的执行指令, 并根据执行设备返回的执行结果与相应的预期输出结果确定该执行指令的测试结果,即本 发明实施例通过在分散式控制系统内设置功能测试设备,并通过应用程序模拟的形式实现 分散式控制系统的功能测试,省去了执行设备与测试装置间的接线,而且输入数据、执行结 果的判断都是通过对分散式控制系统中执行设备相关属性项的写和读操作,并进行比较来 完成,从而使得分散式控制系统的功能测试更加便捷,并有效得提高了测试效率。
【附图说明】
[0021] 图1是示出现有技术中分散式控制系统的功能测试系统的结构示意图;
[0022]图2是示出根据本发明实施例一的分散式控制系统的功能测试系统的结构示意 图;
[0023]图3是示出根据本发明实施例一的分散式控制系统的功能测试设备的逻辑框图; [0024]图4是示出根据本发明实施例一的执行设备XXX201P0的控制逻辑设计输入图的示 例性示意图;
[0025]图5是示出根据本发明实施例一的基于执行设备XXX201P0的控制逻辑设计输入图 的测试用例示意图;
[0026] 图6是示出根据本发明实施例二的分散式控制系统的功能测试方法的流程图;
[0027] 图7是示出根据本发明实施例三的分散式控制系统的功能测试方法的流程图;
[0028] 图8是示出根据本发明实施例三的四个测试数组的数组结构示意图;
[0029] 图9是示出根据本发明实施例四的分散式控制系统的功能测试方法的流程图;
[0030] 图10是示出根据本发明实施例五的分散式控制系统的控制服务器的逻辑框图。
【具体实施方式】
[0031] 本方案的发明构思是,通过在分散式控制系统的管理级网络中设置分散式控制系 统的功能测试设备,用于获取包括多个测试步数据的测试用例中的多个测试步数据依次执 行相应的执行指令,并根据执行设备返回的执行结果与相应的预期输出结果确定该执行指 令的测试结果,即本发明实施例通过在分散式控制系统内设置功能测试设备,并通过应用 程序模拟的形式实现分散式控制系统的功能测试,省去了执行设备与测试装置间的接线, 而且输入数据、执行结果的判断都是通过对分散式控制系统中执行设备相关属性项的写和 读操作,并进行比较来完成,从而使得分散式控制系统的功能测试更加便捷,并有效得提高 了测试效率。
[0032]下面结合附图详细描述本发明的示例性实施例。
[0033] 实施例一
[0034]图2是示出根据本发明实施例一的分散式控制系统的功能测试系统的结构示意 图。
[0035 ]参照图2,分散式控制系统的功能测试系统中可包括分散式控制系统和分散式控 制系统的功能测试设备,所述分散式控制系统包括一个或多个控制服务器和一个或多个现 场控制站,以及多个执行设备(图2中未示出)等,执行设备可以是如开关设备、通讯设备和 传感器等。所述功能测试设备通过所述分散式控制系统的管理级网络与一个或多个控制服 务器通信连接,所述一个或多个控制服务器通过系统级网络与一个或多个现场控制站通信 连接,每一个现场控制站控制一个或多个执行设备。本发明实施例中的分散式控制系统以 DCS(Distributed Control System)控制系统为例进行详细说明,其它分散式控制系统的 处理可与此相同或相似,在此不再赘述。
[0036] 通过上述分散式控制系统的功能测试系统可以完成对分散式控制系统中相应功 能的自动测试。所述功能测试设备可以是计算机等终端设备。为了完成上述功能测试,可以 将所述功能测试设备划分成多个功能单元,通过不同的功能单元完成对分散式控制系统的 功能测试。具体地,如图3所示,所述功能测试设备可以包括测试用例获取单元310、执行指 令生成单元320、执行指令执行单元330和测试结果确定单元340,其中,测试用例获取单元 310与执行指令生成单元320相连接,执行指令生成单元320与执行指令执行单元330相连 接,执行指令执行单元330与测试结果确定单元340相连接。
[0037] 测试用例获取单元310,用于获取包括多个测试步数据的测试用例,所述测试步数 据包括步序号、执行操作、执行设备、输入数据以及预期输出结果的数据。
[0038] 其中,测试步数据是某一个测试步骤中包含的数据。测试用例可以是为了某一个 指定目标而编制的一组测试输入、执行条件以及输出结果的数据,以便测试某个程序路径 或核实是否满足指定的需求等。本发明实施例中,测试用例是指为测试分散式控制系统的 控制逻辑功能而依据设计输入文件编写的测试真值表。其中,所述测试真值表包含输入和 输出,输入包含人机界面操作项、物理点、通讯点输入,输出包含物理点输出、人机界面设备 状态输出或显示,考虑到设计输入文件所要表述的不同工况,可以得到输入的操作、物理点 的数值、通讯点的数值的不同组合,进而得到预期输出结果,形成二维真值表(即测试用 例)。步序号可以为测试步的序号。执行设备可以是所述物理点或通讯点的设备,如开关设 备等。
[0039] 可以在分散式控制系统正常工作的过程中进行上述功能测试,分散式控制系统的 控制逻辑可依据相应的设计输入文件来实现。如图4所示,以执行设备XXX201P0的控制逻辑 设计输入图为例进行说明。其中,输入区的信号来自传感器,可用于设备控制。操作指令区 中包括控制服务器发出的操作指令。输出区用于将输出信号发送至相应的执行设备,用于 现场显示或驱动执行设备执行相应的动作等。
[0040] 上述图4中,执行设备XXX201P0启动后,会发送反馈信号FF,用于状态显示和控制。 而当执行设备XXX201P0停止后,会发送反馈信号GG,用于状态显示和控制。
[0041] 可依据上述图4中的XXX201P0的控制逻辑设计输入图,通过使用测试用例对当前 正在运行的分散式控制系统进行功能测试,相应的测试用例可如图5所示,具体处理可以包 括以下内容:
[0042]在对分散式控制系统进行功能测试前,需要从测试用例中获取物理点和/或通讯 点名列、物理点和/或通讯点类型列、测试步起始列、测试步结束列、测试步行、输入数据的 起始行和结束行、输出数据的起始行和结束行、状态数据的起始行和结束行和判断行等信 息,可以将上述信息输入到相应的输入项中。此外,考虑到测试用例中包含有多个测试步, 不同的测试步所对应的输入数据和预期输出结果的数据可以不同。为了能够使得上述功能 测试能够自动或者手动执行,可以设置相应的信息项和/或按键,依此控制测试用例的执 行,具体地,还可以设置用于显示当前测试步序号和下一测试步序号的显示设备、自动执行 按键、单步执行按键和退出测试按键等。其中,自动执行按键可用于控制分散式控制系统按 照设定的下一测试步序号依次执行相应的测试步,直到测试结束。单步执行按键可用于控 制分散式控制系统按照用户输入的测试步序号进行上述功能测试。
[0043] 执行指令生成单元320,用于针对每个所述测试步数据,根据所述测试步数据中的 执行操作和输入数据生成执行指令。
[0044] 执行指令执行单元330,用于将所述执行指令生成单元生成的执行指令发送给所 述控制服务器,并且从所述控制服务器接收所述执行指令的执行结果。
[0045] 在实施中,可以预先设置相应的控制机制,使得执行指令执行单元330可以将执行 指令发送给分散式控制系统中的控制服务器中一个控制服务器,或者,也可以将执行指令 分别发送给每一个控制服务器,然后,分散式控制系统可以指定某一个控制服务器将执行 指令发送给现场控制站,其中,控制服务器将执行指令发送给现场控制站的处理可以与上 述处理方式相同,即可以选择一个现场控制站接收和发送执行指令。
[0046] 控制服务器可以定期或非定期从相应的现场控制站中获取相应的执行设备执行 所述执行指令后得到的执行结果,执行指令执行单元同样可以通过定期或非定期的方式向 所述控制服务器发送用于获取所述执行指令的执行结果的请求,所述控制服务器可以将得 到的所述执行指令的执行结果发送给执行指令执行单元330。
[0047] 测试结果确定单元340,用于根据所述执行指令执行单元接收的所述执行指令的 执行结果与所述执行指令的预期输出结果确定所述执行指令的测试结果。
[0048] 此外,还可以设置数据延迟处理,相应的处理方式可以多种多样,以下提供一种可 选的处理方式,相应的,所述功能测试设备还包括延迟类型获取单元,用于获取与所述预期 输出结果的数据相应的延迟类型信息;测试结果确定单元340,用于根据所述延迟类型信 息、所述控制服务器返回的执行结果和相应的预期输出结果确定所述执行指令的测试结 果。
[0049] 上述延迟类型获取单元的处理过程以及测试结果确定单元340的处理可以参见后 续实施例中分散式控制系统的功能测试方法的相关内容,在此不再赘述。
[0050]本发明实施例中,通过在分散式控制系统的管理级网络中设置分散式控制系统的 功能测试设备,用于获取包括多个测试步数据的测试用例中的多个测试步数据依次执行相 应的执行指令,并根据执行设备返回的执行结果与相应的预期输出结果确定该执行指令的 测试结果,即本发明实施例通过在分散式控制系统内设置功能测试设备,并通过应用程序 模拟的形式实现分散式控制系统的功能测试,省去了现有技术中执行设备与测试装置间的 接线,而且输入数据、执行结果的判断都是通过对分散式控制系统中执行设备相关属性项 的写和读操作,并进行比较来完成,从而使得分散式控制系统的功能测试更加便捷,并有效 得提高了测试效率。
[0051 ] 实施例二
[0052]图6是示出根据本发明实施例二的分散式控制系统的功能测试方法的流程图。通 过包括如图3所示的功能测试设备执行所述方法。其中,功能测试设备在分散式控制系统的 位置可以参见图2,基于图2分散式控制系统的功能测试系统来说明本发明实施例二的分散 式控制系统的功能测试方法。本发明实施例中的分散式控制系统以DCS(Distributed Control System)控制系统为例进行详细说明,其它分散式控制系统的处理可与此相同或 相似,在此不再赘述。
[0053] 参照图6,在步骤S610,获取包括多个测试步数据的测试用例,所述测试步数据包 括步序号、执行操作、执行设备、输入数据以及预期输出结果的数据。
[0054] 在实际应用中,可以先将所要进行测试的执行设备的开/关等相关信息列成表格, 可如表1所示,该表格中包含有开关设备(即执行设备)名称、开指令点名、开反馈点名、关反 馈点名和设备类型等。其中,可以根据开/关指令的不同可将开关设备分为不同的类型,包 括双指令类型、单开指令类型和单关指令类型等。
[0055] 表 1
[0056]
[0057] 当开始测试分散式控制系统中的相关功能时,可以从上述表格中提取相应的开关 设备名称、域号以及设备类型等信息,然后,可以根据设备类型,从当前的分散式控制系统 中读取每一个执行设备的开关指令、开度输出点值,可以根据读取的上述数值对执行设备 反馈值和过程量反馈值进行初始化,得到相应的初始化后的执行设备反馈值和过程量反馈 值等。
[0058] 为了观察不同时间段内执行设备的变化状态,可以设置状态扫描周期,例如5秒或 20秒等。当完成对执行设备反馈值和过程反馈量的初始化后,可以延迟一个状态扫描周期, 之后,可以从分散式控制系统中读取执行设备的开关指令数据,可以将得到的开关指令数 据与上一状态扫描周期的相应的执行设备的开关指令数据进行对比,判断当前得到的开关 指令数据中是否存在数据内容变化。如果不存在,则可以从分散式控制系统中读取开度信 号指令数据。如果存在,则可以根据所述执行设备的设备类型和相应的指令触发状态为反 馈点赋值,同时可以从分散式控制系统中读取开度信号指令数据。然后,可以基于上述相关 数值,可以得到4个折点值,从而通过计算可以得到过程反馈量,进一步地,可以通过惯性环 节计算得到过程量反馈。此时,可以调用预先设置的接口函数(例如,DBCOM(DataBase Communication,数据库通讯接口)读值函数)执行写入操作。
[0059] 例如,对于双脉冲开关类型设备(其设备类型编号可为1-3),可以读取开指令、关 指令的DI(Digital input,数字量输入)点项值。如果读取的开指令的DI点项值为0、关指令 的DI点项值为1或0,则对于单开反馈(其设备类型编号可为1),可给开反馈点赋初始值0;而 对于单关反馈(其设备类型编号可为2),可给关反馈点赋初始值1;对于双反馈(其设备类型 编号可为3),可给开反馈点赋初始值0,同时给关反馈点赋初始值1。如果开指令的DI点项值 为1、关指令的DI点项值为0,则对于单开反馈(其设备类型编号可为1),可给开反馈点赋初 始值1;对于单关反馈(其设备类型编号可为2),可给关反馈点赋初始值0;而对于双反馈(其 设备类型编号可为3),可给开反馈点赋初始值1,给关反馈点赋初始值0。
[0060] 对于单开类型设备(其设备类型编号可为4-6),可读取开指令DI点项值。如果开指 令为〇,对于单开反馈(其设备类型编号可为4),可给开反馈点赋初始值0;对于单关反馈(其 设备类型编号可为5),可给关反馈点赋初始值1;对于双反馈(其设备类型编号可为6),可给 开反馈点赋初始值〇,同时给关反馈点赋初始值1。如果开指令为1,则对于单开反馈(其设备 类型编号可为4),可给开反馈点赋初始值1;对于单关反馈(其设备类型编号可为5),可给关 反馈点赋初始值〇;对于双反馈(其设备类型编号可为6),可给开反馈点赋初始值1,同时给 关反馈点赋初始值〇。
[0061] 对于单关类型设备(其设备类型编号可为7-9),可读取开指令DI点项值。如果关指 令为〇,则对于单开反馈(其设备类型编号可为7),可给开反馈点赋初始值1;对于单关反馈 (其设备类型编号可为8),可给关反馈点赋初始值0;对于双反馈(其设备类型编号可为9), 可给开反馈点赋初始值1,同时给关反馈点赋初始值0。如果关指令为1,则对于单开反馈(其 设备类型编号可为7),可给开反馈点赋初始值0;对于单关反馈(其设备类型编号可为8),可 给关反馈点赋初始值1;对于双反馈(其设备类型编号可为9),可给开反馈点赋初始值0,同 时给关反馈点赋初始值1。
[0062]对于模拟量设备,可以读取开度输出的AI(Anal〇g Input,模拟量数输入)值,根据 折点可计算出的过程量反馈Y与开度输出X的函数关系,从而计算出Y'值,并写入分散式控 制系统中。
[0063] 此外,对于上述设备状态反馈处理,具体可参见以下示例:
[0064] 对于双脉冲指令开关设备,如果开指令上升沿,则对于单开反馈,可给开反馈点赋 值1;对于单关反馈,可给关反馈点赋值〇;对于双反馈,可给开反馈点赋值1,同时给关反馈 点赋值0。如果关指令上升沿,则对于单开反馈,可给开反馈点赋值ο;对于单关反馈,可给关 反馈点赋值1;对于双反馈,可给开反馈点赋值0,同时给关反馈点赋值1。
[0065] 对于单开类型设备,如果开指令上升沿,则对于单开反馈,可给开反馈点赋值1;对 于单关反馈,可给关反馈点赋值0;对于双反馈,可给开反馈点赋值1,同时给关反馈点赋值 0。 如果开指令下降沿,则对于单开反馈,可给开反馈点赋值0;对于单关反馈,可给关反馈点 赋值1;对于双反馈,可给开反馈点赋值0,同时给关反馈点赋值1。
[0066] 对于单关类型设备,如果关指令上升沿,则对于单开反馈,可给开反馈点赋值0;对 于单关反馈,可给关反馈点赋值1;对于双反馈,可给开反馈点赋值0,同时给关反馈点赋值 1。 如果关指令下降沿,则对于单开反馈,可给开反馈点赋值1;对于单关反馈,可给关反馈点 赋值0;对于双反馈,可给开反馈点赋值1,同时给关反馈点赋值0。
[0067] 对于模拟量设备,可以读取开度输出的ΑΙ值,根据折点可计算出过程量反馈Υ与开 度输出X的函数关系,进而计算出Υ'值,并将Υ'值经过惯性环节的处理运算得到Υ值。
[0068] 对于获取测试用例和使用测试用例的处理可以参见上述实施例一中测试用例获 取单元的相应内容,在此不再赘述。
[0069] 在步骤S620,根据所述多个测试步数据依次执行相应的执行指令,其中,针对每个 所述测试步数据,根据所述测试步数据中的执行操作和输入数据生成执行指令,将所述执 行指令发送给所述执行设备,并且根据所述执行设备返回的执行结果与相应的预期输出结 果确定所述执行指令的测试结果。
[0070] 在实施中,当从所述测试用例中获取到当前测试步对应的输入数据后,可以生成 携带有所述输入数据和相应执行操作的执行指令,并可将所述执行指令发送给相应的执行 设备(如上述开关设备)。通过上述状态扫描周期,可以周期性调用用于读取数据的接口函 数读取预定属性项的数值,进而通过该属性项的数值判断该属性项对应的执行操作是否被 触发,如果被触发,则可以改变其操作状态。当所述预定属性项对应的操作状态都处于"完 成"和/或"无操作"后,可以调用所述接口函数,读取相应属性项中的相关数值,并可以依据 相关数值确定当前测试步的执行结果。
[0071] 如果所述执行结果与相应的预期输出结果相同,则可以确定所述执行指令的测试 结果为正确,如果所述执行结果与相应的预期输出结果不同,则可以确定所述执行指令的 测试结果为错误,此时,可以判断当前测试步是否为最后的测试步,如果是,则结束本次功 能测试,如果否,则可将当前测试步序号加1,重复执行上述步骤S610和步骤S620的处理,直 到当前测试步为最后的测试步为止。
[0072] 本发明实施例提供的分散式控制系统的功能测试方法,通过获取包括多个测试步 数据的测试用例中的多个测试步数据依次执行相应的执行指令,并根据执行设备返回的执 行结果与相应的预期输出结果确定该执行指令的测试结果,即本发明实施例通过在分散式 控制系统内设置功能测试设备,并通过应用程序模拟的形式实现分散式控制系统的功能测 试,省去了现有技术中执行设备与测试装置间的接线,而且输入数据、执行结果的判断都是 通过对分散式控制系统中执行设备相关属性项的写和读操作,并进行比较来完成,从而使 得分散式控制系统的功能测试更加便捷,并有效得提高了测试效率。
[0073] 实施例三
[0074]图7是示出根据本发明实施例三的分散式控制系统的功能测试方法的流程图,所 述实施例可视为图6的又一种具体的实现方案。
[0075]参照图7,在步骤S710,获取包括多个测试步数据的测试用例,所述测试步数据包 括步序号、执行操作、执行设备、输入数据以及预期输出结果的数据。
[0076] 其中,上述步骤S710的步骤内容与上述实施例一中的步骤S610的步骤内容相同, 在此不再赘述。
[0077] 在步骤S720,根据每个所述测试步数据中的预期输出结果的数据和输入数据,确 定预定数目的测试数组。
[0078] 其中,预定数目的测试数组可以根据实际情况设定一个或多个测试数组。
[0079] 在实施中,为了方便数据的查看和数据的管理,可以对所有测试步数据进行数据 划分,确定多个测试数组,本发明实施例中,可以设置4个测试数组,分别为OPERATE测试数 组、INPUT测试数组、OUTPUT测试数组和STATE测试数组。每一个测试数组具有相应的功能, 如INPUT测试数组用于记录输入数据,OUTPUT测试数组用于记录输出数据,STATE测试数组 用于记录执行设备的状态,OPERATE测试数组用于记录执行操作等数据。
[0080] 不同的测试数组中包含的属性项可以不同,如图8所示,其中,点名为测试用例中 的物理点或通讯点的点名;点类型为测试用例中的物理点或通讯点的点类型;当前数据为 测试用例中当前测试步所在的列与该物理点或通讯点所在的行交叉处的数据;回读值为从 分散式控制系统中读取的当前数值;回读属性项可用于记录该物理点或通讯点在当前测试 步需要回读值的属性项,具体可以根据上述"当前数据"和"点类型"分析得到;所在行可用 于表示该物理点或通讯点所在的测试用例中的实际行号,以便于所述功能测试中产生的信 息记录在测试用例中;操作状态可用于记录该物理点或通讯点当前所处的操作状态(针对 OPERATE测试数组);待写入值可为当前测试步将要写入对应属性项的数值(针对INPUT测试 数组),具体可根据上述"当前数据"和"点类型"分析得到;是否Q位可用于表示是否是对该 数据质量位进行操作(针对INPUT测试数组),具体可根据上述"当前数据"和"点类型"分析 得到;是否变位可用于标记该物理点或通讯点在当前测试步中是否有变位(针对INPUT测试 数组);预期值,该物理点或通讯点当前测试步回读属性项的预期值(针对OUTPUT测试数组 和STATE测试数组),具体可根据上述"当前数据"和"点类型"分析得到;延迟类型可分为A、 B、无延迟三种类型,B类型是在输入数据完成,且到达延迟时间,输出为预期输出结果,A类 型是在输入数据完成后输出为预期输出结果,延迟预定时长,预期输出结果恢复到原值,无 延迟即输入数据完成后,输出为预期输出结果,具体可根据上述"当前数据"分析得到;延迟 时间可根据上述"当前数据"分析得到;判断位可为判断当前测试步的执行结果是否正确而 添加的判断中间标志。
[0081] 可以将测试用例中的输入数据输入到上述4个测试数组中,计算每一个测试数组 的值,从而得到4个测试数组的大小关系。可根据4个测试数据的大小关系定义4个测试数 组,即确定哪一个测试数组为OPERATE测试数组、哪一个测试数组为INPUT测试数组等。
[0082] 在步骤S730,从所述控制服务器获取与所述输入数据相应的反馈数据,并将所述 反馈数据存储在所述测试数组中。
[0083] 在实施中,可以从测试用例中获取当前测试步的输入数据作为当前数据,并对上 述4个测试数组和上述输入数据进行分析,以完成对上述4个测试数组中的相关属性项的赋 值(其中包括各个测试数组中的回读属性项的名称,INPUT测试数组中的待写入值,OUTPUT 测试数组和STATE测试数组中的预期输出结果,OUTPUT测试数组和STATE测试数组中的延迟 类型,OUTPUT测试数组和STATE测试数组中的延迟时间等)。例如,如果测试用例中OPERATE 测试数组中的某一个点,回读属性项的名称可根据点类型KG和当前状态0N,选择使用0NL为 该物理点或通讯点的属性项的名称,若当前状态为OFF则可选择使用0FL为该物理点或通讯 点的属性项的名称。
[0084] 可继续运行分散式控制系统,并可调用用于读取分散式控制系统中相关数据的接 口函数,从分散式控制系统中读取执行数据,并记录在上述4个测试数组中(即4个测试数组 中的回读属性项中)。
[0085] 在步骤S740,获取所述分散式控制系统中所述测试步数据对应的执行设备的当前 状态数据。
[0086] 在步骤S750,如果所述当前状态数据和所述反馈数据与所述输入数据不同,则将 所述输入数据赋给当前测试步的步序号对应的所述分散式控制系统中的相应执行设备。
[0087] 在实施中,当确定回读值与待写入值不一致,则可调用用于写入分散式控制系统 中相关数据的接口函数,将输入数据写入到对应执行设备,从而完成数据的输入模拟。
[0088] 同时,为了便于在排查问题时能清楚了解到该测试步中发生数据变化的属性项或 设备,可以在所述测试数组中标记与所述当前状态数据不同的输入数据,以确定所述当前 状态数据与所述输入数据中存在的不同数据。
[0089]其中,标记输入数据可以有多种方式,例如以不同的颜色来突出显示该输入数据, 或者将该输入数据提出,并存储在预先设置的标记区域中等。
[0090] 在实施中,可以将该测试步中发生数据变化的属性项,在测试用例中该测试步的 前一测试步对应的相应属性项标注颜色,以便于在排查问题时能清楚了解到该测试步中发 生数据变化的属性项,以便对其工艺逻辑进行分析、定位等相关问题。
[0091] 在步骤S760,获取所述执行设备的执行结果,并根据所述执行结果与所述测试数 组中的预期输出结果确定所述执行指令的测试结果。
[0092]在实施中,可以周期性的调用相应的接口函数,读取OPERATE测试数组中的回读属 性项的数值,进而判断该属性项对应的执行操作是否被触发,如果被触发,则可以改变当前 的操作状态,当OPERATE测试数组中所有属性项对应的操作状态都处于"完成"和"无操作" 时,则表明当前测试步的执行操作完成。此时,可以调用相应的接口函数,读取OUTPUT测试 数组和STATE测试数组中相关属性项的数值(即OUTPUT测试数组中的AV(Analog Value,模 拟量数值)或DV(digital value,数字量数值)属性项的数值,STATE测试数组中的DRN(Data Run,运行状态字)属性项的数值),从而得到判断位数值。当所有的执行设备对应的判断位 均为1(即正确),则判断此测试步的测试结果正确,在判断行打"V",继续执行下一步。否则 打" X "退出本次功能测试。
[0093] 此外,还可以设置数据延迟处理,相应的处理方式可以多种多样,以下提供一种可 选的处理方式,具体可以包括以下内容:
[0094]步骤一,获取与所述预期输出结果的数据相应的延迟类型信息。
[0095] 在实施中,延迟类型可分为A、B、无延迟三种类型,B类型是在输入数据完成,且到 达延迟时间,输出为预期输出结果,A类型是在输入数据完成后输出为预期输出结果,延迟 预定时长,预期输出结果恢复到原值,无延迟即输入数据完成后,输出为预期输出结果,具 体可根据上述"当前数据"分析得到;延迟时间可根据上述"当前数据"分析得到;判断位可 为判断当前测试步的执行结果是否正确而添加的判断中间标志。
[0096] 步骤二,根据所述延迟类型信息、所述控制服务器返回的执行结果和相应的预期 输出结果确定所述执行指令的测试结果。
[0097] 在实施中,对于含有延迟的测试步,需要回读相关数值。第一次回读可以在输入操 作完成后,对于无延迟类型的执行设备,如果回读值(即执行结果)与预期输出结果相同,则 该点判断位为1(即正确),否则为2(即错误);对于延迟类型B,如果回读值与预期输出结果 相同,则该执行设备的判断错误。如果回读值与预期输出结果不一致,则该属性项的判断位 为3(即等待);对于延迟类型A,回读值与预期输出结果不同,则属性项的为2。回读值与预期 输出结果一致,则该属性项判断位为3。
[0098] 当预定的延迟时间到达后,进行第二次回读。其中,对于无延迟类型的执行设备, 如果其判断位是2,不管回读值是否正确,判断位不变,若判断位是1,回读值与预期输出结 果相同,则该执行设备中的判断位为1,否则为2。对于延迟类型B,如果其判断位是3,且回读 值与预期输出结果不一致,则该执行设备的判断位为2回读值与预期输出结果一致,则该属 性项中的判断位为1,否则判断位为2。
[0099] 通过上述相关内容可知,可以从所述控制服务器中获取当前步序号对应的第一执 行指令的第一执行结果,并将所述第一执行结果与所述当前步序号对应的第一预期输出结 果比较,如果所述第一执行结果与所述第一预期输出结果相同,则获取下一个步序号。
[0100] 然后,可以将所述下一个步序号对应的第二执行指令发送给所述控制服务器,并 从所述控制服务器中获取所述第二执行指令的第二执行结果,并分别将所述第二执行结果 与相应的第二预期输出结果比较,确定所述第二执行指令的测试结果。如上循环执行相应 的处理过程,直到测试用例中的所有测试步完成
[0101] 本发明实施例提供的分散式控制系统的功能测试方法,一方面,通过获取包括多 个测试步数据的测试用例中的多个测试步数据依次执行相应的执行指令,并根据执行设备 返回的执行结果与相应的预期输出结果确定该执行指令的测试结果,即本发明实施例通过 在分散式控制系统内设置功能测试设备,并通过应用程序模拟的形式实现分散式控制系统 的功能测试,省去了现有技术中执行设备与测试装置间的接线;另一方面,通过设置多个数 组,从而使得输入数据、执行结果的判断都是通过对分散式控制系统中执行设备相关属性 项的写和读操作,并进行比较来完成,进而使得分散式控制系统的功能测试更加便捷,并有 效得提高了测试效率。
[0102] 实施例四
[0103] 图9是示出根据本发明实施例四的分散式控制系统的功能测试方法的流程图。通 过分散式控制系统中的控制服务器执行所述方法。本发明实施例中的分散式控制系统以 DCS(Distributed Control System)控制系统为例进行详细说明,其它分散式控制系统的 处理可与此相同或相似,在此不再赘述。
[0104] 参照图9,在步骤S910,接收携带有执行操作和输入数据的执行指令。
[0105]在步骤S920,将所述执行指令发送给所述分散式控制系统的现场控制站,并且从 所述现场控制站获取所述执行结果。
[0106]在步骤S930,发送所述执行指令的执行结果。
[0107] 上述步骤S910~步骤S930的处理可以参见上述实施例一~实施例三中的相关内 容,在此不再赘述。
[0108] 本发明实施例提供的分散式控制系统的功能测试方法,一方面,通过获取包括多 个测试步数据的测试用例中的多个测试步数据依次执行相应的执行指令,并根据执行设备 返回的执行结果与相应的预期输出结果确定该执行指令的测试结果,即本发明实施例通过 在分散式控制系统内设置功能测试设备,并通过应用程序模拟的形式实现分散式控制系统 的功能测试,省去了现有技术中执行设备与测试装置间的接线;另一方面,通过设置多个数 组,从而使得输入数据、执行结果的判断都是通过对分散式控制系统中执行设备相关属性 项的写和读操作,并进行比较来完成,进而使得分散式控制系统的功能测试更加便捷,并有 效得提高了测试效率。
[0109] 实施例五
[0110] 基于相同的技术构思,图10是示出根据本发明实施例五的分散式控制系统的控制 服务器的逻辑框图。参照图10,所述控制服务器包括第一指令交互单元1010和第二指令交 互单元1020。
[0111] 第一指令交互单元1010,用于接收携带有执行操作和输入数据的执行指令,并且 发送所述执行指令的执行结果。
[0112] 第二指令交互单元1020,用于将所述第一指令交互单元接收的执行指令发送给所 述分散式控制系统的现场控制站,并且从所述现场控制站获取所述执行结果。
[0113] 本发明实施例提供的分散式控制系统的控制服务器,通过获取包括多个测试步数 据的测试用例中的多个测试步数据依次执行相应的执行指令,并根据执行设备返回的执行 结果与相应的预期输出结果确定该执行指令的测试结果,即本发明实施例通过在分散式控 制系统内设置功能测试设备,并通过应用程序模拟的形式实现分散式控制系统的功能测 试,省去了执行设备与测试装置间的接线,并通过设置多个数组,从而使得输入数据、执行 结果的判断都是通过对分散式控制系统中执行设备相关属性项的写和读操作,并进行比较 来完成,进而使得分散式控制系统的功能测试更加便捷,并有效得提高了测试效率。
[0114] 需要指出,根据实施的需要,可将本申请中描述的各个步骤/部件拆分为更多步 骤/部件,也可将两个或多个步骤/部件或者步骤/部件的部分操作组合成新的步骤/部件, 以实现本发明的目的。
[0115] 上述根据本发明的方法可在硬件、固件中实现,或者被实现为可存储在记录介质 (诸如CD R0M、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载 的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计 算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专 用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微 处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、 ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此 描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行 将通用计算机转换为用于执行在此示出的处理的专用计算机。
[0116] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【主权项】
1. 一种分散式控制系统的功能测试设备,其特征在于,所述功能测试设备通过所述分 散式控制系统的管理级网络与一个或多个控制服务器通信连接,包括: 测试用例获取单元,用于获取包括多个测试步数据的测试用例,所述测试步数据包括 步序号、执行操作、执行设备、输入数据以及预期输出结果的数据; 执行指令生成单元,用于针对每个所述测试步数据,根据所述测试步数据中的执行操 作和输入数据生成执行指令; 执行指令执行单元,用于将所述执行指令生成单元生成的执行指令发送给所述控制服 务器,并且从所述控制服务器接收所述执行指令的执行结果; 测试结果确定单元,用于根据所述执行指令执行单元接收的所述执行指令的执行结果 与所述执行指令的预期输出结果确定所述执行指令的测试结果。2. 根据权利要求1所述的功能测试设备,其特征在于,所述功能测试设备还包括: 延迟类型获取单元,用于获取与所述预期输出结果的数据相应的延迟类型信息; 所述测试结果确定单元,用于根据所述延迟类型信息、所述控制服务器返回的执行结 果和相应的预期输出结果确定所述执行指令的测试结果。3. -种分散式控制系统的控制服务器,其特征在于,包括: 第一指令交互单元,用于接收携带有执行操作和输入数据的执行指令,并且发送所述 执行指令的执行结果; 第二指令交互单元,用于将所述第一指令交互单元接收的执行指令发送给所述分散式 控制系统的现场控制站,并且从所述现场控制站获取所述执行结果。4. 一种分散式控制系统的功能测试方法,其特征在于,所述方法包括: 获取包括多个测试步数据的测试用例,所述测试步数据包括步序号、执行操作、执行设 备、输入数据以及预期输出结果的数据; 根据所述多个测试步数据依次执行相应的执行指令,其中,针对每个所述测试步数据, 根据所述测试步数据中的执行操作和输入数据生成执行指令,将所述执行指令发送给所述 分散式控制系统的控制服务器,并且根据所述控制服务器返回的执行结果与相应的预期输 出结果确定所述执行指令的测试结果。5. 根据权利要求4所述的方法,其特征在于,所述方法还包括: 根据每个所述测试步数据中的预期输出结果的数据和输入数据,确定预定数目的测试 数组; 从所述控制服务器接收与所述输入数据相应的反馈数据,并将所述反馈数据存储在所 述测试数组中; 所述根据所述控制服务器返回的执行结果与相应的预期输出结果确定所述执行指令 的测试结果的处理包括: 根据所述控制服务器返回的执行结果与所述测试数组中相应的预期输出结果确定所 述执行指令的测试结果。6. 根据权利要求5所述的方法,其特征在于,所述方法还包括: 针对每个所述测试步数据,获取所述分散式控制系统中所述测试步数据对应的执行设 备的当前状态数据; 如果所述当前状态数据和所述反馈数据与所述输入数据不同,则将所述测试步数据对 应的输入数据赋给所述步序号对应的所述分散式控制系统中的相应执行设备。7. 根据权利要求6所述的方法,其特征在于,所述方法还包括: 在所述测试数组中标记与所述当前状态数据不同的输入数据,以确定所述当前状态数 据与所述输入数据中存在的不同数据。8. 根据权利要求7所述的方法,其特征在于,所述方法还包括: 获取与所述预期输出结果的数据相应的延迟类型信息; 所述根据所述控制服务器返回的执行结果与相应的预期输出结果确定所述执行指令 的测试结果的处理包括: 根据所述延迟类型信息、所述控制服务器返回的执行结果和相应的预期输出结果确定 所述执行指令的测试结果。9. 根据权利要求4所述的方法,其特征在于,所述根据所述多个测试步数据依次执行相 应的执行指令的处理包括: 从所述控制服务器中获取当前步序号对应的第一执行指令的第一执行结果,并将所述 第一执行结果与所述当前步序号对应的第一预期输出结果比较,如果所述第一执行结果与 所述第一预期输出结果相同,则获取下一个步序号; 将所述下一个步序号对应的第二执行指令发送给所述控制服务器,并从所述控制服务 器中获取所述第二执行指令的第二执行结果,并分别将所述第二执行结果与相应的第二预 期输出结果比较,确定所述第二执行指令的测试结果。10. -种分散式控制系统的功能测试方法,其特征在于,所述方法包括: 接收携带有执行操作和输入数据的执行指令; 将所述执行指令发送给所述分散式控制系统的现场控制站,并且从所述现场控制站获 取所述执行结果; 发送所述执行指令的执行结果。
【文档编号】G05B23/02GK106094794SQ201610479985
【公开日】2016年11月9日
【申请日】2016年6月27日
【发明人】王立刚, 江国进, 白涛, 赵潮涌, 朱郁, 毛新民, 肖红国, 孟庆军, 潘海波, 李俊卿, 蔡亚伟, 林宗艺, 张登超
【申请人】北京广利核系统工程有限公司, 中国广核集团有限公司