基于Linux系统的工业协议自动化仿真测试系统及方法与流程

文档序号:14478856阅读:243来源:国知局

本申请实施例涉及测试技术领域,尤其涉及一种基于linux系统的工业协议自动化仿真测试系统及方法。



背景技术:

工业控制系统涉及工业生产的整个自动化控制流程,实现了工业生产过程的检测、控制、优化、调度、管理和决策,是保证工业生产过程安全、稳定、高效运行的核心系统。随着工业自动化的快速发展,工业控制系统已广泛应用于石油化工、电力水利、轨道交通、先进制造等各行业,成为国家关键基础设施的重要组成部分。

在工业自动化发展的初期,工业控制网络是一个封闭的、专用的网络环境,几乎不受网络攻击威胁,因而用于本地控制的控制设备在开发设计时主要考虑可靠性、实时性等要求,通过故障检测、冗余设计、容错控制等一系列技术来保证设备安全可靠。然而随着工业化和信息化的不断融合,信息技术在工业领域应用越来越普遍,操作系统、数据库、tcp/ip网络都开始应用于工业生产环境。同时随着业务进一步发展,工业网络开始与企业网络甚至是互联网络相连接,这些因素都导致了当前的工业控制网络面临严峻的信息安全威胁。

因此对工业控制设备(icds)进行工业协议的安全测试和评估至关重要。它有助于尽早发现设备中存在的安全漏洞,并及时加以修补。同时通过安全测试能够进一步促进工业控制设备自身安全功能和安全机制的完善。

工业协议或称为工业通信工程,是指通讯双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守,它也叫做链路控制规程。

随着工业安全的不断发展,在工业安全产品的开发过程中,针对安全设备的工业协议测试变得越来越重要。已经存在的工业协议仿真软件,往往只能针对单一工业协议进行模拟仿真,且大部分运行在windows平台,测试过程中需要大量的人工干预。而在工业安全产品的协议开发过程中,由于产品版本迭代快,往往需要进行大量的回归测试,但是受限于传统工业协议仿真软件,无法进行大规模的工业协议测试。而在工业安全设备的产品开发周期中,工业协议测试占据大量的时间,若工业协议测试的时间成本较高,则会导致工业安全设备的产品开发周期较长,效率低下。



技术实现要素:

有鉴于此,本发明实施例所解决的技术问题之一在于提供一种基于linux系统的工业协议自动化仿真测试系统及方法,用以克服现有技术中缺陷。

本申请实施例提供了一种基于linux系统的工业协议自动化仿真测试系统,其包括至少一个客户端、至少一个服务端,所述至少一个客户端至少用于进行包括运行策略配置的第一配置以及第一测试工业协议的第二配置以在测试时被启动,所述至少一个服务端用于进行第二测试工业协议的第四配置以在测试时被启动,以在先后启动服务端和客户端后对所述第一测试工业协议按照所述第一配置、第二配置进行测试,或者,对所述第二测试工业协议按照所述第四配置进行测试,所述第四配置用于设定所述第二测试工业协议的第二属性配置。

可选地,在本申请的任一实施例中,所述客户端在进行包括运行策略配置的第一配置包括如下中的至少一种:执行时间、接口、客户端ip及掩码、服务端ip、循环次数、循环间隔。

可选地,在本申请的任一实施例中,所述第二配置进一步用于进行协议的监听端口,监听地址的配置。

可选地,在本申请的任一实施例中,所述第二属性配置包括制定部分功能代码测试,或者全部代码测试。

可选地,在本申请的任一实施例中,所述第四配置进一步用于进行协议的监听端口,监听地址的配置。

可选地,在本申请的任一实施例中,所述客户端进一步用于判断是否满足结束所述工业协议自动化仿真测试的条件,若满足,则结束所述工业协议自动化仿真测试的条件;否则,继续执行所述工业协议自动化仿真测试。

可选地,在本申请的任一实施例中,所述客户端上设置有:

第一配置单元,用于进行包括运行策略配置的第一配置以在测试时被启动;

第二配置单元,用于进行第一测试工业协议的第二配置以在测试时被启动。

可选地,在本申请的任一实施例中,所述客户端进一步用于进行日志输出配置,包括输出路径、输出类型以及存储大小。

可选地,在本申请的任一实施例中,所述客户端上配置有第三配置单元,所述第三配置单元用于进行日志输出配置。

本申请实施例提供了一种基于linux系统的工业协议自动化仿真测试方法,其包括:

至少一个客户端至少进行包括运行策略配置的第一配置以及第一测试工业协议的第二配置以在测试时被启动,所述运行策略配置用于设定所述工业化协议自动化仿真测试系统运行的方式,所述第二配置用于设定所述第一测试工业协议的第二属性配置;

至少一个服务端进行第二测试工业协议的第三配置以在测试时被启动,以在先后启动服务端和客户端后对所述第一测试工业协议按照所述第一配置、第二配置进行测试,或者,对所述第二测试工业协议按照所述第四配置进行测试,所述第四配置用于设定所述第二测试工业协议的第二属性配置。

