一种用于联锁软件形式化验证的系统模型构建方法与流程

文档序号:32799916发布日期:2023-01-03 23:22阅读:25来源:国知局
1.本发明涉及计算机联锁系统
技术领域
:,更具体地说涉及一种用于联锁软件形式化验证的系统模型构建方法。
背景技术
::2.计算机联锁系统是保障行车安全的复杂安全苛求系统,对联锁系统进行有效的分析、验证和测试是非常必要的,形式化方法以其严密的数学理论和严谨的语义定义特点,受到了诸多安全相关行业的青睐。3.随着形式化方法在铁路系统中的应用,联锁系统中引入形式化验证也成为必然趋势。构建计算机联锁系统的形式化系统模型是进行联锁软件形式化开发、验证和测试的基础,模型的准确性将直接影响形式化验证和测试的结果。如何构建联锁软件形式化验证的系统模型就显得尤为重要。4.现有的形式化建模方法大多是直接从形式化领域着手建模,即采用形式化方法和数学理论模型,该方法是从基本的数学理论出发,对铁路信号人员比较难理解,应用困难;另一方面,目前的建模体系大多关注对象模型层面和系统需求层面,而很少对联锁数据层面进行系统模型构建。技术实现要素:5.为了克服上述现有技术中存在的缺陷和不足,本发明提供了一种用于联锁软件形式化验证的系统模型构建方法,本发明的发明目的在于从联锁数据层面进行系统模型构建,解决现有技术中从基本的数学理论出发,铁路信号人员难以理解,应用比较困难的问题。本发明从信号人员视角出发,重点描述联锁数据层面的系统模型构建,及其与对象模型的映射关系。本发明描述的系统模型构建方法为信号人员如何依据现有联锁数据构建系统模型提供了一种思路。6.为了解决上述现有技术中存在的问题,本发明是通过下述技术方案实现的。7.本发明提供了一种用于联锁软件形式化验证的系统模型构建方法,该构建方法包括以下步骤:s1、采用不同的编程方法和编程语言开发的两个具有相同功能的翻译器读取联锁输入数据;所述联锁输入数据包括站场拓扑结构文件、tab表格文件和布尔逻辑文件;两个具有相同功能的翻译器将联锁输入数据转换为特定格式的数据文件,并通过文件比较工具对两个具有相同功能的翻译器输出的特定格式的数据文件进行一致性校验;s2、采用编程方法开发一个系统模型构建工具,利用该系统模型构建工具读入s1步骤中经翻译器数据转换后且通过一致性校验的特定格式文件,依据特定格式文件构建系统模型;s3、依据站场拓扑结构文件转换后的特定格式文件构建站场拓扑模型:s301、创建节点和边组成的有向图结构,依据站场拓扑结构文件转换后的特定格式文件中设备连接关系,将每个设备用同一个同等类型的节点占位,每个节点定义其id和节点类型,形成节点模块;s302、通过边将节点串接成图结构,将节点与节点的连接关系两两一组定义到边模块中;s303、将站场设备对象存储于对应的节点中,形成对象模块,对象模块生成每个设备对象所在节点的节点id;s304、依据站场拓扑结构文件转换后的特定格式文件中的进路表信息,生成进路模块;s305、依据站场图区域内设备信息,生成区域模块;节点模块、边模块、对象模块、进路模块和区域模块构成完整的站场拓扑模型;s4、依据tab表格文件转换后的特定格式文件构建对象关系模型:s401、依据tab表格文件转换后的特定格式文件中各子表定义一级表格,同时,将站场拓扑结构文件转换后的特定格式文件中的信号设备子表和进路表按照一级表格进行定义;按照一级表格定义的子表包含该特定格式文件中对应子表的全部列;s402、依据用于形式化验证用的对象模型中的关系定义二级表格;建立二级表格与对象关系的映射关系,将对象模型的关系追踪到二级表格中;生成用于形式化验证的对象关系模型;s5、依据布尔逻辑文件转换后的特定格式文件构建布尔变量模型,具体的,依据用于形式化验证用的对象模型中的对象变量,人工配置变量关系映射文件,建立对象变量与布尔逻辑文件转换后的特定格式文件中的实际布尔变量的一对一映射;生成用于形式化验证的布尔变量模型。8.进一步的,s1步骤中,联锁输入数据中的站场拓扑结构文件包括站场图中各设备类型、设备名称、方向、坐标、设备间拓扑连接关系以及站场图中的进路信息;站场拓扑结构文件中涉及的设备或对象包括信号机、道岔、按钮、表示灯、区段、检查点和进路表信息。9.进一步的,s1步骤中,联锁输入数据中的tab表格文件包括车站联锁信息表及接口信息表文件;其中车站联锁信息表用于定义车站内的关键信号设备属性、进路信息表以及信号设备逻辑属性间的联锁关系;接口信息表定义了联锁与外部其他系统的接口信息,包括联锁与邻站联锁接口信息表、联锁与列控中心接口信息表、联锁与无线闭塞中心接口信息表。10.进一步的,s1步骤中,联锁输入数据中的布尔逻辑文件定义设备输入变量、输出变量、一般变量、时间变量、自保变量,并定义变量的布尔运算等式,其中变量的类型均为bool类型。11.进一步的,s301步骤中,所述节点模块是存储站场设备对象的容器,根据站场图中设备特点,定义四种类型节点,分别为单边节点、双边节点、三边节点和四边节点;节点模块定义节点识别号和延伸边数量,每个类型的节点中定义其移动路径的属性。12.更进一步的,s302步骤中,所述边模块用于存储节点的连接关系,每个边模块中生成相邻的两个节点编号,及两个节点相连接的延伸边上定义的id,通过边的连接把一个个节点串接成图的结构。13.进一步的,s303步骤中,所述对象模块用于定义存储在节点中的设备对象,这些对象从站场拓扑结构文件转换后的特定格式文件中获取,对象模块定义对象识别号、对应的用户类型、所在节点编号和特定属性信息。14.进一步的,s304步骤中,所述进路模块存储站场图中的进路信息,进路模块定义进路识别号、进路类型、起始节点和进路路径。15.进一步的,s305步骤中,所述区域模块中的区域是指由多个节点和边组成的设备集合、站场图中区域包括的区段、双动道岔和交叉渡线;区域模块定义区域识别号、区域类型和构成该区域的节点和边的集合。16.进一步的,s4步骤中,将由联锁信息表和外部系统接口表的子表、以及站场拓扑结构文件中的设备子表和进路表直接翻译的表格定义为一级表格,将一级表格依据表方法计算后生成的表格定义为二级表格。17.进一步的,s5步骤中,根据布尔逻辑文件转换后的特定格式文件中的关键字,从中识别input、output、timer定时器和布尔等式,构建布尔变量模型时,建立对象模型中的变量名与该特定格式文件中变量名称的映射关系,进行物理设备的属性到联锁数据中逻辑变量的一一映射。18.与现有技术相比,本发明所带来的有益的技术效果表现在:1、依托项目输出的联锁数据作为构建验证系统模型的输入文件,节约额外制作形式化数据的时间成本和人力成本;系统模型用于建立对象模型与联锁数据的映射关系,为安全需求的形式化验证做好数据基础,保证了对象模型和安全需求的相对稳定性。19.2、本发明分别从站场拓扑文件、联锁信息表及接口信息表、联锁内部布尔逻辑文件三个方面入手建立系统模型,各系统模型间具有相对独立性,当任一方面模型改变时,不会影响其他方面模型,便于项目应用过程中的升级和维护。20.3、本发明构建的系统模型具有通用性,在满足本发明提出的联锁数据及输入文件格式时,均可应用于本发明中的系统模型,系统模型不受项目规模、项目站场结构的限制。21.4、在本发明中,节点类型的划分依据是站场设备可扩展边数,即拓扑中该节点向外可遍历的相邻节点个数。对于站场中尽头型的信号机和轨道区段,仅一端需要连接其他设备,设置为单边节点;对于站场中非边界的信号机和轨道区段,可以沿双向进行扩展边,设计为双边节点;对于道岔设备,对外可扩展三条边,设计为三边节点;对交叉渡线,对外可扩展四个道岔点,设计为四边节点。不同方向的边通过定义在边上的id区别。所述的节点和站场设备对象可以是一对一,或一对多关系。22.5、在本发明中,对象模型的设备关系参数实质上是一组键值对组成字典结构,一组键值对关系对应一张二级表格。所述键值对以@分隔“键”和“值”,@符号前认为是“键”,@后认为是“值”,采用键和值方式存储对象集合,安全需求模型中直接使用“键.值”表示关系,如route.start_signal表示该进路的始端信号。通过使用表格计算规则构建表格模型,实现从一级表格到二级表格转化,完成对一级表格做筛选、排序、合并、内积等操作。附图说明23.图1为本发明应用的形式化验证装置结构示意图;图2为本发明用于联锁软件形式化验证的系统模型构建过程示意图;图3为本发明的站场拓扑模型中的单边节点类型图;图4为本发明的站场拓扑模型中的双边节点类型图;图5为本发明的站场拓扑模型中的三边节点类型图;图6为本发明的站场拓扑模型中的四边节点类型图;图7为本发明的站场拓扑模型构建流程图;图8为本发明的对象关系模型构建流程图;图9为本发明的布尔变量模型构建流程图。具体实施方式24.下面将结合本发明说明书附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。25.联锁数据是联锁系统中联锁关系和功能描述的逻辑集合。设计人员根据不同的使用场景,总结出联锁需求设计来反映信号设备之间的制约关系,形成需求设计。在需求设计的基础上,使用“与”“或”“非”等逻辑运算符,将这些制约关系整理为具有联锁意义的布尔bool表达式,即通用联锁规则。在特定车站,数据制作人员根据特定车站实际信号设备名称和属性,以及设备之间的位置关系等,通过配置和联锁逻辑生成工具结合,将通用联锁规则进行实例化(即将实际设备与通用联锁规则中的变量相关联),生成特定联锁数据。26.形式化验证是一种采用严密的数学语言定义系统的安全需求规范,通过形式化语言建立对象模型和安全需求规约,使用模型检测的方法遍历模型,以验证模型完全遵守安全需求规约。这种验证方法有自动化程度高,覆盖场景全等优势。因此,使用形式化方法对联锁数据进行安全验证,是防止联锁数据对应模型发生安全逃逸的一种有效手段。27.对特定联锁数据进行验证,即是验证将特定联锁数据代入实际使用场景是否存在引起危害,如进路错误解锁、列车冒进进路等情况的发生。常规的形式化验证,需要在形式化开发的基础上进行,也就是在需求设计阶段就开始使用形式化语言开发。但是,对于已经在现场使用的联锁数据来说,重新进行形式化开发所需要的成本很高,且如此广泛的变更容易引入未知的设计缺陷,影响系统的安全性。28.本技术应用的形式化验证装置如图1所示,需要将系统模型和安全需求模型输入到验证器中进行验证,安全需求模型基于对象模型创建,系统模型依托联锁输入数据构建,验证的实质是验证联锁数据是否满足安全性,因此联锁数据的处理对于形式化验证是最关键的步骤。本技术构建的系统模型应用与计算机联锁软件的形式化验证装置,该系统模型的作用是建立对象模型与联锁数据的映射联系。29.在本实施例中,用于形式化验证的联锁输入数据包括以下三个方面:(1)站场拓扑结构文件,为文本类型,包括站场图中各设备类型、名称、方向、坐标、设备间拓扑连接关系等属性以及站场图中的进路信息,其中涉及的设备或对象包括:信号机《signal》、道岔《switch》、按钮《button》、表示灯《alarm》、区段《track》、检查点《check》等,进路表信息《routetable》;(2)车站联锁信息表及接口信息表文件,为表格类型文件,其中,车站联锁信息表用于定义车站内的关键信号设备属性、进路信息表以及信号设备逻辑属性间的联锁关系;接口信息表定义了联锁与外部其他系统的接口信息;(3)布尔逻辑文件,文本类型,定义设备输入变量、输出变量、一般变量、时间变量、自保变量,并定义变量的布尔运算等式,其中,变量类型均为bool类型。布尔逻辑文件是联锁系统运行的规则文件。30.在本实施例的一种实施方式,是依据联锁输入数据类型,构建通用的系统模型。如图2所示,本实施例公开了一种用于联锁软件形式化验证的系统模型构建方法,该构建方法包括以下步骤:s1、采用不同的编程方法和编程语言开发的两个具有相同功能的翻译器读取联锁输入数据;所述联锁输入数据包括站场拓扑结构文件、tab表格文件和布尔逻辑文件;两个具有相同功能的翻译器将联锁输入数据转换为特定格式的数据文件,并通过文件比较工具对两个具有相同功能的翻译器输出的特定格式的数据文件进行一致性校验。31.在本实施例中,所述的翻译器是采用公开号为cn113031934b,专利号为zl202110368555.1,名称为“一种用于形式化验证的联锁数据安全转换方法及翻译器”中记载的转换方法进行数据转换的。转换后的特定格式文件为lcf格式文件或hll格式文件。32.进一步优选的,采用编程方法开发一个系统模型构建工具,利用该系统模型构建工具读入s1步骤中经翻译器数据转换后且通过一致性校验的特定格式文件,依据特定格式文件构建系统模型。33.本实施例中将联锁输入数据转换为特定格式文件,具体是转换为为形式化验证软件可以识别的数据格式,从而将特定车站的联锁数据融入到形式化验证的系统模型中。34.在本实施例中,采用编程方法开发一个系统模型构建工具,利用该系统模型构建工具读入s1步骤中经翻译器数据转换后且通过一致性校验的特定格式文件,依据特定格式文件构建系统模型。可以使用python编程语言进行开发,也可以采用ocaml编程语言开发。35.作为本实施例的又一种实施方式,如图7所示,依据站场拓扑结构文件转换后的特定格式文件构建站场拓扑模型,具体步骤如下:s301、创建节点和边组成的有向图结构,依据站场拓扑结构文件转换后的特定格式文件中设备连接关系,将每个设备用同一个同等类型的节点占位,每个节点定义其id和节点类型,形成节点模块;s302、通过边将节点串接成图结构,将节点与节点的连接关系两两一组定义到边模块中;s303、将站场设备对象存储于对应的节点中,形成对象模块,对象模块生成每个设备对象所在节点的节点id;s304、依据站场拓扑结构文件转换后的特定格式文件中的进路表信息,生成进路模块;s305、依据站场图区域内设备信息,生成区域模块;节点模块、边模块、对象模块、进路模块和区域模块构成完整的站场拓扑模型。36.在本实施例中,构成的完整的站场拓扑模型包括以下模块:——节点模块,是存储站场设备对象的容器,根据站场图中设备特点,定义四种类型节点,分别为单边节点(如图3所示)、双边节点(如图4所示)、三边节点(如图5所示)和四边节点(如图6所示);节点模块定义节点识别号和延伸边数量,每个类型的节点中定义其移动路径的属性。如一个双边节点分别定义0,1代表对外延伸的两边,则经过该节点允许的路径为[0,1],[1,0]两条。[0037]——边模块,用于存储节点的连接关系,每个边模块中生成相邻的两个节点编号,及两个节点相连接的延伸边上定义的id,通过边的连接把一个个节点串接成图的结构。[0038]——对象模块,用于定义存储在节点中的设备对象,这些对象从站场拓扑结构文件转换后的特定格式文件中获取,对象模块定义对象识别号、对应的用户类型、所在节点编号和特定属性信息。这里的用户类型是系统模型中站场设备对象与形式化代码层对象模型映射的连接,增加专门的配置文件定义映射关系,依据此映射关系实现代码层对象模型实例化。[0039]——所述进路模块存储站场图中的进路信息,进路模块定义进路识别号(进路名称)、进路类型、起始节点和进路路径。[0040]——区域模块,区域是指由多个节点和边组成的设备集合,区域模块定义区域识别号(设备名称)、区域类型和构成该区域的节点和边的集合。[0041]在本实施例中,节点类型的划分依据是站场设备可扩展边数,即拓扑中该节点向外可遍历的相邻节点个数。对于站场中尽头型的信号机和轨道区段,仅一端需要连接其他设备,设置为单边节点;对于站场中非边界的信号机和轨道区段,可以沿双向进行扩展边,设计为双边节点;对于道岔设备,对外可扩展三条边,设计为三边节点;对交叉渡线,对外可扩展四个道岔点,设计为四边节点。不同方向的边通过定义在边上的id区别,定义原则见图3至图6所示。所述的节点和站场设备对象可以是一对一,或一对多关系。[0042]作为本实施例的又一种实施方式,如图8所示,依据tab表格文件转换后的特定格式文件构建对象关系模型,具体过程如下:s401、依据tab表格文件转换后的特定格式文件中各子表定义一级表格,同时,将站场拓扑结构文件转换后的特定格式文件中的信号设备子表和进路表按照一级表格进行定义,按照一级表格定义的子表包含该特定格式文件中对应子表的全部列;s402、依据用于形式化验证用的对象模型中的关系定义二级表格;建立二级表格与对象关系的映射关系,将对象模型的关系追踪到二级表格中;生成用于形式化验证的对象关系模型。[0043]tab表格类文件可以归纳为定义对象间关系或者属性的文件,将由联锁信息表和外部系统接口表的子表、以及站场拓扑结构文件中的设备子表和进路表直接翻译的表格定义为一级表格,将一级表格依据表方法计算后生成的表格定义为二级表格。二级表格通常是由一列或两列组成的简单表格,因此二级表格定义设备间关系单一化,更加简洁明了,便于搜索。通常我们将对象模型中定义的设备关系映射到二级表格,对象模型的关系如:描述一条进路的始端信号机,可以在进路对象下建立route@start_signal关系,该关系可以对应一个由进路和信号机两列组成的二级表格route_start_signal[“path”,“signal”]。[0044]对象模型的设备关系参数实质上是一组键值对组成字典结构,一组键值对关系对应一张二级表格。所述键值对以@分隔“键”和“值”,@符号前认为是“键”,@后认为是“值”,采用键和值方式存储对象集合,安全需求模型中直接使用“键.值”表示关系,如route.start_signal表示该进路的始端信号。通过使用表格计算规则构建表格模型,实现从一级表格到二级表格转化,完成对一级表格做筛选、排序、合并、内积等操作。[0045]作为本实施例的又一种实施方式,参照说明书附图9所示,依据布尔逻辑文件转换后的特定格式文件构建布尔变量模型,具体的,依据用于形式化验证用的对象模型中的对象变量,人工配置变量关系映射文件,建立对象变量与布尔逻辑文件转换后的特定格式文件中的实际布尔变量的一对一映射;生成用于形式化验证的布尔变量模型。[0046]翻译器将实现对原始布尔文件的翻译,根据布尔文件中的关键字,从中识别input,output,timer定时器,布尔等式。构建布尔文件模型时,需要建立对象模型中的变量名与输入文件中的变量名称的映射关系,实现物理设备的属性到联锁数据中逻辑变量的一一映射,映射过程可以由人工通过配置文件的设计实现。其中,所有定时器需均设置为到期式定时器,定时器触发后,开始计时,延时结束,时间变量值发生改变。[0047]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1