摘要:車站聯(lián)鎖軟件一直有著嚴(yán)格的測試要求,仿真模塊是測試的重要組成部分,Petri網(wǎng)作為形式化語言的一種,有著準(zhǔn)確與完備的特點,對于安全苛求軟件的測試尤為適合,該文提出了一種使用Petri網(wǎng)對聯(lián)鎖軟件測試中仿真模塊建模的方式,并分別給出了針對鐵路道岔的基于基本Petri網(wǎng)和有色Petri網(wǎng)2個建模實例。該模型有助于提高測試系統(tǒng)的安全性與精確性。
關(guān)鍵詞:聯(lián)鎖;軟件測試;建模;Petri網(wǎng)
中圖分類號:U284文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2008)30-0606-03
Research on Simulation Modeling at Railway Interlocking Software Test Based on Petri Net
GONG Jie
(School of ElectronicsInformation Engineering, Tongji University, Shanghai 201804, China)
Abstract: The railway interlocking software always have a strict test demand ,simulation is an important part of test. As a kind of formal program language, Petri-Net is veracity and integrality. It is very suitable for the safety-critical software test. In the paper, it proposes an idea abort simulation modeling at railway interlocking software test. Furthermore, it presents two examples on Petri-Net and Color Petri-Net. It will help to improve the system’s security and veracity.
Key words: interlocking; software test; modeling; Petri-Net
環(huán)境仿真技術(shù)是軟件測試的重要組成部分,它不僅要能夠模仿出被仿系統(tǒng)的正常運行行為,還要能夠?qū)崿F(xiàn)故障注入的模擬。鐵路聯(lián)鎖軟件是對鐵路站場信號設(shè)備進行實時控制,以保證站內(nèi)行、調(diào)車安全和提高作業(yè)效率為目的的一種安全軟件[1]。隨著鐵路提速與計算機聯(lián)鎖應(yīng)用的普及,對于鐵路計算機聯(lián)鎖軟件的測試越來越普遍。為了能有效地提供一個與車站聯(lián)鎖系統(tǒng)的實際環(huán)境相仿的供檢測的環(huán)境,我們就希望在計算機聯(lián)鎖測試評估平臺上利用計算機系統(tǒng)仿真技術(shù)模擬出車站內(nèi)部的聯(lián)鎖情況,同時也能夠?qū)崿F(xiàn)故障注入的模擬。
作為建模工具的一種,Petri網(wǎng)是1962年由Petri.C.A在他的博士論文中作為網(wǎng)狀結(jié)構(gòu)的信息流模型提出來的[3]。近年來,Petri網(wǎng)以及它的各種改進模型如: 有色Petri網(wǎng)等被廣泛地應(yīng)用到了眾多復(fù)雜系統(tǒng)的離散事件仿真模型搭建工作中,為離散事件的仿真提供了不少新的方法。相對于傳統(tǒng)的馬式鏈等建模方法,Petri網(wǎng)作為一種形式化方法,它不僅能分析系統(tǒng)軟,硬件中多方面的特性(如功能性,安全性,可靠性,實時性等)而且對于計算機聯(lián)鎖這類安全性極高的安全苛求軟件還可檢測系統(tǒng)定義的一致性,完整性和精確性?;赑etri網(wǎng)的這些優(yōu)點,考慮到對聯(lián)鎖軟件測試所要模擬的鐵路站場的信號設(shè)備動作均是離散事件,因而我們嘗試著將Petri網(wǎng)引入對聯(lián)鎖軟件的測試仿真之中。本文針對鐵路聯(lián)鎖三大件之一的道岔提出了基于Petri網(wǎng)的仿真建模方案。
1 車站聯(lián)鎖仿真
仿真簡而言之就是在模型上進行試驗的過程。車站聯(lián)鎖仿真是要仿出一個鐵路車站信號系統(tǒng)中現(xiàn)場的各種設(shè)備(信號機,道岔,軌道電路區(qū)段等)在聯(lián)鎖邏輯下由聯(lián)鎖控制、列車運行或故障事件所導(dǎo)致的狀態(tài)變化的平臺提供給被測軟件作為其測試的命令對象[1]。因此,仿真環(huán)境必須能正確模仿這三種信號設(shè)備的動作,包括能夠正確模擬信號機的燈光顯示變換、道岔的位置轉(zhuǎn)換、列車和車列在站內(nèi)運行引起相應(yīng)軌道區(qū)段的占用或出清等。由于軌道電路區(qū)段的變化還涉及列車的運行,因此仿真環(huán)境還需模擬站內(nèi)列車的各種行、調(diào)車作業(yè)。由于安全苛求軟件對安全性的嚴(yán)格要求,仿真環(huán)境還必須做到能夠根據(jù)測試的要求注入故障,成為一個嵌入故障的仿真環(huán)境。以考察被測軟件對于故障的應(yīng)對能力。在這里Petri網(wǎng)的使用可以有效的模擬各種設(shè)備的動作和故障注入,描述各個設(shè)備的狀態(tài)變化。
2 Petri網(wǎng)
隨著對Petri網(wǎng)研究的深入,各種Petri網(wǎng)層出不窮,但是目前在仿真領(lǐng)域應(yīng)用最為廣泛的仍是基本Petri網(wǎng)與有色Petri網(wǎng)。在文獻(xiàn)[3]與[4]中有著對基本Petri網(wǎng)與有色Petri網(wǎng)明確的定義:
2.1 基本Petri網(wǎng)
基本Petri網(wǎng)是一個四元組PN=(S,T;F,M0 )[3]
1) P為由庫所(places)組成的一類有限集合
2)T為由變遷(transitions)組成的一類有限集合
3) F為網(wǎng)的流關(guān)系(flow relation):且滿足:
4)M0為基本Petri網(wǎng)PN的初始標(biāo)識。
2.2 有色Petri網(wǎng)的結(jié)構(gòu)
有色Petri網(wǎng)的定義有多種,在這里我們選用了Kurt Jensen所給出的經(jīng)典定義:有色Petri網(wǎng)是一個多元組CPN=(∑,P,T,A,N,C,G,E,I)它滿足如下條件[4]:
1) ∑是一有限非空類型集合,稱為顏色集
2)P為由庫所(places)組成的一類有限集合
3)T為由變遷(transitions)組成的一類有限集合
4)A是有限的弧集,且滿足
5)N稱為節(jié)點(node)函數(shù),定義為 N:A→P×T∩T×P
6)C稱為顏色(color)函數(shù),定義為 C:P→∑
7)G稱為防護(guard)函數(shù),定義為,G:T→expressions(expressions為表達(dá)式),且滿足:
其中Type為類型函數(shù),Var是變量函數(shù),Var(expression)為由expression中所含變量組成的集合。
8)E為弧表達(dá)式函數(shù),定義為 E:A→expressions,且滿足:
這里的p(a)表示n(a)的庫所。
9)I為初始化函數(shù),它將每一庫所映射成一常量表達(dá)式,且滿足:
有色Petri網(wǎng)與基本Petri網(wǎng)的不同之處在于其擁有較高的折疊性,可以有效的減少庫所的數(shù)量,將基本Petri網(wǎng)較難描述的模型簡單的表示出來,改變基本Petri網(wǎng)對復(fù)雜系統(tǒng)無法描述的缺點。
3 仿真建模實例
在仿真建模中可根據(jù)不同的設(shè)備要求來選擇要使用的Petri網(wǎng)的類型,對于狀態(tài)與事件較少的設(shè)備可以就使用基本Petri網(wǎng)來描述,而對于某些較為復(fù)雜的設(shè)備則要利用有色Petri網(wǎng)才能建立起。下面將會給出對基本道岔模型(基本Petri網(wǎng))和含故障設(shè)置的道岔模型(有色Petri網(wǎng))的建模實例。
3.1 道岔的基本Petri網(wǎng)模型
道岔在聯(lián)鎖系統(tǒng)中是用來提供給列車軌道轉(zhuǎn)換的裝置,用來保障列車進入正常進路區(qū),正常情況下,它根據(jù)進路的建立命令的保持不同的狀態(tài),因此在建立仿真模型的過程中,應(yīng)把道岔所受的聯(lián)鎖控制以及其的所處狀態(tài)作為需要考慮的重要因素,而其物理位置、形狀、外殼顏色等物理特性均可以忽略不記[2]。選擇道岔的顯示狀態(tài)作為庫所,道岔所受的聯(lián)鎖控制作為變遷,可以很好地描述道岔的狀態(tài)轉(zhuǎn)換。由于道岔的當(dāng)前狀態(tài)只有4種,用基本Petri網(wǎng)即可方便、直觀描述。如圖1,清楚的表明了基本道岔的狀態(tài)轉(zhuǎn)換。
表1詳細(xì)解釋了道岔基本Petri網(wǎng)模型中的各個庫所和變遷的物理意義,即離散事件的各個狀態(tài)與引發(fā)狀態(tài)變化的事件。例如,在定位鎖閉這一變遷(T1)觸發(fā)后,信號機就會由初始狀態(tài)定位狀態(tài)(S1)顯示為鎖閉狀態(tài)(S3)。當(dāng)?shù)啦戆l(fā)生解鎖的變遷(T5)發(fā)生后,道岔將會重新回到定位(S1)。上圖中的四開是指一種道岔岔尖保持不接觸的狀態(tài)的鐵路術(shù)語,是一種正常狀態(tài),而并非指道岔失去表示。
假定Petri網(wǎng)的原始狀態(tài) M0={1,0,0,0},則其的可達(dá)性圖參見圖2。
通過上述可達(dá)性圖可以清楚的看出對于每個狀態(tài)M,其托肯顯示出的都是單一道岔狀態(tài),沒有出現(xiàn)多狀態(tài)或無狀態(tài)顯示的錯誤,且根據(jù)Petri網(wǎng)的定義我們可以判定上一模型具有良好的可達(dá)性、可逆性與活性。
3.2 含故障設(shè)置的道岔的有色Petri網(wǎng)模型
在基本道岔的基礎(chǔ)上,往往在許多的測試中要求加入一定的故障,來觀察道岔對于故障的處理能力,在這里就需要做故障恢復(fù)的考慮(記憶性),因此用基本的Petri網(wǎng)來描述軌道區(qū)段就不再合適了,所以改為選擇有色Petri網(wǎng)來描述軌道區(qū)段的狀態(tài)。其托肯構(gòu)造如下所示:
Token={ID,STATE0,STATE1}
其中:ID表示區(qū)段的物理地址,STATE0表示道岔的當(dāng)前狀態(tài),STATE1表示道岔的上一狀態(tài)(在故障設(shè)置中也可以模糊化為一記憶態(tài),即追溯為上一對于判決有用的狀態(tài))。在這種托肯結(jié)構(gòu)下,每個托肯就可以同時包含當(dāng)前狀態(tài)與以前狀態(tài)的信息,原來在這種條件下,使用基本Petri網(wǎng)來描述軌道區(qū)段的狀態(tài)變化會導(dǎo)致庫所的急劇增加,模型非常復(fù)雜,因此我們選用有色Petri網(wǎng)來建立仿真模型(圖3),同一庫所可以含有不同顏色的托肯,大大簡化了模型。
模型中,庫所集P={S1,S2,S3,S4,S5}代表軌道道岔的狀態(tài)空間,S1: 定位;S2: 反位;S3:四開;S4:鎖閉;S5:失表示。變遷集T={T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 }包括了進路的控制命令與故障設(shè)置命令兩個部分的事件所轉(zhuǎn)化成的變遷。
對于P當(dāng)中的各個庫所,定義色集如下:
C(S1)={(ID,S1,S3), (ID,S1,S4)}
C(S2)={(ID,S2,S3), (ID,S2,S4)}
C(S3)={(ID,S3,S1), (ID,S3,S2), (ID,S3,S5)}
C(S4)={(ID,S4,S1), (ID,S4,S2)}
C(S5)={(ID,S5,S3)}
從上面可以看到,我們將當(dāng)前狀態(tài)STATE0相同的托肯都定義在同一庫所中。
表2詳細(xì)解釋了道岔模型中的庫所和變遷的物理意義,即離散事件的各個狀態(tài)(多個狀態(tài)依據(jù)某一規(guī)則集中成同一個庫所)與引發(fā)狀態(tài)變化的事件?;〖螦={a1 ,a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ,a17, a18, a19, a20, a21, a22, a23, a24},表3給出了弧函數(shù)E的具體定義:
防護函數(shù)G定義為:G(T6)=V1, G(T8)=V2, G(T1)=V3, G(T4)=V4, G(T9)=V5, G(T10)=V6, G(T11)=V7, G(T12)=V8,其中:
V1= (ID,S4,S1),V2= (ID,S4,S2),V3= (ID,S3,S2),V4= (ID,S3,S1)
V5= (ID,S3,S1),V6= (ID,S3,S2),V7= (ID,S5,S1),V8= (ID,S5,S2)
在這里防護函數(shù)所起的作用就是對有色Petri中的托肯加以篩選的模塊,例如防護函數(shù)V1,對于庫所S4的色集包含了2種不同的顏色{(ID,S4,S1),(ID,S4,S2)}但是根據(jù)站場的實際仿真情況,只有定位鎖閉的道岔才能在定位解鎖的命令(T6)下回到定位狀態(tài),即只有在前一狀態(tài)為定位(S1)情況下,處于鎖閉狀態(tài)(S4)的道岔才會轉(zhuǎn)化為區(qū)段持久故障占用(S1)。所以通過設(shè)立防護函數(shù)V2,在庫所S4中只允許顏色為(ID,S4,S1)的托肯才能夠觸發(fā)T6后轉(zhuǎn)化為(ID,S1,S4)。起到了一種對托肯的有條件的篩選作用。
圖1與3的模型僅僅表達(dá)了鐵路道岔的聯(lián)鎖仿真建模的部分內(nèi)容,隨著測試內(nèi)容的增加會有更多的變遷產(chǎn)生,但是從上述兩建模的實例可以看出而言,Petri網(wǎng)是非常適用于車站聯(lián)鎖的描述的。
4 結(jié)論
環(huán)境仿真是軟件測試的一個重要課題。在安全軟件的測試中,是影響測試的有效性和效率的關(guān)鍵問題。本文結(jié)合鐵路車站微機軟件測試平臺的研究課題深入探討了環(huán)境仿真建模的課題,提出了利用Petri網(wǎng)建模的思想來完成聯(lián)鎖仿真的建模。鐵路車站信號聯(lián)鎖系統(tǒng)的聯(lián)鎖邏輯關(guān)系非常的復(fù)雜,其仿真的建模過去長期使用馬式鏈來完成,結(jié)構(gòu)較為復(fù)雜,且會出現(xiàn)描述不清的狀況。使用Petri網(wǎng)建模后,利用形式化語言的準(zhǔn)確性,提高了測試的一致性,完整性和精確性,而且有利于直接轉(zhuǎn)化為具體的編程語言。
雖然上述的設(shè)計思想和理論以取得一定的成果,然而仍有有待改進之處。比如時間Petri等在建模的引進等,還需要進一步考慮??傮w看來,本文利用Petri對聯(lián)鎖軟件測試仿真建模的嘗試,對于離散事件的仿真建模起到了一定的借鑒作用。
參考文獻(xiàn):
[1] 吳芳美.鐵路安全軟件測試評估.北京:中國鐵道出版社,2001.
[2] 屠海瀅,任曉旭,吳芳美.論鐵路信號仿真的模型、算法及策略[J].上海鐵道大學(xué)學(xué)報,1998,19:3-4.
[3] 吳哲輝.Petri網(wǎng)導(dǎo)論[M].北京:機械工業(yè)出版社,2006.
[4] Kurt Jensen. Colored Petri Nets—Basic Concepts Analysis Methods and PracticalUse[M]. Second Edition. Germany: Springer, 1997:70-107.
[5] 屠海瀅.面向軟件測試的仿真環(huán)境系統(tǒng)研究及其在鐵路信號安全軟件測試中的實現(xiàn)[D].上海鐵道大學(xué)學(xué)位論文,1999.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文