基于UML建模的计算机联锁进路模块Petri网验证
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于UML建模的计算机联锁进路模块Petri网验证
薛丰;杨扬;谢林
【摘要】对于铁路车站计算机联锁软件中的重要部分之一的进路模块,使用UML 对其进行建模.针对UML没有精确语义、缺少模型分析和验证手段不足的缺点,利用具有严格理论分析方法的Petri网对模型进行形式化验证,保证模型的精确性和安全性.%Route module is one of the important parts in railway station computer interlocking software, it can be modeled by using UML. For disadvantages that UML is lack of precise semantics, lack of model analysis and validation methods, Petri net, which has strict theoretical analysis method, was used to formal verifying for the module, ensure the accuracy and security of the module.
【期刊名称】《铁路计算机应用》
【年(卷),期】2017(028)004
【总页数】5页(P10-14)
【关键词】车站联锁;UML;Petri网;建模
【作者】薛丰;杨扬;谢林
【作者单位】西南交通大学信息科学与技术学院,成都 611756;西南交通大学信息科学与技术学院,成都 611756;西南交通大学信息科学与技术学院,成都 611756【正文语种】中文
【中图分类】U284.3;TP39
目前在铁路联锁系统中,计算机联锁已经逐渐取代了传统的 6502 继电联锁,广泛应用于客、货运线路上[1]。
计算机联锁的首要任务是保证行车安全,这决定了计算机联锁系统是一个有着高度可靠性、故障—安全性和实时性要求的安全—关键系统。
在系统组成上,计算机联锁系统由联锁硬件系统和联锁软件系统组成。
对于联锁硬件系统,目前国内对其的研究已比较完善,各大厂家所研制的计算机联锁系统在硬件方面较高程度上满足所需的可靠性和安全性。
但对于软件的安全性和可靠性的研究与应用,并不像硬件那样成熟[2]。
在软件设计的初始阶段,应对软件整体进行建模并验证,这可以减少软件之后设计时错误的发生。
(1)简要介绍 UML 和 Petri网的概念;(2)利用UML中状态图对联锁软件中的进路模块进行建模;(3)利用转换规则将 UML 图转换为 Petri 网;(4)验证模型的安全性和可靠性以及应用方向。
1.1 UML简介
UML是一种通用的可视化建模语言,描述在软件开发方法中用于表示设计的符号(通常是图形符号)。
UML 的定义包括 UML 语义和 UML 表示法,UML语义描述基于UML的精确元模型定义,UML表示法为系统建模提供了标准的UML符号表示法两个部分[3]。
UML主要包括静态建模和动态建模。
静态建模从系统的内部结构和静态角度出发来描述系统,主要包含类图、用例图、组件图、配置图和包图等图形。
动态建模从系统中对象的动态行为和组成对象间的相互作用、消息传递来描述系统,主要包含状态机图、活动图、顺序图、合作图等图形。
UML状态图主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。
一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机,重点在与描述状态
图的控制流。
状态图可以较为清晰直观地描述事件的每一个状态以及状态之间迁移的条件。
在联锁软件系统中,不同的时间点系统可能会处于不同的状态,状态本身和状态之间迁移的条件对软件的建模和验证都是至关重要的,因此本文采用UML状态图对进路模块进行建模。
1.2 Petri网简介
Petri网的形式化定义如下[4]:
定义:一个 Petri网结构 PN 是一个 5 元组,PN=(P, T, I, O, M0)。
其中:(1)P={p1, p2, … , pn},是一个有限库所集合,n ≥ 0。
(2)T={t1, t2, … , tm},是一个有限变迁集合,m ≥ 0。
库所集合和变迁集合不
相交,即P ∩ T = φ。
(3)I:T → P∞,是输入函数,从变迁到空间包的映射。
(4)O :T → P∞,是输出函数,从变迁到空间包的映射。
(5)M0:P → N,是网络的初始令牌标记,其中,N是非负整数集合。
一个 Petri网模型可以用一个有向图结构来表示。
用有向图结构表示 Petri网时,
库所 p 用圆圈表示;变迁 t用方框表示;库所与变迁之间的有向弧用箭头线连接;令牌是库所中的动态对象,可以从一个库所移动到另一个库所。
一个 Petri网模型的执行可以通过各库所的令牌变化来表示。
当一个变迁所有输入库所中每一个库所的令牌数目不小于其到达该变迁的弧的数目时,该变迁将使能,此过程称为变迁点火。
变迁点火后,所有使能的令牌将从其输入库所移除,并添加到所有输出库所。
通过初始标记 M0,在模型中只要存在一个使能的变迁,变迁点火将持续,直到不存在使能的变迁为止。
2.1 联锁进路模块
铁路信号计算机联锁系统,是在原有 6502 电气集中控制系统基础上发展起来的一
种实时控制系统,同时它又是以计算机技术为基础,有着很高可靠性和安全性要求的安全-关键系统。
在联锁系统中,进路模块是其中的核心部分,它控制着进路的
建立和解锁,对于站内行车的安全和效率起着至关重要的作用。
进路控制过程分为进路建立过程和进路解锁过程。
进路建立过程可进一步分解成以下 5 个阶段[5]:
(1)操作阶段:办理进路时,操作人员按压进路的始端按钮和终端按钮,以确定进路的范围、方向和性质(指列车进路,还是调车进路)。
(2)选岔(路)阶段:根据已确定的进路范围,自动选出与进路有关的道岔位置。
(3)道岔转换阶段:将选出的道岔位置转换到所需的位置。
(4)进路锁闭阶段:道岔转换完毕后,将有关道岔和敌对进路予以锁闭,确保行车安全。
(5)开放信号阶段:给出允许信号,放行列车或车列。
进路解锁包含4种情况:
(1)取消进路:在信号开放后,列车或调车车列尚未驶入其接近区段的期间,进路需要解锁,此时需确认接近区段以及进路无车才能取消进路。
(2)正常解锁:正常解锁指当列车或车列压入进路后,进路进行自动解锁。
正常解锁又分为一次解锁和分段解锁制两种方式。
前者是指一次解锁指列车或车列完全通过进路后,进路上的各个区段同时自动解锁。
后者指列车或车列通过每通过一个区段,该区段就自动解锁。
(3)人工延时解锁:信号开放后列车或调车车列驶入接近区段后,由于某种特殊原因需要取消已建立的进路而采取的一种解锁方式。
从信号关闭时算起,接车进路和正线发车进路要延时 3 min 解锁,站线发车进路和调车进路要延时 30 s解锁,以保证在解锁前车已经停住。
(4)故障解锁:进路不应该锁闭而锁闭了,或者应该解锁而没有解锁,都叫做故
障锁闭。
故障解锁即指解除故障锁闭而言,一般只要求解除解除某一个区段的故障锁闭。
2.2 进路建立子模块建模
基本进路过程包括进路选排、进路锁闭、进路信号开放、进路信号保持和进路解锁等过程。
为了使建模过程简单清晰,进路模块可拆分为进路建立子模块和进路解锁子模块。
进路建立子模块包括了进路选排、进路锁闭、进路信号开放这3个过程,每个过程包含了若干状态。
其UML状态图如图1所示。
2.3 进路解锁子模块建模
进路解锁子模块包括了进路信号保持和进路解锁两个过程,每个过程包含了若干状态。
其UML状态图如图2所示。
2.4 进路模块建模
在分别对进路建立和进路解锁建模后,将两者结合并完善,可得到进路模块状态图,如图3所示。
在进路模块状态图中有若干改进的地方:
(1)在<道岔转换〉、<信号开放〉、<进路正常解锁〉状态添加了指向<
错误报告〉的迁移,当状态出现错误时会进入失败报告状态,向系统发送设备故障消息后结束。
(2)考虑到联锁软件运行的持续性,在进路正常解锁后应该回到初始状态,因此在进入<取消进路解锁〉状态和<正常进路解锁〉状态后会触发初始化迁移,回到<初始状态〉。
改进之后的进路模块UML状态图如图4所示。
至此,进路模块的UML状态图绘制完成,在图中可清晰直观地观察每个状态以及状态间迁移的条件。
但由于复杂系统的建模往往需要进行严格的形式化分析和验证,而UML却是半形式化的,因为其语法结构虽然采用了形式化的规约,但其语义部
分则是用自然语言描述的,缺乏准确的语义,这使得对模型难以进行定量定性的分析和验证[6]。
因此,需要运用 Petri网对所作的 UML 状态图形式化。
3.1 UML状态图向Petri网的转化规则
Petri网具有图形化的表示方法,直观明了;有极强的描述能力;能准确的描述系统的重要特性;是一种有严格定义的数学对象。
基于上述优点,在将 UML 图转为形式化规范时,Petri网是一种合适的选择。
在转换过程中需要遵守如下规则:
(1)初始状态和最终状态向 Petri网的转换如图5 所示。
状态图中的状态对应于Petri网的库所,状态图中的迁移对应于 Petri网的变迁。
(2)基本状态的转换如图 6所示。
基本状态指不含子结构且无嵌套的状态。
(3)分支和汇合状态的转换如图 7所示。
分支和汇合状态指从某一状态由不同的迁移进入不同的分状态,最后又汇合至另一状态。
3.2 UML状态图向Petri网的转化
依照以上列举出的转换规则,实现UML状态图向 Petri网的转换。
转换之后 Petri 网模型如图 8 所示。
Petri网模型中各库所和变迁的物理意义如表 1、表2所示。
图 7 所建立的 Petri网模型大部分内容是根据图3以及之前所述的转换规则进行
的绘制,也对若干细节进行了完善。
增加库所 p1、p4、p9 分别代表了选路、道岔转换、开放进路3个阶段,其目的是判断模型当前运行的阶段,使模型结构更加清晰。
初始时库所 p1拥有 1块令牌,在模型运行过程中此令牌会进入 p4 或
p9,并最终到达终点 p16 或者 p17。
模型的执行过程,可以用反映标记变化的可达性图来表示[7]。
由初始值 M0={1, 1, 0, …, 0} 以及变迁条件得到模型的可达性图如图9所示。
3.3 模型的验证
对生成模型的验证分为两方面:(1)验证Petri网自身的特性,如有界性、活性、完整性等;(2)验证模型是否能满足进路模块的需求。
通过对图9进行分析可以得到以下结论:
(1)可达性图中所有位置的库所中的令牌数目都是有限的,因此该模型是有界的。
又由于各位置的各库所所拥有的令牌数不大于1,因此该模型是安全的。
(2)模型中各个变迁都可以点火,即所有变迁都是可执行的,因此该模型是活的,保证运行中不会出现死锁现象。
(3)在模型中除了终点位置(μ13 和μ14)外,其他各位置至少有两种不同库所的令牌,保证了模型不会因为令牌异常导致误操作。
(4)模型采用了循环结构,正常时按照动作先后顺序运行,到达终点(μ14)后
会回到起点(μ1)。
发生异常时会根据异常类型,选择不同的变迁到达终点
(μ13),此时不会回到起点(μ1),表明进路模块异常结束。
符合进路模块的
需求。
3.4 模型应用
在联锁软件设计的开始阶段,对软件进行UML建模并使用Petri网对其进行验证,不仅能使设计思路更加清晰,降低软件的复杂程度,并且可以验证软件的安全性、可靠性等重要性能,避免软件设计过程中出现严重错误。
对于联锁软件具体模块的建模验证,可以采用层次分析法,将一个主要模块分成若干子模块,分别进行建模,最后合成一张 Petri网进行整体验证。
这样既能使各子模块在视觉上互相区分,又能考虑互相之间的联系使它们成为一个整体。
对于更加复杂的联锁软件的 Petri网验证,可以加入有色令牌或者时间因子[8]。
有色令牌的加入可以区分同一阶段的不同对象,如不同的现场设备,由此可分别对不同对象的动作进行分析。
时间因子的加入可以验证各变迁即各操作是否符合时间约束,由此可以验证软件的实时性和时间特性。
本文采用UML状态图对联锁进路模块进行建模,并使用 Petri网对其进行形式化验证,吸收了两种方法各自的优点。
通过对模型的分析验证,保证进路模块设计时的正确性和安全性。
此方法也可以对联锁软件其他模块进行建模验证,从而确保联锁软件整体的可靠性和安全性。
【相关文献】
[1] 林瑜筠 , 吕永昌 . 计算机联锁 [M].北京:中国铁道出版社 , 2013.
[2] 韦启盟 . 计算机联锁软件仿真测试系统的研究与实现 [D].成都:西南交通大学 , 2008.
[3] Grady Booch, James Rumbaugh, Ivar Jacobson. UML 用户指南 [M] .邵维忠,译 .北京:人民邮电出版社 , 2013.
[4] Peterson J L. Petri Net Theory and the Modelling of Systems[M]. Prentice Hall, 1981.
[5] 杨扬 . 车站信号控制系统 [M].成都:西南交通大学出版社 , 2012.
[6] 周长红 . UML 图的 Petri网建模 [D].济南:山东科技大学 , 2004.
[7] 杨扬 , 潘明 , 何梅芳 . 联锁软件的 Petri网形式化定义 [J].北京:中国铁道科学 , 2002, 23(3): 49-54.
[8] Mustafa S.Durmus, Ugur Yildirim, Mehmet T.Soylemez. Automatic Generation of Petri Net Supervisors for Railway Interlocking Design[C]. Australian Control Conference, 2012.。