本申请实施例中,所述至少一个客户端至少用于进行包括运行策略配置的第一配置以及第一测试工业协议的第二配置以在测试时被启动,所述至少一个服务端用于进行第二测试工业协议的第四配置以在测试时被启动,以在先后启动服务端和客户端后对所述第一测试工业协议按照所述第一配置、第二配置进行测试,或者,对所述第二测试工业协议按照所述第四配置进行测试,所述第四配置用于设定所述第二测试工业协议的第二属性配置。因此可进行大规模的工业协议测试,缩短工业安全设备的产品开发周期,并提高开发效率。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:

图1为本申请实施例一中基于linux系统的工业协议自动化仿真测试系统结构示意图。

具体实施方式

实施本发明实施例的任一技术方案必不一定需要同时达到以上的所有优点。

为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。

本申请实施例中,所述至少一个客户端至少用于进行包括运行策略配置的第一配置以及第一测试工业协议的第二配置以在测试时被启动,所述至少一个服务端用于进行第二测试工业协议的第四配置以在测试时被启动,以在先后启动服务端和客户端后对所述第一测试工业协议按照所述第一配置、第二配置进行测试,或者,对所述第二测试工业协议按照所述第四配置进行测试,所述第四配置用于设定所述第二测试工业协议的第二属性配置。因此可进行大规模的工业协议测试,缩短工业安全设备的产品开发周期,并提高开发效率。

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

图1为本申请实施例一中基于linux系统的工业协议自动化仿真测试系统结构示意图;如图1所示,基于linux系统的工业协议自动化仿真测试系统:包括至少一个客户端、至少一个服务端。

基于linux系统的工业协议自动化仿真测试系统中,所述至少一个客户端至少用于进行包括运行策略配置的第一配置以及第一测试工业协议的第二配置以在测试时被启动。具体地,所述客户端在进行包括运行策略配置的第一配置包括如下中的至少一种:执行时间、监控接口、客户端ip及掩码、服务端ip、循环次数、循环间隔。具体地,所述第二配置进一步用于进行协议的监听端口,监听地址的配置。所述执行时间可以包括开始执行测试的时间以及结束测试的时间。上述第一测试工业协议可以具体为目前支持工业协议有modbus、cip、dnp3、iec104、s7、iec61850-mms。本实施例中,循环次数可以控制测试的结束与否,比如当测试的次数到达循环次数,则结束测试;若测试的次数未到的循环次数,则继续进行测试。比如,以modbus协议为例,测试过程中可以根据设备地址、功能代码等顺序进行解析。

示例性,对于功能代码测试为例,如下:

1.01功能码:读取线圈(输出)状态读取一组逻辑线圈的当前状态(on/off)如:0x017,0x018……0x032

2.02功能码:读取输入状态读取一组开关输入的当前状态(on/off)如:1x017,1x018……1x032

3.03功能码:读取保持型寄存器在一个或多个保持寄存器中读取当前二进制值如:5x020=10,5x021=2000,5x022=30

4.04功能码:读取输入寄存器在一个或多个输入寄存器中读取当前二进制值如:3x020=10,3x021=2000,3x022=30

对于tcp目的监控接口不是物理端口,如以太网端口,而是嵌入在每个tcp或udp信息中用来识别信息携带的应用协议的特殊号码。例如,modbus/tcp使用502端口,http使用80端口。这些号码已在互联网地址编号分配机构(iana)注册,很少变更。假设只允许ip地址为192.168.1.10的客户端到ip地址为192.168.1.20的web服务器之间的web通讯(即http通讯),可以写这样一条acl规则:“allowsrc=192.168.1.10dst=192.168.1.20port=http”将这一acl装载到防火墙中,任何信息只要满足这三个条件就允许通过。

可选地,在本实施例中,所述客户端进一步用于判断是否满足结束所述工业协议自动化仿真测试的条件,若满足,则结束所述工业协议自动化仿真测试的条件;否则,继续执行所述工业协议自动化仿真测试。

为实现上述客户端的各个技术功能,所述客户端上可以设置有:

第一配置单元,用于进行包括运行策略配置的第一配置以在测试时被启动;

第二配置单元,用于进行第一测试工业协议的第二配置以在测试时被启动。

进一步地,所述客户端上配置有第三配置单元,所述第三配置单元用于进行日志输出配置。所述日志输出配置包括但不限于包括输出路径、输出类型以及存储大小。

本实施例中,上述第一配置单元和第二配置单元的划分并非固定不变,也可以是第一配置单元和第二配置单元之间相互复用。

于linux系统的工业协议自动化仿真测试系统中,所述至少一个服务端用于进行第二测试工业协议的第四配置以在测试时被启动,以在先后启动服务端和客户端后对所述第一测试工业协议按照所述第一配置、第二配置进行测试,或者,对所述第二测试工业协议按照所述第四配置进行测试,所述第四配置用于设定所述第二测试工业协议的第二属性配置。具体地,所述第二属性配置包括制定部分功能代码测试,或者全部代码测试。具体地,所述第四配置进一步用于进行协议的监听端口,监听地址的配置。第二测试工业协议具体可以包括但不限于modbus、cip、dnp3、iec104、s7、iec61850-mms。

