李衛娟 王燕芩
計算機聯鎖系統是保障行車安全的重要基礎設備,是一個對安全性要求極為嚴格的系統。安全性除了體現在冗余結構的系統硬件上,還應考慮系統軟件的安全性。在軟件開發過程中,由于開發人員的人為失誤而引入軟件缺陷往往是不可避免的,一方面是由于軟件需求的描述不夠詳盡或者需求描述有誤;另一方面由于開發人員對于自然語言描述的需求理解不一樣,造成在需求編碼實現過程中對于系統復雜邏輯的設計和控制考慮不夠全面,導致軟件的最終設計結果與需求本身的描述存在不一致。為了保證軟件的安全性,需要系統邏輯設計與安全需求的一致性以及有效的安全驗證措施保證。無論是聯鎖軟件安全設計,還是系統功能的安全驗證及測試,都需要一份完整且明確的安全需求作為聯鎖設計和測試的依據,需要經過完整的需求分析過程,識別出聯鎖系統關聯的安全需求。
計算機聯鎖系統的安全性包括了安全功能和安全性能2個方面。安全功能主要指“系統滿足安全約束”及“構件或子系統失效對系統安全的影響”;安全性能包括安全完整度及風險等級等。現有的聯鎖系統需求描述方法,一般僅是體現了系統的功能性需求、性能需求,通過對系統功能需求加以安全屬性標識,來判定需求是否為安全需求。此種做法較為簡單粗暴,籠統的定義了系統的安全需求。未經過完整安全分析,僅通過人為增加安全屬性標識符的描述方法,導致將系統需求中的一般功能需求而非安全需求定義為安全需求,擴大了聯鎖系統安全需求的范圍,并未真正體現出安全需求的潛在危害。無法讓設計人員在軟件設計之初,就關注到安全需求及危害,導致未采取有效的安全設計措施,僅是在設計上滿足了需求的功能性要求,因為人為失誤可能導致最終的系統功能失效,危及行車安全。同時,這樣的需求描述,無法開展聯鎖軟件的安全驗證。
聯鎖系統的安全需求,需滿足如下特征。
1)通用性:需求獨立于特定應用站場布置,不會隨著站場設備的布置不同而發生變化。
2)安全性:安全需求有別于功能性需求和可用性需求。
3)可驗證性:安全需求是能夠用于系統安全驗證的一組安全屬性的集合,滿足安全驗證,則認為聯鎖系統是安全的。
4)能夠通過聯鎖系統的控制對象及對象間的制約關系獲取安全需求。
為了識別通用的安全需求,需描述聯鎖系統控制范圍要求的環境約束及應用限制。對于由于約束限制不滿足引起的危害是無法通過聯鎖系統來保障的。聯鎖系統的安全運行需遵守的限制條件:列車應按照規定的運行速度運行;聯鎖系統的操作人員能夠按照對應的運營規范執行操作;組成進路內的區段是連續的;道岔僅能在收到操作命令后啟動轉換過程;列車必須按照道岔、信號機、區段的狀態要求行車。
在聯鎖系統中,聯鎖功能是通過人工操作,基于進路控制過程,圍繞道岔、信號機、區段3個主要核心控制對象的監督、控制,指示列車按照聯鎖系統設定的路徑行車。通過嚴格的邏輯制約關系檢查,保證列車的安全運行。整個安全保證過程中,涉及人員的安全和設備的安全,其潛在的危害包括:列車追尾、列車迎面碰撞、列車脫軌、列車撞傷乘客、道岔夾傷工作人員以及未知意外而引起的事故,如操作設備失效、電磁干擾。通過收集和分析不同來源的安全需求,得出聯鎖系統的風險矩陣,如圖1所示。
對聯鎖系統的安全需求來說,基本的共識是不能發生碰撞或脫軌事件。碰撞的描述:兩輛列車同時出現在軌道或道岔同一段被認為是碰撞。脫軌:列車運行與道岔開通方向不一致會導致脫軌。但這兩點是從非常高的抽象層面在描述安全需求,它們需要被精確、細化到更低的層面,從而可以直接被設計或驗證人員使用。

圖1 計算機聯鎖系統風險矩陣
為了獲取完整的安全需求,從各種來源中提取一套通用的安全需求,并按不同的特征進行分類。分類不僅包括系統的靜態方面,如沒有碰撞和脫軌,還包括從現有的安全相關功能要求中提取的描述系統的動態方面。基于場景分析的聯鎖系統安全需求識別需要經過3個過程(稱之為Situation x Hazards過程):一是確定核心控制對象;二是定義與核心控制對象關聯的運營場景;三是定義系統防護的危害區。
以信號機為核心控制對象,說明信號機控制功能相關的安全需求過程。如圖2所示,針對信號機Sig,其防護范圍內存在道岔Sw,且Sig防護進路根據進路防護道岔Sw的開通位置,存在不同的進路終端。依據進路終端的不同,存在不同的保護區段overlap。
列車要運行經過道岔反位的進路,且進路的overlap為優先反位的overlap,則進路、信號機、道岔、overlap及列車運行過程之間的相互聯鎖關系存在如下場景。
S0:道岔被轉換到反位位置,但進路未鎖閉,進路始端信號機關閉,見圖2。
S1:進路建立并鎖閉,且進路關聯的overlap建立鎖閉,進路始端信號機開放,見圖3。

圖2 進路未建立,信號關閉

圖3 進路鎖閉,信號開放
S2:列車運行至進路的接近區段,跨壓信號機,進路始端信號機關閉,見圖4。

圖4 列車接近,跨壓信號機,信號關閉
S3:列車沿著進路的鎖閉方向運行,隨著列車運行,進路內經過的區段自動解鎖,見圖5。

圖5 列車在進路內運行
S4:列車越過進路預定的停車點,進入over?lap區域,列車已經出清進路,進路解鎖,進路內道岔解鎖,道岔被要求轉換到定位位置,見圖6。

圖6 列車進入overlap區域
識別風險區域,就是要求在當前運行場景下,根據風險矩陣關聯的設備,找出運行場景中危害發生區域,包括:
1)信號機的防護區域。
2)能夠使列車到達信號機的可能路徑。
3)進路中道岔當前的物理位置所在區域。
4)運行場景中危害發生點,如overlap區域。
肌間溝臂叢神經阻滯中應用右美托咪定超前鎮痛的臨床價值………………… 丁依依 葉克平 楊亦平 等(3)320
根據風險矩陣,聯鎖系統危害如表1所示。

表1 系統危害列表
使用Situation x Hazards過程,識別出Sx場景下的危害H。以道岔位置對信號開放的運行場景,分析道岔位置不正確時,存在的潛在風險,如圖7所示。
經過場景分析,識別出如下風險。
1)道岔若不在進路要求的正確位置,會導致列車脫軌的危害發生。
2)道岔若處于四開位置,會導致列車脫軌的危害發生。
3)列車經過道岔的速度超速,會導致列車脫軌的危害發生。
針對已識別的風險,需判斷是否為系統運行限制。對于列車超速,則不屬于聯鎖系統的可控范圍,那么該風險不能作為聯鎖系統安全需求。所以,經過風險識別,得出當前運營場景下的安全需求為



通過該需求描述,有效說明了檢查道岔的位置狀態對于信號開放的影響,信號機開放必須滿足道岔位置條件。
上述安全需求分析過程,僅是從道岔的位置狀態屬性出發,分析了道岔位置與關聯信號機的安全需求。針對每一種設備,根據其不同的狀態屬性,如道岔的鎖閉、封鎖,按照同樣的方法,識別出所有道岔和信號機聯鎖關系存在的安全需求。

圖7 道岔位置風險識別流程
任何一條安全需求都應該是確定的,無二義性的。聯鎖系統作為復雜系統,有著嚴格的以進路控制和信號開放為目的的邏輯核心功能,無論是功能的設計實現還是功能需求的驗證、測試,需求分析和詳細的需求描述都至關重要。針對識別出的聯鎖系統安全需求,需要對其進行形式化描述,避免自然語言的二義性。因此,采用數學定義,從2個角度對抽象危害需求進行精化描述:①單個對象的安全約束;②多個對象間的聯鎖約束。
下面列出了一些預定義的聯鎖系統主要對象,并且對它們指定了一些通用安全約束。
1)道岔:每個道岔都有唯一標識符Sw,并具有如下類型定義和限制。

Constraint:一個道岔無法同時處于定位與反位的狀態。
Formal Description:ALLsw(?(normal(sw)Λreverse(sw)))
2)信號機:每個信號機都有唯一標識符sig,并具有如下類型定義和限制。

Constraint:對任一信號機,當允許燈光無法點亮時,必須點亮禁止燈光。

3)進路:每條進路由一系列連續的區段構成。每條進路都有唯一標識符rt;組成進路的每個區段有唯一標識符t,則存在如下類型定義和限制。

Constraint:當一條進路被建立,則進路被鎖閉。

在聯鎖系統中,存在4種常見的約束關系:①進路與進路之間;②進路與道岔之間;③進路與信號機之間;④信號機與道岔之間。
基于上述約束關系和聯鎖系統自身的功能要求,存在如下需求。
Constraint:當一條進路被建立時,進路上所有道岔都必須被鎖閉。

Constraint:當一條進路開放時,進路的信號機點亮綠燈并且進路上所有信號機必須點亮紅燈。

按照上述約束關系精化描述方法,針對已識別的需求,描述示例見表2。

表2 安全需求描述示例
聯鎖系統安全需求是涉及系統設計和驗證的關鍵輸入,對于系統安全需求的識別精化,在引入SxH方法過程中,采用對象、場景逐層危害識別,對每一個對象狀態和關聯場景進行危害分析,實現需求的抽象設計。從系統運營場景的角度出發,找出通過何種操作、輸入會導致不允許發生的頂層事件,繼而找到系統安全需求。在基于場景需求危害分析過程中,通過系統的控制對象、邏輯狀態、約束條件之間的關系結果分析,應用數學的方法描述需求,得到清晰且無二義性需求,是計算機聯鎖需求描述不錯的選擇。