示例性地,比如在进行上述工业协议测试时,可以奇偶校验以及帧检测两种测试标准。奇偶校验对每个字符都可用,帧检测(lrc或crc)应用于整个消息。它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧。用户要给主设备配置一预先定义的超时时间间隔,这个时间间隔要足够长,以使任何从设备都能作为正常反应。如果从设备测到一传输错误,消息将不会接收,也不会向主设备作出回应。这样超时事件将触发主设备来处理错误。发往不存在的从设备的地址也会产生超时。

1、奇偶校验

用户可以配置控制器是奇或偶校验,或无校验。这将决定了每个字符中的奇偶校验位是如何设置的。如果指定了奇或偶校验,“1”的位数将算到每个字符的位数中(ascii模式7个数据位,rtu中8个数据位)。例如rtu字符帧中包含以下8个数据位:11000101,整个“1”的数目是4个。如果便用了偶校验,帧的奇偶校验位将是0,便得整个“1”的个数仍是4个。如果便用了奇校验,帧的奇偶校验位将是1,便得整个“1”的个数是5个。

如果没有指定奇偶校验位,传输时就没有校验位,也不进行校验检测。代替一附加的停止位填充至要传输的字符帧中。

2、lrc检测

使用ascii模式,消息包括了一基于lrc方法的错误检测域。lrc域检测了消息域中除开始的冒号及结束的回车换行号外的内容。

lrc域是一个包含一个8位二进制值的字节。lrc值由传输设备(客户端或者服务器)来计算并放到消息帧中,接收设备在接收消息的过程中计算lrc,并将它和接收到消息中lrc域中的值比较,如果两值不等,说明有错误。

本申请实施例提供了一种基于linux系统的工业协议自动化仿真测试方法,其包括:

至少一个客户端至少进行包括运行策略配置的第一配置以及第一测试工业协议的第二配置以在测试时被启动,所述运行策略配置用于设定所述工业化协议自动化仿真测试系统运行的方式,所述第二配置用于设定所述第一测试工业协议的第二属性配置;

至少一个服务端进行第二测试工业协议的第三配置以在测试时被启动,以在先后启动服务端和客户端后对所述第一测试工业协议按照所述第一配置、第二配置进行测试,或者,对所述第二测试工业协议按照所述第四配置进行测试,所述第四配置用于设定所述第二测试工业协议的第二属性配置。

在进行以下具体实施方式之前,陈述在本专利文件全文中所使用的某些词语和短语的定义可能是有益的:用语“包括(include)”和“包括(comprise)”及其变型,意为包括而非限制;用语“或(or)”是包括性的,意为和/或;短语“与…关联(associatedwith)”和“与之相关(associatedtherewith)”及其变型可意为包括、被包括在内、“与…相互连接”、包含、被包含在内、“连接至…”或“与…连接”、“联接至…”或“与…联接”、“可与…通信”、“与…配合”、交错、并列、接近于、“被约束到…”或“用…约束”、具有、“具有…的性质”等;以及用语“控制器”意为控制至少一个操作的任何设备、系统或其部件,

这种设备可实现在硬件、固件或软件中,或者实现在硬件、固件和软件中的至少两种中的一些组合中。应注意到,与任何特定控制器有关的功能可被局域地或远程地集中或分散。在本专利文件全文中提供对于某些词语和短语的定义,本领域技术人员应理解,在许多情况下(即使不是大多数情况),这种定义适用于现有技术以及适用于如此限定的词语和短语的将来的使用。

在本公开中,表述“包括(include)”或“可包括(mayinclude)”指代相应功能、操作或元件的存在,而不限制一个或多个附加功能、操作或元件。在本公开中,诸如“包括(include)”和/或“具有(have)”的用语可理解为表示某些特性、数字、步骤、操作、组成元件、元件或其组合,而不可理解为排除一个或多个其它特性、数字、步骤、操作、组成元件、元件或其组合的存在或附加的可能性。

在本公开中,表述“a或b”、“a或/和b中的至少一个”或者“a或/和b的一个或多个”可包括所列项目所有可能的组合。例如,表述“a或b”、“a和b中的至少一个”或者“a或b中的至少一个”可包括:(1)至少一个a,(2)至少一个b,或者(3)至少一个a和至少一个b。

在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅用于将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。

当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。

如本文中使用的表述“配置为”可与以下表述可替换地使用:“适合于”、“具有...的能力”、“设计为”、“适于”、“制造为”或“能够”。用语“配置为”可不必意为在硬件上“专门设计为”。可替代地,在一些情况下,表述“配置为…的设备”可意为该设备与其它设备或部件一起“能够…”。例如,短语“适于(或配置为)执行a、b和c的处理器”可意为仅用于执行相应操作的专用处理器(例如,嵌入式处理器)或可通过执行存储在存储设备中的一个或多个软件程序执行相应操作的通用处理器(例如,中央处理器(cpu)或应用处理器(ap))。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,所述计算机可读记录介质包括用于以计算机(例如计算机)可读的形式存储或传送信息的任何机制。例如,机器可读介质包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪速存储介质、电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)等,该计算机软件产品包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

本领域的技术人员应明白,本发明实施例的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1